@svelte-atoms/core 1.0.0-alpha.25 → 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.
- package/README.md +645 -645
- package/dist/components/accordion/accordion-root.svelte +1 -1
- package/dist/components/accordion/item/accordion-item-body.svelte +1 -1
- package/dist/components/accordion/item/accordion-item-header.svelte +5 -1
- package/dist/components/accordion/item/accordion-item-indicator.svelte +1 -1
- package/dist/components/accordion/item/accordion-item-root.svelte +1 -1
- package/dist/components/alert/alert-actions.svelte +1 -1
- package/dist/components/alert/alert-close-button.svelte +1 -1
- package/dist/components/alert/alert-content.svelte +1 -1
- package/dist/components/alert/alert-description.svelte +1 -1
- package/dist/components/alert/alert-icon.svelte +1 -1
- package/dist/components/alert/alert-root.svelte +1 -1
- package/dist/components/alert/alert-title.svelte +1 -1
- package/dist/components/atom/html-atom.svelte +201 -217
- package/dist/components/badge/badge.svelte +1 -1
- package/dist/components/breadcrumb/breadcrumb-item.svelte +1 -1
- package/dist/components/breadcrumb/breadcrumb-root.svelte +1 -1
- package/dist/components/breadcrumb/breadcrumb-separator.svelte +1 -1
- package/dist/components/button/button.stories.svelte +57 -57
- package/dist/components/button/button.svelte +1 -1
- package/dist/components/button/button.svelte.d.ts +4 -1
- package/dist/components/button/types.d.ts +1 -1
- package/dist/components/card/card-body.svelte +1 -1
- package/dist/components/card/card-description.svelte +1 -1
- package/dist/components/card/card-footer.svelte +1 -1
- package/dist/components/card/card-header.svelte +1 -1
- package/dist/components/card/card-media.svelte +1 -1
- package/dist/components/card/card-subtitle.svelte +1 -1
- package/dist/components/card/card-title.svelte +5 -1
- package/dist/components/checkbox/checkbox.svelte +39 -28
- package/dist/components/collapsible/collapsible-body.svelte +1 -1
- package/dist/components/collapsible/collapsible-header.svelte +1 -1
- package/dist/components/collapsible/collapsible-indicator.svelte +1 -1
- package/dist/components/collapsible/collapsible-root.svelte +1 -1
- package/dist/components/combobox/atoms.d.ts +5 -1
- package/dist/components/combobox/atoms.js +5 -1
- package/dist/components/combobox/{combobox-input.svelte → combobox-control.svelte} +3 -3
- package/dist/components/combobox/{combobox-input.svelte.d.ts → combobox-control.svelte.d.ts} +3 -3
- package/dist/components/combobox/combobox-trigger.svelte +1 -1
- package/dist/components/combobox/compobox-item.svelte +1 -1
- package/dist/components/container/container.svelte +1 -1
- package/dist/components/datagrid/datagrid-body.svelte +1 -1
- package/dist/components/datagrid/datagrid-footer.svelte +1 -1
- package/dist/components/datagrid/datagrid-header.svelte +1 -1
- package/dist/components/datagrid/datagrid-root.svelte +1 -1
- package/dist/components/datagrid/datagrid.stories.svelte +75 -75
- package/dist/components/datagrid/td/datagrid-td.svelte +1 -1
- package/dist/components/datagrid/th/datagrid-th-sort-icon.svelte +1 -1
- package/dist/components/datagrid/th/datagrid-th.svelte +1 -1
- package/dist/components/dialog/dialog-body.svelte +1 -1
- package/dist/components/dialog/dialog-close-button.svelte +1 -1
- package/dist/components/dialog/dialog-content.svelte +8 -11
- package/dist/components/dialog/dialog-description.svelte +1 -1
- package/dist/components/dialog/dialog-footer.svelte +1 -1
- package/dist/components/dialog/dialog-header.svelte +1 -1
- package/dist/components/dialog/dialog-root.svelte +123 -120
- package/dist/components/dialog/dialog-root.svelte.d.ts +3 -1
- package/dist/components/dialog/dialog-title.svelte +1 -1
- package/dist/components/drawer/drawer-backdrop.svelte +1 -1
- package/dist/components/drawer/drawer-body.svelte +1 -1
- package/dist/components/drawer/drawer-description.svelte +1 -1
- package/dist/components/drawer/drawer-footer.svelte +1 -1
- package/dist/components/drawer/drawer-header.svelte +1 -1
- package/dist/components/drawer/drawer-root.svelte +118 -113
- package/dist/components/drawer/drawer-root.svelte.d.ts +5 -2
- package/dist/components/drawer/drawer-title.svelte +1 -1
- package/dist/components/dropdown/dropdown-placeholder.svelte +1 -1
- package/dist/components/dropdown/dropdown-query.svelte +1 -1
- package/dist/components/dropdown/dropdown-trigger.svelte +1 -1
- package/dist/components/dropdown/dropdown-value.svelte +1 -3
- package/dist/components/dropdown/item/bond.svelte.d.ts +4 -0
- package/dist/components/dropdown/item/bond.svelte.js +9 -0
- package/dist/components/dropdown/item/dropdown-item.svelte +10 -6
- package/dist/components/form/field/bond.svelte.d.ts +8 -0
- package/dist/components/form/field/bond.svelte.js +13 -1
- package/dist/components/form/field/field-control.svelte +7 -0
- package/dist/components/form/field/field-control.svelte.d.ts +2 -2
- package/dist/components/form/form.stories.svelte +3 -3
- package/dist/components/input/atoms.d.ts +5 -1
- package/dist/components/input/atoms.js +5 -1
- package/dist/components/input/{input-value.svelte → input-control.svelte} +107 -113
- package/dist/components/input/input-control.svelte.d.ts +27 -0
- package/dist/components/input/input-icon.svelte +1 -1
- package/dist/components/input/input-placeholder.svelte +54 -56
- package/dist/components/input/input-root.svelte +5 -12
- package/dist/components/input/input-root.svelte.d.ts +3 -20
- package/dist/components/input/input.stories.svelte +2 -2
- package/dist/components/input/types.d.ts +22 -0
- package/dist/components/input/types.js +1 -0
- package/dist/components/list/list-group.svelte +1 -1
- package/dist/components/list/list-item.svelte +1 -1
- package/dist/components/list/list-root.svelte +6 -1
- package/dist/components/list/list-title.svelte +1 -1
- package/dist/components/menu/menu-list.svelte +1 -1
- package/dist/components/popover/bond.svelte.d.ts +2 -0
- package/dist/components/popover/bond.svelte.js +1 -1
- package/dist/components/popover/popover-arrow.svelte +111 -117
- package/dist/components/popover/popover-arrow.svelte.d.ts +1 -2
- package/dist/components/popover/popover-content.svelte +139 -147
- package/dist/components/popover/popover-content.svelte.d.ts +3 -17
- package/dist/components/popover/popover-indicator.svelte +1 -1
- package/dist/components/popover/popover-root.svelte +49 -63
- package/dist/components/popover/popover-root.svelte.d.ts +1 -15
- package/dist/components/popover/popover-trigger.svelte +47 -56
- package/dist/components/popover/popover-trigger.svelte.d.ts +2 -8
- package/dist/components/popover/types.d.ts +39 -0
- package/dist/components/popover/types.js +1 -0
- package/dist/components/portal/active-portal.svelte +22 -16
- package/dist/components/portal/active-portal.svelte.d.ts +2 -2
- package/dist/components/portal/portal-inner.svelte +1 -1
- package/dist/components/portal/portal-root.svelte +1 -1
- package/dist/components/portal/teleport.svelte +55 -49
- package/dist/components/portal/teleport.svelte.d.ts +3 -2
- package/dist/components/radio/radio-group.stories.svelte +4 -4
- package/dist/components/radio/radio.svelte +3 -3
- package/dist/components/root/root.css +24 -66
- package/dist/components/root/root.svelte +1 -1
- package/dist/components/sidebar/sidebar-content.svelte +2 -16
- package/dist/components/sidebar/sidebar-content.svelte.d.ts +2 -9
- package/dist/components/sidebar/sidebar-root.svelte +4 -23
- package/dist/components/sidebar/sidebar-root.svelte.d.ts +2 -13
- package/dist/components/sidebar/types.d.ts +19 -0
- package/dist/components/sidebar/types.js +1 -0
- package/dist/components/stack/stack-item.svelte +5 -1
- package/dist/components/stack/stack-root.svelte +5 -1
- package/dist/components/tabs/tab/tab-body.svelte +1 -1
- package/dist/components/tabs/tab/tab-description.svelte +1 -1
- package/dist/components/tabs/tab/tab-header.svelte +2 -2
- package/dist/components/tabs/tab/tab-root.svelte +6 -1
- package/dist/components/tabs/tabs-body.svelte +1 -1
- package/dist/components/tabs/tabs-header.svelte +1 -1
- package/dist/components/tabs/tabs-root.svelte +1 -1
- package/dist/components/textarea/textarea-input.svelte +2 -1
- package/dist/components/toast/toast-description.svelte +1 -1
- package/dist/components/toast/toast-root.svelte +1 -1
- package/dist/components/toast/toast-title.svelte +1 -1
- package/dist/components/tree/tree-body.svelte +1 -1
- package/dist/components/tree/tree-header.svelte +1 -1
- package/dist/components/tree/tree-indicator.svelte +1 -1
- package/dist/components/tree/tree-root.svelte +1 -1
- package/dist/context/preset.svelte.d.ts +1 -1
- package/llm/composition.md +395 -395
- package/llm/crafting.md +838 -838
- package/llm/motion.md +970 -970
- package/llm/philosophy.md +23 -23
- package/llm/preset-variant-integration.md +516 -516
- package/llm/preset.md +383 -383
- package/llm/styling.md +216 -216
- package/llm/usage.md +46 -46
- package/llm/variants.md +712 -712
- package/package.json +437 -437
- package/dist/components/input/input-value.svelte.d.ts +0 -19
|
@@ -1,57 +1,57 @@
|
|
|
1
|
-
<script module>
|
|
2
|
-
import { defineMeta } from '@storybook/addon-svelte-csf';
|
|
3
|
-
import Root from '../root/root.svelte';
|
|
4
|
-
import ButtonCmp from './button.svelte';
|
|
5
|
-
import { defineVariants } from '../../utils/variant';
|
|
6
|
-
|
|
7
|
-
const { Story } = defineMeta({
|
|
8
|
-
title: 'ATOMS/Button'
|
|
9
|
-
});
|
|
10
|
-
</script>
|
|
11
|
-
|
|
12
|
-
<script lang="ts">
|
|
13
|
-
const variants = defineVariants((bond) => ({
|
|
14
|
-
variants: {
|
|
15
|
-
variant: {
|
|
16
|
-
primary: {
|
|
17
|
-
class: 'bg-primary text-primary-foreground hover:bg-primary/80 active:bg-primary/90'
|
|
18
|
-
},
|
|
19
|
-
secondary: {
|
|
20
|
-
class:
|
|
21
|
-
'bg-secondary text-secondary-foreground hover:bg-secondary/80 active:bg-secondary/90'
|
|
22
|
-
},
|
|
23
|
-
destructive: {
|
|
24
|
-
class:
|
|
25
|
-
'bg-destructive text-destructive-foreground hover:bg-destructive/80 active:bg-destructive/90'
|
|
26
|
-
},
|
|
27
|
-
outline: {
|
|
28
|
-
class:
|
|
29
|
-
'bg-transparent hover:bg-foreground/5 active:bg-foreground/10 border border-border text-foreground'
|
|
30
|
-
},
|
|
31
|
-
ghost: {
|
|
32
|
-
class: 'hover:bg-accent hover:text-accent-foreground'
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
},
|
|
36
|
-
compounds: [],
|
|
37
|
-
defaults: {
|
|
38
|
-
variant: 'destructive'
|
|
39
|
-
}
|
|
40
|
-
}));
|
|
41
|
-
</script>
|
|
42
|
-
|
|
43
|
-
<Story name="Button">
|
|
44
|
-
<Root class="p-4">
|
|
45
|
-
{#snippet children({ args })}
|
|
46
|
-
<ButtonCmp variant="primary">Clicke me</ButtonCmp>
|
|
47
|
-
{/snippet}
|
|
48
|
-
</Root>
|
|
49
|
-
</Story>
|
|
50
|
-
|
|
51
|
-
<Story name="Button - Local Variants">
|
|
52
|
-
<Root class="p-4">
|
|
53
|
-
{#snippet children({ args })}
|
|
54
|
-
<ButtonCmp {variants} {...args}>Clicke me</ButtonCmp>
|
|
55
|
-
{/snippet}
|
|
56
|
-
</Root>
|
|
57
|
-
</Story>
|
|
1
|
+
<script module>
|
|
2
|
+
import { defineMeta } from '@storybook/addon-svelte-csf';
|
|
3
|
+
import Root from '../root/root.svelte';
|
|
4
|
+
import ButtonCmp from './button.svelte';
|
|
5
|
+
import { defineVariants } from '../../utils/variant';
|
|
6
|
+
|
|
7
|
+
const { Story } = defineMeta({
|
|
8
|
+
title: 'ATOMS/Button'
|
|
9
|
+
});
|
|
10
|
+
</script>
|
|
11
|
+
|
|
12
|
+
<script lang="ts">
|
|
13
|
+
const variants = defineVariants((bond) => ({
|
|
14
|
+
variants: {
|
|
15
|
+
variant: {
|
|
16
|
+
primary: {
|
|
17
|
+
class: 'bg-primary text-primary-foreground hover:bg-primary/80 active:bg-primary/90'
|
|
18
|
+
},
|
|
19
|
+
secondary: {
|
|
20
|
+
class:
|
|
21
|
+
'bg-secondary text-secondary-foreground hover:bg-secondary/80 active:bg-secondary/90'
|
|
22
|
+
},
|
|
23
|
+
destructive: {
|
|
24
|
+
class:
|
|
25
|
+
'bg-destructive text-destructive-foreground hover:bg-destructive/80 active:bg-destructive/90'
|
|
26
|
+
},
|
|
27
|
+
outline: {
|
|
28
|
+
class:
|
|
29
|
+
'bg-transparent hover:bg-foreground/5 active:bg-foreground/10 border border-border text-foreground'
|
|
30
|
+
},
|
|
31
|
+
ghost: {
|
|
32
|
+
class: 'hover:bg-accent hover:text-accent-foreground'
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
compounds: [],
|
|
37
|
+
defaults: {
|
|
38
|
+
variant: 'destructive'
|
|
39
|
+
}
|
|
40
|
+
}));
|
|
41
|
+
</script>
|
|
42
|
+
|
|
43
|
+
<Story name="Button">
|
|
44
|
+
<Root class="p-4">
|
|
45
|
+
{#snippet children({ args })}
|
|
46
|
+
<ButtonCmp variant="primary">Clicke me</ButtonCmp>
|
|
47
|
+
{/snippet}
|
|
48
|
+
</Root>
|
|
49
|
+
</Story>
|
|
50
|
+
|
|
51
|
+
<Story name="Button - Local Variants">
|
|
52
|
+
<Root class="p-4">
|
|
53
|
+
{#snippet children({ args })}
|
|
54
|
+
<ButtonCmp {variants} {...args}>Clicke me</ButtonCmp>
|
|
55
|
+
{/snippet}
|
|
56
|
+
</Root>
|
|
57
|
+
</Story>
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
{preset}
|
|
22
22
|
as="button"
|
|
23
23
|
class={[
|
|
24
|
-
'button text-primary-foreground bg-primary hover:bg-primary/95 active:bg-primary/90 disabled:bg-muted disabled:text-muted-foreground w-fit cursor-pointer rounded-md px-3 py-2 transition-colors duration-200',
|
|
24
|
+
'button text-primary-foreground bg-primary border-border hover:bg-primary/95 active:bg-primary/90 disabled:bg-muted disabled:text-muted-foreground w-fit cursor-pointer rounded-md px-3 py-2 transition-colors duration-200',
|
|
25
25
|
'$preset',
|
|
26
26
|
klass
|
|
27
27
|
]}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
import type { HTMLAttributes } from 'svelte/elements';
|
|
2
|
+
import type { ButtonProps } from './types';
|
|
3
|
+
type $$ComponentProps = ButtonProps & HTMLAttributes<HTMLButtonElement>;
|
|
4
|
+
declare const Button: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
2
5
|
type Button = ReturnType<typeof Button>;
|
|
3
6
|
export default Button;
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
<HtmlAtom
|
|
33
33
|
{bond}
|
|
34
34
|
preset="card.content"
|
|
35
|
-
class={['card-content px-4', '$preset', klass]}
|
|
35
|
+
class={['card-content border-border 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)}
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
{as}
|
|
36
36
|
{bond}
|
|
37
37
|
preset="card.description"
|
|
38
|
-
class={['card-description text-sm text-gray-500', '$preset', klass]}
|
|
38
|
+
class={['card-description border-border text-sm text-gray-500', '$preset', klass]}
|
|
39
39
|
enter={enter?.bind(bond.state)}
|
|
40
40
|
exit={exit?.bind(bond.state)}
|
|
41
41
|
initial={initial?.bind(bond.state)}
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
{as}
|
|
36
36
|
{bond}
|
|
37
37
|
preset="card.footer"
|
|
38
|
-
class={['card-footer flex items-center gap-2 px-4 py-4', '$preset', klass]}
|
|
38
|
+
class={['card-footer border-border flex items-center gap-2 px-4 py-4', '$preset', klass]}
|
|
39
39
|
enter={enter?.bind(bond.state)}
|
|
40
40
|
exit={exit?.bind(bond.state)}
|
|
41
41
|
initial={initial?.bind(bond.state)}
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
{as}
|
|
36
36
|
{bond}
|
|
37
37
|
preset="card.header"
|
|
38
|
-
class={['card-header flex flex-col space-y-1.5 px-4 py-4', '$preset', klass]}
|
|
38
|
+
class={['card-header border-border flex flex-col space-y-1.5 px-4 py-4', '$preset', klass]}
|
|
39
39
|
enter={enter?.bind(bond.state)}
|
|
40
40
|
exit={exit?.bind(bond.state)}
|
|
41
41
|
initial={initial?.bind(bond.state)}
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
{as}
|
|
36
36
|
{bond}
|
|
37
37
|
preset="card.media"
|
|
38
|
-
class={['card-media overflow-hidden', '$preset', klass]}
|
|
38
|
+
class={['card-media border-border overflow-hidden', '$preset', klass]}
|
|
39
39
|
enter={enter?.bind(bond.state)}
|
|
40
40
|
exit={exit?.bind(bond.state)}
|
|
41
41
|
initial={initial?.bind(bond.state)}
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
{as}
|
|
36
36
|
{bond}
|
|
37
37
|
preset="card.subtitle"
|
|
38
|
-
class={['card-subtitle text-sm font-medium text-gray-600', '$preset', klass]}
|
|
38
|
+
class={['card-subtitle border-border text-sm font-medium text-gray-600', '$preset', klass]}
|
|
39
39
|
enter={enter?.bind(bond.state)}
|
|
40
40
|
exit={exit?.bind(bond.state)}
|
|
41
41
|
initial={initial?.bind(bond.state)}
|
|
@@ -35,7 +35,11 @@
|
|
|
35
35
|
{as}
|
|
36
36
|
{bond}
|
|
37
37
|
preset="card.title"
|
|
38
|
-
class={[
|
|
38
|
+
class={[
|
|
39
|
+
'card-title border-border text-lg leading-none font-semibold tracking-tight',
|
|
40
|
+
'$preset',
|
|
41
|
+
klass
|
|
42
|
+
]}
|
|
39
43
|
enter={enter?.bind(bond.state)}
|
|
40
44
|
exit={exit?.bind(bond.state)}
|
|
41
45
|
initial={initial?.bind(bond.state)}
|
|
@@ -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 {
|
|
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
|
-
|
|
35
|
-
|
|
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:
|
|
50
|
-
value:
|
|
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
|
-
|
|
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="
|
|
82
|
+
as="div"
|
|
75
83
|
class={[
|
|
76
|
-
'checkbox-root border-border outline-primary bg-foreground
|
|
77
|
-
|
|
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
|
-
|
|
103
|
-
checkboxElement = node;
|
|
104
|
-
}}
|
|
113
|
+
tabindex="-1"
|
|
105
114
|
/>
|
|
106
115
|
|
|
107
|
-
{#if
|
|
116
|
+
{#if isIndeterminate}
|
|
108
117
|
{#if indeterminateContent}
|
|
109
118
|
<HtmlAtom
|
|
110
119
|
preset="checkbox.indeterminate"
|
|
111
|
-
class={[
|
|
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
|
|
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
|
|
135
|
+
{:else if showCheckmark}
|
|
125
136
|
{#if checkedContent}
|
|
126
137
|
<HtmlAtom
|
|
127
138
|
preset="checkbox.checkmark"
|
|
@@ -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
|
-
|
|
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
|
-
|
|
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.
|
|
40
|
+
<Input.Control
|
|
41
41
|
{value}
|
|
42
|
-
preset="combobox.
|
|
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)}
|
package/dist/components/combobox/{combobox-input.svelte.d.ts → combobox-control.svelte.d.ts}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
declare const
|
|
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
|
|
12
|
-
export default
|
|
11
|
+
type ComboboxControl = ReturnType<typeof ComboboxControl>;
|
|
12
|
+
export default ComboboxControl;
|
|
@@ -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)}
|