@channel.io/bezier-react 2.0.5 → 2.0.7

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 (200) hide show
  1. package/dist/cjs/components/AlphaAvatar/Avatar.js.map +1 -1
  2. package/dist/cjs/components/AlphaAvatarGroup/AvatarGroup.js.map +1 -1
  3. package/dist/cjs/components/AlphaButton/Button.js +18 -10
  4. package/dist/cjs/components/AlphaButton/Button.js.map +1 -1
  5. package/dist/cjs/components/AlphaFloatingButton/FloatingButton.js +18 -9
  6. package/dist/cjs/components/AlphaFloatingButton/FloatingButton.js.map +1 -1
  7. package/dist/cjs/components/AlphaFloatingIconButton/FloatingIconButton.js +57 -0
  8. package/dist/cjs/components/AlphaFloatingIconButton/FloatingIconButton.js.map +1 -0
  9. package/dist/cjs/components/AlphaFloatingIconButton/FloatingIconButton.module.scss.js +8 -0
  10. package/dist/cjs/components/AlphaFloatingIconButton/FloatingIconButton.module.scss.js.map +1 -0
  11. package/dist/cjs/components/AlphaIconButton/IconButton.js +5 -5
  12. package/dist/cjs/components/AlphaIconButton/IconButton.js.map +1 -1
  13. package/dist/cjs/components/AlphaSpinner/Spinner.js +38 -0
  14. package/dist/cjs/components/AlphaSpinner/Spinner.js.map +1 -0
  15. package/dist/cjs/components/AlphaSpinner/Spinner.module.scss.js +8 -0
  16. package/dist/cjs/components/AlphaSpinner/Spinner.module.scss.js.map +1 -0
  17. package/dist/cjs/components/AutoFocus/AutoFocus.js +2 -1
  18. package/dist/cjs/components/AutoFocus/AutoFocus.js.map +1 -1
  19. package/dist/cjs/components/Avatar/Avatar.js.map +1 -1
  20. package/dist/cjs/components/AvatarGroup/AvatarGroup.js.map +1 -1
  21. package/dist/cjs/components/Banner/Banner.js.map +1 -1
  22. package/dist/cjs/components/BaseTagBadge/BaseTagBadge.js +3 -2
  23. package/dist/cjs/components/BaseTagBadge/BaseTagBadge.js.map +1 -1
  24. package/dist/cjs/components/Box/Box.js.map +1 -1
  25. package/dist/cjs/components/Button/Button.js.map +1 -1
  26. package/dist/cjs/components/Center/Center.js.map +1 -1
  27. package/dist/cjs/components/CheckableAvatar/CheckableAvatar.js.map +1 -1
  28. package/dist/cjs/components/Emoji/Emoji.js.map +1 -1
  29. package/dist/cjs/components/FeatureProvider/FeatureProvider.js +2 -1
  30. package/dist/cjs/components/FeatureProvider/FeatureProvider.js.map +1 -1
  31. package/dist/cjs/components/FeatureProvider/SmoothCornersFeature/smoothCornersScript.js.map +1 -1
  32. package/dist/cjs/components/FormControl/FormControl.js.map +1 -1
  33. package/dist/cjs/components/LegacyStack/LegacyStack/LegacyStack.js.map +1 -1
  34. package/dist/cjs/components/LegacyStack/LegacyStackItem/LegacyStackItem.js.map +1 -1
  35. package/dist/cjs/components/LegacyTooltip/utils.js.map +1 -1
  36. package/dist/cjs/components/ListItem/ListItem.js.map +1 -1
  37. package/dist/cjs/components/Modal/Modal.js.map +1 -1
  38. package/dist/cjs/components/NavGroup/NavGroup.js.map +1 -1
  39. package/dist/cjs/components/OutlineItem/OutlineItem.js.map +1 -1
  40. package/dist/cjs/components/Overlay/Overlay.js +3 -2
  41. package/dist/cjs/components/Overlay/Overlay.js.map +1 -1
  42. package/dist/cjs/components/Overlay/utils.js.map +1 -1
  43. package/dist/cjs/components/ProgressBar/ProgressBar.js.map +1 -1
  44. package/dist/cjs/components/SegmentedControl/SegmentedControl.js.map +1 -1
  45. package/dist/cjs/components/Slider/Slider.js.map +1 -1
  46. package/dist/cjs/components/SmoothCornersBox/SmoothCornersBox.js.map +1 -1
  47. package/dist/cjs/components/Spinner/Spinner.js.map +1 -1
  48. package/dist/cjs/components/Stack/Stack.js.map +1 -1
  49. package/dist/cjs/components/Status/Status.js.map +1 -1
  50. package/dist/cjs/components/Switch/Switch.js.map +1 -1
  51. package/dist/cjs/components/Tabs/Tabs.js.map +1 -1
  52. package/dist/cjs/components/Text/Text.js.map +1 -1
  53. package/dist/cjs/components/TextArea/TextArea.js +2 -1
  54. package/dist/cjs/components/TextArea/TextArea.js.map +1 -1
  55. package/dist/cjs/components/TextField/TextField.js.map +1 -1
  56. package/dist/cjs/components/Toast/Toast.js +3 -2
  57. package/dist/cjs/components/Toast/Toast.js.map +1 -1
  58. package/dist/cjs/hooks/useIsomorphicLayoutEffect.js +13 -0
  59. package/dist/cjs/hooks/useIsomorphicLayoutEffect.js.map +1 -0
  60. package/dist/cjs/hooks/useMergeRefs.js.map +1 -1
  61. package/dist/cjs/index.js +6 -2
  62. package/dist/cjs/index.js.map +1 -1
  63. package/dist/cjs/styles.css +1 -1
  64. package/dist/cjs/types/props-helpers.js.map +1 -1
  65. package/dist/cjs/utils/react.js.map +1 -1
  66. package/dist/cjs/utils/string.js.map +1 -1
  67. package/dist/cjs/utils/style.js.map +1 -1
  68. package/dist/esm/components/AlphaAvatar/Avatar.mjs.map +1 -1
  69. package/dist/esm/components/AlphaAvatarGroup/AvatarGroup.mjs.map +1 -1
  70. package/dist/esm/components/AlphaButton/Button.mjs +18 -10
  71. package/dist/esm/components/AlphaButton/Button.mjs.map +1 -1
  72. package/dist/esm/components/AlphaFloatingButton/FloatingButton.mjs +18 -9
  73. package/dist/esm/components/AlphaFloatingButton/FloatingButton.mjs.map +1 -1
  74. package/dist/esm/components/AlphaFloatingIconButton/FloatingIconButton.mjs +55 -0
  75. package/dist/esm/components/AlphaFloatingIconButton/FloatingIconButton.mjs.map +1 -0
  76. package/dist/esm/components/AlphaFloatingIconButton/FloatingIconButton.module.scss.mjs +4 -0
  77. package/dist/esm/components/AlphaFloatingIconButton/FloatingIconButton.module.scss.mjs.map +1 -0
  78. package/dist/esm/components/AlphaIconButton/IconButton.mjs +5 -5
  79. package/dist/esm/components/AlphaIconButton/IconButton.mjs.map +1 -1
  80. package/dist/esm/components/AlphaSpinner/Spinner.mjs +35 -0
  81. package/dist/esm/components/AlphaSpinner/Spinner.mjs.map +1 -0
  82. package/dist/esm/components/AlphaSpinner/Spinner.module.scss.mjs +4 -0
  83. package/dist/esm/components/AlphaSpinner/Spinner.module.scss.mjs.map +1 -0
  84. package/dist/esm/components/AutoFocus/AutoFocus.mjs +3 -2
  85. package/dist/esm/components/AutoFocus/AutoFocus.mjs.map +1 -1
  86. package/dist/esm/components/Avatar/Avatar.mjs.map +1 -1
  87. package/dist/esm/components/AvatarGroup/AvatarGroup.mjs.map +1 -1
  88. package/dist/esm/components/Banner/Banner.mjs.map +1 -1
  89. package/dist/esm/components/BaseTagBadge/BaseTagBadge.mjs +3 -2
  90. package/dist/esm/components/BaseTagBadge/BaseTagBadge.mjs.map +1 -1
  91. package/dist/esm/components/Box/Box.mjs.map +1 -1
  92. package/dist/esm/components/Button/Button.mjs.map +1 -1
  93. package/dist/esm/components/Center/Center.mjs.map +1 -1
  94. package/dist/esm/components/CheckableAvatar/CheckableAvatar.mjs.map +1 -1
  95. package/dist/esm/components/Emoji/Emoji.mjs.map +1 -1
  96. package/dist/esm/components/FeatureProvider/FeatureProvider.mjs +3 -2
  97. package/dist/esm/components/FeatureProvider/FeatureProvider.mjs.map +1 -1
  98. package/dist/esm/components/FeatureProvider/SmoothCornersFeature/smoothCornersScript.mjs.map +1 -1
  99. package/dist/esm/components/FormControl/FormControl.mjs.map +1 -1
  100. package/dist/esm/components/LegacyStack/LegacyStack/LegacyStack.mjs.map +1 -1
  101. package/dist/esm/components/LegacyStack/LegacyStackItem/LegacyStackItem.mjs.map +1 -1
  102. package/dist/esm/components/LegacyTooltip/utils.mjs.map +1 -1
  103. package/dist/esm/components/ListItem/ListItem.mjs.map +1 -1
  104. package/dist/esm/components/Modal/Modal.mjs.map +1 -1
  105. package/dist/esm/components/NavGroup/NavGroup.mjs.map +1 -1
  106. package/dist/esm/components/OutlineItem/OutlineItem.mjs.map +1 -1
  107. package/dist/esm/components/Overlay/Overlay.mjs +4 -3
  108. package/dist/esm/components/Overlay/Overlay.mjs.map +1 -1
  109. package/dist/esm/components/Overlay/utils.mjs.map +1 -1
  110. package/dist/esm/components/ProgressBar/ProgressBar.mjs.map +1 -1
  111. package/dist/esm/components/SegmentedControl/SegmentedControl.mjs.map +1 -1
  112. package/dist/esm/components/Slider/Slider.mjs.map +1 -1
  113. package/dist/esm/components/SmoothCornersBox/SmoothCornersBox.mjs.map +1 -1
  114. package/dist/esm/components/Spinner/Spinner.mjs.map +1 -1
  115. package/dist/esm/components/Stack/Stack.mjs.map +1 -1
  116. package/dist/esm/components/Status/Status.mjs.map +1 -1
  117. package/dist/esm/components/Switch/Switch.mjs.map +1 -1
  118. package/dist/esm/components/Tabs/Tabs.mjs.map +1 -1
  119. package/dist/esm/components/Text/Text.mjs.map +1 -1
  120. package/dist/esm/components/TextArea/TextArea.mjs +3 -2
  121. package/dist/esm/components/TextArea/TextArea.mjs.map +1 -1
  122. package/dist/esm/components/TextField/TextField.mjs.map +1 -1
  123. package/dist/esm/components/Toast/Toast.mjs +3 -2
  124. package/dist/esm/components/Toast/Toast.mjs.map +1 -1
  125. package/dist/esm/hooks/useIsomorphicLayoutEffect.mjs +11 -0
  126. package/dist/esm/hooks/useIsomorphicLayoutEffect.mjs.map +1 -0
  127. package/dist/esm/hooks/useMergeRefs.mjs.map +1 -1
  128. package/dist/esm/index.mjs +2 -0
  129. package/dist/esm/index.mjs.map +1 -1
  130. package/dist/esm/styles.css +1 -1
  131. package/dist/esm/types/props-helpers.mjs.map +1 -1
  132. package/dist/esm/utils/react.mjs.map +1 -1
  133. package/dist/esm/utils/string.mjs.map +1 -1
  134. package/dist/esm/utils/style.mjs.map +1 -1
  135. package/dist/types/components/AlphaButton/Button.d.ts.map +1 -1
  136. package/dist/types/components/AlphaButton/Button.types.d.ts +3 -2
  137. package/dist/types/components/AlphaButton/Button.types.d.ts.map +1 -1
  138. package/dist/types/components/AlphaFloatingButton/FloatingButton.d.ts.map +1 -1
  139. package/dist/types/components/AlphaFloatingButton/FloatingButton.types.d.ts +3 -2
  140. package/dist/types/components/AlphaFloatingButton/FloatingButton.types.d.ts.map +1 -1
  141. package/dist/types/components/AlphaFloatingIconButton/FloatingIconButton.d.ts +4 -0
  142. package/dist/types/components/AlphaFloatingIconButton/FloatingIconButton.d.ts.map +1 -0
  143. package/dist/types/components/AlphaFloatingIconButton/FloatingIconButton.types.d.ts +37 -0
  144. package/dist/types/components/AlphaFloatingIconButton/FloatingIconButton.types.d.ts.map +1 -0
  145. package/dist/types/components/AlphaFloatingIconButton/index.d.ts +3 -0
  146. package/dist/types/components/AlphaFloatingIconButton/index.d.ts.map +1 -0
  147. package/dist/types/components/AlphaIconButton/IconButton.d.ts.map +1 -1
  148. package/dist/types/components/AlphaIconButton/IconButton.types.d.ts +3 -2
  149. package/dist/types/components/AlphaIconButton/IconButton.types.d.ts.map +1 -1
  150. package/dist/types/components/AlphaIconButton/index.d.ts +1 -1
  151. package/dist/types/components/AlphaIconButton/index.d.ts.map +1 -1
  152. package/dist/types/components/AlphaSpinner/Spinner.d.ts +5 -0
  153. package/dist/types/components/AlphaSpinner/Spinner.d.ts.map +1 -0
  154. package/dist/types/components/AlphaSpinner/Spinner.types.d.ts +13 -0
  155. package/dist/types/components/AlphaSpinner/Spinner.types.d.ts.map +1 -0
  156. package/dist/types/components/AlphaSpinner/index.d.ts +3 -0
  157. package/dist/types/components/AlphaSpinner/index.d.ts.map +1 -0
  158. package/dist/types/components/AutoFocus/AutoFocus.d.ts.map +1 -1
  159. package/dist/types/components/BaseTagBadge/BaseTagBadge.d.ts.map +1 -1
  160. package/dist/types/components/FeatureProvider/FeatureProvider.d.ts.map +1 -1
  161. package/dist/types/components/Icon/Icon.types.d.ts +1 -1
  162. package/dist/types/components/Overlay/Overlay.d.ts.map +1 -1
  163. package/dist/types/components/TextArea/TextArea.d.ts.map +1 -1
  164. package/dist/types/components/Toast/Toast.d.ts.map +1 -1
  165. package/dist/types/hooks/useIsomorphicLayoutEffect.d.ts +8 -0
  166. package/dist/types/hooks/useIsomorphicLayoutEffect.d.ts.map +1 -0
  167. package/dist/types/index.d.ts +2 -0
  168. package/dist/types/index.d.ts.map +1 -1
  169. package/package.json +1 -1
  170. package/src/components/AlphaButton/AlphaButton.stories.tsx +2 -2
  171. package/src/components/AlphaButton/Button.tsx +34 -20
  172. package/src/components/AlphaButton/Button.types.ts +4 -2
  173. package/src/components/AlphaFloatingButton/AlphaFloatingButton.stories.tsx +2 -2
  174. package/src/components/AlphaFloatingButton/FloatingButton.tsx +30 -17
  175. package/src/components/AlphaFloatingButton/FloatingButton.types.ts +4 -2
  176. package/src/components/AlphaFloatingIconButton/AlphaFloatingIconButton.stories.tsx +28 -0
  177. package/src/components/AlphaFloatingIconButton/FloatingIconButton.module.scss +175 -0
  178. package/src/components/AlphaFloatingIconButton/FloatingIconButton.tsx +91 -0
  179. package/src/components/AlphaFloatingIconButton/FloatingIconButton.types.ts +64 -0
  180. package/src/components/AlphaFloatingIconButton/index.ts +2 -0
  181. package/src/components/AlphaIconButton/AlphaIconButton.stories.tsx +1 -1
  182. package/src/components/AlphaIconButton/IconButton.tsx +6 -4
  183. package/src/components/AlphaIconButton/IconButton.types.ts +5 -3
  184. package/src/components/AlphaIconButton/index.ts +1 -1
  185. package/src/components/AlphaSpinner/AlphaSpinner.stories.tsx +23 -0
  186. package/src/components/AlphaSpinner/Spinner.module.scss +66 -0
  187. package/src/components/AlphaSpinner/Spinner.test.tsx +34 -0
  188. package/src/components/AlphaSpinner/Spinner.tsx +50 -0
  189. package/src/components/AlphaSpinner/Spinner.types.ts +21 -0
  190. package/src/components/AlphaSpinner/index.ts +2 -0
  191. package/src/components/AutoFocus/AutoFocus.tsx +3 -2
  192. package/src/components/BaseTagBadge/BaseTagBadge.tsx +2 -1
  193. package/src/components/FeatureProvider/FeatureProvider.tsx +3 -2
  194. package/src/components/Icon/Icon.types.ts +1 -1
  195. package/src/components/Overlay/Overlay.tsx +3 -3
  196. package/src/components/TextArea/TextArea.tsx +3 -2
  197. package/src/components/Toast/Toast.module.scss +1 -1
  198. package/src/components/Toast/Toast.tsx +1 -2
  199. package/src/hooks/useIsomorphicLayoutEffect.ts +9 -0
  200. package/src/index.ts +2 -0
@@ -1 +1 @@
1
- {"version":3,"file":"AvatarGroup.js","sources":["../../../../src/components/AvatarGroup/AvatarGroup.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useMemo } from 'react'\n\nimport { MoreIcon } from '@channel.io/bezier-icons'\nimport classNames from 'classnames'\n\nimport { isLastIndex } from '~/src/utils/array'\nimport { px } from '~/src/utils/style'\n\nimport {\n type AvatarProps,\n type AvatarSize,\n useAvatarRadiusToken,\n} from '~/src/components/Avatar'\nimport { Icon } from '~/src/components/Icon'\nimport { SmoothCornersBox } from '~/src/components/SmoothCornersBox'\nimport { Text } from '~/src/components/Text'\n\nimport { type AvatarGroupProps } from './AvatarGroup.types'\n\nimport styles from './AvatarGroup.module.scss'\n\nconst MAX_AVATAR_LIST_COUNT = 99\nconst AVATAR_GROUP_DEFAULT_SPACING = 4\nexport const AVATAR_GROUP_ELLIPSIS_ICON_TEST_ID =\n 'bezier-avatar-group-ellipsis-icon'\n\nfunction getRestAvatarListCountText(count: number, max: number) {\n const restCount = count - max\n return `+${restCount > MAX_AVATAR_LIST_COUNT ? MAX_AVATAR_LIST_COUNT : restCount}`\n}\n\n// TODO: Not specified\nfunction getProperIconSize(avatarSize: AvatarSize) {\n return (\n {\n 20: 'xxs',\n 24: 'xs',\n 30: 's',\n 36: 'm',\n 42: 'm',\n 48: 'l',\n 72: 'l',\n 90: 'l',\n 120: 'l',\n } as const\n )[avatarSize]\n}\n\n// TODO: Not specified\nfunction getProperTypoSize(avatarSize: AvatarSize) {\n return (\n {\n 20: '12',\n 24: '13',\n 30: '15',\n 36: '16',\n 42: '18',\n 48: '24',\n 72: '24',\n 90: '24',\n 120: '24',\n } as const\n )[avatarSize]\n}\n\n/**\n * `AvatarGroup` is a component for grouping `Avatar` components\n * @example\n *\n * ```tsx\n * <AvatarGroup\n * max={2}\n * spacing={4}\n * ellipsisType=\"icon\"\n * >\n * <Avatar />\n * <Avatar />\n * <Avatar />\n * </AvatarGroup>\n * ```\n */\nexport const AvatarGroup = forwardRef<HTMLDivElement, AvatarGroupProps>(\n function AvatarGroup(\n {\n max,\n size = '24',\n spacing = AVATAR_GROUP_DEFAULT_SPACING,\n ellipsisType = 'icon',\n onMouseEnterEllipsis,\n onMouseLeaveEllipsis,\n style,\n className,\n children,\n ...rest\n },\n forwardedRef\n ) {\n const AVATAR_BORDER_RADIUS = useAvatarRadiusToken()\n\n const renderAvatarElement = useCallback(\n (avatar: React.ReactElement<AvatarProps>, avatarListCount: number) => {\n const key =\n avatar.key ?? `${avatar.props.name}-${avatar.props.avatarUrl}`\n const shouldShowBorder = avatarListCount > 1 && spacing < 0\n const showBorder = avatar.props.showBorder || shouldShowBorder\n return React.cloneElement(avatar, { key, size, showBorder })\n },\n [size, spacing]\n )\n\n const avatarListCount = useMemo(\n () => React.Children.count(children),\n [children]\n )\n\n const AvatarListComponent = useMemo(() => {\n if (avatarListCount <= max) {\n return React.Children.map(\n children,\n (avatar) =>\n React.isValidElement<AvatarProps>(avatar) &&\n renderAvatarElement(avatar, avatarListCount)\n )\n }\n\n const sliceEndIndex = max - avatarListCount\n const slicedAvatarList = React.Children.toArray(children).slice(\n 0,\n sliceEndIndex\n )\n\n return slicedAvatarList.map((avatar, index, arr) => {\n if (!React.isValidElement<AvatarProps>(avatar)) {\n return null\n }\n\n const AvatarElement = renderAvatarElement(\n avatar,\n slicedAvatarList.length\n )\n\n if (!isLastIndex(arr, index)) {\n return AvatarElement\n }\n\n if (ellipsisType === 'icon') {\n return (\n <div\n key=\"ellipsis\"\n className={styles.AvatarEllipsisIconWrapper}\n onMouseEnter={onMouseEnterEllipsis}\n onMouseLeave={onMouseLeaveEllipsis}\n data-testid={AVATAR_GROUP_ELLIPSIS_ICON_TEST_ID}\n >\n <SmoothCornersBox\n borderRadius={AVATAR_BORDER_RADIUS}\n backgroundColor=\"bgtxt-absolute-black-lightest\"\n className={styles.AvatarEllipsisIcon}\n >\n <Icon\n source={MoreIcon}\n size={getProperIconSize(size)}\n color=\"bgtxt-absolute-white-dark\"\n />\n </SmoothCornersBox>\n {AvatarElement}\n </div>\n )\n }\n\n if (ellipsisType === 'count') {\n return (\n <React.Fragment key=\"ellipsis\">\n {AvatarElement}\n <div\n style={\n {\n '--b-avatar-group-ellipsis-ml': px(\n Math.max(spacing, AVATAR_GROUP_DEFAULT_SPACING)\n ),\n } as React.CSSProperties\n }\n className={classNames(\n styles.AvatarEllipsisCountWrapper,\n styles[`size-${size}`]\n )}\n onMouseEnter={onMouseEnterEllipsis}\n onMouseLeave={onMouseLeaveEllipsis}\n >\n <Text\n typo={getProperTypoSize(size)}\n color=\"txt-black-dark\"\n className={styles.AvatarEllipsisCount}\n >\n {getRestAvatarListCountText(avatarListCount, max)}\n </Text>\n </div>\n </React.Fragment>\n )\n }\n\n return null\n })\n }, [\n avatarListCount,\n max,\n children,\n renderAvatarElement,\n ellipsisType,\n onMouseEnterEllipsis,\n onMouseLeaveEllipsis,\n AVATAR_BORDER_RADIUS,\n size,\n spacing,\n ])\n\n return (\n <div\n role=\"group\"\n ref={forwardedRef}\n className={classNames(\n styles.AvatarGroup,\n styles[`size-${size}`],\n className\n )}\n style={\n {\n '--b-avatar-group-spacing': px(spacing),\n ...style,\n } as React.CSSProperties\n }\n {...rest}\n >\n {AvatarListComponent}\n </div>\n )\n }\n)\n"],"names":["MAX_AVATAR_LIST_COUNT","AVATAR_GROUP_DEFAULT_SPACING","AVATAR_GROUP_ELLIPSIS_ICON_TEST_ID","getRestAvatarListCountText","count","max","restCount","getProperIconSize","avatarSize","getProperTypoSize","AvatarGroup","forwardRef","size","spacing","ellipsisType","onMouseEnterEllipsis","onMouseLeaveEllipsis","style","className","children","rest","forwardedRef","AVATAR_BORDER_RADIUS","useAvatarRadiusToken","renderAvatarElement","useCallback","avatar","avatarListCount","key","props","name","avatarUrl","shouldShowBorder","showBorder","React","cloneElement","useMemo","Children","AvatarListComponent","map","isValidElement","sliceEndIndex","slicedAvatarList","toArray","slice","index","arr","AvatarElement","length","isLastIndex","createElement","styles","AvatarEllipsisIconWrapper","onMouseEnter","onMouseLeave","SmoothCornersBox","borderRadius","backgroundColor","AvatarEllipsisIcon","Icon","source","MoreIcon","color","Fragment","px","Math","classNames","AvatarEllipsisCountWrapper","Text","typo","AvatarEllipsisCount","Object","assign","role","ref"],"mappings":"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"}
1
+ {"version":3,"file":"AvatarGroup.js","sources":["../../../../src/components/AvatarGroup/AvatarGroup.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useMemo } from 'react'\n\nimport { MoreIcon } from '@channel.io/bezier-icons'\nimport classNames from 'classnames'\n\nimport { isLastIndex } from '~/src/utils/array'\nimport { px } from '~/src/utils/style'\n\nimport {\n type AvatarProps,\n type AvatarSize,\n useAvatarRadiusToken,\n} from '~/src/components/Avatar'\nimport { Icon } from '~/src/components/Icon'\nimport { SmoothCornersBox } from '~/src/components/SmoothCornersBox'\nimport { Text } from '~/src/components/Text'\n\nimport { type AvatarGroupProps } from './AvatarGroup.types'\n\nimport styles from './AvatarGroup.module.scss'\n\nconst MAX_AVATAR_LIST_COUNT = 99\nconst AVATAR_GROUP_DEFAULT_SPACING = 4\nexport const AVATAR_GROUP_ELLIPSIS_ICON_TEST_ID =\n 'bezier-avatar-group-ellipsis-icon'\n\nfunction getRestAvatarListCountText(count: number, max: number) {\n const restCount = count - max\n return `+${restCount > MAX_AVATAR_LIST_COUNT ? MAX_AVATAR_LIST_COUNT : restCount}`\n}\n\n// TODO: Not specified\nfunction getProperIconSize(avatarSize: AvatarSize) {\n return (\n {\n 20: 'xxs',\n 24: 'xs',\n 30: 's',\n 36: 'm',\n 42: 'm',\n 48: 'l',\n 72: 'l',\n 90: 'l',\n 120: 'l',\n } as const\n )[avatarSize]\n}\n\n// TODO: Not specified\nfunction getProperTypoSize(avatarSize: AvatarSize) {\n return (\n {\n 20: '12',\n 24: '13',\n 30: '15',\n 36: '16',\n 42: '18',\n 48: '24',\n 72: '24',\n 90: '24',\n 120: '24',\n } as const\n )[avatarSize]\n}\n\n/**\n * `AvatarGroup` is a component for grouping `Avatar` components\n * @example\n *\n * ```tsx\n * <AvatarGroup\n * max={2}\n * spacing={4}\n * ellipsisType=\"icon\"\n * >\n * <Avatar />\n * <Avatar />\n * <Avatar />\n * </AvatarGroup>\n * ```\n */\nexport const AvatarGroup = forwardRef<HTMLDivElement, AvatarGroupProps>(\n function AvatarGroup(\n {\n max,\n size = '24',\n spacing = AVATAR_GROUP_DEFAULT_SPACING,\n ellipsisType = 'icon',\n onMouseEnterEllipsis,\n onMouseLeaveEllipsis,\n style,\n className,\n children,\n ...rest\n },\n forwardedRef\n ) {\n const AVATAR_BORDER_RADIUS = useAvatarRadiusToken()\n\n const renderAvatarElement = useCallback(\n (avatar: React.ReactElement<AvatarProps>, avatarListCount: number) => {\n const key =\n avatar.key ?? `${avatar.props.name}-${avatar.props.avatarUrl}`\n const shouldShowBorder = avatarListCount > 1 && spacing < 0\n const showBorder = avatar.props.showBorder || shouldShowBorder\n return React.cloneElement(avatar, { key, size, showBorder })\n },\n [size, spacing]\n )\n\n const avatarListCount = useMemo(\n () => React.Children.count(children),\n [children]\n )\n\n const AvatarListComponent = useMemo(() => {\n if (avatarListCount <= max) {\n return React.Children.map(\n children,\n (avatar) =>\n React.isValidElement<AvatarProps>(avatar) &&\n renderAvatarElement(avatar, avatarListCount)\n )\n }\n\n const sliceEndIndex = max - avatarListCount\n const slicedAvatarList = React.Children.toArray(children).slice(\n 0,\n sliceEndIndex\n )\n\n return slicedAvatarList.map((avatar, index, arr) => {\n if (!React.isValidElement<AvatarProps>(avatar)) {\n return null\n }\n\n const AvatarElement = renderAvatarElement(\n avatar,\n slicedAvatarList.length\n )\n\n if (!isLastIndex(arr, index)) {\n return AvatarElement\n }\n\n if (ellipsisType === 'icon') {\n return (\n <div\n key=\"ellipsis\"\n className={styles.AvatarEllipsisIconWrapper}\n onMouseEnter={onMouseEnterEllipsis}\n onMouseLeave={onMouseLeaveEllipsis}\n data-testid={AVATAR_GROUP_ELLIPSIS_ICON_TEST_ID}\n >\n <SmoothCornersBox\n borderRadius={AVATAR_BORDER_RADIUS}\n backgroundColor=\"bgtxt-absolute-black-lightest\"\n className={styles.AvatarEllipsisIcon}\n >\n <Icon\n source={MoreIcon}\n size={getProperIconSize(size)}\n color=\"bgtxt-absolute-white-dark\"\n />\n </SmoothCornersBox>\n {AvatarElement}\n </div>\n )\n }\n\n if (ellipsisType === 'count') {\n return (\n <React.Fragment key=\"ellipsis\">\n {AvatarElement}\n <div\n style={\n {\n '--b-avatar-group-ellipsis-ml': px(\n Math.max(spacing, AVATAR_GROUP_DEFAULT_SPACING)\n ),\n } as React.CSSProperties\n }\n className={classNames(\n styles.AvatarEllipsisCountWrapper,\n styles[`size-${size}`]\n )}\n onMouseEnter={onMouseEnterEllipsis}\n onMouseLeave={onMouseLeaveEllipsis}\n >\n <Text\n typo={getProperTypoSize(size)}\n color=\"txt-black-dark\"\n className={styles.AvatarEllipsisCount}\n >\n {getRestAvatarListCountText(avatarListCount, max)}\n </Text>\n </div>\n </React.Fragment>\n )\n }\n\n return null\n })\n }, [\n avatarListCount,\n max,\n children,\n renderAvatarElement,\n ellipsisType,\n onMouseEnterEllipsis,\n onMouseLeaveEllipsis,\n AVATAR_BORDER_RADIUS,\n size,\n spacing,\n ])\n\n return (\n <div\n role=\"group\"\n ref={forwardedRef}\n className={classNames(\n styles.AvatarGroup,\n styles[`size-${size}`],\n className\n )}\n style={\n {\n '--b-avatar-group-spacing': px(spacing),\n ...style,\n } as React.CSSProperties\n }\n {...rest}\n >\n {AvatarListComponent}\n </div>\n )\n }\n)\n"],"names":["MAX_AVATAR_LIST_COUNT","AVATAR_GROUP_DEFAULT_SPACING","AVATAR_GROUP_ELLIPSIS_ICON_TEST_ID","getRestAvatarListCountText","count","max","restCount","getProperIconSize","avatarSize","getProperTypoSize","AvatarGroup","forwardRef","size","spacing","ellipsisType","onMouseEnterEllipsis","onMouseLeaveEllipsis","style","className","children","rest","forwardedRef","AVATAR_BORDER_RADIUS","useAvatarRadiusToken","renderAvatarElement","useCallback","avatar","avatarListCount","key","props","name","avatarUrl","shouldShowBorder","showBorder","React","cloneElement","useMemo","Children","AvatarListComponent","map","isValidElement","sliceEndIndex","slicedAvatarList","toArray","slice","index","arr","AvatarElement","length","isLastIndex","createElement","styles","AvatarEllipsisIconWrapper","onMouseEnter","onMouseLeave","SmoothCornersBox","borderRadius","backgroundColor","AvatarEllipsisIcon","Icon","source","MoreIcon","color","Fragment","px","Math","classNames","AvatarEllipsisCountWrapper","Text","typo","AvatarEllipsisCount","Object","assign","role","ref"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Banner.js","sources":["../../../../src/components/Banner/Banner.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\n\nimport { isBezierIcon } from '@channel.io/bezier-icons'\nimport classNames from 'classnames'\n\nimport { warn } from '~/src/utils/assert'\nimport { isNil } from '~/src/utils/type'\n\nimport { Button } from '~/src/components/Button'\nimport { Icon } from '~/src/components/Icon'\nimport { LegacyIcon, isIconName } from '~/src/components/LegacyIcon'\nimport { Text } from '~/src/components/Text'\n\nimport {\n type BannerProps,\n type BannerVariant,\n type RenderLinkFunc,\n} from './Banner.types'\n\nimport styles from './Banner.module.scss'\n\nconst BANNER_TEST_ID = 'bezier-banner'\n\nfunction getActionButtonColorVariant(variant: BannerVariant) {\n return (\n {\n default: 'monochrome-dark',\n blue: 'blue',\n cobalt: 'cobalt',\n green: 'green',\n orange: 'orange',\n red: 'red',\n alt: 'monochrome-dark',\n } as const\n )[variant]\n}\n\nconst externalLinkRenderer: RenderLinkFunc = ({ content, linkTo }) => (\n <a\n href={linkTo}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {content}\n </a>\n)\n\n/**\n * `Banner` is a component you use when you want to communicate instructions, warnings, recommendations, and other information well.\n * @example\n * ```tsx\n * <Banner\n * variant=\"blue\"\n * icon={LightbulbIcon}\n * content=\"Information here.\"\n * />\n * ```\n */\nexport const Banner = forwardRef<HTMLDivElement, BannerProps>(function Banner(\n {\n className,\n variant = 'default',\n icon,\n iconColor,\n content,\n hasLink = false,\n linkText,\n linkTo,\n renderLink = externalLinkRenderer,\n actionIcon,\n onClickAction,\n ...rest\n },\n forwardedRef\n) {\n if (isIconName(icon)) {\n warn(\n 'Deprecation: IconName as a value for the icon property of Banner has been deprecated. Use the Icon of bezier-icons instead.'\n )\n }\n\n return (\n <div\n ref={forwardedRef}\n className={classNames(\n styles.Banner,\n styles[`variant-${variant}`],\n className\n )}\n data-testid={BANNER_TEST_ID}\n {...rest}\n >\n {!isNil(icon) && (\n <div className={styles.Center}>\n {isBezierIcon(icon) ? (\n <Icon\n className={styles.Icon}\n source={icon}\n color={iconColor}\n size=\"s\"\n />\n ) : (\n <LegacyIcon\n className={styles.Icon}\n name={icon}\n color={iconColor}\n size=\"s\"\n />\n )}\n </div>\n )}\n\n <div className={styles.Content}>\n <Text typo=\"14\">\n {content}\n\n {hasLink &&\n renderLink({\n content: (\n <Text\n className={styles.Link}\n typo=\"14\"\n bold\n >\n {linkText}\n </Text>\n ),\n linkTo,\n })}\n </Text>\n </div>\n\n {!isNil(actionIcon) && (\n <div className={styles.Center}>\n <Button\n size=\"xs\"\n colorVariant={getActionButtonColorVariant(variant)}\n styleVariant=\"tertiary\"\n leftContent={actionIcon}\n onClick={onClickAction}\n />\n </div>\n )}\n </div>\n )\n})\n"],"names":["BANNER_TEST_ID","getActionButtonColorVariant","variant","default","blue","cobalt","green","orange","red","alt","externalLinkRenderer","content","linkTo","React","createElement","href","target","rel","Banner","forwardRef","className","icon","iconColor","hasLink","linkText","renderLink","actionIcon","onClickAction","rest","forwardedRef","isIconName","warn","Object","assign","ref","classNames","styles","isNil","Center","isBezierIcon","Icon","source","color","size","LegacyIcon","name","Content","Text","typo","Link","bold","Button","colorVariant","styleVariant","leftContent","onClick"],"mappings":"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"}
1
+ {"version":3,"file":"Banner.js","sources":["../../../../src/components/Banner/Banner.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\n\nimport { isBezierIcon } from '@channel.io/bezier-icons'\nimport classNames from 'classnames'\n\nimport { warn } from '~/src/utils/assert'\nimport { isNil } from '~/src/utils/type'\n\nimport { Button } from '~/src/components/Button'\nimport { Icon } from '~/src/components/Icon'\nimport { LegacyIcon, isIconName } from '~/src/components/LegacyIcon'\nimport { Text } from '~/src/components/Text'\n\nimport {\n type BannerProps,\n type BannerVariant,\n type RenderLinkFunc,\n} from './Banner.types'\n\nimport styles from './Banner.module.scss'\n\nconst BANNER_TEST_ID = 'bezier-banner'\n\nfunction getActionButtonColorVariant(variant: BannerVariant) {\n return (\n {\n default: 'monochrome-dark',\n blue: 'blue',\n cobalt: 'cobalt',\n green: 'green',\n orange: 'orange',\n red: 'red',\n alt: 'monochrome-dark',\n } as const\n )[variant]\n}\n\nconst externalLinkRenderer: RenderLinkFunc = ({ content, linkTo }) => (\n <a\n href={linkTo}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {content}\n </a>\n)\n\n/**\n * `Banner` is a component you use when you want to communicate instructions, warnings, recommendations, and other information well.\n * @example\n * ```tsx\n * <Banner\n * variant=\"blue\"\n * icon={LightbulbIcon}\n * content=\"Information here.\"\n * />\n * ```\n */\nexport const Banner = forwardRef<HTMLDivElement, BannerProps>(function Banner(\n {\n className,\n variant = 'default',\n icon,\n iconColor,\n content,\n hasLink = false,\n linkText,\n linkTo,\n renderLink = externalLinkRenderer,\n actionIcon,\n onClickAction,\n ...rest\n },\n forwardedRef\n) {\n if (isIconName(icon)) {\n warn(\n 'Deprecation: IconName as a value for the icon property of Banner has been deprecated. Use the Icon of bezier-icons instead.'\n )\n }\n\n return (\n <div\n ref={forwardedRef}\n className={classNames(\n styles.Banner,\n styles[`variant-${variant}`],\n className\n )}\n data-testid={BANNER_TEST_ID}\n {...rest}\n >\n {!isNil(icon) && (\n <div className={styles.Center}>\n {isBezierIcon(icon) ? (\n <Icon\n className={styles.Icon}\n source={icon}\n color={iconColor}\n size=\"s\"\n />\n ) : (\n <LegacyIcon\n className={styles.Icon}\n name={icon}\n color={iconColor}\n size=\"s\"\n />\n )}\n </div>\n )}\n\n <div className={styles.Content}>\n <Text typo=\"14\">\n {content}\n\n {hasLink &&\n renderLink({\n content: (\n <Text\n className={styles.Link}\n typo=\"14\"\n bold\n >\n {linkText}\n </Text>\n ),\n linkTo,\n })}\n </Text>\n </div>\n\n {!isNil(actionIcon) && (\n <div className={styles.Center}>\n <Button\n size=\"xs\"\n colorVariant={getActionButtonColorVariant(variant)}\n styleVariant=\"tertiary\"\n leftContent={actionIcon}\n onClick={onClickAction}\n />\n </div>\n )}\n </div>\n )\n})\n"],"names":["BANNER_TEST_ID","getActionButtonColorVariant","variant","default","blue","cobalt","green","orange","red","alt","externalLinkRenderer","content","linkTo","React","createElement","href","target","rel","Banner","forwardRef","className","icon","iconColor","hasLink","linkText","renderLink","actionIcon","onClickAction","rest","forwardedRef","isIconName","warn","Object","assign","ref","classNames","styles","isNil","Center","isBezierIcon","Icon","source","color","size","LegacyIcon","name","Content","Text","typo","Link","bold","Button","colorVariant","styleVariant","leftContent","onClick"],"mappings":"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"}
@@ -37,9 +37,10 @@ const BaseTagBadgeText = /*#__PURE__*/React.forwardRef(function BaseTagBadgeText
37
37
  size,
38
38
  children,
39
39
  ...rest
40
- }) {
40
+ }, forwardedRef) {
41
41
  return /*#__PURE__*/React.createElement(Text.Text, Object.assign({
42
- typo: getProperTypo(size)
42
+ typo: getProperTypo(size),
43
+ ref: forwardedRef
43
44
  }, rest), children);
44
45
  });
45
46
 
@@ -1 +1 @@
1
- {"version":3,"file":"BaseTagBadge.js","sources":["../../../../src/components/BaseTagBadge/BaseTagBadge.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\n\nimport classNames from 'classnames'\n\nimport { Text } from '~/src/components/Text'\n\nimport {\n type BaseTagBadgeProps,\n type BaseTagBadgeSize,\n type BaseTagBadgeTextProps,\n} from './BaseTagBadge.types'\n\nimport styles from './BaseTagBadge.module.scss'\n\nfunction getProperTypo(size: BaseTagBadgeSize) {\n return (\n {\n xs: '11',\n s: '13',\n m: '14',\n l: '15',\n } as const\n )[size]\n}\n\n/**\n * `BaseTagBadge` is the component on which `Tag` and `Badge` components are based.\n */\nexport const BaseTagBadge = forwardRef<HTMLDivElement, BaseTagBadgeProps>(\n function Tag({ size, variant, children, className, ...rest }, forwardedRef) {\n return (\n <div\n ref={forwardedRef}\n className={classNames(\n styles.BaseTagBadge,\n styles[`size-${size}`],\n styles[`variant-${variant}`],\n className\n )}\n {...rest}\n >\n {children}\n </div>\n )\n }\n)\n\n/**\n * `BaseTagBadgeText` is the component on which `Tag` and `Badge` components are based.\n */\nexport const BaseTagBadgeText = forwardRef<\n HTMLDivElement,\n BaseTagBadgeTextProps\n>(function BaseTagBadgeText({ size, children, ...rest }) {\n return (\n <Text\n typo={getProperTypo(size)}\n {...rest}\n >\n {children}\n </Text>\n )\n})\n"],"names":["getProperTypo","size","xs","s","m","l","BaseTagBadge","forwardRef","Tag","variant","children","className","rest","forwardedRef","React","createElement","Object","assign","ref","classNames","styles","BaseTagBadgeText","Text","typo"],"mappings":";;;;;;;AAcA,SAASA,aAAaA,CAACC,IAAsB,EAAE;EAC7C,OACE;AACEC,IAAAA,EAAE,EAAE,IAAI;AACRC,IAAAA,CAAC,EAAE,IAAI;AACPC,IAAAA,CAAC,EAAE,IAAI;AACPC,IAAAA,CAAC,EAAE,IAAA;GACJ,CACDJ,IAAI,CAAC,CAAA;AACT,CAAA;;AAEA;AACA;AACA;MACaK,YAAY,gBAAGC,gBAAU,CACpC,SAASC,GAAGA,CAAC;EAAEP,IAAI;EAAEQ,OAAO;EAAEC,QAAQ;EAAEC,SAAS;EAAE,GAAGC,IAAAA;AAAK,CAAC,EAAEC,YAAY,EAAE;AAC1E,EAAA,oBACEC,KAAA,CAAAC,aAAA,CAAAC,KAAAA,EAAAA,MAAA,CAAAC,MAAA,CAAA;AACEC,IAAAA,GAAG,EAAEL,YAAa;IAClBF,SAAS,EAAEQ,aAAU,CACnBC,2BAAM,CAACd,YAAY,EACnBc,2BAAM,CAAE,CAAA,KAAA,EAAOnB,IAAK,CAAC,CAAA,CAAC,EACtBmB,2BAAM,CAAE,WAAUX,OAAQ,CAAA,CAAC,CAAC,EAC5BE,SACF,CAAA;GACIC,EAAAA,IAAI,CAEPF,EAAAA,QACE,CAAC,CAAA;AAEV,CACF,EAAC;;AAED;AACA;AACA;MACaW,gBAAgB,gBAAGd,gBAAU,CAGxC,SAASc,gBAAgBA,CAAC;EAAEpB,IAAI;EAAES,QAAQ;EAAE,GAAGE,IAAAA;AAAK,CAAC,EAAE;EACvD,oBACEE,KAAA,CAAAC,aAAA,CAACO,SAAI,EAAAN,MAAA,CAAAC,MAAA,CAAA;IACHM,IAAI,EAAEvB,aAAa,CAACC,IAAI,CAAA;GACpBW,EAAAA,IAAI,CAEPF,EAAAA,QACG,CAAC,CAAA;AAEX,CAAC;;;;;"}
1
+ {"version":3,"file":"BaseTagBadge.js","sources":["../../../../src/components/BaseTagBadge/BaseTagBadge.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\n\nimport classNames from 'classnames'\n\nimport { Text } from '~/src/components/Text'\n\nimport {\n type BaseTagBadgeProps,\n type BaseTagBadgeSize,\n type BaseTagBadgeTextProps,\n} from './BaseTagBadge.types'\n\nimport styles from './BaseTagBadge.module.scss'\n\nfunction getProperTypo(size: BaseTagBadgeSize) {\n return (\n {\n xs: '11',\n s: '13',\n m: '14',\n l: '15',\n } as const\n )[size]\n}\n\n/**\n * `BaseTagBadge` is the component on which `Tag` and `Badge` components are based.\n */\nexport const BaseTagBadge = forwardRef<HTMLDivElement, BaseTagBadgeProps>(\n function Tag({ size, variant, children, className, ...rest }, forwardedRef) {\n return (\n <div\n ref={forwardedRef}\n className={classNames(\n styles.BaseTagBadge,\n styles[`size-${size}`],\n styles[`variant-${variant}`],\n className\n )}\n {...rest}\n >\n {children}\n </div>\n )\n }\n)\n\n/**\n * `BaseTagBadgeText` is the component on which `Tag` and `Badge` components are based.\n */\nexport const BaseTagBadgeText = forwardRef<\n HTMLDivElement,\n BaseTagBadgeTextProps\n>(function BaseTagBadgeText({ size, children, ...rest }, forwardedRef) {\n return (\n <Text\n typo={getProperTypo(size)}\n ref={forwardedRef}\n {...rest}\n >\n {children}\n </Text>\n )\n})\n"],"names":["getProperTypo","size","xs","s","m","l","BaseTagBadge","forwardRef","Tag","variant","children","className","rest","forwardedRef","React","createElement","Object","assign","ref","classNames","styles","BaseTagBadgeText","Text","typo"],"mappings":";;;;;;;AAcA,SAASA,aAAaA,CAACC,IAAsB,EAAE;EAC7C,OACE;AACEC,IAAAA,EAAE,EAAE,IAAI;AACRC,IAAAA,CAAC,EAAE,IAAI;AACPC,IAAAA,CAAC,EAAE,IAAI;AACPC,IAAAA,CAAC,EAAE,IAAA;GACJ,CACDJ,IAAI,CAAC,CAAA;AACT,CAAA;;AAEA;AACA;AACA;MACaK,YAAY,gBAAGC,gBAAU,CACpC,SAASC,GAAGA,CAAC;EAAEP,IAAI;EAAEQ,OAAO;EAAEC,QAAQ;EAAEC,SAAS;EAAE,GAAGC,IAAAA;AAAK,CAAC,EAAEC,YAAY,EAAE;AAC1E,EAAA,oBACEC,KAAA,CAAAC,aAAA,CAAAC,KAAAA,EAAAA,MAAA,CAAAC,MAAA,CAAA;AACEC,IAAAA,GAAG,EAAEL,YAAa;IAClBF,SAAS,EAAEQ,aAAU,CACnBC,2BAAM,CAACd,YAAY,EACnBc,2BAAM,CAAC,CAAA,KAAA,EAAQnB,IAAI,CAAE,CAAA,CAAC,EACtBmB,2BAAM,CAAC,WAAWX,OAAO,CAAA,CAAE,CAAC,EAC5BE,SACF,CAAA;GACIC,EAAAA,IAAI,CAEPF,EAAAA,QACE,CAAC,CAAA;AAEV,CACF,EAAC;;AAED;AACA;AACA;MACaW,gBAAgB,gBAAGd,gBAAU,CAGxC,SAASc,gBAAgBA,CAAC;EAAEpB,IAAI;EAAES,QAAQ;EAAE,GAAGE,IAAAA;AAAK,CAAC,EAAEC,YAAY,EAAE;EACrE,oBACEC,KAAA,CAAAC,aAAA,CAACO,SAAI,EAAAN,MAAA,CAAAC,MAAA,CAAA;AACHM,IAAAA,IAAI,EAAEvB,aAAa,CAACC,IAAI,CAAE;AAC1BiB,IAAAA,GAAG,EAAEL,YAAAA;GACDD,EAAAA,IAAI,CAEPF,EAAAA,QACG,CAAC,CAAA;AAEX,CAAC;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Box.js","sources":["../../../../src/components/Box/Box.tsx"],"sourcesContent":["import { createElement, forwardRef } from 'react'\n\nimport classNames from 'classnames'\n\nimport {\n getLayoutStyles,\n getMarginStyles,\n splitByLayoutProps,\n splitByMarginProps,\n} from '~/src/types/props-helpers'\n\nimport { type BoxProps } from './Box.types'\n\nimport styles from './Box.module.scss'\n\n/**\n * `Box` is a primitive layout component. It provides an easy way to access design tokens.\n * @example\n *\n * ```tsx\n * <Box\n * width=\"100px\"\n * height=\"100px\"\n * p=\"6px\"\n * m=\"6px\"\n * bgColor=\"bg-black-light\"\n * >\n * <div>{ ... }</div>\n * </Box>\n * ```\n */\nexport const Box = forwardRef<HTMLElement, BoxProps>(\n function Box(props, forwardedRef) {\n const [marginProps, marginRest] = splitByMarginProps(props)\n const [layoutProps, layoutRest] = splitByLayoutProps(marginRest)\n const marginStyles = getMarginStyles(marginProps)\n const layoutStyles = getLayoutStyles(layoutProps)\n\n const {\n children,\n style,\n className,\n as = 'div',\n display,\n ...rest\n } = layoutRest\n\n /**\n * NOTE: Using the createElement function directly because of a ref type related error.\n * TODO: Fix type error.\n */\n return createElement(\n as,\n {\n ref: forwardedRef,\n style: {\n ...marginStyles.style,\n ...layoutStyles.style,\n ...style,\n },\n className: classNames(\n styles.Box,\n display && styles[`display-${display}`],\n marginStyles.className,\n layoutStyles.className,\n className\n ),\n 'data-testid': 'bezier-box',\n ...rest,\n },\n children\n )\n }\n)\n"],"names":["Box","forwardRef","props","forwardedRef","marginProps","marginRest","splitByMarginProps","layoutProps","layoutRest","splitByLayoutProps","marginStyles","getMarginStyles","layoutStyles","getLayoutStyles","children","style","className","as","display","rest","createElement","ref","classNames","styles"],"mappings":";;;;;;;AAeA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,GAAG,gBAAGC,gBAAU,CAC3B,SAASD,GAAGA,CAACE,KAAK,EAAEC,YAAY,EAAE;EAChC,MAAM,CAACC,WAAW,EAAEC,UAAU,CAAC,GAAGC,+BAAkB,CAACJ,KAAK,CAAC,CAAA;EAC3D,MAAM,CAACK,WAAW,EAAEC,UAAU,CAAC,GAAGC,+BAAkB,CAACJ,UAAU,CAAC,CAAA;AAChE,EAAA,MAAMK,YAAY,GAAGC,4BAAe,CAACP,WAAW,CAAC,CAAA;AACjD,EAAA,MAAMQ,YAAY,GAAGC,4BAAe,CAACN,WAAW,CAAC,CAAA;EAEjD,MAAM;IACJO,QAAQ;IACRC,KAAK;IACLC,SAAS;AACTC,IAAAA,EAAE,GAAG,KAAK;IACVC,OAAO;IACP,GAAGC,IAAAA;AACL,GAAC,GAAGX,UAAU,CAAA;;AAEd;AACJ;AACA;AACA;EACI,oBAAOY,mBAAa,CAClBH,EAAE,EACF;AACEI,IAAAA,GAAG,EAAElB,YAAY;AACjBY,IAAAA,KAAK,EAAE;MACL,GAAGL,YAAY,CAACK,KAAK;MACrB,GAAGH,YAAY,CAACG,KAAK;MACrB,GAAGA,KAAAA;KACJ;IACDC,SAAS,EAAEM,aAAU,CACnBC,kBAAM,CAACvB,GAAG,EACVkB,OAAO,IAAIK,kBAAM,CAAE,CAAA,QAAA,EAAUL,OAAQ,CAAC,CAAA,CAAC,EACvCR,YAAY,CAACM,SAAS,EACtBJ,YAAY,CAACI,SAAS,EACtBA,SACF,CAAC;AACD,IAAA,aAAa,EAAE,YAAY;IAC3B,GAAGG,IAAAA;GACJ,EACDL,QACF,CAAC,CAAA;AACH,CACF;;;;"}
1
+ {"version":3,"file":"Box.js","sources":["../../../../src/components/Box/Box.tsx"],"sourcesContent":["import { createElement, forwardRef } from 'react'\n\nimport classNames from 'classnames'\n\nimport {\n getLayoutStyles,\n getMarginStyles,\n splitByLayoutProps,\n splitByMarginProps,\n} from '~/src/types/props-helpers'\n\nimport { type BoxProps } from './Box.types'\n\nimport styles from './Box.module.scss'\n\n/**\n * `Box` is a primitive layout component. It provides an easy way to access design tokens.\n * @example\n *\n * ```tsx\n * <Box\n * width=\"100px\"\n * height=\"100px\"\n * p=\"6px\"\n * m=\"6px\"\n * bgColor=\"bg-black-light\"\n * >\n * <div>{ ... }</div>\n * </Box>\n * ```\n */\nexport const Box = forwardRef<HTMLElement, BoxProps>(\n function Box(props, forwardedRef) {\n const [marginProps, marginRest] = splitByMarginProps(props)\n const [layoutProps, layoutRest] = splitByLayoutProps(marginRest)\n const marginStyles = getMarginStyles(marginProps)\n const layoutStyles = getLayoutStyles(layoutProps)\n\n const {\n children,\n style,\n className,\n as = 'div',\n display,\n ...rest\n } = layoutRest\n\n /**\n * NOTE: Using the createElement function directly because of a ref type related error.\n * TODO: Fix type error.\n */\n return createElement(\n as,\n {\n ref: forwardedRef,\n style: {\n ...marginStyles.style,\n ...layoutStyles.style,\n ...style,\n },\n className: classNames(\n styles.Box,\n display && styles[`display-${display}`],\n marginStyles.className,\n layoutStyles.className,\n className\n ),\n 'data-testid': 'bezier-box',\n ...rest,\n },\n children\n )\n }\n)\n"],"names":["Box","forwardRef","props","forwardedRef","marginProps","marginRest","splitByMarginProps","layoutProps","layoutRest","splitByLayoutProps","marginStyles","getMarginStyles","layoutStyles","getLayoutStyles","children","style","className","as","display","rest","createElement","ref","classNames","styles"],"mappings":";;;;;;;AAeA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,GAAG,gBAAGC,gBAAU,CAC3B,SAASD,GAAGA,CAACE,KAAK,EAAEC,YAAY,EAAE;EAChC,MAAM,CAACC,WAAW,EAAEC,UAAU,CAAC,GAAGC,+BAAkB,CAACJ,KAAK,CAAC,CAAA;EAC3D,MAAM,CAACK,WAAW,EAAEC,UAAU,CAAC,GAAGC,+BAAkB,CAACJ,UAAU,CAAC,CAAA;AAChE,EAAA,MAAMK,YAAY,GAAGC,4BAAe,CAACP,WAAW,CAAC,CAAA;AACjD,EAAA,MAAMQ,YAAY,GAAGC,4BAAe,CAACN,WAAW,CAAC,CAAA;EAEjD,MAAM;IACJO,QAAQ;IACRC,KAAK;IACLC,SAAS;AACTC,IAAAA,EAAE,GAAG,KAAK;IACVC,OAAO;IACP,GAAGC,IAAAA;AACL,GAAC,GAAGX,UAAU,CAAA;;AAEd;AACJ;AACA;AACA;EACI,oBAAOY,mBAAa,CAClBH,EAAE,EACF;AACEI,IAAAA,GAAG,EAAElB,YAAY;AACjBY,IAAAA,KAAK,EAAE;MACL,GAAGL,YAAY,CAACK,KAAK;MACrB,GAAGH,YAAY,CAACG,KAAK;MACrB,GAAGA,KAAAA;KACJ;IACDC,SAAS,EAAEM,aAAU,CACnBC,kBAAM,CAACvB,GAAG,EACVkB,OAAO,IAAIK,kBAAM,CAAC,CAAA,QAAA,EAAWL,OAAO,CAAE,CAAA,CAAC,EACvCR,YAAY,CAACM,SAAS,EACtBJ,YAAY,CAACI,SAAS,EACtBA,SACF,CAAC;AACD,IAAA,aAAa,EAAE,YAAY;IAC3B,GAAGG,IAAAA;GACJ,EACDL,QACF,CAAC,CAAA;AACH,CACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","sources":["../../../../src/components/Button/Button.tsx"],"sourcesContent":["import React, { forwardRef, useCallback } from 'react'\n\nimport { isBezierIcon } from '@channel.io/bezier-icons'\nimport classNames from 'classnames'\n\nimport { warn } from '~/src/utils/assert'\n\nimport { BaseButton } from '~/src/components/BaseButton'\nimport { Icon } from '~/src/components/Icon'\nimport { LegacyIcon, isIconName } from '~/src/components/LegacyIcon'\nimport { Spinner } from '~/src/components/Spinner'\nimport { Text } from '~/src/components/Text'\n\nimport type { ButtonProps, ButtonSize, SideContent } from './Button.types'\n\nimport styles from './Button.module.scss'\n\nexport const BUTTON_TEST_ID = 'bezier-button'\n\nfunction getTypography(size: ButtonSize) {\n return (\n {\n xs: '13',\n s: '13',\n m: '14',\n l: '15',\n xl: '18',\n } as const\n )[size]\n}\n\nfunction getIconSize(size: ButtonSize) {\n return (\n {\n xs: 'xs',\n s: 'xs',\n m: 's',\n l: 's',\n xl: 'm',\n } as const\n )[size]\n}\n\nfunction getSpinnerSize(size: ButtonSize) {\n return (\n {\n xs: 'xs',\n s: 'xs',\n m: 's',\n l: 's',\n xl: 's',\n } as const\n )[size]\n}\n\nfunction ButtonSideContent({\n size,\n children,\n}: {\n size: ButtonSize\n children: SideContent\n}) {\n if (isIconName(children)) {\n warn(\n 'Deprecation: IconName as a value for the leftContent property of a Button has been deprecated. Use the Icon of bezier-icons instead.'\n )\n return (\n <LegacyIcon\n className={styles.ButtonIcon}\n name={children}\n size={getIconSize(size)}\n />\n )\n }\n\n if (isBezierIcon(children)) {\n return (\n <Icon\n className={styles.ButtonIcon}\n source={children}\n size={getIconSize(size)}\n />\n )\n }\n\n return <>{children}</>\n}\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n function Button(\n {\n as = BaseButton,\n className,\n text,\n disabled = false,\n loading = false,\n active = false,\n size = 'm',\n styleVariant = 'primary',\n colorVariant = 'blue',\n leftContent,\n rightContent,\n onClick,\n ...rest\n },\n forwardedRef\n ) {\n const Comp = as as typeof BaseButton\n\n const handleClick = useCallback<React.MouseEventHandler<HTMLButtonElement>>(\n (event) => {\n if (!disabled) {\n onClick?.(event)\n }\n },\n [onClick, disabled]\n )\n\n return (\n <Comp\n ref={forwardedRef}\n className={classNames(\n styles.Button,\n styles[`size-${size}`],\n styles[`style-${styleVariant}`],\n styles[`color-${colorVariant}`],\n active && styles.active,\n className\n )}\n disabled={disabled}\n onClick={handleClick}\n data-testid={BUTTON_TEST_ID}\n data-bezier-component=\"Button\"\n {...rest}\n >\n <div\n className={classNames(\n styles.ButtonContent,\n loading && styles.loading\n )}\n >\n <ButtonSideContent size={size}>{leftContent}</ButtonSideContent>\n\n {text && (\n <Text\n className={styles.ButtonText}\n typo={getTypography(size)}\n bold\n >\n {text}\n </Text>\n )}\n\n <ButtonSideContent size={size}>{rightContent}</ButtonSideContent>\n </div>\n\n {loading && (\n <div className={styles.ButtonLoader}>\n <Spinner size={getSpinnerSize(size)} />\n </div>\n )}\n </Comp>\n )\n }\n)\n"],"names":["BUTTON_TEST_ID","getTypography","size","xs","s","m","l","xl","getIconSize","getSpinnerSize","ButtonSideContent","children","isIconName","warn","React","createElement","LegacyIcon","className","styles","ButtonIcon","name","isBezierIcon","Icon","source","Fragment","Button","forwardRef","as","BaseButton","text","disabled","loading","active","styleVariant","colorVariant","leftContent","rightContent","onClick","rest","forwardedRef","Comp","handleClick","useCallback","event","Object","assign","ref","classNames","ButtonContent","Text","ButtonText","typo","bold","ButtonLoader","Spinner"],"mappings":"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"}
1
+ {"version":3,"file":"Button.js","sources":["../../../../src/components/Button/Button.tsx"],"sourcesContent":["import React, { forwardRef, useCallback } from 'react'\n\nimport { isBezierIcon } from '@channel.io/bezier-icons'\nimport classNames from 'classnames'\n\nimport { warn } from '~/src/utils/assert'\n\nimport { BaseButton } from '~/src/components/BaseButton'\nimport { Icon } from '~/src/components/Icon'\nimport { LegacyIcon, isIconName } from '~/src/components/LegacyIcon'\nimport { Spinner } from '~/src/components/Spinner'\nimport { Text } from '~/src/components/Text'\n\nimport type { ButtonProps, ButtonSize, SideContent } from './Button.types'\n\nimport styles from './Button.module.scss'\n\nexport const BUTTON_TEST_ID = 'bezier-button'\n\nfunction getTypography(size: ButtonSize) {\n return (\n {\n xs: '13',\n s: '13',\n m: '14',\n l: '15',\n xl: '18',\n } as const\n )[size]\n}\n\nfunction getIconSize(size: ButtonSize) {\n return (\n {\n xs: 'xs',\n s: 'xs',\n m: 's',\n l: 's',\n xl: 'm',\n } as const\n )[size]\n}\n\nfunction getSpinnerSize(size: ButtonSize) {\n return (\n {\n xs: 'xs',\n s: 'xs',\n m: 's',\n l: 's',\n xl: 's',\n } as const\n )[size]\n}\n\nfunction ButtonSideContent({\n size,\n children,\n}: {\n size: ButtonSize\n children: SideContent\n}) {\n if (isIconName(children)) {\n warn(\n 'Deprecation: IconName as a value for the leftContent property of a Button has been deprecated. Use the Icon of bezier-icons instead.'\n )\n return (\n <LegacyIcon\n className={styles.ButtonIcon}\n name={children}\n size={getIconSize(size)}\n />\n )\n }\n\n if (isBezierIcon(children)) {\n return (\n <Icon\n className={styles.ButtonIcon}\n source={children}\n size={getIconSize(size)}\n />\n )\n }\n\n return <>{children}</>\n}\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n function Button(\n {\n as = BaseButton,\n className,\n text,\n disabled = false,\n loading = false,\n active = false,\n size = 'm',\n styleVariant = 'primary',\n colorVariant = 'blue',\n leftContent,\n rightContent,\n onClick,\n ...rest\n },\n forwardedRef\n ) {\n const Comp = as as typeof BaseButton\n\n const handleClick = useCallback<React.MouseEventHandler<HTMLButtonElement>>(\n (event) => {\n if (!disabled) {\n onClick?.(event)\n }\n },\n [onClick, disabled]\n )\n\n return (\n <Comp\n ref={forwardedRef}\n className={classNames(\n styles.Button,\n styles[`size-${size}`],\n styles[`style-${styleVariant}`],\n styles[`color-${colorVariant}`],\n active && styles.active,\n className\n )}\n disabled={disabled}\n onClick={handleClick}\n data-testid={BUTTON_TEST_ID}\n data-bezier-component=\"Button\"\n {...rest}\n >\n <div\n className={classNames(\n styles.ButtonContent,\n loading && styles.loading\n )}\n >\n <ButtonSideContent size={size}>{leftContent}</ButtonSideContent>\n\n {text && (\n <Text\n className={styles.ButtonText}\n typo={getTypography(size)}\n bold\n >\n {text}\n </Text>\n )}\n\n <ButtonSideContent size={size}>{rightContent}</ButtonSideContent>\n </div>\n\n {loading && (\n <div className={styles.ButtonLoader}>\n <Spinner size={getSpinnerSize(size)} />\n </div>\n )}\n </Comp>\n )\n }\n)\n"],"names":["BUTTON_TEST_ID","getTypography","size","xs","s","m","l","xl","getIconSize","getSpinnerSize","ButtonSideContent","children","isIconName","warn","React","createElement","LegacyIcon","className","styles","ButtonIcon","name","isBezierIcon","Icon","source","Fragment","Button","forwardRef","as","BaseButton","text","disabled","loading","active","styleVariant","colorVariant","leftContent","rightContent","onClick","rest","forwardedRef","Comp","handleClick","useCallback","event","Object","assign","ref","classNames","ButtonContent","Text","ButtonText","typo","bold","ButtonLoader","Spinner"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Center.js","sources":["../../../../src/components/Center/Center.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\n\nimport classNames from 'classnames'\n\nimport {\n getLayoutStyles,\n getMarginStyles,\n splitByLayoutProps,\n splitByMarginProps,\n} from '~/src/types/props-helpers'\n\nimport { type CenterProps } from './Center.types'\n\nimport styles from './Center.module.scss'\n\n/**\n * `Center` is a layout component that centers its child within itself.\n * @example\n *\n * ```tsx\n * <Center>\n * Centered content\n * </Center>\n * ```\n */\nexport const Center = forwardRef<HTMLDivElement, CenterProps>(\n function Center(props, forwardedRef) {\n const [marginProps, marginRest] = splitByMarginProps(props)\n const [layoutProps, layoutRest] = splitByLayoutProps(marginRest)\n const marginStyles = getMarginStyles(marginProps)\n const layoutStyles = getLayoutStyles(layoutProps)\n\n const { children, style, className, display = 'flex', ...rest } = layoutRest\n\n return (\n <div\n ref={forwardedRef}\n style={{\n ...marginStyles.style,\n ...layoutStyles.style,\n ...style,\n }}\n className={classNames(\n styles.Center,\n display && styles[`display-${display}`],\n marginStyles.className,\n layoutStyles.className,\n className\n )}\n data-testid=\"bezier-center\"\n {...rest}\n >\n {children}\n </div>\n )\n }\n)\n"],"names":["Center","forwardRef","props","forwardedRef","marginProps","marginRest","splitByMarginProps","layoutProps","layoutRest","splitByLayoutProps","marginStyles","getMarginStyles","layoutStyles","getLayoutStyles","children","style","className","display","rest","React","createElement","Object","assign","ref","classNames","styles"],"mappings":";;;;;;;AAeA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,MAAM,gBAAGC,gBAAU,CAC9B,SAASD,MAAMA,CAACE,KAAK,EAAEC,YAAY,EAAE;EACnC,MAAM,CAACC,WAAW,EAAEC,UAAU,CAAC,GAAGC,+BAAkB,CAACJ,KAAK,CAAC,CAAA;EAC3D,MAAM,CAACK,WAAW,EAAEC,UAAU,CAAC,GAAGC,+BAAkB,CAACJ,UAAU,CAAC,CAAA;AAChE,EAAA,MAAMK,YAAY,GAAGC,4BAAe,CAACP,WAAW,CAAC,CAAA;AACjD,EAAA,MAAMQ,YAAY,GAAGC,4BAAe,CAACN,WAAW,CAAC,CAAA;EAEjD,MAAM;IAAEO,QAAQ;IAAEC,KAAK;IAAEC,SAAS;AAAEC,IAAAA,OAAO,GAAG,MAAM;IAAE,GAAGC,IAAAA;AAAK,GAAC,GAAGV,UAAU,CAAA;AAE5E,EAAA,oBACEW,KAAA,CAAAC,aAAA,CAAAC,KAAAA,EAAAA,MAAA,CAAAC,MAAA,CAAA;AACEC,IAAAA,GAAG,EAAEpB,YAAa;AAClBY,IAAAA,KAAK,EAAE;MACL,GAAGL,YAAY,CAACK,KAAK;MACrB,GAAGH,YAAY,CAACG,KAAK;MACrB,GAAGA,KAAAA;KACH;IACFC,SAAS,EAAEQ,aAAU,CACnBC,qBAAM,CAACzB,MAAM,EACbiB,OAAO,IAAIQ,qBAAM,CAAE,CAAA,QAAA,EAAUR,OAAQ,CAAC,CAAA,CAAC,EACvCP,YAAY,CAACM,SAAS,EACtBJ,YAAY,CAACI,SAAS,EACtBA,SACF,CAAE;IACF,aAAY,EAAA,eAAA;GACRE,EAAAA,IAAI,CAEPJ,EAAAA,QACE,CAAC,CAAA;AAEV,CACF;;;;"}
1
+ {"version":3,"file":"Center.js","sources":["../../../../src/components/Center/Center.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\n\nimport classNames from 'classnames'\n\nimport {\n getLayoutStyles,\n getMarginStyles,\n splitByLayoutProps,\n splitByMarginProps,\n} from '~/src/types/props-helpers'\n\nimport { type CenterProps } from './Center.types'\n\nimport styles from './Center.module.scss'\n\n/**\n * `Center` is a layout component that centers its child within itself.\n * @example\n *\n * ```tsx\n * <Center>\n * Centered content\n * </Center>\n * ```\n */\nexport const Center = forwardRef<HTMLDivElement, CenterProps>(\n function Center(props, forwardedRef) {\n const [marginProps, marginRest] = splitByMarginProps(props)\n const [layoutProps, layoutRest] = splitByLayoutProps(marginRest)\n const marginStyles = getMarginStyles(marginProps)\n const layoutStyles = getLayoutStyles(layoutProps)\n\n const { children, style, className, display = 'flex', ...rest } = layoutRest\n\n return (\n <div\n ref={forwardedRef}\n style={{\n ...marginStyles.style,\n ...layoutStyles.style,\n ...style,\n }}\n className={classNames(\n styles.Center,\n display && styles[`display-${display}`],\n marginStyles.className,\n layoutStyles.className,\n className\n )}\n data-testid=\"bezier-center\"\n {...rest}\n >\n {children}\n </div>\n )\n }\n)\n"],"names":["Center","forwardRef","props","forwardedRef","marginProps","marginRest","splitByMarginProps","layoutProps","layoutRest","splitByLayoutProps","marginStyles","getMarginStyles","layoutStyles","getLayoutStyles","children","style","className","display","rest","React","createElement","Object","assign","ref","classNames","styles"],"mappings":";;;;;;;AAeA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,MAAM,gBAAGC,gBAAU,CAC9B,SAASD,MAAMA,CAACE,KAAK,EAAEC,YAAY,EAAE;EACnC,MAAM,CAACC,WAAW,EAAEC,UAAU,CAAC,GAAGC,+BAAkB,CAACJ,KAAK,CAAC,CAAA;EAC3D,MAAM,CAACK,WAAW,EAAEC,UAAU,CAAC,GAAGC,+BAAkB,CAACJ,UAAU,CAAC,CAAA;AAChE,EAAA,MAAMK,YAAY,GAAGC,4BAAe,CAACP,WAAW,CAAC,CAAA;AACjD,EAAA,MAAMQ,YAAY,GAAGC,4BAAe,CAACN,WAAW,CAAC,CAAA;EAEjD,MAAM;IAAEO,QAAQ;IAAEC,KAAK;IAAEC,SAAS;AAAEC,IAAAA,OAAO,GAAG,MAAM;IAAE,GAAGC,IAAAA;AAAK,GAAC,GAAGV,UAAU,CAAA;AAE5E,EAAA,oBACEW,KAAA,CAAAC,aAAA,CAAAC,KAAAA,EAAAA,MAAA,CAAAC,MAAA,CAAA;AACEC,IAAAA,GAAG,EAAEpB,YAAa;AAClBY,IAAAA,KAAK,EAAE;MACL,GAAGL,YAAY,CAACK,KAAK;MACrB,GAAGH,YAAY,CAACG,KAAK;MACrB,GAAGA,KAAAA;KACH;IACFC,SAAS,EAAEQ,aAAU,CACnBC,qBAAM,CAACzB,MAAM,EACbiB,OAAO,IAAIQ,qBAAM,CAAC,CAAA,QAAA,EAAWR,OAAO,CAAE,CAAA,CAAC,EACvCP,YAAY,CAACM,SAAS,EACtBJ,YAAY,CAACI,SAAS,EACtBA,SACF,CAAE;IACF,aAAY,EAAA,eAAA;GACRE,EAAAA,IAAI,CAEPJ,EAAAA,QACE,CAAC,CAAA;AAEV,CACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"CheckableAvatar.js","sources":["../../../../src/components/CheckableAvatar/CheckableAvatar.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\n\nimport { CheckIcon } from '@channel.io/bezier-icons'\nimport * as CheckboxPrimitive from '@radix-ui/react-checkbox'\nimport classNames from 'classnames'\n\nimport useId from '~/src/hooks/useId'\n\nimport { Avatar } from '~/src/components/Avatar'\nimport { BaseButton } from '~/src/components/BaseButton'\nimport { Icon } from '~/src/components/Icon'\nimport { VisuallyHidden } from '~/src/components/VisuallyHidden'\n\nimport type { CheckableAvatarProps } from './CheckableAvatar.types'\n\nimport styles from './CheckableAvatar.module.scss'\n\n/**\n * `CheckableAvatar` is a checkbox component that looks like `Avatar`.\n * @example\n *\n * ```tsx\n * const [checked, setChecked] = useState(false)\n * // Controlled\n * <CheckableAvatar\n * name=\"John Doe\"\n * avatarUrl=\"...\"\n * checked={checked}\n * onCheckedChange={setChecked}\n * />\n * // Uncontrolled\n * <CheckableAvatar\n * name=\"John Doe\"\n * avatarUrl=\"...\"\n * defaultChecked\n * />\n * ```\n */\nexport const CheckableAvatar = forwardRef<\n HTMLButtonElement,\n CheckableAvatarProps\n>(function CheckableAvatar(\n {\n children,\n className,\n id: idProp,\n name,\n size = '24',\n disabled,\n avatarUrl,\n fallbackUrl,\n status,\n showBorder,\n ...props\n },\n forwardedRef\n) {\n const id = useId(idProp, 'bezier-checkable-avatar')\n\n return (\n <CheckboxPrimitive.Root\n asChild\n className={classNames(styles.Checkbox, className)}\n ref={forwardedRef}\n id={id}\n name={name}\n disabled={disabled}\n {...props}\n >\n <BaseButton>\n <CheckboxPrimitive.Indicator\n asChild\n forceMount\n >\n <Icon\n className={classNames(styles.CheckIcon, styles[`size-${size}`])}\n source={CheckIcon}\n color=\"bgtxt-absolute-white-normal\"\n />\n </CheckboxPrimitive.Indicator>\n\n <Avatar\n className={styles.Avatar}\n aria-hidden\n size={size}\n name={name}\n disabled={disabled}\n avatarUrl={avatarUrl}\n fallbackUrl={fallbackUrl}\n status={status}\n showBorder={showBorder}\n >\n {children}\n </Avatar>\n\n <VisuallyHidden>\n <label htmlFor={id}>{name}</label>\n </VisuallyHidden>\n </BaseButton>\n </CheckboxPrimitive.Root>\n )\n})\n"],"names":["CheckableAvatar","forwardRef","children","className","id","idProp","name","size","disabled","avatarUrl","fallbackUrl","status","showBorder","props","forwardedRef","useId","React","createElement","CheckboxPrimitive","Object","assign","asChild","classNames","styles","Checkbox","ref","BaseButton","forceMount","Icon","CheckIcon","source","color","Avatar","VisuallyHidden","htmlFor"],"mappings":";;;;;;;;;;;;;AAiBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;MACaA,eAAe,gBAAGC,gBAAU,CAGvC,SAASD,eAAeA,CACxB;EACEE,QAAQ;EACRC,SAAS;AACTC,EAAAA,EAAE,EAAEC,MAAM;EACVC,IAAI;AACJC,EAAAA,IAAI,GAAG,IAAI;EACXC,QAAQ;EACRC,SAAS;EACTC,WAAW;EACXC,MAAM;EACNC,UAAU;EACV,GAAGC,KAAAA;AACL,CAAC,EACDC,YAAY,EACZ;AACA,EAAA,MAAMV,EAAE,GAAGW,aAAK,CAACV,MAAM,EAAE,yBAAyB,CAAC,CAAA;EAEnD,oBACEW,KAAA,CAAAC,aAAA,CAACC,UAAsB,EAAAC,MAAA,CAAAC,MAAA,CAAA;IACrBC,OAAO,EAAA,IAAA;IACPlB,SAAS,EAAEmB,eAAU,CAACC,8BAAM,CAACC,QAAQ,EAAErB,SAAS,CAAE;AAClDsB,IAAAA,GAAG,EAAEX,YAAa;AAClBV,IAAAA,EAAE,EAAEA,EAAG;AACPE,IAAAA,IAAI,EAAEA,IAAK;AACXE,IAAAA,QAAQ,EAAEA,QAAAA;AAAS,GAAA,EACfK,KAAK,CAAA,eAETG,KAAA,CAAAC,aAAA,CAACS,qBAAU,EACTV,IAAAA,eAAAA,KAAA,CAAAC,aAAA,CAACC,eAA2B,EAAA;IAC1BG,OAAO,EAAA,IAAA;IACPM,UAAU,EAAA,IAAA;AAAA,GAAA,eAEVX,KAAA,CAAAC,aAAA,CAACW,SAAI,EAAA;AACHzB,IAAAA,SAAS,EAAEmB,eAAU,CAACC,8BAAM,CAACM,SAAS,EAAEN,8BAAM,CAAE,CAAA,KAAA,EAAOhB,IAAK,CAAA,CAAC,CAAC,CAAE;AAChEuB,IAAAA,MAAM,EAAED,qBAAU;AAClBE,IAAAA,KAAK,EAAC,6BAAA;AAA6B,GACpC,CAC0B,CAAC,eAE9Bf,KAAA,CAAAC,aAAA,CAACe,aAAM,EAAA;IACL7B,SAAS,EAAEoB,8BAAM,CAACS,MAAO;IACzB,aAAW,EAAA,IAAA;AACXzB,IAAAA,IAAI,EAAEA,IAAK;AACXD,IAAAA,IAAI,EAAEA,IAAK;AACXE,IAAAA,QAAQ,EAAEA,QAAS;AACnBC,IAAAA,SAAS,EAAEA,SAAU;AACrBC,IAAAA,WAAW,EAAEA,WAAY;AACzBC,IAAAA,MAAM,EAAEA,MAAO;AACfC,IAAAA,UAAU,EAAEA,UAAAA;GAEXV,EAAAA,QACK,CAAC,eAETc,KAAA,CAAAC,aAAA,CAACgB,6BAAc,EAAA,IAAA,eACbjB,KAAA,CAAAC,aAAA,CAAA,OAAA,EAAA;AAAOiB,IAAAA,OAAO,EAAE9B,EAAAA;AAAG,GAAA,EAAEE,IAAY,CACnB,CACN,CACU,CAAC,CAAA;AAE7B,CAAC;;;;"}
1
+ {"version":3,"file":"CheckableAvatar.js","sources":["../../../../src/components/CheckableAvatar/CheckableAvatar.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\n\nimport { CheckIcon } from '@channel.io/bezier-icons'\nimport * as CheckboxPrimitive from '@radix-ui/react-checkbox'\nimport classNames from 'classnames'\n\nimport useId from '~/src/hooks/useId'\n\nimport { Avatar } from '~/src/components/Avatar'\nimport { BaseButton } from '~/src/components/BaseButton'\nimport { Icon } from '~/src/components/Icon'\nimport { VisuallyHidden } from '~/src/components/VisuallyHidden'\n\nimport type { CheckableAvatarProps } from './CheckableAvatar.types'\n\nimport styles from './CheckableAvatar.module.scss'\n\n/**\n * `CheckableAvatar` is a checkbox component that looks like `Avatar`.\n * @example\n *\n * ```tsx\n * const [checked, setChecked] = useState(false)\n * // Controlled\n * <CheckableAvatar\n * name=\"John Doe\"\n * avatarUrl=\"...\"\n * checked={checked}\n * onCheckedChange={setChecked}\n * />\n * // Uncontrolled\n * <CheckableAvatar\n * name=\"John Doe\"\n * avatarUrl=\"...\"\n * defaultChecked\n * />\n * ```\n */\nexport const CheckableAvatar = forwardRef<\n HTMLButtonElement,\n CheckableAvatarProps\n>(function CheckableAvatar(\n {\n children,\n className,\n id: idProp,\n name,\n size = '24',\n disabled,\n avatarUrl,\n fallbackUrl,\n status,\n showBorder,\n ...props\n },\n forwardedRef\n) {\n const id = useId(idProp, 'bezier-checkable-avatar')\n\n return (\n <CheckboxPrimitive.Root\n asChild\n className={classNames(styles.Checkbox, className)}\n ref={forwardedRef}\n id={id}\n name={name}\n disabled={disabled}\n {...props}\n >\n <BaseButton>\n <CheckboxPrimitive.Indicator\n asChild\n forceMount\n >\n <Icon\n className={classNames(styles.CheckIcon, styles[`size-${size}`])}\n source={CheckIcon}\n color=\"bgtxt-absolute-white-normal\"\n />\n </CheckboxPrimitive.Indicator>\n\n <Avatar\n className={styles.Avatar}\n aria-hidden\n size={size}\n name={name}\n disabled={disabled}\n avatarUrl={avatarUrl}\n fallbackUrl={fallbackUrl}\n status={status}\n showBorder={showBorder}\n >\n {children}\n </Avatar>\n\n <VisuallyHidden>\n <label htmlFor={id}>{name}</label>\n </VisuallyHidden>\n </BaseButton>\n </CheckboxPrimitive.Root>\n )\n})\n"],"names":["CheckableAvatar","forwardRef","children","className","id","idProp","name","size","disabled","avatarUrl","fallbackUrl","status","showBorder","props","forwardedRef","useId","React","createElement","CheckboxPrimitive","Object","assign","asChild","classNames","styles","Checkbox","ref","BaseButton","forceMount","Icon","CheckIcon","source","color","Avatar","VisuallyHidden","htmlFor"],"mappings":";;;;;;;;;;;;;AAiBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;MACaA,eAAe,gBAAGC,gBAAU,CAGvC,SAASD,eAAeA,CACxB;EACEE,QAAQ;EACRC,SAAS;AACTC,EAAAA,EAAE,EAAEC,MAAM;EACVC,IAAI;AACJC,EAAAA,IAAI,GAAG,IAAI;EACXC,QAAQ;EACRC,SAAS;EACTC,WAAW;EACXC,MAAM;EACNC,UAAU;EACV,GAAGC,KAAAA;AACL,CAAC,EACDC,YAAY,EACZ;AACA,EAAA,MAAMV,EAAE,GAAGW,aAAK,CAACV,MAAM,EAAE,yBAAyB,CAAC,CAAA;EAEnD,oBACEW,KAAA,CAAAC,aAAA,CAACC,UAAsB,EAAAC,MAAA,CAAAC,MAAA,CAAA;IACrBC,OAAO,EAAA,IAAA;IACPlB,SAAS,EAAEmB,eAAU,CAACC,8BAAM,CAACC,QAAQ,EAAErB,SAAS,CAAE;AAClDsB,IAAAA,GAAG,EAAEX,YAAa;AAClBV,IAAAA,EAAE,EAAEA,EAAG;AACPE,IAAAA,IAAI,EAAEA,IAAK;AACXE,IAAAA,QAAQ,EAAEA,QAAAA;AAAS,GAAA,EACfK,KAAK,CAAA,eAETG,KAAA,CAAAC,aAAA,CAACS,qBAAU,EACTV,IAAAA,eAAAA,KAAA,CAAAC,aAAA,CAACC,eAA2B,EAAA;IAC1BG,OAAO,EAAA,IAAA;IACPM,UAAU,EAAA,IAAA;AAAA,GAAA,eAEVX,KAAA,CAAAC,aAAA,CAACW,SAAI,EAAA;AACHzB,IAAAA,SAAS,EAAEmB,eAAU,CAACC,8BAAM,CAACM,SAAS,EAAEN,8BAAM,CAAC,CAAA,KAAA,EAAQhB,IAAI,CAAA,CAAE,CAAC,CAAE;AAChEuB,IAAAA,MAAM,EAAED,qBAAU;AAClBE,IAAAA,KAAK,EAAC,6BAAA;AAA6B,GACpC,CAC0B,CAAC,eAE9Bf,KAAA,CAAAC,aAAA,CAACe,aAAM,EAAA;IACL7B,SAAS,EAAEoB,8BAAM,CAACS,MAAO;IACzB,aAAW,EAAA,IAAA;AACXzB,IAAAA,IAAI,EAAEA,IAAK;AACXD,IAAAA,IAAI,EAAEA,IAAK;AACXE,IAAAA,QAAQ,EAAEA,QAAS;AACnBC,IAAAA,SAAS,EAAEA,SAAU;AACrBC,IAAAA,WAAW,EAAEA,WAAY;AACzBC,IAAAA,MAAM,EAAEA,MAAO;AACfC,IAAAA,UAAU,EAAEA,UAAAA;GAEXV,EAAAA,QACK,CAAC,eAETc,KAAA,CAAAC,aAAA,CAACgB,6BAAc,EAAA,IAAA,eACbjB,KAAA,CAAAC,aAAA,CAAA,OAAA,EAAA;AAAOiB,IAAAA,OAAO,EAAE9B,EAAAA;AAAG,GAAA,EAAEE,IAAY,CACnB,CACN,CACU,CAAC,CAAA;AAE7B,CAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Emoji.js","sources":["../../../../src/components/Emoji/Emoji.tsx"],"sourcesContent":["import React, { type CSSProperties, forwardRef } from 'react'\n\nimport classNames from 'classnames'\n\nimport { cssUrl } from '~/src/utils/style'\n\nimport { type EmojiProps } from './Emoji.types'\n\nimport styles from './Emoji.module.scss'\n\nexport const EMOJI_TEST_ID = 'bezier-emoji'\n\n/**\n * `Emoji` is a component for representing emoji with variant size.\n * @example\n * ```tsx\n * <Emoji\n * name=\"A\"\n * imageUrl=\"https://cf.exp.channel.io/asset/emoji/images/80/a.png\"\n * size=\"20\"\n * />\n * ```\n */\nexport const Emoji = forwardRef<HTMLDivElement, EmojiProps>(function Emoji(\n { style, imageUrl, className, name, size = '24', ...rest },\n forwardedRef\n) {\n return (\n <div\n ref={forwardedRef}\n role=\"img\"\n aria-description={name}\n style={\n {\n '--b-emoji-background-image': cssUrl(imageUrl),\n ...style,\n } as CSSProperties\n }\n className={classNames(styles.Emoji, styles[`size-${size}`], className)}\n data-testid={EMOJI_TEST_ID}\n {...rest}\n />\n )\n})\n"],"names":["EMOJI_TEST_ID","Emoji","forwardRef","style","imageUrl","className","name","size","rest","forwardedRef","React","createElement","Object","assign","ref","role","cssUrl","classNames","styles"],"mappings":";;;;;;;AAUO,MAAMA,aAAa,GAAG,eAAc;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;MACaC,KAAK,gBAAGC,gBAAU,CAA6B,SAASD,KAAKA,CACxE;SAAEE,OAAK;EAAEC,QAAQ;EAAEC,SAAS;EAAEC,IAAI;AAAEC,EAAAA,IAAI,GAAG,IAAI;EAAE,GAAGC,IAAAA;AAAK,CAAC,EAC1DC,YAAY,EACZ;AACA,EAAA,oBACEC,KAAA,CAAAC,aAAA,CAAAC,KAAAA,EAAAA,MAAA,CAAAC,MAAA,CAAA;AACEC,IAAAA,GAAG,EAAEL,YAAa;AAClBM,IAAAA,IAAI,EAAC,KAAK;AACV,IAAA,kBAAA,EAAkBT,IAAK;AACvBH,IAAAA,KAAK,EACH;AACE,MAAA,4BAA4B,EAAEa,YAAM,CAACZ,QAAQ,CAAC;MAC9C,GAAGD,OAAAA;KAEN;AACDE,IAAAA,SAAS,EAAEY,aAAU,CAACC,oBAAM,CAACjB,KAAK,EAAEiB,oBAAM,CAAE,QAAOX,IAAK,CAAA,CAAC,CAAC,EAAEF,SAAS,CAAE;IACvE,aAAaL,EAAAA,aAAAA;GACTQ,EAAAA,IAAI,CACT,CAAC,CAAA;AAEN,CAAC;;;;;"}
1
+ {"version":3,"file":"Emoji.js","sources":["../../../../src/components/Emoji/Emoji.tsx"],"sourcesContent":["import React, { type CSSProperties, forwardRef } from 'react'\n\nimport classNames from 'classnames'\n\nimport { cssUrl } from '~/src/utils/style'\n\nimport { type EmojiProps } from './Emoji.types'\n\nimport styles from './Emoji.module.scss'\n\nexport const EMOJI_TEST_ID = 'bezier-emoji'\n\n/**\n * `Emoji` is a component for representing emoji with variant size.\n * @example\n * ```tsx\n * <Emoji\n * name=\"A\"\n * imageUrl=\"https://cf.exp.channel.io/asset/emoji/images/80/a.png\"\n * size=\"20\"\n * />\n * ```\n */\nexport const Emoji = forwardRef<HTMLDivElement, EmojiProps>(function Emoji(\n { style, imageUrl, className, name, size = '24', ...rest },\n forwardedRef\n) {\n return (\n <div\n ref={forwardedRef}\n role=\"img\"\n aria-description={name}\n style={\n {\n '--b-emoji-background-image': cssUrl(imageUrl),\n ...style,\n } as CSSProperties\n }\n className={classNames(styles.Emoji, styles[`size-${size}`], className)}\n data-testid={EMOJI_TEST_ID}\n {...rest}\n />\n )\n})\n"],"names":["EMOJI_TEST_ID","Emoji","forwardRef","style","imageUrl","className","name","size","rest","forwardedRef","React","createElement","Object","assign","ref","role","cssUrl","classNames","styles"],"mappings":";;;;;;;AAUO,MAAMA,aAAa,GAAG,eAAc;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;MACaC,KAAK,gBAAGC,gBAAU,CAA6B,SAASD,KAAKA,CACxE;SAAEE,OAAK;EAAEC,QAAQ;EAAEC,SAAS;EAAEC,IAAI;AAAEC,EAAAA,IAAI,GAAG,IAAI;EAAE,GAAGC,IAAAA;AAAK,CAAC,EAC1DC,YAAY,EACZ;AACA,EAAA,oBACEC,KAAA,CAAAC,aAAA,CAAAC,KAAAA,EAAAA,MAAA,CAAAC,MAAA,CAAA;AACEC,IAAAA,GAAG,EAAEL,YAAa;AAClBM,IAAAA,IAAI,EAAC,KAAK;AACV,IAAA,kBAAA,EAAkBT,IAAK;AACvBH,IAAAA,KAAK,EACH;AACE,MAAA,4BAA4B,EAAEa,YAAM,CAACZ,QAAQ,CAAC;MAC9C,GAAGD,OAAAA;KAEN;AACDE,IAAAA,SAAS,EAAEY,aAAU,CAACC,oBAAM,CAACjB,KAAK,EAAEiB,oBAAM,CAAC,QAAQX,IAAI,CAAA,CAAE,CAAC,EAAEF,SAAS,CAAE;IACvE,aAAaL,EAAAA,aAAAA;GACTQ,EAAAA,IAAI,CACT,CAAC,CAAA;AAEN,CAAC;;;;;"}
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var React = require('react');
4
+ var useIsomorphicLayoutEffect = require('../../hooks/useIsomorphicLayoutEffect.js');
4
5
  var react = require('../../utils/react.js');
5
6
  var type = require('../../utils/type.js');
6
7
  var FeatureProvider_types = require('./FeatureProvider.types.js');
@@ -25,7 +26,7 @@ function FeatureProvider({
25
26
  features
26
27
  }) {
27
28
  const [featureFlag, setFeatureFlag] = React.useState(initialFeatureFlag);
28
- React.useLayoutEffect(function activateFeatures() {
29
+ useIsomorphicLayoutEffect.useIsomorphicLayoutEffect(function activateFeatures() {
29
30
  if (type.isEmpty(features)) {
30
31
  return;
31
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FeatureProvider.js","sources":["../../../../src/components/FeatureProvider/FeatureProvider.tsx"],"sourcesContent":["import React, { useLayoutEffect, useMemo, useState } from 'react'\n\nimport { createContext } from '~/src/utils/react'\nimport { isEmpty } from '~/src/utils/type'\n\nimport {\n type FeatureFlag,\n type FeatureProviderProps,\n FeatureType,\n} from './FeatureProvider.types'\n\nconst initialFeatureFlag: FeatureFlag = {\n [FeatureType.SmoothCorners]: false,\n}\n\nconst [FeatureFlagContextProvider, useFeatureFlagContext] =\n createContext<FeatureFlag>(initialFeatureFlag)\n\n/**\n * `FeatureProvider` is a component that activates features and provides.\n * @example\n *\n * ```tsx\n * <FeatureProvider features={[SmoothCornersFeature]}>\n * <App />\n * </FeatureProvider>\n * ```\n */\nexport function FeatureProvider({ children, features }: FeatureProviderProps) {\n const [featureFlag, setFeatureFlag] =\n useState<FeatureFlag>(initialFeatureFlag)\n\n useLayoutEffect(\n function activateFeatures() {\n if (isEmpty(features)) {\n return\n }\n\n const promises = features.map((feature) =>\n feature.activate().then((activated) => ({ [feature.name]: activated }))\n )\n\n Promise.all(promises).then((flags) => {\n setFeatureFlag((prev) => ({\n ...prev,\n ...flags.reduce((acc, cur) => ({ ...acc, ...cur }), {}),\n }))\n })\n },\n [features]\n )\n\n return (\n <FeatureFlagContextProvider value={featureFlag}>\n {children}\n </FeatureFlagContextProvider>\n )\n}\n\nexport function useFeatureFlag(featureType: FeatureType) {\n const contextValue = useFeatureFlagContext()\n\n return useMemo(() => contextValue[featureType], [contextValue, featureType])\n}\n"],"names":["initialFeatureFlag","FeatureType","SmoothCorners","FeatureFlagContextProvider","useFeatureFlagContext","createContext","FeatureProvider","children","features","featureFlag","setFeatureFlag","useState","useLayoutEffect","activateFeatures","isEmpty","promises","map","feature","activate","then","activated","name","Promise","all","flags","prev","reduce","acc","cur","React","createElement","value","useFeatureFlag","featureType","contextValue","useMemo"],"mappings":";;;;;;;AAWA,MAAMA,kBAA+B,GAAG;EACtC,CAACC,iCAAW,CAACC,aAAa,GAAG,KAAA;AAC/B,CAAC,CAAA;AAED,MAAM,CAACC,0BAA0B,EAAEC,qBAAqB,CAAC,GACvDC,mBAAa,CAAcL,kBAAkB,CAAC,CAAA;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASM,eAAeA,CAAC;EAAEC,QAAQ;AAAEC,EAAAA,QAAAA;AAA+B,CAAC,EAAE;EAC5E,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GACjCC,cAAQ,CAAcX,kBAAkB,CAAC,CAAA;AAE3CY,EAAAA,qBAAe,CACb,SAASC,gBAAgBA,GAAG;AAC1B,IAAA,IAAIC,YAAO,CAACN,QAAQ,CAAC,EAAE;AACrB,MAAA,OAAA;AACF,KAAA;AAEA,IAAA,MAAMO,QAAQ,GAAGP,QAAQ,CAACQ,GAAG,CAAEC,OAAO,IACpCA,OAAO,CAACC,QAAQ,EAAE,CAACC,IAAI,CAAEC,SAAS,KAAM;MAAE,CAACH,OAAO,CAACI,IAAI,GAAGD,SAAAA;KAAW,CAAC,CACxE,CAAC,CAAA;IAEDE,OAAO,CAACC,GAAG,CAACR,QAAQ,CAAC,CAACI,IAAI,CAAEK,KAAK,IAAK;MACpCd,cAAc,CAAEe,IAAI,KAAM;AACxB,QAAA,GAAGA,IAAI;QACP,GAAGD,KAAK,CAACE,MAAM,CAAC,CAACC,GAAG,EAAEC,GAAG,MAAM;AAAE,UAAA,GAAGD,GAAG;UAAE,GAAGC,GAAAA;SAAK,CAAC,EAAE,EAAE,CAAA;AACxD,OAAC,CAAC,CAAC,CAAA;AACL,KAAC,CAAC,CAAA;AACJ,GAAC,EACD,CAACpB,QAAQ,CACX,CAAC,CAAA;AAED,EAAA,oBACEqB,KAAA,CAAAC,aAAA,CAAC3B,0BAA0B,EAAA;AAAC4B,IAAAA,KAAK,EAAEtB,WAAAA;AAAY,GAAA,EAC5CF,QACyB,CAAC,CAAA;AAEjC,CAAA;AAEO,SAASyB,cAAcA,CAACC,WAAwB,EAAE;AACvD,EAAA,MAAMC,YAAY,GAAG9B,qBAAqB,EAAE,CAAA;AAE5C,EAAA,OAAO+B,aAAO,CAAC,MAAMD,YAAY,CAACD,WAAW,CAAC,EAAE,CAACC,YAAY,EAAED,WAAW,CAAC,CAAC,CAAA;AAC9E;;;;;"}
1
+ {"version":3,"file":"FeatureProvider.js","sources":["../../../../src/components/FeatureProvider/FeatureProvider.tsx"],"sourcesContent":["import React, { useMemo, useState } from 'react'\n\nimport { useIsomorphicLayoutEffect } from '~/src/hooks/useIsomorphicLayoutEffect'\nimport { createContext } from '~/src/utils/react'\nimport { isEmpty } from '~/src/utils/type'\n\nimport {\n type FeatureFlag,\n type FeatureProviderProps,\n FeatureType,\n} from './FeatureProvider.types'\n\nconst initialFeatureFlag: FeatureFlag = {\n [FeatureType.SmoothCorners]: false,\n}\n\nconst [FeatureFlagContextProvider, useFeatureFlagContext] =\n createContext<FeatureFlag>(initialFeatureFlag)\n\n/**\n * `FeatureProvider` is a component that activates features and provides.\n * @example\n *\n * ```tsx\n * <FeatureProvider features={[SmoothCornersFeature]}>\n * <App />\n * </FeatureProvider>\n * ```\n */\nexport function FeatureProvider({ children, features }: FeatureProviderProps) {\n const [featureFlag, setFeatureFlag] =\n useState<FeatureFlag>(initialFeatureFlag)\n\n useIsomorphicLayoutEffect(\n function activateFeatures() {\n if (isEmpty(features)) {\n return\n }\n\n const promises = features.map((feature) =>\n feature.activate().then((activated) => ({ [feature.name]: activated }))\n )\n\n Promise.all(promises).then((flags) => {\n setFeatureFlag((prev) => ({\n ...prev,\n ...flags.reduce((acc, cur) => ({ ...acc, ...cur }), {}),\n }))\n })\n },\n [features]\n )\n\n return (\n <FeatureFlagContextProvider value={featureFlag}>\n {children}\n </FeatureFlagContextProvider>\n )\n}\n\nexport function useFeatureFlag(featureType: FeatureType) {\n const contextValue = useFeatureFlagContext()\n\n return useMemo(() => contextValue[featureType], [contextValue, featureType])\n}\n"],"names":["initialFeatureFlag","FeatureType","SmoothCorners","FeatureFlagContextProvider","useFeatureFlagContext","createContext","FeatureProvider","children","features","featureFlag","setFeatureFlag","useState","useIsomorphicLayoutEffect","activateFeatures","isEmpty","promises","map","feature","activate","then","activated","name","Promise","all","flags","prev","reduce","acc","cur","React","createElement","value","useFeatureFlag","featureType","contextValue","useMemo"],"mappings":";;;;;;;;AAYA,MAAMA,kBAA+B,GAAG;EACtC,CAACC,iCAAW,CAACC,aAAa,GAAG,KAAA;AAC/B,CAAC,CAAA;AAED,MAAM,CAACC,0BAA0B,EAAEC,qBAAqB,CAAC,GACvDC,mBAAa,CAAcL,kBAAkB,CAAC,CAAA;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASM,eAAeA,CAAC;EAAEC,QAAQ;AAAEC,EAAAA,QAAAA;AAA+B,CAAC,EAAE;EAC5E,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GACjCC,cAAQ,CAAcX,kBAAkB,CAAC,CAAA;AAE3CY,EAAAA,mDAAyB,CACvB,SAASC,gBAAgBA,GAAG;AAC1B,IAAA,IAAIC,YAAO,CAACN,QAAQ,CAAC,EAAE;AACrB,MAAA,OAAA;AACF,KAAA;AAEA,IAAA,MAAMO,QAAQ,GAAGP,QAAQ,CAACQ,GAAG,CAAEC,OAAO,IACpCA,OAAO,CAACC,QAAQ,EAAE,CAACC,IAAI,CAAEC,SAAS,KAAM;MAAE,CAACH,OAAO,CAACI,IAAI,GAAGD,SAAAA;KAAW,CAAC,CACxE,CAAC,CAAA;IAEDE,OAAO,CAACC,GAAG,CAACR,QAAQ,CAAC,CAACI,IAAI,CAAEK,KAAK,IAAK;MACpCd,cAAc,CAAEe,IAAI,KAAM;AACxB,QAAA,GAAGA,IAAI;QACP,GAAGD,KAAK,CAACE,MAAM,CAAC,CAACC,GAAG,EAAEC,GAAG,MAAM;AAAE,UAAA,GAAGD,GAAG;UAAE,GAAGC,GAAAA;SAAK,CAAC,EAAE,EAAE,CAAA;AACxD,OAAC,CAAC,CAAC,CAAA;AACL,KAAC,CAAC,CAAA;AACJ,GAAC,EACD,CAACpB,QAAQ,CACX,CAAC,CAAA;AAED,EAAA,oBACEqB,KAAA,CAAAC,aAAA,CAAC3B,0BAA0B,EAAA;AAAC4B,IAAAA,KAAK,EAAEtB,WAAAA;AAAY,GAAA,EAC5CF,QACyB,CAAC,CAAA;AAEjC,CAAA;AAEO,SAASyB,cAAcA,CAACC,WAAwB,EAAE;AACvD,EAAA,MAAMC,YAAY,GAAG9B,qBAAqB,EAAE,CAAA;AAE5C,EAAA,OAAO+B,aAAO,CAAC,MAAMD,YAAY,CAACD,WAAW,CAAC,EAAE,CAACC,YAAY,EAAED,WAAW,CAAC,CAAC,CAAA;AAC9E;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"smoothCornersScript.js","sources":["../../../../../src/components/FeatureProvider/SmoothCornersFeature/smoothCornersScript.ts"],"sourcesContent":["export const smoothCornersScript = `\nclass SmoothCorners {\n static get inputProperties() {\n return [\n 'border-image-source',\n '--smooth-corners',\n '--smooth-corners-shadow',\n '--smooth-corners-bg-color',\n '--smooth-corners-padding',\n '--smooth-corners-radius-unit',\n ]\n }\n\n constructor() {\n this.superellipseCache = new Map()\n }\n\n trimPX(pixel) {\n return parseInt(pixel.replace('px', ''), 10)\n }\n\n splitValueAndUnit(value) {\n const regex = /([\\\\d.\\\\-+]+)\\\\s*(\\\\D*)/\n const matches = value.match(regex)\n return matches ? [matches[1], matches[2]] : [value, '']\n }\n\n superellipse(...args) {\n const sanitizedArgs = this.sanitizeSuperellipseArgs(...args)\n\n const cacheKey = this.getSuperellipseCacheKey(sanitizedArgs)\n\n if (this.superellipseCache.has(cacheKey)) {\n return [...this.superellipseCache.get(cacheKey)]\n }\n\n const result = this.computeSuperellipse(...sanitizedArgs)\n\n this.superellipseCache.set(cacheKey, result)\n\n return [...result]\n }\n\n sanitizeSuperellipseArgs(a, b, nX, nY) {\n if (nX > 100) { nX = 100 }\n if (nY > 100) { nY = 100 }\n if (nX < 0.00000000001) { nX = 0.00000000001 }\n if (nY < 0.00000000001) { nY = 0.00000000001 }\n\n return [a, b, nX, nY]\n }\n\n computeSuperellipse(a, b, nX, nY) {\n const nX2 = 2 / nX\n const nY2 = 2 / nY\n const steps = 360\n const step = (2 * Math.PI) / steps\n const points = t => {\n const cosT = Math.cos(t)\n const sinT = Math.sin(t)\n return {\n x: Math.abs(cosT) ** nX2 * a * Math.sign(cosT),\n y: Math.abs(sinT) ** nY2 * b * Math.sign(sinT),\n }\n }\n\n return Array.from({ length: steps + 1 }, (_, i) => points(i * step))\n }\n\n getSuperellipseCacheKey(args) {\n return args.join(':')\n }\n\n paint(ctx, geom, properties) {\n const backgroundImage = properties\n .get('border-image-source')\n\n const backgroundColor = properties\n .get('--smooth-corners-bg-color')\n .toString()\n\n const padding = properties\n .get('--smooth-corners-padding')\n .toString()\n\n const [offsetX, offsetY, blur, spread, color] = properties\n .get('--smooth-corners-shadow')\n .toString()\n .split(/,s*/)\n\n const halfWidth = geom.width / 2\n const halfHeight = geom.height / 2\n\n const baseN = properties\n .get('--smooth-corners')\n .toString()\n\n const targetWidth = geom.width - (2 * this.trimPX(padding))\n const targetHeight = geom.height - (2 * this.trimPX(padding))\n\n const [rValue, rUnit] = this.splitValueAndUnit(baseN)\n const targetR = rUnit === '%'\n ? (Number(rValue) / 100) * Math.min(targetWidth, targetHeight)\n : Number(rValue)\n\n const targetNX = targetWidth / targetR\n const targetNY = targetHeight / targetR\n\n const smooth = this.superellipse(\n halfWidth - this.trimPX(padding),\n halfHeight - this.trimPX(padding),\n parseFloat(targetNX, 10),\n parseFloat(targetNY, 10),\n )\n\n ctx.setTransform(1, 0, 0, 1, halfWidth, halfHeight)\n ctx.beginPath()\n\n ctx.shadowColor = null\n ctx.shadowOffsetX = 0\n ctx.shadowOffsetY = 0\n ctx.shadowBlur = 0\n\n const trimedX = this.trimPX(offsetX) * 2\n const trimedY = this.trimPX(offsetY) * 2\n const trimedBlur = this.trimPX(blur)\n const trimedSpread = this.trimPX(spread)\n\n if (trimedBlur === 0) {\n ctx.strokeStyle = color\n ctx.lineWidth = trimedSpread * 2\n } else {\n ctx.shadowColor = color\n ctx.shadowOffsetX = trimedX\n ctx.shadowOffsetY = trimedY\n ctx.shadowBlur = trimedBlur * 2\n }\n\n smooth.forEach(({ x, y }, index) => {\n if (index === 0) {\n ctx.moveTo(x, y)\n } else {\n ctx.lineTo(x, y)\n }\n })\n\n if (trimedBlur === 0) {\n ctx.stroke()\n }\n\n if (backgroundColor) {\n ctx.fillStyle = backgroundColor\n ctx.fill()\n }\n\n if (backgroundImage instanceof CSSImageValue) {\n smooth.forEach(({ x, y }, index) => {\n if (index === 0) {\n ctx.moveTo(x, y)\n } else {\n ctx.lineTo(x, y)\n }\n })\n\n ctx.closePath()\n ctx.clip()\n\n ctx.drawImage(backgroundImage, -(targetWidth / 2), -(targetHeight / 2), targetWidth, targetHeight)\n }\n\n ctx.closePath()\n }\n}\n\ntry {\n registerPaint('smooth-corners', SmoothCorners)\n} catch (e) {\n // If the paint already exists, don't make it error.\n}\n`\n"],"names":["smoothCornersScript"],"mappings":";;AAAO,MAAMA,mBAAmB,GAAI,CAAA;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;"}
1
+ {"version":3,"file":"smoothCornersScript.js","sources":["../../../../../src/components/FeatureProvider/SmoothCornersFeature/smoothCornersScript.ts"],"sourcesContent":["export const smoothCornersScript = `\nclass SmoothCorners {\n static get inputProperties() {\n return [\n 'border-image-source',\n '--smooth-corners',\n '--smooth-corners-shadow',\n '--smooth-corners-bg-color',\n '--smooth-corners-padding',\n '--smooth-corners-radius-unit',\n ]\n }\n\n constructor() {\n this.superellipseCache = new Map()\n }\n\n trimPX(pixel) {\n return parseInt(pixel.replace('px', ''), 10)\n }\n\n splitValueAndUnit(value) {\n const regex = /([\\\\d.\\\\-+]+)\\\\s*(\\\\D*)/\n const matches = value.match(regex)\n return matches ? [matches[1], matches[2]] : [value, '']\n }\n\n superellipse(...args) {\n const sanitizedArgs = this.sanitizeSuperellipseArgs(...args)\n\n const cacheKey = this.getSuperellipseCacheKey(sanitizedArgs)\n\n if (this.superellipseCache.has(cacheKey)) {\n return [...this.superellipseCache.get(cacheKey)]\n }\n\n const result = this.computeSuperellipse(...sanitizedArgs)\n\n this.superellipseCache.set(cacheKey, result)\n\n return [...result]\n }\n\n sanitizeSuperellipseArgs(a, b, nX, nY) {\n if (nX > 100) { nX = 100 }\n if (nY > 100) { nY = 100 }\n if (nX < 0.00000000001) { nX = 0.00000000001 }\n if (nY < 0.00000000001) { nY = 0.00000000001 }\n\n return [a, b, nX, nY]\n }\n\n computeSuperellipse(a, b, nX, nY) {\n const nX2 = 2 / nX\n const nY2 = 2 / nY\n const steps = 360\n const step = (2 * Math.PI) / steps\n const points = t => {\n const cosT = Math.cos(t)\n const sinT = Math.sin(t)\n return {\n x: Math.abs(cosT) ** nX2 * a * Math.sign(cosT),\n y: Math.abs(sinT) ** nY2 * b * Math.sign(sinT),\n }\n }\n\n return Array.from({ length: steps + 1 }, (_, i) => points(i * step))\n }\n\n getSuperellipseCacheKey(args) {\n return args.join(':')\n }\n\n paint(ctx, geom, properties) {\n const backgroundImage = properties\n .get('border-image-source')\n\n const backgroundColor = properties\n .get('--smooth-corners-bg-color')\n .toString()\n\n const padding = properties\n .get('--smooth-corners-padding')\n .toString()\n\n const [offsetX, offsetY, blur, spread, color] = properties\n .get('--smooth-corners-shadow')\n .toString()\n .split(/,s*/)\n\n const halfWidth = geom.width / 2\n const halfHeight = geom.height / 2\n\n const baseN = properties\n .get('--smooth-corners')\n .toString()\n\n const targetWidth = geom.width - (2 * this.trimPX(padding))\n const targetHeight = geom.height - (2 * this.trimPX(padding))\n\n const [rValue, rUnit] = this.splitValueAndUnit(baseN)\n const targetR = rUnit === '%'\n ? (Number(rValue) / 100) * Math.min(targetWidth, targetHeight)\n : Number(rValue)\n\n const targetNX = targetWidth / targetR\n const targetNY = targetHeight / targetR\n\n const smooth = this.superellipse(\n halfWidth - this.trimPX(padding),\n halfHeight - this.trimPX(padding),\n parseFloat(targetNX, 10),\n parseFloat(targetNY, 10),\n )\n\n ctx.setTransform(1, 0, 0, 1, halfWidth, halfHeight)\n ctx.beginPath()\n\n ctx.shadowColor = null\n ctx.shadowOffsetX = 0\n ctx.shadowOffsetY = 0\n ctx.shadowBlur = 0\n\n const trimedX = this.trimPX(offsetX) * 2\n const trimedY = this.trimPX(offsetY) * 2\n const trimedBlur = this.trimPX(blur)\n const trimedSpread = this.trimPX(spread)\n\n if (trimedBlur === 0) {\n ctx.strokeStyle = color\n ctx.lineWidth = trimedSpread * 2\n } else {\n ctx.shadowColor = color\n ctx.shadowOffsetX = trimedX\n ctx.shadowOffsetY = trimedY\n ctx.shadowBlur = trimedBlur * 2\n }\n\n smooth.forEach(({ x, y }, index) => {\n if (index === 0) {\n ctx.moveTo(x, y)\n } else {\n ctx.lineTo(x, y)\n }\n })\n\n if (trimedBlur === 0) {\n ctx.stroke()\n }\n\n if (backgroundColor) {\n ctx.fillStyle = backgroundColor\n ctx.fill()\n }\n\n if (backgroundImage instanceof CSSImageValue) {\n smooth.forEach(({ x, y }, index) => {\n if (index === 0) {\n ctx.moveTo(x, y)\n } else {\n ctx.lineTo(x, y)\n }\n })\n\n ctx.closePath()\n ctx.clip()\n\n ctx.drawImage(backgroundImage, -(targetWidth / 2), -(targetHeight / 2), targetWidth, targetHeight)\n }\n\n ctx.closePath()\n }\n}\n\ntry {\n registerPaint('smooth-corners', SmoothCorners)\n} catch (e) {\n // If the paint already exists, don't make it error.\n}\n`\n"],"names":["smoothCornersScript"],"mappings":";;AAAO,MAAMA,mBAAmB,GAAG,CAAA;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"FormControl.js","sources":["../../../../src/components/FormControl/FormControl.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useMemo, useState } from 'react'\n\nimport classNames from 'classnames'\n\nimport useId from '~/src/hooks/useId'\nimport {\n type FormFieldProps,\n type FormFieldSize,\n type SizeProps,\n} from '~/src/types/props'\nimport { getFormFieldSizeClassName } from '~/src/types/props-helpers'\nimport { ariaAttr } from '~/src/utils/aria'\nimport { createContext } from '~/src/utils/react'\nimport { isNil } from '~/src/utils/type'\n\nimport { Stack } from '~/src/components/Stack'\n\nimport {\n type ContainerProps,\n type ErrorMessagePropsGetter,\n type FieldPropsGetter,\n type FormControlContextValue,\n type FormControlProps,\n type GroupPropsGetter,\n type HelperTextPropsGetter,\n type LabelPropsGetter,\n} from './FormControl.types'\n\nimport styles from './FormControl.module.scss'\n\nconst [FormControlContextProvider, useFormControlContext] = createContext<\n FormControlContextValue | undefined\n>(undefined)\n\nexport { useFormControlContext }\n\nexport const FORM_CONTROL_TEST_ID = 'bezier-form-control'\n\nconst Container = forwardRef<HTMLElement, ContainerProps>(function Container(\n { labelPosition, children, className, ...rest },\n forwardedRef\n) {\n switch (labelPosition) {\n case 'top':\n return (\n <Stack\n className={className}\n ref={forwardedRef}\n direction=\"vertical\"\n {...rest}\n >\n {children}\n </Stack>\n )\n\n case 'left':\n default:\n return (\n <div\n ref={forwardedRef as React.ForwardedRef<HTMLDivElement>}\n className={classNames(styles.Grid, className)}\n {...rest}\n >\n {children}\n </div>\n )\n }\n})\n\nexport const FormControl = forwardRef<HTMLElement, FormControlProps>(\n function FormControl(\n {\n children,\n id: idProp,\n labelPosition = 'top',\n size = 'm',\n hasError,\n required,\n readOnly,\n disabled,\n ...rest\n },\n forwardedRef\n ) {\n const [groupNode, setGroupNode] = useState<HTMLElement | null>(null)\n const [helperTextNode, setHelperTextNode] = useState<HTMLElement | null>(\n null\n )\n const [errorMessageNode, setErrorMessageNode] =\n useState<HTMLElement | null>(null)\n\n const id = useId(idProp, 'field')\n const groupId = `${id}-group`\n const labelId = `${id}-label`\n const helperTextId = `${id}-help-text`\n const errorMessageId = `${id}-error-message`\n\n const fieldId = groupNode ? undefined : id\n\n const describerId = useMemo(() => {\n if (errorMessageNode) {\n return errorMessageId\n }\n if (helperTextNode) {\n return helperTextId\n }\n return undefined\n }, [errorMessageNode, helperTextNode, errorMessageId, helperTextId])\n\n const getGroupProps = useCallback<GroupPropsGetter>(\n (ownProps) => ({\n id: groupId,\n 'aria-labelledby': labelId,\n 'aria-describedby': describerId,\n ref: setGroupNode,\n ...ownProps,\n }),\n [groupId, labelId, describerId]\n )\n\n const getLabelProps = useCallback<LabelPropsGetter>(\n (ownProps) => ({\n id: labelId,\n htmlFor: fieldId,\n className: classNames(\n styles.FormLabelWrapper,\n styles[`position-${labelPosition}`],\n getFormFieldSizeClassName(size)\n ),\n typo: labelPosition === 'top' ? '13' : '14',\n ...ownProps,\n }),\n [fieldId, labelId, labelPosition, size]\n )\n\n const getFieldProps = useCallback<FieldPropsGetter>(\n (ownProps) => ({\n id: fieldId,\n size,\n 'aria-describedby': groupNode ? undefined : describerId,\n hasError,\n required,\n readOnly,\n disabled,\n ...ownProps,\n }),\n [\n fieldId,\n describerId,\n size,\n hasError,\n required,\n readOnly,\n disabled,\n groupNode,\n ]\n )\n\n const getHelperTextProps = useCallback<HelperTextPropsGetter>(\n (ownProps) => ({\n id: helperTextId,\n visible: isNil(hasError) || !hasError,\n ref: setHelperTextNode,\n className: classNames(\n styles.FormHelperTextWrapper,\n labelPosition === 'left' && styles['position-left']\n ),\n ...ownProps,\n }),\n [helperTextId, labelPosition, hasError]\n )\n\n const getErrorMessageProps = useCallback<ErrorMessagePropsGetter>(\n (ownProps) => ({\n id: errorMessageId,\n visible: isNil(hasError) || hasError,\n ref: setErrorMessageNode,\n className: classNames(\n styles.FormHelperTextWrapper,\n labelPosition === 'left' && styles['position-left']\n ),\n ...ownProps,\n }),\n [errorMessageId, labelPosition, hasError]\n )\n\n const contextValue = useMemo(\n () => ({\n id,\n labelId,\n helperTextId,\n errorMessageId,\n getGroupProps,\n getLabelProps,\n getFieldProps,\n getHelperTextProps,\n getErrorMessageProps,\n hasError,\n required,\n readOnly,\n disabled,\n }),\n [\n id,\n labelId,\n helperTextId,\n errorMessageId,\n getGroupProps,\n getLabelProps,\n getFieldProps,\n getHelperTextProps,\n getErrorMessageProps,\n hasError,\n required,\n readOnly,\n disabled,\n ]\n )\n\n if (!children) {\n return null\n }\n\n return (\n <FormControlContextProvider value={contextValue}>\n <Container\n {...rest}\n ref={forwardedRef}\n labelPosition={labelPosition}\n data-testid={FORM_CONTROL_TEST_ID}\n >\n {children}\n </Container>\n </FormControlContextProvider>\n )\n }\n)\n\nexport function useFormFieldProps<\n Props extends FormFieldProps & SizeProps<FormFieldSize>,\n>(props?: Props) {\n const contextValue = useFormControlContext()\n\n const formFieldProps = useMemo(() => {\n const mergedProps = contextValue?.getFieldProps(props) ?? { ...props }\n\n const {\n disabled = false,\n readOnly = false,\n required = false,\n hasError = false,\n size = undefined,\n ...rest\n } = mergedProps\n\n return {\n ...rest,\n 'aria-disabled': ariaAttr(disabled),\n 'aria-invalid': ariaAttr(hasError),\n 'aria-required': ariaAttr(required),\n 'aria-readonly': ariaAttr(readOnly),\n size,\n disabled,\n hasError,\n required,\n readOnly,\n }\n }, [props, contextValue])\n\n return formFieldProps as typeof formFieldProps & Props\n}\n"],"names":["FormControlContextProvider","useFormControlContext","createContext","undefined","FORM_CONTROL_TEST_ID","Container","forwardRef","labelPosition","children","className","rest","forwardedRef","React","createElement","Stack","Object","assign","ref","direction","classNames","styles","Grid","FormControl","id","idProp","size","hasError","required","readOnly","disabled","groupNode","setGroupNode","useState","helperTextNode","setHelperTextNode","errorMessageNode","setErrorMessageNode","useId","groupId","labelId","helperTextId","errorMessageId","fieldId","describerId","useMemo","getGroupProps","useCallback","ownProps","getLabelProps","htmlFor","FormLabelWrapper","getFormFieldSizeClassName","typo","getFieldProps","getHelperTextProps","visible","isNil","FormHelperTextWrapper","getErrorMessageProps","contextValue","value","useFormFieldProps","props","formFieldProps","mergedProps","ariaAttr"],"mappings":"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"}
1
+ {"version":3,"file":"FormControl.js","sources":["../../../../src/components/FormControl/FormControl.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useMemo, useState } from 'react'\n\nimport classNames from 'classnames'\n\nimport useId from '~/src/hooks/useId'\nimport {\n type FormFieldProps,\n type FormFieldSize,\n type SizeProps,\n} from '~/src/types/props'\nimport { getFormFieldSizeClassName } from '~/src/types/props-helpers'\nimport { ariaAttr } from '~/src/utils/aria'\nimport { createContext } from '~/src/utils/react'\nimport { isNil } from '~/src/utils/type'\n\nimport { Stack } from '~/src/components/Stack'\n\nimport {\n type ContainerProps,\n type ErrorMessagePropsGetter,\n type FieldPropsGetter,\n type FormControlContextValue,\n type FormControlProps,\n type GroupPropsGetter,\n type HelperTextPropsGetter,\n type LabelPropsGetter,\n} from './FormControl.types'\n\nimport styles from './FormControl.module.scss'\n\nconst [FormControlContextProvider, useFormControlContext] = createContext<\n FormControlContextValue | undefined\n>(undefined)\n\nexport { useFormControlContext }\n\nexport const FORM_CONTROL_TEST_ID = 'bezier-form-control'\n\nconst Container = forwardRef<HTMLElement, ContainerProps>(function Container(\n { labelPosition, children, className, ...rest },\n forwardedRef\n) {\n switch (labelPosition) {\n case 'top':\n return (\n <Stack\n className={className}\n ref={forwardedRef}\n direction=\"vertical\"\n {...rest}\n >\n {children}\n </Stack>\n )\n\n case 'left':\n default:\n return (\n <div\n ref={forwardedRef as React.ForwardedRef<HTMLDivElement>}\n className={classNames(styles.Grid, className)}\n {...rest}\n >\n {children}\n </div>\n )\n }\n})\n\nexport const FormControl = forwardRef<HTMLElement, FormControlProps>(\n function FormControl(\n {\n children,\n id: idProp,\n labelPosition = 'top',\n size = 'm',\n hasError,\n required,\n readOnly,\n disabled,\n ...rest\n },\n forwardedRef\n ) {\n const [groupNode, setGroupNode] = useState<HTMLElement | null>(null)\n const [helperTextNode, setHelperTextNode] = useState<HTMLElement | null>(\n null\n )\n const [errorMessageNode, setErrorMessageNode] =\n useState<HTMLElement | null>(null)\n\n const id = useId(idProp, 'field')\n const groupId = `${id}-group`\n const labelId = `${id}-label`\n const helperTextId = `${id}-help-text`\n const errorMessageId = `${id}-error-message`\n\n const fieldId = groupNode ? undefined : id\n\n const describerId = useMemo(() => {\n if (errorMessageNode) {\n return errorMessageId\n }\n if (helperTextNode) {\n return helperTextId\n }\n return undefined\n }, [errorMessageNode, helperTextNode, errorMessageId, helperTextId])\n\n const getGroupProps = useCallback<GroupPropsGetter>(\n (ownProps) => ({\n id: groupId,\n 'aria-labelledby': labelId,\n 'aria-describedby': describerId,\n ref: setGroupNode,\n ...ownProps,\n }),\n [groupId, labelId, describerId]\n )\n\n const getLabelProps = useCallback<LabelPropsGetter>(\n (ownProps) => ({\n id: labelId,\n htmlFor: fieldId,\n className: classNames(\n styles.FormLabelWrapper,\n styles[`position-${labelPosition}`],\n getFormFieldSizeClassName(size)\n ),\n typo: labelPosition === 'top' ? '13' : '14',\n ...ownProps,\n }),\n [fieldId, labelId, labelPosition, size]\n )\n\n const getFieldProps = useCallback<FieldPropsGetter>(\n (ownProps) => ({\n id: fieldId,\n size,\n 'aria-describedby': groupNode ? undefined : describerId,\n hasError,\n required,\n readOnly,\n disabled,\n ...ownProps,\n }),\n [\n fieldId,\n describerId,\n size,\n hasError,\n required,\n readOnly,\n disabled,\n groupNode,\n ]\n )\n\n const getHelperTextProps = useCallback<HelperTextPropsGetter>(\n (ownProps) => ({\n id: helperTextId,\n visible: isNil(hasError) || !hasError,\n ref: setHelperTextNode,\n className: classNames(\n styles.FormHelperTextWrapper,\n labelPosition === 'left' && styles['position-left']\n ),\n ...ownProps,\n }),\n [helperTextId, labelPosition, hasError]\n )\n\n const getErrorMessageProps = useCallback<ErrorMessagePropsGetter>(\n (ownProps) => ({\n id: errorMessageId,\n visible: isNil(hasError) || hasError,\n ref: setErrorMessageNode,\n className: classNames(\n styles.FormHelperTextWrapper,\n labelPosition === 'left' && styles['position-left']\n ),\n ...ownProps,\n }),\n [errorMessageId, labelPosition, hasError]\n )\n\n const contextValue = useMemo(\n () => ({\n id,\n labelId,\n helperTextId,\n errorMessageId,\n getGroupProps,\n getLabelProps,\n getFieldProps,\n getHelperTextProps,\n getErrorMessageProps,\n hasError,\n required,\n readOnly,\n disabled,\n }),\n [\n id,\n labelId,\n helperTextId,\n errorMessageId,\n getGroupProps,\n getLabelProps,\n getFieldProps,\n getHelperTextProps,\n getErrorMessageProps,\n hasError,\n required,\n readOnly,\n disabled,\n ]\n )\n\n if (!children) {\n return null\n }\n\n return (\n <FormControlContextProvider value={contextValue}>\n <Container\n {...rest}\n ref={forwardedRef}\n labelPosition={labelPosition}\n data-testid={FORM_CONTROL_TEST_ID}\n >\n {children}\n </Container>\n </FormControlContextProvider>\n )\n }\n)\n\nexport function useFormFieldProps<\n Props extends FormFieldProps & SizeProps<FormFieldSize>,\n>(props?: Props) {\n const contextValue = useFormControlContext()\n\n const formFieldProps = useMemo(() => {\n const mergedProps = contextValue?.getFieldProps(props) ?? { ...props }\n\n const {\n disabled = false,\n readOnly = false,\n required = false,\n hasError = false,\n size = undefined,\n ...rest\n } = mergedProps\n\n return {\n ...rest,\n 'aria-disabled': ariaAttr(disabled),\n 'aria-invalid': ariaAttr(hasError),\n 'aria-required': ariaAttr(required),\n 'aria-readonly': ariaAttr(readOnly),\n size,\n disabled,\n hasError,\n required,\n readOnly,\n }\n }, [props, contextValue])\n\n return formFieldProps as typeof formFieldProps & Props\n}\n"],"names":["FormControlContextProvider","useFormControlContext","createContext","undefined","FORM_CONTROL_TEST_ID","Container","forwardRef","labelPosition","children","className","rest","forwardedRef","React","createElement","Stack","Object","assign","ref","direction","classNames","styles","Grid","FormControl","id","idProp","size","hasError","required","readOnly","disabled","groupNode","setGroupNode","useState","helperTextNode","setHelperTextNode","errorMessageNode","setErrorMessageNode","useId","groupId","labelId","helperTextId","errorMessageId","fieldId","describerId","useMemo","getGroupProps","useCallback","ownProps","getLabelProps","htmlFor","FormLabelWrapper","getFormFieldSizeClassName","typo","getFieldProps","getHelperTextProps","visible","isNil","FormHelperTextWrapper","getErrorMessageProps","contextValue","value","useFormFieldProps","props","formFieldProps","mergedProps","ariaAttr"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"LegacyStack.js","sources":["../../../../../src/components/LegacyStack/LegacyStack/LegacyStack.tsx"],"sourcesContent":["import React, {\n Children,\n cloneElement,\n forwardRef,\n isValidElement,\n useRef,\n} from 'react'\n\nimport classNames from 'classnames'\n\nimport type LegacyStackProps from './LegacyStack.types'\n\nimport styles from './LegacyStack.module.scss'\n\n/**\n * @deprecated Use `Stack` instead.\n *\n * `Stack` provides an abstraction of **flex layout** so that\n * rendering of child elements **linearly** can be done\n * with simplified options.\n *\n * `Stack` always fills the parent element.\n *\n * Be reminded to list `StackItem`s to be direct child of `Stack`.\n * @example\n *\n * ```tsx\n * <Stack direction=\"horizontal\" spacing={8}>\n * <StackItem>{ ... }</StackItem>\n * <StackItem>{ ... }</StackItem>\n * </Stack>\n * ```\n */\nexport const LegacyStack = forwardRef<HTMLElement, LegacyStackProps>(\n function Stack(\n {\n as = 'div',\n className,\n children,\n direction,\n justify = 'start',\n align = 'stretch',\n spacing = 0,\n ...rest\n },\n forwardedRef\n ) {\n const Comp = as\n const firstValidElementIdx = useRef(-1)\n\n return (\n <Comp\n className={classNames(\n styles.LegacyStack,\n styles[`direction-${direction}`],\n styles[`justify-${justify}`],\n styles[`align-${align}`],\n className\n )}\n ref={forwardedRef}\n data-testid=\"bezier-legacy-stack\"\n {...rest}\n >\n {Children.map(children, (element, index) => {\n if (!isValidElement(element)) {\n return element\n }\n\n /**\n * NOTE: this assumes that this element is `StackItem`.\n *\n * Even if the child is not a `StackItem` component,\n * it could forward the prop to `StackItem` deeper in the tree,\n * or implement a custom behavior compatible with `StackItemProps`.\n */\n if (firstValidElementIdx.current === -1) {\n firstValidElementIdx.current = index\n }\n return cloneElement(element, {\n ...element.props,\n direction,\n marginBefore:\n element.props.marginBefore ??\n (index > firstValidElementIdx.current ? spacing : 0),\n })\n })}\n </Comp>\n )\n }\n)\n"],"names":["LegacyStack","forwardRef","Stack","as","className","children","direction","justify","align","spacing","rest","forwardedRef","Comp","firstValidElementIdx","useRef","React","createElement","Object","assign","classNames","styles","ref","Children","map","element","index","isValidElement","current","cloneElement","props","marginBefore"],"mappings":";;;;;;AAcA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;MACaA,WAAW,gBAAGC,gBAAU,CACnC,SAASC,KAAKA,CACZ;AACEC,EAAAA,EAAE,GAAG,KAAK;EACVC,SAAS;EACTC,QAAQ;EACRC,SAAS;AACTC,EAAAA,OAAO,GAAG,OAAO;AACjBC,EAAAA,KAAK,GAAG,SAAS;AACjBC,EAAAA,OAAO,GAAG,CAAC;EACX,GAAGC,IAAAA;AACL,CAAC,EACDC,YAAY,EACZ;EACA,MAAMC,IAAI,GAAGT,EAAE,CAAA;AACf,EAAA,MAAMU,oBAAoB,GAAGC,YAAM,CAAC,CAAC,CAAC,CAAC,CAAA;EAEvC,oBACEC,KAAA,CAAAC,aAAA,CAACJ,IAAI,EAAAK,MAAA,CAAAC,MAAA,CAAA;AACHd,IAAAA,SAAS,EAAEe,aAAU,CACnBC,0BAAM,CAACpB,WAAW,EAClBoB,0BAAM,CAAE,CAAA,UAAA,EAAYd,SAAU,CAAA,CAAC,CAAC,EAChCc,0BAAM,CAAE,CAAUb,QAAAA,EAAAA,OAAQ,CAAC,CAAA,CAAC,EAC5Ba,0BAAM,CAAE,CAAA,MAAA,EAAQZ,KAAM,CAAA,CAAC,CAAC,EACxBJ,SACF,CAAE;AACFiB,IAAAA,GAAG,EAAEV,YAAa;IAClB,aAAY,EAAA,qBAAA;AAAqB,GAAA,EAC7BD,IAAI,CAAA,EAEPY,cAAQ,CAACC,GAAG,CAAClB,QAAQ,EAAE,CAACmB,OAAO,EAAEC,KAAK,KAAK;AAC1C,IAAA,IAAI,eAACC,oBAAc,CAACF,OAAO,CAAC,EAAE;AAC5B,MAAA,OAAOA,OAAO,CAAA;AAChB,KAAA;;AAEA;AACV;AACA;AACA;AACA;AACA;AACA;AACU,IAAA,IAAIX,oBAAoB,CAACc,OAAO,KAAK,CAAC,CAAC,EAAE;MACvCd,oBAAoB,CAACc,OAAO,GAAGF,KAAK,CAAA;AACtC,KAAA;IACA,oBAAOG,kBAAY,CAACJ,OAAO,EAAE;MAC3B,GAAGA,OAAO,CAACK,KAAK;MAChBvB,SAAS;AACTwB,MAAAA,YAAY,EACVN,OAAO,CAACK,KAAK,CAACC,YAAY,KACzBL,KAAK,GAAGZ,oBAAoB,CAACc,OAAO,GAAGlB,OAAO,GAAG,CAAC,CAAA;AACvD,KAAC,CAAC,CAAA;AACJ,GAAC,CACG,CAAC,CAAA;AAEX,CACF;;;;"}
1
+ {"version":3,"file":"LegacyStack.js","sources":["../../../../../src/components/LegacyStack/LegacyStack/LegacyStack.tsx"],"sourcesContent":["import React, {\n Children,\n cloneElement,\n forwardRef,\n isValidElement,\n useRef,\n} from 'react'\n\nimport classNames from 'classnames'\n\nimport type LegacyStackProps from './LegacyStack.types'\n\nimport styles from './LegacyStack.module.scss'\n\n/**\n * @deprecated Use `Stack` instead.\n *\n * `Stack` provides an abstraction of **flex layout** so that\n * rendering of child elements **linearly** can be done\n * with simplified options.\n *\n * `Stack` always fills the parent element.\n *\n * Be reminded to list `StackItem`s to be direct child of `Stack`.\n * @example\n *\n * ```tsx\n * <Stack direction=\"horizontal\" spacing={8}>\n * <StackItem>{ ... }</StackItem>\n * <StackItem>{ ... }</StackItem>\n * </Stack>\n * ```\n */\nexport const LegacyStack = forwardRef<HTMLElement, LegacyStackProps>(\n function Stack(\n {\n as = 'div',\n className,\n children,\n direction,\n justify = 'start',\n align = 'stretch',\n spacing = 0,\n ...rest\n },\n forwardedRef\n ) {\n const Comp = as\n const firstValidElementIdx = useRef(-1)\n\n return (\n <Comp\n className={classNames(\n styles.LegacyStack,\n styles[`direction-${direction}`],\n styles[`justify-${justify}`],\n styles[`align-${align}`],\n className\n )}\n ref={forwardedRef}\n data-testid=\"bezier-legacy-stack\"\n {...rest}\n >\n {Children.map(children, (element, index) => {\n if (!isValidElement(element)) {\n return element\n }\n\n /**\n * NOTE: this assumes that this element is `StackItem`.\n *\n * Even if the child is not a `StackItem` component,\n * it could forward the prop to `StackItem` deeper in the tree,\n * or implement a custom behavior compatible with `StackItemProps`.\n */\n if (firstValidElementIdx.current === -1) {\n firstValidElementIdx.current = index\n }\n return cloneElement(element, {\n ...element.props,\n direction,\n marginBefore:\n element.props.marginBefore ??\n (index > firstValidElementIdx.current ? spacing : 0),\n })\n })}\n </Comp>\n )\n }\n)\n"],"names":["LegacyStack","forwardRef","Stack","as","className","children","direction","justify","align","spacing","rest","forwardedRef","Comp","firstValidElementIdx","useRef","React","createElement","Object","assign","classNames","styles","ref","Children","map","element","index","isValidElement","current","cloneElement","props","marginBefore"],"mappings":";;;;;;AAcA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;MACaA,WAAW,gBAAGC,gBAAU,CACnC,SAASC,KAAKA,CACZ;AACEC,EAAAA,EAAE,GAAG,KAAK;EACVC,SAAS;EACTC,QAAQ;EACRC,SAAS;AACTC,EAAAA,OAAO,GAAG,OAAO;AACjBC,EAAAA,KAAK,GAAG,SAAS;AACjBC,EAAAA,OAAO,GAAG,CAAC;EACX,GAAGC,IAAAA;AACL,CAAC,EACDC,YAAY,EACZ;EACA,MAAMC,IAAI,GAAGT,EAAE,CAAA;AACf,EAAA,MAAMU,oBAAoB,GAAGC,YAAM,CAAC,CAAC,CAAC,CAAC,CAAA;EAEvC,oBACEC,KAAA,CAAAC,aAAA,CAACJ,IAAI,EAAAK,MAAA,CAAAC,MAAA,CAAA;AACHd,IAAAA,SAAS,EAAEe,aAAU,CACnBC,0BAAM,CAACpB,WAAW,EAClBoB,0BAAM,CAAC,CAAA,UAAA,EAAad,SAAS,CAAA,CAAE,CAAC,EAChCc,0BAAM,CAAC,CAAWb,QAAAA,EAAAA,OAAO,CAAE,CAAA,CAAC,EAC5Ba,0BAAM,CAAC,CAAA,MAAA,EAASZ,KAAK,CAAA,CAAE,CAAC,EACxBJ,SACF,CAAE;AACFiB,IAAAA,GAAG,EAAEV,YAAa;IAClB,aAAY,EAAA,qBAAA;AAAqB,GAAA,EAC7BD,IAAI,CAAA,EAEPY,cAAQ,CAACC,GAAG,CAAClB,QAAQ,EAAE,CAACmB,OAAO,EAAEC,KAAK,KAAK;AAC1C,IAAA,IAAI,eAACC,oBAAc,CAACF,OAAO,CAAC,EAAE;AAC5B,MAAA,OAAOA,OAAO,CAAA;AAChB,KAAA;;AAEA;AACV;AACA;AACA;AACA;AACA;AACA;AACU,IAAA,IAAIX,oBAAoB,CAACc,OAAO,KAAK,CAAC,CAAC,EAAE;MACvCd,oBAAoB,CAACc,OAAO,GAAGF,KAAK,CAAA;AACtC,KAAA;IACA,oBAAOG,kBAAY,CAACJ,OAAO,EAAE;MAC3B,GAAGA,OAAO,CAACK,KAAK;MAChBvB,SAAS;AACTwB,MAAAA,YAAY,EACVN,OAAO,CAACK,KAAK,CAACC,YAAY,KACzBL,KAAK,GAAGZ,oBAAoB,CAACc,OAAO,GAAGlB,OAAO,GAAG,CAAC,CAAA;AACvD,KAAC,CAAC,CAAA;AACJ,GAAC,CACG,CAAC,CAAA;AAEX,CACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"LegacyStackItem.js","sources":["../../../../../src/components/LegacyStack/LegacyStackItem/LegacyStackItem.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\n\nimport classNames from 'classnames'\n\nimport { isInteger, isNil } from '~/src/utils/type'\n\nimport type LegacyStackItemProps from './LegacyStackItem.types'\n\nimport styles from './LegacyStackItem.module.scss'\n\nconst sanitizeWeight = (weight: number): number => {\n if (weight < 0) {\n return 0\n }\n if (!isInteger(weight)) {\n return 0\n }\n return weight\n}\n\n/**\n * @deprecated Use layout components(`Box`, `Stack`) that support flex item related properties (`shrink`, `grow`) instead.\n * @example\n *\n * ```\n * <Stack>\n * <Stack grow={1} shrink={1} {...}>\n * { ... }\n * </Stack>\n * <Box grow={0} shrink={0} {...} />\n * </Stack>\n * ```\n *\n *\n * `StackItem` is used along `Stack`.\n * It inherits the default settings from `Stack`,\n * but allows to override some props to customize the behavior\n * of particular item.\n *\n * If you are not using `StackItem` as the direct child of `Stack`,\n * be reminded to forward props in `StackItemProps` to `StackItem` component,\n * or manually implement the behavior compatible with `StackItem`.\n */\nexport const LegacyStackItem = forwardRef<HTMLElement, LegacyStackItemProps>(\n function StackItem(\n {\n as = 'div',\n children,\n style,\n className,\n direction,\n justify,\n align,\n size,\n weight = 0,\n grow = false,\n shrink = false,\n marginBefore = 0,\n marginAfter = 0,\n ...rest\n },\n forwardedRef\n ) {\n const Comp = as\n\n return (\n <Comp\n ref={forwardedRef}\n style={{\n ...style,\n '--b-main-axis-size': isNil(size) ? 'initial' : `${size}px`,\n '--b-grow-weight': grow ? sanitizeWeight(weight) : '0',\n '--b-shrink-weight': shrink ? sanitizeWeight(weight) : '0',\n '--b-margin-before': `${marginBefore}px`,\n '--b-margin-after': `${marginAfter}px`,\n }}\n className={classNames(\n styles.LegacyStackItem,\n styles[`direction-${direction}`],\n styles[`justify-${justify}`],\n styles[`align-${align}`],\n className\n )}\n data-testid=\"bezier-legacy-stack-item\"\n {...rest}\n >\n {children}\n </Comp>\n )\n }\n)\n"],"names":["sanitizeWeight","weight","isInteger","LegacyStackItem","forwardRef","StackItem","as","children","style","className","direction","justify","align","size","grow","shrink","marginBefore","marginAfter","rest","forwardedRef","Comp","React","createElement","Object","assign","ref","isNil","classNames","styles"],"mappings":";;;;;;;AAUA,MAAMA,cAAc,GAAIC,MAAc,IAAa;EACjD,IAAIA,MAAM,GAAG,CAAC,EAAE;AACd,IAAA,OAAO,CAAC,CAAA;AACV,GAAA;AACA,EAAA,IAAI,CAACC,cAAS,CAACD,MAAM,CAAC,EAAE;AACtB,IAAA,OAAO,CAAC,CAAA;AACV,GAAA;AACA,EAAA,OAAOA,MAAM,CAAA;AACf,CAAC,CAAA;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;MACaE,eAAe,gBAAGC,gBAAU,CACvC,SAASC,SAASA,CAChB;AACEC,EAAAA,EAAE,GAAG,KAAK;EACVC,QAAQ;EACRC,KAAK;EACLC,SAAS;EACTC,SAAS;EACTC,OAAO;EACPC,KAAK;EACLC,IAAI;AACJZ,EAAAA,MAAM,GAAG,CAAC;AACVa,EAAAA,IAAI,GAAG,KAAK;AACZC,EAAAA,MAAM,GAAG,KAAK;AACdC,EAAAA,YAAY,GAAG,CAAC;AAChBC,EAAAA,WAAW,GAAG,CAAC;EACf,GAAGC,IAAAA;AACL,CAAC,EACDC,YAAY,EACZ;EACA,MAAMC,IAAI,GAAGd,EAAE,CAAA;EAEf,oBACEe,KAAA,CAAAC,aAAA,CAACF,IAAI,EAAAG,MAAA,CAAAC,MAAA,CAAA;AACHC,IAAAA,GAAG,EAAEN,YAAa;AAClBX,IAAAA,KAAK,EAAE;AACL,MAAA,GAAGA,KAAK;MACR,oBAAoB,EAAEkB,UAAK,CAACb,IAAI,CAAC,GAAG,SAAS,GAAI,CAAEA,EAAAA,IAAK,CAAG,EAAA,CAAA;MAC3D,iBAAiB,EAAEC,IAAI,GAAGd,cAAc,CAACC,MAAM,CAAC,GAAG,GAAG;MACtD,mBAAmB,EAAEc,MAAM,GAAGf,cAAc,CAACC,MAAM,CAAC,GAAG,GAAG;MAC1D,mBAAmB,EAAG,CAAEe,EAAAA,YAAa,CAAG,EAAA,CAAA;MACxC,kBAAkB,EAAG,GAAEC,WAAY,CAAA,EAAA,CAAA;KACnC;AACFR,IAAAA,SAAS,EAAEkB,aAAU,CACnBC,8BAAM,CAACzB,eAAe,EACtByB,8BAAM,CAAE,CAAA,UAAA,EAAYlB,SAAU,CAAA,CAAC,CAAC,EAChCkB,8BAAM,CAAE,CAAUjB,QAAAA,EAAAA,OAAQ,CAAC,CAAA,CAAC,EAC5BiB,8BAAM,CAAE,CAAA,MAAA,EAAQhB,KAAM,CAAA,CAAC,CAAC,EACxBH,SACF,CAAE;IACF,aAAY,EAAA,0BAAA;GACRS,EAAAA,IAAI,CAEPX,EAAAA,QACG,CAAC,CAAA;AAEX,CACF;;;;"}
1
+ {"version":3,"file":"LegacyStackItem.js","sources":["../../../../../src/components/LegacyStack/LegacyStackItem/LegacyStackItem.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\n\nimport classNames from 'classnames'\n\nimport { isInteger, isNil } from '~/src/utils/type'\n\nimport type LegacyStackItemProps from './LegacyStackItem.types'\n\nimport styles from './LegacyStackItem.module.scss'\n\nconst sanitizeWeight = (weight: number): number => {\n if (weight < 0) {\n return 0\n }\n if (!isInteger(weight)) {\n return 0\n }\n return weight\n}\n\n/**\n * @deprecated Use layout components(`Box`, `Stack`) that support flex item related properties (`shrink`, `grow`) instead.\n * @example\n *\n * ```\n * <Stack>\n * <Stack grow={1} shrink={1} {...}>\n * { ... }\n * </Stack>\n * <Box grow={0} shrink={0} {...} />\n * </Stack>\n * ```\n *\n *\n * `StackItem` is used along `Stack`.\n * It inherits the default settings from `Stack`,\n * but allows to override some props to customize the behavior\n * of particular item.\n *\n * If you are not using `StackItem` as the direct child of `Stack`,\n * be reminded to forward props in `StackItemProps` to `StackItem` component,\n * or manually implement the behavior compatible with `StackItem`.\n */\nexport const LegacyStackItem = forwardRef<HTMLElement, LegacyStackItemProps>(\n function StackItem(\n {\n as = 'div',\n children,\n style,\n className,\n direction,\n justify,\n align,\n size,\n weight = 0,\n grow = false,\n shrink = false,\n marginBefore = 0,\n marginAfter = 0,\n ...rest\n },\n forwardedRef\n ) {\n const Comp = as\n\n return (\n <Comp\n ref={forwardedRef}\n style={{\n ...style,\n '--b-main-axis-size': isNil(size) ? 'initial' : `${size}px`,\n '--b-grow-weight': grow ? sanitizeWeight(weight) : '0',\n '--b-shrink-weight': shrink ? sanitizeWeight(weight) : '0',\n '--b-margin-before': `${marginBefore}px`,\n '--b-margin-after': `${marginAfter}px`,\n }}\n className={classNames(\n styles.LegacyStackItem,\n styles[`direction-${direction}`],\n styles[`justify-${justify}`],\n styles[`align-${align}`],\n className\n )}\n data-testid=\"bezier-legacy-stack-item\"\n {...rest}\n >\n {children}\n </Comp>\n )\n }\n)\n"],"names":["sanitizeWeight","weight","isInteger","LegacyStackItem","forwardRef","StackItem","as","children","style","className","direction","justify","align","size","grow","shrink","marginBefore","marginAfter","rest","forwardedRef","Comp","React","createElement","Object","assign","ref","isNil","classNames","styles"],"mappings":";;;;;;;AAUA,MAAMA,cAAc,GAAIC,MAAc,IAAa;EACjD,IAAIA,MAAM,GAAG,CAAC,EAAE;AACd,IAAA,OAAO,CAAC,CAAA;AACV,GAAA;AACA,EAAA,IAAI,CAACC,cAAS,CAACD,MAAM,CAAC,EAAE;AACtB,IAAA,OAAO,CAAC,CAAA;AACV,GAAA;AACA,EAAA,OAAOA,MAAM,CAAA;AACf,CAAC,CAAA;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;MACaE,eAAe,gBAAGC,gBAAU,CACvC,SAASC,SAASA,CAChB;AACEC,EAAAA,EAAE,GAAG,KAAK;EACVC,QAAQ;EACRC,KAAK;EACLC,SAAS;EACTC,SAAS;EACTC,OAAO;EACPC,KAAK;EACLC,IAAI;AACJZ,EAAAA,MAAM,GAAG,CAAC;AACVa,EAAAA,IAAI,GAAG,KAAK;AACZC,EAAAA,MAAM,GAAG,KAAK;AACdC,EAAAA,YAAY,GAAG,CAAC;AAChBC,EAAAA,WAAW,GAAG,CAAC;EACf,GAAGC,IAAAA;AACL,CAAC,EACDC,YAAY,EACZ;EACA,MAAMC,IAAI,GAAGd,EAAE,CAAA;EAEf,oBACEe,KAAA,CAAAC,aAAA,CAACF,IAAI,EAAAG,MAAA,CAAAC,MAAA,CAAA;AACHC,IAAAA,GAAG,EAAEN,YAAa;AAClBX,IAAAA,KAAK,EAAE;AACL,MAAA,GAAGA,KAAK;MACR,oBAAoB,EAAEkB,UAAK,CAACb,IAAI,CAAC,GAAG,SAAS,GAAG,CAAGA,EAAAA,IAAI,CAAI,EAAA,CAAA;MAC3D,iBAAiB,EAAEC,IAAI,GAAGd,cAAc,CAACC,MAAM,CAAC,GAAG,GAAG;MACtD,mBAAmB,EAAEc,MAAM,GAAGf,cAAc,CAACC,MAAM,CAAC,GAAG,GAAG;MAC1D,mBAAmB,EAAE,CAAGe,EAAAA,YAAY,CAAI,EAAA,CAAA;MACxC,kBAAkB,EAAE,GAAGC,WAAW,CAAA,EAAA,CAAA;KAClC;AACFR,IAAAA,SAAS,EAAEkB,aAAU,CACnBC,8BAAM,CAACzB,eAAe,EACtByB,8BAAM,CAAC,CAAA,UAAA,EAAalB,SAAS,CAAA,CAAE,CAAC,EAChCkB,8BAAM,CAAC,CAAWjB,QAAAA,EAAAA,OAAO,CAAE,CAAA,CAAC,EAC5BiB,8BAAM,CAAC,CAAA,MAAA,EAAShB,KAAK,CAAA,CAAE,CAAC,EACxBH,SACF,CAAE;IACF,aAAY,EAAA,0BAAA;GACRS,EAAAA,IAAI,CAEPX,EAAAA,QACG,CAAC,CAAA;AAEX,CACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../../src/components/LegacyTooltip/utils.ts"],"sourcesContent":["import {\n type GetReplacement,\n type GetTooltipStyle,\n type LegacyTooltipPosition,\n} from './LegacyTooltip.types'\n\nexport function getReplacement({\n tooltip,\n keepInContainer,\n placement,\n rootElement,\n}: GetReplacement): LegacyTooltipPosition {\n if (!keepInContainer) {\n return placement\n }\n\n const {\n width: tooltipWidth,\n height: tooltipHeight,\n top: tooltipTop,\n left: tooltipLeft,\n } = tooltip.getBoundingClientRect()\n\n const {\n width: rootWidth,\n height: rootHeight,\n top: rootTop,\n left: rootLeft,\n } = rootElement.getBoundingClientRect()\n\n const isOverTop = tooltipTop < rootTop\n const isOverBottom = tooltipTop + tooltipHeight > rootTop + rootHeight\n const isOverLeft = tooltipLeft < rootLeft\n const isOverRight = tooltipLeft + tooltipWidth > rootLeft + rootWidth\n\n if (isOverTop) {\n if (isOverLeft) {\n return 'bottom-left'\n }\n if (isOverRight) {\n return 'bottom-right'\n }\n return 'bottom-center'\n }\n\n if (isOverBottom) {\n if (isOverLeft) {\n return 'top-left'\n }\n if (isOverRight) {\n return 'top-right'\n }\n return 'top-center'\n }\n\n if (isOverLeft) {\n if (isOverTop) {\n return 'right-top'\n }\n if (isOverBottom) {\n return 'right-bottom'\n }\n return 'right-center'\n }\n\n if (isOverRight) {\n if (isOverTop) {\n return 'left-top'\n }\n if (isOverBottom) {\n return 'left-bottom'\n }\n return 'left-center'\n }\n\n return placement\n}\n\nexport function getTooltipStyle({\n tooltipContainer,\n placement,\n offset,\n allowHover,\n}: GetTooltipStyle) {\n const {\n top: containerTop,\n left: containerLeft,\n width: containerWidth,\n height: containerHeight,\n } = tooltipContainer.getBoundingClientRect()\n\n let top = containerTop\n let left = containerLeft\n let translateX = 0\n let translateY = 0\n\n let offsetTop = 0\n let offsetRight = 0\n let offsetBottom = 0\n let offsetLeft = 0\n let offsetStyle = {}\n\n switch (placement) {\n case 'top-center':\n case 'top-left':\n case 'top-right':\n translateY = -100\n offsetBottom = offset\n break\n case 'right-center':\n case 'right-top':\n case 'right-bottom':\n left += containerWidth\n offsetLeft = offset\n break\n case 'bottom-center':\n case 'bottom-left':\n case 'bottom-right':\n top += containerHeight\n offsetTop = offset\n break\n case 'left-center':\n case 'left-top':\n case 'left-bottom':\n translateX = -100\n offsetRight = offset\n break\n }\n\n switch (placement) {\n case 'top-center':\n case 'bottom-center':\n translateX = -50\n left += containerWidth / 2\n break\n case 'top-right':\n case 'bottom-right':\n translateX = -100\n left += containerWidth\n break\n case 'right-center':\n case 'left-center':\n translateY = -50\n top += containerHeight / 2\n break\n case 'right-bottom':\n case 'left-bottom':\n translateY = -100\n top += containerHeight\n break\n }\n\n if (allowHover) {\n offsetStyle = {\n paddingTop: offsetTop,\n paddingRight: offsetRight,\n paddingBottom: offsetBottom,\n paddingLeft: offsetLeft,\n }\n } else {\n top += offsetTop - offsetBottom\n left += offsetLeft - offsetRight\n }\n\n return {\n position: 'fixed',\n top,\n left,\n transform: `translate(${translateX}%, ${translateY}%)`,\n ...offsetStyle,\n }\n}\n"],"names":["getReplacement","tooltip","keepInContainer","placement","rootElement","width","tooltipWidth","height","tooltipHeight","top","tooltipTop","left","tooltipLeft","getBoundingClientRect","rootWidth","rootHeight","rootTop","rootLeft","isOverTop","isOverBottom","isOverLeft","isOverRight","getTooltipStyle","tooltipContainer","offset","allowHover","containerTop","containerLeft","containerWidth","containerHeight","translateX","translateY","offsetTop","offsetRight","offsetBottom","offsetLeft","offsetStyle","paddingTop","paddingRight","paddingBottom","paddingLeft","position","transform"],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sources":["../../../../src/components/LegacyTooltip/utils.ts"],"sourcesContent":["import {\n type GetReplacement,\n type GetTooltipStyle,\n type LegacyTooltipPosition,\n} from './LegacyTooltip.types'\n\nexport function getReplacement({\n tooltip,\n keepInContainer,\n placement,\n rootElement,\n}: GetReplacement): LegacyTooltipPosition {\n if (!keepInContainer) {\n return placement\n }\n\n const {\n width: tooltipWidth,\n height: tooltipHeight,\n top: tooltipTop,\n left: tooltipLeft,\n } = tooltip.getBoundingClientRect()\n\n const {\n width: rootWidth,\n height: rootHeight,\n top: rootTop,\n left: rootLeft,\n } = rootElement.getBoundingClientRect()\n\n const isOverTop = tooltipTop < rootTop\n const isOverBottom = tooltipTop + tooltipHeight > rootTop + rootHeight\n const isOverLeft = tooltipLeft < rootLeft\n const isOverRight = tooltipLeft + tooltipWidth > rootLeft + rootWidth\n\n if (isOverTop) {\n if (isOverLeft) {\n return 'bottom-left'\n }\n if (isOverRight) {\n return 'bottom-right'\n }\n return 'bottom-center'\n }\n\n if (isOverBottom) {\n if (isOverLeft) {\n return 'top-left'\n }\n if (isOverRight) {\n return 'top-right'\n }\n return 'top-center'\n }\n\n if (isOverLeft) {\n if (isOverTop) {\n return 'right-top'\n }\n if (isOverBottom) {\n return 'right-bottom'\n }\n return 'right-center'\n }\n\n if (isOverRight) {\n if (isOverTop) {\n return 'left-top'\n }\n if (isOverBottom) {\n return 'left-bottom'\n }\n return 'left-center'\n }\n\n return placement\n}\n\nexport function getTooltipStyle({\n tooltipContainer,\n placement,\n offset,\n allowHover,\n}: GetTooltipStyle) {\n const {\n top: containerTop,\n left: containerLeft,\n width: containerWidth,\n height: containerHeight,\n } = tooltipContainer.getBoundingClientRect()\n\n let top = containerTop\n let left = containerLeft\n let translateX = 0\n let translateY = 0\n\n let offsetTop = 0\n let offsetRight = 0\n let offsetBottom = 0\n let offsetLeft = 0\n let offsetStyle = {}\n\n switch (placement) {\n case 'top-center':\n case 'top-left':\n case 'top-right':\n translateY = -100\n offsetBottom = offset\n break\n case 'right-center':\n case 'right-top':\n case 'right-bottom':\n left += containerWidth\n offsetLeft = offset\n break\n case 'bottom-center':\n case 'bottom-left':\n case 'bottom-right':\n top += containerHeight\n offsetTop = offset\n break\n case 'left-center':\n case 'left-top':\n case 'left-bottom':\n translateX = -100\n offsetRight = offset\n break\n }\n\n switch (placement) {\n case 'top-center':\n case 'bottom-center':\n translateX = -50\n left += containerWidth / 2\n break\n case 'top-right':\n case 'bottom-right':\n translateX = -100\n left += containerWidth\n break\n case 'right-center':\n case 'left-center':\n translateY = -50\n top += containerHeight / 2\n break\n case 'right-bottom':\n case 'left-bottom':\n translateY = -100\n top += containerHeight\n break\n }\n\n if (allowHover) {\n offsetStyle = {\n paddingTop: offsetTop,\n paddingRight: offsetRight,\n paddingBottom: offsetBottom,\n paddingLeft: offsetLeft,\n }\n } else {\n top += offsetTop - offsetBottom\n left += offsetLeft - offsetRight\n }\n\n return {\n position: 'fixed',\n top,\n left,\n transform: `translate(${translateX}%, ${translateY}%)`,\n ...offsetStyle,\n }\n}\n"],"names":["getReplacement","tooltip","keepInContainer","placement","rootElement","width","tooltipWidth","height","tooltipHeight","top","tooltipTop","left","tooltipLeft","getBoundingClientRect","rootWidth","rootHeight","rootTop","rootLeft","isOverTop","isOverBottom","isOverLeft","isOverRight","getTooltipStyle","tooltipContainer","offset","allowHover","containerTop","containerLeft","containerWidth","containerHeight","translateX","translateY","offsetTop","offsetRight","offsetBottom","offsetLeft","offsetStyle","paddingTop","paddingRight","paddingBottom","paddingLeft","position","transform"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ListItem.js","sources":["../../../../src/components/ListItem/ListItem.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\n\nimport { isBezierIcon } from '@channel.io/bezier-icons'\nimport classNames from 'classnames'\n\nimport { isEmpty, isNil, isString } from '~/src/utils/type'\n\nimport { Icon } from '~/src/components/Icon'\nimport { Text } from '~/src/components/Text'\n\nimport { type ListItemProps } from './ListItem.types'\n\nimport styles from './ListItem.module.scss'\n\ntype ListItemRef = HTMLDivElement & HTMLAnchorElement\n\nfunction renderNewLineComponent(value: string) {\n return value.split('\\n').map((str, index) => (\n // eslint-disable-next-line react/no-array-index-key\n <React.Fragment key={index}>\n {index !== 0 && <br />}\n {str}\n </React.Fragment>\n ))\n}\n\nexport const LIST_ITEM_TEST_ID = 'bezier-list-item'\n\nexport const ListItem = forwardRef<ListItemRef, ListItemProps>(\n function ListItem(\n {\n className,\n as,\n variant = 'monochrome',\n size = 's',\n content,\n description,\n descriptionMaxLines,\n leftContent,\n rightContent,\n active = false,\n focused = false,\n disabled = false,\n href,\n onClick,\n ...rest\n },\n forwardedRef\n ) {\n const isLink = !isEmpty(href)\n const Comp = isLink ? 'a' : ((as ?? 'div') as 'div')\n\n return (\n <Comp\n {...(isLink && {\n href,\n draggable: false,\n target: '_blank',\n rel: 'noopener noreferrer',\n })}\n className={classNames(\n styles.ListItem,\n styles[`size-${size}`],\n styles[`variant-${variant}`],\n disabled && styles.disabled,\n focused && styles.focused,\n active && styles.active,\n className\n )}\n ref={forwardedRef}\n onClick={!disabled ? onClick : undefined}\n data-testid={LIST_ITEM_TEST_ID}\n {...rest}\n >\n <div className={styles.ListItemContent}>\n {!isNil(leftContent) && (\n <div className={styles.ListItemLeftContent}>\n {isBezierIcon(leftContent) ? (\n <Icon\n className={styles.ListItemLeftIcon}\n source={leftContent}\n size=\"s\"\n />\n ) : (\n leftContent\n )}\n </div>\n )}\n\n <div className={styles.ListItemTitle}>\n {isString(content) ? (\n <Text\n truncated\n typo={size === 'l' ? '16' : '14'}\n >\n {content}\n </Text>\n ) : (\n content\n )}\n </div>\n\n {description && (\n <div className={styles.ListItemDescription}>\n <Text\n typo=\"12\"\n color=\"txt-black-darker\"\n truncated={descriptionMaxLines}\n >\n {isString(description)\n ? renderNewLineComponent(description)\n : description}\n </Text>\n </div>\n )}\n </div>\n\n {rightContent && (\n <div className={styles.ListItemRightContent}>{rightContent}</div>\n )}\n </Comp>\n )\n }\n)\n"],"names":["renderNewLineComponent","value","split","map","str","index","React","createElement","Fragment","key","LIST_ITEM_TEST_ID","ListItem","forwardRef","className","as","variant","size","content","description","descriptionMaxLines","leftContent","rightContent","active","focused","disabled","href","onClick","rest","forwardedRef","isLink","isEmpty","Comp","Object","assign","draggable","target","rel","classNames","styles","ref","undefined","ListItemContent","isNil","ListItemLeftContent","isBezierIcon","Icon","ListItemLeftIcon","source","ListItemTitle","isString","Text","truncated","typo","ListItemDescription","color","ListItemRightContent"],"mappings":"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"}
1
+ {"version":3,"file":"ListItem.js","sources":["../../../../src/components/ListItem/ListItem.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\n\nimport { isBezierIcon } from '@channel.io/bezier-icons'\nimport classNames from 'classnames'\n\nimport { isEmpty, isNil, isString } from '~/src/utils/type'\n\nimport { Icon } from '~/src/components/Icon'\nimport { Text } from '~/src/components/Text'\n\nimport { type ListItemProps } from './ListItem.types'\n\nimport styles from './ListItem.module.scss'\n\ntype ListItemRef = HTMLDivElement & HTMLAnchorElement\n\nfunction renderNewLineComponent(value: string) {\n return value.split('\\n').map((str, index) => (\n // eslint-disable-next-line react/no-array-index-key\n <React.Fragment key={index}>\n {index !== 0 && <br />}\n {str}\n </React.Fragment>\n ))\n}\n\nexport const LIST_ITEM_TEST_ID = 'bezier-list-item'\n\nexport const ListItem = forwardRef<ListItemRef, ListItemProps>(\n function ListItem(\n {\n className,\n as,\n variant = 'monochrome',\n size = 's',\n content,\n description,\n descriptionMaxLines,\n leftContent,\n rightContent,\n active = false,\n focused = false,\n disabled = false,\n href,\n onClick,\n ...rest\n },\n forwardedRef\n ) {\n const isLink = !isEmpty(href)\n const Comp = isLink ? 'a' : ((as ?? 'div') as 'div')\n\n return (\n <Comp\n {...(isLink && {\n href,\n draggable: false,\n target: '_blank',\n rel: 'noopener noreferrer',\n })}\n className={classNames(\n styles.ListItem,\n styles[`size-${size}`],\n styles[`variant-${variant}`],\n disabled && styles.disabled,\n focused && styles.focused,\n active && styles.active,\n className\n )}\n ref={forwardedRef}\n onClick={!disabled ? onClick : undefined}\n data-testid={LIST_ITEM_TEST_ID}\n {...rest}\n >\n <div className={styles.ListItemContent}>\n {!isNil(leftContent) && (\n <div className={styles.ListItemLeftContent}>\n {isBezierIcon(leftContent) ? (\n <Icon\n className={styles.ListItemLeftIcon}\n source={leftContent}\n size=\"s\"\n />\n ) : (\n leftContent\n )}\n </div>\n )}\n\n <div className={styles.ListItemTitle}>\n {isString(content) ? (\n <Text\n truncated\n typo={size === 'l' ? '16' : '14'}\n >\n {content}\n </Text>\n ) : (\n content\n )}\n </div>\n\n {description && (\n <div className={styles.ListItemDescription}>\n <Text\n typo=\"12\"\n color=\"txt-black-darker\"\n truncated={descriptionMaxLines}\n >\n {isString(description)\n ? renderNewLineComponent(description)\n : description}\n </Text>\n </div>\n )}\n </div>\n\n {rightContent && (\n <div className={styles.ListItemRightContent}>{rightContent}</div>\n )}\n </Comp>\n )\n }\n)\n"],"names":["renderNewLineComponent","value","split","map","str","index","React","createElement","Fragment","key","LIST_ITEM_TEST_ID","ListItem","forwardRef","className","as","variant","size","content","description","descriptionMaxLines","leftContent","rightContent","active","focused","disabled","href","onClick","rest","forwardedRef","isLink","isEmpty","Comp","Object","assign","draggable","target","rel","classNames","styles","ref","undefined","ListItemContent","isNil","ListItemLeftContent","isBezierIcon","Icon","ListItemLeftIcon","source","ListItemTitle","isString","Text","truncated","typo","ListItemDescription","color","ListItemRightContent"],"mappings":";;;;;;;;;;AAgBA,SAASA,sBAAsBA,CAACC,KAAa,EAAE;AAC7C,EAAA,OAAOA,KAAK,CAACC,KAAK,CAAC,IAAI,CAAC,CAACC,GAAG,CAAC,CAACC,GAAG,EAAEC,KAAK;AAAA;AACtC;AACAC,EAAAA,KAAA,CAAAC,aAAA,CAACD,KAAK,CAACE,QAAQ,EAAA;AAACC,IAAAA,GAAG,EAAEJ,KAAAA;AAAM,GAAA,EACxBA,KAAK,KAAK,CAAC,iBAAIC,KAAA,CAAAC,aAAA,CAAA,IAAA,EAAA,IAAK,CAAC,EACrBH,GACa,CACjB,CAAC,CAAA;AACJ,CAAA;AAEO,MAAMM,iBAAiB,GAAG,mBAAkB;MAEtCC,QAAQ,gBAAGC,gBAAU,CAChC,SAASD,QAAQA,CACf;EACEE,SAAS;EACTC,EAAE;AACFC,EAAAA,OAAO,GAAG,YAAY;AACtBC,EAAAA,IAAI,GAAG,GAAG;EACVC,OAAO;EACPC,WAAW;EACXC,mBAAmB;EACnBC,WAAW;EACXC,YAAY;AACZC,EAAAA,MAAM,GAAG,KAAK;AACdC,EAAAA,OAAO,GAAG,KAAK;AACfC,EAAAA,QAAQ,GAAG,KAAK;EAChBC,IAAI;EACJC,OAAO;EACP,GAAGC,IAAAA;AACL,CAAC,EACDC,YAAY,EACZ;AACA,EAAA,MAAMC,MAAM,GAAG,CAACC,YAAO,CAACL,IAAI,CAAC,CAAA;EAC7B,MAAMM,IAAI,GAAGF,MAAM,GAAG,GAAG,GAAKf,EAAE,IAAI,KAAgB,CAAA;EAEpD,oBACER,KAAA,CAAAC,aAAA,CAACwB,IAAI,EAAAC,MAAA,CAAAC,MAAA,CACEJ,EAAAA,EAAAA,MAAM,IAAI;IACbJ,IAAI;AACJS,IAAAA,SAAS,EAAE,KAAK;AAChBC,IAAAA,MAAM,EAAE,QAAQ;AAChBC,IAAAA,GAAG,EAAE,qBAAA;GACN,EAAA;AACDvB,IAAAA,SAAS,EAAEwB,aAAU,CACnBC,uBAAM,CAAC3B,QAAQ,EACf2B,uBAAM,CAAC,CAAQtB,KAAAA,EAAAA,IAAI,EAAE,CAAC,EACtBsB,uBAAM,CAAC,CAAA,QAAA,EAAWvB,OAAO,CAAE,CAAA,CAAC,EAC5BS,QAAQ,IAAIc,uBAAM,CAACd,QAAQ,EAC3BD,OAAO,IAAIe,uBAAM,CAACf,OAAO,EACzBD,MAAM,IAAIgB,uBAAM,CAAChB,MAAM,EACvBT,SACF,CAAE;AACF0B,IAAAA,GAAG,EAAEX,YAAa;AAClBF,IAAAA,OAAO,EAAE,CAACF,QAAQ,GAAGE,OAAO,GAAGc,SAAU;IACzC,aAAa9B,EAAAA,iBAAAA;AAAkB,GAAA,EAC3BiB,IAAI,CAAA,eAERrB,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKM,SAAS,EAAEyB,uBAAM,CAACG,eAAAA;GACpB,EAAA,CAACC,UAAK,CAACtB,WAAW,CAAC,iBAClBd,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKM,SAAS,EAAEyB,uBAAM,CAACK,mBAAAA;GACpBC,EAAAA,wBAAY,CAACxB,WAAW,CAAC,gBACxBd,KAAA,CAAAC,aAAA,CAACsC,SAAI,EAAA;IACHhC,SAAS,EAAEyB,uBAAM,CAACQ,gBAAiB;AACnCC,IAAAA,MAAM,EAAE3B,WAAY;AACpBJ,IAAAA,IAAI,EAAC,GAAA;AAAG,GACT,CAAC,GAEFI,WAEC,CACN,eAEDd,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKM,SAAS,EAAEyB,uBAAM,CAACU,aAAAA;GACpBC,EAAAA,aAAQ,CAAChC,OAAO,CAAC,gBAChBX,KAAA,CAAAC,aAAA,CAAC2C,SAAI,EAAA;IACHC,SAAS,EAAA,IAAA;AACTC,IAAAA,IAAI,EAAEpC,IAAI,KAAK,GAAG,GAAG,IAAI,GAAG,IAAA;GAE3BC,EAAAA,OACG,CAAC,GAEPA,OAEC,CAAC,EAELC,WAAW,iBACVZ,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKM,SAAS,EAAEyB,uBAAM,CAACe,mBAAAA;AAAoB,GAAA,eACzC/C,KAAA,CAAAC,aAAA,CAAC2C,SAAI,EAAA;AACHE,IAAAA,IAAI,EAAC,IAAI;AACTE,IAAAA,KAAK,EAAC,kBAAkB;AACxBH,IAAAA,SAAS,EAAEhC,mBAAAA;AAAoB,GAAA,EAE9B8B,aAAQ,CAAC/B,WAAW,CAAC,GAClBlB,sBAAsB,CAACkB,WAAW,CAAC,GACnCA,WACA,CACH,CAEJ,CAAC,EAELG,YAAY,iBACXf,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKM,SAAS,EAAEyB,uBAAM,CAACiB,oBAAAA;GAAuBlC,EAAAA,YAAkB,CAE9D,CAAC,CAAA;AAEX,CACF;;;;;"}