UNPKG

@razorpay/blade

Version:

The Design System that powers Razorpay

27 lines (24 loc) 4.21 kB
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties'; import React__default from 'react'; import { useAccordion, useAccordionItemIndex } from './AccordionContext.js'; import { componentIds } from './componentIds.js'; import { BaseHeader } from '../BaseHeaderFooter/BaseHeader.js'; import '../Typography/Heading/Heading.js'; import { Text } from '../Typography/Text/Text.js'; import '../Typography/Code/Code.js'; import '../Typography/Display/Display.js'; import { BaseBox } from '../Box/BaseBox/BaseBox.native.js'; import { CollapsibleChevronIcon } from '../Collapsible/CollapsibleChevronIcon.native.js'; import { assignWithoutSideEffects } from '../../utils/assignWithoutSideEffects/assignWithoutSideEffects.js'; import { metaAttribute } from '../../utils/metaAttribute/metaAttribute.native.js'; import { MetaConstants } from '../../utils/metaAttribute/metaConstants.js'; import { makeAnalyticsAttribute } from '../../utils/makeAnalyticsAttribute/makeAnalyticsAttribute.js'; import { isIconComponent } from '../../utils/isIconComponent/isIconComponent.js'; import { makeSize } from '../../utils/makeSize/makeSize.js'; import '../../tokens/global/typography.js'; import '../../tokens/global/motion.js'; import { size } from '../../tokens/global/size.js'; import { jsxs, jsx } from 'react/jsx-runtime'; var _excluded=["title","subtitle","leading","children","trailing","titleSuffix"];var getLeadingElementMaxHeightAndWidth=function getLeadingElementMaxHeightAndWidth(size$1){if(size$1==='large')return makeSize(size['32']);return makeSize(size['24']);};var _AccordionItemHeader=function _AccordionItemHeader(_ref){var _leading$type$name;var title=_ref.title,subtitle=_ref.subtitle,leading=_ref.leading,children=_ref.children,trailing=_ref.trailing,titleSuffix=_ref.titleSuffix,rest=_objectWithoutProperties(_ref,_excluded);var _useAccordion=useAccordion(),size=_useAccordion.size,showNumberPrefix=_useAccordion.showNumberPrefix,expandedIndex=_useAccordion.expandedIndex;var _useAccordionItemInde=useAccordionItemIndex(),index=_useAccordionItemInde.index,isDisabled=_useAccordionItemInde.isDisabled;var isLeadingIcon=React__default.isValidElement(leading)&&typeof leading.type==='function'&&((_leading$type$name=leading.type.name)==null?void 0:_leading$type$name.endsWith('Icon'));var isLeadingNumberOrIcon=React__default.useMemo(function(){if(showNumberPrefix&&typeof index==='number')return true;if(leading&&React__default.isValidElement(leading)&&isIconComponent(leading))return true;if(isLeadingIcon)return true;return false;},[showNumberPrefix,index,leading,isLeadingIcon]);var shouldAlignHeaderItemsInCenter=Boolean(children||Boolean(leading)&&!isLeadingNumberOrIcon);var leadingElement=React__default.useMemo(function(){if(showNumberPrefix&&typeof index==='number'){return jsxs(Text,{size:size,weight:"semibold",marginTop:"-2px",as:"span",children:[index+1,"."]});}if(leading){return jsx(BaseBox,{marginRight:isLeadingIcon?'spacing.0':'spacing.3',marginTop:"spacing.1",maxHeight:getLeadingElementMaxHeightAndWidth(size),maxWidth:getLeadingElementMaxHeightAndWidth(size),overflow:"hidden",children:leading});}return null;},[showNumberPrefix,index,leading,size,isLeadingIcon]);return jsx(BaseBox,Object.assign({},metaAttribute({name:MetaConstants.AccordionItemHeader}),{flex:"1",children:jsx(BaseHeader,Object.assign({leading:leadingElement,title:title,subtitle:subtitle,trailing:trailing,titleSuffix:titleSuffix,isDisabled:isDisabled,showBackButton:false,showCloseButton:false,showDivider:expandedIndex===index,paddingX:"spacing.5",marginY:"spacing.5",size:size,alignItems:!subtitle&&!isLeadingNumberOrIcon?'center':'flex-start',dividerProps:{thickness:'thinner',marginX:'spacing.5'},trailingInteractionElement:jsx(CollapsibleChevronIcon,{color:isDisabled?'interactive.icon.gray.disabled':'interactive.icon.gray.muted',size:"large"}),shouldAlignLeadingAndTrailingElementsToCenter:shouldAlignHeaderItemsInCenter},makeAnalyticsAttribute(rest),{children:children}))}));};var AccordionItemHeader=assignWithoutSideEffects(_AccordionItemHeader,{componentId:componentIds.AccordionItemHeader}); export { AccordionItemHeader }; //# sourceMappingURL=AccordionItemHeader.js.map