@razorpay/blade 12.33.1 → 12.34.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (174) hide show
  1. package/build/lib/native/components/Accordion/AccordionButton.native.js +1 -1
  2. package/build/lib/native/components/Accordion/AccordionButton.native.js.map +1 -1
  3. package/build/lib/native/components/Accordion/AccordionItemHeader.js +2 -1
  4. package/build/lib/native/components/Accordion/AccordionItemHeader.js.map +1 -1
  5. package/build/lib/native/components/Accordion/commonStyles.js +1 -1
  6. package/build/lib/native/components/Accordion/commonStyles.js.map +1 -1
  7. package/build/lib/native/components/ActionList/ActionListItem.js +1 -1
  8. package/build/lib/native/components/ActionList/ActionListItem.js.map +1 -1
  9. package/build/lib/native/components/BaseHeaderFooter/BaseHeader.js +1 -1
  10. package/build/lib/native/components/BaseHeaderFooter/BaseHeader.js.map +1 -1
  11. package/build/lib/native/components/Button/BaseButton/BaseButton.js +1 -1
  12. package/build/lib/native/components/Button/BaseButton/BaseButton.js.map +1 -1
  13. package/build/lib/native/components/Button/BaseButton/buttonTokens.js +1 -1
  14. package/build/lib/native/components/Button/BaseButton/buttonTokens.js.map +1 -1
  15. package/build/lib/native/components/Dropdown/Dropdown.js +1 -1
  16. package/build/lib/native/components/Dropdown/Dropdown.js.map +1 -1
  17. package/build/lib/native/components/Dropdown/DropdownButton.js +1 -1
  18. package/build/lib/native/components/Dropdown/DropdownButton.js.map +1 -1
  19. package/build/lib/native/components/Dropdown/InputDropdownButton.native.js +7 -0
  20. package/build/lib/native/components/Dropdown/InputDropdownButton.native.js.map +1 -0
  21. package/build/lib/native/components/Dropdown/dropdownComponentIds.js +1 -1
  22. package/build/lib/native/components/Dropdown/dropdownComponentIds.js.map +1 -1
  23. package/build/lib/native/components/Dropdown/useDropdown.js.map +1 -1
  24. package/build/lib/native/components/Icons/ChevronUpDownIcon/ChevronUpDownIcon.js +12 -0
  25. package/build/lib/native/components/Icons/ChevronUpDownIcon/ChevronUpDownIcon.js.map +1 -0
  26. package/build/lib/native/components/Input/BaseInput/BaseInput.js +1 -1
  27. package/build/lib/native/components/Input/BaseInput/BaseInput.js.map +1 -1
  28. package/build/lib/native/components/Input/BaseInput/BaseInputVisuals.js +1 -1
  29. package/build/lib/native/components/Input/BaseInput/BaseInputVisuals.js.map +1 -1
  30. package/build/lib/native/components/Input/BaseInput/baseInputStyles.js +1 -1
  31. package/build/lib/native/components/Input/BaseInput/baseInputStyles.js.map +1 -1
  32. package/build/lib/native/components/Input/BaseInput/baseInputTokens.js +1 -1
  33. package/build/lib/native/components/Input/BaseInput/baseInputTokens.js.map +1 -1
  34. package/build/lib/native/components/Input/DropdownInputTriggers/BaseDropdownInputTrigger.js +2 -5
  35. package/build/lib/native/components/Input/DropdownInputTriggers/BaseDropdownInputTrigger.js.map +1 -1
  36. package/build/lib/native/components/Input/SearchInput/SearchInput.js +12 -3
  37. package/build/lib/native/components/Input/SearchInput/SearchInput.js.map +1 -1
  38. package/build/lib/native/components/Input/TextInput/TextInput.js +11 -3
  39. package/build/lib/native/components/Input/TextInput/TextInput.js.map +1 -1
  40. package/build/lib/native/components/Typography/Text/Text.js +1 -1
  41. package/build/lib/native/components/Typography/Text/Text.js.map +1 -1
  42. package/build/lib/native/components/index.js +2 -0
  43. package/build/lib/native/components/index.js.map +1 -1
  44. package/build/lib/native/utils/useControlledDropdownInput/useControlledDropdownInput.js +14 -0
  45. package/build/lib/native/utils/useControlledDropdownInput/useControlledDropdownInput.js.map +1 -0
  46. package/build/lib/web/development/components/Accordion/AccordionItemHeader.js +18 -2
  47. package/build/lib/web/development/components/Accordion/AccordionItemHeader.js.map +1 -1
  48. package/build/lib/web/development/components/Accordion/StyledAccordionButton.web.js +4 -3
  49. package/build/lib/web/development/components/Accordion/StyledAccordionButton.web.js.map +1 -1
  50. package/build/lib/web/development/components/Accordion/commonStyles.js +1 -11
  51. package/build/lib/web/development/components/Accordion/commonStyles.js.map +1 -1
  52. package/build/lib/web/development/components/ActionList/ActionListItem.js +2 -1
  53. package/build/lib/web/development/components/ActionList/ActionListItem.js.map +1 -1
  54. package/build/lib/web/development/components/BaseHeaderFooter/BaseHeader.js +6 -3
  55. package/build/lib/web/development/components/BaseHeaderFooter/BaseHeader.js.map +1 -1
  56. package/build/lib/web/development/components/Button/BaseButton/BaseButton.js +24 -3
  57. package/build/lib/web/development/components/Button/BaseButton/BaseButton.js.map +1 -1
  58. package/build/lib/web/development/components/Button/BaseButton/StyledBaseButton.web.js +14 -2
  59. package/build/lib/web/development/components/Button/BaseButton/StyledBaseButton.web.js.map +1 -1
  60. package/build/lib/web/development/components/Button/BaseButton/buttonTokens.js +19 -0
  61. package/build/lib/web/development/components/Button/BaseButton/buttonTokens.js.map +1 -1
  62. package/build/lib/web/development/components/Dropdown/Dropdown.js +4 -1
  63. package/build/lib/web/development/components/Dropdown/Dropdown.js.map +1 -1
  64. package/build/lib/web/development/components/Dropdown/DropdownButton.js +4 -1
  65. package/build/lib/web/development/components/Dropdown/DropdownButton.js.map +1 -1
  66. package/build/lib/web/development/components/Dropdown/DropdownOverlay.web.js +4 -2
  67. package/build/lib/web/development/components/Dropdown/DropdownOverlay.web.js.map +1 -1
  68. package/build/lib/web/development/components/Dropdown/InputDropdownButton.web.js +180 -0
  69. package/build/lib/web/development/components/Dropdown/InputDropdownButton.web.js.map +1 -0
  70. package/build/lib/web/development/components/Dropdown/dropdownComponentIds.js +2 -1
  71. package/build/lib/web/development/components/Dropdown/dropdownComponentIds.js.map +1 -1
  72. package/build/lib/web/development/components/Dropdown/index.js +1 -0
  73. package/build/lib/web/development/components/Dropdown/index.js.map +1 -1
  74. package/build/lib/web/development/components/Dropdown/useDropdown.js.map +1 -1
  75. package/build/lib/web/development/components/Icons/ChevronUpDownIcon/ChevronUpDownIcon.js +40 -0
  76. package/build/lib/web/development/components/Icons/ChevronUpDownIcon/ChevronUpDownIcon.js.map +1 -0
  77. package/build/lib/web/development/components/Icons/ChevronUpDownIcon/index.js +2 -0
  78. package/build/lib/web/development/components/Icons/ChevronUpDownIcon/index.js.map +1 -0
  79. package/build/lib/web/development/components/Icons/index.js +1 -0
  80. package/build/lib/web/development/components/Icons/index.js.map +1 -1
  81. package/build/lib/web/development/components/Input/BaseInput/BaseInput.js +10 -4
  82. package/build/lib/web/development/components/Input/BaseInput/BaseInput.js.map +1 -1
  83. package/build/lib/web/development/components/Input/BaseInput/BaseInputVisuals.js +32 -8
  84. package/build/lib/web/development/components/Input/BaseInput/BaseInputVisuals.js.map +1 -1
  85. package/build/lib/web/development/components/Input/BaseInput/StyledBaseInput.web.js +2 -1
  86. package/build/lib/web/development/components/Input/BaseInput/StyledBaseInput.web.js.map +1 -1
  87. package/build/lib/web/development/components/Input/BaseInput/baseInputStyles.js +8 -4
  88. package/build/lib/web/development/components/Input/BaseInput/baseInputStyles.js.map +1 -1
  89. package/build/lib/web/development/components/Input/BaseInput/baseInputTokens.js +1 -1
  90. package/build/lib/web/development/components/Input/BaseInput/baseInputTokens.js.map +1 -1
  91. package/build/lib/web/development/components/Input/DropdownInputTriggers/BaseDropdownInputTrigger.js +25 -124
  92. package/build/lib/web/development/components/Input/DropdownInputTriggers/BaseDropdownInputTrigger.js.map +1 -1
  93. package/build/lib/web/development/components/Input/PhoneNumberInput/CountrySelector.web.js +6 -4
  94. package/build/lib/web/development/components/Input/PhoneNumberInput/CountrySelector.web.js.map +1 -1
  95. package/build/lib/web/development/components/Input/SearchInput/SearchInput.js +97 -30
  96. package/build/lib/web/development/components/Input/SearchInput/SearchInput.js.map +1 -1
  97. package/build/lib/web/development/components/Input/TextInput/TextInput.js +123 -31
  98. package/build/lib/web/development/components/Input/TextInput/TextInput.js.map +1 -1
  99. package/build/lib/web/development/components/Toast/ToastContainer.web.js +12 -8
  100. package/build/lib/web/development/components/Toast/ToastContainer.web.js.map +1 -1
  101. package/build/lib/web/development/components/Typography/Text/Text.js +0 -1
  102. package/build/lib/web/development/components/Typography/Text/Text.js.map +1 -1
  103. package/build/lib/web/development/components/index.js +2 -0
  104. package/build/lib/web/development/components/index.js.map +1 -1
  105. package/build/lib/web/development/utils/useControlledDropdownInput/index.js +2 -0
  106. package/build/lib/web/development/utils/useControlledDropdownInput/index.js.map +1 -0
  107. package/build/lib/web/development/utils/useControlledDropdownInput/useControlledDropdownInput.js +108 -0
  108. package/build/lib/web/development/utils/useControlledDropdownInput/useControlledDropdownInput.js.map +1 -0
  109. package/build/lib/web/production/components/Accordion/AccordionItemHeader.js +18 -2
  110. package/build/lib/web/production/components/Accordion/AccordionItemHeader.js.map +1 -1
  111. package/build/lib/web/production/components/Accordion/StyledAccordionButton.web.js +4 -3
  112. package/build/lib/web/production/components/Accordion/StyledAccordionButton.web.js.map +1 -1
  113. package/build/lib/web/production/components/Accordion/commonStyles.js +1 -11
  114. package/build/lib/web/production/components/Accordion/commonStyles.js.map +1 -1
  115. package/build/lib/web/production/components/ActionList/ActionListItem.js +2 -1
  116. package/build/lib/web/production/components/ActionList/ActionListItem.js.map +1 -1
  117. package/build/lib/web/production/components/BaseHeaderFooter/BaseHeader.js +6 -3
  118. package/build/lib/web/production/components/BaseHeaderFooter/BaseHeader.js.map +1 -1
  119. package/build/lib/web/production/components/Button/BaseButton/BaseButton.js +24 -3
  120. package/build/lib/web/production/components/Button/BaseButton/BaseButton.js.map +1 -1
  121. package/build/lib/web/production/components/Button/BaseButton/StyledBaseButton.web.js +14 -2
  122. package/build/lib/web/production/components/Button/BaseButton/StyledBaseButton.web.js.map +1 -1
  123. package/build/lib/web/production/components/Button/BaseButton/buttonTokens.js +19 -0
  124. package/build/lib/web/production/components/Button/BaseButton/buttonTokens.js.map +1 -1
  125. package/build/lib/web/production/components/Dropdown/Dropdown.js +4 -1
  126. package/build/lib/web/production/components/Dropdown/Dropdown.js.map +1 -1
  127. package/build/lib/web/production/components/Dropdown/DropdownButton.js +4 -1
  128. package/build/lib/web/production/components/Dropdown/DropdownButton.js.map +1 -1
  129. package/build/lib/web/production/components/Dropdown/DropdownOverlay.web.js +4 -2
  130. package/build/lib/web/production/components/Dropdown/DropdownOverlay.web.js.map +1 -1
  131. package/build/lib/web/production/components/Dropdown/InputDropdownButton.web.js +180 -0
  132. package/build/lib/web/production/components/Dropdown/InputDropdownButton.web.js.map +1 -0
  133. package/build/lib/web/production/components/Dropdown/dropdownComponentIds.js +2 -1
  134. package/build/lib/web/production/components/Dropdown/dropdownComponentIds.js.map +1 -1
  135. package/build/lib/web/production/components/Dropdown/index.js +1 -0
  136. package/build/lib/web/production/components/Dropdown/index.js.map +1 -1
  137. package/build/lib/web/production/components/Dropdown/useDropdown.js.map +1 -1
  138. package/build/lib/web/production/components/Icons/ChevronUpDownIcon/ChevronUpDownIcon.js +40 -0
  139. package/build/lib/web/production/components/Icons/ChevronUpDownIcon/ChevronUpDownIcon.js.map +1 -0
  140. package/build/lib/web/production/components/Icons/ChevronUpDownIcon/index.js +2 -0
  141. package/build/lib/web/production/components/Icons/ChevronUpDownIcon/index.js.map +1 -0
  142. package/build/lib/web/production/components/Icons/index.js +1 -0
  143. package/build/lib/web/production/components/Icons/index.js.map +1 -1
  144. package/build/lib/web/production/components/Input/BaseInput/BaseInput.js +10 -4
  145. package/build/lib/web/production/components/Input/BaseInput/BaseInput.js.map +1 -1
  146. package/build/lib/web/production/components/Input/BaseInput/BaseInputVisuals.js +32 -8
  147. package/build/lib/web/production/components/Input/BaseInput/BaseInputVisuals.js.map +1 -1
  148. package/build/lib/web/production/components/Input/BaseInput/StyledBaseInput.web.js +2 -1
  149. package/build/lib/web/production/components/Input/BaseInput/StyledBaseInput.web.js.map +1 -1
  150. package/build/lib/web/production/components/Input/BaseInput/baseInputStyles.js +8 -4
  151. package/build/lib/web/production/components/Input/BaseInput/baseInputStyles.js.map +1 -1
  152. package/build/lib/web/production/components/Input/BaseInput/baseInputTokens.js +1 -1
  153. package/build/lib/web/production/components/Input/BaseInput/baseInputTokens.js.map +1 -1
  154. package/build/lib/web/production/components/Input/DropdownInputTriggers/BaseDropdownInputTrigger.js +25 -124
  155. package/build/lib/web/production/components/Input/DropdownInputTriggers/BaseDropdownInputTrigger.js.map +1 -1
  156. package/build/lib/web/production/components/Input/PhoneNumberInput/CountrySelector.web.js +6 -4
  157. package/build/lib/web/production/components/Input/PhoneNumberInput/CountrySelector.web.js.map +1 -1
  158. package/build/lib/web/production/components/Input/SearchInput/SearchInput.js +97 -30
  159. package/build/lib/web/production/components/Input/SearchInput/SearchInput.js.map +1 -1
  160. package/build/lib/web/production/components/Input/TextInput/TextInput.js +123 -31
  161. package/build/lib/web/production/components/Input/TextInput/TextInput.js.map +1 -1
  162. package/build/lib/web/production/components/Toast/ToastContainer.web.js +12 -8
  163. package/build/lib/web/production/components/Toast/ToastContainer.web.js.map +1 -1
  164. package/build/lib/web/production/components/Typography/Text/Text.js +0 -1
  165. package/build/lib/web/production/components/Typography/Text/Text.js.map +1 -1
  166. package/build/lib/web/production/components/index.js +2 -0
  167. package/build/lib/web/production/components/index.js.map +1 -1
  168. package/build/lib/web/production/utils/useControlledDropdownInput/index.js +2 -0
  169. package/build/lib/web/production/utils/useControlledDropdownInput/index.js.map +1 -0
  170. package/build/lib/web/production/utils/useControlledDropdownInput/useControlledDropdownInput.js +108 -0
  171. package/build/lib/web/production/utils/useControlledDropdownInput/useControlledDropdownInput.js.map +1 -0
  172. package/build/types/components/index.d.ts +2875 -2768
  173. package/build/types/components/index.native.d.ts +2719 -2686
  174. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"ToastContainer.web.js","sources":["../../../../../../src/components/Toast/ToastContainer.web.tsx"],"sourcesContent":["import type { ToastPosition, ToasterProps, Toast } from 'react-hot-toast';\nimport { resolveValue, useToaster } from 'react-hot-toast';\nimport React from 'react';\nimport styled from 'styled-components';\nimport {\n PEEKS,\n MAX_TOASTS,\n SCALE_FACTOR,\n GUTTER,\n PEEK_GUTTER,\n TOAST_MAX_WIDTH,\n TOAST_Z_INDEX,\n MIN_TOAST_MOBILE,\n MIN_TOAST_DESKTOP,\n CONTAINER_GUTTER_MOBILE,\n CONTAINER_GUTTER_DESKTOP,\n} from './constants';\nimport { makeMotionTime, makeSize, useTheme } from '~utils';\nimport BaseBox from '~components/Box/BaseBox';\nimport type { Theme } from '~components/BladeProvider';\nimport { useIsMobile } from '~utils/useIsMobile';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\ntype CalculateYPositionProps = {\n toast: Toast;\n index: number;\n isExpanded: boolean;\n reverseOrder?: boolean;\n};\n\nconst StyledToastWrapper = styled(BaseBox)<{\n isVisible: boolean;\n index: number;\n isExpanded: boolean;\n isPromotional: boolean;\n}>(({ isVisible, index, isExpanded, isPromotional }) => {\n let opacity = isVisible ? 1 : 0;\n // Only make the PEEKING and MAX_TOASTS toasts visible,\n // Every other toasts should be hidden\n if (index < PEEKS + MAX_TOASTS) {\n opacity = 1;\n } else if (isPromotional || isExpanded) {\n opacity = 1;\n } else {\n opacity = 0;\n }\n\n return {\n '& > *': {\n pointerEvents: opacity === 1 ? 'auto' : 'none',\n },\n opacity,\n };\n});\n\nconst getPositionStyle = (\n position: ToastPosition,\n offset: number,\n scale: number,\n theme: Theme,\n): React.CSSProperties => {\n const top = position.includes('top');\n const verticalStyle: React.CSSProperties = top ? { top: 0 } : { bottom: 0 };\n const horizontalStyle: React.CSSProperties = position.includes('center')\n ? {\n justifyContent: 'center',\n }\n : position.includes('right')\n ? {\n justifyContent: 'flex-end',\n }\n : {};\n\n return {\n left: 0,\n right: 0,\n display: 'flex',\n position: 'absolute',\n transformOrigin: 'center',\n transition: `${makeMotionTime(theme.motion.duration.gentle)} ${theme.motion.easing.standard}`,\n transitionProperty: 'transform, opacity, height',\n transform: `translateY(${offset * (top ? 1 : -1)}px) scale(${scale})`,\n ...verticalStyle,\n ...horizontalStyle,\n };\n};\n\nfunction isPromotionalToast(toast: Toast): boolean {\n // @ts-expect-error\n return toast.type == 'promotional';\n}\n\nconst Toaster: React.FC<ToasterProps> = ({\n reverseOrder,\n position = 'top-center',\n toastOptions,\n containerClassName,\n ...rest\n}) => {\n const { toasts, handlers } = useToaster(toastOptions);\n const { theme } = useTheme();\n const [frontToastHeight, setFrontToastHeight] = React.useState(0);\n const [hasManuallyExpanded, setHasManuallyExpanded] = React.useState(false);\n const isMobile = useIsMobile();\n const minToasts = isMobile ? MIN_TOAST_MOBILE : MIN_TOAST_DESKTOP;\n const containerGutter = isMobile ? CONTAINER_GUTTER_MOBILE : CONTAINER_GUTTER_DESKTOP;\n\n const infoToasts = React.useMemo(() => toasts.filter((toast) => !isPromotionalToast(toast)), [\n toasts,\n ]);\n const promoToasts = React.useMemo(() => toasts.filter((toast) => isPromotionalToast(toast)), [\n toasts,\n ]);\n\n // always keep promo toasts at the bottom of the stack\n const recomputedToasts = React.useMemo(() => [...infoToasts, ...promoToasts], [\n infoToasts,\n promoToasts,\n ]);\n\n const hasPromoToast = promoToasts.length > 0 && promoToasts[0]?.visible;\n const promoToastHeight = promoToasts[0]?.height ?? 0;\n const isExpanded = hasManuallyExpanded || recomputedToasts.length <= minToasts;\n\n React.useLayoutEffect(() => {\n // find the first toast which is visible\n const firstToast = infoToasts.find((t, index) => t.visible && index === 0);\n if (firstToast) {\n setFrontToastHeight(firstToast.height ?? 0);\n }\n }, [infoToasts]);\n\n // calculate total height of all toasts\n const totalHeight = React.useMemo(() => {\n return (\n recomputedToasts\n // only consider visible recomputedToasts\n .filter((toast) => toast.visible)\n .reduce((prevHeight, toast) => prevHeight + (toast.height ?? 0), 0) +\n recomputedToasts.length * GUTTER\n );\n }, [recomputedToasts]);\n\n // Stacking logic explained in detail:\n // https://www.loom.com/share/522d9a445e2f41e1886cce4decb9ab9d?sid=4287acf6-8d44-431b-93e1-c1a0d40a0aba\n //\n // 1. 3 toasts can be stacked on top of each other\n // 2. After 3 toasts, the toasts will be scaled down and peek from behind\n // 3. There can be maximum of 3 toasts peeking from behind\n // 4. After 3 peeking toasts, the toasts will be hidden\n // 5. If there is a promo toast, all toasts will be lifted up\n // 6. Promo toasts will always be on the bottom\n const calculateYPosition = React.useCallback(\n ({ toast, index }: CalculateYPositionProps) => {\n // find the current toast index\n const toastIndex = infoToasts.findIndex((t) => t.id === toast.id);\n // number of toasts before this toast\n const toastsBefore = infoToasts.filter((toast, i) => i < toastIndex && toast.visible).length;\n\n let scale = Math.max(0.7, 1 - toastsBefore * SCALE_FACTOR);\n // first toast should always have a scale of 1\n if (index < MAX_TOASTS) {\n scale = 1;\n }\n\n // y position of toast,\n let offset = infoToasts\n .filter((toast) => toast.visible)\n .slice(0, toastsBefore)\n .reduce((y, toast) => {\n // if the toast is expanded, add the height of the toast + gutter\n if (isExpanded) {\n return y + (toast.height ?? 0) + GUTTER;\n }\n // if the toast is not expanded, add only the peek gutter\n return y + PEEK_GUTTER;\n }, 0);\n\n // lift all info toasts up if there is a promo toast\n if (hasPromoToast) {\n offset += GUTTER + promoToastHeight;\n }\n\n // if this is a promo toast, then put it at the bottom and force the scale to 1\n if (isPromotionalToast(toast)) {\n offset = 0;\n scale = 1;\n }\n\n return { offset, scale: isExpanded ? 1 : scale };\n },\n [hasPromoToast, infoToasts, isExpanded, promoToastHeight],\n );\n\n const handleMouseEnter = (): void => {\n if (isMobile) return;\n setHasManuallyExpanded(true);\n handlers.startPause();\n };\n\n const handleMouseLeave = (): void => {\n if (isMobile) return;\n setHasManuallyExpanded(false);\n handlers.endPause();\n };\n\n const handleToastClick = (): void => {\n if (!isMobile) return;\n setHasManuallyExpanded((prev) => {\n const next = !prev;\n if (next) {\n handlers.startPause();\n } else {\n handlers.endPause();\n }\n return next;\n });\n };\n\n return (\n <BaseBox\n position=\"fixed\"\n zIndex={TOAST_Z_INDEX}\n top={makeSize(containerGutter)}\n left={makeSize(containerGutter)}\n right={makeSize(containerGutter)}\n bottom={makeSize(containerGutter)}\n width={`calc(100% - ${containerGutter * 2}px)`}\n maxWidth={makeSize(TOAST_MAX_WIDTH)}\n pointerEvents=\"none\"\n className={containerClassName}\n {...metaAttribute({ name: MetaConstants.ToastContainer })}\n {...makeAnalyticsAttribute(rest)}\n >\n {/*\n * Mouseover container,\n * fills in the gap between toasts so that mouseleave doesn't trigger in the gaps\n */}\n <BaseBox\n position=\"absolute\"\n bottom={`${promoToastHeight}px`}\n left=\"0px\"\n width=\"100%\"\n pointerEvents={isExpanded ? 'all' : 'none'}\n height={makeSize(isExpanded ? totalHeight - promoToastHeight : frontToastHeight)}\n zIndex={-100}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n onClick={handleToastClick}\n {...metaAttribute({ testID: 'toast-mouseover-container' })}\n />\n {recomputedToasts.map((toast, index) => {\n const toastPosition = toast.position ?? position;\n const isPromotional = isPromotionalToast(toast);\n const { offset, scale } = calculateYPosition({\n toast,\n isExpanded,\n reverseOrder,\n index,\n });\n const positionStyle = getPositionStyle(toastPosition, offset, scale, theme);\n // recalculate height of toast\n const ref = (el: HTMLDivElement): void => {\n if (el && typeof toast.height !== 'number') {\n const height = el.getBoundingClientRect().height;\n handlers.updateHeight(toast.id, height);\n }\n };\n\n let toastHeight = toast.height;\n if (index > MAX_TOASTS - 1 && !isPromotional) {\n toastHeight = frontToastHeight;\n }\n if (isExpanded) {\n toastHeight = toast.height;\n }\n\n return (\n <StyledToastWrapper\n key={toast.id}\n index={index}\n ref={ref}\n isExpanded={isExpanded}\n isVisible={toast.visible}\n isPromotional={isPromotional}\n style={{\n ...positionStyle,\n zIndex: -1 * index,\n height: toastHeight,\n overflow: 'hidden',\n }}\n onMouseEnter={() => {\n if (isPromotional) return;\n handleMouseEnter();\n }}\n onMouseLeave={() => {\n if (isPromotional) return;\n handleMouseLeave();\n }}\n onClick={() => {\n if (isPromotional) return;\n handleToastClick();\n }}\n >\n <BaseBox height=\"fit-content\" width=\"100%\">\n {resolveValue(toast.message, { ...toast, index })}\n </BaseBox>\n </StyledToastWrapper>\n );\n })}\n </BaseBox>\n );\n};\n\nconst ToastContainer = (): React.ReactElement => {\n return <Toaster position=\"bottom-left\" />;\n};\n\nexport { ToastContainer };\n"],"names":["StyledToastWrapper","styled","BaseBox","withConfig","displayName","componentId","_ref","isVisible","index","isExpanded","isPromotional","opacity","PEEKS","MAX_TOASTS","pointerEvents","getPositionStyle","position","offset","scale","theme","top","includes","verticalStyle","bottom","horizontalStyle","justifyContent","_objectSpread","left","right","display","transformOrigin","transition","concat","makeMotionTime","motion","duration","gentle","easing","standard","transitionProperty","transform","isPromotionalToast","toast","type","Toaster","_ref2","_promoToasts$","_promoToasts$0$height","_promoToasts$2","reverseOrder","_ref2$position","toastOptions","containerClassName","rest","_objectWithoutProperties","_excluded","_useToaster","useToaster","toasts","handlers","_useTheme","useTheme","_React$useState","React","useState","_React$useState2","_slicedToArray","frontToastHeight","setFrontToastHeight","_React$useState3","_React$useState4","hasManuallyExpanded","setHasManuallyExpanded","isMobile","useIsMobile","minToasts","MIN_TOAST_MOBILE","MIN_TOAST_DESKTOP","containerGutter","CONTAINER_GUTTER_MOBILE","CONTAINER_GUTTER_DESKTOP","infoToasts","useMemo","filter","promoToasts","recomputedToasts","_toConsumableArray","hasPromoToast","length","visible","promoToastHeight","height","useLayoutEffect","firstToast","find","t","_firstToast$height","totalHeight","reduce","prevHeight","_toast$height","GUTTER","calculateYPosition","useCallback","_ref3","toastIndex","findIndex","id","toastsBefore","i","Math","max","SCALE_FACTOR","slice","y","_toast$height2","PEEK_GUTTER","handleMouseEnter","startPause","handleMouseLeave","endPause","handleToastClick","prev","next","_jsxs","zIndex","TOAST_Z_INDEX","makeSize","width","maxWidth","TOAST_MAX_WIDTH","className","metaAttribute","name","MetaConstants","ToastContainer","makeAnalyticsAttribute","children","_jsx","onMouseEnter","onMouseLeave","onClick","testID","map","_toast$position","toastPosition","_calculateYPosition","positionStyle","ref","el","getBoundingClientRect","updateHeight","toastHeight","style","overflow","resolveValue","message"],"mappings":"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"}
1
+ {"version":3,"file":"ToastContainer.web.js","sources":["../../../../../../src/components/Toast/ToastContainer.web.tsx"],"sourcesContent":["import type { ToastPosition, ToasterProps, Toast } from 'react-hot-toast';\nimport { resolveValue, useToaster } from 'react-hot-toast';\nimport React from 'react';\nimport styled from 'styled-components';\nimport {\n PEEKS,\n MAX_TOASTS,\n SCALE_FACTOR,\n GUTTER,\n PEEK_GUTTER,\n TOAST_MAX_WIDTH,\n TOAST_Z_INDEX,\n MIN_TOAST_MOBILE,\n MIN_TOAST_DESKTOP,\n CONTAINER_GUTTER_MOBILE,\n CONTAINER_GUTTER_DESKTOP,\n} from './constants';\nimport { makeMotionTime, makeSize, useTheme } from '~utils';\nimport BaseBox from '~components/Box/BaseBox';\nimport type { Theme } from '~components/BladeProvider';\nimport { useIsMobile } from '~utils/useIsMobile';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\ntype CalculateYPositionProps = {\n toast: Toast;\n index: number;\n isExpanded: boolean;\n reverseOrder?: boolean;\n};\n\nconst StyledToastWrapper = styled(BaseBox)<{\n isVisible: boolean;\n index: number;\n isExpanded: boolean;\n isPromotional: boolean;\n}>(({ isVisible, index, isExpanded, isPromotional }) => {\n let opacity: number = isVisible ? 1 : 0;\n // Only make the PEEKING and MAX_TOASTS toasts visible,\n // Every other toasts should be hidden\n if (index < PEEKS + MAX_TOASTS) {\n opacity = 1;\n } else if (isPromotional || isExpanded) {\n opacity = 1;\n } else {\n opacity = 0;\n }\n\n return {\n '& > *': {\n pointerEvents: opacity === 1 ? 'auto' : 'none',\n },\n opacity,\n };\n});\n\nconst getPositionStyle = (\n position: ToastPosition,\n offset: number,\n scale: number,\n theme: Theme,\n): React.CSSProperties => {\n const top = position.includes('top');\n const verticalStyle: React.CSSProperties = top ? { top: 0 } : { bottom: 0 };\n const horizontalStyle: React.CSSProperties = position.includes('center')\n ? {\n justifyContent: 'center',\n }\n : position.includes('right')\n ? {\n justifyContent: 'flex-end',\n }\n : {};\n\n return {\n left: 0,\n right: 0,\n display: 'flex',\n position: 'absolute',\n transformOrigin: 'center',\n transition: `${makeMotionTime(theme.motion.duration.gentle)} ${theme.motion.easing.standard}`,\n transitionProperty: 'transform, opacity, height',\n transform: `translateY(${offset * (top ? 1 : -1)}px) scale(${scale})`,\n ...verticalStyle,\n ...horizontalStyle,\n };\n};\n\nfunction isPromotionalToast(toast: Toast): boolean {\n // @ts-expect-error\n return toast.type == 'promotional';\n}\n\nconst Toaster: React.FC<ToasterProps & { offsetBottom?: number }> = ({\n reverseOrder,\n position = 'top-center',\n offsetBottom,\n toastOptions,\n containerClassName,\n ...rest\n}) => {\n const { toasts, handlers } = useToaster(toastOptions);\n const { theme } = useTheme();\n const [frontToastHeight, setFrontToastHeight] = React.useState(0);\n const [hasManuallyExpanded, setHasManuallyExpanded] = React.useState(false);\n const isMobile = useIsMobile();\n const minToasts = isMobile ? MIN_TOAST_MOBILE : MIN_TOAST_DESKTOP;\n const defaultGutter = isMobile ? CONTAINER_GUTTER_MOBILE : CONTAINER_GUTTER_DESKTOP;\n const bottomGutter = offsetBottom ?? defaultGutter;\n\n const infoToasts = React.useMemo(() => toasts.filter((toast) => !isPromotionalToast(toast)), [\n toasts,\n ]);\n const promoToasts = React.useMemo(() => toasts.filter((toast) => isPromotionalToast(toast)), [\n toasts,\n ]);\n\n // always keep promo toasts at the bottom of the stack\n const recomputedToasts = React.useMemo(() => [...infoToasts, ...promoToasts], [\n infoToasts,\n promoToasts,\n ]);\n\n const hasPromoToast = promoToasts.length > 0 && promoToasts[0]?.visible;\n const promoToastHeight = promoToasts[0]?.height ?? 0;\n const isExpanded = hasManuallyExpanded || recomputedToasts.length <= minToasts;\n\n React.useLayoutEffect(() => {\n // find the first toast which is visible\n const firstToast = infoToasts.find((t, index) => t.visible && index === 0);\n if (firstToast) {\n setFrontToastHeight(firstToast.height ?? 0);\n }\n }, [infoToasts]);\n\n // calculate total height of all toasts\n const totalHeight = React.useMemo(() => {\n return (\n recomputedToasts\n // only consider visible recomputedToasts\n .filter((toast) => toast.visible)\n .reduce((prevHeight, toast) => prevHeight + (toast.height ?? 0), 0) +\n recomputedToasts.length * GUTTER\n );\n }, [recomputedToasts]);\n\n // Stacking logic explained in detail:\n // https://www.loom.com/share/522d9a445e2f41e1886cce4decb9ab9d?sid=4287acf6-8d44-431b-93e1-c1a0d40a0aba\n //\n // 1. 3 toasts can be stacked on top of each other\n // 2. After 3 toasts, the toasts will be scaled down and peek from behind\n // 3. There can be maximum of 3 toasts peeking from behind\n // 4. After 3 peeking toasts, the toasts will be hidden\n // 5. If there is a promo toast, all toasts will be lifted up\n // 6. Promo toasts will always be on the bottom\n const calculateYPosition = React.useCallback(\n ({ toast, index }: CalculateYPositionProps) => {\n // find the current toast index\n const toastIndex = infoToasts.findIndex((t) => t.id === toast.id);\n // number of toasts before this toast\n const toastsBefore = infoToasts.filter((toast, i) => i < toastIndex && toast.visible).length;\n\n let scale = Math.max(0.7, 1 - toastsBefore * SCALE_FACTOR);\n // first toast should always have a scale of 1\n if (index < MAX_TOASTS) {\n scale = 1;\n }\n\n // y position of toast,\n let offset = infoToasts\n .filter((toast) => toast.visible)\n .slice(0, toastsBefore)\n .reduce((y, toast) => {\n // if the toast is expanded, add the height of the toast + gutter\n if (isExpanded) {\n return y + (toast.height ?? 0) + GUTTER;\n }\n // if the toast is not expanded, add only the peek gutter\n return y + PEEK_GUTTER;\n }, 0);\n\n // lift all info toasts up if there is a promo toast\n if (hasPromoToast) {\n offset += GUTTER + promoToastHeight;\n }\n\n // if this is a promo toast, then put it at the bottom and force the scale to 1\n if (isPromotionalToast(toast)) {\n offset = 0;\n scale = 1;\n }\n\n return { offset, scale: isExpanded ? 1 : scale };\n },\n [hasPromoToast, infoToasts, isExpanded, promoToastHeight],\n );\n\n const handleMouseEnter = (): void => {\n if (isMobile) return;\n setHasManuallyExpanded(true);\n handlers.startPause();\n };\n\n const handleMouseLeave = (): void => {\n if (isMobile) return;\n setHasManuallyExpanded(false);\n handlers.endPause();\n };\n\n const handleToastClick = (): void => {\n if (!isMobile) return;\n setHasManuallyExpanded((prev) => {\n const next = !prev;\n if (next) {\n handlers.startPause();\n } else {\n handlers.endPause();\n }\n return next;\n });\n };\n\n return (\n <BaseBox\n position=\"fixed\"\n zIndex={TOAST_Z_INDEX}\n top={makeSize(defaultGutter)}\n left={makeSize(defaultGutter)}\n right={makeSize(defaultGutter)}\n bottom={makeSize(bottomGutter)}\n width={`calc(100% - ${defaultGutter * 2}px)`}\n maxWidth={makeSize(TOAST_MAX_WIDTH)}\n pointerEvents=\"none\"\n className={containerClassName}\n {...metaAttribute({ name: MetaConstants.ToastContainer })}\n {...makeAnalyticsAttribute(rest)}\n >\n {/*\n * Mouseover container,\n * fills in the gap between toasts so that mouseleave doesn't trigger in the gaps\n */}\n <BaseBox\n position=\"absolute\"\n bottom={`${promoToastHeight}px`}\n left=\"0px\"\n width=\"100%\"\n pointerEvents={isExpanded ? 'all' : 'none'}\n height={makeSize(isExpanded ? totalHeight - promoToastHeight : frontToastHeight)}\n zIndex={-100}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n onClick={handleToastClick}\n {...metaAttribute({ testID: 'toast-mouseover-container' })}\n />\n {recomputedToasts.map((toast, index) => {\n const toastPosition = toast.position ?? position;\n const isPromotional = isPromotionalToast(toast);\n const { offset, scale } = calculateYPosition({\n toast,\n isExpanded,\n reverseOrder,\n index,\n });\n const positionStyle = getPositionStyle(toastPosition, offset, scale, theme);\n // recalculate height of toast\n const ref = (el: HTMLDivElement): void => {\n if (el && typeof toast.height !== 'number') {\n const height = el.getBoundingClientRect().height;\n handlers.updateHeight(toast.id, height);\n }\n };\n\n let toastHeight = toast.height;\n if (index > MAX_TOASTS - 1 && !isPromotional) {\n toastHeight = frontToastHeight;\n }\n if (isExpanded) {\n toastHeight = toast.height;\n }\n\n return (\n <StyledToastWrapper\n key={toast.id}\n index={index}\n ref={ref}\n isExpanded={isExpanded}\n isVisible={toast.visible}\n isPromotional={isPromotional}\n style={{\n ...positionStyle,\n zIndex: -1 * index,\n height: toastHeight,\n overflow: 'hidden',\n }}\n onMouseEnter={() => {\n if (isPromotional) return;\n handleMouseEnter();\n }}\n onMouseLeave={() => {\n if (isPromotional) return;\n handleMouseLeave();\n }}\n onClick={() => {\n if (isPromotional) return;\n handleToastClick();\n }}\n >\n <BaseBox height=\"fit-content\" width=\"100%\">\n {resolveValue(toast.message, { ...toast, index })}\n </BaseBox>\n </StyledToastWrapper>\n );\n })}\n </BaseBox>\n );\n};\n\ntype ToastContainerProps = {\n /**\n * The offset from the bottom of the screen to the toast container.\n * This is useful when you want to position the toast container at a different\n * position from the bottom of the screen.\n *\n * @default isMobile ? 16px : 24px\n */\n offsetBottom?: number;\n};\n\nconst ToastContainer = ({ offsetBottom }: ToastContainerProps): React.ReactElement => {\n return <Toaster offsetBottom={offsetBottom} position=\"bottom-left\" />;\n};\n\nexport { ToastContainer };\n"],"names":["StyledToastWrapper","styled","BaseBox","withConfig","displayName","componentId","_ref","isVisible","index","isExpanded","isPromotional","opacity","PEEKS","MAX_TOASTS","pointerEvents","getPositionStyle","position","offset","scale","theme","top","includes","verticalStyle","bottom","horizontalStyle","justifyContent","_objectSpread","left","right","display","transformOrigin","transition","concat","makeMotionTime","motion","duration","gentle","easing","standard","transitionProperty","transform","isPromotionalToast","toast","type","Toaster","_ref2","_promoToasts$","_promoToasts$0$height","_promoToasts$2","reverseOrder","_ref2$position","offsetBottom","toastOptions","containerClassName","rest","_objectWithoutProperties","_excluded","_useToaster","useToaster","toasts","handlers","_useTheme","useTheme","_React$useState","React","useState","_React$useState2","_slicedToArray","frontToastHeight","setFrontToastHeight","_React$useState3","_React$useState4","hasManuallyExpanded","setHasManuallyExpanded","isMobile","useIsMobile","minToasts","MIN_TOAST_MOBILE","MIN_TOAST_DESKTOP","defaultGutter","CONTAINER_GUTTER_MOBILE","CONTAINER_GUTTER_DESKTOP","bottomGutter","infoToasts","useMemo","filter","promoToasts","recomputedToasts","_toConsumableArray","hasPromoToast","length","visible","promoToastHeight","height","useLayoutEffect","firstToast","find","t","_firstToast$height","totalHeight","reduce","prevHeight","_toast$height","GUTTER","calculateYPosition","useCallback","_ref3","toastIndex","findIndex","id","toastsBefore","i","Math","max","SCALE_FACTOR","slice","y","_toast$height2","PEEK_GUTTER","handleMouseEnter","startPause","handleMouseLeave","endPause","handleToastClick","prev","next","_jsxs","zIndex","TOAST_Z_INDEX","makeSize","width","maxWidth","TOAST_MAX_WIDTH","className","metaAttribute","name","MetaConstants","ToastContainer","makeAnalyticsAttribute","children","_jsx","onMouseEnter","onMouseLeave","onClick","testID","map","_toast$position","toastPosition","_calculateYPosition","positionStyle","ref","el","getBoundingClientRect","updateHeight","toastHeight","style","overflow","resolveValue","message","_ref4"],"mappings":"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"}
@@ -81,7 +81,6 @@ var getTextProps = function getTextProps(_ref) {
81
81
  props.lineHeight = 50;
82
82
  props.fontWeight = 'regular';
83
83
  }
84
- props.fontStyle = 'italic';
85
84
  }
86
85
  return props;
87
86
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Text.js","sources":["../../../../../../../src/components/Typography/Text/Text.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unnecessary-type-assertion */\nimport type { ReactElement } from 'react';\nimport React from 'react';\nimport { BaseText } from '../BaseText';\nimport type { BaseTextProps, BaseTextSizes } from '../BaseText/types';\nimport { useValidateAsProp } from '../utils';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport type { BladeElementRef, TestID } from '~utils/types';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { throwBladeError } from '~utils/logger';\n\nconst validAsValues = ['p', 'span', 'div', 'abbr', 'figcaption', 'cite', 'q', 'label'] as const;\ntype TextCommonProps = {\n as?: typeof validAsValues[number];\n truncateAfterLines?: number;\n children: React.ReactNode;\n weight?: Extract<BaseTextProps['fontWeight'], 'regular' | 'medium' | 'semibold'>;\n /**\n * Overrides the color of the Text component.\n *\n * **Note** This takes priority over `type` and `contrast` prop to decide color of text\n */\n color?: BaseTextProps['color'];\n textAlign?: BaseTextProps['textAlign'];\n textDecorationLine?: BaseTextProps['textDecorationLine'];\n wordBreak?: BaseTextProps['wordBreak'];\n} & TestID &\n StyledPropsBlade;\n\nexport type TextVariant = 'body' | 'caption';\n\ntype TextBodyVariant = TextCommonProps & {\n variant?: Extract<TextVariant, 'body'>;\n size?: Extract<BaseTextSizes, 'xsmall' | 'small' | 'medium' | 'large'>;\n};\n\ntype TextCaptionVariant = TextCommonProps & {\n variant?: Extract<TextVariant, 'caption'>;\n size?: Extract<BaseTextSizes, 'small' | 'medium'>;\n};\n\nexport type TextProps<T> = T extends { variant: infer Variant }\n ? Variant extends 'caption'\n ? TextCaptionVariant\n : Variant extends 'body'\n ? TextBodyVariant\n : T\n : T;\n\ntype GetTextPropsReturn = Omit<BaseTextProps, 'children'>;\ntype GetTextProps<T extends { variant: TextVariant }> = Pick<\n TextProps<T>,\n 'variant' | 'weight' | 'size' | 'color' | 'testID' | 'textAlign' | 'textDecorationLine'\n>;\n\nconst getTextProps = <T extends { variant: TextVariant }>({\n variant,\n weight,\n size,\n color = 'surface.text.gray.normal',\n testID,\n textAlign,\n textDecorationLine,\n}: GetTextProps<T>): GetTextPropsReturn => {\n const props: GetTextPropsReturn = {\n color,\n fontSize: 100,\n fontWeight: weight ?? 'regular',\n fontStyle: 'normal',\n lineHeight: 100,\n fontFamily: 'text',\n componentName: 'text',\n testID,\n textAlign,\n textDecorationLine,\n };\n\n if (variant === 'caption') {\n // variant of caption can only have size of small\n if (size && size !== 'small' && size !== 'medium') {\n if (__DEV__) {\n throwBladeError({\n moduleName: 'Text',\n message: `size cannot be '${size}' when variant is 'caption'`,\n });\n }\n // Set size as small in case of invalid size\n size = 'small';\n }\n } else if (variant !== 'caption' && !size) {\n size = 'medium';\n }\n\n if (variant === 'body') {\n if (size === 'xsmall') {\n props.fontSize = 25;\n props.lineHeight = 25;\n }\n if (size === 'small') {\n props.fontSize = 75;\n props.lineHeight = 75;\n }\n if (size === 'medium') {\n props.fontSize = 100;\n props.lineHeight = 100;\n }\n if (size === 'large') {\n props.fontSize = 200;\n props.lineHeight = 200;\n }\n }\n if (variant === 'caption') {\n if (size === 'small') {\n props.fontSize = 50;\n props.lineHeight = 50;\n props.fontWeight = 'regular';\n }\n if (size === 'medium') {\n props.fontSize = 100;\n props.lineHeight = 50;\n props.fontWeight = 'regular';\n }\n props.fontStyle = 'italic';\n }\n\n return props;\n};\n\nconst _Text = <T extends { variant: TextVariant }>(\n {\n as = 'p',\n variant = 'body',\n weight = 'regular',\n size,\n truncateAfterLines,\n children,\n color,\n testID,\n textAlign,\n textDecorationLine,\n wordBreak,\n ...styledProps\n }: TextProps<T>,\n ref: React.Ref<BladeElementRef>,\n): ReactElement => {\n const props: Omit<BaseTextProps, 'children'> = {\n as,\n truncateAfterLines,\n wordBreak,\n ...getTextProps({\n variant,\n weight,\n color,\n size,\n testID,\n textAlign,\n textDecorationLine,\n }),\n };\n\n useValidateAsProp({ componentName: 'Text', as, validAsValues });\n\n return (\n <BaseText ref={ref} {...props} {...getStyledProps(styledProps)}>\n {children}\n </BaseText>\n );\n};\n\nconst Text = assignWithoutSideEffects(React.forwardRef(_Text), {\n displayName: 'Text',\n componentId: 'Text',\n});\n\nexport { Text, getTextProps };\n"],"names":["validAsValues","getTextProps","_ref","variant","weight","size","_ref$color","color","testID","textAlign","textDecorationLine","props","fontSize","fontWeight","fontStyle","lineHeight","fontFamily","componentName","throwBladeError","moduleName","message","concat","_Text","_ref2","ref","_ref2$as","as","_ref2$variant","_ref2$weight","truncateAfterLines","children","wordBreak","styledProps","_objectWithoutProperties","_excluded","_objectSpread","useValidateAsProp","_jsx","BaseText","getStyledProps","Text","assignWithoutSideEffects","React","forwardRef","displayName","componentId"],"mappings":"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"}
1
+ {"version":3,"file":"Text.js","sources":["../../../../../../../src/components/Typography/Text/Text.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unnecessary-type-assertion */\nimport type { ReactElement } from 'react';\nimport React from 'react';\nimport { BaseText } from '../BaseText';\nimport type { BaseTextProps, BaseTextSizes } from '../BaseText/types';\nimport { useValidateAsProp } from '../utils';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport type { BladeElementRef, TestID } from '~utils/types';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { throwBladeError } from '~utils/logger';\n\nconst validAsValues = ['p', 'span', 'div', 'abbr', 'figcaption', 'cite', 'q', 'label'] as const;\ntype TextCommonProps = {\n as?: typeof validAsValues[number];\n truncateAfterLines?: number;\n children: React.ReactNode;\n weight?: Extract<BaseTextProps['fontWeight'], 'regular' | 'medium' | 'semibold'>;\n /**\n * Overrides the color of the Text component.\n *\n * **Note** This takes priority over `type` and `contrast` prop to decide color of text\n */\n color?: BaseTextProps['color'];\n textAlign?: BaseTextProps['textAlign'];\n textDecorationLine?: BaseTextProps['textDecorationLine'];\n wordBreak?: BaseTextProps['wordBreak'];\n} & TestID &\n StyledPropsBlade;\n\nexport type TextVariant = 'body' | 'caption';\n\ntype TextBodyVariant = TextCommonProps & {\n variant?: Extract<TextVariant, 'body'>;\n size?: Extract<BaseTextSizes, 'xsmall' | 'small' | 'medium' | 'large'>;\n};\n\ntype TextCaptionVariant = TextCommonProps & {\n variant?: Extract<TextVariant, 'caption'>;\n size?: Extract<BaseTextSizes, 'small' | 'medium'>;\n};\n\nexport type TextProps<T> = T extends { variant: infer Variant }\n ? Variant extends 'caption'\n ? TextCaptionVariant\n : Variant extends 'body'\n ? TextBodyVariant\n : T\n : T;\n\ntype GetTextPropsReturn = Omit<BaseTextProps, 'children'>;\ntype GetTextProps<T extends { variant: TextVariant }> = Pick<\n TextProps<T>,\n 'variant' | 'weight' | 'size' | 'color' | 'testID' | 'textAlign' | 'textDecorationLine'\n>;\n\nconst getTextProps = <T extends { variant: TextVariant }>({\n variant,\n weight,\n size,\n color = 'surface.text.gray.normal',\n testID,\n textAlign,\n textDecorationLine,\n}: GetTextProps<T>): GetTextPropsReturn => {\n const props: GetTextPropsReturn = {\n color,\n fontSize: 100,\n fontWeight: weight ?? 'regular',\n fontStyle: 'normal',\n lineHeight: 100,\n fontFamily: 'text',\n componentName: 'text',\n testID,\n textAlign,\n textDecorationLine,\n };\n\n if (variant === 'caption') {\n // variant of caption can only have size of small\n if (size && size !== 'small' && size !== 'medium') {\n if (__DEV__) {\n throwBladeError({\n moduleName: 'Text',\n message: `size cannot be '${size}' when variant is 'caption'`,\n });\n }\n // Set size as small in case of invalid size\n size = 'small';\n }\n } else if (variant !== 'caption' && !size) {\n size = 'medium';\n }\n\n if (variant === 'body') {\n if (size === 'xsmall') {\n props.fontSize = 25;\n props.lineHeight = 25;\n }\n if (size === 'small') {\n props.fontSize = 75;\n props.lineHeight = 75;\n }\n if (size === 'medium') {\n props.fontSize = 100;\n props.lineHeight = 100;\n }\n if (size === 'large') {\n props.fontSize = 200;\n props.lineHeight = 200;\n }\n }\n if (variant === 'caption') {\n if (size === 'small') {\n props.fontSize = 50;\n props.lineHeight = 50;\n props.fontWeight = 'regular';\n }\n if (size === 'medium') {\n props.fontSize = 100;\n props.lineHeight = 50;\n props.fontWeight = 'regular';\n }\n }\n\n return props;\n};\n\nconst _Text = <T extends { variant: TextVariant }>(\n {\n as = 'p',\n variant = 'body',\n weight = 'regular',\n size,\n truncateAfterLines,\n children,\n color,\n testID,\n textAlign,\n textDecorationLine,\n wordBreak,\n ...styledProps\n }: TextProps<T>,\n ref: React.Ref<BladeElementRef>,\n): ReactElement => {\n const props: Omit<BaseTextProps, 'children'> = {\n as,\n truncateAfterLines,\n wordBreak,\n ...getTextProps({\n variant,\n weight,\n color,\n size,\n testID,\n textAlign,\n textDecorationLine,\n }),\n };\n\n useValidateAsProp({ componentName: 'Text', as, validAsValues });\n\n return (\n <BaseText ref={ref} {...props} {...getStyledProps(styledProps)}>\n {children}\n </BaseText>\n );\n};\n\nconst Text = assignWithoutSideEffects(React.forwardRef(_Text), {\n displayName: 'Text',\n componentId: 'Text',\n});\n\nexport { Text, getTextProps };\n"],"names":["validAsValues","getTextProps","_ref","variant","weight","size","_ref$color","color","testID","textAlign","textDecorationLine","props","fontSize","fontWeight","fontStyle","lineHeight","fontFamily","componentName","throwBladeError","moduleName","message","concat","_Text","_ref2","ref","_ref2$as","as","_ref2$variant","_ref2$weight","truncateAfterLines","children","wordBreak","styledProps","_objectWithoutProperties","_excluded","_objectSpread","useValidateAsProp","_jsx","BaseText","getStyledProps","Text","assignWithoutSideEffects","React","forwardRef","displayName","componentId"],"mappings":"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"}
@@ -125,6 +125,7 @@ export { DropdownIconButton } from './Dropdown/DropdownIconButton.js';
125
125
  export { DropdownFooter, DropdownHeader } from './Dropdown/DropdownHeaderFooter.js';
126
126
  export { FilterChipSelectInput } from './Dropdown/FilterChipSelectInput.web.js';
127
127
  export { FilterChipGroup } from './Dropdown/FilterChipGroup.web.js';
128
+ export { InputDropdownButton } from './Dropdown/InputDropdownButton.web.js';
128
129
  export { Elevate } from './Elevate/Elevate.web.js';
129
130
  export { Fade } from './Fade/Fade.web.js';
130
131
  export { FileUpload } from './FileUpload/FileUpload.web.js';
@@ -208,6 +209,7 @@ export { default as CheckSquareIcon } from './Icons/CheckSquareIcon/CheckSquareI
208
209
  export { default as ChevronDownIcon } from './Icons/ChevronDownIcon/ChevronDownIcon.js';
209
210
  export { default as ChevronLeftIcon } from './Icons/ChevronLeftIcon/ChevronLeftIcon.js';
210
211
  export { default as ChevronRightIcon } from './Icons/ChevronRightIcon/ChevronRightIcon.js';
212
+ export { default as ChevronUpDownIcon } from './Icons/ChevronUpDownIcon/ChevronUpDownIcon.js';
211
213
  export { default as ChevronUpIcon } from './Icons/ChevronUpIcon/ChevronUpIcon.js';
212
214
  export { default as ChevronsDownIcon } from './Icons/ChevronsDownIcon/ChevronsDownIcon.js';
213
215
  export { default as ChevronsLeftIcon } from './Icons/ChevronsLeftIcon/ChevronsLeftIcon.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,2 @@
1
+ export { useControlledDropdownInput } from './useControlledDropdownInput.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,108 @@
1
+ import React__default from 'react';
2
+ import isEmpty from '../lodashButBetter/isEmpty.js';
3
+ import '../index.js';
4
+ import { useFirstRender } from '../useFirstRender.js';
5
+ import '../fireNativeEvent/index.js';
6
+ import { useDropdown } from '../../components/Dropdown/useDropdown.js';
7
+ import { isBrowser } from '../platform/isBrowser.js';
8
+ import { fireNativeEvent } from '../fireNativeEvent/fireNativeEvent.web.js';
9
+
10
+ var useControlledDropdownInput = function useControlledDropdownInput(props) {
11
+ var isFirstRender = useFirstRender();
12
+ var _useDropdown = useDropdown(),
13
+ changeCallbackTriggerer = _useDropdown.changeCallbackTriggerer,
14
+ isControlled = _useDropdown.isControlled,
15
+ options = _useDropdown.options,
16
+ selectedIndices = _useDropdown.selectedIndices,
17
+ controlledValueIndices = _useDropdown.controlledValueIndices,
18
+ setSelectedIndices = _useDropdown.setSelectedIndices,
19
+ selectionType = _useDropdown.selectionType,
20
+ setIsControlled = _useDropdown.setIsControlled;
21
+ var getValuesArrayFromIndices = function getValuesArrayFromIndices() {
22
+ var indices = [];
23
+ if (isControlled) {
24
+ indices = controlledValueIndices;
25
+ } else {
26
+ indices = selectedIndices;
27
+ }
28
+ return indices.map(function (selectionIndex) {
29
+ return options[selectionIndex].value;
30
+ });
31
+ };
32
+ var selectValues = function selectValues(valuesToSelect) {
33
+ if (options.length > 0) {
34
+ // we use empty `''` for clearing the input
35
+ if (isEmpty(valuesToSelect)) {
36
+ setSelectedIndices([]);
37
+ } else if (typeof valuesToSelect === 'string') {
38
+ // single select control
39
+ var selectedItemIndex = options.findIndex(function (option) {
40
+ return option.value === valuesToSelect;
41
+ });
42
+ if (selectedItemIndex >= 0) {
43
+ setSelectedIndices([selectedItemIndex]);
44
+ }
45
+ } else {
46
+ // multiselect control
47
+
48
+ // Handles repeated values in user state
49
+ var uniqueValues = Array.from(new Set(valuesToSelect));
50
+ // Handle selectionType single with multiselect values
51
+ var userValues = selectionType === 'single' ? [valuesToSelect === null || valuesToSelect === void 0 ? void 0 : valuesToSelect[0]] : uniqueValues;
52
+ var selectedItemIndices = userValues.map(function (optionValue) {
53
+ return options.findIndex(function (option) {
54
+ return option.value === optionValue;
55
+ });
56
+ }).filter(function (value) {
57
+ return value >= 0;
58
+ });
59
+ setSelectedIndices(selectedItemIndices);
60
+ }
61
+ }
62
+ };
63
+
64
+ // Handles `defaultValue` prop
65
+ React__default.useEffect(function () {
66
+ if (options.length > 0 && props.defaultValue) {
67
+ selectValues(props.defaultValue);
68
+ }
69
+ // eslint-disable-next-line react-hooks/exhaustive-deps
70
+ }, [options.length]);
71
+
72
+ // Handles `value` prop
73
+ React__default.useEffect(function () {
74
+ if (options.length > 0 && props.value !== undefined) {
75
+ if (!isControlled) {
76
+ setIsControlled(true);
77
+ }
78
+ selectValues(props.value);
79
+
80
+ // in single select AutoComplete, we have to set inputValue of autocomplete according to the new selection.
81
+ if (selectionType === 'single' && !Array.isArray(props.value) && !props.isSelectInput) {
82
+ var _props$syncInputValue;
83
+ (_props$syncInputValue = props.syncInputValueWithSelection) === null || _props$syncInputValue === void 0 ? void 0 : _props$syncInputValue.call(props, props.value);
84
+ }
85
+ }
86
+ // eslint-disable-next-line react-hooks/exhaustive-deps
87
+ }, [props.value, options]);
88
+
89
+ // onChange behaviour
90
+ React__default.useEffect(function () {
91
+ // Ignore calling onChange on mount
92
+
93
+ if (!isFirstRender) {
94
+ var _props$onChange;
95
+ (_props$onChange = props.onChange) === null || _props$onChange === void 0 ? void 0 : _props$onChange.call(props, {
96
+ name: props.name,
97
+ values: getValuesArrayFromIndices()
98
+ });
99
+ if (isBrowser()) {
100
+ fireNativeEvent(props.triggererRef, ['change', 'input']);
101
+ }
102
+ }
103
+ // eslint-disable-next-line react-hooks/exhaustive-deps
104
+ }, [changeCallbackTriggerer]);
105
+ };
106
+
107
+ export { useControlledDropdownInput };
108
+ //# sourceMappingURL=useControlledDropdownInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useControlledDropdownInput.js","sources":["../../../../../../src/utils/useControlledDropdownInput/useControlledDropdownInput.tsx"],"sourcesContent":["import React from 'react';\nimport type { BaseDropdownInputTriggerProps } from '~components/Input/DropdownInputTriggers/types';\nimport isEmpty from '~utils/lodashButBetter/isEmpty';\nimport { isBrowser } from '~utils';\nimport { useFirstRender } from '~utils/useFirstRender';\nimport { fireNativeEvent } from '~utils/fireNativeEvent';\nimport { useDropdown } from '~components/Dropdown/useDropdown';\n\nexport type useControlledDropdownInputProps = Pick<\n BaseDropdownInputTriggerProps,\n | 'onChange'\n | 'name'\n | 'value'\n | 'defaultValue'\n | 'onInputValueChange'\n | 'syncInputValueWithSelection'\n | 'isSelectInput'\n> & {\n triggererRef: React.RefObject<HTMLElement>;\n};\n\nconst useControlledDropdownInput = (props: useControlledDropdownInputProps): void => {\n const isFirstRender = useFirstRender();\n const {\n changeCallbackTriggerer,\n isControlled,\n options,\n selectedIndices,\n controlledValueIndices,\n setSelectedIndices,\n selectionType,\n setIsControlled,\n } = useDropdown();\n\n const getValuesArrayFromIndices = (): string[] => {\n let indices: number[] = [];\n if (isControlled) {\n indices = controlledValueIndices;\n } else {\n indices = selectedIndices;\n }\n\n return indices.map((selectionIndex) => options[selectionIndex].value);\n };\n\n const selectValues = (valuesToSelect: string | string[]): void => {\n if (options.length > 0) {\n // we use empty `''` for clearing the input\n if (isEmpty(valuesToSelect)) {\n setSelectedIndices([]);\n } else if (typeof valuesToSelect === 'string') {\n // single select control\n const selectedItemIndex = options.findIndex((option) => option.value === valuesToSelect);\n if (selectedItemIndex >= 0) {\n setSelectedIndices([selectedItemIndex]);\n }\n } else {\n // multiselect control\n\n // Handles repeated values in user state\n const uniqueValues = Array.from(new Set(valuesToSelect));\n // Handle selectionType single with multiselect values\n const userValues = selectionType === 'single' ? [valuesToSelect?.[0]] : uniqueValues;\n\n const selectedItemIndices = userValues\n .map((optionValue) => options.findIndex((option) => option.value === optionValue))\n .filter((value) => value >= 0);\n\n setSelectedIndices(selectedItemIndices);\n }\n }\n };\n\n // Handles `defaultValue` prop\n React.useEffect(() => {\n if (options.length > 0 && props.defaultValue) {\n selectValues(props.defaultValue);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [options.length]);\n\n // Handles `value` prop\n React.useEffect(() => {\n if (options.length > 0 && props.value !== undefined) {\n if (!isControlled) {\n setIsControlled(true);\n }\n\n selectValues(props.value);\n\n // in single select AutoComplete, we have to set inputValue of autocomplete according to the new selection.\n if (selectionType === 'single' && !Array.isArray(props.value) && !props.isSelectInput) {\n props.syncInputValueWithSelection?.(props.value);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [props.value, options]);\n\n // onChange behaviour\n React.useEffect(() => {\n // Ignore calling onChange on mount\n\n if (!isFirstRender) {\n props.onChange?.({\n name: props.name,\n values: getValuesArrayFromIndices(),\n });\n if (isBrowser()) {\n fireNativeEvent(props.triggererRef, ['change', 'input']);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [changeCallbackTriggerer]);\n};\n\nexport { useControlledDropdownInput };\n"],"names":["useControlledDropdownInput","props","isFirstRender","useFirstRender","_useDropdown","useDropdown","changeCallbackTriggerer","isControlled","options","selectedIndices","controlledValueIndices","setSelectedIndices","selectionType","setIsControlled","getValuesArrayFromIndices","indices","map","selectionIndex","value","selectValues","valuesToSelect","length","isEmpty","selectedItemIndex","findIndex","option","uniqueValues","Array","from","Set","userValues","selectedItemIndices","optionValue","filter","React","useEffect","defaultValue","undefined","isArray","isSelectInput","_props$syncInputValue","syncInputValueWithSelection","call","_props$onChange","onChange","name","values","isBrowser","fireNativeEvent","triggererRef"],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
2
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
3
+ import React__default from 'react';
3
4
  import { useAccordion, useAccordionItemIndex } from './AccordionContext.js';
4
5
  import { componentIds } from './componentIds.js';
5
6
  import { BaseHeader } from '../BaseHeaderFooter/BaseHeader.js';
@@ -30,10 +31,20 @@ var _AccordionItemHeader = function _AccordionItemHeader(_ref) {
30
31
  rest = _objectWithoutProperties(_ref, _excluded);
31
32
  var _useAccordion = useAccordion(),
32
33
  size = _useAccordion.size,
33
- showNumberPrefix = _useAccordion.showNumberPrefix;
34
+ showNumberPrefix = _useAccordion.showNumberPrefix,
35
+ expandedIndex = _useAccordion.expandedIndex;
34
36
  var _useAccordionItemInde = useAccordionItemIndex(),
35
37
  index = _useAccordionItemInde.index,
36
38
  isDisabled = _useAccordionItemInde.isDisabled;
39
+ var isLeadingNumberOrIcon = React__default.useMemo(function () {
40
+ var _leading$type$name;
41
+ // Check if leading is a number
42
+ if (showNumberPrefix && typeof index === 'number') return true;
43
+
44
+ // Check if leading is an Icon component (name ends with "Icon")
45
+ if (leading && /*#__PURE__*/React__default.isValidElement(leading) && typeof leading.type === 'function' && (_leading$type$name = leading.type.name) !== null && _leading$type$name !== void 0 && _leading$type$name.endsWith('Icon')) return true;
46
+ return false;
47
+ }, [leading, showNumberPrefix, index]);
37
48
  return /*#__PURE__*/jsx(BaseBox, _objectSpread(_objectSpread({}, metaAttribute({
38
49
  name: MetaConstants.AccordionItemHeader
39
50
  })), {}, {
@@ -56,10 +67,15 @@ var _AccordionItemHeader = function _AccordionItemHeader(_ref) {
56
67
  isDisabled: isDisabled,
57
68
  showBackButton: false,
58
69
  showCloseButton: false,
59
- showDivider: false,
70
+ showDivider: expandedIndex === index,
60
71
  paddingX: "spacing.5",
61
72
  marginY: "spacing.5",
62
73
  size: size,
74
+ alignItems: !subtitle && !isLeadingNumberOrIcon ? 'center' : 'flex-start',
75
+ dividerProps: {
76
+ thickness: 'thinner',
77
+ marginX: 'spacing.5'
78
+ },
63
79
  trailingInteractionElement: /*#__PURE__*/jsx(CollapsibleChevronIcon, {
64
80
  color: isDisabled ? 'interactive.icon.gray.disabled' : 'interactive.icon.gray.muted',
65
81
  size: "large"
@@ -1 +1 @@
1
- {"version":3,"file":"AccordionItemHeader.js","sources":["../../../../../../src/components/Accordion/AccordionItemHeader.tsx"],"sourcesContent":["import { useAccordion, useAccordionItemIndex } from './AccordionContext';\nimport { componentIds } from './componentIds';\nimport type { BaseHeaderProps } from '~components/BaseHeaderFooter/BaseHeader';\nimport { BaseHeader } from '~components/BaseHeaderFooter/BaseHeader';\nimport { Text } from '~components/Typography';\nimport BaseBox from '~components/Box/BaseBox';\nimport { CollapsibleChevronIcon } from '~components/Collapsible/CollapsibleChevronIcon';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport type { DataAnalyticsAttribute } from '~utils/types';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\nconst _AccordionItemHeader = ({\n title,\n subtitle,\n leading,\n children,\n trailing,\n titleSuffix,\n ...rest\n}: Pick<\n BaseHeaderProps,\n 'title' | 'subtitle' | 'leading' | 'children' | 'trailing' | 'titleSuffix'\n> &\n DataAnalyticsAttribute): React.ReactElement => {\n const { size, showNumberPrefix } = useAccordion();\n const { index, isDisabled } = useAccordionItemIndex();\n\n return (\n <BaseBox {...metaAttribute({ name: MetaConstants.AccordionItemHeader })} flex=\"1\">\n <BaseHeader\n leading={\n showNumberPrefix && typeof index === 'number' ? (\n // we have to add -2px margin to align the number with title of BaseHeader\n <Text size={size} weight=\"semibold\" marginTop=\"-2px\" as=\"span\">\n {index + 1}.\n </Text>\n ) : (\n leading\n )\n }\n title={title}\n subtitle={subtitle}\n trailing={trailing}\n titleSuffix={titleSuffix}\n isDisabled={isDisabled}\n showBackButton={false}\n showCloseButton={false}\n showDivider={false}\n paddingX=\"spacing.5\"\n marginY=\"spacing.5\"\n size={size}\n trailingInteractionElement={\n <CollapsibleChevronIcon\n color={isDisabled ? 'interactive.icon.gray.disabled' : 'interactive.icon.gray.muted'}\n size=\"large\"\n />\n }\n {...makeAnalyticsAttribute(rest)}\n >\n {children}\n </BaseHeader>\n </BaseBox>\n );\n};\n\nconst AccordionItemHeader = assignWithoutSideEffects(_AccordionItemHeader, {\n componentId: componentIds.AccordionItemHeader,\n});\n\nexport { AccordionItemHeader };\n"],"names":["_AccordionItemHeader","_ref","title","subtitle","leading","children","trailing","titleSuffix","rest","_objectWithoutProperties","_excluded","_useAccordion","useAccordion","size","showNumberPrefix","_useAccordionItemInde","useAccordionItemIndex","index","isDisabled","_jsx","BaseBox","_objectSpread","metaAttribute","name","MetaConstants","AccordionItemHeader","flex","BaseHeader","_jsxs","Text","weight","marginTop","as","showBackButton","showCloseButton","showDivider","paddingX","marginY","trailingInteractionElement","CollapsibleChevronIcon","color","makeAnalyticsAttribute","assignWithoutSideEffects","componentId","componentIds"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAYA,IAAMA,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAAC,IAAA,EAYuB;AAAA,EAAA,IAX/CC,KAAK,GAAAD,IAAA,CAALC,KAAK;IACLC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IACRC,OAAO,GAAAH,IAAA,CAAPG,OAAO;IACPC,QAAQ,GAAAJ,IAAA,CAARI,QAAQ;IACRC,QAAQ,GAAAL,IAAA,CAARK,QAAQ;IACRC,WAAW,GAAAN,IAAA,CAAXM,WAAW;AACRC,IAAAA,IAAI,GAAAC,wBAAA,CAAAR,IAAA,EAAAS,SAAA,CAAA,CAAA;AAMP,EAAA,IAAAC,aAAA,GAAmCC,YAAY,EAAE;IAAzCC,IAAI,GAAAF,aAAA,CAAJE,IAAI;IAAEC,gBAAgB,GAAAH,aAAA,CAAhBG,gBAAgB,CAAA;AAC9B,EAAA,IAAAC,qBAAA,GAA8BC,qBAAqB,EAAE;IAA7CC,KAAK,GAAAF,qBAAA,CAALE,KAAK;IAAEC,UAAU,GAAAH,qBAAA,CAAVG,UAAU,CAAA;EAEzB,oBACEC,GAAA,CAACC,OAAO,EAAAC,aAAA,CAAAA,aAAA,CAAKC,EAAAA,EAAAA,aAAa,CAAC;IAAEC,IAAI,EAAEC,aAAa,CAACC,mBAAAA;AAAoB,GAAC,CAAC,CAAA,EAAA,EAAA,EAAA;AAAEC,IAAAA,IAAI,EAAC,GAAG;AAAArB,IAAAA,QAAA,eAC/Ec,GAAA,CAACQ,UAAU,EAAAN,aAAA,CAAAA,aAAA,CAAA;AACTjB,MAAAA,OAAO,EACLU,gBAAgB,IAAI,OAAOG,KAAK,KAAK,QAAQ;AAAA;AAC3C;AACAW,MAAAA,IAAA,CAACC,IAAI,EAAA;AAAChB,QAAAA,IAAI,EAAEA,IAAK;AAACiB,QAAAA,MAAM,EAAC,UAAU;AAACC,QAAAA,SAAS,EAAC,MAAM;AAACC,QAAAA,EAAE,EAAC,MAAM;AAAA3B,QAAAA,QAAA,EAC3DY,CAAAA,KAAK,GAAG,CAAC,EAAC,GACb,CAAA;OAAM,CAAC,GAEPb,OAEH;AACDF,MAAAA,KAAK,EAAEA,KAAM;AACbC,MAAAA,QAAQ,EAAEA,QAAS;AACnBG,MAAAA,QAAQ,EAAEA,QAAS;AACnBC,MAAAA,WAAW,EAAEA,WAAY;AACzBW,MAAAA,UAAU,EAAEA,UAAW;AACvBe,MAAAA,cAAc,EAAE,KAAM;AACtBC,MAAAA,eAAe,EAAE,KAAM;AACvBC,MAAAA,WAAW,EAAE,KAAM;AACnBC,MAAAA,QAAQ,EAAC,WAAW;AACpBC,MAAAA,OAAO,EAAC,WAAW;AACnBxB,MAAAA,IAAI,EAAEA,IAAK;MACXyB,0BAA0B,eACxBnB,GAAA,CAACoB,sBAAsB,EAAA;AACrBC,QAAAA,KAAK,EAAEtB,UAAU,GAAG,gCAAgC,GAAG,6BAA8B;AACrFL,QAAAA,IAAI,EAAC,OAAA;OACN,CAAA;KAEC4B,EAAAA,sBAAsB,CAACjC,IAAI,CAAC,CAAA,EAAA,EAAA,EAAA;AAAAH,MAAAA,QAAA,EAE/BA,QAAAA;KACS,CAAA,CAAA;AAAC,GAAA,CACN,CAAC,CAAA;AAEd,CAAC,CAAA;AAED,IAAMoB,mBAAmB,gBAAGiB,wBAAwB,CAAC1C,oBAAoB,EAAE;EACzE2C,WAAW,EAAEC,YAAY,CAACnB,mBAAAA;AAC5B,CAAC;;;;"}
1
+ {"version":3,"file":"AccordionItemHeader.js","sources":["../../../../../../src/components/Accordion/AccordionItemHeader.tsx"],"sourcesContent":["import React from 'react';\nimport { useAccordion, useAccordionItemIndex } from './AccordionContext';\nimport { componentIds } from './componentIds';\nimport type { BaseHeaderProps } from '~components/BaseHeaderFooter/BaseHeader';\nimport { BaseHeader } from '~components/BaseHeaderFooter/BaseHeader';\nimport { Text } from '~components/Typography';\nimport BaseBox from '~components/Box/BaseBox';\nimport { CollapsibleChevronIcon } from '~components/Collapsible/CollapsibleChevronIcon';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport type { DataAnalyticsAttribute } from '~utils/types';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\nconst _AccordionItemHeader = ({\n title,\n subtitle,\n leading,\n children,\n trailing,\n titleSuffix,\n ...rest\n}: Pick<\n BaseHeaderProps,\n 'title' | 'subtitle' | 'leading' | 'children' | 'trailing' | 'titleSuffix'\n> &\n DataAnalyticsAttribute): React.ReactElement => {\n const { size, showNumberPrefix, expandedIndex } = useAccordion();\n const { index, isDisabled } = useAccordionItemIndex();\n\n const isLeadingNumberOrIcon = React.useMemo(() => {\n // Check if leading is a number\n if (showNumberPrefix && typeof index === 'number') return true;\n\n // Check if leading is an Icon component (name ends with \"Icon\")\n if (\n leading &&\n React.isValidElement(leading) &&\n typeof leading.type === 'function' &&\n leading.type.name?.endsWith('Icon')\n )\n return true;\n\n return false;\n }, [leading, showNumberPrefix, index]);\n\n return (\n <BaseBox {...metaAttribute({ name: MetaConstants.AccordionItemHeader })} flex=\"1\">\n <BaseHeader\n leading={\n showNumberPrefix && typeof index === 'number' ? (\n // we have to add -2px margin to align the number with title of BaseHeader\n <Text size={size} weight=\"semibold\" marginTop=\"-2px\" as=\"span\">\n {index + 1}.\n </Text>\n ) : (\n leading\n )\n }\n title={title}\n subtitle={subtitle}\n trailing={trailing}\n titleSuffix={titleSuffix}\n isDisabled={isDisabled}\n showBackButton={false}\n showCloseButton={false}\n showDivider={expandedIndex === index}\n paddingX=\"spacing.5\"\n marginY=\"spacing.5\"\n size={size}\n alignItems={!subtitle && !isLeadingNumberOrIcon ? 'center' : 'flex-start'}\n dividerProps={{\n thickness: 'thinner',\n marginX: 'spacing.5',\n }}\n trailingInteractionElement={\n <CollapsibleChevronIcon\n color={isDisabled ? 'interactive.icon.gray.disabled' : 'interactive.icon.gray.muted'}\n size=\"large\"\n />\n }\n {...makeAnalyticsAttribute(rest)}\n >\n {children}\n </BaseHeader>\n </BaseBox>\n );\n};\n\nconst AccordionItemHeader = assignWithoutSideEffects(_AccordionItemHeader, {\n componentId: componentIds.AccordionItemHeader,\n});\n\nexport { AccordionItemHeader };\n"],"names":["_AccordionItemHeader","_ref","title","subtitle","leading","children","trailing","titleSuffix","rest","_objectWithoutProperties","_excluded","_useAccordion","useAccordion","size","showNumberPrefix","expandedIndex","_useAccordionItemInde","useAccordionItemIndex","index","isDisabled","isLeadingNumberOrIcon","React","useMemo","_leading$type$name","isValidElement","type","name","endsWith","_jsx","BaseBox","_objectSpread","metaAttribute","MetaConstants","AccordionItemHeader","flex","BaseHeader","_jsxs","Text","weight","marginTop","as","showBackButton","showCloseButton","showDivider","paddingX","marginY","alignItems","dividerProps","thickness","marginX","trailingInteractionElement","CollapsibleChevronIcon","color","makeAnalyticsAttribute","assignWithoutSideEffects","componentId","componentIds"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAaA,IAAMA,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAAC,IAAA,EAYuB;AAAA,EAAA,IAX/CC,KAAK,GAAAD,IAAA,CAALC,KAAK;IACLC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IACRC,OAAO,GAAAH,IAAA,CAAPG,OAAO;IACPC,QAAQ,GAAAJ,IAAA,CAARI,QAAQ;IACRC,QAAQ,GAAAL,IAAA,CAARK,QAAQ;IACRC,WAAW,GAAAN,IAAA,CAAXM,WAAW;AACRC,IAAAA,IAAI,GAAAC,wBAAA,CAAAR,IAAA,EAAAS,SAAA,CAAA,CAAA;AAMP,EAAA,IAAAC,aAAA,GAAkDC,YAAY,EAAE;IAAxDC,IAAI,GAAAF,aAAA,CAAJE,IAAI;IAAEC,gBAAgB,GAAAH,aAAA,CAAhBG,gBAAgB;IAAEC,aAAa,GAAAJ,aAAA,CAAbI,aAAa,CAAA;AAC7C,EAAA,IAAAC,qBAAA,GAA8BC,qBAAqB,EAAE;IAA7CC,KAAK,GAAAF,qBAAA,CAALE,KAAK;IAAEC,UAAU,GAAAH,qBAAA,CAAVG,UAAU,CAAA;AAEzB,EAAA,IAAMC,qBAAqB,GAAGC,cAAK,CAACC,OAAO,CAAC,YAAM;AAAA,IAAA,IAAAC,kBAAA,CAAA;AAChD;IACA,IAAIT,gBAAgB,IAAI,OAAOI,KAAK,KAAK,QAAQ,EAAE,OAAO,IAAI,CAAA;;AAE9D;AACA,IAAA,IACEd,OAAO,iBACPiB,cAAK,CAACG,cAAc,CAACpB,OAAO,CAAC,IAC7B,OAAOA,OAAO,CAACqB,IAAI,KAAK,UAAU,IAAAF,CAAAA,kBAAA,GAClCnB,OAAO,CAACqB,IAAI,CAACC,IAAI,cAAAH,kBAAA,KAAA,KAAA,CAAA,IAAjBA,kBAAA,CAAmBI,QAAQ,CAAC,MAAM,CAAC,EAEnC,OAAO,IAAI,CAAA;AAEb,IAAA,OAAO,KAAK,CAAA;GACb,EAAE,CAACvB,OAAO,EAAEU,gBAAgB,EAAEI,KAAK,CAAC,CAAC,CAAA;EAEtC,oBACEU,GAAA,CAACC,OAAO,EAAAC,aAAA,CAAAA,aAAA,CAAKC,EAAAA,EAAAA,aAAa,CAAC;IAAEL,IAAI,EAAEM,aAAa,CAACC,mBAAAA;AAAoB,GAAC,CAAC,CAAA,EAAA,EAAA,EAAA;AAAEC,IAAAA,IAAI,EAAC,GAAG;AAAA7B,IAAAA,QAAA,eAC/EuB,GAAA,CAACO,UAAU,EAAAL,aAAA,CAAAA,aAAA,CAAA;AACT1B,MAAAA,OAAO,EACLU,gBAAgB,IAAI,OAAOI,KAAK,KAAK,QAAQ;AAAA;AAC3C;AACAkB,MAAAA,IAAA,CAACC,IAAI,EAAA;AAACxB,QAAAA,IAAI,EAAEA,IAAK;AAACyB,QAAAA,MAAM,EAAC,UAAU;AAACC,QAAAA,SAAS,EAAC,MAAM;AAACC,QAAAA,EAAE,EAAC,MAAM;AAAAnC,QAAAA,QAAA,EAC3Da,CAAAA,KAAK,GAAG,CAAC,EAAC,GACb,CAAA;OAAM,CAAC,GAEPd,OAEH;AACDF,MAAAA,KAAK,EAAEA,KAAM;AACbC,MAAAA,QAAQ,EAAEA,QAAS;AACnBG,MAAAA,QAAQ,EAAEA,QAAS;AACnBC,MAAAA,WAAW,EAAEA,WAAY;AACzBY,MAAAA,UAAU,EAAEA,UAAW;AACvBsB,MAAAA,cAAc,EAAE,KAAM;AACtBC,MAAAA,eAAe,EAAE,KAAM;MACvBC,WAAW,EAAE5B,aAAa,KAAKG,KAAM;AACrC0B,MAAAA,QAAQ,EAAC,WAAW;AACpBC,MAAAA,OAAO,EAAC,WAAW;AACnBhC,MAAAA,IAAI,EAAEA,IAAK;MACXiC,UAAU,EAAE,CAAC3C,QAAQ,IAAI,CAACiB,qBAAqB,GAAG,QAAQ,GAAG,YAAa;AAC1E2B,MAAAA,YAAY,EAAE;AACZC,QAAAA,SAAS,EAAE,SAAS;AACpBC,QAAAA,OAAO,EAAE,WAAA;OACT;MACFC,0BAA0B,eACxBtB,GAAA,CAACuB,sBAAsB,EAAA;AACrBC,QAAAA,KAAK,EAAEjC,UAAU,GAAG,gCAAgC,GAAG,6BAA8B;AACrFN,QAAAA,IAAI,EAAC,OAAA;OACN,CAAA;KAECwC,EAAAA,sBAAsB,CAAC7C,IAAI,CAAC,CAAA,EAAA,EAAA,EAAA;AAAAH,MAAAA,QAAA,EAE/BA,QAAAA;KACS,CAAA,CAAA;AAAC,GAAA,CACN,CAAC,CAAA;AAEd,CAAC,CAAA;AAED,IAAM4B,mBAAmB,gBAAGqB,wBAAwB,CAACtD,oBAAoB,EAAE;EACzEuD,WAAW,EAAEC,YAAY,CAACvB,mBAAAA;AAC5B,CAAC;;;;"}
@@ -19,7 +19,6 @@ var StyledAccordionButton = /*#__PURE__*/styled.button.withConfig({
19
19
  return _objectSpread(_objectSpread({}, commonStyles), {}, {
20
20
  backgroundColor: getBackgroundColor({
21
21
  theme: theme,
22
- isExpanded: isExpanded,
23
22
  isActive: false
24
23
  }),
25
24
  transitionProperty: 'background-color, box-shadow, border-radius, color',
@@ -33,10 +32,12 @@ var StyledAccordionButton = /*#__PURE__*/styled.button.withConfig({
33
32
  '&:hover, &:focus-visible': {
34
33
  backgroundColor: getBackgroundColor({
35
34
  theme: theme,
36
- isExpanded: isExpanded,
37
35
  isActive: true
38
36
  }),
39
- color: theme.colors.interactive.icon.gray.subtle
37
+ color: theme.colors.interactive.icon.gray.subtle,
38
+ '& [data-blade-component="divider"]': {
39
+ opacity: 0
40
+ }
40
41
  },
41
42
  '&:focus-visible': _objectSpread(_objectSpread({}, getFocusRingStyles({
42
43
  theme: theme
@@ -1 +1 @@
1
- {"version":3,"file":"StyledAccordionButton.web.js","sources":["../../../../../../src/components/Accordion/StyledAccordionButton.web.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport type { StyledAccordionButtonProps } from './types';\nimport {\n getBackgroundColor,\n getCommonAccordionButtonStyles,\n getTransitionDuration,\n getTransitionEasing,\n} from './commonStyles';\nimport { castWebType } from '~utils';\nimport { getFocusRingStyles } from '~utils/getFocusRingStyles';\n\nconst StyledAccordionButton = styled.button<StyledAccordionButtonProps>((props) => {\n const { theme, isExpanded, disabled } = props;\n const commonStyles = getCommonAccordionButtonStyles(props);\n return {\n ...commonStyles,\n backgroundColor: getBackgroundColor({ theme, isExpanded, isActive: false }),\n transitionProperty: 'background-color, box-shadow, border-radius, color',\n transitionDuration: castWebType(getTransitionDuration(theme)),\n transitionTimingFunction: castWebType(getTransitionEasing(theme)),\n cursor: disabled ? 'not-allowed' : 'pointer',\n color: theme.colors.interactive.icon.gray[isExpanded ? 'subtle' : 'muted'],\n width: '100%',\n border: 'none',\n textAlign: 'left',\n\n '&:hover, &:focus-visible': {\n backgroundColor: getBackgroundColor({ theme, isExpanded, isActive: true }),\n color: theme.colors.interactive.icon.gray.subtle,\n },\n '&:focus-visible': {\n ...getFocusRingStyles({ theme }),\n // only need border radius on the focus ring\n borderRadius: theme.border.radius.small,\n },\n };\n});\n\nexport { StyledAccordionButton };\n"],"names":["StyledAccordionButton","styled","button","withConfig","displayName","componentId","props","theme","isExpanded","disabled","commonStyles","getCommonAccordionButtonStyles","_objectSpread","backgroundColor","getBackgroundColor","isActive","transitionProperty","transitionDuration","castWebType","getTransitionDuration","transitionTimingFunction","getTransitionEasing","cursor","color","colors","interactive","icon","gray","width","border","textAlign","subtle","getFocusRingStyles","borderRadius","radius","small"],"mappings":";;;;;;;;;;AAWA,IAAMA,qBAAqB,gBAAGC,MAAM,CAACC,MAAM,CAAAC,UAAA,CAAA;EAAAC,WAAA,EAAA,iDAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAA6B,CAAA,CAAA,UAACC,KAAK,EAAK;AACjF,EAAA,IAAQC,KAAK,GAA2BD,KAAK,CAArCC,KAAK;IAAEC,UAAU,GAAeF,KAAK,CAA9BE,UAAU;IAAEC,QAAQ,GAAKH,KAAK,CAAlBG,QAAQ,CAAA;AACnC,EAAA,IAAMC,YAAY,GAAGC,8BAA8B,CAACL,KAAK,CAAC,CAAA;AAC1D,EAAA,OAAAM,aAAA,CAAAA,aAAA,CAAA,EAAA,EACKF,YAAY,CAAA,EAAA,EAAA,EAAA;IACfG,eAAe,EAAEC,kBAAkB,CAAC;AAAEP,MAAAA,KAAK,EAALA,KAAK;AAAEC,MAAAA,UAAU,EAAVA,UAAU;AAAEO,MAAAA,QAAQ,EAAE,KAAA;AAAM,KAAC,CAAC;AAC3EC,IAAAA,kBAAkB,EAAE,oDAAoD;AACxEC,IAAAA,kBAAkB,EAAEC,WAAW,CAACC,qBAAqB,CAACZ,KAAK,CAAC,CAAC;AAC7Da,IAAAA,wBAAwB,EAAEF,WAAW,CAACG,mBAAmB,CAACd,KAAK,CAAC,CAAC;AACjEe,IAAAA,MAAM,EAAEb,QAAQ,GAAG,aAAa,GAAG,SAAS;AAC5Cc,IAAAA,KAAK,EAAEhB,KAAK,CAACiB,MAAM,CAACC,WAAW,CAACC,IAAI,CAACC,IAAI,CAACnB,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAC;AAC1EoB,IAAAA,KAAK,EAAE,MAAM;AACbC,IAAAA,MAAM,EAAE,MAAM;AACdC,IAAAA,SAAS,EAAE,MAAM;AAEjB,IAAA,0BAA0B,EAAE;MAC1BjB,eAAe,EAAEC,kBAAkB,CAAC;AAAEP,QAAAA,KAAK,EAALA,KAAK;AAAEC,QAAAA,UAAU,EAAVA,UAAU;AAAEO,QAAAA,QAAQ,EAAE,IAAA;AAAK,OAAC,CAAC;MAC1EQ,KAAK,EAAEhB,KAAK,CAACiB,MAAM,CAACC,WAAW,CAACC,IAAI,CAACC,IAAI,CAACI,MAAAA;KAC3C;AACD,IAAA,iBAAiB,EAAAnB,aAAA,CAAAA,aAAA,CAAA,EAAA,EACZoB,kBAAkB,CAAC;AAAEzB,MAAAA,KAAK,EAALA,KAAAA;AAAM,KAAC,CAAC,CAAA,EAAA,EAAA,EAAA;AAChC;AACA0B,MAAAA,YAAY,EAAE1B,KAAK,CAACsB,MAAM,CAACK,MAAM,CAACC,KAAAA;AAAK,KAAA,CAAA;AACxC,GAAA,CAAA,CAAA;AAEL,CAAC;;;;"}
1
+ {"version":3,"file":"StyledAccordionButton.web.js","sources":["../../../../../../src/components/Accordion/StyledAccordionButton.web.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport type { StyledAccordionButtonProps } from './types';\nimport {\n getBackgroundColor,\n getCommonAccordionButtonStyles,\n getTransitionDuration,\n getTransitionEasing,\n} from './commonStyles';\nimport { castWebType } from '~utils';\nimport { getFocusRingStyles } from '~utils/getFocusRingStyles';\n\nconst StyledAccordionButton = styled.button<StyledAccordionButtonProps>((props) => {\n const { theme, isExpanded, disabled } = props;\n const commonStyles = getCommonAccordionButtonStyles(props);\n return {\n ...commonStyles,\n backgroundColor: getBackgroundColor({ theme, isActive: false }),\n transitionProperty: 'background-color, box-shadow, border-radius, color',\n transitionDuration: castWebType(getTransitionDuration(theme)),\n transitionTimingFunction: castWebType(getTransitionEasing(theme)),\n cursor: disabled ? 'not-allowed' : 'pointer',\n color: theme.colors.interactive.icon.gray[isExpanded ? 'subtle' : 'muted'],\n width: '100%',\n border: 'none',\n textAlign: 'left',\n\n '&:hover, &:focus-visible': {\n backgroundColor: getBackgroundColor({ theme, isActive: true }),\n color: theme.colors.interactive.icon.gray.subtle,\n\n '& [data-blade-component=\"divider\"]': {\n opacity: 0,\n },\n },\n '&:focus-visible': {\n ...getFocusRingStyles({ theme }),\n // only need border radius on the focus ring\n borderRadius: theme.border.radius.small,\n },\n };\n});\n\nexport { StyledAccordionButton };\n"],"names":["StyledAccordionButton","styled","button","withConfig","displayName","componentId","props","theme","isExpanded","disabled","commonStyles","getCommonAccordionButtonStyles","_objectSpread","backgroundColor","getBackgroundColor","isActive","transitionProperty","transitionDuration","castWebType","getTransitionDuration","transitionTimingFunction","getTransitionEasing","cursor","color","colors","interactive","icon","gray","width","border","textAlign","subtle","opacity","getFocusRingStyles","borderRadius","radius","small"],"mappings":";;;;;;;;;;AAWA,IAAMA,qBAAqB,gBAAGC,MAAM,CAACC,MAAM,CAAAC,UAAA,CAAA;EAAAC,WAAA,EAAA,iDAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAA6B,CAAA,CAAA,UAACC,KAAK,EAAK;AACjF,EAAA,IAAQC,KAAK,GAA2BD,KAAK,CAArCC,KAAK;IAAEC,UAAU,GAAeF,KAAK,CAA9BE,UAAU;IAAEC,QAAQ,GAAKH,KAAK,CAAlBG,QAAQ,CAAA;AACnC,EAAA,IAAMC,YAAY,GAAGC,8BAA8B,CAACL,KAAK,CAAC,CAAA;AAC1D,EAAA,OAAAM,aAAA,CAAAA,aAAA,CAAA,EAAA,EACKF,YAAY,CAAA,EAAA,EAAA,EAAA;IACfG,eAAe,EAAEC,kBAAkB,CAAC;AAAEP,MAAAA,KAAK,EAALA,KAAK;AAAEQ,MAAAA,QAAQ,EAAE,KAAA;AAAM,KAAC,CAAC;AAC/DC,IAAAA,kBAAkB,EAAE,oDAAoD;AACxEC,IAAAA,kBAAkB,EAAEC,WAAW,CAACC,qBAAqB,CAACZ,KAAK,CAAC,CAAC;AAC7Da,IAAAA,wBAAwB,EAAEF,WAAW,CAACG,mBAAmB,CAACd,KAAK,CAAC,CAAC;AACjEe,IAAAA,MAAM,EAAEb,QAAQ,GAAG,aAAa,GAAG,SAAS;AAC5Cc,IAAAA,KAAK,EAAEhB,KAAK,CAACiB,MAAM,CAACC,WAAW,CAACC,IAAI,CAACC,IAAI,CAACnB,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAC;AAC1EoB,IAAAA,KAAK,EAAE,MAAM;AACbC,IAAAA,MAAM,EAAE,MAAM;AACdC,IAAAA,SAAS,EAAE,MAAM;AAEjB,IAAA,0BAA0B,EAAE;MAC1BjB,eAAe,EAAEC,kBAAkB,CAAC;AAAEP,QAAAA,KAAK,EAALA,KAAK;AAAEQ,QAAAA,QAAQ,EAAE,IAAA;AAAK,OAAC,CAAC;MAC9DQ,KAAK,EAAEhB,KAAK,CAACiB,MAAM,CAACC,WAAW,CAACC,IAAI,CAACC,IAAI,CAACI,MAAM;AAEhD,MAAA,oCAAoC,EAAE;AACpCC,QAAAA,OAAO,EAAE,CAAA;AACX,OAAA;KACD;AACD,IAAA,iBAAiB,EAAApB,aAAA,CAAAA,aAAA,CAAA,EAAA,EACZqB,kBAAkB,CAAC;AAAE1B,MAAAA,KAAK,EAALA,KAAAA;AAAM,KAAC,CAAC,CAAA,EAAA,EAAA,EAAA;AAChC;AACA2B,MAAAA,YAAY,EAAE3B,KAAK,CAACsB,MAAM,CAACM,MAAM,CAACC,KAAAA;AAAK,KAAA,CAAA;AACxC,GAAA,CAAA,CAAA;AAEL,CAAC;;;;"}
@@ -12,19 +12,9 @@ var getTransitionEasing = function getTransitionEasing(theme) {
12
12
  };
13
13
  var getBackgroundColor = function getBackgroundColor(_ref) {
14
14
  var theme = _ref.theme,
15
- isExpanded = _ref.isExpanded,
16
15
  isActive = _ref.isActive;
17
16
  var gray = theme.colors.interactive.background.gray;
18
- if (isExpanded) {
19
- if (isActive) {
20
- return gray.fadedHighlighted;
21
- }
22
- return gray.faded;
23
- }
24
- if (isActive) {
25
- return gray.faded;
26
- }
27
- return theme.colors.transparent;
17
+ return isActive ? gray.faded : theme.colors.transparent;
28
18
  };
29
19
  var getCommonAccordionButtonStyles = function getCommonAccordionButtonStyles(props) {
30
20
  var theme = props.theme;
@@ -1 +1 @@
1
- {"version":3,"file":"commonStyles.js","sources":["../../../../../../src/components/Accordion/commonStyles.ts"],"sourcesContent":["import type { CSSObject, StyledProps } from 'styled-components';\nimport type { StyledAccordionButtonProps } from './types';\nimport type { Theme } from '~components/BladeProvider';\nimport { makeMotionTime } from '~utils';\n\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nconst getTransitionDuration = (theme: Theme) => makeMotionTime(theme.motion.duration['2xquick']);\n\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nconst getTransitionEasing = (theme: Theme) => theme.motion.easing.standard;\n\nconst getBackgroundColor = ({\n theme,\n isExpanded,\n isActive,\n}: {\n theme: Theme;\n isExpanded: boolean;\n isActive: boolean;\n}): string => {\n const { gray } = theme.colors.interactive.background;\n\n if (isExpanded) {\n if (isActive) {\n return gray.fadedHighlighted;\n }\n\n return gray.faded;\n }\n\n if (isActive) {\n return gray.faded;\n }\n\n return theme.colors.transparent;\n};\n\nconst getCommonAccordionButtonStyles = (\n props: StyledProps<StyledAccordionButtonProps>,\n): CSSObject => {\n const { theme } = props;\n\n return {\n padding: theme.spacing[0],\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n };\n};\n\nexport {\n getTransitionDuration,\n getTransitionEasing,\n getBackgroundColor,\n getCommonAccordionButtonStyles,\n};\n"],"names":["getTransitionDuration","theme","makeMotionTime","motion","duration","getTransitionEasing","easing","standard","getBackgroundColor","_ref","isExpanded","isActive","gray","colors","interactive","background","fadedHighlighted","faded","transparent","getCommonAccordionButtonStyles","props","padding","spacing","display","flexDirection","alignItems","justifyContent"],"mappings":";;;AAKA;AACA,IAAMA,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAIC,KAAY,EAAA;EAAA,OAAKC,cAAc,CAACD,KAAK,CAACE,MAAM,CAACC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAA;AAAA,EAAA;;AAEhG;AACA,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAIJ,KAAY,EAAA;AAAA,EAAA,OAAKA,KAAK,CAACE,MAAM,CAACG,MAAM,CAACC,QAAQ,CAAA;AAAA,EAAA;AAE1E,IAAMC,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAAC,IAAA,EAQV;AAAA,EAAA,IAPZR,KAAK,GAAAQ,IAAA,CAALR,KAAK;IACLS,UAAU,GAAAD,IAAA,CAAVC,UAAU;IACVC,QAAQ,GAAAF,IAAA,CAARE,QAAQ,CAAA;EAMR,IAAQC,IAAI,GAAKX,KAAK,CAACY,MAAM,CAACC,WAAW,CAACC,UAAU,CAA5CH,IAAI,CAAA;AAEZ,EAAA,IAAIF,UAAU,EAAE;AACd,IAAA,IAAIC,QAAQ,EAAE;MACZ,OAAOC,IAAI,CAACI,gBAAgB,CAAA;AAC9B,KAAA;IAEA,OAAOJ,IAAI,CAACK,KAAK,CAAA;AACnB,GAAA;AAEA,EAAA,IAAIN,QAAQ,EAAE;IACZ,OAAOC,IAAI,CAACK,KAAK,CAAA;AACnB,GAAA;AAEA,EAAA,OAAOhB,KAAK,CAACY,MAAM,CAACK,WAAW,CAAA;AACjC,EAAC;AAED,IAAMC,8BAA8B,GAAG,SAAjCA,8BAA8BA,CAClCC,KAA8C,EAChC;AACd,EAAA,IAAQnB,KAAK,GAAKmB,KAAK,CAAfnB,KAAK,CAAA;EAEb,OAAO;AACLoB,IAAAA,OAAO,EAAEpB,KAAK,CAACqB,OAAO,CAAC,CAAC,CAAC;AACzBC,IAAAA,OAAO,EAAE,MAAM;AACfC,IAAAA,aAAa,EAAE,KAAK;AACpBC,IAAAA,UAAU,EAAE,QAAQ;AACpBC,IAAAA,cAAc,EAAE,eAAA;GACjB,CAAA;AACH;;;;"}
1
+ {"version":3,"file":"commonStyles.js","sources":["../../../../../../src/components/Accordion/commonStyles.ts"],"sourcesContent":["import type { CSSObject, StyledProps } from 'styled-components';\nimport type { StyledAccordionButtonProps } from './types';\nimport type { Theme } from '~components/BladeProvider';\nimport { makeMotionTime } from '~utils';\n\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nconst getTransitionDuration = (theme: Theme) => makeMotionTime(theme.motion.duration['2xquick']);\n\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nconst getTransitionEasing = (theme: Theme) => theme.motion.easing.standard;\n\nconst getBackgroundColor = ({ theme, isActive }: { theme: Theme; isActive: boolean }): string => {\n const { gray } = theme.colors.interactive.background;\n\n return isActive ? gray.faded : theme.colors.transparent;\n};\n\nconst getCommonAccordionButtonStyles = (\n props: StyledProps<StyledAccordionButtonProps>,\n): CSSObject => {\n const { theme } = props;\n\n return {\n padding: theme.spacing[0],\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n };\n};\n\nexport {\n getTransitionDuration,\n getTransitionEasing,\n getBackgroundColor,\n getCommonAccordionButtonStyles,\n};\n"],"names":["getTransitionDuration","theme","makeMotionTime","motion","duration","getTransitionEasing","easing","standard","getBackgroundColor","_ref","isActive","gray","colors","interactive","background","faded","transparent","getCommonAccordionButtonStyles","props","padding","spacing","display","flexDirection","alignItems","justifyContent"],"mappings":";;;AAKA;AACA,IAAMA,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAIC,KAAY,EAAA;EAAA,OAAKC,cAAc,CAACD,KAAK,CAACE,MAAM,CAACC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAA;AAAA,EAAA;;AAEhG;AACA,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAIJ,KAAY,EAAA;AAAA,EAAA,OAAKA,KAAK,CAACE,MAAM,CAACG,MAAM,CAACC,QAAQ,CAAA;AAAA,EAAA;AAE1E,IAAMC,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAAC,IAAA,EAAyE;AAAA,EAAA,IAAnER,KAAK,GAAAQ,IAAA,CAALR,KAAK;IAAES,QAAQ,GAAAD,IAAA,CAARC,QAAQ,CAAA;EAC3C,IAAQC,IAAI,GAAKV,KAAK,CAACW,MAAM,CAACC,WAAW,CAACC,UAAU,CAA5CH,IAAI,CAAA;EAEZ,OAAOD,QAAQ,GAAGC,IAAI,CAACI,KAAK,GAAGd,KAAK,CAACW,MAAM,CAACI,WAAW,CAAA;AACzD,EAAC;AAED,IAAMC,8BAA8B,GAAG,SAAjCA,8BAA8BA,CAClCC,KAA8C,EAChC;AACd,EAAA,IAAQjB,KAAK,GAAKiB,KAAK,CAAfjB,KAAK,CAAA;EAEb,OAAO;AACLkB,IAAAA,OAAO,EAAElB,KAAK,CAACmB,OAAO,CAAC,CAAC,CAAC;AACzBC,IAAAA,OAAO,EAAE,MAAM;AACfC,IAAAA,aAAa,EAAE,KAAK;AACpBC,IAAAA,UAAU,EAAE,QAAQ;AACpBC,IAAAA,cAAc,EAAE,eAAA;GACjB,CAAA;AACH;;;;"}
@@ -248,6 +248,7 @@ var _ActionListItem = function _ActionListItem(props) {
248
248
  }, [activeIndex]);
249
249
  var hasAutoComplete = hasAutoCompleteInHeader || dropdownTriggerer === dropdownComponentIds.triggers.AutoComplete;
250
250
  var hasFilterChipSelectInput = dropdownTriggerer === dropdownComponentIds.triggers.FilterChipSelectInput;
251
+ var hasInputDropdownButton = dropdownTriggerer === dropdownComponentIds.triggers.InputDropdownButton;
251
252
  var renderOnWebAs = props.href ? 'a' : 'button';
252
253
  /**
253
254
  * In SelectInput, returns the isSelected according to selected indexes in the state
@@ -256,7 +257,7 @@ var _ActionListItem = function _ActionListItem(props) {
256
257
  * isSelected prop explicitly is the only way to select item in menu
257
258
  */
258
259
  var getIsSelected = function getIsSelected() {
259
- if (dropdownTriggerer === dropdownComponentIds.triggers.SelectInput || hasAutoComplete || hasFilterChipSelectInput) {
260
+ if (dropdownTriggerer === dropdownComponentIds.triggers.SelectInput || hasAutoComplete || hasFilterChipSelectInput || hasInputDropdownButton) {
260
261
  if (typeof props._index === 'number') {
261
262
  return selectedIndices.includes(props._index);
262
263
  }