@shipfox/react-ui 0.14.0 → 0.16.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 (562) hide show
  1. package/dist/components/avatar/avatar.js +1 -1
  2. package/dist/components/button-group/button-group.d.ts +17 -0
  3. package/dist/components/button-group/button-group.js +74 -0
  4. package/dist/components/button-group/button-group.stories.js +644 -0
  5. package/dist/components/button-group/index.d.ts +2 -0
  6. package/dist/components/button-group/index.js +3 -0
  7. package/dist/components/code-block/code-block-footer.js +4 -2
  8. package/dist/components/command/command.d.ts +28 -0
  9. package/dist/components/command/command.js +190 -0
  10. package/dist/components/command/command.stories.js +228 -0
  11. package/dist/components/command/index.d.ts +2 -0
  12. package/dist/components/command/index.js +3 -0
  13. package/dist/components/dashboard/components/animated-logo.d.ts +4 -0
  14. package/dist/components/dashboard/components/animated-logo.js +23 -0
  15. package/dist/components/dashboard/components/charts/bar-chart.d.ts +39 -0
  16. package/dist/components/dashboard/components/charts/bar-chart.js +104 -0
  17. package/dist/components/dashboard/components/charts/chart-tooltip.d.ts +14 -0
  18. package/dist/components/dashboard/components/charts/chart-tooltip.js +45 -0
  19. package/dist/components/dashboard/components/charts/colors.d.ts +11 -0
  20. package/dist/components/dashboard/components/charts/colors.js +17 -0
  21. package/dist/components/dashboard/components/charts/index.d.ts +5 -0
  22. package/dist/components/dashboard/components/charts/index.js +6 -0
  23. package/dist/components/dashboard/components/charts/line-chart.d.ts +37 -0
  24. package/dist/components/dashboard/components/charts/line-chart.js +128 -0
  25. package/dist/components/dashboard/components/complete-setup-button.d.ts +4 -0
  26. package/dist/components/dashboard/components/complete-setup-button.js +28 -0
  27. package/dist/components/dashboard/components/dashboard-alert.d.ts +8 -0
  28. package/dist/components/dashboard/components/dashboard-alert.js +24 -0
  29. package/dist/components/dashboard/components/kpi-card.d.ts +15 -0
  30. package/dist/components/dashboard/components/kpi-card.js +77 -0
  31. package/dist/components/dashboard/components/mobile-menu.d.ts +2 -0
  32. package/dist/components/dashboard/components/mobile-menu.js +65 -0
  33. package/dist/components/dashboard/components/mobile-sidebar.d.ts +19 -0
  34. package/dist/components/dashboard/components/mobile-sidebar.js +50 -0
  35. package/dist/components/dashboard/components/organization-selector.d.ts +25 -0
  36. package/dist/components/dashboard/components/organization-selector.js +115 -0
  37. package/dist/components/dashboard/components/sidebar.d.ts +24 -0
  38. package/dist/components/dashboard/components/sidebar.js +218 -0
  39. package/dist/components/dashboard/components/top-menu.d.ts +5 -0
  40. package/dist/components/dashboard/components/top-menu.js +31 -0
  41. package/dist/components/dashboard/components/topbar-button.d.ts +7 -0
  42. package/dist/components/dashboard/components/topbar-button.js +18 -0
  43. package/dist/components/dashboard/components/topbar.d.ts +4 -0
  44. package/dist/components/dashboard/components/topbar.js +62 -0
  45. package/dist/components/dashboard/components/user-profile.d.ts +2 -0
  46. package/dist/components/dashboard/components/user-profile.js +146 -0
  47. package/dist/components/dashboard/context/dashboard-context.d.ts +70 -0
  48. package/dist/components/dashboard/context/dashboard-context.js +175 -0
  49. package/dist/components/dashboard/context/index.d.ts +8 -0
  50. package/dist/components/dashboard/context/index.js +6 -0
  51. package/dist/components/dashboard/context/types.d.ts +50 -0
  52. package/dist/components/dashboard/context/types.js +7 -0
  53. package/dist/components/dashboard/context/utils.d.ts +28 -0
  54. package/dist/components/dashboard/context/utils.js +53 -0
  55. package/dist/components/dashboard/dashboard.d.ts +28 -0
  56. package/dist/components/dashboard/dashboard.js +110 -0
  57. package/dist/components/dashboard/dashboard.stories.js +23 -0
  58. package/dist/components/dashboard/filters/expression-filter-bar.d.ts +42 -0
  59. package/dist/components/dashboard/filters/expression-filter-bar.js +80 -0
  60. package/dist/components/dashboard/filters/index.d.ts +6 -0
  61. package/dist/components/dashboard/filters/index.js +5 -0
  62. package/dist/components/dashboard/index.d.ts +26 -0
  63. package/dist/components/dashboard/index.js +24 -0
  64. package/dist/components/dashboard/pages/analytics-page.d.ts +20 -0
  65. package/dist/components/dashboard/pages/analytics-page.js +258 -0
  66. package/dist/components/dashboard/pages/index.d.ts +6 -0
  67. package/dist/components/dashboard/pages/index.js +6 -0
  68. package/dist/components/dashboard/pages/jobs-page.d.ts +20 -0
  69. package/dist/components/dashboard/pages/jobs-page.js +56 -0
  70. package/dist/components/dashboard/table/index.d.ts +6 -0
  71. package/dist/components/dashboard/table/index.js +5 -0
  72. package/dist/components/dashboard/table/table-wrapper.d.ts +104 -0
  73. package/dist/components/dashboard/table/table-wrapper.js +93 -0
  74. package/dist/components/dashboard/toolbar/filter-button.d.ts +12 -0
  75. package/dist/components/dashboard/toolbar/filter-button.js +124 -0
  76. package/dist/components/dashboard/toolbar/index.d.ts +13 -0
  77. package/dist/components/dashboard/toolbar/index.js +10 -0
  78. package/dist/components/dashboard/toolbar/page-toolbar.d.ts +75 -0
  79. package/dist/components/dashboard/toolbar/page-toolbar.js +208 -0
  80. package/dist/components/dashboard/toolbar/toolbar-actions.d.ts +52 -0
  81. package/dist/components/dashboard/toolbar/toolbar-actions.js +51 -0
  82. package/dist/components/dashboard/toolbar/toolbar-search.d.ts +21 -0
  83. package/dist/components/dashboard/toolbar/toolbar-search.js +123 -0
  84. package/dist/components/dashboard/toolbar/view-dropdown.d.ts +11 -0
  85. package/dist/components/dashboard/toolbar/view-dropdown.js +113 -0
  86. package/dist/components/form/form.stories.js +6 -1
  87. package/dist/components/index.d.ts +8 -0
  88. package/dist/components/index.js +8 -0
  89. package/dist/components/kbd/index.d.ts +2 -0
  90. package/dist/components/kbd/index.js +3 -0
  91. package/dist/components/kbd/kbd.d.ts +7 -0
  92. package/dist/components/kbd/kbd.js +18 -0
  93. package/dist/components/kbd/kbd.stories.js +119 -0
  94. package/dist/components/modal/modal.js +3 -3
  95. package/dist/components/search/index.d.ts +7 -0
  96. package/dist/components/search/index.js +8 -0
  97. package/dist/components/search/search-context.d.ts +11 -0
  98. package/dist/components/search/search-context.js +56 -0
  99. package/dist/components/search/search-inline.d.ts +9 -0
  100. package/dist/components/search/search-inline.js +85 -0
  101. package/dist/components/search/search-modal.d.ts +25 -0
  102. package/dist/components/search/search-modal.js +168 -0
  103. package/dist/components/search/search-trigger.d.ts +9 -0
  104. package/dist/components/search/search-trigger.js +37 -0
  105. package/dist/components/search/search-variants.d.ts +14 -0
  106. package/dist/components/search/search-variants.js +90 -0
  107. package/dist/components/search/search.d.ts +11 -0
  108. package/dist/components/search/search.js +35 -0
  109. package/dist/components/search/search.stories.js +630 -0
  110. package/dist/components/select/index.d.ts +2 -0
  111. package/dist/components/select/index.js +3 -0
  112. package/dist/components/select/select.d.ts +27 -0
  113. package/dist/components/select/select.js +154 -0
  114. package/dist/components/select/select.stories.js +393 -0
  115. package/dist/components/sheet/index.d.ts +2 -0
  116. package/dist/components/sheet/index.js +3 -0
  117. package/dist/components/sheet/sheet.d.ts +33 -0
  118. package/dist/components/sheet/sheet.js +163 -0
  119. package/dist/components/sheet/sheet.stories.js +368 -0
  120. package/dist/components/skeleton/index.d.ts +2 -0
  121. package/dist/components/skeleton/index.js +3 -0
  122. package/dist/components/skeleton/skeleton.d.ts +5 -0
  123. package/dist/components/skeleton/skeleton.js +11 -0
  124. package/dist/components/skeleton/skeleton.stories.js +345 -0
  125. package/dist/components/table/data-table.d.ts +83 -0
  126. package/dist/components/table/data-table.js +164 -0
  127. package/dist/components/table/index.d.ts +6 -0
  128. package/dist/components/table/index.js +6 -0
  129. package/dist/components/table/table-column-header.d.ts +79 -0
  130. package/dist/components/table/table-column-header.js +99 -0
  131. package/dist/components/table/table-pagination.d.ts +53 -0
  132. package/dist/components/table/table-pagination.js +139 -0
  133. package/dist/components/table/table.d.ts +11 -0
  134. package/dist/components/table/table.js +64 -0
  135. package/dist/components/table/table.stories.columns.d.ts +24 -0
  136. package/dist/components/table/table.stories.columns.js +310 -0
  137. package/dist/components/table/table.stories.components.d.ts +14 -0
  138. package/dist/components/table/table.stories.components.js +107 -0
  139. package/dist/components/table/table.stories.data.d.ts +54 -0
  140. package/dist/components/table/table.stories.data.js +122 -0
  141. package/dist/components/table/table.stories.js +302 -0
  142. package/dist/styles.css +1 -1
  143. package/package.json +14 -5
  144. package/.storybook/main.ts +0 -35
  145. package/.storybook/preview.tsx +0 -59
  146. package/.storybook/vitest.setup.ts +0 -4
  147. package/.turbo/turbo-build.log +0 -19
  148. package/.turbo/turbo-check.log +0 -6
  149. package/.turbo/turbo-type.log +0 -5
  150. package/CHANGELOG.md +0 -104
  151. package/argos.config.ts +0 -33
  152. package/dist/build-css-entry.js.map +0 -1
  153. package/dist/colors.stories.conts.d.ts.map +0 -1
  154. package/dist/colors.stories.conts.js.map +0 -1
  155. package/dist/colors.stories.js.map +0 -1
  156. package/dist/components/alert/alert.d.ts.map +0 -1
  157. package/dist/components/alert/alert.js.map +0 -1
  158. package/dist/components/alert/alert.stories.js.map +0 -1
  159. package/dist/components/alert/index.d.ts.map +0 -1
  160. package/dist/components/alert/index.js.map +0 -1
  161. package/dist/components/avatar/avatar-group.d.ts.map +0 -1
  162. package/dist/components/avatar/avatar-group.js.map +0 -1
  163. package/dist/components/avatar/avatar.d.ts.map +0 -1
  164. package/dist/components/avatar/avatar.js.map +0 -1
  165. package/dist/components/avatar/avatar.stories.js.map +0 -1
  166. package/dist/components/avatar/index.d.ts.map +0 -1
  167. package/dist/components/avatar/index.js.map +0 -1
  168. package/dist/components/badge/badge.d.ts.map +0 -1
  169. package/dist/components/badge/badge.js.map +0 -1
  170. package/dist/components/badge/badge.stories.js.map +0 -1
  171. package/dist/components/badge/icon-badge.d.ts.map +0 -1
  172. package/dist/components/badge/icon-badge.js.map +0 -1
  173. package/dist/components/badge/index.d.ts.map +0 -1
  174. package/dist/components/badge/index.js.map +0 -1
  175. package/dist/components/badge/status-badge.d.ts.map +0 -1
  176. package/dist/components/badge/status-badge.js.map +0 -1
  177. package/dist/components/badge/user-badge.d.ts.map +0 -1
  178. package/dist/components/badge/user-badge.js.map +0 -1
  179. package/dist/components/button/button-link.d.ts.map +0 -1
  180. package/dist/components/button/button-link.js.map +0 -1
  181. package/dist/components/button/button-link.stories.js.map +0 -1
  182. package/dist/components/button/button.d.ts.map +0 -1
  183. package/dist/components/button/button.js.map +0 -1
  184. package/dist/components/button/button.stories.js.map +0 -1
  185. package/dist/components/button/icon-button.d.ts.map +0 -1
  186. package/dist/components/button/icon-button.js.map +0 -1
  187. package/dist/components/button/icon-button.stories.js.map +0 -1
  188. package/dist/components/button/index.d.ts.map +0 -1
  189. package/dist/components/button/index.js.map +0 -1
  190. package/dist/components/calendar/calendar.d.ts.map +0 -1
  191. package/dist/components/calendar/calendar.js.map +0 -1
  192. package/dist/components/calendar/index.d.ts.map +0 -1
  193. package/dist/components/calendar/index.js.map +0 -1
  194. package/dist/components/checkbox/checkbox-label.d.ts.map +0 -1
  195. package/dist/components/checkbox/checkbox-label.js.map +0 -1
  196. package/dist/components/checkbox/checkbox-links.d.ts.map +0 -1
  197. package/dist/components/checkbox/checkbox-links.js.map +0 -1
  198. package/dist/components/checkbox/checkbox.d.ts.map +0 -1
  199. package/dist/components/checkbox/checkbox.js.map +0 -1
  200. package/dist/components/checkbox/checkbox.stories.js.map +0 -1
  201. package/dist/components/checkbox/index.d.ts.map +0 -1
  202. package/dist/components/checkbox/index.js.map +0 -1
  203. package/dist/components/code-block/code-block-footer.d.ts.map +0 -1
  204. package/dist/components/code-block/code-block-footer.js.map +0 -1
  205. package/dist/components/code-block/code-block.d.ts.map +0 -1
  206. package/dist/components/code-block/code-block.js.map +0 -1
  207. package/dist/components/code-block/code-block.stories.js.map +0 -1
  208. package/dist/components/code-block/code-content.d.ts.map +0 -1
  209. package/dist/components/code-block/code-content.js.map +0 -1
  210. package/dist/components/code-block/code-copy-button.d.ts.map +0 -1
  211. package/dist/components/code-block/code-copy-button.js.map +0 -1
  212. package/dist/components/code-block/code-tabs.d.ts.map +0 -1
  213. package/dist/components/code-block/code-tabs.js.map +0 -1
  214. package/dist/components/code-block/index.d.ts.map +0 -1
  215. package/dist/components/code-block/index.js.map +0 -1
  216. package/dist/components/confetti/confetti.d.ts.map +0 -1
  217. package/dist/components/confetti/confetti.js.map +0 -1
  218. package/dist/components/confetti/confetti.stories.js.map +0 -1
  219. package/dist/components/confetti/index.d.ts.map +0 -1
  220. package/dist/components/confetti/index.js.map +0 -1
  221. package/dist/components/date-picker/date-picker.d.ts.map +0 -1
  222. package/dist/components/date-picker/date-picker.js.map +0 -1
  223. package/dist/components/date-picker/date-picker.stories.js.map +0 -1
  224. package/dist/components/date-picker/index.d.ts.map +0 -1
  225. package/dist/components/date-picker/index.js.map +0 -1
  226. package/dist/components/date-time-range-picker/date-time-range-picker.d.ts.map +0 -1
  227. package/dist/components/date-time-range-picker/date-time-range-picker.js.map +0 -1
  228. package/dist/components/date-time-range-picker/index.d.ts.map +0 -1
  229. package/dist/components/date-time-range-picker/index.js.map +0 -1
  230. package/dist/components/dot-grid/dot-grid.d.ts.map +0 -1
  231. package/dist/components/dot-grid/dot-grid.js.map +0 -1
  232. package/dist/components/dot-grid/index.d.ts.map +0 -1
  233. package/dist/components/dot-grid/index.js.map +0 -1
  234. package/dist/components/dropdown-menu/dropdown-menu.d.ts.map +0 -1
  235. package/dist/components/dropdown-menu/dropdown-menu.js.map +0 -1
  236. package/dist/components/dropdown-menu/dropdown-menu.stories.js.map +0 -1
  237. package/dist/components/dropdown-menu/index.d.ts.map +0 -1
  238. package/dist/components/dropdown-menu/index.js.map +0 -1
  239. package/dist/components/dynamic-item/dynamic-item.d.ts.map +0 -1
  240. package/dist/components/dynamic-item/dynamic-item.js.map +0 -1
  241. package/dist/components/dynamic-item/dynamic-item.stories.js.map +0 -1
  242. package/dist/components/dynamic-item/index.d.ts.map +0 -1
  243. package/dist/components/dynamic-item/index.js.map +0 -1
  244. package/dist/components/form/form.d.ts.map +0 -1
  245. package/dist/components/form/form.js.map +0 -1
  246. package/dist/components/form/form.stories.js.map +0 -1
  247. package/dist/components/form/index.d.ts.map +0 -1
  248. package/dist/components/form/index.js.map +0 -1
  249. package/dist/components/icon/custom/badge.d.ts.map +0 -1
  250. package/dist/components/icon/custom/badge.js.map +0 -1
  251. package/dist/components/icon/custom/check-circle-solid.d.ts.map +0 -1
  252. package/dist/components/icon/custom/check-circle-solid.js.map +0 -1
  253. package/dist/components/icon/custom/circle-dotted-line.d.ts.map +0 -1
  254. package/dist/components/icon/custom/circle-dotted-line.js.map +0 -1
  255. package/dist/components/icon/custom/component-fill.d.ts.map +0 -1
  256. package/dist/components/icon/custom/component-fill.js.map +0 -1
  257. package/dist/components/icon/custom/component-line.d.ts.map +0 -1
  258. package/dist/components/icon/custom/component-line.js.map +0 -1
  259. package/dist/components/icon/custom/ellipse-mini-solid.d.ts.map +0 -1
  260. package/dist/components/icon/custom/ellipse-mini-solid.js.map +0 -1
  261. package/dist/components/icon/custom/index.d.ts.map +0 -1
  262. package/dist/components/icon/custom/index.js.map +0 -1
  263. package/dist/components/icon/custom/info-tooltip-fill.d.ts.map +0 -1
  264. package/dist/components/icon/custom/info-tooltip-fill.js.map +0 -1
  265. package/dist/components/icon/custom/resize.d.ts.map +0 -1
  266. package/dist/components/icon/custom/resize.js.map +0 -1
  267. package/dist/components/icon/custom/shipfox-logo.d.ts.map +0 -1
  268. package/dist/components/icon/custom/shipfox-logo.js.map +0 -1
  269. package/dist/components/icon/custom/slack-logo.d.ts.map +0 -1
  270. package/dist/components/icon/custom/slack-logo.js.map +0 -1
  271. package/dist/components/icon/custom/spinner.d.ts.map +0 -1
  272. package/dist/components/icon/custom/spinner.js.map +0 -1
  273. package/dist/components/icon/custom/stripe-logo.d.ts.map +0 -1
  274. package/dist/components/icon/custom/stripe-logo.js.map +0 -1
  275. package/dist/components/icon/custom/thunder.d.ts.map +0 -1
  276. package/dist/components/icon/custom/thunder.js.map +0 -1
  277. package/dist/components/icon/custom/x-circle-solid.d.ts.map +0 -1
  278. package/dist/components/icon/custom/x-circle-solid.js.map +0 -1
  279. package/dist/components/icon/icon.d.ts.map +0 -1
  280. package/dist/components/icon/icon.js.map +0 -1
  281. package/dist/components/icon/icon.stories.js.map +0 -1
  282. package/dist/components/icon/index.d.ts.map +0 -1
  283. package/dist/components/icon/index.js.map +0 -1
  284. package/dist/components/icon/remixicon-registry.d.ts.map +0 -1
  285. package/dist/components/icon/remixicon-registry.js.map +0 -1
  286. package/dist/components/index.d.ts.map +0 -1
  287. package/dist/components/index.js.map +0 -1
  288. package/dist/components/inline-tips/index.d.ts.map +0 -1
  289. package/dist/components/inline-tips/index.js.map +0 -1
  290. package/dist/components/inline-tips/inline-tips.d.ts.map +0 -1
  291. package/dist/components/inline-tips/inline-tips.js.map +0 -1
  292. package/dist/components/inline-tips/inline-tips.stories.js.map +0 -1
  293. package/dist/components/input/index.d.ts.map +0 -1
  294. package/dist/components/input/index.js.map +0 -1
  295. package/dist/components/input/input.d.ts.map +0 -1
  296. package/dist/components/input/input.js.map +0 -1
  297. package/dist/components/input/input.stories.js.map +0 -1
  298. package/dist/components/item/index.d.ts.map +0 -1
  299. package/dist/components/item/index.js.map +0 -1
  300. package/dist/components/item/item.d.ts.map +0 -1
  301. package/dist/components/item/item.js.map +0 -1
  302. package/dist/components/item/item.stories.js.map +0 -1
  303. package/dist/components/label/index.d.ts.map +0 -1
  304. package/dist/components/label/index.js.map +0 -1
  305. package/dist/components/label/label.d.ts.map +0 -1
  306. package/dist/components/label/label.js.map +0 -1
  307. package/dist/components/label/label.stories.js.map +0 -1
  308. package/dist/components/modal/index.d.ts.map +0 -1
  309. package/dist/components/modal/index.js.map +0 -1
  310. package/dist/components/modal/modal.d.ts.map +0 -1
  311. package/dist/components/modal/modal.js.map +0 -1
  312. package/dist/components/modal/modal.stories.js.map +0 -1
  313. package/dist/components/moving-border/index.d.ts.map +0 -1
  314. package/dist/components/moving-border/index.js.map +0 -1
  315. package/dist/components/moving-border/moving-border.d.ts.map +0 -1
  316. package/dist/components/moving-border/moving-border.js.map +0 -1
  317. package/dist/components/popover/index.d.ts.map +0 -1
  318. package/dist/components/popover/index.js.map +0 -1
  319. package/dist/components/popover/popover.d.ts.map +0 -1
  320. package/dist/components/popover/popover.js.map +0 -1
  321. package/dist/components/shiny-text/index.d.ts.map +0 -1
  322. package/dist/components/shiny-text/index.js.map +0 -1
  323. package/dist/components/shiny-text/shiny-text.d.ts.map +0 -1
  324. package/dist/components/shiny-text/shiny-text.js.map +0 -1
  325. package/dist/components/tabs/index.d.ts.map +0 -1
  326. package/dist/components/tabs/index.js.map +0 -1
  327. package/dist/components/tabs/tabs.d.ts.map +0 -1
  328. package/dist/components/tabs/tabs.js.map +0 -1
  329. package/dist/components/tabs/tabs.stories.js.map +0 -1
  330. package/dist/components/textarea/index.d.ts.map +0 -1
  331. package/dist/components/textarea/index.js.map +0 -1
  332. package/dist/components/textarea/textarea.d.ts.map +0 -1
  333. package/dist/components/textarea/textarea.js.map +0 -1
  334. package/dist/components/textarea/textarea.stories.js.map +0 -1
  335. package/dist/components/theme/index.d.ts.map +0 -1
  336. package/dist/components/theme/index.js.map +0 -1
  337. package/dist/components/theme/theme-provider.d.ts.map +0 -1
  338. package/dist/components/theme/theme-provider.js.map +0 -1
  339. package/dist/components/toast/index.d.ts.map +0 -1
  340. package/dist/components/toast/index.js.map +0 -1
  341. package/dist/components/toast/toast-custom.d.ts.map +0 -1
  342. package/dist/components/toast/toast-custom.js.map +0 -1
  343. package/dist/components/toast/toast.d.ts.map +0 -1
  344. package/dist/components/toast/toast.js.map +0 -1
  345. package/dist/components/toast/toast.stories.js.map +0 -1
  346. package/dist/components/tooltip/index.d.ts.map +0 -1
  347. package/dist/components/tooltip/index.js.map +0 -1
  348. package/dist/components/tooltip/tooltip.d.ts.map +0 -1
  349. package/dist/components/tooltip/tooltip.js.map +0 -1
  350. package/dist/components/tooltip/tooltip.stories.js.map +0 -1
  351. package/dist/components/typography/code.d.ts.map +0 -1
  352. package/dist/components/typography/code.js.map +0 -1
  353. package/dist/components/typography/code.stories.js.map +0 -1
  354. package/dist/components/typography/header.d.ts.map +0 -1
  355. package/dist/components/typography/header.js.map +0 -1
  356. package/dist/components/typography/header.stories.js.map +0 -1
  357. package/dist/components/typography/index.d.ts.map +0 -1
  358. package/dist/components/typography/index.js.map +0 -1
  359. package/dist/components/typography/text.d.ts.map +0 -1
  360. package/dist/components/typography/text.js.map +0 -1
  361. package/dist/components/typography/text.stories.js.map +0 -1
  362. package/dist/hooks/index.d.ts.map +0 -1
  363. package/dist/hooks/index.js.map +0 -1
  364. package/dist/hooks/useCopy.d.ts.map +0 -1
  365. package/dist/hooks/useCopy.js.map +0 -1
  366. package/dist/hooks/useCopyToClipboard.d.ts.map +0 -1
  367. package/dist/hooks/useCopyToClipboard.js.map +0 -1
  368. package/dist/hooks/useMediaQuery.d.ts.map +0 -1
  369. package/dist/hooks/useMediaQuery.js.map +0 -1
  370. package/dist/hooks/useResolvedTheme.d.ts.map +0 -1
  371. package/dist/hooks/useResolvedTheme.js.map +0 -1
  372. package/dist/hooks/useShikiHighlight.d.ts.map +0 -1
  373. package/dist/hooks/useShikiHighlight.js.map +0 -1
  374. package/dist/hooks/useShikiStyleInjection.d.ts.map +0 -1
  375. package/dist/hooks/useShikiStyleInjection.js.map +0 -1
  376. package/dist/hooks/useTheme.d.ts.map +0 -1
  377. package/dist/hooks/useTheme.js.map +0 -1
  378. package/dist/index.d.ts.map +0 -1
  379. package/dist/index.js.map +0 -1
  380. package/dist/onboarding/sign-in.stories.js.map +0 -1
  381. package/dist/state/theme.d.ts.map +0 -1
  382. package/dist/state/theme.js.map +0 -1
  383. package/dist/utils/avatar.d.ts.map +0 -1
  384. package/dist/utils/avatar.js.map +0 -1
  385. package/dist/utils/clipboard.d.ts.map +0 -1
  386. package/dist/utils/clipboard.js.map +0 -1
  387. package/dist/utils/cn.d.ts.map +0 -1
  388. package/dist/utils/cn.js.map +0 -1
  389. package/dist/utils/date.d.ts.map +0 -1
  390. package/dist/utils/date.js.map +0 -1
  391. package/dist/utils/debounce.d.ts.map +0 -1
  392. package/dist/utils/debounce.js.map +0 -1
  393. package/dist/utils/format/chart.d.ts.map +0 -1
  394. package/dist/utils/format/chart.js.map +0 -1
  395. package/dist/utils/format/date.d.ts.map +0 -1
  396. package/dist/utils/format/date.js.map +0 -1
  397. package/dist/utils/format/duration.d.ts.map +0 -1
  398. package/dist/utils/format/duration.js.map +0 -1
  399. package/dist/utils/format/index.d.ts.map +0 -1
  400. package/dist/utils/format/index.js.map +0 -1
  401. package/dist/utils/format/number.d.ts.map +0 -1
  402. package/dist/utils/format/number.js.map +0 -1
  403. package/dist/utils/index.d.ts.map +0 -1
  404. package/dist/utils/index.js.map +0 -1
  405. package/index.css +0 -970
  406. package/src/assets/illustration-1.svg +0 -92
  407. package/src/assets/illustration-2.svg +0 -14
  408. package/src/assets/illustration-gradient.svg +0 -7049
  409. package/src/build-css-entry.ts +0 -3
  410. package/src/colors.stories.conts.ts +0 -164
  411. package/src/colors.stories.tsx +0 -66
  412. package/src/components/alert/alert.stories.tsx +0 -178
  413. package/src/components/alert/alert.tsx +0 -291
  414. package/src/components/alert/index.ts +0 -1
  415. package/src/components/avatar/avatar-group.tsx +0 -186
  416. package/src/components/avatar/avatar.stories.tsx +0 -179
  417. package/src/components/avatar/avatar.tsx +0 -219
  418. package/src/components/avatar/index.ts +0 -2
  419. package/src/components/badge/badge.stories.tsx +0 -468
  420. package/src/components/badge/badge.tsx +0 -147
  421. package/src/components/badge/icon-badge.tsx +0 -43
  422. package/src/components/badge/index.ts +0 -4
  423. package/src/components/badge/status-badge.tsx +0 -43
  424. package/src/components/badge/user-badge.tsx +0 -34
  425. package/src/components/button/button-link.stories.tsx +0 -86
  426. package/src/components/button/button-link.tsx +0 -76
  427. package/src/components/button/button.stories.tsx +0 -138
  428. package/src/components/button/button.tsx +0 -91
  429. package/src/components/button/icon-button.stories.tsx +0 -228
  430. package/src/components/button/icon-button.tsx +0 -95
  431. package/src/components/button/index.ts +0 -3
  432. package/src/components/calendar/calendar.tsx +0 -90
  433. package/src/components/calendar/index.ts +0 -1
  434. package/src/components/checkbox/checkbox-label.tsx +0 -125
  435. package/src/components/checkbox/checkbox-links.tsx +0 -92
  436. package/src/components/checkbox/checkbox.stories.tsx +0 -391
  437. package/src/components/checkbox/checkbox.tsx +0 -71
  438. package/src/components/checkbox/index.ts +0 -3
  439. package/src/components/code-block/code-block-footer.tsx +0 -190
  440. package/src/components/code-block/code-block.stories.tsx +0 -323
  441. package/src/components/code-block/code-block.tsx +0 -283
  442. package/src/components/code-block/code-content.tsx +0 -63
  443. package/src/components/code-block/code-copy-button.tsx +0 -73
  444. package/src/components/code-block/code-tabs.tsx +0 -170
  445. package/src/components/code-block/index.ts +0 -3
  446. package/src/components/confetti/confetti.stories.tsx +0 -38
  447. package/src/components/confetti/confetti.tsx +0 -140
  448. package/src/components/confetti/index.ts +0 -1
  449. package/src/components/date-picker/date-picker.stories.tsx +0 -230
  450. package/src/components/date-picker/date-picker.tsx +0 -179
  451. package/src/components/date-picker/index.ts +0 -1
  452. package/src/components/date-time-range-picker/date-time-range-picker.tsx +0 -211
  453. package/src/components/date-time-range-picker/index.ts +0 -1
  454. package/src/components/dot-grid/dot-grid.tsx +0 -325
  455. package/src/components/dot-grid/index.ts +0 -1
  456. package/src/components/dropdown-menu/dropdown-menu.stories.tsx +0 -384
  457. package/src/components/dropdown-menu/dropdown-menu.tsx +0 -416
  458. package/src/components/dropdown-menu/index.ts +0 -1
  459. package/src/components/dynamic-item/dynamic-item.stories.tsx +0 -266
  460. package/src/components/dynamic-item/dynamic-item.tsx +0 -74
  461. package/src/components/dynamic-item/index.ts +0 -1
  462. package/src/components/form/form.stories.tsx +0 -500
  463. package/src/components/form/form.tsx +0 -154
  464. package/src/components/form/index.ts +0 -1
  465. package/src/components/icon/custom/badge.tsx +0 -17
  466. package/src/components/icon/custom/check-circle-solid.tsx +0 -24
  467. package/src/components/icon/custom/circle-dotted-line.tsx +0 -17
  468. package/src/components/icon/custom/component-fill.tsx +0 -17
  469. package/src/components/icon/custom/component-line.tsx +0 -17
  470. package/src/components/icon/custom/ellipse-mini-solid.tsx +0 -17
  471. package/src/components/icon/custom/index.ts +0 -14
  472. package/src/components/icon/custom/info-tooltip-fill.tsx +0 -21
  473. package/src/components/icon/custom/resize.tsx +0 -17
  474. package/src/components/icon/custom/shipfox-logo.tsx +0 -20
  475. package/src/components/icon/custom/slack-logo.tsx +0 -35
  476. package/src/components/icon/custom/spinner.tsx +0 -144
  477. package/src/components/icon/custom/stripe-logo.tsx +0 -27
  478. package/src/components/icon/custom/thunder.tsx +0 -17
  479. package/src/components/icon/custom/x-circle-solid.tsx +0 -24
  480. package/src/components/icon/icon.stories.tsx +0 -31
  481. package/src/components/icon/icon.tsx +0 -90
  482. package/src/components/icon/index.ts +0 -1
  483. package/src/components/icon/remixicon-registry.ts +0 -24
  484. package/src/components/index.ts +0 -29
  485. package/src/components/inline-tips/index.ts +0 -1
  486. package/src/components/inline-tips/inline-tips.stories.tsx +0 -131
  487. package/src/components/inline-tips/inline-tips.tsx +0 -132
  488. package/src/components/input/index.ts +0 -1
  489. package/src/components/input/input.stories.tsx +0 -138
  490. package/src/components/input/input.tsx +0 -43
  491. package/src/components/item/index.ts +0 -1
  492. package/src/components/item/item.stories.tsx +0 -159
  493. package/src/components/item/item.tsx +0 -182
  494. package/src/components/label/index.ts +0 -1
  495. package/src/components/label/label.stories.tsx +0 -67
  496. package/src/components/label/label.tsx +0 -15
  497. package/src/components/modal/index.ts +0 -1
  498. package/src/components/modal/modal.stories.tsx +0 -448
  499. package/src/components/modal/modal.tsx +0 -311
  500. package/src/components/moving-border/index.ts +0 -1
  501. package/src/components/moving-border/moving-border.tsx +0 -67
  502. package/src/components/popover/index.ts +0 -1
  503. package/src/components/popover/popover.tsx +0 -60
  504. package/src/components/renovate.json +0 -23
  505. package/src/components/shiny-text/index.ts +0 -1
  506. package/src/components/shiny-text/shiny-text.tsx +0 -21
  507. package/src/components/tabs/index.ts +0 -1
  508. package/src/components/tabs/tabs.stories.tsx +0 -100
  509. package/src/components/tabs/tabs.tsx +0 -380
  510. package/src/components/textarea/index.ts +0 -1
  511. package/src/components/textarea/textarea.stories.tsx +0 -196
  512. package/src/components/textarea/textarea.tsx +0 -42
  513. package/src/components/theme/index.ts +0 -1
  514. package/src/components/theme/theme-provider.tsx +0 -50
  515. package/src/components/toast/index.ts +0 -2
  516. package/src/components/toast/toast-custom.tsx +0 -154
  517. package/src/components/toast/toast.stories.tsx +0 -369
  518. package/src/components/toast/toast.tsx +0 -41
  519. package/src/components/tooltip/index.ts +0 -1
  520. package/src/components/tooltip/tooltip.stories.tsx +0 -284
  521. package/src/components/tooltip/tooltip.tsx +0 -121
  522. package/src/components/typography/code.stories.tsx +0 -36
  523. package/src/components/typography/code.tsx +0 -38
  524. package/src/components/typography/header.stories.tsx +0 -27
  525. package/src/components/typography/header.tsx +0 -41
  526. package/src/components/typography/index.ts +0 -3
  527. package/src/components/typography/text.stories.tsx +0 -67
  528. package/src/components/typography/text.tsx +0 -50
  529. package/src/hooks/index.ts +0 -6
  530. package/src/hooks/useCopy.ts +0 -0
  531. package/src/hooks/useCopyToClipboard.ts +0 -20
  532. package/src/hooks/useMediaQuery.ts +0 -87
  533. package/src/hooks/useResolvedTheme.ts +0 -34
  534. package/src/hooks/useShikiHighlight.ts +0 -140
  535. package/src/hooks/useShikiStyleInjection.ts +0 -34
  536. package/src/hooks/useTheme.ts +0 -10
  537. package/src/index.ts +0 -4
  538. package/src/onboarding/sign-in.stories.tsx +0 -85
  539. package/src/state/theme.ts +0 -15
  540. package/src/utils/avatar.ts +0 -27
  541. package/src/utils/clipboard.ts +0 -4
  542. package/src/utils/cn.ts +0 -6
  543. package/src/utils/date.test.ts +0 -119
  544. package/src/utils/date.ts +0 -99
  545. package/src/utils/debounce.ts +0 -15
  546. package/src/utils/format/chart.ts +0 -16
  547. package/src/utils/format/date.test.ts +0 -65
  548. package/src/utils/format/date.ts +0 -75
  549. package/src/utils/format/duration.test.ts +0 -58
  550. package/src/utils/format/duration.ts +0 -82
  551. package/src/utils/format/index.ts +0 -4
  552. package/src/utils/format/number.test.ts +0 -38
  553. package/src/utils/format/number.ts +0 -33
  554. package/src/utils/index.ts +0 -6
  555. package/test/global.ts +0 -3
  556. package/test/setup.ts +0 -9
  557. package/tsconfig.build.json +0 -19
  558. package/tsconfig.json +0 -11
  559. package/tsconfig.test.json +0 -12
  560. package/vercel.json +0 -8
  561. package/vite.css.config.ts +0 -30
  562. package/vitest.config.ts +0 -44
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/button/button-link.stories.tsx"],"sourcesContent":["import type {Meta, StoryObj} from '@storybook/react';\nimport {ButtonLink} from './button-link';\n\nconst meta = {\n title: 'Components/Button/ButtonLink',\n component: ButtonLink,\n tags: ['autodocs'],\n argTypes: {\n variant: {\n control: 'select',\n options: ['base', 'interactive', 'muted', 'subtle'],\n },\n size: {\n control: 'select',\n options: ['xs', 'sm', 'md', 'xl'],\n },\n underline: {control: 'boolean'},\n asChild: {control: 'boolean'},\n },\n args: {\n children: 'Label',\n variant: 'base',\n size: 'sm',\n underline: false,\n href: '#',\n },\n} satisfies Meta<typeof ButtonLink>;\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 gap-16 items-center\">\n <ButtonLink {...args} variant=\"base\">\n Base\n </ButtonLink>\n <ButtonLink {...args} variant=\"interactive\">\n Interactive\n </ButtonLink>\n <ButtonLink {...args} variant=\"muted\">\n Muted\n </ButtonLink>\n <ButtonLink {...args} variant=\"subtle\">\n Subtle\n </ButtonLink>\n </div>\n ),\n};\n\nexport const WithUnderline: Story = {\n render: (args) => (\n <div className=\"flex gap-16 items-center\">\n <ButtonLink {...args} variant=\"base\" underline>\n Base\n </ButtonLink>\n <ButtonLink {...args} variant=\"interactive\" underline>\n Interactive\n </ButtonLink>\n <ButtonLink {...args} variant=\"muted\" underline>\n Muted\n </ButtonLink>\n <ButtonLink {...args} variant=\"subtle\" underline>\n Subtle\n </ButtonLink>\n </div>\n ),\n};\n\nexport const WithIcons: Story = {\n render: (args) => (\n <div className=\"flex gap-16 items-center\">\n <ButtonLink {...args} iconLeft=\"addLine\">\n Icon Left\n </ButtonLink>\n <ButtonLink {...args} iconRight=\"chevronRight\">\n Icon Right\n </ButtonLink>\n <ButtonLink {...args} iconLeft=\"addLine\" iconRight=\"chevronRight\">\n Both Icons\n </ButtonLink>\n </div>\n ),\n};\n"],"names":["ButtonLink","meta","title","component","tags","argTypes","variant","control","options","size","underline","asChild","args","children","href","Default","Variants","render","div","className","WithUnderline","WithIcons","iconLeft","iconRight"],"mappings":";AACA,SAAQA,UAAU,QAAO,gBAAgB;AAEzC,MAAMC,OAAO;IACXC,OAAO;IACPC,WAAWH;IACXI,MAAM;QAAC;KAAW;IAClBC,UAAU;QACRC,SAAS;YACPC,SAAS;YACTC,SAAS;gBAAC;gBAAQ;gBAAe;gBAAS;aAAS;QACrD;QACAC,MAAM;YACJF,SAAS;YACTC,SAAS;gBAAC;gBAAM;gBAAM;gBAAM;aAAK;QACnC;QACAE,WAAW;YAACH,SAAS;QAAS;QAC9BI,SAAS;YAACJ,SAAS;QAAS;IAC9B;IACAK,MAAM;QACJC,UAAU;QACVP,SAAS;QACTG,MAAM;QACNC,WAAW;QACXI,MAAM;IACR;AACF;AAEA,eAAeb,KAAK;AAGpB,OAAO,MAAMc,UAAiB,CAAC,EAAE;AAEjC,OAAO,MAAMC,WAAkB;IAC7BC,QAAQ,CAACL,qBACP,MAACM;YAAIC,WAAU;;8BACb,KAACnB;oBAAY,GAAGY,IAAI;oBAAEN,SAAQ;8BAAO;;8BAGrC,KAACN;oBAAY,GAAGY,IAAI;oBAAEN,SAAQ;8BAAc;;8BAG5C,KAACN;oBAAY,GAAGY,IAAI;oBAAEN,SAAQ;8BAAQ;;8BAGtC,KAACN;oBAAY,GAAGY,IAAI;oBAAEN,SAAQ;8BAAS;;;;AAK7C,EAAE;AAEF,OAAO,MAAMc,gBAAuB;IAClCH,QAAQ,CAACL,qBACP,MAACM;YAAIC,WAAU;;8BACb,KAACnB;oBAAY,GAAGY,IAAI;oBAAEN,SAAQ;oBAAOI,SAAS;8BAAC;;8BAG/C,KAACV;oBAAY,GAAGY,IAAI;oBAAEN,SAAQ;oBAAcI,SAAS;8BAAC;;8BAGtD,KAACV;oBAAY,GAAGY,IAAI;oBAAEN,SAAQ;oBAAQI,SAAS;8BAAC;;8BAGhD,KAACV;oBAAY,GAAGY,IAAI;oBAAEN,SAAQ;oBAASI,SAAS;8BAAC;;;;AAKvD,EAAE;AAEF,OAAO,MAAMW,YAAmB;IAC9BJ,QAAQ,CAACL,qBACP,MAACM;YAAIC,WAAU;;8BACb,KAACnB;oBAAY,GAAGY,IAAI;oBAAEU,UAAS;8BAAU;;8BAGzC,KAACtB;oBAAY,GAAGY,IAAI;oBAAEW,WAAU;8BAAe;;8BAG/C,KAACvB;oBAAY,GAAGY,IAAI;oBAAEU,UAAS;oBAAUC,WAAU;8BAAe;;;;AAKxE,EAAE"}
@@ -1 +0,0 @@
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;;;8EAgC1B,CAAC;AAWF,wBAAgB,MAAM,CAAC,EACrB,SAAS,EACT,OAAO,EACP,IAAI,EACJ,OAAe,EACf,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,SAAiB,EACjB,QAAQ,EACR,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;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,2CAwBF"}
@@ -1 +0,0 @@
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 cursor-pointer 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 success:\n 'bg-background-button-success-default text-foreground-neutral-on-color shadow-button-success hover:bg-background-button-success-hover active:bg-background-button-success-pressed focus-visible:shadow-button-success-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': 'h-20 px-6 text-xs gap-4',\n xs: 'h-24 px-6 text-xs gap-4',\n sm: 'h-28 px-8 text-sm gap-6',\n md: 'h-32 px-10 text-md gap-8',\n lg: 'h-36 px-12 text-lg gap-8',\n xl: 'h-40 px-12 text-xl gap-10',\n },\n },\n defaultVariants: {\n variant: 'primary',\n size: 'md',\n },\n },\n);\n\nconst iconSizeMap: Record<NonNullable<VariantProps<typeof buttonVariants>['size']>, string> = {\n '2xs': 'size-14',\n xs: 'size-16',\n sm: 'size-20',\n md: 'size-20',\n lg: 'size-20',\n xl: 'size-20',\n};\n\nexport function Button({\n className,\n variant,\n size,\n asChild = false,\n children,\n iconLeft,\n iconRight,\n isLoading = false,\n disabled,\n ...props\n}: ComponentProps<'button'> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean;\n iconLeft?: IconName;\n iconRight?: IconName;\n isLoading?: boolean;\n }) {\n const Comp = asChild ? Slot : 'button';\n const resolvedSize = (size ?? 'md') as NonNullable<VariantProps<typeof buttonVariants>['size']>;\n const iconSize = iconSizeMap[resolvedSize];\n\n return (\n <Comp\n data-slot=\"button\"\n className={cn(buttonVariants({variant, size, className}))}\n disabled={disabled || isLoading}\n aria-busy={isLoading}\n aria-live={isLoading ? 'polite' : undefined}\n {...(asChild ? {'aria-disabled': disabled || isLoading} : {})}\n {...props}\n >\n {isLoading ? (\n <Icon name=\"spinner\" className={iconSize} />\n ) : (\n iconLeft && <Icon name={iconLeft} className={iconSize} />\n )}\n {children}\n {iconRight && <Icon name={iconRight} className={iconSize} />}\n </Comp>\n );\n}\n"],"names":["Slot","cva","Icon","cn","buttonVariants","variants","variant","primary","secondary","danger","success","transparent","transparentMuted","size","xs","sm","md","lg","xl","defaultVariants","iconSizeMap","Button","className","asChild","children","iconLeft","iconRight","isLoading","disabled","props","Comp","resolvedSize","iconSize","data-slot","aria-busy","aria-live","undefined","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,2JACA;IACEI,UAAU;QACRC,SAAS;YACPC,SACE;YACFC,WACE;YACFC,QACE;YACFC,SACE;YACFC,aACE;YACFC,kBACE;QACJ;QACAC,MAAM;YACJ,OAAO;YACPC,IAAI;YACJC,IAAI;YACJC,IAAI;YACJC,IAAI;YACJC,IAAI;QACN;IACF;IACAC,iBAAiB;QACfb,SAAS;QACTO,MAAM;IACR;AACF,GACA;AAEF,MAAMO,cAAwF;IAC5F,OAAO;IACPN,IAAI;IACJC,IAAI;IACJC,IAAI;IACJC,IAAI;IACJC,IAAI;AACN;AAEA,OAAO,SAASG,OAAO,EACrBC,SAAS,EACThB,OAAO,EACPO,IAAI,EACJU,UAAU,KAAK,EACfC,QAAQ,EACRC,QAAQ,EACRC,SAAS,EACTC,YAAY,KAAK,EACjBC,QAAQ,EACR,GAAGC,OAOF;IACD,MAAMC,OAAOP,UAAUvB,OAAO;IAC9B,MAAM+B,eAAgBlB,QAAQ;IAC9B,MAAMmB,WAAWZ,WAAW,CAACW,aAAa;IAE1C,qBACE,MAACD;QACCG,aAAU;QACVX,WAAWnB,GAAGC,eAAe;YAACE;YAASO;YAAMS;QAAS;QACtDM,UAAUA,YAAYD;QACtBO,aAAWP;QACXQ,aAAWR,YAAY,WAAWS;QACjC,GAAIb,UAAU;YAAC,iBAAiBK,YAAYD;QAAS,IAAI,CAAC,CAAC;QAC3D,GAAGE,KAAK;;YAERF,0BACC,KAACzB;gBAAKmC,MAAK;gBAAUf,WAAWU;iBAEhCP,0BAAY,KAACvB;gBAAKmC,MAAMZ;gBAAUH,WAAWU;;YAE9CR;YACAE,2BAAa,KAACxB;gBAAKmC,MAAMX;gBAAWJ,WAAWU;;;;AAGtD"}
@@ -1 +0,0 @@
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 'success',\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 isLoading: {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>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=\"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 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\nexport const Loading: Story = {\n render: (args) => (\n <div className=\"flex flex-col gap-16\">\n <div>\n <Button {...args} isLoading>\n Loading...\n </Button>\n </div>\n <div>\n <Button {...args} isLoading iconLeft=\"google\">\n Loading with left icon\n </Button>\n </div>\n </div>\n ),\n};\n"],"names":["Code","Button","variantOptions","sizeOptions","meta","title","component","tags","argTypes","variant","control","options","size","asChild","isLoading","args","children","Default","Variants","render","div","className","map","table","thead","tr","th","tbody","td","disabled","parameters","pseudo","hover","focusVisible","Icons","iconLeft","iconRight","Loading"],"mappings":";AACA,SAAQA,IAAI,QAAO,wBAAwB;AAC3C,SAAQC,MAAM,QAAO,WAAW;AAEhC,MAAMC,iBAAiB;IACrB;IACA;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;QAC5BI,WAAW;YAACJ,SAAS;QAAS;IAChC;IACAK,MAAM;QACJC,UAAU;QACVP,SAAS;QACTG,MAAM;IACR;AACF;AAEA,eAAeR,KAAK;AAGpB,OAAO,MAAMa,UAAiB,CAAC,EAAE;AAEjC,OAAO,MAAMC,WAAkB;IAC7BC,QAAQ,CAACJ,qBACP,KAACK;YAAIC,WAAU;sBACZlB,YAAYmB,GAAG,CAAC,CAACV,qBAChB,MAACW;oBAAiBF,WAAU;;sCAC1B,KAACG;sCACC,cAAA,MAACC;;kDACC,KAACC;kDAAId;;kDACL,KAACc;kDAAG;;kDACJ,KAACA;kDAAG;;kDACJ,KAACA;kDAAG;;kDACJ,KAACA;kDAAG;;;;;sCAGR,KAACC;sCACEzB,eAAeoB,GAAG,CAAC,CAACb,wBACnB,MAACgB;;sDACC,KAACG;sDACC,cAAA,KAAC5B;gDAAKS,SAAQ;gDAAQY,WAAU;0DAC7BZ;;;sDAGL,KAACmB;sDACC,cAAA,KAAC3B;gDAAQ,GAAGc,IAAI;gDAAEN,SAASA;gDAASG,MAAMA;0DAAM;;;sDAIlD,KAACgB;sDACC,cAAA,KAAC3B;gDAAQ,GAAGc,IAAI;gDAAEN,SAASA;gDAASY,WAAU;gDAAQT,MAAMA;0DAAM;;;sDAIpE,KAACgB;sDACC,cAAA,KAAC3B;gDAAQ,GAAGc,IAAI;gDAAEN,SAASA;gDAASY,WAAU;gDAAQT,MAAMA;0DAAM;;;sDAIpE,KAACgB;sDACC,cAAA,KAAC3B;gDAAQ,GAAGc,IAAI;gDAAEN,SAASA;gDAASoB,QAAQ;gDAACjB,MAAMA;0DAAM;;;;mCAtBpDH;;;mBAZHG;;AA6CpB,EAAE;AAEFM,SAASY,UAAU,GAAG;IACpBC,QAAQ;QACNC,OAAO;QACPC,cAAc;IAChB;AACF;AAEA,OAAO,MAAMC,QAAe;IAC1Bf,QAAQ,CAACJ,qBACP,MAACK;YAAIC,WAAU;;8BACb,KAACD;8BACC,cAAA,KAACnB;wBAAQ,GAAGc,IAAI;wBAAEoB,UAAS;kCAAS;;;8BAItC,KAACf;8BACC,cAAA,KAACnB;wBAAQ,GAAGc,IAAI;wBAAEqB,WAAU;kCAAY;;;8BAI1C,KAAChB;8BACC,cAAA,KAACnB;wBAAQ,GAAGc,IAAI;wBAAEoB,UAAS;wBAASC,WAAU;kCAAY;;;;;AAMlE,EAAE;AAEF,OAAO,MAAMC,UAAiB;IAC5BlB,QAAQ,CAACJ,qBACP,MAACK;YAAIC,WAAU;;8BACb,KAACD;8BACC,cAAA,KAACnB;wBAAQ,GAAGc,IAAI;wBAAED,SAAS;kCAAC;;;8BAI9B,KAACM;8BACC,cAAA,KAACnB;wBAAQ,GAAGc,IAAI;wBAAED,SAAS;wBAACqB,UAAS;kCAAS;;;;;AAMtD,EAAE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"icon-button.d.ts","sourceRoot":"","sources":["../../../src/components/button/icon-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,kBAAkB;;;;;8EAkC9B,CAAC;AAcF,wBAAgB,UAAU,CAAC,EACzB,SAAS,EACT,OAAO,EACP,IAAI,EACJ,MAAM,EACN,KAAK,EACL,OAAe,EACf,QAAQ,EACR,IAAI,EACJ,SAAiB,EACjB,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,QAAQ,CAAC,GACzB,YAAY,CAAC,OAAO,kBAAkB,CAAC,GAAG;IACxC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,2CAuBF"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/button/icon-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 iconButtonVariants = cva(\n 'inline-flex items-center justify-center whitespace-nowrap transition-colors cursor-pointer disabled:pointer-events-none shrink-0 outline-none',\n {\n variants: {\n variant: {\n primary:\n 'bg-background-button-inverted-default text-tag-neutral-icon 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 transparent:\n 'bg-background-button-transparent-default text-tag-neutral-icon 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': 'w-20 h-20 text-xs',\n xs: 'w-24 h-24 text-xs',\n sm: 'w-28 h-28 text-sm',\n md: 'w-32 h-32 text-md',\n lg: 'w-36 h-36 text-lg',\n xl: 'w-40 h-40 text-xl',\n },\n radius: {\n rounded: 'rounded-6',\n full: 'rounded-full',\n },\n muted: {\n true: 'opacity-60',\n false: '',\n },\n },\n defaultVariants: {\n variant: 'primary',\n size: 'md',\n radius: 'rounded',\n muted: false,\n },\n },\n);\n\nconst spinnerSizeMap: Record<\n NonNullable<VariantProps<typeof iconButtonVariants>['size']>,\n string\n> = {\n '2xs': 'size-8',\n xs: 'size-10',\n sm: 'size-12',\n md: 'size-14',\n lg: 'size-16',\n xl: 'size-18',\n};\n\nexport function IconButton({\n className,\n variant,\n size,\n radius,\n muted,\n asChild = false,\n children,\n icon,\n isLoading = false,\n disabled,\n ...props\n}: ComponentProps<'button'> &\n VariantProps<typeof iconButtonVariants> & {\n asChild?: boolean;\n icon?: IconName;\n isLoading?: boolean;\n }) {\n const Comp = asChild ? Slot : 'button';\n const spinnerSize = spinnerSizeMap[size ?? 'md'];\n\n return (\n <Comp\n data-slot=\"icon-button\"\n className={cn(iconButtonVariants({variant, size, radius, muted}), className)}\n disabled={disabled || isLoading}\n aria-busy={isLoading}\n aria-live={isLoading ? 'polite' : undefined}\n {...(asChild ? {'aria-disabled': disabled || isLoading} : {})}\n {...props}\n >\n {isLoading ? (\n <Icon name=\"spinner\" className={spinnerSize} />\n ) : icon ? (\n <Icon name={icon} />\n ) : (\n children\n )}\n </Comp>\n );\n}\n"],"names":["Slot","cva","Icon","cn","iconButtonVariants","variants","variant","primary","transparent","size","xs","sm","md","lg","xl","radius","rounded","full","muted","true","false","defaultVariants","spinnerSizeMap","IconButton","className","asChild","children","icon","isLoading","disabled","props","Comp","spinnerSize","data-slot","aria-busy","aria-live","undefined","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,qBAAqBH,IAChC,iJACA;IACEI,UAAU;QACRC,SAAS;YACPC,SACE;YACFC,aACE;QACJ;QACAC,MAAM;YACJ,OAAO;YACPC,IAAI;YACJC,IAAI;YACJC,IAAI;YACJC,IAAI;YACJC,IAAI;QACN;QACAC,QAAQ;YACNC,SAAS;YACTC,MAAM;QACR;QACAC,OAAO;YACLC,MAAM;YACNC,OAAO;QACT;IACF;IACAC,iBAAiB;QACff,SAAS;QACTG,MAAM;QACNM,QAAQ;QACRG,OAAO;IACT;AACF,GACA;AAEF,MAAMI,iBAGF;IACF,OAAO;IACPZ,IAAI;IACJC,IAAI;IACJC,IAAI;IACJC,IAAI;IACJC,IAAI;AACN;AAEA,OAAO,SAASS,WAAW,EACzBC,SAAS,EACTlB,OAAO,EACPG,IAAI,EACJM,MAAM,EACNG,KAAK,EACLO,UAAU,KAAK,EACfC,QAAQ,EACRC,IAAI,EACJC,YAAY,KAAK,EACjBC,QAAQ,EACR,GAAGC,OAMF;IACD,MAAMC,OAAON,UAAUzB,OAAO;IAC9B,MAAMgC,cAAcV,cAAc,CAACb,QAAQ,KAAK;IAEhD,qBACE,KAACsB;QACCE,aAAU;QACVT,WAAWrB,GAAGC,mBAAmB;YAACE;YAASG;YAAMM;YAAQG;QAAK,IAAIM;QAClEK,UAAUA,YAAYD;QACtBM,aAAWN;QACXO,aAAWP,YAAY,WAAWQ;QACjC,GAAIX,UAAU;YAAC,iBAAiBI,YAAYD;QAAS,IAAI,CAAC,CAAC;QAC3D,GAAGE,KAAK;kBAERF,0BACC,KAAC1B;YAAKmC,MAAK;YAAUb,WAAWQ;aAC9BL,qBACF,KAACzB;YAAKmC,MAAMV;aAEZD;;AAIR"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/button/icon-button.stories.tsx"],"sourcesContent":["import type {Meta, StoryObj} from '@storybook/react';\nimport {Code} from 'components/typography';\nimport {IconButton} from './icon-button';\n\nconst variantOptions = ['primary', 'transparent'] as const;\nconst sizeOptions = ['2xs', 'xs', 'sm', 'md', 'lg', 'xl'] as const;\nconst radiusOptions = ['rounded', 'full'] as const;\n\nconst meta = {\n title: 'Components/Button/IconButton',\n component: IconButton,\n tags: ['autodocs'],\n argTypes: {\n variant: {\n control: 'select',\n options: variantOptions,\n },\n size: {\n control: 'select',\n options: sizeOptions,\n },\n radius: {\n control: 'select',\n options: radiusOptions,\n },\n muted: {control: 'boolean'},\n asChild: {control: 'boolean'},\n },\n args: {\n icon: 'addLine',\n variant: 'primary',\n size: 'md',\n radius: 'rounded',\n muted: false,\n },\n} satisfies Meta<typeof IconButton>;\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 <div key={size} className=\"flex flex-col gap-16\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle\">\n Size: {size}\n </Code>\n {radiusOptions.map((radius) => (\n <table\n key={radius}\n className=\"w-fit border-separate border-spacing-x-32 border-spacing-y-16\"\n >\n <thead>\n <tr>\n <th>{radius}</th>\n <th>Default</th>\n <th>Hover</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 <IconButton\n {...args}\n icon=\"addLine\"\n aria-label=\"Add\"\n variant={variant}\n size={size}\n radius={radius}\n />\n </td>\n <td>\n <IconButton\n {...args}\n icon=\"addLine\"\n aria-label=\"Add\"\n variant={variant}\n className=\"hover\"\n size={size}\n radius={radius}\n />\n </td>\n <td>\n <IconButton\n {...args}\n icon=\"addLine\"\n aria-label=\"Add\"\n variant={variant}\n className=\"focus\"\n size={size}\n radius={radius}\n />\n </td>\n <td>\n <IconButton\n {...args}\n icon=\"addLine\"\n aria-label=\"Add\"\n variant={variant}\n disabled\n size={size}\n radius={radius}\n />\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n ))}\n </div>\n ))}\n </div>\n ),\n};\n\nVariants.parameters = {\n pseudo: {\n hover: '.hover',\n focusVisible: '.focus',\n },\n};\n\nexport const Muted: Story = {\n render: (args) => (\n <div className=\"flex flex-col gap-16\">\n <div className=\"flex gap-16 items-center\">\n <Code variant=\"label\">Normal:</Code>\n <IconButton {...args} icon=\"addLine\" aria-label=\"Add\" />\n <IconButton {...args} icon=\"addLine\" aria-label=\"Add\" variant=\"transparent\" />\n </div>\n <div className=\"flex gap-16 items-center\">\n <Code variant=\"label\">Muted:</Code>\n <IconButton {...args} icon=\"addLine\" aria-label=\"Add\" muted />\n <IconButton {...args} icon=\"addLine\" aria-label=\"Add\" variant=\"transparent\" muted />\n </div>\n </div>\n ),\n};\n\nexport const Sizes: Story = {\n render: ({children: _children, ...args}) => (\n <div className=\"flex flex-col gap-16\">\n <div className=\"flex gap-16 items-center\">\n <Code variant=\"label\">Rounded:</Code>\n {sizeOptions.map((size) => (\n <IconButton\n {...args}\n key={size}\n icon=\"addLine\"\n aria-label=\"Add\"\n size={size}\n radius=\"rounded\"\n />\n ))}\n </div>\n <div className=\"flex gap-16 items-center\">\n <Code variant=\"label\">Full:</Code>\n {sizeOptions.map((size) => (\n <IconButton\n {...args}\n key={size}\n icon=\"addLine\"\n aria-label=\"Add\"\n size={size}\n radius=\"full\"\n />\n ))}\n </div>\n </div>\n ),\n};\n\nexport const Loading: Story = {\n render: ({children: _children, ...args}) => (\n <div className=\"flex flex-col gap-32\">\n <div className=\"flex flex-col gap-16\">\n <Code variant=\"label\">Loading by Size:</Code>\n <div className=\"flex gap-16 items-center\">\n {sizeOptions.map((size) => (\n <div key={size} className=\"flex flex-col gap-8 items-center\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle text-xs\">\n {size}\n </Code>\n <IconButton {...args} icon=\"addLine\" aria-label=\"Loading\" size={size} isLoading />\n </div>\n ))}\n </div>\n </div>\n <div className=\"flex flex-col gap-16\">\n <Code variant=\"label\">Loading by Variant:</Code>\n <div className=\"flex gap-16 items-center\">\n {variantOptions.map((variant) => (\n <div key={variant} className=\"flex flex-col gap-8 items-center\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle text-xs\">\n {variant}\n </Code>\n <IconButton\n {...args}\n icon=\"addLine\"\n aria-label=\"Loading\"\n variant={variant}\n isLoading\n />\n </div>\n ))}\n </div>\n </div>\n <div className=\"flex flex-col gap-16\">\n <Code variant=\"label\">Normal vs Loading:</Code>\n <div className=\"flex gap-16 items-center\">\n <IconButton {...args} icon=\"addLine\" aria-label=\"Add\" />\n <IconButton {...args} icon=\"addLine\" aria-label=\"Loading\" isLoading />\n </div>\n </div>\n </div>\n ),\n};\n"],"names":["Code","IconButton","variantOptions","sizeOptions","radiusOptions","meta","title","component","tags","argTypes","variant","control","options","size","radius","muted","asChild","args","icon","Default","Variants","render","div","className","map","table","thead","tr","th","tbody","td","aria-label","disabled","parameters","pseudo","hover","focusVisible","Muted","Sizes","children","_children","key","Loading","isLoading"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/button/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/button/index.ts"],"sourcesContent":["export * from './button';\nexport * from './button-link';\nexport * from './icon-button';\n"],"names":[],"mappings":"AAAA,cAAc,WAAW;AACzB,cAAc,gBAAgB;AAC9B,cAAc,gBAAgB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../../../src/components/calendar/calendar.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAC,SAAS,EAAC,MAAM,kBAAkB,CAAC;AAG3C,MAAM,MAAM,aAAa,GAAG,cAAc,CAAC,OAAO,SAAS,CAAC,CAAC;AAE7D,wBAAgB,QAAQ,CAAC,EAAC,SAAS,EAAE,UAAU,EAAE,eAAsB,EAAE,GAAG,KAAK,EAAC,EAAE,aAAa,2CAkFhG"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/calendar/calendar.tsx"],"sourcesContent":["import {Icon} from 'components/icon';\nimport type {ComponentProps} from 'react';\nimport {DayPicker} from 'react-day-picker';\nimport {cn} from 'utils/cn';\n\nexport type CalendarProps = ComponentProps<typeof DayPicker>;\n\nexport function Calendar({className, classNames, showOutsideDays = true, ...props}: CalendarProps) {\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn('p-16 transition-colors', className)}\n classNames={{\n months: 'flex flex-col sm:flex-row gap-24',\n month: 'space-y-16 relative',\n month_caption: 'flex items-center justify-center mb-8 px-4 relative h-32',\n caption_label: 'text-sm font-medium text-foreground-neutral-base',\n nav: 'flex items-center gap-4 fixed left-0 top-16 w-full z-10',\n button_previous: cn(\n 'size-32 bg-transparent p-0 absolute left-16 top-0',\n 'inline-flex items-center justify-center rounded-6',\n 'text-foreground-neutral-base',\n 'hover:bg-background-button-transparent-hover',\n 'active:bg-background-button-transparent-pressed',\n 'transition-colors outline-none',\n 'focus-visible:shadow-border-interactive-with-active',\n 'disabled:pointer-events-none disabled:opacity-50',\n ),\n button_next: cn(\n 'size-32 bg-transparent p-0 absolute right-16 top-0',\n 'inline-flex items-center justify-center rounded-6',\n 'text-foreground-neutral-base',\n 'hover:bg-background-button-transparent-hover',\n 'active:bg-background-button-transparent-pressed',\n 'transition-colors outline-none',\n 'focus-visible:shadow-border-interactive-with-active',\n 'disabled:pointer-events-none disabled:opacity-50',\n ),\n month_grid: 'w-full border-collapse mt-8',\n weekdays: 'flex mb-8',\n weekday:\n 'text-foreground-neutral-subtle text-xs font-medium w-36 h-32 flex items-center justify-center',\n week: 'flex mt-4',\n day: cn(\n 'relative text-center size-36 p-0 text-sm font-normal [&:last-child[data-selected=true]_button]:rounded-r-md group/day aspect-square select-none',\n '[&:last-child[data-selected=true]_button]:rounded-r-6',\n props.showWeekNumber\n ? '[&:nth-child(2)[data-selected=true]_button]:rounded-l-6'\n : '[&:first-child[data-selected=true]_button]:rounded-l-6',\n ),\n day_button: cn(\n 'size-36 p-0 text-sm font-normal rounded-6',\n 'inline-flex items-center justify-center',\n 'hover:bg-background-button-transparent-hover',\n 'focus-visible:shadow-border-interactive-with-active',\n 'transition-colors outline-none',\n 'aria-selected:opacity-100',\n ),\n range_start: 'day-range-start rounded-6',\n range_end: 'day-range-end rounded-6',\n selected: cn(\n 'bg-foreground-highlight-interactive/80 !text-foreground-neutral-base font-medium rounded-6',\n 'hover:bg-foreground-highlight-interactive-hover/80',\n 'focus:bg-foreground-highlight-interactive/80',\n ),\n today: cn(\n 'bg-background-field-base text-foreground-neutral-base font-medium rounded-6',\n 'border border-border-neutral-base',\n ),\n outside: 'day-outside text-foreground-neutral-muted',\n disabled: 'text-foreground-neutral-disabled opacity-30 cursor-not-allowed',\n range_middle: cn(\n 'aria-selected:bg-foreground-highlight-interactive/10 aria-selected:text-foreground-neutral-base',\n 'rounded-none',\n 'first:rounded-l-6 first:rounded-r-none',\n 'last:rounded-r-6 last:rounded-l-none',\n ),\n hidden: 'invisible',\n ...classNames,\n }}\n components={{\n Chevron: ({orientation}) => {\n const iconName = orientation === 'left' ? 'arrowLeftSLine' : 'arrowRightSLine';\n return <Icon name={iconName} className=\"size-20\" />;\n },\n }}\n {...props}\n />\n );\n}\n"],"names":["Icon","DayPicker","cn","Calendar","className","classNames","showOutsideDays","props","months","month","month_caption","caption_label","nav","button_previous","button_next","month_grid","weekdays","weekday","week","day","showWeekNumber","day_button","range_start","range_end","selected","today","outside","disabled","range_middle","hidden","components","Chevron","orientation","iconName","name"],"mappings":";AAAA,SAAQA,IAAI,QAAO,kBAAkB;AAErC,SAAQC,SAAS,QAAO,mBAAmB;AAC3C,SAAQC,EAAE,QAAO,WAAW;AAI5B,OAAO,SAASC,SAAS,EAACC,SAAS,EAAEC,UAAU,EAAEC,kBAAkB,IAAI,EAAE,GAAGC,OAAqB;IAC/F,qBACE,KAACN;QACCK,iBAAiBA;QACjBF,WAAWF,GAAG,0BAA0BE;QACxCC,YAAY;YACVG,QAAQ;YACRC,OAAO;YACPC,eAAe;YACfC,eAAe;YACfC,KAAK;YACLC,iBAAiBX,GACf,qDACA,qDACA,gCACA,gDACA,mDACA,kCACA,uDACA;YAEFY,aAAaZ,GACX,sDACA,qDACA,gCACA,gDACA,mDACA,kCACA,uDACA;YAEFa,YAAY;YACZC,UAAU;YACVC,SACE;YACFC,MAAM;YACNC,KAAKjB,GACH,mJACA,yDACAK,MAAMa,cAAc,GAChB,4DACA;YAENC,YAAYnB,GACV,6CACA,2CACA,gDACA,uDACA,kCACA;YAEFoB,aAAa;YACbC,WAAW;YACXC,UAAUtB,GACR,8FACA,sDACA;YAEFuB,OAAOvB,GACL,+EACA;YAEFwB,SAAS;YACTC,UAAU;YACVC,cAAc1B,GACZ,mGACA,gBACA,0CACA;YAEF2B,QAAQ;YACR,GAAGxB,UAAU;QACf;QACAyB,YAAY;YACVC,SAAS,CAAC,EAACC,WAAW,EAAC;gBACrB,MAAMC,WAAWD,gBAAgB,SAAS,mBAAmB;gBAC7D,qBAAO,KAAChC;oBAAKkC,MAAMD;oBAAU7B,WAAU;;YACzC;QACF;QACC,GAAGG,KAAK;;AAGf"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/calendar/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/calendar/index.ts"],"sourcesContent":["export * from './calendar';\n"],"names":[],"mappings":"AAAA,cAAc,aAAa"}
@@ -1 +0,0 @@
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"}
@@ -1 +0,0 @@
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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"checkbox-links.d.ts","sourceRoot":"","sources":["../../../src/components/checkbox/checkbox-links.tsx"],"names":[],"mappings":"AAEA,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,2CA4DpB"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/checkbox/checkbox-links.tsx"],"sourcesContent":["import {buttonLinkVariants} from 'components/button/button-link';\nimport {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 target=\"_blank\"\n rel=\"noopener noreferrer\"\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 transition-colors',\n linkClassName,\n )}\n >\n {link.label}\n </a>\n ) : (\n <button\n type=\"button\"\n onClick={link.onClick}\n className={cn(\n buttonLinkVariants({variant: 'interactive', size: 'sm'}),\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":["buttonLinkVariants","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","target","rel","onClick","button","type","variant","size","length"],"mappings":";AAAA,SAAQA,kBAAkB,QAAO,gCAAgC;AACjE,SAAQC,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,QAAO;wCACPC,KAAI;wCACJC,SAASN,KAAKM,OAAO;wCACrBpB,WAAWP,GACT,wEACA,uEACAS;kDAGDY,KAAKjB,KAAK;uDAGb,KAACwB;wCACCC,MAAK;wCACLF,SAASN,KAAKM,OAAO;wCACrBpB,WAAWP,GACTH,mBAAmB;4CAACiC,SAAS;4CAAeC,MAAM;wCAAI,IACtDtB;kDAGDY,KAAKjB,KAAK;;oCAGdkB,QAAQjB,MAAM2B,MAAM,GAAG,KAAM1B,CAAAA,aAAaS,gBAAe;;+BA3BlDM,KAAKjB,KAAK;;;;;;AAkChC"}
@@ -1 +0,0 @@
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"}
@@ -1 +0,0 @@
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"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/checkbox/checkbox.stories.tsx"],"sourcesContent":["import type {Meta, StoryObj} from '@storybook/react';\nimport {Code, Header} from 'components/typography';\nimport {Checkbox, CheckboxLabel, CheckboxLinks} from '.';\n\nconst meta = {\n title: 'Components/Checkbox',\n component: Checkbox,\n tags: ['autodocs'],\n argTypes: {\n size: {\n control: 'select',\n options: ['sm', 'md', 'lg'],\n },\n disabled: {control: 'boolean'},\n checked: {control: 'boolean'},\n },\n args: {\n size: 'md',\n disabled: false,\n },\n} satisfies Meta<typeof Checkbox>;\n\nexport default meta;\n\ntype Story = StoryObj<typeof meta>;\n\nexport const Default: Story = {\n render: (args) => (\n <div className=\"flex flex-col gap-32\">\n <div className=\"flex flex-col gap-16\">\n <Header variant=\"h4\">Controlled Checkbox</Header>\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle\">\n Use the controls below to change the checkbox state\n </Code>\n <Checkbox {...args} />\n </div>\n\n <div className=\"flex flex-col gap-32\">\n <Header variant=\"h4\">All States</Header>\n {(['sm', 'md', 'lg'] as const).map((size) => (\n <div key={size} className=\"flex flex-wrap gap-16\">\n <Header variant=\"h4\">Size: {size}</Header>\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle\">\n Unchecked\n </Code>\n <Checkbox size={size} />\n </div>\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle\">\n Checked\n </Code>\n <Checkbox size={size} checked />\n </div>\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle\">\n Indeterminate\n </Code>\n <Checkbox size={size} checked=\"indeterminate\" />\n </div>\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle\">\n Disabled (Unchecked)\n </Code>\n <Checkbox size={size} disabled />\n </div>\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle\">\n Disabled (Checked)\n </Code>\n <Checkbox size={size} checked disabled />\n </div>\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle\">\n Focus\n </Code>\n <Checkbox size={size} className=\"focus\" />\n </div>\n </div>\n ))}\n </div>\n </div>\n ),\n parameters: {\n pseudo: {\n focusVisible: '.focus',\n },\n },\n};\n\nexport const CheckboxLabelStory: StoryObj = {\n render: () => (\n <div className=\"flex flex-col gap-32 pb-64 pt-32 px-32 bg-background-neutral-base\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle\">\n CHECKBOX LABEL - WITHOUT BORDER\n </Code>\n <div className=\"flex flex-col gap-16\">\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle text-xs\">\n Default - Unchecked\n </Code>\n <CheckboxLabel\n label=\"Label\"\n optional\n showInfoIcon\n description=\"The quick brown fox jumps over a lazy dog.\"\n />\n </div>\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle text-xs\">\n Hover - Unchecked\n </Code>\n <CheckboxLabel\n label=\"Label\"\n optional\n showInfoIcon\n description=\"The quick brown fox jumps over a lazy dog.\"\n className=\"hover\"\n />\n </div>\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle text-xs\">\n Default - Checked\n </Code>\n <CheckboxLabel\n label=\"Label\"\n optional\n showInfoIcon\n description=\"The quick brown fox jumps over a lazy dog.\"\n checked\n />\n </div>\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle text-xs\">\n Hover - Checked\n </Code>\n <CheckboxLabel\n label=\"Label\"\n optional\n showInfoIcon\n description=\"The quick brown fox jumps over a lazy dog.\"\n checked\n className=\"hover\"\n />\n </div>\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle text-xs\">\n Default - Indeterminate\n </Code>\n <CheckboxLabel\n label=\"Label\"\n optional\n showInfoIcon\n description=\"The quick brown fox jumps over a lazy dog.\"\n checked=\"indeterminate\"\n />\n </div>\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle text-xs\">\n Disabled - Checked\n </Code>\n <CheckboxLabel\n label=\"Label\"\n checked\n optional\n showInfoIcon\n description=\"The quick brown fox jumps over a lazy dog.\"\n disabled\n />\n </div>\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle text-xs\">\n Disabled - Unchecked\n </Code>\n <CheckboxLabel\n label=\"Label\"\n optional\n showInfoIcon\n description=\"The quick brown fox jumps over a lazy dog.\"\n disabled\n />\n </div>\n </div>\n\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle mt-32\">\n CHECKBOX LABEL - WITH BORDER\n </Code>\n <div className=\"flex flex-col gap-16\">\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle text-xs\">\n Default - Unchecked\n </Code>\n <CheckboxLabel\n id=\"checkbox-border-default-unchecked\"\n label=\"Label\"\n optional\n showInfoIcon\n description=\"The quick brown fox jumps over a lazy dog.\"\n border\n />\n </div>\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle text-xs\">\n Hover - Unchecked\n </Code>\n <CheckboxLabel\n id=\"checkbox-border-hover-unchecked\"\n label=\"Label\"\n optional\n showInfoIcon\n description=\"The quick brown fox jumps over a lazy dog.\"\n border\n className=\"hover\"\n />\n </div>\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle text-xs\">\n Focus - Unchecked\n </Code>\n <CheckboxLabel\n id=\"checkbox-border-focus-unchecked\"\n label=\"Label\"\n optional\n showInfoIcon\n description=\"The quick brown fox jumps over a lazy dog.\"\n border\n className=\"focus\"\n />\n </div>\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle text-xs\">\n Default - Checked\n </Code>\n <CheckboxLabel\n id=\"checkbox-border-default-checked\"\n label=\"Label\"\n optional\n showInfoIcon\n description=\"The quick brown fox jumps over a lazy dog.\"\n checked\n border\n />\n </div>\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle text-xs\">\n Hover - Checked\n </Code>\n <CheckboxLabel\n id=\"checkbox-border-hover-checked\"\n label=\"Label\"\n optional\n showInfoIcon\n description=\"The quick brown fox jumps over a lazy dog.\"\n checked\n border\n className=\"hover\"\n />\n </div>\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle text-xs\">\n Focus - Checked\n </Code>\n <CheckboxLabel\n id=\"checkbox-border-focus-checked\"\n label=\"Label\"\n optional\n showInfoIcon\n description=\"The quick brown fox jumps over a lazy dog.\"\n checked\n border\n className=\"focus\"\n />\n </div>\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle text-xs\">\n Default - Indeterminate\n </Code>\n <CheckboxLabel\n id=\"checkbox-border-default-indeterminate\"\n label=\"Label\"\n optional\n showInfoIcon\n description=\"The quick brown fox jumps over a lazy dog.\"\n checked=\"indeterminate\"\n border\n />\n </div>\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle text-xs\">\n Disabled - Unchecked\n </Code>\n <CheckboxLabel\n id=\"checkbox-border-disabled-unchecked\"\n label=\"Label\"\n optional\n showInfoIcon\n description=\"The quick brown fox jumps over a lazy dog.\"\n disabled\n border\n />\n </div>\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle text-xs\">\n Disabled - Checked\n </Code>\n <CheckboxLabel\n id=\"checkbox-border-disabled-checked\"\n label=\"Label\"\n optional\n showInfoIcon\n description=\"The quick brown fox jumps over a lazy dog.\"\n checked\n disabled\n border\n />\n </div>\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle text-xs\">\n Disabled - Indeterminate\n </Code>\n <CheckboxLabel\n id=\"checkbox-border-disabled-indeterminate\"\n label=\"Label\"\n optional\n showInfoIcon\n description=\"The quick brown fox jumps over a lazy dog.\"\n checked=\"indeterminate\"\n disabled\n border\n />\n </div>\n </div>\n </div>\n ),\n};\n\nCheckboxLabelStory.parameters = {\n pseudo: {\n hover: '.hover',\n focusVisible: '.focus',\n },\n};\n\nexport const CheckboxLinksStory: StoryObj = {\n args: {\n disabled: true,\n },\n\n render: () => (\n <div className=\"flex flex-col gap-32 pb-64 pt-32 px-32 bg-background-neutral-base\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle\">\n CHECKBOX LINKS\n </Code>\n <div className=\"flex flex-col gap-16\">\n <CheckboxLinks\n id=\"checkbox-links-default\"\n label=\"Accept policies\"\n links={[\n {label: 'Terms of use', href: 'https://www.shipfox.io/legal/terms-of-service'},\n {\n label: 'Privacy Policy',\n onClick: () =>\n window.open(\n 'https://www.shipfox.io/legal/privacy-policy',\n '_blank',\n 'noopener,noreferrer',\n ),\n },\n ]}\n />\n <CheckboxLinks\n id=\"checkbox-links-checked\"\n label=\"Accept policies\"\n links={[\n {label: 'Terms of use', href: 'https://www.shipfox.io/legal/terms-of-service'},\n {\n label: 'Privacy Policy',\n onClick: () =>\n window.open(\n 'https://www.shipfox.io/legal/privacy-policy',\n '_blank',\n 'noopener,noreferrer',\n ),\n },\n ]}\n checked\n />\n </div>\n </div>\n ),\n};\n"],"names":["Code","Header","Checkbox","CheckboxLabel","CheckboxLinks","meta","title","component","tags","argTypes","size","control","options","disabled","checked","args","Default","render","div","className","variant","map","parameters","pseudo","focusVisible","CheckboxLabelStory","label","optional","showInfoIcon","description","id","border","hover","CheckboxLinksStory","links","href","onClick","window","open"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/checkbox/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/checkbox/index.ts"],"sourcesContent":["export * from './checkbox';\nexport * from './checkbox-label';\nexport * from './checkbox-links';\n"],"names":[],"mappings":"AAAA,cAAc,aAAa;AAC3B,cAAc,mBAAmB;AACjC,cAAc,mBAAmB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"code-block-footer.d.ts","sourceRoot":"","sources":["../../../src/components/code-block/code-block-footer.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,cAAc,EAAE,cAAc,EAAE,SAAS,EAAC,MAAM,OAAO,CAAC;AAIrE,MAAM,MAAM,oBAAoB,GAAG,cAAc,CAAC,cAAc,CAAC,GAAG;IAClE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAC3B,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB,CAAC;AAEF,wBAAgB,eAAe,CAAC,EAC9B,SAAS,EACT,OAAe,EACf,KAAiB,EACjB,OAAO,EACP,WAAW,EACX,IAAI,EACJ,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,oBAAoB,2CAkDtB;AAED,MAAM,MAAM,wBAAwB,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG;IAC7D,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,EAClC,SAAS,EACT,OAAe,EACf,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,wBAAwB,2CAY1B;AAED,MAAM,MAAM,2BAA2B,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG;IAChE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,EACrC,SAAS,EACT,OAAe,EACf,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,2BAA2B,2CAY7B;AAED,MAAM,MAAM,2BAA2B,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG;IAChE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,EACrC,SAAS,EACT,OAAe,EACf,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,2BAA2B,2CAuB7B;AAED,MAAM,MAAM,+BAA+B,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG;IACpE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,wBAAgB,0BAA0B,CAAC,EACzC,SAAS,EACT,OAAe,EACf,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,+BAA+B,2CAuBjC"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/code-block/code-block-footer.tsx"],"sourcesContent":["import {Slot} from '@radix-ui/react-slot';\nimport {Icon} from 'components/icon/icon';\nimport {ShinyText} from 'components/shiny-text';\nimport {Text} from 'components/typography';\nimport type {ComponentProps, HTMLAttributes, ReactNode} from 'react';\nimport {ShipfoxLoader} from 'shipfox-loader-react';\nimport {cn} from 'utils/cn';\n\nexport type CodeBlockFooterProps = HTMLAttributes<HTMLDivElement> & {\n asChild?: boolean;\n state?: 'running' | 'done';\n message?: ReactNode;\n description?: ReactNode;\n icon?: ReactNode;\n};\n\nexport function CodeBlockFooter({\n className,\n asChild = false,\n state = 'running',\n message,\n description,\n icon,\n children,\n ...props\n}: CodeBlockFooterProps) {\n const Comp = asChild ? Slot : 'div';\n\n const defaultIcon =\n icon ??\n (state === 'running' ? (\n <ShipfoxLoader size={20} animation=\"circular\" color=\"white\" background=\"dark\" />\n ) : (\n <Icon\n name=\"checkCircleSolid\"\n className=\"size-20 text-foreground-neutral-base\"\n aria-hidden=\"true\"\n />\n ));\n\n if (asChild || children) {\n return (\n <Comp\n data-slot=\"code-block-footer\"\n className={cn('flex w-full items-center justify-start gap-12 px-16 py-12', className)}\n {...props}\n >\n {children}\n </Comp>\n );\n }\n\n return (\n <Comp\n data-slot=\"code-block-footer\"\n className={cn('flex w-full items-center justify-start gap-12 px-16 py-12', className)}\n {...props}\n >\n <CodeBlockFooterIcon className=\"text-tag-success-icon\">{defaultIcon}</CodeBlockFooterIcon>\n {(message || description) && (\n <CodeBlockFooterContent>\n {message && (\n <CodeBlockFooterMessage>\n {state === 'running' && typeof message === 'string' ? (\n <ShinyText text={message} speed={3} />\n ) : (\n message\n )}\n </CodeBlockFooterMessage>\n )}\n {description && <CodeBlockFooterDescription>{description}</CodeBlockFooterDescription>}\n </CodeBlockFooterContent>\n )}\n </Comp>\n );\n}\n\nexport type CodeBlockFooterIconProps = ComponentProps<'div'> & {\n asChild?: boolean;\n};\n\nexport function CodeBlockFooterIcon({\n className,\n asChild = false,\n children,\n ...props\n}: CodeBlockFooterIconProps) {\n const Comp = asChild ? Slot : 'div';\n\n return (\n <Comp\n data-slot=\"code-block-footer-icon\"\n className={cn('flex shrink-0 items-center justify-center size-20', className)}\n {...props}\n >\n {children}\n </Comp>\n );\n}\n\nexport type CodeBlockFooterContentProps = ComponentProps<'div'> & {\n asChild?: boolean;\n};\n\nexport function CodeBlockFooterContent({\n className,\n asChild = false,\n children,\n ...props\n}: CodeBlockFooterContentProps) {\n const Comp = asChild ? Slot : 'div';\n\n return (\n <Comp\n data-slot=\"code-block-footer-content\"\n className={cn('flex flex-col items-start justify-center gap-0 min-w-0 flex-1', className)}\n {...props}\n >\n {children}\n </Comp>\n );\n}\n\nexport type CodeBlockFooterMessageProps = ComponentProps<'div'> & {\n asChild?: boolean;\n};\n\nexport function CodeBlockFooterMessage({\n className,\n asChild = false,\n children,\n ...props\n}: CodeBlockFooterMessageProps) {\n if (asChild) {\n return (\n <Slot\n data-slot=\"code-block-footer-message\"\n className={cn('overflow-hidden text-ellipsis whitespace-nowrap text-xs', className)}\n {...props}\n >\n {children}\n </Slot>\n );\n }\n\n return (\n <Text\n data-slot=\"code-block-footer-message\"\n size=\"xs\"\n className={cn('overflow-hidden text-ellipsis whitespace-nowrap', className)}\n {...props}\n >\n {children}\n </Text>\n );\n}\n\nexport type CodeBlockFooterDescriptionProps = ComponentProps<'div'> & {\n asChild?: boolean;\n};\n\nexport function CodeBlockFooterDescription({\n className,\n asChild = false,\n children,\n ...props\n}: CodeBlockFooterDescriptionProps) {\n if (asChild) {\n return (\n <Slot\n data-slot=\"code-block-footer-description\"\n className={cn('text-xs text-foreground-neutral-subtle', className)}\n {...props}\n >\n {children}\n </Slot>\n );\n }\n\n return (\n <Text\n data-slot=\"code-block-footer-description\"\n size=\"xs\"\n className={cn('text-foreground-neutral-subtle', className)}\n {...props}\n >\n {children}\n </Text>\n );\n}\n"],"names":["Slot","Icon","ShinyText","Text","ShipfoxLoader","cn","CodeBlockFooter","className","asChild","state","message","description","icon","children","props","Comp","defaultIcon","size","animation","color","background","name","aria-hidden","data-slot","CodeBlockFooterIcon","CodeBlockFooterContent","CodeBlockFooterMessage","text","speed","CodeBlockFooterDescription"],"mappings":";AAAA,SAAQA,IAAI,QAAO,uBAAuB;AAC1C,SAAQC,IAAI,QAAO,uBAAuB;AAC1C,SAAQC,SAAS,QAAO,wBAAwB;AAChD,SAAQC,IAAI,QAAO,wBAAwB;AAE3C,SAAQC,aAAa,QAAO,uBAAuB;AACnD,SAAQC,EAAE,QAAO,WAAW;AAU5B,OAAO,SAASC,gBAAgB,EAC9BC,SAAS,EACTC,UAAU,KAAK,EACfC,QAAQ,SAAS,EACjBC,OAAO,EACPC,WAAW,EACXC,IAAI,EACJC,QAAQ,EACR,GAAGC,OACkB;IACrB,MAAMC,OAAOP,UAAUR,OAAO;IAE9B,MAAMgB,cACJJ,QACCH,CAAAA,UAAU,0BACT,KAACL;QAAca,MAAM;QAAIC,WAAU;QAAWC,OAAM;QAAQC,YAAW;uBAEvE,KAACnB;QACCoB,MAAK;QACLd,WAAU;QACVe,eAAY;MAEhB;IAEF,IAAId,WAAWK,UAAU;QACvB,qBACE,KAACE;YACCQ,aAAU;YACVhB,WAAWF,GAAG,6DAA6DE;YAC1E,GAAGO,KAAK;sBAERD;;IAGP;IAEA,qBACE,MAACE;QACCQ,aAAU;QACVhB,WAAWF,GAAG,6DAA6DE;QAC1E,GAAGO,KAAK;;0BAET,KAACU;gBAAoBjB,WAAU;0BAAyBS;;YACtDN,CAAAA,WAAWC,WAAU,mBACrB,MAACc;;oBACEf,yBACC,KAACgB;kCACEjB,UAAU,aAAa,OAAOC,YAAY,yBACzC,KAACR;4BAAUyB,MAAMjB;4BAASkB,OAAO;6BAEjClB;;oBAILC,6BAAe,KAACkB;kCAA4BlB;;;;;;AAKvD;AAMA,OAAO,SAASa,oBAAoB,EAClCjB,SAAS,EACTC,UAAU,KAAK,EACfK,QAAQ,EACR,GAAGC,OACsB;IACzB,MAAMC,OAAOP,UAAUR,OAAO;IAE9B,qBACE,KAACe;QACCQ,aAAU;QACVhB,WAAWF,GAAG,qDAAqDE;QAClE,GAAGO,KAAK;kBAERD;;AAGP;AAMA,OAAO,SAASY,uBAAuB,EACrClB,SAAS,EACTC,UAAU,KAAK,EACfK,QAAQ,EACR,GAAGC,OACyB;IAC5B,MAAMC,OAAOP,UAAUR,OAAO;IAE9B,qBACE,KAACe;QACCQ,aAAU;QACVhB,WAAWF,GAAG,iEAAiEE;QAC9E,GAAGO,KAAK;kBAERD;;AAGP;AAMA,OAAO,SAASa,uBAAuB,EACrCnB,SAAS,EACTC,UAAU,KAAK,EACfK,QAAQ,EACR,GAAGC,OACyB;IAC5B,IAAIN,SAAS;QACX,qBACE,KAACR;YACCuB,aAAU;YACVhB,WAAWF,GAAG,2DAA2DE;YACxE,GAAGO,KAAK;sBAERD;;IAGP;IAEA,qBACE,KAACV;QACCoB,aAAU;QACVN,MAAK;QACLV,WAAWF,GAAG,mDAAmDE;QAChE,GAAGO,KAAK;kBAERD;;AAGP;AAMA,OAAO,SAASgB,2BAA2B,EACzCtB,SAAS,EACTC,UAAU,KAAK,EACfK,QAAQ,EACR,GAAGC,OAC6B;IAChC,IAAIN,SAAS;QACX,qBACE,KAACR;YACCuB,aAAU;YACVhB,WAAWF,GAAG,0CAA0CE;YACvD,GAAGO,KAAK;sBAERD;;IAGP;IAEA,qBACE,KAACV;QACCoB,aAAU;QACVN,MAAK;QACLV,WAAWF,GAAG,kCAAkCE;QAC/C,GAAGO,KAAK;kBAERD;;AAGP"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"code-block.d.ts","sourceRoot":"","sources":["../../../src/components/code-block/code-block.tsx"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/code-block/code-block.tsx"],"sourcesContent":["import {useControllableState} from '@radix-ui/react-use-controllable-state';\nimport {CodeContent} from 'components/code-block/code-content';\nimport {CodeCopyButton} from 'components/code-block/code-copy-button';\nimport {useResolvedTheme} from 'hooks/useResolvedTheme';\nimport {useShikiHighlight} from 'hooks/useShikiHighlight';\nimport {useShikiStyleInjection} from 'hooks/useShikiStyleInjection';\nimport type {ComponentProps, HTMLAttributes, ReactNode} from 'react';\nimport {createContext, useContext} from 'react';\nimport {cn} from 'utils/cn';\n\nexport type BundledLanguage = string;\n\nexport type CodeBlockData = {\n language: string;\n filename: string;\n code: string;\n};\n\ntype CodeBlockContextType = {\n value: string | undefined;\n onValueChange: ((value: string) => void) | undefined;\n data: CodeBlockData[];\n};\n\nconst CodeBlockContext = createContext<CodeBlockContextType>({\n value: undefined,\n onValueChange: undefined,\n data: [],\n});\n\nexport type CodeBlockProps = HTMLAttributes<HTMLDivElement> & {\n defaultValue?: string;\n value?: string;\n onValueChange?: (value: string) => void;\n data: CodeBlockData[];\n};\n\nexport function CodeBlock({\n value: controlledValue,\n onValueChange: controlledOnValueChange,\n defaultValue,\n className,\n data,\n ...props\n}: CodeBlockProps) {\n const [value, onValueChange] = useControllableState({\n defaultProp: defaultValue ?? '',\n prop: controlledValue,\n onChange: controlledOnValueChange,\n });\n\n return (\n <CodeBlockContext.Provider value={{value, onValueChange, data}}>\n <div\n className={cn(\n 'size-full overflow-hidden rounded-12 bg-background-components-pressed dark:bg-background-contrast-base shadow-button-neutral',\n className,\n )}\n {...props}\n />\n </CodeBlockContext.Provider>\n );\n}\n\nexport type CodeBlockHeaderProps = HTMLAttributes<HTMLDivElement>;\n\nexport function CodeBlockHeader({className, ...props}: CodeBlockHeaderProps) {\n return (\n <div\n className={cn(\n 'flex w-full flex-row items-center gap-12 overflow-clip bg-background-components-pressed dark:bg-background-contrast-base px-16 py-8',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport type CodeBlockFilesProps = Omit<HTMLAttributes<HTMLDivElement>, 'children'> & {\n children: (item: CodeBlockData) => ReactNode;\n};\n\nexport function CodeBlockFiles({className, children, ...props}: CodeBlockFilesProps) {\n const {data} = useContext(CodeBlockContext);\n\n return (\n <div className={cn('flex grow flex-row items-center gap-12', className)} {...props}>\n {data.map((item, index) => (\n <div key={item.language || index}>{children(item)}</div>\n ))}\n </div>\n );\n}\n\nexport type CodeBlockFilenameProps = HTMLAttributes<HTMLDivElement> & {\n value?: string;\n};\n\nexport function CodeBlockFilename({className, value, children, ...props}: CodeBlockFilenameProps) {\n const {value: activeValue} = useContext(CodeBlockContext);\n\n if (value !== activeValue) {\n return null;\n }\n\n return (\n <div\n className={cn(\n 'flex min-h-0 min-w-0 flex-1 items-center overflow-hidden text-ellipsis whitespace-nowrap text-xs leading-20 font-code text-foreground-neutral-muted',\n className,\n )}\n {...props}\n >\n {children}\n </div>\n );\n}\n\nexport type CodeBlockCopyButtonProps = ComponentProps<'button'> & {\n onCopy?: () => void;\n onError?: (error: Error) => void;\n timeout?: number;\n};\n\nexport function CodeBlockCopyButton({\n onCopy,\n onError,\n timeout = 2000,\n children,\n className,\n ...props\n}: CodeBlockCopyButtonProps) {\n const {data, value} = useContext(CodeBlockContext);\n const code = data.find((item) => item.language === value)?.code ?? '';\n\n return (\n <CodeCopyButton\n content={code}\n onCopy={() => onCopy?.()}\n onError={onError}\n timeout={timeout}\n className={className}\n {...props}\n >\n {children}\n </CodeCopyButton>\n );\n}\n\ntype CodeBlockFallbackProps = Omit<HTMLAttributes<HTMLDivElement>, 'children'> & {\n children: string;\n};\n\nfunction CodeBlockFallback({children, className, ...props}: CodeBlockFallbackProps) {\n const lines = children?.toString().split('\\n') ?? [];\n return (\n <pre\n className={cn('w-full font-code', className)}\n {...(props as HTMLAttributes<HTMLPreElement>)}\n >\n <code>\n {lines.map((line) => {\n const isDiffRemove = line.trim().startsWith('-');\n const isDiffAdd = line.trim().startsWith('+');\n const diffClass = isDiffRemove ? 'diff remove' : isDiffAdd ? 'diff add' : '';\n\n return (\n <span className={cn('line', diffClass)} key={line}>\n {line}\n </span>\n );\n })}\n </code>\n </pre>\n );\n}\n\nexport type CodeBlockBodyProps = Omit<HTMLAttributes<HTMLDivElement>, 'children'> & {\n children: (item: CodeBlockData) => ReactNode;\n};\n\nexport function CodeBlockBody({children, ...props}: CodeBlockBodyProps) {\n const {data} = useContext(CodeBlockContext);\n\n return (\n <div {...props}>\n {data.map((item, index) => (\n <div key={item.language || index}>{children(item)}</div>\n ))}\n </div>\n );\n}\n\nexport type CodeBlockItemProps = HTMLAttributes<HTMLDivElement> & {\n value: string;\n lineNumbers?: boolean;\n};\n\nexport function CodeBlockItem({\n children,\n lineNumbers = true,\n className,\n value,\n ...props\n}: CodeBlockItemProps) {\n const {value: activeValue} = useContext(CodeBlockContext);\n\n if (value !== activeValue) {\n return null;\n }\n\n return (\n <div\n className={cn('flex w-full shrink-0 items-start overflow-clip px-4 pb-4 pt-0', className)}\n {...props}\n >\n <div\n className={cn(\n 'flex min-h-0 min-w-0 flex-1 shrink-0 rounded-8 border border-border-contrast-bottom bg-background-neutral-base dark:bg-background-contrast-subtle font-code',\n '[&_pre]:py-12 [&_pre]:font-code',\n '[&_code]:w-full [&_code]:grid [&_code]:overflow-x-auto [&_code]:bg-transparent [&_code]:font-code [&_code]:text-xs [&_code]:leading-20 [&_code]:text-foreground-neutral-base',\n '[&_.line]:block [&_.line]:px-12 [&_.line]:w-full [&_.line]:relative [&_.line]:font-code [&_.line]:min-h-[1.25rem]',\n lineNumbers &&\n '[&_code]:[counter-reset:line] [&_code]:[counter-increment:line_0] [&_.line]:before:content-[counter(line)] [&_.line]:before:inline-block [&_.line]:before:[counter-increment:line] [&_.line]:before:w-16 [&_.line]:before:mr-16 [&_.line]:before:text-xs [&_.line]:before:text-right [&_.line]:before:text-foreground-neutral-subtle [&_.line]:before:font-code [&_.line]:before:select-none',\n '[&_.line.diff]:after:absolute [&_.line.diff]:after:left-0 [&_.line.diff]:after:top-0 [&_.line.diff]:after:bottom-0 [&_.line.diff]:after:w-1',\n '[&_.line.diff.add]:bg-emerald-50 [&_.line.diff.add]:text-green-700 [&_.line.diff.add]:after:bg-emerald-500',\n '[&_.line.diff.remove]:bg-rose-50 [&_.line.diff.remove]:text-red-700 [&_.line.diff.remove]:after:bg-rose-500',\n 'dark:[&_.line.diff.add]:bg-emerald-500/10 dark:[&_.line.diff.add]:text-emerald-400',\n 'dark:[&_.line.diff.remove]:bg-rose-500/10 dark:[&_.line.diff.remove]:text-rose-400',\n )}\n >\n {children}\n </div>\n </div>\n );\n}\n\nexport type CodeBlockContentProps = Omit<HTMLAttributes<HTMLDivElement>, 'children'> & {\n themes?: {\n light: string;\n dark: string;\n };\n language?: BundledLanguage;\n syntaxHighlighting?: boolean;\n children: string;\n};\n\nexport function CodeBlockContent({\n children,\n themes = {\n light: 'vitesse-light',\n dark: 'vitesse-dark',\n },\n language = 'typescript',\n syntaxHighlighting = false,\n ...props\n}: CodeBlockContentProps) {\n const resolvedTheme = useResolvedTheme();\n\n useShikiStyleInjection(syntaxHighlighting);\n\n const {highlightedCode, isLoading} = useShikiHighlight({\n code: children,\n lang: language,\n themes,\n resolvedTheme,\n syntaxHighlighting,\n });\n\n if (!syntaxHighlighting || isLoading) {\n return <CodeBlockFallback {...props}>{children}</CodeBlockFallback>;\n }\n\n return (\n <CodeContent\n code={children}\n highlightedCode={highlightedCode}\n isLoading={isLoading}\n syntaxHighlighting={syntaxHighlighting}\n {...props}\n />\n );\n}\n"],"names":["useControllableState","CodeContent","CodeCopyButton","useResolvedTheme","useShikiHighlight","useShikiStyleInjection","createContext","useContext","cn","CodeBlockContext","value","undefined","onValueChange","data","CodeBlock","controlledValue","controlledOnValueChange","defaultValue","className","props","defaultProp","prop","onChange","Provider","div","CodeBlockHeader","CodeBlockFiles","children","map","item","index","language","CodeBlockFilename","activeValue","CodeBlockCopyButton","onCopy","onError","timeout","code","find","content","CodeBlockFallback","lines","toString","split","pre","line","isDiffRemove","trim","startsWith","isDiffAdd","diffClass","span","CodeBlockBody","CodeBlockItem","lineNumbers","CodeBlockContent","themes","light","dark","syntaxHighlighting","resolvedTheme","highlightedCode","isLoading","lang"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/code-block/code-block.stories.tsx"],"sourcesContent":["import type {Meta, StoryObj} from '@storybook/react';\nimport {\n CodeBlock,\n CodeBlockBody,\n CodeBlockContent,\n CodeBlockCopyButton,\n CodeBlockFilename,\n CodeBlockFiles,\n CodeBlockFooter,\n CodeBlockHeader,\n CodeBlockItem,\n} from 'components/code-block';\nimport {CodeTabs} from 'components/code-block/code-tabs';\n\nconst meta = {\n title: 'Components/CodeBlock',\n component: CodeBlock,\n parameters: {\n layout: 'padded',\n },\n} satisfies Meta<typeof CodeBlock>;\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\nconst exampleCode = `jobs:\n build:\n runs-on: ubuntu-latest\n steps:\n - uses: actions/checkout@v3\n - name: Build\n run: npm run build`;\n\nconst diffCode = `jobs:\n build:\n - runs-on: ubuntu-latest\n + runs-on: shipfox-2vcpu-ubuntu-2404`;\n\nexport const Default: Story = {\n args: {\n data: [\n {\n language: 'yaml',\n filename: '.github/workflows/<workflow-name>.yml',\n code: exampleCode,\n },\n ],\n defaultValue: 'yaml',\n },\n render: (args) => (\n <CodeBlock {...args}>\n <CodeBlockHeader>\n <CodeBlockFiles>\n {(item) => <CodeBlockFilename value={item.language}>{item.filename}</CodeBlockFilename>}\n </CodeBlockFiles>\n <CodeBlockCopyButton />\n </CodeBlockHeader>\n <CodeBlockBody>\n {(item) => (\n <CodeBlockItem value={item.language}>\n <CodeBlockContent language={item.language}>{item.code}</CodeBlockContent>\n </CodeBlockItem>\n )}\n </CodeBlockBody>\n </CodeBlock>\n ),\n};\n\nexport const WithDiff: Story = {\n args: {\n data: [\n {\n language: 'yaml',\n filename: '.github/workflows/<workflow-name>.yml',\n code: diffCode,\n },\n ],\n defaultValue: 'yaml',\n },\n render: (args) => (\n <CodeBlock {...args}>\n <CodeBlockHeader>\n <CodeBlockFiles>\n {(item) => <CodeBlockFilename value={item.language}>{item.filename}</CodeBlockFilename>}\n </CodeBlockFiles>\n <CodeBlockCopyButton />\n </CodeBlockHeader>\n <CodeBlockBody>\n {(item) => (\n <CodeBlockItem value={item.language}>\n <CodeBlockContent language={item.language}>{item.code}</CodeBlockContent>\n </CodeBlockItem>\n )}\n </CodeBlockBody>\n </CodeBlock>\n ),\n};\n\nexport const WithFooterRunning: Story = {\n args: {\n data: [\n {\n language: 'yaml',\n filename: '.github/workflows/<workflow-name>.yml',\n code: diffCode,\n },\n ],\n defaultValue: 'yaml',\n },\n render: (args) => (\n <CodeBlock {...args}>\n <CodeBlockHeader>\n <CodeBlockFiles>\n {(item) => <CodeBlockFilename value={item.language}>{item.filename}</CodeBlockFilename>}\n </CodeBlockFiles>\n <CodeBlockCopyButton />\n </CodeBlockHeader>\n <CodeBlockBody>\n {(item) => (\n <CodeBlockItem value={item.language}>\n <CodeBlockContent language={item.language}>{item.code}</CodeBlockContent>\n </CodeBlockItem>\n )}\n </CodeBlockBody>\n <CodeBlockFooter\n state=\"running\"\n message=\"Waiting for Shipfox runner event…\"\n description=\"This usually takes 30-60 seconds after you commit the workflow file.\"\n />\n </CodeBlock>\n ),\n};\n\nexport const WithFooterDone: Story = {\n args: {\n data: [\n {\n language: 'yaml',\n filename: '.github/workflows/<workflow-name>.yml',\n code: diffCode,\n },\n ],\n defaultValue: 'yaml',\n },\n render: (args) => (\n <CodeBlock {...args}>\n <CodeBlockHeader>\n <CodeBlockFiles>\n {(item) => <CodeBlockFilename value={item.language}>{item.filename}</CodeBlockFilename>}\n </CodeBlockFiles>\n <CodeBlockCopyButton />\n </CodeBlockHeader>\n <CodeBlockBody>\n {(item) => (\n <CodeBlockItem value={item.language}>\n <CodeBlockContent language={item.language}>{item.code}</CodeBlockContent>\n </CodeBlockItem>\n )}\n </CodeBlockBody>\n <CodeBlockFooter state=\"done\" message=\"Runner connected!\" />\n </CodeBlock>\n ),\n};\n\nconst multipleFilesCode = {\n 'src/utils/format.ts': `export function formatDate(date: Date): string {\n return new Intl.DateTimeFormat('en-US', {\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n }).format(date);\n}\n\nexport function formatCurrency(amount: number): string {\n return new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD',\n }).format(amount);\n}`,\n 'src/api/client.ts': `import type {User} from './types';\n\nexport class ApiClient {\n private baseUrl: string;\n\n constructor(baseUrl: string) {\n this.baseUrl = baseUrl;\n }\n\n async getUser(id: string): Promise<User> {\n const response = await fetch(\\`\\${this.baseUrl}/users/\\${id}\\`);\n if (!response.ok) {\n throw new Error('Failed to fetch user');\n }\n return response.json();\n }\n}`,\n 'src/components/Button.tsx': `import type {ComponentProps} from 'react';\n\nexport function Button({\n children,\n variant = 'primary',\n ...props\n}: ComponentProps<'button'> & {\n variant?: 'primary' | 'secondary';\n}) {\n return (\n <button\n className={\\`btn btn-\\${variant}\\`}\n {...props}\n >\n {children}\n </button>\n );\n}`,\n};\n\nexport const MultipleFiles: Story = {\n args: {\n data: [],\n defaultValue: '',\n },\n render: () => (\n <CodeTabs\n codes={multipleFilesCode}\n defaultValue=\"src/api/client.ts\"\n syntaxHighlighting={true}\n lang=\"typescript\"\n lineNumbers={true}\n />\n ),\n};\n\nexport const WithoutLineNumbers: Story = {\n args: {\n data: [\n {\n language: 'yaml',\n filename: '.github/workflows/<workflow-name>.yml',\n code: exampleCode,\n },\n ],\n defaultValue: 'yaml',\n },\n render: (args) => (\n <CodeBlock {...args}>\n <CodeBlockHeader>\n <CodeBlockFiles>\n {(item) => <CodeBlockFilename value={item.language}>{item.filename}</CodeBlockFilename>}\n </CodeBlockFiles>\n <CodeBlockCopyButton />\n </CodeBlockHeader>\n <CodeBlockBody>\n {(item) => (\n <CodeBlockItem value={item.language} lineNumbers={false}>\n <CodeBlockContent language={item.language}>{item.code}</CodeBlockContent>\n </CodeBlockItem>\n )}\n </CodeBlockBody>\n </CodeBlock>\n ),\n};\n\nconst npmCode = `npm install @shipfox/tooling`;\nconst yarnCode = `yarn add @shipfox/tooling`;\nconst pnpmCode = `pnpm add @shipfox/tooling`;\n\nexport const Snippet: Story = {\n args: {\n data: [],\n defaultValue: '',\n },\n render: () => (\n <CodeTabs\n codes={{\n npm: npmCode,\n yarn: yarnCode,\n pnpm: pnpmCode,\n }}\n defaultValue=\"npm\"\n />\n ),\n};\n\nconst syntaxHighlightingCode = {\n 'index.ts': `export function hello(name: string = 'World'): void {\n // Say hello to the provided name\n console.log(\\`Hello, \\${name}!\\`);\n}\n\nexport function greetEveryone(names: string[]): void {\n for (const name of names) {\n hello(name);\n }\n}\n\nexport type Greeting = {\n language: string;\n message: string;\n};\n\nexport const greetings: Greeting[] = [\n { language: 'en', message: 'Hello' },\n { language: 'fr', message: 'Bonjour' },\n { language: 'es', message: 'Hola' },\n { language: 'de', message: 'Hallo' },\n];\n\nexport function printGreetings(): void {\n for (const { language, message } of greetings) {\n console.log(\\`\\${message}, \\${language}!\\`);\n }\n}`,\n};\n\nexport const SyntaxHighlighting: StoryObj<typeof CodeTabs> = {\n args: {\n codes: syntaxHighlightingCode,\n defaultValue: 'index.ts',\n syntaxHighlighting: true,\n lang: 'typescript',\n },\n render: (args) => <CodeTabs {...args} />,\n};\n"],"names":["CodeBlock","CodeBlockBody","CodeBlockContent","CodeBlockCopyButton","CodeBlockFilename","CodeBlockFiles","CodeBlockFooter","CodeBlockHeader","CodeBlockItem","CodeTabs","meta","title","component","parameters","layout","exampleCode","diffCode","Default","args","data","language","filename","code","defaultValue","render","item","value","WithDiff","WithFooterRunning","state","message","description","WithFooterDone","multipleFilesCode","MultipleFiles","codes","syntaxHighlighting","lang","lineNumbers","WithoutLineNumbers","npmCode","yarnCode","pnpmCode","Snippet","npm","yarn","pnpm","syntaxHighlightingCode","SyntaxHighlighting"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"code-content.d.ts","sourceRoot":"","sources":["../../../src/components/code-block/code-content.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,OAAO,CAAC;AAG1C,KAAK,gBAAgB,GAAG,cAAc,CAAC,WAAW,CAAC,GAAG;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,wBAAgB,WAAW,CAAC,EAC1B,IAAI,EACJ,eAAe,EACf,SAAS,EACT,kBAAkB,EAClB,WAAmB,EACnB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,gBAAgB,2CA2ClB"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/code-block/code-content.tsx"],"sourcesContent":["import type {HTMLAttributes} from 'react';\nimport {cn} from 'utils/cn';\n\ntype CodeContentProps = HTMLAttributes<HTMLElement> & {\n code: string;\n highlightedCode?: string;\n isLoading: boolean;\n syntaxHighlighting: boolean;\n lineNumbers?: boolean;\n};\n\nexport function CodeContent({\n code,\n highlightedCode,\n isLoading,\n syntaxHighlighting,\n lineNumbers = false,\n className,\n ...props\n}: CodeContentProps) {\n const shouldShowHighlighted = syntaxHighlighting && !isLoading && highlightedCode;\n\n if (shouldShowHighlighted) {\n return (\n <div\n className={cn(\n 'shiki-override w-full overflow-x-auto font-code [&_pre]:m-0 [&_pre]:p-0 [&_pre]:bg-transparent [&_pre]:font-code [&_code]:font-code [&_code]:bg-transparent [&_code]:text-xs [&_code]:leading-20 [&_code]:text-foreground-neutral-base [&_code]:grid',\n lineNumbers &&\n '[&_code]:[counter-reset:line] [&_code]:[counter-increment:line_0] [&_.line]:before:content-[counter(line)] [&_.line]:before:inline-block [&_.line]:before:[counter-increment:line] [&_.line]:before:w-16 [&_.line]:before:mr-16 [&_.line]:before:text-xs [&_.line]:before:text-right [&_.line]:before:text-foreground-neutral-subtle [&_.line]:before:font-code [&_.line]:before:select-none',\n '[&_.line]:block [&_.line]:px-12 [&_.line]:w-full [&_.line]:relative [&_.line]:font-code [&_.line]:text-xs [&_.line]:leading-20 [&_.line]:min-h-[1.25rem]',\n className,\n )}\n // biome-ignore lint/security/noDangerouslySetInnerHtml: Shiki outputs HTML for syntax highlighting\n dangerouslySetInnerHTML={{__html: highlightedCode}}\n {...props}\n />\n );\n }\n\n const lines = code.split('\\n');\n\n return (\n <pre className={cn('m-0 p-0 bg-transparent font-code', className)} {...props}>\n <code\n className={cn(\n 'w-full overflow-x-auto bg-transparent font-code text-xs leading-20 text-foreground-neutral-base',\n 'grid',\n lineNumbers &&\n '[counter-reset:line] [counter-increment:line_0] [&_.line]:before:content-[counter(line)] [&_.line]:before:inline-block [&_.line]:before:[counter-increment:line] [&_.line]:before:w-16 [&_.line]:before:mr-16 [&_.line]:before:text-xs [&_.line]:before:text-right [&_.line]:before:text-foreground-neutral-subtle [&_.line]:before:font-code [&_.line]:before:select-none',\n )}\n >\n {lines.map((line, index) => (\n <span\n className=\"line px-12 w-full relative font-code text-xs leading-20\"\n key={`${index}-${line}`}\n >\n {line}\n </span>\n ))}\n </code>\n </pre>\n );\n}\n"],"names":["cn","CodeContent","code","highlightedCode","isLoading","syntaxHighlighting","lineNumbers","className","props","shouldShowHighlighted","div","dangerouslySetInnerHTML","__html","lines","split","pre","map","line","index","span"],"mappings":";AACA,SAAQA,EAAE,QAAO,WAAW;AAU5B,OAAO,SAASC,YAAY,EAC1BC,IAAI,EACJC,eAAe,EACfC,SAAS,EACTC,kBAAkB,EAClBC,cAAc,KAAK,EACnBC,SAAS,EACT,GAAGC,OACc;IACjB,MAAMC,wBAAwBJ,sBAAsB,CAACD,aAAaD;IAElE,IAAIM,uBAAuB;QACzB,qBACE,KAACC;YACCH,WAAWP,GACT,wPACAM,eACE,gYACF,4JACAC;YAEF,mGAAmG;YACnGI,yBAAyB;gBAACC,QAAQT;YAAe;YAChD,GAAGK,KAAK;;IAGf;IAEA,MAAMK,QAAQX,KAAKY,KAAK,CAAC;IAEzB,qBACE,KAACC;QAAIR,WAAWP,GAAG,oCAAoCO;QAAa,GAAGC,KAAK;kBAC1E,cAAA,KAACN;YACCK,WAAWP,GACT,mGACA,QACAM,eACE;sBAGHO,MAAMG,GAAG,CAAC,CAACC,MAAMC,sBAChB,KAACC;oBACCZ,WAAU;8BAGTU;mBAFI,GAAGC,MAAM,CAAC,EAAED,MAAM;;;AAQnC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"code-copy-button.d.ts","sourceRoot":"","sources":["../../../src/components/code-block/code-copy-button.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,OAAO,CAAC;AAI1C,KAAK,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,GAAG;IACpE,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,CAAC;AAEF,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,MAAM,EACN,OAAO,EACP,OAAc,EACd,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,mBAAmB,2CAkDrB"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/code-block/code-copy-button.tsx"],"sourcesContent":["import {Icon} from 'components/icon';\nimport {useCopyToClipboard} from 'hooks/useCopyToClipboard';\nimport type {ComponentProps} from 'react';\nimport {useEffect, useRef, useState} from 'react';\nimport {cn} from 'utils/cn';\n\ntype CodeCopyButtonProps = Omit<ComponentProps<'button'>, 'onCopy'> & {\n content: string;\n onCopy?: (content: string) => void;\n onError?: (error: Error) => void;\n timeout?: number;\n children?: React.ReactNode;\n};\n\nexport function CodeCopyButton({\n content,\n onCopy,\n onError,\n timeout = 2000,\n children,\n className,\n ...props\n}: CodeCopyButtonProps) {\n const [isCopied, setIsCopied] = useState(false);\n const timeoutRef = useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n\n const {copy} = useCopyToClipboard({\n text: content,\n onCopy: () => {\n setIsCopied(true);\n onCopy?.(content);\n\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n\n timeoutRef.current = setTimeout(() => {\n setIsCopied(false);\n }, timeout);\n },\n });\n\n useEffect(() => {\n return () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n };\n }, []);\n\n const handleClick = async () => {\n try {\n await copy();\n } catch (error) {\n onError?.(error instanceof Error ? error : new Error('Failed to copy'));\n }\n };\n\n return (\n <button\n type=\"button\"\n aria-label={isCopied ? 'Copied' : 'Copy to clipboard'}\n className={cn(\n 'flex shrink-0 cursor-pointer items-center justify-center rounded-6 bg-transparent text-foreground-neutral-muted transition-colors hover:bg-background-components-hover active:bg-background-components-pressed p-4',\n className,\n )}\n onClick={handleClick}\n {...props}\n >\n {children ?? <Icon name={isCopied ? 'check' : 'copy'} className=\"size-16\" />}\n </button>\n );\n}\n"],"names":["Icon","useCopyToClipboard","useEffect","useRef","useState","cn","CodeCopyButton","content","onCopy","onError","timeout","children","className","props","isCopied","setIsCopied","timeoutRef","undefined","copy","text","current","clearTimeout","setTimeout","handleClick","error","Error","button","type","aria-label","onClick","name"],"mappings":";AAAA,SAAQA,IAAI,QAAO,kBAAkB;AACrC,SAAQC,kBAAkB,QAAO,2BAA2B;AAE5D,SAAQC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAO,QAAQ;AAClD,SAAQC,EAAE,QAAO,WAAW;AAU5B,OAAO,SAASC,eAAe,EAC7BC,OAAO,EACPC,MAAM,EACNC,OAAO,EACPC,UAAU,IAAI,EACdC,QAAQ,EACRC,SAAS,EACT,GAAGC,OACiB;IACpB,MAAM,CAACC,UAAUC,YAAY,GAAGX,SAAS;IACzC,MAAMY,aAAab,OAAkDc;IAErE,MAAM,EAACC,IAAI,EAAC,GAAGjB,mBAAmB;QAChCkB,MAAMZ;QACNC,QAAQ;YACNO,YAAY;YACZP,SAASD;YAET,IAAIS,WAAWI,OAAO,EAAE;gBACtBC,aAAaL,WAAWI,OAAO;YACjC;YAEAJ,WAAWI,OAAO,GAAGE,WAAW;gBAC9BP,YAAY;YACd,GAAGL;QACL;IACF;IAEAR,UAAU;QACR,OAAO;YACL,IAAIc,WAAWI,OAAO,EAAE;gBACtBC,aAAaL,WAAWI,OAAO;YACjC;QACF;IACF,GAAG,EAAE;IAEL,MAAMG,cAAc;QAClB,IAAI;YACF,MAAML;QACR,EAAE,OAAOM,OAAO;YACdf,UAAUe,iBAAiBC,QAAQD,QAAQ,IAAIC,MAAM;QACvD;IACF;IAEA,qBACE,KAACC;QACCC,MAAK;QACLC,cAAYd,WAAW,WAAW;QAClCF,WAAWP,GACT,sNACAO;QAEFiB,SAASN;QACR,GAAGV,KAAK;kBAERF,0BAAY,KAACX;YAAK8B,MAAMhB,WAAW,UAAU;YAAQF,WAAU;;;AAGtE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"code-tabs.d.ts","sourceRoot":"","sources":["../../../src/components/code-block/code-tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,sBAAsB,CAAC;AAO7C,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,OAAO,CAAC;AAI1C,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,GAAG;IAC/E,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAqGF,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,IAAa,EACb,MAGC,EACD,SAAS,EACT,YAAY,EACZ,KAAK,EAAE,eAAe,EACtB,aAAa,EAAE,uBAAuB,EACtC,UAAiB,EACjB,MAAM,EACN,kBAA0B,EAC1B,WAAmB,EACnB,GAAG,KAAK,EACT,EAAE,aAAa,2CA8Bf"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/code-block/code-tabs.tsx"],"sourcesContent":["import * as Tabs from '@radix-ui/react-tabs';\nimport {useControllableState} from '@radix-ui/react-use-controllable-state';\nimport {CodeContent} from 'components/code-block/code-content';\nimport {CodeCopyButton} from 'components/code-block/code-copy-button';\nimport {useResolvedTheme} from 'hooks/useResolvedTheme';\nimport {useShikiHighlightMultiple} from 'hooks/useShikiHighlight';\nimport {useShikiStyleInjection} from 'hooks/useShikiStyleInjection';\nimport type {ComponentProps} from 'react';\nimport {useMemo} from 'react';\nimport {cn} from 'utils/cn';\n\nexport type CodeTabsProps = Omit<ComponentProps<typeof Tabs.Root>, 'children'> & {\n codes: Record<string, string>;\n lang?: string;\n themes?: {\n light: string;\n dark: string;\n };\n copyButton?: boolean;\n onCopy?: (content: string) => void;\n syntaxHighlighting?: boolean;\n lineNumbers?: boolean;\n};\n\nfunction CodeTabsContent({\n codes,\n lang = 'bash',\n themes = {\n light: 'vitesse-light',\n dark: 'vitesse-dark',\n },\n copyButton = true,\n onCopy,\n syntaxHighlighting = false,\n lineNumbers = false,\n activeValue,\n}: {\n codes: Record<string, string>;\n lang?: string;\n themes?: {light: string; dark: string};\n copyButton?: boolean;\n onCopy?: (content: string) => void;\n syntaxHighlighting?: boolean;\n lineNumbers?: boolean;\n activeValue: string;\n}) {\n const resolvedTheme = useResolvedTheme();\n const codesKeys = useMemo(() => Object.keys(codes), [codes]);\n\n useShikiStyleInjection(syntaxHighlighting);\n\n const {highlightedCodes, isLoading} = useShikiHighlightMultiple({\n codes,\n lang,\n themes,\n resolvedTheme,\n syntaxHighlighting,\n });\n\n const activeCode = codes[activeValue] ?? '';\n\n return (\n <>\n <Tabs.List\n className={cn(\n 'relative flex w-full flex-row items-center justify-between gap-12 overflow-x-auto [scrollbar-width:none] [&::-webkit-scrollbar]:hidden bg-background-components-pressed dark:bg-background-contrast-base px-16 py-8',\n 'border-b border-border-contrast-bottom',\n 'after:absolute after:bottom-0 after:left-0 after:right-0 after:h-px',\n 'after:bg-border-neutral-base',\n 'dark:after:bg-border-contrast-top',\n 'after:shadow-separator-inset',\n )}\n >\n <div className=\"flex flex-row gap-12\">\n {codesKeys.map((code) => (\n <Tabs.Trigger\n key={code}\n value={code}\n className={cn(\n 'relative px-8 py-4 text-xs leading-20 font-medium text-foreground-neutral-muted transition-colors',\n 'data-[state=active]:text-foreground-neutral-base',\n 'hover:text-foreground-neutral-base',\n 'data-[state=active]:z-10',\n 'data-[state=active]:after:absolute data-[state=active]:after:-bottom-9 data-[state=active]:after:left-0 data-[state=active]:after:right-0',\n 'data-[state=active]:after:h-2 data-[state=active]:after:bg-foreground-neutral-base',\n )}\n >\n {code}\n </Tabs.Trigger>\n ))}\n </div>\n\n {copyButton && <CodeCopyButton content={activeCode} onCopy={onCopy} className=\"shrink-0\" />}\n </Tabs.List>\n <div className=\"w-full px-4 pb-4 pt-8\">\n {Object.entries(codes).map(([code, rawCode]) => (\n <Tabs.Content key={code} value={code} className=\"w-full\">\n <div\n className={cn(\n 'flex min-h-0 min-w-0 w-full shrink-0 rounded-8 border border-border-contrast-bottom bg-background-neutral-base dark:bg-background-contrast-subtle font-code',\n '[&_pre]:py-12 [&_pre]:font-code',\n '[&_pre]:m-0 [&_pre]:px-0 [&_pre]:bg-transparent',\n '[&_code]:w-full [&_code]:overflow-x-auto [&_code]:bg-transparent [&_code]:font-code [&_code]:text-xs [&_code]:leading-20 [&_code]:text-foreground-neutral-base',\n lineNumbers &&\n '[&_code]:grid [&_code]:[counter-reset:line] [&_code]:[counter-increment:line_0] [&_.line]:before:content-[counter(line)] [&_.line]:before:inline-block [&_.line]:before:[counter-increment:line] [&_.line]:before:w-16 [&_.line]:before:mr-16 [&_.line]:before:text-xs [&_.line]:before:text-right [&_.line]:before:text-foreground-neutral-subtle [&_.line]:before:font-code [&_.line]:before:select-none',\n '[&_.line]:block [&_.line]:px-12 [&_.line]:w-full [&_.line]:relative [&_.line]:font-code [&_.line]:min-h-[1.25rem]',\n )}\n >\n <CodeContent\n code={rawCode}\n highlightedCode={highlightedCodes[code]}\n isLoading={isLoading}\n syntaxHighlighting={syntaxHighlighting}\n lineNumbers={lineNumbers}\n />\n </div>\n </Tabs.Content>\n ))}\n </div>\n </>\n );\n}\n\nexport function CodeTabs({\n codes,\n lang = 'bash',\n themes = {\n light: 'vitesse-light',\n dark: 'vitesse-dark',\n },\n className,\n defaultValue,\n value: controlledValue,\n onValueChange: controlledOnValueChange,\n copyButton = true,\n onCopy,\n syntaxHighlighting = false,\n lineNumbers = false,\n ...props\n}: CodeTabsProps) {\n const firstKey = useMemo(() => Object.keys(codes)[0] ?? '', [codes]);\n const [value, onValueChange] = useControllableState({\n defaultProp: defaultValue ?? firstKey,\n prop: controlledValue,\n onChange: controlledOnValueChange,\n });\n\n return (\n <Tabs.Root\n className={cn(\n 'w-full overflow-hidden rounded-12 bg-background-components-pressed dark:bg-background-contrast-base shadow-button-neutral',\n className,\n )}\n value={value}\n onValueChange={onValueChange}\n {...props}\n >\n <CodeTabsContent\n codes={codes}\n lang={lang}\n themes={themes}\n copyButton={copyButton}\n onCopy={onCopy}\n syntaxHighlighting={syntaxHighlighting}\n lineNumbers={lineNumbers}\n activeValue={value ?? firstKey}\n />\n </Tabs.Root>\n );\n}\n"],"names":["Tabs","useControllableState","CodeContent","CodeCopyButton","useResolvedTheme","useShikiHighlightMultiple","useShikiStyleInjection","useMemo","cn","CodeTabsContent","codes","lang","themes","light","dark","copyButton","onCopy","syntaxHighlighting","lineNumbers","activeValue","resolvedTheme","codesKeys","Object","keys","highlightedCodes","isLoading","activeCode","List","className","div","map","code","Trigger","value","content","entries","rawCode","Content","highlightedCode","CodeTabs","defaultValue","controlledValue","onValueChange","controlledOnValueChange","props","firstKey","defaultProp","prop","onChange","Root"],"mappings":";AAAA,YAAYA,UAAU,uBAAuB;AAC7C,SAAQC,oBAAoB,QAAO,yCAAyC;AAC5E,SAAQC,WAAW,QAAO,qCAAqC;AAC/D,SAAQC,cAAc,QAAO,yCAAyC;AACtE,SAAQC,gBAAgB,QAAO,yBAAyB;AACxD,SAAQC,yBAAyB,QAAO,0BAA0B;AAClE,SAAQC,sBAAsB,QAAO,+BAA+B;AAEpE,SAAQC,OAAO,QAAO,QAAQ;AAC9B,SAAQC,EAAE,QAAO,WAAW;AAe5B,SAASC,gBAAgB,EACvBC,KAAK,EACLC,OAAO,MAAM,EACbC,SAAS;IACPC,OAAO;IACPC,MAAM;AACR,CAAC,EACDC,aAAa,IAAI,EACjBC,MAAM,EACNC,qBAAqB,KAAK,EAC1BC,cAAc,KAAK,EACnBC,WAAW,EAUZ;IACC,MAAMC,gBAAgBhB;IACtB,MAAMiB,YAAYd,QAAQ,IAAMe,OAAOC,IAAI,CAACb,QAAQ;QAACA;KAAM;IAE3DJ,uBAAuBW;IAEvB,MAAM,EAACO,gBAAgB,EAAEC,SAAS,EAAC,GAAGpB,0BAA0B;QAC9DK;QACAC;QACAC;QACAQ;QACAH;IACF;IAEA,MAAMS,aAAahB,KAAK,CAACS,YAAY,IAAI;IAEzC,qBACE;;0BACE,MAACnB,KAAK2B,IAAI;gBACRC,WAAWpB,GACT,uNACA,0CACA,uEACA,gCACA,qCACA;;kCAGF,KAACqB;wBAAID,WAAU;kCACZP,UAAUS,GAAG,CAAC,CAACC,qBACd,KAAC/B,KAAKgC,OAAO;gCAEXC,OAAOF;gCACPH,WAAWpB,GACT,qGACA,oDACA,sCACA,4BACA,6IACA;0CAGDuB;+BAXIA;;oBAgBVhB,4BAAc,KAACZ;wBAAe+B,SAASR;wBAAYV,QAAQA;wBAAQY,WAAU;;;;0BAEhF,KAACC;gBAAID,WAAU;0BACZN,OAAOa,OAAO,CAACzB,OAAOoB,GAAG,CAAC,CAAC,CAACC,MAAMK,QAAQ,iBACzC,KAACpC,KAAKqC,OAAO;wBAAYJ,OAAOF;wBAAMH,WAAU;kCAC9C,cAAA,KAACC;4BACCD,WAAWpB,GACT,+JACA,mCACA,mDACA,kKACAU,eACE,8YACF;sCAGF,cAAA,KAAChB;gCACC6B,MAAMK;gCACNE,iBAAiBd,gBAAgB,CAACO,KAAK;gCACvCN,WAAWA;gCACXR,oBAAoBA;gCACpBC,aAAaA;;;uBAjBAa;;;;AAyB7B;AAEA,OAAO,SAASQ,SAAS,EACvB7B,KAAK,EACLC,OAAO,MAAM,EACbC,SAAS;IACPC,OAAO;IACPC,MAAM;AACR,CAAC,EACDc,SAAS,EACTY,YAAY,EACZP,OAAOQ,eAAe,EACtBC,eAAeC,uBAAuB,EACtC5B,aAAa,IAAI,EACjBC,MAAM,EACNC,qBAAqB,KAAK,EAC1BC,cAAc,KAAK,EACnB,GAAG0B,OACW;IACd,MAAMC,WAAWtC,QAAQ,IAAMe,OAAOC,IAAI,CAACb,MAAM,CAAC,EAAE,IAAI,IAAI;QAACA;KAAM;IACnE,MAAM,CAACuB,OAAOS,cAAc,GAAGzC,qBAAqB;QAClD6C,aAAaN,gBAAgBK;QAC7BE,MAAMN;QACNO,UAAUL;IACZ;IAEA,qBACE,KAAC3C,KAAKiD,IAAI;QACRrB,WAAWpB,GACT,6HACAoB;QAEFK,OAAOA;QACPS,eAAeA;QACd,GAAGE,KAAK;kBAET,cAAA,KAACnC;YACCC,OAAOA;YACPC,MAAMA;YACNC,QAAQA;YACRG,YAAYA;YACZC,QAAQA;YACRC,oBAAoBA;YACpBC,aAAaA;YACbC,aAAac,SAASY;;;AAI9B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/code-block/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/code-block/index.ts"],"sourcesContent":["export * from './code-block';\nexport * from './code-block-footer';\nexport * from './code-tabs';\n"],"names":[],"mappings":"AAAA,cAAc,eAAe;AAC7B,cAAc,sBAAsB;AACpC,cAAc,cAAc"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"confetti.d.ts","sourceRoot":"","sources":["../../../src/components/confetti/confetti.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,IAAI,qBAAqB,EAEtC,OAAO,IAAI,eAAe,EAC3B,MAAM,iBAAiB,CAAC;AAGzB,OAAO,KAAK,EAAC,cAAc,EAAE,SAAS,EAAC,MAAM,OAAO,CAAC;AAWrD,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACpD,CAAC;AAIF,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,IAAI,CAAC;AAE7C,MAAM,MAAM,aAAa,GAAG,cAAc,CAAC,QAAQ,CAAC,GAAG;IACrD,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,aAAa,CAAC,EAAE,qBAAqB,CAAC;IACtC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC;AA4EF,eAAO,MAAM,QAAQ,oHAAoB,CAAC;AAE1C,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC,QAAQ,CAAC,GAAG;IAC3D,OAAO,CAAC,EAAE,eAAe,GAAG,qBAAqB,GAAG;QAAC,MAAM,CAAC,EAAE,iBAAiB,CAAA;KAAC,CAAC;CAClF,CAAC;AAEF,wBAAgB,cAAc,CAAC,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAC,EAAE,mBAAmB,2CA0BzF"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/confetti/confetti.tsx"],"sourcesContent":["import type {\n GlobalOptions as ConfettiGlobalOptions,\n CreateTypes as ConfettiInstance,\n Options as ConfettiOptions,\n} from 'canvas-confetti';\nimport confetti from 'canvas-confetti';\nimport {Button} from 'components/button';\nimport type {ComponentProps, ReactNode} from 'react';\nimport {\n createContext,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n} from 'react';\n\ntype ConfettiApi = {\n fire: (options?: ConfettiOptions) => Promise<void>;\n};\n\nconst ConfettiContext = createContext<ConfettiApi | null>(null);\n\nexport type ConfettiRef = ConfettiApi | null;\n\nexport type ConfettiProps = ComponentProps<'canvas'> & {\n options?: ConfettiOptions;\n globalOptions?: ConfettiGlobalOptions;\n manualstart?: boolean;\n children?: ReactNode;\n};\n\nconst ConfettiComponent = forwardRef<ConfettiRef, ConfettiProps>(\n (\n {\n options,\n globalOptions = {resize: true, useWorker: true},\n manualstart = false,\n children,\n ...props\n },\n ref,\n ) => {\n const instanceRef = useRef<ConfettiInstance | null>(null);\n const hasAutoFiredRef = useRef<boolean>(false);\n const optionsRef = useRef<ConfettiOptions | undefined>(options);\n\n useEffect(() => {\n optionsRef.current = options;\n }, [options]);\n\n const canvasRef = useCallback(\n (node: HTMLCanvasElement | null) => {\n if (node !== null) {\n if (instanceRef.current) {\n instanceRef.current.reset();\n }\n instanceRef.current = confetti.create(node, {\n ...globalOptions,\n });\n } else {\n if (instanceRef.current) {\n instanceRef.current.reset();\n instanceRef.current = null;\n }\n }\n },\n [globalOptions],\n );\n\n const fire = useCallback(async (opts: ConfettiOptions = {}) => {\n try {\n await instanceRef.current?.({...optionsRef.current, ...opts});\n } catch (error) {\n // biome-ignore lint/suspicious/noConsole: we need to log the error\n console.error('Confetti error:', error);\n }\n }, []);\n\n const api = useMemo<ConfettiApi>(\n () => ({\n fire,\n }),\n [fire],\n );\n\n useImperativeHandle(ref, () => api, [api]);\n\n useEffect(() => {\n if (!manualstart && !hasAutoFiredRef.current && instanceRef.current) {\n hasAutoFiredRef.current = true;\n void instanceRef.current(optionsRef.current);\n }\n }, [manualstart]);\n\n return (\n <ConfettiContext.Provider value={api}>\n <canvas ref={canvasRef} {...props} />\n {children}\n </ConfettiContext.Provider>\n );\n },\n);\n\nConfettiComponent.displayName = 'Confetti';\n\nexport const Confetti = ConfettiComponent;\n\nexport type ConfettiButtonProps = ComponentProps<'button'> & {\n options?: ConfettiOptions & ConfettiGlobalOptions & {canvas?: HTMLCanvasElement};\n};\n\nexport function ConfettiButton({options, onClick, children, ...props}: ConfettiButtonProps) {\n const handleClick: ComponentProps<'button'>['onClick'] = async (event) => {\n try {\n const rect = event.currentTarget.getBoundingClientRect();\n const x = rect.left + rect.width / 2;\n const y = rect.top + rect.height / 2;\n await confetti({\n ...options,\n origin: {\n x: x / window.innerWidth,\n y: y / window.innerHeight,\n },\n });\n } catch (error) {\n // biome-ignore lint/suspicious/noConsole: we need to log the error\n console.error('Confetti button error:', error);\n }\n\n onClick?.(event);\n };\n\n return (\n <Button onClick={handleClick} {...props}>\n {children}\n </Button>\n );\n}\n"],"names":["confetti","Button","createContext","forwardRef","useCallback","useEffect","useImperativeHandle","useMemo","useRef","ConfettiContext","ConfettiComponent","options","globalOptions","resize","useWorker","manualstart","children","props","ref","instanceRef","hasAutoFiredRef","optionsRef","current","canvasRef","node","reset","create","fire","opts","error","console","api","Provider","value","canvas","displayName","Confetti","ConfettiButton","onClick","handleClick","event","rect","currentTarget","getBoundingClientRect","x","left","width","y","top","height","origin","window","innerWidth","innerHeight"],"mappings":";AAKA,OAAOA,cAAc,kBAAkB;AACvC,SAAQC,MAAM,QAAO,oBAAoB;AAEzC,SACEC,aAAa,EACbC,UAAU,EACVC,WAAW,EACXC,SAAS,EACTC,mBAAmB,EACnBC,OAAO,EACPC,MAAM,QACD,QAAQ;AAMf,MAAMC,gCAAkBP,cAAkC;AAW1D,MAAMQ,kCAAoBP,WACxB,CACE,EACEQ,OAAO,EACPC,gBAAgB;IAACC,QAAQ;IAAMC,WAAW;AAAI,CAAC,EAC/CC,cAAc,KAAK,EACnBC,QAAQ,EACR,GAAGC,OACJ,EACDC;IAEA,MAAMC,cAAcX,OAAgC;IACpD,MAAMY,kBAAkBZ,OAAgB;IACxC,MAAMa,aAAab,OAAoCG;IAEvDN,UAAU;QACRgB,WAAWC,OAAO,GAAGX;IACvB,GAAG;QAACA;KAAQ;IAEZ,MAAMY,YAAYnB,YAChB,CAACoB;QACC,IAAIA,SAAS,MAAM;YACjB,IAAIL,YAAYG,OAAO,EAAE;gBACvBH,YAAYG,OAAO,CAACG,KAAK;YAC3B;YACAN,YAAYG,OAAO,GAAGtB,SAAS0B,MAAM,CAACF,MAAM;gBAC1C,GAAGZ,aAAa;YAClB;QACF,OAAO;YACL,IAAIO,YAAYG,OAAO,EAAE;gBACvBH,YAAYG,OAAO,CAACG,KAAK;gBACzBN,YAAYG,OAAO,GAAG;YACxB;QACF;IACF,GACA;QAACV;KAAc;IAGjB,MAAMe,OAAOvB,YAAY,OAAOwB,OAAwB,CAAC,CAAC;QACxD,IAAI;YACF,MAAMT,YAAYG,OAAO,GAAG;gBAAC,GAAGD,WAAWC,OAAO;gBAAE,GAAGM,IAAI;YAAA;QAC7D,EAAE,OAAOC,OAAO;YACd,mEAAmE;YACnEC,QAAQD,KAAK,CAAC,mBAAmBA;QACnC;IACF,GAAG,EAAE;IAEL,MAAME,MAAMxB,QACV,IAAO,CAAA;YACLoB;QACF,CAAA,GACA;QAACA;KAAK;IAGRrB,oBAAoBY,KAAK,IAAMa,KAAK;QAACA;KAAI;IAEzC1B,UAAU;QACR,IAAI,CAACU,eAAe,CAACK,gBAAgBE,OAAO,IAAIH,YAAYG,OAAO,EAAE;YACnEF,gBAAgBE,OAAO,GAAG;YAC1B,KAAKH,YAAYG,OAAO,CAACD,WAAWC,OAAO;QAC7C;IACF,GAAG;QAACP;KAAY;IAEhB,qBACE,MAACN,gBAAgBuB,QAAQ;QAACC,OAAOF;;0BAC/B,KAACG;gBAAOhB,KAAKK;gBAAY,GAAGN,KAAK;;YAChCD;;;AAGP;AAGFN,kBAAkByB,WAAW,GAAG;AAEhC,OAAO,MAAMC,WAAW1B,kBAAkB;AAM1C,OAAO,SAAS2B,eAAe,EAAC1B,OAAO,EAAE2B,OAAO,EAAEtB,QAAQ,EAAE,GAAGC,OAA2B;IACxF,MAAMsB,cAAmD,OAAOC;QAC9D,IAAI;YACF,MAAMC,OAAOD,MAAME,aAAa,CAACC,qBAAqB;YACtD,MAAMC,IAAIH,KAAKI,IAAI,GAAGJ,KAAKK,KAAK,GAAG;YACnC,MAAMC,IAAIN,KAAKO,GAAG,GAAGP,KAAKQ,MAAM,GAAG;YACnC,MAAMjD,SAAS;gBACb,GAAGW,OAAO;gBACVuC,QAAQ;oBACNN,GAAGA,IAAIO,OAAOC,UAAU;oBACxBL,GAAGA,IAAII,OAAOE,WAAW;gBAC3B;YACF;QACF,EAAE,OAAOxB,OAAO;YACd,mEAAmE;YACnEC,QAAQD,KAAK,CAAC,0BAA0BA;QAC1C;QAEAS,UAAUE;IACZ;IAEA,qBACE,KAACvC;QAAOqC,SAASC;QAAc,GAAGtB,KAAK;kBACpCD;;AAGP"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/confetti/confetti.stories.tsx"],"sourcesContent":["import type {Meta, StoryObj} from '@storybook/react';\nimport {Confetti, ConfettiButton} from './confetti';\n\nconst meta = {\n title: 'Components/Confetti',\n component: Confetti,\n tags: ['autodocs'],\n parameters: {\n layout: 'centered',\n },\n} satisfies Meta<typeof Confetti>;\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\nexport const Default: Story = {\n render: () => (\n <div className=\"flex h-400 w-600 items-center justify-center rounded-16 bg-background-subtle-base\">\n <ConfettiButton>Click for Confetti!</ConfettiButton>\n </div>\n ),\n};\n\nexport const WithOptions: Story = {\n render: () => (\n <div className=\"flex h-400 w-600 items-center justify-center rounded-16 bg-background-subtle-base\">\n <ConfettiButton\n options={{\n particleCount: 150,\n spread: 60,\n colors: ['#ff6b6b', '#4ecdc4', '#ffe66d', '#95e1d3'],\n }}\n >\n Custom Confetti Button\n </ConfettiButton>\n </div>\n ),\n};\n"],"names":["Confetti","ConfettiButton","meta","title","component","tags","parameters","layout","Default","render","div","className","WithOptions","options","particleCount","spread","colors"],"mappings":";AACA,SAAQA,QAAQ,EAAEC,cAAc,QAAO,aAAa;AAEpD,MAAMC,OAAO;IACXC,OAAO;IACPC,WAAWJ;IACXK,MAAM;QAAC;KAAW;IAClBC,YAAY;QACVC,QAAQ;IACV;AACF;AAEA,eAAeL,KAAK;AAGpB,OAAO,MAAMM,UAAiB;IAC5BC,QAAQ,kBACN,KAACC;YAAIC,WAAU;sBACb,cAAA,KAACV;0BAAe;;;AAGtB,EAAE;AAEF,OAAO,MAAMW,cAAqB;IAChCH,QAAQ,kBACN,KAACC;YAAIC,WAAU;sBACb,cAAA,KAACV;gBACCY,SAAS;oBACPC,eAAe;oBACfC,QAAQ;oBACRC,QAAQ;wBAAC;wBAAW;wBAAW;wBAAW;qBAAU;gBACtD;0BACD;;;AAKP,EAAE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/confetti/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/confetti/index.ts"],"sourcesContent":["export * from './confetti';\n"],"names":[],"mappings":"AAAA,cAAc,aAAa"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"date-picker.d.ts","sourceRoot":"","sources":["../../../src/components/date-picker/date-picker.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAM,KAAK,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAKhE,OAAO,KAAK,EAAC,cAAc,EAAE,SAAS,EAAC,MAAM,OAAO,CAAC;AAIrD,eAAO,MAAM,kBAAkB;;;;8EAyB9B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,GAC1E,YAAY,CAAC,OAAO,kBAAkB,CAAC,GAAG;IACxC,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,KAAK,IAAI,CAAC;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEJ,eAAO,MAAM,UAAU,2HAgItB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/date-picker/date-picker.tsx"],"sourcesContent":["import {cva, type VariantProps} from 'class-variance-authority';\nimport {Calendar} from 'components/calendar';\nimport {Icon} from 'components/icon';\nimport {Popover, PopoverContent, PopoverTrigger} from 'components/popover';\nimport {format} from 'date-fns';\nimport type {ComponentProps, ReactNode} from 'react';\nimport {forwardRef, useState} from 'react';\nimport {cn} from 'utils/cn';\n\nexport const datePickerVariants = cva(\n 'relative flex items-center rounded-6 shadow-button-neutral transition-[background-color,box-shadow] outline-none',\n {\n variants: {\n variant: {\n base: 'bg-background-field-base hover:bg-background-field-hover',\n component: 'bg-background-field-component hover:bg-background-field-component-hover',\n },\n size: {\n base: 'h-32',\n small: 'h-28',\n },\n state: {\n default: '',\n error: 'shadow-border-error',\n disabled:\n 'bg-background-neutral-disabled shadow-none pointer-events-none cursor-not-allowed',\n },\n },\n defaultVariants: {\n variant: 'base',\n size: 'base',\n state: 'default',\n },\n },\n);\n\nexport type DatePickerProps = Omit<ComponentProps<'input'>, 'size' | 'type'> &\n VariantProps<typeof datePickerVariants> & {\n date?: Date;\n onDateSelect?: (date: Date | undefined) => void;\n placeholder?: string;\n dateFormat?: string;\n leftIcon?: ReactNode;\n rightIcon?: ReactNode;\n onClear?: () => void;\n closeOnSelect?: boolean;\n };\n\nexport const DatePicker = forwardRef<HTMLInputElement, DatePickerProps>(\n (\n {\n className,\n variant,\n size,\n state,\n date,\n onDateSelect,\n placeholder = 'DD/MM/YYYY',\n dateFormat = 'dd/MM/yyyy',\n leftIcon,\n rightIcon,\n onClear,\n disabled,\n closeOnSelect = false,\n ...props\n },\n ref,\n ) => {\n const [open, setOpen] = useState(false);\n const isDisabled = disabled || state === 'disabled';\n const displayValue = date ? format(date, dateFormat) : '';\n\n const handleSelect = (selectedDate: Date | undefined) => {\n onDateSelect?.(selectedDate);\n if (closeOnSelect) {\n setOpen(false);\n }\n };\n\n const handleClear = (e: React.MouseEvent) => {\n e.stopPropagation();\n onClear?.();\n setOpen(false);\n };\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <div\n className={cn(\n open && 'shadow-border-interactive-with-active',\n datePickerVariants({variant, size, state: isDisabled ? 'disabled' : state}),\n className,\n )}\n >\n {/* Calendar Icon Button */}\n <PopoverTrigger asChild>\n <button\n type=\"button\"\n disabled={isDisabled}\n className={cn(\n 'flex items-center justify-center shrink-0 transition-colors',\n size === 'small' ? 'size-28' : 'size-32',\n isDisabled && 'text-foreground-neutral-disabled',\n )}\n aria-label=\"Open calendar\"\n >\n {leftIcon || (\n <Icon\n name=\"calendar2Line\"\n className={cn(\n 'size-16 text-foreground-neutral-muted',\n isDisabled && 'text-foreground-neutral-disabled',\n )}\n />\n )}\n </button>\n </PopoverTrigger>\n\n {/* Divider */}\n <div className=\"h-full w-px bg-border-neutral-base shrink-0\" />\n\n {/* Input Field */}\n <input\n ref={ref}\n type=\"text\"\n disabled={isDisabled}\n placeholder={placeholder}\n value={displayValue}\n readOnly\n className={cn(\n 'flex-1 min-w-0 px-8 text-sm leading-20 bg-transparent outline-none border-none cursor-pointer',\n 'placeholder:text-foreground-neutral-muted',\n 'text-foreground-neutral-base',\n 'disabled:text-foreground-neutral-disabled disabled:cursor-not-allowed',\n size === 'small' ? 'py-4' : 'py-6',\n )}\n onClick={() => !isDisabled && setOpen(true)}\n {...props}\n />\n\n {/* Clear Button (shown when date is selected) */}\n <button\n type=\"button\"\n onClick={handleClear}\n className={cn(\n 'flex items-center justify-center shrink-0 cursor-pointer',\n size === 'small' ? 'size-28' : 'size-32',\n date && onClear && !isDisabled ? 'visible' : 'invisible',\n )}\n aria-label=\"Clear date\"\n >\n <Icon\n name=\"closeLine\"\n className=\"size-16 text-foreground-neutral-muted hover:text-foreground-neutral-subtle transition-colors\"\n />\n </button>\n\n {/* Custom Right Icon */}\n {rightIcon && !date && (\n <div\n className={cn(\n 'flex items-center justify-center shrink-0',\n size === 'small' ? 'size-28' : 'size-32',\n )}\n >\n {rightIcon}\n </div>\n )}\n </div>\n\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\n <Calendar mode=\"single\" selected={date} onSelect={handleSelect} />\n </PopoverContent>\n </Popover>\n );\n },\n);\n\nDatePicker.displayName = 'DatePicker';\n"],"names":["cva","Calendar","Icon","Popover","PopoverContent","PopoverTrigger","format","forwardRef","useState","cn","datePickerVariants","variants","variant","base","component","size","small","state","default","error","disabled","defaultVariants","DatePicker","className","date","onDateSelect","placeholder","dateFormat","leftIcon","rightIcon","onClear","closeOnSelect","props","ref","open","setOpen","isDisabled","displayValue","handleSelect","selectedDate","handleClear","e","stopPropagation","onOpenChange","div","asChild","button","type","aria-label","name","input","value","readOnly","onClick","align","mode","selected","onSelect","displayName"],"mappings":";AAAA,SAAQA,GAAG,QAA0B,2BAA2B;AAChE,SAAQC,QAAQ,QAAO,sBAAsB;AAC7C,SAAQC,IAAI,QAAO,kBAAkB;AACrC,SAAQC,OAAO,EAAEC,cAAc,EAAEC,cAAc,QAAO,qBAAqB;AAC3E,SAAQC,MAAM,QAAO,WAAW;AAEhC,SAAQC,UAAU,EAAEC,QAAQ,QAAO,QAAQ;AAC3C,SAAQC,EAAE,QAAO,WAAW;AAE5B,OAAO,MAAMC,qBAAqBV,IAChC,oHACA;IACEW,UAAU;QACRC,SAAS;YACPC,MAAM;YACNC,WAAW;QACb;QACAC,MAAM;YACJF,MAAM;YACNG,OAAO;QACT;QACAC,OAAO;YACLC,SAAS;YACTC,OAAO;YACPC,UACE;QACJ;IACF;IACAC,iBAAiB;QACfT,SAAS;QACTG,MAAM;QACNE,OAAO;IACT;AACF,GACA;AAcF,OAAO,MAAMK,2BAAaf,WACxB,CACE,EACEgB,SAAS,EACTX,OAAO,EACPG,IAAI,EACJE,KAAK,EACLO,IAAI,EACJC,YAAY,EACZC,cAAc,YAAY,EAC1BC,aAAa,YAAY,EACzBC,QAAQ,EACRC,SAAS,EACTC,OAAO,EACPV,QAAQ,EACRW,gBAAgB,KAAK,EACrB,GAAGC,OACJ,EACDC;IAEA,MAAM,CAACC,MAAMC,QAAQ,GAAG3B,SAAS;IACjC,MAAM4B,aAAahB,YAAYH,UAAU;IACzC,MAAMoB,eAAeb,OAAOlB,OAAOkB,MAAMG,cAAc;IAEvD,MAAMW,eAAe,CAACC;QACpBd,eAAec;QACf,IAAIR,eAAe;YACjBI,QAAQ;QACV;IACF;IAEA,MAAMK,cAAc,CAACC;QACnBA,EAAEC,eAAe;QACjBZ;QACAK,QAAQ;IACV;IAEA,qBACE,MAAChC;QAAQ+B,MAAMA;QAAMS,cAAcR;;0BACjC,MAACS;gBACCrB,WAAWd,GACTyB,QAAQ,yCACRxB,mBAAmB;oBAACE;oBAASG;oBAAME,OAAOmB,aAAa,aAAanB;gBAAK,IACzEM;;kCAIF,KAAClB;wBAAewC,OAAO;kCACrB,cAAA,KAACC;4BACCC,MAAK;4BACL3B,UAAUgB;4BACVb,WAAWd,GACT,+DACAM,SAAS,UAAU,YAAY,WAC/BqB,cAAc;4BAEhBY,cAAW;sCAEVpB,0BACC,KAAC1B;gCACC+C,MAAK;gCACL1B,WAAWd,GACT,yCACA2B,cAAc;;;;kCAQxB,KAACQ;wBAAIrB,WAAU;;kCAGf,KAAC2B;wBACCjB,KAAKA;wBACLc,MAAK;wBACL3B,UAAUgB;wBACVV,aAAaA;wBACbyB,OAAOd;wBACPe,QAAQ;wBACR7B,WAAWd,GACT,iGACA,6CACA,gCACA,yEACAM,SAAS,UAAU,SAAS;wBAE9BsC,SAAS,IAAM,CAACjB,cAAcD,QAAQ;wBACrC,GAAGH,KAAK;;kCAIX,KAACc;wBACCC,MAAK;wBACLM,SAASb;wBACTjB,WAAWd,GACT,4DACAM,SAAS,UAAU,YAAY,WAC/BS,QAAQM,WAAW,CAACM,aAAa,YAAY;wBAE/CY,cAAW;kCAEX,cAAA,KAAC9C;4BACC+C,MAAK;4BACL1B,WAAU;;;oBAKbM,aAAa,CAACL,sBACb,KAACoB;wBACCrB,WAAWd,GACT,6CACAM,SAAS,UAAU,YAAY;kCAGhCc;;;;0BAKP,KAACzB;gBAAemB,WAAU;gBAAa+B,OAAM;0BAC3C,cAAA,KAACrD;oBAASsD,MAAK;oBAASC,UAAUhC;oBAAMiC,UAAUnB;;;;;AAI1D,GACA;AAEFhB,WAAWoC,WAAW,GAAG"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/date-picker/date-picker.stories.tsx"],"sourcesContent":["import {argosScreenshot} from '@argos-ci/storybook/vitest';\nimport type {Meta, StoryObj} from '@storybook/react';\nimport {within} from '@testing-library/react';\nimport userEvent from '@testing-library/user-event';\nimport {subDays} from 'date-fns';\nimport {useState} from 'react';\nimport {\n type DateRange,\n DateTimeRangePicker,\n} from '../date-time-range-picker/date-time-range-picker';\nimport {DatePicker} from './date-picker';\n\nconst meta: Meta<typeof DatePicker> = {\n title: 'Components/DatePicker',\n component: DatePicker,\n parameters: {\n layout: 'centered',\n },\n};\nexport default meta;\n\ntype Story = StoryObj<typeof DatePicker>;\n\nconst OPEN_CALENDAR_REGEX = /open calendar/i;\n\nconst isTestEnvironment = () => typeof navigator !== 'undefined' && navigator.webdriver === true;\n\ntype StoryContext = Parameters<NonNullable<Story['play']>>[0];\n\nasync function openCalendarAndScreenshot(ctx: StoryContext, screenshotName: string): Promise<void> {\n const {canvasElement, step} = ctx;\n const canvas = within(canvasElement);\n const user = userEvent.setup();\n\n let triggerButton: HTMLElement | null = null;\n\n await step('Open the calendar popover', async () => {\n triggerButton = canvas.getByRole('button', {name: OPEN_CALENDAR_REGEX});\n await user.click(triggerButton);\n });\n\n await step('Wait for calendar to appear and render', async () => {\n await new Promise((resolve) => setTimeout(resolve, 300));\n\n if (isTestEnvironment() && triggerButton instanceof HTMLElement) {\n triggerButton.style.display = 'none';\n }\n await new Promise((resolve) => setTimeout(resolve, 100));\n });\n\n await argosScreenshot(ctx, screenshotName);\n}\n\nexport const DatePickerStory: Story = {\n play: (ctx) => openCalendarAndScreenshot(ctx, 'DatePicker Calendar Open'),\n render: () => {\n const [date, setDate] = useState<Date | undefined>(new Date());\n return (\n <div className=\"relative flex h-600 w-500 items-center justify-center rounded-16 bg-background-subtle-base shadow-tooltip overflow-visible\">\n <DatePicker\n date={date}\n onDateSelect={setDate}\n onClear={() => setDate(undefined)}\n placeholder=\"DD/MM/YYYY\"\n />\n </div>\n );\n },\n};\n\nexport const DateRangePickerStory: Story = {\n play: (ctx) => openCalendarAndScreenshot(ctx, 'DateRangePicker Calendar Open'),\n render: () => {\n const [dateRange, setDateRange] = useState<DateRange | undefined>({\n start: new Date(),\n end: subDays(new Date(), -30),\n });\n return (\n <div className=\"relative flex h-600 w-800 items-center justify-center rounded-16 bg-background-subtle-base shadow-tooltip overflow-visible\">\n <DateTimeRangePicker\n dateRange={dateRange}\n onDateRangeSelect={setDateRange}\n onClear={() => setDateRange(undefined)}\n placeholder=\"DD/MM/YYYY - DD/MM/YYYY\"\n className=\"min-w-280\"\n />\n </div>\n );\n },\n};\n\nexport const AllStates: Story = {\n render: () => {\n const now = new Date();\n const past = subDays(now, 30);\n return (\n <div className=\"flex flex-col gap-32 p-32 min-w-350\">\n <div>\n <h3 className=\"text-lg font-semibold mb-16 text-foreground-neutral-base\">\n Single Date Picker\n </h3>\n <div className=\"flex flex-col gap-16\">\n <div>\n <p className=\"text-xs text-foreground-neutral-subtle mb-8 font-mono\">DEFAULT</p>\n <DatePicker placeholder=\"DD/MM/YYYY\" />\n </div>\n <div>\n <p className=\"text-xs text-foreground-neutral-subtle mb-8 font-mono\">FILLED</p>\n <DatePicker\n date={new Date()}\n onClear={() => {\n /* noop for demo */\n }}\n placeholder=\"DD/MM/YYYY\"\n />\n </div>\n <div>\n <p className=\"text-xs text-foreground-neutral-subtle mb-8 font-mono\">ERROR</p>\n <DatePicker\n date={new Date()}\n onClear={() => {\n /* noop for demo */\n }}\n state=\"error\"\n placeholder=\"DD/MM/YYYY\"\n />\n </div>\n <div>\n <p className=\"text-xs text-foreground-neutral-subtle mb-8 font-mono\">DISABLED</p>\n <DatePicker placeholder=\"DD/MM/YYYY\" state=\"disabled\" />\n </div>\n <div>\n <p className=\"text-xs text-foreground-neutral-subtle mb-8 font-mono\">SMALL</p>\n <DatePicker size=\"small\" placeholder=\"DD/MM/YYYY\" />\n </div>\n <div>\n <p className=\"text-xs text-foreground-neutral-subtle mb-8 font-mono\">\n COMPONENT VARIANT\n </p>\n <DatePicker variant=\"component\" placeholder=\"DD/MM/YYYY\" />\n </div>\n </div>\n </div>\n\n <div>\n <h3 className=\"text-lg font-semibold mb-16 text-foreground-neutral-base\">\n Date Range Picker\n </h3>\n <div className=\"flex flex-col gap-16\">\n <div>\n <p className=\"text-xs text-foreground-neutral-subtle mb-8 font-mono\">DEFAULT</p>\n <DateTimeRangePicker placeholder=\"DD/MM/YYYY - DD/MM/YYYY\" />\n </div>\n <div>\n <p className=\"text-xs text-foreground-neutral-subtle mb-8 font-mono\">FILLED</p>\n <DateTimeRangePicker\n dateRange={{start: past, end: now}}\n onClear={() => {\n /* noop for demo */\n }}\n placeholder=\"DD/MM/YYYY - DD/MM/YYYY\"\n />\n </div>\n <div>\n <p className=\"text-xs text-foreground-neutral-subtle mb-8 font-mono\">ERROR</p>\n <DateTimeRangePicker\n dateRange={{start: past, end: now}}\n onClear={() => {\n /* noop for demo */\n }}\n state=\"error\"\n placeholder=\"DD/MM/YYYY - DD/MM/YYYY\"\n />\n </div>\n <div>\n <p className=\"text-xs text-foreground-neutral-subtle mb-8 font-mono\">DISABLED</p>\n <DateTimeRangePicker placeholder=\"DD/MM/YYYY - DD/MM/YYYY\" state=\"disabled\" />\n </div>\n <div>\n <p className=\"text-xs text-foreground-neutral-subtle mb-8 font-mono\">SMALL</p>\n <DateTimeRangePicker size=\"small\" placeholder=\"DD/MM/YYYY - DD/MM/YYYY\" />\n </div>\n <div>\n <p className=\"text-xs text-foreground-neutral-subtle mb-8 font-mono\">\n COMPONENT VARIANT\n </p>\n <DateTimeRangePicker variant=\"component\" placeholder=\"DD/MM/YYYY - DD/MM/YYYY\" />\n </div>\n </div>\n </div>\n </div>\n );\n },\n};\n\nexport const DateFormats: Story = {\n render: () => {\n const [date, setDate] = useState<Date | undefined>(new Date());\n const formats = [\n {format: 'MMMM dd, yyyy', placeholder: 'Month DD, YYYY', label: 'MMMM dd, yyyy'},\n {format: 'MMMM d, yyyy', placeholder: 'Month D, YYYY', label: 'MMMM d, yyyy'},\n {format: 'MMM dd, yyyy', placeholder: 'Mon DD, YYYY', label: 'MMM dd, yyyy'},\n {format: 'dd/MM/yyyy', placeholder: 'DD/MM/YYYY', label: 'dd/MM/yyyy'},\n {format: 'MM/dd/yyyy', placeholder: 'MM/DD/YYYY', label: 'MM/dd/yyyy'},\n {format: 'yyyy-MM-dd', placeholder: 'YYYY-MM-DD', label: 'yyyy-MM-dd'},\n ];\n\n return (\n <div className=\"flex flex-col gap-32 p-32 min-w-350\">\n <h3 className=\"text-lg font-semibold mb-16 text-foreground-neutral-base\">\n Date Format Examples\n </h3>\n <div className=\"flex flex-col gap-16\">\n {formats.map(({format, placeholder, label}) => (\n <div key={format}>\n <p className=\"text-xs text-foreground-neutral-subtle mb-8 font-mono\">{label}</p>\n <DatePicker\n date={date}\n onDateSelect={setDate}\n onClear={() => setDate(undefined)}\n dateFormat={format}\n placeholder={placeholder}\n />\n </div>\n ))}\n </div>\n </div>\n );\n },\n};\n"],"names":["argosScreenshot","within","userEvent","subDays","useState","DateTimeRangePicker","DatePicker","meta","title","component","parameters","layout","OPEN_CALENDAR_REGEX","isTestEnvironment","navigator","webdriver","openCalendarAndScreenshot","ctx","screenshotName","canvasElement","step","canvas","user","setup","triggerButton","getByRole","name","click","Promise","resolve","setTimeout","HTMLElement","style","display","DatePickerStory","play","render","date","setDate","Date","div","className","onDateSelect","onClear","undefined","placeholder","DateRangePickerStory","dateRange","setDateRange","start","end","onDateRangeSelect","AllStates","now","past","h3","p","state","size","variant","DateFormats","formats","format","label","map","dateFormat"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/date-picker/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/date-picker/index.ts"],"sourcesContent":["export * from './date-picker';\n"],"names":[],"mappings":"AAAA,cAAc,gBAAgB"}