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

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 (163) hide show
  1. package/README.md +856 -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 +2 -1
  8. package/dist/components/alert/alert-close-button.svelte +18 -20
  9. package/dist/components/alert/alert-content.svelte +2 -1
  10. package/dist/components/alert/alert-description.svelte +2 -1
  11. package/dist/components/alert/alert-icon.svelte +2 -1
  12. package/dist/components/alert/alert-root.svelte +3 -2
  13. package/dist/components/alert/alert-title.svelte +2 -1
  14. package/dist/components/alert/alert.stories.svelte +401 -40
  15. package/dist/components/alert/alert.stories.svelte.d.ts +2 -5
  16. package/dist/components/atom/html-atom.svelte +205 -201
  17. package/dist/components/atom/snippet-renderer.svelte +5 -0
  18. package/dist/components/atom/snippet-renderer.svelte.d.ts +5 -0
  19. package/dist/components/avatar/avatar.stories.svelte.d.ts +1 -1
  20. package/dist/components/badge/badge.stories.svelte.d.ts +1 -1
  21. package/dist/components/breadcrumb/breadcrumb.stories.svelte.d.ts +1 -1
  22. package/dist/components/button/button.stories.svelte +60 -57
  23. package/dist/components/calendar/atoms.d.ts +5 -0
  24. package/dist/components/calendar/atoms.js +5 -0
  25. package/dist/components/calendar/bond.svelte.d.ts +72 -0
  26. package/dist/components/calendar/bond.svelte.js +132 -0
  27. package/dist/components/calendar/calendar-body.svelte +107 -0
  28. package/dist/components/calendar/calendar-body.svelte.d.ts +8 -0
  29. package/dist/components/calendar/calendar-day.svelte +97 -0
  30. package/dist/components/calendar/calendar-day.svelte.d.ts +4 -0
  31. package/dist/components/calendar/calendar-header.svelte +33 -0
  32. package/dist/components/calendar/calendar-header.svelte.d.ts +7 -0
  33. package/dist/components/calendar/calendar-root.svelte +208 -0
  34. package/dist/components/calendar/calendar-root.svelte.d.ts +8 -0
  35. package/dist/components/calendar/calendar-week-day.svelte +34 -0
  36. package/dist/components/calendar/calendar-week-day.svelte.d.ts +9 -0
  37. package/dist/components/calendar/calendar.css +26 -0
  38. package/dist/components/calendar/calendar.stories.svelte +36 -0
  39. package/dist/components/calendar/calendar.stories.svelte.d.ts +6 -0
  40. package/dist/components/calendar/index.d.ts +4 -0
  41. package/dist/components/calendar/index.js +4 -0
  42. package/dist/components/calendar/runes.svelte.d.ts +3 -0
  43. package/dist/components/calendar/runes.svelte.js +25 -0
  44. package/dist/components/calendar/types.d.ts +62 -0
  45. package/dist/components/calendar/types.js +1 -0
  46. package/dist/components/card/card-body.svelte +39 -39
  47. package/dist/components/card/card-description.svelte +41 -41
  48. package/dist/components/card/card-footer.svelte +41 -41
  49. package/dist/components/card/card-header.svelte +41 -41
  50. package/dist/components/card/card-media.svelte +41 -41
  51. package/dist/components/card/card-root.svelte +91 -91
  52. package/dist/components/card/card-subtitle.svelte +41 -41
  53. package/dist/components/card/card-title.svelte +45 -45
  54. package/dist/components/collapsible/collapsible-body.svelte +39 -39
  55. package/dist/components/collapsible/collapsible-header.svelte +39 -39
  56. package/dist/components/collapsible/collapsible-indicator.svelte +50 -50
  57. package/dist/components/collapsible/collapsible-root.svelte +66 -66
  58. package/dist/components/combobox/combobox-root.svelte +65 -65
  59. package/dist/components/container/container.stories.svelte.d.ts +1 -1
  60. package/dist/components/contextmenu/contextmenu-trigger.svelte.d.ts +1 -1
  61. package/dist/components/datagrid/bond.svelte.d.ts +2 -2
  62. package/dist/components/datagrid/datagrid-body.svelte +37 -37
  63. package/dist/components/datagrid/datagrid-checkbox.svelte +101 -101
  64. package/dist/components/datagrid/datagrid-footer.svelte +34 -34
  65. package/dist/components/datagrid/datagrid-header.svelte +49 -49
  66. package/dist/components/datagrid/datagrid-root.svelte +59 -59
  67. package/dist/components/datagrid/td/datagrid-td.svelte +66 -66
  68. package/dist/components/datagrid/th/datagrid-th.svelte +106 -106
  69. package/dist/components/datagrid/tr/datagrid-tr.svelte +88 -88
  70. package/dist/components/date-picker/atoms.d.ts +7 -0
  71. package/dist/components/date-picker/atoms.js +7 -0
  72. package/dist/components/date-picker/bond.svelte.d.ts +67 -0
  73. package/dist/components/date-picker/bond.svelte.js +174 -0
  74. package/dist/components/date-picker/date-picker-calendar.svelte +42 -0
  75. package/dist/components/date-picker/date-picker-calendar.svelte.d.ts +7 -0
  76. package/dist/components/date-picker/date-picker-header.svelte +105 -0
  77. package/dist/components/date-picker/date-picker-header.svelte.d.ts +7 -0
  78. package/dist/components/date-picker/date-picker-months.svelte +150 -0
  79. package/dist/components/date-picker/date-picker-months.svelte.d.ts +7 -0
  80. package/dist/components/date-picker/date-picker-root.svelte +94 -0
  81. package/dist/components/date-picker/date-picker-root.svelte.d.ts +17 -0
  82. package/dist/components/date-picker/date-picker-years.svelte +214 -0
  83. package/dist/components/date-picker/date-picker-years.svelte.d.ts +7 -0
  84. package/dist/components/date-picker/date-picker.stories.svelte +51 -0
  85. package/dist/components/date-picker/date-picker.stories.svelte.d.ts +3 -0
  86. package/dist/components/date-picker/index.d.ts +3 -0
  87. package/dist/components/date-picker/index.js +3 -0
  88. package/dist/components/date-picker/types.d.ts +1 -0
  89. package/dist/components/date-picker/types.js +1 -0
  90. package/dist/components/dialog/dialog-body.svelte +39 -39
  91. package/dist/components/dialog/dialog-close-button.svelte +58 -58
  92. package/dist/components/dialog/dialog-content.svelte +62 -62
  93. package/dist/components/dialog/dialog-description.svelte +40 -40
  94. package/dist/components/dialog/dialog-footer.svelte +39 -39
  95. package/dist/components/dialog/dialog-header.svelte +39 -39
  96. package/dist/components/dialog/dialog-root.svelte +110 -110
  97. package/dist/components/dialog/dialog-title.svelte +41 -41
  98. package/dist/components/drawer/drawer-backdrop.svelte +38 -38
  99. package/dist/components/drawer/drawer-body.svelte +42 -42
  100. package/dist/components/drawer/drawer-content.svelte +42 -42
  101. package/dist/components/drawer/drawer-description.svelte +44 -44
  102. package/dist/components/drawer/drawer-footer.svelte +41 -41
  103. package/dist/components/drawer/drawer-header.svelte +43 -43
  104. package/dist/components/drawer/drawer-root.svelte +93 -93
  105. package/dist/components/drawer/drawer-title.svelte +44 -44
  106. package/dist/components/dropdown/dropdown-query.svelte +54 -54
  107. package/dist/components/dropdown/dropdown-root.svelte +59 -59
  108. package/dist/components/dropdown/dropdown-trigger.svelte +41 -41
  109. package/dist/components/dropdown/dropdown-value.svelte +60 -60
  110. package/dist/components/element/html-element.svelte +85 -85
  111. package/dist/components/form/bond.svelte.d.ts +1 -1
  112. package/dist/components/form/field/field-control.svelte +48 -48
  113. package/dist/components/form/field/field-label.svelte +24 -24
  114. package/dist/components/form/field/field-root.svelte +59 -59
  115. package/dist/components/icon/icon.svelte +44 -44
  116. package/dist/components/image/image.stories.svelte.d.ts +1 -1
  117. package/dist/components/index.d.ts +3 -0
  118. package/dist/components/index.js +3 -0
  119. package/dist/components/input/input-control.svelte +103 -103
  120. package/dist/components/label/label.svelte +25 -25
  121. package/dist/components/popover/popover-arrow.svelte +111 -111
  122. package/dist/components/popover/popover-content.svelte +46 -7
  123. package/dist/components/popover/popover-root.svelte +48 -49
  124. package/dist/components/popover/popover.stories.svelte +52 -67
  125. package/dist/components/portal/portal-root.svelte +83 -83
  126. package/dist/components/portal/teleport.svelte +50 -50
  127. package/dist/components/qr-code/index.d.ts +1 -0
  128. package/dist/components/qr-code/index.js +1 -0
  129. package/dist/components/qr-code/qr-code.stories.svelte +24 -0
  130. package/dist/components/qr-code/qr-code.stories.svelte.d.ts +26 -0
  131. package/dist/components/qr-code/qr-code.svelte +25 -0
  132. package/dist/components/qr-code/qr-code.svelte.d.ts +6 -0
  133. package/dist/components/radio/radio.svelte +109 -109
  134. package/dist/components/radio/types.svelte.d.ts +1 -1
  135. package/dist/components/scrollable/scrollable-container.svelte +82 -82
  136. package/dist/components/scrollable/scrollable-content.svelte +41 -41
  137. package/dist/components/scrollable/scrollable-root.svelte +100 -100
  138. package/dist/components/scrollable/scrollable-thumb.svelte +75 -75
  139. package/dist/components/scrollable/scrollable-track.svelte +59 -59
  140. package/dist/components/scrollable/scrollable.stories.svelte.d.ts +1 -1
  141. package/dist/components/tabs/tab/tab-body.svelte +52 -52
  142. package/dist/components/tabs/tab/tab-description.svelte +41 -41
  143. package/dist/components/tabs/tab/tab-header.svelte +71 -71
  144. package/dist/components/tabs/tab/tab-root.svelte +86 -86
  145. package/dist/components/toast/toast-description.svelte +38 -38
  146. package/dist/components/toast/toast-root.svelte +61 -61
  147. package/dist/components/toast/toast-title.svelte +35 -35
  148. package/dist/components/tree/tree-body.svelte +39 -39
  149. package/dist/components/tree/tree-header.svelte +54 -54
  150. package/dist/components/tree/tree-indicator.svelte +40 -40
  151. package/dist/components/tree/tree-root.svelte +65 -65
  152. package/dist/components/virtual/virtual-root.svelte +239 -239
  153. package/dist/context/preset.svelte.d.ts +1 -1
  154. package/dist/icons/icon-arrow-down.svelte.d.ts +1 -1
  155. package/dist/icons/icon-checkmark.svelte.d.ts +1 -1
  156. package/dist/icons/icon-close.svelte.d.ts +1 -1
  157. package/dist/icons/icon-more-vert.svelte.d.ts +1 -1
  158. package/dist/runes/container.svelte.d.ts +2 -2
  159. package/dist/shared/bond.svelte.d.ts +1 -1
  160. package/dist/utils/state.d.ts +1 -1
  161. package/dist/utils/state.js +2 -1
  162. package/llm/variants.md +1261 -712
  163. package/package.json +464 -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>