@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,50 +1,41 @@
1
- <script module lang="ts">
2
- export type TabDescriptionProps<
3
- E extends keyof HTMLElementTagNameMap = 'p',
4
- B extends Base = Base
5
- > = HtmlAtomProps<E, B> & {
6
- children?: Snippet<[{ tab?: TabBond<unknown> }]>;
7
- };
8
- </script>
9
-
10
- <script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'p', B extends Base = Base">
11
- import type { Snippet } from 'svelte';
12
- import { HtmlAtom, type HtmlAtomProps, type Base } from '../../atom';
13
- import { TabBond } from './bond.svelte';
14
-
15
- const bond = TabBond.get();
16
-
17
- let {
18
- class: klass = '',
19
- as = 'p' as E,
20
- children,
21
- onmount = undefined,
22
- ondestroy = undefined,
23
- animate = undefined,
24
- enter = undefined,
25
- exit = undefined,
26
- initial = undefined,
27
- ...restProps
28
- }: TabDescriptionProps<E, B> = $props();
29
-
30
- const descriptionProps = $derived({
31
- ...bond?.description(),
32
- ...restProps
33
- });
34
- </script>
35
-
36
- <HtmlAtom
37
- {bond}
38
- preset="tab.description"
39
- class={['border-border', '$preset', klass]}
40
- onmount={onmount?.bind(bond.state)}
41
- ondestroy={ondestroy?.bind(bond.state)}
42
- enter={enter?.bind(bond.state)}
43
- exit={exit?.bind(bond.state)}
44
- initial={initial?.bind(bond.state)}
45
- animate={animate?.bind(bond.state)}
46
- {as}
47
- {...descriptionProps}
48
- >
49
- {@render children?.({ tab: bond })}
50
- </HtmlAtom>
1
+ <script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'p', B extends Base = Base">
2
+ import type { TabDescriptionProps } from '../types';
3
+ import { HtmlAtom, type Base } from '../../atom';
4
+ import { TabBond } from './bond.svelte';
5
+
6
+ const bond = TabBond.get();
7
+
8
+ let {
9
+ class: klass = '',
10
+ as = 'p' as E,
11
+ children,
12
+ onmount = undefined,
13
+ ondestroy = undefined,
14
+ animate = undefined,
15
+ enter = undefined,
16
+ exit = undefined,
17
+ initial = undefined,
18
+ ...restProps
19
+ }: TabDescriptionProps<E, B> = $props();
20
+
21
+ const descriptionProps = $derived({
22
+ ...bond?.description(),
23
+ ...restProps
24
+ });
25
+ </script>
26
+
27
+ <HtmlAtom
28
+ {bond}
29
+ preset="tab.description"
30
+ class={['border-border', '$preset', klass]}
31
+ onmount={onmount?.bind(bond.state)}
32
+ ondestroy={ondestroy?.bind(bond.state)}
33
+ enter={enter?.bind(bond.state)}
34
+ exit={exit?.bind(bond.state)}
35
+ initial={initial?.bind(bond.state)}
36
+ animate={animate?.bind(bond.state)}
37
+ {as}
38
+ {...descriptionProps}
39
+ >
40
+ {@render children?.({ tab: bond })}
41
+ </HtmlAtom>
@@ -1,11 +1,5 @@
1
- export type TabDescriptionProps<E extends keyof HTMLElementTagNameMap = 'p', B extends Base = Base> = HtmlAtomProps<E, B> & {
2
- children?: Snippet<[{
3
- tab?: TabBond<unknown>;
4
- }]>;
5
- };
6
- import type { Snippet } from 'svelte';
7
- import { type HtmlAtomProps, type Base } from '../../atom';
8
- import { TabBond } from './bond.svelte';
1
+ import type { TabDescriptionProps } from '../types';
2
+ import { type Base } from '../../atom';
9
3
  declare function $$render<E extends keyof HTMLElementTagNameMap = 'p', B extends Base = Base>(): {
10
4
  props: TabDescriptionProps<E, B>;
11
5
  exports: {};
@@ -1,81 +1,71 @@
1
- <script module lang="ts">
2
- export type TabHeaderProps<
3
- E extends keyof HTMLElementTagNameMap = 'button',
4
- B extends Base = Base
5
- > = HtmlAtomProps<E, B> & {
6
- children?: Snippet<[{ tab?: TabBond<unknown> }]>;
7
- onpointerdown?: (ev: PointerEvent, context: { tab?: TabBond<unknown> }) => void;
8
- };
9
- </script>
10
-
11
- <script
12
- lang="ts"
13
- generics="E extends keyof HTMLElementTagNameMap = 'button', B extends Base = Base"
14
- >
15
- import type { Snippet } from 'svelte';
16
- import { TabBond } from './bond.svelte';
17
- import { HtmlAtom, type HtmlAtomProps, type Base } from '../../atom';
18
-
19
- const bond = TabBond.get();
20
-
21
- const isActive = $derived(bond?.state.isActive);
22
- const isDisabled = $derived(bond?.state.props.disabled);
23
-
24
- let {
25
- class: klass = '',
26
- as = 'button' as E,
27
- children,
28
- onpointerdown,
29
- onmount = undefined,
30
- ondestroy = undefined,
31
- animate = undefined,
32
- enter = undefined,
33
- exit = undefined,
34
- initial = undefined,
35
- ...restProps
36
- }: TabHeaderProps = $props();
37
-
38
- const headerProps = $derived({
39
- ...bond?.header(),
40
- ...restProps
41
- });
42
-
43
- function handlePointerDown(ev: PointerEvent) {
44
- if (isDisabled) return;
45
-
46
- onpointerdown?.(ev, { tab: bond });
47
-
48
- if (ev.defaultPrevented) {
49
- return;
50
- }
51
-
52
- bond?.state.select();
53
- }
54
- </script>
55
-
56
- <HtmlAtom
57
- {bond}
58
- preset="tab.header"
59
- as="button"
60
- class={[
61
- 'border-border text-foreground/60 hover:text-foreground/80 active:text-foreground/100 bg-foreground/0 hover:bg-foreground/5 active:bg-foreground/10 flex cursor-pointer items-center px-2 py-2 text-sm font-medium transition-colors duration-100',
62
- isActive && 'text-primary bg-accent/10 hover:bg-accent/15 active:bg-accent/20',
63
- isDisabled && 'opacity-50',
64
- '$preset',
65
- klass
66
- ]}
67
- onmount={onmount?.bind(bond.state)}
68
- ondestroy={ondestroy?.bind(bond.state)}
69
- enter={enter?.bind(bond.state)}
70
- exit={exit?.bind(bond.state)}
71
- initial={initial?.bind(bond.state)}
72
- animate={animate?.bind(bond.state)}
73
- type="button"
74
- disabled={isDisabled}
75
- onpointerdown={handlePointerDown}
76
- {...headerProps}
77
- >
78
- {@render children?.({
79
- tab: bond
80
- })}
81
- </HtmlAtom>
1
+ <script
2
+ lang="ts"
3
+ generics="E extends keyof HTMLElementTagNameMap = 'button', B extends Base = Base"
4
+ >
5
+ import type { TabHeaderProps } from '../types';
6
+ import { TabBond } from './bond.svelte';
7
+ import { HtmlAtom, type Base } from '../../atom';
8
+
9
+ const bond = TabBond.get();
10
+
11
+ const isActive = $derived(bond?.state.isActive);
12
+ const isDisabled = $derived(bond?.state.props.disabled);
13
+
14
+ let {
15
+ class: klass = '',
16
+ as = 'button' as E,
17
+ children,
18
+ onpointerdown,
19
+ onmount = undefined,
20
+ ondestroy = undefined,
21
+ animate = undefined,
22
+ enter = undefined,
23
+ exit = undefined,
24
+ initial = undefined,
25
+ ...restProps
26
+ }: TabHeaderProps = $props();
27
+
28
+ const headerProps = $derived({
29
+ ...bond?.header(),
30
+ ...restProps
31
+ });
32
+
33
+ function handlePointerDown(ev: PointerEvent) {
34
+ if (isDisabled) return;
35
+
36
+ onpointerdown?.(ev, { tab: bond });
37
+
38
+ if (ev.defaultPrevented) {
39
+ return;
40
+ }
41
+
42
+ bond?.state.select();
43
+ }
44
+ </script>
45
+
46
+ <HtmlAtom
47
+ {bond}
48
+ preset="tab.header"
49
+ as="button"
50
+ class={[
51
+ 'border-border text-foreground/60 hover:text-foreground/80 active:text-foreground/100 bg-foreground/0 hover:bg-foreground/5 active:bg-foreground/10 flex cursor-pointer items-center px-2 py-2 text-sm font-medium transition-colors duration-100',
52
+ isActive && 'text-primary bg-accent/10 hover:bg-accent/15 active:bg-accent/20',
53
+ isDisabled && 'opacity-50',
54
+ '$preset',
55
+ klass
56
+ ]}
57
+ onmount={onmount?.bind(bond.state)}
58
+ ondestroy={ondestroy?.bind(bond.state)}
59
+ enter={enter?.bind(bond.state)}
60
+ exit={exit?.bind(bond.state)}
61
+ initial={initial?.bind(bond.state)}
62
+ animate={animate?.bind(bond.state)}
63
+ type="button"
64
+ disabled={isDisabled}
65
+ onpointerdown={handlePointerDown}
66
+ {...headerProps}
67
+ >
68
+ {@render children?.({
69
+ tab: bond
70
+ })}
71
+ </HtmlAtom>
@@ -1,14 +1,5 @@
1
- export type TabHeaderProps<E extends keyof HTMLElementTagNameMap = 'button', B extends Base = Base> = HtmlAtomProps<E, B> & {
2
- children?: Snippet<[{
3
- tab?: TabBond<unknown>;
4
- }]>;
5
- onpointerdown?: (ev: PointerEvent, context: {
6
- tab?: TabBond<unknown>;
7
- }) => void;
8
- };
9
- import type { Snippet } from 'svelte';
10
- import { TabBond } from './bond.svelte';
11
- import { type HtmlAtomProps, type Base } from '../../atom';
1
+ import type { TabHeaderProps } from '../types';
2
+ import { type Base } from '../../atom';
12
3
  declare function $$render<E extends keyof HTMLElementTagNameMap = 'button', B extends Base = Base>(): {
13
4
  props: TabHeaderProps;
14
5
  exports: {};
@@ -1,86 +1,86 @@
1
- <script
2
- lang="ts"
3
- generics="D, E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base"
4
- >
5
- import { nanoid } from 'nanoid';
6
- import { animate as motion } from 'motion';
7
- import { TabBond, TabBondState, type TabBondProps } from './bond.svelte';
8
- import { defineProperty, defineState } from '../../../utils';
9
- import { TabsBond } from '../bond.svelte';
10
- import { type Base } from '../../atom';
11
- import { Stack } from '../../stack';
12
-
13
- const tabsBond = TabsBond.get();
14
-
15
- const headerElement = $derived(tabsBond?.elements.header);
16
-
17
- let {
18
- class: klass = '',
19
- value = nanoid(),
20
- disabled = false,
21
- data = undefined,
22
- factory = _factory,
23
- children,
24
- onmount = undefined,
25
- ondestroy = undefined,
26
- animate = _animate,
27
- enter = undefined,
28
- exit = undefined,
29
- initial = undefined,
30
- ...restProps
31
- } = $props();
32
-
33
- const bondProps = defineState<TabBondProps<D>>([
34
- defineProperty('value', () => value),
35
- defineProperty('disabled', () => disabled),
36
- defineProperty('data', () => data)
37
- ]);
38
-
39
- const bond = factory(bondProps).share();
40
-
41
- const rootProps = $derived({
42
- ...bond?.root(),
43
- ...restProps
44
- });
45
-
46
- const isActive = $derived(bond.state.isActive ?? false);
47
-
48
- const unmount = bond.mount();
49
- $effect(() => unmount);
50
-
51
- function _factory(props: typeof bondProps) {
52
- const bondState = new TabBondState(() => props);
53
-
54
- return new TabBond(bondState);
55
- }
56
-
57
- function _animate(node: HTMLElement) {
58
- motion(node, { opacity: +isActive }, { duration: 0 });
59
- }
60
-
61
- export function getBond() {
62
- return bond;
63
- }
64
- </script>
65
-
66
- {#if headerElement && children}
67
- <Stack.Item
68
- {bond}
69
- preset="tab"
70
- class={[
71
- 'border-border tab-root flex flex-col',
72
- !isActive && 'pointer-events-none',
73
- '$preset',
74
- klass
75
- ]}
76
- onmount={onmount?.bind(bond.state)}
77
- ondestroy={ondestroy?.bind(bond.state)}
78
- enter={enter?.bind(bond.state)}
79
- exit={exit?.bind(bond.state)}
80
- initial={initial?.bind(bond.state)}
81
- animate={animate?.bind(bond.state)}
82
- {...rootProps}
83
- >
84
- {@render children?.({ tab: bond })}
85
- </Stack.Item>
86
- {/if}
1
+ <script
2
+ lang="ts"
3
+ generics="D, E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base"
4
+ >
5
+ import { nanoid } from 'nanoid';
6
+ import { animate as motion } from 'motion';
7
+ import { defineProperty, defineState } from '../../../utils';
8
+ import { TabBond, TabBondState, type TabBondProps } from './bond.svelte';
9
+ import { TabsBond } from '../bond.svelte';
10
+ import { type Base } from '../../atom';
11
+ import { Stack } from '../../stack';
12
+
13
+ const tabsBond = TabsBond.get();
14
+
15
+ const headerElement = $derived(tabsBond?.elements.header);
16
+
17
+ let {
18
+ class: klass = '',
19
+ value = nanoid(),
20
+ disabled = false,
21
+ data = undefined,
22
+ factory = _factory,
23
+ children,
24
+ onmount = undefined,
25
+ ondestroy = undefined,
26
+ animate = _animate,
27
+ enter = undefined,
28
+ exit = undefined,
29
+ initial = undefined,
30
+ ...restProps
31
+ } = $props();
32
+
33
+ const bondProps = defineState<TabBondProps<D>>([
34
+ defineProperty('value', () => value),
35
+ defineProperty('disabled', () => disabled),
36
+ defineProperty('data', () => data)
37
+ ]);
38
+
39
+ const bond = factory(bondProps).share();
40
+
41
+ const rootProps = $derived({
42
+ ...bond?.root(),
43
+ ...restProps
44
+ });
45
+
46
+ const isActive = $derived(bond.state.isActive ?? false);
47
+
48
+ const unmount = bond.mount();
49
+ $effect(() => unmount);
50
+
51
+ function _factory(props: typeof bondProps) {
52
+ const bondState = new TabBondState(() => props);
53
+
54
+ return new TabBond(bondState);
55
+ }
56
+
57
+ function _animate(node: HTMLElement) {
58
+ motion(node, { opacity: +isActive }, { duration: 0 });
59
+ }
60
+
61
+ export function getBond() {
62
+ return bond;
63
+ }
64
+ </script>
65
+
66
+ {#if headerElement && children}
67
+ <Stack.Item
68
+ {bond}
69
+ preset="tab"
70
+ class={[
71
+ 'border-border tab-root flex flex-col',
72
+ !isActive && 'pointer-events-none',
73
+ '$preset',
74
+ klass
75
+ ]}
76
+ onmount={onmount?.bind(bond.state)}
77
+ ondestroy={ondestroy?.bind(bond.state)}
78
+ enter={enter?.bind(bond.state)}
79
+ exit={exit?.bind(bond.state)}
80
+ initial={initial?.bind(bond.state)}
81
+ animate={animate?.bind(bond.state)}
82
+ {...rootProps}
83
+ >
84
+ {@render children?.({ tab: bond })}
85
+ </Stack.Item>
86
+ {/if}
@@ -0,0 +1,55 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { HtmlAtomProps, Base } from '../atom';
3
+ import type { Factory } from '../../types';
4
+ import type { TabsBond } from './bond.svelte';
5
+ import type { TabBond } from './tab/bond.svelte';
6
+ /**
7
+ * Extend this interface to add custom tabs root properties in your application.
8
+ */
9
+ export interface TabsRootExtendProps {
10
+ }
11
+ /**
12
+ * Extend this interface to add custom tab header properties in your application.
13
+ */
14
+ export interface TabHeaderExtendProps {
15
+ }
16
+ /**
17
+ * Extend this interface to add custom tab body properties in your application.
18
+ */
19
+ export interface TabBodyExtendProps {
20
+ }
21
+ /**
22
+ * Extend this interface to add custom tab description properties in your application.
23
+ */
24
+ export interface TabDescriptionExtendProps {
25
+ }
26
+ export type TabsRootProps<D extends string = string, E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> = Omit<HtmlAtomProps<E, B>, 'children'> & TabsRootExtendProps & {
27
+ value?: D;
28
+ factory?: Factory<TabsBond>;
29
+ children?: Snippet<[{
30
+ tabs: TabsBond;
31
+ }]>;
32
+ onchange?: (value: D) => void;
33
+ };
34
+ export type TabHeaderProps<E extends keyof HTMLElementTagNameMap = 'button', B extends Base = Base> = HtmlAtomProps<E, B> & TabHeaderExtendProps & {
35
+ children?: Snippet<[{
36
+ tab?: TabBond<unknown>;
37
+ }]>;
38
+ onpointerdown?: (ev: PointerEvent, context: {
39
+ tab?: TabBond<unknown>;
40
+ }) => void;
41
+ };
42
+ export type TabBodyProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> = HtmlAtomProps<E, B> & TabBodyExtendProps & {
43
+ children?: Snippet<[{
44
+ tab?: TabBond<unknown>;
45
+ }]>;
46
+ };
47
+ export type TabDescriptionProps<E extends keyof HTMLElementTagNameMap = 'p', B extends Base = Base> = HtmlAtomProps<E, B> & TabDescriptionExtendProps & {
48
+ children?: Snippet<[{
49
+ tab?: TabBond<unknown>;
50
+ }]>;
51
+ };
52
+ /**
53
+ * @deprecated Use TabsRootExtendProps instead
54
+ */
55
+ export type TabsExtendProps = TabsRootExtendProps;
@@ -0,0 +1 @@
1
+ export {};
@@ -1 +1,2 @@
1
1
  export * as Textarea from './atoms';
2
+ export * from './types';
@@ -1 +1,2 @@
1
1
  export * as Textarea from './atoms';
2
+ export * from './types';
@@ -0,0 +1,28 @@
1
+ import type { HtmlAtomProps, Base } from '../atom';
2
+ /**
3
+ * Extend this interface to add custom textarea root properties in your application.
4
+ */
5
+ export interface TextareaRootExtendProps {
6
+ }
7
+ /**
8
+ * Extend this interface to add custom textarea input properties in your application.
9
+ */
10
+ export interface TextareaInputExtendProps {
11
+ }
12
+ export interface TextareaRootProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends HtmlAtomProps<E, B>, TextareaRootExtendProps {
13
+ }
14
+ export interface TextareaInputProps extends TextareaInputExtendProps {
15
+ value?: string;
16
+ placeholder?: string;
17
+ disabled?: boolean;
18
+ readonly?: boolean;
19
+ rows?: number;
20
+ cols?: number;
21
+ maxlength?: number;
22
+ minlength?: number;
23
+ required?: boolean;
24
+ autofocus?: boolean;
25
+ autocomplete?: string;
26
+ spellcheck?: boolean;
27
+ wrap?: 'soft' | 'hard' | 'off';
28
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -1 +1,2 @@
1
1
  export * as Toast from './atoms';
2
+ export * from './types';
@@ -1 +1,2 @@
1
1
  export * as Toast from './atoms';
2
+ export * from './types';
@@ -1,44 +1,38 @@
1
- <script module lang="ts">
2
- export type ToastDescriptionProps<T extends keyof HTMLElementTagNameMap> = HtmlAtomProps<T> & {
3
- as?: T;
4
- children?: Snippet<[{ toast?: ToastBond }]>;
5
- };
6
- </script>
7
-
8
- <script lang="ts" generics="T extends keyof HTMLElementTagNameMap">
9
- import type { Snippet } from 'svelte';
10
- import type { HTMLAttributes } from 'svelte/elements';
11
- import { ToastBond } from './bond';
12
- import { HtmlAtom, type HtmlAtomProps } from '../atom';
13
-
14
- const bond = ToastBond.get();
15
-
16
- let {
17
- as = 'p' as T,
18
- class: klass = '',
19
- children = undefined,
20
- onmount = undefined,
21
- ondestroy = undefined,
22
- animate = undefined,
23
- enter = undefined,
24
- exit = undefined,
25
- initial = undefined,
26
- ...restProps
27
- }: ToastDescriptionProps<T> & HTMLAttributes<HTMLElementTagNameMap[T]> = $props();
28
- </script>
29
-
30
- <HtmlAtom
31
- {as}
32
- {bond}
33
- preset="toast.description"
34
- class={['border-border', '$preset', klass]}
35
- enter={enter?.bind(bond.state)}
36
- exit={exit?.bind(bond.state)}
37
- initial={initial?.bind(bond.state)}
38
- animate={animate?.bind(bond.state)}
39
- onmount={onmount?.bind(bond.state)}
40
- ondestroy={ondestroy?.bind(bond.state)}
41
- {...bond?.title(restProps)}
42
- >
43
- {@render children?.({ toast: bond })}
44
- </HtmlAtom>
1
+ <script lang="ts" generics="T extends keyof HTMLElementTagNameMap">
2
+ import type { HTMLAttributes } from 'svelte/elements';
3
+ import { HtmlAtom } from '../atom';
4
+ import type { ToastDescriptionProps } from './types';
5
+ import { ToastBond } from './bond';
6
+ export type { ToastDescriptionProps } from './types';
7
+
8
+ const bond = ToastBond.get();
9
+
10
+ let {
11
+ as = 'p' as T,
12
+ class: klass = '',
13
+ children = undefined,
14
+ onmount = undefined,
15
+ ondestroy = undefined,
16
+ animate = undefined,
17
+ enter = undefined,
18
+ exit = undefined,
19
+ initial = undefined,
20
+ ...restProps
21
+ }: ToastDescriptionProps<T> & HTMLAttributes<HTMLElementTagNameMap[T]> = $props();
22
+ </script>
23
+
24
+ <HtmlAtom
25
+ {as}
26
+ {bond}
27
+ preset="toast.description"
28
+ class={['border-border', '$preset', klass]}
29
+ enter={enter?.bind(bond.state)}
30
+ exit={exit?.bind(bond.state)}
31
+ initial={initial?.bind(bond.state)}
32
+ animate={animate?.bind(bond.state)}
33
+ onmount={onmount?.bind(bond.state)}
34
+ ondestroy={ondestroy?.bind(bond.state)}
35
+ {...bond?.title(restProps)}
36
+ >
37
+ {@render children?.({ toast: bond })}
38
+ </HtmlAtom>