@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,109 +1,109 @@
1
- <script lang="ts" generics="B extends Base = Base">
2
- import { getRadioGroupContext } from './context';
3
- import { Stack } from '../stack';
4
- import { toClassValue } from '../../utils';
5
- import { HtmlAtom, type Base } from '../atom';
6
-
7
- const radioGroupContext = getRadioGroupContext();
8
-
9
- let {
10
- class: klass = '',
11
- value = $bindable(undefined),
12
- group = $bindable(),
13
- id = undefined,
14
- name = undefined,
15
- disabled = false,
16
- required = false,
17
- readonly = false,
18
- onchange = undefined,
19
- oninput = undefined,
20
- checkedContent = undefined,
21
- ...restProps
22
- } = $props();
23
-
24
- const _disabled = $derived(radioGroupContext?.disabled);
25
- const _required = $derived(radioGroupContext?.required);
26
- const _readonly = $derived(radioGroupContext?.readonly);
27
- const _name = $derived(radioGroupContext?.name);
28
-
29
- const proxy = {
30
- get current() {
31
- return radioGroupContext?.value ?? group;
32
- },
33
- set current(v) {
34
- group = v;
35
- if (radioGroupContext) {
36
- radioGroupContext.value = v;
37
- }
38
- }
39
- };
40
-
41
- const isDisabled = $derived(_disabled || disabled);
42
- const isRequired = $derived(_required || required);
43
- const isReadonly = $derived(_readonly || readonly);
44
- const isChecked = $derived(proxy.current === value);
45
-
46
- function handleChange(ev: Event) {
47
- const checked = (ev.currentTarget as HTMLInputElement)?.checked ?? false;
48
-
49
- onchange?.(ev, {
50
- checked,
51
- value: checked,
52
- type: 'boolean'
53
- });
54
- }
55
-
56
- function handleInput(ev: Event) {
57
- const currentTarget = ev.currentTarget as HTMLInputElement;
58
- const _checked = currentTarget?.checked ?? false;
59
-
60
- oninput?.(ev, {
61
- checked: _checked,
62
- value: _checked,
63
- type: 'boolean'
64
- });
65
-
66
- if (ev.defaultPrevented) {
67
- return;
68
- }
69
- }
70
- </script>
71
-
72
- <Stack.Root
73
- preset="radio"
74
- class={[
75
- 'text-foreground bg-input box-border inline-flex aspect-square size-4 max-w-fit cursor-pointer place-items-center rounded-full border p-0',
76
- isDisabled && 'pointer-events-none opacity-50',
77
- '$preset',
78
- toClassValue.apply(null, [klass, {}])
79
- ]}
80
- as="label"
81
- {...restProps}
82
- >
83
- <Stack.Item class="pointer-events-none flex size-full">
84
- <input
85
- bind:group={proxy.current}
86
- {id}
87
- {value}
88
- class="pointer-events-auto size-0 opacity-0"
89
- type="radio"
90
- name={_name ?? name}
91
- disabled={isDisabled}
92
- required={isRequired}
93
- readonly={isReadonly}
94
- onchange={handleChange}
95
- oninput={handleInput}
96
- />
97
- </Stack.Item>
98
-
99
- {#if isChecked}
100
- {#if checkedContent}
101
- <HtmlAtom
102
- class="rounded-inherit pointer-events-none size-1/2 bg-current"
103
- base={checkedContent}
104
- />
105
- {:else}
106
- <Stack.Item class="rounded-inherit pointer-events-none size-1/2 bg-current"></Stack.Item>
107
- {/if}
108
- {/if}
109
- </Stack.Root>
1
+ <script lang="ts">
2
+ import { getRadioGroupContext } from './context';
3
+ import { Stack } from '../stack';
4
+ import { toClassValue } from '../../utils';
5
+ import { HtmlAtom, type Base } from '../atom';
6
+
7
+ const radioGroupContext = getRadioGroupContext();
8
+
9
+ let {
10
+ class: klass = '',
11
+ value = $bindable(undefined),
12
+ group = $bindable(),
13
+ id = undefined,
14
+ name = undefined,
15
+ disabled = false,
16
+ required = false,
17
+ readonly = false,
18
+ onchange = undefined,
19
+ oninput = undefined,
20
+ checkedContent = undefined,
21
+ ...restProps
22
+ } = $props();
23
+
24
+ const _disabled = $derived(radioGroupContext?.disabled);
25
+ const _required = $derived(radioGroupContext?.required);
26
+ const _readonly = $derived(radioGroupContext?.readonly);
27
+ const _name = $derived(radioGroupContext?.name);
28
+
29
+ const proxy = {
30
+ get current() {
31
+ return radioGroupContext?.value ?? group;
32
+ },
33
+ set current(v) {
34
+ group = v;
35
+ if (radioGroupContext) {
36
+ radioGroupContext.value = v;
37
+ }
38
+ }
39
+ };
40
+
41
+ const isDisabled = $derived(_disabled || disabled);
42
+ const isRequired = $derived(_required || required);
43
+ const isReadonly = $derived(_readonly || readonly);
44
+ const isChecked = $derived(proxy.current === value);
45
+
46
+ function handleChange(ev: Event) {
47
+ const checked = (ev.currentTarget as HTMLInputElement)?.checked ?? false;
48
+
49
+ onchange?.(ev, {
50
+ checked,
51
+ value: checked,
52
+ type: 'boolean'
53
+ });
54
+ }
55
+
56
+ function handleInput(ev: Event) {
57
+ const currentTarget = ev.currentTarget as HTMLInputElement;
58
+ const _checked = currentTarget?.checked ?? false;
59
+
60
+ oninput?.(ev, {
61
+ checked: _checked,
62
+ value: _checked,
63
+ type: 'boolean'
64
+ });
65
+
66
+ if (ev.defaultPrevented) {
67
+ return;
68
+ }
69
+ }
70
+ </script>
71
+
72
+ <Stack.Root
73
+ preset="radio"
74
+ class={[
75
+ 'text-foreground bg-input box-border inline-flex aspect-square size-4 max-w-fit cursor-pointer place-items-center rounded-full border p-0',
76
+ isDisabled && 'pointer-events-none opacity-50',
77
+ '$preset',
78
+ toClassValue.apply(null, [klass, {}])
79
+ ]}
80
+ as="label"
81
+ {...restProps}
82
+ >
83
+ <Stack.Item class="pointer-events-none flex size-full">
84
+ <input
85
+ bind:group={proxy.current}
86
+ {id}
87
+ {value}
88
+ class="pointer-events-auto size-0 opacity-0"
89
+ type="radio"
90
+ name={_name ?? name}
91
+ disabled={isDisabled}
92
+ required={isRequired}
93
+ readonly={isReadonly}
94
+ onchange={handleChange}
95
+ oninput={handleInput}
96
+ />
97
+ </Stack.Item>
98
+
99
+ {#if isChecked}
100
+ {#if checkedContent}
101
+ <HtmlAtom
102
+ class="rounded-inherit pointer-events-none size-1/2 bg-current"
103
+ base={checkedContent}
104
+ />
105
+ {:else}
106
+ <Stack.Item class="rounded-inherit pointer-events-none size-1/2 bg-current"></Stack.Item>
107
+ {/if}
108
+ {/if}
109
+ </Stack.Root>
@@ -1,37 +1,15 @@
1
- import { type Base } from '../atom';
2
- declare function $$render<B extends Base = Base>(): {
3
- props: {
4
- class?: string;
5
- value?: any;
6
- group?: any;
7
- id?: any;
8
- name?: any;
9
- disabled?: boolean;
10
- required?: boolean;
11
- readonly?: boolean;
12
- onchange?: any;
13
- oninput?: any;
14
- checkedContent?: any;
15
- } & Record<string, any>;
16
- exports: {};
17
- bindings: "value" | "group";
18
- slots: {};
19
- events: {};
20
- };
21
- declare class __sveltets_Render<B extends Base = Base> {
22
- props(): ReturnType<typeof $$render<B>>['props'];
23
- events(): ReturnType<typeof $$render<B>>['events'];
24
- slots(): ReturnType<typeof $$render<B>>['slots'];
25
- bindings(): "value" | "group";
26
- exports(): {};
27
- }
28
- interface $$IsomorphicComponent {
29
- new <B extends Base = Base>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<B>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<B>['props']>, ReturnType<__sveltets_Render<B>['events']>, ReturnType<__sveltets_Render<B>['slots']>> & {
30
- $$bindings?: ReturnType<__sveltets_Render<B>['bindings']>;
31
- } & ReturnType<__sveltets_Render<B>['exports']>;
32
- <B extends Base = Base>(internal: unknown, props: ReturnType<__sveltets_Render<B>['props']> & {}): ReturnType<__sveltets_Render<B>['exports']>;
33
- z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
34
- }
35
- declare const Radio: $$IsomorphicComponent;
36
- type Radio<B extends Base = Base> = InstanceType<typeof Radio<B>>;
1
+ declare const Radio: import("svelte").Component<{
2
+ class?: string;
3
+ value?: any;
4
+ group?: any;
5
+ id?: any;
6
+ name?: any;
7
+ disabled?: boolean;
8
+ required?: boolean;
9
+ readonly?: boolean;
10
+ onchange?: any;
11
+ oninput?: any;
12
+ checkedContent?: any;
13
+ } & Record<string, any>, {}, "value" | "group">;
14
+ type Radio = ReturnType<typeof Radio>;
37
15
  export default Radio;
@@ -1,121 +1,121 @@
1
- <script module lang="ts">
2
- export type RootPortals = 'root.l0' | 'root.l1' | 'root.l2' | 'root.l3';
3
- </script>
4
-
5
- <script lang="ts">
6
- import { cn, defineState, defineProperty } from '../../utils';
7
- import { RootBond, RootBondState, type RootStateProps } from './bond.svelte';
8
- import { Portal, ActivePortal, Portals } from '../portal';
9
- import { Stack } from '../stack';
10
- import { HtmlAtom } from '../atom';
11
- import { HtmlElement, MathmlElement, SvgElement } from '../element';
12
-
13
- let {
14
- class: klass = '',
15
- base = undefined,
16
- children = undefined,
17
- portals = undefined,
18
- ...restProps
19
- } = $props();
20
-
21
- let html: typeof HtmlElement | undefined = HtmlElement;
22
- let svg: typeof SvgElement | undefined = undefined;
23
- let mathml: typeof MathmlElement | undefined = undefined;
24
-
25
- type Renderers = {
26
- html?: typeof HtmlElement;
27
- svg?: typeof SvgElement;
28
- mathml?: typeof MathmlElement;
29
- };
30
-
31
- const renderers = defineState<Renderers>([
32
- defineProperty('html', () => {
33
- if (!html) {
34
- import('../element/html-element.svelte').then((mod) => {
35
- html = mod.default;
36
- });
37
- }
38
-
39
- return html;
40
- }),
41
- defineProperty('svg', () => {
42
- if (!svg) {
43
- import('../element/svg-element.svelte').then((mod) => {
44
- svg = mod.default;
45
- });
46
- }
47
-
48
- return svg;
49
- }),
50
- defineProperty('mathml', () => {
51
- if (!mathml) {
52
- import('../element/mathml-element.svelte').then((mod) => {
53
- mathml = mod.default;
54
- });
55
- }
56
-
57
- return mathml;
58
- })
59
- ]);
60
-
61
- const bondProps = defineState<RootStateProps>([defineProperty('renderers', () => renderers)]);
62
-
63
- const bondState = new RootBondState(() => bondProps);
64
- const bond = new RootBond(bondState).share();
65
- </script>
66
-
67
- <Portals id="root">
68
- <HtmlAtom
69
- {@attach (node) => {
70
- bond.rootElement = node;
71
- }}
72
- {base}
73
- preset="root"
74
- class={cn(
75
- 'atom-root bg-background text-foreground relative flex w-full flex-1 flex-col items-start font-sans',
76
- '$preset',
77
- klass
78
- )}
79
- {...restProps}
80
- >
81
- {#if portals}
82
- {@render portals?.()}
83
- {:else}
84
- <Portal.Outer
85
- base={Stack.Item}
86
- id="root.l0"
87
- class="pointer-events-none absolute inset-0 z-10 overflow-hidden"
88
- >
89
- <Portal.Inner />
90
- </Portal.Outer>
91
-
92
- <Portal.Outer
93
- base={Stack.Item}
94
- id="root.l1"
95
- class="pointer-events-none absolute inset-0 z-10 overflow-hidden"
96
- >
97
- <Portal.Inner />
98
- </Portal.Outer>
99
-
100
- <Portal.Outer
101
- base={Stack.Item}
102
- id="root.l2"
103
- class="pointer-events-none absolute inset-0 z-10 overflow-hidden"
104
- >
105
- <Portal.Inner />
106
- </Portal.Outer>
107
-
108
- <Portal.Outer
109
- base={Stack.Item}
110
- id="root.l3"
111
- class="pointer-events-none absolute inset-0 z-10 overflow-hidden"
112
- >
113
- <Portal.Inner />
114
- </Portal.Outer>
115
- {/if}
116
-
117
- <ActivePortal portal="root.l0">
118
- {@render children?.()}
119
- </ActivePortal>
120
- </HtmlAtom>
121
- </Portals>
1
+ <script module lang="ts">
2
+ export type RootPortals = 'root.l0' | 'root.l1' | 'root.l2' | 'root.l3';
3
+ </script>
4
+
5
+ <script lang="ts">
6
+ import { cn, defineState, defineProperty } from '../../utils';
7
+ import { RootBond, RootBondState, type RootStateProps } from './bond.svelte';
8
+ import { Portal, ActivePortal, Portals } from '../portal';
9
+ import { Stack } from '../stack';
10
+ import { HtmlAtom } from '../atom';
11
+ import { HtmlElement, MathmlElement, SvgElement } from '../element';
12
+
13
+ let {
14
+ class: klass = '',
15
+ base = undefined,
16
+ children = undefined,
17
+ portals = undefined,
18
+ ...restProps
19
+ } = $props();
20
+
21
+ let html: typeof HtmlElement | undefined = HtmlElement;
22
+ let svg: typeof SvgElement | undefined = undefined;
23
+ let mathml: typeof MathmlElement | undefined = undefined;
24
+
25
+ type Renderers = {
26
+ html?: typeof HtmlElement;
27
+ svg?: typeof SvgElement;
28
+ mathml?: typeof MathmlElement;
29
+ };
30
+
31
+ const renderers = defineState<Renderers>([
32
+ defineProperty('html', () => {
33
+ if (!html) {
34
+ import('../element/html-element.svelte').then((mod) => {
35
+ html = mod.default;
36
+ });
37
+ }
38
+
39
+ return html;
40
+ }),
41
+ defineProperty('svg', () => {
42
+ if (!svg) {
43
+ import('../element/svg-element.svelte').then((mod) => {
44
+ svg = mod.default;
45
+ });
46
+ }
47
+
48
+ return svg;
49
+ }),
50
+ defineProperty('mathml', () => {
51
+ if (!mathml) {
52
+ import('../element/mathml-element.svelte').then((mod) => {
53
+ mathml = mod.default;
54
+ });
55
+ }
56
+
57
+ return mathml;
58
+ })
59
+ ]);
60
+
61
+ const bondProps = defineState<RootStateProps>([defineProperty('renderers', () => renderers)]);
62
+
63
+ const bondState = new RootBondState(() => bondProps);
64
+ const bond = new RootBond(bondState).share();
65
+ </script>
66
+
67
+ <Portals id="root">
68
+ <HtmlAtom
69
+ {@attach (node) => {
70
+ bond.rootElement = node;
71
+ }}
72
+ {base}
73
+ preset="root"
74
+ class={cn(
75
+ 'atom-root bg-background text-foreground relative flex w-full flex-1 flex-col items-start font-sans',
76
+ '$preset',
77
+ klass
78
+ )}
79
+ {...restProps}
80
+ >
81
+ {#if portals}
82
+ {@render portals?.()}
83
+ {:else}
84
+ <Portal.Outer
85
+ base={Stack.Item}
86
+ id="root.l0"
87
+ class="pointer-events-none absolute inset-0 z-10 overflow-hidden"
88
+ >
89
+ <Portal.Inner />
90
+ </Portal.Outer>
91
+
92
+ <Portal.Outer
93
+ base={Stack.Item}
94
+ id="root.l1"
95
+ class="pointer-events-none absolute inset-0 z-10 overflow-hidden"
96
+ >
97
+ <Portal.Inner />
98
+ </Portal.Outer>
99
+
100
+ <Portal.Outer
101
+ base={Stack.Item}
102
+ id="root.l2"
103
+ class="pointer-events-none absolute inset-0 z-10 overflow-hidden"
104
+ >
105
+ <Portal.Inner />
106
+ </Portal.Outer>
107
+
108
+ <Portal.Outer
109
+ base={Stack.Item}
110
+ id="root.l3"
111
+ class="pointer-events-none absolute inset-0 z-10 overflow-hidden"
112
+ >
113
+ <Portal.Inner />
114
+ </Portal.Outer>
115
+ {/if}
116
+
117
+ <ActivePortal portal="root.l0">
118
+ {@render children?.()}
119
+ </ActivePortal>
120
+ </HtmlAtom>
121
+ </Portals>
@@ -0,0 +1,8 @@
1
+ import type { HtmlAtomProps, Base } from '../atom';
2
+ /**
3
+ * Extend this interface to add custom root properties in your application.
4
+ */
5
+ export interface RootExtendProps {
6
+ }
7
+ export interface RootProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends HtmlAtomProps<E, B>, RootExtendProps {
8
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -5,3 +5,4 @@ export type * from './scrollable-track.svelte';
5
5
  export type * from './scrollable-thumb.svelte';
6
6
  export { ScrollableBond, type ScrollableDomElements, ScrollableState, type ScrollableStateProps } from './bond.svelte';
7
7
  export { scrollable } from './attachments.svelte';
8
+ export * from './types';
@@ -1,3 +1,4 @@
1
1
  export * as Scrollable from './atoms';
2
2
  export { ScrollableBond, ScrollableState } from './bond.svelte';
3
3
  export { scrollable } from './attachments.svelte';
4
+ export * from './types';