@clickhouse/click-ui 0.6.0 → 0.6.1-rc2

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 (286) hide show
  1. package/dist/cjs/click-ui.css +2274 -176
  2. package/dist/cjs/components/Assets/Flags/system/Flag.cjs +1 -1
  3. package/dist/cjs/components/Assets/Flags/system/Flag.cjs.map +1 -1
  4. package/dist/cjs/components/Assets/Icons/Check.cjs +1 -1
  5. package/dist/cjs/components/Assets/Icons/Check.cjs.map +1 -1
  6. package/dist/cjs/components/Assets/Icons/Popin.cjs +10 -0
  7. package/dist/cjs/components/Assets/Icons/Popin.cjs.map +1 -0
  8. package/dist/cjs/components/Assets/Icons/system/IconsLight.cjs +2 -0
  9. package/dist/cjs/components/Assets/Icons/system/IconsLight.cjs.map +1 -1
  10. package/dist/cjs/components/Assets/Logos/system/Logo.cjs +1 -1
  11. package/dist/cjs/components/Assets/Logos/system/Logo.cjs.map +1 -1
  12. package/dist/cjs/components/Assets/Payments/system/Payment.cjs +1 -1
  13. package/dist/cjs/components/Assets/Payments/system/Payment.cjs.map +1 -1
  14. package/dist/cjs/components/Assets/config.cjs +1 -0
  15. package/dist/cjs/components/Assets/config.cjs.map +1 -1
  16. package/dist/cjs/components/Avatar/Avatar.css +61 -0
  17. package/dist/cjs/components/Avatar/Avatar.module.css.cjs +24 -0
  18. package/dist/cjs/components/Avatar/Avatar.module.css.cjs.map +1 -0
  19. package/dist/cjs/components/Avatar/index.cjs +21 -26
  20. package/dist/cjs/components/Avatar/index.cjs.map +1 -1
  21. package/dist/cjs/components/Badge/Badge.css +232 -0
  22. package/dist/cjs/components/Badge/Badge.module.css.cjs +83 -0
  23. package/dist/cjs/components/Badge/Badge.module.css.cjs.map +1 -0
  24. package/dist/cjs/components/Badge/index.cjs +81 -51
  25. package/dist/cjs/components/Badge/index.cjs.map +1 -1
  26. package/dist/cjs/components/Button/Button.css +31 -20
  27. package/dist/cjs/components/Button/Button.module.css.cjs +5 -5
  28. package/dist/cjs/components/Button/index.cjs +1 -1
  29. package/dist/cjs/components/Button/index.cjs.map +1 -1
  30. package/dist/cjs/components/ButtonGroup/ButtonGroup.css +85 -0
  31. package/dist/cjs/components/ButtonGroup/ButtonGroup.module.css.cjs +33 -0
  32. package/dist/cjs/components/ButtonGroup/ButtonGroup.module.css.cjs.map +1 -0
  33. package/dist/cjs/components/ButtonGroup/index.cjs +46 -71
  34. package/dist/cjs/components/ButtonGroup/index.cjs.map +1 -1
  35. package/dist/cjs/components/CardHorizontal/CardHorizontal.css +216 -0
  36. package/dist/cjs/components/CardHorizontal/CardHorizontal.module.css.cjs +72 -0
  37. package/dist/cjs/components/CardHorizontal/CardHorizontal.module.css.cjs.map +1 -0
  38. package/dist/cjs/components/CardHorizontal/index.cjs +78 -101
  39. package/dist/cjs/components/CardHorizontal/index.cjs.map +1 -1
  40. package/dist/cjs/components/CardPrimary/CardPrimary.css +182 -0
  41. package/dist/cjs/components/CardPrimary/CardPrimary.module.css.cjs +81 -0
  42. package/dist/cjs/components/CardPrimary/CardPrimary.module.css.cjs.map +1 -0
  43. package/dist/cjs/components/CardPrimary/CardPrimaryTopBadge.cjs +12 -12
  44. package/dist/cjs/components/CardPrimary/CardPrimaryTopBadge.cjs.map +1 -1
  45. package/dist/cjs/components/CardPrimary/index.cjs +80 -79
  46. package/dist/cjs/components/CardPrimary/index.cjs.map +1 -1
  47. package/dist/cjs/components/CardPrimary/withTopBadge.cjs +1 -1
  48. package/dist/cjs/components/CardPrimary/withTopBadge.cjs.map +1 -1
  49. package/dist/cjs/components/Checkbox/Checkbox.css +116 -0
  50. package/dist/cjs/components/Checkbox/Checkbox.module.css.cjs +39 -0
  51. package/dist/cjs/components/Checkbox/Checkbox.module.css.cjs.map +1 -0
  52. package/dist/cjs/components/Checkbox/index.cjs +36 -49
  53. package/dist/cjs/components/Checkbox/index.cjs.map +1 -1
  54. package/dist/cjs/components/Container/Container.css +189 -0
  55. package/dist/cjs/components/Container/Container.module.css.cjs +90 -0
  56. package/dist/cjs/components/Container/Container.module.css.cjs.map +1 -0
  57. package/dist/cjs/components/Container/index.cjs +91 -55
  58. package/dist/cjs/components/Container/index.cjs.map +1 -1
  59. package/dist/cjs/components/DateDetails/index.cjs +2 -2
  60. package/dist/cjs/components/DateDetails/index.cjs.map +1 -1
  61. package/dist/cjs/components/EllipsisContent/index.cjs.map +1 -1
  62. package/dist/cjs/components/GenericLabel/GenericLabel.css +31 -0
  63. package/dist/cjs/components/GenericLabel/GenericLabel.module.css.cjs +11 -0
  64. package/dist/cjs/components/GenericLabel/GenericLabel.module.css.cjs.map +1 -0
  65. package/dist/cjs/components/GenericLabel/index.cjs +14 -25
  66. package/dist/cjs/components/GenericLabel/index.cjs.map +1 -1
  67. package/dist/cjs/components/GridContainer/index.cjs.map +1 -1
  68. package/dist/cjs/components/Icon/Icon.css +134 -0
  69. package/dist/cjs/components/Icon/Icon.module.css.cjs +27 -0
  70. package/dist/cjs/components/Icon/Icon.module.css.cjs.map +1 -0
  71. package/dist/cjs/components/Icon/Icon.stories.css +36 -0
  72. package/dist/cjs/components/Icon/SvgImageElement.cjs +30 -12
  73. package/dist/cjs/components/Icon/SvgImageElement.cjs.map +1 -1
  74. package/dist/cjs/components/Icon/index.cjs +43 -34
  75. package/dist/cjs/components/Icon/index.cjs.map +1 -1
  76. package/dist/cjs/components/IconButton/IconButton.css +145 -0
  77. package/dist/cjs/components/IconButton/IconButton.module.css.cjs +33 -0
  78. package/dist/cjs/components/IconButton/IconButton.module.css.cjs.map +1 -0
  79. package/dist/cjs/components/IconButton/index.cjs +30 -41
  80. package/dist/cjs/components/IconButton/index.cjs.map +1 -1
  81. package/dist/cjs/components/Label/Label.css +32 -0
  82. package/dist/cjs/components/Label/Label.module.css.cjs +18 -0
  83. package/dist/cjs/components/Label/Label.module.css.cjs.map +1 -0
  84. package/dist/cjs/components/Label/index.cjs +24 -27
  85. package/dist/cjs/components/Label/index.cjs.map +1 -1
  86. package/dist/cjs/components/Link/Link.css +135 -0
  87. package/dist/cjs/components/Link/Link.module.css.cjs +43 -0
  88. package/dist/cjs/components/Link/Link.module.css.cjs.map +1 -0
  89. package/dist/cjs/components/Link/index.cjs +51 -18
  90. package/dist/cjs/components/Link/index.cjs.map +1 -1
  91. package/dist/cjs/components/ProgressBar/ProgressBar.css +124 -0
  92. package/dist/cjs/components/ProgressBar/ProgressBar.module.css.cjs +42 -0
  93. package/dist/cjs/components/ProgressBar/ProgressBar.module.css.cjs.map +1 -0
  94. package/dist/cjs/components/ProgressBar/index.cjs +44 -66
  95. package/dist/cjs/components/ProgressBar/index.cjs.map +1 -1
  96. package/dist/cjs/components/Separator/Separator.css +81 -0
  97. package/dist/cjs/components/Separator/Separator.module.css.cjs +24 -0
  98. package/dist/cjs/components/Separator/Separator.module.css.cjs.map +1 -0
  99. package/dist/cjs/components/Separator/index.cjs +26 -18
  100. package/dist/cjs/components/Separator/index.cjs.map +1 -1
  101. package/dist/cjs/components/Spacer/Spacer.css +28 -0
  102. package/dist/cjs/components/Spacer/Spacer.module.css.cjs +30 -0
  103. package/dist/cjs/components/Spacer/Spacer.module.css.cjs.map +1 -0
  104. package/dist/cjs/components/Spacer/index.cjs +22 -8
  105. package/dist/cjs/components/Spacer/index.cjs.map +1 -1
  106. package/dist/cjs/components/Switch/Switch.css +65 -0
  107. package/dist/cjs/components/Switch/Switch.module.css.cjs +16 -0
  108. package/dist/cjs/components/Switch/Switch.module.css.cjs.map +1 -0
  109. package/dist/cjs/components/Switch/index.cjs +7 -70
  110. package/dist/cjs/components/Switch/index.cjs.map +1 -1
  111. package/dist/cjs/components/Text/Text.css +125 -0
  112. package/dist/cjs/components/Text/Text.module.css.cjs +57 -0
  113. package/dist/cjs/components/Text/Text.module.css.cjs.map +1 -0
  114. package/dist/cjs/components/Text/index.cjs +133 -16
  115. package/dist/cjs/components/Text/index.cjs.map +1 -1
  116. package/dist/cjs/components/Title/Title.css +99 -0
  117. package/dist/cjs/components/Title/Title.module.css.cjs +37 -0
  118. package/dist/cjs/components/Title/Title.module.css.cjs.map +1 -0
  119. package/dist/cjs/components/Title/index.cjs +85 -19
  120. package/dist/cjs/components/Title/index.cjs.map +1 -1
  121. package/dist/cjs/index.cjs +2 -2
  122. package/dist/cjs/{components/Link/common.cjs → styles/linkStyles.cjs} +1 -1
  123. package/dist/cjs/styles/linkStyles.cjs.map +1 -0
  124. package/dist/cjs/theme/styles/tokens-dark.css +3 -0
  125. package/dist/cjs/theme/styles/tokens-light.css +4 -0
  126. package/dist/cjs/theme/tokens/variables.dark.cjs +4 -2
  127. package/dist/cjs/theme/tokens/variables.dark.cjs.map +1 -1
  128. package/dist/cjs/theme/tokens/variables.light.cjs +6 -1
  129. package/dist/cjs/theme/tokens/variables.light.cjs.map +1 -1
  130. package/dist/esm/click-ui.css +2274 -176
  131. package/dist/esm/components/Assets/Flags/system/Flag.js +1 -1
  132. package/dist/esm/components/Assets/Flags/system/Flag.js.map +1 -1
  133. package/dist/esm/components/Assets/Icons/Check.js +1 -1
  134. package/dist/esm/components/Assets/Icons/Check.js.map +1 -1
  135. package/dist/esm/components/Assets/Icons/Popin.js +6 -0
  136. package/dist/esm/components/Assets/Icons/Popin.js.map +1 -0
  137. package/dist/esm/components/Assets/Icons/system/IconsLight.js +2 -0
  138. package/dist/esm/components/Assets/Icons/system/IconsLight.js.map +1 -1
  139. package/dist/esm/components/Assets/Logos/system/Logo.js +1 -1
  140. package/dist/esm/components/Assets/Logos/system/Logo.js.map +1 -1
  141. package/dist/esm/components/Assets/Payments/system/Payment.js +1 -1
  142. package/dist/esm/components/Assets/Payments/system/Payment.js.map +1 -1
  143. package/dist/esm/components/Assets/config.js +1 -0
  144. package/dist/esm/components/Assets/config.js.map +1 -1
  145. package/dist/esm/components/Avatar/Avatar.css +61 -0
  146. package/dist/esm/components/Avatar/Avatar.module.css.js +15 -0
  147. package/dist/esm/components/Avatar/Avatar.module.css.js.map +1 -0
  148. package/dist/esm/components/Avatar/index.js +21 -26
  149. package/dist/esm/components/Avatar/index.js.map +1 -1
  150. package/dist/esm/components/Badge/Badge.css +232 -0
  151. package/dist/esm/components/Badge/Badge.module.css.js +59 -0
  152. package/dist/esm/components/Badge/Badge.module.css.js.map +1 -0
  153. package/dist/esm/components/Badge/index.js +81 -51
  154. package/dist/esm/components/Badge/index.js.map +1 -1
  155. package/dist/esm/components/Button/Button.css +31 -20
  156. package/dist/esm/components/Button/Button.module.css.js +5 -5
  157. package/dist/esm/components/Button/index.js +1 -1
  158. package/dist/esm/components/Button/index.js.map +1 -1
  159. package/dist/esm/components/ButtonGroup/ButtonGroup.css +85 -0
  160. package/dist/esm/components/ButtonGroup/ButtonGroup.module.css.js +21 -0
  161. package/dist/esm/components/ButtonGroup/ButtonGroup.module.css.js.map +1 -0
  162. package/dist/esm/components/ButtonGroup/index.js +47 -72
  163. package/dist/esm/components/ButtonGroup/index.js.map +1 -1
  164. package/dist/esm/components/CardHorizontal/CardHorizontal.css +216 -0
  165. package/dist/esm/components/CardHorizontal/CardHorizontal.module.css.js +47 -0
  166. package/dist/esm/components/CardHorizontal/CardHorizontal.module.css.js.map +1 -0
  167. package/dist/esm/components/CardHorizontal/index.js +78 -101
  168. package/dist/esm/components/CardHorizontal/index.js.map +1 -1
  169. package/dist/esm/components/CardPrimary/CardPrimary.css +182 -0
  170. package/dist/esm/components/CardPrimary/CardPrimary.module.css.js +53 -0
  171. package/dist/esm/components/CardPrimary/CardPrimary.module.css.js.map +1 -0
  172. package/dist/esm/components/CardPrimary/CardPrimaryTopBadge.js +12 -12
  173. package/dist/esm/components/CardPrimary/CardPrimaryTopBadge.js.map +1 -1
  174. package/dist/esm/components/CardPrimary/index.js +80 -79
  175. package/dist/esm/components/CardPrimary/index.js.map +1 -1
  176. package/dist/esm/components/CardPrimary/withTopBadge.js +1 -1
  177. package/dist/esm/components/CardPrimary/withTopBadge.js.map +1 -1
  178. package/dist/esm/components/Checkbox/Checkbox.css +116 -0
  179. package/dist/esm/components/Checkbox/Checkbox.module.css.js +25 -0
  180. package/dist/esm/components/Checkbox/Checkbox.module.css.js.map +1 -0
  181. package/dist/esm/components/Checkbox/index.js +36 -49
  182. package/dist/esm/components/Checkbox/index.js.map +1 -1
  183. package/dist/esm/components/Container/Container.css +189 -0
  184. package/dist/esm/components/Container/Container.module.css.js +64 -0
  185. package/dist/esm/components/Container/Container.module.css.js.map +1 -0
  186. package/dist/esm/components/Container/index.js +92 -56
  187. package/dist/esm/components/Container/index.js.map +1 -1
  188. package/dist/esm/components/DateDetails/index.js +1 -1
  189. package/dist/esm/components/DateDetails/index.js.map +1 -1
  190. package/dist/esm/components/EllipsisContent/index.js.map +1 -1
  191. package/dist/esm/components/GenericLabel/GenericLabel.css +31 -0
  192. package/dist/esm/components/GenericLabel/GenericLabel.module.css.js +7 -0
  193. package/dist/esm/components/GenericLabel/GenericLabel.module.css.js.map +1 -0
  194. package/dist/esm/components/GenericLabel/index.js +14 -25
  195. package/dist/esm/components/GenericLabel/index.js.map +1 -1
  196. package/dist/esm/components/GridContainer/index.js.map +1 -1
  197. package/dist/esm/components/Icon/Icon.css +134 -0
  198. package/dist/esm/components/Icon/Icon.module.css.js +23 -0
  199. package/dist/esm/components/Icon/Icon.module.css.js.map +1 -0
  200. package/dist/esm/components/Icon/Icon.stories.css +36 -0
  201. package/dist/esm/components/Icon/SvgImageElement.js +30 -12
  202. package/dist/esm/components/Icon/SvgImageElement.js.map +1 -1
  203. package/dist/esm/components/Icon/index.js +43 -34
  204. package/dist/esm/components/Icon/index.js.map +1 -1
  205. package/dist/esm/components/IconButton/IconButton.css +145 -0
  206. package/dist/esm/components/IconButton/IconButton.module.css.js +21 -0
  207. package/dist/esm/components/IconButton/IconButton.module.css.js.map +1 -0
  208. package/dist/esm/components/IconButton/index.js +29 -40
  209. package/dist/esm/components/IconButton/index.js.map +1 -1
  210. package/dist/esm/components/Label/Label.css +32 -0
  211. package/dist/esm/components/Label/Label.module.css.js +11 -0
  212. package/dist/esm/components/Label/Label.module.css.js.map +1 -0
  213. package/dist/esm/components/Label/index.js +24 -27
  214. package/dist/esm/components/Label/index.js.map +1 -1
  215. package/dist/esm/components/Link/Link.css +135 -0
  216. package/dist/esm/components/Link/Link.module.css.js +29 -0
  217. package/dist/esm/components/Link/Link.module.css.js.map +1 -0
  218. package/dist/esm/components/Link/index.js +51 -18
  219. package/dist/esm/components/Link/index.js.map +1 -1
  220. package/dist/esm/components/ProgressBar/ProgressBar.css +124 -0
  221. package/dist/esm/components/ProgressBar/ProgressBar.module.css.js +27 -0
  222. package/dist/esm/components/ProgressBar/ProgressBar.module.css.js.map +1 -0
  223. package/dist/esm/components/ProgressBar/index.js +44 -66
  224. package/dist/esm/components/ProgressBar/index.js.map +1 -1
  225. package/dist/esm/components/Separator/Separator.css +81 -0
  226. package/dist/esm/components/Separator/Separator.module.css.js +19 -0
  227. package/dist/esm/components/Separator/Separator.module.css.js.map +1 -0
  228. package/dist/esm/components/Separator/index.js +26 -18
  229. package/dist/esm/components/Separator/index.js.map +1 -1
  230. package/dist/esm/components/Spacer/Spacer.css +28 -0
  231. package/dist/esm/components/Spacer/Spacer.module.css.js +19 -0
  232. package/dist/esm/components/Spacer/Spacer.module.css.js.map +1 -0
  233. package/dist/esm/components/Spacer/index.js +22 -8
  234. package/dist/esm/components/Spacer/index.js.map +1 -1
  235. package/dist/esm/components/Switch/Switch.css +65 -0
  236. package/dist/esm/components/Switch/Switch.module.css.js +10 -0
  237. package/dist/esm/components/Switch/Switch.module.css.js.map +1 -0
  238. package/dist/esm/components/Switch/index.js +7 -70
  239. package/dist/esm/components/Switch/index.js.map +1 -1
  240. package/dist/esm/components/Text/Text.css +125 -0
  241. package/dist/esm/components/Text/Text.module.css.js +44 -0
  242. package/dist/esm/components/Text/Text.module.css.js.map +1 -0
  243. package/dist/esm/components/Text/index.js +133 -16
  244. package/dist/esm/components/Text/index.js.map +1 -1
  245. package/dist/esm/components/Title/Title.css +99 -0
  246. package/dist/esm/components/Title/Title.module.css.js +27 -0
  247. package/dist/esm/components/Title/Title.module.css.js.map +1 -0
  248. package/dist/esm/components/Title/index.js +85 -19
  249. package/dist/esm/components/Title/index.js.map +1 -1
  250. package/dist/esm/index.js +1 -1
  251. package/dist/esm/{components/Link/common.js → styles/linkStyles.js} +1 -1
  252. package/dist/esm/styles/linkStyles.js.map +1 -0
  253. package/dist/esm/theme/styles/tokens-dark.css +3 -0
  254. package/dist/esm/theme/styles/tokens-light.css +4 -0
  255. package/dist/esm/theme/tokens/variables.dark.js +4 -2
  256. package/dist/esm/theme/tokens/variables.dark.js.map +1 -1
  257. package/dist/esm/theme/tokens/variables.light.js +6 -1
  258. package/dist/esm/theme/tokens/variables.light.js.map +1 -1
  259. package/dist/types/components/Assets/Icons/Popin.d.ts +3 -0
  260. package/dist/types/components/Assets/Icons/system/types.d.ts +1 -1
  261. package/dist/types/components/Avatar/Avatar.d.ts +1 -1
  262. package/dist/types/components/Badge/Badge.d.ts +1 -1
  263. package/dist/types/components/ButtonGroup/ButtonGroup.d.ts +1 -1
  264. package/dist/types/components/ButtonGroup/ButtonGroup.types.d.ts +2 -2
  265. package/dist/types/components/CardHorizontal/CardHorizontal.d.ts +1 -1
  266. package/dist/types/components/CardPrimary/CardPrimaryTopBadge.d.ts +10 -4
  267. package/dist/types/components/Checkbox/Checkbox.d.ts +1 -1
  268. package/dist/types/components/Container/Container.d.ts +1 -1
  269. package/dist/types/components/EllipsisContent/EllipsisContent.d.ts +1 -1
  270. package/dist/types/components/GenericLabel/GenericLabel.d.ts +1 -1
  271. package/dist/types/components/GridContainer/GridContainer.d.ts +1 -1
  272. package/dist/types/components/Icon/SvgImageElement.d.ts +6 -3
  273. package/dist/types/components/IconWrapper/IconWrapper.types.d.ts +2 -2
  274. package/dist/types/components/Label/Label.d.ts +1 -1
  275. package/dist/types/components/Link/Link.d.ts +1 -1
  276. package/dist/types/components/ProgressBar/ProgressBar.d.ts +2 -40
  277. package/dist/types/components/Separator/Separator.d.ts +1 -1
  278. package/dist/types/components/Text/Text.d.ts +1 -1
  279. package/dist/types/index.d.ts +2 -2
  280. package/dist/types/{components/Link/common.d.ts → styles/linkStyles.d.ts} +1 -1
  281. package/dist/types/theme/theme.core.d.ts +7 -0
  282. package/dist/types/theme/tokens/variables.dark.d.ts +2 -0
  283. package/dist/types/theme/tokens/variables.light.d.ts +5 -0
  284. package/package.json +2 -2
  285. package/dist/cjs/components/Link/common.cjs.map +0 -1
  286. package/dist/esm/components/Link/common.js.map +0 -1
@@ -19,7 +19,7 @@ const buttonVariants = cva(styles.button, {
19
19
  left: styles["button_align-left"]
20
20
  },
21
21
  fillWidth: {
22
- true: styles["button_fill"]
22
+ true: styles["button_fill_width"]
23
23
  },
24
24
  loading: {
25
25
  true: styles["button_loading"]
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/Button/Button.tsx"],"sourcesContent":["import { Icon, IconName } from '@/components/Icon';\nimport { cn, cva } from '@/lib/cva';\nimport { forwardRef } from 'react';\nimport styles from './Button.module.css';\n\nexport type ButtonType = 'primary' | 'secondary' | 'empty' | 'danger';\ntype Alignment = 'center' | 'left';\n\nexport interface ButtonProps extends React.HTMLAttributes<HTMLButtonElement> {\n // TODO: The type prop ('primary' | 'secondary' | 'empty' | 'danger') shadows the native <button type=\"submit|reset|button\"> attribute. Since type is destructured before ...delegated, consumers can never pass type=\"submit\" for form submission. Consider renaming the visual variant prop to variant (consistent with the CSS class names button_primary etc.). This is a public API problem!\n /** The visual style variant of the button */\n type?: ButtonType;\n /** Whether the button is disabled */\n disabled?: boolean;\n /** The text label to display in the button */\n label?: string;\n /** Icon to display on the left side of the label */\n iconLeft?: IconName;\n /** Icon to display on the right side of the label */\n iconRight?: IconName;\n /** Alignment of the button content */\n align?: Alignment;\n /** Whether the button should fill the full width of its container */\n fillWidth?: boolean;\n /** Whether to show a loading state */\n loading?: boolean;\n /** Whether the button should be focused on mount */\n autoFocus?: boolean;\n}\n\nconst buttonVariants = cva(styles.button, {\n variants: {\n type: {\n primary: styles['button_primary'],\n secondary: styles['button_secondary'],\n empty: styles['button_empty'],\n danger: styles['button_danger'],\n },\n align: {\n center: styles['button_align-center'],\n left: styles['button_align-left'],\n },\n fillWidth: {\n true: styles['button_fill'],\n },\n loading: {\n true: styles['button_loading'],\n },\n },\n defaultVariants: {\n type: 'primary',\n align: 'center',\n },\n});\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n type = 'primary',\n iconLeft,\n iconRight,\n align = 'center',\n children,\n fillWidth,\n label,\n loading = false,\n disabled,\n className,\n ...delegated\n },\n ref\n ) => (\n <button\n ref={ref}\n className={cn(buttonVariants({ type, align, fillWidth, loading }), className)}\n disabled={disabled || loading}\n aria-disabled={disabled || loading || undefined}\n aria-busy={loading || undefined}\n {...delegated}\n >\n {iconLeft && (\n <span className={styles.button__icon}>\n <Icon\n name={iconLeft}\n aria-hidden\n size=\"sm\"\n />\n </span>\n )}\n\n <span className={styles.button__label}>{label ?? children}</span>\n\n {iconRight && (\n <span className={styles.button__icon}>\n <Icon\n name={iconRight}\n aria-hidden\n size=\"sm\"\n />\n </span>\n )}\n </button>\n )\n);\n\nButton.displayName = 'Button';\n"],"names":["buttonVariants","cva","styles","button","variants","type","primary","secondary","empty","danger","align","center","left","fillWidth","true","loading","defaultVariants","Button","forwardRef","iconLeft","iconRight","children","label","disabled","className","delegated","ref","cn","undefined","button__icon","Icon","button__label","displayName"],"mappings":";;;;;;;AA8BA,MAAMA,cAAAA,GAAiBC,GAAAA,CAAIC,MAAAA,CAAOC,MAAAA,EAAQ;AAAA,EACxCC,QAAAA,EAAU;AAAA,IACRC,IAAAA,EAAM;AAAA,MACJC,OAAAA,EAASJ,OAAO,gBAAgB,CAAA;AAAA,MAChCK,SAAAA,EAAWL,OAAO,kBAAkB,CAAA;AAAA,MACpCM,KAAAA,EAAON,OAAO,cAAc,CAAA;AAAA,MAC5BO,MAAAA,EAAQP,OAAO,eAAe;AAAA,KAChC;AAAA,IACAQ,KAAAA,EAAO;AAAA,MACLC,MAAAA,EAAQT,OAAO,qBAAqB,CAAA;AAAA,MACpCU,IAAAA,EAAMV,OAAO,mBAAmB;AAAA,KAClC;AAAA,IACAW,SAAAA,EAAW;AAAA,MACTC,IAAAA,EAAMZ,OAAO,aAAa;AAAA,KAC5B;AAAA,IACAa,OAAAA,EAAS;AAAA,MACPD,IAAAA,EAAMZ,OAAO,gBAAgB;AAAA;AAC/B,GACF;AAAA,EACAc,eAAAA,EAAiB;AAAA,IACfX,IAAAA,EAAM,SAAA;AAAA,IACNK,KAAAA,EAAO;AAAA;AAEX,CAAC,CAAA;AAEM,MAAMO,MAAAA,GAASC,WACpB,CACE;AAAA,EACEb,IAAAA,GAAO,SAAA;AAAA,EACPc,QAAAA;AAAAA,EACAC,SAAAA;AAAAA,EACAV,KAAAA,GAAQ,QAAA;AAAA,EACRW,QAAAA;AAAAA,EACAR,SAAAA;AAAAA,EACAS,KAAAA;AAAAA,EACAP,OAAAA,GAAU,KAAA;AAAA,EACVQ,QAAAA;AAAAA,EACAC,SAAAA;AAAAA,EACA,GAAGC;AACL,CAAA,EACAC,wBAEA,IAAA,CAAC,QAAA,EAAA,EACC,GAAA,EACA,SAAA,EAAWC,GAAG3B,cAAAA,CAAe;AAAA,EAAEK,IAAAA;AAAAA,EAAMK,KAAAA;AAAAA,EAAOG,SAAAA;AAAAA,EAAWE;AAAQ,CAAC,CAAA,EAAGS,SAAS,CAAA,EAC5E,QAAA,EAAUD,YAAYR,OAAAA,EACtB,eAAA,EAAeQ,QAAAA,IAAYR,OAAAA,IAAWa,MAAAA,EACtC,WAAA,EAAWb,OAAAA,IAAWa,MAAAA,EACtB,GAAIH,SAAAA,EAEHN,QAAAA,EAAAA;AAAAA,EAAAA,QAAAA,oBACC,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAWjB,MAAAA,CAAO2B,YAAAA,EACtB,QAAA,kBAAA,GAAA,CAACC,QAAA,EAAA,EACC,IAAA,EAAMX,QAAAA,EACN,aAAA,EAAW,IAAA,EACX,IAAA,EAAK,MAAI,CAAA,EAEb,CAAA;AAAA,sBAGD,MAAA,EAAA,EAAK,SAAA,EAAWjB,MAAAA,CAAO6B,aAAAA,EAAgBT,mBAASD,QAAAA,EAAS,CAAA;AAAA,EAEzDD,SAAAA,oBACC,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAWlB,OAAO2B,YAAAA,EACtB,QAAA,kBAAA,GAAA,CAACC,QAAA,EAAA,EACC,IAAA,EAAMV,SAAAA,EACN,aAAA,EAAW,IAAA,EACX,IAAA,EAAK,MAAI,CAAA,EAEb;AAAA,CAAA,EAEJ,CAEJ;AAEAH,MAAAA,CAAOe,WAAAA,GAAc,QAAA;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/Button/Button.tsx"],"sourcesContent":["import { Icon, IconName } from '@/components/Icon';\nimport { cn, cva } from '@/lib/cva';\nimport { forwardRef } from 'react';\nimport styles from './Button.module.css';\n\nexport type ButtonType = 'primary' | 'secondary' | 'empty' | 'danger';\ntype Alignment = 'center' | 'left';\n\nexport interface ButtonProps extends React.HTMLAttributes<HTMLButtonElement> {\n // TODO: The type prop ('primary' | 'secondary' | 'empty' | 'danger') shadows the native <button type=\"submit|reset|button\"> attribute. Since type is destructured before ...delegated, consumers can never pass type=\"submit\" for form submission. Consider renaming the visual variant prop to variant (consistent with the CSS class names button_primary etc.). This is a public API problem!\n /** The visual style variant of the button */\n type?: ButtonType;\n /** Whether the button is disabled */\n disabled?: boolean;\n /** The text label to display in the button */\n label?: string;\n /** Icon to display on the left side of the label */\n iconLeft?: IconName;\n /** Icon to display on the right side of the label */\n iconRight?: IconName;\n /** Alignment of the button content */\n align?: Alignment;\n /** Whether the button should fill the full width of its container */\n fillWidth?: boolean;\n /** Whether to show a loading state */\n loading?: boolean;\n /** Whether the button should be focused on mount */\n autoFocus?: boolean;\n}\n\nconst buttonVariants = cva(styles.button, {\n variants: {\n type: {\n primary: styles['button_primary'],\n secondary: styles['button_secondary'],\n empty: styles['button_empty'],\n danger: styles['button_danger'],\n },\n align: {\n center: styles['button_align-center'],\n left: styles['button_align-left'],\n },\n fillWidth: {\n true: styles['button_fill_width'],\n },\n loading: {\n true: styles['button_loading'],\n },\n },\n defaultVariants: {\n type: 'primary',\n align: 'center',\n },\n});\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n type = 'primary',\n iconLeft,\n iconRight,\n align = 'center',\n children,\n fillWidth,\n label,\n loading = false,\n disabled,\n className,\n ...delegated\n },\n ref\n ) => (\n <button\n ref={ref}\n className={cn(buttonVariants({ type, align, fillWidth, loading }), className)}\n disabled={disabled || loading}\n aria-disabled={disabled || loading || undefined}\n aria-busy={loading || undefined}\n {...delegated}\n >\n {iconLeft && (\n <span className={styles.button__icon}>\n <Icon\n name={iconLeft}\n aria-hidden\n size=\"sm\"\n />\n </span>\n )}\n\n <span className={styles.button__label}>{label ?? children}</span>\n\n {iconRight && (\n <span className={styles.button__icon}>\n <Icon\n name={iconRight}\n aria-hidden\n size=\"sm\"\n />\n </span>\n )}\n </button>\n )\n);\n\nButton.displayName = 'Button';\n"],"names":["buttonVariants","cva","styles","button","variants","type","primary","secondary","empty","danger","align","center","left","fillWidth","true","loading","defaultVariants","Button","forwardRef","iconLeft","iconRight","children","label","disabled","className","delegated","ref","cn","undefined","button__icon","Icon","button__label","displayName"],"mappings":";;;;;;;AA8BA,MAAMA,cAAAA,GAAiBC,GAAAA,CAAIC,MAAAA,CAAOC,MAAAA,EAAQ;AAAA,EACxCC,QAAAA,EAAU;AAAA,IACRC,IAAAA,EAAM;AAAA,MACJC,OAAAA,EAASJ,OAAO,gBAAgB,CAAA;AAAA,MAChCK,SAAAA,EAAWL,OAAO,kBAAkB,CAAA;AAAA,MACpCM,KAAAA,EAAON,OAAO,cAAc,CAAA;AAAA,MAC5BO,MAAAA,EAAQP,OAAO,eAAe;AAAA,KAChC;AAAA,IACAQ,KAAAA,EAAO;AAAA,MACLC,MAAAA,EAAQT,OAAO,qBAAqB,CAAA;AAAA,MACpCU,IAAAA,EAAMV,OAAO,mBAAmB;AAAA,KAClC;AAAA,IACAW,SAAAA,EAAW;AAAA,MACTC,IAAAA,EAAMZ,OAAO,mBAAmB;AAAA,KAClC;AAAA,IACAa,OAAAA,EAAS;AAAA,MACPD,IAAAA,EAAMZ,OAAO,gBAAgB;AAAA;AAC/B,GACF;AAAA,EACAc,eAAAA,EAAiB;AAAA,IACfX,IAAAA,EAAM,SAAA;AAAA,IACNK,KAAAA,EAAO;AAAA;AAEX,CAAC,CAAA;AAEM,MAAMO,MAAAA,GAASC,WACpB,CACE;AAAA,EACEb,IAAAA,GAAO,SAAA;AAAA,EACPc,QAAAA;AAAAA,EACAC,SAAAA;AAAAA,EACAV,KAAAA,GAAQ,QAAA;AAAA,EACRW,QAAAA;AAAAA,EACAR,SAAAA;AAAAA,EACAS,KAAAA;AAAAA,EACAP,OAAAA,GAAU,KAAA;AAAA,EACVQ,QAAAA;AAAAA,EACAC,SAAAA;AAAAA,EACA,GAAGC;AACL,CAAA,EACAC,wBAEA,IAAA,CAAC,QAAA,EAAA,EACC,GAAA,EACA,SAAA,EAAWC,GAAG3B,cAAAA,CAAe;AAAA,EAAEK,IAAAA;AAAAA,EAAMK,KAAAA;AAAAA,EAAOG,SAAAA;AAAAA,EAAWE;AAAQ,CAAC,CAAA,EAAGS,SAAS,CAAA,EAC5E,QAAA,EAAUD,YAAYR,OAAAA,EACtB,eAAA,EAAeQ,QAAAA,IAAYR,OAAAA,IAAWa,MAAAA,EACtC,WAAA,EAAWb,OAAAA,IAAWa,MAAAA,EACtB,GAAIH,SAAAA,EAEHN,QAAAA,EAAAA;AAAAA,EAAAA,QAAAA,oBACC,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAWjB,MAAAA,CAAO2B,YAAAA,EACtB,QAAA,kBAAA,GAAA,CAACC,QAAA,EAAA,EACC,IAAA,EAAMX,QAAAA,EACN,aAAA,EAAW,IAAA,EACX,IAAA,EAAK,MAAI,CAAA,EAEb,CAAA;AAAA,sBAGD,MAAA,EAAA,EAAK,SAAA,EAAWjB,MAAAA,CAAO6B,aAAAA,EAAgBT,mBAASD,QAAAA,EAAS,CAAA;AAAA,EAEzDD,SAAAA,oBACC,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAWlB,OAAO2B,YAAAA,EACtB,QAAA,kBAAA,GAAA,CAACC,QAAA,EAAA,EACC,IAAA,EAAMV,SAAAA,EACN,aAAA,EAAW,IAAA,EACX,IAAA,EAAK,MAAI,CAAA,EAEb;AAAA,CAAA,EAEJ,CAEJ;AAEAH,MAAAA,CAAOe,WAAAA,GAAc,QAAA;;;;"}
@@ -0,0 +1,85 @@
1
+ .buttongroup__9IkOe {
2
+ display: inline-flex;
3
+ box-sizing: border-box;
4
+ flex-direction: row;
5
+ justify-content: center;
6
+ align-items: center;
7
+ border-radius: var(--click-button-group-radii-panel-all);
8
+ background: var(--click-button-group-color-background-panel);
9
+ }
10
+
11
+ .buttongroup_type_default__D1bYD {
12
+ padding: var(--click-button-group-space-panel-default-x)
13
+ var(--click-button-group-space-panel-default-y);
14
+ gap: var(--click-button-group-space-panel-default-gap);
15
+ border: 1px solid var(--click-button-group-color-panel-stroke-default);
16
+ }
17
+
18
+ .buttongroup_type_borderless__cAhx7 {
19
+ padding: var(--click-button-group-space-panel-borderless-x)
20
+ var(--click-button-group-space-panel-borderless-y);
21
+ gap: var(--click-button-group-space-panel-borderless-gap);
22
+ border: none;
23
+ }
24
+
25
+ .buttongroup_fillwidth__WzJlu {
26
+ width: 100%;
27
+ }
28
+
29
+ .button__w1Is2 {
30
+ display: flex;
31
+ box-sizing: border-box;
32
+ flex-direction: row;
33
+ justify-content: center;
34
+ align-items: center;
35
+ border: none;
36
+ background: var(--click-button-group-color-background-default);
37
+ color: var(--click-button-group-color-text-default);
38
+ font: var(--click-button-group-typography-label-default);
39
+ cursor: pointer;
40
+ }
41
+
42
+ .button_type_default__G9UA1 {
43
+ padding: var(--click-button-group-space-button-default-y)
44
+ var(--click-button-group-space-button-default-x);
45
+ border-radius: var(--click-button-group-radii-button-default-all);
46
+ }
47
+
48
+ .button_type_borderless__PydeS {
49
+ padding: var(--click-button-group-space-button-borderless-y)
50
+ var(--click-button-group-space-button-borderless-x);
51
+ border-radius: var(--click-button-group-radii-button-borderless-all);
52
+ }
53
+
54
+ .button_fillwidth__lqIVG {
55
+ flex: 1;
56
+ }
57
+
58
+ .button__w1Is2[aria-pressed='true'] {
59
+ background: var(--click-button-group-color-background-active);
60
+ color: var(--click-button-group-color-text-active);
61
+ font: var(--click-button-group-typography-label-active);
62
+ }
63
+
64
+ .button__w1Is2:hover {
65
+ background: var(--click-button-group-color-background-hover);
66
+ color: var(--click-button-group-color-text-hover);
67
+ font: var(--click-button-group-typography-label-hover);
68
+ }
69
+
70
+ .button__w1Is2:disabled {
71
+ background: var(--click-button-group-color-background-disabled);
72
+ color: var(--click-button-group-color-text-disabled);
73
+ font: var(--click-button-group-typography-label-disabled);
74
+ cursor: not-allowed;
75
+ }
76
+
77
+ .button__w1Is2:disabled:active,
78
+ .button__w1Is2:disabled:focus,
79
+ .button__w1Is2:disabled[aria-pressed='true'] {
80
+ color: var(--click-button-group-color-text-disabled);
81
+ }
82
+
83
+ .button__w1Is2[aria-pressed='true']:disabled {
84
+ background: var(--click-button-group-color-background-disabled-active);
85
+ }
@@ -0,0 +1,21 @@
1
+ const buttongroup = "buttongroup__9IkOe";
2
+ const buttongroup_type_default = "buttongroup_type_default__D1bYD";
3
+ const buttongroup_type_borderless = "buttongroup_type_borderless__cAhx7";
4
+ const buttongroup_fillwidth = "buttongroup_fillwidth__WzJlu";
5
+ const button = "button__w1Is2";
6
+ const button_type_default = "button_type_default__G9UA1";
7
+ const button_type_borderless = "button_type_borderless__PydeS";
8
+ const button_fillwidth = "button_fillwidth__lqIVG";
9
+ const styles = {
10
+ buttongroup: buttongroup,
11
+ buttongroup_type_default: buttongroup_type_default,
12
+ buttongroup_type_borderless: buttongroup_type_borderless,
13
+ buttongroup_fillwidth: buttongroup_fillwidth,
14
+ button: button,
15
+ button_type_default: button_type_default,
16
+ button_type_borderless: button_type_borderless,
17
+ button_fillwidth: button_fillwidth
18
+ };
19
+
20
+ export { button, button_fillwidth, button_type_borderless, button_type_default, buttongroup, buttongroup_fillwidth, buttongroup_type_borderless, buttongroup_type_default, styles as default };
21
+ //# sourceMappingURL=ButtonGroup.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ButtonGroup.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;"}
@@ -1,7 +1,38 @@
1
+ import "./ButtonGroup.css";
1
2
  import { jsx } from 'react/jsx-runtime';
2
- import { useState, useCallback } from 'react';
3
- import { styled } from 'styled-components';
3
+ import { forwardRef, useState, useCallback } from 'react';
4
+ import { cn } from '../../lib/cva.js';
5
+ import styles from './ButtonGroup.module.css.js';
6
+ import { cva } from 'class-variance-authority';
4
7
 
8
+ const wrapperVariants = cva(styles.buttongroup, {
9
+ variants: {
10
+ type: {
11
+ default: styles["buttongroup_type_default"],
12
+ borderless: styles["buttongroup_type_borderless"]
13
+ },
14
+ fillWidth: {
15
+ true: styles["buttongroup_fillwidth"]
16
+ }
17
+ },
18
+ defaultVariants: {
19
+ type: "default"
20
+ }
21
+ });
22
+ const buttonVariants = cva(styles.button, {
23
+ variants: {
24
+ type: {
25
+ default: styles["button_type_default"],
26
+ borderless: styles["button_type_borderless"]
27
+ },
28
+ fillWidth: {
29
+ true: styles["button_fillwidth"]
30
+ }
31
+ },
32
+ defaultVariants: {
33
+ type: "default"
34
+ }
35
+ });
5
36
  const normalizeToSet = (value) => {
6
37
  if (value === void 0) {
7
38
  return /* @__PURE__ */ new Set();
@@ -14,7 +45,7 @@ const normalizeToSet = (value) => {
14
45
  const isValueSelected = (value, selection) => {
15
46
  return selection.has(value);
16
47
  };
17
- const ButtonGroup = ({
48
+ const ButtonGroup = forwardRef(({
18
49
  options,
19
50
  selected,
20
51
  defaultSelected,
@@ -22,8 +53,9 @@ const ButtonGroup = ({
22
53
  onClick,
23
54
  type = "default",
24
55
  multiple = false,
56
+ className,
25
57
  ...props
26
- }) => {
58
+ }, ref) => {
27
59
  const [internalSelection, setInternalSelection] = useState(() => normalizeToSet(defaultSelected));
28
60
  const isControlled = selected !== void 0;
29
61
  const currentSelection = isControlled ? normalizeToSet(selected) : internalSelection;
@@ -47,78 +79,21 @@ const ButtonGroup = ({
47
79
  const buttons = options.map(({
48
80
  value,
49
81
  label,
82
+ className: optionClassName,
50
83
  ...buttonProps
51
84
  }) => {
52
85
  const isActive = isValueSelected(value, currentSelection);
53
- return /* @__PURE__ */ jsx(Button, { $active: isActive, "aria-pressed": isActive, $fillWidth: fillWidth, $type: type, onClick: () => onButtonGroupClickCommonHandler(value), role: "button", ...buttonProps, children: label }, value);
86
+ return /* @__PURE__ */ jsx("button", { className: cn(buttonVariants({
87
+ type,
88
+ fillWidth
89
+ }), optionClassName), "aria-pressed": isActive, onClick: () => onButtonGroupClickCommonHandler(value), role: "button", ...buttonProps, children: label }, value);
54
90
  });
55
- return /* @__PURE__ */ jsx(ButtonGroupWrapper, { ...props, $fillWidth: fillWidth, $type: type, role: "group", children: buttons });
56
- };
57
- const ButtonGroupWrapper = styled.div.withConfig({
58
- componentId: "sc-ukgugp-0"
59
- })(["display:inline-flex;box-sizing:border-box;flex-direction:row;justify-content:center;align-items:center;padding:", ";gap:", ";border:", ";background:", ";border-radius:", ";width:", ";"], ({
60
- theme,
61
- $type
62
- }) => `${theme.click.button.group.space.panel[$type].x} ${theme.click.button.group.space.panel[$type].y}`, ({
63
- theme,
64
- $type
65
- }) => theme.click.button.group.space.panel[$type].gap, ({
66
- theme,
67
- $type
68
- }) => $type === "default" ? `1px solid ${theme.click.button.group.color.panel.stroke[$type]}` : "none", ({
69
- theme
70
- }) => theme.click.button.group.color.background.panel, ({
71
- theme
72
- }) => theme.click.button.group.radii.panel.all, ({
73
- $fillWidth
74
- }) => $fillWidth ? "100%" : "auto");
75
- const Button = styled.button.withConfig({
76
- componentId: "sc-ukgugp-1"
77
- })(["box-sizing:border-box;display:flex;flex-direction:row;justify-content:center;align-items:center;background:", ";color:", ";font:", ";padding:", ";", ";border-radius:", ";cursor:pointer;border:none;&[aria-pressed='true']{background:", ";font:", ";color:", ";}&:hover{background:", ";font:", ";color:", ";}&:disabled{cursor:not-allowed;font:", ";color:", ";background:", ";&:active,&:focus,&[aria-pressed='true']{color:", ";}}&[aria-pressed='true']{background:", ";font:", ";color:", ";&:disabled{background:", ";}}"], ({
78
- $active,
79
- theme
80
- }) => $active ? theme.click.button.group.color.background.active : theme.click.button.group.color.background.default, ({
81
- theme
82
- }) => theme.click.button.group.color.text.default, ({
83
- theme
84
- }) => theme.click.button.group.typography.label.default, ({
85
- theme,
86
- $type
87
- }) => `${theme.click.button.group.space.button[$type].y} ${theme.click.button.group.space.button[$type].x}`, ({
88
- $fillWidth
89
- }) => $fillWidth ? "flex: 1;" : "", ({
90
- theme,
91
- $type
92
- }) => theme.click.button.group.radii.button[$type].all, ({
93
- theme
94
- }) => theme.click.button.group.color.background.active, ({
95
- theme
96
- }) => theme.click.button.group.typography.label.active, ({
97
- theme
98
- }) => theme.click.button.group.color.text.active, ({
99
- theme
100
- }) => theme.click.button.group.color.background.hover, ({
101
- theme
102
- }) => theme.click.button.group.typography.label.hover, ({
103
- theme
104
- }) => theme.click.button.group.color.text.hover, ({
105
- theme
106
- }) => theme.click.button.group.typography.label.disabled, ({
107
- theme
108
- }) => theme.click.button.group.color.text.disabled, ({
109
- theme,
110
- $active
111
- }) => theme.click.button.group.color.background[$active ? "disabled-active" : "disabled"], ({
112
- theme
113
- }) => theme.click.button.group.color.text.disabled, ({
114
- theme
115
- }) => theme.click.button.group.color.background.active, ({
116
- theme
117
- }) => theme.click.button.group.typography.label.active, ({
118
- theme
119
- }) => theme.click.button.group.color.text.active, ({
120
- theme
121
- }) => theme.click.button.group.color.background["disabled-active"]);
91
+ return /* @__PURE__ */ jsx("div", { ref, ...props, className: cn(wrapperVariants({
92
+ type,
93
+ fillWidth
94
+ }), className), role: "group", children: buttons });
95
+ });
96
+ ButtonGroup.displayName = "ButtonGroup";
122
97
 
123
98
  export { ButtonGroup };
124
99
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/ButtonGroup/ButtonGroup.tsx"],"sourcesContent":["import { useCallback, useState } from 'react';\nimport { styled } from 'styled-components';\nimport { ButtonGroupProps, SelectionValue } from './ButtonGroup.types';\n\nconst normalizeToSet = (value: SelectionValue | undefined): Set<string> => {\n if (value === undefined) {\n return new Set();\n }\n if (value instanceof Set) {\n return new Set(value);\n }\n return new Set([value]);\n};\n\nconst isValueSelected = (value: string, selection: Set<string>): boolean => {\n return selection.has(value);\n};\n\nexport const ButtonGroup = ({\n options,\n selected,\n defaultSelected,\n fillWidth = false,\n onClick,\n type = 'default',\n multiple = false,\n ...props\n}: ButtonGroupProps) => {\n const [internalSelection, setInternalSelection] = useState<Set<string>>(() =>\n normalizeToSet(defaultSelected)\n );\n\n // Use `selected` if the parent needs to own\n // or sync the selection state management (controlled\n // by consumer app)\n // Use `defaultSelected` if the component can manage\n // its own state independently (uncontrolled)\n const isControlled = selected !== undefined;\n const currentSelection = isControlled ? normalizeToSet(selected) : internalSelection;\n\n const onButtonGroupClickCommonHandler = useCallback(\n (value: string) => {\n let newSelection: Set<string>;\n\n if (multiple) {\n newSelection = new Set(currentSelection);\n if (newSelection.has(value)) {\n newSelection.delete(value);\n } else {\n newSelection.add(value);\n }\n } else {\n newSelection = new Set([value]);\n }\n\n if (!isControlled) {\n setInternalSelection(newSelection);\n }\n\n // WARN: Single mode returns string\n // while multiple mode returns Set (DS)\n onClick?.(value, multiple ? newSelection : value);\n },\n [currentSelection, multiple, isControlled, onClick]\n );\n\n const buttons = options.map(({ value, label, ...buttonProps }) => {\n const isActive = isValueSelected(value, currentSelection);\n\n return (\n <Button\n key={value}\n $active={isActive}\n aria-pressed={isActive}\n $fillWidth={fillWidth}\n $type={type}\n onClick={() => onButtonGroupClickCommonHandler(value)}\n role=\"button\"\n {...buttonProps}\n >\n {label}\n </Button>\n );\n });\n\n return (\n <ButtonGroupWrapper\n {...props}\n $fillWidth={fillWidth}\n $type={type}\n role=\"group\"\n >\n {buttons}\n </ButtonGroupWrapper>\n );\n};\n\nimport { ButtonGroupType } from './ButtonGroup.types';\n\nconst ButtonGroupWrapper = styled.div<{ $fillWidth: boolean; $type: ButtonGroupType }>`\n display: inline-flex;\n box-sizing: border-box;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n padding: ${({ theme, $type }) =>\n `${theme.click.button.group.space.panel[$type].x} ${theme.click.button.group.space.panel[$type].y}`};\n gap: ${({ theme, $type }) => theme.click.button.group.space.panel[$type].gap};\n border: ${({ theme, $type }) =>\n $type === 'default'\n ? `1px solid ${theme.click.button.group.color.panel.stroke[$type]}`\n : 'none'};\n background: ${({ theme }) => theme.click.button.group.color.background.panel};\n border-radius: ${({ theme }) => theme.click.button.group.radii.panel.all};\n width: ${({ $fillWidth }) => ($fillWidth ? '100%' : 'auto')};\n`;\n\nconst Button = styled.button<{\n $active: boolean;\n $fillWidth: boolean;\n $type: ButtonGroupType;\n}>`\n box-sizing: border-box;\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n background: ${({ $active, theme }) =>\n $active\n ? theme.click.button.group.color.background.active\n : theme.click.button.group.color.background.default};\n color: ${({ theme }) => theme.click.button.group.color.text.default};\n font: ${({ theme }) => theme.click.button.group.typography.label.default};\n padding: ${({ theme, $type }) =>\n `${theme.click.button.group.space.button[$type].y} ${theme.click.button.group.space.button[$type].x}`};\n ${({ $fillWidth }) => ($fillWidth ? 'flex: 1;' : '')};\n border-radius: ${({ theme, $type }) =>\n theme.click.button.group.radii.button[$type].all};\n cursor: pointer;\n border: none;\n\n &[aria-pressed='true'] {\n background: ${({ theme }) => theme.click.button.group.color.background.active};\n font: ${({ theme }) => theme.click.button.group.typography.label.active};\n color: ${({ theme }) => theme.click.button.group.color.text.active};\n }\n\n &:hover {\n background: ${({ theme }) => theme.click.button.group.color.background.hover};\n font: ${({ theme }) => theme.click.button.group.typography.label.hover};\n color: ${({ theme }) => theme.click.button.group.color.text.hover};\n }\n\n &:disabled {\n cursor: not-allowed;\n font: ${({ theme }) => theme.click.button.group.typography.label.disabled};\n color: ${({ theme }) => theme.click.button.group.color.text.disabled};\n background: ${({ theme, $active }) =>\n theme.click.button.group.color.background[\n $active ? 'disabled-active' : 'disabled'\n ]};\n\n &:active,\n &:focus,\n &[aria-pressed='true'] {\n color: ${({ theme }) => theme.click.button.group.color.text.disabled};\n }\n }\n\n &[aria-pressed='true'] {\n background: ${({ theme }) => theme.click.button.group.color.background.active};\n font: ${({ theme }) => theme.click.button.group.typography.label.active};\n color: ${({ theme }) => theme.click.button.group.color.text.active};\n &:disabled {\n background: ${({ theme }) =>\n theme.click.button.group.color.background['disabled-active']};\n }\n }\n`;\n"],"names":["normalizeToSet","value","undefined","Set","isValueSelected","selection","has","ButtonGroup","options","selected","defaultSelected","fillWidth","onClick","type","multiple","props","internalSelection","setInternalSelection","useState","isControlled","currentSelection","onButtonGroupClickCommonHandler","useCallback","newSelection","delete","add","buttons","map","label","buttonProps","isActive","ButtonGroupWrapper","styled","div","withConfig","componentId","theme","$type","click","button","group","space","panel","x","y","gap","color","stroke","background","radii","all","$fillWidth","Button","$active","active","default","text","typography","hover","disabled"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/ButtonGroup/ButtonGroup.tsx"],"sourcesContent":["import { forwardRef, useCallback, useState } from 'react';\nimport { cn, cva } from '@/lib/cva';\nimport { ButtonGroupProps, SelectionValue } from './ButtonGroup.types';\nimport styles from './ButtonGroup.module.css';\n\nconst wrapperVariants = cva(styles.buttongroup, {\n variants: {\n type: {\n default: styles['buttongroup_type_default'],\n borderless: styles['buttongroup_type_borderless'],\n },\n fillWidth: {\n true: styles['buttongroup_fillwidth'],\n },\n },\n defaultVariants: { type: 'default' },\n});\n\nconst buttonVariants = cva(styles.button, {\n variants: {\n type: {\n default: styles['button_type_default'],\n borderless: styles['button_type_borderless'],\n },\n fillWidth: {\n true: styles['button_fillwidth'],\n },\n },\n defaultVariants: { type: 'default' },\n});\n\nconst normalizeToSet = (value: SelectionValue | undefined): Set<string> => {\n if (value === undefined) {\n return new Set();\n }\n if (value instanceof Set) {\n return new Set(value);\n }\n return new Set([value]);\n};\n\nconst isValueSelected = (value: string, selection: Set<string>): boolean => {\n return selection.has(value);\n};\n\nexport const ButtonGroup = forwardRef<HTMLDivElement, ButtonGroupProps>(\n (\n {\n options,\n selected,\n defaultSelected,\n fillWidth = false,\n onClick,\n type = 'default',\n multiple = false,\n className,\n ...props\n },\n ref\n ) => {\n const [internalSelection, setInternalSelection] = useState<Set<string>>(() =>\n normalizeToSet(defaultSelected)\n );\n\n // Use `selected` if the parent needs to own\n // or sync the selection state management (controlled\n // by consumer app)\n // Use `defaultSelected` if the component can manage\n // its own state independently (uncontrolled)\n const isControlled = selected !== undefined;\n const currentSelection = isControlled ? normalizeToSet(selected) : internalSelection;\n\n const onButtonGroupClickCommonHandler = useCallback(\n (value: string) => {\n let newSelection: Set<string>;\n\n if (multiple) {\n newSelection = new Set(currentSelection);\n if (newSelection.has(value)) {\n newSelection.delete(value);\n } else {\n newSelection.add(value);\n }\n } else {\n newSelection = new Set([value]);\n }\n\n if (!isControlled) {\n setInternalSelection(newSelection);\n }\n\n // WARN: Single mode returns string\n // while multiple mode returns Set (DS)\n onClick?.(value, multiple ? newSelection : value);\n },\n [currentSelection, multiple, isControlled, onClick]\n );\n\n const buttons = options.map(\n ({ value, label, className: optionClassName, ...buttonProps }) => {\n const isActive = isValueSelected(value, currentSelection);\n\n return (\n <button\n key={value}\n className={cn(buttonVariants({ type, fillWidth }), optionClassName)}\n aria-pressed={isActive}\n onClick={() => onButtonGroupClickCommonHandler(value)}\n role=\"button\"\n {...buttonProps}\n >\n {label}\n </button>\n );\n }\n );\n\n return (\n <div\n ref={ref}\n {...props}\n className={cn(wrapperVariants({ type, fillWidth }), className)}\n role=\"group\"\n >\n {buttons}\n </div>\n );\n }\n);\n\nButtonGroup.displayName = 'ButtonGroup';\n"],"names":["wrapperVariants","cva","styles","buttongroup","variants","type","default","borderless","fillWidth","true","defaultVariants","buttonVariants","button","normalizeToSet","value","undefined","Set","isValueSelected","selection","has","ButtonGroup","forwardRef","options","selected","defaultSelected","onClick","multiple","className","props","ref","internalSelection","setInternalSelection","useState","isControlled","currentSelection","onButtonGroupClickCommonHandler","useCallback","newSelection","delete","add","buttons","map","label","optionClassName","buttonProps","isActive","cn","displayName"],"mappings":"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"}
@@ -0,0 +1,216 @@
1
+ .header__Cn2aH {
2
+ max-width: 100%;
3
+ gap: inherit;
4
+ }
5
+
6
+ .description__4EWfD {
7
+ display: flex;
8
+ width: 100%;
9
+ flex: 1;
10
+ flex-direction: column;
11
+ align-self: start;
12
+ gap: var(--click-card-horizontal-space-md-gap);
13
+ }
14
+
15
+ .cardicon__VX2fX {
16
+ width: var(--click-card-horizontal-icon-size-all);
17
+ height: var(--click-card-horizontal-icon-size-all);
18
+ }
19
+
20
+ .contentwrapper__u9SOr {
21
+ display: flex;
22
+ width: 100%;
23
+ flex-direction: row;
24
+ }
25
+
26
+ .contentwrapper_size_md__lNQPZ {
27
+ gap: var(--click-card-horizontal-space-md-gap);
28
+ }
29
+
30
+ .contentwrapper_size_sm__GDVYr {
31
+ gap: var(--click-card-horizontal-space-sm-gap);
32
+ }
33
+
34
+ /* stylelint-disable-next-line media-feature-range-notation -- prefix notation
35
+ required for browser compatibility per .browserslistrc */
36
+ @media (max-width: 768px) {
37
+ .contentwrapper__u9SOr {
38
+ flex-direction: column;
39
+ }
40
+ }
41
+
42
+ .icontextcontentwrapper__D6gbe {
43
+ display: flex;
44
+ width: 100%;
45
+ flex-direction: row;
46
+ align-items: center;
47
+ }
48
+
49
+ .icontextcontentwrapper_alignment_top__rsOIa {
50
+ align-items: flex-start;
51
+ }
52
+
53
+ .icontextcontentwrapper_alignment_center__GiQqi {
54
+ align-items: center;
55
+ }
56
+
57
+ .icontextcontentwrapper_size_md__vl0h- {
58
+ gap: var(--click-card-horizontal-space-md-gap);
59
+ }
60
+
61
+ .icontextcontentwrapper_size_sm__VNsIL {
62
+ gap: var(--click-card-horizontal-space-sm-gap);
63
+ }
64
+
65
+ .wrapper__gPLR5 {
66
+ display: inline-flex;
67
+ width: 100%;
68
+ max-width: 100%;
69
+ justify-content: flex-start;
70
+ align-items: center;
71
+ align-self: auto;
72
+ border: 1px solid var(--card-stroke-default);
73
+ border-radius: var(--click-card-horizontal-radii-all);
74
+ background: var(--card-bg-default);
75
+ color: var(--card-title-default);
76
+ font: var(--click-card-horizontal-typography-title-default);
77
+ }
78
+
79
+ .wrapper_color_default__cSCG8 {
80
+ --card-bg-default: var(--click-card-horizontal-default-color-background-default);
81
+ --card-bg-hover: var(--click-card-horizontal-default-color-background-hover);
82
+ --card-bg-active: var(--click-card-horizontal-default-color-background-active);
83
+ --card-bg-disabled: var(--click-card-horizontal-default-color-background-disabled);
84
+ --card-title-default: var(--click-card-horizontal-default-color-title-default);
85
+ --card-title-hover: var(--click-card-horizontal-default-color-title-hover);
86
+ --card-title-active: var(--click-card-horizontal-default-color-title-active);
87
+ --card-title-disabled: var(--click-card-horizontal-default-color-title-disabled);
88
+ --card-stroke-default: var(--click-card-horizontal-default-color-stroke-default);
89
+ --card-stroke-hover: var(--click-card-horizontal-default-color-stroke-hover);
90
+ --card-stroke-active: var(--click-card-horizontal-default-color-stroke-active);
91
+ --card-stroke-disabled: var(--click-card-horizontal-default-color-stroke-disabled);
92
+ --card-desc-default: var(--click-card-horizontal-default-color-description-default);
93
+ --card-desc-hover: var(--click-card-horizontal-default-color-description-hover);
94
+ --card-desc-active: var(--click-card-horizontal-default-color-description-active);
95
+ --card-desc-disabled: var(--click-card-horizontal-default-color-description-disabled);
96
+ }
97
+
98
+ .wrapper_color_muted__DFlsG {
99
+ --card-bg-default: var(--click-card-horizontal-muted-color-background-default);
100
+ --card-bg-hover: var(--click-card-horizontal-muted-color-background-hover);
101
+ --card-bg-active: var(--click-card-horizontal-muted-color-background-active);
102
+ --card-bg-disabled: var(--click-card-horizontal-muted-color-background-disabled);
103
+ --card-title-default: var(--click-card-horizontal-muted-color-title-default);
104
+ --card-title-hover: var(--click-card-horizontal-muted-color-title-hover);
105
+ --card-title-active: var(--click-card-horizontal-muted-color-title-active);
106
+ --card-title-disabled: var(--click-card-horizontal-muted-color-title-disabled);
107
+ --card-stroke-default: var(--click-card-horizontal-muted-color-stroke-default);
108
+ --card-stroke-hover: var(--click-card-horizontal-muted-color-stroke-hover);
109
+ --card-stroke-active: var(--click-card-horizontal-muted-color-stroke-active);
110
+ --card-stroke-disabled: var(--click-card-horizontal-muted-color-stroke-disabled);
111
+ --card-desc-default: var(--click-card-horizontal-muted-color-description-default);
112
+ --card-desc-hover: var(--click-card-horizontal-muted-color-description-hover);
113
+ --card-desc-active: var(--click-card-horizontal-muted-color-description-active);
114
+ --card-desc-disabled: var(--click-card-horizontal-muted-color-description-disabled);
115
+ }
116
+
117
+ .wrapper_alignment_top__QcYt3 {
118
+ align-items: flex-start;
119
+ align-self: stretch;
120
+ }
121
+
122
+ .wrapper_alignment_center__X8Sjf {
123
+ align-items: center;
124
+ align-self: auto;
125
+ }
126
+
127
+ .wrapper_size_md__cIFpL {
128
+ padding: var(--click-card-horizontal-space-md-y) var(--click-card-horizontal-space-md-x);
129
+ }
130
+
131
+ .wrapper_size_sm__alRqs {
132
+ padding: var(--click-card-horizontal-space-sm-y) var(--click-card-horizontal-space-sm-x);
133
+ }
134
+
135
+ .wrapper__gPLR5 .description__4EWfD {
136
+ color: var(--card-desc-default);
137
+ font: var(--click-card-horizontal-typography-description-default);
138
+ }
139
+
140
+ .wrapper__gPLR5.wrapper_selectable__shWc3 {
141
+ border-color: var(--card-stroke-hover);
142
+ }
143
+
144
+ .wrapper__gPLR5.wrapper_selectable__shWc3.wrapper_selected__FUouc {
145
+ border-color: var(--card-stroke-active);
146
+ }
147
+
148
+ .wrapper__gPLR5:hover {
149
+ font: var(--click-card-horizontal-typography-title-hover);
150
+ }
151
+
152
+ .wrapper__gPLR5.wrapper_selectable__shWc3:hover {
153
+ border-color: var(--card-stroke-default);
154
+ background-color: var(--card-bg-hover);
155
+ color: var(--card-title-hover);
156
+ cursor: pointer;
157
+ }
158
+
159
+ .wrapper__gPLR5.wrapper_selectable__shWc3.wrapper_selected__FUouc:hover {
160
+ border-color: var(--card-stroke-active);
161
+ }
162
+
163
+ .wrapper__gPLR5.wrapper_selectable__shWc3:hover .description__4EWfD {
164
+ color: var(--card-desc-hover);
165
+ font: var(--click-card-horizontal-typography-description-hover);
166
+ }
167
+
168
+ .wrapper__gPLR5.wrapper_selectable__shWc3:active,
169
+ .wrapper__gPLR5.wrapper_selectable__shWc3:focus,
170
+ .wrapper__gPLR5.wrapper_selectable__shWc3:focus-within {
171
+ border-color: var(--card-stroke-active);
172
+ background-color: var(--card-bg-active);
173
+ color: var(--card-title-active);
174
+ }
175
+
176
+ .wrapper__gPLR5.wrapper_selectable__shWc3:active .description__4EWfD,
177
+ .wrapper__gPLR5.wrapper_selectable__shWc3:focus .description__4EWfD,
178
+ .wrapper__gPLR5.wrapper_selectable__shWc3:focus-within .description__4EWfD {
179
+ color: var(--card-desc-active);
180
+ font: var(--click-card-horizontal-typography-description-active);
181
+ }
182
+
183
+ /* stylelint-disable no-descending-specificity -- disabled state intentionally
184
+ defined after hover/active to mirror the source cascade order;
185
+ pointer-events:none plus tabIndex=-1 prevent hover/focus/active from firing. */
186
+ .wrapper__gPLR5.wrapper_disabled__QRVx8,
187
+ .wrapper__gPLR5.wrapper_disabled__QRVx8:hover,
188
+ .wrapper__gPLR5.wrapper_disabled__QRVx8:active,
189
+ .wrapper__gPLR5.wrapper_disabled__QRVx8:focus,
190
+ .wrapper__gPLR5.wrapper_disabled__QRVx8:focus-within {
191
+ border: 1px solid var(--card-stroke-disabled);
192
+ background-color: var(--card-bg-disabled);
193
+ color: var(--card-title-disabled);
194
+ cursor: not-allowed;
195
+ pointer-events: none;
196
+ }
197
+
198
+ .wrapper__gPLR5.wrapper_disabled__QRVx8.wrapper_selected__FUouc,
199
+ .wrapper__gPLR5.wrapper_disabled__QRVx8.wrapper_selected__FUouc:hover,
200
+ .wrapper__gPLR5.wrapper_disabled__QRVx8.wrapper_selected__FUouc:active,
201
+ .wrapper__gPLR5.wrapper_disabled__QRVx8.wrapper_selected__FUouc:focus,
202
+ .wrapper__gPLR5.wrapper_disabled__QRVx8.wrapper_selected__FUouc:focus-within {
203
+ border-color: var(--card-stroke-active);
204
+ }
205
+
206
+ .wrapper__gPLR5.wrapper_disabled__QRVx8 .description__4EWfD {
207
+ color: var(--card-desc-disabled);
208
+ font: var(--click-card-horizontal-typography-description-disabled);
209
+ }
210
+
211
+ .wrapper__gPLR5.wrapper_disabled__QRVx8:active,
212
+ .wrapper__gPLR5.wrapper_disabled__QRVx8:focus,
213
+ .wrapper__gPLR5.wrapper_disabled__QRVx8:focus-within {
214
+ border: 1px solid var(--card-stroke-active);
215
+ }
216
+ /* stylelint-enable no-descending-specificity */
@@ -0,0 +1,47 @@
1
+ const header = "header__Cn2aH";
2
+ const description = "description__4EWfD";
3
+ const cardicon = "cardicon__VX2fX";
4
+ const contentwrapper = "contentwrapper__u9SOr";
5
+ const contentwrapper_size_md = "contentwrapper_size_md__lNQPZ";
6
+ const contentwrapper_size_sm = "contentwrapper_size_sm__GDVYr";
7
+ const icontextcontentwrapper = "icontextcontentwrapper__D6gbe";
8
+ const icontextcontentwrapper_alignment_top = "icontextcontentwrapper_alignment_top__rsOIa";
9
+ const icontextcontentwrapper_alignment_center = "icontextcontentwrapper_alignment_center__GiQqi";
10
+ const icontextcontentwrapper_size_md = "icontextcontentwrapper_size_md__vl0h-";
11
+ const icontextcontentwrapper_size_sm = "icontextcontentwrapper_size_sm__VNsIL";
12
+ const wrapper = "wrapper__gPLR5";
13
+ const wrapper_color_default = "wrapper_color_default__cSCG8";
14
+ const wrapper_color_muted = "wrapper_color_muted__DFlsG";
15
+ const wrapper_alignment_top = "wrapper_alignment_top__QcYt3";
16
+ const wrapper_alignment_center = "wrapper_alignment_center__X8Sjf";
17
+ const wrapper_size_md = "wrapper_size_md__cIFpL";
18
+ const wrapper_size_sm = "wrapper_size_sm__alRqs";
19
+ const wrapper_selectable = "wrapper_selectable__shWc3";
20
+ const wrapper_selected = "wrapper_selected__FUouc";
21
+ const wrapper_disabled = "wrapper_disabled__QRVx8";
22
+ const styles = {
23
+ header: header,
24
+ description: description,
25
+ cardicon: cardicon,
26
+ contentwrapper: contentwrapper,
27
+ contentwrapper_size_md: contentwrapper_size_md,
28
+ contentwrapper_size_sm: contentwrapper_size_sm,
29
+ icontextcontentwrapper: icontextcontentwrapper,
30
+ icontextcontentwrapper_alignment_top: icontextcontentwrapper_alignment_top,
31
+ icontextcontentwrapper_alignment_center: icontextcontentwrapper_alignment_center,
32
+ icontextcontentwrapper_size_md: icontextcontentwrapper_size_md,
33
+ icontextcontentwrapper_size_sm: icontextcontentwrapper_size_sm,
34
+ wrapper: wrapper,
35
+ wrapper_color_default: wrapper_color_default,
36
+ wrapper_color_muted: wrapper_color_muted,
37
+ wrapper_alignment_top: wrapper_alignment_top,
38
+ wrapper_alignment_center: wrapper_alignment_center,
39
+ wrapper_size_md: wrapper_size_md,
40
+ wrapper_size_sm: wrapper_size_sm,
41
+ wrapper_selectable: wrapper_selectable,
42
+ wrapper_selected: wrapper_selected,
43
+ wrapper_disabled: wrapper_disabled
44
+ };
45
+
46
+ export { cardicon, contentwrapper, contentwrapper_size_md, contentwrapper_size_sm, styles as default, description, header, icontextcontentwrapper, icontextcontentwrapper_alignment_center, icontextcontentwrapper_alignment_top, icontextcontentwrapper_size_md, icontextcontentwrapper_size_sm, wrapper, wrapper_alignment_center, wrapper_alignment_top, wrapper_color_default, wrapper_color_muted, wrapper_disabled, wrapper_selectable, wrapper_selected, wrapper_size_md, wrapper_size_sm };
47
+ //# sourceMappingURL=CardHorizontal.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CardHorizontal.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}