@kamod-ch/ui 0.2.1

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 (415) hide show
  1. package/LICENSE.md +9 -0
  2. package/README.md +183 -0
  3. package/dist/Accordion-D1PiNspd.d.ts +39 -0
  4. package/dist/AlertDialog-ALB541qy.d.ts +64 -0
  5. package/dist/Button-vQnkiVTI.d.ts +84 -0
  6. package/dist/CalendarDateTimePanel-B3J8OlSc.d.ts +79 -0
  7. package/dist/Carousel-BUB4DVuh.d.ts +48 -0
  8. package/dist/Chart-Ax22S5_N.d.ts +10 -0
  9. package/dist/Checkbox-DBbLYq6Q.d.ts +12 -0
  10. package/dist/Collapsible-CW1hQwqV.d.ts +34 -0
  11. package/dist/ComboboxValue-BGfXgtZt.d.ts +135 -0
  12. package/dist/CommandSeparator-wZRCsqsT.d.ts +47 -0
  13. package/dist/DataTable-zNTTdYVU.d.ts +13 -0
  14. package/dist/DatePicker-AFAYh5Ca.d.ts +20 -0
  15. package/dist/Dialog-BOIteLfe.d.ts +28 -0
  16. package/dist/DialogContent-CK1t4m4e.d.ts +24 -0
  17. package/dist/DialogHeader-CYT7iUDq.d.ts +13 -0
  18. package/dist/DialogTitle-CerJD0oA.d.ts +13 -0
  19. package/dist/Direction-25ZOt0gW.d.ts +24 -0
  20. package/dist/Drawer-B3pZMn5j.d.ts +41 -0
  21. package/dist/Dropdown-CVbWVKok.d.ts +143 -0
  22. package/dist/FieldTitle-aSgThW-B.d.ts +100 -0
  23. package/dist/HoverCard-aVEEtkyO.d.ts +52 -0
  24. package/dist/Input-Cem05el9.d.ts +27 -0
  25. package/dist/Menubar-DwYDW4w2.d.ts +88 -0
  26. package/dist/PopoverTrigger-CH_Kx2mn.d.ts +43 -0
  27. package/dist/Progress-BGij8Hob.d.ts +13 -0
  28. package/dist/RadioGroup-BaElzLwa.d.ts +40 -0
  29. package/dist/ScrollArea-B-vILe3g.d.ts +16 -0
  30. package/dist/Select-B_mNVh70.d.ts +51 -0
  31. package/dist/Separator-DCQYrnpB.d.ts +9 -0
  32. package/dist/Sheet-s0xRF22F.d.ts +29 -0
  33. package/dist/SidebarProvider-IAihmyD7.d.ts +46 -0
  34. package/dist/Slider-BQLMBpYs.d.ts +16 -0
  35. package/dist/Switch-CTTkNdqF.d.ts +31 -0
  36. package/dist/Tabs-CR-thcs6.d.ts +47 -0
  37. package/dist/Textarea-DbKkduOG.d.ts +27 -0
  38. package/dist/ThemeToggle-DfiEM1dZ.d.ts +9 -0
  39. package/dist/Toggle-CseZl7XN.d.ts +49 -0
  40. package/dist/ToggleGroup-UeYHzQe7.d.ts +137 -0
  41. package/dist/Tooltip-Ba3GxE7u.d.ts +40 -0
  42. package/dist/Typography-ccTtE182.d.ts +64 -0
  43. package/dist/chunk-26CRIZXP.js +244 -0
  44. package/dist/chunk-26CRIZXP.js.map +1 -0
  45. package/dist/chunk-2BQ54337.js +282 -0
  46. package/dist/chunk-2BQ54337.js.map +1 -0
  47. package/dist/chunk-2HZCH73K.js +109 -0
  48. package/dist/chunk-2HZCH73K.js.map +1 -0
  49. package/dist/chunk-2KY7P27I.js +64 -0
  50. package/dist/chunk-2KY7P27I.js.map +1 -0
  51. package/dist/chunk-3DNIMQX6.js +78 -0
  52. package/dist/chunk-3DNIMQX6.js.map +1 -0
  53. package/dist/chunk-3KB54OYF.js +81 -0
  54. package/dist/chunk-3KB54OYF.js.map +1 -0
  55. package/dist/chunk-4BJJOHZT.js +477 -0
  56. package/dist/chunk-4BJJOHZT.js.map +1 -0
  57. package/dist/chunk-4IBTERDG.js +9 -0
  58. package/dist/chunk-4IBTERDG.js.map +1 -0
  59. package/dist/chunk-4V3WHQJE.js +510 -0
  60. package/dist/chunk-4V3WHQJE.js.map +1 -0
  61. package/dist/chunk-5FBD2NTR.js +103 -0
  62. package/dist/chunk-5FBD2NTR.js.map +1 -0
  63. package/dist/chunk-5KS2VSX2.js +94 -0
  64. package/dist/chunk-5KS2VSX2.js.map +1 -0
  65. package/dist/chunk-5Q4RBIMZ.js +25 -0
  66. package/dist/chunk-5Q4RBIMZ.js.map +1 -0
  67. package/dist/chunk-67J4KBOW.js +124 -0
  68. package/dist/chunk-67J4KBOW.js.map +1 -0
  69. package/dist/chunk-6BK3PIRX.js +151 -0
  70. package/dist/chunk-6BK3PIRX.js.map +1 -0
  71. package/dist/chunk-6FYSVMH7.js +21 -0
  72. package/dist/chunk-6FYSVMH7.js.map +1 -0
  73. package/dist/chunk-6RASPU5N.js +31 -0
  74. package/dist/chunk-6RASPU5N.js.map +1 -0
  75. package/dist/chunk-7AJT2E2Y.js +624 -0
  76. package/dist/chunk-7AJT2E2Y.js.map +1 -0
  77. package/dist/chunk-7IOAIEIA.js +102 -0
  78. package/dist/chunk-7IOAIEIA.js.map +1 -0
  79. package/dist/chunk-7MITRFPE.js +192 -0
  80. package/dist/chunk-7MITRFPE.js.map +1 -0
  81. package/dist/chunk-BDK7CDEI.js +22 -0
  82. package/dist/chunk-BDK7CDEI.js.map +1 -0
  83. package/dist/chunk-BQP4UA44.js +18 -0
  84. package/dist/chunk-BQP4UA44.js.map +1 -0
  85. package/dist/chunk-BYG2ULS3.js +196 -0
  86. package/dist/chunk-BYG2ULS3.js.map +1 -0
  87. package/dist/chunk-C7WEQOUA.js +26 -0
  88. package/dist/chunk-C7WEQOUA.js.map +1 -0
  89. package/dist/chunk-CLEC2RMU.js +8 -0
  90. package/dist/chunk-CLEC2RMU.js.map +1 -0
  91. package/dist/chunk-CMBERB5B.js +9 -0
  92. package/dist/chunk-CMBERB5B.js.map +1 -0
  93. package/dist/chunk-COPT6I2D.js +122 -0
  94. package/dist/chunk-COPT6I2D.js.map +1 -0
  95. package/dist/chunk-CP55TVOV.js +271 -0
  96. package/dist/chunk-CP55TVOV.js.map +1 -0
  97. package/dist/chunk-D3DQ4ICC.js +25 -0
  98. package/dist/chunk-D3DQ4ICC.js.map +1 -0
  99. package/dist/chunk-ERBGZZ2U.js +26 -0
  100. package/dist/chunk-ERBGZZ2U.js.map +1 -0
  101. package/dist/chunk-FIOKWIJP.js +361 -0
  102. package/dist/chunk-FIOKWIJP.js.map +1 -0
  103. package/dist/chunk-G6TV6TF7.js +95 -0
  104. package/dist/chunk-G6TV6TF7.js.map +1 -0
  105. package/dist/chunk-GGTDJEE2.js +15 -0
  106. package/dist/chunk-GGTDJEE2.js.map +1 -0
  107. package/dist/chunk-GIU6BZTW.js +173 -0
  108. package/dist/chunk-GIU6BZTW.js.map +1 -0
  109. package/dist/chunk-HAAXVB3R.js +34 -0
  110. package/dist/chunk-HAAXVB3R.js.map +1 -0
  111. package/dist/chunk-HTSAUMF5.js +398 -0
  112. package/dist/chunk-HTSAUMF5.js.map +1 -0
  113. package/dist/chunk-IJ4ZRIR4.js +182 -0
  114. package/dist/chunk-IJ4ZRIR4.js.map +1 -0
  115. package/dist/chunk-J4DMQV64.js +340 -0
  116. package/dist/chunk-J4DMQV64.js.map +1 -0
  117. package/dist/chunk-JKXSX67K.js +95 -0
  118. package/dist/chunk-JKXSX67K.js.map +1 -0
  119. package/dist/chunk-JNF7FDJO.js +633 -0
  120. package/dist/chunk-JNF7FDJO.js.map +1 -0
  121. package/dist/chunk-JURNPBSW.js +70 -0
  122. package/dist/chunk-JURNPBSW.js.map +1 -0
  123. package/dist/chunk-LCMPFPBN.js +141 -0
  124. package/dist/chunk-LCMPFPBN.js.map +1 -0
  125. package/dist/chunk-LCWXIQKA.js +36 -0
  126. package/dist/chunk-LCWXIQKA.js.map +1 -0
  127. package/dist/chunk-LFJF3M6M.js +171 -0
  128. package/dist/chunk-LFJF3M6M.js.map +1 -0
  129. package/dist/chunk-MD6HHORY.js +524 -0
  130. package/dist/chunk-MD6HHORY.js.map +1 -0
  131. package/dist/chunk-MJG6UKD4.js +83 -0
  132. package/dist/chunk-MJG6UKD4.js.map +1 -0
  133. package/dist/chunk-MKG3UAP6.js +347 -0
  134. package/dist/chunk-MKG3UAP6.js.map +1 -0
  135. package/dist/chunk-MS2ZNYCJ.js +9 -0
  136. package/dist/chunk-MS2ZNYCJ.js.map +1 -0
  137. package/dist/chunk-NGKQBNZ5.js +29 -0
  138. package/dist/chunk-NGKQBNZ5.js.map +1 -0
  139. package/dist/chunk-NKKMM6CK.js +56 -0
  140. package/dist/chunk-NKKMM6CK.js.map +1 -0
  141. package/dist/chunk-OCLVMKVC.js +110 -0
  142. package/dist/chunk-OCLVMKVC.js.map +1 -0
  143. package/dist/chunk-PFV7YIEP.js +104 -0
  144. package/dist/chunk-PFV7YIEP.js.map +1 -0
  145. package/dist/chunk-PGOCR4LG.js +216 -0
  146. package/dist/chunk-PGOCR4LG.js.map +1 -0
  147. package/dist/chunk-PPYJQNE5.js +159 -0
  148. package/dist/chunk-PPYJQNE5.js.map +1 -0
  149. package/dist/chunk-PU5J5EPY.js +733 -0
  150. package/dist/chunk-PU5J5EPY.js.map +1 -0
  151. package/dist/chunk-PZS2D2QM.js +32 -0
  152. package/dist/chunk-PZS2D2QM.js.map +1 -0
  153. package/dist/chunk-Q5IUIA6B.js +9 -0
  154. package/dist/chunk-Q5IUIA6B.js.map +1 -0
  155. package/dist/chunk-QFDTG2ZJ.js +176 -0
  156. package/dist/chunk-QFDTG2ZJ.js.map +1 -0
  157. package/dist/chunk-QZX3RFIC.js +165 -0
  158. package/dist/chunk-QZX3RFIC.js.map +1 -0
  159. package/dist/chunk-R565SY7K.js +69 -0
  160. package/dist/chunk-R565SY7K.js.map +1 -0
  161. package/dist/chunk-RHNI5UQO.js +455 -0
  162. package/dist/chunk-RHNI5UQO.js.map +1 -0
  163. package/dist/chunk-ROKLAZHC.js +550 -0
  164. package/dist/chunk-ROKLAZHC.js.map +1 -0
  165. package/dist/chunk-RTIFG4XT.js +9 -0
  166. package/dist/chunk-RTIFG4XT.js.map +1 -0
  167. package/dist/chunk-TFLSEEM4.js +88 -0
  168. package/dist/chunk-TFLSEEM4.js.map +1 -0
  169. package/dist/chunk-U2UNWXBC.js +242 -0
  170. package/dist/chunk-U2UNWXBC.js.map +1 -0
  171. package/dist/chunk-UEGIKBX6.js +385 -0
  172. package/dist/chunk-UEGIKBX6.js.map +1 -0
  173. package/dist/chunk-UEXTD7ZB.js +108 -0
  174. package/dist/chunk-UEXTD7ZB.js.map +1 -0
  175. package/dist/chunk-UNWEH4Z6.js +83 -0
  176. package/dist/chunk-UNWEH4Z6.js.map +1 -0
  177. package/dist/chunk-UXWUFNXY.js +8 -0
  178. package/dist/chunk-UXWUFNXY.js.map +1 -0
  179. package/dist/chunk-V2MG5Y5F.js +77 -0
  180. package/dist/chunk-V2MG5Y5F.js.map +1 -0
  181. package/dist/chunk-V63YIVKJ.js +326 -0
  182. package/dist/chunk-V63YIVKJ.js.map +1 -0
  183. package/dist/chunk-WAPRVVDQ.js +9 -0
  184. package/dist/chunk-WAPRVVDQ.js.map +1 -0
  185. package/dist/chunk-X4HPHMYW.js +17 -0
  186. package/dist/chunk-X4HPHMYW.js.map +1 -0
  187. package/dist/chunk-XGFJJ2YB.js +36 -0
  188. package/dist/chunk-XGFJJ2YB.js.map +1 -0
  189. package/dist/chunk-YJGECAOZ.js +18 -0
  190. package/dist/chunk-YJGECAOZ.js.map +1 -0
  191. package/dist/chunk-YTHUHPE5.js +51 -0
  192. package/dist/chunk-YTHUHPE5.js.map +1 -0
  193. package/dist/chunk-YTJRKLUR.js +76 -0
  194. package/dist/chunk-YTJRKLUR.js.map +1 -0
  195. package/dist/chunk-YVALXJRN.js +49 -0
  196. package/dist/chunk-YVALXJRN.js.map +1 -0
  197. package/dist/chunk-YZLPO4B2.js +33 -0
  198. package/dist/chunk-YZLPO4B2.js.map +1 -0
  199. package/dist/chunk-ZHAGKFSO.js +16 -0
  200. package/dist/chunk-ZHAGKFSO.js.map +1 -0
  201. package/dist/chunk-ZM67EKZC.js +135 -0
  202. package/dist/chunk-ZM67EKZC.js.map +1 -0
  203. package/dist/chunk-ZVAW22GX.js +50 -0
  204. package/dist/chunk-ZVAW22GX.js.map +1 -0
  205. package/dist/components/accordion/index.d.ts +12 -0
  206. package/dist/components/accordion/index.js +4 -0
  207. package/dist/components/accordion/index.js.map +1 -0
  208. package/dist/components/alert/index.d.ts +64 -0
  209. package/dist/components/alert/index.js +4 -0
  210. package/dist/components/alert/index.js.map +1 -0
  211. package/dist/components/alert-dialog/index.d.ts +22 -0
  212. package/dist/components/alert-dialog/index.js +9 -0
  213. package/dist/components/alert-dialog/index.js.map +1 -0
  214. package/dist/components/aspect-ratio/index.d.ts +11 -0
  215. package/dist/components/aspect-ratio/index.js +4 -0
  216. package/dist/components/aspect-ratio/index.js.map +1 -0
  217. package/dist/components/avatar/index.d.ts +53 -0
  218. package/dist/components/avatar/index.js +4 -0
  219. package/dist/components/avatar/index.js.map +1 -0
  220. package/dist/components/badge/index.d.ts +175 -0
  221. package/dist/components/badge/index.js +4 -0
  222. package/dist/components/badge/index.js.map +1 -0
  223. package/dist/components/breadcrumb/index.d.ts +38 -0
  224. package/dist/components/breadcrumb/index.js +4 -0
  225. package/dist/components/breadcrumb/index.js.map +1 -0
  226. package/dist/components/button/index.d.ts +72 -0
  227. package/dist/components/button/index.js +5 -0
  228. package/dist/components/button/index.js.map +1 -0
  229. package/dist/components/button-group/index.d.ts +21 -0
  230. package/dist/components/button-group/index.js +4 -0
  231. package/dist/components/button-group/index.js.map +1 -0
  232. package/dist/components/calendar/index.d.ts +7 -0
  233. package/dist/components/calendar/index.js +12 -0
  234. package/dist/components/calendar/index.js.map +1 -0
  235. package/dist/components/card/index.d.ts +80 -0
  236. package/dist/components/card/index.js +3 -0
  237. package/dist/components/card/index.js.map +1 -0
  238. package/dist/components/carousel/index.d.ts +15 -0
  239. package/dist/components/carousel/index.js +5 -0
  240. package/dist/components/carousel/index.js.map +1 -0
  241. package/dist/components/chart/index.d.ts +6 -0
  242. package/dist/components/chart/index.js +4 -0
  243. package/dist/components/chart/index.js.map +1 -0
  244. package/dist/components/checkbox/index.d.ts +7 -0
  245. package/dist/components/checkbox/index.js +4 -0
  246. package/dist/components/checkbox/index.js.map +1 -0
  247. package/dist/components/collapsible/index.d.ts +11 -0
  248. package/dist/components/collapsible/index.js +4 -0
  249. package/dist/components/collapsible/index.js.map +1 -0
  250. package/dist/components/combobox/index.d.ts +13 -0
  251. package/dist/components/combobox/index.js +7 -0
  252. package/dist/components/combobox/index.js.map +1 -0
  253. package/dist/components/command/index.d.ts +21 -0
  254. package/dist/components/command/index.js +10 -0
  255. package/dist/components/command/index.js.map +1 -0
  256. package/dist/components/context-menu/index.d.ts +114 -0
  257. package/dist/components/context-menu/index.js +5 -0
  258. package/dist/components/context-menu/index.js.map +1 -0
  259. package/dist/components/data-table/index.d.ts +6 -0
  260. package/dist/components/data-table/index.js +5 -0
  261. package/dist/components/data-table/index.js.map +1 -0
  262. package/dist/components/date-picker/index.d.ts +7 -0
  263. package/dist/components/date-picker/index.js +8 -0
  264. package/dist/components/date-picker/index.js.map +1 -0
  265. package/dist/components/dialog/index.d.ts +22 -0
  266. package/dist/components/dialog/index.js +8 -0
  267. package/dist/components/dialog/index.js.map +1 -0
  268. package/dist/components/direction/index.d.ts +7 -0
  269. package/dist/components/direction/index.js +4 -0
  270. package/dist/components/direction/index.js.map +1 -0
  271. package/dist/components/drawer/index.d.ts +19 -0
  272. package/dist/components/drawer/index.js +8 -0
  273. package/dist/components/drawer/index.js.map +1 -0
  274. package/dist/components/dropdown/index.d.ts +24 -0
  275. package/dist/components/dropdown/index.js +5 -0
  276. package/dist/components/dropdown/index.js.map +1 -0
  277. package/dist/components/dropzone/index.d.ts +26 -0
  278. package/dist/components/dropzone/index.js +5 -0
  279. package/dist/components/dropzone/index.js.map +1 -0
  280. package/dist/components/empty/index.d.ts +59 -0
  281. package/dist/components/empty/index.js +4 -0
  282. package/dist/components/empty/index.js.map +1 -0
  283. package/dist/components/field/index.d.ts +8 -0
  284. package/dist/components/field/index.js +6 -0
  285. package/dist/components/field/index.js.map +1 -0
  286. package/dist/components/hover-card/index.d.ts +12 -0
  287. package/dist/components/hover-card/index.js +3 -0
  288. package/dist/components/hover-card/index.js.map +1 -0
  289. package/dist/components/image/index.d.ts +6 -0
  290. package/dist/components/image/index.js +4 -0
  291. package/dist/components/image/index.js.map +1 -0
  292. package/dist/components/input/index.d.ts +27 -0
  293. package/dist/components/input/index.js +4 -0
  294. package/dist/components/input/index.js.map +1 -0
  295. package/dist/components/input-group/index.d.ts +132 -0
  296. package/dist/components/input-group/index.js +7 -0
  297. package/dist/components/input-group/index.js.map +1 -0
  298. package/dist/components/input-otp/index.d.ts +39 -0
  299. package/dist/components/input-otp/index.js +4 -0
  300. package/dist/components/input-otp/index.js.map +1 -0
  301. package/dist/components/item/index.d.ts +108 -0
  302. package/dist/components/item/index.js +5 -0
  303. package/dist/components/item/index.js.map +1 -0
  304. package/dist/components/kbd/index.d.ts +31 -0
  305. package/dist/components/kbd/index.js +4 -0
  306. package/dist/components/kbd/index.js.map +1 -0
  307. package/dist/components/label/index.d.ts +49 -0
  308. package/dist/components/label/index.js +4 -0
  309. package/dist/components/label/index.js.map +1 -0
  310. package/dist/components/locale-segment-group/index.d.ts +15 -0
  311. package/dist/components/locale-segment-group/index.js +4 -0
  312. package/dist/components/locale-segment-group/index.js.map +1 -0
  313. package/dist/components/menubar/index.d.ts +23 -0
  314. package/dist/components/menubar/index.js +5 -0
  315. package/dist/components/menubar/index.js.map +1 -0
  316. package/dist/components/native-select/index.d.ts +89 -0
  317. package/dist/components/native-select/index.js +3 -0
  318. package/dist/components/native-select/index.js.map +1 -0
  319. package/dist/components/navigation-menu/index.d.ts +15 -0
  320. package/dist/components/navigation-menu/index.js +5 -0
  321. package/dist/components/navigation-menu/index.js.map +1 -0
  322. package/dist/components/pagination/index.d.ts +44 -0
  323. package/dist/components/pagination/index.js +5 -0
  324. package/dist/components/pagination/index.js.map +1 -0
  325. package/dist/components/popover/index.d.ts +76 -0
  326. package/dist/components/popover/index.js +5 -0
  327. package/dist/components/popover/index.js.map +1 -0
  328. package/dist/components/progress/index.d.ts +6 -0
  329. package/dist/components/progress/index.js +4 -0
  330. package/dist/components/progress/index.js.map +1 -0
  331. package/dist/components/prose/index.d.ts +8 -0
  332. package/dist/components/prose/index.js +4 -0
  333. package/dist/components/prose/index.js.map +1 -0
  334. package/dist/components/radio-group/index.d.ts +11 -0
  335. package/dist/components/radio-group/index.js +5 -0
  336. package/dist/components/radio-group/index.js.map +1 -0
  337. package/dist/components/scroll-area/index.d.ts +11 -0
  338. package/dist/components/scroll-area/index.js +4 -0
  339. package/dist/components/scroll-area/index.js.map +1 -0
  340. package/dist/components/select/index.d.ts +17 -0
  341. package/dist/components/select/index.js +5 -0
  342. package/dist/components/select/index.js.map +1 -0
  343. package/dist/components/selectable-card/index.d.ts +11 -0
  344. package/dist/components/selectable-card/index.js +5 -0
  345. package/dist/components/selectable-card/index.js.map +1 -0
  346. package/dist/components/separator/index.d.ts +24 -0
  347. package/dist/components/separator/index.js +4 -0
  348. package/dist/components/separator/index.js.map +1 -0
  349. package/dist/components/sheet/index.d.ts +20 -0
  350. package/dist/components/sheet/index.js +8 -0
  351. package/dist/components/sheet/index.js.map +1 -0
  352. package/dist/components/sidebar/index.d.ts +16 -0
  353. package/dist/components/sidebar/index.js +3 -0
  354. package/dist/components/sidebar/index.js.map +1 -0
  355. package/dist/components/skeleton/index.d.ts +52 -0
  356. package/dist/components/skeleton/index.js +3 -0
  357. package/dist/components/skeleton/index.js.map +1 -0
  358. package/dist/components/slider/index.d.ts +7 -0
  359. package/dist/components/slider/index.js +4 -0
  360. package/dist/components/slider/index.js.map +1 -0
  361. package/dist/components/sonner/index.d.ts +7 -0
  362. package/dist/components/sonner/index.js +3 -0
  363. package/dist/components/sonner/index.js.map +1 -0
  364. package/dist/components/spinner/index.d.ts +10 -0
  365. package/dist/components/spinner/index.js +4 -0
  366. package/dist/components/spinner/index.js.map +1 -0
  367. package/dist/components/switch/index.d.ts +7 -0
  368. package/dist/components/switch/index.js +4 -0
  369. package/dist/components/switch/index.js.map +1 -0
  370. package/dist/components/table/index.d.ts +45 -0
  371. package/dist/components/table/index.js +5 -0
  372. package/dist/components/table/index.js.map +1 -0
  373. package/dist/components/tabs/index.d.ts +13 -0
  374. package/dist/components/tabs/index.js +5 -0
  375. package/dist/components/tabs/index.js.map +1 -0
  376. package/dist/components/textarea/index.d.ts +27 -0
  377. package/dist/components/textarea/index.js +4 -0
  378. package/dist/components/textarea/index.js.map +1 -0
  379. package/dist/components/theme-toggle/index.d.ts +6 -0
  380. package/dist/components/theme-toggle/index.js +6 -0
  381. package/dist/components/theme-toggle/index.js.map +1 -0
  382. package/dist/components/toast/index.d.ts +27 -0
  383. package/dist/components/toast/index.js +3 -0
  384. package/dist/components/toast/index.js.map +1 -0
  385. package/dist/components/toggle/index.d.ts +7 -0
  386. package/dist/components/toggle/index.js +4 -0
  387. package/dist/components/toggle/index.js.map +1 -0
  388. package/dist/components/toggle-group/index.d.ts +11 -0
  389. package/dist/components/toggle-group/index.js +4 -0
  390. package/dist/components/toggle-group/index.js.map +1 -0
  391. package/dist/components/tooltip/index.d.ts +12 -0
  392. package/dist/components/tooltip/index.js +3 -0
  393. package/dist/components/tooltip/index.js.map +1 -0
  394. package/dist/components/typography/index.d.ts +8 -0
  395. package/dist/components/typography/index.js +4 -0
  396. package/dist/components/typography/index.js.map +1 -0
  397. package/dist/components/video/index.d.ts +8 -0
  398. package/dist/components/video/index.js +4 -0
  399. package/dist/components/video/index.js.map +1 -0
  400. package/dist/index.d.ts +82 -0
  401. package/dist/index.js +83 -0
  402. package/dist/index.js.map +1 -0
  403. package/dist/lib/interactive/index.d.ts +44 -0
  404. package/dist/lib/interactive/index.js +3 -0
  405. package/dist/lib/interactive/index.js.map +1 -0
  406. package/dist/lib/signals/index.d.ts +15 -0
  407. package/dist/lib/signals/index.js +3 -0
  408. package/dist/lib/signals/index.js.map +1 -0
  409. package/dist/lib/utils.d.ts +5 -0
  410. package/dist/lib/utils.js +3 -0
  411. package/dist/lib/utils.js.map +1 -0
  412. package/dist/navigationMenuTriggerStyle-BWnESpon.d.ts +48 -0
  413. package/dist/sonner-store-Dfdxy8ba.d.ts +11 -0
  414. package/dist/theme.css +81 -0
  415. package/package.json +360 -0
@@ -0,0 +1,103 @@
1
+ import { cn } from './chunk-MS2ZNYCJ.js';
2
+ import { isValidElement, cloneElement } from 'preact';
3
+ import { tv } from 'tailwind-variants';
4
+ import { jsx } from 'preact/jsx-runtime';
5
+
6
+ var button = tv({
7
+ base: [
8
+ "group/button inline-flex shrink-0 cursor-pointer items-center justify-center rounded-lg bg-clip-padding text-sm font-medium whitespace-nowrap",
9
+ "select-none transition-all outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50",
10
+ "active:translate-y-px disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50",
11
+ "aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20",
12
+ "dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40",
13
+ "[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
14
+ "has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2"
15
+ ],
16
+ variants: {
17
+ variant: {
18
+ default: "bg-primary text-background hover:bg-foreground/90 focus-visible:ring-outline/50",
19
+ secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/90 focus-visible:ring-secondary/50",
20
+ inverse: "bg-foreground text-background hover:opacity-[0.85] focus-visible:ring-outline/50",
21
+ outline: "border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50 border",
22
+ ghost: "hover:bg-muted hover:text-foreground focus-visible:ring-outline/50",
23
+ destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90 focus-visible:ring-outline/50",
24
+ link: "h-auto p-0 text-primary underline-offset-4 hover:underline active:translate-y-0 focus-visible:ring-0"
25
+ },
26
+ size: {
27
+ xxs: "h-5 gap-1 px-1.5 text-[10px]",
28
+ xs: "h-6 gap-1 px-2 text-xs",
29
+ sm: "h-7 gap-1.5 px-3",
30
+ default: "h-8 gap-1.5 px-2.5",
31
+ lg: "h-9 gap-2 px-5 text-base has-[>svg]:px-4 [&_svg:not([class*='size-'])]:size-4.5",
32
+ icon: "size-8",
33
+ "icon-xs": "size-6 [&_svg:not([class*='size-'])]:size-3.5",
34
+ "icon-sm": "size-7 [&_svg:not([class*='size-'])]:size-4",
35
+ "icon-lg": "size-9 [&_svg:not([class*='size-'])]:size-5"
36
+ }
37
+ },
38
+ defaultVariants: { variant: "default", size: "default" }
39
+ });
40
+ var Button = ({
41
+ variant,
42
+ size,
43
+ asChild = false,
44
+ class: className,
45
+ children,
46
+ ...rest
47
+ }) => {
48
+ const resolvedVariant = variant ?? "default";
49
+ const resolvedSize = size ?? "default";
50
+ const resolvedClassName = button({
51
+ variant: resolvedVariant,
52
+ size: resolvedSize,
53
+ class: className
54
+ });
55
+ if (asChild) {
56
+ if (!isValidElement(children)) {
57
+ const env = globalThis.process?.env?.NODE_ENV;
58
+ if (env !== "production") {
59
+ console.warn(
60
+ "[kamod-ui] <Button asChild> expects a single valid element child. Received: " + typeof children + ". Falling back to rendering nothing."
61
+ );
62
+ }
63
+ return null;
64
+ }
65
+ const childProps = children.props ?? {};
66
+ return cloneElement(children, {
67
+ ...childProps,
68
+ ...rest,
69
+ class: cn(childProps.class, childProps.className, resolvedClassName),
70
+ "data-slot": "button",
71
+ "data-variant": resolvedVariant,
72
+ "data-size": resolvedSize
73
+ });
74
+ }
75
+ if ("href" in rest && typeof rest.href === "string") {
76
+ return /* @__PURE__ */ jsx(
77
+ "a",
78
+ {
79
+ class: resolvedClassName,
80
+ "data-slot": "button",
81
+ "data-variant": resolvedVariant,
82
+ "data-size": resolvedSize,
83
+ ...rest,
84
+ children
85
+ }
86
+ );
87
+ }
88
+ return /* @__PURE__ */ jsx(
89
+ "button",
90
+ {
91
+ class: resolvedClassName,
92
+ "data-slot": "button",
93
+ "data-variant": resolvedVariant,
94
+ "data-size": resolvedSize,
95
+ ...rest,
96
+ children
97
+ }
98
+ );
99
+ };
100
+
101
+ export { Button, button };
102
+ //# sourceMappingURL=chunk-5FBD2NTR.js.map
103
+ //# sourceMappingURL=chunk-5FBD2NTR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/button/Button.tsx"],"names":[],"mappings":"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","file":"chunk-5FBD2NTR.js","sourcesContent":["import { type ComponentChildren, cloneElement, isValidElement, type JSX } from \"preact\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { cn } from \"../../lib/utils\";\n\nexport const button = tv({\n base: [\n \"group/button inline-flex shrink-0 cursor-pointer items-center justify-center rounded-lg bg-clip-padding text-sm font-medium whitespace-nowrap\",\n \"select-none transition-all outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50\",\n \"active:translate-y-px disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50\",\n \"aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20\",\n \"dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40\",\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n \"has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2\",\n ],\n variants: {\n variant: {\n default: \"bg-primary text-background hover:bg-foreground/90 focus-visible:ring-outline/50\",\n secondary:\n \"bg-secondary text-secondary-foreground hover:bg-secondary/90 focus-visible:ring-secondary/50\",\n inverse: \"bg-foreground text-background hover:opacity-[0.85] focus-visible:ring-outline/50\",\n outline:\n \"border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50 border\",\n ghost: \"hover:bg-muted hover:text-foreground focus-visible:ring-outline/50\",\n destructive:\n \"bg-destructive text-destructive-foreground hover:bg-destructive/90 focus-visible:ring-outline/50\",\n link: \"h-auto p-0 text-primary underline-offset-4 hover:underline active:translate-y-0 focus-visible:ring-0\",\n },\n size: {\n xxs: \"h-5 gap-1 px-1.5 text-[10px]\",\n xs: \"h-6 gap-1 px-2 text-xs\",\n sm: \"h-7 gap-1.5 px-3\",\n default: \"h-8 gap-1.5 px-2.5\",\n lg: \"h-9 gap-2 px-5 text-base has-[>svg]:px-4 [&_svg:not([class*='size-'])]:size-4.5\",\n icon: \"size-8\",\n \"icon-xs\": \"size-6 [&_svg:not([class*='size-'])]:size-3.5\",\n \"icon-sm\": \"size-7 [&_svg:not([class*='size-'])]:size-4\",\n \"icon-lg\": \"size-9 [&_svg:not([class*='size-'])]:size-5\",\n },\n },\n defaultVariants: { variant: \"default\", size: \"default\" },\n});\n\ntype CommonProps = VariantProps<typeof button> & {\n class?: string;\n asChild?: boolean;\n children?: ComponentChildren;\n};\n\ntype ButtonAsButton = CommonProps &\n JSX.ButtonHTMLAttributes<HTMLButtonElement> & {\n href?: undefined;\n };\n\ntype ButtonAsAnchor = CommonProps &\n JSX.AnchorHTMLAttributes<HTMLAnchorElement> & {\n href: string;\n };\n\nexport type ButtonProps = ButtonAsButton | ButtonAsAnchor;\n\nexport const Button = ({\n variant,\n size,\n asChild = false,\n class: className,\n children,\n ...rest\n}: ButtonProps) => {\n const resolvedVariant = variant ?? \"default\";\n const resolvedSize = size ?? \"default\";\n const resolvedClassName = button({\n variant: resolvedVariant,\n size: resolvedSize,\n class: className,\n });\n\n if (asChild) {\n if (!isValidElement(children)) {\n const env = (globalThis as { process?: { env?: { NODE_ENV?: string } } }).process?.env\n ?.NODE_ENV;\n if (env !== \"production\") {\n console.warn(\n \"[kamod-ui] <Button asChild> expects a single valid element child. \" +\n \"Received: \" +\n typeof children +\n \". Falling back to rendering nothing.\",\n );\n }\n return null;\n }\n\n const childProps = (children.props ?? {}) as JSX.HTMLAttributes<HTMLElement> & {\n class?: string;\n className?: string;\n };\n\n return cloneElement(children, {\n ...childProps,\n ...(rest as JSX.HTMLAttributes<HTMLElement>),\n class: cn(childProps.class, childProps.className, resolvedClassName),\n \"data-slot\": \"button\",\n \"data-variant\": resolvedVariant,\n \"data-size\": resolvedSize,\n });\n }\n\n if (\"href\" in rest && typeof rest.href === \"string\") {\n return (\n <a\n class={resolvedClassName}\n data-slot=\"button\"\n data-variant={resolvedVariant}\n data-size={resolvedSize}\n {...rest}\n >\n {children}\n </a>\n );\n }\n\n return (\n <button\n class={resolvedClassName}\n data-slot=\"button\"\n data-variant={resolvedVariant}\n data-size={resolvedSize}\n {...rest}\n >\n {children}\n </button>\n );\n};\n"]}
@@ -0,0 +1,94 @@
1
+ import { cn } from './chunk-MS2ZNYCJ.js';
2
+ import { useState } from 'preact/hooks';
3
+ import { tv } from 'tailwind-variants';
4
+ import { jsxs, jsx } from 'preact/jsx-runtime';
5
+
6
+ var switchRoot = tv({
7
+ base: [
8
+ "peer inline-flex shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-xs",
9
+ "outline-none transition-all",
10
+ "focus-visible:ring-3 focus-visible:ring-ring/50",
11
+ "disabled:cursor-not-allowed disabled:opacity-50",
12
+ "data-[state=checked]:bg-primary data-[state=checked]:saturate-125 data-[state=unchecked]:bg-input dark:data-[state=unchecked]:bg-input/80",
13
+ "aria-invalid:ring-destructive/20 aria-invalid:border-destructive"
14
+ ],
15
+ variants: {
16
+ size: {
17
+ default: "h-6 w-11",
18
+ sm: "h-5 w-9"
19
+ }
20
+ },
21
+ defaultVariants: {
22
+ size: "default"
23
+ }
24
+ });
25
+ var switchThumb = tv({
26
+ base: [
27
+ "pointer-events-none block rounded-full bg-background",
28
+ "shadow-sm ring-0 transition-transform",
29
+ "data-[state=unchecked]:translate-x-0"
30
+ ],
31
+ variants: {
32
+ size: {
33
+ default: "size-5 data-[state=checked]:translate-x-5",
34
+ sm: "size-4 data-[state=checked]:translate-x-4"
35
+ }
36
+ },
37
+ defaultVariants: {
38
+ size: "default"
39
+ }
40
+ });
41
+ var Switch = ({
42
+ defaultChecked = false,
43
+ checked,
44
+ onCheckedChange,
45
+ size,
46
+ class: className,
47
+ children,
48
+ onClick,
49
+ ...rest
50
+ }) => {
51
+ const [localChecked, setLocalChecked] = useState(defaultChecked);
52
+ const isControlled = typeof checked === "boolean";
53
+ const nextChecked = isControlled ? checked : localChecked;
54
+ return /* @__PURE__ */ jsxs("span", { "data-slot": "switch-root", class: "inline-flex items-center gap-2", children: [
55
+ /* @__PURE__ */ jsx(
56
+ "button",
57
+ {
58
+ type: "button",
59
+ role: "switch",
60
+ "aria-checked": nextChecked,
61
+ "data-slot": "switch",
62
+ "data-state": nextChecked ? "checked" : "unchecked",
63
+ "data-size": size ?? "default",
64
+ class: cn(switchRoot({ size, class: className })),
65
+ onClick: (event) => {
66
+ const updated = !nextChecked;
67
+ if (!isControlled) {
68
+ setLocalChecked(updated);
69
+ }
70
+ onCheckedChange?.(updated);
71
+ onClick?.(event);
72
+ },
73
+ ...rest,
74
+ children: /* @__PURE__ */ jsx(
75
+ "span",
76
+ {
77
+ "data-slot": "switch-thumb",
78
+ "data-size": size ?? "default",
79
+ "data-state": nextChecked ? "checked" : "unchecked",
80
+ class: cn(switchThumb({ size }))
81
+ }
82
+ )
83
+ }
84
+ ),
85
+ children ? /* @__PURE__ */ jsx("span", { "data-slot": "switch-label", children }) : null
86
+ ] });
87
+ };
88
+
89
+ // src/components/switch/index.ts
90
+ var switch_default = Switch;
91
+
92
+ export { Switch, switch_default };
93
+ //# sourceMappingURL=chunk-5KS2VSX2.js.map
94
+ //# sourceMappingURL=chunk-5KS2VSX2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/switch/Switch.tsx","../src/components/switch/index.ts"],"names":[],"mappings":";;;;;AAKA,IAAM,aAAa,EAAA,CAAG;AAAA,EACpB,IAAA,EAAM;AAAA,IACJ,0GAAA;AAAA,IACA,6BAAA;AAAA,IACA,iDAAA;AAAA,IACA,iDAAA;AAAA,IACA,2IAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM;AAAA,MACJ,OAAA,EAAS,UAAA;AAAA,MACT,EAAA,EAAI;AAAA;AACN,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,IAAA,EAAM;AAAA;AAEV,CAAC,CAAA;AAED,IAAM,cAAc,EAAA,CAAG;AAAA,EACrB,IAAA,EAAM;AAAA,IACJ,sDAAA;AAAA,IACA,uCAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM;AAAA,MACJ,OAAA,EAAS,2CAAA;AAAA,MACT,EAAA,EAAI;AAAA;AACN,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,IAAA,EAAM;AAAA;AAEV,CAAC,CAAA;AAaM,IAAM,SAAS,CAAC;AAAA,EACrB,cAAA,GAAiB,KAAA;AAAA,EACjB,OAAA;AAAA,EACA,eAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA,EAAO,SAAA;AAAA,EACP,QAAA;AAAA,EACA,OAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAmB;AACjB,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAI,SAAS,cAAc,CAAA;AAC/D,EAAA,MAAM,YAAA,GAAe,OAAO,OAAA,KAAY,SAAA;AACxC,EAAA,MAAM,WAAA,GAAc,eAAe,OAAA,GAAU,YAAA;AAE7C,EAAA,uBACE,IAAA,CAAC,MAAA,EAAA,EAAK,WAAA,EAAU,aAAA,EAAc,OAAM,gCAAA,EAClC,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,QAAA;AAAA,QACL,IAAA,EAAK,QAAA;AAAA,QACL,cAAA,EAAc,WAAA;AAAA,QACd,WAAA,EAAU,QAAA;AAAA,QACV,YAAA,EAAY,cAAc,SAAA,GAAY,WAAA;AAAA,QACtC,aAAW,IAAA,IAAQ,SAAA;AAAA,QACnB,KAAA,EAAO,GAAG,UAAA,CAAW,EAAE,MAAM,KAAA,EAAO,SAAA,EAAW,CAAC,CAAA;AAAA,QAChD,OAAA,EAAS,CAAC,KAAA,KAAU;AAClB,UAAA,MAAM,UAAU,CAAC,WAAA;AACjB,UAAA,IAAI,CAAC,YAAA,EAAc;AACjB,YAAA,eAAA,CAAgB,OAAO,CAAA;AAAA,UACzB;AACA,UAAA,eAAA,GAAkB,OAAO,CAAA;AACzB,UAAA,OAAA,GAAU,KAAK,CAAA;AAAA,QACjB,CAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEJ,QAAA,kBAAA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,WAAA,EAAU,cAAA;AAAA,YACV,aAAW,IAAA,IAAQ,SAAA;AAAA,YACnB,YAAA,EAAY,cAAc,SAAA,GAAY,WAAA;AAAA,YACtC,OAAO,EAAA,CAAG,WAAA,CAAY,EAAE,IAAA,EAAM,CAAC;AAAA;AAAA;AACjC;AAAA,KACF;AAAA,IACC,2BAAW,GAAA,CAAC,MAAA,EAAA,EAAK,WAAA,EAAU,cAAA,EAAgB,UAAS,CAAA,GAAU;AAAA,GAAA,EACjE,CAAA;AAEJ;;;AC7FA,IAAO,cAAA,GAAQ","file":"chunk-5KS2VSX2.js","sourcesContent":["import type { ComponentChildren, JSX } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { cn } from \"../../lib/utils\";\n\nconst switchRoot = tv({\n base: [\n \"peer inline-flex shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-xs\",\n \"outline-none transition-all\",\n \"focus-visible:ring-3 focus-visible:ring-ring/50\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n \"data-[state=checked]:bg-primary data-[state=checked]:saturate-125 data-[state=unchecked]:bg-input dark:data-[state=unchecked]:bg-input/80\",\n \"aria-invalid:ring-destructive/20 aria-invalid:border-destructive\",\n ],\n variants: {\n size: {\n default: \"h-6 w-11\",\n sm: \"h-5 w-9\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n});\n\nconst switchThumb = tv({\n base: [\n \"pointer-events-none block rounded-full bg-background\",\n \"shadow-sm ring-0 transition-transform\",\n \"data-[state=unchecked]:translate-x-0\",\n ],\n variants: {\n size: {\n default: \"size-5 data-[state=checked]:translate-x-5\",\n sm: \"size-4 data-[state=checked]:translate-x-4\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n});\n\ntype SwitchVariants = VariantProps<typeof switchRoot>;\n\nexport type SwitchProps = Omit<JSX.ButtonHTMLAttributes<HTMLButtonElement>, \"class\"> &\n SwitchVariants & {\n class?: string;\n defaultChecked?: boolean;\n checked?: boolean;\n onCheckedChange?: (next: boolean) => void;\n children?: ComponentChildren;\n };\n\nexport const Switch = ({\n defaultChecked = false,\n checked,\n onCheckedChange,\n size,\n class: className,\n children,\n onClick,\n ...rest\n}: SwitchProps) => {\n const [localChecked, setLocalChecked] = useState(defaultChecked);\n const isControlled = typeof checked === \"boolean\";\n const nextChecked = isControlled ? checked : localChecked;\n\n return (\n <span data-slot=\"switch-root\" class=\"inline-flex items-center gap-2\">\n <button\n type=\"button\"\n role=\"switch\"\n aria-checked={nextChecked}\n data-slot=\"switch\"\n data-state={nextChecked ? \"checked\" : \"unchecked\"}\n data-size={size ?? \"default\"}\n class={cn(switchRoot({ size, class: className }))}\n onClick={(event) => {\n const updated = !nextChecked;\n if (!isControlled) {\n setLocalChecked(updated);\n }\n onCheckedChange?.(updated);\n onClick?.(event);\n }}\n {...rest}\n >\n <span\n data-slot=\"switch-thumb\"\n data-size={size ?? \"default\"}\n data-state={nextChecked ? \"checked\" : \"unchecked\"}\n class={cn(switchThumb({ size }))}\n />\n </button>\n {children ? <span data-slot=\"switch-label\">{children}</span> : null}\n </span>\n );\n};\n","import { Switch } from \"./Switch\";\n\nexport { Switch };\n\nexport default Switch;\n"]}
@@ -0,0 +1,25 @@
1
+ import { cn } from './chunk-MS2ZNYCJ.js';
2
+ import { jsx } from 'preact/jsx-runtime';
3
+
4
+ var DialogFooter = ({ class: className, children, ...rest }) => /* @__PURE__ */ jsx(
5
+ "div",
6
+ {
7
+ "data-slot": "dialog-footer",
8
+ class: cn("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end", className),
9
+ ...rest,
10
+ children
11
+ }
12
+ );
13
+ var DialogHeader = ({ class: className, children, ...rest }) => /* @__PURE__ */ jsx(
14
+ "div",
15
+ {
16
+ "data-slot": "dialog-header",
17
+ class: cn("flex flex-col gap-2 text-center sm:text-start", className),
18
+ ...rest,
19
+ children
20
+ }
21
+ );
22
+
23
+ export { DialogFooter, DialogHeader };
24
+ //# sourceMappingURL=chunk-5Q4RBIMZ.js.map
25
+ //# sourceMappingURL=chunk-5Q4RBIMZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/dialog/DialogFooter.tsx","../src/components/dialog/DialogHeader.tsx"],"names":["jsx"],"mappings":";;;AAOO,IAAM,YAAA,GAAe,CAAC,EAAE,KAAA,EAAO,WAAW,QAAA,EAAU,GAAG,MAAK,qBACjE,GAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,WAAA,EAAU,eAAA;AAAA,IACV,KAAA,EAAO,EAAA,CAAG,wDAAA,EAA0D,SAAS,CAAA;AAAA,IAC5E,GAAG,IAAA;AAAA,IAEH;AAAA;AACH;ACPK,IAAM,YAAA,GAAe,CAAC,EAAE,KAAA,EAAO,WAAW,QAAA,EAAU,GAAG,IAAA,EAAK,qBACjEA,GAAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,WAAA,EAAU,eAAA;AAAA,IACV,KAAA,EAAO,EAAA,CAAG,+CAAA,EAAiD,SAAS,CAAA;AAAA,IACnE,GAAG,IAAA;AAAA,IAEH;AAAA;AACH","file":"chunk-5Q4RBIMZ.js","sourcesContent":["import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type DialogFooterProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nexport const DialogFooter = ({ class: className, children, ...rest }: DialogFooterProps) => (\n <div\n data-slot=\"dialog-footer\"\n class={cn(\"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end\", className)}\n {...rest}\n >\n {children}\n </div>\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type DialogHeaderProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nexport const DialogHeader = ({ class: className, children, ...rest }: DialogHeaderProps) => (\n <div\n data-slot=\"dialog-header\"\n class={cn(\"flex flex-col gap-2 text-center sm:text-start\", className)}\n {...rest}\n >\n {children}\n </div>\n);\n"]}
@@ -0,0 +1,124 @@
1
+ import { tv } from 'tailwind-variants';
2
+ import { jsx } from 'preact/jsx-runtime';
3
+
4
+ // src/components/card/Card.tsx
5
+ var card = tv({
6
+ base: [
7
+ "bg-card text-card-foreground group/card ring-border flex min-w-0 flex-col rounded-xl ring-1",
8
+ "has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0",
9
+ "*:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl"
10
+ ],
11
+ variants: {
12
+ size: {
13
+ default: "gap-6 py-6",
14
+ sm: "gap-4 py-4 text-sm"
15
+ }
16
+ },
17
+ defaultVariants: {
18
+ size: "default"
19
+ }
20
+ });
21
+ var Card = ({ class: className, size, children, ...rest }) => /* @__PURE__ */ jsx(
22
+ "div",
23
+ {
24
+ class: card({ size, class: className }),
25
+ "data-slot": "card",
26
+ "data-size": size ?? "default",
27
+ ...rest,
28
+ children
29
+ }
30
+ );
31
+ var cardAction = tv({
32
+ base: "col-start-2 row-span-2 row-start-1 shrink-0 self-start justify-self-end"
33
+ });
34
+ var CardAction = ({ class: className, ...rest }) => /* @__PURE__ */ jsx(
35
+ "div",
36
+ {
37
+ class: cardAction({ class: className }),
38
+ "data-slot": "card-action",
39
+ ...rest
40
+ }
41
+ );
42
+ var cardContent = tv({
43
+ base: "px-6 group-data-[size=sm]/card:px-4"
44
+ });
45
+ var CardContent = ({ class: className, ...rest }) => /* @__PURE__ */ jsx(
46
+ "div",
47
+ {
48
+ class: cardContent({ class: className }),
49
+ "data-slot": "card-content",
50
+ ...rest
51
+ }
52
+ );
53
+ var cardDescription = tv({
54
+ base: "min-w-0 break-words text-muted-foreground text-sm group-data-[size=sm]/card:text-xs"
55
+ });
56
+ var CardDescription = ({ class: className, ...rest }) => /* @__PURE__ */ jsx(
57
+ "div",
58
+ {
59
+ class: cardDescription({ class: className }),
60
+ "data-slot": "card-description",
61
+ ...rest
62
+ }
63
+ );
64
+ var cardFooter = tv({
65
+ base: "bg-muted/50 flex items-center rounded-b-xl border-t p-6 group-data-[size=sm]/card:p-4"
66
+ });
67
+ var CardFooter = ({ class: className, ...rest }) => /* @__PURE__ */ jsx(
68
+ "div",
69
+ {
70
+ class: cardFooter({ class: className }),
71
+ "data-slot": "card-footer",
72
+ ...rest
73
+ }
74
+ );
75
+ var cardHeader = tv({
76
+ base: [
77
+ "@container/card-header grid w-full min-w-0 auto-rows-min items-start gap-1.5 px-6 group-data-[size=sm]/card:px-4",
78
+ // minmax(0,1fr) + min-w-0 on title/description keeps CardAction in the second column inside the card (flex preview children)
79
+ "has-data-[slot=card-action]:grid-cols-[minmax(0,1fr)_auto] has-data-[slot=card-description]:grid-rows-[auto_auto]"
80
+ ]
81
+ });
82
+ var CardHeader = ({ class: className, ...rest }) => /* @__PURE__ */ jsx(
83
+ "div",
84
+ {
85
+ class: cardHeader({ class: className }),
86
+ "data-slot": "card-header",
87
+ ...rest
88
+ }
89
+ );
90
+ var cardTitle = tv({
91
+ base: "font-heading min-w-0 break-words text-xl leading-snug font-semibold group-data-[size=sm]/card:text-base"
92
+ });
93
+ var CardTitle = ({ class: className, ...rest }) => /* @__PURE__ */ jsx(
94
+ "div",
95
+ {
96
+ class: cardTitle({ class: className }),
97
+ "data-slot": "card-title",
98
+ ...rest
99
+ }
100
+ );
101
+
102
+ // src/components/card/index.ts
103
+ var CardVariants = {
104
+ card,
105
+ cardAction,
106
+ cardContent,
107
+ cardDescription,
108
+ cardFooter,
109
+ cardHeader,
110
+ cardTitle
111
+ };
112
+ var card_default = {
113
+ Root: Card,
114
+ Header: CardHeader,
115
+ Footer: CardFooter,
116
+ Title: CardTitle,
117
+ Description: CardDescription,
118
+ Content: CardContent,
119
+ Action: CardAction
120
+ };
121
+
122
+ export { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, CardVariants, card_default };
123
+ //# sourceMappingURL=chunk-67J4KBOW.js.map
124
+ //# sourceMappingURL=chunk-67J4KBOW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/card/Card.tsx","../src/components/card/CardAction.tsx","../src/components/card/CardContent.tsx","../src/components/card/CardDescription.tsx","../src/components/card/CardFooter.tsx","../src/components/card/CardHeader.tsx","../src/components/card/CardTitle.tsx","../src/components/card/index.ts"],"names":["tv","jsx"],"mappings":"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","file":"chunk-67J4KBOW.js","sourcesContent":["import type { ComponentChildren, JSX } from \"preact\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\n\nexport const card = tv({\n base: [\n \"bg-card text-card-foreground group/card ring-border flex min-w-0 flex-col rounded-xl ring-1\",\n \"has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0\",\n \"*:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl\",\n ],\n variants: {\n size: {\n default: \"gap-6 py-6\",\n sm: \"gap-4 py-4 text-sm\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n});\n\nexport type CardProps = JSX.HTMLAttributes<HTMLDivElement> &\n VariantProps<typeof card> & {\n children?: ComponentChildren;\n };\n\nexport const Card = ({ class: className, size, children, ...rest }: CardProps) => (\n <div\n class={card({ size, class: className as string | undefined })}\n data-slot=\"card\"\n data-size={size ?? \"default\"}\n {...rest}\n >\n {children}\n </div>\n);\n","import type { JSX } from \"preact\";\nimport { tv } from \"tailwind-variants\";\n\nexport const cardAction = tv({\n base: \"col-start-2 row-span-2 row-start-1 shrink-0 self-start justify-self-end\",\n});\n\nexport type CardActionProps = JSX.HTMLAttributes<HTMLDivElement>;\n\nexport const CardAction = ({ class: className, ...rest }: CardActionProps) => (\n <div\n class={cardAction({ class: className as string | undefined })}\n data-slot=\"card-action\"\n {...rest}\n />\n);\n","import type { JSX } from \"preact\";\nimport { tv } from \"tailwind-variants\";\n\nexport const cardContent = tv({\n base: \"px-6 group-data-[size=sm]/card:px-4\",\n});\n\nexport type CardContentProps = JSX.HTMLAttributes<HTMLDivElement>;\n\nexport const CardContent = ({ class: className, ...rest }: CardContentProps) => (\n <div\n class={cardContent({ class: className as string | undefined })}\n data-slot=\"card-content\"\n {...rest}\n />\n);\n","import type { JSX } from \"preact\";\nimport { tv } from \"tailwind-variants\";\n\nexport const cardDescription = tv({\n base: \"min-w-0 break-words text-muted-foreground text-sm group-data-[size=sm]/card:text-xs\",\n});\n\nexport type CardDescriptionProps = JSX.HTMLAttributes<HTMLDivElement>;\n\nexport const CardDescription = ({ class: className, ...rest }: CardDescriptionProps) => (\n <div\n class={cardDescription({ class: className as string | undefined })}\n data-slot=\"card-description\"\n {...rest}\n />\n);\n","import type { JSX } from \"preact\";\nimport { tv } from \"tailwind-variants\";\n\nexport const cardFooter = tv({\n base: \"bg-muted/50 flex items-center rounded-b-xl border-t p-6 group-data-[size=sm]/card:p-4\",\n});\n\nexport type CardFooterProps = JSX.HTMLAttributes<HTMLDivElement>;\n\nexport const CardFooter = ({ class: className, ...rest }: CardFooterProps) => (\n <div\n class={cardFooter({ class: className as string | undefined })}\n data-slot=\"card-footer\"\n {...rest}\n />\n);\n","import type { JSX } from \"preact\";\nimport { tv } from \"tailwind-variants\";\n\nexport const cardHeader = tv({\n base: [\n \"@container/card-header grid w-full min-w-0 auto-rows-min items-start gap-1.5 px-6 group-data-[size=sm]/card:px-4\",\n // minmax(0,1fr) + min-w-0 on title/description keeps CardAction in the second column inside the card (flex preview children)\n \"has-data-[slot=card-action]:grid-cols-[minmax(0,1fr)_auto] has-data-[slot=card-description]:grid-rows-[auto_auto]\",\n ],\n});\n\nexport type CardHeaderProps = JSX.HTMLAttributes<HTMLDivElement>;\n\nexport const CardHeader = ({ class: className, ...rest }: CardHeaderProps) => (\n <div\n class={cardHeader({ class: className as string | undefined })}\n data-slot=\"card-header\"\n {...rest}\n />\n);\n","import type { JSX } from \"preact\";\nimport { tv } from \"tailwind-variants\";\n\nexport const cardTitle = tv({\n base: \"font-heading min-w-0 break-words text-xl leading-snug font-semibold group-data-[size=sm]/card:text-base\",\n});\n\nexport type CardTitleProps = JSX.HTMLAttributes<HTMLDivElement>;\n\nexport const CardTitle = ({ class: className, ...rest }: CardTitleProps) => (\n <div\n class={cardTitle({ class: className as string | undefined })}\n data-slot=\"card-title\"\n {...rest}\n />\n);\n","import { Card, card } from \"./Card\";\nimport { CardAction, cardAction } from \"./CardAction\";\nimport { CardContent, cardContent } from \"./CardContent\";\nimport { CardDescription, cardDescription } from \"./CardDescription\";\nimport { CardFooter, cardFooter } from \"./CardFooter\";\nimport { CardHeader, cardHeader } from \"./CardHeader\";\nimport { CardTitle, cardTitle } from \"./CardTitle\";\n\nconst CardVariants = {\n card,\n cardAction,\n cardContent,\n cardDescription,\n cardFooter,\n cardHeader,\n cardTitle,\n};\n\nexport {\n Card,\n CardAction,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n CardVariants,\n};\n\nexport default {\n Root: Card,\n Header: CardHeader,\n Footer: CardFooter,\n Title: CardTitle,\n Description: CardDescription,\n Content: CardContent,\n Action: CardAction,\n};\n"]}
@@ -0,0 +1,151 @@
1
+ import { InputGroup, InputGroupAddon, InputGroupInput } from './chunk-QZX3RFIC.js';
2
+ import { FieldGroup, Field, FieldLabel } from './chunk-IJ4ZRIR4.js';
3
+ import { Calendar } from './chunk-JNF7FDJO.js';
4
+ import { cn } from './chunk-MS2ZNYCJ.js';
5
+ import { useId, useState } from 'preact/hooks';
6
+ import { jsxs, jsx } from 'preact/jsx-runtime';
7
+
8
+ var WEEKDAY_TWO_LETTER = ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"];
9
+ var ClockGlyph = ({ class: className }) => /* @__PURE__ */ jsxs(
10
+ "svg",
11
+ {
12
+ class: cn("size-3.5 shrink-0 opacity-70", className),
13
+ viewBox: "0 0 24 24",
14
+ fill: "none",
15
+ stroke: "currentColor",
16
+ "stroke-width": "2",
17
+ "aria-hidden": "true",
18
+ children: [
19
+ /* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "10" }),
20
+ /* @__PURE__ */ jsx("path", { d: "M12 6v6l4 2" })
21
+ ]
22
+ }
23
+ );
24
+ var CalendarDateTimePanel = ({
25
+ class: className,
26
+ selected,
27
+ defaultSelected,
28
+ onSelect,
29
+ defaultMonth,
30
+ month,
31
+ onMonthChange,
32
+ locale = "en-US",
33
+ disabled,
34
+ dir,
35
+ showOutsideDays = true,
36
+ captionLayout = "buttons",
37
+ size = "sm",
38
+ startTime: startTimeProp,
39
+ defaultStartTime = "10:30:00",
40
+ onStartTimeChange,
41
+ endTime: endTimeProp,
42
+ defaultEndTime = "12:30:00",
43
+ onEndTimeChange,
44
+ startTimeLabel = "Start Time",
45
+ endTimeLabel = "End Time",
46
+ compactWeekdays = true,
47
+ showWeekdayLeadBorder = false,
48
+ ...rest
49
+ }) => {
50
+ const uid = useId();
51
+ const startId = `kamod-cdtp-s-${uid}`;
52
+ const endId = `kamod-cdtp-e-${uid}`;
53
+ const [innerDate, setInnerDate] = useState(defaultSelected);
54
+ const selectedDate = selected !== void 0 ? selected : innerDate;
55
+ const [innerStart, setInnerStart] = useState(defaultStartTime);
56
+ const [innerEnd, setInnerEnd] = useState(defaultEndTime);
57
+ const startVal = startTimeProp !== void 0 ? startTimeProp : innerStart;
58
+ const endVal = endTimeProp !== void 0 ? endTimeProp : innerEnd;
59
+ const setDate = (d) => {
60
+ if (selected === void 0) setInnerDate(d);
61
+ onSelect?.(d);
62
+ };
63
+ const setStart = (v) => {
64
+ if (startTimeProp === void 0) setInnerStart(v);
65
+ onStartTimeChange?.(v);
66
+ };
67
+ const setEnd = (v) => {
68
+ if (endTimeProp === void 0) setInnerEnd(v);
69
+ onEndTimeChange?.(v);
70
+ };
71
+ const photoCalendarClass = "w-full min-w-0 max-w-full border-0 bg-transparent p-0 shadow-none [&_[data-slot=calendar-day][data-outside=true]]:!text-neutral-400 dark:[&_[data-slot=calendar-day][data-outside=true]]:!text-neutral-500 [&_[data-slot=calendar-day]]:!rounded-full [&_[data-slot=calendar-day]:not(:disabled):hover]:!bg-neutral-200/90 dark:[&_[data-slot=calendar-day]:not(:disabled):hover]:!bg-white/10 [&_[data-slot=calendar-day].bg-primary]:!rounded-xl [&_[data-slot=calendar-day].bg-primary]:!bg-[#1a1a1a] [&_[data-slot=calendar-day].bg-primary]:hover:!bg-[#1a1a1a] [&_[data-slot=calendar-day].bg-primary]:!text-white dark:[&_[data-slot=calendar-day].bg-primary]:!bg-primary dark:[&_[data-slot=calendar-day].bg-primary]:!text-primary-foreground dark:[&_[data-slot=calendar-day].bg-primary]:hover:!bg-primary/90 [&_[data-slot=calendar-day].bg-accent]:!rounded-full";
72
+ return /* @__PURE__ */ jsxs(
73
+ "div",
74
+ {
75
+ "data-slot": "calendar-datetime-panel",
76
+ class: cn(
77
+ "bg-background text-foreground w-full max-w-[min(100%,300px)] rounded-xl border border-[#e0e0e0] p-3.5 shadow-sm dark:border-border",
78
+ className
79
+ ),
80
+ ...rest,
81
+ children: [
82
+ /* @__PURE__ */ jsx(
83
+ Calendar,
84
+ {
85
+ mode: "single",
86
+ dir,
87
+ locale,
88
+ disabled,
89
+ showOutsideDays,
90
+ captionLayout,
91
+ size,
92
+ selected: selectedDate,
93
+ defaultMonth: defaultMonth ?? selectedDate ?? /* @__PURE__ */ new Date(),
94
+ month,
95
+ onMonthChange,
96
+ onSelect: (v) => {
97
+ if (v instanceof Date) setDate(v);
98
+ },
99
+ captionTitleClass: "text-sm font-semibold tracking-tight",
100
+ weekdayLabels: compactWeekdays ? [...WEEKDAY_TWO_LETTER] : void 0,
101
+ showWeekdayLeadBorder,
102
+ class: photoCalendarClass
103
+ }
104
+ ),
105
+ /* @__PURE__ */ jsx("div", { class: "mt-0.5 border-t border-[#e0e0e0] pt-3 dark:border-border", children: /* @__PURE__ */ jsxs(FieldGroup, { class: "gap-2.5", children: [
106
+ /* @__PURE__ */ jsxs(Field, { children: [
107
+ /* @__PURE__ */ jsx(FieldLabel, { class: "text-foreground mb-1 text-xs font-semibold", htmlFor: startId, children: startTimeLabel }),
108
+ /* @__PURE__ */ jsxs(InputGroup, { class: "border-[#e0e0e0] dark:border-input h-9 min-h-9 rounded-full px-0.5 shadow-none", children: [
109
+ /* @__PURE__ */ jsx(InputGroupAddon, { class: "ps-2.5", children: /* @__PURE__ */ jsx(ClockGlyph, {}) }),
110
+ /* @__PURE__ */ jsx(
111
+ InputGroupInput,
112
+ {
113
+ id: startId,
114
+ type: "time",
115
+ step: 1,
116
+ value: startVal,
117
+ onInput: (e) => setStart(e.target.value),
118
+ class: "font-mono text-xs tabular-nums"
119
+ }
120
+ )
121
+ ] })
122
+ ] }),
123
+ /* @__PURE__ */ jsxs(Field, { children: [
124
+ /* @__PURE__ */ jsx(FieldLabel, { class: "text-foreground mb-1 text-xs font-semibold", htmlFor: endId, children: endTimeLabel }),
125
+ /* @__PURE__ */ jsxs(InputGroup, { class: "border-[#e0e0e0] dark:border-input h-9 min-h-9 rounded-full px-0.5 shadow-none", children: [
126
+ /* @__PURE__ */ jsx(InputGroupAddon, { class: "ps-2.5", children: /* @__PURE__ */ jsx(ClockGlyph, {}) }),
127
+ /* @__PURE__ */ jsx(
128
+ InputGroupInput,
129
+ {
130
+ id: endId,
131
+ type: "time",
132
+ step: 1,
133
+ value: endVal,
134
+ onInput: (e) => setEnd(e.target.value),
135
+ class: "font-mono text-xs tabular-nums"
136
+ }
137
+ )
138
+ ] })
139
+ ] })
140
+ ] }) })
141
+ ]
142
+ }
143
+ );
144
+ };
145
+
146
+ // src/components/calendar/index.ts
147
+ var calendar_default = Calendar;
148
+
149
+ export { CalendarDateTimePanel, calendar_default };
150
+ //# sourceMappingURL=chunk-6BK3PIRX.js.map
151
+ //# sourceMappingURL=chunk-6BK3PIRX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/calendar/CalendarDateTimePanel.tsx","../src/components/calendar/index.ts"],"names":[],"mappings":"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","file":"chunk-6BK3PIRX.js","sourcesContent":["import type { JSX } from \"preact\";\nimport { useId, useState } from \"preact/hooks\";\nimport { cn } from \"../../lib/utils\";\nimport { Field, FieldGroup, FieldLabel } from \"../field\";\nimport { InputGroup, InputGroupAddon, InputGroupInput } from \"../input-group\";\nimport type { CalendarProps } from \"./Calendar\";\nimport { Calendar } from \"./Calendar\";\n\nconst WEEKDAY_TWO_LETTER = [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"] as const;\n\nconst ClockGlyph = ({ class: className }: { class?: string }) => (\n <svg\n class={cn(\"size-3.5 shrink-0 opacity-70\", className)}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n aria-hidden=\"true\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"M12 6v6l4 2\" />\n </svg>\n);\n\nexport type CalendarDateTimePanelProps = Omit<JSX.HTMLAttributes<HTMLDivElement>, \"onSelect\"> &\n Pick<\n CalendarProps,\n | \"defaultMonth\"\n | \"month\"\n | \"onMonthChange\"\n | \"locale\"\n | \"disabled\"\n | \"dir\"\n | \"showOutsideDays\"\n | \"captionLayout\"\n | \"size\"\n > & {\n /** Selected calendar day (controlled). */\n selected?: Date;\n /** Initial day when uncontrolled. */\n defaultSelected?: Date;\n onSelect?: (date: Date) => void;\n /** `HH:mm` or `HH:mm:ss` for native `input[type=time]`. */\n startTime?: string;\n defaultStartTime?: string;\n onStartTimeChange?: (value: string) => void;\n endTime?: string;\n defaultEndTime?: string;\n onEndTimeChange?: (value: string) => void;\n startTimeLabel?: string;\n endTimeLabel?: string;\n /** Use two-letter weekday headers (Su–Sa). @default true */\n compactWeekdays?: boolean;\n /** Decorative line left of the first weekday; off by default. */\n showWeekdayLeadBorder?: boolean;\n };\n\n/**\n * Single-month calendar with start/end time fields, styled for a compact “schedule” card (date + time range).\n * Defaults to `size=\"sm\"` on the inner {@link Calendar} for a dense layout; pass `size=\"default\"` for roomier cells.\n */\nexport const CalendarDateTimePanel = ({\n class: className,\n selected,\n defaultSelected,\n onSelect,\n defaultMonth,\n month,\n onMonthChange,\n locale = \"en-US\",\n disabled,\n dir,\n showOutsideDays = true,\n captionLayout = \"buttons\",\n size = \"sm\",\n startTime: startTimeProp,\n defaultStartTime = \"10:30:00\",\n onStartTimeChange,\n endTime: endTimeProp,\n defaultEndTime = \"12:30:00\",\n onEndTimeChange,\n startTimeLabel = \"Start Time\",\n endTimeLabel = \"End Time\",\n compactWeekdays = true,\n showWeekdayLeadBorder = false,\n ...rest\n}: CalendarDateTimePanelProps) => {\n const uid = useId();\n const startId = `kamod-cdtp-s-${uid}`;\n const endId = `kamod-cdtp-e-${uid}`;\n\n const [innerDate, setInnerDate] = useState<Date | undefined>(defaultSelected);\n const selectedDate = selected !== undefined ? selected : innerDate;\n\n const [innerStart, setInnerStart] = useState(defaultStartTime);\n const [innerEnd, setInnerEnd] = useState(defaultEndTime);\n const startVal = startTimeProp !== undefined ? startTimeProp : innerStart;\n const endVal = endTimeProp !== undefined ? endTimeProp : innerEnd;\n\n const setDate = (d: Date) => {\n if (selected === undefined) setInnerDate(d);\n onSelect?.(d);\n };\n\n const setStart = (v: string) => {\n if (startTimeProp === undefined) setInnerStart(v);\n onStartTimeChange?.(v);\n };\n\n const setEnd = (v: string) => {\n if (endTimeProp === undefined) setInnerEnd(v);\n onEndTimeChange?.(v);\n };\n\n const photoCalendarClass =\n \"w-full min-w-0 max-w-full border-0 bg-transparent p-0 shadow-none \" +\n \"[&_[data-slot=calendar-day][data-outside=true]]:!text-neutral-400 dark:[&_[data-slot=calendar-day][data-outside=true]]:!text-neutral-500 \" +\n \"[&_[data-slot=calendar-day]]:!rounded-full [&_[data-slot=calendar-day]:not(:disabled):hover]:!bg-neutral-200/90 dark:[&_[data-slot=calendar-day]:not(:disabled):hover]:!bg-white/10 \" +\n \"[&_[data-slot=calendar-day].bg-primary]:!rounded-xl [&_[data-slot=calendar-day].bg-primary]:!bg-[#1a1a1a] [&_[data-slot=calendar-day].bg-primary]:hover:!bg-[#1a1a1a] [&_[data-slot=calendar-day].bg-primary]:!text-white \" +\n \"dark:[&_[data-slot=calendar-day].bg-primary]:!bg-primary dark:[&_[data-slot=calendar-day].bg-primary]:!text-primary-foreground dark:[&_[data-slot=calendar-day].bg-primary]:hover:!bg-primary/90 \" +\n \"[&_[data-slot=calendar-day].bg-accent]:!rounded-full\";\n\n return (\n <div\n data-slot=\"calendar-datetime-panel\"\n class={cn(\n \"bg-background text-foreground w-full max-w-[min(100%,300px)] rounded-xl border border-[#e0e0e0] p-3.5 shadow-sm dark:border-border\",\n className,\n )}\n {...rest}\n >\n <Calendar\n mode=\"single\"\n dir={dir}\n locale={locale}\n disabled={disabled}\n showOutsideDays={showOutsideDays}\n captionLayout={captionLayout}\n size={size}\n selected={selectedDate}\n defaultMonth={defaultMonth ?? selectedDate ?? new Date()}\n month={month}\n onMonthChange={onMonthChange}\n onSelect={(v) => {\n if (v instanceof Date) setDate(v);\n }}\n captionTitleClass=\"text-sm font-semibold tracking-tight\"\n weekdayLabels={compactWeekdays ? [...WEEKDAY_TWO_LETTER] : undefined}\n showWeekdayLeadBorder={showWeekdayLeadBorder}\n class={photoCalendarClass}\n />\n <div class=\"mt-0.5 border-t border-[#e0e0e0] pt-3 dark:border-border\">\n <FieldGroup class=\"gap-2.5\">\n <Field>\n <FieldLabel class=\"text-foreground mb-1 text-xs font-semibold\" htmlFor={startId}>\n {startTimeLabel}\n </FieldLabel>\n <InputGroup class=\"border-[#e0e0e0] dark:border-input h-9 min-h-9 rounded-full px-0.5 shadow-none\">\n <InputGroupAddon class=\"ps-2.5\">\n <ClockGlyph />\n </InputGroupAddon>\n <InputGroupInput\n id={startId}\n type=\"time\"\n step={1}\n value={startVal}\n onInput={(e) => setStart((e.target as HTMLInputElement).value)}\n class=\"font-mono text-xs tabular-nums\"\n />\n </InputGroup>\n </Field>\n <Field>\n <FieldLabel class=\"text-foreground mb-1 text-xs font-semibold\" htmlFor={endId}>\n {endTimeLabel}\n </FieldLabel>\n <InputGroup class=\"border-[#e0e0e0] dark:border-input h-9 min-h-9 rounded-full px-0.5 shadow-none\">\n <InputGroupAddon class=\"ps-2.5\">\n <ClockGlyph />\n </InputGroupAddon>\n <InputGroupInput\n id={endId}\n type=\"time\"\n step={1}\n value={endVal}\n onInput={(e) => setEnd((e.target as HTMLInputElement).value)}\n class=\"font-mono text-xs tabular-nums\"\n />\n </InputGroup>\n </Field>\n </FieldGroup>\n </div>\n </div>\n );\n};\n","import { Calendar } from \"./Calendar\";\n\nexport type {\n CalendarDisabledProp,\n CalendarMode,\n CalendarProps,\n CalendarSize,\n DateRange,\n} from \"./Calendar\";\nexport type { CalendarDateTimePanelProps } from \"./CalendarDateTimePanel\";\nexport { CalendarDateTimePanel } from \"./CalendarDateTimePanel\";\nexport { Calendar };\n\nexport default Calendar;\n"]}
@@ -0,0 +1,21 @@
1
+ import { cn } from './chunk-MS2ZNYCJ.js';
2
+ import { jsx } from 'preact/jsx-runtime';
3
+
4
+ var Video = ({ class: className, controls = true, children, ...rest }) => (
5
+ // Captions are the consumer's responsibility (passed as <track> via children).
6
+ // oxlint-disable-next-line jsx-a11y/media-has-caption
7
+ /* @__PURE__ */ jsx(
8
+ "video",
9
+ {
10
+ "data-slot": "video",
11
+ class: cn("block w-full rounded-md border", className),
12
+ controls,
13
+ ...rest,
14
+ children
15
+ }
16
+ )
17
+ );
18
+
19
+ export { Video };
20
+ //# sourceMappingURL=chunk-6FYSVMH7.js.map
21
+ //# sourceMappingURL=chunk-6FYSVMH7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/video/Video.tsx"],"names":[],"mappings":";;;AAOO,IAAM,KAAA,GAAQ,CAAC,EAAE,KAAA,EAAO,WAAW,QAAA,GAAW,IAAA,EAAM,QAAA,EAAU,GAAG,IAAA,EAAK;AAAA;AAAA;AAAA,kBAG3E,GAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,OAAA;AAAA,MACV,KAAA,EAAO,EAAA,CAAG,gCAAA,EAAkC,SAAS,CAAA;AAAA,MACrD,QAAA;AAAA,MACC,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA;AACH","file":"chunk-6FYSVMH7.js","sourcesContent":["import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type VideoProps = JSX.VideoHTMLAttributes<HTMLVideoElement> & {\n children?: ComponentChildren;\n};\n\nexport const Video = ({ class: className, controls = true, children, ...rest }: VideoProps) => (\n // Captions are the consumer's responsibility (passed as <track> via children).\n // oxlint-disable-next-line jsx-a11y/media-has-caption\n <video\n data-slot=\"video\"\n class={cn(\"block w-full rounded-md border\", className)}\n controls={controls}\n {...rest}\n >\n {children}\n </video>\n);\n"]}
@@ -0,0 +1,31 @@
1
+ import { tv } from 'tailwind-variants';
2
+ import { jsx } from 'preact/jsx-runtime';
3
+
4
+ // src/components/input/Input.tsx
5
+ var input = tv({
6
+ base: [
7
+ "border-input dark:bg-input/30 text-foreground min-w-0 w-full rounded-md border bg-transparent shadow-xs",
8
+ "outline-none focus-visible:border-outline focus-visible:ring-outline/50 transition-[color,box-shadow] focus-visible:ring-3",
9
+ "selection:bg-primary/20 selection:text-foreground",
10
+ "file:text-foreground file:my-auto file:me-4 file:h-full file:border-0 file:bg-transparent file:text-sm file:font-medium",
11
+ "disabled:cursor-not-allowed disabled:opacity-50",
12
+ "aria-invalid:border-error aria-invalid:focus-visible:ring-error/40",
13
+ "peer placeholder:text-muted-foreground"
14
+ ],
15
+ variants: {
16
+ size: { sm: "h-7 px-2.5 text-sm", md: "h-8 px-3 text-sm", lg: "h-9 px-3.5 text-base" }
17
+ },
18
+ defaultVariants: { size: "md" }
19
+ });
20
+ var Input = ({ size, class: className, ...rest }) => /* @__PURE__ */ jsx(
21
+ "input",
22
+ {
23
+ class: input({ size, class: className }),
24
+ "data-slot": "input",
25
+ ...rest
26
+ }
27
+ );
28
+
29
+ export { Input, input };
30
+ //# sourceMappingURL=chunk-6RASPU5N.js.map
31
+ //# sourceMappingURL=chunk-6RASPU5N.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/input/Input.tsx"],"names":[],"mappings":";;;;AAGO,IAAM,QAAQ,EAAA,CAAG;AAAA,EACtB,IAAA,EAAM;AAAA,IACJ,yGAAA;AAAA,IACA,4HAAA;AAAA,IACA,mDAAA;AAAA,IACA,yHAAA;AAAA,IACA,iDAAA;AAAA,IACA,oEAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,QAAA,EAAU;AAAA,IACR,MAAM,EAAE,EAAA,EAAI,sBAAsB,EAAA,EAAI,kBAAA,EAAoB,IAAI,sBAAA;AAAuB,GACvF;AAAA,EACA,eAAA,EAAiB,EAAE,IAAA,EAAM,IAAA;AAC3B,CAAC;AAKM,IAAM,KAAA,GAAQ,CAAC,EAAE,IAAA,EAAM,OAAO,SAAA,EAAW,GAAG,MAAK,qBACtD,GAAA;AAAA,EAAC,OAAA;AAAA,EAAA;AAAA,IACC,OAAO,KAAA,CAAM,EAAE,IAAA,EAAM,KAAA,EAAO,WAAiC,CAAA;AAAA,IAC7D,WAAA,EAAU,OAAA;AAAA,IACT,GAAG;AAAA;AACN","file":"chunk-6RASPU5N.js","sourcesContent":["import type { JSX } from \"preact\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\n\nexport const input = tv({\n base: [\n \"border-input dark:bg-input/30 text-foreground min-w-0 w-full rounded-md border bg-transparent shadow-xs\",\n \"outline-none focus-visible:border-outline focus-visible:ring-outline/50 transition-[color,box-shadow] focus-visible:ring-3\",\n \"selection:bg-primary/20 selection:text-foreground\",\n \"file:text-foreground file:my-auto file:me-4 file:h-full file:border-0 file:bg-transparent file:text-sm file:font-medium\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n \"aria-invalid:border-error aria-invalid:focus-visible:ring-error/40\",\n \"peer placeholder:text-muted-foreground\",\n ],\n variants: {\n size: { sm: \"h-7 px-2.5 text-sm\", md: \"h-8 px-3 text-sm\", lg: \"h-9 px-3.5 text-base\" },\n },\n defaultVariants: { size: \"md\" },\n});\n\nexport type InputProps = Omit<JSX.InputHTMLAttributes<HTMLInputElement>, \"size\"> &\n VariantProps<typeof input>;\n\nexport const Input = ({ size, class: className, ...rest }: InputProps) => (\n <input\n class={input({ size, class: className as string | undefined })}\n data-slot=\"input\"\n {...rest}\n />\n);\n"]}