@svelte-atoms/core 1.0.0-alpha.41 → 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 (628) 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.svelte +99 -99
  34. package/dist/components/calendar/calendar-header.svelte +1 -1
  35. package/dist/components/calendar/calendar-root.svelte +206 -206
  36. package/dist/components/calendar/calendar-root.svelte.d.ts +1 -1
  37. package/dist/components/calendar/calendar-week-day.svelte +33 -33
  38. package/dist/components/calendar/types.d.ts +7 -10
  39. package/dist/components/card/card-root.svelte +92 -92
  40. package/dist/components/card/types.d.ts +12 -51
  41. package/dist/components/checkbox/checkbox.svelte +65 -55
  42. package/dist/components/checkbox/checkbox.svelte.d.ts +1 -3
  43. package/dist/components/checkbox/index.d.ts +2 -0
  44. package/dist/components/checkbox/index.js +1 -0
  45. package/dist/components/checkbox/motion.d.ts +17 -0
  46. package/dist/components/checkbox/motion.js +34 -0
  47. package/dist/components/checkbox/types.d.ts +14 -7
  48. package/dist/components/chip/chip-close-button.svelte +33 -0
  49. package/dist/components/chip/chip-close-button.svelte.d.ts +4 -0
  50. package/dist/components/chip/chip.svelte +34 -41
  51. package/dist/components/chip/chip.svelte.d.ts +1 -3
  52. package/dist/components/chip/index.d.ts +2 -0
  53. package/dist/components/chip/index.js +2 -0
  54. package/dist/components/chip/types.d.ts +15 -8
  55. package/dist/components/collapsible/bond.svelte.d.ts +34 -24
  56. package/dist/components/collapsible/bond.svelte.js +73 -60
  57. package/dist/components/collapsible/collapsible-body.svelte +1 -1
  58. package/dist/components/collapsible/collapsible-header.svelte +1 -1
  59. package/dist/components/collapsible/collapsible-indicator.svelte +1 -1
  60. package/dist/components/collapsible/collapsible-root.svelte +67 -67
  61. package/dist/components/collapsible/types.d.ts +10 -22
  62. package/dist/components/combobox/bond.svelte.d.ts +13 -8
  63. package/dist/components/combobox/bond.svelte.js +30 -20
  64. package/dist/components/combobox/combobox-control.svelte +66 -66
  65. package/dist/components/combobox/combobox-item.svelte +62 -62
  66. package/dist/components/combobox/combobox-root.svelte +65 -65
  67. package/dist/components/combobox/combobox-root.svelte.d.ts +2 -2
  68. package/dist/components/combobox/combobox-selections.svelte +17 -17
  69. package/dist/components/combobox/combobox-trigger.svelte +34 -34
  70. package/dist/components/combobox/types.d.ts +6 -10
  71. package/dist/components/container/index.d.ts +1 -0
  72. package/dist/components/container/types.d.ts +6 -12
  73. package/dist/components/context-menu/atoms.d.ts +4 -0
  74. package/dist/components/context-menu/atoms.js +4 -0
  75. package/dist/components/context-menu/context-menu-content.svelte +52 -0
  76. package/dist/components/context-menu/context-menu-content.svelte.d.ts +27 -0
  77. package/dist/components/context-menu/context-menu-root.svelte +8 -0
  78. package/dist/components/context-menu/context-menu-root.svelte.d.ts +4 -0
  79. package/dist/components/context-menu/context-menu-trigger.svelte +59 -0
  80. package/dist/components/context-menu/context-menu-trigger.svelte.d.ts +27 -0
  81. package/dist/components/context-menu/index.d.ts +2 -0
  82. package/dist/components/context-menu/index.js +2 -0
  83. package/dist/components/{contextmenu → context-menu}/types.d.ts +1 -6
  84. package/dist/components/datagrid/atoms.d.ts +11 -5
  85. package/dist/components/datagrid/atoms.js +11 -5
  86. package/dist/components/datagrid/bond.svelte.d.ts +29 -14
  87. package/dist/components/datagrid/bond.svelte.js +45 -33
  88. package/dist/components/datagrid/cell/bond.svelte.d.ts +29 -0
  89. package/dist/components/datagrid/cell/bond.svelte.js +42 -0
  90. package/dist/components/datagrid/cell/datagrid-cell.svelte +49 -0
  91. package/dist/components/datagrid/cell/datagrid-cell.svelte.d.ts +26 -0
  92. package/dist/components/datagrid/cell/index.d.ts +4 -0
  93. package/dist/components/datagrid/cell/index.js +4 -0
  94. package/dist/components/datagrid/col/index.d.ts +4 -0
  95. package/dist/components/datagrid/col/index.js +4 -0
  96. package/dist/components/datagrid/column/bond.svelte.d.ts +45 -0
  97. package/dist/components/datagrid/column/bond.svelte.js +76 -0
  98. package/dist/components/datagrid/{th/datagrid-th-sort-icon.svelte → column/datagrid-column-sort-icon.svelte} +3 -3
  99. package/dist/components/datagrid/{th/datagrid-th-sort-icon.svelte.d.ts → column/datagrid-column-sort-icon.svelte.d.ts} +3 -3
  100. package/dist/components/datagrid/{th/datagrid-th.svelte → column/datagrid-column.svelte} +27 -36
  101. package/dist/components/datagrid/column/datagrid-column.svelte.d.ts +26 -0
  102. package/dist/components/datagrid/column/index.d.ts +4 -0
  103. package/dist/components/datagrid/column/index.js +4 -0
  104. package/dist/components/datagrid/context.d.ts +2 -29
  105. package/dist/components/datagrid/context.js +4 -18
  106. package/dist/components/datagrid/datagrid-body.svelte +7 -20
  107. package/dist/components/datagrid/datagrid-body.svelte.d.ts +8 -15
  108. package/dist/components/datagrid/datagrid-checkbox.svelte +60 -63
  109. package/dist/components/datagrid/datagrid-checkbox.svelte.d.ts +1 -3
  110. package/dist/components/datagrid/datagrid-footer.svelte +27 -34
  111. package/dist/components/datagrid/datagrid-footer.svelte.d.ts +12 -12
  112. package/dist/components/datagrid/datagrid-header.svelte +10 -17
  113. package/dist/components/datagrid/datagrid-header.svelte.d.ts +12 -12
  114. package/dist/components/datagrid/datagrid-root.svelte +49 -59
  115. package/dist/components/datagrid/datagrid-root.svelte.d.ts +15 -14
  116. package/dist/components/datagrid/row/bond.svelte.d.ts +42 -0
  117. package/dist/components/datagrid/row/bond.svelte.js +72 -0
  118. package/dist/components/datagrid/{tr/datagrid-tr.css → row/datagrid-row.css} +1 -1
  119. package/dist/components/datagrid/row/datagrid-row.svelte +64 -0
  120. package/dist/components/datagrid/row/datagrid-row.svelte.d.ts +27 -0
  121. package/dist/components/datagrid/row/index.d.ts +4 -0
  122. package/dist/components/datagrid/row/index.js +4 -0
  123. package/dist/components/datagrid/types.d.ts +56 -116
  124. package/dist/components/date-picker/bond.svelte.d.ts +0 -12
  125. package/dist/components/date-picker/date-picker-calendar.svelte +58 -58
  126. package/dist/components/date-picker/date-picker-months.svelte +1 -1
  127. package/dist/components/date-picker/date-picker-root.svelte +96 -96
  128. package/dist/components/date-picker/date-picker-root.svelte.d.ts +1 -1
  129. package/dist/components/date-picker/date-picker-years.svelte +1 -1
  130. package/dist/components/date-picker/types.d.ts +6 -3
  131. package/dist/components/dialog/atoms.d.ts +1 -1
  132. package/dist/components/dialog/atoms.js +1 -1
  133. package/dist/components/dialog/bond.svelte.d.ts +66 -28
  134. package/dist/components/dialog/bond.svelte.js +136 -117
  135. package/dist/components/dialog/dialog-body.svelte +1 -1
  136. package/dist/components/dialog/dialog-close.svelte +58 -0
  137. package/dist/components/dialog/dialog-close.svelte.d.ts +26 -0
  138. package/dist/components/dialog/dialog-content.svelte +2 -2
  139. package/dist/components/dialog/dialog-description.svelte +1 -1
  140. package/dist/components/dialog/dialog-footer.svelte +1 -1
  141. package/dist/components/dialog/dialog-header.svelte +1 -1
  142. package/dist/components/dialog/dialog-root.svelte +102 -82
  143. package/dist/components/dialog/dialog-title.svelte +1 -1
  144. package/dist/components/dialog/motion.svelte.js +68 -26
  145. package/dist/components/dialog/types.d.ts +16 -51
  146. package/dist/components/divider/types.d.ts +1 -6
  147. package/dist/components/drawer/bond.svelte.d.ts +61 -36
  148. package/dist/components/drawer/bond.svelte.js +149 -121
  149. package/dist/components/drawer/drawer-backdrop.svelte +2 -1
  150. package/dist/components/drawer/drawer-body.svelte +1 -1
  151. package/dist/components/drawer/drawer-content.svelte +5 -5
  152. package/dist/components/drawer/drawer-content.svelte.d.ts +4 -1
  153. package/dist/components/drawer/drawer-description.svelte +1 -1
  154. package/dist/components/drawer/drawer-footer.svelte +1 -1
  155. package/dist/components/drawer/drawer-header.svelte +1 -1
  156. package/dist/components/drawer/drawer-root.svelte +96 -87
  157. package/dist/components/drawer/drawer-title.svelte +1 -1
  158. package/dist/components/drawer/motion.d.ts +59 -5
  159. package/dist/components/drawer/motion.js +133 -15
  160. package/dist/components/drawer/types.d.ts +15 -24
  161. package/dist/components/dropdown/atoms.d.ts +4 -8
  162. package/dist/components/dropdown/atoms.js +4 -9
  163. package/dist/components/dropdown/bond.svelte.d.ts +4 -53
  164. package/dist/components/dropdown/bond.svelte.js +4 -89
  165. package/dist/components/dropdown/dropdown-query.svelte +43 -43
  166. package/dist/components/dropdown/dropdown-root.svelte +79 -79
  167. package/dist/components/dropdown/dropdown-root.svelte.d.ts +4 -4
  168. package/dist/components/dropdown/dropdown-selection.svelte +55 -55
  169. package/dist/components/dropdown/dropdown-selections.svelte +70 -70
  170. package/dist/components/dropdown/dropdown-trigger.svelte +30 -30
  171. package/dist/components/dropdown/index.d.ts +43 -7
  172. package/dist/components/dropdown/index.js +34 -6
  173. package/dist/components/dropdown/item/bond.svelte.d.ts +36 -0
  174. package/dist/components/dropdown/item/bond.svelte.js +85 -0
  175. package/dist/components/dropdown/item/controller.svelte.d.ts +1 -1
  176. package/dist/components/dropdown/item/dropdown-item.svelte +81 -107
  177. package/dist/components/dropdown/item/index.d.ts +11 -3
  178. package/dist/components/dropdown/item/index.js +10 -3
  179. package/dist/components/dropdown/types.d.ts +2 -67
  180. package/dist/components/dropdown-menu/atoms.d.ts +9 -0
  181. package/dist/components/dropdown-menu/atoms.js +9 -0
  182. package/dist/components/dropdown-menu/attachments.svelte.d.ts +2 -0
  183. package/dist/components/dropdown-menu/attachments.svelte.js +5 -0
  184. package/dist/components/dropdown-menu/bond.svelte.d.ts +72 -0
  185. package/dist/components/dropdown-menu/bond.svelte.js +173 -0
  186. package/dist/components/dropdown-menu/dropdown-menu-content.svelte +40 -0
  187. package/dist/components/dropdown-menu/dropdown-menu-content.svelte.d.ts +37 -0
  188. package/dist/components/dropdown-menu/dropdown-menu-root.svelte +14 -0
  189. package/dist/components/dropdown-menu/dropdown-menu-root.svelte.d.ts +4 -0
  190. package/dist/components/dropdown-menu/index.d.ts +7 -0
  191. package/dist/components/dropdown-menu/index.js +6 -0
  192. package/dist/components/dropdown-menu/item/bond.svelte.d.ts +26 -0
  193. package/dist/components/dropdown-menu/item/bond.svelte.js +54 -0
  194. package/dist/components/dropdown-menu/item/controller.svelte.d.ts +39 -0
  195. package/dist/components/dropdown-menu/item/controller.svelte.js +73 -0
  196. package/dist/components/dropdown-menu/item/dropdown-menu-item.svelte +75 -0
  197. package/dist/components/dropdown-menu/item/dropdown-menu-item.svelte.d.ts +32 -0
  198. package/dist/components/dropdown-menu/item/index.d.ts +3 -0
  199. package/dist/components/dropdown-menu/item/index.js +3 -0
  200. package/dist/components/dropdown-menu/item/types.d.ts +57 -0
  201. package/dist/components/dropdown-menu/item/types.js +1 -0
  202. package/dist/components/dropdown-menu/types.d.ts +3 -0
  203. package/dist/components/dropdown-menu/types.js +1 -0
  204. package/dist/components/element/html-element.svelte +114 -85
  205. package/dist/components/element/html-element.svelte.d.ts +1 -1
  206. package/dist/components/element/svg-element.svelte +88 -88
  207. package/dist/components/element/types.d.ts +32 -20
  208. package/dist/components/form/field/atoms.d.ts +1 -1
  209. package/dist/components/form/field/atoms.js +1 -1
  210. package/dist/components/form/field/bond.svelte.js +0 -6
  211. package/dist/components/form/field/field-control.svelte +30 -9
  212. package/dist/components/form/field/field-control.svelte.d.ts +12 -22
  213. package/dist/components/form/field/field-helper-text.svelte +23 -0
  214. package/dist/components/form/field/field-helper-text.svelte.d.ts +26 -0
  215. package/dist/components/form/field/field-label.svelte +5 -7
  216. package/dist/components/form/field/field-label.svelte.d.ts +2 -2
  217. package/dist/components/form/field/field-root.svelte +17 -8
  218. package/dist/components/form/form-root.svelte +66 -66
  219. package/dist/components/form/types.d.ts +34 -58
  220. package/dist/components/icon/icon.svelte +40 -40
  221. package/dist/components/icon/types.d.ts +4 -7
  222. package/dist/components/image/index.d.ts +2 -0
  223. package/dist/components/image/index.js +2 -1
  224. package/dist/components/index.d.ts +11 -0
  225. package/dist/components/index.js +11 -0
  226. package/dist/components/input/atoms.d.ts +19 -1
  227. package/dist/components/input/atoms.js +19 -1
  228. package/dist/components/input/color/color-control.svelte +197 -0
  229. package/dist/components/input/color/color-control.svelte.d.ts +4 -0
  230. package/dist/components/input/color/index.d.ts +5 -0
  231. package/dist/components/input/color/index.js +5 -0
  232. package/dist/components/input/color/segment.svelte +240 -0
  233. package/dist/components/input/color/segment.svelte.d.ts +6 -0
  234. package/dist/components/input/color/shared.d.ts +23 -0
  235. package/dist/components/input/color/shared.js +349 -0
  236. package/dist/components/input/color/swatch.svelte +23 -0
  237. package/dist/components/input/color/swatch.svelte.d.ts +8 -0
  238. package/dist/components/input/color/types.d.ts +56 -0
  239. package/dist/components/input/color/types.js +2 -0
  240. package/dist/components/input/index.d.ts +1 -0
  241. package/dist/components/input/index.js +1 -0
  242. package/dist/components/input/input-control.svelte +3 -1
  243. package/dist/components/input/input-currency-control.svelte +189 -0
  244. package/dist/components/input/input-currency-control.svelte.d.ts +4 -0
  245. package/dist/components/input/input-email-control.svelte +128 -0
  246. package/dist/components/input/input-email-control.svelte.d.ts +4 -0
  247. package/dist/components/input/input-file-control.svelte +127 -0
  248. package/dist/components/input/input-file-control.svelte.d.ts +4 -0
  249. package/dist/components/input/input-icon.svelte.d.ts +1 -1
  250. package/dist/components/input/input-location.svelte +335 -0
  251. package/dist/components/input/input-location.svelte.d.ts +4 -0
  252. package/dist/components/input/input-number-control.svelte +114 -0
  253. package/dist/components/input/input-number-control.svelte.d.ts +6 -0
  254. package/dist/components/input/input-otp-control.svelte +206 -0
  255. package/dist/components/input/input-otp-control.svelte.d.ts +4 -0
  256. package/dist/components/input/input-password-control.svelte +91 -0
  257. package/dist/components/input/input-password-control.svelte.d.ts +3 -0
  258. package/dist/components/input/input-phone-control.svelte +394 -0
  259. package/dist/components/input/input-phone-control.svelte.d.ts +4 -0
  260. package/dist/components/input/input-placeholder.svelte.d.ts +1 -1
  261. package/dist/components/input/input-root.svelte +74 -74
  262. package/dist/components/input/input-text-control.svelte +59 -0
  263. package/dist/components/input/input-text-control.svelte.d.ts +4 -0
  264. package/dist/components/input/input-url-control.svelte +218 -0
  265. package/dist/components/input/input-url-control.svelte.d.ts +4 -0
  266. package/dist/components/input/time/datetime-control.svelte +281 -0
  267. package/dist/components/input/time/datetime-control.svelte.d.ts +5 -0
  268. package/dist/components/input/time/index.d.ts +6 -0
  269. package/dist/components/input/time/index.js +6 -0
  270. package/dist/components/input/time/segment.svelte +143 -0
  271. package/dist/components/input/time/segment.svelte.d.ts +6 -0
  272. package/dist/components/input/time/shared.d.ts +29 -0
  273. package/dist/components/input/time/shared.js +150 -0
  274. package/dist/components/input/time/time-control.svelte +237 -0
  275. package/dist/components/input/time/time-control.svelte.d.ts +3 -0
  276. package/dist/components/input/time/types.d.ts +34 -0
  277. package/dist/components/input/time/types.js +4 -0
  278. package/dist/components/input/types.d.ts +355 -17
  279. package/dist/components/label/types.d.ts +4 -7
  280. package/dist/components/layer/bond.svelte.d.ts +2 -2
  281. package/dist/components/layer/bond.svelte.js +1 -1
  282. package/dist/components/layer/index.d.ts +1 -0
  283. package/dist/components/layer/layer-inner.svelte.d.ts +1 -1
  284. package/dist/components/layer/layer-root.svelte +65 -65
  285. package/dist/components/layer/layer-root.svelte.d.ts +1 -1
  286. package/dist/components/layer/types.d.ts +6 -6
  287. package/dist/components/lazy/index.d.ts +1 -0
  288. package/dist/components/lazy/lazy.svelte +29 -29
  289. package/dist/components/lazy/types.d.ts +4 -4
  290. package/dist/components/link/index.d.ts +1 -0
  291. package/dist/components/link/types.d.ts +5 -6
  292. package/dist/components/list/index.d.ts +1 -0
  293. package/dist/components/list/types.d.ts +5 -6
  294. package/dist/components/menu/atoms.d.ts +2 -7
  295. package/dist/components/menu/atoms.js +2 -7
  296. package/dist/components/menu/bond.svelte.d.ts +9 -23
  297. package/dist/components/menu/bond.svelte.js +6 -0
  298. package/dist/components/menu/index.d.ts +40 -4
  299. package/dist/components/menu/index.js +26 -3
  300. package/dist/components/menu/item/bond.svelte.d.ts +27 -0
  301. package/dist/components/menu/item/bond.svelte.js +54 -0
  302. package/dist/components/menu/item/controller.svelte.d.ts +1 -1
  303. package/dist/components/menu/item/index.d.ts +5 -2
  304. package/dist/components/menu/item/index.js +4 -2
  305. package/dist/components/menu/item/menu-item.svelte +87 -103
  306. package/dist/components/menu/item/menu-item.svelte.d.ts +15 -14
  307. package/dist/components/menu/item/types.d.ts +5 -12
  308. package/dist/components/menu/menu-content.svelte +40 -40
  309. package/dist/components/menu/menu-root.svelte +15 -15
  310. package/dist/components/menu/menu-root.svelte.d.ts +1 -1
  311. package/dist/components/menu/types.d.ts +2 -6
  312. package/dist/components/popover/bond.svelte.d.ts +67 -39
  313. package/dist/components/popover/bond.svelte.js +159 -197
  314. package/dist/components/popover/index.d.ts +3 -1
  315. package/dist/components/popover/index.js +3 -1
  316. package/dist/components/popover/motion.d.ts +29 -1
  317. package/dist/components/popover/motion.js +128 -50
  318. package/dist/components/popover/popover-arrow.svelte +97 -110
  319. package/dist/components/popover/popover-arrow.svelte.d.ts +1 -2
  320. package/dist/components/popover/popover-content.svelte +159 -123
  321. package/dist/components/popover/popover-engine.svelte +118 -0
  322. package/dist/components/popover/popover-engine.svelte.d.ts +3 -0
  323. package/dist/components/popover/popover-indicator.svelte +2 -13
  324. package/dist/components/popover/popover-indicator.svelte.d.ts +0 -6
  325. package/dist/components/popover/popover-root.svelte +87 -49
  326. package/dist/components/popover/popover-root.svelte.d.ts +2 -1
  327. package/dist/components/popover/popover-trigger.svelte +35 -35
  328. package/dist/components/popover/strategies/floating.svelte +109 -0
  329. package/dist/components/popover/strategies/floating.svelte.d.ts +3 -0
  330. package/dist/components/popover/strategies/index.d.ts +1 -0
  331. package/dist/components/popover/strategies/index.js +1 -0
  332. package/dist/components/popover/strategy-types.d.ts +40 -0
  333. package/dist/components/popover/strategy-types.js +1 -0
  334. package/dist/components/popover/types.d.ts +10 -36
  335. package/dist/components/portal/active-portal.svelte +5 -4
  336. package/dist/components/portal/bond.svelte.d.ts +12 -8
  337. package/dist/components/portal/bond.svelte.js +25 -27
  338. package/dist/components/portal/index.d.ts +1 -0
  339. package/dist/components/portal/index.js +1 -0
  340. package/dist/components/portal/portal-inner.svelte +1 -1
  341. package/dist/components/portal/portal-inner.svelte.d.ts +1 -1
  342. package/dist/components/portal/portal-root.svelte +76 -76
  343. package/dist/components/portal/portal-root.svelte.d.ts +1 -1
  344. package/dist/components/portal/portals/bond.svelte.d.ts +2 -2
  345. package/dist/components/portal/portals/bond.svelte.js +2 -2
  346. package/dist/components/portal/teleport.svelte +47 -49
  347. package/dist/components/portal/teleport.svelte.d.ts +1 -2
  348. package/dist/components/portal/types.d.ts +7 -25
  349. package/dist/components/portal/utils.js +3 -3
  350. package/dist/components/portal/zlayer.svelte.d.ts +16 -0
  351. package/dist/components/portal/zlayer.svelte.js +25 -0
  352. package/dist/components/radio/index.d.ts +2 -0
  353. package/dist/components/radio/index.js +1 -0
  354. package/dist/components/radio/motion.d.ts +24 -0
  355. package/dist/components/radio/motion.js +59 -0
  356. package/dist/components/radio/radio.svelte +22 -12
  357. package/dist/components/radio/types.d.ts +5 -14
  358. package/dist/components/root/bond.svelte.d.ts +2 -2
  359. package/dist/components/root/bond.svelte.js +1 -1
  360. package/dist/components/root/root.svelte +82 -92
  361. package/dist/components/root/root.svelte.d.ts +2 -2
  362. package/dist/components/root/types.d.ts +4 -15
  363. package/dist/components/scrollable/atoms.d.ts +1 -0
  364. package/dist/components/scrollable/atoms.js +1 -0
  365. package/dist/components/scrollable/bond.svelte.d.ts +73 -189
  366. package/dist/components/scrollable/bond.svelte.js +195 -371
  367. package/dist/components/scrollable/scrollable-container.css +22 -22
  368. package/dist/components/scrollable/scrollable-container.svelte +66 -61
  369. package/dist/components/scrollable/scrollable-container.svelte.d.ts +12 -12
  370. package/dist/components/scrollable/scrollable-content.svelte +22 -17
  371. package/dist/components/scrollable/scrollable-content.svelte.d.ts +12 -12
  372. package/dist/components/scrollable/scrollable-root.svelte +106 -101
  373. package/dist/components/scrollable/scrollable-root.svelte.d.ts +12 -12
  374. package/dist/components/scrollable/scrollable-thumb.svelte +21 -45
  375. package/dist/components/scrollable/scrollable-thumb.svelte.d.ts +12 -12
  376. package/dist/components/scrollable/scrollable-track.svelte +21 -22
  377. package/dist/components/scrollable/scrollable-track.svelte.d.ts +12 -12
  378. package/dist/components/scrollable/types.d.ts +15 -38
  379. package/dist/components/select/atoms.d.ts +8 -0
  380. package/dist/components/select/atoms.js +8 -0
  381. package/dist/components/select/attachments.svelte.d.ts +2 -0
  382. package/dist/components/select/attachments.svelte.js +5 -0
  383. package/dist/components/select/bond.svelte.d.ts +56 -0
  384. package/dist/components/select/bond.svelte.js +112 -0
  385. package/dist/components/select/index.d.ts +11 -0
  386. package/dist/components/select/index.js +10 -0
  387. package/dist/components/select/item/attachments.svelte.d.ts +3 -0
  388. package/dist/components/select/item/attachments.svelte.js +6 -0
  389. package/dist/components/select/item/bond.svelte.d.ts +33 -0
  390. package/dist/components/select/item/bond.svelte.js +77 -0
  391. package/dist/components/select/item/controller.svelte.d.ts +39 -0
  392. package/dist/components/select/item/controller.svelte.js +105 -0
  393. package/dist/components/select/item/index.d.ts +5 -0
  394. package/dist/components/select/item/index.js +5 -0
  395. package/dist/components/select/item/select-item.svelte +81 -0
  396. package/dist/components/select/item/select-item.svelte.d.ts +25 -0
  397. package/dist/components/select/item/types.d.ts +29 -0
  398. package/dist/components/select/item/types.js +1 -0
  399. package/dist/components/select/runes.svelte.d.ts +10 -0
  400. package/dist/components/select/runes.svelte.js +15 -0
  401. package/dist/components/select/select-placeholder.svelte +40 -0
  402. package/dist/components/select/select-placeholder.svelte.d.ts +34 -0
  403. package/dist/components/select/select-root.svelte +80 -0
  404. package/dist/components/select/select-root.svelte.d.ts +30 -0
  405. package/dist/components/select/select-selection.svelte +55 -0
  406. package/dist/components/select/select-selection.svelte.d.ts +26 -0
  407. package/dist/components/select/select-selections.svelte +70 -0
  408. package/dist/components/select/select-selections.svelte.d.ts +5 -0
  409. package/dist/components/select/select-trigger.svelte +30 -0
  410. package/dist/components/select/select-trigger.svelte.d.ts +26 -0
  411. package/dist/components/select/types.d.ts +61 -0
  412. package/dist/components/select/types.js +1 -0
  413. package/dist/components/sidebar/bond.svelte.d.ts +10 -7
  414. package/dist/components/sidebar/bond.svelte.js +20 -15
  415. package/dist/components/sidebar/sidebar-content.svelte +1 -1
  416. package/dist/components/sidebar/sidebar-root.svelte +50 -41
  417. package/dist/components/sidebar/types.d.ts +10 -15
  418. package/dist/components/slider/index.d.ts +2 -0
  419. package/dist/components/slider/index.js +2 -0
  420. package/dist/components/slider/slider.svelte +164 -0
  421. package/dist/components/slider/slider.svelte.d.ts +6 -0
  422. package/dist/components/slider/types.d.ts +78 -0
  423. package/dist/components/slider/types.js +1 -0
  424. package/dist/components/stack/bond.svelte.d.ts +50 -0
  425. package/dist/components/stack/bond.svelte.js +174 -0
  426. package/dist/components/stack/index.d.ts +2 -0
  427. package/dist/components/stack/index.js +2 -0
  428. package/dist/components/stack/stack-item.svelte +40 -4
  429. package/dist/components/stack/stack-item.svelte.d.ts +6 -5
  430. package/dist/components/stack/stack-root.svelte +33 -4
  431. package/dist/components/stack/stack-root.svelte.d.ts +14 -5
  432. package/dist/components/stack/types.d.ts +11 -10
  433. package/dist/components/stepper/bond.svelte.d.ts +8 -7
  434. package/dist/components/stepper/bond.svelte.js +14 -11
  435. package/dist/components/stepper/step/README.md +97 -97
  436. package/dist/components/stepper/step/bond.svelte.d.ts +74 -63
  437. package/dist/components/stepper/step/bond.svelte.js +105 -69
  438. package/dist/components/stepper/step/step-body.svelte +39 -39
  439. package/dist/components/stepper/step/step-description.svelte +33 -33
  440. package/dist/components/stepper/step/step-header.svelte +34 -34
  441. package/dist/components/stepper/step/step-indicator.svelte +62 -62
  442. package/dist/components/stepper/step/step-root.svelte +42 -42
  443. package/dist/components/stepper/step/step-separator.svelte +48 -48
  444. package/dist/components/stepper/step/step-title.svelte +33 -33
  445. package/dist/components/stepper/step/types.d.ts +13 -57
  446. package/dist/components/stepper/stepper-body.svelte +31 -43
  447. package/dist/components/stepper/stepper-content.svelte +45 -45
  448. package/dist/components/stepper/stepper-footer.svelte +31 -31
  449. package/dist/components/stepper/stepper-header.svelte +27 -39
  450. package/dist/components/stepper/stepper-root.svelte +55 -61
  451. package/dist/components/stepper/types.d.ts +10 -36
  452. package/dist/components/swatch/index.d.ts +1 -0
  453. package/dist/components/swatch/index.js +1 -0
  454. package/dist/components/swatch/swatch.svelte +57 -0
  455. package/dist/components/swatch/swatch.svelte.d.ts +9 -0
  456. package/dist/components/switch/index.d.ts +2 -0
  457. package/dist/components/switch/index.js +2 -0
  458. package/dist/components/switch/switch.svelte +76 -0
  459. package/dist/components/switch/switch.svelte.d.ts +6 -0
  460. package/dist/components/switch/types.d.ts +43 -0
  461. package/dist/components/switch/types.js +1 -0
  462. package/dist/components/tabs/bond.svelte.d.ts +38 -19
  463. package/dist/components/tabs/bond.svelte.js +53 -46
  464. package/dist/components/tabs/tab/attachments.svelte.d.ts +5 -2
  465. package/dist/components/tabs/tab/attachments.svelte.js +4 -3
  466. package/dist/components/tabs/tab/bond.svelte.d.ts +35 -23
  467. package/dist/components/tabs/tab/bond.svelte.js +81 -56
  468. package/dist/components/tabs/tab/tab-body.svelte +61 -43
  469. package/dist/components/tabs/tab/tab-description.svelte +33 -33
  470. package/dist/components/tabs/tab/tab-header.svelte +61 -61
  471. package/dist/components/tabs/tab/tab-root.svelte +49 -50
  472. package/dist/components/tabs/tab/tab-root.svelte.d.ts +13 -35
  473. package/dist/components/tabs/tabs-body.svelte +39 -35
  474. package/dist/components/tabs/tabs-body.svelte.d.ts +1 -1
  475. package/dist/components/tabs/tabs-content.svelte +32 -51
  476. package/dist/components/tabs/tabs-header.svelte +32 -32
  477. package/dist/components/tabs/tabs-root.svelte +56 -56
  478. package/dist/components/tabs/types.d.ts +20 -37
  479. package/dist/components/textarea/types.d.ts +6 -12
  480. package/dist/components/toast/atoms.d.ts +1 -0
  481. package/dist/components/toast/atoms.js +1 -0
  482. package/dist/components/toast/index.d.ts +1 -0
  483. package/dist/components/toast/index.js +1 -0
  484. package/dist/components/toast/manager.svelte.d.ts +38 -0
  485. package/dist/components/toast/manager.svelte.js +82 -0
  486. package/dist/components/toast/toast-description.svelte.d.ts +1 -1
  487. package/dist/components/toast/toast-root-managed.svelte +64 -0
  488. package/dist/components/toast/toast-root-managed.svelte.d.ts +7 -0
  489. package/dist/components/toast/toast-root.svelte.d.ts +1 -1
  490. package/dist/components/toast/toast-title.svelte.d.ts +1 -1
  491. package/dist/components/toast/toast-toaster.svelte +42 -0
  492. package/dist/components/toast/toast-toaster.svelte.d.ts +4 -0
  493. package/dist/components/toast/types.d.ts +22 -31
  494. package/dist/components/tooltip/index.d.ts +1 -0
  495. package/dist/components/tooltip/tooltip-trigger.svelte +39 -39
  496. package/dist/components/tooltip/types.d.ts +5 -8
  497. package/dist/components/tree/bond.svelte.d.ts +28 -19
  498. package/dist/components/tree/bond.svelte.js +62 -53
  499. package/dist/components/tree/tree-body.svelte +1 -1
  500. package/dist/components/tree/tree-header.svelte +1 -1
  501. package/dist/components/tree/tree-header.svelte.d.ts +1 -1
  502. package/dist/components/tree/tree-indicator.svelte +1 -1
  503. package/dist/components/tree/tree-root.svelte +66 -66
  504. package/dist/components/tree/types.d.ts +4 -28
  505. package/dist/components/virtual/index.d.ts +2 -0
  506. package/dist/components/virtual/index.js +2 -0
  507. package/dist/components/virtual/types.d.ts +1 -6
  508. package/dist/constants/motion.d.ts +9 -0
  509. package/dist/constants/motion.js +9 -0
  510. package/dist/context/index.d.ts +1 -1
  511. package/dist/context/preset.svelte.d.ts +169 -2
  512. package/dist/runes/color-scheme.svelte.js +17 -5
  513. package/dist/shared/bond.svelte.d.ts +29 -3
  514. package/dist/shared/bond.svelte.js +126 -4
  515. package/dist/shared/index.d.ts +1 -1
  516. package/dist/shared/index.js +1 -1
  517. package/dist/shared/motion.d.ts +1 -0
  518. package/dist/shared/motion.js +2 -8
  519. package/dist/types/index.d.ts +4 -0
  520. package/dist/utils/index.d.ts +1 -1
  521. package/dist/utils/index.js +1 -1
  522. package/dist/utils/promise.svelte.d.ts +5 -0
  523. package/dist/utils/promise.svelte.js +17 -0
  524. package/dist/utils/variant.d.ts +10 -1
  525. package/dist/utils/variant.js +11 -1
  526. package/package.json +171 -48
  527. package/dist/components/accordion/accordion.stories.svelte +0 -70
  528. package/dist/components/accordion/accordion.stories.svelte.d.ts +0 -18
  529. package/dist/components/alert/alert.stories.svelte +0 -400
  530. package/dist/components/alert/alert.stories.svelte.d.ts +0 -3
  531. package/dist/components/avatar/avatar.stories.svelte +0 -22
  532. package/dist/components/avatar/avatar.stories.svelte.d.ts +0 -26
  533. package/dist/components/badge/badge.stories.svelte +0 -12
  534. package/dist/components/badge/badge.stories.svelte.d.ts +0 -26
  535. package/dist/components/breadcrumb/breadcrumb.stories.svelte +0 -16
  536. package/dist/components/breadcrumb/breadcrumb.stories.svelte.d.ts +0 -26
  537. package/dist/components/button/button.stories.svelte +0 -27
  538. package/dist/components/button/button.stories.svelte.d.ts +0 -18
  539. package/dist/components/calendar/calendar.stories.svelte +0 -26
  540. package/dist/components/calendar/calendar.stories.svelte.d.ts +0 -26
  541. package/dist/components/card/card.stories.svelte +0 -133
  542. package/dist/components/card/card.stories.svelte.d.ts +0 -19
  543. package/dist/components/checkbox/checkbox.stories.svelte +0 -22
  544. package/dist/components/checkbox/checkbox.stories.svelte.d.ts +0 -6
  545. package/dist/components/collapsible/collapsible.stories.svelte +0 -172
  546. package/dist/components/collapsible/collapsible.stories.svelte.d.ts +0 -18
  547. package/dist/components/combobox/combobox.stories.svelte +0 -63
  548. package/dist/components/combobox/combobox.stories.svelte.d.ts +0 -3
  549. package/dist/components/container/container.stories.svelte +0 -20
  550. package/dist/components/container/container.stories.svelte.d.ts +0 -26
  551. package/dist/components/contextmenu/atoms.d.ts +0 -0
  552. package/dist/components/contextmenu/atoms.js +0 -1
  553. package/dist/components/contextmenu/contextmenu-trigger.svelte +0 -0
  554. package/dist/components/contextmenu/contextmenu-trigger.svelte.d.ts +0 -26
  555. package/dist/components/contextmenu/indext.d.ts +0 -0
  556. package/dist/components/contextmenu/indext.js +0 -1
  557. package/dist/components/datagrid/datagrid.stories.svelte +0 -72
  558. package/dist/components/datagrid/datagrid.stories.svelte.d.ts +0 -6
  559. package/dist/components/datagrid/td/bond.svelte.d.ts +0 -28
  560. package/dist/components/datagrid/td/bond.svelte.js +0 -40
  561. package/dist/components/datagrid/td/datagrid-td.svelte +0 -66
  562. package/dist/components/datagrid/td/datagrid-td.svelte.d.ts +0 -30
  563. package/dist/components/datagrid/td/index.d.ts +0 -2
  564. package/dist/components/datagrid/td/index.js +0 -2
  565. package/dist/components/datagrid/th/bond.svelte.d.ts +0 -38
  566. package/dist/components/datagrid/th/bond.svelte.js +0 -66
  567. package/dist/components/datagrid/th/datagrid-th.svelte.d.ts +0 -26
  568. package/dist/components/datagrid/th/index.d.ts +0 -2
  569. package/dist/components/datagrid/th/index.js +0 -2
  570. package/dist/components/datagrid/tr/bond.svelte.d.ts +0 -37
  571. package/dist/components/datagrid/tr/bond.svelte.js +0 -72
  572. package/dist/components/datagrid/tr/datagrid-tr.svelte +0 -90
  573. package/dist/components/datagrid/tr/datagrid-tr.svelte.d.ts +0 -28
  574. package/dist/components/datagrid/tr/index.d.ts +0 -2
  575. package/dist/components/datagrid/tr/index.js +0 -2
  576. package/dist/components/date-picker/date-picker.stories.svelte +0 -35
  577. package/dist/components/date-picker/date-picker.stories.svelte.d.ts +0 -3
  578. package/dist/components/dialog/dialog.stories.svelte +0 -64
  579. package/dist/components/dialog/dialog.stories.svelte.d.ts +0 -3
  580. package/dist/components/drawer/drawer.stories.svelte +0 -141
  581. package/dist/components/drawer/drawer.stories.svelte.d.ts +0 -3
  582. package/dist/components/dropdown/dropdown.stories.svelte +0 -127
  583. package/dist/components/dropdown/dropdown.stories.svelte.d.ts +0 -3
  584. package/dist/components/element/element.stories.svelte +0 -37
  585. package/dist/components/element/element.stories.svelte.d.ts +0 -3
  586. package/dist/components/form/field/field-errors.svelte +0 -9
  587. package/dist/components/form/field/field-errors.svelte.d.ts +0 -11
  588. package/dist/components/form/form.stories.svelte +0 -96
  589. package/dist/components/form/form.stories.svelte.d.ts +0 -18
  590. package/dist/components/image/image.stories.svelte +0 -20
  591. package/dist/components/image/image.stories.svelte.d.ts +0 -26
  592. package/dist/components/input/input.stories.svelte +0 -35
  593. package/dist/components/input/input.stories.svelte.d.ts +0 -18
  594. package/dist/components/label/label.stories.svelte +0 -15
  595. package/dist/components/label/label.stories.svelte.d.ts +0 -26
  596. package/dist/components/lazy/lazy.stories.svelte +0 -28
  597. package/dist/components/lazy/lazy.stories.svelte.d.ts +0 -19
  598. package/dist/components/link/link.stories.svelte +0 -15
  599. package/dist/components/link/link.stories.svelte.d.ts +0 -26
  600. package/dist/components/menu/menu.stories.svelte +0 -33
  601. package/dist/components/menu/menu.stories.svelte.d.ts +0 -3
  602. package/dist/components/popover/popover.stories.svelte +0 -37
  603. package/dist/components/popover/popover.stories.svelte.d.ts +0 -3
  604. package/dist/components/qr-code/qr-code.stories.svelte +0 -18
  605. package/dist/components/qr-code/qr-code.stories.svelte.d.ts +0 -26
  606. package/dist/components/radio/radio-group.stories.svelte +0 -41
  607. package/dist/components/radio/radio-group.stories.svelte.d.ts +0 -6
  608. package/dist/components/radio/radio.stories.svelte +0 -17
  609. package/dist/components/radio/radio.stories.svelte.d.ts +0 -6
  610. package/dist/components/root/l0-portal.svelte +0 -8
  611. package/dist/components/root/l0-portal.svelte.d.ts +0 -26
  612. package/dist/components/root/l1-portal.svelte +0 -7
  613. package/dist/components/root/l1-portal.svelte.d.ts +0 -26
  614. package/dist/components/root/toasts-portal.svelte +0 -7
  615. package/dist/components/root/toasts-portal.svelte.d.ts +0 -26
  616. package/dist/components/scrollable/scrollable.stories.svelte +0 -116
  617. package/dist/components/scrollable/scrollable.stories.svelte.d.ts +0 -26
  618. package/dist/components/sidebar/sidebar.stories.svelte +0 -43
  619. package/dist/components/sidebar/sidebar.stories.svelte.d.ts +0 -3
  620. package/dist/components/stepper/stepper.stories.svelte +0 -264
  621. package/dist/components/stepper/stepper.stories.svelte.d.ts +0 -4
  622. package/dist/components/tabs/tabs.stories.svelte +0 -70
  623. package/dist/components/tabs/tabs.stories.svelte.d.ts +0 -3
  624. package/dist/components/tooltip/tooltip.stories.svelte +0 -32
  625. package/dist/components/tooltip/tooltip.stories.svelte.d.ts +0 -3
  626. package/dist/components/tree/tree.stories.svelte +0 -142
  627. package/dist/components/tree/tree.stories.svelte.d.ts +0 -3
  628. /package/dist/components/{contextmenu → context-menu}/types.js +0 -0
@@ -0,0 +1,70 @@
1
+ <script lang="ts">
2
+ import { HtmlAtom as Atom } from '../atom';
3
+ import SelectSelection from './select-selection.svelte';
4
+ import { SelectBond } from './bond.svelte';
5
+ import type { SelectSelectionsProps } from './types';
6
+ import { onMount, type Component } from 'svelte';
7
+
8
+ const bond = SelectBond.get();
9
+
10
+ if (!bond) {
11
+ throw new Error('SelectSelections must be used within a Select');
12
+ }
13
+
14
+ let {
15
+ class: klass = '',
16
+ children,
17
+ getSelections = undefined,
18
+ Selection = SelectSelection as unknown as Component,
19
+ ...restProps
20
+ }: SelectSelectionsProps = $props();
21
+
22
+ let isMounted = $state(false);
23
+
24
+ onMount(() => {
25
+ isMounted = true;
26
+ });
27
+
28
+ const selections = $derived.by(() => {
29
+ void isMounted; // ensure re-computation after mount
30
+
31
+ if (getSelections) {
32
+ return getSelections(bond);
33
+ }
34
+
35
+ return bond.state.selections.map((controller) => ({
36
+ id: controller.id,
37
+ value: controller.value,
38
+ get label() {
39
+ return controller.label;
40
+ },
41
+ unselect() {
42
+ controller.unselect();
43
+ },
44
+ get createdAt() {
45
+ return controller.createdAt;
46
+ },
47
+ controller
48
+ }));
49
+ });
50
+ const isMultiple = $derived(bond.state.props.multiple);
51
+ </script>
52
+
53
+ {#if isMultiple && selections.length}
54
+ <Atom class={['flex flex-wrap items-center gap-2', klass]} {...restProps}>
55
+ {#if children}
56
+ {@render children?.({ selections: selections, selection: selections[0] })}
57
+ {:else}
58
+ {#each selections as selection (selection.id)}
59
+ <Selection {selection}>
60
+ {selection.label}
61
+ </Selection>
62
+ {/each}
63
+ {/if}
64
+ </Atom>
65
+ {:else if children && selections[0]}
66
+ {@render children?.({ selections: selections, selection: selections[0] })}
67
+ {:else if selections[0]}
68
+ {@const selection = selections[0]}
69
+ {selection.label}
70
+ {/if}
@@ -0,0 +1,5 @@
1
+ import type { SelectSelectionsProps } from './types';
2
+ import { type Component } from 'svelte';
3
+ declare const SelectSelections: Component<SelectSelectionsProps, {}, "">;
4
+ type SelectSelections = ReturnType<typeof SelectSelections>;
5
+ export default SelectSelections;
@@ -0,0 +1,30 @@
1
+ <script lang="ts" generics="T extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
2
+ import { Trigger } from '../popover/atoms';
3
+ import type { Base } from '../atom';
4
+ import { SelectBond } from './bond.svelte';
5
+ import type { SelectTriggerProps } from './types';
6
+
7
+ const bond = SelectBond.get();
8
+
9
+ if (!bond) {
10
+ throw new Error('select atom was not found');
11
+ }
12
+
13
+ let {
14
+ class: klass = '',
15
+ as = 'button' as T,
16
+ preset = 'select.trigger',
17
+ children = undefined,
18
+ ...restProps
19
+ }: SelectTriggerProps<T, B> = $props();
20
+ </script>
21
+
22
+ <Trigger
23
+ {as}
24
+ {bond}
25
+ preset={preset}
26
+ class={['border-border relative flex h-auto min-h-10 flex-wrap items-center', '$preset', klass]}
27
+ {...restProps}
28
+ >
29
+ {@render children?.({ select: bond, dropdown: bond })}
30
+ </Trigger>
@@ -0,0 +1,26 @@
1
+ import type { Base } from '../atom';
2
+ import type { SelectTriggerProps } from './types';
3
+ declare function $$render<T extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base>(): {
4
+ props: SelectTriggerProps<T, B>;
5
+ exports: {};
6
+ bindings: "";
7
+ slots: {};
8
+ events: {};
9
+ };
10
+ declare class __sveltets_Render<T extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> {
11
+ props(): ReturnType<typeof $$render<T, B>>['props'];
12
+ events(): ReturnType<typeof $$render<T, B>>['events'];
13
+ slots(): ReturnType<typeof $$render<T, B>>['slots'];
14
+ bindings(): "";
15
+ exports(): {};
16
+ }
17
+ interface $$IsomorphicComponent {
18
+ new <T extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<T, B>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<T, B>['props']>, ReturnType<__sveltets_Render<T, B>['events']>, ReturnType<__sveltets_Render<T, B>['slots']>> & {
19
+ $$bindings?: ReturnType<__sveltets_Render<T, B>['bindings']>;
20
+ } & ReturnType<__sveltets_Render<T, B>['exports']>;
21
+ <T extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base>(internal: unknown, props: ReturnType<__sveltets_Render<T, B>['props']> & {}): ReturnType<__sveltets_Render<T, B>['exports']>;
22
+ z_$$bindings?: ReturnType<__sveltets_Render<any, any>['bindings']>;
23
+ }
24
+ declare const SelectTrigger: $$IsomorphicComponent;
25
+ type SelectTrigger<T extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> = InstanceType<typeof SelectTrigger<T, B>>;
26
+ export default SelectTrigger;
@@ -0,0 +1,61 @@
1
+ import type { Component, Snippet } from 'svelte';
2
+ import type { HtmlAtomProps, Base, SnippetProps } from '../atom';
3
+ import type { Factory, Override } from '../../types';
4
+ import type { SelectBond } from './bond.svelte';
5
+ import type { PopoverTriggerProps } from '../popover';
6
+ import type { ClassValue } from 'svelte/elements';
7
+ import type { SelectItemController } from './item';
8
+ export interface SelectSnippetProps extends SnippetProps {
9
+ select: SelectBond<any>;
10
+ /** @deprecated Use `select` */
11
+ dropdown: SelectBond<any>;
12
+ }
13
+ export type SelectChildren = Snippet<[SelectSnippetProps]>;
14
+ export interface SelectRootProps<T = any> {
15
+ open?: boolean;
16
+ value?: T;
17
+ values?: T[];
18
+ label?: string;
19
+ labels?: string[];
20
+ multiple?: boolean;
21
+ disabled?: boolean;
22
+ placements?: string[];
23
+ placement?: string;
24
+ offset?: number;
25
+ keys?: string[];
26
+ factory?: Factory<SelectBond>;
27
+ children?: SelectChildren;
28
+ onquerychange?: (query: string) => void;
29
+ }
30
+ export interface SelectTriggerProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends Override<PopoverTriggerProps<E, B>, {
31
+ children?: SelectChildren;
32
+ }> {
33
+ }
34
+ export interface SelectSelectionsProps {
35
+ class?: ClassValue;
36
+ Selection?: Component | undefined;
37
+ children?: Snippet<[
38
+ {
39
+ selections: SelectSelection[];
40
+ selection?: SelectSelection | undefined;
41
+ }
42
+ ]>;
43
+ getSelections?: <T extends SelectBond>(bond: T) => SelectSelection[];
44
+ }
45
+ export interface SelectSelectionProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends HtmlAtomProps<E, B> {
46
+ selection: SelectSelection;
47
+ children?: Snippet;
48
+ onclose?: (event: Event) => void;
49
+ }
50
+ export interface SelectQueryProps extends HtmlAtomProps<'input'> {
51
+ value?: string;
52
+ children?: Snippet;
53
+ }
54
+ export interface SelectSelection {
55
+ readonly id: string;
56
+ readonly value?: string;
57
+ readonly label: string;
58
+ readonly createdAt: Date;
59
+ unselect: () => void;
60
+ controller?: SelectItemController<unknown>;
61
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -1,4 +1,4 @@
1
- import { Bond, BondState, type BondStateProps } from '../../shared/bond.svelte.js';
1
+ import { Bond, BondState, BondAtom, type BondStateProps } from '../../shared/bond.svelte';
2
2
  export type SidebarBondProps<T extends Record<string, unknown> = Record<string, unknown>> = BondStateProps & {
3
3
  open: boolean;
4
4
  disabled: boolean;
@@ -10,15 +10,17 @@ export type SidebarElements = {
10
10
  root: HTMLElement;
11
11
  content: HTMLElement;
12
12
  };
13
- export declare class SidebarBond<Props extends SidebarBondProps = SidebarBondProps, State extends SidebarBondState<Props> = SidebarBondState<Props>> extends Bond<Props, State, SidebarElements> {
14
- static CONTEXT_KEY: string;
15
- constructor(state: State);
16
- content(props?: Record<string, unknown>): {
13
+ declare class SidebarContentAtom extends BondAtom<SidebarBond, HTMLElement> {
14
+ constructor(bond: SidebarBond);
15
+ get attrs(): {
17
16
  'aria-expanded': boolean;
18
17
  'aria-disabled': boolean;
19
- 'data-atom': string;
20
- 'data-kind': string;
21
18
  };
19
+ }
20
+ export declare class SidebarBond<Props extends SidebarBondProps = SidebarBondProps, State extends SidebarBondState<Props> = SidebarBondState<Props>> extends Bond<Props, State, SidebarElements> {
21
+ static CONTEXT_KEY: string;
22
+ constructor(state: State);
23
+ content(): SidebarContentAtom;
22
24
  share(): this;
23
25
  static get(): SidebarBond | undefined;
24
26
  static set(bond: SidebarBond): SidebarBond;
@@ -29,3 +31,4 @@ export declare class SidebarBondState<Props extends SidebarBondProps = SidebarBo
29
31
  close(): void;
30
32
  toggle(): void;
31
33
  }
34
+ export {};
@@ -1,22 +1,27 @@
1
- import { createAttachmentKey } from 'svelte/attachments';
2
- import { getContext, setContext } from 'svelte';
3
- import { Bond, BondState } from '../../shared/bond.svelte.js';
1
+ import { getContext, setContext, untrack } from 'svelte';
2
+ import { Bond, BondState, BondAtom } from '../../shared/bond.svelte';
3
+ class SidebarContentAtom extends BondAtom {
4
+ constructor(bond) {
5
+ super(bond, 'content');
6
+ }
7
+ get attrs() {
8
+ const props = untrack(() => this.bond.state.props);
9
+ const isOpen = props?.open ?? false;
10
+ const isDisabled = props?.disabled ?? false;
11
+ return {
12
+ ...super.attrs,
13
+ 'aria-expanded': isOpen,
14
+ 'aria-disabled': isDisabled
15
+ };
16
+ }
17
+ }
4
18
  export class SidebarBond extends Bond {
5
19
  static CONTEXT_KEY = '@atomic-sv/bonds/sidebar';
6
20
  constructor(state) {
7
- super(state);
21
+ super(state, 'sidebar');
8
22
  }
9
- content(props = {}) {
10
- return {
11
- 'aria-expanded': this.state?.props?.open ?? false,
12
- 'aria-disabled': this.state?.props?.disabled ?? false,
13
- 'data-atom': this.id,
14
- 'data-kind': 'sidebar-content',
15
- ...props,
16
- [createAttachmentKey()]: (node) => {
17
- this.elements.content = node;
18
- }
19
- };
23
+ content() {
24
+ return this.atom('content', () => new SidebarContentAtom(this));
20
25
  }
21
26
  share() {
22
27
  return SidebarBond.set(this);
@@ -19,7 +19,7 @@
19
19
  }: SidebarRootProps<E, B> = $props();
20
20
 
21
21
  const contentProps = $derived({
22
- ...bond?.content(),
22
+ ...bond?.content().spread,
23
23
  ...restProps
24
24
  });
25
25
  </script>
@@ -1,41 +1,50 @@
1
- <script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
2
- import { defineProperty, defineState } from '../../utils';
3
- import { type Base } from '../atom';
4
- import { SidebarBond, SidebarBondState, type SidebarBondProps } from './bond.svelte';
5
- import type { SidebarRootProps } from './types';
6
-
7
- let {
8
- open = $bindable(false),
9
- disabled = false,
10
- factory = _factory,
11
- children = undefined,
12
- ...restProps
13
- }: SidebarRootProps<E, B> = $props();
14
-
15
- const bondProps = defineState<SidebarBondProps>([
16
- defineProperty(
17
- 'open',
18
- () => open,
19
- (v) => {
20
- open = v;
21
- }
22
- ),
23
- defineProperty('disabled', () => disabled),
24
- defineProperty('rest', () => restProps)
25
- ]);
26
-
27
- const bond = factory(bondProps).share();
28
-
29
- function _factory(props: typeof bondProps) {
30
- const bondState = new SidebarBondState(() => props);
31
- const bond = new SidebarBond(bondState);
32
-
33
- return bond;
34
- }
35
-
36
- export function getBond() {
37
- return bond;
38
- }
39
- </script>
40
-
41
- {@render children?.({ sidebar: bond })}
1
+ <script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
2
+ import { defineProperty, defineState } from '../../utils';
3
+ import { type Base } from '../atom';
4
+ import { SidebarBond, SidebarBondState, type SidebarBondProps } from './bond.svelte';
5
+ import type { SidebarRootProps } from './types';
6
+ import { ZLayer } from '../portal/zlayer.svelte';
7
+ import { untrack } from 'svelte';
8
+
9
+ let {
10
+ open = $bindable(false),
11
+ disabled = false,
12
+ "z-index": zindex = 0,
13
+ factory = _factory,
14
+ children = undefined,
15
+ ...restProps
16
+ }: SidebarRootProps<E, B> = $props();
17
+
18
+ const normalizedZIndex = $derived(
19
+ typeof zindex === 'number' && Number.isFinite(zindex) ? zindex : undefined
20
+ );
21
+
22
+ new ZLayer('sidebar', () => normalizedZIndex ?? 0).share();
23
+
24
+ const bondProps = defineState<SidebarBondProps>([
25
+ defineProperty(
26
+ 'open',
27
+ () => open,
28
+ (v) => {
29
+ open = v;
30
+ }
31
+ ),
32
+ defineProperty('disabled', () => disabled),
33
+ defineProperty('rest', () => restProps)
34
+ ]);
35
+
36
+ const bond = untrack(() => factory(bondProps)).share();
37
+
38
+ function _factory(props: typeof bondProps) {
39
+ const bondState = new SidebarBondState(() => props);
40
+ const bond = new SidebarBond(bondState);
41
+
42
+ return bond;
43
+ }
44
+
45
+ export function getBond() {
46
+ return bond;
47
+ }
48
+ </script>
49
+
50
+ {@render children?.({ sidebar: bond })}
@@ -1,21 +1,16 @@
1
- import type { Factory } from '../../types';
1
+ import type { Snippet } from 'svelte';
2
2
  import type { SidebarBond } from './bond.svelte';
3
- import type { Base, HtmlAtomProps } from '../atom';
4
- /**
5
- * Extend this interface to add custom slideover root properties in your application.
6
- */
7
- export interface SidebarRootExtendProps {
3
+ import type { Base, HtmlAtomProps, SnippetProps } from '../atom';
4
+ export interface SidebarSnippetProps extends SnippetProps {
5
+ sidebar: SidebarBond;
8
6
  }
9
- /**
10
- * Extend this interface to add custom slideover content properties in your application.
11
- */
12
- export interface SidebarContentExtendProps {
13
- }
14
- export interface SidebarRootProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends HtmlAtomProps<E, B>, SidebarRootExtendProps {
7
+ export type SidebarChildren = Snippet<[SidebarSnippetProps]>;
8
+ export type SidebarRootProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> = HtmlAtomProps<E, B, SidebarChildren> & {
9
+ "z-index"?: number;
15
10
  open?: boolean;
16
11
  disabled?: boolean;
17
12
  width?: string | number;
18
- factory?: Factory<SidebarBond>;
19
- }
20
- export interface SidebarContentProps<E extends keyof HTMLElementTagNameMap, B extends Base = Base> extends HtmlAtomProps<E, B>, SidebarContentExtendProps {
13
+ factory?: (props: any) => SidebarBond;
14
+ };
15
+ export interface SidebarContentProps<E extends keyof HTMLElementTagNameMap, B extends Base = Base> extends HtmlAtomProps<E, B, SidebarChildren> {
21
16
  }
@@ -0,0 +1,2 @@
1
+ export { default as Slider } from './slider.svelte';
2
+ export * from './types';
@@ -0,0 +1,2 @@
1
+ export { default as Slider } from './slider.svelte';
2
+ export * from './types';
@@ -0,0 +1,164 @@
1
+ <script lang="ts">
2
+ import type { HTMLAttributes } from 'svelte/elements';
3
+ import { HtmlAtom } from '../atom';
4
+ import type { SliderChangeDetails, SliderProps } from './types';
5
+
6
+ let {
7
+ class: klass = '',
8
+ value = $bindable(0),
9
+ min = 0,
10
+ max = 100,
11
+ step = 1,
12
+ disabled = false,
13
+ id,
14
+ name,
15
+ orientation = 'horizontal',
16
+ preset = 'slider',
17
+ thumbContent = undefined,
18
+ trackContent = undefined,
19
+ onchange = undefined,
20
+ oninput = undefined,
21
+ children = undefined,
22
+ ...restProps
23
+ }: SliderProps & HTMLAttributes<HTMLDivElement> = $props();
24
+
25
+ function clampNumber(current: number, lower: number, upper: number) {
26
+ if (!Number.isFinite(current)) return lower;
27
+ return Math.min(upper, Math.max(lower, current));
28
+ }
29
+
30
+ const normalizedMin = $derived(Math.min(min, max));
31
+ const normalizedMax = $derived(Math.max(min, max));
32
+ const normalizedStep = $derived(step > 0 ? step : 1);
33
+
34
+ const normalizedValue = $derived(clampNumber(value, normalizedMin, normalizedMax));
35
+ const isVertical = $derived(orientation === 'vertical');
36
+ const percent = $derived.by(() => {
37
+ const range = normalizedMax - normalizedMin;
38
+ if (range <= 0) return 0;
39
+ return ((normalizedValue - normalizedMin) / range) * 100;
40
+ });
41
+
42
+ $effect(() => {
43
+ const nextValue = clampNumber(value, normalizedMin, normalizedMax);
44
+ if (nextValue !== value) {
45
+ value = nextValue;
46
+ }
47
+ });
48
+
49
+ function createDetails(currentValue: number): SliderChangeDetails {
50
+ const range = normalizedMax - normalizedMin;
51
+ const currentPercent = range <= 0 ? 0 : ((currentValue - normalizedMin) / range) * 100;
52
+
53
+ return {
54
+ value: currentValue,
55
+ percent: currentPercent,
56
+ min: normalizedMin,
57
+ max: normalizedMax,
58
+ step: normalizedStep,
59
+ type: 'number'
60
+ };
61
+ }
62
+
63
+ function handleInput(ev: Event) {
64
+ const input = ev.currentTarget as HTMLInputElement;
65
+ const nextValue = clampNumber(Number(input.value), normalizedMin, normalizedMax);
66
+ value = nextValue;
67
+ oninput?.(ev, createDetails(nextValue));
68
+ }
69
+
70
+ function handleChange(ev: Event) {
71
+ const input = ev.currentTarget as HTMLInputElement;
72
+ const nextValue = clampNumber(Number(input.value), normalizedMin, normalizedMax);
73
+ value = nextValue;
74
+ onchange?.(ev, createDetails(nextValue));
75
+ }
76
+ </script>
77
+
78
+ {#snippet defaultTrack()}
79
+ <HtmlAtom
80
+ preset="slider.track"
81
+ as="div"
82
+ class={[
83
+ 'slider-track bg-input border-border relative overflow-hidden rounded-full',
84
+ isVertical ? 'h-full w-2' : 'h-2 w-full',
85
+ '$preset'
86
+ ]}
87
+ >
88
+ <HtmlAtom
89
+ preset="slider.fill"
90
+ as="div"
91
+ class={[
92
+ 'slider-fill bg-foreground absolute rounded-full',
93
+ isVertical ? 'bottom-0 left-0 w-full' : 'left-0 top-0 h-full',
94
+ '$preset'
95
+ ]}
96
+ style={isVertical ? `height: ${percent}%` : `width: ${percent}%`}
97
+ />
98
+ </HtmlAtom>
99
+ {/snippet}
100
+
101
+ {#snippet defaultThumb()}
102
+ <div class="bg-foreground border-border h-full w-full rounded-full shadow-sm shadow-black/50"></div>
103
+ {/snippet}
104
+
105
+ {#snippet thumbWrapper()}
106
+ <HtmlAtom
107
+ preset="slider.thumb"
108
+ as="div"
109
+ class={[
110
+ 'slider-thumb pointer-events-none absolute h-5 w-5',
111
+ isVertical
112
+ ? 'left-1/2 -translate-x-1/2 translate-y-1/2'
113
+ : 'top-1/2 -translate-x-1/2 -translate-y-1/2',
114
+ '$preset'
115
+ ]}
116
+ style={isVertical ? `bottom: ${percent}%` : `left: ${percent}%`}
117
+ >
118
+ {@render (thumbContent ?? defaultThumb)({ value: normalizedValue, percent })}
119
+ </HtmlAtom>
120
+ {/snippet}
121
+
122
+ <HtmlAtom
123
+ {preset}
124
+ as="div"
125
+ class={[
126
+ 'slider-root relative flex items-center',
127
+ isVertical ? 'h-full w-6 flex-col' : 'h-6 w-full flex-row',
128
+ disabled && 'cursor-not-allowed opacity-50',
129
+ '$preset',
130
+ klass
131
+ ]}
132
+ aria-orientation={orientation}
133
+ {...restProps}
134
+ >
135
+ {@render (trackContent ?? defaultTrack)({ value: normalizedValue, percent, min: normalizedMin, max: normalizedMax })}
136
+
137
+ <!-- Native range input — invisible, full coverage, handles all a11y + keyboard -->
138
+ <input
139
+ {id}
140
+ {name}
141
+ min={normalizedMin}
142
+ max={normalizedMax}
143
+ step={normalizedStep}
144
+ {disabled}
145
+ type="range"
146
+ value={normalizedValue}
147
+ oninput={handleInput}
148
+ onchange={handleChange}
149
+ class={[
150
+ 'slider-input absolute inset-0 h-full w-full cursor-pointer opacity-0',
151
+ disabled && 'cursor-not-allowed'
152
+ ]}
153
+ style={isVertical ? 'writing-mode: vertical-lr; direction: rtl; touch-action: none;' : undefined}
154
+ aria-valuemin={normalizedMin}
155
+ aria-valuemax={normalizedMax}
156
+ aria-valuenow={normalizedValue}
157
+ aria-orientation={orientation}
158
+ aria-disabled={disabled || undefined}
159
+ />
160
+
161
+ {@render thumbWrapper()}
162
+ </HtmlAtom>
163
+
164
+ {@render children?.()}
@@ -0,0 +1,6 @@
1
+ import type { HTMLAttributes } from 'svelte/elements';
2
+ import type { SliderProps } from './types';
3
+ type $$ComponentProps = SliderProps & HTMLAttributes<HTMLDivElement>;
4
+ declare const Slider: import("svelte").Component<$$ComponentProps, {}, "value">;
5
+ type Slider = ReturnType<typeof Slider>;
6
+ export default Slider;
@@ -0,0 +1,78 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { HtmlAtomProps } from '../atom';
3
+ export interface SliderChangeDetails {
4
+ value: number;
5
+ percent: number;
6
+ min: number;
7
+ max: number;
8
+ step: number;
9
+ type: 'number';
10
+ }
11
+ export interface SliderProps extends HtmlAtomProps<'div'> {
12
+ /**
13
+ * Current value
14
+ */
15
+ value?: number;
16
+ /**
17
+ * Minimum value
18
+ * @default 0
19
+ */
20
+ min?: number;
21
+ /**
22
+ * Maximum value
23
+ * @default 100
24
+ */
25
+ max?: number;
26
+ /**
27
+ * Step increment
28
+ * @default 1
29
+ */
30
+ step?: number;
31
+ /**
32
+ * Whether the slider is disabled
33
+ */
34
+ disabled?: boolean;
35
+ /**
36
+ * The id forwarded to the hidden input
37
+ */
38
+ id?: string;
39
+ /**
40
+ * The name forwarded to the hidden input
41
+ */
42
+ name?: string;
43
+ /**
44
+ * Orientation of the slider
45
+ * @default 'horizontal'
46
+ */
47
+ orientation?: 'horizontal' | 'vertical';
48
+ /**
49
+ * Custom thumb — replaces the default circular thumb.
50
+ * Receives `{ value, percent }` and is rendered inside the positioned thumb wrapper.
51
+ */
52
+ thumbContent?: Snippet<[{
53
+ value: number;
54
+ percent: number;
55
+ }]>;
56
+ /**
57
+ * Custom track — replaces the default track + fill bar.
58
+ * Receives `{ value, percent, min, max }`.
59
+ */
60
+ trackContent?: Snippet<[{
61
+ value: number;
62
+ percent: number;
63
+ min: number;
64
+ max: number;
65
+ }]>;
66
+ /**
67
+ * Child content (e.g. label rendered after the slider root)
68
+ */
69
+ children?: Snippet<[]>;
70
+ /**
71
+ * Change handler (fires on release)
72
+ */
73
+ onchange?: (ev?: Event, options?: SliderChangeDetails) => void;
74
+ /**
75
+ * Input handler (fires continuously while dragging)
76
+ */
77
+ oninput?: (ev?: Event, options?: SliderChangeDetails) => void;
78
+ }
@@ -0,0 +1 @@
1
+ export {};