@svelte-atoms/core 1.0.0-alpha.24 → 1.0.0-alpha.26

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 (177) hide show
  1. package/dist/components/accordion/accordion-root.svelte +1 -1
  2. package/dist/components/accordion/accordion-root.svelte.d.ts +2 -2
  3. package/dist/components/accordion/item/accordion-item-body.svelte +1 -1
  4. package/dist/components/accordion/item/accordion-item-header.svelte +5 -1
  5. package/dist/components/accordion/item/accordion-item-indicator.svelte +1 -1
  6. package/dist/components/accordion/item/accordion-item-root.svelte +1 -1
  7. package/dist/components/alert/alert-actions.svelte +1 -1
  8. package/dist/components/alert/alert-actions.svelte.d.ts +1 -0
  9. package/dist/components/alert/alert-close-button.svelte +1 -1
  10. package/dist/components/alert/alert-close-button.svelte.d.ts +1 -0
  11. package/dist/components/alert/alert-content.svelte +1 -1
  12. package/dist/components/alert/alert-content.svelte.d.ts +1 -0
  13. package/dist/components/alert/alert-description.svelte +1 -1
  14. package/dist/components/alert/alert-icon.svelte +1 -1
  15. package/dist/components/alert/alert-root.svelte +1 -1
  16. package/dist/components/alert/alert-title.svelte +1 -1
  17. package/dist/components/atom/html-atom.svelte +147 -16
  18. package/dist/components/atom/html-atom.svelte.d.ts +4 -2
  19. package/dist/components/atom/types.d.ts +7 -0
  20. package/dist/components/badge/badge.svelte +1 -1
  21. package/dist/components/breadcrumb/breadcrumb-item.svelte +1 -1
  22. package/dist/components/breadcrumb/breadcrumb-root.svelte +1 -1
  23. package/dist/components/breadcrumb/breadcrumb-separator.svelte +1 -1
  24. package/dist/components/button/button.stories.svelte +41 -1
  25. package/dist/components/button/button.stories.svelte.d.ts +6 -14
  26. package/dist/components/button/button.svelte +1 -1
  27. package/dist/components/button/button.svelte.d.ts +4 -1
  28. package/dist/components/button/types.d.ts +1 -1
  29. package/dist/components/card/card-body.svelte +1 -1
  30. package/dist/components/card/card-description.svelte +1 -1
  31. package/dist/components/card/card-footer.svelte +1 -1
  32. package/dist/components/card/card-header.svelte +1 -1
  33. package/dist/components/card/card-media.svelte +1 -1
  34. package/dist/components/card/card-subtitle.svelte +1 -1
  35. package/dist/components/card/card-title.svelte +5 -1
  36. package/dist/components/checkbox/checkbox.svelte +39 -28
  37. package/dist/components/checkbox/checkbox.svelte.d.ts +1 -1
  38. package/dist/components/collapsible/collapsible-body.svelte +1 -1
  39. package/dist/components/collapsible/collapsible-header.svelte +1 -1
  40. package/dist/components/collapsible/collapsible-indicator.svelte +1 -1
  41. package/dist/components/collapsible/collapsible-root.svelte +1 -1
  42. package/dist/components/combobox/atoms.d.ts +5 -1
  43. package/dist/components/combobox/atoms.js +5 -1
  44. package/dist/components/combobox/{combobox-input.svelte → combobox-control.svelte} +3 -3
  45. package/dist/components/combobox/{combobox-input.svelte.d.ts → combobox-control.svelte.d.ts} +3 -3
  46. package/dist/components/combobox/combobox-root.svelte.d.ts +2 -2
  47. package/dist/components/combobox/combobox-trigger.svelte +1 -1
  48. package/dist/components/combobox/compobox-item.svelte +1 -1
  49. package/dist/components/container/container.svelte +1 -1
  50. package/dist/components/datagrid/datagrid-body.svelte +1 -1
  51. package/dist/components/datagrid/datagrid-footer.svelte +1 -1
  52. package/dist/components/datagrid/datagrid-header.svelte +1 -1
  53. package/dist/components/datagrid/datagrid-root.svelte +1 -1
  54. package/dist/components/datagrid/td/datagrid-td.svelte +1 -1
  55. package/dist/components/datagrid/th/datagrid-th-sort-icon.svelte +1 -1
  56. package/dist/components/datagrid/th/datagrid-th.svelte +1 -1
  57. package/dist/components/dialog/dialog-body.svelte +1 -1
  58. package/dist/components/dialog/dialog-close-button.svelte +1 -1
  59. package/dist/components/dialog/dialog-content.svelte +8 -11
  60. package/dist/components/dialog/dialog-description.svelte +1 -1
  61. package/dist/components/dialog/dialog-footer.svelte +1 -1
  62. package/dist/components/dialog/dialog-header.svelte +1 -1
  63. package/dist/components/dialog/dialog-root.svelte +123 -120
  64. package/dist/components/dialog/dialog-root.svelte.d.ts +3 -1
  65. package/dist/components/dialog/dialog-title.svelte +1 -1
  66. package/dist/components/drawer/drawer-backdrop.svelte +1 -1
  67. package/dist/components/drawer/drawer-backdrop.svelte.d.ts +1 -0
  68. package/dist/components/drawer/drawer-body.svelte +1 -1
  69. package/dist/components/drawer/drawer-description.svelte +1 -1
  70. package/dist/components/drawer/drawer-footer.svelte +1 -1
  71. package/dist/components/drawer/drawer-header.svelte +1 -1
  72. package/dist/components/drawer/drawer-root.svelte +118 -113
  73. package/dist/components/drawer/drawer-root.svelte.d.ts +5 -2
  74. package/dist/components/drawer/drawer-title.svelte +1 -1
  75. package/dist/components/dropdown/dropdown-placeholder.svelte +1 -1
  76. package/dist/components/dropdown/dropdown-query.svelte +1 -1
  77. package/dist/components/dropdown/dropdown-trigger.svelte +1 -1
  78. package/dist/components/dropdown/dropdown-value.svelte +1 -3
  79. package/dist/components/dropdown/item/bond.svelte.d.ts +4 -0
  80. package/dist/components/dropdown/item/bond.svelte.js +9 -0
  81. package/dist/components/dropdown/item/dropdown-item.svelte +10 -6
  82. package/dist/components/form/field/bond.svelte.d.ts +8 -0
  83. package/dist/components/form/field/bond.svelte.js +13 -1
  84. package/dist/components/form/field/field-control.svelte +7 -0
  85. package/dist/components/form/field/field-control.svelte.d.ts +2 -2
  86. package/dist/components/form/form.stories.svelte +3 -3
  87. package/dist/components/icon/icon.svelte.d.ts +1 -0
  88. package/dist/components/input/atoms.d.ts +5 -1
  89. package/dist/components/input/atoms.js +5 -1
  90. package/dist/components/input/{input-value.svelte → input-control.svelte} +14 -20
  91. package/dist/components/input/input-control.svelte.d.ts +27 -0
  92. package/dist/components/input/input-icon.svelte +1 -1
  93. package/dist/components/input/input-placeholder.svelte +1 -3
  94. package/dist/components/input/input-placeholder.svelte.d.ts +1 -0
  95. package/dist/components/input/input-root.svelte +5 -12
  96. package/dist/components/input/input-root.svelte.d.ts +3 -19
  97. package/dist/components/input/input.stories.svelte +2 -2
  98. package/dist/components/input/types.d.ts +22 -0
  99. package/dist/components/input/types.js +1 -0
  100. package/dist/components/label/label.svelte.d.ts +1 -0
  101. package/dist/components/layer/layer-inner.svelte.d.ts +1 -0
  102. package/dist/components/layer/layer-root.svelte.d.ts +1 -0
  103. package/dist/components/list/list-group.svelte +1 -1
  104. package/dist/components/list/list-item.svelte +1 -1
  105. package/dist/components/list/list-root.svelte +6 -1
  106. package/dist/components/list/list-title.svelte +1 -1
  107. package/dist/components/menu/menu-list.svelte +1 -1
  108. package/dist/components/popover/bond.svelte.d.ts +2 -0
  109. package/dist/components/popover/bond.svelte.js +1 -1
  110. package/dist/components/popover/popover-arrow.svelte +111 -117
  111. package/dist/components/popover/popover-arrow.svelte.d.ts +2 -2
  112. package/dist/components/popover/popover-content.svelte +139 -147
  113. package/dist/components/popover/popover-content.svelte.d.ts +3 -17
  114. package/dist/components/popover/popover-indicator.svelte +1 -1
  115. package/dist/components/popover/popover-root.svelte +49 -63
  116. package/dist/components/popover/popover-root.svelte.d.ts +1 -15
  117. package/dist/components/popover/popover-trigger.svelte +47 -56
  118. package/dist/components/popover/popover-trigger.svelte.d.ts +2 -8
  119. package/dist/components/popover/types.d.ts +39 -0
  120. package/dist/components/popover/types.js +1 -0
  121. package/dist/components/portal/active-portal.svelte +22 -16
  122. package/dist/components/portal/active-portal.svelte.d.ts +2 -2
  123. package/dist/components/portal/portal-inner.svelte +1 -1
  124. package/dist/components/portal/portal-inner.svelte.d.ts +1 -0
  125. package/dist/components/portal/portal-root.svelte +1 -1
  126. package/dist/components/portal/portal-root.svelte.d.ts +1 -0
  127. package/dist/components/portal/teleport.svelte +55 -49
  128. package/dist/components/portal/teleport.svelte.d.ts +4 -2
  129. package/dist/components/radio/radio-group.stories.svelte +4 -4
  130. package/dist/components/radio/radio.svelte +3 -3
  131. package/dist/components/radio/radio.svelte.d.ts +2 -2
  132. package/dist/components/root/root.css +24 -66
  133. package/dist/components/root/root.svelte +1 -1
  134. package/dist/components/sidebar/sidebar-content.svelte +2 -16
  135. package/dist/components/sidebar/sidebar-content.svelte.d.ts +2 -9
  136. package/dist/components/sidebar/sidebar-root.svelte +4 -23
  137. package/dist/components/sidebar/sidebar-root.svelte.d.ts +2 -13
  138. package/dist/components/sidebar/types.d.ts +19 -0
  139. package/dist/components/sidebar/types.js +1 -0
  140. package/dist/components/stack/stack-item.svelte +5 -1
  141. package/dist/components/stack/stack-root.svelte +5 -1
  142. package/dist/components/stack/stack-root.svelte.d.ts +1 -0
  143. package/dist/components/tabs/tab/tab-body.svelte +1 -1
  144. package/dist/components/tabs/tab/tab-description.svelte +1 -1
  145. package/dist/components/tabs/tab/tab-header.svelte +2 -2
  146. package/dist/components/tabs/tab/tab-root.svelte +6 -1
  147. package/dist/components/tabs/tabs-body.svelte +1 -1
  148. package/dist/components/tabs/tabs-header.svelte +1 -1
  149. package/dist/components/tabs/tabs-root.svelte +1 -1
  150. package/dist/components/textarea/textarea-input.svelte +2 -1
  151. package/dist/components/toast/toast-description.svelte +1 -1
  152. package/dist/components/toast/toast-description.svelte.d.ts +1 -0
  153. package/dist/components/toast/toast-root.svelte +1 -1
  154. package/dist/components/toast/toast-root.svelte.d.ts +1 -0
  155. package/dist/components/toast/toast-title.svelte +1 -1
  156. package/dist/components/toast/toast-title.svelte.d.ts +1 -0
  157. package/dist/components/tree/tree-body.svelte +1 -1
  158. package/dist/components/tree/tree-header.svelte +1 -1
  159. package/dist/components/tree/tree-header.svelte.d.ts +1 -0
  160. package/dist/components/tree/tree-indicator.svelte +1 -1
  161. package/dist/components/tree/tree-root.svelte +1 -1
  162. package/dist/context/preset.svelte.d.ts +4 -1
  163. package/dist/utils/index.d.ts +1 -0
  164. package/dist/utils/index.js +1 -0
  165. package/dist/utils/variant.d.ts +213 -0
  166. package/dist/utils/variant.js +137 -0
  167. package/llm/composition.md +395 -0
  168. package/llm/crafting.md +838 -0
  169. package/llm/motion.md +970 -0
  170. package/llm/philosophy.md +23 -0
  171. package/llm/preset-variant-integration.md +516 -0
  172. package/llm/preset.md +383 -0
  173. package/llm/styling.md +216 -0
  174. package/llm/usage.md +46 -0
  175. package/llm/variants.md +712 -0
  176. package/package.json +2 -1
  177. package/dist/components/input/input-value.svelte.d.ts +0 -19
@@ -1,21 +1,22 @@
1
1
  <script lang="ts">
2
+ import { circOut } from 'svelte/easing';
2
3
  import type { HTMLInputAttributes } from 'svelte/elements';
3
4
  import { scale } from 'svelte/transition';
4
- import type { CheckboxProps } from './types';
5
5
  import { Icon } from '../icon';
6
6
  import { HtmlAtom } from '../atom';
7
7
  import CheckmarkRegularIcon from '../../icons/icon-checkmark.svelte';
8
- import './checkbox.css';
9
8
  import { DURATION } from '../../shared';
10
- import { circOut } from 'svelte/easing';
9
+ import type { CheckboxProps } from './types';
10
+ import './checkbox.css';
11
11
 
12
12
  let {
13
13
  class: klass = '',
14
14
  checked = $bindable(false),
15
- indeterminate = $bindable(),
15
+ indeterminate = $bindable(false),
16
16
  value = $bindable(undefined),
17
17
  group = $bindable([]),
18
18
  id,
19
+ name,
19
20
  checkedContent,
20
21
  indeterminateContent,
21
22
  enter,
@@ -31,29 +32,25 @@
31
32
 
32
33
  let checkboxElement: HTMLInputElement | undefined = $state();
33
34
 
34
- function handleChange(ev: Event) {
35
- const checked = (ev.currentTarget as HTMLInputElement)?.checked ?? false;
35
+ // Computed state for visual representation
36
+ const isChecked = $derived(checked === true);
37
+ const isIndeterminate = $derived(indeterminate === true);
38
+ const showCheckmark = $derived(isChecked && !isIndeterminate);
36
39
 
40
+ function handleChange(ev: Event) {
37
41
  onchange?.(ev, {
38
- checked,
42
+ checked: checked,
39
43
  value: checked,
40
44
  type: 'boolean'
41
45
  });
42
46
  }
43
47
 
44
48
  function handleInput(ev: Event) {
45
- const currentTarget = ev.currentTarget as HTMLInputElement;
46
- const _checked = currentTarget?.checked ?? false;
47
-
48
49
  oninput?.(ev, {
49
- checked: _checked,
50
- value: _checked,
50
+ checked: checked,
51
+ value: checked,
51
52
  type: 'boolean'
52
53
  });
53
-
54
- if (ev.defaultPrevented) {
55
- return;
56
- }
57
54
  }
58
55
 
59
56
  function handleClick(ev: MouseEvent) {
@@ -63,7 +60,18 @@
63
60
  return;
64
61
  }
65
62
 
66
- checkboxElement?.click();
63
+ // Handle indeterminate → checked → unchecked cycle
64
+ if (indeterminate) {
65
+ // Indeterminate → checked
66
+ indeterminate = false;
67
+ checked = true;
68
+ } else {
69
+ // Toggle checked state
70
+ checked = !checked;
71
+ }
72
+
73
+ // Trigger input event manually if needed
74
+ handleInput(ev);
67
75
  }
68
76
  </script>
69
77
 
@@ -71,15 +79,16 @@
71
79
  <!-- svelte-ignore a11y_no_noninteractive_element_interactions -->
72
80
  <HtmlAtom
73
81
  preset="checkbox"
74
- as="button"
82
+ as="div"
75
83
  class={[
76
- 'checkbox-root border-border outline-primary bg-foreground/5 aspect-square h-5 w-fit cursor-pointer rounded-sm border outline-0 outline-offset-2 transition-colors duration-100',
77
- checked && 'bg-foreground',
78
- !checked && '',
84
+ 'checkbox-root border-border outline-primary bg-input text-foreground aspect-square h-5 w-fit cursor-pointer rounded-sm border outline-0 outline-offset-2 transition-colors duration-100',
85
+ isChecked && 'bg-foreground',
79
86
  '$preset',
80
87
  klass,
81
88
  'relative'
82
89
  ]}
90
+ role="checkbox"
91
+ aria-checked={isIndeterminate ? 'mixed' : isChecked}
83
92
  {enter}
84
93
  {exit}
85
94
  {initial}
@@ -87,6 +96,7 @@
87
96
  {...restProps}
88
97
  >
89
98
  <input
99
+ bind:this={checkboxElement}
90
100
  bind:checked
91
101
  bind:group
92
102
  bind:indeterminate
@@ -94,34 +104,35 @@
94
104
  class="checkbox-input pointer-events-none"
95
105
  {value}
96
106
  {id}
107
+ {name}
97
108
  onchange={handleChange}
98
109
  oninput={handleInput}
99
110
  {onblur}
100
111
  {onfocus}
101
112
  hidden
102
- {@attach (node) => {
103
- checkboxElement = node;
104
- }}
113
+ tabindex="-1"
105
114
  />
106
115
 
107
- {#if indeterminate}
116
+ {#if isIndeterminate}
108
117
  {#if indeterminateContent}
109
118
  <HtmlAtom
110
119
  preset="checkbox.indeterminate"
111
- class={['checkbox-indeterminate flex size-full items-center justify-center p-1']}
120
+ class={[
121
+ 'checkbox-indeterminate pointer-events-none flex size-full items-center justify-center p-1'
122
+ ]}
112
123
  base={indeterminateContent}
113
124
  />
114
125
  {:else}
115
126
  <HtmlAtom
116
127
  preset="checkbox.indeterminate"
117
128
  class={[
118
- 'checkbox-indeterminate text-foreground flex size-full items-center justify-center p-1'
129
+ 'checkbox-indeterminate text-foreground pointer-events-none flex size-full items-center justify-center p-1'
119
130
  ]}
120
131
  >
121
132
  <div class={['size-full rounded-xs bg-current']}></div>
122
133
  </HtmlAtom>
123
134
  {/if}
124
- {:else if checked === true}
135
+ {:else if showCheckmark}
125
136
  {#if checkedContent}
126
137
  <HtmlAtom
127
138
  preset="checkbox.checkmark"
@@ -2,6 +2,6 @@ import type { HTMLInputAttributes } from 'svelte/elements';
2
2
  import type { CheckboxProps } from './types';
3
3
  import './checkbox.css';
4
4
  type $$ComponentProps = CheckboxProps & Exclude<HTMLInputAttributes, 'type'>;
5
- declare const Checkbox: import("svelte").Component<$$ComponentProps, {}, "group" | "value" | "checked" | "indeterminate">;
5
+ declare const Checkbox: import("svelte").Component<$$ComponentProps, {}, "value" | "group" | "checked" | "indeterminate">;
6
6
  type Checkbox = ReturnType<typeof Checkbox>;
7
7
  export default Checkbox;
@@ -39,7 +39,7 @@
39
39
  <HtmlAtom
40
40
  {bond}
41
41
  preset="collapsible.body"
42
- class={['$preset', klass]}
42
+ class={['border-border', '$preset', klass]}
43
43
  onmount={onmount?.bind(bond.state)}
44
44
  ondestroy={ondestroy?.bind(bond.state)}
45
45
  animate={animate?.bind(bond.state)}
@@ -39,7 +39,7 @@
39
39
  <HtmlAtom
40
40
  {bond}
41
41
  preset="collapsible.header"
42
- class={['flex cursor-pointer items-center gap-2', '$preset', klass]}
42
+ class={['border-border flex cursor-pointer items-center gap-2', '$preset', klass]}
43
43
  onmount={onmount?.bind(bond.state)}
44
44
  ondestroy={ondestroy?.bind(bond.state)}
45
45
  animate={animate?.bind(bond.state)}
@@ -48,7 +48,7 @@
48
48
  <HtmlAtom
49
49
  {bond}
50
50
  preset="collapsible.indicator"
51
- class={['flex size-4 items-center justify-center', '$preset', klass]}
51
+ class={['border-border flex size-4 items-center justify-center', '$preset', klass]}
52
52
  onmount={onmount?.bind(bond.state)}
53
53
  ondestroy={ondestroy?.bind(bond.state)}
54
54
  animate={animate?.bind(bond.state)}
@@ -72,7 +72,7 @@
72
72
  <HtmlAtom
73
73
  {bond}
74
74
  preset="collapsible"
75
- class={['flex w-full flex-col overflow-hidden', '$preset', klass]}
75
+ class={['border-border flex w-full flex-col overflow-hidden', '$preset', klass]}
76
76
  onmount={onmount?.bind(bond.state)}
77
77
  ondestroy={ondestroy?.bind(bond.state)}
78
78
  animate={animate?.bind(bond.state)}
@@ -1,5 +1,9 @@
1
1
  export { default as Root } from './combobox-root.svelte';
2
2
  export { default as Trigger } from './combobox-trigger.svelte';
3
3
  export { default as Item } from './compobox-item.svelte';
4
- export { default as Input } from './combobox-input.svelte';
4
+ /**
5
+ * @deprecated use Combobox.Control instead
6
+ */
7
+ export { default as Input } from './combobox-control.svelte';
8
+ export { default as Control } from './combobox-control.svelte';
5
9
  export { Arrow, Indicator, List } from '../dropdown/atoms';
@@ -1,5 +1,9 @@
1
1
  export { default as Root } from './combobox-root.svelte';
2
2
  export { default as Trigger } from './combobox-trigger.svelte';
3
3
  export { default as Item } from './compobox-item.svelte';
4
- export { default as Input } from './combobox-input.svelte';
4
+ /**
5
+ * @deprecated use Combobox.Control instead
6
+ */
7
+ export { default as Input } from './combobox-control.svelte';
8
+ export { default as Control } from './combobox-control.svelte';
5
9
  export { Arrow, Indicator, List } from '../dropdown/atoms';
@@ -37,10 +37,10 @@
37
37
  );
38
38
  </script>
39
39
 
40
- <Input.Value
40
+ <Input.Control
41
41
  {value}
42
- preset="combobox.input"
43
- class={['flex-1 py-1', '$preset', klass]}
42
+ preset="combobox.control"
43
+ class={['border-border flex-1 py-1', '$preset', klass]}
44
44
  enter={enter?.bind(bond.state)}
45
45
  exit={exit?.bind(bond.state)}
46
46
  initial={initial?.bind(bond.state)}
@@ -1,4 +1,4 @@
1
- declare const ComboboxInput: import("svelte").Component<{
1
+ declare const ComboboxControl: import("svelte").Component<{
2
2
  class?: string;
3
3
  children?: any;
4
4
  onmount?: any;
@@ -8,5 +8,5 @@ declare const ComboboxInput: import("svelte").Component<{
8
8
  exit?: any;
9
9
  initial?: any;
10
10
  } & Record<string, any>, {}, "">;
11
- type ComboboxInput = ReturnType<typeof ComboboxInput>;
12
- export default ComboboxInput;
11
+ type ComboboxControl = ReturnType<typeof ComboboxControl>;
12
+ export default ComboboxControl;
@@ -18,7 +18,7 @@ declare function $$render<D>(): {
18
18
  exports: {
19
19
  getBond: () => ComboboxBond<D>;
20
20
  };
21
- bindings: "values" | "text" | "value" | "open" | "query";
21
+ bindings: "values" | "value" | "text" | "open" | "query";
22
22
  slots: {};
23
23
  events: {};
24
24
  };
@@ -26,7 +26,7 @@ declare class __sveltets_Render<D> {
26
26
  props(): ReturnType<typeof $$render<D>>['props'];
27
27
  events(): ReturnType<typeof $$render<D>>['events'];
28
28
  slots(): ReturnType<typeof $$render<D>>['slots'];
29
- bindings(): "values" | "text" | "value" | "open" | "query";
29
+ bindings(): "values" | "value" | "text" | "open" | "query";
30
30
  exports(): {
31
31
  getBond: () => ComboboxBond<D>;
32
32
  };
@@ -27,7 +27,7 @@
27
27
  {as}
28
28
  {bond}
29
29
  preset="dropdown.trigger"
30
- class={['h-8 w-40', '$preset', klass]}
30
+ class={['border-border h-8 w-40', '$preset', klass]}
31
31
  enter={enter?.bind(bond.state)}
32
32
  exit={exit?.bind(bond.state)}
33
33
  initial={initial?.bind(bond.state)}
@@ -55,7 +55,7 @@
55
55
  }}
56
56
  {bond}
57
57
  preset="combobox.item"
58
- class={['$preset', klass]}
58
+ class={['border-border', '$preset', klass]}
59
59
  enter={enter?.bind(bond.state)}
60
60
  exit={exit?.bind(bond.state)}
61
61
  initial={initial?.bind(bond.state)}
@@ -42,7 +42,7 @@
42
42
  };
43
43
  }}
44
44
  preset="container"
45
- class={['$preset', klass]}
45
+ class={['border-border', '$preset', klass]}
46
46
  style={[containerTypeStype, containerNameStyle].filter(Boolean).join('; ')}
47
47
  onmount={onmount?.bind(null)}
48
48
  ondestroy={ondestroy?.bind(null)}
@@ -31,7 +31,7 @@
31
31
  <HtmlAtom
32
32
  {bond}
33
33
  preset="datagrid.body"
34
- class={['$preset', klass, 'contents']}
34
+ class={['border-border', '$preset', klass, 'contents']}
35
35
  enter={enter?.bind(bond.state)}
36
36
  exit={exit?.bind(bond.state)}
37
37
  initial={initial?.bind(bond.state)}
@@ -21,7 +21,7 @@
21
21
  <HtmlAtom
22
22
  {bond}
23
23
  preset="datagrid.footer"
24
- class={['$preset', klass, 'contents']}
24
+ class={['border-border', '$preset', klass, 'contents']}
25
25
  enter={enter?.bind(bond.state)}
26
26
  exit={exit?.bind(bond.state)}
27
27
  initial={initial?.bind(bond.state)}
@@ -36,7 +36,7 @@
36
36
  <HtmlAtom
37
37
  {bond}
38
38
  preset="datagrid.header"
39
- class={['col-span-full grid grid-cols-subgrid', '$preset', klass]}
39
+ class={['border-border col-span-full grid grid-cols-subgrid', '$preset', klass]}
40
40
  enter={enter?.bind(bond.state)}
41
41
  exit={exit?.bind(bond.state)}
42
42
  initial={initial?.bind(bond.state)}
@@ -45,7 +45,7 @@
45
45
  <HtmlAtom
46
46
  {bond}
47
47
  preset="datagrid"
48
- class={['datagrid-root w-full gap-x-0 gap-y-0', '$preset', klass]}
48
+ class={['border-border', 'datagrid-root w-full gap-x-0 gap-y-0', '$preset', klass]}
49
49
  style="--template-columns:{bond.state.template}"
50
50
  enter={enter?.bind(bond.state)}
51
51
  exit={exit?.bind(bond.state)}
@@ -65,7 +65,7 @@
65
65
  }}
66
66
  {bond}
67
67
  preset="datagrid.td"
68
- class={['flex h-full items-center py-2 text-left', '$preset', klass]}
68
+ class={['border-border flex h-full items-center py-2 text-left', '$preset', klass]}
69
69
  enter={enter?.bind(bond.state)}
70
70
  exit={exit?.bind(bond.state)}
71
71
  initial={initial?.bind(bond.state)}
@@ -34,7 +34,7 @@
34
34
  <HtmlAtom
35
35
  {bond}
36
36
  preset="datagrid.sort-icon"
37
- class={['$preset', klass]}
37
+ class={['border-border', '$preset', klass]}
38
38
  enter={enter?.bind(bond.state)}
39
39
  exit={exit?.bind(bond.state)}
40
40
  initial={initial?.bind(bond.state)}
@@ -107,7 +107,7 @@
107
107
  {bond}
108
108
  preset="datagrid.th"
109
109
  class={[
110
- 'flex cursor-pointer py-1 font-medium select-none',
110
+ 'border-border flex cursor-pointer py-1 font-medium select-none',
111
111
  !!sortable && 'sortable',
112
112
  '$preset',
113
113
  klass
@@ -32,7 +32,7 @@
32
32
  <HtmlAtom
33
33
  {bond}
34
34
  preset="dialog.body"
35
- class={['px-4 py-2', '$preset', klass]}
35
+ class={['border-border px-4 py-2', '$preset', klass]}
36
36
  enter={enter?.bind(bond.state)}
37
37
  exit={exit?.bind(bond.state)}
38
38
  initial={initial?.bind(bond.state)}
@@ -41,7 +41,7 @@
41
41
  {as}
42
42
  {bond}
43
43
  preset="dialog.close-button"
44
- class={['cursor-pointer', '$preset', klass]}
44
+ class={['border-border cursor-pointer', '$preset', klass]}
45
45
  enter={enter?.bind(bond.state)}
46
46
  exit={exit?.bind(bond.state)}
47
47
  initial={initial?.bind(bond.state)}
@@ -7,8 +7,9 @@
7
7
 
8
8
  <script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
9
9
  import { animate as motion } from 'motion';
10
- import { DialogBond } from './bond.svelte';
10
+ import { DURATION } from '../../shared';
11
11
  import { HtmlAtom, type HtmlAtomProps, type Base } from '../atom';
12
+ import { DialogBond } from './bond.svelte';
12
13
 
13
14
  const bond = DialogBond.get();
14
15
 
@@ -32,20 +33,16 @@
32
33
  const open = $derived(bond?.state?.props?.open ?? false);
33
34
 
34
35
  function _animate(node: HTMLElement) {
36
+ if (open) {
37
+ bond?.elements.root?.show?.();
38
+ }
39
+
35
40
  motion(
36
41
  node,
37
42
  { scale: 0.9 + 0.1 * +open, opacity: +open },
38
43
  {
39
- duration: 0.3,
40
- ease: 'anticipate',
41
- onComplete: () => {
42
- if (!open) {
43
- const root = bond?.elements.root;
44
-
45
- root?.close?.();
46
- console.log(root);
47
- }
48
- }
44
+ duration: DURATION.normal / 1000,
45
+ ease: 'anticipate'
49
46
  }
50
47
  );
51
48
  }
@@ -33,7 +33,7 @@
33
33
  <HtmlAtom
34
34
  {as}
35
35
  preset="dialog.description"
36
- class={['$preset', klass]}
36
+ class={['border-border', '$preset', klass]}
37
37
  enter={enter?.bind(bond.state)}
38
38
  exit={exit?.bind(bond.state)}
39
39
  initial={initial?.bind(bond.state)}
@@ -32,7 +32,7 @@
32
32
  <HtmlAtom
33
33
  {bond}
34
34
  preset="dialog.footer"
35
- class={['flex px-4', '$preset', klass]}
35
+ class={['border-border', 'flex px-4', '$preset', klass]}
36
36
  enter={enter?.bind(bond.state)}
37
37
  exit={exit?.bind(bond.state)}
38
38
  initial={initial?.bind(bond.state)}
@@ -32,7 +32,7 @@
32
32
  <HtmlAtom
33
33
  {bond}
34
34
  preset="dialog.header"
35
- class={['flex w-full px-4 text-xl', '$preset', klass]}
35
+ class={['border-border', 'flex w-full px-4 text-xl', '$preset', klass]}
36
36
  enter={enter?.bind(bond.state)}
37
37
  exit={exit?.bind(bond.state)}
38
38
  initial={initial?.bind(bond.state)}