@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":"Slider.mjs","sources":["../../../../src/components/Slider/Slider.tsx"],"sourcesContent":["import React, { type CSSProperties, forwardRef, memo } from 'react'\n\nimport * as SliderPrimitive from '@radix-ui/react-slider'\nimport classNames from 'classnames'\n\nimport { cssDimension } from '~/src/utils/style'\n\nimport { Tooltip } from '~/src/components/Tooltip'\n\nimport { type SliderProps } from './Slider.types'\n\nimport styles from './Slider.module.scss'\n\nexport const SLIDER_TEST_ID = 'bezier-slider'\n\nconst SliderGuide = memo<Record<'min' | 'max' | 'value', number>>(\n function SliderGuide({ min, max, value }) {\n return (\n <div\n className={styles.SliderGuide}\n style={\n {\n '--b-slider-guide-left': `${(value / (max - min)) * 100}%`,\n } as React.CSSProperties\n }\n />\n )\n }\n)\n\n/* NOTE: Props are injected at runtime by `SliderPrimitive.Thumb`. */\nconst SliderThumb = forwardRef<\n HTMLDivElement,\n Pick<SliderProps, 'disableTooltip'> & React.HTMLAttributes<HTMLDivElement>\n>(function SliderThumb({ disableTooltip, ...rest }, forwardedRef) {\n const value = rest?.['aria-valuenow']\n\n if (disableTooltip) {\n return (\n <div\n ref={forwardedRef}\n className={styles.SliderThumb}\n {...rest}\n />\n )\n }\n\n return (\n <Tooltip\n content={value}\n offset={6}\n placement=\"top-center\"\n onPointerDownOutside={(e) => e.preventDefault()}\n >\n <div\n ref={forwardedRef}\n className={styles.SliderThumb}\n {...rest}\n />\n </Tooltip>\n )\n})\n\n/**\n * An input component where the user selects a value from within a given range.\n * The value of the slider is shown in a tooltip, and in some cases you can add a guide scale.\n * @example\n *\n * ```tsx\n * const [value, setValue] = useState([1])\n * // Controlled\n * <Slider\n * value={value}\n * onValueChange={setValue}\n * />\n * // Uncontrolled\n * <Slider defaultValue={[1]} />\n * ```\n */\nexport const Slider = forwardRef<HTMLSpanElement, SliderProps>(function Slider(\n {\n className,\n style,\n width = 36,\n guide,\n defaultValue = [0],\n value,\n disabled = false,\n min = 0,\n max = 10,\n step = 1,\n minStepsBetweenThumbs = 0,\n dir = 'ltr',\n disableTooltip = false,\n ...rest\n },\n forwardedRef\n) {\n const targetValue = value || defaultValue\n\n return (\n <SliderPrimitive.Root\n style={\n {\n '--b-slider-width': cssDimension(width),\n ...style,\n } as CSSProperties\n }\n className={classNames(styles.Slider, className)}\n ref={forwardedRef}\n orientation=\"horizontal\"\n defaultValue={defaultValue}\n value={value}\n disabled={disabled}\n min={min}\n max={max}\n step={step}\n dir={dir}\n minStepsBetweenThumbs={minStepsBetweenThumbs}\n data-testid={SLIDER_TEST_ID}\n {...rest}\n >\n <SliderPrimitive.Track className={styles.SliderPrimitiveTrack}>\n <SliderPrimitive.Range className={styles.SliderPrimitiveRange} />\n\n {guide && (\n <div className={styles.GuideContainer}>\n {guide.map((guideValue) => (\n <SliderGuide\n key={`slider-guide-${guideValue}`}\n min={min}\n max={max}\n value={guideValue}\n />\n ))}\n </div>\n )}\n </SliderPrimitive.Track>\n\n {targetValue.map((_, i) => (\n <SliderPrimitive.Thumb\n // eslint-disable-next-line react/no-array-index-key\n key={`slider-thumb-${i}`}\n asChild\n >\n <SliderThumb disableTooltip={disableTooltip} />\n </SliderPrimitive.Thumb>\n ))}\n </SliderPrimitive.Root>\n )\n})\n"],"names":["SLIDER_TEST_ID","SliderGuide","memo","min","max","value","React","createElement","className","styles","style","SliderThumb","forwardRef","disableTooltip","rest","forwardedRef","Object","assign","ref","Tooltip","content","offset","placement","onPointerDownOutside","e","preventDefault","Slider","width","guide","defaultValue","disabled","step","minStepsBetweenThumbs","dir","targetValue","SliderPrimitive","cssDimension","classNames","orientation","SliderPrimitiveTrack","SliderPrimitiveRange","GuideContainer","map","guideValue","key","_","i","asChild"],"mappings":"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"}
1
+ {"version":3,"file":"Slider.mjs","sources":["../../../../src/components/Slider/Slider.tsx"],"sourcesContent":["import React, { type CSSProperties, forwardRef, memo } from 'react'\n\nimport * as SliderPrimitive from '@radix-ui/react-slider'\nimport classNames from 'classnames'\n\nimport { cssDimension } from '~/src/utils/style'\n\nimport { Tooltip } from '~/src/components/Tooltip'\n\nimport { type SliderProps } from './Slider.types'\n\nimport styles from './Slider.module.scss'\n\nexport const SLIDER_TEST_ID = 'bezier-slider'\n\nconst SliderGuide = memo<Record<'min' | 'max' | 'value', number>>(\n function SliderGuide({ min, max, value }) {\n return (\n <div\n className={styles.SliderGuide}\n style={\n {\n '--b-slider-guide-left': `${(value / (max - min)) * 100}%`,\n } as React.CSSProperties\n }\n />\n )\n }\n)\n\n/* NOTE: Props are injected at runtime by `SliderPrimitive.Thumb`. */\nconst SliderThumb = forwardRef<\n HTMLDivElement,\n Pick<SliderProps, 'disableTooltip'> & React.HTMLAttributes<HTMLDivElement>\n>(function SliderThumb({ disableTooltip, ...rest }, forwardedRef) {\n const value = rest?.['aria-valuenow']\n\n if (disableTooltip) {\n return (\n <div\n ref={forwardedRef}\n className={styles.SliderThumb}\n {...rest}\n />\n )\n }\n\n return (\n <Tooltip\n content={value}\n offset={6}\n placement=\"top-center\"\n onPointerDownOutside={(e) => e.preventDefault()}\n >\n <div\n ref={forwardedRef}\n className={styles.SliderThumb}\n {...rest}\n />\n </Tooltip>\n )\n})\n\n/**\n * An input component where the user selects a value from within a given range.\n * The value of the slider is shown in a tooltip, and in some cases you can add a guide scale.\n * @example\n *\n * ```tsx\n * const [value, setValue] = useState([1])\n * // Controlled\n * <Slider\n * value={value}\n * onValueChange={setValue}\n * />\n * // Uncontrolled\n * <Slider defaultValue={[1]} />\n * ```\n */\nexport const Slider = forwardRef<HTMLSpanElement, SliderProps>(function Slider(\n {\n className,\n style,\n width = 36,\n guide,\n defaultValue = [0],\n value,\n disabled = false,\n min = 0,\n max = 10,\n step = 1,\n minStepsBetweenThumbs = 0,\n dir = 'ltr',\n disableTooltip = false,\n ...rest\n },\n forwardedRef\n) {\n const targetValue = value || defaultValue\n\n return (\n <SliderPrimitive.Root\n style={\n {\n '--b-slider-width': cssDimension(width),\n ...style,\n } as CSSProperties\n }\n className={classNames(styles.Slider, className)}\n ref={forwardedRef}\n orientation=\"horizontal\"\n defaultValue={defaultValue}\n value={value}\n disabled={disabled}\n min={min}\n max={max}\n step={step}\n dir={dir}\n minStepsBetweenThumbs={minStepsBetweenThumbs}\n data-testid={SLIDER_TEST_ID}\n {...rest}\n >\n <SliderPrimitive.Track className={styles.SliderPrimitiveTrack}>\n <SliderPrimitive.Range className={styles.SliderPrimitiveRange} />\n\n {guide && (\n <div className={styles.GuideContainer}>\n {guide.map((guideValue) => (\n <SliderGuide\n key={`slider-guide-${guideValue}`}\n min={min}\n max={max}\n value={guideValue}\n />\n ))}\n </div>\n )}\n </SliderPrimitive.Track>\n\n {targetValue.map((_, i) => (\n <SliderPrimitive.Thumb\n // eslint-disable-next-line react/no-array-index-key\n key={`slider-thumb-${i}`}\n asChild\n >\n <SliderThumb disableTooltip={disableTooltip} />\n </SliderPrimitive.Thumb>\n ))}\n </SliderPrimitive.Root>\n )\n})\n"],"names":["SLIDER_TEST_ID","SliderGuide","memo","min","max","value","React","createElement","className","styles","style","SliderThumb","forwardRef","disableTooltip","rest","forwardedRef","Object","assign","ref","Tooltip","content","offset","placement","onPointerDownOutside","e","preventDefault","Slider","width","guide","defaultValue","disabled","step","minStepsBetweenThumbs","dir","targetValue","SliderPrimitive","cssDimension","classNames","orientation","SliderPrimitiveTrack","SliderPrimitiveRange","GuideContainer","map","guideValue","key","_","i","asChild"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SmoothCornersBox.mjs","sources":["../../../../src/components/SmoothCornersBox/SmoothCornersBox.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\n\nimport classNames from 'classnames'\n\nimport { cssUrl, cssVar, px } from '~/src/utils/style'\n\nimport { FeatureType, useFeatureFlag } from '~/src/components/FeatureProvider'\n\nimport { type SmoothCornersBoxProps } from './SmoothCornersBox.types'\n\nimport styles from './SmoothCornersBox.module.scss'\n\n/**\n * `SmoothCornersBox` is a simple `div` element with smooth corners.\n * It is available by enabling the `SmoothCornersFeature`.\n * @example\n *\n * ```tsx\n * <AppProvider features={[SmoothCornersFeature]}>\n * <SmoothCornersBox />\n * </AppProvider>\n * ```\n */\nexport const SmoothCornersBox = forwardRef<\n HTMLDivElement,\n SmoothCornersBoxProps\n>(function SmoothCornersBox(\n {\n children,\n style,\n className,\n disabled,\n borderRadius,\n margin,\n shadow,\n backgroundColor,\n backgroundImage,\n ...rest\n },\n forwardedRef\n) {\n const shadowBlurRadius = shadow?.blurRadius ?? 0\n const shadowSpreadRadius = shadow?.spreadRadius ?? 0\n\n return (\n <div\n {...rest}\n ref={forwardedRef}\n style={\n {\n ...style,\n '--b-smooth-corners-box-border-radius': borderRadius,\n '--b-smooth-corners-box-shadow-offset-x': px(shadow?.offsetX),\n '--b-smooth-corners-box-shadow-offset-y': px(shadow?.offsetY),\n '--b-smooth-corners-box-shadow-blur-radius': `${shadowBlurRadius}px`,\n '--b-smooth-corners-box-shadow-spread-radius': `${shadowSpreadRadius}px`,\n '--b-smooth-corners-box-shadow-color': cssVar(shadow?.color),\n /**\n * NOTE: Calculate in javascript because it cannot access calculated values via CSS calc() in the paint worklet.\n * @see {@link ~/src/features/SmoothCorners/smoothCornersScript.ts}\n */\n '--b-smooth-corners-box-padding': `${Math.max(shadowBlurRadius, shadowSpreadRadius) * 2}px`,\n '--b-smooth-corners-box-margin': `${margin ?? 0}px`,\n '--b-smooth-corners-box-background-color': cssVar(backgroundColor),\n '--b-smooth-corners-box-background-image': cssUrl(backgroundImage),\n } as React.CSSProperties\n }\n className={classNames(styles.SmoothCornersBox, className)}\n data-state={\n useFeatureFlag(FeatureType.SmoothCorners) && !disabled\n ? 'enabled'\n : 'disabled'\n }\n >\n {children}\n </div>\n )\n})\n"],"names":["SmoothCornersBox","forwardRef","children","style","className","disabled","borderRadius","margin","shadow","backgroundColor","backgroundImage","rest","forwardedRef","shadowBlurRadius","blurRadius","shadowSpreadRadius","spreadRadius","React","createElement","Object","assign","ref","px","offsetX","offsetY","cssVar","color","Math","max","cssUrl","classNames","styles","useFeatureFlag","FeatureType","SmoothCorners"],"mappings":";;;;;;;AAYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;MACaA,gBAAgB,gBAAGC,UAAU,CAGxC,SAASD,gBAAgBA,CACzB;EACEE,QAAQ;EACRC,KAAK;EACLC,SAAS;EACTC,QAAQ;EACRC,YAAY;EACZC,MAAM;EACNC,MAAM;EACNC,eAAe;EACfC,eAAe;EACf,GAAGC,IAAAA;AACL,CAAC,EACDC,YAAY,EACZ;AACA,EAAA,MAAMC,gBAAgB,GAAGL,MAAM,EAAEM,UAAU,IAAI,CAAC,CAAA;AAChD,EAAA,MAAMC,kBAAkB,GAAGP,MAAM,EAAEQ,YAAY,IAAI,CAAC,CAAA;EAEpD,oBACEC,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAAC,MAAA,CAAAC,MAAA,KACMT,IAAI,EAAA;AACRU,IAAAA,GAAG,EAAET,YAAa;AAClBT,IAAAA,KAAK,EACH;AACE,MAAA,GAAGA,KAAK;AACR,MAAA,sCAAsC,EAAEG,YAAY;AACpD,MAAA,wCAAwC,EAAEgB,EAAE,CAACd,MAAM,EAAEe,OAAO,CAAC;AAC7D,MAAA,wCAAwC,EAAED,EAAE,CAACd,MAAM,EAAEgB,OAAO,CAAC;MAC7D,2CAA2C,EAAG,CAAEX,EAAAA,gBAAiB,CAAG,EAAA,CAAA;MACpE,6CAA6C,EAAG,CAAEE,EAAAA,kBAAmB,CAAG,EAAA,CAAA;AACxE,MAAA,qCAAqC,EAAEU,MAAM,CAACjB,MAAM,EAAEkB,KAAK,CAAC;AAC5D;AACV;AACA;AACA;AACU,MAAA,gCAAgC,EAAG,CAAA,EAAEC,IAAI,CAACC,GAAG,CAACf,gBAAgB,EAAEE,kBAAkB,CAAC,GAAG,CAAE,CAAG,EAAA,CAAA;AAC3F,MAAA,+BAA+B,EAAG,CAAA,EAAER,MAAM,IAAI,CAAE,CAAG,EAAA,CAAA;AACnD,MAAA,yCAAyC,EAAEkB,MAAM,CAAChB,eAAe,CAAC;MAClE,yCAAyC,EAAEoB,MAAM,CAACnB,eAAe,CAAA;KAEpE;IACDN,SAAS,EAAE0B,UAAU,CAACC,MAAM,CAAC/B,gBAAgB,EAAEI,SAAS,CAAE;IAC1D,YACE4B,EAAAA,cAAc,CAACC,WAAW,CAACC,aAAa,CAAC,IAAI,CAAC7B,QAAQ,GAClD,SAAS,GACT,UAAA;AACL,GAAA,CAAA,EAEAH,QACE,CAAC,CAAA;AAEV,CAAC;;;;"}
1
+ {"version":3,"file":"SmoothCornersBox.mjs","sources":["../../../../src/components/SmoothCornersBox/SmoothCornersBox.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\n\nimport classNames from 'classnames'\n\nimport { cssUrl, cssVar, px } from '~/src/utils/style'\n\nimport { FeatureType, useFeatureFlag } from '~/src/components/FeatureProvider'\n\nimport { type SmoothCornersBoxProps } from './SmoothCornersBox.types'\n\nimport styles from './SmoothCornersBox.module.scss'\n\n/**\n * `SmoothCornersBox` is a simple `div` element with smooth corners.\n * It is available by enabling the `SmoothCornersFeature`.\n * @example\n *\n * ```tsx\n * <AppProvider features={[SmoothCornersFeature]}>\n * <SmoothCornersBox />\n * </AppProvider>\n * ```\n */\nexport const SmoothCornersBox = forwardRef<\n HTMLDivElement,\n SmoothCornersBoxProps\n>(function SmoothCornersBox(\n {\n children,\n style,\n className,\n disabled,\n borderRadius,\n margin,\n shadow,\n backgroundColor,\n backgroundImage,\n ...rest\n },\n forwardedRef\n) {\n const shadowBlurRadius = shadow?.blurRadius ?? 0\n const shadowSpreadRadius = shadow?.spreadRadius ?? 0\n\n return (\n <div\n {...rest}\n ref={forwardedRef}\n style={\n {\n ...style,\n '--b-smooth-corners-box-border-radius': borderRadius,\n '--b-smooth-corners-box-shadow-offset-x': px(shadow?.offsetX),\n '--b-smooth-corners-box-shadow-offset-y': px(shadow?.offsetY),\n '--b-smooth-corners-box-shadow-blur-radius': `${shadowBlurRadius}px`,\n '--b-smooth-corners-box-shadow-spread-radius': `${shadowSpreadRadius}px`,\n '--b-smooth-corners-box-shadow-color': cssVar(shadow?.color),\n /**\n * NOTE: Calculate in javascript because it cannot access calculated values via CSS calc() in the paint worklet.\n * @see {@link ~/src/features/SmoothCorners/smoothCornersScript.ts}\n */\n '--b-smooth-corners-box-padding': `${Math.max(shadowBlurRadius, shadowSpreadRadius) * 2}px`,\n '--b-smooth-corners-box-margin': `${margin ?? 0}px`,\n '--b-smooth-corners-box-background-color': cssVar(backgroundColor),\n '--b-smooth-corners-box-background-image': cssUrl(backgroundImage),\n } as React.CSSProperties\n }\n className={classNames(styles.SmoothCornersBox, className)}\n data-state={\n useFeatureFlag(FeatureType.SmoothCorners) && !disabled\n ? 'enabled'\n : 'disabled'\n }\n >\n {children}\n </div>\n )\n})\n"],"names":["SmoothCornersBox","forwardRef","children","style","className","disabled","borderRadius","margin","shadow","backgroundColor","backgroundImage","rest","forwardedRef","shadowBlurRadius","blurRadius","shadowSpreadRadius","spreadRadius","React","createElement","Object","assign","ref","px","offsetX","offsetY","cssVar","color","Math","max","cssUrl","classNames","styles","useFeatureFlag","FeatureType","SmoothCorners"],"mappings":";;;;;;;AAYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;MACaA,gBAAgB,gBAAGC,UAAU,CAGxC,SAASD,gBAAgBA,CACzB;EACEE,QAAQ;EACRC,KAAK;EACLC,SAAS;EACTC,QAAQ;EACRC,YAAY;EACZC,MAAM;EACNC,MAAM;EACNC,eAAe;EACfC,eAAe;EACf,GAAGC,IAAAA;AACL,CAAC,EACDC,YAAY,EACZ;AACA,EAAA,MAAMC,gBAAgB,GAAGL,MAAM,EAAEM,UAAU,IAAI,CAAC,CAAA;AAChD,EAAA,MAAMC,kBAAkB,GAAGP,MAAM,EAAEQ,YAAY,IAAI,CAAC,CAAA;EAEpD,oBACEC,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAAC,MAAA,CAAAC,MAAA,KACMT,IAAI,EAAA;AACRU,IAAAA,GAAG,EAAET,YAAa;AAClBT,IAAAA,KAAK,EACH;AACE,MAAA,GAAGA,KAAK;AACR,MAAA,sCAAsC,EAAEG,YAAY;AACpD,MAAA,wCAAwC,EAAEgB,EAAE,CAACd,MAAM,EAAEe,OAAO,CAAC;AAC7D,MAAA,wCAAwC,EAAED,EAAE,CAACd,MAAM,EAAEgB,OAAO,CAAC;MAC7D,2CAA2C,EAAE,CAAGX,EAAAA,gBAAgB,CAAI,EAAA,CAAA;MACpE,6CAA6C,EAAE,CAAGE,EAAAA,kBAAkB,CAAI,EAAA,CAAA;AACxE,MAAA,qCAAqC,EAAEU,MAAM,CAACjB,MAAM,EAAEkB,KAAK,CAAC;AAC5D;AACV;AACA;AACA;AACU,MAAA,gCAAgC,EAAE,CAAA,EAAGC,IAAI,CAACC,GAAG,CAACf,gBAAgB,EAAEE,kBAAkB,CAAC,GAAG,CAAC,CAAI,EAAA,CAAA;AAC3F,MAAA,+BAA+B,EAAE,CAAA,EAAGR,MAAM,IAAI,CAAC,CAAI,EAAA,CAAA;AACnD,MAAA,yCAAyC,EAAEkB,MAAM,CAAChB,eAAe,CAAC;MAClE,yCAAyC,EAAEoB,MAAM,CAACnB,eAAe,CAAA;KAEpE;IACDN,SAAS,EAAE0B,UAAU,CAACC,MAAM,CAAC/B,gBAAgB,EAAEI,SAAS,CAAE;IAC1D,YACE4B,EAAAA,cAAc,CAACC,WAAW,CAACC,aAAa,CAAC,IAAI,CAAC7B,QAAQ,GAClD,SAAS,GACT,UAAA;AACL,GAAA,CAAA,EAEAH,QACE,CAAC,CAAA;AAEV,CAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Spinner.mjs","sources":["../../../../src/components/Spinner/Spinner.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\n\nimport classNames from 'classnames'\n\nimport { cssVar } from '~/src/utils/style'\n\nimport { type SpinnerProps } from './Spinner.types'\n\nimport styles from './Spinner.module.scss'\n\nexport const SPINNER_TEST_ID = 'bezier-spinner'\n\nexport const Spinner = forwardRef<HTMLDivElement, SpinnerProps>(\n function Spinner(\n { style, className, size = 'm', color, ...rest },\n forwardedRef\n ) {\n return (\n <div\n {...rest}\n ref={forwardedRef}\n style={\n {\n '--b-spinner-color': cssVar(color),\n ...style,\n } as React.CSSProperties\n }\n className={classNames(\n styles.Spinner,\n styles[`size-${size}`],\n className\n )}\n key=\"spinner\"\n data-testid={SPINNER_TEST_ID}\n />\n )\n }\n)\n"],"names":["SPINNER_TEST_ID","Spinner","forwardRef","style","className","size","color","rest","forwardedRef","React","createElement","Object","assign","ref","cssVar","classNames","styles","key"],"mappings":";;;;;AAUO,MAAMA,eAAe,GAAG,iBAAgB;MAElCC,OAAO,gBAAGC,UAAU,CAC/B,SAASD,OAAOA,CACd;EAAEE,KAAK;EAAEC,SAAS;AAAEC,EAAAA,IAAI,GAAG,GAAG;EAAEC,KAAK;EAAE,GAAGC,IAAAA;AAAK,CAAC,EAChDC,YAAY,EACZ;EACA,oBACEC,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAAC,MAAA,CAAAC,MAAA,KACML,IAAI,EAAA;AACRM,IAAAA,GAAG,EAAEL,YAAa;AAClBL,IAAAA,KAAK,EACH;AACE,MAAA,mBAAmB,EAAEW,MAAM,CAACR,KAAK,CAAC;MAClC,GAAGH,KAAAA;KAEN;AACDC,IAAAA,SAAS,EAAEW,UAAU,CACnBC,MAAM,CAACf,OAAO,EACde,MAAM,CAAE,QAAOX,IAAK,CAAA,CAAC,CAAC,EACtBD,SACF,CAAE;AACFa,IAAAA,GAAG,EAAC,SAAS;IACb,aAAajB,EAAAA,eAAAA;AAAgB,GAAA,CAC9B,CAAC,CAAA;AAEN,CACF;;;;"}
1
+ {"version":3,"file":"Spinner.mjs","sources":["../../../../src/components/Spinner/Spinner.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\n\nimport classNames from 'classnames'\n\nimport { cssVar } from '~/src/utils/style'\n\nimport { type SpinnerProps } from './Spinner.types'\n\nimport styles from './Spinner.module.scss'\n\nexport const SPINNER_TEST_ID = 'bezier-spinner'\n\nexport const Spinner = forwardRef<HTMLDivElement, SpinnerProps>(\n function Spinner(\n { style, className, size = 'm', color, ...rest },\n forwardedRef\n ) {\n return (\n <div\n {...rest}\n ref={forwardedRef}\n style={\n {\n '--b-spinner-color': cssVar(color),\n ...style,\n } as React.CSSProperties\n }\n className={classNames(\n styles.Spinner,\n styles[`size-${size}`],\n className\n )}\n key=\"spinner\"\n data-testid={SPINNER_TEST_ID}\n />\n )\n }\n)\n"],"names":["SPINNER_TEST_ID","Spinner","forwardRef","style","className","size","color","rest","forwardedRef","React","createElement","Object","assign","ref","cssVar","classNames","styles","key"],"mappings":";;;;;AAUO,MAAMA,eAAe,GAAG,iBAAgB;MAElCC,OAAO,gBAAGC,UAAU,CAC/B,SAASD,OAAOA,CACd;EAAEE,KAAK;EAAEC,SAAS;AAAEC,EAAAA,IAAI,GAAG,GAAG;EAAEC,KAAK;EAAE,GAAGC,IAAAA;AAAK,CAAC,EAChDC,YAAY,EACZ;EACA,oBACEC,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAAC,MAAA,CAAAC,MAAA,KACML,IAAI,EAAA;AACRM,IAAAA,GAAG,EAAEL,YAAa;AAClBL,IAAAA,KAAK,EACH;AACE,MAAA,mBAAmB,EAAEW,MAAM,CAACR,KAAK,CAAC;MAClC,GAAGH,KAAAA;KAEN;AACDC,IAAAA,SAAS,EAAEW,UAAU,CACnBC,MAAM,CAACf,OAAO,EACde,MAAM,CAAC,QAAQX,IAAI,CAAA,CAAE,CAAC,EACtBD,SACF,CAAE;AACFa,IAAAA,GAAG,EAAC,SAAS;IACb,aAAajB,EAAAA,eAAAA;AAAgB,GAAA,CAC9B,CAAC,CAAA;AAEN,CACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Stack.mjs","sources":["../../../../src/components/Stack/Stack.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'\nimport { cssDimension } from '~/src/utils/style'\n\nimport type { HStackProps, StackProps, VStackProps } from './Stack.types'\n\nimport styles from './Stack.module.scss'\n\n/**\n * `Stack` is a layout component used to group elements together and apply a space between them.\n * @example\n *\n * ```tsx\n * <Stack\n * direction=\"horizontal\"\n * spacing={6}\n * >\n * <div>{ ... }</div>\n * <div>{ ... }</div>\n * </Stack>\n * ```\n */\nexport const Stack = forwardRef<HTMLElement, StackProps>(\n function Stack(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 = 'flex',\n direction,\n justify,\n align,\n spacing,\n reverse,\n wrap,\n ...rest\n } = layoutRest\n\n return createElement(\n as,\n {\n ref: forwardedRef,\n style: {\n '--b-stack-spacing': cssDimension(spacing),\n ...marginStyles.style,\n ...layoutStyles.style,\n ...style,\n },\n className: classNames(\n styles.Stack,\n display && styles[`display-${display}`],\n direction && styles[`direction-${direction}`],\n justify && styles[`justify-${justify}`],\n align && styles[`align-${align}`],\n reverse && styles.reverse,\n wrap && styles.wrap,\n marginStyles.className,\n layoutStyles.className,\n className\n ),\n 'data-testid': 'bezier-stack',\n ...rest,\n },\n children\n )\n }\n)\n\n/**\n * `HStack` is a shorthand component equivalent to `Stack` with a horizontal direction property.\n * @see Stack\n */\nexport const HStack = forwardRef<HTMLElement, HStackProps>(\n function HStack(props, forwardedRef) {\n return createElement(Stack, {\n ...props,\n direction: 'horizontal',\n ref: forwardedRef,\n })\n }\n)\n\n/**\n * `VStack` is a shorthand component equivalent to `Stack` with a vertical direction property.\n * @see Stack\n */\nexport const VStack = forwardRef<HTMLElement, VStackProps>(\n function VStack(props, forwardedRef) {\n return createElement(Stack, {\n ...props,\n direction: 'vertical',\n ref: forwardedRef,\n })\n }\n)\n"],"names":["Stack","forwardRef","props","forwardedRef","marginProps","marginRest","splitByMarginProps","layoutProps","layoutRest","splitByLayoutProps","marginStyles","getMarginStyles","layoutStyles","getLayoutStyles","children","style","className","as","display","direction","justify","align","spacing","reverse","wrap","rest","createElement","ref","cssDimension","classNames","styles","HStack","VStack"],"mappings":";;;;;;AAgBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,KAAK,gBAAGC,UAAU,CAC7B,SAASD,KAAKA,CAACE,KAAK,EAAEC,YAAY,EAAE;EAClC,MAAM,CAACC,WAAW,EAAEC,UAAU,CAAC,GAAGC,kBAAkB,CAACJ,KAAK,CAAC,CAAA;EAC3D,MAAM,CAACK,WAAW,EAAEC,UAAU,CAAC,GAAGC,kBAAkB,CAACJ,UAAU,CAAC,CAAA;AAChE,EAAA,MAAMK,YAAY,GAAGC,eAAe,CAACP,WAAW,CAAC,CAAA;AACjD,EAAA,MAAMQ,YAAY,GAAGC,eAAe,CAACN,WAAW,CAAC,CAAA;EAEjD,MAAM;IACJO,QAAQ;IACRC,KAAK;IACLC,SAAS;AACTC,IAAAA,EAAE,GAAG,KAAK;AACVC,IAAAA,OAAO,GAAG,MAAM;IAChBC,SAAS;IACTC,OAAO;IACPC,KAAK;IACLC,OAAO;IACPC,OAAO;IACPC,IAAI;IACJ,GAAGC,IAAAA;AACL,GAAC,GAAGjB,UAAU,CAAA;EAEd,oBAAOkB,aAAa,CAClBT,EAAE,EACF;AACEU,IAAAA,GAAG,EAAExB,YAAY;AACjBY,IAAAA,KAAK,EAAE;AACL,MAAA,mBAAmB,EAAEa,YAAY,CAACN,OAAO,CAAC;MAC1C,GAAGZ,YAAY,CAACK,KAAK;MACrB,GAAGH,YAAY,CAACG,KAAK;MACrB,GAAGA,KAAAA;KACJ;AACDC,IAAAA,SAAS,EAAEa,UAAU,CACnBC,MAAM,CAAC9B,KAAK,EACZkB,OAAO,IAAIY,MAAM,CAAE,CAAA,QAAA,EAAUZ,OAAQ,CAAC,CAAA,CAAC,EACvCC,SAAS,IAAIW,MAAM,CAAE,CAAA,UAAA,EAAYX,SAAU,CAAA,CAAC,CAAC,EAC7CC,OAAO,IAAIU,MAAM,CAAE,WAAUV,OAAQ,CAAA,CAAC,CAAC,EACvCC,KAAK,IAAIS,MAAM,CAAE,CAAQT,MAAAA,EAAAA,KAAM,CAAC,CAAA,CAAC,EACjCE,OAAO,IAAIO,MAAM,CAACP,OAAO,EACzBC,IAAI,IAAIM,MAAM,CAACN,IAAI,EACnBd,YAAY,CAACM,SAAS,EACtBJ,YAAY,CAACI,SAAS,EACtBA,SACF,CAAC;AACD,IAAA,aAAa,EAAE,cAAc;IAC7B,GAAGS,IAAAA;GACJ,EACDX,QACF,CAAC,CAAA;AACH,CACF,EAAC;;AAED;AACA;AACA;AACA;AACO,MAAMiB,MAAM,gBAAG9B,UAAU,CAC9B,SAAS8B,MAAMA,CAAC7B,KAAK,EAAEC,YAAY,EAAE;EACnC,oBAAOuB,aAAa,CAAC1B,KAAK,EAAE;AAC1B,IAAA,GAAGE,KAAK;AACRiB,IAAAA,SAAS,EAAE,YAAY;AACvBQ,IAAAA,GAAG,EAAExB,YAAAA;AACP,GAAC,CAAC,CAAA;AACJ,CACF,EAAC;;AAED;AACA;AACA;AACA;AACO,MAAM6B,MAAM,gBAAG/B,UAAU,CAC9B,SAAS+B,MAAMA,CAAC9B,KAAK,EAAEC,YAAY,EAAE;EACnC,oBAAOuB,aAAa,CAAC1B,KAAK,EAAE;AAC1B,IAAA,GAAGE,KAAK;AACRiB,IAAAA,SAAS,EAAE,UAAU;AACrBQ,IAAAA,GAAG,EAAExB,YAAAA;AACP,GAAC,CAAC,CAAA;AACJ,CACF;;;;"}
1
+ {"version":3,"file":"Stack.mjs","sources":["../../../../src/components/Stack/Stack.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'\nimport { cssDimension } from '~/src/utils/style'\n\nimport type { HStackProps, StackProps, VStackProps } from './Stack.types'\n\nimport styles from './Stack.module.scss'\n\n/**\n * `Stack` is a layout component used to group elements together and apply a space between them.\n * @example\n *\n * ```tsx\n * <Stack\n * direction=\"horizontal\"\n * spacing={6}\n * >\n * <div>{ ... }</div>\n * <div>{ ... }</div>\n * </Stack>\n * ```\n */\nexport const Stack = forwardRef<HTMLElement, StackProps>(\n function Stack(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 = 'flex',\n direction,\n justify,\n align,\n spacing,\n reverse,\n wrap,\n ...rest\n } = layoutRest\n\n return createElement(\n as,\n {\n ref: forwardedRef,\n style: {\n '--b-stack-spacing': cssDimension(spacing),\n ...marginStyles.style,\n ...layoutStyles.style,\n ...style,\n },\n className: classNames(\n styles.Stack,\n display && styles[`display-${display}`],\n direction && styles[`direction-${direction}`],\n justify && styles[`justify-${justify}`],\n align && styles[`align-${align}`],\n reverse && styles.reverse,\n wrap && styles.wrap,\n marginStyles.className,\n layoutStyles.className,\n className\n ),\n 'data-testid': 'bezier-stack',\n ...rest,\n },\n children\n )\n }\n)\n\n/**\n * `HStack` is a shorthand component equivalent to `Stack` with a horizontal direction property.\n * @see Stack\n */\nexport const HStack = forwardRef<HTMLElement, HStackProps>(\n function HStack(props, forwardedRef) {\n return createElement(Stack, {\n ...props,\n direction: 'horizontal',\n ref: forwardedRef,\n })\n }\n)\n\n/**\n * `VStack` is a shorthand component equivalent to `Stack` with a vertical direction property.\n * @see Stack\n */\nexport const VStack = forwardRef<HTMLElement, VStackProps>(\n function VStack(props, forwardedRef) {\n return createElement(Stack, {\n ...props,\n direction: 'vertical',\n ref: forwardedRef,\n })\n }\n)\n"],"names":["Stack","forwardRef","props","forwardedRef","marginProps","marginRest","splitByMarginProps","layoutProps","layoutRest","splitByLayoutProps","marginStyles","getMarginStyles","layoutStyles","getLayoutStyles","children","style","className","as","display","direction","justify","align","spacing","reverse","wrap","rest","createElement","ref","cssDimension","classNames","styles","HStack","VStack"],"mappings":";;;;;;AAgBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,KAAK,gBAAGC,UAAU,CAC7B,SAASD,KAAKA,CAACE,KAAK,EAAEC,YAAY,EAAE;EAClC,MAAM,CAACC,WAAW,EAAEC,UAAU,CAAC,GAAGC,kBAAkB,CAACJ,KAAK,CAAC,CAAA;EAC3D,MAAM,CAACK,WAAW,EAAEC,UAAU,CAAC,GAAGC,kBAAkB,CAACJ,UAAU,CAAC,CAAA;AAChE,EAAA,MAAMK,YAAY,GAAGC,eAAe,CAACP,WAAW,CAAC,CAAA;AACjD,EAAA,MAAMQ,YAAY,GAAGC,eAAe,CAACN,WAAW,CAAC,CAAA;EAEjD,MAAM;IACJO,QAAQ;IACRC,KAAK;IACLC,SAAS;AACTC,IAAAA,EAAE,GAAG,KAAK;AACVC,IAAAA,OAAO,GAAG,MAAM;IAChBC,SAAS;IACTC,OAAO;IACPC,KAAK;IACLC,OAAO;IACPC,OAAO;IACPC,IAAI;IACJ,GAAGC,IAAAA;AACL,GAAC,GAAGjB,UAAU,CAAA;EAEd,oBAAOkB,aAAa,CAClBT,EAAE,EACF;AACEU,IAAAA,GAAG,EAAExB,YAAY;AACjBY,IAAAA,KAAK,EAAE;AACL,MAAA,mBAAmB,EAAEa,YAAY,CAACN,OAAO,CAAC;MAC1C,GAAGZ,YAAY,CAACK,KAAK;MACrB,GAAGH,YAAY,CAACG,KAAK;MACrB,GAAGA,KAAAA;KACJ;AACDC,IAAAA,SAAS,EAAEa,UAAU,CACnBC,MAAM,CAAC9B,KAAK,EACZkB,OAAO,IAAIY,MAAM,CAAC,CAAA,QAAA,EAAWZ,OAAO,CAAE,CAAA,CAAC,EACvCC,SAAS,IAAIW,MAAM,CAAC,CAAA,UAAA,EAAaX,SAAS,CAAA,CAAE,CAAC,EAC7CC,OAAO,IAAIU,MAAM,CAAC,WAAWV,OAAO,CAAA,CAAE,CAAC,EACvCC,KAAK,IAAIS,MAAM,CAAC,CAAST,MAAAA,EAAAA,KAAK,CAAE,CAAA,CAAC,EACjCE,OAAO,IAAIO,MAAM,CAACP,OAAO,EACzBC,IAAI,IAAIM,MAAM,CAACN,IAAI,EACnBd,YAAY,CAACM,SAAS,EACtBJ,YAAY,CAACI,SAAS,EACtBA,SACF,CAAC;AACD,IAAA,aAAa,EAAE,cAAc;IAC7B,GAAGS,IAAAA;GACJ,EACDX,QACF,CAAC,CAAA;AACH,CACF,EAAC;;AAED;AACA;AACA;AACA;AACO,MAAMiB,MAAM,gBAAG9B,UAAU,CAC9B,SAAS8B,MAAMA,CAAC7B,KAAK,EAAEC,YAAY,EAAE;EACnC,oBAAOuB,aAAa,CAAC1B,KAAK,EAAE;AAC1B,IAAA,GAAGE,KAAK;AACRiB,IAAAA,SAAS,EAAE,YAAY;AACvBQ,IAAAA,GAAG,EAAExB,YAAAA;AACP,GAAC,CAAC,CAAA;AACJ,CACF,EAAC;;AAED;AACA;AACA;AACA;AACO,MAAM6B,MAAM,gBAAG/B,UAAU,CAC9B,SAAS+B,MAAMA,CAAC9B,KAAK,EAAEC,YAAY,EAAE;EACnC,oBAAOuB,aAAa,CAAC1B,KAAK,EAAE;AAC1B,IAAA,GAAGE,KAAK;AACRiB,IAAAA,SAAS,EAAE,UAAU;AACrBQ,IAAAA,GAAG,EAAExB,YAAAA;AACP,GAAC,CAAC,CAAA;AACJ,CACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Status.mjs","sources":["../../../../src/components/Status/Status.tsx"],"sourcesContent":["import React, { type CSSProperties, forwardRef, memo } from 'react'\n\nimport { LockIcon, MoonFilledIcon } from '@channel.io/bezier-icons'\nimport classNames from 'classnames'\n\nimport { type SemanticColor } from '~/src/types/tokens'\nimport { cssVar } from '~/src/utils/style'\n\nimport { Icon } from '~/src/components/Icon'\n\nimport { type StatusProps, type StatusType } from './Status.types'\n\nimport styles from './Status.module.scss'\n\nconst statusTypesWithIcon: Readonly<StatusType[]> = [\n 'online-crescent',\n 'offline-crescent',\n 'lock',\n]\n\nconst statusColor: Readonly<Record<StatusType, SemanticColor>> = {\n online: 'bgtxt-green-normal',\n offline: 'bg-black-dark',\n 'online-crescent': 'bgtxt-green-normal',\n 'offline-crescent': 'bgtxt-yellow-normal',\n lock: 'txt-black-darker',\n}\n\n/**\n * `Status` is a component to indicate user status.\n */\nexport const Status = memo(\n forwardRef<HTMLDivElement, StatusProps>(function Status(\n { type, size = 'm', style, className, ...rest },\n forwardedRef\n ) {\n const withIcon = statusTypesWithIcon.includes(type)\n const backgroundColor = withIcon ? 'bg-white-high' : statusColor[type]\n\n return (\n <div\n ref={forwardedRef}\n style={\n {\n '--b-status-bg-color': cssVar(backgroundColor),\n ...style,\n } as CSSProperties\n }\n className={classNames(styles.Status, styles[`size-${size}`], className)}\n {...rest}\n >\n {withIcon && (\n <Icon\n source={type === 'lock' ? LockIcon : MoonFilledIcon}\n size={size === 'm' ? 'xxxs' : 'xs'}\n color={statusColor[type]}\n className={styles.Icon}\n />\n )}\n </div>\n )\n })\n)\n"],"names":["statusTypesWithIcon","statusColor","online","offline","lock","Status","memo","forwardRef","type","size","style","className","rest","forwardedRef","withIcon","includes","backgroundColor","React","createElement","Object","assign","ref","cssVar","classNames","styles","Icon","source","LockIcon","MoonFilledIcon","color"],"mappings":";;;;;;;AAcA,MAAMA,mBAA2C,GAAG,CAClD,iBAAiB,EACjB,kBAAkB,EAClB,MAAM,CACP,CAAA;AAED,MAAMC,WAAwD,GAAG;AAC/DC,EAAAA,MAAM,EAAE,oBAAoB;AAC5BC,EAAAA,OAAO,EAAE,eAAe;AACxB,EAAA,iBAAiB,EAAE,oBAAoB;AACvC,EAAA,kBAAkB,EAAE,qBAAqB;AACzCC,EAAAA,IAAI,EAAE,kBAAA;AACR,CAAC,CAAA;;AAED;AACA;AACA;AACO,MAAMC,MAAM,gBAAGC,IAAI,eACxBC,UAAU,CAA8B,SAASF,MAAMA,CACrD;EAAEG,IAAI;AAAEC,EAAAA,IAAI,GAAG,GAAG;EAAEC,KAAK;EAAEC,SAAS;EAAE,GAAGC,IAAAA;AAAK,CAAC,EAC/CC,YAAY,EACZ;AACA,EAAA,MAAMC,QAAQ,GAAGd,mBAAmB,CAACe,QAAQ,CAACP,IAAI,CAAC,CAAA;EACnD,MAAMQ,eAAe,GAAGF,QAAQ,GAAG,eAAe,GAAGb,WAAW,CAACO,IAAI,CAAC,CAAA;AAEtE,EAAA,oBACES,cAAA,CAAAC,aAAA,CAAAC,KAAAA,EAAAA,MAAA,CAAAC,MAAA,CAAA;AACEC,IAAAA,GAAG,EAAER,YAAa;AAClBH,IAAAA,KAAK,EACH;AACE,MAAA,qBAAqB,EAAEY,MAAM,CAACN,eAAe,CAAC;MAC9C,GAAGN,KAAAA;KAEN;AACDC,IAAAA,SAAS,EAAEY,UAAU,CAACC,MAAM,CAACnB,MAAM,EAAEmB,MAAM,CAAE,CAAOf,KAAAA,EAAAA,IAAK,CAAC,CAAA,CAAC,EAAEE,SAAS,CAAA;GAClEC,EAAAA,IAAI,GAEPE,QAAQ,iBACPG,cAAA,CAAAC,aAAA,CAACO,IAAI,EAAA;AACHC,IAAAA,MAAM,EAAElB,IAAI,KAAK,MAAM,GAAGmB,QAAQ,GAAGC,cAAe;AACpDnB,IAAAA,IAAI,EAAEA,IAAI,KAAK,GAAG,GAAG,MAAM,GAAG,IAAK;AACnCoB,IAAAA,KAAK,EAAE5B,WAAW,CAACO,IAAI,CAAE;IACzBG,SAAS,EAAEa,MAAM,CAACC,IAAAA;AAAK,GACxB,CAEA,CAAC,CAAA;AAEV,CAAC,CACH;;;;"}
1
+ {"version":3,"file":"Status.mjs","sources":["../../../../src/components/Status/Status.tsx"],"sourcesContent":["import React, { type CSSProperties, forwardRef, memo } from 'react'\n\nimport { LockIcon, MoonFilledIcon } from '@channel.io/bezier-icons'\nimport classNames from 'classnames'\n\nimport { type SemanticColor } from '~/src/types/tokens'\nimport { cssVar } from '~/src/utils/style'\n\nimport { Icon } from '~/src/components/Icon'\n\nimport { type StatusProps, type StatusType } from './Status.types'\n\nimport styles from './Status.module.scss'\n\nconst statusTypesWithIcon: Readonly<StatusType[]> = [\n 'online-crescent',\n 'offline-crescent',\n 'lock',\n]\n\nconst statusColor: Readonly<Record<StatusType, SemanticColor>> = {\n online: 'bgtxt-green-normal',\n offline: 'bg-black-dark',\n 'online-crescent': 'bgtxt-green-normal',\n 'offline-crescent': 'bgtxt-yellow-normal',\n lock: 'txt-black-darker',\n}\n\n/**\n * `Status` is a component to indicate user status.\n */\nexport const Status = memo(\n forwardRef<HTMLDivElement, StatusProps>(function Status(\n { type, size = 'm', style, className, ...rest },\n forwardedRef\n ) {\n const withIcon = statusTypesWithIcon.includes(type)\n const backgroundColor = withIcon ? 'bg-white-high' : statusColor[type]\n\n return (\n <div\n ref={forwardedRef}\n style={\n {\n '--b-status-bg-color': cssVar(backgroundColor),\n ...style,\n } as CSSProperties\n }\n className={classNames(styles.Status, styles[`size-${size}`], className)}\n {...rest}\n >\n {withIcon && (\n <Icon\n source={type === 'lock' ? LockIcon : MoonFilledIcon}\n size={size === 'm' ? 'xxxs' : 'xs'}\n color={statusColor[type]}\n className={styles.Icon}\n />\n )}\n </div>\n )\n })\n)\n"],"names":["statusTypesWithIcon","statusColor","online","offline","lock","Status","memo","forwardRef","type","size","style","className","rest","forwardedRef","withIcon","includes","backgroundColor","React","createElement","Object","assign","ref","cssVar","classNames","styles","Icon","source","LockIcon","MoonFilledIcon","color"],"mappings":";;;;;;;AAcA,MAAMA,mBAA2C,GAAG,CAClD,iBAAiB,EACjB,kBAAkB,EAClB,MAAM,CACP,CAAA;AAED,MAAMC,WAAwD,GAAG;AAC/DC,EAAAA,MAAM,EAAE,oBAAoB;AAC5BC,EAAAA,OAAO,EAAE,eAAe;AACxB,EAAA,iBAAiB,EAAE,oBAAoB;AACvC,EAAA,kBAAkB,EAAE,qBAAqB;AACzCC,EAAAA,IAAI,EAAE,kBAAA;AACR,CAAC,CAAA;;AAED;AACA;AACA;AACO,MAAMC,MAAM,gBAAGC,IAAI,eACxBC,UAAU,CAA8B,SAASF,MAAMA,CACrD;EAAEG,IAAI;AAAEC,EAAAA,IAAI,GAAG,GAAG;EAAEC,KAAK;EAAEC,SAAS;EAAE,GAAGC,IAAAA;AAAK,CAAC,EAC/CC,YAAY,EACZ;AACA,EAAA,MAAMC,QAAQ,GAAGd,mBAAmB,CAACe,QAAQ,CAACP,IAAI,CAAC,CAAA;EACnD,MAAMQ,eAAe,GAAGF,QAAQ,GAAG,eAAe,GAAGb,WAAW,CAACO,IAAI,CAAC,CAAA;AAEtE,EAAA,oBACES,cAAA,CAAAC,aAAA,CAAAC,KAAAA,EAAAA,MAAA,CAAAC,MAAA,CAAA;AACEC,IAAAA,GAAG,EAAER,YAAa;AAClBH,IAAAA,KAAK,EACH;AACE,MAAA,qBAAqB,EAAEY,MAAM,CAACN,eAAe,CAAC;MAC9C,GAAGN,KAAAA;KAEN;AACDC,IAAAA,SAAS,EAAEY,UAAU,CAACC,MAAM,CAACnB,MAAM,EAAEmB,MAAM,CAAC,CAAQf,KAAAA,EAAAA,IAAI,CAAE,CAAA,CAAC,EAAEE,SAAS,CAAA;GAClEC,EAAAA,IAAI,GAEPE,QAAQ,iBACPG,cAAA,CAAAC,aAAA,CAACO,IAAI,EAAA;AACHC,IAAAA,MAAM,EAAElB,IAAI,KAAK,MAAM,GAAGmB,QAAQ,GAAGC,cAAe;AACpDnB,IAAAA,IAAI,EAAEA,IAAI,KAAK,GAAG,GAAG,MAAM,GAAG,IAAK;AACnCoB,IAAAA,KAAK,EAAE5B,WAAW,CAACO,IAAI,CAAE;IACzBG,SAAS,EAAEa,MAAM,CAACC,IAAAA;AAAK,GACxB,CAEA,CAAC,CAAA;AAEV,CAAC,CACH;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Switch.mjs","sources":["../../../../src/components/Switch/Switch.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\n\nimport * as SwitchPrimitive from '@radix-ui/react-switch'\nimport classNames from 'classnames'\n\nimport { BaseButton } from '~/src/components/BaseButton'\nimport { useFormFieldProps } from '~/src/components/FormControl'\n\nimport { type SwitchProps } from './Switch.types'\n\nimport styles from './Switch.module.scss'\n\nexport const SWITCH_TEST_ID = 'bezier-switch'\n\n/**\n * `Switch` is an input component where user can toggle checked state of the element.\n * @example\n * ```tsx\n * <Switch\n * size=\"m\"\n * checked\n * />\n * ```\n */\nexport const Switch = forwardRef<HTMLButtonElement, SwitchProps>(\n function Switch(\n {\n checked,\n defaultChecked = false,\n onCheckedChange,\n size = 'm',\n className,\n ...rest\n },\n forwardedRef\n ) {\n const { disabled, required, hasError, ...ownProps } =\n useFormFieldProps(rest)\n\n return (\n <SwitchPrimitive.Root\n asChild\n checked={checked}\n defaultChecked={defaultChecked}\n onCheckedChange={onCheckedChange}\n required={required}\n disabled={disabled}\n data-testid={SWITCH_TEST_ID}\n {...ownProps}\n >\n <BaseButton\n ref={forwardedRef}\n className={classNames(\n styles.Switch,\n styles[`size-${size}`],\n className\n )}\n >\n <SwitchPrimitive.Thumb asChild>\n <span className={styles.SwitchThumb} />\n </SwitchPrimitive.Thumb>\n </BaseButton>\n </SwitchPrimitive.Root>\n )\n }\n)\n"],"names":["SWITCH_TEST_ID","Switch","forwardRef","checked","defaultChecked","onCheckedChange","size","className","rest","forwardedRef","disabled","required","hasError","ownProps","useFormFieldProps","React","createElement","SwitchPrimitive","Object","assign","asChild","BaseButton","ref","classNames","styles","SwitchThumb"],"mappings":";;;;;;;AAYO,MAAMA,cAAc,GAAG,gBAAe;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;MACaC,MAAM,gBAAGC,UAAU,CAC9B,SAASD,MAAMA,CACb;EACEE,OAAO;AACPC,EAAAA,cAAc,GAAG,KAAK;EACtBC,eAAe;AACfC,EAAAA,IAAI,GAAG,GAAG;EACVC,SAAS;EACT,GAAGC,IAAAA;AACL,CAAC,EACDC,YAAY,EACZ;EACA,MAAM;IAAEC,QAAQ;IAAEC,QAAQ;IAAEC,QAAQ;IAAE,GAAGC,QAAAA;AAAS,GAAC,GACjDC,iBAAiB,CAACN,IAAI,CAAC,CAAA;EAEzB,oBACEO,cAAA,CAAAC,aAAA,CAACC,yCAAoB,EAAAC,MAAA,CAAAC,MAAA,CAAA;IACnBC,OAAO,EAAA,IAAA;AACPjB,IAAAA,OAAO,EAAEA,OAAQ;AACjBC,IAAAA,cAAc,EAAEA,cAAe;AAC/BC,IAAAA,eAAe,EAAEA,eAAgB;AACjCM,IAAAA,QAAQ,EAAEA,QAAS;AACnBD,IAAAA,QAAQ,EAAEA,QAAS;IACnB,aAAaV,EAAAA,cAAAA;AAAe,GAAA,EACxBa,QAAQ,CAEZE,eAAAA,cAAA,CAAAC,aAAA,CAACK,UAAU,EAAA;AACTC,IAAAA,GAAG,EAAEb,YAAa;AAClBF,IAAAA,SAAS,EAAEgB,UAAU,CACnBC,MAAM,CAACvB,MAAM,EACbuB,MAAM,CAAE,CAAOlB,KAAAA,EAAAA,IAAK,CAAC,CAAA,CAAC,EACtBC,SACF,CAAA;AAAE,GAAA,eAEFQ,cAAA,CAAAC,aAAA,CAACC,yCAAqB,EAAA;IAACG,OAAO,EAAA,IAAA;GAC5BL,eAAAA,cAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;IAAMT,SAAS,EAAEiB,MAAM,CAACC,WAAAA;GAAc,CACjB,CACb,CACQ,CAAC,CAAA;AAE3B,CACF;;;;"}
1
+ {"version":3,"file":"Switch.mjs","sources":["../../../../src/components/Switch/Switch.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\n\nimport * as SwitchPrimitive from '@radix-ui/react-switch'\nimport classNames from 'classnames'\n\nimport { BaseButton } from '~/src/components/BaseButton'\nimport { useFormFieldProps } from '~/src/components/FormControl'\n\nimport { type SwitchProps } from './Switch.types'\n\nimport styles from './Switch.module.scss'\n\nexport const SWITCH_TEST_ID = 'bezier-switch'\n\n/**\n * `Switch` is an input component where user can toggle checked state of the element.\n * @example\n * ```tsx\n * <Switch\n * size=\"m\"\n * checked\n * />\n * ```\n */\nexport const Switch = forwardRef<HTMLButtonElement, SwitchProps>(\n function Switch(\n {\n checked,\n defaultChecked = false,\n onCheckedChange,\n size = 'm',\n className,\n ...rest\n },\n forwardedRef\n ) {\n const { disabled, required, hasError, ...ownProps } =\n useFormFieldProps(rest)\n\n return (\n <SwitchPrimitive.Root\n asChild\n checked={checked}\n defaultChecked={defaultChecked}\n onCheckedChange={onCheckedChange}\n required={required}\n disabled={disabled}\n data-testid={SWITCH_TEST_ID}\n {...ownProps}\n >\n <BaseButton\n ref={forwardedRef}\n className={classNames(\n styles.Switch,\n styles[`size-${size}`],\n className\n )}\n >\n <SwitchPrimitive.Thumb asChild>\n <span className={styles.SwitchThumb} />\n </SwitchPrimitive.Thumb>\n </BaseButton>\n </SwitchPrimitive.Root>\n )\n }\n)\n"],"names":["SWITCH_TEST_ID","Switch","forwardRef","checked","defaultChecked","onCheckedChange","size","className","rest","forwardedRef","disabled","required","hasError","ownProps","useFormFieldProps","React","createElement","SwitchPrimitive","Object","assign","asChild","BaseButton","ref","classNames","styles","SwitchThumb"],"mappings":";;;;;;;AAYO,MAAMA,cAAc,GAAG,gBAAe;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;MACaC,MAAM,gBAAGC,UAAU,CAC9B,SAASD,MAAMA,CACb;EACEE,OAAO;AACPC,EAAAA,cAAc,GAAG,KAAK;EACtBC,eAAe;AACfC,EAAAA,IAAI,GAAG,GAAG;EACVC,SAAS;EACT,GAAGC,IAAAA;AACL,CAAC,EACDC,YAAY,EACZ;EACA,MAAM;IAAEC,QAAQ;IAAEC,QAAQ;IAAEC,QAAQ;IAAE,GAAGC,QAAAA;AAAS,GAAC,GACjDC,iBAAiB,CAACN,IAAI,CAAC,CAAA;EAEzB,oBACEO,cAAA,CAAAC,aAAA,CAACC,yCAAoB,EAAAC,MAAA,CAAAC,MAAA,CAAA;IACnBC,OAAO,EAAA,IAAA;AACPjB,IAAAA,OAAO,EAAEA,OAAQ;AACjBC,IAAAA,cAAc,EAAEA,cAAe;AAC/BC,IAAAA,eAAe,EAAEA,eAAgB;AACjCM,IAAAA,QAAQ,EAAEA,QAAS;AACnBD,IAAAA,QAAQ,EAAEA,QAAS;IACnB,aAAaV,EAAAA,cAAAA;AAAe,GAAA,EACxBa,QAAQ,CAEZE,eAAAA,cAAA,CAAAC,aAAA,CAACK,UAAU,EAAA;AACTC,IAAAA,GAAG,EAAEb,YAAa;AAClBF,IAAAA,SAAS,EAAEgB,UAAU,CACnBC,MAAM,CAACvB,MAAM,EACbuB,MAAM,CAAC,CAAQlB,KAAAA,EAAAA,IAAI,CAAE,CAAA,CAAC,EACtBC,SACF,CAAA;AAAE,GAAA,eAEFQ,cAAA,CAAAC,aAAA,CAACC,yCAAqB,EAAA;IAACG,OAAO,EAAA,IAAA;GAC5BL,eAAAA,cAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;IAAMT,SAAS,EAAEiB,MAAM,CAACC,WAAAA;GAAc,CACjB,CACb,CACQ,CAAC,CAAA;AAE3B,CACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Tabs.mjs","sources":["../../../../src/components/Tabs/Tabs.tsx"],"sourcesContent":["import React, { forwardRef, useMemo } from 'react'\n\nimport { OpenInNewIcon } from '@channel.io/bezier-icons'\nimport * as TabsPrimitive from '@radix-ui/react-tabs'\nimport * as ToolbarPrimitive from '@radix-ui/react-toolbar'\nimport classNames from 'classnames'\n\nimport { createContext } from '~/src/utils/react'\nimport { isNil } from '~/src/utils/type'\n\nimport { BaseButton } from '~/src/components/BaseButton'\nimport { Button } from '~/src/components/Button'\nimport { Icon } from '~/src/components/Icon'\nimport {\n type TabActionElement,\n type TabActionProps,\n type TabActionsProps,\n type TabContentProps,\n type TabItemProps,\n type TabItemsProps,\n type TabListContextValue,\n type TabListProps,\n type TabSize,\n type TabsProps,\n} from '~/src/components/Tabs/Tabs.types'\nimport { Text } from '~/src/components/Text'\n\nimport styles from './Tabs.module.scss'\n\n/**\n * `Tabs` is a set of layered section of content.\n *\n * `Tabs` is a context of the Tab-related components and gives accessibility properties to Tab-related components.\n * @example\n *\n * ```tsx\n * <Tabs>\n * <TabList>\n * <TabItems>\n * <TabItem />\n * <TabItems />\n * <TabActions>\n * <TabAction />\n * </TabActions>\n * </TabList>\n * <TabContent />\n * </Tabs>\n * ```\n */\n\nexport const Tabs = forwardRef<HTMLDivElement, TabsProps>(function Tabs(\n { className, activationMode = 'automatic', dir, children, ...rest },\n forwardedRef\n) {\n return (\n <TabsPrimitive.Root\n className={classNames(styles.Tabs, className)}\n activationMode={activationMode}\n ref={forwardedRef}\n dir={dir as 'ltr' | 'rtl'}\n {...rest}\n >\n {children}\n </TabsPrimitive.Root>\n )\n})\n\nconst [TabListContextProvider, useTabListContext] =\n createContext<TabListContextValue>({\n size: 'm',\n })\n\n/**\n * `TabList` gives size context to its children and decides the layout of `TabItems` and `TabActions`.\n */\nexport const TabList = forwardRef<HTMLDivElement, TabListProps>(\n function TabList({ className, children, size = 'm', ...rest }, forwardedRef) {\n const heightContextValue = useMemo(\n () => ({\n size,\n }),\n [size]\n )\n\n return (\n <TabListContextProvider value={heightContextValue}>\n <div\n className={classNames(\n styles.TabList,\n styles[`size-${size}`],\n className\n )}\n ref={forwardedRef}\n {...rest}\n >\n {children}\n </div>\n </TabListContextProvider>\n )\n }\n)\n\n/**\n * `TabItems` is a flex container which has `TabItem` flex items.\n */\nexport const TabItems = forwardRef<HTMLDivElement, TabItemsProps>(\n function TabItems({ className, children, ...rest }, forwardedRef) {\n return (\n <TabsPrimitive.TabsList\n className={classNames(styles.TabItems, className)}\n ref={forwardedRef}\n {...rest}\n >\n {children}\n </TabsPrimitive.TabsList>\n )\n }\n)\n\nfunction getButtonSizeBy(size: TabSize) {\n return (\n {\n l: 'l',\n m: 'm',\n s: 's',\n } as const\n )[size]\n}\n\n/**\n * `TabItem` is a button that activates its associated content.\n */\nexport const TabItem = forwardRef<HTMLButtonElement, TabItemProps>(\n function TabItem(\n { className, disabled, value, children, ...rest },\n forwardedRef\n ) {\n const { size } = useTabListContext()\n\n if (typeof children !== 'string') {\n return null\n }\n\n return (\n <TabsPrimitive.TabsTrigger\n disabled={disabled}\n value={value}\n asChild\n >\n <Button\n className={classNames(styles.TabItem, className)}\n disabled={disabled}\n text={children}\n size={getButtonSizeBy(size)}\n colorVariant=\"monochrome-light\"\n styleVariant=\"tertiary\"\n ref={forwardedRef}\n {...rest}\n />\n </TabsPrimitive.TabsTrigger>\n )\n }\n)\n\n/**\n * `TabContent` has content associated with `TabItem`.\n */\nexport const TabContent = forwardRef<HTMLDivElement, TabContentProps>(\n function TabContent({ children, value, ...rest }, forwardedRef) {\n return (\n <TabsPrimitive.Content\n value={value}\n ref={forwardedRef}\n {...rest}\n >\n {children}\n </TabsPrimitive.Content>\n )\n }\n)\n\n/**\n * `TabActions` is a flex container which has `TabAction` flex items.\n * It also gives accessibility properties to its children.\n */\nexport const TabActions = forwardRef<HTMLDivElement, TabActionsProps>(\n function TabActions({ className, dir, children, ...rest }, forwardedRef) {\n return (\n <ToolbarPrimitive.Root\n className={classNames(styles.TabActions, className)}\n aria-label=\"More actions\"\n ref={forwardedRef}\n dir={dir as 'ltr' | 'rtl'}\n {...rest}\n >\n {children}\n </ToolbarPrimitive.Root>\n )\n }\n)\n\nfunction getTypoBy(size: TabSize) {\n return (\n {\n l: '14',\n m: '14',\n s: '13',\n } as const\n )[size]\n}\n\nfunction getIconSizeBy(size: TabSize) {\n return (\n {\n l: 's',\n m: 'xs',\n s: 'xs',\n } as const\n )[size]\n}\n\n/**\n * `TabAction` is a button for more action to open a new link or navigate to a different url.\n * If it has `href` props, it should act as a link.\n */\nexport const TabAction = forwardRef<\n TabActionElement<string | undefined>,\n TabActionProps<string | undefined>\n>(function TabAction(\n { className: classNameProp, href, children, onClick, ...rest },\n forwardedRef\n) {\n const { size } = useTabListContext()\n const className = classNames(\n styles.TabAction,\n styles[`size-${size}`],\n classNameProp\n )\n\n return isNil(href) ? (\n <ToolbarPrimitive.Button\n asChild\n className={className}\n onClick={onClick}\n ref={forwardedRef}\n {...rest}\n >\n <BaseButton>\n <Text\n bold\n typo={getTypoBy(size)}\n >\n {children}\n </Text>\n </BaseButton>\n </ToolbarPrimitive.Button>\n ) : (\n <ToolbarPrimitive.Link\n className={className}\n href={href}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n // @ts-expect-error\n ref={forwardedRef}\n {...rest}\n >\n <Text\n bold\n typo={getTypoBy(size)}\n >\n {children}\n </Text>\n <Icon\n source={OpenInNewIcon}\n size={getIconSizeBy(size)}\n marginLeft={5}\n />\n </ToolbarPrimitive.Link>\n )\n}) as <Link extends string | undefined>(\n props: TabActionProps<Link> & {\n ref?: React.ForwardedRef<TabActionElement<Link>>\n }\n) => JSX.Element\n"],"names":["Tabs","forwardRef","className","activationMode","dir","children","rest","forwardedRef","React","createElement","TabsPrimitive","Object","assign","classNames","styles","ref","TabListContextProvider","useTabListContext","createContext","size","TabList","heightContextValue","useMemo","value","TabItems","getButtonSizeBy","l","m","s","TabItem","disabled","asChild","Button","text","colorVariant","styleVariant","TabContent","TabActions","ToolbarPrimitive","getTypoBy","getIconSizeBy","TabAction","classNameProp","href","onClick","isNil","BaseButton","Text","bold","typo","target","rel","Icon","source","OpenInNewIcon","marginLeft"],"mappings":";;;;;;;;;;;;;AA6BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;MAEaA,IAAI,gBAAGC,UAAU,CAA4B,SAASD,IAAIA,CACrE;EAAEE,SAAS;AAAEC,EAAAA,cAAc,GAAG,WAAW;EAAEC,GAAG;EAAEC,QAAQ;EAAE,GAAGC,IAAAA;AAAK,CAAC,EACnEC,YAAY,EACZ;EACA,oBACEC,cAAA,CAAAC,aAAA,CAACC,yCAAkB,EAAAC,MAAA,CAAAC,MAAA,CAAA;IACjBV,SAAS,EAAEW,UAAU,CAACC,MAAM,CAACd,IAAI,EAAEE,SAAS,CAAE;AAC9CC,IAAAA,cAAc,EAAEA,cAAe;AAC/BY,IAAAA,GAAG,EAAER,YAAa;AAClBH,IAAAA,GAAG,EAAEA,GAAAA;GACDE,EAAAA,IAAI,CAEPD,EAAAA,QACiB,CAAC,CAAA;AAEzB,CAAC,EAAC;AAEF,MAAM,CAACW,sBAAsB,EAAEC,iBAAiB,CAAC,GAC/CC,aAAa,CAAsB;AACjCC,EAAAA,IAAI,EAAE,GAAA;AACR,CAAC,CAAC,CAAA;;AAEJ;AACA;AACA;MACaC,OAAO,gBAAGnB,UAAU,CAC/B,SAASmB,OAAOA,CAAC;EAAElB,SAAS;EAAEG,QAAQ;AAAEc,EAAAA,IAAI,GAAG,GAAG;EAAE,GAAGb,IAAAA;AAAK,CAAC,EAAEC,YAAY,EAAE;AAC3E,EAAA,MAAMc,kBAAkB,GAAGC,OAAO,CAChC,OAAO;AACLH,IAAAA,IAAAA;AACF,GAAC,CAAC,EACF,CAACA,IAAI,CACP,CAAC,CAAA;AAED,EAAA,oBACEX,cAAA,CAAAC,aAAA,CAACO,sBAAsB,EAAA;AAACO,IAAAA,KAAK,EAAEF,kBAAAA;AAAmB,GAAA,eAChDb,cAAA,CAAAC,aAAA,CAAAE,KAAAA,EAAAA,MAAA,CAAAC,MAAA,CAAA;AACEV,IAAAA,SAAS,EAAEW,UAAU,CACnBC,MAAM,CAACM,OAAO,EACdN,MAAM,CAAE,QAAOK,IAAK,CAAA,CAAC,CAAC,EACtBjB,SACF,CAAE;AACFa,IAAAA,GAAG,EAAER,YAAAA;AAAa,GAAA,EACdD,IAAI,CAAA,EAEPD,QACE,CACiB,CAAC,CAAA;AAE7B,CACF,EAAC;;AAED;AACA;AACA;MACamB,QAAQ,gBAAGvB,UAAU,CAChC,SAASuB,QAAQA,CAAC;EAAEtB,SAAS;EAAEG,QAAQ;EAAE,GAAGC,IAAAA;AAAK,CAAC,EAAEC,YAAY,EAAE;EAChE,oBACEC,cAAA,CAAAC,aAAA,CAACC,yCAAsB,EAAAC,MAAA,CAAAC,MAAA,CAAA;IACrBV,SAAS,EAAEW,UAAU,CAACC,MAAM,CAACU,QAAQ,EAAEtB,SAAS,CAAE;AAClDa,IAAAA,GAAG,EAAER,YAAAA;GACDD,EAAAA,IAAI,CAEPD,EAAAA,QACqB,CAAC,CAAA;AAE7B,CACF,EAAC;AAED,SAASoB,eAAeA,CAACN,IAAa,EAAE;EACtC,OACE;AACEO,IAAAA,CAAC,EAAE,GAAG;AACNC,IAAAA,CAAC,EAAE,GAAG;AACNC,IAAAA,CAAC,EAAE,GAAA;GACJ,CACDT,IAAI,CAAC,CAAA;AACT,CAAA;;AAEA;AACA;AACA;MACaU,OAAO,gBAAG5B,UAAU,CAC/B,SAAS4B,OAAOA,CACd;EAAE3B,SAAS;EAAE4B,QAAQ;EAAEP,KAAK;EAAElB,QAAQ;EAAE,GAAGC,IAAAA;AAAK,CAAC,EACjDC,YAAY,EACZ;EACA,MAAM;AAAEY,IAAAA,IAAAA;GAAM,GAAGF,iBAAiB,EAAE,CAAA;AAEpC,EAAA,IAAI,OAAOZ,QAAQ,KAAK,QAAQ,EAAE;AAChC,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;AAEA,EAAA,oBACEG,cAAA,CAAAC,aAAA,CAACC,yCAAyB,EAAA;AACxBoB,IAAAA,QAAQ,EAAEA,QAAS;AACnBP,IAAAA,KAAK,EAAEA,KAAM;IACbQ,OAAO,EAAA,IAAA;GAEPvB,eAAAA,cAAA,CAAAC,aAAA,CAACuB,MAAM,EAAArB,MAAA,CAAAC,MAAA,CAAA;IACLV,SAAS,EAAEW,UAAU,CAACC,MAAM,CAACe,OAAO,EAAE3B,SAAS,CAAE;AACjD4B,IAAAA,QAAQ,EAAEA,QAAS;AACnBG,IAAAA,IAAI,EAAE5B,QAAS;AACfc,IAAAA,IAAI,EAAEM,eAAe,CAACN,IAAI,CAAE;AAC5Be,IAAAA,YAAY,EAAC,kBAAkB;AAC/BC,IAAAA,YAAY,EAAC,UAAU;AACvBpB,IAAAA,GAAG,EAAER,YAAAA;GACDD,EAAAA,IAAI,CACT,CACwB,CAAC,CAAA;AAEhC,CACF,EAAC;;AAED;AACA;AACA;MACa8B,UAAU,gBAAGnC,UAAU,CAClC,SAASmC,UAAUA,CAAC;EAAE/B,QAAQ;EAAEkB,KAAK;EAAE,GAAGjB,IAAAA;AAAK,CAAC,EAAEC,YAAY,EAAE;EAC9D,oBACEC,cAAA,CAAAC,aAAA,CAACC,yCAAqB,EAAAC,MAAA,CAAAC,MAAA,CAAA;AACpBW,IAAAA,KAAK,EAAEA,KAAM;AACbR,IAAAA,GAAG,EAAER,YAAAA;GACDD,EAAAA,IAAI,CAEPD,EAAAA,QACoB,CAAC,CAAA;AAE5B,CACF,EAAC;;AAED;AACA;AACA;AACA;MACagC,UAAU,gBAAGpC,UAAU,CAClC,SAASoC,UAAUA,CAAC;EAAEnC,SAAS;EAAEE,GAAG;EAAEC,QAAQ;EAAE,GAAGC,IAAAA;AAAK,CAAC,EAAEC,YAAY,EAAE;EACvE,oBACEC,cAAA,CAAAC,aAAA,CAAC6B,yCAAqB,EAAA3B,MAAA,CAAAC,MAAA,CAAA;IACpBV,SAAS,EAAEW,UAAU,CAACC,MAAM,CAACuB,UAAU,EAAEnC,SAAS,CAAE;AACpD,IAAA,YAAA,EAAW,cAAc;AACzBa,IAAAA,GAAG,EAAER,YAAa;AAClBH,IAAAA,GAAG,EAAEA,GAAAA;GACDE,EAAAA,IAAI,CAEPD,EAAAA,QACoB,CAAC,CAAA;AAE5B,CACF,EAAC;AAED,SAASkC,SAASA,CAACpB,IAAa,EAAE;EAChC,OACE;AACEO,IAAAA,CAAC,EAAE,IAAI;AACPC,IAAAA,CAAC,EAAE,IAAI;AACPC,IAAAA,CAAC,EAAE,IAAA;GACJ,CACDT,IAAI,CAAC,CAAA;AACT,CAAA;AAEA,SAASqB,aAAaA,CAACrB,IAAa,EAAE;EACpC,OACE;AACEO,IAAAA,CAAC,EAAE,GAAG;AACNC,IAAAA,CAAC,EAAE,IAAI;AACPC,IAAAA,CAAC,EAAE,IAAA;GACJ,CACDT,IAAI,CAAC,CAAA;AACT,CAAA;;AAEA;AACA;AACA;AACA;MACasB,SAAS,gBAAGxC,UAAU,CAGjC,SAASwC,SAASA,CAClB;AAAEvC,EAAAA,SAAS,EAAEwC,aAAa;EAAEC,IAAI;EAAEtC,QAAQ;EAAEuC,OAAO;EAAE,GAAGtC,IAAAA;AAAK,CAAC,EAC9DC,YAAY,EACZ;EACA,MAAM;AAAEY,IAAAA,IAAAA;GAAM,GAAGF,iBAAiB,EAAE,CAAA;AACpC,EAAA,MAAMf,SAAS,GAAGW,UAAU,CAC1BC,MAAM,CAAC2B,SAAS,EAChB3B,MAAM,CAAE,QAAOK,IAAK,CAAA,CAAC,CAAC,EACtBuB,aACF,CAAC,CAAA;AAED,EAAA,OAAOG,KAAK,CAACF,IAAI,CAAC,gBAChBnC,cAAA,CAAAC,aAAA,CAAC6B,yCAAuB,EAAA3B,MAAA,CAAAC,MAAA,CAAA;IACtBmB,OAAO,EAAA,IAAA;AACP7B,IAAAA,SAAS,EAAEA,SAAU;AACrB0C,IAAAA,OAAO,EAAEA,OAAQ;AACjB7B,IAAAA,GAAG,EAAER,YAAAA;AAAa,GAAA,EACdD,IAAI,CAAA,eAERE,cAAA,CAAAC,aAAA,CAACqC,UAAU,EAAA,IAAA,eACTtC,cAAA,CAAAC,aAAA,CAACsC,IAAI,EAAA;IACHC,IAAI,EAAA,IAAA;IACJC,IAAI,EAAEV,SAAS,CAACpB,IAAI,CAAA;AAAE,GAAA,EAErBd,QACG,CACI,CACW,CAAC,gBAE1BG,cAAA,CAAAC,aAAA,CAAC6B,yCAAqB,EAAA3B,MAAA,CAAAC,MAAA,CAAA;AACpBV,IAAAA,SAAS,EAAEA,SAAU;AACrByC,IAAAA,IAAI,EAAEA,IAAK;AACXO,IAAAA,MAAM,EAAC,QAAQ;AACfC,IAAAA,GAAG,EAAC,qBAAA;AACJ;AAAA;AACApC,IAAAA,GAAG,EAAER,YAAAA;AAAa,GAAA,EACdD,IAAI,CAERE,eAAAA,cAAA,CAAAC,aAAA,CAACsC,IAAI,EAAA;IACHC,IAAI,EAAA,IAAA;IACJC,IAAI,EAAEV,SAAS,CAACpB,IAAI,CAAA;AAAE,GAAA,EAErBd,QACG,CAAC,eACPG,cAAA,CAAAC,aAAA,CAAC2C,IAAI,EAAA;AACHC,IAAAA,MAAM,EAAEC,aAAc;AACtBnC,IAAAA,IAAI,EAAEqB,aAAa,CAACrB,IAAI,CAAE;AAC1BoC,IAAAA,UAAU,EAAE,CAAA;AAAE,GACf,CACoB,CACxB,CAAA;AACH,CAAC;;;;"}
1
+ {"version":3,"file":"Tabs.mjs","sources":["../../../../src/components/Tabs/Tabs.tsx"],"sourcesContent":["import React, { forwardRef, useMemo } from 'react'\n\nimport { OpenInNewIcon } from '@channel.io/bezier-icons'\nimport * as TabsPrimitive from '@radix-ui/react-tabs'\nimport * as ToolbarPrimitive from '@radix-ui/react-toolbar'\nimport classNames from 'classnames'\n\nimport { createContext } from '~/src/utils/react'\nimport { isNil } from '~/src/utils/type'\n\nimport { BaseButton } from '~/src/components/BaseButton'\nimport { Button } from '~/src/components/Button'\nimport { Icon } from '~/src/components/Icon'\nimport {\n type TabActionElement,\n type TabActionProps,\n type TabActionsProps,\n type TabContentProps,\n type TabItemProps,\n type TabItemsProps,\n type TabListContextValue,\n type TabListProps,\n type TabSize,\n type TabsProps,\n} from '~/src/components/Tabs/Tabs.types'\nimport { Text } from '~/src/components/Text'\n\nimport styles from './Tabs.module.scss'\n\n/**\n * `Tabs` is a set of layered section of content.\n *\n * `Tabs` is a context of the Tab-related components and gives accessibility properties to Tab-related components.\n * @example\n *\n * ```tsx\n * <Tabs>\n * <TabList>\n * <TabItems>\n * <TabItem />\n * <TabItems />\n * <TabActions>\n * <TabAction />\n * </TabActions>\n * </TabList>\n * <TabContent />\n * </Tabs>\n * ```\n */\n\nexport const Tabs = forwardRef<HTMLDivElement, TabsProps>(function Tabs(\n { className, activationMode = 'automatic', dir, children, ...rest },\n forwardedRef\n) {\n return (\n <TabsPrimitive.Root\n className={classNames(styles.Tabs, className)}\n activationMode={activationMode}\n ref={forwardedRef}\n dir={dir as 'ltr' | 'rtl'}\n {...rest}\n >\n {children}\n </TabsPrimitive.Root>\n )\n})\n\nconst [TabListContextProvider, useTabListContext] =\n createContext<TabListContextValue>({\n size: 'm',\n })\n\n/**\n * `TabList` gives size context to its children and decides the layout of `TabItems` and `TabActions`.\n */\nexport const TabList = forwardRef<HTMLDivElement, TabListProps>(\n function TabList({ className, children, size = 'm', ...rest }, forwardedRef) {\n const heightContextValue = useMemo(\n () => ({\n size,\n }),\n [size]\n )\n\n return (\n <TabListContextProvider value={heightContextValue}>\n <div\n className={classNames(\n styles.TabList,\n styles[`size-${size}`],\n className\n )}\n ref={forwardedRef}\n {...rest}\n >\n {children}\n </div>\n </TabListContextProvider>\n )\n }\n)\n\n/**\n * `TabItems` is a flex container which has `TabItem` flex items.\n */\nexport const TabItems = forwardRef<HTMLDivElement, TabItemsProps>(\n function TabItems({ className, children, ...rest }, forwardedRef) {\n return (\n <TabsPrimitive.TabsList\n className={classNames(styles.TabItems, className)}\n ref={forwardedRef}\n {...rest}\n >\n {children}\n </TabsPrimitive.TabsList>\n )\n }\n)\n\nfunction getButtonSizeBy(size: TabSize) {\n return (\n {\n l: 'l',\n m: 'm',\n s: 's',\n } as const\n )[size]\n}\n\n/**\n * `TabItem` is a button that activates its associated content.\n */\nexport const TabItem = forwardRef<HTMLButtonElement, TabItemProps>(\n function TabItem(\n { className, disabled, value, children, ...rest },\n forwardedRef\n ) {\n const { size } = useTabListContext()\n\n if (typeof children !== 'string') {\n return null\n }\n\n return (\n <TabsPrimitive.TabsTrigger\n disabled={disabled}\n value={value}\n asChild\n >\n <Button\n className={classNames(styles.TabItem, className)}\n disabled={disabled}\n text={children}\n size={getButtonSizeBy(size)}\n colorVariant=\"monochrome-light\"\n styleVariant=\"tertiary\"\n ref={forwardedRef}\n {...rest}\n />\n </TabsPrimitive.TabsTrigger>\n )\n }\n)\n\n/**\n * `TabContent` has content associated with `TabItem`.\n */\nexport const TabContent = forwardRef<HTMLDivElement, TabContentProps>(\n function TabContent({ children, value, ...rest }, forwardedRef) {\n return (\n <TabsPrimitive.Content\n value={value}\n ref={forwardedRef}\n {...rest}\n >\n {children}\n </TabsPrimitive.Content>\n )\n }\n)\n\n/**\n * `TabActions` is a flex container which has `TabAction` flex items.\n * It also gives accessibility properties to its children.\n */\nexport const TabActions = forwardRef<HTMLDivElement, TabActionsProps>(\n function TabActions({ className, dir, children, ...rest }, forwardedRef) {\n return (\n <ToolbarPrimitive.Root\n className={classNames(styles.TabActions, className)}\n aria-label=\"More actions\"\n ref={forwardedRef}\n dir={dir as 'ltr' | 'rtl'}\n {...rest}\n >\n {children}\n </ToolbarPrimitive.Root>\n )\n }\n)\n\nfunction getTypoBy(size: TabSize) {\n return (\n {\n l: '14',\n m: '14',\n s: '13',\n } as const\n )[size]\n}\n\nfunction getIconSizeBy(size: TabSize) {\n return (\n {\n l: 's',\n m: 'xs',\n s: 'xs',\n } as const\n )[size]\n}\n\n/**\n * `TabAction` is a button for more action to open a new link or navigate to a different url.\n * If it has `href` props, it should act as a link.\n */\nexport const TabAction = forwardRef<\n TabActionElement<string | undefined>,\n TabActionProps<string | undefined>\n>(function TabAction(\n { className: classNameProp, href, children, onClick, ...rest },\n forwardedRef\n) {\n const { size } = useTabListContext()\n const className = classNames(\n styles.TabAction,\n styles[`size-${size}`],\n classNameProp\n )\n\n return isNil(href) ? (\n <ToolbarPrimitive.Button\n asChild\n className={className}\n onClick={onClick}\n ref={forwardedRef}\n {...rest}\n >\n <BaseButton>\n <Text\n bold\n typo={getTypoBy(size)}\n >\n {children}\n </Text>\n </BaseButton>\n </ToolbarPrimitive.Button>\n ) : (\n <ToolbarPrimitive.Link\n className={className}\n href={href}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n // @ts-expect-error\n ref={forwardedRef}\n {...rest}\n >\n <Text\n bold\n typo={getTypoBy(size)}\n >\n {children}\n </Text>\n <Icon\n source={OpenInNewIcon}\n size={getIconSizeBy(size)}\n marginLeft={5}\n />\n </ToolbarPrimitive.Link>\n )\n}) as <Link extends string | undefined>(\n props: TabActionProps<Link> & {\n ref?: React.ForwardedRef<TabActionElement<Link>>\n }\n) => JSX.Element\n"],"names":["Tabs","forwardRef","className","activationMode","dir","children","rest","forwardedRef","React","createElement","TabsPrimitive","Object","assign","classNames","styles","ref","TabListContextProvider","useTabListContext","createContext","size","TabList","heightContextValue","useMemo","value","TabItems","getButtonSizeBy","l","m","s","TabItem","disabled","asChild","Button","text","colorVariant","styleVariant","TabContent","TabActions","ToolbarPrimitive","getTypoBy","getIconSizeBy","TabAction","classNameProp","href","onClick","isNil","BaseButton","Text","bold","typo","target","rel","Icon","source","OpenInNewIcon","marginLeft"],"mappings":";;;;;;;;;;;;;AA6BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;MAEaA,IAAI,gBAAGC,UAAU,CAA4B,SAASD,IAAIA,CACrE;EAAEE,SAAS;AAAEC,EAAAA,cAAc,GAAG,WAAW;EAAEC,GAAG;EAAEC,QAAQ;EAAE,GAAGC,IAAAA;AAAK,CAAC,EACnEC,YAAY,EACZ;EACA,oBACEC,cAAA,CAAAC,aAAA,CAACC,yCAAkB,EAAAC,MAAA,CAAAC,MAAA,CAAA;IACjBV,SAAS,EAAEW,UAAU,CAACC,MAAM,CAACd,IAAI,EAAEE,SAAS,CAAE;AAC9CC,IAAAA,cAAc,EAAEA,cAAe;AAC/BY,IAAAA,GAAG,EAAER,YAAa;AAClBH,IAAAA,GAAG,EAAEA,GAAAA;GACDE,EAAAA,IAAI,CAEPD,EAAAA,QACiB,CAAC,CAAA;AAEzB,CAAC,EAAC;AAEF,MAAM,CAACW,sBAAsB,EAAEC,iBAAiB,CAAC,GAC/CC,aAAa,CAAsB;AACjCC,EAAAA,IAAI,EAAE,GAAA;AACR,CAAC,CAAC,CAAA;;AAEJ;AACA;AACA;MACaC,OAAO,gBAAGnB,UAAU,CAC/B,SAASmB,OAAOA,CAAC;EAAElB,SAAS;EAAEG,QAAQ;AAAEc,EAAAA,IAAI,GAAG,GAAG;EAAE,GAAGb,IAAAA;AAAK,CAAC,EAAEC,YAAY,EAAE;AAC3E,EAAA,MAAMc,kBAAkB,GAAGC,OAAO,CAChC,OAAO;AACLH,IAAAA,IAAAA;AACF,GAAC,CAAC,EACF,CAACA,IAAI,CACP,CAAC,CAAA;AAED,EAAA,oBACEX,cAAA,CAAAC,aAAA,CAACO,sBAAsB,EAAA;AAACO,IAAAA,KAAK,EAAEF,kBAAAA;AAAmB,GAAA,eAChDb,cAAA,CAAAC,aAAA,CAAAE,KAAAA,EAAAA,MAAA,CAAAC,MAAA,CAAA;AACEV,IAAAA,SAAS,EAAEW,UAAU,CACnBC,MAAM,CAACM,OAAO,EACdN,MAAM,CAAC,QAAQK,IAAI,CAAA,CAAE,CAAC,EACtBjB,SACF,CAAE;AACFa,IAAAA,GAAG,EAAER,YAAAA;AAAa,GAAA,EACdD,IAAI,CAAA,EAEPD,QACE,CACiB,CAAC,CAAA;AAE7B,CACF,EAAC;;AAED;AACA;AACA;MACamB,QAAQ,gBAAGvB,UAAU,CAChC,SAASuB,QAAQA,CAAC;EAAEtB,SAAS;EAAEG,QAAQ;EAAE,GAAGC,IAAAA;AAAK,CAAC,EAAEC,YAAY,EAAE;EAChE,oBACEC,cAAA,CAAAC,aAAA,CAACC,yCAAsB,EAAAC,MAAA,CAAAC,MAAA,CAAA;IACrBV,SAAS,EAAEW,UAAU,CAACC,MAAM,CAACU,QAAQ,EAAEtB,SAAS,CAAE;AAClDa,IAAAA,GAAG,EAAER,YAAAA;GACDD,EAAAA,IAAI,CAEPD,EAAAA,QACqB,CAAC,CAAA;AAE7B,CACF,EAAC;AAED,SAASoB,eAAeA,CAACN,IAAa,EAAE;EACtC,OACE;AACEO,IAAAA,CAAC,EAAE,GAAG;AACNC,IAAAA,CAAC,EAAE,GAAG;AACNC,IAAAA,CAAC,EAAE,GAAA;GACJ,CACDT,IAAI,CAAC,CAAA;AACT,CAAA;;AAEA;AACA;AACA;MACaU,OAAO,gBAAG5B,UAAU,CAC/B,SAAS4B,OAAOA,CACd;EAAE3B,SAAS;EAAE4B,QAAQ;EAAEP,KAAK;EAAElB,QAAQ;EAAE,GAAGC,IAAAA;AAAK,CAAC,EACjDC,YAAY,EACZ;EACA,MAAM;AAAEY,IAAAA,IAAAA;GAAM,GAAGF,iBAAiB,EAAE,CAAA;AAEpC,EAAA,IAAI,OAAOZ,QAAQ,KAAK,QAAQ,EAAE;AAChC,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;AAEA,EAAA,oBACEG,cAAA,CAAAC,aAAA,CAACC,yCAAyB,EAAA;AACxBoB,IAAAA,QAAQ,EAAEA,QAAS;AACnBP,IAAAA,KAAK,EAAEA,KAAM;IACbQ,OAAO,EAAA,IAAA;GAEPvB,eAAAA,cAAA,CAAAC,aAAA,CAACuB,MAAM,EAAArB,MAAA,CAAAC,MAAA,CAAA;IACLV,SAAS,EAAEW,UAAU,CAACC,MAAM,CAACe,OAAO,EAAE3B,SAAS,CAAE;AACjD4B,IAAAA,QAAQ,EAAEA,QAAS;AACnBG,IAAAA,IAAI,EAAE5B,QAAS;AACfc,IAAAA,IAAI,EAAEM,eAAe,CAACN,IAAI,CAAE;AAC5Be,IAAAA,YAAY,EAAC,kBAAkB;AAC/BC,IAAAA,YAAY,EAAC,UAAU;AACvBpB,IAAAA,GAAG,EAAER,YAAAA;GACDD,EAAAA,IAAI,CACT,CACwB,CAAC,CAAA;AAEhC,CACF,EAAC;;AAED;AACA;AACA;MACa8B,UAAU,gBAAGnC,UAAU,CAClC,SAASmC,UAAUA,CAAC;EAAE/B,QAAQ;EAAEkB,KAAK;EAAE,GAAGjB,IAAAA;AAAK,CAAC,EAAEC,YAAY,EAAE;EAC9D,oBACEC,cAAA,CAAAC,aAAA,CAACC,yCAAqB,EAAAC,MAAA,CAAAC,MAAA,CAAA;AACpBW,IAAAA,KAAK,EAAEA,KAAM;AACbR,IAAAA,GAAG,EAAER,YAAAA;GACDD,EAAAA,IAAI,CAEPD,EAAAA,QACoB,CAAC,CAAA;AAE5B,CACF,EAAC;;AAED;AACA;AACA;AACA;MACagC,UAAU,gBAAGpC,UAAU,CAClC,SAASoC,UAAUA,CAAC;EAAEnC,SAAS;EAAEE,GAAG;EAAEC,QAAQ;EAAE,GAAGC,IAAAA;AAAK,CAAC,EAAEC,YAAY,EAAE;EACvE,oBACEC,cAAA,CAAAC,aAAA,CAAC6B,yCAAqB,EAAA3B,MAAA,CAAAC,MAAA,CAAA;IACpBV,SAAS,EAAEW,UAAU,CAACC,MAAM,CAACuB,UAAU,EAAEnC,SAAS,CAAE;AACpD,IAAA,YAAA,EAAW,cAAc;AACzBa,IAAAA,GAAG,EAAER,YAAa;AAClBH,IAAAA,GAAG,EAAEA,GAAAA;GACDE,EAAAA,IAAI,CAEPD,EAAAA,QACoB,CAAC,CAAA;AAE5B,CACF,EAAC;AAED,SAASkC,SAASA,CAACpB,IAAa,EAAE;EAChC,OACE;AACEO,IAAAA,CAAC,EAAE,IAAI;AACPC,IAAAA,CAAC,EAAE,IAAI;AACPC,IAAAA,CAAC,EAAE,IAAA;GACJ,CACDT,IAAI,CAAC,CAAA;AACT,CAAA;AAEA,SAASqB,aAAaA,CAACrB,IAAa,EAAE;EACpC,OACE;AACEO,IAAAA,CAAC,EAAE,GAAG;AACNC,IAAAA,CAAC,EAAE,IAAI;AACPC,IAAAA,CAAC,EAAE,IAAA;GACJ,CACDT,IAAI,CAAC,CAAA;AACT,CAAA;;AAEA;AACA;AACA;AACA;MACasB,SAAS,gBAAGxC,UAAU,CAGjC,SAASwC,SAASA,CAClB;AAAEvC,EAAAA,SAAS,EAAEwC,aAAa;EAAEC,IAAI;EAAEtC,QAAQ;EAAEuC,OAAO;EAAE,GAAGtC,IAAAA;AAAK,CAAC,EAC9DC,YAAY,EACZ;EACA,MAAM;AAAEY,IAAAA,IAAAA;GAAM,GAAGF,iBAAiB,EAAE,CAAA;AACpC,EAAA,MAAMf,SAAS,GAAGW,UAAU,CAC1BC,MAAM,CAAC2B,SAAS,EAChB3B,MAAM,CAAC,QAAQK,IAAI,CAAA,CAAE,CAAC,EACtBuB,aACF,CAAC,CAAA;AAED,EAAA,OAAOG,KAAK,CAACF,IAAI,CAAC,gBAChBnC,cAAA,CAAAC,aAAA,CAAC6B,yCAAuB,EAAA3B,MAAA,CAAAC,MAAA,CAAA;IACtBmB,OAAO,EAAA,IAAA;AACP7B,IAAAA,SAAS,EAAEA,SAAU;AACrB0C,IAAAA,OAAO,EAAEA,OAAQ;AACjB7B,IAAAA,GAAG,EAAER,YAAAA;AAAa,GAAA,EACdD,IAAI,CAAA,eAERE,cAAA,CAAAC,aAAA,CAACqC,UAAU,EAAA,IAAA,eACTtC,cAAA,CAAAC,aAAA,CAACsC,IAAI,EAAA;IACHC,IAAI,EAAA,IAAA;IACJC,IAAI,EAAEV,SAAS,CAACpB,IAAI,CAAA;AAAE,GAAA,EAErBd,QACG,CACI,CACW,CAAC,gBAE1BG,cAAA,CAAAC,aAAA,CAAC6B,yCAAqB,EAAA3B,MAAA,CAAAC,MAAA,CAAA;AACpBV,IAAAA,SAAS,EAAEA,SAAU;AACrByC,IAAAA,IAAI,EAAEA,IAAK;AACXO,IAAAA,MAAM,EAAC,QAAQ;AACfC,IAAAA,GAAG,EAAC,qBAAA;AACJ;AAAA;AACApC,IAAAA,GAAG,EAAER,YAAAA;AAAa,GAAA,EACdD,IAAI,CAERE,eAAAA,cAAA,CAAAC,aAAA,CAACsC,IAAI,EAAA;IACHC,IAAI,EAAA,IAAA;IACJC,IAAI,EAAEV,SAAS,CAACpB,IAAI,CAAA;AAAE,GAAA,EAErBd,QACG,CAAC,eACPG,cAAA,CAAAC,aAAA,CAAC2C,IAAI,EAAA;AACHC,IAAAA,MAAM,EAAEC,aAAc;AACtBnC,IAAAA,IAAI,EAAEqB,aAAa,CAACrB,IAAI,CAAE;AAC1BoC,IAAAA,UAAU,EAAE,CAAA;AAAE,GACf,CACoB,CACxB,CAAA;AACH,CAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Text.mjs","sources":["../../../../src/components/Text/Text.tsx"],"sourcesContent":["import { createElement, forwardRef } from 'react'\n\nimport classNames from 'classnames'\n\nimport { getMarginStyles, splitByMarginProps } from '~/src/types/props-helpers'\nimport { tokenCssVar } from '~/src/utils/style'\nimport { isNumber } from '~/src/utils/type'\n\nimport { type TextProps } from './Text.types'\n\nimport styles from './Text.module.scss'\n\n/**\n * `Text` is a component for representing the typography of a design system.\n * @example\n *\n * ```tsx\n * <Text\n * typo=\"15\"\n * color=\"txt-black-darkest\"\n * >\n * Hello, Channel!\n * </Text>\n * ```\n */\nexport const Text = forwardRef<HTMLElement, TextProps>(\n function Text(props, forwardedRef) {\n const [marginProps, marginRest] = splitByMarginProps(props)\n const marginStyles = getMarginStyles(marginProps)\n\n const {\n children,\n style,\n className,\n as = 'span',\n typo = '15',\n color,\n bold,\n italic,\n truncated,\n align,\n ...rest\n } = marginRest\n const isMultiLineTruncated = isNumber(truncated) && truncated >= 1\n\n return createElement(\n as,\n {\n ref: forwardedRef,\n style: {\n '--b-text-color': tokenCssVar(color),\n '--b-text-line-clamp': isMultiLineTruncated ? truncated : undefined,\n ...marginStyles.style,\n ...style,\n },\n className: classNames(\n styles.Text,\n styles[`typo-${typo}`],\n bold && styles.bold,\n italic && styles.italic,\n truncated === true\n ? styles.truncated\n : isMultiLineTruncated && styles['multi-line-truncated'],\n align && styles[`align-${align}`],\n marginStyles.className,\n className\n ),\n 'data-testid': 'bezier-text',\n ...rest,\n },\n children\n )\n }\n)\n"],"names":["Text","forwardRef","props","forwardedRef","marginProps","marginRest","splitByMarginProps","marginStyles","getMarginStyles","children","style","className","as","typo","color","bold","italic","truncated","align","rest","isMultiLineTruncated","isNumber","createElement","ref","tokenCssVar","undefined","classNames","styles"],"mappings":";;;;;;;AAYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,IAAI,gBAAGC,UAAU,CAC5B,SAASD,IAAIA,CAACE,KAAK,EAAEC,YAAY,EAAE;EACjC,MAAM,CAACC,WAAW,EAAEC,UAAU,CAAC,GAAGC,kBAAkB,CAACJ,KAAK,CAAC,CAAA;AAC3D,EAAA,MAAMK,YAAY,GAAGC,eAAe,CAACJ,WAAW,CAAC,CAAA;EAEjD,MAAM;IACJK,QAAQ;IACRC,KAAK;IACLC,SAAS;AACTC,IAAAA,EAAE,GAAG,MAAM;AACXC,IAAAA,IAAI,GAAG,IAAI;IACXC,KAAK;IACLC,IAAI;IACJC,MAAM;IACNC,SAAS;IACTC,KAAK;IACL,GAAGC,IAAAA;AACL,GAAC,GAAGd,UAAU,CAAA;EACd,MAAMe,oBAAoB,GAAGC,QAAQ,CAACJ,SAAS,CAAC,IAAIA,SAAS,IAAI,CAAC,CAAA;EAElE,oBAAOK,aAAa,CAClBV,EAAE,EACF;AACEW,IAAAA,GAAG,EAAEpB,YAAY;AACjBO,IAAAA,KAAK,EAAE;AACL,MAAA,gBAAgB,EAAEc,WAAW,CAACV,KAAK,CAAC;AACpC,MAAA,qBAAqB,EAAEM,oBAAoB,GAAGH,SAAS,GAAGQ,SAAS;MACnE,GAAGlB,YAAY,CAACG,KAAK;MACrB,GAAGA,KAAAA;KACJ;IACDC,SAAS,EAAEe,UAAU,CACnBC,MAAM,CAAC3B,IAAI,EACX2B,MAAM,CAAE,CAAA,KAAA,EAAOd,IAAK,CAAA,CAAC,CAAC,EACtBE,IAAI,IAAIY,MAAM,CAACZ,IAAI,EACnBC,MAAM,IAAIW,MAAM,CAACX,MAAM,EACvBC,SAAS,KAAK,IAAI,GACdU,MAAM,CAACV,SAAS,GAChBG,oBAAoB,IAAIO,MAAM,CAAC,sBAAsB,CAAC,EAC1DT,KAAK,IAAIS,MAAM,CAAE,CAAQT,MAAAA,EAAAA,KAAM,CAAC,CAAA,CAAC,EACjCX,YAAY,CAACI,SAAS,EACtBA,SACF,CAAC;AACD,IAAA,aAAa,EAAE,aAAa;IAC5B,GAAGQ,IAAAA;GACJ,EACDV,QACF,CAAC,CAAA;AACH,CACF;;;;"}
1
+ {"version":3,"file":"Text.mjs","sources":["../../../../src/components/Text/Text.tsx"],"sourcesContent":["import { createElement, forwardRef } from 'react'\n\nimport classNames from 'classnames'\n\nimport { getMarginStyles, splitByMarginProps } from '~/src/types/props-helpers'\nimport { tokenCssVar } from '~/src/utils/style'\nimport { isNumber } from '~/src/utils/type'\n\nimport { type TextProps } from './Text.types'\n\nimport styles from './Text.module.scss'\n\n/**\n * `Text` is a component for representing the typography of a design system.\n * @example\n *\n * ```tsx\n * <Text\n * typo=\"15\"\n * color=\"txt-black-darkest\"\n * >\n * Hello, Channel!\n * </Text>\n * ```\n */\nexport const Text = forwardRef<HTMLElement, TextProps>(\n function Text(props, forwardedRef) {\n const [marginProps, marginRest] = splitByMarginProps(props)\n const marginStyles = getMarginStyles(marginProps)\n\n const {\n children,\n style,\n className,\n as = 'span',\n typo = '15',\n color,\n bold,\n italic,\n truncated,\n align,\n ...rest\n } = marginRest\n const isMultiLineTruncated = isNumber(truncated) && truncated >= 1\n\n return createElement(\n as,\n {\n ref: forwardedRef,\n style: {\n '--b-text-color': tokenCssVar(color),\n '--b-text-line-clamp': isMultiLineTruncated ? truncated : undefined,\n ...marginStyles.style,\n ...style,\n },\n className: classNames(\n styles.Text,\n styles[`typo-${typo}`],\n bold && styles.bold,\n italic && styles.italic,\n truncated === true\n ? styles.truncated\n : isMultiLineTruncated && styles['multi-line-truncated'],\n align && styles[`align-${align}`],\n marginStyles.className,\n className\n ),\n 'data-testid': 'bezier-text',\n ...rest,\n },\n children\n )\n }\n)\n"],"names":["Text","forwardRef","props","forwardedRef","marginProps","marginRest","splitByMarginProps","marginStyles","getMarginStyles","children","style","className","as","typo","color","bold","italic","truncated","align","rest","isMultiLineTruncated","isNumber","createElement","ref","tokenCssVar","undefined","classNames","styles"],"mappings":";;;;;;;AAYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,IAAI,gBAAGC,UAAU,CAC5B,SAASD,IAAIA,CAACE,KAAK,EAAEC,YAAY,EAAE;EACjC,MAAM,CAACC,WAAW,EAAEC,UAAU,CAAC,GAAGC,kBAAkB,CAACJ,KAAK,CAAC,CAAA;AAC3D,EAAA,MAAMK,YAAY,GAAGC,eAAe,CAACJ,WAAW,CAAC,CAAA;EAEjD,MAAM;IACJK,QAAQ;IACRC,KAAK;IACLC,SAAS;AACTC,IAAAA,EAAE,GAAG,MAAM;AACXC,IAAAA,IAAI,GAAG,IAAI;IACXC,KAAK;IACLC,IAAI;IACJC,MAAM;IACNC,SAAS;IACTC,KAAK;IACL,GAAGC,IAAAA;AACL,GAAC,GAAGd,UAAU,CAAA;EACd,MAAMe,oBAAoB,GAAGC,QAAQ,CAACJ,SAAS,CAAC,IAAIA,SAAS,IAAI,CAAC,CAAA;EAElE,oBAAOK,aAAa,CAClBV,EAAE,EACF;AACEW,IAAAA,GAAG,EAAEpB,YAAY;AACjBO,IAAAA,KAAK,EAAE;AACL,MAAA,gBAAgB,EAAEc,WAAW,CAACV,KAAK,CAAC;AACpC,MAAA,qBAAqB,EAAEM,oBAAoB,GAAGH,SAAS,GAAGQ,SAAS;MACnE,GAAGlB,YAAY,CAACG,KAAK;MACrB,GAAGA,KAAAA;KACJ;IACDC,SAAS,EAAEe,UAAU,CACnBC,MAAM,CAAC3B,IAAI,EACX2B,MAAM,CAAC,CAAA,KAAA,EAAQd,IAAI,CAAA,CAAE,CAAC,EACtBE,IAAI,IAAIY,MAAM,CAACZ,IAAI,EACnBC,MAAM,IAAIW,MAAM,CAACX,MAAM,EACvBC,SAAS,KAAK,IAAI,GACdU,MAAM,CAACV,SAAS,GAChBG,oBAAoB,IAAIO,MAAM,CAAC,sBAAsB,CAAC,EAC1DT,KAAK,IAAIS,MAAM,CAAC,CAAST,MAAAA,EAAAA,KAAK,CAAE,CAAA,CAAC,EACjCX,YAAY,CAACI,SAAS,EACtBA,SACF,CAAC;AACD,IAAA,aAAa,EAAE,aAAa;IAC5B,GAAGQ,IAAAA;GACJ,EACDV,QACF,CAAC,CAAA;AACH,CACF;;;;"}
@@ -1,6 +1,7 @@
1
- import React__default, { forwardRef, useRef, useLayoutEffect } from 'react';
1
+ import React__default, { forwardRef, useRef } from 'react';
2
2
  import classNames from '../../node_modules/classnames/index.mjs';
3
3
  import TextareaAutosize from '../../node_modules/react-textarea-autosize/dist/react-textarea-autosize.esm.mjs';
4
+ import { useIsomorphicLayoutEffect } from '../../hooks/useIsomorphicLayoutEffect.mjs';
4
5
  import { useKeyboardActionLockerWhileComposing, COMMON_IME_CONTROL_KEYS } from '../../hooks/useKeyboardActionLockerWhileComposing.mjs';
5
6
  import useMergeRefs from '../../hooks/useMergeRefs.mjs';
6
7
  import styles from './TextArea.module.scss.mjs';
@@ -33,7 +34,7 @@ const TextArea = /*#__PURE__*/forwardRef(function TextArea({
33
34
  onKeyDown,
34
35
  onKeyUp
35
36
  });
36
- useLayoutEffect(function initialAutoFocus() {
37
+ useIsomorphicLayoutEffect(function initialAutoFocus() {
37
38
  function setSelectionToEnd() {
38
39
  inputRef.current?.setSelectionRange(inputRef.current?.value.length, inputRef.current?.value.length);
39
40
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TextArea.mjs","sources":["../../../../src/components/TextArea/TextArea.tsx"],"sourcesContent":["import React, { forwardRef, useLayoutEffect, useRef } from 'react'\n\nimport classNames from 'classnames'\nimport TextareaAutosize from 'react-textarea-autosize'\n\nimport {\n COMMON_IME_CONTROL_KEYS,\n useKeyboardActionLockerWhileComposing,\n} from '~/src/hooks/useKeyboardActionLockerWhileComposing'\nimport useMergeRefs from '~/src/hooks/useMergeRefs'\n\nimport { useFormFieldProps } from '~/src/components/FormControl'\n\nimport type { TextAreaProps } from './TextArea.types'\n\nimport styles from './TextArea.module.scss'\n\nexport const TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>(\n function TextArea(\n {\n style,\n className,\n minRows = 6,\n maxRows = 6,\n autoFocus = false,\n value = '',\n onKeyDown,\n onKeyUp,\n ...rest\n },\n forwardedRef\n ) {\n const { disabled, readOnly, hasError, ...ownProps } =\n useFormFieldProps(rest)\n\n const inputRef = useRef<HTMLTextAreaElement | null>(null)\n const mergedInputRef = useMergeRefs(inputRef, forwardedRef)\n\n const { handleKeyDown, handleKeyUp } =\n useKeyboardActionLockerWhileComposing({\n keysToLock: COMMON_IME_CONTROL_KEYS,\n onKeyDown,\n onKeyUp,\n })\n\n useLayoutEffect(function initialAutoFocus() {\n function setSelectionToEnd() {\n inputRef.current?.setSelectionRange(\n inputRef.current?.value.length,\n inputRef.current?.value.length\n )\n }\n\n if (autoFocus) {\n inputRef.current?.focus()\n setSelectionToEnd()\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n return (\n <TextareaAutosize\n {...ownProps}\n style={style}\n className={classNames(styles.TextArea, className)}\n ref={mergedInputRef}\n value={value}\n disabled={disabled}\n readOnly={readOnly}\n maxRows={maxRows}\n minRows={minRows}\n data-testid=\"bezier-text-area\"\n onKeyDown={handleKeyDown}\n onKeyUp={handleKeyUp}\n />\n )\n }\n)\n"],"names":["TextArea","forwardRef","style","className","minRows","maxRows","autoFocus","value","onKeyDown","onKeyUp","rest","forwardedRef","disabled","readOnly","hasError","ownProps","useFormFieldProps","inputRef","useRef","mergedInputRef","useMergeRefs","handleKeyDown","handleKeyUp","useKeyboardActionLockerWhileComposing","keysToLock","COMMON_IME_CONTROL_KEYS","useLayoutEffect","initialAutoFocus","setSelectionToEnd","current","setSelectionRange","length","focus","React","createElement","TextareaAutosize","Object","assign","classNames","styles","ref"],"mappings":";;;;;;;;MAiBaA,QAAQ,gBAAGC,UAAU,CAChC,SAASD,QAAQA,CACf;EACEE,KAAK;EACLC,SAAS;AACTC,EAAAA,OAAO,GAAG,CAAC;AACXC,EAAAA,OAAO,GAAG,CAAC;AACXC,EAAAA,SAAS,GAAG,KAAK;AACjBC,EAAAA,KAAK,GAAG,EAAE;EACVC,SAAS;EACTC,OAAO;EACP,GAAGC,IAAAA;AACL,CAAC,EACDC,YAAY,EACZ;EACA,MAAM;IAAEC,QAAQ;IAAEC,QAAQ;IAAEC,QAAQ;IAAE,GAAGC,QAAAA;AAAS,GAAC,GACjDC,iBAAiB,CAACN,IAAI,CAAC,CAAA;AAEzB,EAAA,MAAMO,QAAQ,GAAGC,MAAM,CAA6B,IAAI,CAAC,CAAA;AACzD,EAAA,MAAMC,cAAc,GAAGC,YAAY,CAACH,QAAQ,EAAEN,YAAY,CAAC,CAAA;EAE3D,MAAM;IAAEU,aAAa;AAAEC,IAAAA,WAAAA;GAAa,GAClCC,qCAAqC,CAAC;AACpCC,IAAAA,UAAU,EAAEC,uBAAuB;IACnCjB,SAAS;AACTC,IAAAA,OAAAA;AACF,GAAC,CAAC,CAAA;AAEJiB,EAAAA,eAAe,CAAC,SAASC,gBAAgBA,GAAG;IAC1C,SAASC,iBAAiBA,GAAG;MAC3BX,QAAQ,CAACY,OAAO,EAAEC,iBAAiB,CACjCb,QAAQ,CAACY,OAAO,EAAEtB,KAAK,CAACwB,MAAM,EAC9Bd,QAAQ,CAACY,OAAO,EAAEtB,KAAK,CAACwB,MAC1B,CAAC,CAAA;AACH,KAAA;AAEA,IAAA,IAAIzB,SAAS,EAAE;AACbW,MAAAA,QAAQ,CAACY,OAAO,EAAEG,KAAK,EAAE,CAAA;AACzBJ,MAAAA,iBAAiB,EAAE,CAAA;AACrB,KAAA;AACA;GACD,EAAE,EAAE,CAAC,CAAA;EAEN,oBACEK,cAAA,CAAAC,aAAA,CAACC,gBAAgB,EAAAC,MAAA,CAAAC,MAAA,CAAA,EAAA,EACXtB,QAAQ,EAAA;AACZb,IAAAA,KAAK,EAAEA,KAAM;IACbC,SAAS,EAAEmC,UAAU,CAACC,MAAM,CAACvC,QAAQ,EAAEG,SAAS,CAAE;AAClDqC,IAAAA,GAAG,EAAErB,cAAe;AACpBZ,IAAAA,KAAK,EAAEA,KAAM;AACbK,IAAAA,QAAQ,EAAEA,QAAS;AACnBC,IAAAA,QAAQ,EAAEA,QAAS;AACnBR,IAAAA,OAAO,EAAEA,OAAQ;AACjBD,IAAAA,OAAO,EAAEA,OAAQ;AACjB,IAAA,aAAA,EAAY,kBAAkB;AAC9BI,IAAAA,SAAS,EAAEa,aAAc;AACzBZ,IAAAA,OAAO,EAAEa,WAAAA;AAAY,GAAA,CACtB,CAAC,CAAA;AAEN,CACF;;;;"}
1
+ {"version":3,"file":"TextArea.mjs","sources":["../../../../src/components/TextArea/TextArea.tsx"],"sourcesContent":["import React, { forwardRef, useRef } from 'react'\n\nimport classNames from 'classnames'\nimport TextareaAutosize from 'react-textarea-autosize'\n\nimport { useIsomorphicLayoutEffect } from '~/src/hooks/useIsomorphicLayoutEffect'\nimport {\n COMMON_IME_CONTROL_KEYS,\n useKeyboardActionLockerWhileComposing,\n} from '~/src/hooks/useKeyboardActionLockerWhileComposing'\nimport useMergeRefs from '~/src/hooks/useMergeRefs'\n\nimport { useFormFieldProps } from '~/src/components/FormControl'\n\nimport type { TextAreaProps } from './TextArea.types'\n\nimport styles from './TextArea.module.scss'\n\nexport const TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>(\n function TextArea(\n {\n style,\n className,\n minRows = 6,\n maxRows = 6,\n autoFocus = false,\n value = '',\n onKeyDown,\n onKeyUp,\n ...rest\n },\n forwardedRef\n ) {\n const { disabled, readOnly, hasError, ...ownProps } =\n useFormFieldProps(rest)\n\n const inputRef = useRef<HTMLTextAreaElement | null>(null)\n const mergedInputRef = useMergeRefs(inputRef, forwardedRef)\n\n const { handleKeyDown, handleKeyUp } =\n useKeyboardActionLockerWhileComposing({\n keysToLock: COMMON_IME_CONTROL_KEYS,\n onKeyDown,\n onKeyUp,\n })\n\n useIsomorphicLayoutEffect(function initialAutoFocus() {\n function setSelectionToEnd() {\n inputRef.current?.setSelectionRange(\n inputRef.current?.value.length,\n inputRef.current?.value.length\n )\n }\n\n if (autoFocus) {\n inputRef.current?.focus()\n setSelectionToEnd()\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n return (\n <TextareaAutosize\n {...ownProps}\n style={style}\n className={classNames(styles.TextArea, className)}\n ref={mergedInputRef}\n value={value}\n disabled={disabled}\n readOnly={readOnly}\n maxRows={maxRows}\n minRows={minRows}\n data-testid=\"bezier-text-area\"\n onKeyDown={handleKeyDown}\n onKeyUp={handleKeyUp}\n />\n )\n }\n)\n"],"names":["TextArea","forwardRef","style","className","minRows","maxRows","autoFocus","value","onKeyDown","onKeyUp","rest","forwardedRef","disabled","readOnly","hasError","ownProps","useFormFieldProps","inputRef","useRef","mergedInputRef","useMergeRefs","handleKeyDown","handleKeyUp","useKeyboardActionLockerWhileComposing","keysToLock","COMMON_IME_CONTROL_KEYS","useIsomorphicLayoutEffect","initialAutoFocus","setSelectionToEnd","current","setSelectionRange","length","focus","React","createElement","TextareaAutosize","Object","assign","classNames","styles","ref"],"mappings":";;;;;;;;;MAkBaA,QAAQ,gBAAGC,UAAU,CAChC,SAASD,QAAQA,CACf;EACEE,KAAK;EACLC,SAAS;AACTC,EAAAA,OAAO,GAAG,CAAC;AACXC,EAAAA,OAAO,GAAG,CAAC;AACXC,EAAAA,SAAS,GAAG,KAAK;AACjBC,EAAAA,KAAK,GAAG,EAAE;EACVC,SAAS;EACTC,OAAO;EACP,GAAGC,IAAAA;AACL,CAAC,EACDC,YAAY,EACZ;EACA,MAAM;IAAEC,QAAQ;IAAEC,QAAQ;IAAEC,QAAQ;IAAE,GAAGC,QAAAA;AAAS,GAAC,GACjDC,iBAAiB,CAACN,IAAI,CAAC,CAAA;AAEzB,EAAA,MAAMO,QAAQ,GAAGC,MAAM,CAA6B,IAAI,CAAC,CAAA;AACzD,EAAA,MAAMC,cAAc,GAAGC,YAAY,CAACH,QAAQ,EAAEN,YAAY,CAAC,CAAA;EAE3D,MAAM;IAAEU,aAAa;AAAEC,IAAAA,WAAAA;GAAa,GAClCC,qCAAqC,CAAC;AACpCC,IAAAA,UAAU,EAAEC,uBAAuB;IACnCjB,SAAS;AACTC,IAAAA,OAAAA;AACF,GAAC,CAAC,CAAA;AAEJiB,EAAAA,yBAAyB,CAAC,SAASC,gBAAgBA,GAAG;IACpD,SAASC,iBAAiBA,GAAG;MAC3BX,QAAQ,CAACY,OAAO,EAAEC,iBAAiB,CACjCb,QAAQ,CAACY,OAAO,EAAEtB,KAAK,CAACwB,MAAM,EAC9Bd,QAAQ,CAACY,OAAO,EAAEtB,KAAK,CAACwB,MAC1B,CAAC,CAAA;AACH,KAAA;AAEA,IAAA,IAAIzB,SAAS,EAAE;AACbW,MAAAA,QAAQ,CAACY,OAAO,EAAEG,KAAK,EAAE,CAAA;AACzBJ,MAAAA,iBAAiB,EAAE,CAAA;AACrB,KAAA;AACA;GACD,EAAE,EAAE,CAAC,CAAA;EAEN,oBACEK,cAAA,CAAAC,aAAA,CAACC,gBAAgB,EAAAC,MAAA,CAAAC,MAAA,CAAA,EAAA,EACXtB,QAAQ,EAAA;AACZb,IAAAA,KAAK,EAAEA,KAAM;IACbC,SAAS,EAAEmC,UAAU,CAACC,MAAM,CAACvC,QAAQ,EAAEG,SAAS,CAAE;AAClDqC,IAAAA,GAAG,EAAErB,cAAe;AACpBZ,IAAAA,KAAK,EAAEA,KAAM;AACbK,IAAAA,QAAQ,EAAEA,QAAS;AACnBC,IAAAA,QAAQ,EAAEA,QAAS;AACnBR,IAAAA,OAAO,EAAEA,OAAQ;AACjBD,IAAAA,OAAO,EAAEA,OAAQ;AACjB,IAAA,aAAA,EAAY,kBAAkB;AAC9BI,IAAAA,SAAS,EAAEa,aAAc;AACzBZ,IAAAA,OAAO,EAAEa,WAAAA;AAAY,GAAA,CACtB,CAAC,CAAA;AAEN,CACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"TextField.mjs","sources":["../../../../src/components/TextField/TextField.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n} from 'react'\n\nimport { CancelCircleFilledIcon } from '@channel.io/bezier-icons'\nimport classNames from 'classnames'\nimport { v4 as uuid } from 'uuid'\n\nimport {\n COMMON_IME_CONTROL_KEYS,\n useKeyboardActionLockerWhileComposing,\n} from '~/src/hooks/useKeyboardActionLockerWhileComposing'\nimport { type FormFieldSize } from '~/src/types/props'\nimport { getFormFieldSizeClassName } from '~/src/types/props-helpers'\nimport { toString } from '~/src/utils/string'\nimport { isArray, isEmpty, isNil } from '~/src/utils/type'\n\nimport { BaseButton } from '~/src/components/BaseButton'\nimport { useFormFieldProps } from '~/src/components/FormControl'\nimport { Icon } from '~/src/components/Icon'\nimport { useWindow } from '~/src/components/WindowProvider'\n\nimport {\n type SelectionRangeDirections,\n type TextFieldItemProps,\n type TextFieldProps,\n type TextFieldRef,\n} from './TextField.types'\n\nimport styles from './TextField.module.scss'\n\nexport const TEXT_INPUT_TEST_ID = 'bezier-text-input'\nexport const TEXT_INPUT_CLEAR_ICON_TEST_ID = 'bezier-text-input-clear-icon'\n\n/**\n * FIXME: This mapping constant was defined for UI consistency,\n * and it should be removed with size attribute\n */\nconst INPUT_LENGTH_BY_SIZE: Record<FormFieldSize, number> = {\n xs: 28,\n m: 36,\n l: 44,\n xl: 54,\n}\n\nfunction TextFieldLeftContent({\n children,\n wrapperStyle,\n wrapperClassName,\n withoutWrapper,\n}: {\n children: TextFieldProps['leftContent']\n wrapperStyle: TextFieldProps['leftWrapperStyle']\n wrapperClassName: TextFieldProps['leftWrapperClassName']\n withoutWrapper: TextFieldProps['withoutLeftContentWrapper']\n}) {\n if (isNil(children)) {\n return null\n }\n\n const Content = (() => {\n if ('icon' in children) {\n return (\n <Icon\n className={!isNil(children.onClick) ? styles.clickable : undefined}\n source={children.icon}\n size=\"s\"\n color={children.iconColor ?? 'txt-black-dark'}\n onClick={children.onClick}\n />\n )\n }\n\n return children\n })()\n\n if (withoutWrapper) {\n return Content\n }\n\n return (\n <div\n style={wrapperStyle}\n className={classNames(styles.LeftContentWrapper, wrapperClassName)}\n >\n {Content}\n </div>\n )\n}\n\nfunction TextFieldRightContent({\n children,\n wrapperStyle,\n wrapperClassName,\n withoutWrapper,\n}: {\n children: TextFieldProps['rightContent']\n wrapperStyle: TextFieldProps['rightWrapperStyle']\n wrapperClassName: TextFieldProps['rightWrapperClassName']\n withoutWrapper: TextFieldProps['withoutRightContentWrapper']\n}) {\n const renderRightItem = useCallback(\n (item: TextFieldItemProps, key?: string) => {\n if ('icon' in item) {\n const Comp = !isNil(item.onClick) ? BaseButton : 'div'\n\n return (\n <Comp\n key={key}\n className={styles.RightItemWrapper}\n onClick={item.onClick}\n >\n <Icon\n source={item.icon}\n size=\"xs\"\n color={item.iconColor ?? 'txt-black-dark'}\n />\n </Comp>\n )\n }\n\n return React.cloneElement(item, { key })\n },\n []\n )\n\n if (isNil(children) || isEmpty(children)) {\n return null\n }\n\n const contents = isArray(children)\n ? children.map((item) => renderRightItem(item, uuid()))\n : renderRightItem(children)\n\n if (withoutWrapper) {\n return <>{contents}</>\n }\n\n return (\n <div\n style={wrapperStyle}\n className={classNames(styles.RightContentWrapper, wrapperClassName)}\n >\n {contents}\n </div>\n )\n}\n\nexport const TextField = forwardRef<TextFieldRef, TextFieldProps>(\n function TextField(\n {\n type,\n size: sizeProps,\n autoFocus,\n autoComplete = 'off',\n variant = 'primary',\n allowClear = false,\n selectAllOnInit = false,\n selectAllOnFocus = false,\n leftContent,\n rightContent,\n withoutLeftContentWrapper = false,\n withoutRightContentWrapper = false,\n style,\n className,\n wrapperStyle,\n wrapperClassName,\n leftWrapperStyle,\n leftWrapperClassName,\n rightWrapperStyle,\n rightWrapperClassName,\n value,\n onFocus,\n onChange,\n onKeyDown,\n onKeyUp,\n ...rest\n },\n forwardedRef\n ) {\n const { window } = useWindow()\n\n const {\n disabled,\n readOnly,\n hasError,\n size: formFieldSize,\n ...ownProps\n } = useFormFieldProps(rest)\n\n const focusTimeout = useRef<ReturnType<Window['setTimeout']>>()\n const blurTimeout = useRef<ReturnType<Window['setTimeout']>>()\n\n const normalizedValue = isNil(value) ? undefined : toString(value)\n const activeInput = !disabled && !readOnly\n const activeClear = activeInput && allowClear && !isEmpty(normalizedValue)\n const size = sizeProps ?? formFieldSize ?? 'm'\n\n const inputRef = useRef<HTMLInputElement | null>(null)\n\n const focus = useCallback(() => {\n clearTimeout(focusTimeout.current)\n focusTimeout.current = window.setTimeout(() => {\n inputRef.current?.focus()\n }, 0)\n }, [window])\n\n const blur = useCallback(() => {\n clearTimeout(blurTimeout.current)\n blurTimeout.current = window.setTimeout(() => {\n inputRef.current?.blur()\n }, 0)\n }, [window])\n\n const setSelectionRange = useCallback(\n (start?: number, end?: number, direction?: SelectionRangeDirections) => {\n if (type && ['number', 'email', 'hidden'].includes(type)) {\n return\n }\n inputRef.current?.setSelectionRange(\n start || 0,\n end || 0,\n direction || 'none'\n )\n },\n [type]\n )\n\n const getSelectionRange = useCallback(\n (): [number, number] => [\n inputRef.current?.selectionStart || 0,\n inputRef.current?.selectionEnd || 0,\n ],\n []\n )\n\n const selectAll = useCallback(() => {\n focus()\n if (inputRef.current) {\n setSelectionRange(0, inputRef.current.value.length, 'backward')\n }\n }, [focus, setSelectionRange])\n\n const unselect = useCallback(() => {\n focus()\n if (inputRef.current) {\n const valueLen = inputRef.current.value.length\n setSelectionRange(valueLen, valueLen)\n }\n }, [focus, setSelectionRange])\n\n const getBoundingClientRect = useCallback((): DOMRect => {\n if (inputRef.current) {\n return inputRef.current.getBoundingClientRect()\n }\n return new DOMRect(undefined, undefined, 0, 0)\n }, [])\n\n const getDOMNode = useCallback(() => inputRef.current, [])\n\n const handle = useMemo(\n (): TextFieldRef => ({\n focus,\n blur,\n setSelectionRange,\n getSelectionRange,\n selectAll,\n unselect,\n getBoundingClientRect,\n getDOMNode,\n }),\n [\n focus,\n blur,\n setSelectionRange,\n getSelectionRange,\n selectAll,\n unselect,\n getBoundingClientRect,\n getDOMNode,\n ]\n )\n\n useImperativeHandle(forwardedRef, () => handle)\n\n useEffect(() => {\n if (autoFocus) {\n focus()\n }\n if (selectAllOnInit) {\n focus()\n selectAll()\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLInputElement>) => {\n if (!activeInput) {\n return\n }\n if (selectAllOnFocus) {\n selectAll()\n }\n if (onFocus) {\n onFocus(event)\n }\n },\n [selectAllOnFocus, selectAll, activeInput, onFocus]\n )\n\n const handleChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n if (activeInput && onChange) {\n onChange(event)\n }\n },\n [activeInput, onChange]\n )\n\n const {\n handleKeyDown: handleKeyDownWrappedWithComposingLocker,\n handleKeyUp: handleKeyUpWrappedWithComposingLocker,\n } = useKeyboardActionLockerWhileComposing({\n keysToLock: COMMON_IME_CONTROL_KEYS,\n onKeyDown,\n onKeyUp,\n })\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (activeInput && handleKeyDownWrappedWithComposingLocker) {\n handleKeyDownWrappedWithComposingLocker(event)\n }\n },\n [activeInput, handleKeyDownWrappedWithComposingLocker]\n )\n\n const handleKeyUp = useCallback(\n (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (activeInput && handleKeyUpWrappedWithComposingLocker) {\n handleKeyUpWrappedWithComposingLocker(event)\n }\n },\n [activeInput, handleKeyUpWrappedWithComposingLocker]\n )\n\n const handleClear = useCallback(() => {\n const input = inputRef.current\n if (activeInput && input) {\n const setValue = Object?.getOwnPropertyDescriptor(\n HTMLInputElement.prototype,\n 'value'\n )?.set\n const event = new Event('input', { bubbles: true })\n setValue?.call(input, '')\n input.dispatchEvent(event)\n }\n }, [activeInput])\n\n return (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n <div\n style={wrapperStyle}\n className={classNames(\n styles.TextFieldWrapper,\n styles[`variant-${variant}`],\n styles[`size-${size}`],\n getFormFieldSizeClassName(size),\n wrapperClassName\n )}\n data-testid={TEXT_INPUT_TEST_ID}\n onMouseDown={focus}\n >\n <TextFieldLeftContent\n wrapperStyle={leftWrapperStyle}\n wrapperClassName={leftWrapperClassName}\n withoutWrapper={withoutLeftContentWrapper}\n >\n {leftContent}\n </TextFieldLeftContent>\n\n <input\n style={style}\n className={classNames(styles.TextFieldInput, className)}\n ref={inputRef}\n type={type}\n value={normalizedValue}\n /**\n * Invalid size attribute\n * FIXME: https://github.com/channel-io/bezier-react/issues/1053\n */\n size={INPUT_LENGTH_BY_SIZE[size]}\n autoComplete={autoComplete}\n readOnly={readOnly}\n disabled={disabled}\n onFocus={handleFocus}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n onKeyUp={handleKeyUp}\n {...ownProps}\n />\n\n {activeClear && (\n <BaseButton\n className={styles.CloseIconWrapper}\n tabIndex={-1}\n onClick={handleClear}\n >\n <Icon\n className={styles.CloseIcon}\n data-testid={TEXT_INPUT_CLEAR_ICON_TEST_ID}\n source={CancelCircleFilledIcon}\n size=\"xs\"\n />\n </BaseButton>\n )}\n\n <TextFieldRightContent\n wrapperStyle={rightWrapperStyle}\n withoutWrapper={withoutRightContentWrapper}\n wrapperClassName={rightWrapperClassName}\n >\n {rightContent}\n </TextFieldRightContent>\n </div>\n )\n }\n)\n"],"names":["TEXT_INPUT_TEST_ID","TEXT_INPUT_CLEAR_ICON_TEST_ID","INPUT_LENGTH_BY_SIZE","xs","m","l","xl","TextFieldLeftContent","children","wrapperStyle","wrapperClassName","withoutWrapper","isNil","Content","React","createElement","Icon","className","onClick","styles","clickable","undefined","source","icon","size","color","iconColor","style","classNames","LeftContentWrapper","TextFieldRightContent","renderRightItem","useCallback","item","key","Comp","BaseButton","RightItemWrapper","cloneElement","isEmpty","contents","isArray","map","uuid","Fragment","RightContentWrapper","TextField","forwardRef","type","sizeProps","autoFocus","autoComplete","variant","allowClear","selectAllOnInit","selectAllOnFocus","leftContent","rightContent","withoutLeftContentWrapper","withoutRightContentWrapper","leftWrapperStyle","leftWrapperClassName","rightWrapperStyle","rightWrapperClassName","value","onFocus","onChange","onKeyDown","onKeyUp","rest","forwardedRef","window","useWindow","disabled","readOnly","hasError","formFieldSize","ownProps","useFormFieldProps","focusTimeout","useRef","blurTimeout","normalizedValue","toString","activeInput","activeClear","inputRef","focus","clearTimeout","current","setTimeout","blur","setSelectionRange","start","end","direction","includes","getSelectionRange","selectionStart","selectionEnd","selectAll","length","unselect","valueLen","getBoundingClientRect","DOMRect","getDOMNode","handle","useMemo","useImperativeHandle","useEffect","handleFocus","event","handleChange","handleKeyDown","handleKeyDownWrappedWithComposingLocker","handleKeyUp","handleKeyUpWrappedWithComposingLocker","useKeyboardActionLockerWhileComposing","keysToLock","COMMON_IME_CONTROL_KEYS","handleClear","input","setValue","Object","getOwnPropertyDescriptor","HTMLInputElement","prototype","set","Event","bubbles","call","dispatchEvent","TextFieldWrapper","getFormFieldSizeClassName","onMouseDown","assign","TextFieldInput","ref","CloseIconWrapper","tabIndex","CloseIcon","CancelCircleFilledIcon"],"mappings":"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"}
1
+ {"version":3,"file":"TextField.mjs","sources":["../../../../src/components/TextField/TextField.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n} from 'react'\n\nimport { CancelCircleFilledIcon } from '@channel.io/bezier-icons'\nimport classNames from 'classnames'\nimport { v4 as uuid } from 'uuid'\n\nimport {\n COMMON_IME_CONTROL_KEYS,\n useKeyboardActionLockerWhileComposing,\n} from '~/src/hooks/useKeyboardActionLockerWhileComposing'\nimport { type FormFieldSize } from '~/src/types/props'\nimport { getFormFieldSizeClassName } from '~/src/types/props-helpers'\nimport { toString } from '~/src/utils/string'\nimport { isArray, isEmpty, isNil } from '~/src/utils/type'\n\nimport { BaseButton } from '~/src/components/BaseButton'\nimport { useFormFieldProps } from '~/src/components/FormControl'\nimport { Icon } from '~/src/components/Icon'\nimport { useWindow } from '~/src/components/WindowProvider'\n\nimport {\n type SelectionRangeDirections,\n type TextFieldItemProps,\n type TextFieldProps,\n type TextFieldRef,\n} from './TextField.types'\n\nimport styles from './TextField.module.scss'\n\nexport const TEXT_INPUT_TEST_ID = 'bezier-text-input'\nexport const TEXT_INPUT_CLEAR_ICON_TEST_ID = 'bezier-text-input-clear-icon'\n\n/**\n * FIXME: This mapping constant was defined for UI consistency,\n * and it should be removed with size attribute\n */\nconst INPUT_LENGTH_BY_SIZE: Record<FormFieldSize, number> = {\n xs: 28,\n m: 36,\n l: 44,\n xl: 54,\n}\n\nfunction TextFieldLeftContent({\n children,\n wrapperStyle,\n wrapperClassName,\n withoutWrapper,\n}: {\n children: TextFieldProps['leftContent']\n wrapperStyle: TextFieldProps['leftWrapperStyle']\n wrapperClassName: TextFieldProps['leftWrapperClassName']\n withoutWrapper: TextFieldProps['withoutLeftContentWrapper']\n}) {\n if (isNil(children)) {\n return null\n }\n\n const Content = (() => {\n if ('icon' in children) {\n return (\n <Icon\n className={!isNil(children.onClick) ? styles.clickable : undefined}\n source={children.icon}\n size=\"s\"\n color={children.iconColor ?? 'txt-black-dark'}\n onClick={children.onClick}\n />\n )\n }\n\n return children\n })()\n\n if (withoutWrapper) {\n return Content\n }\n\n return (\n <div\n style={wrapperStyle}\n className={classNames(styles.LeftContentWrapper, wrapperClassName)}\n >\n {Content}\n </div>\n )\n}\n\nfunction TextFieldRightContent({\n children,\n wrapperStyle,\n wrapperClassName,\n withoutWrapper,\n}: {\n children: TextFieldProps['rightContent']\n wrapperStyle: TextFieldProps['rightWrapperStyle']\n wrapperClassName: TextFieldProps['rightWrapperClassName']\n withoutWrapper: TextFieldProps['withoutRightContentWrapper']\n}) {\n const renderRightItem = useCallback(\n (item: TextFieldItemProps, key?: string) => {\n if ('icon' in item) {\n const Comp = !isNil(item.onClick) ? BaseButton : 'div'\n\n return (\n <Comp\n key={key}\n className={styles.RightItemWrapper}\n onClick={item.onClick}\n >\n <Icon\n source={item.icon}\n size=\"xs\"\n color={item.iconColor ?? 'txt-black-dark'}\n />\n </Comp>\n )\n }\n\n return React.cloneElement(item, { key })\n },\n []\n )\n\n if (isNil(children) || isEmpty(children)) {\n return null\n }\n\n const contents = isArray(children)\n ? children.map((item) => renderRightItem(item, uuid()))\n : renderRightItem(children)\n\n if (withoutWrapper) {\n return <>{contents}</>\n }\n\n return (\n <div\n style={wrapperStyle}\n className={classNames(styles.RightContentWrapper, wrapperClassName)}\n >\n {contents}\n </div>\n )\n}\n\nexport const TextField = forwardRef<TextFieldRef, TextFieldProps>(\n function TextField(\n {\n type,\n size: sizeProps,\n autoFocus,\n autoComplete = 'off',\n variant = 'primary',\n allowClear = false,\n selectAllOnInit = false,\n selectAllOnFocus = false,\n leftContent,\n rightContent,\n withoutLeftContentWrapper = false,\n withoutRightContentWrapper = false,\n style,\n className,\n wrapperStyle,\n wrapperClassName,\n leftWrapperStyle,\n leftWrapperClassName,\n rightWrapperStyle,\n rightWrapperClassName,\n value,\n onFocus,\n onChange,\n onKeyDown,\n onKeyUp,\n ...rest\n },\n forwardedRef\n ) {\n const { window } = useWindow()\n\n const {\n disabled,\n readOnly,\n hasError,\n size: formFieldSize,\n ...ownProps\n } = useFormFieldProps(rest)\n\n const focusTimeout = useRef<ReturnType<Window['setTimeout']>>()\n const blurTimeout = useRef<ReturnType<Window['setTimeout']>>()\n\n const normalizedValue = isNil(value) ? undefined : toString(value)\n const activeInput = !disabled && !readOnly\n const activeClear = activeInput && allowClear && !isEmpty(normalizedValue)\n const size = sizeProps ?? formFieldSize ?? 'm'\n\n const inputRef = useRef<HTMLInputElement | null>(null)\n\n const focus = useCallback(() => {\n clearTimeout(focusTimeout.current)\n focusTimeout.current = window.setTimeout(() => {\n inputRef.current?.focus()\n }, 0)\n }, [window])\n\n const blur = useCallback(() => {\n clearTimeout(blurTimeout.current)\n blurTimeout.current = window.setTimeout(() => {\n inputRef.current?.blur()\n }, 0)\n }, [window])\n\n const setSelectionRange = useCallback(\n (start?: number, end?: number, direction?: SelectionRangeDirections) => {\n if (type && ['number', 'email', 'hidden'].includes(type)) {\n return\n }\n inputRef.current?.setSelectionRange(\n start || 0,\n end || 0,\n direction || 'none'\n )\n },\n [type]\n )\n\n const getSelectionRange = useCallback(\n (): [number, number] => [\n inputRef.current?.selectionStart || 0,\n inputRef.current?.selectionEnd || 0,\n ],\n []\n )\n\n const selectAll = useCallback(() => {\n focus()\n if (inputRef.current) {\n setSelectionRange(0, inputRef.current.value.length, 'backward')\n }\n }, [focus, setSelectionRange])\n\n const unselect = useCallback(() => {\n focus()\n if (inputRef.current) {\n const valueLen = inputRef.current.value.length\n setSelectionRange(valueLen, valueLen)\n }\n }, [focus, setSelectionRange])\n\n const getBoundingClientRect = useCallback((): DOMRect => {\n if (inputRef.current) {\n return inputRef.current.getBoundingClientRect()\n }\n return new DOMRect(undefined, undefined, 0, 0)\n }, [])\n\n const getDOMNode = useCallback(() => inputRef.current, [])\n\n const handle = useMemo(\n (): TextFieldRef => ({\n focus,\n blur,\n setSelectionRange,\n getSelectionRange,\n selectAll,\n unselect,\n getBoundingClientRect,\n getDOMNode,\n }),\n [\n focus,\n blur,\n setSelectionRange,\n getSelectionRange,\n selectAll,\n unselect,\n getBoundingClientRect,\n getDOMNode,\n ]\n )\n\n useImperativeHandle(forwardedRef, () => handle)\n\n useEffect(() => {\n if (autoFocus) {\n focus()\n }\n if (selectAllOnInit) {\n focus()\n selectAll()\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLInputElement>) => {\n if (!activeInput) {\n return\n }\n if (selectAllOnFocus) {\n selectAll()\n }\n if (onFocus) {\n onFocus(event)\n }\n },\n [selectAllOnFocus, selectAll, activeInput, onFocus]\n )\n\n const handleChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n if (activeInput && onChange) {\n onChange(event)\n }\n },\n [activeInput, onChange]\n )\n\n const {\n handleKeyDown: handleKeyDownWrappedWithComposingLocker,\n handleKeyUp: handleKeyUpWrappedWithComposingLocker,\n } = useKeyboardActionLockerWhileComposing({\n keysToLock: COMMON_IME_CONTROL_KEYS,\n onKeyDown,\n onKeyUp,\n })\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (activeInput && handleKeyDownWrappedWithComposingLocker) {\n handleKeyDownWrappedWithComposingLocker(event)\n }\n },\n [activeInput, handleKeyDownWrappedWithComposingLocker]\n )\n\n const handleKeyUp = useCallback(\n (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (activeInput && handleKeyUpWrappedWithComposingLocker) {\n handleKeyUpWrappedWithComposingLocker(event)\n }\n },\n [activeInput, handleKeyUpWrappedWithComposingLocker]\n )\n\n const handleClear = useCallback(() => {\n const input = inputRef.current\n if (activeInput && input) {\n const setValue = Object?.getOwnPropertyDescriptor(\n HTMLInputElement.prototype,\n 'value'\n )?.set\n const event = new Event('input', { bubbles: true })\n setValue?.call(input, '')\n input.dispatchEvent(event)\n }\n }, [activeInput])\n\n return (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n <div\n style={wrapperStyle}\n className={classNames(\n styles.TextFieldWrapper,\n styles[`variant-${variant}`],\n styles[`size-${size}`],\n getFormFieldSizeClassName(size),\n wrapperClassName\n )}\n data-testid={TEXT_INPUT_TEST_ID}\n onMouseDown={focus}\n >\n <TextFieldLeftContent\n wrapperStyle={leftWrapperStyle}\n wrapperClassName={leftWrapperClassName}\n withoutWrapper={withoutLeftContentWrapper}\n >\n {leftContent}\n </TextFieldLeftContent>\n\n <input\n style={style}\n className={classNames(styles.TextFieldInput, className)}\n ref={inputRef}\n type={type}\n value={normalizedValue}\n /**\n * Invalid size attribute\n * FIXME: https://github.com/channel-io/bezier-react/issues/1053\n */\n size={INPUT_LENGTH_BY_SIZE[size]}\n autoComplete={autoComplete}\n readOnly={readOnly}\n disabled={disabled}\n onFocus={handleFocus}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n onKeyUp={handleKeyUp}\n {...ownProps}\n />\n\n {activeClear && (\n <BaseButton\n className={styles.CloseIconWrapper}\n tabIndex={-1}\n onClick={handleClear}\n >\n <Icon\n className={styles.CloseIcon}\n data-testid={TEXT_INPUT_CLEAR_ICON_TEST_ID}\n source={CancelCircleFilledIcon}\n size=\"xs\"\n />\n </BaseButton>\n )}\n\n <TextFieldRightContent\n wrapperStyle={rightWrapperStyle}\n withoutWrapper={withoutRightContentWrapper}\n wrapperClassName={rightWrapperClassName}\n >\n {rightContent}\n </TextFieldRightContent>\n </div>\n )\n }\n)\n"],"names":["TEXT_INPUT_TEST_ID","TEXT_INPUT_CLEAR_ICON_TEST_ID","INPUT_LENGTH_BY_SIZE","xs","m","l","xl","TextFieldLeftContent","children","wrapperStyle","wrapperClassName","withoutWrapper","isNil","Content","React","createElement","Icon","className","onClick","styles","clickable","undefined","source","icon","size","color","iconColor","style","classNames","LeftContentWrapper","TextFieldRightContent","renderRightItem","useCallback","item","key","Comp","BaseButton","RightItemWrapper","cloneElement","isEmpty","contents","isArray","map","uuid","Fragment","RightContentWrapper","TextField","forwardRef","type","sizeProps","autoFocus","autoComplete","variant","allowClear","selectAllOnInit","selectAllOnFocus","leftContent","rightContent","withoutLeftContentWrapper","withoutRightContentWrapper","leftWrapperStyle","leftWrapperClassName","rightWrapperStyle","rightWrapperClassName","value","onFocus","onChange","onKeyDown","onKeyUp","rest","forwardedRef","window","useWindow","disabled","readOnly","hasError","formFieldSize","ownProps","useFormFieldProps","focusTimeout","useRef","blurTimeout","normalizedValue","toString","activeInput","activeClear","inputRef","focus","clearTimeout","current","setTimeout","blur","setSelectionRange","start","end","direction","includes","getSelectionRange","selectionStart","selectionEnd","selectAll","length","unselect","valueLen","getBoundingClientRect","DOMRect","getDOMNode","handle","useMemo","useImperativeHandle","useEffect","handleFocus","event","handleChange","handleKeyDown","handleKeyDownWrappedWithComposingLocker","handleKeyUp","handleKeyUpWrappedWithComposingLocker","useKeyboardActionLockerWhileComposing","keysToLock","COMMON_IME_CONTROL_KEYS","handleClear","input","setValue","Object","getOwnPropertyDescriptor","HTMLInputElement","prototype","set","Event","bubbles","call","dispatchEvent","TextFieldWrapper","getFormFieldSizeClassName","onMouseDown","assign","TextFieldInput","ref","CloseIconWrapper","tabIndex","CloseIcon","CancelCircleFilledIcon"],"mappings":"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"}
@@ -139,8 +139,9 @@ function ToastProvider({
139
139
  dismiss
140
140
  } = toastContextValue;
141
141
  const container = givenContainer ?? rootElement;
142
- const createContainer = useCallback((placement, toasts) => /*#__PURE__*/React__default.createElement(InvertedThemeProvider, null, /*#__PURE__*/React__default.createElement("div", {
143
- key: placement,
142
+ const createContainer = useCallback((placement, toasts) => /*#__PURE__*/React__default.createElement(InvertedThemeProvider, {
143
+ key: placement
144
+ }, /*#__PURE__*/React__default.createElement("div", {
144
145
  style: {
145
146
  bottom: px(offset?.bottom ?? DEFAULT_OFFSET.bottom),
146
147
  ...(placement === 'bottom-right' ? {
@@ -1 +1 @@
1
- {"version":3,"file":"Toast.mjs","sources":["../../../../src/components/Toast/Toast.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from 'react'\nimport { createPortal } from 'react-dom'\n\nimport {\n CancelIcon,\n CheckCircleFilledIcon,\n ErrorTriangleFilledIcon,\n InfoFilledIcon,\n WifiIcon,\n WifiOffIcon,\n} from '@channel.io/bezier-icons'\nimport classNames from 'classnames'\n\nimport useIsMounted from '~/src/hooks/useIsMounted'\nimport { getZIndexClassName } from '~/src/types/props-helpers'\nimport { ariaAttr } from '~/src/utils/aria'\nimport { noop } from '~/src/utils/function'\nimport { createContext } from '~/src/utils/react'\nimport { px } from '~/src/utils/style'\nimport { isString } from '~/src/utils/type'\n\nimport { BaseButton } from '~/src/components/BaseButton'\nimport { Icon } from '~/src/components/Icon'\nimport { Text } from '~/src/components/Text'\nimport { InvertedThemeProvider } from '~/src/components/ThemeProvider'\nimport { useRootElement, useWindow } from '~/src/components/WindowProvider'\n\nimport {\n type ToastContextValue,\n type ToastPlacement,\n type ToastPreset,\n type ToastProps,\n type ToastProviderProps,\n type ToastType,\n} from './Toast.types'\nimport useToastProviderValues from './useToastContextValues'\n\nimport styles from './Toast.module.scss'\n\nfunction getToastPreset(preset: ToastPreset) {\n return {\n success: {\n icon: CheckCircleFilledIcon,\n appearance: 'success',\n },\n error: {\n icon: ErrorTriangleFilledIcon,\n appearance: 'error',\n },\n offline: {\n icon: WifiOffIcon,\n appearance: 'warning',\n },\n online: {\n icon: WifiIcon,\n appearance: 'success',\n },\n default: {\n icon: InfoFilledIcon,\n appearance: 'info',\n },\n }[preset]\n}\n\nexport function Toast({\n placement,\n appearance: appearanceProp,\n preset = 'default',\n icon: iconProp,\n content,\n zIndex = 'toast',\n autoDismiss = true,\n autoDismissTimeout,\n version = 0,\n onDismiss,\n}: ToastProps) {\n const { window } = useWindow()\n\n const dismissTimer = useRef<ReturnType<Window['setTimeout']>>()\n\n const [isSlidingOut, setIsSlidingOut] = useState(false)\n\n const className = classNames(\n styles.ToastElement,\n zIndex && getZIndexClassName(zIndex),\n placement && styles[`placement-${placement}`],\n isSlidingOut && styles['slide-out']\n )\n\n const runSlideOutAnimation = useCallback(() => {\n setIsSlidingOut(true)\n }, [])\n\n const handleAnimationEnd = useCallback<React.AnimationEventHandler>(\n (event) => {\n if (\n event.animationName === styles['slide-out-left'] ||\n event.animationName === styles['slide-out-right']\n ) {\n onDismiss?.()\n }\n },\n [onDismiss]\n )\n\n useEffect(\n function startDismissTimer() {\n if (autoDismiss) {\n dismissTimer.current = window.setTimeout(\n runSlideOutAnimation,\n autoDismissTimeout\n )\n }\n\n return function cleanup() {\n if (dismissTimer.current != null) {\n clearTimeout(dismissTimer.current)\n }\n }\n },\n [autoDismiss, autoDismissTimeout, runSlideOutAnimation, window, version]\n )\n\n const { appearance, icon } = getToastPreset(preset)\n\n return (\n <div\n role=\"status\"\n className={className}\n onAnimationEnd={handleAnimationEnd}\n aria-hidden={ariaAttr(isSlidingOut)}\n >\n <div\n className={classNames(\n styles.IconWrapper,\n styles[`appearance-${appearanceProp ?? appearance}`]\n )}\n >\n <Icon\n source={iconProp ?? icon}\n size=\"s\"\n />\n </div>\n\n <div className={styles.Content}>\n <Text\n className={styles.EllipsisableContent}\n typo=\"14\"\n color=\"txt-black-darkest\"\n truncated={5}\n >\n {isString(content)\n ? content.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 : content}\n </Text>\n </div>\n\n <BaseButton\n className={styles.Close}\n onClick={runSlideOutAnimation}\n >\n <Icon\n source={CancelIcon}\n size=\"xs\"\n />\n </BaseButton>\n </div>\n )\n}\n\nconst [ToastContextProvider, useToastContext] =\n createContext<ToastContextValue>({\n add: () => '',\n update: () => '',\n remove: noop,\n removeAll: noop,\n leftToasts: [],\n rightToasts: [],\n })\n\nconst DEFAULT_OFFSET = {\n left: 0,\n right: 0,\n bottom: 0,\n}\n\nexport function ToastProvider({\n autoDismissTimeout = 3000,\n container: givenContainer,\n offset = DEFAULT_OFFSET,\n children = [],\n}: ToastProviderProps) {\n const rootElement = useRootElement()\n const isMounted = useIsMounted()\n\n const toastContextValue = useToastProviderValues()\n const { leftToasts, rightToasts, dismiss } = toastContextValue\n const container = givenContainer ?? rootElement\n\n const createContainer = useCallback(\n (placement: ToastPlacement, toasts: ToastType[]) => (\n <InvertedThemeProvider>\n <div\n key={placement}\n style={{\n bottom: px(offset?.bottom ?? DEFAULT_OFFSET.bottom),\n ...(placement === 'bottom-right'\n ? { right: px(offset?.right ?? DEFAULT_OFFSET.right) }\n : { left: px(offset?.left ?? DEFAULT_OFFSET.left) }),\n }}\n className={styles.ToastContainer}\n >\n {toasts.map(({ id, onDismiss, ...rest }) => (\n <Toast\n {...rest}\n key={id}\n placement={placement}\n autoDismissTimeout={autoDismissTimeout}\n onDismiss={() => dismiss(id, onDismiss)}\n />\n ))}\n </div>\n </InvertedThemeProvider>\n ),\n [autoDismissTimeout, dismiss, offset]\n )\n\n return (\n <ToastContextProvider value={toastContextValue}>\n {children}\n {isMounted &&\n createPortal(\n [\n createContainer('bottom-left', leftToasts),\n createContainer('bottom-right', rightToasts),\n ],\n container\n )}\n </ToastContextProvider>\n )\n}\n\nexport function useToast() {\n const context = useToastContext()\n\n if (!context) {\n throw Error(\"'useToast' must be used within 'ToastProvider'\")\n }\n\n return {\n addToast: context.add,\n updateToast: context.update,\n removeToast: context.remove,\n removeAllToasts: context.removeAll,\n leftToasts: context.leftToasts,\n rightToasts: context.rightToasts,\n }\n}\n"],"names":["getToastPreset","preset","success","icon","CheckCircleFilledIcon","appearance","error","ErrorTriangleFilledIcon","offline","WifiOffIcon","online","WifiIcon","default","InfoFilledIcon","Toast","placement","appearanceProp","iconProp","content","zIndex","autoDismiss","autoDismissTimeout","version","onDismiss","window","useWindow","dismissTimer","useRef","isSlidingOut","setIsSlidingOut","useState","className","classNames","styles","ToastElement","getZIndexClassName","runSlideOutAnimation","useCallback","handleAnimationEnd","event","animationName","useEffect","startDismissTimer","current","setTimeout","cleanup","clearTimeout","React","createElement","role","onAnimationEnd","ariaAttr","IconWrapper","Icon","source","size","Content","Text","EllipsisableContent","typo","color","truncated","isString","split","map","str","index","Fragment","key","BaseButton","Close","onClick","CancelIcon","ToastContextProvider","useToastContext","createContext","add","update","remove","noop","removeAll","leftToasts","rightToasts","DEFAULT_OFFSET","left","right","bottom","ToastProvider","container","givenContainer","offset","children","rootElement","useRootElement","isMounted","useIsMounted","toastContextValue","useToastProviderValues","dismiss","createContainer","toasts","InvertedThemeProvider","style","px","ToastContainer","id","rest","Object","assign","value","createPortal","useToast","context","Error","addToast","updateToast","removeToast","removeAllToasts"],"mappings":"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"}
1
+ {"version":3,"file":"Toast.mjs","sources":["../../../../src/components/Toast/Toast.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from 'react'\nimport { createPortal } from 'react-dom'\n\nimport {\n CancelIcon,\n CheckCircleFilledIcon,\n ErrorTriangleFilledIcon,\n InfoFilledIcon,\n WifiIcon,\n WifiOffIcon,\n} from '@channel.io/bezier-icons'\nimport classNames from 'classnames'\n\nimport useIsMounted from '~/src/hooks/useIsMounted'\nimport { getZIndexClassName } from '~/src/types/props-helpers'\nimport { ariaAttr } from '~/src/utils/aria'\nimport { noop } from '~/src/utils/function'\nimport { createContext } from '~/src/utils/react'\nimport { px } from '~/src/utils/style'\nimport { isString } from '~/src/utils/type'\n\nimport { BaseButton } from '~/src/components/BaseButton'\nimport { Icon } from '~/src/components/Icon'\nimport { Text } from '~/src/components/Text'\nimport { InvertedThemeProvider } from '~/src/components/ThemeProvider'\nimport { useRootElement, useWindow } from '~/src/components/WindowProvider'\n\nimport {\n type ToastContextValue,\n type ToastPlacement,\n type ToastPreset,\n type ToastProps,\n type ToastProviderProps,\n type ToastType,\n} from './Toast.types'\nimport useToastProviderValues from './useToastContextValues'\n\nimport styles from './Toast.module.scss'\n\nfunction getToastPreset(preset: ToastPreset) {\n return {\n success: {\n icon: CheckCircleFilledIcon,\n appearance: 'success',\n },\n error: {\n icon: ErrorTriangleFilledIcon,\n appearance: 'error',\n },\n offline: {\n icon: WifiOffIcon,\n appearance: 'warning',\n },\n online: {\n icon: WifiIcon,\n appearance: 'success',\n },\n default: {\n icon: InfoFilledIcon,\n appearance: 'info',\n },\n }[preset]\n}\n\nexport function Toast({\n placement,\n appearance: appearanceProp,\n preset = 'default',\n icon: iconProp,\n content,\n zIndex = 'toast',\n autoDismiss = true,\n autoDismissTimeout,\n version = 0,\n onDismiss,\n}: ToastProps) {\n const { window } = useWindow()\n\n const dismissTimer = useRef<ReturnType<Window['setTimeout']>>()\n\n const [isSlidingOut, setIsSlidingOut] = useState(false)\n\n const className = classNames(\n styles.ToastElement,\n zIndex && getZIndexClassName(zIndex),\n placement && styles[`placement-${placement}`],\n isSlidingOut && styles['slide-out']\n )\n\n const runSlideOutAnimation = useCallback(() => {\n setIsSlidingOut(true)\n }, [])\n\n const handleAnimationEnd = useCallback<React.AnimationEventHandler>(\n (event) => {\n if (\n event.animationName === styles['slide-out-left'] ||\n event.animationName === styles['slide-out-right']\n ) {\n onDismiss?.()\n }\n },\n [onDismiss]\n )\n\n useEffect(\n function startDismissTimer() {\n if (autoDismiss) {\n dismissTimer.current = window.setTimeout(\n runSlideOutAnimation,\n autoDismissTimeout\n )\n }\n\n return function cleanup() {\n if (dismissTimer.current != null) {\n clearTimeout(dismissTimer.current)\n }\n }\n },\n [autoDismiss, autoDismissTimeout, runSlideOutAnimation, window, version]\n )\n\n const { appearance, icon } = getToastPreset(preset)\n\n return (\n <div\n role=\"status\"\n className={className}\n onAnimationEnd={handleAnimationEnd}\n aria-hidden={ariaAttr(isSlidingOut)}\n >\n <div\n className={classNames(\n styles.IconWrapper,\n styles[`appearance-${appearanceProp ?? appearance}`]\n )}\n >\n <Icon\n source={iconProp ?? icon}\n size=\"s\"\n />\n </div>\n\n <div className={styles.Content}>\n <Text\n className={styles.EllipsisableContent}\n typo=\"14\"\n color=\"txt-black-darkest\"\n truncated={5}\n >\n {isString(content)\n ? content.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 : content}\n </Text>\n </div>\n\n <BaseButton\n className={styles.Close}\n onClick={runSlideOutAnimation}\n >\n <Icon\n source={CancelIcon}\n size=\"xs\"\n />\n </BaseButton>\n </div>\n )\n}\n\nconst [ToastContextProvider, useToastContext] =\n createContext<ToastContextValue>({\n add: () => '',\n update: () => '',\n remove: noop,\n removeAll: noop,\n leftToasts: [],\n rightToasts: [],\n })\n\nconst DEFAULT_OFFSET = {\n left: 0,\n right: 0,\n bottom: 0,\n}\n\nexport function ToastProvider({\n autoDismissTimeout = 3000,\n container: givenContainer,\n offset = DEFAULT_OFFSET,\n children = [],\n}: ToastProviderProps) {\n const rootElement = useRootElement()\n const isMounted = useIsMounted()\n\n const toastContextValue = useToastProviderValues()\n const { leftToasts, rightToasts, dismiss } = toastContextValue\n const container = givenContainer ?? rootElement\n\n const createContainer = useCallback(\n (placement: ToastPlacement, toasts: ToastType[]) => (\n <InvertedThemeProvider key={placement}>\n <div\n style={{\n bottom: px(offset?.bottom ?? DEFAULT_OFFSET.bottom),\n ...(placement === 'bottom-right'\n ? { right: px(offset?.right ?? DEFAULT_OFFSET.right) }\n : { left: px(offset?.left ?? DEFAULT_OFFSET.left) }),\n }}\n className={styles.ToastContainer}\n >\n {toasts.map(({ id, onDismiss, ...rest }) => (\n <Toast\n {...rest}\n key={id}\n placement={placement}\n autoDismissTimeout={autoDismissTimeout}\n onDismiss={() => dismiss(id, onDismiss)}\n />\n ))}\n </div>\n </InvertedThemeProvider>\n ),\n [autoDismissTimeout, dismiss, offset]\n )\n\n return (\n <ToastContextProvider value={toastContextValue}>\n {children}\n {isMounted &&\n createPortal(\n [\n createContainer('bottom-left', leftToasts),\n createContainer('bottom-right', rightToasts),\n ],\n container\n )}\n </ToastContextProvider>\n )\n}\n\nexport function useToast() {\n const context = useToastContext()\n\n if (!context) {\n throw Error(\"'useToast' must be used within 'ToastProvider'\")\n }\n\n return {\n addToast: context.add,\n updateToast: context.update,\n removeToast: context.remove,\n removeAllToasts: context.removeAll,\n leftToasts: context.leftToasts,\n rightToasts: context.rightToasts,\n }\n}\n"],"names":["getToastPreset","preset","success","icon","CheckCircleFilledIcon","appearance","error","ErrorTriangleFilledIcon","offline","WifiOffIcon","online","WifiIcon","default","InfoFilledIcon","Toast","placement","appearanceProp","iconProp","content","zIndex","autoDismiss","autoDismissTimeout","version","onDismiss","window","useWindow","dismissTimer","useRef","isSlidingOut","setIsSlidingOut","useState","className","classNames","styles","ToastElement","getZIndexClassName","runSlideOutAnimation","useCallback","handleAnimationEnd","event","animationName","useEffect","startDismissTimer","current","setTimeout","cleanup","clearTimeout","React","createElement","role","onAnimationEnd","ariaAttr","IconWrapper","Icon","source","size","Content","Text","EllipsisableContent","typo","color","truncated","isString","split","map","str","index","Fragment","key","BaseButton","Close","onClick","CancelIcon","ToastContextProvider","useToastContext","createContext","add","update","remove","noop","removeAll","leftToasts","rightToasts","DEFAULT_OFFSET","left","right","bottom","ToastProvider","container","givenContainer","offset","children","rootElement","useRootElement","isMounted","useIsMounted","toastContextValue","useToastProviderValues","dismiss","createContainer","toasts","InvertedThemeProvider","style","px","ToastContainer","id","rest","Object","assign","value","createPortal","useToast","context","Error","addToast","updateToast","removeToast","removeAllToasts"],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { useLayoutEffect, useEffect } from 'react';
2
+
3
+ /**
4
+ * @description This hook is used to handle the layout effect in a way that is compatible with SSR.
5
+ * In Server Environments, this hook will use `useEffect` instead of `useLayoutEffect`.
6
+ * @see https://react.dev/reference/react/useLayoutEffect#troubleshooting
7
+ */
8
+ const useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;
9
+
10
+ export { useIsomorphicLayoutEffect };
11
+ //# sourceMappingURL=useIsomorphicLayoutEffect.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useIsomorphicLayoutEffect.mjs","sources":["../../../src/hooks/useIsomorphicLayoutEffect.ts"],"sourcesContent":["import { useEffect, useLayoutEffect } from 'react'\n\n/**\n * @description This hook is used to handle the layout effect in a way that is compatible with SSR.\n * In Server Environments, this hook will use `useEffect` instead of `useLayoutEffect`.\n * @see https://react.dev/reference/react/useLayoutEffect#troubleshooting\n */\nexport const useIsomorphicLayoutEffect =\n typeof window !== 'undefined' ? useLayoutEffect : useEffect\n"],"names":["useIsomorphicLayoutEffect","window","useLayoutEffect","useEffect"],"mappings":";;AAEA;AACA;AACA;AACA;AACA;AACO,MAAMA,yBAAyB,GACpC,OAAOC,MAAM,KAAK,WAAW,GAAGC,eAAe,GAAGC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useMergeRefs.mjs","sources":["../../../src/hooks/useMergeRefs.ts"],"sourcesContent":["import { useMemo } from 'react'\n\ntype ReactRef<Node> =\n | React.RefCallback<Node>\n | React.MutableRefObject<Node | null>\n\ntype Ref<Node> = ReactRef<Node> | null | undefined\ntype Refs<Node> = Array<Ref<Node>>\n\nfunction assignRef<Node>(ref: Ref<Node>, value: Node | null) {\n if (ref === null || ref === undefined) {\n return\n }\n\n if (typeof ref === 'function') {\n ref(value)\n return\n }\n\n try {\n ref.current = value\n } catch (error) {\n throw new Error(`Cannot assign value '${value}' to ref '${ref}'`)\n }\n}\n\nfunction mergeRefs<Node>(...refs: Refs<Node>) {\n return (node: Node | null) => {\n refs.forEach((ref) => {\n assignRef(ref, node)\n })\n }\n}\n\nexport default function useMergeRefs<Node>(...refs: Refs<Node>) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return useMemo(() => mergeRefs(...refs), refs)\n}\n"],"names":["assignRef","ref","value","undefined","current","error","Error","mergeRefs","refs","node","forEach","useMergeRefs","useMemo"],"mappings":";;AASA,SAASA,SAASA,CAAOC,GAAc,EAAEC,KAAkB,EAAE;AAC3D,EAAA,IAAID,GAAG,KAAK,IAAI,IAAIA,GAAG,KAAKE,SAAS,EAAE;AACrC,IAAA,OAAA;AACF,GAAA;AAEA,EAAA,IAAI,OAAOF,GAAG,KAAK,UAAU,EAAE;IAC7BA,GAAG,CAACC,KAAK,CAAC,CAAA;AACV,IAAA,OAAA;AACF,GAAA;EAEA,IAAI;IACFD,GAAG,CAACG,OAAO,GAAGF,KAAK,CAAA;GACpB,CAAC,OAAOG,KAAK,EAAE;IACd,MAAM,IAAIC,KAAK,CAAE,CAAA,qBAAA,EAAuBJ,KAAM,CAAYD,UAAAA,EAAAA,GAAI,GAAE,CAAC,CAAA;AACnE,GAAA;AACF,CAAA;AAEA,SAASM,SAASA,CAAO,GAAGC,IAAgB,EAAE;AAC5C,EAAA,OAAQC,IAAiB,IAAK;AAC5BD,IAAAA,IAAI,CAACE,OAAO,CAAET,GAAG,IAAK;AACpBD,MAAAA,SAAS,CAACC,GAAG,EAAEQ,IAAI,CAAC,CAAA;AACtB,KAAC,CAAC,CAAA;GACH,CAAA;AACH,CAAA;AAEe,SAASE,YAAYA,CAAO,GAAGH,IAAgB,EAAE;AAC9D;EACA,OAAOI,OAAO,CAAC,MAAML,SAAS,CAAC,GAAGC,IAAI,CAAC,EAAEA,IAAI,CAAC,CAAA;AAChD;;;;"}
1
+ {"version":3,"file":"useMergeRefs.mjs","sources":["../../../src/hooks/useMergeRefs.ts"],"sourcesContent":["import { useMemo } from 'react'\n\ntype ReactRef<Node> =\n | React.RefCallback<Node>\n | React.MutableRefObject<Node | null>\n\ntype Ref<Node> = ReactRef<Node> | null | undefined\ntype Refs<Node> = Array<Ref<Node>>\n\nfunction assignRef<Node>(ref: Ref<Node>, value: Node | null) {\n if (ref === null || ref === undefined) {\n return\n }\n\n if (typeof ref === 'function') {\n ref(value)\n return\n }\n\n try {\n ref.current = value\n } catch (error) {\n throw new Error(`Cannot assign value '${value}' to ref '${ref}'`)\n }\n}\n\nfunction mergeRefs<Node>(...refs: Refs<Node>) {\n return (node: Node | null) => {\n refs.forEach((ref) => {\n assignRef(ref, node)\n })\n }\n}\n\nexport default function useMergeRefs<Node>(...refs: Refs<Node>) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return useMemo(() => mergeRefs(...refs), refs)\n}\n"],"names":["assignRef","ref","value","undefined","current","error","Error","mergeRefs","refs","node","forEach","useMergeRefs","useMemo"],"mappings":";;AASA,SAASA,SAASA,CAAOC,GAAc,EAAEC,KAAkB,EAAE;AAC3D,EAAA,IAAID,GAAG,KAAK,IAAI,IAAIA,GAAG,KAAKE,SAAS,EAAE;AACrC,IAAA,OAAA;AACF,GAAA;AAEA,EAAA,IAAI,OAAOF,GAAG,KAAK,UAAU,EAAE;IAC7BA,GAAG,CAACC,KAAK,CAAC,CAAA;AACV,IAAA,OAAA;AACF,GAAA;EAEA,IAAI;IACFD,GAAG,CAACG,OAAO,GAAGF,KAAK,CAAA;GACpB,CAAC,OAAOG,KAAK,EAAE;IACd,MAAM,IAAIC,KAAK,CAAC,CAAA,qBAAA,EAAwBJ,KAAK,CAAaD,UAAAA,EAAAA,GAAG,GAAG,CAAC,CAAA;AACnE,GAAA;AACF,CAAA;AAEA,SAASM,SAASA,CAAO,GAAGC,IAAgB,EAAE;AAC5C,EAAA,OAAQC,IAAiB,IAAK;AAC5BD,IAAAA,IAAI,CAACE,OAAO,CAAET,GAAG,IAAK;AACpBD,MAAAA,SAAS,CAACC,GAAG,EAAEQ,IAAI,CAAC,CAAA;AACtB,KAAC,CAAC,CAAA;GACH,CAAA;AACH,CAAA;AAEe,SAASE,YAAYA,CAAO,GAAGH,IAAgB,EAAE;AAC9D;EACA,OAAOI,OAAO,CAAC,MAAML,SAAS,CAAC,GAAGC,IAAI,CAAC,EAAEA,IAAI,CAAC,CAAA;AAChD;;;;"}
@@ -5,7 +5,9 @@ export { AvatarGroup as AlphaAvatarGroup } from './components/AlphaAvatarGroup/A
5
5
  export { Button as AlphaButton } from './components/AlphaButton/Button.mjs';
6
6
  export { DialogPrimitive as AlphaDialogPrimitive, DialogPrimitiveClose as AlphaDialogPrimitiveClose, DialogPrimitiveContent as AlphaDialogPrimitiveContent, DialogPrimitiveDescription as AlphaDialogPrimitiveDescription, DialogPrimitiveOverlay as AlphaDialogPrimitiveOverlay, DialogPrimitivePortal as AlphaDialogPrimitivePortal, DialogPrimitiveTitle as AlphaDialogPrimitiveTitle, DialogPrimitiveTrigger as AlphaDialogPrimitiveTrigger } from './components/AlphaDialogPrimitive/DialogPrimitive.mjs';
7
7
  export { FloatingButton as AlphaFloatingButton } from './components/AlphaFloatingButton/FloatingButton.mjs';
8
+ export { FloatingIconButton as AlphaFloatingIconButton } from './components/AlphaFloatingIconButton/FloatingIconButton.mjs';
8
9
  export { IconButton as AlphaIconButton } from './components/AlphaIconButton/IconButton.mjs';
10
+ export { Spinner as AlphaSpinner } from './components/AlphaSpinner/Spinner.mjs';
9
11
  export { TooltipPrimitive as AlphaTooltipPrimitive, TooltipPrimitiveArrow as AlphaTooltipPrimitiveArrow, TooltipPrimitiveContent as AlphaTooltipPrimitiveContent, TooltipPrimitivePortal as AlphaTooltipPrimitivePortal, TooltipPrimitiveProvider as AlphaTooltipPrimitiveProvider, TooltipPrimitiveTrigger as AlphaTooltipPrimitiveTrigger } from './components/AlphaTooltipPrimitive/TooltipPrimitive.mjs';
10
12
  export { AppProvider } from './components/AppProvider/AppProvider.mjs';
11
13
  export { AutoFocus } from './components/AutoFocus/AutoFocus.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}