@svelte-atoms/core 1.0.0-alpha.26 → 1.0.0-alpha.28

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 (362) hide show
  1. package/README.md +856 -645
  2. package/dist/components/accordion/accordion-root.svelte +2 -20
  3. package/dist/components/accordion/accordion-root.svelte.d.ts +2 -15
  4. package/dist/components/accordion/index.d.ts +2 -1
  5. package/dist/components/accordion/index.js +2 -1
  6. package/dist/components/accordion/item/accordion-item-body.svelte +2 -12
  7. package/dist/components/accordion/item/accordion-item-body.svelte.d.ts +2 -8
  8. package/dist/components/accordion/item/accordion-item-header.svelte +3 -13
  9. package/dist/components/accordion/item/accordion-item-header.svelte.d.ts +3 -20
  10. package/dist/components/accordion/item/accordion-item-indicator.svelte +3 -12
  11. package/dist/components/accordion/item/accordion-item-indicator.svelte.d.ts +2 -8
  12. package/dist/components/accordion/item/accordion-item-root.svelte +3 -17
  13. package/dist/components/accordion/item/accordion-item-root.svelte.d.ts +2 -12
  14. package/dist/components/accordion/item/index.d.ts +1 -0
  15. package/dist/components/accordion/item/types.d.ts +52 -0
  16. package/dist/components/accordion/item/types.js +1 -0
  17. package/dist/components/accordion/types.d.ts +21 -0
  18. package/dist/components/accordion/types.js +1 -0
  19. package/dist/components/alert/alert-actions.svelte +43 -52
  20. package/dist/components/alert/alert-actions.svelte.d.ts +3 -30
  21. package/dist/components/alert/alert-close-button.svelte +70 -79
  22. package/dist/components/alert/alert-close-button.svelte.d.ts +8 -35
  23. package/dist/components/alert/alert-content.svelte +43 -52
  24. package/dist/components/alert/alert-content.svelte.d.ts +3 -30
  25. package/dist/components/alert/alert-description.svelte +42 -51
  26. package/dist/components/alert/alert-description.svelte.d.ts +7 -10
  27. package/dist/components/alert/alert-icon.svelte +47 -56
  28. package/dist/components/alert/alert-icon.svelte.d.ts +2 -8
  29. package/dist/components/alert/alert-root.svelte +103 -118
  30. package/dist/components/alert/alert-root.svelte.d.ts +2 -13
  31. package/dist/components/alert/alert-title.svelte +42 -51
  32. package/dist/components/alert/alert-title.svelte.d.ts +2 -8
  33. package/dist/components/alert/alert.stories.svelte +401 -40
  34. package/dist/components/alert/alert.stories.svelte.d.ts +2 -5
  35. package/dist/components/alert/index.d.ts +1 -0
  36. package/dist/components/alert/index.js +1 -0
  37. package/dist/components/alert/types.d.ts +85 -0
  38. package/dist/components/alert/types.js +1 -0
  39. package/dist/components/atom/html-atom.svelte +205 -201
  40. package/dist/components/atom/html-atom.svelte.d.ts +2 -22
  41. package/dist/components/atom/snippet-renderer.svelte +5 -0
  42. package/dist/components/atom/snippet-renderer.svelte.d.ts +5 -0
  43. package/dist/components/atom/types.d.ts +7 -2
  44. package/dist/components/avatar/avatar.stories.svelte.d.ts +1 -1
  45. package/dist/components/avatar/types.d.ts +7 -2
  46. package/dist/components/badge/badge.stories.svelte.d.ts +1 -1
  47. package/dist/components/badge/types.d.ts +7 -2
  48. package/dist/components/breadcrumb/breadcrumb.stories.svelte.d.ts +1 -1
  49. package/dist/components/button/button.stories.svelte +60 -57
  50. package/dist/components/button/index.d.ts +1 -0
  51. package/dist/components/button/index.js +1 -0
  52. package/dist/components/button/types.d.ts +7 -2
  53. package/dist/components/calendar/atoms.d.ts +5 -0
  54. package/dist/components/calendar/atoms.js +5 -0
  55. package/dist/components/calendar/bond.svelte.d.ts +72 -0
  56. package/dist/components/calendar/bond.svelte.js +132 -0
  57. package/dist/components/calendar/calendar-body.svelte +107 -0
  58. package/dist/components/calendar/calendar-body.svelte.d.ts +8 -0
  59. package/dist/components/calendar/calendar-day.svelte +97 -0
  60. package/dist/components/calendar/calendar-day.svelte.d.ts +4 -0
  61. package/dist/components/calendar/calendar-header.svelte +33 -0
  62. package/dist/components/calendar/calendar-header.svelte.d.ts +7 -0
  63. package/dist/components/calendar/calendar-root.svelte +208 -0
  64. package/dist/components/calendar/calendar-root.svelte.d.ts +8 -0
  65. package/dist/components/calendar/calendar-week-day.svelte +34 -0
  66. package/dist/components/calendar/calendar-week-day.svelte.d.ts +9 -0
  67. package/dist/components/calendar/calendar.css +26 -0
  68. package/dist/components/calendar/calendar.stories.svelte +36 -0
  69. package/dist/components/calendar/calendar.stories.svelte.d.ts +6 -0
  70. package/dist/components/calendar/index.d.ts +4 -0
  71. package/dist/components/calendar/index.js +4 -0
  72. package/dist/components/calendar/runes.svelte.d.ts +3 -0
  73. package/dist/components/calendar/runes.svelte.js +25 -0
  74. package/dist/components/calendar/types.d.ts +62 -0
  75. package/dist/components/calendar/types.js +1 -0
  76. package/dist/components/card/card-body.svelte +2 -8
  77. package/dist/components/card/card-body.svelte.d.ts +7 -4
  78. package/dist/components/card/card-description.svelte +3 -10
  79. package/dist/components/card/card-description.svelte.d.ts +7 -7
  80. package/dist/components/card/card-footer.svelte +2 -9
  81. package/dist/components/card/card-footer.svelte.d.ts +7 -4
  82. package/dist/components/card/card-header.svelte +2 -9
  83. package/dist/components/card/card-header.svelte.d.ts +7 -4
  84. package/dist/components/card/card-media.svelte +2 -9
  85. package/dist/components/card/card-media.svelte.d.ts +7 -4
  86. package/dist/components/card/card-root.svelte +2 -2
  87. package/dist/components/card/card-root.svelte.d.ts +1 -1
  88. package/dist/components/card/card-subtitle.svelte +3 -10
  89. package/dist/components/card/card-subtitle.svelte.d.ts +12 -9
  90. package/dist/components/card/card-title.svelte +3 -10
  91. package/dist/components/card/card-title.svelte.d.ts +12 -9
  92. package/dist/components/card/index.d.ts +1 -0
  93. package/dist/components/card/index.js +1 -0
  94. package/dist/components/card/types.d.ts +57 -2
  95. package/dist/components/checkbox/types.d.ts +7 -2
  96. package/dist/components/collapsible/collapsible-body.svelte +2 -15
  97. package/dist/components/collapsible/collapsible-body.svelte.d.ts +2 -9
  98. package/dist/components/collapsible/collapsible-header.svelte +2 -15
  99. package/dist/components/collapsible/collapsible-header.svelte.d.ts +2 -9
  100. package/dist/components/collapsible/collapsible-indicator.svelte +4 -19
  101. package/dist/components/collapsible/collapsible-indicator.svelte.d.ts +3 -10
  102. package/dist/components/collapsible/collapsible-root.svelte +2 -21
  103. package/dist/components/collapsible/collapsible-root.svelte.d.ts +2 -14
  104. package/dist/components/collapsible/index.d.ts +1 -0
  105. package/dist/components/collapsible/index.js +1 -0
  106. package/dist/components/collapsible/types.d.ts +54 -0
  107. package/dist/components/collapsible/types.js +1 -0
  108. package/dist/components/combobox/combobox-root.svelte +2 -5
  109. package/dist/components/combobox/combobox-root.svelte.d.ts +5 -18
  110. package/dist/components/combobox/index.d.ts +1 -0
  111. package/dist/components/combobox/index.js +1 -0
  112. package/dist/components/combobox/types.d.ts +25 -0
  113. package/dist/components/combobox/types.js +1 -0
  114. package/dist/components/container/container.stories.svelte.d.ts +1 -1
  115. package/dist/components/container/types.d.ts +7 -2
  116. package/dist/components/contextmenu/contextmenu-trigger.svelte.d.ts +1 -1
  117. package/dist/components/contextmenu/types.d.ts +8 -0
  118. package/dist/components/contextmenu/types.js +1 -0
  119. package/dist/components/datagrid/bond.svelte.d.ts +2 -2
  120. package/dist/components/datagrid/datagrid-body.svelte +6 -13
  121. package/dist/components/datagrid/datagrid-body.svelte.d.ts +17 -20
  122. package/dist/components/datagrid/datagrid-checkbox.svelte +3 -10
  123. package/dist/components/datagrid/datagrid-checkbox.svelte.d.ts +4 -6
  124. package/dist/components/datagrid/datagrid-footer.svelte +1 -1
  125. package/dist/components/datagrid/datagrid-footer.svelte.d.ts +1 -1
  126. package/dist/components/datagrid/datagrid-header.svelte +2 -2
  127. package/dist/components/datagrid/datagrid-header.svelte.d.ts +1 -1
  128. package/dist/components/datagrid/datagrid-root.svelte +2 -2
  129. package/dist/components/datagrid/datagrid-root.svelte.d.ts +1 -1
  130. package/dist/components/datagrid/td/datagrid-td.svelte +3 -17
  131. package/dist/components/datagrid/td/datagrid-td.svelte.d.ts +7 -16
  132. package/dist/components/datagrid/th/datagrid-th.svelte +3 -24
  133. package/dist/components/datagrid/th/datagrid-th.svelte.d.ts +2 -20
  134. package/dist/components/datagrid/tr/bond.svelte.d.ts +3 -1
  135. package/dist/components/datagrid/tr/bond.svelte.js +4 -2
  136. package/dist/components/datagrid/tr/datagrid-tr.svelte +7 -22
  137. package/dist/components/datagrid/tr/datagrid-tr.svelte.d.ts +2 -18
  138. package/dist/components/datagrid/types.d.ts +85 -37
  139. package/dist/components/date-picker/atoms.d.ts +7 -0
  140. package/dist/components/date-picker/atoms.js +7 -0
  141. package/dist/components/date-picker/bond.svelte.d.ts +67 -0
  142. package/dist/components/date-picker/bond.svelte.js +174 -0
  143. package/dist/components/date-picker/date-picker-calendar.svelte +42 -0
  144. package/dist/components/date-picker/date-picker-calendar.svelte.d.ts +7 -0
  145. package/dist/components/date-picker/date-picker-header.svelte +105 -0
  146. package/dist/components/date-picker/date-picker-header.svelte.d.ts +7 -0
  147. package/dist/components/date-picker/date-picker-months.svelte +150 -0
  148. package/dist/components/date-picker/date-picker-months.svelte.d.ts +7 -0
  149. package/dist/components/date-picker/date-picker-root.svelte +94 -0
  150. package/dist/components/date-picker/date-picker-root.svelte.d.ts +17 -0
  151. package/dist/components/date-picker/date-picker-years.svelte +214 -0
  152. package/dist/components/date-picker/date-picker-years.svelte.d.ts +7 -0
  153. package/dist/components/date-picker/date-picker.stories.svelte +51 -0
  154. package/dist/components/date-picker/date-picker.stories.svelte.d.ts +3 -0
  155. package/dist/components/date-picker/index.d.ts +3 -0
  156. package/dist/components/date-picker/index.js +3 -0
  157. package/dist/components/date-picker/types.d.ts +1 -0
  158. package/dist/components/date-picker/types.js +1 -0
  159. package/dist/components/dialog/dialog-body.svelte +2 -8
  160. package/dist/components/dialog/dialog-body.svelte.d.ts +2 -2
  161. package/dist/components/dialog/dialog-close-button.svelte +7 -10
  162. package/dist/components/dialog/dialog-close-button.svelte.d.ts +7 -7
  163. package/dist/components/dialog/dialog-content.svelte +2 -8
  164. package/dist/components/dialog/dialog-content.svelte.d.ts +2 -2
  165. package/dist/components/dialog/dialog-description.svelte +2 -8
  166. package/dist/components/dialog/dialog-description.svelte.d.ts +2 -2
  167. package/dist/components/dialog/dialog-footer.svelte +2 -8
  168. package/dist/components/dialog/dialog-footer.svelte.d.ts +2 -2
  169. package/dist/components/dialog/dialog-header.svelte +2 -8
  170. package/dist/components/dialog/dialog-header.svelte.d.ts +2 -2
  171. package/dist/components/dialog/dialog-root.svelte +110 -123
  172. package/dist/components/dialog/dialog-root.svelte.d.ts +2 -12
  173. package/dist/components/dialog/dialog-title.svelte +3 -9
  174. package/dist/components/dialog/dialog-title.svelte.d.ts +7 -7
  175. package/dist/components/dialog/index.d.ts +1 -0
  176. package/dist/components/dialog/index.js +1 -0
  177. package/dist/components/dialog/types.d.ts +67 -0
  178. package/dist/components/dialog/types.js +1 -0
  179. package/dist/components/divider/types.d.ts +10 -0
  180. package/dist/components/divider/types.js +1 -0
  181. package/dist/components/drawer/drawer-backdrop.svelte +2 -11
  182. package/dist/components/drawer/drawer-backdrop.svelte.d.ts +3 -26
  183. package/dist/components/drawer/drawer-body.svelte +2 -16
  184. package/dist/components/drawer/drawer-body.svelte.d.ts +3 -16
  185. package/dist/components/drawer/drawer-content.svelte +2 -15
  186. package/dist/components/drawer/drawer-content.svelte.d.ts +3 -14
  187. package/dist/components/drawer/drawer-description.svelte +2 -15
  188. package/dist/components/drawer/drawer-description.svelte.d.ts +3 -14
  189. package/dist/components/drawer/drawer-footer.svelte +2 -15
  190. package/dist/components/drawer/drawer-footer.svelte.d.ts +3 -14
  191. package/dist/components/drawer/drawer-header.svelte +3 -16
  192. package/dist/components/drawer/drawer-header.svelte.d.ts +3 -14
  193. package/dist/components/drawer/drawer-root.svelte +93 -118
  194. package/dist/components/drawer/drawer-root.svelte.d.ts +3 -34
  195. package/dist/components/drawer/drawer-title.svelte +2 -15
  196. package/dist/components/drawer/drawer-title.svelte.d.ts +3 -14
  197. package/dist/components/drawer/index.d.ts +1 -0
  198. package/dist/components/drawer/index.js +1 -0
  199. package/dist/components/drawer/types.d.ts +86 -0
  200. package/dist/components/drawer/types.js +1 -0
  201. package/dist/components/dropdown/dropdown-query.svelte +2 -1
  202. package/dist/components/dropdown/dropdown-query.svelte.d.ts +11 -10
  203. package/dist/components/dropdown/dropdown-root.svelte +1 -1
  204. package/dist/components/dropdown/dropdown-trigger.svelte +2 -13
  205. package/dist/components/dropdown/dropdown-trigger.svelte.d.ts +1 -8
  206. package/dist/components/dropdown/dropdown-value.svelte +1 -1
  207. package/dist/components/dropdown/index.d.ts +1 -0
  208. package/dist/components/dropdown/index.js +1 -0
  209. package/dist/components/dropdown/types.d.ts +37 -0
  210. package/dist/components/dropdown/types.js +1 -0
  211. package/dist/components/element/html-element.svelte +85 -85
  212. package/dist/components/element/html-element.svelte.d.ts +2 -14
  213. package/dist/components/element/svg-element.svelte.d.ts +2 -14
  214. package/dist/components/element/types.d.ts +14 -7
  215. package/dist/components/form/bond.svelte.d.ts +1 -1
  216. package/dist/components/form/field/field-control.svelte +3 -20
  217. package/dist/components/form/field/field-control.svelte.d.ts +5 -19
  218. package/dist/components/form/field/field-label.svelte +1 -8
  219. package/dist/components/form/field/field-label.svelte.d.ts +1 -2
  220. package/dist/components/form/field/field-root.svelte +5 -34
  221. package/dist/components/form/field/field-root.svelte.d.ts +5 -20
  222. package/dist/components/form/index.d.ts +1 -0
  223. package/dist/components/form/index.js +1 -0
  224. package/dist/components/form/types.d.ts +76 -0
  225. package/dist/components/form/types.js +1 -0
  226. package/dist/components/icon/icon.svelte +3 -14
  227. package/dist/components/icon/icon.svelte.d.ts +4 -29
  228. package/dist/components/icon/types.d.ts +11 -7
  229. package/dist/components/image/image.stories.svelte.d.ts +1 -1
  230. package/dist/components/index.d.ts +3 -0
  231. package/dist/components/index.js +3 -0
  232. package/dist/components/input/index.d.ts +1 -0
  233. package/dist/components/input/index.js +1 -0
  234. package/dist/components/input/input-control.svelte +0 -4
  235. package/dist/components/input/input-control.svelte.d.ts +2 -3
  236. package/dist/components/input/input-icon.svelte.d.ts +1 -1
  237. package/dist/components/input/input-placeholder.svelte.d.ts +2 -19
  238. package/dist/components/input/types.d.ts +18 -7
  239. package/dist/components/label/index.d.ts +1 -0
  240. package/dist/components/label/index.js +1 -0
  241. package/dist/components/label/label.svelte +2 -18
  242. package/dist/components/label/label.svelte.d.ts +3 -27
  243. package/dist/components/label/types.d.ts +11 -0
  244. package/dist/components/label/types.js +1 -0
  245. package/dist/components/layer/layer-inner.svelte.d.ts +2 -19
  246. package/dist/components/layer/layer-root.svelte.d.ts +2 -19
  247. package/dist/components/layer/types.d.ts +11 -0
  248. package/dist/components/layer/types.js +1 -0
  249. package/dist/components/link/types.d.ts +8 -0
  250. package/dist/components/link/types.js +1 -0
  251. package/dist/components/list/types.d.ts +8 -0
  252. package/dist/components/list/types.js +1 -0
  253. package/dist/components/menu/index.d.ts +1 -0
  254. package/dist/components/menu/index.js +1 -0
  255. package/dist/components/menu/types.d.ts +15 -0
  256. package/dist/components/menu/types.js +1 -0
  257. package/dist/components/popover/index.d.ts +1 -0
  258. package/dist/components/popover/index.js +1 -0
  259. package/dist/components/popover/popover-arrow.svelte +111 -111
  260. package/dist/components/popover/popover-arrow.svelte.d.ts +2 -18
  261. package/dist/components/popover/popover-content.svelte +47 -8
  262. package/dist/components/popover/popover-root.svelte +16 -17
  263. package/dist/components/popover/popover-trigger.svelte +47 -47
  264. package/dist/components/popover/popover.stories.svelte +52 -67
  265. package/dist/components/popover/types.d.ts +32 -10
  266. package/dist/components/portal/active-portal.svelte +22 -22
  267. package/dist/components/portal/index.d.ts +1 -0
  268. package/dist/components/portal/index.js +1 -0
  269. package/dist/components/portal/portal-inner.svelte.d.ts +2 -19
  270. package/dist/components/portal/portal-root.svelte +2 -7
  271. package/dist/components/portal/portal-root.svelte.d.ts +2 -22
  272. package/dist/components/portal/teleport.svelte +50 -55
  273. package/dist/components/portal/teleport.svelte.d.ts +3 -22
  274. package/dist/components/portal/types.d.ts +39 -0
  275. package/dist/components/portal/types.js +1 -0
  276. package/dist/components/qr-code/index.d.ts +1 -0
  277. package/dist/components/qr-code/index.js +1 -0
  278. package/dist/components/qr-code/qr-code.stories.svelte +24 -0
  279. package/dist/components/qr-code/qr-code.stories.svelte.d.ts +26 -0
  280. package/dist/components/qr-code/qr-code.svelte +25 -0
  281. package/dist/components/qr-code/qr-code.svelte.d.ts +6 -0
  282. package/dist/components/radio/radio.svelte +1 -1
  283. package/dist/components/radio/radio.svelte.d.ts +14 -36
  284. package/dist/components/radio/types.svelte.d.ts +1 -1
  285. package/dist/components/root/root.svelte +121 -121
  286. package/dist/components/root/types.d.ts +8 -0
  287. package/dist/components/root/types.js +1 -0
  288. package/dist/components/scrollable/index.d.ts +1 -0
  289. package/dist/components/scrollable/index.js +1 -0
  290. package/dist/components/scrollable/scrollable-container.svelte +3 -10
  291. package/dist/components/scrollable/scrollable-container.svelte.d.ts +2 -6
  292. package/dist/components/scrollable/scrollable-content.svelte +2 -12
  293. package/dist/components/scrollable/scrollable-content.svelte.d.ts +1 -6
  294. package/dist/components/scrollable/scrollable-root.svelte +3 -23
  295. package/dist/components/scrollable/scrollable-root.svelte.d.ts +3 -19
  296. package/dist/components/scrollable/scrollable-thumb.svelte +2 -13
  297. package/dist/components/scrollable/scrollable-thumb.svelte.d.ts +1 -7
  298. package/dist/components/scrollable/scrollable-track.svelte +2 -13
  299. package/dist/components/scrollable/scrollable-track.svelte.d.ts +1 -7
  300. package/dist/components/scrollable/scrollable.stories.svelte.d.ts +1 -1
  301. package/dist/components/scrollable/types.d.ts +62 -0
  302. package/dist/components/scrollable/types.js +1 -0
  303. package/dist/components/sidebar/index.d.ts +1 -0
  304. package/dist/components/sidebar/index.js +1 -0
  305. package/dist/components/sidebar/types.d.ts +16 -5
  306. package/dist/components/stack/stack-root.svelte.d.ts +2 -19
  307. package/dist/components/stack/types.d.ts +12 -0
  308. package/dist/components/stack/types.js +1 -0
  309. package/dist/components/tabs/index.d.ts +1 -0
  310. package/dist/components/tabs/index.js +1 -0
  311. package/dist/components/tabs/tab/tab-body.svelte +2 -11
  312. package/dist/components/tabs/tab/tab-body.svelte.d.ts +2 -8
  313. package/dist/components/tabs/tab/tab-description.svelte +2 -11
  314. package/dist/components/tabs/tab/tab-description.svelte.d.ts +2 -8
  315. package/dist/components/tabs/tab/tab-header.svelte +2 -12
  316. package/dist/components/tabs/tab/tab-header.svelte.d.ts +2 -11
  317. package/dist/components/tabs/tab/tab-root.svelte +1 -1
  318. package/dist/components/tabs/types.d.ts +55 -0
  319. package/dist/components/tabs/types.js +1 -0
  320. package/dist/components/textarea/index.d.ts +1 -0
  321. package/dist/components/textarea/index.js +1 -0
  322. package/dist/components/textarea/types.d.ts +28 -0
  323. package/dist/components/textarea/types.js +1 -0
  324. package/dist/components/toast/index.d.ts +1 -0
  325. package/dist/components/toast/index.js +1 -0
  326. package/dist/components/toast/toast-description.svelte +3 -9
  327. package/dist/components/toast/toast-description.svelte.d.ts +8 -34
  328. package/dist/components/toast/toast-root.svelte +3 -16
  329. package/dist/components/toast/toast-root.svelte.d.ts +4 -43
  330. package/dist/components/toast/toast-title.svelte +2 -10
  331. package/dist/components/toast/toast-title.svelte.d.ts +2 -34
  332. package/dist/components/toast/types.d.ts +40 -0
  333. package/dist/components/toast/types.js +1 -0
  334. package/dist/components/tooltip/types.d.ts +13 -0
  335. package/dist/components/tooltip/types.js +1 -0
  336. package/dist/components/tree/index.d.ts +1 -0
  337. package/dist/components/tree/index.js +1 -0
  338. package/dist/components/tree/tree-body.svelte +2 -13
  339. package/dist/components/tree/tree-body.svelte.d.ts +2 -10
  340. package/dist/components/tree/tree-header.svelte +2 -14
  341. package/dist/components/tree/tree-header.svelte.d.ts +3 -29
  342. package/dist/components/tree/tree-indicator.svelte +4 -14
  343. package/dist/components/tree/tree-indicator.svelte.d.ts +3 -9
  344. package/dist/components/tree/tree-root.svelte +3 -18
  345. package/dist/components/tree/tree-root.svelte.d.ts +2 -12
  346. package/dist/components/tree/types.d.ts +59 -0
  347. package/dist/components/tree/types.js +1 -0
  348. package/dist/components/virtual/types.d.ts +23 -0
  349. package/dist/components/virtual/types.js +1 -0
  350. package/dist/components/virtual/virtual-root.svelte +2 -21
  351. package/dist/components/virtual/virtual-root.svelte.d.ts +1 -18
  352. package/dist/context/preset.svelte.d.ts +1 -1
  353. package/dist/icons/icon-arrow-down.svelte.d.ts +1 -1
  354. package/dist/icons/icon-checkmark.svelte.d.ts +1 -1
  355. package/dist/icons/icon-close.svelte.d.ts +1 -1
  356. package/dist/icons/icon-more-vert.svelte.d.ts +1 -1
  357. package/dist/runes/container.svelte.d.ts +2 -2
  358. package/dist/shared/bond.svelte.d.ts +1 -1
  359. package/dist/utils/state.d.ts +1 -1
  360. package/dist/utils/state.js +2 -1
  361. package/llm/variants.md +1261 -712
  362. package/package.json +464 -437
@@ -0,0 +1,67 @@
1
+ import { PopoverBond, PopoverState, type PopoverDomElements, type PopoverStateProps } from '../popover/bond.svelte';
2
+ import type { CalendarBond, CalendarBondProps } from '../calendar/bond.svelte';
3
+ export type DatePickerBondProps = PopoverStateProps & CalendarBondProps & {
4
+ format?: string;
5
+ placeholder?: string;
6
+ };
7
+ export type DatePickerBondElements = PopoverDomElements & {
8
+ trigger: HTMLInputElement;
9
+ root: HTMLElement;
10
+ content: HTMLElement;
11
+ clearButton: HTMLElement;
12
+ };
13
+ export declare class DatePickerBond<Props extends DatePickerBondProps = DatePickerBondProps, State extends DatePickerBondState<Props> = DatePickerBondState<Props>> extends PopoverBond<Props, State, DatePickerBondElements> {
14
+ #private;
15
+ static CONTEXT_KEY: string;
16
+ constructor(state: State);
17
+ get calendar(): CalendarBond<CalendarBondProps, import("..").CalendarBondState<CalendarBondProps>> | undefined;
18
+ setCalendar(calendar: CalendarBond): void;
19
+ share(): this;
20
+ trigger(): {
21
+ [x: symbol]: (node: HTMLInputElement) => void;
22
+ id: string;
23
+ role: string;
24
+ 'aria-expanded': boolean;
25
+ 'aria-controls': string;
26
+ 'aria-label': string;
27
+ 'aria-disabled': boolean;
28
+ placeholder: string;
29
+ disabled: boolean;
30
+ readonly: boolean;
31
+ tabindex: number;
32
+ };
33
+ content(): {
34
+ [x: symbol]: (node: HTMLElement) => void;
35
+ id: string;
36
+ role: string;
37
+ 'aria-label': string;
38
+ };
39
+ clearButton(props?: Record<string, unknown>): {
40
+ onclick: (ev: Event) => void;
41
+ id: string;
42
+ type: string;
43
+ 'aria-label': string;
44
+ tabindex: number;
45
+ };
46
+ static get(): DatePickerBond;
47
+ static set(bond: DatePickerBond): DatePickerBond;
48
+ }
49
+ export declare class DatePickerBondState<Props extends DatePickerBondProps> extends PopoverState<Props> {
50
+ #private;
51
+ constructor(props: () => Props);
52
+ get formattedValue(): string;
53
+ get hasValue(): boolean;
54
+ get isYearsPickerOpen(): boolean;
55
+ get isMonthsPickerOpen(): boolean;
56
+ selectDate(date: Date): void;
57
+ selectStart(date: Date): void;
58
+ selectEnd(date: Date): void;
59
+ clear(): void;
60
+ private formatDate;
61
+ openYearsPicker(): void;
62
+ closeYearsPicker(): void;
63
+ toggleYearsPicker(): void;
64
+ openMonthsPicker(): void;
65
+ closeMonthsPicker(): void;
66
+ toggleMonthsPicker(): void;
67
+ }
@@ -0,0 +1,174 @@
1
+ import { PopoverBond, PopoverState } from '../popover/bond.svelte';
2
+ import { getContext, setContext } from 'svelte';
3
+ import { createAttachmentKey } from 'svelte/attachments';
4
+ export class DatePickerBond extends PopoverBond {
5
+ static CONTEXT_KEY = '@atoms/context/date-picker';
6
+ #calendarBond;
7
+ constructor(state) {
8
+ super(state);
9
+ }
10
+ get calendar() {
11
+ return this.#calendarBond;
12
+ }
13
+ setCalendar(calendar) {
14
+ this.#calendarBond = calendar;
15
+ }
16
+ share() {
17
+ return DatePickerBond.set(this);
18
+ }
19
+ trigger() {
20
+ const isDisabled = this.state.props.disabled ?? false;
21
+ const placeholder = this.state.props.placeholder ?? 'Select a date';
22
+ return {
23
+ id: `date-picker-input-${this.id}`,
24
+ role: 'combobox',
25
+ 'aria-expanded': this.state.props.open ?? false,
26
+ 'aria-controls': `date-picker-calendar-${this.id}`,
27
+ 'aria-label': 'Date picker',
28
+ 'aria-disabled': isDisabled,
29
+ placeholder,
30
+ disabled: isDisabled,
31
+ readonly: true,
32
+ tabindex: isDisabled ? -1 : 0,
33
+ [createAttachmentKey()]: (node) => {
34
+ this.elements.trigger = node;
35
+ }
36
+ };
37
+ }
38
+ content() {
39
+ return {
40
+ id: `date-picker-calendar-${this.id}`,
41
+ role: 'dialog',
42
+ 'aria-label': 'Choose date',
43
+ [createAttachmentKey()]: (node) => {
44
+ this.elements.content = node;
45
+ }
46
+ };
47
+ }
48
+ clearButton(props = {}) {
49
+ const hasValue = this.state.hasValue;
50
+ return {
51
+ id: `date-picker-clear-${this.id}`,
52
+ type: 'button',
53
+ 'aria-label': 'Clear date',
54
+ tabindex: hasValue ? 0 : -1,
55
+ ...props,
56
+ onclick: (ev) => {
57
+ ev.preventDefault();
58
+ ev.stopPropagation();
59
+ this.state.clear();
60
+ },
61
+ [createAttachmentKey()]: (node) => {
62
+ this.elements.clearButton = node;
63
+ }
64
+ };
65
+ }
66
+ static get() {
67
+ return getContext(this.CONTEXT_KEY);
68
+ }
69
+ static set(bond) {
70
+ return setContext(this.CONTEXT_KEY, bond);
71
+ }
72
+ }
73
+ export class DatePickerBondState extends PopoverState {
74
+ #isYearsPickerOpen = $state(false);
75
+ #isMonthsPickerOpen = $state(false);
76
+ constructor(props) {
77
+ super(props);
78
+ }
79
+ get formattedValue() {
80
+ if (this.props.range) {
81
+ if (!this.props.start)
82
+ return '';
83
+ if (!this.props.end)
84
+ return this.formatDate(this.props.start);
85
+ return `${this.formatDate(this.props.start)} - ${this.formatDate(this.props.end)}`;
86
+ }
87
+ return this.props.value ? this.formatDate(this.props.value) : '';
88
+ }
89
+ get hasValue() {
90
+ if (this.props.range) {
91
+ return !!(this.props.start || this.props.end);
92
+ }
93
+ return !!this.props.value;
94
+ }
95
+ get isYearsPickerOpen() {
96
+ return this.#isYearsPickerOpen;
97
+ }
98
+ get isMonthsPickerOpen() {
99
+ return this.#isMonthsPickerOpen;
100
+ }
101
+ selectDate(date) {
102
+ if (this.props.range) {
103
+ if (!this.props.start) {
104
+ this.props.start = date;
105
+ }
106
+ else if (!this.props.end) {
107
+ this.props.end = date;
108
+ this.close(); // Close after selecting range
109
+ }
110
+ else {
111
+ this.props.start = date;
112
+ this.props.end = undefined;
113
+ }
114
+ }
115
+ else {
116
+ this.props.value = date;
117
+ this.close(); // Close after selecting single date
118
+ }
119
+ }
120
+ selectStart(date) {
121
+ this.props.start = date;
122
+ }
123
+ selectEnd(date) {
124
+ this.props.end = date;
125
+ this.close();
126
+ }
127
+ clear() {
128
+ this.props.value = undefined;
129
+ this.props.start = undefined;
130
+ this.props.end = undefined;
131
+ }
132
+ formatDate(date) {
133
+ const format = this.props.format ?? 'MM/dd/yyyy';
134
+ // Basic formatting - can be enhanced with date-fns format later
135
+ if (format === 'MM/dd/yyyy') {
136
+ const month = String(date.getMonth() + 1).padStart(2, '0');
137
+ const day = String(date.getDate()).padStart(2, '0');
138
+ const year = date.getFullYear();
139
+ return `${month}/${day}/${year}`;
140
+ }
141
+ if (format === 'dd/MM/yyyy') {
142
+ const month = String(date.getMonth() + 1).padStart(2, '0');
143
+ const day = String(date.getDate()).padStart(2, '0');
144
+ const year = date.getFullYear();
145
+ return `${day}/${month}/${year}`;
146
+ }
147
+ if (format === 'yyyy-MM-dd') {
148
+ const month = String(date.getMonth() + 1).padStart(2, '0');
149
+ const day = String(date.getDate()).padStart(2, '0');
150
+ const year = date.getFullYear();
151
+ return `${year}-${month}-${day}`;
152
+ }
153
+ // Default fallback
154
+ return date.toLocaleDateString();
155
+ }
156
+ openYearsPicker() {
157
+ this.#isYearsPickerOpen = true;
158
+ }
159
+ closeYearsPicker() {
160
+ this.#isYearsPickerOpen = false;
161
+ }
162
+ toggleYearsPicker() {
163
+ this.#isYearsPickerOpen = !this.#isYearsPickerOpen;
164
+ }
165
+ openMonthsPicker() {
166
+ this.#isMonthsPickerOpen = true;
167
+ }
168
+ closeMonthsPicker() {
169
+ this.#isMonthsPickerOpen = false;
170
+ }
171
+ toggleMonthsPicker() {
172
+ this.#isMonthsPickerOpen = !this.#isMonthsPickerOpen;
173
+ }
174
+ }
@@ -0,0 +1,42 @@
1
+ <script lang="ts">
2
+ import { Content } from '../popover/atoms';
3
+ import { Root } from '../calendar/atoms';
4
+ import { DatePickerBond } from './bond.svelte';
5
+
6
+ const datePickerBond = DatePickerBond.get();
7
+ const datePickerBondProps = $derived(datePickerBond?.state.props);
8
+
9
+ let {
10
+ class: klass = '',
11
+ preset = 'datepicker.calendar',
12
+ children: datePickerChildren,
13
+ ...restProps
14
+ } = $props();
15
+
16
+ const calendarProps = $derived({
17
+ ...datePickerBond?.content(),
18
+ ...datePickerBondProps,
19
+ ...restProps
20
+ });
21
+
22
+ function handleChange(ev: CustomEvent, { range, pivote }) {
23
+ if (!datePickerBond) return;
24
+
25
+ datePickerBond.state.props.range = range;
26
+ datePickerBond.state.props.pivote = pivote;
27
+ }
28
+ </script>
29
+
30
+ <Content
31
+ class={['relative overflow-hidden p-0', klass]}
32
+ base={Root}
33
+ onchange={handleChange}
34
+ {preset}
35
+ {...calendarProps}
36
+ >
37
+ {#snippet children({ calendar })}
38
+ {@render datePickerChildren?.({
39
+ datePicker: datePickerBond
40
+ })}
41
+ {/snippet}
42
+ </Content>
@@ -0,0 +1,7 @@
1
+ declare const DatePickerCalendar: import("svelte").Component<{
2
+ class?: string;
3
+ preset?: string;
4
+ children: any;
5
+ } & Record<string, any>, {}, "">;
6
+ type DatePickerCalendar = ReturnType<typeof DatePickerCalendar>;
7
+ export default DatePickerCalendar;
@@ -0,0 +1,105 @@
1
+ <script lang="ts">
2
+ import { HtmlAtom } from '../atom';
3
+ import { DatePickerBond } from './bond.svelte';
4
+ import { CalendarBond } from '../calendar/bond.svelte';
5
+ import { Icon } from '../icon';
6
+
7
+ const datePickerBond = DatePickerBond.get();
8
+ const calendarBond = CalendarBond.get();
9
+
10
+ let { class: klass = '', preset = 'datepicker.header', children, ...restProps } = $props();
11
+
12
+ const calendarBondProps = $derived(datePickerBond?.state?.props);
13
+
14
+ const pivote = $derived(calendarBondProps?.pivote ?? new Date());
15
+
16
+ // Format month and year
17
+ const monthName = $derived(pivote.toLocaleDateString('en-US', { month: 'long' }));
18
+ const year = $derived(pivote.getFullYear());
19
+
20
+ function handlePreviousMonth() {
21
+ calendarBond?.state?.previousMonth();
22
+ }
23
+
24
+ function handleNextMonth() {
25
+ calendarBond?.state?.nextMonth();
26
+ }
27
+
28
+ function handleMonthPicker() {
29
+ if (!datePickerBond) return;
30
+ datePickerBond.state.openMonthsPicker();
31
+ }
32
+ </script>
33
+
34
+ <HtmlAtom
35
+ as="nav"
36
+ class={['border-border flex items-center justify-between gap-2 border-b p-2', '$preset', klass]}
37
+ {preset}
38
+ {...restProps}
39
+ >
40
+ {#if children}
41
+ {@render children?.({
42
+ datePicker: datePickerBond,
43
+ calendar: calendarBond,
44
+ monthName,
45
+ year,
46
+ onPrevious: handlePreviousMonth,
47
+ onNext: handleNextMonth
48
+ })}
49
+ {:else}
50
+ <!-- Previous Month Button -->
51
+ <button
52
+ type="button"
53
+ class="hover:bg-foreground/10 active:bg-foreground/20 flex size-8 cursor-pointer items-center justify-center rounded-md transition-colors"
54
+ onclick={handlePreviousMonth}
55
+ aria-label="Previous month"
56
+ >
57
+ <Icon class="size-5">
58
+ <svg
59
+ xmlns="http://www.w3.org/2000/svg"
60
+ class="size-full"
61
+ viewBox="0 0 24 24"
62
+ fill="none"
63
+ stroke="currentColor"
64
+ stroke-width="2"
65
+ stroke-linecap="round"
66
+ stroke-linejoin="round"
67
+ >
68
+ <path d="M15 18l-6-6 6-6" />
69
+ </svg>
70
+ </Icon>
71
+ </button>
72
+
73
+ <!-- Month and Year Display -->
74
+ <button
75
+ class="text-foreground h-full flex-1 cursor-pointer text-center text-sm font-semibold"
76
+ onclick={handleMonthPicker}
77
+ >
78
+ {monthName}
79
+ {year}
80
+ </button>
81
+
82
+ <!-- Next Month Button -->
83
+ <button
84
+ type="button"
85
+ class="hover:bg-foreground/10 active:bg-foreground/20 flex size-8 cursor-pointer items-center justify-center rounded-md transition-colors"
86
+ onclick={handleNextMonth}
87
+ aria-label="Next month"
88
+ >
89
+ <Icon class="size-5">
90
+ <svg
91
+ xmlns="http://www.w3.org/2000/svg"
92
+ class="size-full"
93
+ viewBox="0 0 24 24"
94
+ fill="none"
95
+ stroke="currentColor"
96
+ stroke-width="2"
97
+ stroke-linecap="round"
98
+ stroke-linejoin="round"
99
+ >
100
+ <path d="M9 18l6-6-6-6" />
101
+ </svg>
102
+ </Icon>
103
+ </button>
104
+ {/if}
105
+ </HtmlAtom>
@@ -0,0 +1,7 @@
1
+ declare const DatePickerHeader: import("svelte").Component<{
2
+ class?: string;
3
+ preset?: string;
4
+ children: any;
5
+ } & Record<string, any>, {}, "">;
6
+ type DatePickerHeader = ReturnType<typeof DatePickerHeader>;
7
+ export default DatePickerHeader;
@@ -0,0 +1,150 @@
1
+ <script lang="ts">
2
+ import { HtmlAtom } from '../atom';
3
+ import { PopoverBond } from '../popover';
4
+ import { DatePickerBond } from './bond.svelte';
5
+ import { getYear, getMonth, setMonth } from 'date-fns';
6
+ import { cn } from '../../utils';
7
+ import { animate } from 'motion';
8
+
9
+ const popover = PopoverBond.get();
10
+ const datePicker = DatePickerBond.get();
11
+ const calendar = datePicker.calendar;
12
+
13
+ const pivote = $derived(datePicker?.state.props.pivote ?? new Date());
14
+
15
+ const currentYear = $derived(getYear(pivote));
16
+ const currentMonth = $derived(getMonth(pivote));
17
+
18
+ // Generate array of months
19
+ const monthsGrid = [
20
+ 'Jan',
21
+ 'Feb',
22
+ 'Mar',
23
+ 'Apr',
24
+ 'May',
25
+ 'Jun',
26
+ 'Jul',
27
+ 'Aug',
28
+ 'Sep',
29
+ 'Oct',
30
+ 'Nov',
31
+ 'Dec'
32
+ ];
33
+
34
+ let { class: klass = '', preset = 'datepicker.months', children, ...restProps } = $props();
35
+
36
+ function enter(node: HTMLElement) {
37
+ animate(
38
+ node,
39
+ {
40
+ scale: [0.8, 1]
41
+ },
42
+ { duration: 100 / 1000, ease: 'circOut' }
43
+ );
44
+ return {
45
+ duration: 100
46
+ };
47
+ }
48
+
49
+ function exit(node: HTMLElement) {
50
+ animate(
51
+ node,
52
+ {
53
+ scale: 0.8
54
+ },
55
+ { duration: 100 / 1000, ease: 'circOut' }
56
+ );
57
+ return {
58
+ duration: 100
59
+ };
60
+ }
61
+
62
+ function handleMonthSelect(monthIndex: number) {
63
+ if (!datePicker?.state.props.pivote) return;
64
+ const current = datePicker.state.props.pivote;
65
+ datePicker.state.props.pivote = setMonth(current, monthIndex);
66
+
67
+ datePicker.state.closeMonthsPicker();
68
+ }
69
+
70
+ function handleYearPicker() {
71
+ if (!datePicker) return;
72
+ datePicker.state.openYearsPicker();
73
+ }
74
+ </script>
75
+
76
+ {#if datePicker.state.isMonthsPickerOpen}
77
+ <HtmlAtom
78
+ class={['absolute inset-0 z-1 flex flex-col gap-2 bg-inherit opacity-0', '$preset', klass]}
79
+ enter={(node) => {
80
+ animate(
81
+ node,
82
+ {
83
+ opacity: [0, 1]
84
+ },
85
+ { duration: 100 / 1000, ease: 'anticipate' }
86
+ );
87
+ return {
88
+ duration: 100
89
+ };
90
+ }}
91
+ exit={(node) => {
92
+ animate(
93
+ node,
94
+ {
95
+ opacity: 0
96
+ },
97
+ { duration: 100 / 1000, ease: 'anticipate' }
98
+ );
99
+ return {
100
+ duration: 100
101
+ };
102
+ }}
103
+ {preset}
104
+ {...restProps}
105
+ >
106
+ <HtmlAtom class="flex flex-1 flex-col gap-2" {enter} {exit}>
107
+ {#if children}
108
+ {@render children?.({
109
+ calendar,
110
+ popover,
111
+ currentYear,
112
+ currentMonth,
113
+ monthsGrid,
114
+ onMonthSelect: handleMonthSelect
115
+ })}
116
+ {:else}
117
+ <!-- Year Display -->
118
+ <nav
119
+ class="border-border text-foreground flex h-12 items-center justify-center gap-2 border-b px-2 py-2"
120
+ >
121
+ <button
122
+ class="text-foreground cursor-pointer text-center text-sm font-semibold"
123
+ onclick={handleYearPicker}
124
+ >
125
+ {currentYear}
126
+ </button>
127
+ </nav>
128
+
129
+ <!-- Months Grid -->
130
+ <div class="grid flex-1 grid-cols-3 gap-1 px-2 pb-2">
131
+ {#each monthsGrid as month, index}
132
+ {@const isSelected = index === currentMonth}
133
+ <button
134
+ type="button"
135
+ class={cn(
136
+ 'hover:bg-foreground/10 active:bg-foreground/20 rounded-md px-3 py-2 text-sm transition-colors',
137
+ isSelected && 'bg-primary text-primary-foreground hover:bg-primary/90'
138
+ )}
139
+ onclick={() => handleMonthSelect(index)}
140
+ aria-label="Select {month}"
141
+ aria-current={isSelected ? 'date' : undefined}
142
+ >
143
+ {month}
144
+ </button>
145
+ {/each}
146
+ </div>
147
+ {/if}
148
+ </HtmlAtom>
149
+ </HtmlAtom>
150
+ {/if}
@@ -0,0 +1,7 @@
1
+ declare const DatePickerMonths: import("svelte").Component<{
2
+ class?: string;
3
+ preset?: string;
4
+ children: any;
5
+ } & Record<string, any>, {}, "">;
6
+ type DatePickerMonths = ReturnType<typeof DatePickerMonths>;
7
+ export default DatePickerMonths;
@@ -0,0 +1,94 @@
1
+ <script lang="ts">
2
+ import { defineProperty, defineState } from '../../utils';
3
+ import { startOfDay } from 'date-fns';
4
+ import { Root } from '../popover/atoms';
5
+ import type { CalendarRange } from '../calendar/types';
6
+ import { DatePickerBond, DatePickerBondState, type DatePickerBondProps } from './bond.svelte';
7
+
8
+ let {
9
+ open = $bindable(false),
10
+ value = $bindable(undefined),
11
+ range = $bindable([undefined, undefined]),
12
+ pivote = $bindable(new Date()),
13
+ start = $bindable(startOfDay(new Date())),
14
+ end = $bindable(undefined),
15
+ min = undefined,
16
+ max = undefined,
17
+ type = 'single',
18
+ offset = 2,
19
+ factory = _factory,
20
+ children,
21
+ ...restProps
22
+ } = $props();
23
+
24
+ const seed = {};
25
+
26
+ const bondProps = defineState<DatePickerBondProps>(
27
+ [
28
+ defineProperty(
29
+ 'open',
30
+ () => open,
31
+ (v) => {
32
+ open = v;
33
+ }
34
+ ),
35
+ defineProperty(
36
+ 'range',
37
+ () => range,
38
+ (v: CalendarRange) => {
39
+ range = v;
40
+ value = v[0];
41
+ }
42
+ ),
43
+ defineProperty(
44
+ 'value',
45
+ () => range?.[0],
46
+ (v) => {
47
+ range[0] = v;
48
+ }
49
+ ),
50
+ defineProperty(
51
+ 'pivote',
52
+ () => pivote,
53
+ (v: Date) => (pivote = v)
54
+ ),
55
+ defineProperty(
56
+ 'start',
57
+ () => range[0],
58
+ (v: Date) => {
59
+ range[0] = v;
60
+ }
61
+ ),
62
+ defineProperty(
63
+ 'end',
64
+ () => range[1],
65
+ (v: Date | undefined) => {
66
+ range[1] = v;
67
+ }
68
+ ),
69
+ defineProperty(
70
+ 'min',
71
+ () => min,
72
+ (v: Date | undefined) => (min = v)
73
+ ),
74
+ defineProperty(
75
+ 'max',
76
+ () => max,
77
+ (v: Date | undefined) => (max = v)
78
+ ),
79
+ defineProperty('type', () => type ?? 'single')
80
+ ],
81
+ () => seed
82
+ );
83
+
84
+ const bond = factory().share();
85
+
86
+ function _factory() {
87
+ const bondState = new DatePickerBondState(() => bondProps);
88
+ return new DatePickerBond(bondState);
89
+ }
90
+ </script>
91
+
92
+ <Root bind:open extend={bondProps} {offset} {...restProps}>
93
+ {@render children?.({ datePicker: bond })}
94
+ </Root>
@@ -0,0 +1,17 @@
1
+ import { DatePickerBond, DatePickerBondState, type DatePickerBondProps } from './bond.svelte';
2
+ declare const DatePickerRoot: import("svelte").Component<{
3
+ open?: boolean;
4
+ value?: any;
5
+ range?: any[];
6
+ pivote?: any;
7
+ start?: any;
8
+ end?: any;
9
+ min?: any;
10
+ max?: any;
11
+ type?: string;
12
+ offset?: number;
13
+ factory?: () => DatePickerBond<DatePickerBondProps, DatePickerBondState<DatePickerBondProps>>;
14
+ children: any;
15
+ } & Record<string, any>, {}, "value" | "end" | "range" | "open" | "start" | "pivote">;
16
+ type DatePickerRoot = ReturnType<typeof DatePickerRoot>;
17
+ export default DatePickerRoot;