@clickhouse/click-ui 0.6.0 → 0.6.1-rc1

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 (282) 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/Popin.cjs +10 -0
  5. package/dist/cjs/components/Assets/Icons/Popin.cjs.map +1 -0
  6. package/dist/cjs/components/Assets/Icons/system/IconsLight.cjs +2 -0
  7. package/dist/cjs/components/Assets/Icons/system/IconsLight.cjs.map +1 -1
  8. package/dist/cjs/components/Assets/Logos/system/Logo.cjs +1 -1
  9. package/dist/cjs/components/Assets/Logos/system/Logo.cjs.map +1 -1
  10. package/dist/cjs/components/Assets/Payments/system/Payment.cjs +1 -1
  11. package/dist/cjs/components/Assets/Payments/system/Payment.cjs.map +1 -1
  12. package/dist/cjs/components/Assets/config.cjs +1 -0
  13. package/dist/cjs/components/Assets/config.cjs.map +1 -1
  14. package/dist/cjs/components/Avatar/Avatar.css +61 -0
  15. package/dist/cjs/components/Avatar/Avatar.module.css.cjs +24 -0
  16. package/dist/cjs/components/Avatar/Avatar.module.css.cjs.map +1 -0
  17. package/dist/cjs/components/Avatar/index.cjs +21 -26
  18. package/dist/cjs/components/Avatar/index.cjs.map +1 -1
  19. package/dist/cjs/components/Badge/Badge.css +232 -0
  20. package/dist/cjs/components/Badge/Badge.module.css.cjs +83 -0
  21. package/dist/cjs/components/Badge/Badge.module.css.cjs.map +1 -0
  22. package/dist/cjs/components/Badge/index.cjs +81 -51
  23. package/dist/cjs/components/Badge/index.cjs.map +1 -1
  24. package/dist/cjs/components/Button/Button.css +31 -20
  25. package/dist/cjs/components/Button/Button.module.css.cjs +5 -5
  26. package/dist/cjs/components/Button/index.cjs +1 -1
  27. package/dist/cjs/components/Button/index.cjs.map +1 -1
  28. package/dist/cjs/components/ButtonGroup/ButtonGroup.css +85 -0
  29. package/dist/cjs/components/ButtonGroup/ButtonGroup.module.css.cjs +33 -0
  30. package/dist/cjs/components/ButtonGroup/ButtonGroup.module.css.cjs.map +1 -0
  31. package/dist/cjs/components/ButtonGroup/index.cjs +46 -71
  32. package/dist/cjs/components/ButtonGroup/index.cjs.map +1 -1
  33. package/dist/cjs/components/CardHorizontal/CardHorizontal.css +216 -0
  34. package/dist/cjs/components/CardHorizontal/CardHorizontal.module.css.cjs +72 -0
  35. package/dist/cjs/components/CardHorizontal/CardHorizontal.module.css.cjs.map +1 -0
  36. package/dist/cjs/components/CardHorizontal/index.cjs +78 -101
  37. package/dist/cjs/components/CardHorizontal/index.cjs.map +1 -1
  38. package/dist/cjs/components/CardPrimary/CardPrimary.css +182 -0
  39. package/dist/cjs/components/CardPrimary/CardPrimary.module.css.cjs +81 -0
  40. package/dist/cjs/components/CardPrimary/CardPrimary.module.css.cjs.map +1 -0
  41. package/dist/cjs/components/CardPrimary/CardPrimaryTopBadge.cjs +12 -12
  42. package/dist/cjs/components/CardPrimary/CardPrimaryTopBadge.cjs.map +1 -1
  43. package/dist/cjs/components/CardPrimary/index.cjs +80 -79
  44. package/dist/cjs/components/CardPrimary/index.cjs.map +1 -1
  45. package/dist/cjs/components/CardPrimary/withTopBadge.cjs +1 -1
  46. package/dist/cjs/components/CardPrimary/withTopBadge.cjs.map +1 -1
  47. package/dist/cjs/components/Checkbox/Checkbox.css +116 -0
  48. package/dist/cjs/components/Checkbox/Checkbox.module.css.cjs +39 -0
  49. package/dist/cjs/components/Checkbox/Checkbox.module.css.cjs.map +1 -0
  50. package/dist/cjs/components/Checkbox/index.cjs +26 -49
  51. package/dist/cjs/components/Checkbox/index.cjs.map +1 -1
  52. package/dist/cjs/components/Container/Container.css +189 -0
  53. package/dist/cjs/components/Container/Container.module.css.cjs +90 -0
  54. package/dist/cjs/components/Container/Container.module.css.cjs.map +1 -0
  55. package/dist/cjs/components/Container/index.cjs +91 -55
  56. package/dist/cjs/components/Container/index.cjs.map +1 -1
  57. package/dist/cjs/components/DateDetails/index.cjs +2 -2
  58. package/dist/cjs/components/DateDetails/index.cjs.map +1 -1
  59. package/dist/cjs/components/EllipsisContent/index.cjs.map +1 -1
  60. package/dist/cjs/components/GenericLabel/GenericLabel.css +31 -0
  61. package/dist/cjs/components/GenericLabel/GenericLabel.module.css.cjs +11 -0
  62. package/dist/cjs/components/GenericLabel/GenericLabel.module.css.cjs.map +1 -0
  63. package/dist/cjs/components/GenericLabel/index.cjs +14 -25
  64. package/dist/cjs/components/GenericLabel/index.cjs.map +1 -1
  65. package/dist/cjs/components/GridContainer/index.cjs.map +1 -1
  66. package/dist/cjs/components/Icon/Icon.css +134 -0
  67. package/dist/cjs/components/Icon/Icon.module.css.cjs +27 -0
  68. package/dist/cjs/components/Icon/Icon.module.css.cjs.map +1 -0
  69. package/dist/cjs/components/Icon/Icon.stories.css +36 -0
  70. package/dist/cjs/components/Icon/SvgImageElement.cjs +30 -12
  71. package/dist/cjs/components/Icon/SvgImageElement.cjs.map +1 -1
  72. package/dist/cjs/components/Icon/index.cjs +43 -34
  73. package/dist/cjs/components/Icon/index.cjs.map +1 -1
  74. package/dist/cjs/components/IconButton/IconButton.css +145 -0
  75. package/dist/cjs/components/IconButton/IconButton.module.css.cjs +33 -0
  76. package/dist/cjs/components/IconButton/IconButton.module.css.cjs.map +1 -0
  77. package/dist/cjs/components/IconButton/index.cjs +30 -41
  78. package/dist/cjs/components/IconButton/index.cjs.map +1 -1
  79. package/dist/cjs/components/Label/Label.css +32 -0
  80. package/dist/cjs/components/Label/Label.module.css.cjs +18 -0
  81. package/dist/cjs/components/Label/Label.module.css.cjs.map +1 -0
  82. package/dist/cjs/components/Label/index.cjs +24 -27
  83. package/dist/cjs/components/Label/index.cjs.map +1 -1
  84. package/dist/cjs/components/Link/Link.css +135 -0
  85. package/dist/cjs/components/Link/Link.module.css.cjs +43 -0
  86. package/dist/cjs/components/Link/Link.module.css.cjs.map +1 -0
  87. package/dist/cjs/components/Link/index.cjs +51 -18
  88. package/dist/cjs/components/Link/index.cjs.map +1 -1
  89. package/dist/cjs/components/ProgressBar/ProgressBar.css +124 -0
  90. package/dist/cjs/components/ProgressBar/ProgressBar.module.css.cjs +42 -0
  91. package/dist/cjs/components/ProgressBar/ProgressBar.module.css.cjs.map +1 -0
  92. package/dist/cjs/components/ProgressBar/index.cjs +44 -66
  93. package/dist/cjs/components/ProgressBar/index.cjs.map +1 -1
  94. package/dist/cjs/components/Separator/Separator.css +81 -0
  95. package/dist/cjs/components/Separator/Separator.module.css.cjs +24 -0
  96. package/dist/cjs/components/Separator/Separator.module.css.cjs.map +1 -0
  97. package/dist/cjs/components/Separator/index.cjs +26 -18
  98. package/dist/cjs/components/Separator/index.cjs.map +1 -1
  99. package/dist/cjs/components/Spacer/Spacer.css +28 -0
  100. package/dist/cjs/components/Spacer/Spacer.module.css.cjs +30 -0
  101. package/dist/cjs/components/Spacer/Spacer.module.css.cjs.map +1 -0
  102. package/dist/cjs/components/Spacer/index.cjs +22 -8
  103. package/dist/cjs/components/Spacer/index.cjs.map +1 -1
  104. package/dist/cjs/components/Switch/Switch.css +65 -0
  105. package/dist/cjs/components/Switch/Switch.module.css.cjs +16 -0
  106. package/dist/cjs/components/Switch/Switch.module.css.cjs.map +1 -0
  107. package/dist/cjs/components/Switch/index.cjs +7 -70
  108. package/dist/cjs/components/Switch/index.cjs.map +1 -1
  109. package/dist/cjs/components/Text/Text.css +125 -0
  110. package/dist/cjs/components/Text/Text.module.css.cjs +57 -0
  111. package/dist/cjs/components/Text/Text.module.css.cjs.map +1 -0
  112. package/dist/cjs/components/Text/index.cjs +133 -16
  113. package/dist/cjs/components/Text/index.cjs.map +1 -1
  114. package/dist/cjs/components/Title/Title.css +99 -0
  115. package/dist/cjs/components/Title/Title.module.css.cjs +37 -0
  116. package/dist/cjs/components/Title/Title.module.css.cjs.map +1 -0
  117. package/dist/cjs/components/Title/index.cjs +85 -19
  118. package/dist/cjs/components/Title/index.cjs.map +1 -1
  119. package/dist/cjs/index.cjs +2 -2
  120. package/dist/cjs/{components/Link/common.cjs → styles/linkStyles.cjs} +1 -1
  121. package/dist/cjs/styles/linkStyles.cjs.map +1 -0
  122. package/dist/cjs/theme/styles/tokens-dark.css +3 -0
  123. package/dist/cjs/theme/styles/tokens-light.css +4 -0
  124. package/dist/cjs/theme/tokens/variables.dark.cjs +4 -2
  125. package/dist/cjs/theme/tokens/variables.dark.cjs.map +1 -1
  126. package/dist/cjs/theme/tokens/variables.light.cjs +6 -1
  127. package/dist/cjs/theme/tokens/variables.light.cjs.map +1 -1
  128. package/dist/esm/click-ui.css +2274 -176
  129. package/dist/esm/components/Assets/Flags/system/Flag.js +1 -1
  130. package/dist/esm/components/Assets/Flags/system/Flag.js.map +1 -1
  131. package/dist/esm/components/Assets/Icons/Popin.js +6 -0
  132. package/dist/esm/components/Assets/Icons/Popin.js.map +1 -0
  133. package/dist/esm/components/Assets/Icons/system/IconsLight.js +2 -0
  134. package/dist/esm/components/Assets/Icons/system/IconsLight.js.map +1 -1
  135. package/dist/esm/components/Assets/Logos/system/Logo.js +1 -1
  136. package/dist/esm/components/Assets/Logos/system/Logo.js.map +1 -1
  137. package/dist/esm/components/Assets/Payments/system/Payment.js +1 -1
  138. package/dist/esm/components/Assets/Payments/system/Payment.js.map +1 -1
  139. package/dist/esm/components/Assets/config.js +1 -0
  140. package/dist/esm/components/Assets/config.js.map +1 -1
  141. package/dist/esm/components/Avatar/Avatar.css +61 -0
  142. package/dist/esm/components/Avatar/Avatar.module.css.js +15 -0
  143. package/dist/esm/components/Avatar/Avatar.module.css.js.map +1 -0
  144. package/dist/esm/components/Avatar/index.js +21 -26
  145. package/dist/esm/components/Avatar/index.js.map +1 -1
  146. package/dist/esm/components/Badge/Badge.css +232 -0
  147. package/dist/esm/components/Badge/Badge.module.css.js +59 -0
  148. package/dist/esm/components/Badge/Badge.module.css.js.map +1 -0
  149. package/dist/esm/components/Badge/index.js +81 -51
  150. package/dist/esm/components/Badge/index.js.map +1 -1
  151. package/dist/esm/components/Button/Button.css +31 -20
  152. package/dist/esm/components/Button/Button.module.css.js +5 -5
  153. package/dist/esm/components/Button/index.js +1 -1
  154. package/dist/esm/components/Button/index.js.map +1 -1
  155. package/dist/esm/components/ButtonGroup/ButtonGroup.css +85 -0
  156. package/dist/esm/components/ButtonGroup/ButtonGroup.module.css.js +21 -0
  157. package/dist/esm/components/ButtonGroup/ButtonGroup.module.css.js.map +1 -0
  158. package/dist/esm/components/ButtonGroup/index.js +47 -72
  159. package/dist/esm/components/ButtonGroup/index.js.map +1 -1
  160. package/dist/esm/components/CardHorizontal/CardHorizontal.css +216 -0
  161. package/dist/esm/components/CardHorizontal/CardHorizontal.module.css.js +47 -0
  162. package/dist/esm/components/CardHorizontal/CardHorizontal.module.css.js.map +1 -0
  163. package/dist/esm/components/CardHorizontal/index.js +78 -101
  164. package/dist/esm/components/CardHorizontal/index.js.map +1 -1
  165. package/dist/esm/components/CardPrimary/CardPrimary.css +182 -0
  166. package/dist/esm/components/CardPrimary/CardPrimary.module.css.js +53 -0
  167. package/dist/esm/components/CardPrimary/CardPrimary.module.css.js.map +1 -0
  168. package/dist/esm/components/CardPrimary/CardPrimaryTopBadge.js +12 -12
  169. package/dist/esm/components/CardPrimary/CardPrimaryTopBadge.js.map +1 -1
  170. package/dist/esm/components/CardPrimary/index.js +80 -79
  171. package/dist/esm/components/CardPrimary/index.js.map +1 -1
  172. package/dist/esm/components/CardPrimary/withTopBadge.js +1 -1
  173. package/dist/esm/components/CardPrimary/withTopBadge.js.map +1 -1
  174. package/dist/esm/components/Checkbox/Checkbox.css +116 -0
  175. package/dist/esm/components/Checkbox/Checkbox.module.css.js +25 -0
  176. package/dist/esm/components/Checkbox/Checkbox.module.css.js.map +1 -0
  177. package/dist/esm/components/Checkbox/index.js +26 -49
  178. package/dist/esm/components/Checkbox/index.js.map +1 -1
  179. package/dist/esm/components/Container/Container.css +189 -0
  180. package/dist/esm/components/Container/Container.module.css.js +64 -0
  181. package/dist/esm/components/Container/Container.module.css.js.map +1 -0
  182. package/dist/esm/components/Container/index.js +92 -56
  183. package/dist/esm/components/Container/index.js.map +1 -1
  184. package/dist/esm/components/DateDetails/index.js +1 -1
  185. package/dist/esm/components/DateDetails/index.js.map +1 -1
  186. package/dist/esm/components/EllipsisContent/index.js.map +1 -1
  187. package/dist/esm/components/GenericLabel/GenericLabel.css +31 -0
  188. package/dist/esm/components/GenericLabel/GenericLabel.module.css.js +7 -0
  189. package/dist/esm/components/GenericLabel/GenericLabel.module.css.js.map +1 -0
  190. package/dist/esm/components/GenericLabel/index.js +14 -25
  191. package/dist/esm/components/GenericLabel/index.js.map +1 -1
  192. package/dist/esm/components/GridContainer/index.js.map +1 -1
  193. package/dist/esm/components/Icon/Icon.css +134 -0
  194. package/dist/esm/components/Icon/Icon.module.css.js +23 -0
  195. package/dist/esm/components/Icon/Icon.module.css.js.map +1 -0
  196. package/dist/esm/components/Icon/Icon.stories.css +36 -0
  197. package/dist/esm/components/Icon/SvgImageElement.js +30 -12
  198. package/dist/esm/components/Icon/SvgImageElement.js.map +1 -1
  199. package/dist/esm/components/Icon/index.js +43 -34
  200. package/dist/esm/components/Icon/index.js.map +1 -1
  201. package/dist/esm/components/IconButton/IconButton.css +145 -0
  202. package/dist/esm/components/IconButton/IconButton.module.css.js +21 -0
  203. package/dist/esm/components/IconButton/IconButton.module.css.js.map +1 -0
  204. package/dist/esm/components/IconButton/index.js +29 -40
  205. package/dist/esm/components/IconButton/index.js.map +1 -1
  206. package/dist/esm/components/Label/Label.css +32 -0
  207. package/dist/esm/components/Label/Label.module.css.js +11 -0
  208. package/dist/esm/components/Label/Label.module.css.js.map +1 -0
  209. package/dist/esm/components/Label/index.js +24 -27
  210. package/dist/esm/components/Label/index.js.map +1 -1
  211. package/dist/esm/components/Link/Link.css +135 -0
  212. package/dist/esm/components/Link/Link.module.css.js +29 -0
  213. package/dist/esm/components/Link/Link.module.css.js.map +1 -0
  214. package/dist/esm/components/Link/index.js +51 -18
  215. package/dist/esm/components/Link/index.js.map +1 -1
  216. package/dist/esm/components/ProgressBar/ProgressBar.css +124 -0
  217. package/dist/esm/components/ProgressBar/ProgressBar.module.css.js +27 -0
  218. package/dist/esm/components/ProgressBar/ProgressBar.module.css.js.map +1 -0
  219. package/dist/esm/components/ProgressBar/index.js +44 -66
  220. package/dist/esm/components/ProgressBar/index.js.map +1 -1
  221. package/dist/esm/components/Separator/Separator.css +81 -0
  222. package/dist/esm/components/Separator/Separator.module.css.js +19 -0
  223. package/dist/esm/components/Separator/Separator.module.css.js.map +1 -0
  224. package/dist/esm/components/Separator/index.js +26 -18
  225. package/dist/esm/components/Separator/index.js.map +1 -1
  226. package/dist/esm/components/Spacer/Spacer.css +28 -0
  227. package/dist/esm/components/Spacer/Spacer.module.css.js +19 -0
  228. package/dist/esm/components/Spacer/Spacer.module.css.js.map +1 -0
  229. package/dist/esm/components/Spacer/index.js +22 -8
  230. package/dist/esm/components/Spacer/index.js.map +1 -1
  231. package/dist/esm/components/Switch/Switch.css +65 -0
  232. package/dist/esm/components/Switch/Switch.module.css.js +10 -0
  233. package/dist/esm/components/Switch/Switch.module.css.js.map +1 -0
  234. package/dist/esm/components/Switch/index.js +7 -70
  235. package/dist/esm/components/Switch/index.js.map +1 -1
  236. package/dist/esm/components/Text/Text.css +125 -0
  237. package/dist/esm/components/Text/Text.module.css.js +44 -0
  238. package/dist/esm/components/Text/Text.module.css.js.map +1 -0
  239. package/dist/esm/components/Text/index.js +133 -16
  240. package/dist/esm/components/Text/index.js.map +1 -1
  241. package/dist/esm/components/Title/Title.css +99 -0
  242. package/dist/esm/components/Title/Title.module.css.js +27 -0
  243. package/dist/esm/components/Title/Title.module.css.js.map +1 -0
  244. package/dist/esm/components/Title/index.js +85 -19
  245. package/dist/esm/components/Title/index.js.map +1 -1
  246. package/dist/esm/index.js +1 -1
  247. package/dist/esm/{components/Link/common.js → styles/linkStyles.js} +1 -1
  248. package/dist/esm/styles/linkStyles.js.map +1 -0
  249. package/dist/esm/theme/styles/tokens-dark.css +3 -0
  250. package/dist/esm/theme/styles/tokens-light.css +4 -0
  251. package/dist/esm/theme/tokens/variables.dark.js +4 -2
  252. package/dist/esm/theme/tokens/variables.dark.js.map +1 -1
  253. package/dist/esm/theme/tokens/variables.light.js +6 -1
  254. package/dist/esm/theme/tokens/variables.light.js.map +1 -1
  255. package/dist/types/components/Assets/Icons/Popin.d.ts +3 -0
  256. package/dist/types/components/Assets/Icons/system/types.d.ts +1 -1
  257. package/dist/types/components/Avatar/Avatar.d.ts +1 -1
  258. package/dist/types/components/Badge/Badge.d.ts +1 -1
  259. package/dist/types/components/ButtonGroup/ButtonGroup.d.ts +1 -1
  260. package/dist/types/components/ButtonGroup/ButtonGroup.types.d.ts +2 -2
  261. package/dist/types/components/CardHorizontal/CardHorizontal.d.ts +1 -1
  262. package/dist/types/components/CardPrimary/CardPrimaryTopBadge.d.ts +10 -4
  263. package/dist/types/components/Checkbox/Checkbox.d.ts +1 -1
  264. package/dist/types/components/Container/Container.d.ts +1 -1
  265. package/dist/types/components/EllipsisContent/EllipsisContent.d.ts +1 -1
  266. package/dist/types/components/GenericLabel/GenericLabel.d.ts +1 -1
  267. package/dist/types/components/GridContainer/GridContainer.d.ts +1 -1
  268. package/dist/types/components/Icon/SvgImageElement.d.ts +6 -3
  269. package/dist/types/components/IconWrapper/IconWrapper.types.d.ts +2 -2
  270. package/dist/types/components/Label/Label.d.ts +1 -1
  271. package/dist/types/components/Link/Link.d.ts +1 -1
  272. package/dist/types/components/ProgressBar/ProgressBar.d.ts +2 -40
  273. package/dist/types/components/Separator/Separator.d.ts +1 -1
  274. package/dist/types/components/Text/Text.d.ts +1 -1
  275. package/dist/types/index.d.ts +2 -2
  276. package/dist/types/{components/Link/common.d.ts → styles/linkStyles.d.ts} +1 -1
  277. package/dist/types/theme/theme.core.d.ts +7 -0
  278. package/dist/types/theme/tokens/variables.dark.d.ts +2 -0
  279. package/dist/types/theme/tokens/variables.light.d.ts +5 -0
  280. package/package.json +2 -2
  281. package/dist/cjs/components/Link/common.cjs.map +0 -1
  282. package/dist/esm/components/Link/common.js.map +0 -1
@@ -1,21 +1,45 @@
1
+ import "./Link.css";
1
2
  import { jsxs, jsx } from 'react/jsx-runtime';
2
3
  import { forwardRef } from 'react';
3
- import { styled } from 'styled-components';
4
- import { linkStyles } from './common.js';
4
+ import { cn } from '../../lib/cva.js';
5
+ import styles from './Link.module.css.js';
5
6
  import { Icon as SvgImage } from '../Icon/index.js';
7
+ import { cva } from 'class-variance-authority';
6
8
 
7
- const CuiLink = styled.a.withConfig({
8
- componentId: "sc-1bwz77u-0"
9
- })(["", ""], linkStyles);
10
- const IconWrapper = styled.span.withConfig({
11
- componentId: "sc-1bwz77u-1"
12
- })([".external-icon{height:", ";width:", ";}"], ({
13
- $size,
14
- theme
15
- }) => $size === "xs" || $size === "sm" ? theme.click.link.icon.size.sm.height : theme.click.link.icon.size.md.height, ({
16
- $size,
17
- theme
18
- }) => $size === "xs" || $size === "sm" ? theme.click.link.icon.size.sm.width : theme.click.link.icon.size.md.width);
9
+ const linkVariants = cva(styles.link, {
10
+ variants: {
11
+ size: {
12
+ xs: styles["link_size_xs"],
13
+ sm: styles["link_size_sm"],
14
+ md: styles["link_size_md"],
15
+ lg: styles["link_size_lg"]
16
+ },
17
+ weight: {
18
+ normal: styles["link_weight_normal"],
19
+ medium: styles["link_weight_medium"],
20
+ semibold: styles["link_weight_semibold"],
21
+ bold: styles["link_weight_bold"],
22
+ mono: styles["link_weight_mono"]
23
+ }
24
+ },
25
+ defaultVariants: {
26
+ size: "md",
27
+ weight: "normal"
28
+ }
29
+ });
30
+ const externalIconVariants = cva("", {
31
+ variants: {
32
+ size: {
33
+ xs: styles["external-icon_size_xs"],
34
+ sm: styles["external-icon_size_sm"],
35
+ md: styles["external-icon_size_md"],
36
+ lg: styles["external-icon_size_lg"]
37
+ }
38
+ },
39
+ defaultVariants: {
40
+ size: "md"
41
+ }
42
+ });
19
43
  const _Link = ({
20
44
  size = "md",
21
45
  weight = "normal",
@@ -23,11 +47,20 @@ const _Link = ({
23
47
  icon,
24
48
  children,
25
49
  component,
50
+ className,
26
51
  ...props
27
- }, ref) => /* @__PURE__ */ jsxs(CuiLink, { ref, $size: size, $weight: weight, as: component ?? "a", onClick, ...props, children: [
28
- children,
29
- icon && /* @__PURE__ */ jsx(IconWrapper, { $size: size, children: /* @__PURE__ */ jsx(SvgImage, { name: icon, className: "external-icon", "data-testid": icon }) })
30
- ] });
52
+ }, ref) => {
53
+ const Component = component ?? "a";
54
+ return /* @__PURE__ */ jsxs(Component, { ref, onClick, ...props, className: cn(linkVariants({
55
+ size,
56
+ weight
57
+ }), className), children: [
58
+ children,
59
+ icon && /* @__PURE__ */ jsx("span", { children: /* @__PURE__ */ jsx(SvgImage, { name: icon, className: cn("external-icon", externalIconVariants({
60
+ size
61
+ })), "data-testid": icon }) })
62
+ ] });
63
+ };
31
64
  const Link = forwardRef(_Link);
32
65
 
33
66
  export { Link };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/Link/Link.tsx"],"sourcesContent":["import {\n ComponentProps,\n ComponentPropsWithRef,\n ElementType,\n ReactEventHandler,\n ReactNode,\n forwardRef,\n} from 'react';\nimport { Icon } from '@/components/Icon';\nimport type { IconName } from '@/components/Icon/Icon.types';\nimport { styled } from 'styled-components';\nimport { linkStyles } from './common';\nimport type { TextSize, TextWeight } from '@/components/Text';\n\nexport interface LinkProps<T extends ElementType = 'a'> {\n /** The font size of the link text */\n size?: TextSize;\n /** The font weight of the link text */\n weight?: TextWeight;\n /** Click event handler */\n onClick?: ReactEventHandler;\n /** The content to display inside the link */\n children?: React.ReactNode;\n /** Optional icon to display after the link text */\n icon?: IconName;\n /** Custom component to render as the link element */\n component?: T;\n}\n\nconst CuiLink = styled.a<{ $size: TextSize; $weight: TextWeight }>`\n ${linkStyles}\n`;\n\nconst IconWrapper = styled.span<{ $size: TextSize }>`\n .external-icon {\n height: ${({ $size, theme }) =>\n $size === 'xs' || $size === 'sm'\n ? theme.click.link.icon.size.sm.height\n : theme.click.link.icon.size.md.height};\n width: ${({ $size, theme }) =>\n $size === 'xs' || $size === 'sm'\n ? theme.click.link.icon.size.sm.width\n : theme.click.link.icon.size.md.width};\n }\n`;\n\ntype LinkPolymorphicComponent = <T extends ElementType = 'a'>(\n props: Omit<ComponentProps<T>, keyof T> & LinkProps<T>\n) => ReactNode;\n\n/** Component for linking to other pages or sections from with body text */\nconst _Link = <T extends ElementType = 'a'>(\n {\n size = 'md',\n weight = 'normal',\n onClick,\n icon,\n children,\n component,\n ...props\n }: Omit<ComponentProps<T>, keyof T> & LinkProps<T>,\n ref: ComponentPropsWithRef<T>['ref']\n) => (\n <CuiLink\n ref={ref}\n $size={size}\n $weight={weight}\n as={component ?? 'a'}\n onClick={onClick}\n {...props}\n >\n {children}\n {icon && (\n <IconWrapper $size={size}>\n <Icon\n name={icon}\n className=\"external-icon\"\n data-testid={icon}\n />\n </IconWrapper>\n )}\n </CuiLink>\n);\nexport const Link: LinkPolymorphicComponent = forwardRef(_Link);\n"],"names":["CuiLink","styled","a","withConfig","componentId","linkStyles","IconWrapper","span","$size","theme","click","link","icon","size","sm","height","md","width","_Link","weight","onClick","children","component","props","ref","Icon","Link","forwardRef"],"mappings":";;;;;;AA6BA,MAAMA,OAAAA,GAAUC,MAAAA,CAAOC,CAAAA,CAACC,UAAAA,CAAA;AAAA,EAAAC,WAAAA,EAAA;AAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,EAAA,GACpBC,UAAU,CAAA;AAGd,MAAMC,WAAAA,GAAcL,MAAAA,CAAOM,IAAAA,CAAIJ,UAAAA,CAAA;AAAA,EAAAC,WAAAA,EAAA;AAAA,CAAA,EAAA,CAAA,wBAAA,EAAA,SAAA,EAAA,IAAA,GAEjB,CAAC;AAAA,EAAEI,KAAAA;AAAAA,EAAOC;AAAM,CAAA,KACxBD,UAAU,IAAA,IAAQA,KAAAA,KAAU,OACxBC,KAAAA,CAAMC,KAAAA,CAAMC,KAAKC,IAAAA,CAAKC,IAAAA,CAAKC,EAAAA,CAAGC,MAAAA,GAC9BN,MAAMC,KAAAA,CAAMC,IAAAA,CAAKC,KAAKC,IAAAA,CAAKG,EAAAA,CAAGD,QAC3B,CAAC;AAAA,EAAEP,KAAAA;AAAAA,EAAOC;AAAM,CAAA,KACvBD,UAAU,IAAA,IAAQA,KAAAA,KAAU,IAAA,GACxBC,KAAAA,CAAMC,MAAMC,IAAAA,CAAKC,IAAAA,CAAKC,IAAAA,CAAKC,EAAAA,CAAGG,QAC9BR,KAAAA,CAAMC,KAAAA,CAAMC,KAAKC,IAAAA,CAAKC,IAAAA,CAAKG,GAAGC,KAAK,CAAA;AAS7C,MAAMC,QAAQ,CACZ;AAAA,EACEL,IAAAA,GAAO,IAAA;AAAA,EACPM,MAAAA,GAAS,QAAA;AAAA,EACTC,OAAAA;AAAAA,EACAR,IAAAA;AAAAA,EACAS,QAAAA;AAAAA,EACAC,SAAAA;AAAAA,EACA,GAAGC;AAC4C,CAAA,EACjDC,GAAAA,qBAEA,IAAA,CAAC,OAAA,EAAA,EACC,GAAA,EACA,KAAA,EAAOX,IAAAA,EACP,OAAA,EAASM,MAAAA,EACT,EAAA,EAAIG,SAAAA,IAAa,GAAA,EACjB,OAAA,EACA,GAAIC,KAAAA,EAEHF,QAAAA,EAAAA;AAAAA,EAAAA,QAAAA;AAAAA,EACAT,IAAAA,oBACC,GAAA,CAAC,WAAA,EAAA,EAAY,KAAA,EAAOC,IAAAA,EAClB,QAAA,kBAAA,GAAA,CAACY,QAAA,EAAA,EACC,IAAA,EAAMb,IAAAA,EACN,SAAA,EAAU,eAAA,EACV,aAAA,EAAaA,MAAK,CAAA,EAEtB;AAAA,CAAA,EAEJ,CAAA;AAEK,MAAMc,IAAAA,GAAiCC,WAAWT,KAAK;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/Link/Link.tsx"],"sourcesContent":["import {\n ComponentProps,\n ComponentPropsWithRef,\n ElementType,\n ReactEventHandler,\n ReactNode,\n forwardRef,\n} from 'react';\nimport { Icon } from '@/components/Icon';\nimport type { IconName } from '@/components/Icon/Icon.types';\nimport { cn, cva } from '@/lib/cva';\nimport styles from './Link.module.css';\nimport type { TextSize, TextWeight } from '@/components/Text';\n\nexport interface LinkProps<T extends ElementType = 'a'> {\n /** The font size of the link text */\n size?: TextSize;\n /** The font weight of the link text */\n weight?: TextWeight;\n /** Click event handler */\n onClick?: ReactEventHandler;\n /** The content to display inside the link */\n children?: React.ReactNode;\n /** Optional icon to display after the link text */\n icon?: IconName;\n /** Custom component to render as the link element */\n component?: T;\n}\n\nconst linkVariants = cva(styles.link, {\n variants: {\n size: {\n xs: styles['link_size_xs'],\n sm: styles['link_size_sm'],\n md: styles['link_size_md'],\n lg: styles['link_size_lg'],\n },\n weight: {\n normal: styles['link_weight_normal'],\n medium: styles['link_weight_medium'],\n semibold: styles['link_weight_semibold'],\n bold: styles['link_weight_bold'],\n mono: styles['link_weight_mono'],\n },\n },\n defaultVariants: {\n size: 'md',\n weight: 'normal',\n },\n});\n\nconst externalIconVariants = cva('', {\n variants: {\n size: {\n xs: styles['external-icon_size_xs'],\n sm: styles['external-icon_size_sm'],\n md: styles['external-icon_size_md'],\n lg: styles['external-icon_size_lg'],\n },\n },\n defaultVariants: {\n size: 'md',\n },\n});\n\ntype LinkPolymorphicComponent = <T extends ElementType = 'a'>(\n props: Omit<ComponentProps<T>, keyof LinkProps<T>> & LinkProps<T>\n) => ReactNode;\n\n/** Component for linking to other pages or sections from with body text */\nconst _Link = <T extends ElementType = 'a'>(\n {\n size = 'md',\n weight = 'normal',\n onClick,\n icon,\n children,\n component,\n className,\n ...props\n }: Omit<ComponentProps<T>, keyof LinkProps<T>> & LinkProps<T> & { className?: string },\n ref: ComponentPropsWithRef<T>['ref']\n) => {\n const Component = component ?? 'a';\n return (\n <Component\n ref={ref}\n onClick={onClick}\n {...props}\n className={cn(linkVariants({ size, weight }), className)}\n >\n {children}\n {icon && (\n <span>\n <Icon\n name={icon}\n className={cn('external-icon', externalIconVariants({ size }))}\n data-testid={icon}\n />\n </span>\n )}\n </Component>\n );\n};\nexport const Link: LinkPolymorphicComponent = forwardRef(_Link);\n"],"names":["linkVariants","cva","styles","link","variants","size","xs","sm","md","lg","weight","normal","medium","semibold","bold","mono","defaultVariants","externalIconVariants","_Link","onClick","icon","children","component","className","props","ref","Component","cn","Icon","Link","forwardRef"],"mappings":";;;;;;;AA6BA,MAAMA,YAAAA,GAAeC,GAAAA,CAAIC,MAAAA,CAAOC,IAAAA,EAAM;AAAA,EACpCC,QAAAA,EAAU;AAAA,IACRC,IAAAA,EAAM;AAAA,MACJC,EAAAA,EAAIJ,OAAO,cAAc,CAAA;AAAA,MACzBK,EAAAA,EAAIL,OAAO,cAAc,CAAA;AAAA,MACzBM,EAAAA,EAAIN,OAAO,cAAc,CAAA;AAAA,MACzBO,EAAAA,EAAIP,OAAO,cAAc;AAAA,KAC3B;AAAA,IACAQ,MAAAA,EAAQ;AAAA,MACNC,MAAAA,EAAQT,OAAO,oBAAoB,CAAA;AAAA,MACnCU,MAAAA,EAAQV,OAAO,oBAAoB,CAAA;AAAA,MACnCW,QAAAA,EAAUX,OAAO,sBAAsB,CAAA;AAAA,MACvCY,IAAAA,EAAMZ,OAAO,kBAAkB,CAAA;AAAA,MAC/Ba,IAAAA,EAAMb,OAAO,kBAAkB;AAAA;AACjC,GACF;AAAA,EACAc,eAAAA,EAAiB;AAAA,IACfX,IAAAA,EAAM,IAAA;AAAA,IACNK,MAAAA,EAAQ;AAAA;AAEZ,CAAC,CAAA;AAED,MAAMO,oBAAAA,GAAuBhB,IAAI,EAAA,EAAI;AAAA,EACnCG,QAAAA,EAAU;AAAA,IACRC,IAAAA,EAAM;AAAA,MACJC,EAAAA,EAAIJ,OAAO,uBAAuB,CAAA;AAAA,MAClCK,EAAAA,EAAIL,OAAO,uBAAuB,CAAA;AAAA,MAClCM,EAAAA,EAAIN,OAAO,uBAAuB,CAAA;AAAA,MAClCO,EAAAA,EAAIP,OAAO,uBAAuB;AAAA;AACpC,GACF;AAAA,EACAc,eAAAA,EAAiB;AAAA,IACfX,IAAAA,EAAM;AAAA;AAEV,CAAC,CAAA;AAOD,MAAMa,QAAQ,CACZ;AAAA,EACEb,IAAAA,GAAO,IAAA;AAAA,EACPK,MAAAA,GAAS,QAAA;AAAA,EACTS,OAAAA;AAAAA,EACAC,IAAAA;AAAAA,EACAC,QAAAA;AAAAA,EACAC,SAAAA;AAAAA,EACAC,SAAAA;AAAAA,EACA,GAAGC;AACgF,CAAA,EACrFC,GAAAA,KACG;AACH,EAAA,MAAMC,YAAYJ,SAAAA,IAAa,GAAA;AAC/B,EAAA,uBACE,IAAA,CAAC,aACC,GAAA,EACA,OAAA,EACA,GAAIE,KAAAA,EACJ,SAAA,EAAWG,GAAG3B,YAAAA,CAAa;AAAA,IAAEK,IAAAA;AAAAA,IAAMK;AAAAA,GAAQ,CAAA,EAAGa,SAAS,CAAA,EAEtDF,QAAAA,EAAAA;AAAAA,IAAAA,QAAAA;AAAAA,IACAD,IAAAA,oBACC,GAAA,CAAC,MAAA,EAAA,EACC,QAAA,kBAAA,GAAA,CAACQ,QAAA,EAAA,EACC,MAAMR,IAAAA,EACN,SAAA,EAAWO,EAAAA,CAAG,eAAA,EAAiBV,oBAAAA,CAAqB;AAAA,MAAEZ;AAAAA,KAAM,CAAC,CAAA,EAC7D,aAAA,EAAae,MAAK,CAAA,EAEtB;AAAA,GAAA,EAEJ,CAAA;AAEJ,CAAA;AACO,MAAMS,IAAAA,GAAiCC,WAAWZ,KAAK;;;;"}
@@ -0,0 +1,124 @@
1
+ .progressbar__21KMf {
2
+ display: flex;
3
+ min-height: 2px;
4
+ padding-right: 0;
5
+ overflow: hidden;
6
+ justify-content: space-between;
7
+ align-items: center;
8
+ gap: var(--click-field-space-gap);
9
+ border: 1px solid var(--click-field-color-stroke-default);
10
+ border-radius: var(--click-field-radii-all);
11
+ background: linear-gradient(
12
+ var(--progress-grad-dir, to right),
13
+ var(--global-color-accent-default) 0%,
14
+ var(--global-color-accent-default) var(--progress),
15
+ var(--progress-bg, var(--click-field-color-background-default)) var(--progress),
16
+ var(--progress-bg, var(--click-field-color-background-default)) 100%
17
+ );
18
+ background-position: center;
19
+ background-size: calc(100% + 2px);
20
+ color: var(--global-color-accent-default);
21
+ font: var(--typography-styles-product-text-normal-sm);
22
+ transition: all 100ms ease-in-out;
23
+ }
24
+
25
+ .progressbar_orientation_vertical__0w-VB {
26
+ width: auto;
27
+ height: 100%;
28
+ flex-direction: column;
29
+ }
30
+
31
+ /* stylelint-disable plugin/no-unsupported-browser-features, declaration-property-value-no-unknown -- the original rule used this same
32
+ width fallback chain (100% → -webkit-fill-available → fill-available →
33
+ stretch) so horizontal bars fill the available inline space. */
34
+ .progressbar_orientation_horizontal__MJimN {
35
+ width: 100%;
36
+ width: -webkit-fill-available;
37
+ width: fill-available;
38
+ width: stretch;
39
+ }
40
+ /* stylelint-enable plugin/no-unsupported-browser-features, declaration-property-value-no-unknown */
41
+
42
+ .progressbar_orientation_horizontal__MJimN.progressbar_dir_start__xUm-Q {
43
+ --progress-grad-dir: to right;
44
+ }
45
+
46
+ .progressbar_orientation_horizontal__MJimN.progressbar_dir_end__iGTwK {
47
+ --progress-grad-dir: to left;
48
+ }
49
+
50
+ .progressbar_orientation_vertical__0w-VB.progressbar_dir_start__xUm-Q {
51
+ --progress-grad-dir: to bottom;
52
+ }
53
+
54
+ .progressbar_orientation_vertical__0w-VB.progressbar_dir_end__iGTwK {
55
+ --progress-grad-dir: to top;
56
+ }
57
+
58
+ .progressbar_type_default__B8jtt {
59
+ padding: 0.25rem var(--click-field-space-x);
60
+ padding-right: 0;
61
+ }
62
+
63
+ .progressbar_type_small__bcDiV {
64
+ padding: 0 var(--click-field-space-x);
65
+ padding-right: 0;
66
+ }
67
+
68
+ .progressbar_completed__XhK-p.progressbar_type_default__B8jtt {
69
+ background: var(--click-field-color-background-default);
70
+ background-position: center;
71
+ background-size: calc(100% + 2px);
72
+ }
73
+
74
+ .progressbar__21KMf:hover {
75
+ --progress-bg: var(--click-field-color-background-hover);
76
+
77
+ border: 1px solid var(--click-field-color-stroke-hover);
78
+ background-position: center;
79
+ background-size: calc(100% + 2px);
80
+ }
81
+
82
+ .progressbar_completed__XhK-p:hover {
83
+ background: var(--click-field-color-background-hover);
84
+ background-position: center;
85
+ background-size: calc(100% + 2px);
86
+ }
87
+
88
+ .progressbar__21KMf:focus,
89
+ .progressbar__21KMf:focus-within {
90
+ --progress-bg: var(--click-field-color-background-active);
91
+
92
+ border: 1px solid var(--click-field-color-stroke-active);
93
+ background-position: center;
94
+ background-size: calc(100% + 2px);
95
+ }
96
+
97
+ .progressbar_completed__XhK-p:focus,
98
+ .progressbar_completed__XhK-p:focus-within {
99
+ background: var(--click-field-color-background-active);
100
+ background-position: center;
101
+ background-size: calc(100% + 2px);
102
+ }
103
+
104
+ .progresstext__RAf9Q {
105
+ width: 100%;
106
+ font: inherit;
107
+ /* stylelint-disable-next-line plugin/no-unsupported-browser-features -- mix-blend-mode
108
+ is widely supported on evergreen browsers; the original rule
109
+ used the same value to invert the text against the gradient fill. */
110
+ mix-blend-mode: difference;
111
+ }
112
+
113
+ .progressclosebutton__cGgfw {
114
+ visibility: hidden;
115
+ border: 0;
116
+ /* stylelint-disable-next-line plugin/no-unsupported-browser-features -- mix-blend-mode
117
+ is widely supported on evergreen browsers; the original rule
118
+ used the same value to invert the close icon against the gradient fill. */
119
+ mix-blend-mode: difference;
120
+ }
121
+
122
+ .progressclosebutton_dismissable__p5mDJ {
123
+ visibility: visible;
124
+ }
@@ -0,0 +1,27 @@
1
+ const progressbar = "progressbar__21KMf";
2
+ const progressbar_orientation_vertical = "progressbar_orientation_vertical__0w-VB";
3
+ const progressbar_orientation_horizontal = "progressbar_orientation_horizontal__MJimN";
4
+ const progressbar_dir_start = "progressbar_dir_start__xUm-Q";
5
+ const progressbar_dir_end = "progressbar_dir_end__iGTwK";
6
+ const progressbar_type_default = "progressbar_type_default__B8jtt";
7
+ const progressbar_type_small = "progressbar_type_small__bcDiV";
8
+ const progressbar_completed = "progressbar_completed__XhK-p";
9
+ const progresstext = "progresstext__RAf9Q";
10
+ const progressclosebutton = "progressclosebutton__cGgfw";
11
+ const progressclosebutton_dismissable = "progressclosebutton_dismissable__p5mDJ";
12
+ const styles = {
13
+ progressbar: progressbar,
14
+ progressbar_orientation_vertical: progressbar_orientation_vertical,
15
+ progressbar_orientation_horizontal: progressbar_orientation_horizontal,
16
+ progressbar_dir_start: progressbar_dir_start,
17
+ progressbar_dir_end: progressbar_dir_end,
18
+ progressbar_type_default: progressbar_type_default,
19
+ progressbar_type_small: progressbar_type_small,
20
+ progressbar_completed: progressbar_completed,
21
+ progresstext: progresstext,
22
+ progressclosebutton: progressclosebutton,
23
+ progressclosebutton_dismissable: progressclosebutton_dismissable
24
+ };
25
+
26
+ export { styles as default, progressbar, progressbar_completed, progressbar_dir_end, progressbar_dir_start, progressbar_orientation_horizontal, progressbar_orientation_vertical, progressbar_type_default, progressbar_type_small, progressclosebutton, progressclosebutton_dismissable, progresstext };
27
+ //# sourceMappingURL=ProgressBar.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProgressBar.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,68 +1,41 @@
1
+ import "./ProgressBar.css";
1
2
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
- import { styled } from 'styled-components';
3
+ import { cn } from '../../lib/cva.js';
4
+ import styles from './ProgressBar.module.css.js';
3
5
  import { IconButton } from '../IconButton/index.js';
6
+ import { cva } from 'class-variance-authority';
4
7
 
5
- const getGradientDirection = (orientation, dir) => {
6
- if (orientation === "vertical") {
7
- return dir === "start" ? "to bottom" : "to top";
8
- }
9
- return dir === "start" ? "to right" : "to left";
10
- };
11
- const createGradient = (gradientDir, accentColor, bgColor) => `linear-gradient(${gradientDir}, ${accentColor} 0%, ${accentColor} var(--progress), ${bgColor} var(--progress), ${bgColor} 100%)`;
12
- const ProgressContainer = styled.div.withConfig({
13
- componentId: "sc-16gr3cg-0"
14
- })(["display:flex;justify-content:space-between;align-items:center;overflow:hidden;transition:all 100ms ease-in-out;min-height:2px;", " ", ";"], ({
15
- $orientation
16
- }) => $orientation === "vertical" ? `
17
- flex-direction: column;
18
- width: auto;
19
- height: 100%;
20
- ` : `
21
- width: 100%;
22
- width: -webkit-fill-available;
23
- width: fill-available;
24
- width: stretch;
25
- `, ({
26
- theme,
27
- $completed,
28
- $type,
29
- $orientation,
30
- $dir
31
- }) => {
32
- const gradientDir = getGradientDirection($orientation, $dir);
33
- return `
34
- background: ${$completed && $type === "default" ? theme.click.field.color.background.default : createGradient(gradientDir, theme.global.color.accent.default, theme.click.field.color.background.default)};
35
- background-size: calc(100% + 2px);
36
- background-position: center;
37
- gap: ${theme.click.field.space.gap};
38
- border-radius: ${theme.click.field.radii.all};
39
- font: ${theme.typography.styles.product.text.normal.sm};
40
- padding: ${$type === "default" ? "0.25rem" : 0} ${theme.click.field.space.x};
41
- padding-right: 0;
42
- color: ${theme.global.color.accent.default};
43
- border: 1px solid ${theme.click.field.color.stroke.default};
44
- &:hover {
45
- border: 1px solid ${theme.click.field.color.stroke.hover};
46
- background: ${$completed ? theme.click.field.color.background.hover : createGradient(gradientDir, theme.global.color.accent.default, theme.click.field.color.background.hover)};
47
- background-size: calc(100% + 2px);
48
- background-position: center;
8
+ const progressBarVariants = cva(styles.progressbar, {
9
+ variants: {
10
+ type: {
11
+ default: styles["progressbar_type_default"],
12
+ small: styles["progressbar_type_small"]
13
+ },
14
+ orientation: {
15
+ horizontal: styles["progressbar_orientation_horizontal"],
16
+ vertical: styles["progressbar_orientation_vertical"]
17
+ },
18
+ dir: {
19
+ start: styles["progressbar_dir_start"],
20
+ end: styles["progressbar_dir_end"]
21
+ },
22
+ completed: {
23
+ true: styles["progressbar_completed"]
49
24
  }
50
- &:focus-within, &:focus {
51
- border: 1px solid ${theme.click.field.color.stroke.active};
52
- background: ${$completed ? theme.click.field.color.background.active : createGradient(gradientDir, theme.global.color.accent.default, theme.click.field.color.background.active)};
53
- background-size: calc(100% + 2px);
54
- background-position: center;
25
+ },
26
+ defaultVariants: {
27
+ type: "default",
28
+ orientation: "horizontal",
29
+ dir: "start"
30
+ }
31
+ });
32
+ const closeButtonVariants = cva(styles.progressclosebutton, {
33
+ variants: {
34
+ dismissable: {
35
+ true: styles["progressclosebutton_dismissable"]
55
36
  }
56
- `;
37
+ }
57
38
  });
58
- const ProgressText = styled.span.withConfig({
59
- componentId: "sc-16gr3cg-1"
60
- })(["width:100%;font:inherit;mix-blend-mode:difference;"]);
61
- const ProgressCloseButton = styled.button.withConfig({
62
- componentId: "sc-16gr3cg-2"
63
- })(["mix-blend-mode:difference;border:0;visibility:", ";"], ({
64
- $dismissable
65
- }) => $dismissable ? "visible" : "hidden");
66
39
  const ProgressBar = ({
67
40
  progress,
68
41
  type = "default",
@@ -71,23 +44,28 @@ const ProgressBar = ({
71
44
  successMessage,
72
45
  orientation = "horizontal",
73
46
  dir = "start",
47
+ className,
74
48
  ...props
75
49
  }) => {
76
50
  const completed = progress === 100;
77
51
  return /* @__PURE__ */ jsx(
78
- ProgressContainer,
52
+ "div",
79
53
  {
80
- $completed: completed,
81
- $type: type,
82
- $orientation: orientation,
83
- $dir: dir,
84
54
  style: {
85
55
  "--progress": `${progress}%`
86
56
  },
87
57
  ...props,
58
+ className: cn(progressBarVariants({
59
+ type,
60
+ orientation,
61
+ dir,
62
+ completed
63
+ }), className),
88
64
  children: type === "default" && /* @__PURE__ */ jsxs(Fragment, { children: [
89
- /* @__PURE__ */ jsx(ProgressText, { $completed: completed, children: successMessage && completed ? successMessage : `${progress}%` }),
90
- /* @__PURE__ */ jsx(ProgressCloseButton, { as: IconButton, size: "sm", type: "ghost", icon: "cross", $dismissable: dismissable, onClick: onCancel, "data-testid": "progressbar-close" })
65
+ /* @__PURE__ */ jsx("span", { className: styles.progresstext, children: successMessage && completed ? successMessage : `${progress}%` }),
66
+ /* @__PURE__ */ jsx(IconButton, { size: "sm", type: "ghost", icon: "cross", onClick: onCancel, "data-testid": "progressbar-close", className: closeButtonVariants({
67
+ dismissable
68
+ }) })
91
69
  ] })
92
70
  }
93
71
  );
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/ProgressBar/ProgressBar.tsx"],"sourcesContent":["import { HTMLAttributes, ReactNode } from 'react';\nimport { styled } from 'styled-components';\nimport { IconButton } from '@/components/IconButton';\n\ninterface CommonProgressBarProps extends Omit<\n HTMLAttributes<HTMLDivElement>,\n 'children'\n> {\n /** The current progress value (0-100) */\n progress: number;\n /** Optional label to display */\n label?: ReactNode;\n /** Optional error message to display */\n error?: ReactNode;\n /** The orientation of the progress bar - horizontal fills width, vertical fills height */\n orientation?: 'vertical' | 'horizontal';\n /** The direction of progress fill - start fills from left/top, end fills from right/bottom */\n dir?: 'start' | 'end';\n}\n\ninterface DefaultProgressBar extends CommonProgressBarProps {\n /** The type of progress bar - \"default\" shows text and close button */\n type?: 'default';\n /** Message to display when progress reaches 100% */\n successMessage?: ReactNode;\n}\n\ninterface SmallProgressBar extends CommonProgressBarProps {\n /** The type of progress bar - \"small\" shows only the progress indicator */\n type: 'small';\n successMessage?: never;\n dismissable?: never;\n onCancel?: never;\n}\n\ninterface DismissableProgressBar {\n /** When true, shows a close button to cancel the progress */\n dismissable: true;\n /** Callback function when the close button is clicked */\n onCancel: () => void;\n}\n\ninterface NonDismissableProgressBar {\n /** When false or undefined, the close button is hidden */\n dismissable?: false;\n onCancel?: never;\n}\n\nexport type ProgressBarProps =\n | (DefaultProgressBar & (DismissableProgressBar | NonDismissableProgressBar))\n | SmallProgressBar;\n\ntype Orientation = 'horizontal' | 'vertical';\ntype Direction = 'start' | 'end';\n\nconst getGradientDirection = (orientation: Orientation, dir: Direction): string => {\n if (orientation === 'vertical') {\n return dir === 'start' ? 'to bottom' : 'to top';\n }\n return dir === 'start' ? 'to right' : 'to left';\n};\n\nconst createGradient = (gradientDir: string, accentColor: string, bgColor: string) =>\n `linear-gradient(${gradientDir}, ${accentColor} 0%, ${accentColor} var(--progress), ${bgColor} var(--progress), ${bgColor} 100%)`;\n\n// The tokens are copied from dataloading page and may need to change on the new component creation in figma\nconst ProgressContainer = styled.div<{\n $completed: boolean;\n $type: 'small' | 'default';\n $orientation: Orientation;\n $dir: Direction;\n}>`\n display: flex;\n justify-content: space-between;\n align-items: center;\n overflow: hidden;\n transition: all 100ms ease-in-out;\n min-height: 2px;\n ${({ $orientation }) =>\n $orientation === 'vertical'\n ? `\n flex-direction: column;\n width: auto;\n height: 100%;\n `\n : `\n width: 100%;\n width: -webkit-fill-available;\n width: fill-available;\n width: stretch;\n `}\n ${({ theme, $completed, $type, $orientation, $dir }) => {\n const gradientDir = getGradientDirection($orientation, $dir);\n return `\n background: ${\n $completed && $type === 'default'\n ? theme.click.field.color.background.default\n : createGradient(\n gradientDir,\n theme.global.color.accent.default,\n theme.click.field.color.background.default\n )\n };\n background-size: calc(100% + 2px);\n background-position: center;\n gap: ${theme.click.field.space.gap};\n border-radius: ${theme.click.field.radii.all};\n font: ${theme.typography.styles.product.text.normal.sm};\n padding: ${$type === 'default' ? '0.25rem' : 0} ${theme.click.field.space.x};\n padding-right: 0;\n color: ${theme.global.color.accent.default};\n border: 1px solid ${theme.click.field.color.stroke.default};\n &:hover {\n border: 1px solid ${theme.click.field.color.stroke.hover};\n background: ${\n $completed\n ? theme.click.field.color.background.hover\n : createGradient(\n gradientDir,\n theme.global.color.accent.default,\n theme.click.field.color.background.hover\n )\n };\n background-size: calc(100% + 2px);\n background-position: center;\n }\n &:focus-within, &:focus {\n border: 1px solid ${theme.click.field.color.stroke.active};\n background: ${\n $completed\n ? theme.click.field.color.background.active\n : createGradient(\n gradientDir,\n theme.global.color.accent.default,\n theme.click.field.color.background.active\n )\n };\n background-size: calc(100% + 2px);\n background-position: center;\n }\n `;\n }};\n`;\n\nconst ProgressText = styled.span<{ $completed: boolean }>`\n width: 100%;\n font: inherit;\n mix-blend-mode: difference;\n`;\n\nconst ProgressCloseButton = styled.button<{ $dismissable?: boolean }>`\n mix-blend-mode: difference;\n border: 0;\n visibility: ${({ $dismissable }) => ($dismissable ? 'visible' : 'hidden')};\n`;\n\nexport const ProgressBar = ({\n progress,\n type = 'default',\n dismissable = false,\n onCancel,\n successMessage,\n orientation = 'horizontal',\n dir = 'start',\n ...props\n}: ProgressBarProps) => {\n const completed = progress === 100;\n\n return (\n <ProgressContainer\n $completed={completed}\n $type={type}\n $orientation={orientation}\n $dir={dir}\n // Using a CSS variable avoids generating a new styled-components class per progress value.\n style={\n {\n '--progress': `${progress}%`,\n } as React.CSSProperties\n }\n {...props}\n >\n {type === 'default' && (\n <>\n <ProgressText $completed={completed}>\n {successMessage && completed ? successMessage : `${progress}%`}\n </ProgressText>\n <ProgressCloseButton\n as={IconButton}\n size=\"sm\"\n type=\"ghost\"\n icon=\"cross\"\n $dismissable={dismissable}\n onClick={onCancel}\n data-testid=\"progressbar-close\"\n />\n </>\n )}\n </ProgressContainer>\n );\n};\n"],"names":["getGradientDirection","orientation","dir","createGradient","gradientDir","accentColor","bgColor","ProgressContainer","styled","div","withConfig","componentId","$orientation","theme","$completed","$type","$dir","click","field","color","background","default","global","accent","space","gap","radii","all","typography","styles","product","text","normal","sm","x","stroke","hover","active","ProgressText","span","ProgressCloseButton","button","$dismissable","ProgressBar","progress","type","dismissable","onCancel","successMessage","props","completed","IconButton"],"mappings":";;;;AAuDA,MAAMA,oBAAAA,GAAuBA,CAACC,WAAAA,EAA0BC,GAAAA,KAA2B;AACjF,EAAA,IAAID,gBAAgB,UAAA,EAAY;AAC9B,IAAA,OAAOC,GAAAA,KAAQ,UAAU,WAAA,GAAc,QAAA;AAAA,EACzC;AACA,EAAA,OAAOA,GAAAA,KAAQ,UAAU,UAAA,GAAa,SAAA;AACxC,CAAA;AAEA,MAAMC,cAAAA,GAAiBA,CAACC,WAAAA,EAAqBC,WAAAA,EAAqBC,YAChE,CAAA,gBAAA,EAAmBF,WAAW,CAAA,EAAA,EAAKC,WAAW,CAAA,KAAA,EAAQA,WAAW,CAAA,kBAAA,EAAqBC,OAAO,qBAAqBA,OAAO,CAAA,MAAA,CAAA;AAG3H,MAAMC,iBAAAA,GAAoBC,MAAAA,CAAOC,GAAAA,CAAGC,UAAAA,CAAA;AAAA,EAAAC,WAAAA,EAAA;AAAA,CAAA,EAAA,CAAA,gIAAA,EAAA,GAAA,EAAA,GAAA,GAYhC,CAAC;AAAA,EAAEC;AAAa,CAAA,KAChBA,iBAAiB,UAAA,GACb;AAAA;AAAA;AAAA;AAAA,EAAA,CAAA,GAKA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAA,CAAA,EAMJ,CAAC;AAAA,EAAEC,KAAAA;AAAAA,EAAOC,UAAAA;AAAAA,EAAYC,KAAAA;AAAAA,EAAOH,YAAAA;AAAAA,EAAcI;AAAK,CAAA,KAAM;AACtD,EAAA,MAAMZ,WAAAA,GAAcJ,oBAAAA,CAAqBY,YAAAA,EAAcI,IAAI,CAAA;AAC3D,EAAA,OAAO;AAAA,gBAAA,EAELF,UAAAA,IAAcC,UAAU,SAAA,GACpBF,KAAAA,CAAMI,MAAMC,KAAAA,CAAMC,KAAAA,CAAMC,UAAAA,CAAWC,OAAAA,GACnClB,cAAAA,CACEC,WAAAA,EACAS,MAAMS,MAAAA,CAAOH,KAAAA,CAAMI,OAAOF,OAAAA,EAC1BR,KAAAA,CAAMI,MAAMC,KAAAA,CAAMC,KAAAA,CAAMC,UAAAA,CAAWC,OACrC,CAAC,CAAA;AAAA;AAAA;AAAA,SAAA,EAIAR,KAAAA,CAAMI,KAAAA,CAAMC,KAAAA,CAAMM,KAAAA,CAAMC,GAAG,CAAA;AAAA,mBAAA,EACjBZ,KAAAA,CAAMI,KAAAA,CAAMC,KAAAA,CAAMQ,KAAAA,CAAMC,GAAG,CAAA;AAAA,UAAA,EACpCd,MAAMe,UAAAA,CAAWC,MAAAA,CAAOC,OAAAA,CAAQC,IAAAA,CAAKC,OAAOC,EAAE,CAAA;AAAA,aAAA,EAC3ClB,KAAAA,KAAU,YAAY,SAAA,GAAY,CAAC,IAAIF,KAAAA,CAAMI,KAAAA,CAAMC,KAAAA,CAAMM,KAAAA,CAAMU,CAAC,CAAA;AAAA;AAAA,WAAA,EAElErB,KAAAA,CAAMS,MAAAA,CAAOH,KAAAA,CAAMI,MAAAA,CAAOF,OAAO,CAAA;AAAA,sBAAA,EACtBR,KAAAA,CAAMI,KAAAA,CAAMC,KAAAA,CAAMC,KAAAA,CAAMgB,OAAOd,OAAO,CAAA;AAAA;AAAA,wBAAA,EAEpCR,KAAAA,CAAMI,KAAAA,CAAMC,KAAAA,CAAMC,KAAAA,CAAMgB,OAAOC,KAAK,CAAA;AAAA,kBAAA,EAEtDtB,UAAAA,GACID,MAAMI,KAAAA,CAAMC,KAAAA,CAAMC,MAAMC,UAAAA,CAAWgB,KAAAA,GACnCjC,eACEC,WAAAA,EACAS,KAAAA,CAAMS,OAAOH,KAAAA,CAAMI,MAAAA,CAAOF,SAC1BR,KAAAA,CAAMI,KAAAA,CAAMC,MAAMC,KAAAA,CAAMC,UAAAA,CAAWgB,KACrC,CAAC,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAA,EAMavB,KAAAA,CAAMI,KAAAA,CAAMC,KAAAA,CAAMC,KAAAA,CAAMgB,OAAOE,MAAM,CAAA;AAAA,kBAAA,EAEvDvB,UAAAA,GACID,MAAMI,KAAAA,CAAMC,KAAAA,CAAMC,MAAMC,UAAAA,CAAWiB,MAAAA,GACnClC,eACEC,WAAAA,EACAS,KAAAA,CAAMS,OAAOH,KAAAA,CAAMI,MAAAA,CAAOF,SAC1BR,KAAAA,CAAMI,KAAAA,CAAMC,MAAMC,KAAAA,CAAMC,UAAAA,CAAWiB,MACrC,CAAC,CAAA;AAAA;AAAA;AAAA;AAAA,EAAA,CAAA;AAMX,CAAC,CAAA;AAGH,MAAMC,YAAAA,GAAe9B,MAAAA,CAAO+B,IAAAA,CAAI7B,UAAAA,CAAA;AAAA,EAAAC,WAAAA,EAAA;AAAA,CAAA,CAAA,CAAA,CAAA,oDAAA,CAAA,CAAA;AAMhC,MAAM6B,mBAAAA,GAAsBhC,MAAAA,CAAOiC,MAAAA,CAAM/B,UAAAA,CAAA;AAAA,EAAAC,WAAAA,EAAA;AAAA,CAAA,CAAA,CAAA,CAAA,gDAAA,EAAA,GAAA,GAGzB,CAAC;AAAA,EAAE+B;AAAa,CAAA,KAAOA,YAAAA,GAAe,YAAY,QAAS,CAAA;AAGpE,MAAMC,cAAcA,CAAC;AAAA,EAC1BC,QAAAA;AAAAA,EACAC,IAAAA,GAAO,SAAA;AAAA,EACPC,WAAAA,GAAc,KAAA;AAAA,EACdC,QAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACA/C,WAAAA,GAAc,YAAA;AAAA,EACdC,GAAAA,GAAM,OAAA;AAAA,EACN,GAAG+C;AACa,CAAA,KAAM;AACtB,EAAA,MAAMC,YAAYN,QAAAA,KAAa,GAAA;AAE/B,EAAA,uBACE,GAAA;AAAA,IAAC,iBAAA;AAAA,IAAA;AAAA,MACC,UAAA,EAAYM,SAAAA;AAAAA,MACZ,KAAA,EAAOL,IAAAA;AAAAA,MACP,YAAA,EAAc5C,WAAAA;AAAAA,MACd,IAAA,EAAMC,GAAAA;AAAAA,MAEN,KAAA,EACE;AAAA,QACE,YAAA,EAAc,GAAG0C,QAAQ,CAAA,CAAA;AAAA,OAC3B;AAAA,MAEF,GAAIK,KAAAA;AAAAA,MAEHJ,QAAAA,EAAAA,IAAAA,KAAS,6BACR,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,YAAA,EAAA,EAAa,YAAYK,SAAAA,EACvBF,QAAAA,EAAAA,cAAAA,IAAkBE,YAAYF,cAAAA,GAAiB,CAAA,EAAGJ,QAAQ,CAAA,CAAA,CAAA,EAC7D,CAAA;AAAA,wBACA,GAAA,CAAC,mBAAA,EAAA,EACC,EAAA,EAAIO,UAAAA,EACJ,MAAK,IAAA,EACL,IAAA,EAAK,OAAA,EACL,IAAA,EAAK,SACL,YAAA,EAAcL,WAAAA,EACd,OAAA,EAASC,QAAAA,EACT,eAAY,mBAAA,EAAmB;AAAA,OAAA,EAEnC;AAAA;AAAA,GAEJ;AAEJ;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/ProgressBar/ProgressBar.tsx"],"sourcesContent":["import type { CSSProperties } from 'react';\nimport { ProgressBarProps } from './ProgressBar.types';\nimport { IconButton } from '@/components/IconButton';\nimport { cn, cva } from '@/lib/cva';\nimport styles from './ProgressBar.module.css';\n\nconst progressBarVariants = cva(styles.progressbar, {\n variants: {\n type: {\n default: styles['progressbar_type_default'],\n small: styles['progressbar_type_small'],\n },\n orientation: {\n horizontal: styles['progressbar_orientation_horizontal'],\n vertical: styles['progressbar_orientation_vertical'],\n },\n dir: {\n start: styles['progressbar_dir_start'],\n end: styles['progressbar_dir_end'],\n },\n completed: {\n true: styles['progressbar_completed'],\n },\n },\n defaultVariants: {\n type: 'default',\n orientation: 'horizontal',\n dir: 'start',\n },\n});\n\nconst closeButtonVariants = cva(styles.progressclosebutton, {\n variants: {\n dismissable: {\n true: styles['progressclosebutton_dismissable'],\n },\n },\n});\n\nexport const ProgressBar = ({\n progress,\n type = 'default',\n dismissable = false,\n onCancel,\n successMessage,\n orientation = 'horizontal',\n dir = 'start',\n className,\n ...props\n}: ProgressBarProps) => {\n const completed = progress === 100;\n\n return (\n <div\n // Using a CSS variable avoids generating a new class per progress value.\n style={\n {\n '--progress': `${progress}%`,\n } as CSSProperties\n }\n {...props}\n className={cn(\n progressBarVariants({ type, orientation, dir, completed }),\n className\n )}\n >\n {type === 'default' && (\n <>\n <span className={styles.progresstext}>\n {successMessage && completed ? successMessage : `${progress}%`}\n </span>\n <IconButton\n size=\"sm\"\n type=\"ghost\"\n icon=\"cross\"\n onClick={onCancel}\n data-testid=\"progressbar-close\"\n className={closeButtonVariants({ dismissable })}\n />\n </>\n )}\n </div>\n );\n};\n"],"names":["progressBarVariants","cva","styles","progressbar","variants","type","default","small","orientation","horizontal","vertical","dir","start","end","completed","true","defaultVariants","closeButtonVariants","progressclosebutton","dismissable","ProgressBar","progress","onCancel","successMessage","className","props","cn","progresstext"],"mappings":";;;;;;AAMA,MAAMA,mBAAAA,GAAsBC,GAAAA,CAAIC,MAAAA,CAAOC,WAAAA,EAAa;AAAA,EAClDC,QAAAA,EAAU;AAAA,IACRC,IAAAA,EAAM;AAAA,MACJC,OAAAA,EAASJ,OAAO,0BAA0B,CAAA;AAAA,MAC1CK,KAAAA,EAAOL,OAAO,wBAAwB;AAAA,KACxC;AAAA,IACAM,WAAAA,EAAa;AAAA,MACXC,UAAAA,EAAYP,OAAO,oCAAoC,CAAA;AAAA,MACvDQ,QAAAA,EAAUR,OAAO,kCAAkC;AAAA,KACrD;AAAA,IACAS,GAAAA,EAAK;AAAA,MACHC,KAAAA,EAAOV,OAAO,uBAAuB,CAAA;AAAA,MACrCW,GAAAA,EAAKX,OAAO,qBAAqB;AAAA,KACnC;AAAA,IACAY,SAAAA,EAAW;AAAA,MACTC,IAAAA,EAAMb,OAAO,uBAAuB;AAAA;AACtC,GACF;AAAA,EACAc,eAAAA,EAAiB;AAAA,IACfX,IAAAA,EAAM,SAAA;AAAA,IACNG,WAAAA,EAAa,YAAA;AAAA,IACbG,GAAAA,EAAK;AAAA;AAET,CAAC,CAAA;AAED,MAAMM,mBAAAA,GAAsBhB,GAAAA,CAAIC,MAAAA,CAAOgB,mBAAAA,EAAqB;AAAA,EAC1Dd,QAAAA,EAAU;AAAA,IACRe,WAAAA,EAAa;AAAA,MACXJ,IAAAA,EAAMb,OAAO,iCAAiC;AAAA;AAChD;AAEJ,CAAC,CAAA;AAEM,MAAMkB,cAAcA,CAAC;AAAA,EAC1BC,QAAAA;AAAAA,EACAhB,IAAAA,GAAO,SAAA;AAAA,EACPc,WAAAA,GAAc,KAAA;AAAA,EACdG,QAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAf,WAAAA,GAAc,YAAA;AAAA,EACdG,GAAAA,GAAM,OAAA;AAAA,EACNa,SAAAA;AAAAA,EACA,GAAGC;AACa,CAAA,KAAM;AACtB,EAAA,MAAMX,YAAYO,QAAAA,KAAa,GAAA;AAE/B,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MAEC,KAAA,EACE;AAAA,QACE,YAAA,EAAc,GAAGA,QAAQ,CAAA,CAAA;AAAA,OAC3B;AAAA,SAEEI,KAAAA;AAAAA,MACJ,SAAA,EAAWC,GACT1B,mBAAAA,CAAoB;AAAA,QAAEK,IAAAA;AAAAA,QAAMG,WAAAA;AAAAA,QAAaG,GAAAA;AAAAA,QAAKG;AAAAA,OAAW,GACzDU,SACF,CAAA;AAAA,MAECnB,QAAAA,EAAAA,IAAAA,KAAS,6BACR,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,WAAWH,MAAAA,CAAOyB,YAAAA,EACrBJ,4BAAkBT,SAAAA,GAAYS,cAAAA,GAAiB,CAAA,EAAGF,QAAQ,CAAA,CAAA,CAAA,EAC7D,CAAA;AAAA,wBACA,GAAA,CAAC,UAAA,EAAA,EACC,IAAA,EAAK,IAAA,EACL,IAAA,EAAK,OAAA,EACL,IAAA,EAAK,OAAA,EACL,OAAA,EAASC,QAAAA,EACT,aAAA,EAAY,mBAAA,EACZ,WAAWL,mBAAAA,CAAoB;AAAA,UAAEE;AAAAA,SAAa,CAAA,EAAE;AAAA,OAAA,EAEpD;AAAA;AAAA,GAEJ;AAEJ;;;;"}
@@ -0,0 +1,81 @@
1
+ .separator__mz39H[data-orientation='horizontal'] {
2
+ width: 100%;
3
+ border-top: 0.0625rem solid var(--click-separator-color-stroke-default);
4
+ }
5
+
6
+ .separator__mz39H[data-orientation='vertical'] {
7
+ height: 100%;
8
+ border-right: 0.0625rem solid var(--click-separator-color-stroke-default);
9
+ }
10
+
11
+ .separator_variant_horizontal-xs__SVTMS {
12
+ margin:
13
+ var(--click-separator-horizontal-space-y-xs)
14
+ var(--click-separator-horizontal-space-x-all);
15
+ }
16
+
17
+ .separator_variant_horizontal-sm__aKMwO {
18
+ margin:
19
+ var(--click-separator-horizontal-space-y-sm)
20
+ var(--click-separator-horizontal-space-x-all);
21
+ }
22
+
23
+ .separator_variant_horizontal-md__HRIoB {
24
+ margin:
25
+ var(--click-separator-horizontal-space-y-md)
26
+ var(--click-separator-horizontal-space-x-all);
27
+ }
28
+
29
+ .separator_variant_horizontal-lg__phB0U {
30
+ margin:
31
+ var(--click-separator-horizontal-space-y-lg)
32
+ var(--click-separator-horizontal-space-x-all);
33
+ }
34
+
35
+ .separator_variant_horizontal-xl__z08Bu {
36
+ margin:
37
+ var(--click-separator-horizontal-space-y-xl)
38
+ var(--click-separator-horizontal-space-x-all);
39
+ }
40
+
41
+ .separator_variant_horizontal-xxl__5sqqd {
42
+ margin:
43
+ var(--click-separator-horizontal-space-y-xxl)
44
+ var(--click-separator-horizontal-space-x-all);
45
+ }
46
+
47
+ .separator_variant_vertical-xs__XN-Os {
48
+ margin:
49
+ var(--click-separator-vertical-space-y-all)
50
+ var(--click-separator-vertical-space-x-xs);
51
+ }
52
+
53
+ .separator_variant_vertical-sm__ddV3R {
54
+ margin:
55
+ var(--click-separator-vertical-space-y-all)
56
+ var(--click-separator-vertical-space-x-sm);
57
+ }
58
+
59
+ .separator_variant_vertical-md__DlYM0 {
60
+ margin:
61
+ var(--click-separator-vertical-space-y-all)
62
+ var(--click-separator-vertical-space-x-md);
63
+ }
64
+
65
+ .separator_variant_vertical-lg__00SOr {
66
+ margin:
67
+ var(--click-separator-vertical-space-y-all)
68
+ var(--click-separator-vertical-space-x-lg);
69
+ }
70
+
71
+ .separator_variant_vertical-xl__0c4Od {
72
+ margin:
73
+ var(--click-separator-vertical-space-y-all)
74
+ var(--click-separator-vertical-space-x-xl);
75
+ }
76
+
77
+ .separator_variant_vertical-xxl__H-EOx {
78
+ margin:
79
+ var(--click-separator-vertical-space-y-all)
80
+ var(--click-separator-vertical-space-x-xxl);
81
+ }
@@ -0,0 +1,19 @@
1
+ const separator = "separator__mz39H";
2
+ const styles = {
3
+ separator: separator,
4
+ "separator_variant_horizontal-xs": "separator_variant_horizontal-xs__SVTMS",
5
+ "separator_variant_horizontal-sm": "separator_variant_horizontal-sm__aKMwO",
6
+ "separator_variant_horizontal-md": "separator_variant_horizontal-md__HRIoB",
7
+ "separator_variant_horizontal-lg": "separator_variant_horizontal-lg__phB0U",
8
+ "separator_variant_horizontal-xl": "separator_variant_horizontal-xl__z08Bu",
9
+ "separator_variant_horizontal-xxl": "separator_variant_horizontal-xxl__5sqqd",
10
+ "separator_variant_vertical-xs": "separator_variant_vertical-xs__XN-Os",
11
+ "separator_variant_vertical-sm": "separator_variant_vertical-sm__ddV3R",
12
+ "separator_variant_vertical-md": "separator_variant_vertical-md__DlYM0",
13
+ "separator_variant_vertical-lg": "separator_variant_vertical-lg__00SOr",
14
+ "separator_variant_vertical-xl": "separator_variant_vertical-xl__0c4Od",
15
+ "separator_variant_vertical-xxl": "separator_variant_vertical-xxl__H-EOx"
16
+ };
17
+
18
+ export { styles as default, separator };
19
+ //# sourceMappingURL=Separator.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Separator.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;"}
@@ -1,28 +1,36 @@
1
+ import "./Separator.css";
1
2
  import { jsx } from 'react/jsx-runtime';
2
- import { styled } from 'styled-components';
3
3
  import * as RadixSeparator from '@radix-ui/react-separator';
4
+ import { cn } from '../../lib/cva.js';
5
+ import styles from './Separator.module.css.js';
6
+ import { cva } from 'class-variance-authority';
4
7
 
5
- const CUISeparator = styled(RadixSeparator.Root).withConfig({
6
- componentId: "sc-ladr1y-0"
7
- })(["", ""], ({
8
- theme,
9
- size,
10
- orientation
11
- }) => `
12
- &[data-orientation="horizontal"] {
13
- width: 100%;
14
- border-top: 0.0625rem solid ${theme.click.separator.color.stroke.default};
15
- }
16
- &[data-orientation="vertical"] {
17
- height: 100%;
18
- border-right: 0.0625rem solid ${theme.click.separator.color.stroke.default};
8
+ const separatorVariants = cva(styles.separator, {
9
+ variants: {
10
+ variant: {
11
+ "horizontal-xs": styles["separator_variant_horizontal-xs"],
12
+ "horizontal-sm": styles["separator_variant_horizontal-sm"],
13
+ "horizontal-md": styles["separator_variant_horizontal-md"],
14
+ "horizontal-lg": styles["separator_variant_horizontal-lg"],
15
+ "horizontal-xl": styles["separator_variant_horizontal-xl"],
16
+ "horizontal-xxl": styles["separator_variant_horizontal-xxl"],
17
+ "vertical-xs": styles["separator_variant_vertical-xs"],
18
+ "vertical-sm": styles["separator_variant_vertical-sm"],
19
+ "vertical-md": styles["separator_variant_vertical-md"],
20
+ "vertical-lg": styles["separator_variant_vertical-lg"],
21
+ "vertical-xl": styles["separator_variant_vertical-xl"],
22
+ "vertical-xxl": styles["separator_variant_vertical-xxl"]
19
23
  }
20
- margin: ${orientation === "horizontal" ? `${theme.click.separator.horizontal.space.y[size]} ${theme.click.separator.horizontal.space.x.all}` : `${theme.click.separator.vertical.space.y.all} ${theme.click.separator.vertical.space.x[size]}`}
21
- `);
24
+ }
25
+ });
22
26
  const Separator = ({
23
27
  orientation = "horizontal",
28
+ size,
29
+ className,
24
30
  ...props
25
- }) => /* @__PURE__ */ jsx(CUISeparator, { orientation, ...props });
31
+ }) => /* @__PURE__ */ jsx(RadixSeparator.Root, { orientation, ...props, className: cn(separatorVariants({
32
+ variant: `${orientation}-${size}`
33
+ }), className) });
26
34
 
27
35
  export { Separator };
28
36
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/Separator/Separator.tsx"],"sourcesContent":["import { styled } from 'styled-components';\nimport * as RadixSeparator from '@radix-ui/react-separator';\nimport { SeparatorProps } from './Separator.types';\nconst CUISeparator = styled(RadixSeparator.Root)<SeparatorProps>`\n ${({ theme, size, orientation }) => `\n &[data-orientation=\"horizontal\"] {\n width: 100%;\n border-top: 0.0625rem solid ${theme.click.separator.color.stroke.default};\n }\n &[data-orientation=\"vertical\"] {\n height: 100%;\n border-right: 0.0625rem solid ${theme.click.separator.color.stroke.default};\n }\n margin: ${\n orientation === 'horizontal'\n ? `${theme.click.separator.horizontal.space.y[size]} ${theme.click.separator.horizontal.space.x.all}`\n : `${theme.click.separator.vertical.space.y.all} ${theme.click.separator.vertical.space.x[size]}`\n }\n `}\n`;\n\nexport const Separator = ({ orientation = 'horizontal', ...props }: SeparatorProps) => (\n <CUISeparator\n orientation={orientation}\n {...props}\n />\n);\n"],"names":["CUISeparator","styled","RadixSeparator","Root","withConfig","componentId","theme","size","orientation","click","separator","color","stroke","default","horizontal","space","y","x","all","vertical","Separator","props"],"mappings":";;;;AAGA,MAAMA,YAAAA,GAAeC,MAAAA,CAAOC,cAAAA,CAAeC,IAAI,EAACC,UAAAA,CAAA;AAAA,EAAAC,WAAAA,EAAA;AAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,EAAA,GAC5C,CAAC;AAAA,EAAEC,KAAAA;AAAAA,EAAOC,IAAAA;AAAAA,EAAMC;AAAY,CAAA,KAAM;AAAA;AAAA;AAAA,kCAAA,EAGFF,KAAAA,CAAMG,KAAAA,CAAMC,SAAAA,CAAUC,KAAAA,CAAMC,OAAOC,OAAO,CAAA;AAAA;AAAA;AAAA;AAAA,oCAAA,EAIxCP,KAAAA,CAAMG,KAAAA,CAAMC,SAAAA,CAAUC,KAAAA,CAAMC,OAAOC,OAAO,CAAA;AAAA;AAAA,YAAA,EAG1EL,gBAAgB,YAAA,GACZ,CAAA,EAAGF,KAAAA,CAAMG,KAAAA,CAAMC,UAAUI,UAAAA,CAAWC,KAAAA,CAAMC,CAAAA,CAAET,IAAI,CAAC,CAAA,CAAA,EAAID,KAAAA,CAAMG,KAAAA,CAAMC,SAAAA,CAAUI,WAAWC,KAAAA,CAAME,CAAAA,CAAEC,GAAG,CAAA,CAAA,GACjG,GAAGZ,KAAAA,CAAMG,KAAAA,CAAMC,SAAAA,CAAUS,QAAAA,CAASJ,MAAMC,CAAAA,CAAEE,GAAG,CAAA,CAAA,EAAIZ,KAAAA,CAAMG,MAAMC,SAAAA,CAAUS,QAAAA,CAASJ,MAAME,CAAAA,CAAEV,IAAI,CAAC,CAAA,CAAE;AAAA,EAAA,CAEtG,CAAA;AAGI,MAAMa,YAAYA,CAAC;AAAA,EAAEZ,WAAAA,GAAc,YAAA;AAAA,EAAc,GAAGa;AAAsB,CAAA,qBAC/E,GAAA,CAAC,YAAA,EAAA,EACC,WAAA,EACA,GAAIA,KAAAA,EAAM;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/Separator/Separator.tsx"],"sourcesContent":["import * as RadixSeparator from '@radix-ui/react-separator';\nimport { cn, cva } from '@/lib/cva';\nimport { SeparatorProps } from './Separator.types';\nimport styles from './Separator.module.css';\n\nconst separatorVariants = cva(styles.separator, {\n variants: {\n variant: {\n 'horizontal-xs': styles['separator_variant_horizontal-xs'],\n 'horizontal-sm': styles['separator_variant_horizontal-sm'],\n 'horizontal-md': styles['separator_variant_horizontal-md'],\n 'horizontal-lg': styles['separator_variant_horizontal-lg'],\n 'horizontal-xl': styles['separator_variant_horizontal-xl'],\n 'horizontal-xxl': styles['separator_variant_horizontal-xxl'],\n 'vertical-xs': styles['separator_variant_vertical-xs'],\n 'vertical-sm': styles['separator_variant_vertical-sm'],\n 'vertical-md': styles['separator_variant_vertical-md'],\n 'vertical-lg': styles['separator_variant_vertical-lg'],\n 'vertical-xl': styles['separator_variant_vertical-xl'],\n 'vertical-xxl': styles['separator_variant_vertical-xxl'],\n },\n },\n});\n\nexport const Separator = ({\n orientation = 'horizontal',\n size,\n className,\n ...props\n}: SeparatorProps) => (\n <RadixSeparator.Root\n orientation={orientation}\n {...props}\n className={cn(separatorVariants({ variant: `${orientation}-${size}` }), className)}\n />\n);\n"],"names":["separatorVariants","cva","styles","separator","variants","variant","Separator","orientation","size","className","props","cn"],"mappings":";;;;;;AAKA,MAAMA,iBAAAA,GAAoBC,GAAAA,CAAIC,MAAAA,CAAOC,SAAAA,EAAW;AAAA,EAC9CC,QAAAA,EAAU;AAAA,IACRC,OAAAA,EAAS;AAAA,MACP,eAAA,EAAiBH,OAAO,iCAAiC,CAAA;AAAA,MACzD,eAAA,EAAiBA,OAAO,iCAAiC,CAAA;AAAA,MACzD,eAAA,EAAiBA,OAAO,iCAAiC,CAAA;AAAA,MACzD,eAAA,EAAiBA,OAAO,iCAAiC,CAAA;AAAA,MACzD,eAAA,EAAiBA,OAAO,iCAAiC,CAAA;AAAA,MACzD,gBAAA,EAAkBA,OAAO,kCAAkC,CAAA;AAAA,MAC3D,aAAA,EAAeA,OAAO,+BAA+B,CAAA;AAAA,MACrD,aAAA,EAAeA,OAAO,+BAA+B,CAAA;AAAA,MACrD,aAAA,EAAeA,OAAO,+BAA+B,CAAA;AAAA,MACrD,aAAA,EAAeA,OAAO,+BAA+B,CAAA;AAAA,MACrD,aAAA,EAAeA,OAAO,+BAA+B,CAAA;AAAA,MACrD,cAAA,EAAgBA,OAAO,gCAAgC;AAAA;AACzD;AAEJ,CAAC,CAAA;AAEM,MAAMI,YAAYA,CAAC;AAAA,EACxBC,WAAAA,GAAc,YAAA;AAAA,EACdC,IAAAA;AAAAA,EACAC,SAAAA;AAAAA,EACA,GAAGC;AACW,CAAA,qBACd,GAAA,CAAC,eAAe,IAAA,EAAf,EACC,aACA,GAAIA,KAAAA,EACJ,SAAA,EAAWC,EAAAA,CAAGX,iBAAAA,CAAkB;AAAA,EAAEK,OAAAA,EAAS,CAAA,EAAGE,WAAW,CAAA,CAAA,EAAIC,IAAI,CAAA;AAAG,CAAC,CAAA,EAAGC,SAAS,CAAA,EAAE;;;;"}