@iamsaroj/smart-ui 0.2.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 (853) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/LICENSE +21 -0
  3. package/README.md +49 -0
  4. package/dist/calendar-engine/agenda-view.d.ts +8 -0
  5. package/dist/calendar-engine/agenda-view.d.ts.map +1 -0
  6. package/dist/calendar-engine/agenda-view.js +26 -0
  7. package/dist/calendar-engine/agenda-view.js.map +1 -0
  8. package/dist/calendar-engine/booking.d.ts +13 -0
  9. package/dist/calendar-engine/booking.d.ts.map +1 -0
  10. package/dist/calendar-engine/booking.js +45 -0
  11. package/dist/calendar-engine/booking.js.map +1 -0
  12. package/dist/calendar-engine/calendar-utils.d.ts +74 -0
  13. package/dist/calendar-engine/calendar-utils.d.ts.map +1 -0
  14. package/dist/calendar-engine/calendar-utils.js +221 -0
  15. package/dist/calendar-engine/calendar-utils.js.map +1 -0
  16. package/dist/calendar-engine/calendar.d.ts +62 -0
  17. package/dist/calendar-engine/calendar.d.ts.map +1 -0
  18. package/dist/calendar-engine/calendar.js +81 -0
  19. package/dist/calendar-engine/calendar.js.map +1 -0
  20. package/dist/calendar-engine/event-color.d.ts +20 -0
  21. package/dist/calendar-engine/event-color.d.ts.map +1 -0
  22. package/dist/calendar-engine/event-color.js +59 -0
  23. package/dist/calendar-engine/event-color.js.map +1 -0
  24. package/dist/calendar-engine/index.d.ts +11 -0
  25. package/dist/calendar-engine/index.d.ts.map +1 -0
  26. package/dist/calendar-engine/index.js +6 -0
  27. package/dist/calendar-engine/index.js.map +1 -0
  28. package/dist/calendar-engine/month-view.d.ts +10 -0
  29. package/dist/calendar-engine/month-view.d.ts.map +1 -0
  30. package/dist/calendar-engine/month-view.js +72 -0
  31. package/dist/calendar-engine/month-view.js.map +1 -0
  32. package/dist/calendar-engine/recurrence.d.ts +47 -0
  33. package/dist/calendar-engine/recurrence.d.ts.map +1 -0
  34. package/dist/calendar-engine/recurrence.js +209 -0
  35. package/dist/calendar-engine/recurrence.js.map +1 -0
  36. package/dist/calendar-engine/shared.d.ts +72 -0
  37. package/dist/calendar-engine/shared.d.ts.map +1 -0
  38. package/dist/calendar-engine/shared.js +34 -0
  39. package/dist/calendar-engine/shared.js.map +1 -0
  40. package/dist/calendar-engine/time-grid-view.d.ts +13 -0
  41. package/dist/calendar-engine/time-grid-view.d.ts.map +1 -0
  42. package/dist/calendar-engine/time-grid-view.js +203 -0
  43. package/dist/calendar-engine/time-grid-view.js.map +1 -0
  44. package/dist/calendar-engine/types.d.ts +138 -0
  45. package/dist/calendar-engine/types.d.ts.map +1 -0
  46. package/dist/calendar-engine/types.js +2 -0
  47. package/dist/calendar-engine/types.js.map +1 -0
  48. package/dist/calendar-engine/use-calendar.d.ts +7 -0
  49. package/dist/calendar-engine/use-calendar.d.ts.map +1 -0
  50. package/dist/calendar-engine/use-calendar.js +25 -0
  51. package/dist/calendar-engine/use-calendar.js.map +1 -0
  52. package/dist/components/accordion.d.ts +7 -0
  53. package/dist/components/accordion.d.ts.map +1 -0
  54. package/dist/components/accordion.js +10 -0
  55. package/dist/components/accordion.js.map +1 -0
  56. package/dist/components/alert-dialog.d.ts +19 -0
  57. package/dist/components/alert-dialog.d.ts.map +1 -0
  58. package/dist/components/alert-dialog.js +18 -0
  59. package/dist/components/alert-dialog.js.map +1 -0
  60. package/dist/components/alert.d.ts +11 -0
  61. package/dist/components/alert.d.ts.map +1 -0
  62. package/dist/components/alert.js +20 -0
  63. package/dist/components/alert.js.map +1 -0
  64. package/dist/components/aspect-ratio.d.ts +5 -0
  65. package/dist/components/aspect-ratio.d.ts.map +1 -0
  66. package/dist/components/aspect-ratio.js +7 -0
  67. package/dist/components/aspect-ratio.js.map +1 -0
  68. package/dist/components/avatar.d.ts +12 -0
  69. package/dist/components/avatar.d.ts.map +1 -0
  70. package/dist/components/avatar.js +11 -0
  71. package/dist/components/avatar.js.map +1 -0
  72. package/dist/components/badge.d.ts +8 -0
  73. package/dist/components/badge.d.ts.map +1 -0
  74. package/dist/components/badge.js +33 -0
  75. package/dist/components/badge.js.map +1 -0
  76. package/dist/components/breadcrumb.d.ts +11 -0
  77. package/dist/components/breadcrumb.d.ts.map +1 -0
  78. package/dist/components/breadcrumb.js +23 -0
  79. package/dist/components/breadcrumb.js.map +1 -0
  80. package/dist/components/button.d.ts +9 -0
  81. package/dist/components/button.d.ts.map +1 -0
  82. package/dist/components/button.js +34 -0
  83. package/dist/components/button.js.map +1 -0
  84. package/dist/components/calendar.d.ts +11 -0
  85. package/dist/components/calendar.d.ts.map +1 -0
  86. package/dist/components/calendar.js +77 -0
  87. package/dist/components/calendar.js.map +1 -0
  88. package/dist/components/card.d.ts +12 -0
  89. package/dist/components/card.d.ts.map +1 -0
  90. package/dist/components/card.js +11 -0
  91. package/dist/components/card.js.map +1 -0
  92. package/dist/components/carousel.d.ts +29 -0
  93. package/dist/components/carousel.d.ts.map +1 -0
  94. package/dist/components/carousel.js +94 -0
  95. package/dist/components/carousel.js.map +1 -0
  96. package/dist/components/chart.d.ts +45 -0
  97. package/dist/components/chart.d.ts.map +1 -0
  98. package/dist/components/chart.js +133 -0
  99. package/dist/components/chart.js.map +1 -0
  100. package/dist/components/checkbox.d.ts +4 -0
  101. package/dist/components/checkbox.d.ts.map +1 -0
  102. package/dist/components/checkbox.js +8 -0
  103. package/dist/components/checkbox.js.map +1 -0
  104. package/dist/components/collapsible.d.ts +6 -0
  105. package/dist/components/collapsible.d.ts.map +1 -0
  106. package/dist/components/collapsible.js +7 -0
  107. package/dist/components/collapsible.js.map +1 -0
  108. package/dist/components/combobox.d.ts +35 -0
  109. package/dist/components/combobox.d.ts.map +1 -0
  110. package/dist/components/combobox.js +45 -0
  111. package/dist/components/combobox.js.map +1 -0
  112. package/dist/components/command.d.ts +20 -0
  113. package/dist/components/command.d.ts.map +1 -0
  114. package/dist/components/command.js +18 -0
  115. package/dist/components/command.js.map +1 -0
  116. package/dist/components/context-menu.d.ts +30 -0
  117. package/dist/components/context-menu.d.ts.map +1 -0
  118. package/dist/components/context-menu.js +22 -0
  119. package/dist/components/context-menu.js.map +1 -0
  120. package/dist/components/data-table.d.ts +12 -0
  121. package/dist/components/data-table.d.ts.map +1 -0
  122. package/dist/components/data-table.js +44 -0
  123. package/dist/components/data-table.js.map +1 -0
  124. package/dist/components/date-picker.d.ts +33 -0
  125. package/dist/components/date-picker.d.ts.map +1 -0
  126. package/dist/components/date-picker.js +29 -0
  127. package/dist/components/date-picker.js.map +1 -0
  128. package/dist/components/dialog.d.ts +18 -0
  129. package/dist/components/dialog.d.ts.map +1 -0
  130. package/dist/components/dialog.js +18 -0
  131. package/dist/components/dialog.js.map +1 -0
  132. package/dist/components/drawer.d.ts +14 -0
  133. package/dist/components/drawer.d.ts.map +1 -0
  134. package/dist/components/drawer.js +15 -0
  135. package/dist/components/drawer.js.map +1 -0
  136. package/dist/components/dropdown-menu.d.ts +30 -0
  137. package/dist/components/dropdown-menu.d.ts.map +1 -0
  138. package/dist/components/dropdown-menu.js +22 -0
  139. package/dist/components/dropdown-menu.js.map +1 -0
  140. package/dist/components/hover-card.d.ts +6 -0
  141. package/dist/components/hover-card.d.ts.map +1 -0
  142. package/dist/components/hover-card.js +8 -0
  143. package/dist/components/hover-card.js.map +1 -0
  144. package/dist/components/input-group.d.ts +19 -0
  145. package/dist/components/input-group.d.ts.map +1 -0
  146. package/dist/components/input-group.js +46 -0
  147. package/dist/components/input-group.js.map +1 -0
  148. package/dist/components/input-otp.d.ts +12 -0
  149. package/dist/components/input-otp.d.ts.map +1 -0
  150. package/dist/components/input-otp.js +16 -0
  151. package/dist/components/input-otp.js.map +1 -0
  152. package/dist/components/input.d.ts +4 -0
  153. package/dist/components/input.d.ts.map +1 -0
  154. package/dist/components/input.js +6 -0
  155. package/dist/components/input.js.map +1 -0
  156. package/dist/components/kbd.d.ts +5 -0
  157. package/dist/components/kbd.d.ts.map +1 -0
  158. package/dist/components/kbd.js +6 -0
  159. package/dist/components/kbd.js.map +1 -0
  160. package/dist/components/label.d.ts +4 -0
  161. package/dist/components/label.d.ts.map +1 -0
  162. package/dist/components/label.js +5 -0
  163. package/dist/components/label.js.map +1 -0
  164. package/dist/components/menubar.d.ts +30 -0
  165. package/dist/components/menubar.d.ts.map +1 -0
  166. package/dist/components/menubar.js +24 -0
  167. package/dist/components/menubar.js.map +1 -0
  168. package/dist/components/navigation-menu.d.ts +12 -0
  169. package/dist/components/navigation-menu.d.ts.map +1 -0
  170. package/dist/components/navigation-menu.js +18 -0
  171. package/dist/components/navigation-menu.js.map +1 -0
  172. package/dist/components/pagination.d.ts +18 -0
  173. package/dist/components/pagination.d.ts.map +1 -0
  174. package/dist/components/pagination.js +13 -0
  175. package/dist/components/pagination.js.map +1 -0
  176. package/dist/components/popover.d.ts +10 -0
  177. package/dist/components/popover.d.ts.map +1 -0
  178. package/dist/components/popover.js +12 -0
  179. package/dist/components/popover.js.map +1 -0
  180. package/dist/components/progress.d.ts +8 -0
  181. package/dist/components/progress.d.ts.map +1 -0
  182. package/dist/components/progress.js +10 -0
  183. package/dist/components/progress.js.map +1 -0
  184. package/dist/components/radio-group.d.ts +6 -0
  185. package/dist/components/radio-group.d.ts.map +1 -0
  186. package/dist/components/radio-group.js +9 -0
  187. package/dist/components/radio-group.js.map +1 -0
  188. package/dist/components/scroll-area.d.ts +5 -0
  189. package/dist/components/scroll-area.d.ts.map +1 -0
  190. package/dist/components/scroll-area.js +8 -0
  191. package/dist/components/scroll-area.js.map +1 -0
  192. package/dist/components/select.d.ts +16 -0
  193. package/dist/components/select.d.ts.map +1 -0
  194. package/dist/components/select.js +16 -0
  195. package/dist/components/select.js.map +1 -0
  196. package/dist/components/separator.d.ts +4 -0
  197. package/dist/components/separator.d.ts.map +1 -0
  198. package/dist/components/separator.js +6 -0
  199. package/dist/components/separator.js.map +1 -0
  200. package/dist/components/sheet.d.ts +15 -0
  201. package/dist/components/sheet.d.ts.map +1 -0
  202. package/dist/components/sheet.js +18 -0
  203. package/dist/components/sheet.js.map +1 -0
  204. package/dist/components/sidebar.d.ts +64 -0
  205. package/dist/components/sidebar.d.ts.map +1 -0
  206. package/dist/components/sidebar.js +224 -0
  207. package/dist/components/sidebar.js.map +1 -0
  208. package/dist/components/skeleton.d.ts +3 -0
  209. package/dist/components/skeleton.d.ts.map +1 -0
  210. package/dist/components/skeleton.js +5 -0
  211. package/dist/components/skeleton.js.map +1 -0
  212. package/dist/components/slider.d.ts +4 -0
  213. package/dist/components/slider.d.ts.map +1 -0
  214. package/dist/components/slider.js +13 -0
  215. package/dist/components/slider.js.map +1 -0
  216. package/dist/components/sonner.d.ts +4 -0
  217. package/dist/components/sonner.d.ts.map +1 -0
  218. package/dist/components/sonner.js +25 -0
  219. package/dist/components/sonner.js.map +1 -0
  220. package/dist/components/switch.d.ts +6 -0
  221. package/dist/components/switch.d.ts.map +1 -0
  222. package/dist/components/switch.js +7 -0
  223. package/dist/components/switch.js.map +1 -0
  224. package/dist/components/table.d.ts +11 -0
  225. package/dist/components/table.d.ts.map +1 -0
  226. package/dist/components/table.js +12 -0
  227. package/dist/components/table.js.map +1 -0
  228. package/dist/components/tabs.d.ts +11 -0
  229. package/dist/components/tabs.d.ts.map +1 -0
  230. package/dist/components/tabs.js +23 -0
  231. package/dist/components/tabs.js.map +1 -0
  232. package/dist/components/textarea.d.ts +4 -0
  233. package/dist/components/textarea.d.ts.map +1 -0
  234. package/dist/components/textarea.js +5 -0
  235. package/dist/components/textarea.js.map +1 -0
  236. package/dist/components/toggle-group.d.ts +11 -0
  237. package/dist/components/toggle-group.d.ts.map +1 -0
  238. package/dist/components/toggle-group.js +22 -0
  239. package/dist/components/toggle-group.js.map +1 -0
  240. package/dist/components/toggle.d.ts +9 -0
  241. package/dist/components/toggle.d.ts.map +1 -0
  242. package/dist/components/toggle.js +25 -0
  243. package/dist/components/toggle.js.map +1 -0
  244. package/dist/components/tooltip.d.ts +7 -0
  245. package/dist/components/tooltip.d.ts.map +1 -0
  246. package/dist/components/tooltip.js +10 -0
  247. package/dist/components/tooltip.js.map +1 -0
  248. package/dist/data-grid/action-column-cell.d.ts +41 -0
  249. package/dist/data-grid/action-column-cell.d.ts.map +1 -0
  250. package/dist/data-grid/action-column-cell.js +114 -0
  251. package/dist/data-grid/action-column-cell.js.map +1 -0
  252. package/dist/data-grid/action-column.d.ts +144 -0
  253. package/dist/data-grid/action-column.d.ts.map +1 -0
  254. package/dist/data-grid/action-column.js +156 -0
  255. package/dist/data-grid/action-column.js.map +1 -0
  256. package/dist/data-grid/create-page-fetcher.d.ts +57 -0
  257. package/dist/data-grid/create-page-fetcher.d.ts.map +1 -0
  258. package/dist/data-grid/create-page-fetcher.js +41 -0
  259. package/dist/data-grid/create-page-fetcher.js.map +1 -0
  260. package/dist/data-grid/data-grid.d.ts +65 -0
  261. package/dist/data-grid/data-grid.d.ts.map +1 -0
  262. package/dist/data-grid/data-grid.js +95 -0
  263. package/dist/data-grid/data-grid.js.map +1 -0
  264. package/dist/data-grid/empty-state.d.ts +13 -0
  265. package/dist/data-grid/empty-state.d.ts.map +1 -0
  266. package/dist/data-grid/empty-state.js +6 -0
  267. package/dist/data-grid/empty-state.js.map +1 -0
  268. package/dist/data-grid/formula-guard.d.ts +22 -0
  269. package/dist/data-grid/formula-guard.d.ts.map +1 -0
  270. package/dist/data-grid/formula-guard.js +28 -0
  271. package/dist/data-grid/formula-guard.js.map +1 -0
  272. package/dist/data-grid/grid-internals.d.ts +16 -0
  273. package/dist/data-grid/grid-internals.d.ts.map +1 -0
  274. package/dist/data-grid/grid-internals.js +73 -0
  275. package/dist/data-grid/grid-internals.js.map +1 -0
  276. package/dist/data-grid/grid-theme.d.ts +8 -0
  277. package/dist/data-grid/grid-theme.d.ts.map +1 -0
  278. package/dist/data-grid/grid-theme.js +23 -0
  279. package/dist/data-grid/grid-theme.js.map +1 -0
  280. package/dist/data-grid/grid-toolbar.d.ts +40 -0
  281. package/dist/data-grid/grid-toolbar.d.ts.map +1 -0
  282. package/dist/data-grid/grid-toolbar.js +13 -0
  283. package/dist/data-grid/grid-toolbar.js.map +1 -0
  284. package/dist/data-grid/index.d.ts +10 -0
  285. package/dist/data-grid/index.d.ts.map +1 -0
  286. package/dist/data-grid/index.js +9 -0
  287. package/dist/data-grid/index.js.map +1 -0
  288. package/dist/data-grid/pagination.d.ts +146 -0
  289. package/dist/data-grid/pagination.d.ts.map +1 -0
  290. package/dist/data-grid/pagination.js +128 -0
  291. package/dist/data-grid/pagination.js.map +1 -0
  292. package/dist/data-grid/server-data-grid.d.ts +109 -0
  293. package/dist/data-grid/server-data-grid.d.ts.map +1 -0
  294. package/dist/data-grid/server-data-grid.js +240 -0
  295. package/dist/data-grid/server-data-grid.js.map +1 -0
  296. package/dist/data-grid/server-grid-internals.d.ts +79 -0
  297. package/dist/data-grid/server-grid-internals.d.ts.map +1 -0
  298. package/dist/data-grid/server-grid-internals.js +137 -0
  299. package/dist/data-grid/server-grid-internals.js.map +1 -0
  300. package/dist/data-grid/use-action-column.d.ts +22 -0
  301. package/dist/data-grid/use-action-column.d.ts.map +1 -0
  302. package/dist/data-grid/use-action-column.js +63 -0
  303. package/dist/data-grid/use-action-column.js.map +1 -0
  304. package/dist/data-grid/use-server-grid-selection.d.ts +35 -0
  305. package/dist/data-grid/use-server-grid-selection.d.ts.map +1 -0
  306. package/dist/data-grid/use-server-grid-selection.js +81 -0
  307. package/dist/data-grid/use-server-grid-selection.js.map +1 -0
  308. package/dist/form-engine/base.d.ts +19 -0
  309. package/dist/form-engine/base.d.ts.map +1 -0
  310. package/dist/form-engine/base.js +2 -0
  311. package/dist/form-engine/base.js.map +1 -0
  312. package/dist/form-engine/field-registry.d.ts +285 -0
  313. package/dist/form-engine/field-registry.d.ts.map +1 -0
  314. package/dist/form-engine/field-registry.js +306 -0
  315. package/dist/form-engine/field-registry.js.map +1 -0
  316. package/dist/form-engine/field-types.d.ts +201 -0
  317. package/dist/form-engine/field-types.d.ts.map +1 -0
  318. package/dist/form-engine/field-types.js +14 -0
  319. package/dist/form-engine/field-types.js.map +1 -0
  320. package/dist/form-engine/index.d.ts +20 -0
  321. package/dist/form-engine/index.d.ts.map +1 -0
  322. package/dist/form-engine/index.js +21 -0
  323. package/dist/form-engine/index.js.map +1 -0
  324. package/dist/form-engine/smart-checkbox-field.d.ts +5 -0
  325. package/dist/form-engine/smart-checkbox-field.d.ts.map +1 -0
  326. package/dist/form-engine/smart-checkbox-field.js +9 -0
  327. package/dist/form-engine/smart-checkbox-field.js.map +1 -0
  328. package/dist/form-engine/smart-checkbox-group-field.d.ts +10 -0
  329. package/dist/form-engine/smart-checkbox-group-field.d.ts.map +1 -0
  330. package/dist/form-engine/smart-checkbox-group-field.js +5 -0
  331. package/dist/form-engine/smart-checkbox-group-field.js.map +1 -0
  332. package/dist/form-engine/smart-combobox-field.d.ts +11 -0
  333. package/dist/form-engine/smart-combobox-field.d.ts.map +1 -0
  334. package/dist/form-engine/smart-combobox-field.js +5 -0
  335. package/dist/form-engine/smart-combobox-field.js.map +1 -0
  336. package/dist/form-engine/smart-date-field.d.ts +8 -0
  337. package/dist/form-engine/smart-date-field.d.ts.map +1 -0
  338. package/dist/form-engine/smart-date-field.js +17 -0
  339. package/dist/form-engine/smart-date-field.js.map +1 -0
  340. package/dist/form-engine/smart-date-range-field.d.ts +15 -0
  341. package/dist/form-engine/smart-date-range-field.d.ts.map +1 -0
  342. package/dist/form-engine/smart-date-range-field.js +25 -0
  343. package/dist/form-engine/smart-date-range-field.js.map +1 -0
  344. package/dist/form-engine/smart-datetime-field.d.ts +12 -0
  345. package/dist/form-engine/smart-datetime-field.d.ts.map +1 -0
  346. package/dist/form-engine/smart-datetime-field.js +12 -0
  347. package/dist/form-engine/smart-datetime-field.js.map +1 -0
  348. package/dist/form-engine/smart-form-internals.d.ts +14 -0
  349. package/dist/form-engine/smart-form-internals.d.ts.map +1 -0
  350. package/dist/form-engine/smart-form-internals.js +64 -0
  351. package/dist/form-engine/smart-form-internals.js.map +1 -0
  352. package/dist/form-engine/smart-form.d.ts +55 -0
  353. package/dist/form-engine/smart-form.d.ts.map +1 -0
  354. package/dist/form-engine/smart-form.js +229 -0
  355. package/dist/form-engine/smart-form.js.map +1 -0
  356. package/dist/form-engine/smart-input-field.d.ts +9 -0
  357. package/dist/form-engine/smart-input-field.d.ts.map +1 -0
  358. package/dist/form-engine/smart-input-field.js +5 -0
  359. package/dist/form-engine/smart-input-field.js.map +1 -0
  360. package/dist/form-engine/smart-month-field.d.ts +8 -0
  361. package/dist/form-engine/smart-month-field.d.ts.map +1 -0
  362. package/dist/form-engine/smart-month-field.js +12 -0
  363. package/dist/form-engine/smart-month-field.js.map +1 -0
  364. package/dist/form-engine/smart-multi-select-field.d.ts +11 -0
  365. package/dist/form-engine/smart-multi-select-field.d.ts.map +1 -0
  366. package/dist/form-engine/smart-multi-select-field.js +5 -0
  367. package/dist/form-engine/smart-multi-select-field.js.map +1 -0
  368. package/dist/form-engine/smart-number-field.d.ts +22 -0
  369. package/dist/form-engine/smart-number-field.d.ts.map +1 -0
  370. package/dist/form-engine/smart-number-field.js +115 -0
  371. package/dist/form-engine/smart-number-field.js.map +1 -0
  372. package/dist/form-engine/smart-password-field.d.ts +7 -0
  373. package/dist/form-engine/smart-password-field.d.ts.map +1 -0
  374. package/dist/form-engine/smart-password-field.js +5 -0
  375. package/dist/form-engine/smart-password-field.js.map +1 -0
  376. package/dist/form-engine/smart-radio-group-field.d.ts +10 -0
  377. package/dist/form-engine/smart-radio-group-field.d.ts.map +1 -0
  378. package/dist/form-engine/smart-radio-group-field.js +5 -0
  379. package/dist/form-engine/smart-radio-group-field.js.map +1 -0
  380. package/dist/form-engine/smart-segmented-field.d.ts +9 -0
  381. package/dist/form-engine/smart-segmented-field.d.ts.map +1 -0
  382. package/dist/form-engine/smart-segmented-field.js +5 -0
  383. package/dist/form-engine/smart-segmented-field.js.map +1 -0
  384. package/dist/form-engine/smart-select-field.d.ts +10 -0
  385. package/dist/form-engine/smart-select-field.d.ts.map +1 -0
  386. package/dist/form-engine/smart-select-field.js +5 -0
  387. package/dist/form-engine/smart-select-field.js.map +1 -0
  388. package/dist/form-engine/smart-slug-field.d.ts +12 -0
  389. package/dist/form-engine/smart-slug-field.d.ts.map +1 -0
  390. package/dist/form-engine/smart-slug-field.js +14 -0
  391. package/dist/form-engine/smart-slug-field.js.map +1 -0
  392. package/dist/form-engine/smart-switch-field.d.ts +5 -0
  393. package/dist/form-engine/smart-switch-field.d.ts.map +1 -0
  394. package/dist/form-engine/smart-switch-field.js +9 -0
  395. package/dist/form-engine/smart-switch-field.js.map +1 -0
  396. package/dist/form-engine/smart-tel-field.d.ts +7 -0
  397. package/dist/form-engine/smart-tel-field.d.ts.map +1 -0
  398. package/dist/form-engine/smart-tel-field.js +6 -0
  399. package/dist/form-engine/smart-tel-field.js.map +1 -0
  400. package/dist/form-engine/smart-text-editor-field.d.ts +15 -0
  401. package/dist/form-engine/smart-text-editor-field.d.ts.map +1 -0
  402. package/dist/form-engine/smart-text-editor-field.js +5 -0
  403. package/dist/form-engine/smart-text-editor-field.js.map +1 -0
  404. package/dist/form-engine/smart-textarea-field.d.ts +8 -0
  405. package/dist/form-engine/smart-textarea-field.d.ts.map +1 -0
  406. package/dist/form-engine/smart-textarea-field.js +5 -0
  407. package/dist/form-engine/smart-textarea-field.js.map +1 -0
  408. package/dist/form-engine/smart-time-field.d.ts +10 -0
  409. package/dist/form-engine/smart-time-field.d.ts.map +1 -0
  410. package/dist/form-engine/smart-time-field.js +5 -0
  411. package/dist/form-engine/smart-time-field.js.map +1 -0
  412. package/dist/form-engine/smart-time-range-field.d.ts +13 -0
  413. package/dist/form-engine/smart-time-range-field.d.ts.map +1 -0
  414. package/dist/form-engine/smart-time-range-field.js +5 -0
  415. package/dist/form-engine/smart-time-range-field.js.map +1 -0
  416. package/dist/form-engine/smart-year-field.d.ts +8 -0
  417. package/dist/form-engine/smart-year-field.d.ts.map +1 -0
  418. package/dist/form-engine/smart-year-field.js +5 -0
  419. package/dist/form-engine/smart-year-field.js.map +1 -0
  420. package/dist/form-engine/smart-yesno-field.d.ts +12 -0
  421. package/dist/form-engine/smart-yesno-field.d.ts.map +1 -0
  422. package/dist/form-engine/smart-yesno-field.js +14 -0
  423. package/dist/form-engine/smart-yesno-field.js.map +1 -0
  424. package/dist/hooks/use-mobile.d.ts +2 -0
  425. package/dist/hooks/use-mobile.d.ts.map +1 -0
  426. package/dist/hooks/use-mobile.js +17 -0
  427. package/dist/hooks/use-mobile.js.map +1 -0
  428. package/dist/lexical-text-editor/SmartTextEditor.d.ts +61 -0
  429. package/dist/lexical-text-editor/SmartTextEditor.d.ts.map +1 -0
  430. package/dist/lexical-text-editor/SmartTextEditor.js +145 -0
  431. package/dist/lexical-text-editor/SmartTextEditor.js.map +1 -0
  432. package/dist/lexical-text-editor/editor-nodes.d.ts +3 -0
  433. package/dist/lexical-text-editor/editor-nodes.d.ts.map +1 -0
  434. package/dist/lexical-text-editor/editor-nodes.js +25 -0
  435. package/dist/lexical-text-editor/editor-nodes.js.map +1 -0
  436. package/dist/lexical-text-editor/editor-theme.d.ts +3 -0
  437. package/dist/lexical-text-editor/editor-theme.d.ts.map +1 -0
  438. package/dist/lexical-text-editor/editor-theme.js +78 -0
  439. package/dist/lexical-text-editor/editor-theme.js.map +1 -0
  440. package/dist/lexical-text-editor/index.d.ts +8 -0
  441. package/dist/lexical-text-editor/index.d.ts.map +1 -0
  442. package/dist/lexical-text-editor/index.js +6 -0
  443. package/dist/lexical-text-editor/index.js.map +1 -0
  444. package/dist/lexical-text-editor/nodes/image-node.d.ts +41 -0
  445. package/dist/lexical-text-editor/nodes/image-node.d.ts.map +1 -0
  446. package/dist/lexical-text-editor/nodes/image-node.js +89 -0
  447. package/dist/lexical-text-editor/nodes/image-node.js.map +1 -0
  448. package/dist/lexical-text-editor/nodes/page-break-node.d.ts +25 -0
  449. package/dist/lexical-text-editor/nodes/page-break-node.d.ts.map +1 -0
  450. package/dist/lexical-text-editor/nodes/page-break-node.js +84 -0
  451. package/dist/lexical-text-editor/nodes/page-break-node.js.map +1 -0
  452. package/dist/lexical-text-editor/plugins/auto-link-plugin.d.ts +3 -0
  453. package/dist/lexical-text-editor/plugins/auto-link-plugin.d.ts.map +1 -0
  454. package/dist/lexical-text-editor/plugins/auto-link-plugin.js +12 -0
  455. package/dist/lexical-text-editor/plugins/auto-link-plugin.js.map +1 -0
  456. package/dist/lexical-text-editor/plugins/code-highlight-plugin.d.ts +6 -0
  457. package/dist/lexical-text-editor/plugins/code-highlight-plugin.d.ts.map +1 -0
  458. package/dist/lexical-text-editor/plugins/code-highlight-plugin.js +14 -0
  459. package/dist/lexical-text-editor/plugins/code-highlight-plugin.js.map +1 -0
  460. package/dist/lexical-text-editor/plugins/toolbar/align-menu.d.ts +7 -0
  461. package/dist/lexical-text-editor/plugins/toolbar/align-menu.d.ts.map +1 -0
  462. package/dist/lexical-text-editor/plugins/toolbar/align-menu.js +8 -0
  463. package/dist/lexical-text-editor/plugins/toolbar/align-menu.js.map +1 -0
  464. package/dist/lexical-text-editor/plugins/toolbar/block-format-menu.d.ts +20 -0
  465. package/dist/lexical-text-editor/plugins/toolbar/block-format-menu.d.ts.map +1 -0
  466. package/dist/lexical-text-editor/plugins/toolbar/block-format-menu.js +78 -0
  467. package/dist/lexical-text-editor/plugins/toolbar/block-format-menu.js.map +1 -0
  468. package/dist/lexical-text-editor/plugins/toolbar/constants.d.ts +36 -0
  469. package/dist/lexical-text-editor/plugins/toolbar/constants.d.ts.map +1 -0
  470. package/dist/lexical-text-editor/plugins/toolbar/constants.js +67 -0
  471. package/dist/lexical-text-editor/plugins/toolbar/constants.js.map +1 -0
  472. package/dist/lexical-text-editor/plugins/toolbar/inline-marks.d.ts +14 -0
  473. package/dist/lexical-text-editor/plugins/toolbar/inline-marks.d.ts.map +1 -0
  474. package/dist/lexical-text-editor/plugins/toolbar/inline-marks.js +129 -0
  475. package/dist/lexical-text-editor/plugins/toolbar/inline-marks.js.map +1 -0
  476. package/dist/lexical-text-editor/plugins/toolbar/insert-menu.d.ts +8 -0
  477. package/dist/lexical-text-editor/plugins/toolbar/insert-menu.d.ts.map +1 -0
  478. package/dist/lexical-text-editor/plugins/toolbar/insert-menu.js +87 -0
  479. package/dist/lexical-text-editor/plugins/toolbar/insert-menu.js.map +1 -0
  480. package/dist/lexical-text-editor/plugins/toolbar/link-editor.d.ts +11 -0
  481. package/dist/lexical-text-editor/plugins/toolbar/link-editor.d.ts.map +1 -0
  482. package/dist/lexical-text-editor/plugins/toolbar/link-editor.js +51 -0
  483. package/dist/lexical-text-editor/plugins/toolbar/link-editor.js.map +1 -0
  484. package/dist/lexical-text-editor/plugins/toolbar/primitives.d.ts +39 -0
  485. package/dist/lexical-text-editor/plugins/toolbar/primitives.d.ts.map +1 -0
  486. package/dist/lexical-text-editor/plugins/toolbar/primitives.js +47 -0
  487. package/dist/lexical-text-editor/plugins/toolbar/primitives.js.map +1 -0
  488. package/dist/lexical-text-editor/plugins/toolbar/use-insert-commands.d.ts +9 -0
  489. package/dist/lexical-text-editor/plugins/toolbar/use-insert-commands.d.ts.map +1 -0
  490. package/dist/lexical-text-editor/plugins/toolbar/use-insert-commands.js +29 -0
  491. package/dist/lexical-text-editor/plugins/toolbar/use-insert-commands.js.map +1 -0
  492. package/dist/lexical-text-editor/plugins/toolbar/use-toolbar-state.d.ts +30 -0
  493. package/dist/lexical-text-editor/plugins/toolbar/use-toolbar-state.d.ts.map +1 -0
  494. package/dist/lexical-text-editor/plugins/toolbar/use-toolbar-state.js +128 -0
  495. package/dist/lexical-text-editor/plugins/toolbar/use-toolbar-state.js.map +1 -0
  496. package/dist/lexical-text-editor/plugins/toolbar-plugin.d.ts +8 -0
  497. package/dist/lexical-text-editor/plugins/toolbar-plugin.d.ts.map +1 -0
  498. package/dist/lexical-text-editor/plugins/toolbar-plugin.js +51 -0
  499. package/dist/lexical-text-editor/plugins/toolbar-plugin.js.map +1 -0
  500. package/dist/lexical-text-editor/sanitize.d.ts +24 -0
  501. package/dist/lexical-text-editor/sanitize.d.ts.map +1 -0
  502. package/dist/lexical-text-editor/sanitize.js +140 -0
  503. package/dist/lexical-text-editor/sanitize.js.map +1 -0
  504. package/dist/lib/format.d.ts +17 -0
  505. package/dist/lib/format.d.ts.map +1 -0
  506. package/dist/lib/format.js +40 -0
  507. package/dist/lib/format.js.map +1 -0
  508. package/dist/lib/leading-space.d.ts +28 -0
  509. package/dist/lib/leading-space.d.ts.map +1 -0
  510. package/dist/lib/leading-space.js +34 -0
  511. package/dist/lib/leading-space.js.map +1 -0
  512. package/dist/lib/utils.d.ts +3 -0
  513. package/dist/lib/utils.d.ts.map +1 -0
  514. package/dist/lib/utils.js +4 -0
  515. package/dist/lib/utils.js.map +1 -0
  516. package/dist/lib/xlsx.d.ts +80 -0
  517. package/dist/lib/xlsx.d.ts.map +1 -0
  518. package/dist/lib/xlsx.js +377 -0
  519. package/dist/lib/xlsx.js.map +1 -0
  520. package/dist/search-engine/build-query.d.ts +29 -0
  521. package/dist/search-engine/build-query.d.ts.map +1 -0
  522. package/dist/search-engine/build-query.js +51 -0
  523. package/dist/search-engine/build-query.js.map +1 -0
  524. package/dist/search-engine/index.d.ts +15 -0
  525. package/dist/search-engine/index.d.ts.map +1 -0
  526. package/dist/search-engine/index.js +13 -0
  527. package/dist/search-engine/index.js.map +1 -0
  528. package/dist/search-engine/smart-search-form.d.ts +92 -0
  529. package/dist/search-engine/smart-search-form.d.ts.map +1 -0
  530. package/dist/search-engine/smart-search-form.js +136 -0
  531. package/dist/search-engine/smart-search-form.js.map +1 -0
  532. package/dist/search-engine/types.d.ts +40 -0
  533. package/dist/search-engine/types.d.ts.map +1 -0
  534. package/dist/search-engine/types.js +11 -0
  535. package/dist/search-engine/types.js.map +1 -0
  536. package/dist/smart-components/buttons/action-button.d.ts +66 -0
  537. package/dist/smart-components/buttons/action-button.d.ts.map +1 -0
  538. package/dist/smart-components/buttons/action-button.js +79 -0
  539. package/dist/smart-components/buttons/action-button.js.map +1 -0
  540. package/dist/smart-components/buttons/action-buttons.d.ts +122 -0
  541. package/dist/smart-components/buttons/action-buttons.d.ts.map +1 -0
  542. package/dist/smart-components/buttons/action-buttons.js +42 -0
  543. package/dist/smart-components/buttons/action-buttons.js.map +1 -0
  544. package/dist/smart-components/buttons/action-config.d.ts +181 -0
  545. package/dist/smart-components/buttons/action-config.d.ts.map +1 -0
  546. package/dist/smart-components/buttons/action-config.js +128 -0
  547. package/dist/smart-components/buttons/action-config.js.map +1 -0
  548. package/dist/smart-components/buttons/index.d.ts +4 -0
  549. package/dist/smart-components/buttons/index.d.ts.map +1 -0
  550. package/dist/smart-components/buttons/index.js +7 -0
  551. package/dist/smart-components/buttons/index.js.map +1 -0
  552. package/dist/smart-components/loading-overlay.d.ts +16 -0
  553. package/dist/smart-components/loading-overlay.d.ts.map +1 -0
  554. package/dist/smart-components/loading-overlay.js +13 -0
  555. package/dist/smart-components/loading-overlay.js.map +1 -0
  556. package/dist/smart-components/page/index.d.ts +19 -0
  557. package/dist/smart-components/page/index.d.ts.map +1 -0
  558. package/dist/smart-components/page/index.js +33 -0
  559. package/dist/smart-components/page/index.js.map +1 -0
  560. package/dist/smart-components/page/layouts/page-states.d.ts +17 -0
  561. package/dist/smart-components/page/layouts/page-states.d.ts.map +1 -0
  562. package/dist/smart-components/page/layouts/page-states.js +12 -0
  563. package/dist/smart-components/page/layouts/page-states.js.map +1 -0
  564. package/dist/smart-components/page/layouts/slot-buckets.d.ts +21 -0
  565. package/dist/smart-components/page/layouts/slot-buckets.d.ts.map +1 -0
  566. package/dist/smart-components/page/layouts/slot-buckets.js +2 -0
  567. package/dist/smart-components/page/layouts/slot-buckets.js.map +1 -0
  568. package/dist/smart-components/page/layouts/split-layout.d.ts +13 -0
  569. package/dist/smart-components/page/layouts/split-layout.d.ts.map +1 -0
  570. package/dist/smart-components/page/layouts/split-layout.js +14 -0
  571. package/dist/smart-components/page/layouts/split-layout.js.map +1 -0
  572. package/dist/smart-components/page/layouts/standard-layout.d.ts +18 -0
  573. package/dist/smart-components/page/layouts/standard-layout.d.ts.map +1 -0
  574. package/dist/smart-components/page/layouts/standard-layout.js +61 -0
  575. package/dist/smart-components/page/layouts/standard-layout.js.map +1 -0
  576. package/dist/smart-components/page/page-context.d.ts +51 -0
  577. package/dist/smart-components/page/page-context.d.ts.map +1 -0
  578. package/dist/smart-components/page/page-context.js +21 -0
  579. package/dist/smart-components/page/page-context.js.map +1 -0
  580. package/dist/smart-components/page/slot.d.ts +19 -0
  581. package/dist/smart-components/page/slot.d.ts.map +1 -0
  582. package/dist/smart-components/page/slot.js +18 -0
  583. package/dist/smart-components/page/slot.js.map +1 -0
  584. package/dist/smart-components/page/smart-grid-area.d.ts +75 -0
  585. package/dist/smart-components/page/smart-grid-area.d.ts.map +1 -0
  586. package/dist/smart-components/page/smart-grid-area.js +61 -0
  587. package/dist/smart-components/page/smart-grid-area.js.map +1 -0
  588. package/dist/smart-components/page/smart-page-container.d.ts +66 -0
  589. package/dist/smart-components/page/smart-page-container.d.ts.map +1 -0
  590. package/dist/smart-components/page/smart-page-container.js +93 -0
  591. package/dist/smart-components/page/smart-page-container.js.map +1 -0
  592. package/dist/smart-components/page/smart-page-content.d.ts +70 -0
  593. package/dist/smart-components/page/smart-page-content.d.ts.map +1 -0
  594. package/dist/smart-components/page/smart-page-content.js +78 -0
  595. package/dist/smart-components/page/smart-page-content.js.map +1 -0
  596. package/dist/smart-components/page/smart-page-empty.d.ts +47 -0
  597. package/dist/smart-components/page/smart-page-empty.d.ts.map +1 -0
  598. package/dist/smart-components/page/smart-page-empty.js +37 -0
  599. package/dist/smart-components/page/smart-page-empty.js.map +1 -0
  600. package/dist/smart-components/page/smart-page-error.d.ts +59 -0
  601. package/dist/smart-components/page/smart-page-error.d.ts.map +1 -0
  602. package/dist/smart-components/page/smart-page-error.js +45 -0
  603. package/dist/smart-components/page/smart-page-error.js.map +1 -0
  604. package/dist/smart-components/page/smart-page-filters.d.ts +38 -0
  605. package/dist/smart-components/page/smart-page-filters.d.ts.map +1 -0
  606. package/dist/smart-components/page/smart-page-filters.js +33 -0
  607. package/dist/smart-components/page/smart-page-filters.js.map +1 -0
  608. package/dist/smart-components/page/smart-page-footer.d.ts +49 -0
  609. package/dist/smart-components/page/smart-page-footer.d.ts.map +1 -0
  610. package/dist/smart-components/page/smart-page-footer.js +49 -0
  611. package/dist/smart-components/page/smart-page-footer.js.map +1 -0
  612. package/dist/smart-components/page/smart-page-header.d.ts +145 -0
  613. package/dist/smart-components/page/smart-page-header.d.ts.map +1 -0
  614. package/dist/smart-components/page/smart-page-header.js +129 -0
  615. package/dist/smart-components/page/smart-page-header.js.map +1 -0
  616. package/dist/smart-components/page/smart-page-hero.d.ts +43 -0
  617. package/dist/smart-components/page/smart-page-hero.d.ts.map +1 -0
  618. package/dist/smart-components/page/smart-page-hero.js +42 -0
  619. package/dist/smart-components/page/smart-page-hero.js.map +1 -0
  620. package/dist/smart-components/page/smart-page-loading.d.ts +31 -0
  621. package/dist/smart-components/page/smart-page-loading.d.ts.map +1 -0
  622. package/dist/smart-components/page/smart-page-loading.js +29 -0
  623. package/dist/smart-components/page/smart-page-loading.js.map +1 -0
  624. package/dist/smart-components/page/smart-page-search.d.ts +39 -0
  625. package/dist/smart-components/page/smart-page-search.d.ts.map +1 -0
  626. package/dist/smart-components/page/smart-page-search.js +38 -0
  627. package/dist/smart-components/page/smart-page-search.js.map +1 -0
  628. package/dist/smart-components/page/smart-page-section.d.ts +55 -0
  629. package/dist/smart-components/page/smart-page-section.d.ts.map +1 -0
  630. package/dist/smart-components/page/smart-page-section.js +41 -0
  631. package/dist/smart-components/page/smart-page-section.js.map +1 -0
  632. package/dist/smart-components/page/smart-page-status-bar.d.ts +34 -0
  633. package/dist/smart-components/page/smart-page-status-bar.d.ts.map +1 -0
  634. package/dist/smart-components/page/smart-page-status-bar.js +33 -0
  635. package/dist/smart-components/page/smart-page-status-bar.js.map +1 -0
  636. package/dist/smart-components/page/smart-page-tabs.d.ts +93 -0
  637. package/dist/smart-components/page/smart-page-tabs.d.ts.map +1 -0
  638. package/dist/smart-components/page/smart-page-tabs.js +87 -0
  639. package/dist/smart-components/page/smart-page-tabs.js.map +1 -0
  640. package/dist/smart-components/page/smart-page.d.ts +141 -0
  641. package/dist/smart-components/page/smart-page.d.ts.map +1 -0
  642. package/dist/smart-components/page/smart-page.js +295 -0
  643. package/dist/smart-components/page/smart-page.js.map +1 -0
  644. package/dist/smart-components/page/smart-sidebar.d.ts +70 -0
  645. package/dist/smart-components/page/smart-sidebar.d.ts.map +1 -0
  646. package/dist/smart-components/page/smart-sidebar.js +54 -0
  647. package/dist/smart-components/page/smart-sidebar.js.map +1 -0
  648. package/dist/smart-components/page/smart-toolbar.d.ts +40 -0
  649. package/dist/smart-components/page/smart-toolbar.d.ts.map +1 -0
  650. package/dist/smart-components/page/smart-toolbar.js +39 -0
  651. package/dist/smart-components/page/smart-toolbar.js.map +1 -0
  652. package/dist/smart-components/search-input.d.ts +20 -0
  653. package/dist/smart-components/search-input.d.ts.map +1 -0
  654. package/dist/smart-components/search-input.js +12 -0
  655. package/dist/smart-components/search-input.js.map +1 -0
  656. package/dist/smart-components/smart-accordion.d.ts +53 -0
  657. package/dist/smart-components/smart-accordion.d.ts.map +1 -0
  658. package/dist/smart-components/smart-accordion.js +33 -0
  659. package/dist/smart-components/smart-accordion.js.map +1 -0
  660. package/dist/smart-components/smart-alert.d.ts +44 -0
  661. package/dist/smart-components/smart-alert.d.ts.map +1 -0
  662. package/dist/smart-components/smart-alert.js +27 -0
  663. package/dist/smart-components/smart-alert.js.map +1 -0
  664. package/dist/smart-components/smart-avatar.d.ts +3 -0
  665. package/dist/smart-components/smart-avatar.d.ts.map +1 -0
  666. package/dist/smart-components/smart-avatar.js +4 -0
  667. package/dist/smart-components/smart-avatar.js.map +1 -0
  668. package/dist/smart-components/smart-badge.d.ts +28 -0
  669. package/dist/smart-components/smart-badge.d.ts.map +1 -0
  670. package/dist/smart-components/smart-badge.js +24 -0
  671. package/dist/smart-components/smart-badge.js.map +1 -0
  672. package/dist/smart-components/smart-breadcrumb.d.ts +43 -0
  673. package/dist/smart-components/smart-breadcrumb.d.ts.map +1 -0
  674. package/dist/smart-components/smart-breadcrumb.js +37 -0
  675. package/dist/smart-components/smart-breadcrumb.js.map +1 -0
  676. package/dist/smart-components/smart-button.d.ts +22 -0
  677. package/dist/smart-components/smart-button.d.ts.map +1 -0
  678. package/dist/smart-components/smart-button.js +15 -0
  679. package/dist/smart-components/smart-button.js.map +1 -0
  680. package/dist/smart-components/smart-calendar.d.ts +78 -0
  681. package/dist/smart-components/smart-calendar.d.ts.map +1 -0
  682. package/dist/smart-components/smart-calendar.js +45 -0
  683. package/dist/smart-components/smart-calendar.js.map +1 -0
  684. package/dist/smart-components/smart-card.d.ts +55 -0
  685. package/dist/smart-components/smart-card.d.ts.map +1 -0
  686. package/dist/smart-components/smart-card.js +37 -0
  687. package/dist/smart-components/smart-card.js.map +1 -0
  688. package/dist/smart-components/smart-checkbox-group.d.ts +48 -0
  689. package/dist/smart-components/smart-checkbox-group.d.ts.map +1 -0
  690. package/dist/smart-components/smart-checkbox-group.js +48 -0
  691. package/dist/smart-components/smart-checkbox-group.js.map +1 -0
  692. package/dist/smart-components/smart-checkbox.d.ts +34 -0
  693. package/dist/smart-components/smart-checkbox.d.ts.map +1 -0
  694. package/dist/smart-components/smart-checkbox.js +34 -0
  695. package/dist/smart-components/smart-checkbox.js.map +1 -0
  696. package/dist/smart-components/smart-combobox.d.ts +36 -0
  697. package/dist/smart-components/smart-combobox.d.ts.map +1 -0
  698. package/dist/smart-components/smart-combobox.js +32 -0
  699. package/dist/smart-components/smart-combobox.js.map +1 -0
  700. package/dist/smart-components/smart-confirm-dialog.d.ts +63 -0
  701. package/dist/smart-components/smart-confirm-dialog.d.ts.map +1 -0
  702. package/dist/smart-components/smart-confirm-dialog.js +45 -0
  703. package/dist/smart-components/smart-confirm-dialog.js.map +1 -0
  704. package/dist/smart-components/smart-context-menu.d.ts +58 -0
  705. package/dist/smart-components/smart-context-menu.d.ts.map +1 -0
  706. package/dist/smart-components/smart-context-menu.js +38 -0
  707. package/dist/smart-components/smart-context-menu.js.map +1 -0
  708. package/dist/smart-components/smart-date-picker.d.ts +99 -0
  709. package/dist/smart-components/smart-date-picker.d.ts.map +1 -0
  710. package/dist/smart-components/smart-date-picker.js +78 -0
  711. package/dist/smart-components/smart-date-picker.js.map +1 -0
  712. package/dist/smart-components/smart-date-range-picker.d.ts +37 -0
  713. package/dist/smart-components/smart-date-range-picker.d.ts.map +1 -0
  714. package/dist/smart-components/smart-date-range-picker.js +38 -0
  715. package/dist/smart-components/smart-date-range-picker.js.map +1 -0
  716. package/dist/smart-components/smart-dialog.d.ts +75 -0
  717. package/dist/smart-components/smart-dialog.d.ts.map +1 -0
  718. package/dist/smart-components/smart-dialog.js +61 -0
  719. package/dist/smart-components/smart-dialog.js.map +1 -0
  720. package/dist/smart-components/smart-drawer.d.ts +48 -0
  721. package/dist/smart-components/smart-drawer.d.ts.map +1 -0
  722. package/dist/smart-components/smart-drawer.js +32 -0
  723. package/dist/smart-components/smart-drawer.js.map +1 -0
  724. package/dist/smart-components/smart-field.d.ts +47 -0
  725. package/dist/smart-components/smart-field.d.ts.map +1 -0
  726. package/dist/smart-components/smart-field.js +44 -0
  727. package/dist/smart-components/smart-field.js.map +1 -0
  728. package/dist/smart-components/smart-input-group.d.ts +60 -0
  729. package/dist/smart-components/smart-input-group.d.ts.map +1 -0
  730. package/dist/smart-components/smart-input-group.js +40 -0
  731. package/dist/smart-components/smart-input-group.js.map +1 -0
  732. package/dist/smart-components/smart-input.d.ts +46 -0
  733. package/dist/smart-components/smart-input.d.ts.map +1 -0
  734. package/dist/smart-components/smart-input.js +36 -0
  735. package/dist/smart-components/smart-input.js.map +1 -0
  736. package/dist/smart-components/smart-label.d.ts +22 -0
  737. package/dist/smart-components/smart-label.d.ts.map +1 -0
  738. package/dist/smart-components/smart-label.js +17 -0
  739. package/dist/smart-components/smart-label.js.map +1 -0
  740. package/dist/smart-components/smart-month-picker.d.ts +30 -0
  741. package/dist/smart-components/smart-month-picker.d.ts.map +1 -0
  742. package/dist/smart-components/smart-month-picker.js +53 -0
  743. package/dist/smart-components/smart-month-picker.js.map +1 -0
  744. package/dist/smart-components/smart-multi-select.d.ts +38 -0
  745. package/dist/smart-components/smart-multi-select.d.ts.map +1 -0
  746. package/dist/smart-components/smart-multi-select.js +56 -0
  747. package/dist/smart-components/smart-multi-select.js.map +1 -0
  748. package/dist/smart-components/smart-native-select.d.ts +45 -0
  749. package/dist/smart-components/smart-native-select.d.ts.map +1 -0
  750. package/dist/smart-components/smart-native-select.js +33 -0
  751. package/dist/smart-components/smart-native-select.js.map +1 -0
  752. package/dist/smart-components/smart-nav-sidebar.d.ts +47 -0
  753. package/dist/smart-components/smart-nav-sidebar.d.ts.map +1 -0
  754. package/dist/smart-components/smart-nav-sidebar.js +37 -0
  755. package/dist/smart-components/smart-nav-sidebar.js.map +1 -0
  756. package/dist/smart-components/smart-password-input.d.ts +31 -0
  757. package/dist/smart-components/smart-password-input.d.ts.map +1 -0
  758. package/dist/smart-components/smart-password-input.js +30 -0
  759. package/dist/smart-components/smart-password-input.js.map +1 -0
  760. package/dist/smart-components/smart-radio-group.d.ts +58 -0
  761. package/dist/smart-components/smart-radio-group.d.ts.map +1 -0
  762. package/dist/smart-components/smart-radio-group.js +49 -0
  763. package/dist/smart-components/smart-radio-group.js.map +1 -0
  764. package/dist/smart-components/smart-segmented.d.ts +33 -0
  765. package/dist/smart-components/smart-segmented.d.ts.map +1 -0
  766. package/dist/smart-components/smart-segmented.js +25 -0
  767. package/dist/smart-components/smart-segmented.js.map +1 -0
  768. package/dist/smart-components/smart-select.d.ts +71 -0
  769. package/dist/smart-components/smart-select.d.ts.map +1 -0
  770. package/dist/smart-components/smart-select.js +44 -0
  771. package/dist/smart-components/smart-select.js.map +1 -0
  772. package/dist/smart-components/smart-separator.d.ts +3 -0
  773. package/dist/smart-components/smart-separator.d.ts.map +1 -0
  774. package/dist/smart-components/smart-separator.js +4 -0
  775. package/dist/smart-components/smart-separator.js.map +1 -0
  776. package/dist/smart-components/smart-sheet.d.ts +79 -0
  777. package/dist/smart-components/smart-sheet.d.ts.map +1 -0
  778. package/dist/smart-components/smart-sheet.js +47 -0
  779. package/dist/smart-components/smart-sheet.js.map +1 -0
  780. package/dist/smart-components/smart-stat-card.d.ts +47 -0
  781. package/dist/smart-components/smart-stat-card.d.ts.map +1 -0
  782. package/dist/smart-components/smart-stat-card.js +35 -0
  783. package/dist/smart-components/smart-stat-card.js.map +1 -0
  784. package/dist/smart-components/smart-stepper.d.ts +24 -0
  785. package/dist/smart-components/smart-stepper.d.ts.map +1 -0
  786. package/dist/smart-components/smart-stepper.js +24 -0
  787. package/dist/smart-components/smart-stepper.js.map +1 -0
  788. package/dist/smart-components/smart-switch.d.ts +34 -0
  789. package/dist/smart-components/smart-switch.d.ts.map +1 -0
  790. package/dist/smart-components/smart-switch.js +34 -0
  791. package/dist/smart-components/smart-switch.js.map +1 -0
  792. package/dist/smart-components/smart-textarea.d.ts +38 -0
  793. package/dist/smart-components/smart-textarea.d.ts.map +1 -0
  794. package/dist/smart-components/smart-textarea.js +28 -0
  795. package/dist/smart-components/smart-textarea.js.map +1 -0
  796. package/dist/smart-components/smart-time-picker.d.ts +59 -0
  797. package/dist/smart-components/smart-time-picker.d.ts.map +1 -0
  798. package/dist/smart-components/smart-time-picker.js +129 -0
  799. package/dist/smart-components/smart-time-picker.js.map +1 -0
  800. package/dist/smart-components/smart-time-range-picker.d.ts +39 -0
  801. package/dist/smart-components/smart-time-range-picker.d.ts.map +1 -0
  802. package/dist/smart-components/smart-time-range-picker.js +26 -0
  803. package/dist/smart-components/smart-time-range-picker.js.map +1 -0
  804. package/dist/smart-components/smart-toaster.d.ts +10 -0
  805. package/dist/smart-components/smart-toaster.d.ts.map +1 -0
  806. package/dist/smart-components/smart-toaster.js +21 -0
  807. package/dist/smart-components/smart-toaster.js.map +1 -0
  808. package/dist/smart-components/smart-year-picker.d.ts +29 -0
  809. package/dist/smart-components/smart-year-picker.d.ts.map +1 -0
  810. package/dist/smart-components/smart-year-picker.js +43 -0
  811. package/dist/smart-components/smart-year-picker.js.map +1 -0
  812. package/dist/smart-components/spinner.d.ts +10 -0
  813. package/dist/smart-components/spinner.d.ts.map +1 -0
  814. package/dist/smart-components/spinner.js +5 -0
  815. package/dist/smart-components/spinner.js.map +1 -0
  816. package/dist/transfer-list-engine/index.d.ts +5 -0
  817. package/dist/transfer-list-engine/index.d.ts.map +1 -0
  818. package/dist/transfer-list-engine/index.js +3 -0
  819. package/dist/transfer-list-engine/index.js.map +1 -0
  820. package/dist/transfer-list-engine/transfer-list.d.ts +53 -0
  821. package/dist/transfer-list-engine/transfer-list.d.ts.map +1 -0
  822. package/dist/transfer-list-engine/transfer-list.js +190 -0
  823. package/dist/transfer-list-engine/transfer-list.js.map +1 -0
  824. package/dist/transfer-list-engine/transfer-utils.d.ts +30 -0
  825. package/dist/transfer-list-engine/transfer-utils.d.ts.map +1 -0
  826. package/dist/transfer-list-engine/transfer-utils.js +69 -0
  827. package/dist/transfer-list-engine/transfer-utils.js.map +1 -0
  828. package/dist/transfer-list-engine/types.d.ts +51 -0
  829. package/dist/transfer-list-engine/types.d.ts.map +1 -0
  830. package/dist/transfer-list-engine/types.js +2 -0
  831. package/dist/transfer-list-engine/types.js.map +1 -0
  832. package/dist/tree-engine/index.d.ts +6 -0
  833. package/dist/tree-engine/index.d.ts.map +1 -0
  834. package/dist/tree-engine/index.js +3 -0
  835. package/dist/tree-engine/index.js.map +1 -0
  836. package/dist/tree-engine/tree-utils.d.ts +84 -0
  837. package/dist/tree-engine/tree-utils.d.ts.map +1 -0
  838. package/dist/tree-engine/tree-utils.js +271 -0
  839. package/dist/tree-engine/tree-utils.js.map +1 -0
  840. package/dist/tree-engine/tree.d.ts +98 -0
  841. package/dist/tree-engine/tree.d.ts.map +1 -0
  842. package/dist/tree-engine/tree.js +430 -0
  843. package/dist/tree-engine/tree.js.map +1 -0
  844. package/dist/tree-engine/types.d.ts +85 -0
  845. package/dist/tree-engine/types.d.ts.map +1 -0
  846. package/dist/tree-engine/types.js +2 -0
  847. package/dist/tree-engine/types.js.map +1 -0
  848. package/dist/tree-engine/use-tree.d.ts +12 -0
  849. package/dist/tree-engine/use-tree.d.ts.map +1 -0
  850. package/dist/tree-engine/use-tree.js +34 -0
  851. package/dist/tree-engine/use-tree.js.map +1 -0
  852. package/package.json +158 -0
  853. package/src/styles/globals.css +161 -0
@@ -0,0 +1,72 @@
1
+ import * as React from "react";
2
+ import type { AvailabilityWindow, CalendarEvent, CalendarSize, CalendarSlot, EventChangeMeta, FreeSlot, TimeRange, Weekday } from "./types";
3
+ /**
4
+ * Props shared by every view (month/week/day/agenda). `SmartCalendar` resolves
5
+ * defaults once and hands each active view the same shape, so views stay thin
6
+ * and presentational.
7
+ */
8
+ export interface CalendarViewProps<T = unknown> {
9
+ /** Anchor date for the view. */
10
+ date: Date;
11
+ /** Events already scoped to (roughly) the visible range. */
12
+ events: CalendarEvent<T>[];
13
+ size: CalendarSize;
14
+ weekStartsOn: Weekday;
15
+ /** First visible hour in time-grid views. */
16
+ minHour: number;
17
+ /** Last visible hour in time-grid views. */
18
+ maxHour: number;
19
+ /** Minutes per selectable slot / grid subdivision. */
20
+ slotMinutes: number;
21
+ /** Fallback duration for events without an explicit `end`. */
22
+ defaultDurationMinutes: number;
23
+ /** Optional business-hours shading in time-grid views. */
24
+ businessHours?: TimeRange;
25
+ /** "Now" used for the today highlight + current-time indicator. */
26
+ now: Date;
27
+ /** Fires when an event is activated. */
28
+ onEventClick?: (event: CalendarEvent<T>, e: React.MouseEvent) => void;
29
+ /** Fires when an empty slot / day cell is chosen. */
30
+ onSlotSelect?: (slot: CalendarSlot) => void;
31
+ /** Fires when a day header/number is clicked (month → day drill-in). */
32
+ onDateClick?: (date: Date) => void;
33
+ /** Override event rendering entirely. */
34
+ renderEvent?: (event: CalendarEvent<T>) => React.ReactNode;
35
+ /** Max events shown per month cell before a "+N more" affordance. */
36
+ maxEventsPerDay: number;
37
+ /** Master switch for drag-move + edge-resize in time-grid views. */
38
+ editable: boolean;
39
+ /** Fires after a completed move or resize gesture. */
40
+ onEventChange?: (meta: EventChangeMeta<T>) => void;
41
+ /** Weekly bookable windows; when set, free slots render as pickable chips. */
42
+ availability?: AvailabilityWindow[];
43
+ /** Slots per availability window (concurrent bookings). @default 1 */
44
+ slotCapacity: number;
45
+ /** Fires when a free booking slot is picked. */
46
+ onSlotBook?: (slot: FreeSlot) => void;
47
+ }
48
+ /** Compact month-cell chip: colored dot + title (+ optional start time). */
49
+ export declare function MonthEventPill<T>({ event, size, showTime, onClick, draggable, onDragStart, }: {
50
+ event: CalendarEvent<T>;
51
+ size: CalendarSize;
52
+ showTime?: boolean;
53
+ onClick?: (e: React.MouseEvent) => void;
54
+ draggable?: boolean;
55
+ onDragStart?: (e: React.DragEvent) => void;
56
+ }): import("react/jsx-runtime").JSX.Element;
57
+ /** Filled block used inside the time-grid (week/day) columns. */
58
+ export declare function TimedEventBlock<T>({ event, size, defaultDurationMinutes, compact, onClick, }: {
59
+ event: CalendarEvent<T>;
60
+ size: CalendarSize;
61
+ defaultDurationMinutes: number;
62
+ /** Hide the time line when the block is too short. */
63
+ compact?: boolean;
64
+ onClick?: (e: React.MouseEvent) => void;
65
+ }): import("react/jsx-runtime").JSX.Element;
66
+ /** All-day / multi-day banner chip (month & time-grid all-day rows). */
67
+ export declare function AllDayBanner<T>({ event, size, onClick, }: {
68
+ event: CalendarEvent<T>;
69
+ size: CalendarSize;
70
+ onClick?: (e: React.MouseEvent) => void;
71
+ }): import("react/jsx-runtime").JSX.Element;
72
+ //# sourceMappingURL=shared.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/calendar-engine/shared.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { cn } from "@iamsaroj/smart-ui/lib/utils";
3
+ import { eventColorClasses } from "./event-color";
4
+ import { formatEventTime } from "./calendar-utils";
5
+ const TITLE_TEXT = {
6
+ sm: "text-[11px]",
7
+ md: "text-xs",
8
+ lg: "text-sm",
9
+ };
10
+ /** Compact month-cell chip: colored dot + title (+ optional start time). */
11
+ export function MonthEventPill({ event, size, showTime, onClick, draggable, onDragStart, }) {
12
+ const colors = eventColorClasses(event.color);
13
+ return (_jsxs("button", { type: "button", onClick: onClick, disabled: event.disabled, draggable: draggable, onDragStart: onDragStart, title: typeof event.title === "string" ? event.title : undefined, className: cn("flex w-full items-center gap-1.5 rounded px-1.5 py-0.5 text-left transition-colors", "focus-visible:ring-2 focus-visible:ring-ring focus-visible:outline-none", TITLE_TEXT[size], colors.pill, draggable && "cursor-grab active:cursor-grabbing", event.disabled && "cursor-not-allowed opacity-50"), children: [_jsx("span", { className: cn("size-1.5 shrink-0 rounded-full", colors.dot), "aria-hidden": true }), showTime && !event.allDay && (_jsx("span", { className: "shrink-0 tabular-nums opacity-70", children: formatTimeShort(event.start) })), _jsx("span", { className: "truncate font-medium", children: event.title })] }));
14
+ }
15
+ /** Filled block used inside the time-grid (week/day) columns. */
16
+ export function TimedEventBlock({ event, size, defaultDurationMinutes, compact, onClick, }) {
17
+ const colors = eventColorClasses(event.color);
18
+ return (_jsxs("button", { type: "button", onClick: onClick, disabled: event.disabled, className: cn("flex size-full flex-col overflow-hidden rounded-md border px-2 py-1 text-left transition-shadow", "hover:shadow-sm focus-visible:ring-2 focus-visible:ring-ring focus-visible:outline-none", colors.block, event.disabled && "cursor-not-allowed opacity-60"), children: [_jsx("span", { className: cn("truncate leading-tight font-medium", size === "sm" ? "text-[11px]" : "text-xs"), children: event.title }), !compact && (_jsx("span", { className: "truncate text-[10px] opacity-75", children: formatEventTime(event, defaultDurationMinutes) })), !compact && event.location && (_jsx("span", { className: "truncate text-[10px] opacity-60", children: event.location }))] }));
19
+ }
20
+ /** All-day / multi-day banner chip (month & time-grid all-day rows). */
21
+ export function AllDayBanner({ event, size, onClick, }) {
22
+ const colors = eventColorClasses(event.color);
23
+ return (_jsx("button", { type: "button", onClick: onClick, disabled: event.disabled, className: cn("flex w-full items-center rounded border px-1.5 py-0.5 text-left transition-colors", "focus-visible:ring-2 focus-visible:ring-ring focus-visible:outline-none", TITLE_TEXT[size], colors.block, event.disabled && "cursor-not-allowed opacity-60"), children: _jsx("span", { className: "truncate font-medium", children: event.title }) }));
24
+ }
25
+ function formatTimeShort(date) {
26
+ const h = date.getHours();
27
+ const m = date.getMinutes();
28
+ const period = h >= 12 ? "p" : "a";
29
+ const hour12 = h % 12 === 0 ? 12 : h % 12;
30
+ return m === 0
31
+ ? `${hour12}${period}`
32
+ : `${hour12}:${String(m).padStart(2, "0")}${period}`;
33
+ }
34
+ //# sourceMappingURL=shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/calendar-engine/shared.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { CalendarViewProps } from "./shared";
2
+ /**
3
+ * Time-grid view backing both `week` (7 columns) and `day` (1 column). Renders a
4
+ * sticky day header, an all-day banner row, and a scrollable hour grid with
5
+ * absolutely-positioned, overlap-packed event blocks, business-hours shading,
6
+ * a live "now" indicator, click-to-create slot selection, optional bookable
7
+ * free-slot chips, and (when `editable`) pointer drag-move (across days) +
8
+ * edge-resize.
9
+ */
10
+ export declare function TimeGridView<T>(props: CalendarViewProps<T> & {
11
+ days: Date[];
12
+ }): import("react/jsx-runtime").JSX.Element;
13
+ //# sourceMappingURL=time-grid-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time-grid-view.d.ts","sourceRoot":"","sources":["../../src/calendar-engine/time-grid-view.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AA4BjD;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAC5B,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG;IAAE,IAAI,EAAE,IAAI,EAAE,CAAA;CAAE,2CA+c/C"}
@@ -0,0 +1,203 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ import { addMinutes, format, isSameDay, startOfDay } from "date-fns";
4
+ import { cn } from "@iamsaroj/smart-ui/lib/utils";
5
+ import { TimedEventBlock } from "./shared";
6
+ import { AllDayBanner } from "./shared";
7
+ import { eventEnd, eventsForDay, hourLabels, layoutDayEvents, minutesSinceMidnight, partitionDayEvents, } from "./calendar-utils";
8
+ import { generateFreeSlots } from "./booking";
9
+ const HOUR_HEIGHT = { sm: 40, md: 48, lg: 60 };
10
+ /** How far the pointer must travel before a click becomes a drag. */
11
+ const DRAG_THRESHOLD = 4;
12
+ /**
13
+ * Time-grid view backing both `week` (7 columns) and `day` (1 column). Renders a
14
+ * sticky day header, an all-day banner row, and a scrollable hour grid with
15
+ * absolutely-positioned, overlap-packed event blocks, business-hours shading,
16
+ * a live "now" indicator, click-to-create slot selection, optional bookable
17
+ * free-slot chips, and (when `editable`) pointer drag-move (across days) +
18
+ * edge-resize.
19
+ */
20
+ export function TimeGridView(props) {
21
+ const { days, events, size, minHour, maxHour, slotMinutes, defaultDurationMinutes, businessHours, now, onEventClick, onSlotSelect, onDateClick, renderEvent, editable, onEventChange, availability, slotCapacity, onSlotBook, } = props;
22
+ const hourHeight = HOUR_HEIGHT[size];
23
+ const hours = hourLabels(minHour, maxHour);
24
+ const windowStartMin = minHour * 60;
25
+ const windowEndMin = maxHour * 60;
26
+ const totalMinutes = windowEndMin - windowStartMin;
27
+ const bodyHeight = (maxHour - minHour) * hourHeight;
28
+ const [drag, setDrag] = React.useState(null);
29
+ // Latest preview, read on pointer-up without a stale-closure or a
30
+ // StrictMode-unsafe functional-update side effect.
31
+ const previewRef = React.useRef(null);
32
+ // The columns container, used to map pointer X → target day column.
33
+ const colsRef = React.useRef(null);
34
+ const snap = React.useCallback((minutes) => Math.round(minutes / slotMinutes) * slotMinutes, [slotMinutes]);
35
+ const pctTop = (min) => ((min - windowStartMin) / totalMinutes) * 100;
36
+ const pctHeight = (a, b) => ((b - a) / totalMinutes) * 100;
37
+ /**
38
+ * Start a move/resize gesture. Handlers are defined inline so they close over
39
+ * this render's geometry and are added/removed by the same reference — no
40
+ * effect, no stale refs. A movement threshold keeps plain clicks intact.
41
+ */
42
+ const beginGesture = (e, mode, event, day, sourceIndex) => {
43
+ if (!editable || event.editable === false || event.disabled)
44
+ return;
45
+ if (e.button !== 0)
46
+ return;
47
+ const startMin0 = minutesSinceMidnight(event.start);
48
+ const endMin0 = Math.max(startMin0 + slotMinutes, minutesSinceMidnight(eventEnd(event, defaultDurationMinutes)));
49
+ const startX = e.clientX;
50
+ const startY = e.clientY;
51
+ let moved = false;
52
+ const onMove = (ev) => {
53
+ const dx = ev.clientX - startX;
54
+ const dy = ev.clientY - startY;
55
+ if (!moved && Math.hypot(dx, dy) < DRAG_THRESHOLD)
56
+ return;
57
+ moved = true;
58
+ const dyMin = snap((dy / bodyHeight) * totalMinutes);
59
+ let next;
60
+ if (mode === "move") {
61
+ let dayIndex = sourceIndex;
62
+ const el = colsRef.current;
63
+ if (el && days.length > 1) {
64
+ const r = el.getBoundingClientRect();
65
+ const colW = r.width / days.length;
66
+ dayIndex = Math.min(days.length - 1, Math.max(0, Math.floor((ev.clientX - r.left) / colW)));
67
+ }
68
+ const duration = endMin0 - startMin0;
69
+ const startMin = Math.max(windowStartMin, Math.min(startMin0 + dyMin, windowEndMin - duration));
70
+ next = { event, mode, dayIndex, startMin, endMin: startMin + duration };
71
+ }
72
+ else {
73
+ const endMin = Math.max(startMin0 + slotMinutes, Math.min(endMin0 + dyMin, windowEndMin));
74
+ next = {
75
+ event,
76
+ mode,
77
+ dayIndex: sourceIndex,
78
+ startMin: startMin0,
79
+ endMin,
80
+ };
81
+ }
82
+ previewRef.current = next;
83
+ setDrag(next);
84
+ };
85
+ const onUp = () => {
86
+ window.removeEventListener("pointermove", onMove);
87
+ window.removeEventListener("pointerup", onUp);
88
+ const preview = previewRef.current;
89
+ previewRef.current = null;
90
+ if (moved && preview && onEventChange) {
91
+ const targetDay = days[preview.dayIndex] ?? day;
92
+ const base = startOfDay(targetDay);
93
+ onEventChange({
94
+ event,
95
+ start: addMinutes(base, preview.startMin),
96
+ end: addMinutes(base, preview.endMin),
97
+ kind: mode,
98
+ });
99
+ }
100
+ setDrag(null);
101
+ };
102
+ window.addEventListener("pointermove", onMove);
103
+ window.addEventListener("pointerup", onUp);
104
+ };
105
+ const hasAllDay = React.useMemo(() => days.some((day) => partitionDayEvents(eventsForDay(events, day)).allDay.length > 0), [days, events]);
106
+ const handleColumnClick = (day, e) => {
107
+ if (!onSlotSelect)
108
+ return;
109
+ if (e.target !== e.currentTarget)
110
+ return;
111
+ const rect = e.currentTarget.getBoundingClientRect();
112
+ const offsetY = e.clientY - rect.top;
113
+ const rawMinutes = windowStartMin + (offsetY / rect.height) * totalMinutes;
114
+ const snapped = Math.floor(rawMinutes / slotMinutes) * slotMinutes;
115
+ const start = addMinutes(startOfDay(day), snapped);
116
+ onSlotSelect({ start, end: addMinutes(start, slotMinutes), allDay: false });
117
+ };
118
+ return (_jsxs("div", { className: "flex min-h-0 flex-1 flex-col", children: [_jsxs("div", { className: "flex border-b border-border", children: [_jsx("div", { className: "w-14 shrink-0" }), _jsx("div", { className: "grid flex-1", style: {
119
+ gridTemplateColumns: `repeat(${days.length}, minmax(0, 1fr))`,
120
+ }, children: days.map((day, dayIndex) => {
121
+ const isToday = isSameDay(day, now);
122
+ const isDropTarget = drag?.mode === "move" && drag.dayIndex === dayIndex;
123
+ return (_jsxs("button", { type: "button", onClick: () => onDateClick?.(day), className: cn("flex flex-col items-center gap-0.5 border-l border-border py-2 first:border-l-0 hover:bg-accent/50", isDropTarget && "bg-primary/10"), children: [_jsx("span", { className: "text-[11px] font-medium text-muted-foreground uppercase", children: format(day, "EEE") }), _jsx("span", { className: cn("flex size-7 items-center justify-center rounded-full text-sm tabular-nums", isToday &&
124
+ "bg-primary font-semibold text-primary-foreground"), children: format(day, "d") })] }, day.toISOString()));
125
+ }) })] }), hasAllDay && (_jsxs("div", { className: "flex border-b border-border bg-muted/20", children: [_jsx("div", { className: "flex w-14 shrink-0 items-center justify-end pr-2 text-[10px] text-muted-foreground", children: "all-day" }), _jsx("div", { className: "grid flex-1", style: {
126
+ gridTemplateColumns: `repeat(${days.length}, minmax(0, 1fr))`,
127
+ }, children: days.map((day) => {
128
+ const allDay = partitionDayEvents(eventsForDay(events, day)).allDay;
129
+ return (_jsx("div", { className: "flex flex-col gap-0.5 border-l border-border p-1 first:border-l-0", children: allDay.map((event) => (_jsx(AllDayBanner, { event: event, size: size, onClick: (e) => onEventClick?.(event, e) }, event.id))) }, day.toISOString()));
130
+ }) })] })), _jsx("div", { className: "min-h-0 flex-1 overflow-y-auto", children: _jsxs("div", { className: "flex", children: [_jsx("div", { className: "w-14 shrink-0", children: hours.map((h) => (_jsx("div", { className: "relative text-right", style: { height: hourHeight }, children: _jsx("span", { className: "absolute -top-2 right-2 text-[10px] text-muted-foreground tabular-nums", children: formatHour(h) }) }, h))) }), _jsxs("div", { ref: colsRef, className: "relative grid flex-1", style: {
131
+ gridTemplateColumns: `repeat(${days.length}, minmax(0, 1fr))`,
132
+ }, children: [days.map((day, dayIndex) => {
133
+ const timed = partitionDayEvents(eventsForDay(events, day)).timed;
134
+ const positioned = layoutDayEvents(timed, day, minHour, maxHour, defaultDurationMinutes);
135
+ const freeSlots = availability
136
+ ? generateFreeSlots(day, availability, timed, slotMinutes, slotCapacity, now)
137
+ : [];
138
+ const showNow = isSameDay(day, now);
139
+ const nowMinutes = minutesSinceMidnight(now);
140
+ const nowVisible = showNow &&
141
+ nowMinutes >= windowStartMin &&
142
+ nowMinutes <= windowEndMin;
143
+ return (_jsxs("div", { className: "relative border-l border-border first:border-l-0", style: { height: bodyHeight }, onClick: (e) => handleColumnClick(day, e), children: [businessHours && (_jsx("div", { className: "pointer-events-none absolute inset-x-0 bg-muted/25", style: {
144
+ top: `${pctTop(businessHours.startMinutes)}%`,
145
+ height: `${pctHeight(businessHours.startMinutes, businessHours.endMinutes)}%`,
146
+ } })), hours.slice(0, -1).map((h, i) => (_jsx("div", { className: "pointer-events-none absolute inset-x-0 border-t border-border/60", style: { top: (i + 1) * hourHeight } }, h))), freeSlots.map((slot) => {
147
+ const s = minutesSinceMidnight(slot.start);
148
+ const e = s + (slot.end.getTime() - slot.start.getTime()) / 60000;
149
+ return (_jsxs("button", { type: "button", onClick: (ev) => {
150
+ ev.stopPropagation();
151
+ onSlotBook?.(slot);
152
+ }, className: "absolute inset-x-0.5 flex items-center justify-center rounded border border-dashed border-emerald-500/50 bg-emerald-500/5 text-[10px] font-medium text-emerald-700 transition-colors hover:bg-emerald-500/15 dark:text-emerald-300", style: {
153
+ top: `${pctTop(s)}%`,
154
+ height: `${pctHeight(s, e)}%`,
155
+ }, children: [format(slot.start, "h:mm a"), slot.capacity > 1 ? ` · ${slot.capacity} left` : ""] }, slot.start.toISOString()));
156
+ }), positioned.map((p) => {
157
+ const dragging = drag?.event.id === p.event.id;
158
+ // In resize mode the block reshapes in place; in move mode
159
+ // the source dims and the floating preview shows the target.
160
+ const resizing = dragging && drag.mode === "resize";
161
+ const moving = dragging && drag.mode === "move";
162
+ const top = resizing ? pctTop(drag.startMin) : p.top;
163
+ const height = resizing
164
+ ? pctHeight(drag.startMin, drag.endMin)
165
+ : p.height;
166
+ const canEdit = editable &&
167
+ p.event.editable !== false &&
168
+ !p.event.disabled;
169
+ return (_jsx("div", { className: cn("absolute p-px", resizing && "z-20", moving && "opacity-30"), style: {
170
+ top: `${top}%`,
171
+ height: `${height}%`,
172
+ left: `${p.left}%`,
173
+ width: `${p.width}%`,
174
+ }, onPointerDown: canEdit
175
+ ? (e) => beginGesture(e, "move", p.event, day, dayIndex)
176
+ : undefined, children: renderEvent ? (renderEvent(p.event)) : (_jsxs("div", { className: "relative size-full", children: [_jsx(TimedEventBlock, { event: p.event, size: size, defaultDurationMinutes: defaultDurationMinutes, compact: height < 6, onClick: (e) => {
177
+ e.stopPropagation();
178
+ if (!dragging)
179
+ onEventClick?.(p.event, e);
180
+ } }), canEdit && (_jsx("div", { className: "absolute inset-x-0 bottom-0 h-1.5 cursor-ns-resize", onPointerDown: (e) => {
181
+ e.stopPropagation();
182
+ beginGesture(e, "resize", p.event, day, dayIndex);
183
+ } }))] })) }, p.event.id));
184
+ }), nowVisible && (_jsxs("div", { className: "pointer-events-none absolute inset-x-0 z-10 flex items-center", style: { top: `${pctTop(nowMinutes)}%` }, children: [_jsx("span", { className: "size-2 -translate-x-1/2 rounded-full bg-red-500" }), _jsx("span", { className: "h-px flex-1 bg-red-500" })] }))] }, day.toISOString()));
185
+ }), drag?.mode === "move" && (_jsx("div", { className: "pointer-events-none absolute z-30 p-px", style: {
186
+ left: `${(drag.dayIndex / days.length) * 100}%`,
187
+ width: `${100 / days.length}%`,
188
+ top: `${pctTop(drag.startMin)}%`,
189
+ height: `${pctHeight(drag.startMin, drag.endMin)}%`,
190
+ }, children: _jsx("div", { className: "size-full rounded-md opacity-90 shadow-lg ring-2 ring-primary/50", children: _jsx(TimedEventBlock, { event: {
191
+ ...drag.event,
192
+ start: addMinutes(startOfDay(days[drag.dayIndex] ?? days[0]), drag.startMin),
193
+ end: addMinutes(startOfDay(days[drag.dayIndex] ?? days[0]), drag.endMin),
194
+ }, size: size, defaultDurationMinutes: defaultDurationMinutes }) }) }))] })] }) })] }));
195
+ }
196
+ function formatHour(h) {
197
+ if (h === 0 || h === 24)
198
+ return "12 AM";
199
+ if (h === 12)
200
+ return "12 PM";
201
+ return h < 12 ? `${h} AM` : `${h - 12} PM`;
202
+ }
203
+ //# sourceMappingURL=time-grid-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time-grid-view.js","sourceRoot":"","sources":["../../src/calendar-engine/time-grid-view.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,138 @@
1
+ import type * as React from "react";
2
+ /**
3
+ * A single calendar event / booking. Generic over an arbitrary `data` payload so
4
+ * the calendar can carry domain objects (meetings, reservations, shifts…) without
5
+ * losing type information in the callbacks.
6
+ *
7
+ * `start`/`end` are plain `Date`s. When `end` is omitted the event is treated as a
8
+ * point in time (a default duration is applied in the time-grid views). When
9
+ * `allDay` is set the times are ignored and the event spans whole day cells.
10
+ */
11
+ export interface CalendarEvent<T = unknown> {
12
+ /** Stable, unique identifier across the whole calendar. */
13
+ id: string;
14
+ /** Text or node rendered as the event title. */
15
+ title: React.ReactNode;
16
+ /** Event start. */
17
+ start: Date;
18
+ /** Event end. Defaults to `start + defaultDurationMinutes` when omitted. */
19
+ end?: Date;
20
+ /** Render as an all-day / multi-day banner instead of a timed block. */
21
+ allDay?: boolean;
22
+ /** One of the preset color tokens. @default "blue" */
23
+ color?: CalendarEventColor;
24
+ /** Optional secondary line (location, attendee, room…). */
25
+ location?: React.ReactNode;
26
+ /** Prevent selection/drag interaction for this event. */
27
+ disabled?: boolean;
28
+ /**
29
+ * Allow drag-to-move and edge-resize for this event. Only takes effect when
30
+ * the calendar is `editable`. @default true (when the calendar is editable)
31
+ */
32
+ editable?: boolean;
33
+ /**
34
+ * Repeat rule. When set, the event is a *template*: the calendar expands it
35
+ * into concrete instances across the visible range (the template itself is
36
+ * never rendered directly). Instances carry an id of `"<id>::<ISO-date>"`.
37
+ */
38
+ recurrence?: RecurrenceRule;
39
+ /**
40
+ * Present only on an expanded recurrence instance — the template's `id` and
41
+ * the instance's own start date. Absent on plain events.
42
+ */
43
+ occurrence?: {
44
+ templateId: string;
45
+ date: Date;
46
+ };
47
+ /** Arbitrary payload returned in callbacks. */
48
+ data?: T;
49
+ }
50
+ /** How often a recurring event repeats. */
51
+ export type RecurrenceFreq = "daily" | "weekly" | "monthly";
52
+ /**
53
+ * A compact, RRULE-inspired recurrence rule. Intentionally a small subset:
54
+ * daily/weekly/monthly with an interval, optional weekday restriction (weekly),
55
+ * a stop condition (`count` or `until`), and explicit skip dates (`exceptions`).
56
+ */
57
+ export interface RecurrenceRule {
58
+ freq: RecurrenceFreq;
59
+ /** Repeat every `interval` units (e.g. every 2 weeks). @default 1 */
60
+ interval?: number;
61
+ /** For weekly rules: which weekdays repeat. Defaults to the start's weekday. */
62
+ byWeekday?: Weekday[];
63
+ /** Stop after this many occurrences (inclusive of the first). */
64
+ count?: number;
65
+ /** Stop on/after this date (inclusive). */
66
+ until?: Date;
67
+ /** Dates to skip (compared by calendar day). */
68
+ exceptions?: Date[];
69
+ }
70
+ /** A weekly availability window used by booking mode. */
71
+ export interface AvailabilityWindow {
72
+ /** Which weekday this window applies to. */
73
+ weekday: Weekday;
74
+ /** Window open, minutes since midnight. */
75
+ startMinutes: number;
76
+ /** Window close, minutes since midnight. */
77
+ endMinutes: number;
78
+ }
79
+ /** A single bookable slot produced from availability minus existing events. */
80
+ export interface FreeSlot {
81
+ start: Date;
82
+ end: Date;
83
+ /** Remaining capacity for the slot (>= 1). */
84
+ capacity: number;
85
+ }
86
+ /** Detail handed to `onEventChange` after a drag-move or resize. */
87
+ export interface EventChangeMeta<T = unknown> {
88
+ event: CalendarEvent<T>;
89
+ start: Date;
90
+ end: Date;
91
+ /** What the gesture changed. */
92
+ kind: "move" | "resize";
93
+ }
94
+ /**
95
+ * Preset color tokens. Each maps to a themed set of Tailwind classes in
96
+ * `event-color.ts`; callers pick a name rather than raw classes so events read
97
+ * consistently in light and dark mode.
98
+ */
99
+ export type CalendarEventColor = "blue" | "green" | "amber" | "red" | "violet" | "pink" | "cyan" | "gray";
100
+ /** The available calendar views. */
101
+ export type CalendarView = "month" | "week" | "day" | "agenda";
102
+ /** Row/text density. */
103
+ export type CalendarSize = "sm" | "md" | "lg";
104
+ /** 0 = Sunday … 6 = Saturday (matches `date-fns` `weekStartsOn`). */
105
+ export type Weekday = 0 | 1 | 2 | 3 | 4 | 5 | 6;
106
+ /**
107
+ * A contiguous time window inside a day, expressed as minutes since midnight.
108
+ * Used for business-hours shading and slot selection.
109
+ */
110
+ export interface TimeRange {
111
+ /** Minutes since midnight, inclusive. */
112
+ startMinutes: number;
113
+ /** Minutes since midnight, exclusive. */
114
+ endMinutes: number;
115
+ }
116
+ /** Detail handed to `onSlotSelect` when an empty time slot is chosen. */
117
+ export interface CalendarSlot {
118
+ start: Date;
119
+ end: Date;
120
+ /** True when the slot came from an all-day / month cell. */
121
+ allDay: boolean;
122
+ }
123
+ /** Imperative handle exposed via `ref`. */
124
+ export interface SmartCalendarHandle {
125
+ /** Advance one page in the current view (month/week/day). */
126
+ next: () => void;
127
+ /** Go back one page in the current view. */
128
+ prev: () => void;
129
+ /** Jump to today, keeping the current view. */
130
+ today: () => void;
131
+ /** Navigate to an arbitrary date, keeping the current view. */
132
+ goToDate: (date: Date) => void;
133
+ /** Switch the active view. */
134
+ setView: (view: CalendarView) => void;
135
+ getDate: () => Date;
136
+ getView: () => CalendarView;
137
+ }
138
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/calendar-engine/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/calendar-engine/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Controlled/uncontrolled state in one hook — the same pattern the tree engine
3
+ * uses (`use-tree.ts`). When `controlled` is provided the hook is a pass-through
4
+ * that only calls `onChange`; otherwise it owns state and still forwards changes.
5
+ */
6
+ export declare function useControllable<V>(controlled: V | undefined, defaultValue: V, onChange?: (value: V) => void): [V, (next: V | ((prev: V) => V)) => void];
7
+ //# sourceMappingURL=use-calendar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-calendar.d.ts","sourceRoot":"","sources":["../../src/calendar-engine/use-calendar.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAC/B,UAAU,EAAE,CAAC,GAAG,SAAS,EACzB,YAAY,EAAE,CAAC,EACf,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GAC5B,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAuB3C"}
@@ -0,0 +1,25 @@
1
+ import * as React from "react";
2
+ /**
3
+ * Controlled/uncontrolled state in one hook — the same pattern the tree engine
4
+ * uses (`use-tree.ts`). When `controlled` is provided the hook is a pass-through
5
+ * that only calls `onChange`; otherwise it owns state and still forwards changes.
6
+ */
7
+ export function useControllable(controlled, defaultValue, onChange) {
8
+ const [uncontrolled, setUncontrolled] = React.useState(defaultValue);
9
+ const isControlled = controlled !== undefined;
10
+ const value = isControlled ? controlled : uncontrolled;
11
+ const valueRef = React.useRef(value);
12
+ React.useEffect(() => {
13
+ valueRef.current = value;
14
+ });
15
+ const set = React.useCallback((next) => {
16
+ const resolved = typeof next === "function"
17
+ ? next(valueRef.current)
18
+ : next;
19
+ if (!isControlled)
20
+ setUncontrolled(resolved);
21
+ onChange?.(resolved);
22
+ }, [isControlled, onChange]);
23
+ return [value, set];
24
+ }
25
+ //# sourceMappingURL=use-calendar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-calendar.js","sourceRoot":"","sources":["../../src/calendar-engine/use-calendar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAC7B,UAAyB,EACzB,YAAe,EACf,QAA6B;IAE7B,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;IACpE,MAAM,YAAY,GAAG,UAAU,KAAK,SAAS,CAAA;IAC7C,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAE,UAAgB,CAAC,CAAC,CAAC,YAAY,CAAA;IAE7D,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACpC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAA;IAC1B,CAAC,CAAC,CAAA;IAEF,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,CAC3B,CAAC,IAA0B,EAAE,EAAE;QAC7B,MAAM,QAAQ,GACZ,OAAO,IAAI,KAAK,UAAU;YACxB,CAAC,CAAE,IAAuB,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC5C,CAAC,CAAC,IAAI,CAAA;QACV,IAAI,CAAC,YAAY;YAAE,eAAe,CAAC,QAAQ,CAAC,CAAA;QAC5C,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAA;IACtB,CAAC,EACD,CAAC,YAAY,EAAE,QAAQ,CAAC,CACzB,CAAA;IAED,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AACrB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { Accordion as AccordionPrimitive } from "@base-ui/react/accordion";
2
+ declare const Accordion: ({ className, ...props }: AccordionPrimitive.Root.Props) => import("react/jsx-runtime").JSX.Element;
3
+ declare const AccordionItem: ({ className, ...props }: AccordionPrimitive.Item.Props) => import("react/jsx-runtime").JSX.Element;
4
+ declare const AccordionTrigger: ({ className, children, ...props }: AccordionPrimitive.Trigger.Props) => import("react/jsx-runtime").JSX.Element;
5
+ declare const AccordionContent: ({ className, children, ...props }: AccordionPrimitive.Panel.Props) => import("react/jsx-runtime").JSX.Element;
6
+ export { Accordion, AccordionItem, AccordionTrigger, AccordionContent };
7
+ //# sourceMappingURL=accordion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accordion.d.ts","sourceRoot":"","sources":["../../src/components/accordion.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAK1E,QAAA,MAAM,SAAS,GAAI,yBAAyB,kBAAkB,CAAC,IAAI,CAAC,KAAK,4CASxE,CAAA;AAED,QAAA,MAAM,aAAa,GAAI,yBAGpB,kBAAkB,CAAC,IAAI,CAAC,KAAK,4CAM/B,CAAA;AAED,QAAA,MAAM,gBAAgB,GAAI,mCAIvB,kBAAkB,CAAC,OAAO,CAAC,KAAK,4CAqBlC,CAAA;AAED,QAAA,MAAM,gBAAgB,GAAI,mCAIvB,kBAAkB,CAAC,KAAK,CAAC,KAAK,4CAehC,CAAA;AAED,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAA"}
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Accordion as AccordionPrimitive } from "@base-ui/react/accordion";
3
+ import { cn } from "@iamsaroj/smart-ui/lib/utils";
4
+ import { ChevronDownIcon, ChevronUpIcon } from "lucide-react";
5
+ const Accordion = ({ className, ...props }) => (_jsx(AccordionPrimitive.Root, { "data-slot": "accordion", className: cn("flex w-full flex-col overflow-hidden rounded-md border", className), ...props }));
6
+ const AccordionItem = ({ className, ...props }) => (_jsx(AccordionPrimitive.Item, { "data-slot": "accordion-item", className: cn("not-last:border-b data-open:bg-muted/50", className), ...props }));
7
+ const AccordionTrigger = ({ className, children, ...props }) => (_jsx(AccordionPrimitive.Header, { className: "flex", children: _jsxs(AccordionPrimitive.Trigger, { "data-slot": "accordion-trigger", className: cn("group/accordion-trigger relative flex flex-1 items-start justify-between gap-6 border border-transparent p-2 text-left text-xs/relaxed font-medium transition-all outline-none hover:underline aria-disabled:pointer-events-none aria-disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground", className), ...props, children: [children, _jsx(ChevronDownIcon, { "data-slot": "accordion-trigger-icon", className: "pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden" }), _jsx(ChevronUpIcon, { "data-slot": "accordion-trigger-icon", className: "pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline" })] }) }));
8
+ const AccordionContent = ({ className, children, ...props }) => (_jsx(AccordionPrimitive.Panel, { "data-slot": "accordion-content", className: "overflow-hidden px-2 text-xs/relaxed data-open:animate-accordion-down data-closed:animate-accordion-up", ...props, children: _jsx("div", { className: cn("h-(--accordion-panel-height) pt-0 pb-4 data-ending-style:h-0 data-starting-style:h-0 [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4", className), children: children }) }));
9
+ export { Accordion, AccordionItem, AccordionTrigger, AccordionContent };
10
+ //# sourceMappingURL=accordion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accordion.js","sourceRoot":"","sources":["../../src/components/accordion.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,IAAI,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAE1E,OAAO,EAAE,EAAE,EAAE,MAAM,8BAA8B,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAE7D,MAAM,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAiC,EAAE,EAAE,CAAC,CAC5E,KAAC,kBAAkB,CAAC,IAAI,iBACZ,WAAW,EACrB,SAAS,EAAE,EAAE,CACX,wDAAwD,EACxD,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAA;AAED,MAAM,aAAa,GAAG,CAAC,EACrB,SAAS,EACT,GAAG,KAAK,EACsB,EAAE,EAAE,CAAC,CACnC,KAAC,kBAAkB,CAAC,IAAI,iBACZ,gBAAgB,EAC1B,SAAS,EAAE,EAAE,CAAC,yCAAyC,EAAE,SAAS,CAAC,KAC/D,KAAK,GACT,CACH,CAAA;AAED,MAAM,gBAAgB,GAAG,CAAC,EACxB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACyB,EAAE,EAAE,CAAC,CACtC,KAAC,kBAAkB,CAAC,MAAM,IAAC,SAAS,EAAC,MAAM,YACzC,MAAC,kBAAkB,CAAC,OAAO,iBACf,mBAAmB,EAC7B,SAAS,EAAE,EAAE,CACX,kZAAkZ,EAClZ,SAAS,CACV,KACG,KAAK,aAER,QAAQ,EACT,KAAC,eAAe,iBACJ,wBAAwB,EAClC,SAAS,EAAC,2EAA2E,GACrF,EACF,KAAC,aAAa,iBACF,wBAAwB,EAClC,SAAS,EAAC,kFAAkF,GAC5F,IACyB,GACH,CAC7B,CAAA;AAED,MAAM,gBAAgB,GAAG,CAAC,EACxB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACuB,EAAE,EAAE,CAAC,CACpC,KAAC,kBAAkB,CAAC,KAAK,iBACb,mBAAmB,EAC7B,SAAS,EAAC,wGAAwG,KAC9G,KAAK,YAET,cACE,SAAS,EAAE,EAAE,CACX,uLAAuL,EACvL,SAAS,CACV,YAEA,QAAQ,GACL,GACmB,CAC5B,CAAA;AAED,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAA"}