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

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 (186) hide show
  1. package/README.md +852 -645
  2. package/dist/components/accordion/accordion-root.svelte +61 -61
  3. package/dist/components/accordion/item/accordion-item-body.svelte +42 -42
  4. package/dist/components/accordion/item/accordion-item-header.svelte +50 -50
  5. package/dist/components/accordion/item/accordion-item-indicator.svelte +50 -50
  6. package/dist/components/accordion/item/accordion-item-root.svelte +65 -65
  7. package/dist/components/alert/alert-actions.svelte +43 -42
  8. package/dist/components/alert/alert-close-button.svelte +70 -72
  9. package/dist/components/alert/alert-content.svelte +43 -42
  10. package/dist/components/alert/alert-description.svelte +42 -41
  11. package/dist/components/alert/alert-icon.svelte +47 -46
  12. package/dist/components/alert/alert-root.svelte +103 -102
  13. package/dist/components/alert/alert-title.svelte +42 -41
  14. package/dist/components/alert/alert.stories.svelte +384 -23
  15. package/dist/components/alert/alert.stories.svelte.d.ts +2 -5
  16. package/dist/components/atom/html-atom.svelte +207 -201
  17. package/dist/components/atom/html-atom.svelte.d.ts +1 -1
  18. package/dist/components/atom/snippet-renderer.svelte +5 -0
  19. package/dist/components/atom/snippet-renderer.svelte.d.ts +5 -0
  20. package/dist/components/avatar/avatar.stories.svelte.d.ts +1 -1
  21. package/dist/components/badge/badge.stories.svelte.d.ts +1 -1
  22. package/dist/components/breadcrumb/breadcrumb.stories.svelte.d.ts +1 -1
  23. package/dist/components/button/button.stories.svelte +17 -14
  24. package/dist/components/calendar/atoms.d.ts +5 -0
  25. package/dist/components/calendar/atoms.js +5 -0
  26. package/dist/components/calendar/bond.svelte.d.ts +72 -0
  27. package/dist/components/calendar/bond.svelte.js +132 -0
  28. package/dist/components/calendar/calendar-body.svelte +107 -0
  29. package/dist/components/calendar/calendar-body.svelte.d.ts +8 -0
  30. package/dist/components/calendar/calendar-day.svelte +96 -0
  31. package/dist/components/calendar/calendar-day.svelte.d.ts +4 -0
  32. package/dist/components/calendar/calendar-header.svelte +29 -0
  33. package/dist/components/calendar/calendar-header.svelte.d.ts +6 -0
  34. package/dist/components/calendar/calendar-root.svelte +206 -0
  35. package/dist/components/calendar/calendar-root.svelte.d.ts +8 -0
  36. package/dist/components/calendar/calendar-week-day.svelte +34 -0
  37. package/dist/components/calendar/calendar-week-day.svelte.d.ts +9 -0
  38. package/dist/components/calendar/calendar.css +26 -0
  39. package/dist/components/calendar/calendar.stories.svelte +31 -0
  40. package/dist/components/calendar/calendar.stories.svelte.d.ts +26 -0
  41. package/dist/components/calendar/index.d.ts +4 -0
  42. package/dist/components/calendar/index.js +4 -0
  43. package/dist/components/calendar/runes.svelte.d.ts +3 -0
  44. package/dist/components/calendar/runes.svelte.js +25 -0
  45. package/dist/components/calendar/types.d.ts +62 -0
  46. package/dist/components/calendar/types.js +1 -0
  47. package/dist/components/card/card-body.svelte +39 -39
  48. package/dist/components/card/card-description.svelte +41 -41
  49. package/dist/components/card/card-footer.svelte +41 -41
  50. package/dist/components/card/card-header.svelte +41 -41
  51. package/dist/components/card/card-media.svelte +41 -41
  52. package/dist/components/card/card-root.svelte +91 -91
  53. package/dist/components/card/card-subtitle.svelte +41 -41
  54. package/dist/components/card/card-title.svelte +45 -45
  55. package/dist/components/collapsible/collapsible-body.svelte +39 -39
  56. package/dist/components/collapsible/collapsible-header.svelte +39 -39
  57. package/dist/components/collapsible/collapsible-indicator.svelte +50 -50
  58. package/dist/components/collapsible/collapsible-root.svelte +66 -66
  59. package/dist/components/combobox/combobox-root.svelte +65 -65
  60. package/dist/components/container/container.stories.svelte.d.ts +1 -1
  61. package/dist/components/contextmenu/contextmenu-trigger.svelte.d.ts +1 -1
  62. package/dist/components/datagrid/bond.svelte.d.ts +2 -2
  63. package/dist/components/datagrid/datagrid-body.svelte +37 -37
  64. package/dist/components/datagrid/datagrid-checkbox.svelte +101 -101
  65. package/dist/components/datagrid/datagrid-footer.svelte +34 -34
  66. package/dist/components/datagrid/datagrid-header.svelte +49 -49
  67. package/dist/components/datagrid/datagrid-root.svelte +2 -2
  68. package/dist/components/datagrid/datagrid.css +5 -47
  69. package/dist/components/datagrid/td/datagrid-td.svelte +66 -66
  70. package/dist/components/datagrid/th/datagrid-th.svelte +106 -106
  71. package/dist/components/datagrid/tr/datagrid-tr.svelte +88 -88
  72. package/dist/components/datagrid/types.d.ts +1 -1
  73. package/dist/components/date-picker/atoms.d.ts +3 -0
  74. package/dist/components/date-picker/atoms.js +3 -0
  75. package/dist/components/date-picker/bond.svelte.d.ts +67 -0
  76. package/dist/components/date-picker/bond.svelte.js +174 -0
  77. package/dist/components/date-picker/date-picker-calendar.svelte +67 -0
  78. package/dist/components/date-picker/date-picker-calendar.svelte.d.ts +4 -0
  79. package/dist/components/date-picker/date-picker-header.svelte +100 -0
  80. package/dist/components/date-picker/date-picker-header.svelte.d.ts +4 -0
  81. package/dist/components/date-picker/date-picker-months.svelte +142 -0
  82. package/dist/components/date-picker/date-picker-months.svelte.d.ts +4 -0
  83. package/dist/components/date-picker/date-picker-root.svelte +95 -0
  84. package/dist/components/date-picker/date-picker-root.svelte.d.ts +4 -0
  85. package/dist/components/date-picker/date-picker-years.svelte +205 -0
  86. package/dist/components/date-picker/date-picker-years.svelte.d.ts +4 -0
  87. package/dist/components/date-picker/date-picker.stories.svelte +42 -0
  88. package/dist/components/date-picker/date-picker.stories.svelte.d.ts +3 -0
  89. package/dist/components/date-picker/index.d.ts +3 -0
  90. package/dist/components/date-picker/index.js +3 -0
  91. package/dist/components/date-picker/types.d.ts +53 -0
  92. package/dist/components/date-picker/types.js +1 -0
  93. package/dist/components/dialog/dialog-body.svelte +39 -39
  94. package/dist/components/dialog/dialog-close-button.svelte +58 -58
  95. package/dist/components/dialog/dialog-content.svelte +1 -1
  96. package/dist/components/dialog/dialog-description.svelte +40 -40
  97. package/dist/components/dialog/dialog-footer.svelte +39 -39
  98. package/dist/components/dialog/dialog-header.svelte +39 -39
  99. package/dist/components/dialog/dialog-root.svelte +110 -110
  100. package/dist/components/dialog/dialog-title.svelte +41 -41
  101. package/dist/components/drawer/drawer-backdrop.svelte +38 -38
  102. package/dist/components/drawer/drawer-body.svelte +42 -42
  103. package/dist/components/drawer/drawer-content.svelte +42 -42
  104. package/dist/components/drawer/drawer-description.svelte +44 -44
  105. package/dist/components/drawer/drawer-footer.svelte +41 -41
  106. package/dist/components/drawer/drawer-header.svelte +43 -43
  107. package/dist/components/drawer/drawer-root.svelte +93 -93
  108. package/dist/components/drawer/drawer-title.svelte +44 -44
  109. package/dist/components/dropdown/dropdown-query.svelte +54 -54
  110. package/dist/components/dropdown/dropdown-root.svelte +59 -59
  111. package/dist/components/dropdown/dropdown-trigger.svelte +41 -41
  112. package/dist/components/dropdown/dropdown-value.svelte +60 -60
  113. package/dist/components/element/types.d.ts +1 -1
  114. package/dist/components/form/bond.svelte.d.ts +1 -1
  115. package/dist/components/form/field/field-control.svelte +48 -48
  116. package/dist/components/form/field/field-label.svelte +24 -24
  117. package/dist/components/form/field/field-root.svelte +59 -59
  118. package/dist/components/icon/icon.svelte +44 -44
  119. package/dist/components/image/image.stories.svelte.d.ts +1 -1
  120. package/dist/components/index.d.ts +4 -0
  121. package/dist/components/index.js +4 -0
  122. package/dist/components/input/input-control.svelte +103 -103
  123. package/dist/components/label/label.svelte +25 -25
  124. package/dist/components/lazy/index.d.ts +1 -0
  125. package/dist/components/lazy/index.js +1 -0
  126. package/dist/components/lazy/lazy.stories.svelte +35 -0
  127. package/dist/components/lazy/lazy.stories.svelte.d.ts +19 -0
  128. package/dist/components/lazy/lazy.svelte +28 -0
  129. package/dist/components/lazy/lazy.svelte.d.ts +5 -0
  130. package/dist/components/lazy/types.d.ts +10 -0
  131. package/dist/components/lazy/types.js +1 -0
  132. package/dist/components/menu/menu-list.svelte +40 -39
  133. package/dist/components/menu/menu-list.svelte.d.ts +1 -0
  134. package/dist/components/popover/popover-arrow.svelte +111 -111
  135. package/dist/components/popover/popover-content.svelte +178 -139
  136. package/dist/components/popover/popover-root.svelte +16 -17
  137. package/dist/components/popover/popover.stories.svelte +0 -15
  138. package/dist/components/portal/portal-root.svelte +83 -83
  139. package/dist/components/portal/teleport.svelte +50 -50
  140. package/dist/components/qr-code/index.d.ts +2 -0
  141. package/dist/components/qr-code/index.js +2 -0
  142. package/dist/components/qr-code/qr-code.stories.svelte +27 -0
  143. package/dist/components/qr-code/qr-code.stories.svelte.d.ts +26 -0
  144. package/dist/components/qr-code/qr-code.svelte +75 -0
  145. package/dist/components/qr-code/qr-code.svelte.d.ts +4 -0
  146. package/dist/components/qr-code/types.d.ts +14 -0
  147. package/dist/components/qr-code/types.js +1 -0
  148. package/dist/components/radio/radio.svelte +109 -109
  149. package/dist/components/radio/types.svelte.d.ts +1 -1
  150. package/dist/components/scrollable/scrollable-container.svelte +82 -82
  151. package/dist/components/scrollable/scrollable-content.svelte +41 -41
  152. package/dist/components/scrollable/scrollable-root.svelte +100 -100
  153. package/dist/components/scrollable/scrollable-thumb.svelte +75 -75
  154. package/dist/components/scrollable/scrollable-track.svelte +59 -59
  155. package/dist/components/scrollable/scrollable.stories.svelte.d.ts +1 -1
  156. package/dist/components/sidebar/bond.svelte.d.ts +0 -5
  157. package/dist/components/sidebar/bond.svelte.js +1 -12
  158. package/dist/components/sidebar/sidebar-content.svelte +39 -39
  159. package/dist/components/sidebar/sidebar-content.svelte.d.ts +2 -2
  160. package/dist/components/sidebar/sidebar-root.svelte +41 -68
  161. package/dist/components/sidebar/sidebar-root.svelte.d.ts +2 -2
  162. package/dist/components/sidebar/sidebar.stories.svelte +54 -52
  163. package/dist/components/sidebar/types.d.ts +6 -6
  164. package/dist/components/tabs/tab/tab-body.svelte +52 -52
  165. package/dist/components/tabs/tab/tab-description.svelte +41 -41
  166. package/dist/components/tabs/tab/tab-header.svelte +71 -71
  167. package/dist/components/tabs/tab/tab-root.svelte +86 -86
  168. package/dist/components/toast/toast-description.svelte +38 -38
  169. package/dist/components/toast/toast-root.svelte +61 -61
  170. package/dist/components/toast/toast-title.svelte +35 -35
  171. package/dist/components/tree/tree-body.svelte +39 -39
  172. package/dist/components/tree/tree-header.svelte +54 -54
  173. package/dist/components/tree/tree-indicator.svelte +40 -40
  174. package/dist/components/tree/tree-root.svelte +65 -65
  175. package/dist/components/virtual/virtual-root.svelte +239 -239
  176. package/dist/context/preset.svelte.d.ts +1 -1
  177. package/dist/icons/icon-arrow-down.svelte.d.ts +1 -1
  178. package/dist/icons/icon-checkmark.svelte.d.ts +1 -1
  179. package/dist/icons/icon-close.svelte.d.ts +1 -1
  180. package/dist/icons/icon-more-vert.svelte.d.ts +1 -1
  181. package/dist/runes/container.svelte.d.ts +2 -2
  182. package/dist/shared/bond.svelte.d.ts +1 -1
  183. package/dist/utils/state.d.ts +1 -1
  184. package/dist/utils/state.js +2 -1
  185. package/llm/variants.md +650 -103
  186. package/package.json +465 -437
@@ -1,66 +1,66 @@
1
- <script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
2
- import { nanoid } from 'nanoid';
3
- import { defineProperty, defineState } from '../../utils';
4
- import { HtmlAtom, type Base } from '../atom';
5
- import { CollapsibleBond, CollapsibleState, type CollapsibleStateProps } from './bond.svelte';
6
- import type { CollapsibleRootProps } from './types';
7
-
8
- let {
9
- open = $bindable(false),
10
- class: klass = '',
11
- value = nanoid(),
12
- data = undefined,
13
- disabled = false,
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
- }: CollapsibleRootProps<E, B> = $props();
24
-
25
- const bondProps = defineState<CollapsibleStateProps>([
26
- defineProperty(
27
- 'open',
28
- () => open,
29
- (v) => (open = v)
30
- ),
31
- defineProperty('data', () => data),
32
- defineProperty('disabled', () => disabled),
33
- defineProperty('value', () => value)
34
- ]);
35
-
36
- const bond = _factory(bondProps).share();
37
-
38
- const rootProps = $derived({
39
- ...bond.root(),
40
- ...restProps
41
- });
42
-
43
- function _factory(props: typeof bondProps) {
44
- const bondState = new CollapsibleState(() => props);
45
- return new CollapsibleBond(bondState).share();
46
- }
47
-
48
- export function getBond() {
49
- return bond;
50
- }
51
- </script>
52
-
53
- <HtmlAtom
54
- {bond}
55
- preset="collapsible"
56
- class={['border-border flex w-full flex-col overflow-hidden', '$preset', klass]}
57
- onmount={onmount?.bind(bond.state)}
58
- ondestroy={ondestroy?.bind(bond.state)}
59
- animate={animate?.bind(bond.state)}
60
- enter={enter?.bind(bond.state)}
61
- exit={exit?.bind(bond.state)}
62
- initial={initial?.bind(bond.state)}
63
- {...rootProps}
64
- >
65
- {@render children?.({ collapsible: bond })}
66
- </HtmlAtom>
1
+ <script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
2
+ import { nanoid } from 'nanoid';
3
+ import { defineProperty, defineState } from '../../utils';
4
+ import { HtmlAtom, type Base } from '../atom';
5
+ import { CollapsibleBond, CollapsibleState, type CollapsibleStateProps } from './bond.svelte';
6
+ import type { CollapsibleRootProps } from './types';
7
+
8
+ let {
9
+ open = $bindable(false),
10
+ class: klass = '',
11
+ value = nanoid(),
12
+ data = undefined,
13
+ disabled = false,
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
+ }: CollapsibleRootProps<E, B> = $props();
24
+
25
+ const bondProps = defineState<CollapsibleStateProps>([
26
+ defineProperty(
27
+ 'open',
28
+ () => open,
29
+ (v) => (open = v)
30
+ ),
31
+ defineProperty('data', () => data),
32
+ defineProperty('disabled', () => disabled),
33
+ defineProperty('value', () => value)
34
+ ]);
35
+
36
+ const bond = _factory(bondProps).share();
37
+
38
+ const rootProps = $derived({
39
+ ...bond.root(),
40
+ ...restProps
41
+ });
42
+
43
+ function _factory(props: typeof bondProps) {
44
+ const bondState = new CollapsibleState(() => props);
45
+ return new CollapsibleBond(bondState).share();
46
+ }
47
+
48
+ export function getBond() {
49
+ return bond;
50
+ }
51
+ </script>
52
+
53
+ <HtmlAtom
54
+ {bond}
55
+ preset="collapsible"
56
+ class={['border-border flex w-full flex-col overflow-hidden', '$preset', klass]}
57
+ onmount={onmount?.bind(bond.state)}
58
+ ondestroy={ondestroy?.bind(bond.state)}
59
+ animate={animate?.bind(bond.state)}
60
+ enter={enter?.bind(bond.state)}
61
+ exit={exit?.bind(bond.state)}
62
+ initial={initial?.bind(bond.state)}
63
+ {...rootProps}
64
+ >
65
+ {@render children?.({ collapsible: bond })}
66
+ </HtmlAtom>
@@ -1,65 +1,65 @@
1
- <script lang="ts" generics="D">
2
- import type { ComboboxRootProps } from './types';
3
- import { defineProperty, defineState } from '../../utils';
4
- import { ComboboxBond, ComboboxBondState, type ComboboxBondProps } from './bond.svelte';
5
-
6
- let {
7
- open = $bindable(false),
8
- value = $bindable(),
9
- values = $bindable(),
10
- query = $bindable(),
11
- text = $bindable(),
12
- multiple = false,
13
- disabled = false,
14
- placements = ['bottom-start', 'bottom-end', 'top-start', 'top-end'],
15
- placement = 'bottom-start',
16
- offset = 4,
17
- factory = _factory,
18
- children = undefined,
19
- ...restProps
20
- }: ComboboxRootProps = $props();
21
-
22
- const bondProps = defineState<ComboboxBondProps>(
23
- [
24
- defineProperty(
25
- 'open',
26
- () => open,
27
- (v) => {
28
- open = v;
29
- }
30
- ),
31
- defineProperty(
32
- 'values',
33
- () => (multiple ? values : [value]),
34
- (v) => {
35
- values = v;
36
- value = v[0];
37
- }
38
- ),
39
- defineProperty(
40
- 'query',
41
- () => query,
42
- (v) => (query = v)
43
- ),
44
- defineProperty(
45
- 'text',
46
- () => text,
47
- (v) => (text = v)
48
- )
49
- ],
50
- () => ({ disabled, multiple, placements, offset, placement: 'bottom-start', ...restProps })
51
- );
52
- const bond = factory(bondProps).share();
53
-
54
- function _factory(props: typeof bondProps) {
55
- const bondState = new ComboboxBondState<D>(() => props);
56
-
57
- return new ComboboxBond(bondState).share();
58
- }
59
-
60
- export function getBond() {
61
- return bond;
62
- }
63
- </script>
64
-
65
- {@render children?.({ combobox: bond })}
1
+ <script lang="ts" generics="D">
2
+ import type { ComboboxRootProps } from './types';
3
+ import { defineProperty, defineState } from '../../utils';
4
+ import { ComboboxBond, ComboboxBondState, type ComboboxBondProps } from './bond.svelte';
5
+
6
+ let {
7
+ open = $bindable(false),
8
+ value = $bindable(),
9
+ values = $bindable(),
10
+ query = $bindable(),
11
+ text = $bindable(),
12
+ multiple = false,
13
+ disabled = false,
14
+ placements = ['bottom-start', 'bottom-end', 'top-start', 'top-end'],
15
+ placement = 'bottom-start',
16
+ offset = 4,
17
+ factory = _factory,
18
+ children = undefined,
19
+ ...restProps
20
+ }: ComboboxRootProps = $props();
21
+
22
+ const bondProps = defineState<ComboboxBondProps>(
23
+ [
24
+ defineProperty(
25
+ 'open',
26
+ () => open,
27
+ (v) => {
28
+ open = v;
29
+ }
30
+ ),
31
+ defineProperty(
32
+ 'values',
33
+ () => (multiple ? values : [value]),
34
+ (v) => {
35
+ values = v;
36
+ value = v[0];
37
+ }
38
+ ),
39
+ defineProperty(
40
+ 'query',
41
+ () => query,
42
+ (v) => (query = v)
43
+ ),
44
+ defineProperty(
45
+ 'text',
46
+ () => text,
47
+ (v) => (text = v)
48
+ )
49
+ ],
50
+ () => ({ disabled, multiple, placements, offset, placement: 'bottom-start', ...restProps })
51
+ );
52
+ const bond = factory(bondProps).share();
53
+
54
+ function _factory(props: typeof bondProps) {
55
+ const bondState = new ComboboxBondState<D>(() => props);
56
+
57
+ return new ComboboxBond(bondState).share();
58
+ }
59
+
60
+ export function getBond() {
61
+ return bond;
62
+ }
63
+ </script>
64
+
65
+ {@render children?.({ combobox: bond })}
@@ -4,7 +4,7 @@ type Container = SvelteComponent<{
4
4
  }, {
5
5
  [evt: string]: CustomEvent<any>;
6
6
  }, {}> & {
7
- $$bindings?: string | undefined;
7
+ $$bindings?: string;
8
8
  };
9
9
  declare const Container: $$__sveltets_2_IsomorphicComponent<{
10
10
  [x: string]: never;
@@ -4,7 +4,7 @@ type ContextmenuTrigger = SvelteComponent<{
4
4
  }, {
5
5
  [evt: string]: CustomEvent<any>;
6
6
  }, {}> & {
7
- $$bindings?: string | undefined;
7
+ $$bindings?: string;
8
8
  };
9
9
  declare const ContextmenuTrigger: $$__sveltets_2_IsomorphicComponent<{
10
10
  [x: string]: never;
@@ -28,8 +28,8 @@ export declare class DataGridBondState<T> extends BondState<DataGridStateProps<T
28
28
  get rows(): Map<string, DataGridTrBond<T, import("./tr").DataGridTrBondProps<T>, import("./tr").DataGridTrBondState<T, import("./tr").DataGridTrBondProps<T>>, import("./tr").DataGridTrBondElements>>;
29
29
  get columns(): Map<string, DataGridThBond<T>>;
30
30
  get selectedRows(): DataGridTrBond<T, import("./tr").DataGridTrBondProps<T>, import("./tr").DataGridTrBondState<T, import("./tr").DataGridTrBondProps<T>>, import("./tr").DataGridTrBondElements>[];
31
- get sortableColumns(): IteratorObject<DataGridThBond<T>, undefined, unknown>;
32
- get template(): string;
31
+ get sortableColumns(): any;
32
+ get template(): any;
33
33
  mountColumn(id: string, item: DataGridThBond<T>): () => void;
34
34
  unmountColumn(id: string): void;
35
35
  mountRow(id: string, item: DataGridTrBond<T>): () => void;
@@ -1,37 +1,37 @@
1
- <script lang="ts" generics="T, E extends HtmlElementTagName, B extends Base = Base">
2
- import type { DatagridBodyProps } from './types';
3
- import { DataGridBond } from './bond.svelte';
4
- import { HtmlAtom, type Base } from '../atom';
5
- import type { HtmlElementTagName } from '../element';
6
- export type { HtmlElementTagName } from '../element';
7
- export type { DatagridBodyProps } from './types';
8
-
9
- const bond = DataGridBond.get();
10
-
11
- let {
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
- }: DatagridBodyProps<T, E, B> = $props();
22
- </script>
23
-
24
- <HtmlAtom
25
- {bond}
26
- preset="datagrid.body"
27
- class={['border-border', '$preset', klass, 'contents']}
28
- enter={enter?.bind(bond.state)}
29
- exit={exit?.bind(bond.state)}
30
- initial={initial?.bind(bond.state)}
31
- animate={animate?.bind(bond.state)}
32
- onmount={onmount?.bind(bond.state)}
33
- ondestroy={ondestroy?.bind(bond.state)}
34
- {...restProps}
35
- >
36
- {@render children?.({ datagrid: bond })}
37
- </HtmlAtom>
1
+ <script lang="ts" generics="T, E extends HtmlElementTagName, B extends Base = Base">
2
+ import type { DatagridBodyProps } from './types';
3
+ import { DataGridBond } from './bond.svelte';
4
+ import { HtmlAtom, type Base } from '../atom';
5
+ import type { HtmlElementTagName } from '../element';
6
+ export type { HtmlElementTagName } from '../element';
7
+ export type { DatagridBodyProps } from './types';
8
+
9
+ const bond = DataGridBond.get();
10
+
11
+ let {
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
+ }: DatagridBodyProps<T, E, B> = $props();
22
+ </script>
23
+
24
+ <HtmlAtom
25
+ {bond}
26
+ preset="datagrid.body"
27
+ class={['border-border', '$preset', klass, 'contents']}
28
+ enter={enter?.bind(bond.state)}
29
+ exit={exit?.bind(bond.state)}
30
+ initial={initial?.bind(bond.state)}
31
+ animate={animate?.bind(bond.state)}
32
+ onmount={onmount?.bind(bond.state)}
33
+ ondestroy={ondestroy?.bind(bond.state)}
34
+ {...restProps}
35
+ >
36
+ {@render children?.({ datagrid: bond })}
37
+ </HtmlAtom>
@@ -1,101 +1,101 @@
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
+ <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,34 +1,34 @@
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
+ <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>