@cellarnode/ui 0.1.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 (378) hide show
  1. package/dist/chat/chat-api.d.ts +14 -0
  2. package/dist/chat/chat-api.d.ts.map +1 -0
  3. package/dist/chat/chat-api.js +36 -0
  4. package/dist/chat/chat-api.js.map +1 -0
  5. package/dist/chat/chat-toggle-button.d.ts +8 -0
  6. package/dist/chat/chat-toggle-button.d.ts.map +1 -0
  7. package/dist/chat/chat-toggle-button.js +8 -0
  8. package/dist/chat/chat-toggle-button.js.map +1 -0
  9. package/dist/chat/chat-ws.d.ts +61 -0
  10. package/dist/chat/chat-ws.d.ts.map +1 -0
  11. package/dist/chat/chat-ws.js +217 -0
  12. package/dist/chat/chat-ws.js.map +1 -0
  13. package/dist/chat/communication-hub-widget.d.ts +21 -0
  14. package/dist/chat/communication-hub-widget.d.ts.map +1 -0
  15. package/dist/chat/communication-hub-widget.js +49 -0
  16. package/dist/chat/communication-hub-widget.js.map +1 -0
  17. package/dist/chat/communication-panel.d.ts +3 -0
  18. package/dist/chat/communication-panel.d.ts.map +1 -0
  19. package/dist/chat/communication-panel.js +34 -0
  20. package/dist/chat/communication-panel.js.map +1 -0
  21. package/dist/chat/index.d.ts +17 -0
  22. package/dist/chat/index.d.ts.map +1 -0
  23. package/dist/chat/index.js +11 -0
  24. package/dist/chat/index.js.map +1 -0
  25. package/dist/chat/messenger-layout.d.ts +25 -0
  26. package/dist/chat/messenger-layout.d.ts.map +1 -0
  27. package/dist/chat/messenger-layout.js +70 -0
  28. package/dist/chat/messenger-layout.js.map +1 -0
  29. package/dist/chat/negotiation-event-card.d.ts +9 -0
  30. package/dist/chat/negotiation-event-card.d.ts.map +1 -0
  31. package/dist/chat/negotiation-event-card.js +39 -0
  32. package/dist/chat/negotiation-event-card.js.map +1 -0
  33. package/dist/chat/timeline-utils.d.ts +7 -0
  34. package/dist/chat/timeline-utils.d.ts.map +1 -0
  35. package/dist/chat/timeline-utils.js +40 -0
  36. package/dist/chat/timeline-utils.js.map +1 -0
  37. package/dist/chat/types.d.ts +132 -0
  38. package/dist/chat/types.d.ts.map +1 -0
  39. package/dist/chat/types.js +3 -0
  40. package/dist/chat/types.js.map +1 -0
  41. package/dist/chat/unified-timeline.d.ts +13 -0
  42. package/dist/chat/unified-timeline.d.ts.map +1 -0
  43. package/dist/chat/unified-timeline.js +97 -0
  44. package/dist/chat/unified-timeline.js.map +1 -0
  45. package/dist/chat/use-chat.d.ts +10 -0
  46. package/dist/chat/use-chat.d.ts.map +1 -0
  47. package/dist/chat/use-chat.js +280 -0
  48. package/dist/chat/use-chat.js.map +1 -0
  49. package/dist/components/accordion.d.ts +8 -0
  50. package/dist/components/accordion.d.ts.map +1 -0
  51. package/dist/components/accordion.js +19 -0
  52. package/dist/components/accordion.js.map +1 -0
  53. package/dist/components/alert.d.ts +29 -0
  54. package/dist/components/alert.d.ts.map +1 -0
  55. package/dist/components/alert.js +31 -0
  56. package/dist/components/alert.js.map +1 -0
  57. package/dist/components/animated-list.d.ts +20 -0
  58. package/dist/components/animated-list.d.ts.map +1 -0
  59. package/dist/components/animated-list.js +50 -0
  60. package/dist/components/animated-list.js.map +1 -0
  61. package/dist/components/avatar.d.ts +19 -0
  62. package/dist/components/avatar.d.ts.map +1 -0
  63. package/dist/components/avatar.js +18 -0
  64. package/dist/components/avatar.js.map +1 -0
  65. package/dist/components/badge.d.ts +39 -0
  66. package/dist/components/badge.d.ts.map +1 -0
  67. package/dist/components/badge.js +35 -0
  68. package/dist/components/badge.js.map +1 -0
  69. package/dist/components/button.d.ts +64 -0
  70. package/dist/components/button.d.ts.map +1 -0
  71. package/dist/components/button.js +174 -0
  72. package/dist/components/button.js.map +1 -0
  73. package/dist/components/button.stories.d.ts +13 -0
  74. package/dist/components/button.stories.d.ts.map +1 -0
  75. package/dist/components/button.stories.js +48 -0
  76. package/dist/components/button.stories.js.map +1 -0
  77. package/dist/components/card.d.ts +9 -0
  78. package/dist/components/card.d.ts.map +1 -0
  79. package/dist/components/card.js +17 -0
  80. package/dist/components/card.js.map +1 -0
  81. package/dist/components/checkbox.d.ts +37 -0
  82. package/dist/components/checkbox.d.ts.map +1 -0
  83. package/dist/components/checkbox.js +84 -0
  84. package/dist/components/checkbox.js.map +1 -0
  85. package/dist/components/combobox.d.ts +20 -0
  86. package/dist/components/combobox.d.ts.map +1 -0
  87. package/dist/components/combobox.js +87 -0
  88. package/dist/components/combobox.js.map +1 -0
  89. package/dist/components/command.d.ts +12 -0
  90. package/dist/components/command.d.ts.map +1 -0
  91. package/dist/components/command.js +31 -0
  92. package/dist/components/command.js.map +1 -0
  93. package/dist/components/description-list.d.ts +4 -0
  94. package/dist/components/description-list.d.ts.map +1 -0
  95. package/dist/components/description-list.js +12 -0
  96. package/dist/components/description-list.js.map +1 -0
  97. package/dist/components/dialog.d.ts +30 -0
  98. package/dist/components/dialog.d.ts.map +1 -0
  99. package/dist/components/dialog.js +32 -0
  100. package/dist/components/dialog.js.map +1 -0
  101. package/dist/components/divider.d.ts +4 -0
  102. package/dist/components/divider.d.ts.map +1 -0
  103. package/dist/components/divider.js +6 -0
  104. package/dist/components/divider.js.map +1 -0
  105. package/dist/components/drawer.d.ts +23 -0
  106. package/dist/components/drawer.d.ts.map +1 -0
  107. package/dist/components/drawer.js +23 -0
  108. package/dist/components/drawer.js.map +1 -0
  109. package/dist/components/dropdown-menu.d.ts +26 -0
  110. package/dist/components/dropdown-menu.d.ts.map +1 -0
  111. package/dist/components/dropdown-menu.js +52 -0
  112. package/dist/components/dropdown-menu.js.map +1 -0
  113. package/dist/components/dropdown.d.ts +37 -0
  114. package/dist/components/dropdown.d.ts.map +1 -0
  115. package/dist/components/dropdown.js +79 -0
  116. package/dist/components/dropdown.js.map +1 -0
  117. package/dist/components/fieldset.d.ts +22 -0
  118. package/dist/components/fieldset.d.ts.map +1 -0
  119. package/dist/components/fieldset.js +25 -0
  120. package/dist/components/fieldset.js.map +1 -0
  121. package/dist/components/form.d.ts +25 -0
  122. package/dist/components/form.d.ts.map +1 -0
  123. package/dist/components/form.js +60 -0
  124. package/dist/components/form.js.map +1 -0
  125. package/dist/components/heading.d.ts +7 -0
  126. package/dist/components/heading.d.ts.map +1 -0
  127. package/dist/components/heading.js +11 -0
  128. package/dist/components/heading.js.map +1 -0
  129. package/dist/components/input.d.ts +11 -0
  130. package/dist/components/input.d.ts.map +1 -0
  131. package/dist/components/input.js +57 -0
  132. package/dist/components/input.js.map +1 -0
  133. package/dist/components/kanban-board.d.ts +78 -0
  134. package/dist/components/kanban-board.d.ts.map +1 -0
  135. package/dist/components/kanban-board.js +18 -0
  136. package/dist/components/kanban-board.js.map +1 -0
  137. package/dist/components/kanban-board.stories.d.ts +10 -0
  138. package/dist/components/kanban-board.stories.d.ts.map +1 -0
  139. package/dist/components/kanban-board.stories.js +125 -0
  140. package/dist/components/kanban-board.stories.js.map +1 -0
  141. package/dist/components/kanban-card.d.ts +8 -0
  142. package/dist/components/kanban-card.d.ts.map +1 -0
  143. package/dist/components/kanban-card.js +13 -0
  144. package/dist/components/kanban-card.js.map +1 -0
  145. package/dist/components/kanban-dnd-board.d.ts +8 -0
  146. package/dist/components/kanban-dnd-board.d.ts.map +1 -0
  147. package/dist/components/kanban-dnd-board.js +104 -0
  148. package/dist/components/kanban-dnd-board.js.map +1 -0
  149. package/dist/components/label.d.ts +5 -0
  150. package/dist/components/label.d.ts.map +1 -0
  151. package/dist/components/label.js +9 -0
  152. package/dist/components/label.js.map +1 -0
  153. package/dist/components/link.d.ts +12 -0
  154. package/dist/components/link.d.ts.map +1 -0
  155. package/dist/components/link.js +14 -0
  156. package/dist/components/link.js.map +1 -0
  157. package/dist/components/listbox.d.ts +16 -0
  158. package/dist/components/listbox.d.ts.map +1 -0
  159. package/dist/components/listbox.js +88 -0
  160. package/dist/components/listbox.js.map +1 -0
  161. package/dist/components/pagination.d.ts +18 -0
  162. package/dist/components/pagination.d.ts.map +1 -0
  163. package/dist/components/pagination.js +22 -0
  164. package/dist/components/pagination.js.map +1 -0
  165. package/dist/components/popover.d.ts +11 -0
  166. package/dist/components/popover.d.ts.map +1 -0
  167. package/dist/components/popover.js +27 -0
  168. package/dist/components/popover.js.map +1 -0
  169. package/dist/components/radio.d.ts +38 -0
  170. package/dist/components/radio.d.ts.map +1 -0
  171. package/dist/components/radio.js +87 -0
  172. package/dist/components/radio.js.map +1 -0
  173. package/dist/components/scroll-area.d.ts +6 -0
  174. package/dist/components/scroll-area.d.ts.map +1 -0
  175. package/dist/components/scroll-area.js +14 -0
  176. package/dist/components/scroll-area.js.map +1 -0
  177. package/dist/components/select.d.ts +6 -0
  178. package/dist/components/select.d.ts.map +1 -0
  179. package/dist/components/select.js +41 -0
  180. package/dist/components/select.js.map +1 -0
  181. package/dist/components/separator.d.ts +5 -0
  182. package/dist/components/separator.d.ts.map +1 -0
  183. package/dist/components/separator.js +9 -0
  184. package/dist/components/separator.js.map +1 -0
  185. package/dist/components/shadcn-badge.d.ts +10 -0
  186. package/dist/components/shadcn-badge.d.ts.map +1 -0
  187. package/dist/components/shadcn-badge.js +25 -0
  188. package/dist/components/shadcn-badge.js.map +1 -0
  189. package/dist/components/shadcn-button.d.ts +11 -0
  190. package/dist/components/shadcn-button.d.ts.map +1 -0
  191. package/dist/components/shadcn-button.js +36 -0
  192. package/dist/components/shadcn-button.js.map +1 -0
  193. package/dist/components/shadcn-dialog.d.ts +18 -0
  194. package/dist/components/shadcn-dialog.d.ts.map +1 -0
  195. package/dist/components/shadcn-dialog.js +37 -0
  196. package/dist/components/shadcn-dialog.js.map +1 -0
  197. package/dist/components/shadcn-input.d.ts +4 -0
  198. package/dist/components/shadcn-input.d.ts.map +1 -0
  199. package/dist/components/shadcn-input.js +7 -0
  200. package/dist/components/shadcn-input.js.map +1 -0
  201. package/dist/components/shadcn-select.d.ts +14 -0
  202. package/dist/components/shadcn-select.d.ts.map +1 -0
  203. package/dist/components/shadcn-select.js +32 -0
  204. package/dist/components/shadcn-select.js.map +1 -0
  205. package/dist/components/shadcn-textarea.d.ts +4 -0
  206. package/dist/components/shadcn-textarea.d.ts.map +1 -0
  207. package/dist/components/shadcn-textarea.js +7 -0
  208. package/dist/components/shadcn-textarea.js.map +1 -0
  209. package/dist/components/sheet.d.ts +26 -0
  210. package/dist/components/sheet.d.ts.map +1 -0
  211. package/dist/components/sheet.js +37 -0
  212. package/dist/components/sheet.js.map +1 -0
  213. package/dist/components/sidebar.d.ts +68 -0
  214. package/dist/components/sidebar.d.ts.map +1 -0
  215. package/dist/components/sidebar.js +208 -0
  216. package/dist/components/sidebar.js.map +1 -0
  217. package/dist/components/skeleton.d.ts +3 -0
  218. package/dist/components/skeleton.d.ts.map +1 -0
  219. package/dist/components/skeleton.js +7 -0
  220. package/dist/components/skeleton.js.map +1 -0
  221. package/dist/components/slider.d.ts +5 -0
  222. package/dist/components/slider.d.ts.map +1 -0
  223. package/dist/components/slider.js +8 -0
  224. package/dist/components/slider.js.map +1 -0
  225. package/dist/components/sonner.d.ts +11 -0
  226. package/dist/components/sonner.d.ts.map +1 -0
  227. package/dist/components/sonner.js +14 -0
  228. package/dist/components/sonner.js.map +1 -0
  229. package/dist/components/switch.d.ts +30 -0
  230. package/dist/components/switch.d.ts.map +1 -0
  231. package/dist/components/switch.js +68 -0
  232. package/dist/components/switch.js.map +1 -0
  233. package/dist/components/table.d.ts +17 -0
  234. package/dist/components/table.d.ts.map +1 -0
  235. package/dist/components/table.js +41 -0
  236. package/dist/components/table.js.map +1 -0
  237. package/dist/components/tabs.d.ts +12 -0
  238. package/dist/components/tabs.d.ts.map +1 -0
  239. package/dist/components/tabs.js +30 -0
  240. package/dist/components/tabs.js.map +1 -0
  241. package/dist/components/text.d.ts +6 -0
  242. package/dist/components/text.d.ts.map +1 -0
  243. package/dist/components/text.js +16 -0
  244. package/dist/components/text.js.map +1 -0
  245. package/dist/components/textarea.d.ts +8 -0
  246. package/dist/components/textarea.d.ts.map +1 -0
  247. package/dist/components/textarea.js +38 -0
  248. package/dist/components/textarea.js.map +1 -0
  249. package/dist/components/toast.d.ts +16 -0
  250. package/dist/components/toast.d.ts.map +1 -0
  251. package/dist/components/toast.js +34 -0
  252. package/dist/components/toast.js.map +1 -0
  253. package/dist/components/toaster.d.ts +2 -0
  254. package/dist/components/toaster.d.ts.map +1 -0
  255. package/dist/components/toaster.js +10 -0
  256. package/dist/components/toaster.js.map +1 -0
  257. package/dist/components/tooltip.d.ts +8 -0
  258. package/dist/components/tooltip.d.ts.map +1 -0
  259. package/dist/components/tooltip.js +11 -0
  260. package/dist/components/tooltip.js.map +1 -0
  261. package/dist/components/use-toast.d.ts +3 -0
  262. package/dist/components/use-toast.d.ts.map +1 -0
  263. package/dist/components/use-toast.js +3 -0
  264. package/dist/components/use-toast.js.map +1 -0
  265. package/dist/globe/data/country-geo.d.ts +15 -0
  266. package/dist/globe/data/country-geo.d.ts.map +1 -0
  267. package/dist/globe/data/country-geo.js +81 -0
  268. package/dist/globe/data/country-geo.js.map +1 -0
  269. package/dist/globe/electron-arc.d.ts +30 -0
  270. package/dist/globe/electron-arc.d.ts.map +1 -0
  271. package/dist/globe/electron-arc.js +119 -0
  272. package/dist/globe/electron-arc.js.map +1 -0
  273. package/dist/globe/globe-theme.d.ts +34 -0
  274. package/dist/globe/globe-theme.d.ts.map +1 -0
  275. package/dist/globe/globe-theme.js +118 -0
  276. package/dist/globe/globe-theme.js.map +1 -0
  277. package/dist/globe/globe-types.d.ts +42 -0
  278. package/dist/globe/globe-types.d.ts.map +1 -0
  279. package/dist/globe/globe-types.js +5 -0
  280. package/dist/globe/globe-types.js.map +1 -0
  281. package/dist/globe/globe-view.d.ts +27 -0
  282. package/dist/globe/globe-view.d.ts.map +1 -0
  283. package/dist/globe/globe-view.js +601 -0
  284. package/dist/globe/globe-view.js.map +1 -0
  285. package/dist/globe/globe-view.stories.d.ts +42 -0
  286. package/dist/globe/globe-view.stories.d.ts.map +1 -0
  287. package/dist/globe/globe-view.stories.js +319 -0
  288. package/dist/globe/globe-view.stories.js.map +1 -0
  289. package/dist/globe/index.d.ts +12 -0
  290. package/dist/globe/index.d.ts.map +1 -0
  291. package/dist/globe/index.js +7 -0
  292. package/dist/globe/index.js.map +1 -0
  293. package/dist/globe/map/country-code-map.d.ts +10 -0
  294. package/dist/globe/map/country-code-map.d.ts.map +1 -0
  295. package/dist/globe/map/country-code-map.js +15 -0
  296. package/dist/globe/map/country-code-map.js.map +1 -0
  297. package/dist/globe/map/map-geometry.d.ts +10 -0
  298. package/dist/globe/map/map-geometry.d.ts.map +1 -0
  299. package/dist/globe/map/map-geometry.js +57 -0
  300. package/dist/globe/map/map-geometry.js.map +1 -0
  301. package/dist/globe/map/map-materials.d.ts +8 -0
  302. package/dist/globe/map/map-materials.d.ts.map +1 -0
  303. package/dist/globe/map/map-materials.js +32 -0
  304. package/dist/globe/map/map-materials.js.map +1 -0
  305. package/dist/globe/map/map-projection.d.ts +11 -0
  306. package/dist/globe/map/map-projection.d.ts.map +1 -0
  307. package/dist/globe/map/map-projection.js +17 -0
  308. package/dist/globe/map/map-projection.js.map +1 -0
  309. package/dist/globe/scene-extras.d.ts +10 -0
  310. package/dist/globe/scene-extras.d.ts.map +1 -0
  311. package/dist/globe/scene-extras.js +69 -0
  312. package/dist/globe/scene-extras.js.map +1 -0
  313. package/dist/hooks/use-kanban-dnd.d.ts +23 -0
  314. package/dist/hooks/use-kanban-dnd.d.ts.map +1 -0
  315. package/dist/hooks/use-kanban-dnd.js +22 -0
  316. package/dist/hooks/use-kanban-dnd.js.map +1 -0
  317. package/dist/hooks/use-mobile.d.ts +2 -0
  318. package/dist/hooks/use-mobile.d.ts.map +1 -0
  319. package/dist/hooks/use-mobile.js +16 -0
  320. package/dist/hooks/use-mobile.js.map +1 -0
  321. package/dist/hooks/use-toast.d.ts +45 -0
  322. package/dist/hooks/use-toast.d.ts.map +1 -0
  323. package/dist/hooks/use-toast.js +125 -0
  324. package/dist/hooks/use-toast.js.map +1 -0
  325. package/dist/index.d.ts +58 -0
  326. package/dist/index.d.ts.map +1 -0
  327. package/dist/index.js +68 -0
  328. package/dist/index.js.map +1 -0
  329. package/dist/lib/currencies.d.ts +33 -0
  330. package/dist/lib/currencies.d.ts.map +1 -0
  331. package/dist/lib/currencies.js +13 -0
  332. package/dist/lib/currencies.js.map +1 -0
  333. package/dist/lib/kanban-transitions.d.ts +12 -0
  334. package/dist/lib/kanban-transitions.d.ts.map +1 -0
  335. package/dist/lib/kanban-transitions.js +13 -0
  336. package/dist/lib/kanban-transitions.js.map +1 -0
  337. package/dist/lib/semantic-tones.d.ts +4 -0
  338. package/dist/lib/semantic-tones.d.ts.map +1 -0
  339. package/dist/lib/semantic-tones.js +35 -0
  340. package/dist/lib/semantic-tones.js.map +1 -0
  341. package/dist/lib/utils.d.ts +3 -0
  342. package/dist/lib/utils.d.ts.map +1 -0
  343. package/dist/lib/utils.js +6 -0
  344. package/dist/lib/utils.js.map +1 -0
  345. package/dist/offer/attachments-folder.d.ts +13 -0
  346. package/dist/offer/attachments-folder.d.ts.map +1 -0
  347. package/dist/offer/attachments-folder.js +20 -0
  348. package/dist/offer/attachments-folder.js.map +1 -0
  349. package/dist/offer/confirm-action-dialog.d.ts +18 -0
  350. package/dist/offer/confirm-action-dialog.d.ts.map +1 -0
  351. package/dist/offer/confirm-action-dialog.js +57 -0
  352. package/dist/offer/confirm-action-dialog.js.map +1 -0
  353. package/dist/offer/index.d.ts +11 -0
  354. package/dist/offer/index.d.ts.map +1 -0
  355. package/dist/offer/index.js +6 -0
  356. package/dist/offer/index.js.map +1 -0
  357. package/dist/offer/inline-counter-form.d.ts +19 -0
  358. package/dist/offer/inline-counter-form.d.ts.map +1 -0
  359. package/dist/offer/inline-counter-form.js +59 -0
  360. package/dist/offer/inline-counter-form.js.map +1 -0
  361. package/dist/offer/negotiation-event-card.d.ts +9 -0
  362. package/dist/offer/negotiation-event-card.d.ts.map +1 -0
  363. package/dist/offer/negotiation-event-card.js +39 -0
  364. package/dist/offer/negotiation-event-card.js.map +1 -0
  365. package/dist/offer/offer-status-badge.d.ts +8 -0
  366. package/dist/offer/offer-status-badge.d.ts.map +1 -0
  367. package/dist/offer/offer-status-badge.js +35 -0
  368. package/dist/offer/offer-status-badge.js.map +1 -0
  369. package/dist/offer/types.d.ts +43 -0
  370. package/dist/offer/types.d.ts.map +1 -0
  371. package/dist/offer/types.js +2 -0
  372. package/dist/offer/types.js.map +1 -0
  373. package/dist/theme/index.d.ts +2 -0
  374. package/dist/theme/index.d.ts.map +1 -0
  375. package/dist/theme/index.js +2 -0
  376. package/dist/theme/index.js.map +1 -0
  377. package/package.json +166 -0
  378. package/src/theme/tokens.css +475 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"badge.js","sourceRoot":"","sources":["../../src/components/badge.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAA;AAC7C,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAc,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAE7B,MAAM,MAAM,GAAG;IACb,GAAG,EAAE,oIAAoI;IACzI,MAAM,EACJ,sJAAsJ;IACxJ,KAAK,EACH,gJAAgJ;IAClJ,MAAM,EACJ,sJAAsJ;IACxJ,IAAI,EAAE,0IAA0I;IAChJ,KAAK,EACH,gJAAgJ;IAClJ,OAAO,EACL,kJAAkJ;IACpJ,KAAK,EAAE,+IAA+I;IACtJ,IAAI,EAAE,+IAA+I;IACrJ,IAAI,EAAE,0IAA0I;IAChJ,GAAG,EAAE,oIAAoI;IACzI,IAAI,EAAE,sHAAsH;IAC5H,MAAM,EACJ,gIAAgI;IAClI,MAAM,EACJ,gIAAgI;IAClI,MAAM,EACJ,gIAAgI;IAClI,OAAO,EACL,4JAA4J;IAC9J,IAAI,EAAE,0IAA0I;IAChJ,IAAI,EAAE,0IAA0I;IAChJ,IAAI,EAAE,mIAAmI;CAC1I,CAAA;AAID,MAAM,UAAU,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,EAAuD;IAChH,OAAO,CACL,kBACM,KAAK,EACT,SAAS,EAAE,IAAI,CACb,SAAS,EACT,sHAAsH,EACtH,MAAM,CAAC,KAAK,CAAC,CACd,GACD,CACH,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CAAC,SAAS,WAAW,CACxD,EACE,KAAK,GAAG,MAAM,EACd,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EAIP,EACH,GAAoC;IAEpC,MAAM,OAAO,GAAG,IAAI,CAClB,SAAS,EACT,oJAAoJ,CACrJ,CAAA;IAED,OAAO,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CACtC,KAAC,IAAI,OAAK,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,GAA4C,YACpF,KAAC,WAAW,cACV,KAAC,KAAK,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAAS,GAC3B,GACT,CACR,CAAC,CAAC,CAAC,CACF,KAAC,QAAQ,CAAC,MAAM,OAAK,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,YACtD,KAAC,WAAW,cACV,KAAC,KAAK,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAAS,GAC3B,GACE,CACnB,CAAA;AACH,CAAC,CAAC,CAAA"}
@@ -0,0 +1,64 @@
1
+ import * as Headless from '@headlessui/react';
2
+ import React from 'react';
3
+ import { Link } from './link';
4
+ declare const styles: {
5
+ base: string[];
6
+ solid: string[];
7
+ outline: string[];
8
+ plain: string[];
9
+ colors: {
10
+ 'dark/zinc': string[];
11
+ light: string[];
12
+ 'dark/white': string[];
13
+ dark: string[];
14
+ white: string[];
15
+ zinc: string[];
16
+ indigo: string[];
17
+ cyan: string[];
18
+ red: string[];
19
+ orange: string[];
20
+ amber: string[];
21
+ yellow: string[];
22
+ lime: string[];
23
+ green: string[];
24
+ emerald: string[];
25
+ brand: string[];
26
+ teal: string[];
27
+ sky: string[];
28
+ blue: string[];
29
+ violet: string[];
30
+ purple: string[];
31
+ fuchsia: string[];
32
+ pink: string[];
33
+ rose: string[];
34
+ };
35
+ };
36
+ type ButtonProps = ({
37
+ color?: keyof typeof styles.colors;
38
+ outline?: never;
39
+ plain?: never;
40
+ } | {
41
+ color?: never;
42
+ outline: true;
43
+ plain?: never;
44
+ } | {
45
+ color?: never;
46
+ outline?: never;
47
+ plain: true;
48
+ }) & {
49
+ className?: string;
50
+ children: React.ReactNode;
51
+ } & (({
52
+ href?: never;
53
+ } & Omit<Headless.ButtonProps, 'as' | 'className'>) | ({
54
+ href: string;
55
+ } & Omit<React.ComponentPropsWithoutRef<typeof Link>, 'className'>));
56
+ export declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLElement>>;
57
+ /**
58
+ * Expand the hit area to at least 44×44px on touch devices
59
+ */
60
+ export declare function TouchTarget({ children }: {
61
+ children: React.ReactNode;
62
+ }): import("react/jsx-runtime").JSX.Element;
63
+ export {};
64
+ //# sourceMappingURL=button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../src/components/button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAA;AAE7C,OAAO,KAAqB,MAAM,OAAO,CAAA;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAE7B,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6JX,CAAA;AAED,KAAK,WAAW,GAAG,CACf;IAAE,KAAK,CAAC,EAAE,MAAM,OAAO,MAAM,CAAC,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,KAAK,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAA;CAAE,GACtE;IAAE,KAAK,CAAC,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,IAAI,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAA;CAAE,GAC/C;IAAE,KAAK,CAAC,EAAE,KAAK,CAAC;IAAC,OAAO,CAAC,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,IAAI,CAAA;CAAE,CAClD,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,GAAG,CAClD,CAAC;IAAE,IAAI,CAAC,EAAE,KAAK,CAAA;CAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,GAAG,WAAW,CAAC,CAAC,GACnE,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,OAAO,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC,CACtF,CAAA;AAEH,eAAO,MAAM,MAAM,iFAmBjB,CAAA;AAEF;;GAEG;AACH,wBAAgB,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,2CAUtE"}
@@ -0,0 +1,174 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import * as Headless from '@headlessui/react';
3
+ import clsx from 'clsx';
4
+ import { forwardRef } from 'react';
5
+ import { Link } from './link';
6
+ const styles = {
7
+ base: [
8
+ // Base
9
+ 'relative isolate inline-flex items-baseline justify-center gap-x-2 rounded-lg border text-base/6 font-semibold',
10
+ // Sizing
11
+ 'px-[calc(--spacing(3.5)-1px)] py-[calc(--spacing(2.5)-1px)] sm:px-[calc(--spacing(3)-1px)] sm:py-[calc(--spacing(1.5)-1px)] sm:text-sm/6',
12
+ // Focus
13
+ 'focus:not-data-focus:outline-hidden data-focus:outline-2 data-focus:outline-offset-2 data-focus:outline-ring',
14
+ // Disabled
15
+ 'data-disabled:opacity-50',
16
+ // Icon
17
+ '*:data-[slot=icon]:-mx-0.5 *:data-[slot=icon]:my-0.5 *:data-[slot=icon]:size-5 *:data-[slot=icon]:shrink-0 *:data-[slot=icon]:self-center *:data-[slot=icon]:text-(--btn-icon) sm:*:data-[slot=icon]:my-1 sm:*:data-[slot=icon]:size-4 forced-colors:[--btn-icon:ButtonText] forced-colors:data-hover:[--btn-icon:ButtonText]',
18
+ ],
19
+ solid: [
20
+ // Optical border, implemented as the button background to avoid corner artifacts
21
+ 'border-transparent bg-(--btn-border)',
22
+ // Dark mode: border is rendered on `after` so background is set to button background
23
+ 'dark:bg-(--btn-bg)',
24
+ // Button background, implemented as foreground layer to stack on top of pseudo-border layer
25
+ 'before:absolute before:inset-0 before:-z-10 before:rounded-[calc(var(--radius-lg)-1px)] before:bg-(--btn-bg)',
26
+ // Drop shadow, applied to the inset `before` layer so it blends with the border
27
+ 'before:shadow-sm',
28
+ // Background color is moved to control and shadow is removed in dark mode so hide `before` pseudo
29
+ 'dark:before:hidden',
30
+ // Dark mode: Subtle white outline is applied using a border
31
+ 'dark:border-white/5',
32
+ // Shim/overlay, inset to match button foreground and used for hover state + highlight shadow
33
+ 'after:absolute after:inset-0 after:-z-10 after:rounded-[calc(var(--radius-lg)-1px)]',
34
+ // Inner highlight shadow
35
+ 'after:shadow-[inset_0_1px_--theme(--color-white/15%)]',
36
+ // White overlay on hover
37
+ 'data-active:after:bg-(--btn-hover-overlay) data-hover:after:bg-(--btn-hover-overlay)',
38
+ // Dark mode: `after` layer expands to cover entire button
39
+ 'dark:after:-inset-px dark:after:rounded-lg',
40
+ // Disabled
41
+ 'data-disabled:before:shadow-none data-disabled:after:shadow-none',
42
+ ],
43
+ outline: [
44
+ // Base
45
+ 'border-zinc-950/10 text-zinc-950 data-active:bg-zinc-950/2.5 data-hover:bg-zinc-950/2.5',
46
+ // Dark mode
47
+ 'dark:border-white/15 dark:text-white dark:[--btn-bg:transparent] dark:data-active:bg-white/5 dark:data-hover:bg-white/5',
48
+ // Icon
49
+ '[--btn-icon:var(--color-zinc-500)] data-active:[--btn-icon:var(--color-zinc-700)] data-hover:[--btn-icon:var(--color-zinc-700)] dark:data-active:[--btn-icon:var(--color-zinc-400)] dark:data-hover:[--btn-icon:var(--color-zinc-400)]',
50
+ ],
51
+ plain: [
52
+ // Base
53
+ 'border-transparent text-zinc-950 data-active:bg-zinc-950/5 data-hover:bg-zinc-950/5',
54
+ // Dark mode
55
+ 'dark:text-white dark:data-active:bg-white/10 dark:data-hover:bg-white/10',
56
+ // Icon
57
+ '[--btn-icon:var(--color-zinc-500)] data-active:[--btn-icon:var(--color-zinc-700)] data-hover:[--btn-icon:var(--color-zinc-700)] dark:[--btn-icon:var(--color-zinc-500)] dark:data-active:[--btn-icon:var(--color-zinc-400)] dark:data-hover:[--btn-icon:var(--color-zinc-400)]',
58
+ ],
59
+ colors: {
60
+ 'dark/zinc': [
61
+ 'text-white [--btn-bg:var(--color-zinc-900)] [--btn-border:var(--color-zinc-950)]/90 [--btn-hover-overlay:var(--color-white)]/10',
62
+ 'dark:text-white dark:[--btn-bg:var(--color-zinc-600)] dark:[--btn-hover-overlay:var(--color-white)]/5',
63
+ '[--btn-icon:var(--color-zinc-400)] data-active:[--btn-icon:var(--color-zinc-300)] data-hover:[--btn-icon:var(--color-zinc-300)]',
64
+ ],
65
+ light: [
66
+ 'text-zinc-950 [--btn-bg:white] [--btn-border:var(--color-zinc-950)]/10 [--btn-hover-overlay:var(--color-zinc-950)]/2.5 data-active:[--btn-border:var(--color-zinc-950)]/15 data-hover:[--btn-border:var(--color-zinc-950)]/15',
67
+ 'dark:text-white dark:[--btn-hover-overlay:var(--color-white)]/5 dark:[--btn-bg:var(--color-zinc-800)]',
68
+ '[--btn-icon:var(--color-zinc-500)] data-active:[--btn-icon:var(--color-zinc-700)] data-hover:[--btn-icon:var(--color-zinc-700)] dark:[--btn-icon:var(--color-zinc-500)] dark:data-active:[--btn-icon:var(--color-zinc-400)] dark:data-hover:[--btn-icon:var(--color-zinc-400)]',
69
+ ],
70
+ 'dark/white': [
71
+ 'text-white [--btn-bg:var(--color-zinc-900)] [--btn-border:var(--color-zinc-950)]/90 [--btn-hover-overlay:var(--color-white)]/10',
72
+ 'dark:text-zinc-950 dark:[--btn-bg:white] dark:[--btn-hover-overlay:var(--color-zinc-950)]/5',
73
+ '[--btn-icon:var(--color-zinc-400)] data-active:[--btn-icon:var(--color-zinc-300)] data-hover:[--btn-icon:var(--color-zinc-300)] dark:[--btn-icon:var(--color-zinc-500)] dark:data-active:[--btn-icon:var(--color-zinc-400)] dark:data-hover:[--btn-icon:var(--color-zinc-400)]',
74
+ ],
75
+ dark: [
76
+ 'text-white [--btn-bg:var(--color-zinc-900)] [--btn-border:var(--color-zinc-950)]/90 [--btn-hover-overlay:var(--color-white)]/10',
77
+ 'dark:[--btn-hover-overlay:var(--color-white)]/5 dark:[--btn-bg:var(--color-zinc-800)]',
78
+ '[--btn-icon:var(--color-zinc-400)] data-active:[--btn-icon:var(--color-zinc-300)] data-hover:[--btn-icon:var(--color-zinc-300)]',
79
+ ],
80
+ white: [
81
+ 'text-zinc-950 [--btn-bg:white] [--btn-border:var(--color-zinc-950)]/10 [--btn-hover-overlay:var(--color-zinc-950)]/2.5 data-active:[--btn-border:var(--color-zinc-950)]/15 data-hover:[--btn-border:var(--color-zinc-950)]/15',
82
+ 'dark:[--btn-hover-overlay:var(--color-zinc-950)]/5',
83
+ '[--btn-icon:var(--color-zinc-400)] data-active:[--btn-icon:var(--color-zinc-500)] data-hover:[--btn-icon:var(--color-zinc-500)]',
84
+ ],
85
+ zinc: [
86
+ 'text-white [--btn-hover-overlay:var(--color-white)]/10 [--btn-bg:var(--color-zinc-600)] [--btn-border:var(--color-zinc-700)]/90',
87
+ 'dark:[--btn-hover-overlay:var(--color-white)]/5',
88
+ '[--btn-icon:var(--color-zinc-400)] data-active:[--btn-icon:var(--color-zinc-300)] data-hover:[--btn-icon:var(--color-zinc-300)]',
89
+ ],
90
+ indigo: [
91
+ 'text-white [--btn-hover-overlay:var(--color-white)]/10 [--btn-bg:var(--color-indigo-500)] [--btn-border:var(--color-indigo-600)]/90',
92
+ '[--btn-icon:var(--color-indigo-300)] data-active:[--btn-icon:var(--color-indigo-200)] data-hover:[--btn-icon:var(--color-indigo-200)]',
93
+ ],
94
+ cyan: [
95
+ 'text-cyan-950 [--btn-bg:var(--color-cyan-300)] [--btn-border:var(--color-cyan-400)]/80 [--btn-hover-overlay:var(--color-white)]/25',
96
+ '[--btn-icon:var(--color-cyan-500)]',
97
+ ],
98
+ red: [
99
+ 'text-white [--btn-hover-overlay:var(--color-white)]/10 [--btn-bg:var(--color-red-600)] [--btn-border:var(--color-red-700)]/90',
100
+ '[--btn-icon:var(--color-red-300)] data-active:[--btn-icon:var(--color-red-200)] data-hover:[--btn-icon:var(--color-red-200)]',
101
+ ],
102
+ orange: [
103
+ 'text-white [--btn-hover-overlay:var(--color-white)]/10 [--btn-bg:var(--color-orange-500)] [--btn-border:var(--color-orange-600)]/90',
104
+ '[--btn-icon:var(--color-orange-300)] data-active:[--btn-icon:var(--color-orange-200)] data-hover:[--btn-icon:var(--color-orange-200)]',
105
+ ],
106
+ amber: [
107
+ 'text-amber-950 [--btn-hover-overlay:var(--color-white)]/25 [--btn-bg:var(--color-amber-400)] [--btn-border:var(--color-amber-500)]/80',
108
+ '[--btn-icon:var(--color-amber-600)]',
109
+ ],
110
+ yellow: [
111
+ 'text-yellow-950 [--btn-hover-overlay:var(--color-white)]/25 [--btn-bg:var(--color-yellow-300)] [--btn-border:var(--color-yellow-400)]/80',
112
+ '[--btn-icon:var(--color-yellow-600)] data-active:[--btn-icon:var(--color-yellow-700)] data-hover:[--btn-icon:var(--color-yellow-700)]',
113
+ ],
114
+ lime: [
115
+ 'text-lime-950 [--btn-hover-overlay:var(--color-white)]/25 [--btn-bg:var(--color-lime-300)] [--btn-border:var(--color-lime-400)]/80',
116
+ '[--btn-icon:var(--color-lime-600)] data-active:[--btn-icon:var(--color-lime-700)] data-hover:[--btn-icon:var(--color-lime-700)]',
117
+ ],
118
+ green: [
119
+ 'text-white [--btn-hover-overlay:var(--color-white)]/10 [--btn-bg:var(--color-green-600)] [--btn-border:var(--color-green-700)]/90',
120
+ '[--btn-icon:var(--color-white)]/60 data-active:[--btn-icon:var(--color-white)]/80 data-hover:[--btn-icon:var(--color-white)]/80',
121
+ ],
122
+ emerald: [
123
+ 'text-white [--btn-hover-overlay:var(--color-white)]/10 [--btn-bg:var(--color-emerald-600)] [--btn-border:var(--color-emerald-700)]/90',
124
+ '[--btn-icon:var(--color-white)]/60 data-active:[--btn-icon:var(--color-white)]/80 data-hover:[--btn-icon:var(--color-white)]/80',
125
+ ],
126
+ brand: [
127
+ 'text-white [--btn-hover-overlay:var(--color-white)]/10 [--btn-bg:var(--color-brand-primary)] [--btn-border:var(--color-brand-primary)]',
128
+ '[--btn-icon:var(--color-white)]/60 data-active:[--btn-icon:var(--color-white)]/80 data-hover:[--btn-icon:var(--color-white)]/80',
129
+ ],
130
+ teal: [
131
+ 'text-white [--btn-hover-overlay:var(--color-white)]/10 [--btn-bg:var(--color-brand-primary)] [--btn-border:var(--color-brand-primary)]',
132
+ '[--btn-icon:var(--color-white)]/60 data-active:[--btn-icon:var(--color-white)]/80 data-hover:[--btn-icon:var(--color-white)]/80',
133
+ ],
134
+ sky: [
135
+ 'text-white [--btn-hover-overlay:var(--color-white)]/10 [--btn-bg:var(--color-sky-500)] [--btn-border:var(--color-sky-600)]/80',
136
+ '[--btn-icon:var(--color-white)]/60 data-active:[--btn-icon:var(--color-white)]/80 data-hover:[--btn-icon:var(--color-white)]/80',
137
+ ],
138
+ blue: [
139
+ 'text-white [--btn-hover-overlay:var(--color-white)]/10 [--btn-bg:var(--color-blue-600)] [--btn-border:var(--color-blue-700)]/90',
140
+ '[--btn-icon:var(--color-blue-400)] data-active:[--btn-icon:var(--color-blue-300)] data-hover:[--btn-icon:var(--color-blue-300)]',
141
+ ],
142
+ violet: [
143
+ 'text-white [--btn-hover-overlay:var(--color-white)]/10 [--btn-bg:var(--color-violet-500)] [--btn-border:var(--color-violet-600)]/90',
144
+ '[--btn-icon:var(--color-violet-300)] data-active:[--btn-icon:var(--color-violet-200)] data-hover:[--btn-icon:var(--color-violet-200)]',
145
+ ],
146
+ purple: [
147
+ 'text-white [--btn-hover-overlay:var(--color-white)]/10 [--btn-bg:var(--color-purple-500)] [--btn-border:var(--color-purple-600)]/90',
148
+ '[--btn-icon:var(--color-purple-300)] data-active:[--btn-icon:var(--color-purple-200)] data-hover:[--btn-icon:var(--color-purple-200)]',
149
+ ],
150
+ fuchsia: [
151
+ 'text-white [--btn-hover-overlay:var(--color-white)]/10 [--btn-bg:var(--color-fuchsia-500)] [--btn-border:var(--color-fuchsia-600)]/90',
152
+ '[--btn-icon:var(--color-fuchsia-300)] data-active:[--btn-icon:var(--color-fuchsia-200)] data-hover:[--btn-icon:var(--color-fuchsia-200)]',
153
+ ],
154
+ pink: [
155
+ 'text-white [--btn-hover-overlay:var(--color-white)]/10 [--btn-bg:var(--color-pink-500)] [--btn-border:var(--color-pink-600)]/90',
156
+ '[--btn-icon:var(--color-pink-300)] data-active:[--btn-icon:var(--color-pink-200)] data-hover:[--btn-icon:var(--color-pink-200)]',
157
+ ],
158
+ rose: [
159
+ 'text-white [--btn-hover-overlay:var(--color-white)]/10 [--btn-bg:var(--color-rose-500)] [--btn-border:var(--color-rose-600)]/90',
160
+ '[--btn-icon:var(--color-rose-300)] data-active:[--btn-icon:var(--color-rose-200)] data-hover:[--btn-icon:var(--color-rose-200)]',
161
+ ],
162
+ },
163
+ };
164
+ export const Button = forwardRef(function Button({ color, outline, plain, className, children, ...props }, ref) {
165
+ const classes = clsx(className, styles.base, outline ? styles.outline : plain ? styles.plain : clsx(styles.solid, styles.colors[color ?? 'dark/zinc']));
166
+ return typeof props.href === 'string' ? (_jsx(Link, { ...props, className: classes, ref: ref, children: _jsx(TouchTarget, { children: children }) })) : (_jsx(Headless.Button, { ...props, className: clsx(classes, 'cursor-default'), ref: ref, children: _jsx(TouchTarget, { children: children }) }));
167
+ });
168
+ /**
169
+ * Expand the hit area to at least 44×44px on touch devices
170
+ */
171
+ export function TouchTarget({ children }) {
172
+ return (_jsxs(_Fragment, { children: [_jsx("span", { className: "absolute top-1/2 left-1/2 size-[max(100%,2.75rem)] -translate-x-1/2 -translate-y-1/2 pointer-fine:hidden", "aria-hidden": "true" }), children] }));
173
+ }
174
+ //# sourceMappingURL=button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.js","sourceRoot":"","sources":["../../src/components/button.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { Meta, StoryObj } from "@storybook/react-vite";
2
+ import { Button } from "./button";
3
+ declare const meta: Meta<typeof Button>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof Button>;
6
+ export declare const Default: Story;
7
+ export declare const Brand: Story;
8
+ export declare const Emerald: Story;
9
+ export declare const Outline: Story;
10
+ export declare const Plain: Story;
11
+ export declare const Colors: Story;
12
+ export declare const Disabled: Story;
13
+ //# sourceMappingURL=button.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.stories.d.ts","sourceRoot":"","sources":["../../src/components/button.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,MAAM,CAI7B,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,MAAM,CAAC,CAAC;AAErC,eAAO,MAAM,OAAO,EAAE,KAIrB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,KAKnB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAKrB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAKrB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,KAKnB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAgBpB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAMtB,CAAC"}
@@ -0,0 +1,48 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Button } from "./button";
3
+ const meta = {
4
+ title: "Components/Button",
5
+ component: Button,
6
+ tags: ["autodocs"],
7
+ };
8
+ export default meta;
9
+ export const Default = {
10
+ args: {
11
+ children: "Click me",
12
+ },
13
+ };
14
+ export const Brand = {
15
+ args: {
16
+ color: "brand",
17
+ children: "Brand",
18
+ },
19
+ };
20
+ export const Emerald = {
21
+ args: {
22
+ color: "emerald",
23
+ children: "Emerald",
24
+ },
25
+ };
26
+ export const Outline = {
27
+ args: {
28
+ outline: true,
29
+ children: "Outline",
30
+ },
31
+ };
32
+ export const Plain = {
33
+ args: {
34
+ plain: true,
35
+ children: "Plain",
36
+ },
37
+ };
38
+ export const Colors = {
39
+ render: () => (_jsxs("div", { className: "flex flex-wrap gap-4", children: [_jsx(Button, { color: "brand", children: "Brand" }), _jsx(Button, { color: "emerald", children: "Emerald" }), _jsx(Button, { color: "indigo", children: "Indigo" }), _jsx(Button, { color: "red", children: "Red" }), _jsx(Button, { color: "orange", children: "Orange" }), _jsx(Button, { color: "sky", children: "Sky" }), _jsx(Button, { color: "blue", children: "Blue" }), _jsx(Button, { color: "violet", children: "Violet" }), _jsx(Button, { color: "pink", children: "Pink" }), _jsx(Button, { outline: true, children: "Outline" }), _jsx(Button, { plain: true, children: "Plain" })] })),
40
+ };
41
+ export const Disabled = {
42
+ args: {
43
+ color: "brand",
44
+ disabled: true,
45
+ children: "Disabled",
46
+ },
47
+ };
48
+ //# sourceMappingURL=button.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.stories.js","sourceRoot":"","sources":["../../src/components/button.stories.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,IAAI,GAAwB;IAChC,KAAK,EAAE,mBAAmB;IAC1B,SAAS,EAAE,MAAM;IACjB,IAAI,EAAE,CAAC,UAAU,CAAC;CACnB,CAAC;AAEF,eAAe,IAAI,CAAC;AAGpB,MAAM,CAAC,MAAM,OAAO,GAAU;IAC5B,IAAI,EAAE;QACJ,QAAQ,EAAE,UAAU;KACrB;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAU;IAC1B,IAAI,EAAE;QACJ,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE,OAAO;KAClB;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAU;IAC5B,IAAI,EAAE;QACJ,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,SAAS;KACpB;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAU;IAC5B,IAAI,EAAE;QACJ,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,SAAS;KACpB;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAU;IAC1B,IAAI,EAAE;QACJ,KAAK,EAAE,IAAI;QACX,QAAQ,EAAE,OAAO;KAClB;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAU;IAC3B,MAAM,EAAE,GAAG,EAAE,CAAC,CACZ,eAAK,SAAS,EAAC,sBAAsB,aACnC,KAAC,MAAM,IAAC,KAAK,EAAC,OAAO,sBAAe,EACpC,KAAC,MAAM,IAAC,KAAK,EAAC,SAAS,wBAAiB,EACxC,KAAC,MAAM,IAAC,KAAK,EAAC,QAAQ,uBAAgB,EACtC,KAAC,MAAM,IAAC,KAAK,EAAC,KAAK,oBAAa,EAChC,KAAC,MAAM,IAAC,KAAK,EAAC,QAAQ,uBAAgB,EACtC,KAAC,MAAM,IAAC,KAAK,EAAC,KAAK,oBAAa,EAChC,KAAC,MAAM,IAAC,KAAK,EAAC,MAAM,qBAAc,EAClC,KAAC,MAAM,IAAC,KAAK,EAAC,QAAQ,uBAAgB,EACtC,KAAC,MAAM,IAAC,KAAK,EAAC,MAAM,qBAAc,EAClC,KAAC,MAAM,IAAC,OAAO,8BAAiB,EAChC,KAAC,MAAM,IAAC,KAAK,4BAAe,IACxB,CACP;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAU;IAC7B,IAAI,EAAE;QACJ,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,UAAU;KACrB;CACF,CAAC"}
@@ -0,0 +1,9 @@
1
+ import * as React from "react";
2
+ declare const Card: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
3
+ declare const CardHeader: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
4
+ declare const CardTitle: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLHeadingElement> & React.RefAttributes<HTMLParagraphElement>>;
5
+ declare const CardDescription: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
6
+ declare const CardContent: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
7
+ declare const CardFooter: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
8
+ export { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent };
9
+ //# sourceMappingURL=card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card.d.ts","sourceRoot":"","sources":["../../src/components/card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,QAAA,MAAM,IAAI,6GAER,CAAC;AAGH,QAAA,MAAM,UAAU,6GAIf,CAAC;AAGF,QAAA,MAAM,SAAS,uHAId,CAAC;AAGF,QAAA,MAAM,eAAe,yHAIpB,CAAC;AAGF,QAAA,MAAM,WAAW,6GAEhB,CAAC;AAGF,QAAA,MAAM,UAAU,6GAIf,CAAC;AAGF,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ import { cn } from "../lib/utils";
4
+ const Card = React.forwardRef(({ className, ...props }, ref) => (_jsx("div", { ref: ref, className: cn("rounded-lg border bg-card text-card-foreground shadow-apple-sm", className), ...props })));
5
+ Card.displayName = "Card";
6
+ const CardHeader = React.forwardRef(({ className, ...props }, ref) => (_jsx("div", { ref: ref, className: cn("flex flex-col space-y-3 p-8", className), ...props })));
7
+ CardHeader.displayName = "CardHeader";
8
+ const CardTitle = React.forwardRef(({ className, ...props }, ref) => (_jsx("h3", { ref: ref, className: cn("text-xl font-medium leading-none tracking-tight", className), ...props })));
9
+ CardTitle.displayName = "CardTitle";
10
+ const CardDescription = React.forwardRef(({ className, ...props }, ref) => (_jsx("p", { ref: ref, className: cn("text-sm text-muted-foreground leading-relaxed", className), ...props })));
11
+ CardDescription.displayName = "CardDescription";
12
+ const CardContent = React.forwardRef(({ className, ...props }, ref) => _jsx("div", { ref: ref, className: cn("p-8 pt-0", className), ...props }));
13
+ CardContent.displayName = "CardContent";
14
+ const CardFooter = React.forwardRef(({ className, ...props }, ref) => (_jsx("div", { ref: ref, className: cn("flex items-center p-8 pt-0", className), ...props })));
15
+ CardFooter.displayName = "CardFooter";
16
+ export { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent };
17
+ //# sourceMappingURL=card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card.js","sourceRoot":"","sources":["../../src/components/card.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAElC,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAuD,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CACpH,cAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,gEAAgE,EAAE,SAAS,CAAC,KAAM,KAAK,GAAI,CACzH,CAAC,CAAC;AACH,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;AAE1B,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CACjC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAChC,cAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,6BAA6B,EAAE,SAAS,CAAC,KAAM,KAAK,GAAI,CACtF,CACF,CAAC;AACF,UAAU,CAAC,WAAW,GAAG,YAAY,CAAC;AAEtC,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAChC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAChC,aAAI,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,iDAAiD,EAAE,SAAS,CAAC,KAAM,KAAK,GAAI,CACzG,CACF,CAAC;AACF,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC;AAEpC,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CACtC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAChC,YAAG,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,+CAA+C,EAAE,SAAS,CAAC,KAAM,KAAK,GAAI,CACtG,CACF,CAAC;AACF,eAAe,CAAC,WAAW,GAAG,iBAAiB,CAAC;AAEhD,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAClC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,cAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,KAAM,KAAK,GAAI,CACrG,CAAC;AACF,WAAW,CAAC,WAAW,GAAG,aAAa,CAAC;AAExC,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CACjC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAChC,cAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,4BAA4B,EAAE,SAAS,CAAC,KAAM,KAAK,GAAI,CACrF,CACF,CAAC;AACF,UAAU,CAAC,WAAW,GAAG,YAAY,CAAC;AAEtC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC"}
@@ -0,0 +1,37 @@
1
+ import * as Headless from '@headlessui/react';
2
+ import type React from 'react';
3
+ export declare function CheckboxGroup({ className, ...props }: React.ComponentPropsWithoutRef<'div'>): import("react/jsx-runtime").JSX.Element;
4
+ export declare function CheckboxField({ className, ...props }: {
5
+ className?: string;
6
+ } & Omit<Headless.FieldProps, 'as' | 'className'>): import("react/jsx-runtime").JSX.Element;
7
+ declare const colors: {
8
+ 'dark/zinc': string[];
9
+ 'dark/white': string[];
10
+ white: string;
11
+ dark: string;
12
+ zinc: string;
13
+ red: string;
14
+ orange: string;
15
+ amber: string;
16
+ yellow: string;
17
+ lime: string;
18
+ green: string;
19
+ emerald: string;
20
+ teal: string;
21
+ cyan: string;
22
+ sky: string;
23
+ blue: string;
24
+ indigo: string;
25
+ violet: string;
26
+ purple: string;
27
+ fuchsia: string;
28
+ pink: string;
29
+ rose: string;
30
+ };
31
+ type Color = keyof typeof colors;
32
+ export declare function Checkbox({ color, className, ...props }: {
33
+ color?: Color;
34
+ className?: string;
35
+ } & Omit<Headless.CheckboxProps, 'as' | 'className'>): import("react/jsx-runtime").JSX.Element;
36
+ export {};
37
+ //# sourceMappingURL=checkbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox.d.ts","sourceRoot":"","sources":["../../src/components/checkbox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAA;AAE7C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,wBAAgB,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,2CAc3F;AAED,wBAAgB,aAAa,CAAC,EAC5B,SAAS,EACT,GAAG,KAAK,EACT,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,GAAG,WAAW,CAAC,2CAoBxE;AA8BD,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;CAuCX,CAAA;AAED,KAAK,KAAK,GAAG,MAAM,OAAO,MAAM,CAAA;AAEhC,wBAAgB,QAAQ,CAAC,EACvB,KAAmB,EACnB,SAAS,EACT,GAAG,KAAK,EACT,EAAE;IACD,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,IAAI,GAAG,WAAW,CAAC,2CAiCnD"}
@@ -0,0 +1,84 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import * as Headless from '@headlessui/react';
3
+ import clsx from 'clsx';
4
+ export function CheckboxGroup({ className, ...props }) {
5
+ return (_jsx("div", { "data-slot": "control", ...props, className: clsx(className,
6
+ // Basic groups
7
+ 'space-y-3',
8
+ // With descriptions
9
+ 'has-data-[slot=description]:space-y-6 has-data-[slot=description]:**:data-[slot=label]:font-medium') }));
10
+ }
11
+ export function CheckboxField({ className, ...props }) {
12
+ return (_jsx(Headless.Field, { "data-slot": "field", ...props, className: clsx(className,
13
+ // Base layout
14
+ 'grid grid-cols-[1.125rem_1fr] gap-x-4 gap-y-1 sm:grid-cols-[1rem_1fr]',
15
+ // Control layout
16
+ '*:data-[slot=control]:col-start-1 *:data-[slot=control]:row-start-1 *:data-[slot=control]:mt-0.75 sm:*:data-[slot=control]:mt-1',
17
+ // Label layout
18
+ '*:data-[slot=label]:col-start-2 *:data-[slot=label]:row-start-1',
19
+ // Description layout
20
+ '*:data-[slot=description]:col-start-2 *:data-[slot=description]:row-start-2',
21
+ // With description
22
+ 'has-data-[slot=description]:**:data-[slot=label]:font-medium') }));
23
+ }
24
+ const base = [
25
+ // Basic layout
26
+ 'relative isolate flex size-4.5 items-center justify-center rounded-[0.3125rem] sm:size-4',
27
+ // Background color + shadow applied to inset pseudo element, so shadow blends with border in light mode
28
+ 'before:absolute before:inset-0 before:-z-10 before:rounded-[calc(0.3125rem-1px)] before:bg-white before:shadow-sm',
29
+ // Background color when checked
30
+ 'group-data-checked:before:bg-(--checkbox-checked-bg)',
31
+ // Background color is moved to control and shadow is removed in dark mode so hide `before` pseudo
32
+ 'dark:before:hidden',
33
+ // Background color applied to control in dark mode
34
+ 'dark:bg-white/5 dark:group-data-checked:bg-(--checkbox-checked-bg)',
35
+ // Border
36
+ 'border border-zinc-950/15 group-data-checked:border-transparent group-data-hover:group-data-checked:border-transparent group-data-hover:border-zinc-950/30 group-data-checked:bg-(--checkbox-checked-border)',
37
+ 'dark:border-white/15 dark:group-data-checked:border-white/5 dark:group-data-hover:group-data-checked:border-white/5 dark:group-data-hover:border-white/30',
38
+ // Inner highlight shadow
39
+ 'after:absolute after:inset-0 after:rounded-[calc(0.3125rem-1px)] after:shadow-[inset_0_1px_--theme(--color-white/15%)]',
40
+ 'dark:after:-inset-px dark:after:hidden dark:after:rounded-[0.3125rem] dark:group-data-checked:after:block',
41
+ // Focus ring
42
+ 'group-data-focus:outline-2 group-data-focus:outline-offset-2 group-data-focus:outline-blue-500',
43
+ // Disabled state
44
+ 'group-data-disabled:opacity-50',
45
+ 'group-data-disabled:border-zinc-950/25 group-data-disabled:bg-zinc-950/5 group-data-disabled:[--checkbox-check:var(--color-zinc-950)]/50 group-data-disabled:before:bg-transparent',
46
+ 'dark:group-data-disabled:border-white/20 dark:group-data-disabled:bg-white/2.5 dark:group-data-disabled:[--checkbox-check:var(--color-white)]/50 dark:group-data-checked:group-data-disabled:after:hidden',
47
+ // Forced colors mode
48
+ 'forced-colors:[--checkbox-check:HighlightText] forced-colors:[--checkbox-checked-bg:Highlight] forced-colors:group-data-disabled:[--checkbox-check:Highlight]',
49
+ 'dark:forced-colors:[--checkbox-check:HighlightText] dark:forced-colors:[--checkbox-checked-bg:Highlight] dark:forced-colors:group-data-disabled:[--checkbox-check:Highlight]',
50
+ ];
51
+ const colors = {
52
+ 'dark/zinc': [
53
+ '[--checkbox-check:var(--color-white)] [--checkbox-checked-bg:var(--color-zinc-900)] [--checkbox-checked-border:var(--color-zinc-950)]/90',
54
+ 'dark:[--checkbox-checked-bg:var(--color-zinc-600)]',
55
+ ],
56
+ 'dark/white': [
57
+ '[--checkbox-check:var(--color-white)] [--checkbox-checked-bg:var(--color-zinc-900)] [--checkbox-checked-border:var(--color-zinc-950)]/90',
58
+ 'dark:[--checkbox-check:var(--color-zinc-900)] dark:[--checkbox-checked-bg:var(--color-white)] dark:[--checkbox-checked-border:var(--color-zinc-950)]/15',
59
+ ],
60
+ white: '[--checkbox-check:var(--color-zinc-900)] [--checkbox-checked-bg:var(--color-white)] [--checkbox-checked-border:var(--color-zinc-950)]/15',
61
+ dark: '[--checkbox-check:var(--color-white)] [--checkbox-checked-bg:var(--color-zinc-900)] [--checkbox-checked-border:var(--color-zinc-950)]/90',
62
+ zinc: '[--checkbox-check:var(--color-white)] [--checkbox-checked-bg:var(--color-zinc-600)] [--checkbox-checked-border:var(--color-zinc-700)]/90',
63
+ red: '[--checkbox-check:var(--color-white)] [--checkbox-checked-bg:var(--color-red-600)] [--checkbox-checked-border:var(--color-red-700)]/90',
64
+ orange: '[--checkbox-check:var(--color-white)] [--checkbox-checked-bg:var(--color-orange-500)] [--checkbox-checked-border:var(--color-orange-600)]/90',
65
+ amber: '[--checkbox-check:var(--color-amber-950)] [--checkbox-checked-bg:var(--color-amber-400)] [--checkbox-checked-border:var(--color-amber-500)]/80',
66
+ yellow: '[--checkbox-check:var(--color-yellow-950)] [--checkbox-checked-bg:var(--color-yellow-300)] [--checkbox-checked-border:var(--color-yellow-400)]/80',
67
+ lime: '[--checkbox-check:var(--color-lime-950)] [--checkbox-checked-bg:var(--color-lime-300)] [--checkbox-checked-border:var(--color-lime-400)]/80',
68
+ green: '[--checkbox-check:var(--color-white)] [--checkbox-checked-bg:var(--color-green-600)] [--checkbox-checked-border:var(--color-green-700)]/90',
69
+ emerald: '[--checkbox-check:var(--color-white)] [--checkbox-checked-bg:var(--color-emerald-600)] [--checkbox-checked-border:var(--color-emerald-700)]/90',
70
+ teal: '[--checkbox-check:var(--color-white)] [--checkbox-checked-bg:var(--color-teal-600)] [--checkbox-checked-border:var(--color-teal-700)]/90',
71
+ cyan: '[--checkbox-check:var(--color-cyan-950)] [--checkbox-checked-bg:var(--color-cyan-300)] [--checkbox-checked-border:var(--color-cyan-400)]/80',
72
+ sky: '[--checkbox-check:var(--color-white)] [--checkbox-checked-bg:var(--color-sky-500)] [--checkbox-checked-border:var(--color-sky-600)]/80',
73
+ blue: '[--checkbox-check:var(--color-white)] [--checkbox-checked-bg:var(--color-blue-600)] [--checkbox-checked-border:var(--color-blue-700)]/90',
74
+ indigo: '[--checkbox-check:var(--color-white)] [--checkbox-checked-bg:var(--color-indigo-500)] [--checkbox-checked-border:var(--color-indigo-600)]/90',
75
+ violet: '[--checkbox-check:var(--color-white)] [--checkbox-checked-bg:var(--color-violet-500)] [--checkbox-checked-border:var(--color-violet-600)]/90',
76
+ purple: '[--checkbox-check:var(--color-white)] [--checkbox-checked-bg:var(--color-purple-500)] [--checkbox-checked-border:var(--color-purple-600)]/90',
77
+ fuchsia: '[--checkbox-check:var(--color-white)] [--checkbox-checked-bg:var(--color-fuchsia-500)] [--checkbox-checked-border:var(--color-fuchsia-600)]/90',
78
+ pink: '[--checkbox-check:var(--color-white)] [--checkbox-checked-bg:var(--color-pink-500)] [--checkbox-checked-border:var(--color-pink-600)]/90',
79
+ rose: '[--checkbox-check:var(--color-white)] [--checkbox-checked-bg:var(--color-rose-500)] [--checkbox-checked-border:var(--color-rose-600)]/90',
80
+ };
81
+ export function Checkbox({ color = 'dark/zinc', className, ...props }) {
82
+ return (_jsx(Headless.Checkbox, { "data-slot": "control", ...props, className: clsx(className, 'group inline-flex focus:outline-hidden'), children: _jsx("span", { className: clsx([base, colors[color]]), children: _jsxs("svg", { className: "size-4 stroke-(--checkbox-check) opacity-0 group-data-checked:opacity-100 sm:h-3.5 sm:w-3.5", viewBox: "0 0 14 14", fill: "none", children: [_jsx("path", { className: "opacity-100 group-data-indeterminate:opacity-0", d: "M3 8L6 11L11 3.5", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round" }), _jsx("path", { className: "opacity-0 group-data-indeterminate:opacity-100", d: "M3 7H11", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round" })] }) }) }));
83
+ }
84
+ //# sourceMappingURL=checkbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox.js","sourceRoot":"","sources":["../../src/components/checkbox.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import * as Headless from '@headlessui/react';
2
+ export declare function Combobox<T>({ options, displayValue, filter, anchor, className, placeholder, autoFocus, 'aria-label': ariaLabel, children, ...props }: {
3
+ options: T[];
4
+ displayValue: (value: T | null) => string | undefined;
5
+ filter?: (value: T, query: string) => boolean;
6
+ className?: string;
7
+ placeholder?: string;
8
+ autoFocus?: boolean;
9
+ 'aria-label'?: string;
10
+ children: (value: NonNullable<T>) => React.ReactElement;
11
+ } & Omit<Headless.ComboboxProps<T, false>, 'as' | 'multiple' | 'children'> & {
12
+ anchor?: 'top' | 'bottom';
13
+ }): import("react/jsx-runtime").JSX.Element;
14
+ export declare function ComboboxOption<T>({ children, className, ...props }: {
15
+ className?: string;
16
+ children?: React.ReactNode;
17
+ } & Omit<Headless.ComboboxOptionProps<'div', T>, 'as' | 'className'>): import("react/jsx-runtime").JSX.Element;
18
+ export declare function ComboboxLabel({ className, ...props }: React.ComponentPropsWithoutRef<'span'>): import("react/jsx-runtime").JSX.Element;
19
+ export declare function ComboboxDescription({ className, children, ...props }: React.ComponentPropsWithoutRef<'span'>): import("react/jsx-runtime").JSX.Element;
20
+ //# sourceMappingURL=combobox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combobox.d.ts","sourceRoot":"","sources":["../../src/components/combobox.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAA;AAI7C,wBAAgB,QAAQ,CAAC,CAAC,EAAE,EAC1B,OAAO,EACP,YAAY,EACZ,MAAM,EACN,MAAiB,EACjB,SAAS,EACT,WAAW,EACX,SAAS,EACT,YAAY,EAAE,SAAS,EACvB,QAAQ,EACR,GAAG,KAAK,EACT,EAAE;IACD,OAAO,EAAE,CAAC,EAAE,CAAA;IACZ,YAAY,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,KAAK,MAAM,GAAG,SAAS,CAAA;IACrD,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAA;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,YAAY,CAAA;CACxD,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,IAAI,GAAG,UAAU,GAAG,UAAU,CAAC,GAAG;IAAE,MAAM,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAA;CAAE,2CA+FzG;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,EAChC,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,GAAG,IAAI,CAC1D,QAAQ,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC,CAAC,EACtC,IAAI,GAAG,WAAW,CACnB,2CAuCA;AAED,wBAAgB,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,wBAAwB,CAAC,MAAM,CAAC,2CAE5F;AAED,wBAAgB,mBAAmB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,wBAAwB,CAAC,MAAM,CAAC,2CAY5G"}