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

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 (282) hide show
  1. package/dist/components/accordion/accordion-root.svelte +61 -79
  2. package/dist/components/accordion/accordion-root.svelte.d.ts +2 -15
  3. package/dist/components/accordion/index.d.ts +2 -1
  4. package/dist/components/accordion/index.js +2 -1
  5. package/dist/components/accordion/item/accordion-item-body.svelte +42 -52
  6. package/dist/components/accordion/item/accordion-item-body.svelte.d.ts +2 -8
  7. package/dist/components/accordion/item/accordion-item-header.svelte +50 -60
  8. package/dist/components/accordion/item/accordion-item-header.svelte.d.ts +3 -20
  9. package/dist/components/accordion/item/accordion-item-indicator.svelte +50 -59
  10. package/dist/components/accordion/item/accordion-item-indicator.svelte.d.ts +2 -8
  11. package/dist/components/accordion/item/accordion-item-root.svelte +65 -79
  12. package/dist/components/accordion/item/accordion-item-root.svelte.d.ts +2 -12
  13. package/dist/components/accordion/item/index.d.ts +1 -0
  14. package/dist/components/accordion/item/types.d.ts +52 -0
  15. package/dist/components/accordion/item/types.js +1 -0
  16. package/dist/components/accordion/types.d.ts +21 -0
  17. package/dist/components/accordion/types.js +1 -0
  18. package/dist/components/alert/alert-actions.svelte +42 -52
  19. package/dist/components/alert/alert-actions.svelte.d.ts +3 -30
  20. package/dist/components/alert/alert-close-button.svelte +72 -79
  21. package/dist/components/alert/alert-close-button.svelte.d.ts +8 -35
  22. package/dist/components/alert/alert-content.svelte +42 -52
  23. package/dist/components/alert/alert-content.svelte.d.ts +3 -30
  24. package/dist/components/alert/alert-description.svelte +41 -51
  25. package/dist/components/alert/alert-description.svelte.d.ts +7 -10
  26. package/dist/components/alert/alert-icon.svelte +46 -56
  27. package/dist/components/alert/alert-icon.svelte.d.ts +2 -8
  28. package/dist/components/alert/alert-root.svelte +102 -118
  29. package/dist/components/alert/alert-root.svelte.d.ts +2 -13
  30. package/dist/components/alert/alert-title.svelte +41 -51
  31. package/dist/components/alert/alert-title.svelte.d.ts +2 -8
  32. package/dist/components/alert/index.d.ts +1 -0
  33. package/dist/components/alert/index.js +1 -0
  34. package/dist/components/alert/types.d.ts +85 -0
  35. package/dist/components/alert/types.js +1 -0
  36. package/dist/components/atom/html-atom.svelte.d.ts +2 -22
  37. package/dist/components/atom/types.d.ts +7 -2
  38. package/dist/components/avatar/types.d.ts +7 -2
  39. package/dist/components/badge/types.d.ts +7 -2
  40. package/dist/components/button/index.d.ts +1 -0
  41. package/dist/components/button/index.js +1 -0
  42. package/dist/components/button/types.d.ts +7 -2
  43. package/dist/components/card/card-body.svelte +39 -45
  44. package/dist/components/card/card-body.svelte.d.ts +7 -4
  45. package/dist/components/card/card-description.svelte +41 -48
  46. package/dist/components/card/card-description.svelte.d.ts +7 -7
  47. package/dist/components/card/card-footer.svelte +41 -48
  48. package/dist/components/card/card-footer.svelte.d.ts +7 -4
  49. package/dist/components/card/card-header.svelte +41 -48
  50. package/dist/components/card/card-header.svelte.d.ts +7 -4
  51. package/dist/components/card/card-media.svelte +41 -48
  52. package/dist/components/card/card-media.svelte.d.ts +7 -4
  53. package/dist/components/card/card-root.svelte +91 -91
  54. package/dist/components/card/card-root.svelte.d.ts +1 -1
  55. package/dist/components/card/card-subtitle.svelte +41 -48
  56. package/dist/components/card/card-subtitle.svelte.d.ts +12 -9
  57. package/dist/components/card/card-title.svelte +45 -52
  58. package/dist/components/card/card-title.svelte.d.ts +12 -9
  59. package/dist/components/card/index.d.ts +1 -0
  60. package/dist/components/card/index.js +1 -0
  61. package/dist/components/card/types.d.ts +57 -2
  62. package/dist/components/checkbox/types.d.ts +7 -2
  63. package/dist/components/collapsible/collapsible-body.svelte +39 -52
  64. package/dist/components/collapsible/collapsible-body.svelte.d.ts +2 -9
  65. package/dist/components/collapsible/collapsible-header.svelte +39 -52
  66. package/dist/components/collapsible/collapsible-header.svelte.d.ts +2 -9
  67. package/dist/components/collapsible/collapsible-indicator.svelte +50 -65
  68. package/dist/components/collapsible/collapsible-indicator.svelte.d.ts +3 -10
  69. package/dist/components/collapsible/collapsible-root.svelte +66 -85
  70. package/dist/components/collapsible/collapsible-root.svelte.d.ts +2 -14
  71. package/dist/components/collapsible/index.d.ts +1 -0
  72. package/dist/components/collapsible/index.js +1 -0
  73. package/dist/components/collapsible/types.d.ts +54 -0
  74. package/dist/components/collapsible/types.js +1 -0
  75. package/dist/components/combobox/combobox-root.svelte +65 -68
  76. package/dist/components/combobox/combobox-root.svelte.d.ts +5 -18
  77. package/dist/components/combobox/index.d.ts +1 -0
  78. package/dist/components/combobox/index.js +1 -0
  79. package/dist/components/combobox/types.d.ts +25 -0
  80. package/dist/components/combobox/types.js +1 -0
  81. package/dist/components/container/types.d.ts +7 -2
  82. package/dist/components/contextmenu/types.d.ts +8 -0
  83. package/dist/components/contextmenu/types.js +1 -0
  84. package/dist/components/datagrid/datagrid-body.svelte +37 -44
  85. package/dist/components/datagrid/datagrid-body.svelte.d.ts +17 -20
  86. package/dist/components/datagrid/datagrid-checkbox.svelte +101 -108
  87. package/dist/components/datagrid/datagrid-checkbox.svelte.d.ts +4 -6
  88. package/dist/components/datagrid/datagrid-footer.svelte +34 -34
  89. package/dist/components/datagrid/datagrid-footer.svelte.d.ts +1 -1
  90. package/dist/components/datagrid/datagrid-header.svelte +49 -49
  91. package/dist/components/datagrid/datagrid-header.svelte.d.ts +1 -1
  92. package/dist/components/datagrid/datagrid-root.svelte +59 -59
  93. package/dist/components/datagrid/datagrid-root.svelte.d.ts +1 -1
  94. package/dist/components/datagrid/td/datagrid-td.svelte +66 -80
  95. package/dist/components/datagrid/td/datagrid-td.svelte.d.ts +7 -16
  96. package/dist/components/datagrid/th/datagrid-th.svelte +106 -127
  97. package/dist/components/datagrid/th/datagrid-th.svelte.d.ts +2 -20
  98. package/dist/components/datagrid/tr/bond.svelte.d.ts +3 -1
  99. package/dist/components/datagrid/tr/bond.svelte.js +4 -2
  100. package/dist/components/datagrid/tr/datagrid-tr.svelte +88 -103
  101. package/dist/components/datagrid/tr/datagrid-tr.svelte.d.ts +2 -18
  102. package/dist/components/datagrid/types.d.ts +85 -37
  103. package/dist/components/dialog/dialog-body.svelte +39 -45
  104. package/dist/components/dialog/dialog-body.svelte.d.ts +2 -2
  105. package/dist/components/dialog/dialog-close-button.svelte +58 -61
  106. package/dist/components/dialog/dialog-close-button.svelte.d.ts +7 -7
  107. package/dist/components/dialog/dialog-content.svelte +62 -68
  108. package/dist/components/dialog/dialog-content.svelte.d.ts +2 -2
  109. package/dist/components/dialog/dialog-description.svelte +40 -46
  110. package/dist/components/dialog/dialog-description.svelte.d.ts +2 -2
  111. package/dist/components/dialog/dialog-footer.svelte +39 -45
  112. package/dist/components/dialog/dialog-footer.svelte.d.ts +2 -2
  113. package/dist/components/dialog/dialog-header.svelte +39 -45
  114. package/dist/components/dialog/dialog-header.svelte.d.ts +2 -2
  115. package/dist/components/dialog/dialog-root.svelte +3 -16
  116. package/dist/components/dialog/dialog-root.svelte.d.ts +2 -12
  117. package/dist/components/dialog/dialog-title.svelte +41 -47
  118. package/dist/components/dialog/dialog-title.svelte.d.ts +7 -7
  119. package/dist/components/dialog/index.d.ts +1 -0
  120. package/dist/components/dialog/index.js +1 -0
  121. package/dist/components/dialog/types.d.ts +67 -0
  122. package/dist/components/dialog/types.js +1 -0
  123. package/dist/components/divider/types.d.ts +10 -0
  124. package/dist/components/divider/types.js +1 -0
  125. package/dist/components/drawer/drawer-backdrop.svelte +38 -47
  126. package/dist/components/drawer/drawer-backdrop.svelte.d.ts +3 -26
  127. package/dist/components/drawer/drawer-body.svelte +42 -56
  128. package/dist/components/drawer/drawer-body.svelte.d.ts +3 -16
  129. package/dist/components/drawer/drawer-content.svelte +42 -55
  130. package/dist/components/drawer/drawer-content.svelte.d.ts +3 -14
  131. package/dist/components/drawer/drawer-description.svelte +44 -57
  132. package/dist/components/drawer/drawer-description.svelte.d.ts +3 -14
  133. package/dist/components/drawer/drawer-footer.svelte +41 -54
  134. package/dist/components/drawer/drawer-footer.svelte.d.ts +3 -14
  135. package/dist/components/drawer/drawer-header.svelte +43 -56
  136. package/dist/components/drawer/drawer-header.svelte.d.ts +3 -14
  137. package/dist/components/drawer/drawer-root.svelte +3 -28
  138. package/dist/components/drawer/drawer-root.svelte.d.ts +3 -34
  139. package/dist/components/drawer/drawer-title.svelte +44 -57
  140. package/dist/components/drawer/drawer-title.svelte.d.ts +3 -14
  141. package/dist/components/drawer/index.d.ts +1 -0
  142. package/dist/components/drawer/index.js +1 -0
  143. package/dist/components/drawer/types.d.ts +86 -0
  144. package/dist/components/drawer/types.js +1 -0
  145. package/dist/components/dropdown/dropdown-query.svelte +54 -53
  146. package/dist/components/dropdown/dropdown-query.svelte.d.ts +11 -10
  147. package/dist/components/dropdown/dropdown-root.svelte +59 -59
  148. package/dist/components/dropdown/dropdown-trigger.svelte +41 -52
  149. package/dist/components/dropdown/dropdown-trigger.svelte.d.ts +1 -8
  150. package/dist/components/dropdown/dropdown-value.svelte +60 -60
  151. package/dist/components/dropdown/index.d.ts +1 -0
  152. package/dist/components/dropdown/index.js +1 -0
  153. package/dist/components/dropdown/types.d.ts +37 -0
  154. package/dist/components/dropdown/types.js +1 -0
  155. package/dist/components/element/html-element.svelte.d.ts +2 -14
  156. package/dist/components/element/svg-element.svelte.d.ts +2 -14
  157. package/dist/components/element/types.d.ts +14 -7
  158. package/dist/components/form/field/field-control.svelte +48 -65
  159. package/dist/components/form/field/field-control.svelte.d.ts +5 -19
  160. package/dist/components/form/field/field-label.svelte +24 -31
  161. package/dist/components/form/field/field-label.svelte.d.ts +1 -2
  162. package/dist/components/form/field/field-root.svelte +59 -88
  163. package/dist/components/form/field/field-root.svelte.d.ts +5 -20
  164. package/dist/components/form/index.d.ts +1 -0
  165. package/dist/components/form/index.js +1 -0
  166. package/dist/components/form/types.d.ts +76 -0
  167. package/dist/components/form/types.js +1 -0
  168. package/dist/components/icon/icon.svelte +44 -55
  169. package/dist/components/icon/icon.svelte.d.ts +4 -29
  170. package/dist/components/icon/types.d.ts +11 -7
  171. package/dist/components/input/index.d.ts +1 -0
  172. package/dist/components/input/index.js +1 -0
  173. package/dist/components/input/input-control.svelte +103 -107
  174. package/dist/components/input/input-control.svelte.d.ts +2 -3
  175. package/dist/components/input/input-icon.svelte.d.ts +1 -1
  176. package/dist/components/input/input-placeholder.svelte.d.ts +2 -19
  177. package/dist/components/input/types.d.ts +18 -7
  178. package/dist/components/label/index.d.ts +1 -0
  179. package/dist/components/label/index.js +1 -0
  180. package/dist/components/label/label.svelte +25 -41
  181. package/dist/components/label/label.svelte.d.ts +3 -27
  182. package/dist/components/label/types.d.ts +11 -0
  183. package/dist/components/label/types.js +1 -0
  184. package/dist/components/layer/layer-inner.svelte.d.ts +2 -19
  185. package/dist/components/layer/layer-root.svelte.d.ts +2 -19
  186. package/dist/components/layer/types.d.ts +11 -0
  187. package/dist/components/layer/types.js +1 -0
  188. package/dist/components/link/types.d.ts +8 -0
  189. package/dist/components/link/types.js +1 -0
  190. package/dist/components/list/types.d.ts +8 -0
  191. package/dist/components/list/types.js +1 -0
  192. package/dist/components/menu/index.d.ts +1 -0
  193. package/dist/components/menu/index.js +1 -0
  194. package/dist/components/menu/types.d.ts +15 -0
  195. package/dist/components/menu/types.js +1 -0
  196. package/dist/components/popover/index.d.ts +1 -0
  197. package/dist/components/popover/index.js +1 -0
  198. package/dist/components/popover/popover-arrow.svelte +1 -1
  199. package/dist/components/popover/popover-arrow.svelte.d.ts +2 -18
  200. package/dist/components/popover/popover-content.svelte +1 -1
  201. package/dist/components/popover/popover-root.svelte +49 -49
  202. package/dist/components/popover/popover-trigger.svelte +47 -47
  203. package/dist/components/popover/types.d.ts +32 -10
  204. package/dist/components/portal/active-portal.svelte +22 -22
  205. package/dist/components/portal/index.d.ts +1 -0
  206. package/dist/components/portal/index.js +1 -0
  207. package/dist/components/portal/portal-inner.svelte.d.ts +2 -19
  208. package/dist/components/portal/portal-root.svelte +83 -88
  209. package/dist/components/portal/portal-root.svelte.d.ts +2 -22
  210. package/dist/components/portal/teleport.svelte +4 -9
  211. package/dist/components/portal/teleport.svelte.d.ts +3 -22
  212. package/dist/components/portal/types.d.ts +39 -0
  213. package/dist/components/portal/types.js +1 -0
  214. package/dist/components/radio/radio.svelte +109 -109
  215. package/dist/components/radio/radio.svelte.d.ts +14 -36
  216. package/dist/components/root/root.svelte +121 -121
  217. package/dist/components/root/types.d.ts +8 -0
  218. package/dist/components/root/types.js +1 -0
  219. package/dist/components/scrollable/index.d.ts +1 -0
  220. package/dist/components/scrollable/index.js +1 -0
  221. package/dist/components/scrollable/scrollable-container.svelte +82 -89
  222. package/dist/components/scrollable/scrollable-container.svelte.d.ts +2 -6
  223. package/dist/components/scrollable/scrollable-content.svelte +41 -51
  224. package/dist/components/scrollable/scrollable-content.svelte.d.ts +1 -6
  225. package/dist/components/scrollable/scrollable-root.svelte +100 -120
  226. package/dist/components/scrollable/scrollable-root.svelte.d.ts +3 -19
  227. package/dist/components/scrollable/scrollable-thumb.svelte +75 -86
  228. package/dist/components/scrollable/scrollable-thumb.svelte.d.ts +1 -7
  229. package/dist/components/scrollable/scrollable-track.svelte +59 -70
  230. package/dist/components/scrollable/scrollable-track.svelte.d.ts +1 -7
  231. package/dist/components/scrollable/types.d.ts +62 -0
  232. package/dist/components/scrollable/types.js +1 -0
  233. package/dist/components/sidebar/index.d.ts +1 -0
  234. package/dist/components/sidebar/index.js +1 -0
  235. package/dist/components/sidebar/types.d.ts +16 -5
  236. package/dist/components/stack/stack-root.svelte.d.ts +2 -19
  237. package/dist/components/stack/types.d.ts +12 -0
  238. package/dist/components/stack/types.js +1 -0
  239. package/dist/components/tabs/index.d.ts +1 -0
  240. package/dist/components/tabs/index.js +1 -0
  241. package/dist/components/tabs/tab/tab-body.svelte +52 -61
  242. package/dist/components/tabs/tab/tab-body.svelte.d.ts +2 -8
  243. package/dist/components/tabs/tab/tab-description.svelte +41 -50
  244. package/dist/components/tabs/tab/tab-description.svelte.d.ts +2 -8
  245. package/dist/components/tabs/tab/tab-header.svelte +71 -81
  246. package/dist/components/tabs/tab/tab-header.svelte.d.ts +2 -11
  247. package/dist/components/tabs/tab/tab-root.svelte +86 -86
  248. package/dist/components/tabs/types.d.ts +55 -0
  249. package/dist/components/tabs/types.js +1 -0
  250. package/dist/components/textarea/index.d.ts +1 -0
  251. package/dist/components/textarea/index.js +1 -0
  252. package/dist/components/textarea/types.d.ts +28 -0
  253. package/dist/components/textarea/types.js +1 -0
  254. package/dist/components/toast/index.d.ts +1 -0
  255. package/dist/components/toast/index.js +1 -0
  256. package/dist/components/toast/toast-description.svelte +38 -44
  257. package/dist/components/toast/toast-description.svelte.d.ts +8 -34
  258. package/dist/components/toast/toast-root.svelte +61 -74
  259. package/dist/components/toast/toast-root.svelte.d.ts +4 -43
  260. package/dist/components/toast/toast-title.svelte +35 -43
  261. package/dist/components/toast/toast-title.svelte.d.ts +2 -34
  262. package/dist/components/toast/types.d.ts +40 -0
  263. package/dist/components/toast/types.js +1 -0
  264. package/dist/components/tooltip/types.d.ts +13 -0
  265. package/dist/components/tooltip/types.js +1 -0
  266. package/dist/components/tree/index.d.ts +1 -0
  267. package/dist/components/tree/index.js +1 -0
  268. package/dist/components/tree/tree-body.svelte +39 -50
  269. package/dist/components/tree/tree-body.svelte.d.ts +2 -10
  270. package/dist/components/tree/tree-header.svelte +54 -66
  271. package/dist/components/tree/tree-header.svelte.d.ts +3 -29
  272. package/dist/components/tree/tree-indicator.svelte +40 -50
  273. package/dist/components/tree/tree-indicator.svelte.d.ts +3 -9
  274. package/dist/components/tree/tree-root.svelte +65 -80
  275. package/dist/components/tree/tree-root.svelte.d.ts +2 -12
  276. package/dist/components/tree/types.d.ts +59 -0
  277. package/dist/components/tree/types.js +1 -0
  278. package/dist/components/virtual/types.d.ts +23 -0
  279. package/dist/components/virtual/types.js +1 -0
  280. package/dist/components/virtual/virtual-root.svelte +239 -258
  281. package/dist/components/virtual/virtual-root.svelte.d.ts +1 -18
  282. package/package.json +1 -1
@@ -1,2 +1,3 @@
1
1
  export * as Input from './atoms';
2
2
  export * from './bond.svelte';
3
+ export * from './types';
@@ -1,2 +1,3 @@
1
1
  export * as Input from './atoms';
2
2
  export * from './bond.svelte';
3
+ export * from './types';
@@ -1,107 +1,103 @@
1
- <script module lang="ts">
2
- export type InputPortals = 'input.l0' | 'input.l1' | 'input.l2' | 'input.l3';
3
- </script>
4
-
5
- <script lang="ts" generics="B extends Base = Base">
6
- import { on } from '../../attachments/event.svelte';
7
- import { getPreset } from '../../context';
8
- import { cn, toClassValue } from '../../utils';
9
- import type { PresetModuleName } from '../../context/preset.svelte';
10
- import type { Base } from '../atom';
11
- import { InputBond } from './bond.svelte';
12
- import type { InputControlProps } from './types';
13
-
14
- const bond = InputBond.get();
15
-
16
- let {
17
- value = $bindable(),
18
- files = $bindable(),
19
- date = $bindable(),
20
- number = $bindable(),
21
- checked = $bindable(),
22
- class: klass = '',
23
- type = 'text',
24
- preset: presetKey = 'input.control',
25
- onchange = undefined,
26
- oninput = undefined,
27
- ...restProps
28
- }: InputControlProps<B> = $props();
29
-
30
- const preset = getPreset(presetKey as PresetModuleName)?.apply(bond, [bond]);
31
-
32
- const valueProps = $derived({
33
- ...(bond?.input?.() ?? {}),
34
- ...restProps
35
- });
36
-
37
- function handleChange(ev: CustomEvent) {
38
- if (!onchange) return;
39
-
40
- onchange?.(ev, {
41
- value: value,
42
- files: files,
43
- date: date,
44
- number: number,
45
- checked: checked,
46
- event: ev
47
- });
48
- }
49
-
50
- function handleInput(ev: InputEvent) {
51
- if (!oninput) return;
52
-
53
- const currentTarget = ev.currentTarget as HTMLInputElement;
54
-
55
- if (type === 'number') {
56
- number = currentTarget.valueAsNumber;
57
- }
58
-
59
- if (type === 'date' || type == 'time' || type === 'datetime-local' || type === 'date-local') {
60
- date = currentTarget.valueAsDate;
61
- }
62
-
63
- oninput?.(ev, {
64
- value: value,
65
- files: files,
66
- date: date,
67
- number: number,
68
- checked: checked,
69
- event: ev
70
- });
71
- }
72
-
73
- function toFileList(files: File[]) {
74
- const dataTransfer = new DataTransfer();
75
- files.forEach((file) => dataTransfer.items.add(file));
76
- return dataTransfer.files;
77
- }
78
- </script>
79
-
80
- <input
81
- bind:value={
82
- () => value,
83
- (v) => {
84
- value = v;
85
- if (bond) {
86
- bond.state.props.value = v;
87
- }
88
- }
89
- }
90
- class={cn(
91
- 'text-foreground placeholder:text-muted-foreground h-full w-full flex-1 bg-transparent px-2 leading-1 outline-none',
92
- preset?.class,
93
- toClassValue(klass, bond)
94
- )}
95
- type={type ?? 'text'}
96
- onchange={handleChange}
97
- oninput={handleInput}
98
- {...valueProps}
99
- {@attach (node) => {
100
- if (type === 'file') {
101
- return on('input', () => {
102
- files = Array.from(node.files || []);
103
- bond!.state.props.files = files;
104
- })(node);
105
- }
106
- }}
107
- />
1
+ <script lang="ts" generics="B extends Base = Base">
2
+ import { on } from '../../attachments/event.svelte';
3
+ import { getPreset } from '../../context';
4
+ import { cn, toClassValue } from '../../utils';
5
+ import type { PresetModuleName } from '../../context/preset.svelte';
6
+ import type { Base } from '../atom';
7
+ import { InputBond } from './bond.svelte';
8
+ import type { InputControlProps } from './types';
9
+
10
+ const bond = InputBond.get();
11
+
12
+ let {
13
+ value = $bindable(),
14
+ files = $bindable(),
15
+ date = $bindable(),
16
+ number = $bindable(),
17
+ checked = $bindable(),
18
+ class: klass = '',
19
+ type = 'text',
20
+ preset: presetKey = 'input.control',
21
+ onchange = undefined,
22
+ oninput = undefined,
23
+ ...restProps
24
+ }: InputControlProps<B> = $props();
25
+
26
+ const preset = getPreset(presetKey as PresetModuleName)?.apply(bond, [bond]);
27
+
28
+ const valueProps = $derived({
29
+ ...(bond?.input?.() ?? {}),
30
+ ...restProps
31
+ });
32
+
33
+ function handleChange(ev: CustomEvent) {
34
+ if (!onchange) return;
35
+
36
+ onchange?.(ev, {
37
+ value: value,
38
+ files: files,
39
+ date: date,
40
+ number: number,
41
+ checked: checked,
42
+ event: ev
43
+ });
44
+ }
45
+
46
+ function handleInput(ev: InputEvent) {
47
+ if (!oninput) return;
48
+
49
+ const currentTarget = ev.currentTarget as HTMLInputElement;
50
+
51
+ if (type === 'number') {
52
+ number = currentTarget.valueAsNumber;
53
+ }
54
+
55
+ if (type === 'date' || type == 'time' || type === 'datetime-local' || type === 'date-local') {
56
+ date = currentTarget.valueAsDate;
57
+ }
58
+
59
+ oninput?.(ev, {
60
+ value: value,
61
+ files: files,
62
+ date: date,
63
+ number: number,
64
+ checked: checked,
65
+ event: ev
66
+ });
67
+ }
68
+
69
+ function toFileList(files: File[]) {
70
+ const dataTransfer = new DataTransfer();
71
+ files.forEach((file) => dataTransfer.items.add(file));
72
+ return dataTransfer.files;
73
+ }
74
+ </script>
75
+
76
+ <input
77
+ bind:value={
78
+ () => value,
79
+ (v) => {
80
+ value = v;
81
+ if (bond) {
82
+ bond.state.props.value = v;
83
+ }
84
+ }
85
+ }
86
+ class={cn(
87
+ 'text-foreground placeholder:text-muted-foreground h-full w-full flex-1 bg-transparent px-2 leading-1 outline-none',
88
+ preset?.class,
89
+ toClassValue(klass, bond)
90
+ )}
91
+ type={type ?? 'text'}
92
+ onchange={handleChange}
93
+ oninput={handleInput}
94
+ {...valueProps}
95
+ {@attach (node) => {
96
+ if (type === 'file') {
97
+ return on('input', () => {
98
+ files = Array.from(node.files || []);
99
+ bond!.state.props.files = files;
100
+ })(node);
101
+ }
102
+ }}
103
+ />
@@ -1,10 +1,9 @@
1
- export type InputPortals = 'input.l0' | 'input.l1' | 'input.l2' | 'input.l3';
2
1
  import type { Base } from '../atom';
3
2
  import type { InputControlProps } from './types';
4
3
  declare function $$render<B extends Base = Base>(): {
5
4
  props: InputControlProps<B>;
6
5
  exports: {};
7
- bindings: "number" | "value" | "date" | "files" | "checked";
6
+ bindings: "number" | "value" | "date" | "checked" | "files";
8
7
  slots: {};
9
8
  events: {};
10
9
  };
@@ -12,7 +11,7 @@ declare class __sveltets_Render<B extends Base = Base> {
12
11
  props(): ReturnType<typeof $$render<B>>['props'];
13
12
  events(): ReturnType<typeof $$render<B>>['events'];
14
13
  slots(): ReturnType<typeof $$render<B>>['slots'];
15
- bindings(): "number" | "value" | "date" | "files" | "checked";
14
+ bindings(): "number" | "value" | "date" | "checked" | "files";
16
15
  exports(): {};
17
16
  }
18
17
  interface $$IsomorphicComponent {
@@ -1,4 +1,4 @@
1
1
  import { type IconProps } from '../icon';
2
- declare const InputIcon: import("svelte").Component<IconProps, {}, "">;
2
+ declare const InputIcon: import("svelte").Component<IconProps<import("svelte").Component<{}, {}, string>, "div", import("..").ComponentBase | import("..").SnippetBase>, {}, "">;
3
3
  type InputIcon = ReturnType<typeof InputIcon>;
4
4
  export default InputIcon;
@@ -1,24 +1,7 @@
1
1
  import type { HTMLAttributes } from 'svelte/elements';
2
- import { type ElementType, type Base } from '../atom';
2
+ import { type ElementType, type HtmlAtomProps, type Base } from '../atom';
3
3
  declare function $$render<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base>(): {
4
- props: Record<string, unknown> & {
5
- [key: string]: unknown;
6
- class?: import("../..").ClassValue | import("../..").ClassValue[];
7
- as?: (string & {}) | E | undefined;
8
- global?: boolean;
9
- initial?: import("..").NodeFunction<E> | undefined;
10
- enter?: import("..").TransitionFunction<E> | undefined;
11
- exit?: import("..").TransitionFunction<E> | undefined;
12
- animate?: import("..").NodeFunction<E> | undefined;
13
- onmount?: import("..").NodeFunction<E> | undefined;
14
- ondestroy?: import("..").NodeFunction<E> | undefined;
15
- children?: import("svelte").Snippet;
16
- } & {
17
- bond?: import("../..").Bond;
18
- base?: B | undefined;
19
- preset?: import("../..").ModuleName | (string & {});
20
- variants?: import("../..").VariantDefinition<any> | ((bond: import("../..").Bond, variantProps: Record<string, any>) => Record<string, any>);
21
- } & HTMLAttributes<ElementType<E>>;
4
+ props: HtmlAtomProps<E, B> & HTMLAttributes<ElementType<E>>;
22
5
  exports: {};
23
6
  bindings: "";
24
7
  slots: {};
@@ -1,14 +1,24 @@
1
- import type { HTMLAttributes, HTMLInputTypeAttribute } from 'svelte/elements';
2
- import type { Base, ElementType, HtmlAtomProps } from '../atom';
1
+ import type { HTMLInputTypeAttribute } from 'svelte/elements';
2
+ import type { Base, HtmlAtomProps } from '../atom';
3
3
  import type { Snippet } from 'svelte';
4
4
  import type { Override } from '../../types';
5
- export type InputRootProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> = HtmlAtomProps<E, B> & HTMLAttributes<ElementType<E>> & {
5
+ /**
6
+ * Extend this interface to add custom input root properties in your application.
7
+ */
8
+ export interface InputRootExtendProps {
9
+ }
10
+ /**
11
+ * Extend this interface to add custom input control properties in your application.
12
+ */
13
+ export interface InputControlExtendProps {
14
+ }
15
+ export interface InputRootProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends HtmlAtomProps<E, B>, InputRootExtendProps {
6
16
  value?: string | number | string[] | null;
7
17
  checked?: boolean;
8
18
  files?: File[] | null;
9
19
  children?: Snippet<[]>;
10
- };
11
- type InputControlBaseProps = {
20
+ }
21
+ interface InputControlBaseProps {
12
22
  value?: any;
13
23
  files?: File[];
14
24
  date?: Date | null;
@@ -17,6 +27,7 @@ type InputControlBaseProps = {
17
27
  class?: string;
18
28
  type?: HTMLInputTypeAttribute | null;
19
29
  children?: Snippet<[]>;
20
- };
21
- export type InputControlProps<B extends Base = Base> = HtmlAtomProps<'input', B> & Override<HTMLAttributes<HTMLInputElement>, InputControlBaseProps>;
30
+ }
31
+ export interface InputControlProps<B extends Base = Base> extends Override<HtmlAtomProps<'input', B>, InputControlBaseProps>, InputControlExtendProps {
32
+ }
22
33
  export {};
@@ -1 +1,2 @@
1
1
  export { default as Label } from './label.svelte';
2
+ export * from './types';
@@ -1 +1,2 @@
1
1
  export { default as Label } from './label.svelte';
2
+ export * from './types';
@@ -1,41 +1,25 @@
1
- <script module lang="ts">
2
- import type { Snippet } from 'svelte';
3
-
4
- export type LabelProps<
5
- E extends keyof HTMLElementTagNameMap = 'label',
6
- B extends Base = Base
7
- > = HtmlAtomProps<E, B> & {
8
- for?: string | null;
9
- children?: Snippet<[]>;
10
- };
11
- </script>
12
-
13
- <script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'label', B extends Base = Base">
14
- import {
15
- HtmlAtom,
16
- type ElementType,
17
- type HtmlAtomProps,
18
- type Base
19
- } from '../atom';
20
- import type { HTMLAttributes } from 'svelte/elements';
21
-
22
- type Element = ElementType<E>;
23
-
24
- let {
25
- class: klass = '',
26
- as = 'label' as E,
27
- for: labelfor = null,
28
- children,
29
- ...restProps
30
- }: LabelProps<E, B> & HTMLAttributes<Element> = $props();
31
- </script>
32
-
33
- <HtmlAtom
34
- {as}
35
- preset="label"
36
- class={['font-medium', '$preset', klass]}
37
- for={labelfor}
38
- {...restProps}
39
- >
40
- {@render children?.()}
41
- </HtmlAtom>
1
+ <script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'label', B extends Base = Base">
2
+ import type { HTMLAttributes } from 'svelte/elements';
3
+ import { HtmlAtom, type ElementType, type Base } from '../atom';
4
+ import type { LabelProps } from './types';
5
+
6
+ type Element = ElementType<E>;
7
+
8
+ let {
9
+ class: klass = '',
10
+ as = 'label' as E,
11
+ for: labelfor = null,
12
+ children,
13
+ ...restProps
14
+ }: LabelProps<E, B> & HTMLAttributes<Element> = $props();
15
+ </script>
16
+
17
+ <HtmlAtom
18
+ {as}
19
+ preset="label"
20
+ class={['font-medium', '$preset', klass]}
21
+ for={labelfor}
22
+ {...restProps}
23
+ >
24
+ {@render children?.()}
25
+ </HtmlAtom>
@@ -1,32 +1,8 @@
1
- import type { Snippet } from 'svelte';
2
- export type LabelProps<E extends keyof HTMLElementTagNameMap = 'label', B extends Base = Base> = HtmlAtomProps<E, B> & {
3
- for?: string | null;
4
- children?: Snippet<[]>;
5
- };
6
- import { type ElementType, type HtmlAtomProps, type Base } from '../atom';
7
1
  import type { HTMLAttributes } from 'svelte/elements';
2
+ import { type ElementType, type Base } from '../atom';
3
+ import type { LabelProps } from './types';
8
4
  declare function $$render<E extends keyof HTMLElementTagNameMap = 'label', B extends Base = Base>(): {
9
- props: Record<string, unknown> & {
10
- [key: string]: unknown;
11
- class?: import("../..").ClassValue | import("../..").ClassValue[];
12
- as?: (string & {}) | E | undefined;
13
- global?: boolean;
14
- initial?: import("..").NodeFunction<E> | undefined;
15
- enter?: import("..").TransitionFunction<E> | undefined;
16
- exit?: import("..").TransitionFunction<E> | undefined;
17
- animate?: import("..").NodeFunction<E> | undefined;
18
- onmount?: import("..").NodeFunction<E> | undefined;
19
- ondestroy?: import("..").NodeFunction<E> | undefined;
20
- children?: Snippet;
21
- } & {
22
- bond?: import("../..").Bond;
23
- base?: B | undefined;
24
- preset?: import("../..").ModuleName | (string & {});
25
- variants?: import("../..").VariantDefinition<any> | ((bond: import("../..").Bond, variantProps: Record<string, any>) => Record<string, any>);
26
- } & {
27
- for?: string | null;
28
- children?: Snippet<[]>;
29
- } & HTMLAttributes<ElementType<E>>;
5
+ props: LabelProps<E, B> & HTMLAttributes<ElementType<E>>;
30
6
  exports: {};
31
7
  bindings: "";
32
8
  slots: {};
@@ -0,0 +1,11 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { HtmlAtomProps, Base } from '../atom';
3
+ /**
4
+ * Extend this interface to add custom label properties in your application.
5
+ */
6
+ export interface LabelExtendProps {
7
+ }
8
+ export interface LabelProps<E extends keyof HTMLElementTagNameMap = 'label', B extends Base = Base> extends HtmlAtomProps<E, B>, LabelExtendProps {
9
+ for?: string | null;
10
+ children?: Snippet<[]>;
11
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -1,24 +1,7 @@
1
1
  import type { HTMLAttributes } from 'svelte/elements';
2
- import { type ElementType, type Base } from '../atom';
2
+ import { type ElementType, type HtmlAtomProps, type Base } from '../atom';
3
3
  declare function $$render<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base>(): {
4
- props: Record<string, unknown> & {
5
- [key: string]: unknown;
6
- class?: import("../..").ClassValue | import("../..").ClassValue[];
7
- as?: (string & {}) | E | undefined;
8
- global?: boolean;
9
- initial?: import("..").NodeFunction<E> | undefined;
10
- enter?: import("..").TransitionFunction<E> | undefined;
11
- exit?: import("..").TransitionFunction<E> | undefined;
12
- animate?: import("..").NodeFunction<E> | undefined;
13
- onmount?: import("..").NodeFunction<E> | undefined;
14
- ondestroy?: import("..").NodeFunction<E> | undefined;
15
- children?: import("svelte").Snippet;
16
- } & {
17
- bond?: import("../..").Bond;
18
- base?: B | undefined;
19
- preset?: import("../..").ModuleName | (string & {});
20
- variants?: import("../..").VariantDefinition<any> | ((bond: import("../..").Bond, variantProps: Record<string, any>) => Record<string, any>);
21
- } & HTMLAttributes<ElementType<E>>;
4
+ props: HtmlAtomProps<E, B> & HTMLAttributes<ElementType<E>>;
22
5
  exports: {};
23
6
  bindings: "";
24
7
  slots: {};
@@ -1,24 +1,7 @@
1
1
  import type { HTMLAttributes } from 'svelte/elements';
2
- import { type ElementType, type Base } from '../atom';
2
+ import { type ElementType, type HtmlAtomProps, type Base } from '../atom';
3
3
  declare function $$render<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base>(): {
4
- props: Record<string, unknown> & {
5
- [key: string]: unknown;
6
- class?: import("../../utils").ClassValue | import("../../utils").ClassValue[];
7
- as?: (string & {}) | E | undefined;
8
- global?: boolean;
9
- initial?: import("..").NodeFunction<E> | undefined;
10
- enter?: import("..").TransitionFunction<E> | undefined;
11
- exit?: import("..").TransitionFunction<E> | undefined;
12
- animate?: import("..").NodeFunction<E> | undefined;
13
- onmount?: import("..").NodeFunction<E> | undefined;
14
- ondestroy?: import("..").NodeFunction<E> | undefined;
15
- children?: import("svelte").Snippet;
16
- } & {
17
- bond?: import("../..").Bond;
18
- base?: B | undefined;
19
- preset?: import("../..").ModuleName | (string & {});
20
- variants?: import("../../utils").VariantDefinition<any> | ((bond: import("../..").Bond, variantProps: Record<string, any>) => Record<string, any>);
21
- } & HTMLAttributes<ElementType<E>>;
4
+ props: HtmlAtomProps<E, B> & HTMLAttributes<ElementType<E>>;
22
5
  exports: {
23
6
  getBond: () => any;
24
7
  };
@@ -0,0 +1,11 @@
1
+ import type { HtmlAtomProps, Base } from '../atom';
2
+ import type { Factory } from '../../types';
3
+ import type { LayerBond } from './bond.svelte';
4
+ /**
5
+ * Extend this interface to add custom layer properties in your application.
6
+ */
7
+ export interface LayerExtendProps {
8
+ }
9
+ export interface LayerRootProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends HtmlAtomProps<E, B>, LayerExtendProps {
10
+ factory?: Factory<LayerBond>;
11
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,8 @@
1
+ import type { HtmlAtomProps, Base } from '../atom';
2
+ /**
3
+ * Extend this interface to add custom link properties in your application.
4
+ */
5
+ export interface LinkExtendProps {
6
+ }
7
+ export interface LinkProps<E extends keyof HTMLElementTagNameMap = 'a', B extends Base = Base> extends HtmlAtomProps<E, B>, LinkExtendProps {
8
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,8 @@
1
+ import type { HtmlAtomProps, Base } from '../atom';
2
+ /**
3
+ * Extend this interface to add custom list properties in your application.
4
+ */
5
+ export interface ListExtendProps {
6
+ }
7
+ export interface ListRootProps<E extends keyof HTMLElementTagNameMap = 'ul', B extends Base = Base> extends HtmlAtomProps<E, B>, ListExtendProps {
8
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -1,2 +1,3 @@
1
1
  export * as Menu from './atoms';
2
+ export * from './types';
2
3
  export { PopoverBond, type PopoverDomElements, type PopoverParams, PopoverState, type PopoverStateProps, type TriggerParams } from '../popover/bond.svelte';
@@ -1,2 +1,3 @@
1
1
  export * as Menu from './atoms';
2
+ export * from './types';
2
3
  export { PopoverBond, PopoverState } from '../popover/bond.svelte';
@@ -0,0 +1,15 @@
1
+ import type { HtmlAtomProps, Base } from '../atom';
2
+ /**
3
+ * Extend this interface to add custom menu item properties in your application.
4
+ */
5
+ export interface MenuItemExtendProps {
6
+ }
7
+ /**
8
+ * Extend this interface to add custom menu list properties in your application.
9
+ */
10
+ export interface MenuListExtendProps {
11
+ }
12
+ export interface MenuItemProps<E extends keyof HTMLElementTagNameMap = 'button', B extends Base = Base> extends HtmlAtomProps<E, B>, MenuItemExtendProps {
13
+ }
14
+ export interface MenuListProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends HtmlAtomProps<E, B>, MenuListExtendProps {
15
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -1,3 +1,4 @@
1
1
  export * as Popover from './atoms';
2
2
  export { clickoutPopover, popover } from './attachments.svelte';
3
3
  export { PopoverBond, type PopoverDomElements, type PopoverParams, PopoverState, type PopoverStateProps, type TriggerParams } from './bond.svelte';
4
+ export * from './types';
@@ -1,3 +1,4 @@
1
1
  export * as Popover from './atoms';
2
2
  export { clickoutPopover, popover } from './attachments.svelte';
3
3
  export { PopoverBond, PopoverState } from './bond.svelte';
4
+ export * from './types';
@@ -1,7 +1,7 @@
1
1
  <script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
2
2
  import type { HTMLAttributes } from 'svelte/elements';
3
3
  import { animate as motion } from 'motion';
4
- import { HtmlAtom, type HtmlAtomProps, type Base } from '../atom';
4
+ import { HtmlAtom, type Base } from '../atom';
5
5
  import { PopoverBond } from './bond.svelte';
6
6
  import type { PopoverArrowProps } from './types';
7
7
 
@@ -1,24 +1,8 @@
1
1
  import type { HTMLAttributes } from 'svelte/elements';
2
2
  import { type Base } from '../atom';
3
+ import type { PopoverArrowProps } from './types';
3
4
  declare function $$render<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base>(): {
4
- props: Record<string, unknown> & {
5
- [key: string]: unknown;
6
- class?: import("../..").ClassValue | import("../..").ClassValue[];
7
- as?: (string & {}) | E | undefined;
8
- global?: boolean;
9
- initial?: import("..").NodeFunction<E> | undefined;
10
- enter?: import("..").TransitionFunction<E> | undefined;
11
- exit?: import("..").TransitionFunction<E> | undefined;
12
- animate?: import("..").NodeFunction<E> | undefined;
13
- onmount?: import("..").NodeFunction<E> | undefined;
14
- ondestroy?: import("..").NodeFunction<E> | undefined;
15
- children?: import("svelte").Snippet;
16
- } & {
17
- bond?: import("../..").Bond;
18
- base?: B | undefined;
19
- preset?: import("../..").ModuleName | (string & {});
20
- variants?: import("../..").VariantDefinition<any> | ((bond: import("../..").Bond, variantProps: Record<string, any>) => Record<string, any>);
21
- } & HTMLAttributes<HTMLElementTagNameMap[E]>;
5
+ props: PopoverArrowProps<E, B> & HTMLAttributes<HTMLElementTagNameMap[E]>;
22
6
  exports: {};
23
7
  bindings: "";
24
8
  slots: {};
@@ -3,8 +3,8 @@
3
3
  import { PortalBond, PortalsBond, Teleport } from '../portal';
4
4
  import { HtmlAtom, type Base } from '../atom';
5
5
  import type { HtmlElementTagName, HtmlElementType } from '../element';
6
- import { PopoverBond } from './bond.svelte';
7
6
  import { DURATION } from '../../shared';
7
+ import { PopoverBond } from './bond.svelte';
8
8
  import type { AnimateParams, PopoverContentProps } from './types';
9
9
 
10
10
  type Element = HtmlElementType<E>;