@shipfox/react-ui 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (323) hide show
  1. package/.storybook/preview.tsx +1 -1
  2. package/.turbo/turbo-build.log +2 -2
  3. package/.turbo/turbo-check.log +3 -3
  4. package/.turbo/turbo-type.log +1 -1
  5. package/CHANGELOG.md +17 -0
  6. package/dist/components/alert/alert.d.ts +18 -0
  7. package/dist/components/alert/alert.d.ts.map +1 -0
  8. package/dist/components/alert/alert.js +123 -0
  9. package/dist/components/alert/alert.js.map +1 -0
  10. package/dist/components/alert/alert.stories.js +112 -0
  11. package/dist/components/alert/alert.stories.js.map +1 -0
  12. package/dist/components/alert/index.d.ts +2 -0
  13. package/dist/components/alert/index.d.ts.map +1 -0
  14. package/dist/components/alert/index.js +3 -0
  15. package/dist/components/alert/index.js.map +1 -0
  16. package/dist/components/avatar/avatar-group.d.ts +18 -0
  17. package/dist/components/avatar/avatar-group.d.ts.map +1 -0
  18. package/dist/components/avatar/avatar-group.js +132 -0
  19. package/dist/components/avatar/avatar-group.js.map +1 -0
  20. package/dist/components/avatar/avatar.d.ts +24 -0
  21. package/dist/components/avatar/avatar.d.ts.map +1 -0
  22. package/dist/components/avatar/avatar.js +165 -0
  23. package/dist/components/avatar/avatar.js.map +1 -0
  24. package/dist/components/avatar/avatar.stories.js +267 -0
  25. package/dist/components/avatar/avatar.stories.js.map +1 -0
  26. package/dist/components/avatar/index.d.ts +3 -0
  27. package/dist/components/avatar/index.d.ts.map +1 -0
  28. package/dist/components/avatar/index.js +4 -0
  29. package/dist/components/avatar/index.js.map +1 -0
  30. package/dist/components/badge/badge.d.ts +48 -0
  31. package/dist/components/badge/badge.d.ts.map +1 -0
  32. package/dist/components/badge/badge.js +72 -0
  33. package/dist/components/badge/badge.js.map +1 -0
  34. package/dist/components/badge/badge.stories.js +802 -0
  35. package/dist/components/badge/badge.stories.js.map +1 -0
  36. package/dist/components/badge/icon-badge.d.ts +9 -0
  37. package/dist/components/badge/icon-badge.d.ts.map +1 -0
  38. package/dist/components/badge/icon-badge.js +32 -0
  39. package/dist/components/badge/icon-badge.js.map +1 -0
  40. package/dist/components/badge/index.d.ts +5 -0
  41. package/dist/components/badge/index.d.ts.map +1 -0
  42. package/dist/components/badge/index.js +6 -0
  43. package/dist/components/badge/index.js.map +1 -0
  44. package/dist/components/badge/status-badge.d.ts +9 -0
  45. package/dist/components/badge/status-badge.d.ts.map +1 -0
  46. package/dist/components/badge/status-badge.js +29 -0
  47. package/dist/components/badge/status-badge.js.map +1 -0
  48. package/dist/components/badge/user-badge.d.ts +8 -0
  49. package/dist/components/badge/user-badge.d.ts.map +1 -0
  50. package/dist/components/badge/user-badge.js +24 -0
  51. package/dist/components/badge/user-badge.js.map +1 -0
  52. package/dist/components/{button.d.ts → button/button.d.ts} +1 -1
  53. package/dist/components/button/button.d.ts.map +1 -0
  54. package/dist/components/{button.js → button/button.js} +2 -2
  55. package/dist/components/button/button.js.map +1 -0
  56. package/dist/components/{button.stories.js → button/button.stories.js} +1 -1
  57. package/dist/components/button/button.stories.js.map +1 -0
  58. package/dist/components/button/index.d.ts +2 -0
  59. package/dist/components/button/index.d.ts.map +1 -0
  60. package/dist/components/button/index.js +3 -0
  61. package/dist/components/button/index.js.map +1 -0
  62. package/dist/components/checkbox/checkbox-label.d.ts +14 -0
  63. package/dist/components/checkbox/checkbox-label.d.ts.map +1 -0
  64. package/dist/components/checkbox/checkbox-label.js +82 -0
  65. package/dist/components/checkbox/checkbox-label.js.map +1 -0
  66. package/dist/components/checkbox/checkbox-links.d.ts +18 -0
  67. package/dist/components/checkbox/checkbox-links.d.ts.map +1 -0
  68. package/dist/components/checkbox/checkbox-links.js +58 -0
  69. package/dist/components/checkbox/checkbox-links.js.map +1 -0
  70. package/dist/components/checkbox/checkbox.d.ts +9 -0
  71. package/dist/components/checkbox/checkbox.d.ts.map +1 -0
  72. package/dist/components/checkbox/checkbox.js +49 -0
  73. package/dist/components/checkbox/checkbox.js.map +1 -0
  74. package/dist/components/checkbox/checkbox.stories.js +566 -0
  75. package/dist/components/checkbox/checkbox.stories.js.map +1 -0
  76. package/dist/components/checkbox/index.d.ts +4 -0
  77. package/dist/components/checkbox/index.d.ts.map +1 -0
  78. package/dist/components/checkbox/index.js +5 -0
  79. package/dist/components/checkbox/index.js.map +1 -0
  80. package/dist/components/code-block/code-block-footer.d.ts +26 -0
  81. package/dist/components/code-block/code-block-footer.d.ts.map +1 -0
  82. package/dist/components/code-block/code-block-footer.js +86 -0
  83. package/dist/components/code-block/code-block-footer.js.map +1 -0
  84. package/dist/components/code-block/code-block.d.ts +50 -0
  85. package/dist/components/code-block/code-block.d.ts.map +1 -0
  86. package/dist/components/code-block/code-block.js +142 -0
  87. package/dist/components/code-block/code-block.js.map +1 -0
  88. package/dist/components/code-block/code-block.stories.js +341 -0
  89. package/dist/components/code-block/code-block.stories.js.map +1 -0
  90. package/dist/components/code-block/code-content.d.ts +11 -0
  91. package/dist/components/code-block/code-content.d.ts.map +1 -0
  92. package/dist/components/code-block/code-content.js +29 -0
  93. package/dist/components/code-block/code-content.js.map +1 -0
  94. package/dist/components/code-block/code-copy-button.d.ts +11 -0
  95. package/dist/components/code-block/code-copy-button.d.ts.map +1 -0
  96. package/dist/components/code-block/code-copy-button.js +49 -0
  97. package/dist/components/code-block/code-copy-button.js.map +1 -0
  98. package/dist/components/code-block/code-tabs.d.ts +16 -0
  99. package/dist/components/code-block/code-tabs.d.ts.map +1 -0
  100. package/dist/components/code-block/code-tabs.js +98 -0
  101. package/dist/components/code-block/code-tabs.js.map +1 -0
  102. package/dist/components/code-block/index.d.ts +4 -0
  103. package/dist/components/code-block/index.d.ts.map +1 -0
  104. package/dist/components/code-block/index.js +5 -0
  105. package/dist/components/code-block/index.js.map +1 -0
  106. package/dist/components/dynamic-item/dynamic-item.d.ts +13 -0
  107. package/dist/components/dynamic-item/dynamic-item.d.ts.map +1 -0
  108. package/dist/components/dynamic-item/dynamic-item.js +43 -0
  109. package/dist/components/dynamic-item/dynamic-item.js.map +1 -0
  110. package/dist/components/dynamic-item/dynamic-item.stories.js +375 -0
  111. package/dist/components/dynamic-item/dynamic-item.stories.js.map +1 -0
  112. package/dist/components/dynamic-item/index.d.ts +2 -0
  113. package/dist/components/dynamic-item/index.d.ts.map +1 -0
  114. package/dist/components/dynamic-item/index.js +3 -0
  115. package/dist/components/dynamic-item/index.js.map +1 -0
  116. package/dist/components/icon/custom/index.d.ts +3 -0
  117. package/dist/components/icon/custom/index.d.ts.map +1 -1
  118. package/dist/components/icon/custom/index.js +3 -0
  119. package/dist/components/icon/custom/index.js.map +1 -1
  120. package/dist/components/icon/custom/shipfox-logo.d.ts +8 -0
  121. package/dist/components/icon/custom/shipfox-logo.d.ts.map +1 -0
  122. package/dist/components/icon/custom/shipfox-logo.js +22 -0
  123. package/dist/components/icon/custom/shipfox-logo.js.map +1 -0
  124. package/dist/components/icon/custom/slack-logo.d.ts +6 -0
  125. package/dist/components/icon/custom/slack-logo.d.ts.map +1 -0
  126. package/dist/components/icon/custom/slack-logo.js +34 -0
  127. package/dist/components/icon/custom/slack-logo.js.map +1 -0
  128. package/dist/components/icon/custom/stripe-logo.d.ts +8 -0
  129. package/dist/components/icon/custom/stripe-logo.d.ts.map +1 -0
  130. package/dist/components/icon/custom/stripe-logo.js +24 -0
  131. package/dist/components/icon/custom/stripe-logo.js.map +1 -0
  132. package/dist/components/icon/icon.d.ts +13 -1
  133. package/dist/components/icon/icon.d.ts.map +1 -1
  134. package/dist/components/icon/icon.js +15 -3
  135. package/dist/components/icon/icon.js.map +1 -1
  136. package/dist/components/icon/icon.stories.js +6 -3
  137. package/dist/components/icon/icon.stories.js.map +1 -1
  138. package/dist/components/index.d.ts +12 -1
  139. package/dist/components/index.d.ts.map +1 -1
  140. package/dist/components/index.js +13 -2
  141. package/dist/components/index.js.map +1 -1
  142. package/dist/components/inline-tips/index.d.ts +2 -0
  143. package/dist/components/inline-tips/index.d.ts.map +1 -0
  144. package/dist/components/inline-tips/index.js +3 -0
  145. package/dist/components/inline-tips/index.js.map +1 -0
  146. package/dist/components/inline-tips/inline-tips.d.ts +19 -0
  147. package/dist/components/inline-tips/inline-tips.d.ts.map +1 -0
  148. package/dist/components/inline-tips/inline-tips.js +98 -0
  149. package/dist/components/inline-tips/inline-tips.js.map +1 -0
  150. package/dist/components/inline-tips/inline-tips.stories.js +214 -0
  151. package/dist/components/inline-tips/inline-tips.stories.js.map +1 -0
  152. package/dist/components/input/index.d.ts +2 -0
  153. package/dist/components/input/index.d.ts.map +1 -0
  154. package/dist/components/input/index.js +3 -0
  155. package/dist/components/input/index.js.map +1 -0
  156. package/dist/components/input/input.d.ts.map +1 -0
  157. package/dist/components/{input.js → input/input.js} +2 -2
  158. package/dist/components/input/input.js.map +1 -0
  159. package/dist/components/{input.stories.js → input/input.stories.js} +1 -1
  160. package/dist/components/input/input.stories.js.map +1 -0
  161. package/dist/components/item/index.d.ts +2 -0
  162. package/dist/components/item/index.d.ts.map +1 -0
  163. package/dist/components/item/index.js +3 -0
  164. package/dist/components/item/index.js.map +1 -0
  165. package/dist/components/item/item.d.ts +32 -0
  166. package/dist/components/item/item.d.ts.map +1 -0
  167. package/dist/components/item/item.js +120 -0
  168. package/dist/components/item/item.js.map +1 -0
  169. package/dist/components/item/item.stories.js +232 -0
  170. package/dist/components/item/item.stories.js.map +1 -0
  171. package/dist/components/label/index.d.ts +2 -0
  172. package/dist/components/label/index.d.ts.map +1 -0
  173. package/dist/components/label/index.js +3 -0
  174. package/dist/components/label/index.js.map +1 -0
  175. package/dist/components/label/label.d.ts +7 -0
  176. package/dist/components/label/label.d.ts.map +1 -0
  177. package/dist/components/label/label.js +13 -0
  178. package/dist/components/label/label.js.map +1 -0
  179. package/dist/components/label/label.stories.js +105 -0
  180. package/dist/components/label/label.stories.js.map +1 -0
  181. package/dist/components/moving-border/moving-border.d.ts +9 -0
  182. package/dist/components/moving-border/moving-border.d.ts.map +1 -0
  183. package/dist/components/moving-border/moving-border.js +54 -0
  184. package/dist/components/moving-border/moving-border.js.map +1 -0
  185. package/dist/components/textarea/textarea.js +1 -1
  186. package/dist/components/textarea/textarea.js.map +1 -1
  187. package/dist/components/theme/index.d.ts +2 -0
  188. package/dist/components/theme/index.d.ts.map +1 -0
  189. package/dist/components/theme/index.js +3 -0
  190. package/dist/components/theme/index.js.map +1 -0
  191. package/dist/components/{theme-provider.d.ts → theme/theme-provider.d.ts} +1 -1
  192. package/dist/components/theme/theme-provider.d.ts.map +1 -0
  193. package/dist/components/{theme-provider.js → theme/theme-provider.js} +1 -1
  194. package/dist/components/theme/theme-provider.js.map +1 -0
  195. package/dist/components/toast/index.d.ts +3 -0
  196. package/dist/components/toast/index.d.ts.map +1 -0
  197. package/dist/components/toast/index.js +4 -0
  198. package/dist/components/toast/index.js.map +1 -0
  199. package/dist/components/toast/toast-custom.d.ts +19 -0
  200. package/dist/components/toast/toast-custom.d.ts.map +1 -0
  201. package/dist/components/toast/toast-custom.js +134 -0
  202. package/dist/components/toast/toast-custom.js.map +1 -0
  203. package/dist/components/toast/toast.d.ts +5 -0
  204. package/dist/components/toast/toast.d.ts.map +1 -0
  205. package/dist/components/toast/toast.js +40 -0
  206. package/dist/components/toast/toast.js.map +1 -0
  207. package/dist/components/toast/toast.stories.js +326 -0
  208. package/dist/components/toast/toast.stories.js.map +1 -0
  209. package/dist/components/tooltip/index.d.ts +2 -0
  210. package/dist/components/tooltip/index.d.ts.map +1 -0
  211. package/dist/components/tooltip/index.js +3 -0
  212. package/dist/components/tooltip/index.js.map +1 -0
  213. package/dist/components/tooltip/tooltip.d.ts +20 -0
  214. package/dist/components/tooltip/tooltip.d.ts.map +1 -0
  215. package/dist/components/tooltip/tooltip.js +98 -0
  216. package/dist/components/tooltip/tooltip.js.map +1 -0
  217. package/dist/components/tooltip/tooltip.stories.js +560 -0
  218. package/dist/components/tooltip/tooltip.stories.js.map +1 -0
  219. package/dist/hooks/index.d.ts +3 -0
  220. package/dist/hooks/index.d.ts.map +1 -1
  221. package/dist/hooks/index.js +3 -0
  222. package/dist/hooks/index.js.map +1 -1
  223. package/dist/hooks/useResolvedTheme.d.ts +2 -0
  224. package/dist/hooks/useResolvedTheme.d.ts.map +1 -0
  225. package/dist/hooks/useResolvedTheme.js +24 -0
  226. package/dist/hooks/useResolvedTheme.js.map +1 -0
  227. package/dist/hooks/useShikiHighlight.d.ts +28 -0
  228. package/dist/hooks/useShikiHighlight.d.ts.map +1 -0
  229. package/dist/hooks/useShikiHighlight.js +106 -0
  230. package/dist/hooks/useShikiHighlight.js.map +1 -0
  231. package/dist/hooks/useShikiStyleInjection.d.ts +2 -0
  232. package/dist/hooks/useShikiStyleInjection.d.ts.map +1 -0
  233. package/dist/hooks/useShikiStyleInjection.js +34 -0
  234. package/dist/hooks/useShikiStyleInjection.js.map +1 -0
  235. package/dist/utils/avatar.d.ts +3 -0
  236. package/dist/utils/avatar.d.ts.map +1 -0
  237. package/dist/utils/avatar.js +32 -0
  238. package/dist/utils/avatar.js.map +1 -0
  239. package/dist/utils/index.d.ts +1 -0
  240. package/dist/utils/index.d.ts.map +1 -1
  241. package/dist/utils/index.js +1 -0
  242. package/dist/utils/index.js.map +1 -1
  243. package/index.css +130 -7
  244. package/package.json +7 -4
  245. package/src/assets/illustration-1.svg +92 -0
  246. package/src/assets/illustration-2.svg +14 -0
  247. package/src/assets/illustration-gradient.svg +7049 -0
  248. package/src/components/alert/alert.stories.tsx +77 -0
  249. package/src/components/alert/alert.tsx +144 -0
  250. package/src/components/alert/index.ts +1 -0
  251. package/src/components/avatar/avatar-group.tsx +186 -0
  252. package/src/components/avatar/avatar.stories.tsx +179 -0
  253. package/src/components/avatar/avatar.tsx +219 -0
  254. package/src/components/avatar/index.ts +2 -0
  255. package/src/components/badge/badge.stories.tsx +468 -0
  256. package/src/components/badge/badge.tsx +147 -0
  257. package/src/components/badge/icon-badge.tsx +43 -0
  258. package/src/components/badge/index.ts +4 -0
  259. package/src/components/badge/status-badge.tsx +43 -0
  260. package/src/components/badge/user-badge.tsx +34 -0
  261. package/src/components/{button.tsx → button/button.tsx} +1 -1
  262. package/src/components/button/index.ts +1 -0
  263. package/src/components/checkbox/checkbox-label.tsx +125 -0
  264. package/src/components/checkbox/checkbox-links.tsx +90 -0
  265. package/src/components/checkbox/checkbox.stories.tsx +375 -0
  266. package/src/components/checkbox/checkbox.tsx +71 -0
  267. package/src/components/checkbox/index.ts +3 -0
  268. package/src/components/code-block/code-block-footer.tsx +173 -0
  269. package/src/components/code-block/code-block.stories.tsx +323 -0
  270. package/src/components/code-block/code-block.tsx +283 -0
  271. package/src/components/code-block/code-content.tsx +60 -0
  272. package/src/components/code-block/code-copy-button.tsx +73 -0
  273. package/src/components/code-block/code-tabs.tsx +170 -0
  274. package/src/components/code-block/index.ts +3 -0
  275. package/src/components/dynamic-item/dynamic-item.stories.tsx +261 -0
  276. package/src/components/dynamic-item/dynamic-item.tsx +68 -0
  277. package/src/components/dynamic-item/index.ts +1 -0
  278. package/src/components/icon/custom/index.ts +3 -0
  279. package/src/components/icon/custom/shipfox-logo.tsx +20 -0
  280. package/src/components/icon/custom/slack-logo.tsx +35 -0
  281. package/src/components/icon/custom/stripe-logo.tsx +27 -0
  282. package/src/components/icon/icon.stories.tsx +3 -1
  283. package/src/components/icon/icon.tsx +29 -1
  284. package/src/components/index.ts +12 -1
  285. package/src/components/inline-tips/index.ts +1 -0
  286. package/src/components/inline-tips/inline-tips.stories.tsx +126 -0
  287. package/src/components/inline-tips/inline-tips.tsx +132 -0
  288. package/src/components/input/index.ts +1 -0
  289. package/src/components/{input.tsx → input/input.tsx} +1 -1
  290. package/src/components/item/index.ts +1 -0
  291. package/src/components/item/item.stories.tsx +150 -0
  292. package/src/components/item/item.tsx +182 -0
  293. package/src/components/label/index.ts +1 -0
  294. package/src/components/label/label.stories.tsx +67 -0
  295. package/src/components/label/label.tsx +15 -0
  296. package/src/components/moving-border/moving-border.tsx +67 -0
  297. package/src/components/textarea/textarea.tsx +1 -1
  298. package/src/components/theme/index.ts +1 -0
  299. package/src/components/toast/index.ts +2 -0
  300. package/src/components/toast/toast-custom.tsx +154 -0
  301. package/src/components/toast/toast.stories.tsx +369 -0
  302. package/src/components/toast/toast.tsx +41 -0
  303. package/src/components/tooltip/index.ts +1 -0
  304. package/src/components/tooltip/tooltip.stories.tsx +284 -0
  305. package/src/components/tooltip/tooltip.tsx +121 -0
  306. package/src/hooks/index.ts +3 -0
  307. package/src/hooks/useResolvedTheme.ts +34 -0
  308. package/src/hooks/useShikiHighlight.ts +140 -0
  309. package/src/hooks/useShikiStyleInjection.ts +34 -0
  310. package/src/utils/avatar.ts +27 -0
  311. package/src/utils/index.ts +1 -0
  312. package/dist/components/button.d.ts.map +0 -1
  313. package/dist/components/button.js.map +0 -1
  314. package/dist/components/button.stories.js.map +0 -1
  315. package/dist/components/input.d.ts.map +0 -1
  316. package/dist/components/input.js.map +0 -1
  317. package/dist/components/input.stories.js.map +0 -1
  318. package/dist/components/theme-provider.d.ts.map +0 -1
  319. package/dist/components/theme-provider.js.map +0 -1
  320. /package/dist/components/{input.d.ts → input/input.d.ts} +0 -0
  321. /package/src/components/{button.stories.tsx → button/button.stories.tsx} +0 -0
  322. /package/src/components/{input.stories.tsx → input/input.stories.tsx} +0 -0
  323. /package/src/components/{theme-provider.tsx → theme/theme-provider.tsx} +0 -0
@@ -0,0 +1,49 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
3
+ import { cva } from 'class-variance-authority';
4
+ import { Icon } from '../../components/icon/index.js';
5
+ import { cn } from '../../utils/cn.js';
6
+ export const checkboxVariants = cva('peer shrink-0 border-none transition-all duration-100 outline-none cursor-pointer', {
7
+ variants: {
8
+ size: {
9
+ sm: 'size-16',
10
+ md: 'size-20',
11
+ lg: 'size-24'
12
+ }
13
+ },
14
+ defaultVariants: {
15
+ size: 'sm'
16
+ }
17
+ });
18
+ export function Checkbox({ className, size, checked, defaultChecked, onCheckedChange, ...props }) {
19
+ return /*#__PURE__*/ _jsx(CheckboxPrimitive.Root, {
20
+ "data-slot": "checkbox",
21
+ checked: checked,
22
+ defaultChecked: defaultChecked,
23
+ onCheckedChange: onCheckedChange,
24
+ className: cn(checkboxVariants({
25
+ size
26
+ }), // Unchecked state - default
27
+ 'rounded-4 bg-checkbox-unchecked-bg shadow-checkbox-unchecked', // Unchecked state - hover
28
+ 'hover:bg-checkbox-unchecked-bg-hover', // Unchecked state - focus
29
+ 'focus-visible:shadow-checkbox-unchecked-focus', // Checked state
30
+ 'data-[state=checked]:bg-checkbox-checked-bg data-[state=checked]:text-foreground-neutral-on-color data-[state=checked]:shadow-checkbox-checked', 'data-[state=checked]:hover:bg-checkbox-checked-bg-hover', 'data-[state=checked]:focus-visible:shadow-checkbox-checked-focus', // Indeterminate state
31
+ 'data-[state=indeterminate]:bg-checkbox-indeterminate-bg data-[state=indeterminate]:text-foreground-neutral-on-color data-[state=indeterminate]:shadow-checkbox-indeterminate', 'data-[state=indeterminate]:hover:bg-checkbox-indeterminate-bg-hover', 'data-[state=indeterminate]:focus-visible:shadow-checkbox-indeterminate-focus', // Disabled state
32
+ 'disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50', className),
33
+ ...props,
34
+ children: /*#__PURE__*/ _jsx(CheckboxPrimitive.Indicator, {
35
+ className: "flex items-center justify-center text-current",
36
+ children: checked === 'indeterminate' ? /*#__PURE__*/ _jsx(Icon, {
37
+ name: "subtractLine",
38
+ className: "size-16",
39
+ "aria-hidden": "true"
40
+ }) : /*#__PURE__*/ _jsx(Icon, {
41
+ name: "check",
42
+ className: "size-16",
43
+ "aria-hidden": "true"
44
+ })
45
+ })
46
+ });
47
+ }
48
+
49
+ //# sourceMappingURL=checkbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/checkbox/checkbox.tsx"],"sourcesContent":["import * as CheckboxPrimitive from '@radix-ui/react-checkbox';\nimport {cva, type VariantProps} from 'class-variance-authority';\nimport {Icon} from 'components/icon';\nimport type {ComponentProps} from 'react';\nimport {cn} from 'utils/cn';\n\nexport const checkboxVariants = cva(\n 'peer shrink-0 border-none transition-all duration-100 outline-none cursor-pointer',\n {\n variants: {\n size: {\n sm: 'size-16',\n md: 'size-20',\n lg: 'size-24',\n },\n },\n defaultVariants: {\n size: 'sm',\n },\n },\n);\n\nexport type CheckboxProps = ComponentProps<typeof CheckboxPrimitive.Root> &\n VariantProps<typeof checkboxVariants>;\n\nexport function Checkbox({\n className,\n size,\n checked,\n defaultChecked,\n onCheckedChange,\n ...props\n}: CheckboxProps) {\n return (\n <CheckboxPrimitive.Root\n data-slot=\"checkbox\"\n checked={checked}\n defaultChecked={defaultChecked}\n onCheckedChange={onCheckedChange}\n className={cn(\n checkboxVariants({size}),\n // Unchecked state - default\n 'rounded-4 bg-checkbox-unchecked-bg shadow-checkbox-unchecked',\n // Unchecked state - hover\n 'hover:bg-checkbox-unchecked-bg-hover',\n // Unchecked state - focus\n 'focus-visible:shadow-checkbox-unchecked-focus',\n // Checked state\n 'data-[state=checked]:bg-checkbox-checked-bg data-[state=checked]:text-foreground-neutral-on-color data-[state=checked]:shadow-checkbox-checked',\n 'data-[state=checked]:hover:bg-checkbox-checked-bg-hover',\n 'data-[state=checked]:focus-visible:shadow-checkbox-checked-focus',\n // Indeterminate state\n 'data-[state=indeterminate]:bg-checkbox-indeterminate-bg data-[state=indeterminate]:text-foreground-neutral-on-color data-[state=indeterminate]:shadow-checkbox-indeterminate',\n 'data-[state=indeterminate]:hover:bg-checkbox-indeterminate-bg-hover',\n 'data-[state=indeterminate]:focus-visible:shadow-checkbox-indeterminate-focus',\n // Disabled state\n 'disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator className=\"flex items-center justify-center text-current\">\n {checked === 'indeterminate' ? (\n <Icon name=\"subtractLine\" className=\"size-16\" aria-hidden=\"true\" />\n ) : (\n <Icon name=\"check\" className=\"size-16\" aria-hidden=\"true\" />\n )}\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n );\n}\n"],"names":["CheckboxPrimitive","cva","Icon","cn","checkboxVariants","variants","size","sm","md","lg","defaultVariants","Checkbox","className","checked","defaultChecked","onCheckedChange","props","Root","data-slot","Indicator","name","aria-hidden"],"mappings":";AAAA,YAAYA,uBAAuB,2BAA2B;AAC9D,SAAQC,GAAG,QAA0B,2BAA2B;AAChE,SAAQC,IAAI,QAAO,kBAAkB;AAErC,SAAQC,EAAE,QAAO,WAAW;AAE5B,OAAO,MAAMC,mBAAmBH,IAC9B,qFACA;IACEI,UAAU;QACRC,MAAM;YACJC,IAAI;YACJC,IAAI;YACJC,IAAI;QACN;IACF;IACAC,iBAAiB;QACfJ,MAAM;IACR;AACF,GACA;AAKF,OAAO,SAASK,SAAS,EACvBC,SAAS,EACTN,IAAI,EACJO,OAAO,EACPC,cAAc,EACdC,eAAe,EACf,GAAGC,OACW;IACd,qBACE,KAAChB,kBAAkBiB,IAAI;QACrBC,aAAU;QACVL,SAASA;QACTC,gBAAgBA;QAChBC,iBAAiBA;QACjBH,WAAWT,GACTC,iBAAiB;YAACE;QAAI,IACtB,4BAA4B;QAC5B,gEACA,0BAA0B;QAC1B,wCACA,0BAA0B;QAC1B,iDACA,gBAAgB;QAChB,kJACA,2DACA,oEACA,sBAAsB;QACtB,gLACA,uEACA,gFACA,iBAAiB;QACjB,gFACAM;QAED,GAAGI,KAAK;kBAET,cAAA,KAAChB,kBAAkBmB,SAAS;YAACP,WAAU;sBACpCC,YAAY,gCACX,KAACX;gBAAKkB,MAAK;gBAAeR,WAAU;gBAAUS,eAAY;+BAE1D,KAACnB;gBAAKkB,MAAK;gBAAQR,WAAU;gBAAUS,eAAY;;;;AAK7D"}
@@ -0,0 +1,566 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Code, Header } from '../../components/typography/index.js';
3
+ import { Checkbox, CheckboxLabel, CheckboxLinks } from './index.js';
4
+ const meta = {
5
+ title: 'Components/Checkbox',
6
+ component: Checkbox,
7
+ tags: [
8
+ 'autodocs'
9
+ ],
10
+ argTypes: {
11
+ size: {
12
+ control: 'select',
13
+ options: [
14
+ 'sm',
15
+ 'md',
16
+ 'lg'
17
+ ]
18
+ },
19
+ disabled: {
20
+ control: 'boolean'
21
+ },
22
+ checked: {
23
+ control: 'boolean'
24
+ }
25
+ },
26
+ args: {
27
+ size: 'md',
28
+ disabled: false
29
+ }
30
+ };
31
+ export default meta;
32
+ export const Default = {
33
+ render: (args)=>/*#__PURE__*/ _jsxs("div", {
34
+ className: "flex flex-col gap-32",
35
+ children: [
36
+ /*#__PURE__*/ _jsxs("div", {
37
+ className: "flex flex-col gap-16",
38
+ children: [
39
+ /*#__PURE__*/ _jsx(Header, {
40
+ variant: "h4",
41
+ children: "Controlled Checkbox"
42
+ }),
43
+ /*#__PURE__*/ _jsx(Code, {
44
+ variant: "label",
45
+ className: "text-foreground-neutral-subtle",
46
+ children: "Use the controls below to change the checkbox state"
47
+ }),
48
+ /*#__PURE__*/ _jsx(Checkbox, {
49
+ ...args
50
+ })
51
+ ]
52
+ }),
53
+ /*#__PURE__*/ _jsxs("div", {
54
+ className: "flex flex-col gap-32",
55
+ children: [
56
+ /*#__PURE__*/ _jsx(Header, {
57
+ variant: "h4",
58
+ children: "All States"
59
+ }),
60
+ [
61
+ 'sm',
62
+ 'md',
63
+ 'lg'
64
+ ].map((size)=>/*#__PURE__*/ _jsxs("div", {
65
+ className: "flex flex-wrap gap-16",
66
+ children: [
67
+ /*#__PURE__*/ _jsxs(Header, {
68
+ variant: "h4",
69
+ children: [
70
+ "Size: ",
71
+ size
72
+ ]
73
+ }),
74
+ /*#__PURE__*/ _jsxs("div", {
75
+ className: "flex flex-col gap-8",
76
+ children: [
77
+ /*#__PURE__*/ _jsx(Code, {
78
+ variant: "label",
79
+ className: "text-foreground-neutral-subtle",
80
+ children: "Unchecked"
81
+ }),
82
+ /*#__PURE__*/ _jsx(Checkbox, {
83
+ size: size
84
+ })
85
+ ]
86
+ }),
87
+ /*#__PURE__*/ _jsxs("div", {
88
+ className: "flex flex-col gap-8",
89
+ children: [
90
+ /*#__PURE__*/ _jsx(Code, {
91
+ variant: "label",
92
+ className: "text-foreground-neutral-subtle",
93
+ children: "Checked"
94
+ }),
95
+ /*#__PURE__*/ _jsx(Checkbox, {
96
+ size: size,
97
+ checked: true
98
+ })
99
+ ]
100
+ }),
101
+ /*#__PURE__*/ _jsxs("div", {
102
+ className: "flex flex-col gap-8",
103
+ children: [
104
+ /*#__PURE__*/ _jsx(Code, {
105
+ variant: "label",
106
+ className: "text-foreground-neutral-subtle",
107
+ children: "Indeterminate"
108
+ }),
109
+ /*#__PURE__*/ _jsx(Checkbox, {
110
+ size: size,
111
+ checked: "indeterminate"
112
+ })
113
+ ]
114
+ }),
115
+ /*#__PURE__*/ _jsxs("div", {
116
+ className: "flex flex-col gap-8",
117
+ children: [
118
+ /*#__PURE__*/ _jsx(Code, {
119
+ variant: "label",
120
+ className: "text-foreground-neutral-subtle",
121
+ children: "Disabled (Unchecked)"
122
+ }),
123
+ /*#__PURE__*/ _jsx(Checkbox, {
124
+ size: size,
125
+ disabled: true
126
+ })
127
+ ]
128
+ }),
129
+ /*#__PURE__*/ _jsxs("div", {
130
+ className: "flex flex-col gap-8",
131
+ children: [
132
+ /*#__PURE__*/ _jsx(Code, {
133
+ variant: "label",
134
+ className: "text-foreground-neutral-subtle",
135
+ children: "Disabled (Checked)"
136
+ }),
137
+ /*#__PURE__*/ _jsx(Checkbox, {
138
+ size: size,
139
+ checked: true,
140
+ disabled: true
141
+ })
142
+ ]
143
+ }),
144
+ /*#__PURE__*/ _jsxs("div", {
145
+ className: "flex flex-col gap-8",
146
+ children: [
147
+ /*#__PURE__*/ _jsx(Code, {
148
+ variant: "label",
149
+ className: "text-foreground-neutral-subtle",
150
+ children: "Focus"
151
+ }),
152
+ /*#__PURE__*/ _jsx(Checkbox, {
153
+ size: size,
154
+ className: "focus"
155
+ })
156
+ ]
157
+ })
158
+ ]
159
+ }, size))
160
+ ]
161
+ })
162
+ ]
163
+ }),
164
+ parameters: {
165
+ pseudo: {
166
+ focusVisible: '.focus'
167
+ }
168
+ }
169
+ };
170
+ export const CheckboxLabelStory = {
171
+ render: ()=>/*#__PURE__*/ _jsxs("div", {
172
+ className: "flex flex-col gap-32 pb-64 pt-32 px-32 bg-background-neutral-base",
173
+ children: [
174
+ /*#__PURE__*/ _jsx(Code, {
175
+ variant: "label",
176
+ className: "text-foreground-neutral-subtle",
177
+ children: "CHECKBOX LABEL - WITHOUT BORDER"
178
+ }),
179
+ /*#__PURE__*/ _jsxs("div", {
180
+ className: "flex flex-col gap-16",
181
+ children: [
182
+ /*#__PURE__*/ _jsxs("div", {
183
+ className: "flex flex-col gap-8",
184
+ children: [
185
+ /*#__PURE__*/ _jsx(Code, {
186
+ variant: "label",
187
+ className: "text-foreground-neutral-subtle text-xs",
188
+ children: "Default - Unchecked"
189
+ }),
190
+ /*#__PURE__*/ _jsx(CheckboxLabel, {
191
+ label: "Label",
192
+ optional: true,
193
+ showInfoIcon: true,
194
+ description: "The quick brown fox jumps over a lazy dog."
195
+ })
196
+ ]
197
+ }),
198
+ /*#__PURE__*/ _jsxs("div", {
199
+ className: "flex flex-col gap-8",
200
+ children: [
201
+ /*#__PURE__*/ _jsx(Code, {
202
+ variant: "label",
203
+ className: "text-foreground-neutral-subtle text-xs",
204
+ children: "Hover - Unchecked"
205
+ }),
206
+ /*#__PURE__*/ _jsx(CheckboxLabel, {
207
+ label: "Label",
208
+ optional: true,
209
+ showInfoIcon: true,
210
+ description: "The quick brown fox jumps over a lazy dog.",
211
+ className: "hover"
212
+ })
213
+ ]
214
+ }),
215
+ /*#__PURE__*/ _jsxs("div", {
216
+ className: "flex flex-col gap-8",
217
+ children: [
218
+ /*#__PURE__*/ _jsx(Code, {
219
+ variant: "label",
220
+ className: "text-foreground-neutral-subtle text-xs",
221
+ children: "Default - Checked"
222
+ }),
223
+ /*#__PURE__*/ _jsx(CheckboxLabel, {
224
+ label: "Label",
225
+ optional: true,
226
+ showInfoIcon: true,
227
+ description: "The quick brown fox jumps over a lazy dog.",
228
+ checked: true
229
+ })
230
+ ]
231
+ }),
232
+ /*#__PURE__*/ _jsxs("div", {
233
+ className: "flex flex-col gap-8",
234
+ children: [
235
+ /*#__PURE__*/ _jsx(Code, {
236
+ variant: "label",
237
+ className: "text-foreground-neutral-subtle text-xs",
238
+ children: "Hover - Checked"
239
+ }),
240
+ /*#__PURE__*/ _jsx(CheckboxLabel, {
241
+ label: "Label",
242
+ optional: true,
243
+ showInfoIcon: true,
244
+ description: "The quick brown fox jumps over a lazy dog.",
245
+ checked: true,
246
+ className: "hover"
247
+ })
248
+ ]
249
+ }),
250
+ /*#__PURE__*/ _jsxs("div", {
251
+ className: "flex flex-col gap-8",
252
+ children: [
253
+ /*#__PURE__*/ _jsx(Code, {
254
+ variant: "label",
255
+ className: "text-foreground-neutral-subtle text-xs",
256
+ children: "Default - Indeterminate"
257
+ }),
258
+ /*#__PURE__*/ _jsx(CheckboxLabel, {
259
+ label: "Label",
260
+ optional: true,
261
+ showInfoIcon: true,
262
+ description: "The quick brown fox jumps over a lazy dog.",
263
+ checked: "indeterminate"
264
+ })
265
+ ]
266
+ }),
267
+ /*#__PURE__*/ _jsxs("div", {
268
+ className: "flex flex-col gap-8",
269
+ children: [
270
+ /*#__PURE__*/ _jsx(Code, {
271
+ variant: "label",
272
+ className: "text-foreground-neutral-subtle text-xs",
273
+ children: "Disabled - Checked"
274
+ }),
275
+ /*#__PURE__*/ _jsx(CheckboxLabel, {
276
+ label: "Label",
277
+ checked: true,
278
+ optional: true,
279
+ showInfoIcon: true,
280
+ description: "The quick brown fox jumps over a lazy dog.",
281
+ disabled: true
282
+ })
283
+ ]
284
+ }),
285
+ /*#__PURE__*/ _jsxs("div", {
286
+ className: "flex flex-col gap-8",
287
+ children: [
288
+ /*#__PURE__*/ _jsx(Code, {
289
+ variant: "label",
290
+ className: "text-foreground-neutral-subtle text-xs",
291
+ children: "Disabled - Unchecked"
292
+ }),
293
+ /*#__PURE__*/ _jsx(CheckboxLabel, {
294
+ label: "Label",
295
+ optional: true,
296
+ showInfoIcon: true,
297
+ description: "The quick brown fox jumps over a lazy dog.",
298
+ disabled: true
299
+ })
300
+ ]
301
+ })
302
+ ]
303
+ }),
304
+ /*#__PURE__*/ _jsx(Code, {
305
+ variant: "label",
306
+ className: "text-foreground-neutral-subtle mt-32",
307
+ children: "CHECKBOX LABEL - WITH BORDER"
308
+ }),
309
+ /*#__PURE__*/ _jsxs("div", {
310
+ className: "flex flex-col gap-16",
311
+ children: [
312
+ /*#__PURE__*/ _jsxs("div", {
313
+ className: "flex flex-col gap-8",
314
+ children: [
315
+ /*#__PURE__*/ _jsx(Code, {
316
+ variant: "label",
317
+ className: "text-foreground-neutral-subtle text-xs",
318
+ children: "Default - Unchecked"
319
+ }),
320
+ /*#__PURE__*/ _jsx(CheckboxLabel, {
321
+ id: "checkbox-border-default-unchecked",
322
+ label: "Label",
323
+ optional: true,
324
+ showInfoIcon: true,
325
+ description: "The quick brown fox jumps over a lazy dog.",
326
+ border: true
327
+ })
328
+ ]
329
+ }),
330
+ /*#__PURE__*/ _jsxs("div", {
331
+ className: "flex flex-col gap-8",
332
+ children: [
333
+ /*#__PURE__*/ _jsx(Code, {
334
+ variant: "label",
335
+ className: "text-foreground-neutral-subtle text-xs",
336
+ children: "Hover - Unchecked"
337
+ }),
338
+ /*#__PURE__*/ _jsx(CheckboxLabel, {
339
+ id: "checkbox-border-hover-unchecked",
340
+ label: "Label",
341
+ optional: true,
342
+ showInfoIcon: true,
343
+ description: "The quick brown fox jumps over a lazy dog.",
344
+ border: true,
345
+ className: "hover"
346
+ })
347
+ ]
348
+ }),
349
+ /*#__PURE__*/ _jsxs("div", {
350
+ className: "flex flex-col gap-8",
351
+ children: [
352
+ /*#__PURE__*/ _jsx(Code, {
353
+ variant: "label",
354
+ className: "text-foreground-neutral-subtle text-xs",
355
+ children: "Focus - Unchecked"
356
+ }),
357
+ /*#__PURE__*/ _jsx(CheckboxLabel, {
358
+ id: "checkbox-border-focus-unchecked",
359
+ label: "Label",
360
+ optional: true,
361
+ showInfoIcon: true,
362
+ description: "The quick brown fox jumps over a lazy dog.",
363
+ border: true,
364
+ className: "focus"
365
+ })
366
+ ]
367
+ }),
368
+ /*#__PURE__*/ _jsxs("div", {
369
+ className: "flex flex-col gap-8",
370
+ children: [
371
+ /*#__PURE__*/ _jsx(Code, {
372
+ variant: "label",
373
+ className: "text-foreground-neutral-subtle text-xs",
374
+ children: "Default - Checked"
375
+ }),
376
+ /*#__PURE__*/ _jsx(CheckboxLabel, {
377
+ id: "checkbox-border-default-checked",
378
+ label: "Label",
379
+ optional: true,
380
+ showInfoIcon: true,
381
+ description: "The quick brown fox jumps over a lazy dog.",
382
+ checked: true,
383
+ border: true
384
+ })
385
+ ]
386
+ }),
387
+ /*#__PURE__*/ _jsxs("div", {
388
+ className: "flex flex-col gap-8",
389
+ children: [
390
+ /*#__PURE__*/ _jsx(Code, {
391
+ variant: "label",
392
+ className: "text-foreground-neutral-subtle text-xs",
393
+ children: "Hover - Checked"
394
+ }),
395
+ /*#__PURE__*/ _jsx(CheckboxLabel, {
396
+ id: "checkbox-border-hover-checked",
397
+ label: "Label",
398
+ optional: true,
399
+ showInfoIcon: true,
400
+ description: "The quick brown fox jumps over a lazy dog.",
401
+ checked: true,
402
+ border: true,
403
+ className: "hover"
404
+ })
405
+ ]
406
+ }),
407
+ /*#__PURE__*/ _jsxs("div", {
408
+ className: "flex flex-col gap-8",
409
+ children: [
410
+ /*#__PURE__*/ _jsx(Code, {
411
+ variant: "label",
412
+ className: "text-foreground-neutral-subtle text-xs",
413
+ children: "Focus - Checked"
414
+ }),
415
+ /*#__PURE__*/ _jsx(CheckboxLabel, {
416
+ id: "checkbox-border-focus-checked",
417
+ label: "Label",
418
+ optional: true,
419
+ showInfoIcon: true,
420
+ description: "The quick brown fox jumps over a lazy dog.",
421
+ checked: true,
422
+ border: true,
423
+ className: "focus"
424
+ })
425
+ ]
426
+ }),
427
+ /*#__PURE__*/ _jsxs("div", {
428
+ className: "flex flex-col gap-8",
429
+ children: [
430
+ /*#__PURE__*/ _jsx(Code, {
431
+ variant: "label",
432
+ className: "text-foreground-neutral-subtle text-xs",
433
+ children: "Default - Indeterminate"
434
+ }),
435
+ /*#__PURE__*/ _jsx(CheckboxLabel, {
436
+ id: "checkbox-border-default-indeterminate",
437
+ label: "Label",
438
+ optional: true,
439
+ showInfoIcon: true,
440
+ description: "The quick brown fox jumps over a lazy dog.",
441
+ checked: "indeterminate",
442
+ border: true
443
+ })
444
+ ]
445
+ }),
446
+ /*#__PURE__*/ _jsxs("div", {
447
+ className: "flex flex-col gap-8",
448
+ children: [
449
+ /*#__PURE__*/ _jsx(Code, {
450
+ variant: "label",
451
+ className: "text-foreground-neutral-subtle text-xs",
452
+ children: "Disabled - Unchecked"
453
+ }),
454
+ /*#__PURE__*/ _jsx(CheckboxLabel, {
455
+ id: "checkbox-border-disabled-unchecked",
456
+ label: "Label",
457
+ optional: true,
458
+ showInfoIcon: true,
459
+ description: "The quick brown fox jumps over a lazy dog.",
460
+ disabled: true,
461
+ border: true
462
+ })
463
+ ]
464
+ }),
465
+ /*#__PURE__*/ _jsxs("div", {
466
+ className: "flex flex-col gap-8",
467
+ children: [
468
+ /*#__PURE__*/ _jsx(Code, {
469
+ variant: "label",
470
+ className: "text-foreground-neutral-subtle text-xs",
471
+ children: "Disabled - Checked"
472
+ }),
473
+ /*#__PURE__*/ _jsx(CheckboxLabel, {
474
+ id: "checkbox-border-disabled-checked",
475
+ label: "Label",
476
+ optional: true,
477
+ showInfoIcon: true,
478
+ description: "The quick brown fox jumps over a lazy dog.",
479
+ checked: true,
480
+ disabled: true,
481
+ border: true
482
+ })
483
+ ]
484
+ }),
485
+ /*#__PURE__*/ _jsxs("div", {
486
+ className: "flex flex-col gap-8",
487
+ children: [
488
+ /*#__PURE__*/ _jsx(Code, {
489
+ variant: "label",
490
+ className: "text-foreground-neutral-subtle text-xs",
491
+ children: "Disabled - Indeterminate"
492
+ }),
493
+ /*#__PURE__*/ _jsx(CheckboxLabel, {
494
+ id: "checkbox-border-disabled-indeterminate",
495
+ label: "Label",
496
+ optional: true,
497
+ showInfoIcon: true,
498
+ description: "The quick brown fox jumps over a lazy dog.",
499
+ checked: "indeterminate",
500
+ disabled: true,
501
+ border: true
502
+ })
503
+ ]
504
+ })
505
+ ]
506
+ })
507
+ ]
508
+ })
509
+ };
510
+ CheckboxLabelStory.parameters = {
511
+ pseudo: {
512
+ hover: '.hover',
513
+ focusVisible: '.focus'
514
+ }
515
+ };
516
+ export const CheckboxLinksStory = {
517
+ args: {
518
+ disabled: true
519
+ },
520
+ render: ()=>/*#__PURE__*/ _jsxs("div", {
521
+ className: "flex flex-col gap-32 pb-64 pt-32 px-32 bg-background-neutral-base",
522
+ children: [
523
+ /*#__PURE__*/ _jsx(Code, {
524
+ variant: "label",
525
+ className: "text-foreground-neutral-subtle",
526
+ children: "CHECKBOX LINKS"
527
+ }),
528
+ /*#__PURE__*/ _jsxs("div", {
529
+ className: "flex flex-col gap-16",
530
+ children: [
531
+ /*#__PURE__*/ _jsx(CheckboxLinks, {
532
+ id: "checkbox-links-default",
533
+ label: "Accept policies",
534
+ links: [
535
+ {
536
+ label: 'Terms of use',
537
+ href: '#'
538
+ },
539
+ {
540
+ label: 'Privacy Policy',
541
+ href: '#'
542
+ }
543
+ ]
544
+ }),
545
+ /*#__PURE__*/ _jsx(CheckboxLinks, {
546
+ id: "checkbox-links-checked",
547
+ label: "Accept policies",
548
+ links: [
549
+ {
550
+ label: 'Terms of use',
551
+ href: '#'
552
+ },
553
+ {
554
+ label: 'Privacy Policy',
555
+ href: '#'
556
+ }
557
+ ],
558
+ checked: true
559
+ })
560
+ ]
561
+ })
562
+ ]
563
+ })
564
+ };
565
+
566
+ //# sourceMappingURL=checkbox.stories.js.map