@svelte-atoms/core 1.0.0-alpha.40 → 1.0.0-alpha.44

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 (636) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +67 -197
  3. package/dist/attachments/clickout.svelte.d.ts +4 -1
  4. package/dist/attachments/clickout.svelte.js +2 -1
  5. package/dist/components/accordion/accordion-root.svelte +61 -66
  6. package/dist/components/accordion/accordion-root.svelte.d.ts +2 -2
  7. package/dist/components/accordion/bond.svelte.d.ts +11 -10
  8. package/dist/components/accordion/bond.svelte.js +26 -16
  9. package/dist/components/accordion/item/accordion-item-body.svelte +3 -1
  10. package/dist/components/accordion/item/accordion-item-header.svelte +1 -1
  11. package/dist/components/accordion/item/accordion-item-indicator.svelte +1 -1
  12. package/dist/components/accordion/item/accordion-item-root.svelte +3 -2
  13. package/dist/components/accordion/item/bond.svelte.d.ts +32 -18
  14. package/dist/components/accordion/item/bond.svelte.js +88 -64
  15. package/dist/components/accordion/item/types.d.ts +4 -24
  16. package/dist/components/accordion/types.d.ts +5 -9
  17. package/dist/components/alert/alert-root.svelte +68 -68
  18. package/dist/components/alert/types.d.ts +12 -46
  19. package/dist/components/atom/html-atom.svelte +84 -95
  20. package/dist/components/atom/html-atom.svelte.d.ts +1 -2
  21. package/dist/components/atom/index.d.ts +1 -0
  22. package/dist/components/atom/index.js +1 -0
  23. package/dist/components/atom/types.d.ts +52 -10
  24. package/dist/components/atom/types.js +1 -1
  25. package/dist/components/atom/utils.d.ts +10 -3
  26. package/dist/components/atom/utils.js +112 -45
  27. package/dist/components/avatar/types.d.ts +1 -6
  28. package/dist/components/badge/index.d.ts +1 -0
  29. package/dist/components/badge/types.d.ts +4 -7
  30. package/dist/components/button/button.svelte +31 -31
  31. package/dist/components/button/types.d.ts +9 -6
  32. package/dist/components/calendar/calendar-body.svelte +0 -1
  33. package/dist/components/calendar/calendar-day.css +6 -6
  34. package/dist/components/calendar/calendar-day.svelte +99 -99
  35. package/dist/components/calendar/calendar-header.svelte +1 -1
  36. package/dist/components/calendar/calendar-root.svelte +206 -206
  37. package/dist/components/calendar/calendar-root.svelte.d.ts +1 -1
  38. package/dist/components/calendar/calendar-week-day.svelte +33 -33
  39. package/dist/components/calendar/types.d.ts +7 -10
  40. package/dist/components/card/card-root.svelte +92 -92
  41. package/dist/components/card/types.d.ts +12 -51
  42. package/dist/components/checkbox/checkbox.svelte +65 -55
  43. package/dist/components/checkbox/checkbox.svelte.d.ts +1 -3
  44. package/dist/components/checkbox/index.d.ts +2 -0
  45. package/dist/components/checkbox/index.js +1 -0
  46. package/dist/components/checkbox/motion.d.ts +17 -0
  47. package/dist/components/checkbox/motion.js +34 -0
  48. package/dist/components/checkbox/types.d.ts +14 -7
  49. package/dist/components/chip/chip-close-button.svelte +33 -0
  50. package/dist/components/chip/chip-close-button.svelte.d.ts +4 -0
  51. package/dist/components/chip/chip.svelte +34 -41
  52. package/dist/components/chip/chip.svelte.d.ts +1 -3
  53. package/dist/components/chip/index.d.ts +2 -0
  54. package/dist/components/chip/index.js +2 -0
  55. package/dist/components/chip/types.d.ts +15 -8
  56. package/dist/components/collapsible/bond.svelte.d.ts +34 -24
  57. package/dist/components/collapsible/bond.svelte.js +73 -60
  58. package/dist/components/collapsible/collapsible-body.svelte +1 -1
  59. package/dist/components/collapsible/collapsible-header.svelte +1 -1
  60. package/dist/components/collapsible/collapsible-indicator.svelte +1 -1
  61. package/dist/components/collapsible/collapsible-root.svelte +67 -67
  62. package/dist/components/collapsible/types.d.ts +10 -22
  63. package/dist/components/combobox/bond.svelte.d.ts +13 -8
  64. package/dist/components/combobox/bond.svelte.js +30 -20
  65. package/dist/components/combobox/combobox-control.svelte +66 -66
  66. package/dist/components/combobox/combobox-item.svelte +62 -62
  67. package/dist/components/combobox/combobox-root.svelte +65 -65
  68. package/dist/components/combobox/combobox-root.svelte.d.ts +2 -2
  69. package/dist/components/combobox/combobox-selections.svelte +17 -17
  70. package/dist/components/combobox/combobox-trigger.svelte +3 -14
  71. package/dist/components/combobox/combobox-trigger.svelte.d.ts +1 -6
  72. package/dist/components/combobox/types.d.ts +6 -10
  73. package/dist/components/container/index.d.ts +1 -0
  74. package/dist/components/container/types.d.ts +6 -12
  75. package/dist/components/context-menu/atoms.d.ts +4 -0
  76. package/dist/components/context-menu/atoms.js +4 -0
  77. package/dist/components/context-menu/context-menu-content.svelte +52 -0
  78. package/dist/components/context-menu/context-menu-content.svelte.d.ts +27 -0
  79. package/dist/components/context-menu/context-menu-root.svelte +8 -0
  80. package/dist/components/context-menu/context-menu-root.svelte.d.ts +4 -0
  81. package/dist/components/context-menu/context-menu-trigger.svelte +59 -0
  82. package/dist/components/context-menu/context-menu-trigger.svelte.d.ts +27 -0
  83. package/dist/components/context-menu/index.d.ts +2 -0
  84. package/dist/components/context-menu/index.js +2 -0
  85. package/dist/components/{contextmenu → context-menu}/types.d.ts +1 -6
  86. package/dist/components/datagrid/atoms.d.ts +11 -5
  87. package/dist/components/datagrid/atoms.js +11 -5
  88. package/dist/components/datagrid/bond.svelte.d.ts +29 -14
  89. package/dist/components/datagrid/bond.svelte.js +45 -33
  90. package/dist/components/datagrid/cell/bond.svelte.d.ts +29 -0
  91. package/dist/components/datagrid/cell/bond.svelte.js +42 -0
  92. package/dist/components/datagrid/cell/datagrid-cell.svelte +49 -0
  93. package/dist/components/datagrid/cell/datagrid-cell.svelte.d.ts +26 -0
  94. package/dist/components/datagrid/cell/index.d.ts +4 -0
  95. package/dist/components/datagrid/cell/index.js +4 -0
  96. package/dist/components/datagrid/col/index.d.ts +4 -0
  97. package/dist/components/datagrid/col/index.js +4 -0
  98. package/dist/components/datagrid/column/bond.svelte.d.ts +45 -0
  99. package/dist/components/datagrid/column/bond.svelte.js +76 -0
  100. package/dist/components/datagrid/{th/datagrid-th-sort-icon.svelte → column/datagrid-column-sort-icon.svelte} +3 -3
  101. package/dist/components/datagrid/{th/datagrid-th-sort-icon.svelte.d.ts → column/datagrid-column-sort-icon.svelte.d.ts} +3 -3
  102. package/dist/components/datagrid/{th/datagrid-th.svelte → column/datagrid-column.svelte} +27 -36
  103. package/dist/components/datagrid/column/datagrid-column.svelte.d.ts +26 -0
  104. package/dist/components/datagrid/column/index.d.ts +4 -0
  105. package/dist/components/datagrid/column/index.js +4 -0
  106. package/dist/components/datagrid/context.d.ts +2 -29
  107. package/dist/components/datagrid/context.js +4 -18
  108. package/dist/components/datagrid/datagrid-body.svelte +7 -20
  109. package/dist/components/datagrid/datagrid-body.svelte.d.ts +8 -15
  110. package/dist/components/datagrid/datagrid-checkbox.svelte +60 -63
  111. package/dist/components/datagrid/datagrid-checkbox.svelte.d.ts +1 -3
  112. package/dist/components/datagrid/datagrid-footer.svelte +10 -17
  113. package/dist/components/datagrid/datagrid-footer.svelte.d.ts +12 -12
  114. package/dist/components/datagrid/datagrid-header.svelte +10 -17
  115. package/dist/components/datagrid/datagrid-header.svelte.d.ts +12 -12
  116. package/dist/components/datagrid/datagrid-root.svelte +12 -22
  117. package/dist/components/datagrid/datagrid-root.svelte.d.ts +15 -14
  118. package/dist/components/datagrid/row/bond.svelte.d.ts +42 -0
  119. package/dist/components/datagrid/row/bond.svelte.js +72 -0
  120. package/dist/components/datagrid/{tr/datagrid-tr.css → row/datagrid-row.css} +1 -1
  121. package/dist/components/datagrid/row/datagrid-row.svelte +64 -0
  122. package/dist/components/datagrid/row/datagrid-row.svelte.d.ts +27 -0
  123. package/dist/components/datagrid/row/index.d.ts +4 -0
  124. package/dist/components/datagrid/row/index.js +4 -0
  125. package/dist/components/datagrid/types.d.ts +56 -116
  126. package/dist/components/date-picker/bond.svelte.d.ts +0 -12
  127. package/dist/components/date-picker/date-picker-calendar.svelte +58 -58
  128. package/dist/components/date-picker/date-picker-months.svelte +1 -1
  129. package/dist/components/date-picker/date-picker-root.svelte +96 -96
  130. package/dist/components/date-picker/date-picker-root.svelte.d.ts +1 -1
  131. package/dist/components/date-picker/date-picker-years.svelte +1 -1
  132. package/dist/components/date-picker/types.d.ts +6 -3
  133. package/dist/components/dialog/atoms.d.ts +1 -1
  134. package/dist/components/dialog/atoms.js +1 -1
  135. package/dist/components/dialog/bond.svelte.d.ts +66 -28
  136. package/dist/components/dialog/bond.svelte.js +136 -117
  137. package/dist/components/dialog/dialog-body.svelte +1 -1
  138. package/dist/components/dialog/dialog-close.svelte +58 -0
  139. package/dist/components/dialog/dialog-close.svelte.d.ts +26 -0
  140. package/dist/components/dialog/dialog-content.svelte +2 -2
  141. package/dist/components/dialog/dialog-description.svelte +1 -1
  142. package/dist/components/dialog/dialog-footer.svelte +1 -1
  143. package/dist/components/dialog/dialog-header.svelte +1 -1
  144. package/dist/components/dialog/dialog-root.svelte +102 -82
  145. package/dist/components/dialog/dialog-title.svelte +1 -1
  146. package/dist/components/dialog/motion.svelte.js +68 -26
  147. package/dist/components/dialog/types.d.ts +16 -51
  148. package/dist/components/divider/types.d.ts +1 -6
  149. package/dist/components/drawer/bond.svelte.d.ts +61 -36
  150. package/dist/components/drawer/bond.svelte.js +149 -121
  151. package/dist/components/drawer/drawer-backdrop.svelte +2 -1
  152. package/dist/components/drawer/drawer-body.svelte +1 -1
  153. package/dist/components/drawer/drawer-content.svelte +5 -5
  154. package/dist/components/drawer/drawer-content.svelte.d.ts +4 -1
  155. package/dist/components/drawer/drawer-description.svelte +1 -1
  156. package/dist/components/drawer/drawer-footer.svelte +1 -1
  157. package/dist/components/drawer/drawer-header.svelte +1 -1
  158. package/dist/components/drawer/drawer-root.svelte +96 -87
  159. package/dist/components/drawer/drawer-title.svelte +1 -1
  160. package/dist/components/drawer/motion.d.ts +59 -5
  161. package/dist/components/drawer/motion.js +133 -15
  162. package/dist/components/drawer/types.d.ts +15 -24
  163. package/dist/components/dropdown/atoms.d.ts +4 -8
  164. package/dist/components/dropdown/atoms.js +4 -9
  165. package/dist/components/dropdown/bond.svelte.d.ts +4 -53
  166. package/dist/components/dropdown/bond.svelte.js +4 -89
  167. package/dist/components/dropdown/dropdown-query.svelte +43 -43
  168. package/dist/components/dropdown/dropdown-root.svelte +79 -79
  169. package/dist/components/dropdown/dropdown-root.svelte.d.ts +4 -4
  170. package/dist/components/dropdown/dropdown-selection.svelte +55 -55
  171. package/dist/components/dropdown/dropdown-selections.svelte +70 -70
  172. package/dist/components/dropdown/dropdown-trigger.svelte +2 -13
  173. package/dist/components/dropdown/index.d.ts +43 -7
  174. package/dist/components/dropdown/index.js +34 -6
  175. package/dist/components/dropdown/item/bond.svelte.d.ts +36 -0
  176. package/dist/components/dropdown/item/bond.svelte.js +85 -0
  177. package/dist/components/dropdown/item/controller.svelte.d.ts +1 -1
  178. package/dist/components/dropdown/item/dropdown-item.svelte +81 -107
  179. package/dist/components/dropdown/item/index.d.ts +11 -3
  180. package/dist/components/dropdown/item/index.js +10 -3
  181. package/dist/components/dropdown/types.d.ts +2 -67
  182. package/dist/components/dropdown-menu/atoms.d.ts +9 -0
  183. package/dist/components/dropdown-menu/atoms.js +9 -0
  184. package/dist/components/dropdown-menu/attachments.svelte.d.ts +2 -0
  185. package/dist/components/dropdown-menu/attachments.svelte.js +5 -0
  186. package/dist/components/dropdown-menu/bond.svelte.d.ts +72 -0
  187. package/dist/components/dropdown-menu/bond.svelte.js +173 -0
  188. package/dist/components/dropdown-menu/dropdown-menu-content.svelte +40 -0
  189. package/dist/components/dropdown-menu/dropdown-menu-content.svelte.d.ts +37 -0
  190. package/dist/components/dropdown-menu/dropdown-menu-root.svelte +14 -0
  191. package/dist/components/dropdown-menu/dropdown-menu-root.svelte.d.ts +4 -0
  192. package/dist/components/dropdown-menu/index.d.ts +7 -0
  193. package/dist/components/dropdown-menu/index.js +6 -0
  194. package/dist/components/dropdown-menu/item/bond.svelte.d.ts +26 -0
  195. package/dist/components/dropdown-menu/item/bond.svelte.js +54 -0
  196. package/dist/components/dropdown-menu/item/controller.svelte.d.ts +39 -0
  197. package/dist/components/dropdown-menu/item/controller.svelte.js +73 -0
  198. package/dist/components/dropdown-menu/item/dropdown-menu-item.svelte +75 -0
  199. package/dist/components/dropdown-menu/item/dropdown-menu-item.svelte.d.ts +32 -0
  200. package/dist/components/dropdown-menu/item/index.d.ts +3 -0
  201. package/dist/components/dropdown-menu/item/index.js +3 -0
  202. package/dist/components/dropdown-menu/item/types.d.ts +57 -0
  203. package/dist/components/dropdown-menu/item/types.js +1 -0
  204. package/dist/components/dropdown-menu/types.d.ts +3 -0
  205. package/dist/components/dropdown-menu/types.js +1 -0
  206. package/dist/components/element/html-element.svelte +114 -85
  207. package/dist/components/element/html-element.svelte.d.ts +1 -1
  208. package/dist/components/element/index.d.ts +0 -4
  209. package/dist/components/element/index.js +0 -4
  210. package/dist/components/element/svg-element.svelte +88 -87
  211. package/dist/components/element/types.d.ts +32 -21
  212. package/dist/components/form/field/atoms.d.ts +1 -1
  213. package/dist/components/form/field/atoms.js +1 -1
  214. package/dist/components/form/field/bond.svelte.js +0 -6
  215. package/dist/components/form/field/field-control.svelte +30 -9
  216. package/dist/components/form/field/field-control.svelte.d.ts +12 -22
  217. package/dist/components/form/field/field-helper-text.svelte +23 -0
  218. package/dist/components/form/field/field-helper-text.svelte.d.ts +26 -0
  219. package/dist/components/form/field/field-label.svelte +5 -7
  220. package/dist/components/form/field/field-label.svelte.d.ts +2 -2
  221. package/dist/components/form/field/field-root.svelte +17 -8
  222. package/dist/components/form/form-root.svelte +66 -66
  223. package/dist/components/form/types.d.ts +34 -58
  224. package/dist/components/icon/icon.css +4 -4
  225. package/dist/components/icon/icon.svelte +40 -38
  226. package/dist/components/icon/types.d.ts +4 -7
  227. package/dist/components/image/index.d.ts +2 -0
  228. package/dist/components/image/index.js +2 -1
  229. package/dist/components/index.d.ts +11 -0
  230. package/dist/components/index.js +11 -0
  231. package/dist/components/input/atoms.d.ts +19 -1
  232. package/dist/components/input/atoms.js +19 -1
  233. package/dist/components/input/color/color-control.svelte +197 -0
  234. package/dist/components/input/color/color-control.svelte.d.ts +4 -0
  235. package/dist/components/input/color/index.d.ts +5 -0
  236. package/dist/components/input/color/index.js +5 -0
  237. package/dist/components/input/color/segment.svelte +240 -0
  238. package/dist/components/input/color/segment.svelte.d.ts +6 -0
  239. package/dist/components/input/color/shared.d.ts +23 -0
  240. package/dist/components/input/color/shared.js +349 -0
  241. package/dist/components/input/color/swatch.svelte +23 -0
  242. package/dist/components/input/color/swatch.svelte.d.ts +8 -0
  243. package/dist/components/input/color/types.d.ts +56 -0
  244. package/dist/components/input/color/types.js +2 -0
  245. package/dist/components/input/index.d.ts +1 -0
  246. package/dist/components/input/index.js +1 -0
  247. package/dist/components/input/input-control.svelte +3 -1
  248. package/dist/components/input/input-currency-control.svelte +189 -0
  249. package/dist/components/input/input-currency-control.svelte.d.ts +4 -0
  250. package/dist/components/input/input-email-control.svelte +128 -0
  251. package/dist/components/input/input-email-control.svelte.d.ts +4 -0
  252. package/dist/components/input/input-file-control.svelte +127 -0
  253. package/dist/components/input/input-file-control.svelte.d.ts +4 -0
  254. package/dist/components/input/input-icon.svelte.d.ts +1 -1
  255. package/dist/components/input/input-location.svelte +335 -0
  256. package/dist/components/input/input-location.svelte.d.ts +4 -0
  257. package/dist/components/input/input-number-control.svelte +114 -0
  258. package/dist/components/input/input-number-control.svelte.d.ts +6 -0
  259. package/dist/components/input/input-otp-control.svelte +206 -0
  260. package/dist/components/input/input-otp-control.svelte.d.ts +4 -0
  261. package/dist/components/input/input-password-control.svelte +91 -0
  262. package/dist/components/input/input-password-control.svelte.d.ts +3 -0
  263. package/dist/components/input/input-phone-control.svelte +394 -0
  264. package/dist/components/input/input-phone-control.svelte.d.ts +4 -0
  265. package/dist/components/input/input-placeholder.svelte.d.ts +1 -1
  266. package/dist/components/input/input-root.svelte +74 -74
  267. package/dist/components/input/input-text-control.svelte +59 -0
  268. package/dist/components/input/input-text-control.svelte.d.ts +4 -0
  269. package/dist/components/input/input-url-control.svelte +218 -0
  270. package/dist/components/input/input-url-control.svelte.d.ts +4 -0
  271. package/dist/components/input/time/datetime-control.svelte +281 -0
  272. package/dist/components/input/time/datetime-control.svelte.d.ts +5 -0
  273. package/dist/components/input/time/index.d.ts +6 -0
  274. package/dist/components/input/time/index.js +6 -0
  275. package/dist/components/input/time/segment.svelte +143 -0
  276. package/dist/components/input/time/segment.svelte.d.ts +6 -0
  277. package/dist/components/input/time/shared.d.ts +29 -0
  278. package/dist/components/input/time/shared.js +150 -0
  279. package/dist/components/input/time/time-control.svelte +237 -0
  280. package/dist/components/input/time/time-control.svelte.d.ts +3 -0
  281. package/dist/components/input/time/types.d.ts +34 -0
  282. package/dist/components/input/time/types.js +4 -0
  283. package/dist/components/input/types.d.ts +355 -17
  284. package/dist/components/label/types.d.ts +4 -7
  285. package/dist/components/layer/bond.svelte.d.ts +2 -2
  286. package/dist/components/layer/bond.svelte.js +1 -1
  287. package/dist/components/layer/index.d.ts +1 -0
  288. package/dist/components/layer/layer-inner.svelte.d.ts +1 -1
  289. package/dist/components/layer/layer-root.svelte +65 -65
  290. package/dist/components/layer/layer-root.svelte.d.ts +1 -1
  291. package/dist/components/layer/types.d.ts +6 -6
  292. package/dist/components/lazy/index.d.ts +1 -0
  293. package/dist/components/lazy/lazy.svelte +5 -4
  294. package/dist/components/lazy/lazy.svelte.d.ts +1 -1
  295. package/dist/components/lazy/types.d.ts +5 -5
  296. package/dist/components/link/index.d.ts +1 -0
  297. package/dist/components/link/types.d.ts +5 -6
  298. package/dist/components/list/index.d.ts +1 -0
  299. package/dist/components/list/types.d.ts +5 -6
  300. package/dist/components/menu/atoms.d.ts +2 -7
  301. package/dist/components/menu/atoms.js +2 -7
  302. package/dist/components/menu/bond.svelte.d.ts +9 -23
  303. package/dist/components/menu/bond.svelte.js +6 -0
  304. package/dist/components/menu/index.d.ts +40 -4
  305. package/dist/components/menu/index.js +26 -3
  306. package/dist/components/menu/item/bond.svelte.d.ts +27 -0
  307. package/dist/components/menu/item/bond.svelte.js +54 -0
  308. package/dist/components/menu/item/controller.svelte.d.ts +1 -1
  309. package/dist/components/menu/item/index.d.ts +5 -2
  310. package/dist/components/menu/item/index.js +4 -2
  311. package/dist/components/menu/item/menu-item.svelte +87 -103
  312. package/dist/components/menu/item/menu-item.svelte.d.ts +15 -14
  313. package/dist/components/menu/item/types.d.ts +5 -12
  314. package/dist/components/menu/menu-content.svelte +40 -40
  315. package/dist/components/menu/menu-root.svelte +15 -15
  316. package/dist/components/menu/menu-root.svelte.d.ts +1 -1
  317. package/dist/components/menu/types.d.ts +2 -6
  318. package/dist/components/popover/bond.svelte.d.ts +67 -39
  319. package/dist/components/popover/bond.svelte.js +159 -197
  320. package/dist/components/popover/index.d.ts +3 -1
  321. package/dist/components/popover/index.js +3 -1
  322. package/dist/components/popover/motion.d.ts +29 -1
  323. package/dist/components/popover/motion.js +128 -50
  324. package/dist/components/popover/popover-arrow.svelte +97 -110
  325. package/dist/components/popover/popover-arrow.svelte.d.ts +1 -2
  326. package/dist/components/popover/popover-content.svelte +159 -123
  327. package/dist/components/popover/popover-engine.svelte +118 -0
  328. package/dist/components/popover/popover-engine.svelte.d.ts +3 -0
  329. package/dist/components/popover/popover-indicator.svelte +2 -13
  330. package/dist/components/popover/popover-indicator.svelte.d.ts +0 -6
  331. package/dist/components/popover/popover-root.svelte +87 -49
  332. package/dist/components/popover/popover-root.svelte.d.ts +2 -1
  333. package/dist/components/popover/popover-trigger.svelte +35 -47
  334. package/dist/components/popover/strategies/floating.svelte +109 -0
  335. package/dist/components/popover/strategies/floating.svelte.d.ts +3 -0
  336. package/dist/components/popover/strategies/index.d.ts +1 -0
  337. package/dist/components/popover/strategies/index.js +1 -0
  338. package/dist/components/popover/strategy-types.d.ts +40 -0
  339. package/dist/components/popover/strategy-types.js +1 -0
  340. package/dist/components/popover/types.d.ts +10 -36
  341. package/dist/components/portal/active-portal.svelte +5 -4
  342. package/dist/components/portal/bond.svelte.d.ts +12 -8
  343. package/dist/components/portal/bond.svelte.js +25 -27
  344. package/dist/components/portal/index.d.ts +1 -0
  345. package/dist/components/portal/index.js +1 -0
  346. package/dist/components/portal/portal-inner.svelte +1 -1
  347. package/dist/components/portal/portal-inner.svelte.d.ts +1 -1
  348. package/dist/components/portal/portal-root.svelte +76 -76
  349. package/dist/components/portal/portal-root.svelte.d.ts +1 -1
  350. package/dist/components/portal/portals/bond.svelte.d.ts +2 -2
  351. package/dist/components/portal/portals/bond.svelte.js +2 -2
  352. package/dist/components/portal/teleport.svelte +47 -49
  353. package/dist/components/portal/teleport.svelte.d.ts +1 -2
  354. package/dist/components/portal/types.d.ts +7 -25
  355. package/dist/components/portal/utils.js +3 -3
  356. package/dist/components/portal/zlayer.svelte.d.ts +16 -0
  357. package/dist/components/portal/zlayer.svelte.js +25 -0
  358. package/dist/components/radio/index.d.ts +2 -0
  359. package/dist/components/radio/index.js +1 -0
  360. package/dist/components/radio/motion.d.ts +24 -0
  361. package/dist/components/radio/motion.js +59 -0
  362. package/dist/components/radio/radio.svelte +22 -12
  363. package/dist/components/radio/types.d.ts +5 -14
  364. package/dist/components/root/bond.svelte.d.ts +2 -2
  365. package/dist/components/root/bond.svelte.js +1 -1
  366. package/dist/components/root/root.svelte +82 -103
  367. package/dist/components/root/root.svelte.d.ts +2 -2
  368. package/dist/components/root/types.d.ts +4 -15
  369. package/dist/components/scrollable/atoms.d.ts +1 -0
  370. package/dist/components/scrollable/atoms.js +1 -0
  371. package/dist/components/scrollable/bond.svelte.d.ts +73 -189
  372. package/dist/components/scrollable/bond.svelte.js +195 -371
  373. package/dist/components/scrollable/scrollable-container.css +22 -22
  374. package/dist/components/scrollable/scrollable-container.svelte +66 -61
  375. package/dist/components/scrollable/scrollable-container.svelte.d.ts +12 -12
  376. package/dist/components/scrollable/scrollable-content.svelte +22 -17
  377. package/dist/components/scrollable/scrollable-content.svelte.d.ts +12 -12
  378. package/dist/components/scrollable/scrollable-root.svelte +106 -101
  379. package/dist/components/scrollable/scrollable-root.svelte.d.ts +12 -12
  380. package/dist/components/scrollable/scrollable-thumb.svelte +21 -45
  381. package/dist/components/scrollable/scrollable-thumb.svelte.d.ts +12 -12
  382. package/dist/components/scrollable/scrollable-track.svelte +21 -22
  383. package/dist/components/scrollable/scrollable-track.svelte.d.ts +12 -12
  384. package/dist/components/scrollable/types.d.ts +15 -38
  385. package/dist/components/select/atoms.d.ts +8 -0
  386. package/dist/components/select/atoms.js +8 -0
  387. package/dist/components/select/attachments.svelte.d.ts +2 -0
  388. package/dist/components/select/attachments.svelte.js +5 -0
  389. package/dist/components/select/bond.svelte.d.ts +56 -0
  390. package/dist/components/select/bond.svelte.js +112 -0
  391. package/dist/components/select/index.d.ts +11 -0
  392. package/dist/components/select/index.js +10 -0
  393. package/dist/components/select/item/attachments.svelte.d.ts +3 -0
  394. package/dist/components/select/item/attachments.svelte.js +6 -0
  395. package/dist/components/select/item/bond.svelte.d.ts +33 -0
  396. package/dist/components/select/item/bond.svelte.js +77 -0
  397. package/dist/components/select/item/controller.svelte.d.ts +39 -0
  398. package/dist/components/select/item/controller.svelte.js +105 -0
  399. package/dist/components/select/item/index.d.ts +5 -0
  400. package/dist/components/select/item/index.js +5 -0
  401. package/dist/components/select/item/select-item.svelte +81 -0
  402. package/dist/components/select/item/select-item.svelte.d.ts +25 -0
  403. package/dist/components/select/item/types.d.ts +29 -0
  404. package/dist/components/select/item/types.js +1 -0
  405. package/dist/components/select/runes.svelte.d.ts +10 -0
  406. package/dist/components/select/runes.svelte.js +15 -0
  407. package/dist/components/select/select-placeholder.svelte +40 -0
  408. package/dist/components/select/select-placeholder.svelte.d.ts +34 -0
  409. package/dist/components/select/select-root.svelte +80 -0
  410. package/dist/components/select/select-root.svelte.d.ts +30 -0
  411. package/dist/components/select/select-selection.svelte +55 -0
  412. package/dist/components/select/select-selection.svelte.d.ts +26 -0
  413. package/dist/components/select/select-selections.svelte +70 -0
  414. package/dist/components/select/select-selections.svelte.d.ts +5 -0
  415. package/dist/components/select/select-trigger.svelte +30 -0
  416. package/dist/components/select/select-trigger.svelte.d.ts +26 -0
  417. package/dist/components/select/types.d.ts +61 -0
  418. package/dist/components/select/types.js +1 -0
  419. package/dist/components/sidebar/bond.svelte.d.ts +10 -7
  420. package/dist/components/sidebar/bond.svelte.js +20 -15
  421. package/dist/components/sidebar/sidebar-content.svelte +1 -1
  422. package/dist/components/sidebar/sidebar-root.svelte +50 -41
  423. package/dist/components/sidebar/types.d.ts +10 -15
  424. package/dist/components/slider/index.d.ts +2 -0
  425. package/dist/components/slider/index.js +2 -0
  426. package/dist/components/slider/slider.svelte +164 -0
  427. package/dist/components/slider/slider.svelte.d.ts +6 -0
  428. package/dist/components/slider/types.d.ts +78 -0
  429. package/dist/components/slider/types.js +1 -0
  430. package/dist/components/stack/bond.svelte.d.ts +50 -0
  431. package/dist/components/stack/bond.svelte.js +174 -0
  432. package/dist/components/stack/index.d.ts +2 -0
  433. package/dist/components/stack/index.js +2 -0
  434. package/dist/components/stack/stack-item.svelte +40 -4
  435. package/dist/components/stack/stack-item.svelte.d.ts +6 -5
  436. package/dist/components/stack/stack-root.svelte +33 -4
  437. package/dist/components/stack/stack-root.svelte.d.ts +14 -5
  438. package/dist/components/stack/types.d.ts +11 -10
  439. package/dist/components/stepper/README.md +38 -38
  440. package/dist/components/stepper/bond.svelte.d.ts +8 -7
  441. package/dist/components/stepper/bond.svelte.js +14 -11
  442. package/dist/components/stepper/step/README.md +97 -97
  443. package/dist/components/stepper/step/bond.svelte.d.ts +74 -63
  444. package/dist/components/stepper/step/bond.svelte.js +105 -69
  445. package/dist/components/stepper/step/step-body.svelte +39 -39
  446. package/dist/components/stepper/step/step-description.svelte +33 -33
  447. package/dist/components/stepper/step/step-header.svelte +34 -34
  448. package/dist/components/stepper/step/step-indicator.svelte +62 -62
  449. package/dist/components/stepper/step/step-root.svelte +42 -42
  450. package/dist/components/stepper/step/step-separator.svelte +48 -48
  451. package/dist/components/stepper/step/step-title.svelte +33 -33
  452. package/dist/components/stepper/step/types.d.ts +13 -57
  453. package/dist/components/stepper/stepper-body.svelte +31 -43
  454. package/dist/components/stepper/stepper-content.svelte +45 -45
  455. package/dist/components/stepper/stepper-footer.svelte +31 -31
  456. package/dist/components/stepper/stepper-header.svelte +27 -39
  457. package/dist/components/stepper/stepper-root.svelte +55 -61
  458. package/dist/components/stepper/types.d.ts +10 -36
  459. package/dist/components/swatch/index.d.ts +1 -0
  460. package/dist/components/swatch/index.js +1 -0
  461. package/dist/components/swatch/swatch.svelte +57 -0
  462. package/dist/components/swatch/swatch.svelte.d.ts +9 -0
  463. package/dist/components/switch/index.d.ts +2 -0
  464. package/dist/components/switch/index.js +2 -0
  465. package/dist/components/switch/switch.svelte +76 -0
  466. package/dist/components/switch/switch.svelte.d.ts +6 -0
  467. package/dist/components/switch/types.d.ts +43 -0
  468. package/dist/components/switch/types.js +1 -0
  469. package/dist/components/tabs/bond.svelte.d.ts +38 -19
  470. package/dist/components/tabs/bond.svelte.js +53 -46
  471. package/dist/components/tabs/tab/attachments.svelte.d.ts +5 -2
  472. package/dist/components/tabs/tab/attachments.svelte.js +4 -3
  473. package/dist/components/tabs/tab/bond.svelte.d.ts +35 -23
  474. package/dist/components/tabs/tab/bond.svelte.js +81 -56
  475. package/dist/components/tabs/tab/tab-body.svelte +61 -43
  476. package/dist/components/tabs/tab/tab-description.svelte +33 -33
  477. package/dist/components/tabs/tab/tab-header.svelte +61 -61
  478. package/dist/components/tabs/tab/tab-root.svelte +49 -50
  479. package/dist/components/tabs/tab/tab-root.svelte.d.ts +13 -35
  480. package/dist/components/tabs/tabs-body.svelte +39 -35
  481. package/dist/components/tabs/tabs-body.svelte.d.ts +1 -1
  482. package/dist/components/tabs/tabs-content.svelte +32 -51
  483. package/dist/components/tabs/tabs-header.svelte +32 -32
  484. package/dist/components/tabs/tabs-root.svelte +56 -56
  485. package/dist/components/tabs/types.d.ts +20 -37
  486. package/dist/components/textarea/types.d.ts +6 -12
  487. package/dist/components/toast/atoms.d.ts +1 -0
  488. package/dist/components/toast/atoms.js +1 -0
  489. package/dist/components/toast/index.d.ts +1 -0
  490. package/dist/components/toast/index.js +1 -0
  491. package/dist/components/toast/manager.svelte.d.ts +38 -0
  492. package/dist/components/toast/manager.svelte.js +82 -0
  493. package/dist/components/toast/toast-description.svelte.d.ts +1 -1
  494. package/dist/components/toast/toast-root-managed.svelte +64 -0
  495. package/dist/components/toast/toast-root-managed.svelte.d.ts +7 -0
  496. package/dist/components/toast/toast-root.svelte.d.ts +1 -1
  497. package/dist/components/toast/toast-title.svelte.d.ts +1 -1
  498. package/dist/components/toast/toast-toaster.svelte +42 -0
  499. package/dist/components/toast/toast-toaster.svelte.d.ts +4 -0
  500. package/dist/components/toast/types.d.ts +22 -31
  501. package/dist/components/tooltip/index.d.ts +1 -0
  502. package/dist/components/tooltip/tooltip-trigger.svelte +2 -2
  503. package/dist/components/tooltip/tooltip-trigger.svelte.d.ts +1 -0
  504. package/dist/components/tooltip/types.d.ts +5 -8
  505. package/dist/components/tree/bond.svelte.d.ts +28 -19
  506. package/dist/components/tree/bond.svelte.js +62 -53
  507. package/dist/components/tree/tree-body.svelte +1 -1
  508. package/dist/components/tree/tree-header.svelte +1 -1
  509. package/dist/components/tree/tree-header.svelte.d.ts +1 -1
  510. package/dist/components/tree/tree-indicator.svelte +1 -1
  511. package/dist/components/tree/tree-root.svelte +66 -66
  512. package/dist/components/tree/types.d.ts +4 -28
  513. package/dist/components/virtual/index.d.ts +2 -0
  514. package/dist/components/virtual/index.js +2 -0
  515. package/dist/components/virtual/types.d.ts +1 -6
  516. package/dist/constants/motion.d.ts +9 -0
  517. package/dist/constants/motion.js +9 -0
  518. package/dist/context/index.d.ts +1 -1
  519. package/dist/context/preset.svelte.d.ts +169 -2
  520. package/dist/runes/color-scheme.svelte.js +17 -5
  521. package/dist/shared/bond.svelte.d.ts +29 -3
  522. package/dist/shared/bond.svelte.js +126 -4
  523. package/dist/shared/index.d.ts +1 -1
  524. package/dist/shared/index.js +1 -1
  525. package/dist/shared/motion.d.ts +1 -0
  526. package/dist/shared/motion.js +2 -8
  527. package/dist/types/index.d.ts +4 -0
  528. package/dist/utils/index.d.ts +1 -1
  529. package/dist/utils/index.js +1 -1
  530. package/dist/utils/promise.svelte.d.ts +5 -0
  531. package/dist/utils/promise.svelte.js +17 -0
  532. package/dist/utils/variant.d.ts +10 -1
  533. package/dist/utils/variant.js +11 -1
  534. package/package.json +613 -490
  535. package/dist/components/accordion/accordion.stories.svelte +0 -70
  536. package/dist/components/accordion/accordion.stories.svelte.d.ts +0 -18
  537. package/dist/components/alert/alert.stories.svelte +0 -400
  538. package/dist/components/alert/alert.stories.svelte.d.ts +0 -3
  539. package/dist/components/avatar/avatar.stories.svelte +0 -22
  540. package/dist/components/avatar/avatar.stories.svelte.d.ts +0 -26
  541. package/dist/components/badge/badge.stories.svelte +0 -12
  542. package/dist/components/badge/badge.stories.svelte.d.ts +0 -26
  543. package/dist/components/breadcrumb/breadcrumb.stories.svelte +0 -16
  544. package/dist/components/breadcrumb/breadcrumb.stories.svelte.d.ts +0 -26
  545. package/dist/components/button/button.stories.svelte +0 -27
  546. package/dist/components/button/button.stories.svelte.d.ts +0 -18
  547. package/dist/components/calendar/calendar.stories.svelte +0 -26
  548. package/dist/components/calendar/calendar.stories.svelte.d.ts +0 -26
  549. package/dist/components/card/card.stories.svelte +0 -133
  550. package/dist/components/card/card.stories.svelte.d.ts +0 -19
  551. package/dist/components/checkbox/checkbox.stories.svelte +0 -22
  552. package/dist/components/checkbox/checkbox.stories.svelte.d.ts +0 -6
  553. package/dist/components/collapsible/collapsible.stories.svelte +0 -172
  554. package/dist/components/collapsible/collapsible.stories.svelte.d.ts +0 -18
  555. package/dist/components/combobox/combobox.stories.svelte +0 -63
  556. package/dist/components/combobox/combobox.stories.svelte.d.ts +0 -3
  557. package/dist/components/container/container.stories.svelte +0 -20
  558. package/dist/components/container/container.stories.svelte.d.ts +0 -26
  559. package/dist/components/contextmenu/atoms.d.ts +0 -0
  560. package/dist/components/contextmenu/atoms.js +0 -1
  561. package/dist/components/contextmenu/contextmenu-trigger.svelte +0 -0
  562. package/dist/components/contextmenu/contextmenu-trigger.svelte.d.ts +0 -26
  563. package/dist/components/contextmenu/indext.d.ts +0 -0
  564. package/dist/components/contextmenu/indext.js +0 -1
  565. package/dist/components/datagrid/datagrid.stories.svelte +0 -72
  566. package/dist/components/datagrid/datagrid.stories.svelte.d.ts +0 -6
  567. package/dist/components/datagrid/td/bond.svelte.d.ts +0 -28
  568. package/dist/components/datagrid/td/bond.svelte.js +0 -40
  569. package/dist/components/datagrid/td/datagrid-td.svelte +0 -66
  570. package/dist/components/datagrid/td/datagrid-td.svelte.d.ts +0 -30
  571. package/dist/components/datagrid/td/index.d.ts +0 -2
  572. package/dist/components/datagrid/td/index.js +0 -2
  573. package/dist/components/datagrid/th/bond.svelte.d.ts +0 -38
  574. package/dist/components/datagrid/th/bond.svelte.js +0 -66
  575. package/dist/components/datagrid/th/datagrid-th.svelte.d.ts +0 -26
  576. package/dist/components/datagrid/th/index.d.ts +0 -2
  577. package/dist/components/datagrid/th/index.js +0 -2
  578. package/dist/components/datagrid/tr/bond.svelte.d.ts +0 -37
  579. package/dist/components/datagrid/tr/bond.svelte.js +0 -72
  580. package/dist/components/datagrid/tr/datagrid-tr.svelte +0 -90
  581. package/dist/components/datagrid/tr/datagrid-tr.svelte.d.ts +0 -28
  582. package/dist/components/datagrid/tr/index.d.ts +0 -2
  583. package/dist/components/datagrid/tr/index.js +0 -2
  584. package/dist/components/date-picker/date-picker.stories.svelte +0 -35
  585. package/dist/components/date-picker/date-picker.stories.svelte.d.ts +0 -3
  586. package/dist/components/dialog/dialog.stories.svelte +0 -64
  587. package/dist/components/dialog/dialog.stories.svelte.d.ts +0 -3
  588. package/dist/components/drawer/drawer.stories.svelte +0 -141
  589. package/dist/components/drawer/drawer.stories.svelte.d.ts +0 -3
  590. package/dist/components/dropdown/dropdown.stories.svelte +0 -127
  591. package/dist/components/dropdown/dropdown.stories.svelte.d.ts +0 -3
  592. package/dist/components/element/mathml-element.svelte +0 -90
  593. package/dist/components/element/mathml-element.svelte.d.ts +0 -25
  594. package/dist/components/form/field/field-errors.svelte +0 -9
  595. package/dist/components/form/field/field-errors.svelte.d.ts +0 -11
  596. package/dist/components/form/form.stories.svelte +0 -96
  597. package/dist/components/form/form.stories.svelte.d.ts +0 -18
  598. package/dist/components/image/image.stories.svelte +0 -20
  599. package/dist/components/image/image.stories.svelte.d.ts +0 -26
  600. package/dist/components/input/input.stories.svelte +0 -35
  601. package/dist/components/input/input.stories.svelte.d.ts +0 -18
  602. package/dist/components/label/label.stories.svelte +0 -15
  603. package/dist/components/label/label.stories.svelte.d.ts +0 -26
  604. package/dist/components/lazy/lazy.stories.svelte +0 -28
  605. package/dist/components/lazy/lazy.stories.svelte.d.ts +0 -19
  606. package/dist/components/link/link.stories.svelte +0 -15
  607. package/dist/components/link/link.stories.svelte.d.ts +0 -26
  608. package/dist/components/menu/menu.stories.svelte +0 -33
  609. package/dist/components/menu/menu.stories.svelte.d.ts +0 -3
  610. package/dist/components/popover/popover.stories.svelte +0 -37
  611. package/dist/components/popover/popover.stories.svelte.d.ts +0 -3
  612. package/dist/components/qr-code/qr-code.stories.svelte +0 -18
  613. package/dist/components/qr-code/qr-code.stories.svelte.d.ts +0 -26
  614. package/dist/components/radio/radio-group.stories.svelte +0 -41
  615. package/dist/components/radio/radio-group.stories.svelte.d.ts +0 -6
  616. package/dist/components/radio/radio.stories.svelte +0 -17
  617. package/dist/components/radio/radio.stories.svelte.d.ts +0 -6
  618. package/dist/components/root/l0-portal.svelte +0 -8
  619. package/dist/components/root/l0-portal.svelte.d.ts +0 -26
  620. package/dist/components/root/l1-portal.svelte +0 -7
  621. package/dist/components/root/l1-portal.svelte.d.ts +0 -26
  622. package/dist/components/root/toasts-portal.svelte +0 -7
  623. package/dist/components/root/toasts-portal.svelte.d.ts +0 -26
  624. package/dist/components/scrollable/scrollable.stories.svelte +0 -116
  625. package/dist/components/scrollable/scrollable.stories.svelte.d.ts +0 -26
  626. package/dist/components/sidebar/sidebar.stories.svelte +0 -43
  627. package/dist/components/sidebar/sidebar.stories.svelte.d.ts +0 -3
  628. package/dist/components/stepper/stepper.stories.svelte +0 -264
  629. package/dist/components/stepper/stepper.stories.svelte.d.ts +0 -4
  630. package/dist/components/tabs/tabs.stories.svelte +0 -70
  631. package/dist/components/tabs/tabs.stories.svelte.d.ts +0 -3
  632. package/dist/components/tooltip/tooltip.stories.svelte +0 -32
  633. package/dist/components/tooltip/tooltip.stories.svelte.d.ts +0 -3
  634. package/dist/components/tree/tree.stories.svelte +0 -142
  635. package/dist/components/tree/tree.stories.svelte.d.ts +0 -3
  636. /package/dist/components/{contextmenu → context-menu}/types.js +0 -0
package/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2025 Abdelhalim Riache [https://github.com/ryu-man](https://github.com/ryu-man)
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Abdelhalim Riache [https://github.com/ryu-man](https://github.com/ryu-man)
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,245 +1,108 @@
1
1
  # @svelte-atoms/core
2
2
 
3
- > A modern, modular, and accessible Svelte 5 UI component library built with composability at its core.
3
+ > A modern, headless, and accessible Svelte 5 UI component library built for composability and extensibility.
4
4
 
5
5
  [![npm version](https://img.shields.io/npm/v/@svelte-atoms/core.svg)](https://www.npmjs.com/package/@svelte-atoms/core)
6
6
  [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/svelte-atoms/core)
7
7
  [![license](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
8
8
 
9
- ## Features
9
+ ## Why Svelte Atoms?
10
10
 
11
- - **Bond Architecture** - Self-contained state management with context-based communication
12
- - **Accessible** - ARIA attributes, keyboard navigation, and focus management included
13
- - **Type Safe** - Full TypeScript support with comprehensive type definitions
14
- - **Headless** - Complete styling control with sensible defaults
15
- - **Composable** - Build complex UIs by combining simple, reusable components
16
- - **Svelte 5 Runes** - Optimized reactivity and performance
11
+ - **🎯 Headless First** - Complete styling control with sensible defaults
12
+ - **🔗 Bond Architecture** - Self-contained state management with context-based communication
13
+ - **♿ Accessible** - ARIA attributes, keyboard navigation, and focus management included
14
+ - **🎨 Composable** - Build complex UIs by combining simple, reusable components
15
+ - **📘 Type Safe** - Full TypeScript support with extensible type definitions
16
+ - **⚡ Svelte 5 Native** - Built for Svelte 5 runes, snippets, and modern reactivity
17
17
 
18
- ## Documentation
19
-
20
- - **[Documentation](https://sacore.netlify.app/)** - Complete guides, API references, and examples
21
- - **[Storybook](https://statuesque-boba-0fb888.netlify.app/)** - Interactive component playground
22
-
23
- ## Installation
18
+ ## Quick Start
24
19
 
25
20
  ```bash
26
21
  npm install @svelte-atoms/core
27
22
  ```
28
23
 
29
- ## Usage
30
-
31
- ### Basic Example
32
-
33
24
  ```svelte
34
25
  <script lang="ts">
35
- import { Button, Dialog, Input } from '@svelte-atoms/core';
26
+ import { Button, Dialog } from '@svelte-atoms/core';
36
27
 
37
- let dialogOpen = $state(false);
38
- let inputValue = '';
28
+ let open = $state(false);
39
29
  </script>
40
30
 
41
- <Button onclick={() => (dialogOpen = true)}>Open Dialog</Button>
31
+ <Button onclick={() => (open = true)}>Open Dialog</Button>
42
32
 
43
- <Dialog.Root bind:open={dialogOpen}>
33
+ <Dialog.Root bind:open>
44
34
  <Dialog.Content>
45
35
  <Dialog.Header>
46
- <Dialog.Title>Enter your name</Dialog.Title>
36
+ <Dialog.Title>Welcome</Dialog.Title>
47
37
  </Dialog.Header>
48
38
  <Dialog.Body>
49
- <Input.Root>
50
- <Input.Control bind:value={inputValue} placeholder="Your name..." />
51
- </Input.Root>
39
+ <p>This is a headless, accessible dialog component.</p>
52
40
  </Dialog.Body>
53
41
  <Dialog.Footer>
54
- <Button onclick={() => (dialogOpen = false)}>Cancel</Button>
55
- <Button variant="primary" onclick={() => (dialogOpen = false)}>Confirm</Button>
42
+ <Button onclick={() => (open = false)}>Close</Button>
56
43
  </Dialog.Footer>
57
44
  </Dialog.Content>
58
45
  </Dialog.Root>
59
46
  ```
60
47
 
61
- ### Composable Components
62
-
63
- Combine components to create complex UIs:
64
-
65
- ```svelte
66
- <script lang="ts">
67
- import { Dropdown, Input, Root, filter } from '@svelte-atoms/core';
68
- import { flip } from 'svelte/animate';
69
-
70
- let data = [
71
- { id: 1, value: 'apple', text: 'Apple' },
72
- { id: 2, value: 'banana', text: 'Banana' },
73
- { id: 3, value: 'cherry', text: 'Cherry' }
74
- ];
75
-
76
- let open = $state(false);
77
- const dd = filter(
78
- () => data,
79
- (query, item) => item.text.toLowerCase().includes(query.toLowerCase())
80
- );
81
- </script>
82
-
83
- <Dropdown.Root
84
- bind:open
85
- multiple
86
- keys={data.map((item) => item.value)}
87
- onquerychange={(q) => (dd.query = q)}
88
- >
89
- {#snippet children({ dropdown })}
90
- <Dropdown.Trigger
91
- base={Input.Root}
92
- onclick={(ev) => {
93
- ev.preventDefault();
94
- dropdown.state.open();
95
- }}
96
- >
97
- {#each dropdown?.state?.selectedItems ?? [] as item (item.id)}
98
- <div animate:flip={{ duration: 200 }}>
99
- <Dropdown.Value value={item.value}>{item.text}</Dropdown.Value>
100
- </div>
101
- {/each}
102
- <Dropdown.Query placeholder="Search..." />
103
- </Dropdown.Trigger>
104
-
105
- <Dropdown.Content>
106
- {#each dd.current as item (item.id)}
107
- <div animate:flip={{ duration: 200 }}>
108
- <Dropdown.Item value={item.value}>{item.text}</Dropdown.Item>
109
- </div>
110
- {/each}
111
- </Dropdown.Content>
112
- {/snippet}
113
- </Dropdown.Root>
114
- ```
48
+ ## Core Concepts
115
49
 
116
- ### Extensibility with `as` and `base` Props
50
+ ### Composability with `base` and `as`
117
51
 
118
- Transform components into any element or wrap them with custom logic:
52
+ Transform any component into another element or wrap it with custom logic:
119
53
 
120
54
  ```svelte
121
55
  <script lang="ts">
122
56
  import { Button, Popover, Input } from '@svelte-atoms/core';
123
57
  </script>
124
58
 
125
- <!-- Use Button as Popover trigger -->
126
- <Popover.Root>
127
- <Popover.Trigger base={Button} variant="outline">Open Popover</Popover.Trigger>
128
- <Popover.Content class="p-4">
129
- <h4 class="font-semibold">Settings</h4>
130
- <p class="text-sm">Configure your preferences here.</p>
131
- </Popover.Content>
132
- </Popover.Root>
133
-
134
- <!-- Use Input.Root as Popover trigger -->
59
+ <!-- Button as Popover trigger -->
135
60
  <Popover.Root>
136
- <Popover.Trigger base={Input.Root}>
137
- <Input.Control placeholder="Click to open popover..." readonly />
61
+ <Popover.Trigger base={Button} variant="outline">
62
+ Open Popover
138
63
  </Popover.Trigger>
139
- <Popover.Content class="p-4">
140
- <p class="text-sm">Popover triggered by an input field</p>
64
+ <Popover.Content>
65
+ <p>Configure your preferences here.</p>
141
66
  </Popover.Content>
142
67
  </Popover.Root>
143
- ```
144
-
145
- ### Working with Animations
146
68
 
147
- Seamlessly integrate with Svelte's animation system:
148
-
149
- ```svelte
150
- <script lang="ts">
151
- import { List, Button } from '@svelte-atoms/core';
152
- import { flip } from 'svelte/animate';
153
- import { slide } from 'svelte/transition';
154
-
155
- let items = $state([
156
- { id: 1, text: 'Task 1' },
157
- { id: 2, text: 'Task 2' },
158
- { id: 3, text: 'Task 3' }
159
- ]);
160
-
161
- function removeItem(id: number) {
162
- items = items.filter((item) => item.id !== id);
163
- }
164
- </script>
165
-
166
- <List.Root>
167
- {#each items as item (item.id)}
168
- <div animate:flip={{ duration: 300 }}>
169
- <List.Item>
170
- <span>{item.text}</span>
171
- <Button size="sm" onclick={() => removeItem(item.id)}>Remove</Button>
172
- </List.Item>
173
- </div>
174
- {/each}
175
- </List.Root>
69
+ <!-- Input as Dropdown trigger -->
70
+ <Dropdown.Root>
71
+ <Dropdown.Trigger base={Input.Root}>
72
+ <Input.Control placeholder="Search..." />
73
+ </Dropdown.Trigger>
74
+ <Dropdown.Content>
75
+ <!-- items -->
76
+ </Dropdown.Content>
77
+ </Dropdown.Root>
176
78
  ```
177
79
 
178
- Advanced animation with lifecycle hooks using Motion:
179
-
180
- ```svelte
181
- <script lang="ts">
182
- import { Dialog, Button, toTransitionConfig } from '@svelte-atoms/core';
183
- import { animate } from 'motion';
184
-
185
- let open = $state(false);
186
- </script>
80
+ ### Typed Snippets for Extensibility
187
81
 
188
- <Button onclick={() => (open = true)}>Open Dialog</Button>
82
+ All components expose typed snippet props for maximum flexibility:
189
83
 
190
- <Dialog.Root bind:open>
191
- <Dialog.Overlay
192
- initial={(node) => {
193
- node.style.opacity = '0';
194
- }}
195
- enter={(node) => {
196
- const duration = 0.2;
197
- const animation = animate(node, { opacity: 1 }, { duration });
198
- return { duration };
199
- }}
200
- exit={(node) => {
201
- const duration = 0.1;
202
- const animation = animate(node, { opacity: 0 }, { duration: 0.1 });
203
- return { duration };
204
- }}
205
- />
206
- <Dialog.Content
207
- initial={(node) => {
208
- node.style.opacity = '0';
209
- node.style.scale = '0.95';
210
- }}
211
- enter={(node) => {
212
- const duration = 0.3;
213
- const animation = animate(node, { opacity: 1, scale: 1 }, { duration, easing: 'ease-out' });
214
- return { duration };
215
- }}
216
- exit={(node) => {
217
- const animation = animate(node, { opacity: 0, scale: 0.95 }, { duration, easing: 'ease-in' });
218
- return { duration };
219
- }}
220
- >
221
- <Dialog.Header>
222
- <Dialog.Title>Animated Dialog</Dialog.Title>
223
- </Dialog.Header>
224
- <Dialog.Body>
225
- <p>This dialog animates with custom Motion transitions using lifecycle hooks.</p>
226
- </Dialog.Body>
227
- <Dialog.Footer>
228
- <Button onclick={() => (open = false)}>Close</Button>
229
- </Dialog.Footer>
230
- </Dialog.Content>
84
+ ```svelte
85
+ <Dialog.Root>
86
+ {#snippet children({ dialog })}
87
+ <Dialog.Content>
88
+ <Dialog.Body>
89
+ <p>Access the dialog bond directly</p>
90
+ <button onclick={() => dialog.close()}>Close via bond</button>
91
+ </Dialog.Body>
92
+ </Dialog.Content>
93
+ {/snippet}
231
94
  </Dialog.Root>
232
95
  ```
233
96
 
234
97
  ### Styling with Variants
235
98
 
236
- Variants can be created locally at component level or globally in the preset configuration:
99
+ Create reusable variants locally or globally:
237
100
 
238
101
  ```typescript
239
102
  import { defineVariants } from '@svelte-atoms/core/utils';
240
103
 
241
104
  const buttonVariants = defineVariants({
242
- class: 'inline-flex items-center justify-center rounded-md font-medium',
105
+ class: 'inline-flex items-center justify-center rounded-md',
243
106
  variants: {
244
107
  variant: {
245
108
  primary: 'bg-blue-500 text-white hover:bg-blue-600',
@@ -258,32 +121,39 @@ const buttonVariants = defineVariants({
258
121
  });
259
122
  ```
260
123
 
124
+ ## Components
125
+
126
+ **Layout:** Container, Stack, Layer, Portal
127
+ **Forms:** Input, Textarea, Checkbox, Radio, Select, Combobox, Form
128
+ **Overlays:** Dialog, Drawer, Popover, Tooltip, Toast
129
+ **Navigation:** Tabs, Sidebar, Menu, Dropdown
130
+ **Display:** Card, Alert, Badge, Chip, List, Datagrid, Calendar
131
+ **Utilities:** Root, Lazy, Link, Button
132
+
133
+ [View all components in Storybook →](https://statuesque-boba-0fb888.netlify.app/)
134
+
135
+ ## Documentation
136
+
137
+ - **[Full Documentation](https://sacore.netlify.app/)** - Guides, API references, and examples
138
+ - **[Storybook](https://statuesque-boba-0fb888.netlify.app/)** - Interactive component playground
139
+ - **[GitHub](https://github.com/svelte-atoms/core)** - Source code and issues
140
+
261
141
  ## Development
262
142
 
263
143
  ```bash
264
- # Clone repository
144
+ # Clone and install
265
145
  git clone https://github.com/svelte-atoms/core.git
266
- cd svelte-atoms
267
-
268
- # Install dependencies
146
+ cd core
269
147
  bun install
270
148
 
271
149
  # Start dev server
272
150
  bun dev
273
151
 
274
- # Run tests
275
- bun test
276
-
277
152
  # Build library
278
153
  bun run build
279
154
  ```
280
155
 
281
156
  ## License
282
157
 
283
- MIT License - see [LICENSE](LICENSE) file for details.
284
-
285
- ---
158
+ MIT © [Svelte Atoms Team](https://github.com/svelte-atoms)
286
159
 
287
- <div align="center">
288
- <p>Built with ❤️ by the Svelte Atoms team</p>
289
- </div>
@@ -1 +1,4 @@
1
- export declare function clickout<T extends Element>(onclick?: (ev: PointerEvent, node?: T) => void, options?: AddEventListenerOptions | undefined): (node: T) => () => void;
1
+ export type ClickoutOptions = AddEventListenerOptions & {
2
+ type?: 'click' | 'pointerdown' | 'mousedown';
3
+ };
4
+ export declare function clickout<T extends Element>(onclick?: (ev: PointerEvent, node?: T) => void, options?: ClickoutOptions): (node: T) => () => void;
@@ -1,13 +1,14 @@
1
1
  import { on } from 'svelte/events';
2
2
  export function clickout(onclick, options) {
3
3
  return (node) => {
4
+ const type = options?.type ?? 'click';
4
5
  const handler = (ev) => {
5
6
  const target = ev.target;
6
7
  if (!node.contains(target)) {
7
8
  onclick?.(ev, node);
8
9
  }
9
10
  };
10
- const cleanup = on(window, 'click', handler, options);
11
+ const cleanup = on(window, type, handler, options);
11
12
  return () => {
12
13
  cleanup();
13
14
  };
@@ -1,66 +1,61 @@
1
- <script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
2
- import { defineProperty, defineState } from '../../utils';
3
- import { HtmlAtom, type Base } from '../atom';
4
- import { AccordionBond, AccordionState, type AccordionStateProps } from './bond.svelte';
5
- import type { AccordionRootProps } from './types';
6
-
7
- let {
8
- value = $bindable(undefined),
9
- values = $bindable([]),
10
- data = $bindable([]),
11
- class: klass = '',
12
- multiple = false,
13
- collapsible = false,
14
- disabled = false,
15
- children = undefined,
16
- factory = _factory,
17
- onmount = undefined,
18
- ondestroy = undefined,
19
- animate = undefined,
20
- enter = undefined,
21
- exit = undefined,
22
- initial = undefined,
23
- preset = 'accordion',
24
- ...restProps
25
- }: AccordionRootProps<E, B> = $props();
26
-
27
- const bondProps = defineState<AccordionStateProps>([
28
- defineProperty(
29
- 'values',
30
- () => (multiple ? values : ([value].filter(Boolean) as string[])),
31
- (v) => {
32
- values = v;
33
- value = values[0];
34
- }
35
- ),
36
- defineProperty('multiple', () => multiple),
37
- defineProperty('collapsible', () => collapsible),
38
- defineProperty('disabled', () => disabled),
39
- defineProperty('rest', () => restProps)
40
- ]);
41
- const bond = factory(bondProps).share();
42
-
43
- const rootProps = $derived({
44
- ...bond.root(),
45
- ...restProps
46
- });
47
-
48
- function _factory(props: typeof bondProps = bondProps) {
49
- const bondState = new AccordionState(() => props);
50
-
51
- return new AccordionBond(bondState);
52
- }
53
-
54
- export function getBond() {
55
- return bond;
56
- }
57
- </script>
58
-
59
- <HtmlAtom
60
- {preset}
61
- {bond}
62
- class={['bg-card border-border flex list-none flex-col', '$preset', klass]}
63
- {...rootProps}
64
- >
65
- {@render children?.({ accordion: bond })}
66
- </HtmlAtom>
1
+ <script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
2
+ import { defineProperty, defineState } from '../../utils';
3
+ import { HtmlAtom, type Base } from '../atom';
4
+ import { AccordionBond, AccordionState, type AccordionStateProps } from './bond.svelte';
5
+ import type { AccordionRootProps } from './types';
6
+ import { untrack } from 'svelte';
7
+
8
+ let {
9
+ value = $bindable(undefined),
10
+ values = $bindable([]),
11
+ data = $bindable([]),
12
+ class: klass = '',
13
+ multiple = false,
14
+ collapsible = false,
15
+ disabled = false,
16
+ children = undefined,
17
+ factory = _factory,
18
+ preset = 'accordion',
19
+ ...restProps
20
+ }: AccordionRootProps<E, B> = $props();
21
+
22
+ const bondProps = defineState<AccordionStateProps>([
23
+ defineProperty(
24
+ 'values',
25
+ () => (multiple ? values : ([value].filter(Boolean) as string[])),
26
+ (v) => {
27
+ values = v;
28
+ value = values[0];
29
+ }
30
+ ),
31
+ defineProperty('multiple', () => multiple),
32
+ defineProperty('collapsible', () => collapsible),
33
+ defineProperty('disabled', () => disabled),
34
+ defineProperty('rest', () => restProps)
35
+ ]);
36
+ const bond = untrack(()=> factory(bondProps)).share();
37
+
38
+ const rootProps = $derived({
39
+ ...bond.root().spread,
40
+ ...restProps
41
+ });
42
+
43
+ function _factory(props: typeof bondProps = bondProps) {
44
+ const bondState = new AccordionState(() => props);
45
+
46
+ return new AccordionBond(bondState);
47
+ }
48
+
49
+ export function getBond() {
50
+ return bond;
51
+ }
52
+ </script>
53
+
54
+ <HtmlAtom
55
+ {preset}
56
+ {bond}
57
+ class={['bg-card border-border flex list-none flex-col', '$preset', klass]}
58
+ {...rootProps}
59
+ >
60
+ {@render children?.({ accordion: bond })}
61
+ </HtmlAtom>
@@ -6,7 +6,7 @@ declare function $$render<E extends keyof HTMLElementTagNameMap = 'div', B exten
6
6
  exports: {
7
7
  getBond: () => AccordionBond;
8
8
  };
9
- bindings: "values" | "value" | "data";
9
+ bindings: "data" | "values" | "value";
10
10
  slots: {};
11
11
  events: {};
12
12
  };
@@ -14,7 +14,7 @@ declare class __sveltets_Render<E extends keyof HTMLElementTagNameMap = 'div', B
14
14
  props(): ReturnType<typeof $$render<E, B>>['props'];
15
15
  events(): ReturnType<typeof $$render<E, B>>['events'];
16
16
  slots(): ReturnType<typeof $$render<E, B>>['slots'];
17
- bindings(): "values" | "value" | "data";
17
+ bindings(): "data" | "values" | "value";
18
18
  exports(): {
19
19
  getBond: () => AccordionBond;
20
20
  };
@@ -1,5 +1,5 @@
1
1
  import type { AccordionItemBond } from './item/bond.svelte';
2
- import { Bond, BondState, type BondStateProps } from '../../shared/bond.svelte';
2
+ import { Bond, BondState, BondAtom, type BondStateProps } from '../../shared/bond.svelte';
3
3
  export type AccordionStateProps = BondStateProps & {
4
4
  open: boolean;
5
5
  value?: string;
@@ -13,19 +13,20 @@ export type AccordionElements = {
13
13
  root: HTMLElement;
14
14
  indicator: HTMLElement;
15
15
  };
16
- export declare class AccordionBond extends Bond<AccordionStateProps, AccordionState, AccordionElements> {
17
- static CONTEXT_KEY: string;
18
- constructor(s: AccordionState);
19
- share(): this;
20
- root(): {
21
- [x: symbol]: (node: HTMLElement) => void;
16
+ export declare class AccordionRootAtom extends BondAtom<AccordionBond> {
17
+ constructor(bond: AccordionBond);
18
+ get attrs(): {
22
19
  'aria-expand': boolean;
23
20
  'aria-disabled': boolean;
24
21
  'aria-multiselectable': boolean;
25
- 'data-atom': string;
26
- 'data-kind': string;
27
- id: string;
28
22
  };
23
+ }
24
+ export declare class AccordionBond extends Bond<AccordionStateProps, AccordionState, AccordionElements> {
25
+ static CONTEXT_KEY: string;
26
+ constructor(s: AccordionState);
27
+ share(): this;
28
+ /** Handle for granular access to root attrs and attachment */
29
+ root(): AccordionRootAtom;
29
30
  static get(): AccordionBond | undefined;
30
31
  static set(bond: AccordionBond): AccordionBond;
31
32
  }