@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,108 +1,101 @@
1
- <script module lang="ts">
2
- import type { Snippet } from 'svelte';
3
-
4
- export type DatagridCheckboxProps = HtmlAtomProps & {
5
- children?: Snippet;
6
- };
7
- </script>
8
-
9
- <script lang="ts">
10
- import { DataGridBond } from './bond.svelte';
11
- import { DataGridTrBond } from './tr/bond.svelte';
12
- import { Checkbox } from '../checkbox';
13
- import type { HtmlAtomProps } from '../atom';
14
-
15
- const datagridBond = DataGridBond.get();
16
- const datagridTrBond = DataGridTrBond.get();
17
-
18
- let {
19
- class: klass = '',
20
- value = undefined,
21
- checked = $bindable(false),
22
- onclick = undefined,
23
- onchange = undefined,
24
- onmount = undefined,
25
- ondestroy = undefined,
26
- animate = undefined,
27
- enter = undefined,
28
- exit = undefined,
29
- initial = undefined,
30
- ...restProps
31
- }: DatagridCheckboxProps = $props();
32
-
33
- const id = $derived(datagridTrBond.state.id);
34
-
35
- const isAllRowsSelected = $derived(
36
- datagridBond.state.selectedRows.length > 0 &&
37
- datagridBond.state.rows.size === datagridBond.state.selectedRows.length
38
- );
39
-
40
- const isHeaderRow = $derived(datagridTrBond?.state.isHeader);
41
-
42
- const classNames = $derived(['datagrid-td-checkbox', '$preset', klass]);
43
-
44
- function handleInputTd(ev: Event, { checked = false }) {
45
- onchange?.(ev, { checked });
46
-
47
- if (!ev.defaultPrevented) {
48
- //
49
- if (checked) {
50
- datagridBond.state.select([id]);
51
- } else {
52
- datagridBond.state.unselect([id]);
53
- }
54
- }
55
- }
56
-
57
- function handleInputTh(ev: Event, { checked = false }) {
58
- onchange?.(ev, { checked });
59
-
60
- if (!ev.defaultPrevented) {
61
- const allRows = datagridBond.state.rows.keys().toArray();
62
-
63
- if (checked) {
64
- datagridBond.state.select(allRows);
65
- } else {
66
- datagridBond.state.unselect(allRows);
67
- }
68
- }
69
- }
70
- </script>
71
-
72
- {#if isHeaderRow}
73
- <!-- content here -->
74
- <Checkbox
75
- {value}
76
- {onclick}
77
- bond={datagridTrBond}
78
- preset="datagrid.checkbox"
79
- class={classNames}
80
- checked={isAllRowsSelected}
81
- enter={enter?.bind(datagridTrBond)}
82
- exit={exit?.bind(datagridTrBond)}
83
- initial={initial?.bind(datagridTrBond)}
84
- animate={animate?.bind(datagridTrBond)}
85
- onmount={onmount?.bind(datagridTrBond)}
86
- ondestroy={ondestroy?.bind(datagridTrBond)}
87
- oninput={handleInputTh}
88
- {...restProps}
89
- />
90
- {:else}
91
- <!-- else content here -->
92
- <Checkbox
93
- {value}
94
- {onclick}
95
- bond={datagridTrBond}
96
- preset="datagrid.checkbox"
97
- class={classNames}
98
- checked={datagridTrBond.state.isSelected}
99
- enter={enter?.bind(datagridTrBond)}
100
- exit={exit?.bind(datagridTrBond)}
101
- initial={initial?.bind(datagridTrBond)}
102
- animate={animate?.bind(datagridTrBond)}
103
- onmount={onmount?.bind(datagridTrBond)}
104
- ondestroy={ondestroy?.bind(datagridTrBond)}
105
- oninput={handleInputTd}
106
- {...restProps}
107
- />
108
- {/if}
1
+ <script lang="ts">
2
+ import { Checkbox } from '../checkbox';
3
+ import type { DatagridCheckboxProps } from './types';
4
+ import { DataGridBond } from './bond.svelte';
5
+ import { DataGridTrBond } from './tr/bond.svelte';
6
+ export type { DatagridCheckboxProps } from './types';
7
+
8
+ const datagridBond = DataGridBond.get();
9
+ const datagridTrBond = DataGridTrBond.get();
10
+
11
+ let {
12
+ class: klass = '',
13
+ value = undefined,
14
+ checked = $bindable(false),
15
+ onclick = undefined,
16
+ onchange = undefined,
17
+ onmount = undefined,
18
+ ondestroy = undefined,
19
+ animate = undefined,
20
+ enter = undefined,
21
+ exit = undefined,
22
+ initial = undefined,
23
+ ...restProps
24
+ }: DatagridCheckboxProps = $props();
25
+
26
+ const id = $derived(datagridTrBond.state.id);
27
+
28
+ const isAllRowsSelected = $derived(
29
+ datagridBond.state.selectedRows.length > 0 &&
30
+ datagridBond.state.rows.size === datagridBond.state.selectedRows.length
31
+ );
32
+
33
+ const isHeaderRow = $derived(datagridTrBond?.state.isHeader);
34
+
35
+ const classNames = $derived(['datagrid-td-checkbox', '$preset', klass]);
36
+
37
+ function handleInputTd(ev: Event, { checked = false }) {
38
+ onchange?.(ev, { checked });
39
+
40
+ if (!ev.defaultPrevented) {
41
+ //
42
+ if (checked) {
43
+ datagridBond.state.select([id]);
44
+ } else {
45
+ datagridBond.state.unselect([id]);
46
+ }
47
+ }
48
+ }
49
+
50
+ function handleInputTh(ev: Event, { checked = false }) {
51
+ onchange?.(ev, { checked });
52
+
53
+ if (!ev.defaultPrevented) {
54
+ const allRows = datagridBond.state.rows.keys().toArray();
55
+
56
+ if (checked) {
57
+ datagridBond.state.select(allRows);
58
+ } else {
59
+ datagridBond.state.unselect(allRows);
60
+ }
61
+ }
62
+ }
63
+ </script>
64
+
65
+ {#if isHeaderRow}
66
+ <!-- content here -->
67
+ <Checkbox
68
+ {value}
69
+ {onclick}
70
+ bond={datagridTrBond}
71
+ preset="datagrid.checkbox"
72
+ class={classNames}
73
+ checked={isAllRowsSelected}
74
+ enter={enter?.bind(datagridTrBond)}
75
+ exit={exit?.bind(datagridTrBond)}
76
+ initial={initial?.bind(datagridTrBond)}
77
+ animate={animate?.bind(datagridTrBond)}
78
+ onmount={onmount?.bind(datagridTrBond)}
79
+ ondestroy={ondestroy?.bind(datagridTrBond)}
80
+ oninput={handleInputTh}
81
+ {...restProps}
82
+ />
83
+ {:else}
84
+ <!-- else content here -->
85
+ <Checkbox
86
+ {value}
87
+ {onclick}
88
+ bond={datagridTrBond}
89
+ preset="datagrid.checkbox"
90
+ class={classNames}
91
+ checked={datagridTrBond.state.isSelected}
92
+ enter={enter?.bind(datagridTrBond)}
93
+ exit={exit?.bind(datagridTrBond)}
94
+ initial={initial?.bind(datagridTrBond)}
95
+ animate={animate?.bind(datagridTrBond)}
96
+ onmount={onmount?.bind(datagridTrBond)}
97
+ ondestroy={ondestroy?.bind(datagridTrBond)}
98
+ oninput={handleInputTd}
99
+ {...restProps}
100
+ />
101
+ {/if}
@@ -1,8 +1,6 @@
1
- import type { Snippet } from 'svelte';
2
- export type DatagridCheckboxProps = HtmlAtomProps & {
3
- children?: Snippet;
4
- };
5
- import type { HtmlAtomProps } from '../atom';
6
- declare const DatagridCheckbox: import("svelte").Component<DatagridCheckboxProps, {}, "checked">;
1
+ import type { DatagridCheckboxProps } from './types';
2
+ declare const DatagridCheckbox: import("svelte").Component<DatagridCheckboxProps, {
3
+ DatagridCheckboxProps: typeof DatagridCheckboxProps;
4
+ }, "checked">;
7
5
  type DatagridCheckbox = ReturnType<typeof DatagridCheckbox>;
8
6
  export default DatagridCheckbox;
@@ -1,34 +1,34 @@
1
- <script lang="ts" generics="T extends keyof HTMLElementTagNameMap, B extends Base = Base">
2
- import { DataGridBond } from './bond.svelte';
3
- import type { DatagridFooterProps } from './types';
4
- import { HtmlAtom, type Base } from '../atom';
5
-
6
- const bond = DataGridBond.get();
7
-
8
- let {
9
- class: klass = '',
10
- children = undefined,
11
- onmount = undefined,
12
- ondestroy = undefined,
13
- animate = undefined,
14
- enter = undefined,
15
- exit = undefined,
16
- initial = undefined,
17
- ...restProps
18
- }: DatagridFooterProps<T> = $props();
19
- </script>
20
-
21
- <HtmlAtom
22
- {bond}
23
- preset="datagrid.footer"
24
- class={['border-border', '$preset', klass, 'contents']}
25
- enter={enter?.bind(bond.state)}
26
- exit={exit?.bind(bond.state)}
27
- initial={initial?.bind(bond.state)}
28
- animate={animate?.bind(bond.state)}
29
- onmount={onmount?.bind(bond.state)}
30
- ondestroy={ondestroy?.bind(bond.state)}
31
- {...restProps}
32
- >
33
- {@render children?.({ datagrid: bond })}
34
- </HtmlAtom>
1
+ <script lang="ts" generics="T extends keyof HTMLElementTagNameMap, B extends Base = Base">
2
+ import { HtmlAtom, type Base } from '../atom';
3
+ import { DataGridBond } from './bond.svelte';
4
+ import type { DatagridFooterProps } from './types';
5
+
6
+ const bond = DataGridBond.get();
7
+
8
+ let {
9
+ class: klass = '',
10
+ children = undefined,
11
+ onmount = undefined,
12
+ ondestroy = undefined,
13
+ animate = undefined,
14
+ enter = undefined,
15
+ exit = undefined,
16
+ initial = undefined,
17
+ ...restProps
18
+ }: DatagridFooterProps<T> = $props();
19
+ </script>
20
+
21
+ <HtmlAtom
22
+ {bond}
23
+ preset="datagrid.footer"
24
+ class={['border-border', '$preset', klass, 'contents']}
25
+ enter={enter?.bind(bond.state)}
26
+ exit={exit?.bind(bond.state)}
27
+ initial={initial?.bind(bond.state)}
28
+ animate={animate?.bind(bond.state)}
29
+ onmount={onmount?.bind(bond.state)}
30
+ ondestroy={ondestroy?.bind(bond.state)}
31
+ {...restProps}
32
+ >
33
+ {@render children?.({ datagrid: bond })}
34
+ </HtmlAtom>
@@ -1,5 +1,5 @@
1
- import type { DatagridFooterProps } from './types';
2
1
  import { type Base } from '../atom';
2
+ import type { DatagridFooterProps } from './types';
3
3
  declare function $$render<T extends keyof HTMLElementTagNameMap, B extends Base = Base>(): {
4
4
  props: DatagridFooterProps<T>;
5
5
  exports: {};
@@ -1,49 +1,49 @@
1
- <script lang="ts" generics="T extends keyof HTMLElementTagNameMap, B extends Base = Base">
2
- import { setDatagridHeaderContext } from './context';
3
- import type { DatagridHeaderProps } from './types';
4
- import { DataGridBond } from './bond.svelte';
5
- import { HtmlAtom, type Base } from '../atom';
6
-
7
- const bond = DataGridBond.get();
8
-
9
- let {
10
- class: klass = '',
11
- children = undefined,
12
- onmount = undefined,
13
- ondestroy = undefined,
14
- animate = undefined,
15
- enter = undefined,
16
- exit = undefined,
17
- initial = undefined,
18
- ...restProps
19
- }: DatagridHeaderProps<T> = $props();
20
-
21
- const header = $state(true);
22
-
23
- const derived_header = $derived({
24
- data: {
25
- header
26
- }
27
- });
28
-
29
- setDatagridHeaderContext({
30
- get derived() {
31
- return derived_header;
32
- }
33
- });
34
- </script>
35
-
36
- <HtmlAtom
37
- {bond}
38
- preset="datagrid.header"
39
- class={['border-border col-span-full grid grid-cols-subgrid', '$preset', klass]}
40
- enter={enter?.bind(bond.state)}
41
- exit={exit?.bind(bond.state)}
42
- initial={initial?.bind(bond.state)}
43
- animate={animate?.bind(bond.state)}
44
- onmount={onmount?.bind(bond.state)}
45
- ondestroy={ondestroy?.bind(bond.state)}
46
- {...restProps}
47
- >
48
- {@render children?.({ datagrid: bond })}
49
- </HtmlAtom>
1
+ <script lang="ts" generics="T extends keyof HTMLElementTagNameMap, B extends Base = Base">
2
+ import { HtmlAtom, type Base } from '../atom';
3
+ import { setDatagridHeaderContext } from './context';
4
+ import { DataGridBond } from './bond.svelte';
5
+ import type { DatagridHeaderProps } from './types';
6
+
7
+ const bond = DataGridBond.get();
8
+
9
+ let {
10
+ class: klass = '',
11
+ children = undefined,
12
+ onmount = undefined,
13
+ ondestroy = undefined,
14
+ animate = undefined,
15
+ enter = undefined,
16
+ exit = undefined,
17
+ initial = undefined,
18
+ ...restProps
19
+ }: DatagridHeaderProps<T> = $props();
20
+
21
+ const header = $state(true);
22
+
23
+ const derived_header = $derived({
24
+ data: {
25
+ header
26
+ }
27
+ });
28
+
29
+ setDatagridHeaderContext({
30
+ get derived() {
31
+ return derived_header;
32
+ }
33
+ });
34
+ </script>
35
+
36
+ <HtmlAtom
37
+ {bond}
38
+ preset="datagrid.header"
39
+ class={['border-border col-span-full grid grid-cols-subgrid', '$preset', klass]}
40
+ enter={enter?.bind(bond.state)}
41
+ exit={exit?.bind(bond.state)}
42
+ initial={initial?.bind(bond.state)}
43
+ animate={animate?.bind(bond.state)}
44
+ onmount={onmount?.bind(bond.state)}
45
+ ondestroy={ondestroy?.bind(bond.state)}
46
+ {...restProps}
47
+ >
48
+ {@render children?.({ datagrid: bond })}
49
+ </HtmlAtom>
@@ -1,5 +1,5 @@
1
- import type { DatagridHeaderProps } from './types';
2
1
  import { type Base } from '../atom';
2
+ import type { DatagridHeaderProps } from './types';
3
3
  declare function $$render<T extends keyof HTMLElementTagNameMap, B extends Base = Base>(): {
4
4
  props: DatagridHeaderProps<T>;
5
5
  exports: {};
@@ -1,59 +1,59 @@
1
- <script lang="ts" generics="T extends keyof HTMLElementTagNameMap, B extends Base = Base">
2
- import { DataGridBond, DataGridBondState, type DataGridStateProps } from './bond.svelte';
3
- import type { DatagridRootProps } from './types';
4
- import { defineProperty, defineState } from '../../utils';
5
- import { HtmlAtom, type Base } from '../atom';
6
-
7
- import './datagrid.css';
8
-
9
- let {
10
- class: klass = '',
11
- values = $bindable([]),
12
- template = undefined,
13
- data = [],
14
- factory = _factory,
15
- children = undefined,
16
- onmount = undefined,
17
- ondestroy = undefined,
18
- animate = undefined,
19
- enter = undefined,
20
- exit = undefined,
21
- initial = undefined,
22
- ...restProps
23
- }: DatagridRootProps<T> = $props();
24
-
25
- const bondProps = defineState<DataGridStateProps<T>>([
26
- defineProperty('template', () => template),
27
- defineProperty(
28
- 'values',
29
- () => values,
30
- (v) => (values = v)
31
- )
32
- ]);
33
- const bond = factory(bondProps).share();
34
-
35
- function _factory(props: typeof bondProps) {
36
- const dataGridState = new DataGridBondState(() => props);
37
- return new DataGridBond(dataGridState);
38
- }
39
-
40
- export function getBond() {
41
- return bond;
42
- }
43
- </script>
44
-
45
- <HtmlAtom
46
- {bond}
47
- preset="datagrid"
48
- class={['border-border', 'datagrid-root w-full gap-x-0 gap-y-0', '$preset', klass]}
49
- style="--template-columns:{bond.state.template}"
50
- enter={enter?.bind(bond.state)}
51
- exit={exit?.bind(bond.state)}
52
- initial={initial?.bind(bond.state)}
53
- animate={animate?.bind(bond.state)}
54
- onmount={onmount?.bind(bond.state)}
55
- ondestroy={ondestroy?.bind(bond.state)}
56
- {...restProps}
57
- >
58
- {@render children?.({ datagrid: bond })}
59
- </HtmlAtom>
1
+ <script lang="ts" generics="T extends keyof HTMLElementTagNameMap, B extends Base = Base">
2
+ import { defineProperty, defineState } from '../../utils';
3
+ import { HtmlAtom, type Base } from '../atom';
4
+ import { DataGridBond, DataGridBondState, type DataGridStateProps } from './bond.svelte';
5
+ import type { DatagridRootProps } from './types';
6
+
7
+ import './datagrid.css';
8
+
9
+ let {
10
+ class: klass = '',
11
+ values = $bindable([]),
12
+ template = undefined,
13
+ data = [],
14
+ factory = _factory,
15
+ children = undefined,
16
+ onmount = undefined,
17
+ ondestroy = undefined,
18
+ animate = undefined,
19
+ enter = undefined,
20
+ exit = undefined,
21
+ initial = undefined,
22
+ ...restProps
23
+ }: DatagridRootProps<T> = $props();
24
+
25
+ const bondProps = defineState<DataGridStateProps<T>>([
26
+ defineProperty('template', () => template),
27
+ defineProperty(
28
+ 'values',
29
+ () => values,
30
+ (v) => (values = v)
31
+ )
32
+ ]);
33
+ const bond = factory(bondProps).share();
34
+
35
+ function _factory(props: typeof bondProps) {
36
+ const dataGridState = new DataGridBondState(() => props);
37
+ return new DataGridBond(dataGridState);
38
+ }
39
+
40
+ export function getBond() {
41
+ return bond;
42
+ }
43
+ </script>
44
+
45
+ <HtmlAtom
46
+ {bond}
47
+ preset="datagrid"
48
+ class={['border-border', 'datagrid-root w-full gap-x-0 gap-y-0', '$preset', klass]}
49
+ style="--template-columns:{bond.state.template}"
50
+ enter={enter?.bind(bond.state)}
51
+ exit={exit?.bind(bond.state)}
52
+ initial={initial?.bind(bond.state)}
53
+ animate={animate?.bind(bond.state)}
54
+ onmount={onmount?.bind(bond.state)}
55
+ ondestroy={ondestroy?.bind(bond.state)}
56
+ {...restProps}
57
+ >
58
+ {@render children?.({ datagrid: bond })}
59
+ </HtmlAtom>
@@ -1,5 +1,5 @@
1
- import type { DatagridRootProps } from './types';
2
1
  import { type Base } from '../atom';
2
+ import type { DatagridRootProps } from './types';
3
3
  import './datagrid.css';
4
4
  declare function $$render<T extends keyof HTMLElementTagNameMap, B extends Base = Base>(): {
5
5
  props: DatagridRootProps<T>;