@shipfox/react-ui 0.3.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 (290) hide show
  1. package/.storybook/preview.tsx +1 -1
  2. package/.turbo/turbo-build.log +2 -2
  3. package/.turbo/turbo-check.log +2 -2
  4. package/.turbo/turbo-type.log +1 -1
  5. package/CHANGELOG.md +11 -0
  6. package/dist/components/alert/alert.d.ts +2 -2
  7. package/dist/components/alert/alert.js +3 -3
  8. package/dist/components/alert/alert.js.map +1 -1
  9. package/dist/components/alert/alert.stories.js +2 -2
  10. package/dist/components/alert/alert.stories.js.map +1 -1
  11. package/dist/components/avatar/avatar-group.js +3 -3
  12. package/dist/components/avatar/avatar-group.js.map +1 -1
  13. package/dist/components/avatar/avatar.d.ts +4 -1
  14. package/dist/components/avatar/avatar.d.ts.map +1 -1
  15. package/dist/components/avatar/avatar.js +7 -8
  16. package/dist/components/avatar/avatar.js.map +1 -1
  17. package/dist/components/avatar/avatar.stories.js +15 -3
  18. package/dist/components/avatar/avatar.stories.js.map +1 -1
  19. package/dist/components/badge/badge.d.ts +48 -0
  20. package/dist/components/badge/badge.d.ts.map +1 -0
  21. package/dist/components/badge/badge.js +72 -0
  22. package/dist/components/badge/badge.js.map +1 -0
  23. package/dist/components/badge/badge.stories.js +802 -0
  24. package/dist/components/badge/badge.stories.js.map +1 -0
  25. package/dist/components/badge/icon-badge.d.ts +9 -0
  26. package/dist/components/badge/icon-badge.d.ts.map +1 -0
  27. package/dist/components/badge/icon-badge.js +32 -0
  28. package/dist/components/badge/icon-badge.js.map +1 -0
  29. package/dist/components/badge/index.d.ts +5 -0
  30. package/dist/components/badge/index.d.ts.map +1 -0
  31. package/dist/components/badge/index.js +6 -0
  32. package/dist/components/badge/index.js.map +1 -0
  33. package/dist/components/badge/status-badge.d.ts +9 -0
  34. package/dist/components/badge/status-badge.d.ts.map +1 -0
  35. package/dist/components/badge/status-badge.js +29 -0
  36. package/dist/components/badge/status-badge.js.map +1 -0
  37. package/dist/components/badge/user-badge.d.ts +8 -0
  38. package/dist/components/badge/user-badge.d.ts.map +1 -0
  39. package/dist/components/badge/user-badge.js +24 -0
  40. package/dist/components/badge/user-badge.js.map +1 -0
  41. package/dist/components/{button.d.ts → button/button.d.ts} +1 -1
  42. package/dist/components/button/button.d.ts.map +1 -0
  43. package/dist/components/{button.js → button/button.js} +2 -2
  44. package/dist/components/button/button.js.map +1 -0
  45. package/dist/components/{button.stories.js → button/button.stories.js} +1 -1
  46. package/dist/components/button/button.stories.js.map +1 -0
  47. package/dist/components/button/index.d.ts +2 -0
  48. package/dist/components/button/index.d.ts.map +1 -0
  49. package/dist/components/button/index.js +3 -0
  50. package/dist/components/button/index.js.map +1 -0
  51. package/dist/components/checkbox/checkbox-label.d.ts +14 -0
  52. package/dist/components/checkbox/checkbox-label.d.ts.map +1 -0
  53. package/dist/components/checkbox/checkbox-label.js +82 -0
  54. package/dist/components/checkbox/checkbox-label.js.map +1 -0
  55. package/dist/components/checkbox/checkbox-links.d.ts +18 -0
  56. package/dist/components/checkbox/checkbox-links.d.ts.map +1 -0
  57. package/dist/components/checkbox/checkbox-links.js +58 -0
  58. package/dist/components/checkbox/checkbox-links.js.map +1 -0
  59. package/dist/components/checkbox/checkbox.d.ts +9 -0
  60. package/dist/components/checkbox/checkbox.d.ts.map +1 -0
  61. package/dist/components/checkbox/checkbox.js +49 -0
  62. package/dist/components/checkbox/checkbox.js.map +1 -0
  63. package/dist/components/checkbox/checkbox.stories.js +566 -0
  64. package/dist/components/checkbox/checkbox.stories.js.map +1 -0
  65. package/dist/components/checkbox/index.d.ts +4 -0
  66. package/dist/components/checkbox/index.d.ts.map +1 -0
  67. package/dist/components/checkbox/index.js +5 -0
  68. package/dist/components/checkbox/index.js.map +1 -0
  69. package/dist/components/code-block/code-block-footer.d.ts +26 -0
  70. package/dist/components/code-block/code-block-footer.d.ts.map +1 -0
  71. package/dist/components/code-block/code-block-footer.js +86 -0
  72. package/dist/components/code-block/code-block-footer.js.map +1 -0
  73. package/dist/components/code-block/code-block.d.ts +50 -0
  74. package/dist/components/code-block/code-block.d.ts.map +1 -0
  75. package/dist/components/code-block/code-block.js +142 -0
  76. package/dist/components/code-block/code-block.js.map +1 -0
  77. package/dist/components/code-block/code-block.stories.js +341 -0
  78. package/dist/components/code-block/code-block.stories.js.map +1 -0
  79. package/dist/components/code-block/code-content.d.ts +11 -0
  80. package/dist/components/code-block/code-content.d.ts.map +1 -0
  81. package/dist/components/code-block/code-content.js +29 -0
  82. package/dist/components/code-block/code-content.js.map +1 -0
  83. package/dist/components/code-block/code-copy-button.d.ts +11 -0
  84. package/dist/components/code-block/code-copy-button.d.ts.map +1 -0
  85. package/dist/components/code-block/code-copy-button.js +49 -0
  86. package/dist/components/code-block/code-copy-button.js.map +1 -0
  87. package/dist/components/code-block/code-tabs.d.ts +16 -0
  88. package/dist/components/code-block/code-tabs.d.ts.map +1 -0
  89. package/dist/components/code-block/code-tabs.js +98 -0
  90. package/dist/components/code-block/code-tabs.js.map +1 -0
  91. package/dist/components/code-block/index.d.ts +4 -0
  92. package/dist/components/code-block/index.d.ts.map +1 -0
  93. package/dist/components/code-block/index.js +5 -0
  94. package/dist/components/code-block/index.js.map +1 -0
  95. package/dist/components/dynamic-item/dynamic-item.d.ts +13 -0
  96. package/dist/components/dynamic-item/dynamic-item.d.ts.map +1 -0
  97. package/dist/components/dynamic-item/dynamic-item.js +43 -0
  98. package/dist/components/dynamic-item/dynamic-item.js.map +1 -0
  99. package/dist/components/dynamic-item/dynamic-item.stories.js +375 -0
  100. package/dist/components/dynamic-item/dynamic-item.stories.js.map +1 -0
  101. package/dist/components/dynamic-item/index.d.ts +2 -0
  102. package/dist/components/dynamic-item/index.d.ts.map +1 -0
  103. package/dist/components/dynamic-item/index.js +3 -0
  104. package/dist/components/dynamic-item/index.js.map +1 -0
  105. package/dist/components/icon/custom/index.d.ts +2 -0
  106. package/dist/components/icon/custom/index.d.ts.map +1 -1
  107. package/dist/components/icon/custom/index.js +2 -0
  108. package/dist/components/icon/custom/index.js.map +1 -1
  109. package/dist/components/icon/custom/slack-logo.d.ts +6 -0
  110. package/dist/components/icon/custom/slack-logo.d.ts.map +1 -0
  111. package/dist/components/icon/custom/slack-logo.js +34 -0
  112. package/dist/components/icon/custom/slack-logo.js.map +1 -0
  113. package/dist/components/icon/custom/stripe-logo.d.ts +8 -0
  114. package/dist/components/icon/custom/stripe-logo.d.ts.map +1 -0
  115. package/dist/components/icon/custom/stripe-logo.js +24 -0
  116. package/dist/components/icon/custom/stripe-logo.js.map +1 -0
  117. package/dist/components/icon/icon.d.ts +11 -2
  118. package/dist/components/icon/icon.d.ts.map +1 -1
  119. package/dist/components/icon/icon.js +12 -3
  120. package/dist/components/icon/icon.js.map +1 -1
  121. package/dist/components/icon/icon.stories.js +6 -3
  122. package/dist/components/icon/icon.stories.js.map +1 -1
  123. package/dist/components/index.d.ts +9 -1
  124. package/dist/components/index.d.ts.map +1 -1
  125. package/dist/components/index.js +10 -2
  126. package/dist/components/index.js.map +1 -1
  127. package/dist/components/inline-tips/inline-tips.d.ts +1 -1
  128. package/dist/components/inline-tips/inline-tips.d.ts.map +1 -1
  129. package/dist/components/inline-tips/inline-tips.js +1 -1
  130. package/dist/components/inline-tips/inline-tips.js.map +1 -1
  131. package/dist/components/inline-tips/inline-tips.stories.js +5 -5
  132. package/dist/components/inline-tips/inline-tips.stories.js.map +1 -1
  133. package/dist/components/input/index.d.ts +2 -0
  134. package/dist/components/input/index.d.ts.map +1 -0
  135. package/dist/components/input/index.js +3 -0
  136. package/dist/components/input/index.js.map +1 -0
  137. package/dist/components/input/input.d.ts.map +1 -0
  138. package/dist/components/{input.js → input/input.js} +2 -2
  139. package/dist/components/input/input.js.map +1 -0
  140. package/dist/components/{input.stories.js → input/input.stories.js} +1 -1
  141. package/dist/components/input/input.stories.js.map +1 -0
  142. package/dist/components/item/index.d.ts +2 -0
  143. package/dist/components/item/index.d.ts.map +1 -0
  144. package/dist/components/item/index.js +3 -0
  145. package/dist/components/item/index.js.map +1 -0
  146. package/dist/components/item/item.d.ts +32 -0
  147. package/dist/components/item/item.d.ts.map +1 -0
  148. package/dist/components/item/item.js +120 -0
  149. package/dist/components/item/item.js.map +1 -0
  150. package/dist/components/item/item.stories.js +232 -0
  151. package/dist/components/item/item.stories.js.map +1 -0
  152. package/dist/components/label/index.d.ts +2 -0
  153. package/dist/components/label/index.d.ts.map +1 -0
  154. package/dist/components/label/index.js +3 -0
  155. package/dist/components/label/index.js.map +1 -0
  156. package/dist/components/label/label.d.ts +7 -0
  157. package/dist/components/label/label.d.ts.map +1 -0
  158. package/dist/components/label/label.js +13 -0
  159. package/dist/components/label/label.js.map +1 -0
  160. package/dist/components/label/label.stories.js +105 -0
  161. package/dist/components/label/label.stories.js.map +1 -0
  162. package/dist/components/moving-border/moving-border.d.ts +9 -0
  163. package/dist/components/moving-border/moving-border.d.ts.map +1 -0
  164. package/dist/components/moving-border/moving-border.js +54 -0
  165. package/dist/components/moving-border/moving-border.js.map +1 -0
  166. package/dist/components/textarea/textarea.js +1 -1
  167. package/dist/components/textarea/textarea.js.map +1 -1
  168. package/dist/components/theme/index.d.ts +2 -0
  169. package/dist/components/theme/index.d.ts.map +1 -0
  170. package/dist/components/theme/index.js +3 -0
  171. package/dist/components/theme/index.js.map +1 -0
  172. package/dist/components/{theme-provider.d.ts → theme/theme-provider.d.ts} +1 -1
  173. package/dist/components/theme/theme-provider.d.ts.map +1 -0
  174. package/dist/components/{theme-provider.js → theme/theme-provider.js} +1 -1
  175. package/dist/components/theme/theme-provider.js.map +1 -0
  176. package/dist/components/toast/index.d.ts +3 -0
  177. package/dist/components/toast/index.d.ts.map +1 -0
  178. package/dist/components/toast/index.js +4 -0
  179. package/dist/components/toast/index.js.map +1 -0
  180. package/dist/components/toast/toast-custom.d.ts +19 -0
  181. package/dist/components/toast/toast-custom.d.ts.map +1 -0
  182. package/dist/components/toast/toast-custom.js +134 -0
  183. package/dist/components/toast/toast-custom.js.map +1 -0
  184. package/dist/components/toast/toast.d.ts +5 -0
  185. package/dist/components/toast/toast.d.ts.map +1 -0
  186. package/dist/components/toast/toast.js +40 -0
  187. package/dist/components/toast/toast.js.map +1 -0
  188. package/dist/components/toast/toast.stories.js +326 -0
  189. package/dist/components/toast/toast.stories.js.map +1 -0
  190. package/dist/components/tooltip/index.d.ts +2 -0
  191. package/dist/components/tooltip/index.d.ts.map +1 -0
  192. package/dist/components/tooltip/index.js +3 -0
  193. package/dist/components/tooltip/index.js.map +1 -0
  194. package/dist/components/tooltip/tooltip.d.ts +18 -5
  195. package/dist/components/tooltip/tooltip.d.ts.map +1 -1
  196. package/dist/components/tooltip/tooltip.js +63 -3
  197. package/dist/components/tooltip/tooltip.js.map +1 -1
  198. package/dist/components/tooltip/tooltip.stories.js +560 -0
  199. package/dist/components/tooltip/tooltip.stories.js.map +1 -0
  200. package/dist/hooks/index.d.ts +3 -0
  201. package/dist/hooks/index.d.ts.map +1 -1
  202. package/dist/hooks/index.js +3 -0
  203. package/dist/hooks/index.js.map +1 -1
  204. package/dist/hooks/useResolvedTheme.d.ts +2 -0
  205. package/dist/hooks/useResolvedTheme.d.ts.map +1 -0
  206. package/dist/hooks/useResolvedTheme.js +24 -0
  207. package/dist/hooks/useResolvedTheme.js.map +1 -0
  208. package/dist/hooks/useShikiHighlight.d.ts +28 -0
  209. package/dist/hooks/useShikiHighlight.d.ts.map +1 -0
  210. package/dist/hooks/useShikiHighlight.js +106 -0
  211. package/dist/hooks/useShikiHighlight.js.map +1 -0
  212. package/dist/hooks/useShikiStyleInjection.d.ts +2 -0
  213. package/dist/hooks/useShikiStyleInjection.d.ts.map +1 -0
  214. package/dist/hooks/useShikiStyleInjection.js +34 -0
  215. package/dist/hooks/useShikiStyleInjection.js.map +1 -0
  216. package/index.css +101 -9
  217. package/package.json +6 -3
  218. package/src/assets/illustration-1.svg +92 -0
  219. package/src/assets/illustration-2.svg +14 -0
  220. package/src/assets/illustration-gradient.svg +7049 -0
  221. package/src/components/alert/alert.stories.tsx +2 -2
  222. package/src/components/alert/alert.tsx +3 -3
  223. package/src/components/avatar/avatar-group.tsx +3 -3
  224. package/src/components/avatar/avatar.stories.tsx +9 -2
  225. package/src/components/avatar/avatar.tsx +10 -6
  226. package/src/components/badge/badge.stories.tsx +468 -0
  227. package/src/components/badge/badge.tsx +147 -0
  228. package/src/components/badge/icon-badge.tsx +43 -0
  229. package/src/components/badge/index.ts +4 -0
  230. package/src/components/badge/status-badge.tsx +43 -0
  231. package/src/components/badge/user-badge.tsx +34 -0
  232. package/src/components/{button.tsx → button/button.tsx} +1 -1
  233. package/src/components/button/index.ts +1 -0
  234. package/src/components/checkbox/checkbox-label.tsx +125 -0
  235. package/src/components/checkbox/checkbox-links.tsx +90 -0
  236. package/src/components/checkbox/checkbox.stories.tsx +375 -0
  237. package/src/components/checkbox/checkbox.tsx +71 -0
  238. package/src/components/checkbox/index.ts +3 -0
  239. package/src/components/code-block/code-block-footer.tsx +173 -0
  240. package/src/components/code-block/code-block.stories.tsx +323 -0
  241. package/src/components/code-block/code-block.tsx +283 -0
  242. package/src/components/code-block/code-content.tsx +60 -0
  243. package/src/components/code-block/code-copy-button.tsx +73 -0
  244. package/src/components/code-block/code-tabs.tsx +170 -0
  245. package/src/components/code-block/index.ts +3 -0
  246. package/src/components/dynamic-item/dynamic-item.stories.tsx +261 -0
  247. package/src/components/dynamic-item/dynamic-item.tsx +68 -0
  248. package/src/components/dynamic-item/index.ts +1 -0
  249. package/src/components/icon/custom/index.ts +2 -0
  250. package/src/components/icon/custom/slack-logo.tsx +35 -0
  251. package/src/components/icon/custom/stripe-logo.tsx +27 -0
  252. package/src/components/icon/icon.stories.tsx +3 -1
  253. package/src/components/icon/icon.tsx +19 -1
  254. package/src/components/index.ts +9 -1
  255. package/src/components/inline-tips/inline-tips.stories.tsx +3 -3
  256. package/src/components/inline-tips/inline-tips.tsx +2 -2
  257. package/src/components/input/index.ts +1 -0
  258. package/src/components/{input.tsx → input/input.tsx} +1 -1
  259. package/src/components/item/index.ts +1 -0
  260. package/src/components/item/item.stories.tsx +150 -0
  261. package/src/components/item/item.tsx +182 -0
  262. package/src/components/label/index.ts +1 -0
  263. package/src/components/label/label.stories.tsx +67 -0
  264. package/src/components/label/label.tsx +15 -0
  265. package/src/components/moving-border/moving-border.tsx +67 -0
  266. package/src/components/textarea/textarea.tsx +1 -1
  267. package/src/components/theme/index.ts +1 -0
  268. package/src/components/toast/index.ts +2 -0
  269. package/src/components/toast/toast-custom.tsx +154 -0
  270. package/src/components/toast/toast.stories.tsx +369 -0
  271. package/src/components/toast/toast.tsx +41 -0
  272. package/src/components/tooltip/index.ts +1 -0
  273. package/src/components/tooltip/tooltip.stories.tsx +284 -0
  274. package/src/components/tooltip/tooltip.tsx +79 -10
  275. package/src/hooks/index.ts +3 -0
  276. package/src/hooks/useResolvedTheme.ts +34 -0
  277. package/src/hooks/useShikiHighlight.ts +140 -0
  278. package/src/hooks/useShikiStyleInjection.ts +34 -0
  279. package/dist/components/button.d.ts.map +0 -1
  280. package/dist/components/button.js.map +0 -1
  281. package/dist/components/button.stories.js.map +0 -1
  282. package/dist/components/input.d.ts.map +0 -1
  283. package/dist/components/input.js.map +0 -1
  284. package/dist/components/input.stories.js.map +0 -1
  285. package/dist/components/theme-provider.d.ts.map +0 -1
  286. package/dist/components/theme-provider.js.map +0 -1
  287. /package/dist/components/{input.d.ts → input/input.d.ts} +0 -0
  288. /package/src/components/{button.stories.tsx → button/button.stories.tsx} +0 -0
  289. /package/src/components/{input.stories.tsx → input/input.stories.tsx} +0 -0
  290. /package/src/components/{theme-provider.tsx → theme/theme-provider.tsx} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/badge/badge.stories.tsx"],"sourcesContent":["import type {Meta, StoryObj} from '@storybook/react';\nimport {Code} from 'components/typography';\nimport React from 'react';\nimport {Badge, IconBadge, StatusBadge, UserBadge} from '.';\n\nconst meta = {\n title: 'Components/Badge',\n component: Badge,\n parameters: {\n layout: 'centered',\n },\n tags: ['autodocs'],\n} satisfies Meta<typeof Badge>;\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\nexport const AllVariants: Story = {\n render: () => (\n <div className=\"flex flex-col gap-32\">\n {/* STATUS BADGE */}\n <div>\n <Code variant=\"label\" className=\"mb-16\">\n Status Badge\n </Code>\n <div className=\"flex gap-16\">\n <StatusBadge variant=\"neutral\">Badge</StatusBadge>\n <StatusBadge variant=\"info\">Badge</StatusBadge>\n <StatusBadge variant=\"feature\">Badge</StatusBadge>\n <StatusBadge variant=\"success\" dotClassName=\"size-5 rounded-full\">\n Badge\n </StatusBadge>\n <StatusBadge variant=\"warning\">Badge</StatusBadge>\n <StatusBadge variant=\"error\">Badge</StatusBadge>\n </div>\n </div>\n\n {/* USER BADGE */}\n <div>\n <Code variant=\"label\" className=\"mb-16\">\n User Badge\n </Code>\n <div className=\"flex gap-16\">\n <UserBadge\n name=\"Thierry Abalea\"\n avatarSrc=\"https://avatars.githubusercontent.com/u/1290899?v=4\"\n />\n <UserBadge\n name=\"Kyle Nguyen\"\n avatarSrc=\"https://avatars.githubusercontent.com/u/89263955?v=4\"\n />\n <UserBadge\n name=\"Noe Charmet\"\n avatarSrc=\"https://avatars.githubusercontent.com/u/59678972?v=4\"\n />\n </div>\n </div>\n\n {/* ICON BADGE */}\n <div>\n <Code variant=\"label\" className=\"mb-16\">\n Icon Badge\n </Code>\n <div className=\"flex gap-16\">\n <IconBadge variant=\"neutral\" name=\"homeSmile\" />\n <IconBadge variant=\"info\" name=\"homeSmile\" />\n <IconBadge variant=\"feature\" name=\"homeSmile\" />\n <IconBadge variant=\"success\" name=\"homeSmile\" />\n <IconBadge variant=\"primary\" name=\"homeSmile\" />\n <IconBadge variant=\"error\" name=\"homeSmile\" />\n </div>\n </div>\n\n {/* BADGE - 2XS SIZE */}\n <div>\n <Code variant=\"label\" className=\"mb-16\">\n Badge - 2XS Size\n </Code>\n <div className=\"flex flex-col gap-16\">\n {/* Base */}\n <div className=\"flex gap-16\">\n <Badge variant=\"neutral\" size=\"2xs\">\n Badge\n </Badge>\n <Badge variant=\"info\" size=\"2xs\">\n Badge\n </Badge>\n <Badge variant=\"feature\" size=\"2xs\">\n Badge\n </Badge>\n <Badge variant=\"success\" size=\"2xs\">\n Badge\n </Badge>\n <Badge variant=\"warning\" size=\"2xs\">\n Badge\n </Badge>\n <Badge variant=\"error\" size=\"2xs\">\n Badge\n </Badge>\n </div>\n\n {/* With Right Icon */}\n <div className=\"flex gap-16\">\n <Badge variant=\"neutral\" size=\"2xs\" iconRight=\"close\">\n Badge\n </Badge>\n <Badge variant=\"info\" size=\"2xs\" iconRight=\"close\">\n Badge\n </Badge>\n <Badge variant=\"feature\" size=\"2xs\" iconRight=\"close\">\n Badge\n </Badge>\n <Badge variant=\"success\" size=\"2xs\" iconRight=\"close\">\n Badge\n </Badge>\n <Badge variant=\"warning\" size=\"2xs\" iconRight=\"close\">\n Badge\n </Badge>\n <Badge variant=\"error\" size=\"2xs\" iconRight=\"close\">\n Badge\n </Badge>\n </div>\n\n {/* With Left Icon */}\n <div className=\"flex gap-16\">\n <Badge variant=\"neutral\" size=\"2xs\" iconLeft=\"close\">\n Badge\n </Badge>\n <Badge variant=\"info\" size=\"2xs\" iconLeft=\"close\">\n Badge\n </Badge>\n <Badge variant=\"feature\" size=\"2xs\" iconLeft=\"close\">\n Badge\n </Badge>\n <Badge variant=\"success\" size=\"2xs\" iconLeft=\"close\">\n Badge\n </Badge>\n <Badge variant=\"warning\" size=\"2xs\" iconLeft=\"close\">\n Badge\n </Badge>\n <Badge variant=\"error\" size=\"2xs\" iconLeft=\"close\">\n Badge\n </Badge>\n </div>\n </div>\n </div>\n\n {/* BADGE - XS SIZE */}\n <div>\n <Code variant=\"label\" className=\"mb-16\">\n Badge - XS Size\n </Code>\n <div className=\"flex flex-col gap-16\">\n {/* Base */}\n <div className=\"flex gap-16\">\n <Badge variant=\"neutral\" size=\"xs\">\n Badge\n </Badge>\n <Badge variant=\"info\" size=\"xs\">\n Badge\n </Badge>\n <Badge variant=\"feature\" size=\"xs\">\n Badge\n </Badge>\n <Badge variant=\"success\" size=\"xs\">\n Badge\n </Badge>\n <Badge variant=\"warning\" size=\"xs\">\n Badge\n </Badge>\n <Badge variant=\"error\" size=\"xs\">\n Badge\n </Badge>\n </div>\n\n {/* With Right Icon */}\n <div className=\"flex gap-16\">\n <Badge variant=\"neutral\" size=\"xs\" iconRight=\"close\">\n Badge\n </Badge>\n <Badge variant=\"info\" size=\"xs\" iconRight=\"close\">\n Badge\n </Badge>\n <Badge variant=\"feature\" size=\"xs\" iconRight=\"close\">\n Badge\n </Badge>\n <Badge variant=\"success\" size=\"xs\" iconRight=\"close\">\n Badge\n </Badge>\n <Badge variant=\"warning\" size=\"xs\" iconRight=\"close\">\n Badge\n </Badge>\n <Badge variant=\"error\" size=\"xs\" iconRight=\"close\">\n Badge\n </Badge>\n </div>\n\n {/* With Left Icon */}\n <div className=\"flex gap-16\">\n <Badge variant=\"neutral\" size=\"xs\" iconLeft=\"close\">\n Badge\n </Badge>\n <Badge variant=\"info\" size=\"xs\" iconLeft=\"close\">\n Badge\n </Badge>\n <Badge variant=\"feature\" size=\"xs\" iconLeft=\"close\">\n Badge\n </Badge>\n <Badge variant=\"success\" size=\"xs\" iconLeft=\"close\">\n Badge\n </Badge>\n <Badge variant=\"warning\" size=\"xs\" iconLeft=\"close\">\n Badge\n </Badge>\n <Badge variant=\"error\" size=\"xs\" iconLeft=\"close\">\n Badge\n </Badge>\n </div>\n </div>\n </div>\n\n {/* BADGE - ROUNDED */}\n <div>\n <Code variant=\"label\" className=\"mb-16\">\n Badge - Rounded\n </Code>\n <div className=\"flex flex-col gap-16\">\n {/* Base - 2XS */}\n <div className=\"flex gap-16\">\n <Badge variant=\"neutral\" size=\"2xs\" radius=\"rounded\">\n Badge\n </Badge>\n <Badge variant=\"info\" size=\"2xs\" radius=\"rounded\">\n Badge\n </Badge>\n <Badge variant=\"feature\" size=\"2xs\" radius=\"rounded\">\n Badge\n </Badge>\n <Badge variant=\"success\" size=\"2xs\" radius=\"rounded\">\n Badge\n </Badge>\n <Badge variant=\"warning\" size=\"2xs\" radius=\"rounded\">\n Badge\n </Badge>\n <Badge variant=\"error\" size=\"2xs\" radius=\"rounded\">\n Badge\n </Badge>\n </div>\n\n {/* Base - XS */}\n <div className=\"flex gap-16\">\n <Badge variant=\"neutral\" size=\"xs\" radius=\"rounded\">\n Badge\n </Badge>\n <Badge variant=\"info\" size=\"xs\" radius=\"rounded\">\n Badge\n </Badge>\n <Badge variant=\"feature\" size=\"xs\" radius=\"rounded\">\n Badge\n </Badge>\n <Badge variant=\"success\" size=\"xs\" radius=\"rounded\">\n Badge\n </Badge>\n <Badge variant=\"warning\" size=\"xs\" radius=\"rounded\">\n Badge\n </Badge>\n <Badge variant=\"error\" size=\"xs\" radius=\"rounded\">\n Badge\n </Badge>\n </div>\n\n {/* With Right Icon - 2XS */}\n <div className=\"flex gap-16\">\n <Badge variant=\"neutral\" size=\"2xs\" radius=\"rounded\" iconRight=\"close\">\n Badge\n </Badge>\n <Badge variant=\"info\" size=\"2xs\" radius=\"rounded\" iconRight=\"close\">\n Badge\n </Badge>\n <Badge variant=\"feature\" size=\"2xs\" radius=\"rounded\" iconRight=\"close\">\n Badge\n </Badge>\n <Badge variant=\"success\" size=\"2xs\" radius=\"rounded\" iconRight=\"close\">\n Badge\n </Badge>\n <Badge variant=\"warning\" size=\"2xs\" radius=\"rounded\" iconRight=\"close\">\n Badge\n </Badge>\n <Badge variant=\"error\" size=\"2xs\" radius=\"rounded\" iconRight=\"close\">\n Badge\n </Badge>\n </div>\n\n {/* With Right Icon - XS */}\n <div className=\"flex gap-16\">\n <Badge variant=\"neutral\" size=\"xs\" radius=\"rounded\" iconRight=\"close\">\n Badge\n </Badge>\n <Badge variant=\"info\" size=\"xs\" radius=\"rounded\" iconRight=\"close\">\n Badge\n </Badge>\n <Badge variant=\"feature\" size=\"xs\" radius=\"rounded\" iconRight=\"close\">\n Badge\n </Badge>\n <Badge variant=\"success\" size=\"xs\" radius=\"rounded\" iconRight=\"close\">\n Badge\n </Badge>\n <Badge variant=\"warning\" size=\"xs\" radius=\"rounded\" iconRight=\"close\">\n Badge\n </Badge>\n <Badge variant=\"error\" size=\"xs\" radius=\"rounded\" iconRight=\"close\">\n Badge\n </Badge>\n </div>\n\n {/* With Left Icon - 2XS */}\n <div className=\"flex gap-16\">\n <Badge variant=\"neutral\" size=\"2xs\" radius=\"rounded\" iconLeft=\"close\">\n Badge\n </Badge>\n <Badge variant=\"info\" size=\"2xs\" radius=\"rounded\" iconLeft=\"close\">\n Badge\n </Badge>\n <Badge variant=\"feature\" size=\"2xs\" radius=\"rounded\" iconLeft=\"close\">\n Badge\n </Badge>\n <Badge variant=\"success\" size=\"2xs\" radius=\"rounded\" iconLeft=\"close\">\n Badge\n </Badge>\n <Badge variant=\"warning\" size=\"2xs\" radius=\"rounded\" iconLeft=\"close\">\n Badge\n </Badge>\n <Badge variant=\"error\" size=\"2xs\" radius=\"rounded\" iconLeft=\"close\">\n Badge\n </Badge>\n </div>\n\n {/* With Left Icon - XS */}\n <div className=\"flex gap-16\">\n <Badge variant=\"neutral\" size=\"xs\" radius=\"rounded\" iconLeft=\"close\">\n Badge\n </Badge>\n <Badge variant=\"info\" size=\"xs\" radius=\"rounded\" iconLeft=\"close\">\n Badge\n </Badge>\n <Badge variant=\"feature\" size=\"xs\" radius=\"rounded\" iconLeft=\"close\">\n Badge\n </Badge>\n <Badge variant=\"success\" size=\"xs\" radius=\"rounded\" iconLeft=\"close\">\n Badge\n </Badge>\n <Badge variant=\"warning\" size=\"xs\" radius=\"rounded\" iconLeft=\"close\">\n Badge\n </Badge>\n <Badge variant=\"error\" size=\"xs\" radius=\"rounded\" iconLeft=\"close\">\n Badge\n </Badge>\n </div>\n </div>\n </div>\n\n {/* BETA BADGE */}\n <div>\n <Code variant=\"label\" className=\"mb-16\">\n Beta Badge\n </Code>\n <div className=\"flex gap-16\">\n <Badge variant=\"info\" size=\"2xs\" radius=\"rounded\">\n Beta\n </Badge>\n </div>\n </div>\n </div>\n ),\n};\n\n// Interactive badges with click handlers\nfunction InteractiveBadgesComponent() {\n const [tags, setTags] = React.useState(['React', 'TypeScript', 'Next.js', 'Tailwind']);\n\n const removeTag = (tagToRemove: string) => {\n setTags(tags.filter((tag) => tag !== tagToRemove));\n };\n\n return (\n <div className=\"flex flex-col gap-32\">\n {/* Removable tags */}\n <div>\n <Code variant=\"label\" className=\"mb-16\">\n Interactive Badges - Removable Tags\n </Code>\n <div className=\"flex flex-wrap gap-8\">\n {tags.map((tag) => (\n <Badge\n key={tag}\n variant=\"neutral\"\n size=\"xs\"\n radius=\"rounded\"\n iconRight=\"close\"\n onIconRightClick={() => removeTag(tag)}\n iconRightAriaLabel={`Remove ${tag} tag`}\n >\n {tag}\n </Badge>\n ))}\n </div>\n </div>\n\n {/* Different variants with interactive icons */}\n <div>\n <Code variant=\"label\" className=\"mb-16\">\n Interactive Badges - Different Variants\n </Code>\n <div className=\"flex flex-wrap gap-8\">\n <Badge\n variant=\"success\"\n size=\"xs\"\n iconRight=\"close\"\n onIconRightClick={() => alert('Success badge clicked!')}\n iconRightAriaLabel=\"Remove success badge\"\n >\n Completed\n </Badge>\n <Badge\n variant=\"warning\"\n size=\"xs\"\n iconRight=\"close\"\n onIconRightClick={() => alert('Warning badge clicked!')}\n iconRightAriaLabel=\"Remove warning badge\"\n >\n Pending\n </Badge>\n <Badge\n variant=\"error\"\n size=\"xs\"\n iconRight=\"close\"\n onIconRightClick={() => alert('Error badge clicked!')}\n iconRightAriaLabel=\"Remove error badge\"\n >\n Failed\n </Badge>\n </div>\n </div>\n\n {/* Non-interactive icons (static) */}\n <div>\n <Code variant=\"label\" className=\"mb-16\">\n Static Icons (Non-interactive)\n </Code>\n <div className=\"flex flex-wrap gap-8\">\n <Badge variant=\"info\" size=\"xs\" iconLeft=\"info\">\n Information\n </Badge>\n <Badge variant=\"success\" size=\"xs\" iconLeft=\"check\">\n Verified\n </Badge>\n <Badge variant=\"feature\" size=\"xs\" iconLeft=\"money\">\n Premium\n </Badge>\n </div>\n </div>\n </div>\n );\n}\n\nexport const InteractiveBadges: Story = {\n render: () => <InteractiveBadgesComponent />,\n};\n"],"names":["Code","React","Badge","IconBadge","StatusBadge","UserBadge","meta","title","component","parameters","layout","tags","AllVariants","render","div","className","variant","dotClassName","name","avatarSrc","size","iconRight","iconLeft","radius","InteractiveBadgesComponent","setTags","useState","removeTag","tagToRemove","filter","tag","map","onIconRightClick","iconRightAriaLabel","alert","InteractiveBadges"],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { type IconName } from '../../components/icon';
2
+ import type { ComponentProps } from 'react';
3
+ export type IconBadgeVariant = 'neutral' | 'info' | 'feature' | 'success' | 'primary' | 'error';
4
+ export type IconBadgeProps = ComponentProps<'span'> & {
5
+ variant?: IconBadgeVariant;
6
+ name?: IconName;
7
+ };
8
+ export declare function IconBadge({ className, variant, name, ...props }: IconBadgeProps): import("react/jsx-runtime").JSX.Element;
9
+ //# sourceMappingURL=icon-badge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon-badge.d.ts","sourceRoot":"","sources":["../../../src/components/badge/icon-badge.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,QAAQ,EAAC,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,OAAO,CAAC;AAG1C,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAEhG,MAAM,MAAM,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,GAAG;IACpD,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,IAAI,CAAC,EAAE,QAAQ,CAAC;CACjB,CAAC;AAoBF,wBAAgB,SAAS,CAAC,EAAC,SAAS,EAAE,OAAmB,EAAE,IAAI,EAAE,GAAG,KAAK,EAAC,EAAE,cAAc,2CAazF"}
@@ -0,0 +1,32 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Icon } from '../../components/icon/index.js';
3
+ import { cn } from '../../utils/cn.js';
4
+ const variantStyles = {
5
+ neutral: 'bg-tag-neutral-bg border-tag-neutral-border',
6
+ info: 'bg-tag-blue-bg border-tag-blue-border',
7
+ feature: 'bg-tag-purple-bg border-tag-purple-border',
8
+ success: 'bg-tag-success-bg border-tag-success-border',
9
+ primary: 'bg-tag-warning-bg border-tag-warning-border',
10
+ error: 'bg-tag-error-bg border-tag-error-border'
11
+ };
12
+ const iconColorStyles = {
13
+ neutral: 'text-tag-neutral-icon',
14
+ info: 'text-tag-blue-icon',
15
+ feature: 'text-tag-purple-icon',
16
+ success: 'text-tag-success-icon',
17
+ primary: 'text-tag-warning-icon',
18
+ error: 'text-tag-error-icon'
19
+ };
20
+ export function IconBadge({ className, variant = 'neutral', name, ...props }) {
21
+ return /*#__PURE__*/ _jsx("span", {
22
+ className: cn('inline-flex size-20 items-center justify-center rounded-6 border', variantStyles[variant], className),
23
+ ...props,
24
+ children: name && /*#__PURE__*/ _jsx(Icon, {
25
+ name: name,
26
+ className: cn('shrink-0', iconColorStyles[variant]),
27
+ size: 12
28
+ })
29
+ });
30
+ }
31
+
32
+ //# sourceMappingURL=icon-badge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/badge/icon-badge.tsx"],"sourcesContent":["import {Icon, type IconName} from 'components/icon';\nimport type {ComponentProps} from 'react';\nimport {cn} from 'utils/cn';\n\nexport type IconBadgeVariant = 'neutral' | 'info' | 'feature' | 'success' | 'primary' | 'error';\n\nexport type IconBadgeProps = ComponentProps<'span'> & {\n variant?: IconBadgeVariant;\n name?: IconName;\n};\n\nconst variantStyles: Record<IconBadgeVariant, string> = {\n neutral: 'bg-tag-neutral-bg border-tag-neutral-border',\n info: 'bg-tag-blue-bg border-tag-blue-border',\n feature: 'bg-tag-purple-bg border-tag-purple-border',\n success: 'bg-tag-success-bg border-tag-success-border',\n primary: 'bg-tag-warning-bg border-tag-warning-border',\n error: 'bg-tag-error-bg border-tag-error-border',\n};\n\nconst iconColorStyles: Record<IconBadgeVariant, string> = {\n neutral: 'text-tag-neutral-icon',\n info: 'text-tag-blue-icon',\n feature: 'text-tag-purple-icon',\n success: 'text-tag-success-icon',\n primary: 'text-tag-warning-icon',\n error: 'text-tag-error-icon',\n};\n\nexport function IconBadge({className, variant = 'neutral', name, ...props}: IconBadgeProps) {\n return (\n <span\n className={cn(\n 'inline-flex size-20 items-center justify-center rounded-6 border',\n variantStyles[variant],\n className,\n )}\n {...props}\n >\n {name && <Icon name={name} className={cn('shrink-0', iconColorStyles[variant])} size={12} />}\n </span>\n );\n}\n"],"names":["Icon","cn","variantStyles","neutral","info","feature","success","primary","error","iconColorStyles","IconBadge","className","variant","name","props","span","size"],"mappings":";AAAA,SAAQA,IAAI,QAAsB,kBAAkB;AAEpD,SAAQC,EAAE,QAAO,WAAW;AAS5B,MAAMC,gBAAkD;IACtDC,SAAS;IACTC,MAAM;IACNC,SAAS;IACTC,SAAS;IACTC,SAAS;IACTC,OAAO;AACT;AAEA,MAAMC,kBAAoD;IACxDN,SAAS;IACTC,MAAM;IACNC,SAAS;IACTC,SAAS;IACTC,SAAS;IACTC,OAAO;AACT;AAEA,OAAO,SAASE,UAAU,EAACC,SAAS,EAAEC,UAAU,SAAS,EAAEC,IAAI,EAAE,GAAGC,OAAsB;IACxF,qBACE,KAACC;QACCJ,WAAWV,GACT,oEACAC,aAAa,CAACU,QAAQ,EACtBD;QAED,GAAGG,KAAK;kBAERD,sBAAQ,KAACb;YAAKa,MAAMA;YAAMF,WAAWV,GAAG,YAAYQ,eAAe,CAACG,QAAQ;YAAGI,MAAM;;;AAG5F"}
@@ -0,0 +1,5 @@
1
+ export { Badge, type BadgeProps, type BadgeVariant, badgeVariants } from './badge';
2
+ export { IconBadge, type IconBadgeProps, type IconBadgeVariant } from './icon-badge';
3
+ export { StatusBadge, type StatusBadgeProps } from './status-badge';
4
+ export { UserBadge, type UserBadgeProps } from './user-badge';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/badge/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,KAAK,UAAU,EAAE,KAAK,YAAY,EAAE,aAAa,EAAC,MAAM,SAAS,CAAC;AACjF,OAAO,EAAC,SAAS,EAAE,KAAK,cAAc,EAAE,KAAK,gBAAgB,EAAC,MAAM,cAAc,CAAC;AACnF,OAAO,EAAC,WAAW,EAAE,KAAK,gBAAgB,EAAC,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAC,SAAS,EAAE,KAAK,cAAc,EAAC,MAAM,cAAc,CAAC"}
@@ -0,0 +1,6 @@
1
+ export { Badge, badgeVariants } from './badge.js';
2
+ export { IconBadge } from './icon-badge.js';
3
+ export { StatusBadge } from './status-badge.js';
4
+ export { UserBadge } from './user-badge.js';
5
+
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/badge/index.ts"],"sourcesContent":["export {Badge, type BadgeProps, type BadgeVariant, badgeVariants} from './badge';\nexport {IconBadge, type IconBadgeProps, type IconBadgeVariant} from './icon-badge';\nexport {StatusBadge, type StatusBadgeProps} from './status-badge';\nexport {UserBadge, type UserBadgeProps} from './user-badge';\n"],"names":["Badge","badgeVariants","IconBadge","StatusBadge","UserBadge"],"mappings":"AAAA,SAAQA,KAAK,EAAsCC,aAAa,QAAO,UAAU;AACjF,SAAQC,SAAS,QAAmD,eAAe;AACnF,SAAQC,WAAW,QAA8B,iBAAiB;AAClE,SAAQC,SAAS,QAA4B,eAAe"}
@@ -0,0 +1,9 @@
1
+ import type { ComponentProps } from 'react';
2
+ export type StatusBadgeProps = ComponentProps<'span'> & {
3
+ variant?: StatusVariant;
4
+ dotClassName?: string;
5
+ };
6
+ type StatusVariant = 'neutral' | 'info' | 'feature' | 'success' | 'warning' | 'error';
7
+ export declare function StatusBadge({ className, variant, children, dotClassName, ...props }: StatusBadgeProps): import("react/jsx-runtime").JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=status-badge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status-badge.d.ts","sourceRoot":"","sources":["../../../src/components/badge/status-badge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,OAAO,CAAC;AAI1C,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC,MAAM,CAAC,GAAG;IACtD,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,KAAK,aAAa,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAWtF,wBAAgB,WAAW,CAAC,EAC1B,SAAS,EACT,OAAmB,EACnB,QAAQ,EACR,YAAY,EACZ,GAAG,KAAK,EACT,EAAE,gBAAgB,2CAgBlB"}
@@ -0,0 +1,29 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { cn } from '../../utils/cn.js';
3
+ import { badgeVariants } from './badge.js';
4
+ const dotVariantStyles = {
5
+ neutral: 'bg-tag-neutral-icon',
6
+ info: 'bg-tag-blue-icon',
7
+ feature: 'bg-tag-purple-icon',
8
+ success: 'bg-tag-success-icon',
9
+ warning: 'bg-tag-warning-icon',
10
+ error: 'bg-tag-error-icon'
11
+ };
12
+ export function StatusBadge({ className, variant = 'neutral', children, dotClassName, ...props }) {
13
+ return /*#__PURE__*/ _jsxs("span", {
14
+ className: cn(badgeVariants({
15
+ variant,
16
+ size: '2xs',
17
+ radius: 'default'
18
+ }), 'gap-6', className),
19
+ ...props,
20
+ children: [
21
+ /*#__PURE__*/ _jsx("span", {
22
+ className: cn('size-8.5 rounded-2 shrink-0', dotVariantStyles[variant], dotClassName)
23
+ }),
24
+ children
25
+ ]
26
+ });
27
+ }
28
+
29
+ //# sourceMappingURL=status-badge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/badge/status-badge.tsx"],"sourcesContent":["import type {ComponentProps} from 'react';\nimport {cn} from 'utils/cn';\nimport {badgeVariants} from './badge';\n\nexport type StatusBadgeProps = ComponentProps<'span'> & {\n variant?: StatusVariant;\n dotClassName?: string;\n};\n\ntype StatusVariant = 'neutral' | 'info' | 'feature' | 'success' | 'warning' | 'error';\n\nconst dotVariantStyles: Record<StatusVariant, string> = {\n neutral: 'bg-tag-neutral-icon',\n info: 'bg-tag-blue-icon',\n feature: 'bg-tag-purple-icon',\n success: 'bg-tag-success-icon',\n warning: 'bg-tag-warning-icon',\n error: 'bg-tag-error-icon',\n};\n\nexport function StatusBadge({\n className,\n variant = 'neutral',\n children,\n dotClassName,\n ...props\n}: StatusBadgeProps) {\n return (\n <span\n className={cn(badgeVariants({variant, size: '2xs', radius: 'default'}), 'gap-6', className)}\n {...props}\n >\n <span\n className={cn(\n 'size-8.5 rounded-2 shrink-0',\n dotVariantStyles[variant as StatusVariant],\n dotClassName,\n )}\n />\n {children}\n </span>\n );\n}\n"],"names":["cn","badgeVariants","dotVariantStyles","neutral","info","feature","success","warning","error","StatusBadge","className","variant","children","dotClassName","props","span","size","radius"],"mappings":";AACA,SAAQA,EAAE,QAAO,WAAW;AAC5B,SAAQC,aAAa,QAAO,UAAU;AAStC,MAAMC,mBAAkD;IACtDC,SAAS;IACTC,MAAM;IACNC,SAAS;IACTC,SAAS;IACTC,SAAS;IACTC,OAAO;AACT;AAEA,OAAO,SAASC,YAAY,EAC1BC,SAAS,EACTC,UAAU,SAAS,EACnBC,QAAQ,EACRC,YAAY,EACZ,GAAGC,OACc;IACjB,qBACE,MAACC;QACCL,WAAWV,GAAGC,cAAc;YAACU;YAASK,MAAM;YAAOC,QAAQ;QAAS,IAAI,SAASP;QAChF,GAAGI,KAAK;;0BAET,KAACC;gBACCL,WAAWV,GACT,+BACAE,gBAAgB,CAACS,QAAyB,EAC1CE;;YAGHD;;;AAGP"}
@@ -0,0 +1,8 @@
1
+ import type { ComponentProps } from 'react';
2
+ export type UserBadgeProps = ComponentProps<'button'> & {
3
+ name: string;
4
+ avatarSrc?: string;
5
+ avatarFallback?: string;
6
+ };
7
+ export declare function UserBadge({ className, name, avatarSrc, avatarFallback, ...props }: UserBadgeProps): import("react/jsx-runtime").JSX.Element;
8
+ //# sourceMappingURL=user-badge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-badge.d.ts","sourceRoot":"","sources":["../../../src/components/badge/user-badge.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,OAAO,CAAC;AAG1C,MAAM,MAAM,cAAc,GAAG,cAAc,CAAC,QAAQ,CAAC,GAAG;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,wBAAgB,SAAS,CAAC,EAAC,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,KAAK,EAAC,EAAE,cAAc,2CAuB/F"}
@@ -0,0 +1,24 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Avatar } from '../../components/avatar/index.js';
3
+ import { cn } from '../../utils/cn.js';
4
+ export function UserBadge({ className, name, avatarSrc, avatarFallback, ...props }) {
5
+ return /*#__PURE__*/ _jsxs("button", {
6
+ type: "button",
7
+ className: cn('inline-flex items-center gap-6 rounded-full px-6 py-2 text-xs font-medium leading-20', 'bg-background-components-base hover:bg-background-components-hover active:bg-background-components-pressed', 'text-foreground-neutral-base transition-colors', 'border border-border-neutral-base-component', 'h-28', className),
8
+ ...props,
9
+ children: [
10
+ /*#__PURE__*/ _jsx(Avatar, {
11
+ className: "size-16 shrink-0",
12
+ content: "image",
13
+ src: avatarSrc,
14
+ fallback: avatarFallback
15
+ }),
16
+ /*#__PURE__*/ _jsx("span", {
17
+ className: "whitespace-nowrap",
18
+ children: name
19
+ })
20
+ ]
21
+ });
22
+ }
23
+
24
+ //# sourceMappingURL=user-badge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/badge/user-badge.tsx"],"sourcesContent":["import {Avatar} from 'components/avatar';\nimport type {ComponentProps} from 'react';\nimport {cn} from 'utils/cn';\n\nexport type UserBadgeProps = ComponentProps<'button'> & {\n name: string;\n avatarSrc?: string;\n avatarFallback?: string;\n};\n\nexport function UserBadge({className, name, avatarSrc, avatarFallback, ...props}: UserBadgeProps) {\n return (\n <button\n type=\"button\"\n className={cn(\n 'inline-flex items-center gap-6 rounded-full px-6 py-2 text-xs font-medium leading-20',\n 'bg-background-components-base hover:bg-background-components-hover active:bg-background-components-pressed',\n 'text-foreground-neutral-base transition-colors',\n 'border border-border-neutral-base-component',\n 'h-28',\n className,\n )}\n {...props}\n >\n <Avatar\n className=\"size-16 shrink-0\"\n content=\"image\"\n src={avatarSrc}\n fallback={avatarFallback}\n />\n <span className=\"whitespace-nowrap\">{name}</span>\n </button>\n );\n}\n"],"names":["Avatar","cn","UserBadge","className","name","avatarSrc","avatarFallback","props","button","type","content","src","fallback","span"],"mappings":";AAAA,SAAQA,MAAM,QAAO,oBAAoB;AAEzC,SAAQC,EAAE,QAAO,WAAW;AAQ5B,OAAO,SAASC,UAAU,EAACC,SAAS,EAAEC,IAAI,EAAEC,SAAS,EAAEC,cAAc,EAAE,GAAGC,OAAsB;IAC9F,qBACE,MAACC;QACCC,MAAK;QACLN,WAAWF,GACT,wFACA,8GACA,kDACA,+CACA,QACAE;QAED,GAAGI,KAAK;;0BAET,KAACP;gBACCG,WAAU;gBACVO,SAAQ;gBACRC,KAAKN;gBACLO,UAAUN;;0BAEZ,KAACO;gBAAKV,WAAU;0BAAqBC;;;;AAG3C"}
@@ -1,6 +1,6 @@
1
1
  import { type VariantProps } from 'class-variance-authority';
2
+ import { type IconName } from '../../components/icon';
2
3
  import type { ComponentProps } from 'react';
3
- import { type IconName } from './icon/icon';
4
4
  export declare const buttonVariants: (props?: ({
5
5
  variant?: "transparent" | "primary" | "secondary" | "danger" | "transparentMuted" | null | undefined;
6
6
  size?: "2xs" | "xs" | "sm" | "md" | "lg" | "xl" | null | undefined;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../../src/components/button/button.tsx"],"names":[],"mappings":"AACA,OAAO,EAAM,KAAK,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAO,KAAK,QAAQ,EAAC,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,OAAO,CAAC;AAG1C,eAAO,MAAM,cAAc;;;8EA8B1B,CAAC;AAEF,wBAAgB,MAAM,CAAC,EACrB,SAAS,EACT,OAAO,EACP,IAAI,EACJ,OAAe,EACf,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,QAAQ,CAAC,GACzB,YAAY,CAAC,OAAO,cAAc,CAAC,GAAG;IACpC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,SAAS,CAAC,EAAE,QAAQ,CAAC;CACtB,2CAUF"}
@@ -1,8 +1,8 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Slot } from '@radix-ui/react-slot';
3
3
  import { cva } from 'class-variance-authority';
4
- import { cn } from '../utils/cn.js';
5
- import { Icon } from './icon/icon.js';
4
+ import { Icon } from '../../components/icon/index.js';
5
+ import { cn } from '../../utils/cn.js';
6
6
  export const buttonVariants = cva('rounded-6 inline-flex items-center justify-center whitespace-nowrap transition-colors disabled:pointer-events-none shrink-0 outline-none', {
7
7
  variants: {
8
8
  variant: {
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/button/button.tsx"],"sourcesContent":["import {Slot} from '@radix-ui/react-slot';\nimport {cva, type VariantProps} from 'class-variance-authority';\nimport {Icon, type IconName} from 'components/icon';\nimport type {ComponentProps} from 'react';\nimport {cn} from 'utils/cn';\n\nexport const buttonVariants = cva(\n 'rounded-6 inline-flex items-center justify-center whitespace-nowrap transition-colors disabled:pointer-events-none shrink-0 outline-none',\n {\n variants: {\n variant: {\n primary:\n 'bg-background-button-inverted-default text-foreground-contrast-primary shadow-button-inverted hover:bg-background-button-inverted-hover active:bg-background-button-inverted-pressed focus-visible:shadow-button-inverted-focus disabled:bg-background-neutral-disabled disabled:text-foreground-neutral-disabled disabled:shadow-none',\n secondary:\n 'bg-background-button-neutral-default text-foreground-neutral-base shadow-button-neutral hover:bg-background-button-neutral-hover active:bg-background-button-neutral-pressed disabled:bg-background-neutral-disabled focus-visible:shadow-button-neutral-focus disabled:text-foreground-neutral-disabled disabled:shadow-none',\n danger:\n 'bg-background-button-danger-default text-foreground-neutral-on-color shadow-button-danger hover:bg-background-button-danger-hover active:bg-background-button-danger-pressed focus-visible:shadow-button-danger-focus disabled:bg-background-neutral-disabled disabled:text-foreground-neutral-disabled disabled:shadow-none',\n transparent:\n 'bg-background-button-transparent-default text-foreground-neutral-base hover:bg-background-button-transparent-hover active:bg-background-button-transparent-pressed focus-visible:shadow-button-neutral-focus disabled:text-foreground-neutral-disabled',\n transparentMuted:\n 'bg-background-button-transparent-default text-foreground-neutral-muted hover:bg-background-button-transparent-hover active:bg-background-button-transparent-pressed focus-visible:shadow-button-neutral-focus disabled:text-foreground-neutral-disabled',\n },\n size: {\n '2xs': 'px-6 text-xs gap-4',\n xs: 'px-6 py-2 text-xs gap-4',\n sm: 'px-8 py-4 text-sm gap-6',\n md: 'px-10 py-6 text-md gap-8',\n lg: 'px-12 py-8 text-lg gap-8',\n xl: 'px-12 py-10 text-xl gap-10',\n },\n },\n defaultVariants: {\n variant: 'primary',\n size: 'md',\n },\n },\n);\n\nexport function Button({\n className,\n variant,\n size,\n asChild = false,\n children,\n iconLeft,\n iconRight,\n ...props\n}: ComponentProps<'button'> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean;\n iconLeft?: IconName;\n iconRight?: IconName;\n }) {\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp data-slot=\"button\" className={cn(buttonVariants({variant, size, className}))} {...props}>\n {iconLeft && <Icon name={iconLeft} />}\n {children}\n {iconRight && <Icon name={iconRight} />}\n </Comp>\n );\n}\n"],"names":["Slot","cva","Icon","cn","buttonVariants","variants","variant","primary","secondary","danger","transparent","transparentMuted","size","xs","sm","md","lg","xl","defaultVariants","Button","className","asChild","children","iconLeft","iconRight","props","Comp","data-slot","name"],"mappings":";AAAA,SAAQA,IAAI,QAAO,uBAAuB;AAC1C,SAAQC,GAAG,QAA0B,2BAA2B;AAChE,SAAQC,IAAI,QAAsB,kBAAkB;AAEpD,SAAQC,EAAE,QAAO,WAAW;AAE5B,OAAO,MAAMC,iBAAiBH,IAC5B,4IACA;IACEI,UAAU;QACRC,SAAS;YACPC,SACE;YACFC,WACE;YACFC,QACE;YACFC,aACE;YACFC,kBACE;QACJ;QACAC,MAAM;YACJ,OAAO;YACPC,IAAI;YACJC,IAAI;YACJC,IAAI;YACJC,IAAI;YACJC,IAAI;QACN;IACF;IACAC,iBAAiB;QACfZ,SAAS;QACTM,MAAM;IACR;AACF,GACA;AAEF,OAAO,SAASO,OAAO,EACrBC,SAAS,EACTd,OAAO,EACPM,IAAI,EACJS,UAAU,KAAK,EACfC,QAAQ,EACRC,QAAQ,EACRC,SAAS,EACT,GAAGC,OAMF;IACD,MAAMC,OAAOL,UAAUrB,OAAO;IAE9B,qBACE,MAAC0B;QAAKC,aAAU;QAASP,WAAWjB,GAAGC,eAAe;YAACE;YAASM;YAAMQ;QAAS;QAAM,GAAGK,KAAK;;YAC1FF,0BAAY,KAACrB;gBAAK0B,MAAML;;YACxBD;YACAE,2BAAa,KAACtB;gBAAK0B,MAAMJ;;;;AAGhC"}
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Code } from '../components/typography/index.js';
2
+ import { Code } from '../../components/typography/index.js';
3
3
  import { Button } from './button.js';
4
4
  const variantOptions = [
5
5
  'primary',
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/button/button.stories.tsx"],"sourcesContent":["import type {Meta, StoryObj} from '@storybook/react';\nimport {Code} from 'components/typography';\nimport {Button} from './button';\n\nconst variantOptions = [\n 'primary',\n 'secondary',\n 'danger',\n 'transparent',\n 'transparentMuted',\n] as const;\nconst sizeOptions = ['2xs', 'xs', 'sm', 'md', 'lg', 'xl'] as const;\n\nconst meta = {\n title: 'Components/Button',\n component: Button,\n tags: ['autodocs'],\n argTypes: {\n variant: {\n control: 'select',\n options: variantOptions,\n },\n size: {\n control: 'select',\n options: sizeOptions,\n },\n asChild: {control: 'boolean'},\n },\n args: {\n children: 'Click me',\n variant: 'primary',\n size: 'md',\n },\n} satisfies Meta<typeof Button>;\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\nexport const Default: Story = {};\n\nexport const Variants: Story = {\n render: (args) => (\n <div className=\"flex flex-col gap-32\">\n {sizeOptions.map((size) => (\n <table key={size} className=\"w-fit border-separate border-spacing-x-32 border-spacing-y-16\">\n <thead>\n <tr>\n <th>{size}</th>\n <th>Default</th>\n <th>Hover</th>\n <th>Active</th>\n <th>Focus</th>\n <th>Disabled</th>\n </tr>\n </thead>\n <tbody>\n {variantOptions.map((variant) => (\n <tr key={variant}>\n <td>\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle\">\n {variant}\n </Code>\n </td>\n <td>\n <Button {...args} variant={variant} size={size}>\n Click me\n </Button>\n </td>\n <td>\n <Button {...args} variant={variant} className=\"hover\" size={size}>\n Click me\n </Button>\n </td>\n <td>\n <Button {...args} variant={variant} className=\"active\" size={size}>\n Click me\n </Button>\n </td>\n <td>\n <Button {...args} variant={variant} className=\"focus\" size={size}>\n Click me\n </Button>\n </td>\n <td>\n <Button {...args} variant={variant} disabled size={size}>\n Click me\n </Button>\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n ))}\n </div>\n ),\n};\n\nVariants.parameters = {\n pseudo: {\n hover: '.hover',\n active: '.active',\n focusVisible: '.focus',\n },\n};\n\nexport const Icons: Story = {\n render: (args) => (\n <div className=\"flex flex-col gap-16\">\n <div>\n <Button {...args} iconLeft=\"google\">\n Click me\n </Button>\n </div>\n <div>\n <Button {...args} iconRight=\"microsoft\">\n Click me\n </Button>\n </div>\n <div>\n <Button {...args} iconLeft=\"google\" iconRight=\"microsoft\">\n Click me\n </Button>\n </div>\n </div>\n ),\n};\n"],"names":["Code","Button","variantOptions","sizeOptions","meta","title","component","tags","argTypes","variant","control","options","size","asChild","args","children","Default","Variants","render","div","className","map","table","thead","tr","th","tbody","td","disabled","parameters","pseudo","hover","active","focusVisible","Icons","iconLeft","iconRight"],"mappings":";AACA,SAAQA,IAAI,QAAO,wBAAwB;AAC3C,SAAQC,MAAM,QAAO,WAAW;AAEhC,MAAMC,iBAAiB;IACrB;IACA;IACA;IACA;IACA;CACD;AACD,MAAMC,cAAc;IAAC;IAAO;IAAM;IAAM;IAAM;IAAM;CAAK;AAEzD,MAAMC,OAAO;IACXC,OAAO;IACPC,WAAWL;IACXM,MAAM;QAAC;KAAW;IAClBC,UAAU;QACRC,SAAS;YACPC,SAAS;YACTC,SAAST;QACX;QACAU,MAAM;YACJF,SAAS;YACTC,SAASR;QACX;QACAU,SAAS;YAACH,SAAS;QAAS;IAC9B;IACAI,MAAM;QACJC,UAAU;QACVN,SAAS;QACTG,MAAM;IACR;AACF;AAEA,eAAeR,KAAK;AAGpB,OAAO,MAAMY,UAAiB,CAAC,EAAE;AAEjC,OAAO,MAAMC,WAAkB;IAC7BC,QAAQ,CAACJ,qBACP,KAACK;YAAIC,WAAU;sBACZjB,YAAYkB,GAAG,CAAC,CAACT,qBAChB,MAACU;oBAAiBF,WAAU;;sCAC1B,KAACG;sCACC,cAAA,MAACC;;kDACC,KAACC;kDAAIb;;kDACL,KAACa;kDAAG;;kDACJ,KAACA;kDAAG;;kDACJ,KAACA;kDAAG;;kDACJ,KAACA;kDAAG;;kDACJ,KAACA;kDAAG;;;;;sCAGR,KAACC;sCACExB,eAAemB,GAAG,CAAC,CAACZ,wBACnB,MAACe;;sDACC,KAACG;sDACC,cAAA,KAAC3B;gDAAKS,SAAQ;gDAAQW,WAAU;0DAC7BX;;;sDAGL,KAACkB;sDACC,cAAA,KAAC1B;gDAAQ,GAAGa,IAAI;gDAAEL,SAASA;gDAASG,MAAMA;0DAAM;;;sDAIlD,KAACe;sDACC,cAAA,KAAC1B;gDAAQ,GAAGa,IAAI;gDAAEL,SAASA;gDAASW,WAAU;gDAAQR,MAAMA;0DAAM;;;sDAIpE,KAACe;sDACC,cAAA,KAAC1B;gDAAQ,GAAGa,IAAI;gDAAEL,SAASA;gDAASW,WAAU;gDAASR,MAAMA;0DAAM;;;sDAIrE,KAACe;sDACC,cAAA,KAAC1B;gDAAQ,GAAGa,IAAI;gDAAEL,SAASA;gDAASW,WAAU;gDAAQR,MAAMA;0DAAM;;;sDAIpE,KAACe;sDACC,cAAA,KAAC1B;gDAAQ,GAAGa,IAAI;gDAAEL,SAASA;gDAASmB,QAAQ;gDAAChB,MAAMA;0DAAM;;;;mCA3BpDH;;;mBAbHG;;AAmDpB,EAAE;AAEFK,SAASY,UAAU,GAAG;IACpBC,QAAQ;QACNC,OAAO;QACPC,QAAQ;QACRC,cAAc;IAChB;AACF;AAEA,OAAO,MAAMC,QAAe;IAC1BhB,QAAQ,CAACJ,qBACP,MAACK;YAAIC,WAAU;;8BACb,KAACD;8BACC,cAAA,KAAClB;wBAAQ,GAAGa,IAAI;wBAAEqB,UAAS;kCAAS;;;8BAItC,KAAChB;8BACC,cAAA,KAAClB;wBAAQ,GAAGa,IAAI;wBAAEsB,WAAU;kCAAY;;;8BAI1C,KAACjB;8BACC,cAAA,KAAClB;wBAAQ,GAAGa,IAAI;wBAAEqB,UAAS;wBAASC,WAAU;kCAAY;;;;;AAMlE,EAAE"}
@@ -0,0 +1,2 @@
1
+ export * from './button';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/button/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './button.js';
2
+
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/button/index.ts"],"sourcesContent":["export * from './button';\n"],"names":[],"mappings":"AAAA,cAAc,WAAW"}
@@ -0,0 +1,14 @@
1
+ import { type CheckboxProps } from './checkbox';
2
+ export type CheckboxLabelProps = Omit<CheckboxProps, 'id'> & {
3
+ id?: string;
4
+ label: string;
5
+ optional?: boolean;
6
+ description?: string;
7
+ showInfoIcon?: boolean;
8
+ border?: boolean;
9
+ className?: string;
10
+ labelClassName?: string;
11
+ descriptionClassName?: string;
12
+ };
13
+ export declare function CheckboxLabel({ id, label, optional, description, showInfoIcon, border, className, labelClassName, descriptionClassName, ...checkboxProps }: CheckboxLabelProps): import("react/jsx-runtime").JSX.Element;
14
+ //# sourceMappingURL=checkbox-label.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox-label.d.ts","sourceRoot":"","sources":["../../../src/components/checkbox/checkbox-label.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAW,KAAK,aAAa,EAAC,MAAM,YAAY,CAAC;AAExD,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG;IAC3D,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,wBAAgB,aAAa,CAAC,EAC5B,EAAE,EACF,KAAK,EACL,QAAgB,EAChB,WAAW,EACX,YAAoB,EACpB,MAAc,EACd,SAAS,EACT,cAAc,EACd,oBAAoB,EACpB,GAAG,aAAa,EACjB,EAAE,kBAAkB,2CA+FpB"}
@@ -0,0 +1,82 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useId } from 'react';
3
+ import { cn } from '../../utils/cn.js';
4
+ import { Icon } from '../icon/icon.js';
5
+ import { Label } from '../label/label.js';
6
+ import { Checkbox } from './checkbox.js';
7
+ export function CheckboxLabel({ id, label, optional = false, description, showInfoIcon = false, border = false, className, labelClassName, descriptionClassName, ...checkboxProps }) {
8
+ const generateId = useId();
9
+ const checkboxId = id || generateId;
10
+ const isDisabled = checkboxProps.disabled ?? false;
11
+ const renderContent = (checkboxId)=>/*#__PURE__*/ _jsxs("div", {
12
+ className: "flex flex-col gap-4 flex-1 min-w-0",
13
+ children: [
14
+ /*#__PURE__*/ _jsxs("div", {
15
+ className: "flex gap-4 items-center",
16
+ children: [
17
+ /*#__PURE__*/ _jsx(Label, {
18
+ className: cn('text-sm leading-20 overflow-hidden text-ellipsis whitespace-nowrap', isDisabled ? 'font-normal text-foreground-neutral-subtle' : 'font-medium text-foreground-neutral-base', labelClassName),
19
+ htmlFor: checkboxId,
20
+ children: label
21
+ }),
22
+ optional && /*#__PURE__*/ _jsx("span", {
23
+ className: "text-sm leading-20 font-regular text-foreground-neutral-muted whitespace-nowrap",
24
+ children: "(Optional)"
25
+ }),
26
+ showInfoIcon && /*#__PURE__*/ _jsx(Icon, {
27
+ name: "info",
28
+ className: "size-16 text-foreground-neutral-muted shrink-0",
29
+ "aria-hidden": "true"
30
+ })
31
+ ]
32
+ }),
33
+ description && /*#__PURE__*/ _jsx("p", {
34
+ className: cn('text-sm leading-20', isDisabled ? 'text-foreground-neutral-disabled' : 'text-foreground-neutral-subtle', descriptionClassName),
35
+ children: description
36
+ })
37
+ ]
38
+ });
39
+ if (border) {
40
+ return /*#__PURE__*/ _jsxs(Label, {
41
+ htmlFor: checkboxId,
42
+ className: cn(// Base container styles with border
43
+ 'flex items-start gap-10 rounded-8 p-8 transition-all duration-100', // Unchecked state - default
44
+ 'bg-checkbox-unchecked-bg shadow-checkbox-unchecked', // Unchecked state - hover
45
+ 'hover:bg-checkbox-unchecked-bg-hover', // Unchecked state - focus
46
+ 'has-data-[state=unchecked]:focus-visible:shadow-border-interactive-with-active', // Checked state - default
47
+ 'has-data-[state=checked]:bg-background-neutral-base has-data-[state=checked]:shadow-checkbox-checked', // Checked state - hover
48
+ 'has-data-[state=checked]:hover:bg-background-neutral-hover', // Checked state - focus
49
+ 'has-data-[state=checked]:focus-visible:shadow-checkbox-checked-focus', // Indeterminate state - default
50
+ 'has-data-[state=indeterminate]:bg-background-neutral-base has-data-[state=indeterminate]:shadow-checkbox-indeterminate', // Indeterminate state - hover
51
+ 'has-data-[state=indeterminate]:hover:bg-background-neutral-hover', // Indeterminate state - focus
52
+ 'has-data-[state=indeterminate]:focus-visible:shadow-checkbox-indeterminate-focus', // Disabled state
53
+ isDisabled && 'opacity-50 cursor-not-allowed', !isDisabled && 'cursor-pointer', className),
54
+ children: [
55
+ /*#__PURE__*/ _jsx("span", {
56
+ className: "p-4",
57
+ children: /*#__PURE__*/ _jsx(Checkbox, {
58
+ id: checkboxId,
59
+ ...checkboxProps
60
+ })
61
+ }),
62
+ renderContent(checkboxId)
63
+ ]
64
+ });
65
+ }
66
+ // Without border variant
67
+ return /*#__PURE__*/ _jsxs("div", {
68
+ className: cn('flex items-start gap-10', className),
69
+ children: [
70
+ /*#__PURE__*/ _jsx("span", {
71
+ className: "p-2",
72
+ children: /*#__PURE__*/ _jsx(Checkbox, {
73
+ id: checkboxId,
74
+ ...checkboxProps
75
+ })
76
+ }),
77
+ renderContent(checkboxId)
78
+ ]
79
+ });
80
+ }
81
+
82
+ //# sourceMappingURL=checkbox-label.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/checkbox/checkbox-label.tsx"],"sourcesContent":["import {useId} from 'react';\nimport {cn} from 'utils/cn';\nimport {Icon} from '../icon/icon';\nimport {Label} from '../label/label';\nimport {Checkbox, type CheckboxProps} from './checkbox';\n\nexport type CheckboxLabelProps = Omit<CheckboxProps, 'id'> & {\n id?: string;\n label: string;\n optional?: boolean;\n description?: string;\n showInfoIcon?: boolean;\n border?: boolean;\n className?: string;\n labelClassName?: string;\n descriptionClassName?: string;\n};\n\nexport function CheckboxLabel({\n id,\n label,\n optional = false,\n description,\n showInfoIcon = false,\n border = false,\n className,\n labelClassName,\n descriptionClassName,\n ...checkboxProps\n}: CheckboxLabelProps) {\n const generateId = useId();\n const checkboxId = id || generateId;\n const isDisabled = checkboxProps.disabled ?? false;\n\n const renderContent = (checkboxId: string) => (\n <div className=\"flex flex-col gap-4 flex-1 min-w-0\">\n <div className=\"flex gap-4 items-center\">\n <Label\n className={cn(\n 'text-sm leading-20 overflow-hidden text-ellipsis whitespace-nowrap',\n isDisabled\n ? 'font-normal text-foreground-neutral-subtle'\n : 'font-medium text-foreground-neutral-base',\n labelClassName,\n )}\n htmlFor={checkboxId}\n >\n {label}\n </Label>\n {optional && (\n <span className=\"text-sm leading-20 font-regular text-foreground-neutral-muted whitespace-nowrap\">\n (Optional)\n </span>\n )}\n {showInfoIcon && (\n <Icon\n name=\"info\"\n className=\"size-16 text-foreground-neutral-muted shrink-0\"\n aria-hidden=\"true\"\n />\n )}\n </div>\n {description && (\n <p\n className={cn(\n 'text-sm leading-20',\n isDisabled ? 'text-foreground-neutral-disabled' : 'text-foreground-neutral-subtle',\n descriptionClassName,\n )}\n >\n {description}\n </p>\n )}\n </div>\n );\n\n if (border) {\n return (\n <Label\n htmlFor={checkboxId}\n className={cn(\n // Base container styles with border\n 'flex items-start gap-10 rounded-8 p-8 transition-all duration-100',\n // Unchecked state - default\n 'bg-checkbox-unchecked-bg shadow-checkbox-unchecked',\n // Unchecked state - hover\n 'hover:bg-checkbox-unchecked-bg-hover',\n // Unchecked state - focus\n 'has-data-[state=unchecked]:focus-visible:shadow-border-interactive-with-active',\n // Checked state - default\n 'has-data-[state=checked]:bg-background-neutral-base has-data-[state=checked]:shadow-checkbox-checked',\n // Checked state - hover\n 'has-data-[state=checked]:hover:bg-background-neutral-hover',\n // Checked state - focus\n 'has-data-[state=checked]:focus-visible:shadow-checkbox-checked-focus',\n // Indeterminate state - default\n 'has-data-[state=indeterminate]:bg-background-neutral-base has-data-[state=indeterminate]:shadow-checkbox-indeterminate',\n // Indeterminate state - hover\n 'has-data-[state=indeterminate]:hover:bg-background-neutral-hover',\n // Indeterminate state - focus\n 'has-data-[state=indeterminate]:focus-visible:shadow-checkbox-indeterminate-focus',\n // Disabled state\n isDisabled && 'opacity-50 cursor-not-allowed',\n !isDisabled && 'cursor-pointer',\n className,\n )}\n >\n <span className=\"p-4\">\n <Checkbox id={checkboxId} {...checkboxProps} />\n </span>\n {renderContent(checkboxId)}\n </Label>\n );\n }\n\n // Without border variant\n return (\n <div className={cn('flex items-start gap-10', className)}>\n <span className=\"p-2\">\n <Checkbox id={checkboxId} {...checkboxProps} />\n </span>\n {renderContent(checkboxId)}\n </div>\n );\n}\n"],"names":["useId","cn","Icon","Label","Checkbox","CheckboxLabel","id","label","optional","description","showInfoIcon","border","className","labelClassName","descriptionClassName","checkboxProps","generateId","checkboxId","isDisabled","disabled","renderContent","div","htmlFor","span","name","aria-hidden","p"],"mappings":";AAAA,SAAQA,KAAK,QAAO,QAAQ;AAC5B,SAAQC,EAAE,QAAO,WAAW;AAC5B,SAAQC,IAAI,QAAO,eAAe;AAClC,SAAQC,KAAK,QAAO,iBAAiB;AACrC,SAAQC,QAAQ,QAA2B,aAAa;AAcxD,OAAO,SAASC,cAAc,EAC5BC,EAAE,EACFC,KAAK,EACLC,WAAW,KAAK,EAChBC,WAAW,EACXC,eAAe,KAAK,EACpBC,SAAS,KAAK,EACdC,SAAS,EACTC,cAAc,EACdC,oBAAoB,EACpB,GAAGC,eACgB;IACnB,MAAMC,aAAahB;IACnB,MAAMiB,aAAaX,MAAMU;IACzB,MAAME,aAAaH,cAAcI,QAAQ,IAAI;IAE7C,MAAMC,gBAAgB,CAACH,2BACrB,MAACI;YAAIT,WAAU;;8BACb,MAACS;oBAAIT,WAAU;;sCACb,KAACT;4BACCS,WAAWX,GACT,sEACAiB,aACI,+CACA,4CACJL;4BAEFS,SAASL;sCAERV;;wBAEFC,0BACC,KAACe;4BAAKX,WAAU;sCAAkF;;wBAInGF,8BACC,KAACR;4BACCsB,MAAK;4BACLZ,WAAU;4BACVa,eAAY;;;;gBAIjBhB,6BACC,KAACiB;oBACCd,WAAWX,GACT,sBACAiB,aAAa,qCAAqC,kCAClDJ;8BAGDL;;;;IAMT,IAAIE,QAAQ;QACV,qBACE,MAACR;YACCmB,SAASL;YACTL,WAAWX,GACT,oCAAoC;YACpC,qEACA,4BAA4B;YAC5B,sDACA,0BAA0B;YAC1B,wCACA,0BAA0B;YAC1B,kFACA,0BAA0B;YAC1B,wGACA,wBAAwB;YACxB,8DACA,wBAAwB;YACxB,wEACA,gCAAgC;YAChC,0HACA,8BAA8B;YAC9B,oEACA,8BAA8B;YAC9B,oFACA,iBAAiB;YACjBiB,cAAc,iCACd,CAACA,cAAc,kBACfN;;8BAGF,KAACW;oBAAKX,WAAU;8BACd,cAAA,KAACR;wBAASE,IAAIW;wBAAa,GAAGF,aAAa;;;gBAE5CK,cAAcH;;;IAGrB;IAEA,yBAAyB;IACzB,qBACE,MAACI;QAAIT,WAAWX,GAAG,2BAA2BW;;0BAC5C,KAACW;gBAAKX,WAAU;0BACd,cAAA,KAACR;oBAASE,IAAIW;oBAAa,GAAGF,aAAa;;;YAE5CK,cAAcH;;;AAGrB"}
@@ -0,0 +1,18 @@
1
+ import { type ReactNode } from 'react';
2
+ import { type CheckboxProps } from './checkbox';
3
+ export type CheckboxLink = {
4
+ label: string;
5
+ href?: string;
6
+ onClick?: () => void;
7
+ };
8
+ export type CheckboxLinksProps = Omit<CheckboxProps, 'id'> & {
9
+ id?: string;
10
+ label: string;
11
+ links: CheckboxLink[];
12
+ separator?: ReactNode;
13
+ className?: string;
14
+ labelClassName?: string;
15
+ linkClassName?: string;
16
+ };
17
+ export declare function CheckboxLinks({ id, label, links, separator, className, labelClassName, linkClassName, ...checkboxProps }: CheckboxLinksProps): import("react/jsx-runtime").JSX.Element;
18
+ //# sourceMappingURL=checkbox-links.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox-links.d.ts","sourceRoot":"","sources":["../../../src/components/checkbox/checkbox-links.tsx"],"names":[],"mappings":"AACA,OAAO,EAAC,KAAK,SAAS,EAAQ,MAAM,OAAO,CAAC;AAE5C,OAAO,EAAW,KAAK,aAAa,EAAC,MAAM,YAAY,CAAC;AAExD,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG;IAC3D,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,wBAAgB,aAAa,CAAC,EAC5B,EAAE,EACF,KAAK,EACL,KAAK,EACL,SAAS,EACT,SAAS,EACT,cAAc,EACd,aAAa,EACb,GAAG,aAAa,EACjB,EAAE,kBAAkB,2CA2DpB"}
@@ -0,0 +1,58 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Label } from '../../components/label/index.js';
3
+ import { useId } from 'react';
4
+ import { cn } from '../../utils/cn.js';
5
+ import { Checkbox } from './checkbox.js';
6
+ export function CheckboxLinks({ id, label, links, separator, className, labelClassName, linkClassName, ...checkboxProps }) {
7
+ const generateId = useId();
8
+ const checkboxId = id || generateId;
9
+ const isDisabled = checkboxProps.disabled ?? false;
10
+ const defaultSeparator = /*#__PURE__*/ _jsx("span", {
11
+ className: "size-3 rounded-full bg-foreground-neutral-muted",
12
+ "aria-hidden": "true"
13
+ });
14
+ return /*#__PURE__*/ _jsxs("div", {
15
+ className: cn('flex gap-10 items-start', className),
16
+ children: [
17
+ /*#__PURE__*/ _jsx("span", {
18
+ className: "p-2",
19
+ children: /*#__PURE__*/ _jsx(Checkbox, {
20
+ id: checkboxId,
21
+ ...checkboxProps
22
+ })
23
+ }),
24
+ /*#__PURE__*/ _jsxs("div", {
25
+ className: "flex flex-col gap-4 items-start flex-1",
26
+ children: [
27
+ /*#__PURE__*/ _jsx(Label, {
28
+ htmlFor: checkboxId,
29
+ className: cn('text-sm leading-20 font-medium text-foreground-neutral-base', isDisabled && 'cursor-not-allowed opacity-50', labelClassName),
30
+ children: label
31
+ }),
32
+ /*#__PURE__*/ _jsx("div", {
33
+ className: "flex gap-6 items-center",
34
+ children: links.map((link, index)=>/*#__PURE__*/ _jsxs("div", {
35
+ className: "flex gap-6 items-center",
36
+ children: [
37
+ link.href ? /*#__PURE__*/ _jsx("a", {
38
+ href: link.href,
39
+ onClick: link.onClick,
40
+ className: cn('text-sm leading-20 font-medium text-foreground-highlight-interactive', 'hover:text-foreground-highlight-interactive-hover', linkClassName),
41
+ children: link.label
42
+ }) : /*#__PURE__*/ _jsx("button", {
43
+ type: "button",
44
+ onClick: link.onClick,
45
+ className: cn('text-sm leading-20 font-medium text-foreground-highlight-interactive', 'hover:text-foreground-highlight-interactive-hover', linkClassName),
46
+ children: link.label
47
+ }),
48
+ index < links.length - 1 && (separator ?? defaultSeparator)
49
+ ]
50
+ }, link.label))
51
+ })
52
+ ]
53
+ })
54
+ ]
55
+ });
56
+ }
57
+
58
+ //# sourceMappingURL=checkbox-links.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/checkbox/checkbox-links.tsx"],"sourcesContent":["import {Label} from 'components/label';\nimport {type ReactNode, useId} from 'react';\nimport {cn} from 'utils/cn';\nimport {Checkbox, type CheckboxProps} from './checkbox';\n\nexport type CheckboxLink = {\n label: string;\n href?: string;\n onClick?: () => void;\n};\n\nexport type CheckboxLinksProps = Omit<CheckboxProps, 'id'> & {\n id?: string;\n label: string;\n links: CheckboxLink[];\n separator?: ReactNode;\n className?: string;\n labelClassName?: string;\n linkClassName?: string;\n};\n\nexport function CheckboxLinks({\n id,\n label,\n links,\n separator,\n className,\n labelClassName,\n linkClassName,\n ...checkboxProps\n}: CheckboxLinksProps) {\n const generateId = useId();\n const checkboxId = id || generateId;\n const isDisabled = checkboxProps.disabled ?? false;\n const defaultSeparator = (\n <span className=\"size-3 rounded-full bg-foreground-neutral-muted\" aria-hidden=\"true\" />\n );\n\n return (\n <div className={cn('flex gap-10 items-start', className)}>\n <span className=\"p-2\">\n <Checkbox id={checkboxId} {...checkboxProps} />\n </span>\n <div className=\"flex flex-col gap-4 items-start flex-1\">\n <Label\n htmlFor={checkboxId}\n className={cn(\n 'text-sm leading-20 font-medium text-foreground-neutral-base',\n isDisabled && 'cursor-not-allowed opacity-50',\n labelClassName,\n )}\n >\n {label}\n </Label>\n <div className=\"flex gap-6 items-center\">\n {links.map((link, index) => (\n <div key={link.label} className=\"flex gap-6 items-center\">\n {link.href ? (\n <a\n href={link.href}\n onClick={link.onClick}\n className={cn(\n 'text-sm leading-20 font-medium text-foreground-highlight-interactive',\n 'hover:text-foreground-highlight-interactive-hover',\n linkClassName,\n )}\n >\n {link.label}\n </a>\n ) : (\n <button\n type=\"button\"\n onClick={link.onClick}\n className={cn(\n 'text-sm leading-20 font-medium text-foreground-highlight-interactive',\n 'hover:text-foreground-highlight-interactive-hover',\n linkClassName,\n )}\n >\n {link.label}\n </button>\n )}\n {index < links.length - 1 && (separator ?? defaultSeparator)}\n </div>\n ))}\n </div>\n </div>\n </div>\n );\n}\n"],"names":["Label","useId","cn","Checkbox","CheckboxLinks","id","label","links","separator","className","labelClassName","linkClassName","checkboxProps","generateId","checkboxId","isDisabled","disabled","defaultSeparator","span","aria-hidden","div","htmlFor","map","link","index","href","a","onClick","button","type","length"],"mappings":";AAAA,SAAQA,KAAK,QAAO,mBAAmB;AACvC,SAAwBC,KAAK,QAAO,QAAQ;AAC5C,SAAQC,EAAE,QAAO,WAAW;AAC5B,SAAQC,QAAQ,QAA2B,aAAa;AAkBxD,OAAO,SAASC,cAAc,EAC5BC,EAAE,EACFC,KAAK,EACLC,KAAK,EACLC,SAAS,EACTC,SAAS,EACTC,cAAc,EACdC,aAAa,EACb,GAAGC,eACgB;IACnB,MAAMC,aAAaZ;IACnB,MAAMa,aAAaT,MAAMQ;IACzB,MAAME,aAAaH,cAAcI,QAAQ,IAAI;IAC7C,MAAMC,iCACJ,KAACC;QAAKT,WAAU;QAAkDU,eAAY;;IAGhF,qBACE,MAACC;QAAIX,WAAWP,GAAG,2BAA2BO;;0BAC5C,KAACS;gBAAKT,WAAU;0BACd,cAAA,KAACN;oBAASE,IAAIS;oBAAa,GAAGF,aAAa;;;0BAE7C,MAACQ;gBAAIX,WAAU;;kCACb,KAACT;wBACCqB,SAASP;wBACTL,WAAWP,GACT,+DACAa,cAAc,iCACdL;kCAGDJ;;kCAEH,KAACc;wBAAIX,WAAU;kCACZF,MAAMe,GAAG,CAAC,CAACC,MAAMC,sBAChB,MAACJ;gCAAqBX,WAAU;;oCAC7Bc,KAAKE,IAAI,iBACR,KAACC;wCACCD,MAAMF,KAAKE,IAAI;wCACfE,SAASJ,KAAKI,OAAO;wCACrBlB,WAAWP,GACT,wEACA,qDACAS;kDAGDY,KAAKjB,KAAK;uDAGb,KAACsB;wCACCC,MAAK;wCACLF,SAASJ,KAAKI,OAAO;wCACrBlB,WAAWP,GACT,wEACA,qDACAS;kDAGDY,KAAKjB,KAAK;;oCAGdkB,QAAQjB,MAAMuB,MAAM,GAAG,KAAMtB,CAAAA,aAAaS,gBAAe;;+BA1BlDM,KAAKjB,KAAK;;;;;;AAiChC"}
@@ -0,0 +1,9 @@
1
+ import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
2
+ import { type VariantProps } from 'class-variance-authority';
3
+ import type { ComponentProps } from 'react';
4
+ export declare const checkboxVariants: (props?: ({
5
+ size?: "sm" | "md" | "lg" | null | undefined;
6
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
+ export type CheckboxProps = ComponentProps<typeof CheckboxPrimitive.Root> & VariantProps<typeof checkboxVariants>;
8
+ export declare function Checkbox({ className, size, checked, defaultChecked, onCheckedChange, ...props }: CheckboxProps): import("react/jsx-runtime").JSX.Element;
9
+ //# sourceMappingURL=checkbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox.d.ts","sourceRoot":"","sources":["../../../src/components/checkbox/checkbox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,iBAAiB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAM,KAAK,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAEhE,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,OAAO,CAAC;AAG1C,eAAO,MAAM,gBAAgB;;8EAc5B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,cAAc,CAAC,OAAO,iBAAiB,CAAC,IAAI,CAAC,GACvE,YAAY,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAExC,wBAAgB,QAAQ,CAAC,EACvB,SAAS,EACT,IAAI,EACJ,OAAO,EACP,cAAc,EACd,eAAe,EACf,GAAG,KAAK,EACT,EAAE,aAAa,2CAsCf"}