@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,63 +1,49 @@
|
|
|
1
|
-
<script
|
|
2
|
-
import type
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
function _factory(props: typeof bondProps) {
|
|
52
|
-
const popoverState = new PopoverState(() => props);
|
|
53
|
-
const popoverBond = new PopoverBond(popoverState);
|
|
54
|
-
|
|
55
|
-
return popoverBond;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
export function getBond() {
|
|
59
|
-
return bond;
|
|
60
|
-
}
|
|
61
|
-
</script>
|
|
62
|
-
|
|
63
|
-
{@render children?.({ popover: bond })}
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { PopoverState, PopoverBond, type PopoverStateProps } from './bond.svelte';
|
|
3
|
+
import { defineProperty, defineState } from '../../utils';
|
|
4
|
+
import type { PopoverRootProps } from './types';
|
|
5
|
+
|
|
6
|
+
let {
|
|
7
|
+
open = $bindable(false),
|
|
8
|
+
disabled = false,
|
|
9
|
+
placements = ['bottom-start', 'bottom-end', 'top-start', 'top-end'],
|
|
10
|
+
placement = 'bottom-start',
|
|
11
|
+
offset = 0,
|
|
12
|
+
portal = undefined,
|
|
13
|
+
extend = {},
|
|
14
|
+
factory = _factory,
|
|
15
|
+
children = undefined
|
|
16
|
+
}: PopoverRootProps = $props();
|
|
17
|
+
|
|
18
|
+
const bondProps = defineState<PopoverStateProps>(
|
|
19
|
+
[
|
|
20
|
+
defineProperty(
|
|
21
|
+
'open',
|
|
22
|
+
() => open,
|
|
23
|
+
(v) => {
|
|
24
|
+
open = v;
|
|
25
|
+
}
|
|
26
|
+
),
|
|
27
|
+
defineProperty('disabled', () => disabled),
|
|
28
|
+
defineProperty('placement', () => placement),
|
|
29
|
+
defineProperty('offset', () => offset),
|
|
30
|
+
defineProperty('placements', () => placements ?? []),
|
|
31
|
+
defineProperty('portal', () => portal)
|
|
32
|
+
],
|
|
33
|
+
() => ({ extend })
|
|
34
|
+
);
|
|
35
|
+
const bond = factory(bondProps).share();
|
|
36
|
+
|
|
37
|
+
function _factory(props: typeof bondProps) {
|
|
38
|
+
const popoverState = new PopoverState(() => props);
|
|
39
|
+
const popoverBond = new PopoverBond(popoverState);
|
|
40
|
+
|
|
41
|
+
return popoverBond;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export function getBond() {
|
|
45
|
+
return bond;
|
|
46
|
+
}
|
|
47
|
+
</script>
|
|
48
|
+
|
|
49
|
+
{@render children?.({ popover: bond })}
|
|
@@ -1,19 +1,5 @@
|
|
|
1
|
-
import type { Factory } from '../../types';
|
|
2
|
-
export type PopoverRootProps = {
|
|
3
|
-
open?: boolean;
|
|
4
|
-
disabled?: boolean;
|
|
5
|
-
placements?: Placement[];
|
|
6
|
-
placement?: Placement;
|
|
7
|
-
offset?: number;
|
|
8
|
-
extend?: Record<string, unknown>;
|
|
9
|
-
factory?: Factory<PopoverBond>;
|
|
10
|
-
children?: Snippet<[{
|
|
11
|
-
popover: PopoverBond;
|
|
12
|
-
}]>;
|
|
13
|
-
};
|
|
14
|
-
import type { Snippet } from 'svelte';
|
|
15
|
-
import type { Placement } from '@floating-ui/dom';
|
|
16
1
|
import { PopoverState, PopoverBond, type PopoverStateProps } from './bond.svelte';
|
|
2
|
+
import type { PopoverRootProps } from './types';
|
|
17
3
|
declare const PopoverRoot: import("svelte").Component<PopoverRootProps, {
|
|
18
4
|
getBond: () => PopoverBond<PopoverStateProps<Record<string, unknown>>, PopoverState<PopoverStateProps<Record<string, unknown>>>, import("./bond.svelte").PopoverDomElements>;
|
|
19
5
|
}, "open">;
|
|
@@ -1,56 +1,47 @@
|
|
|
1
|
-
<script
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
{
|
|
43
|
-
{
|
|
44
|
-
{
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
animate={animate?.bind(bond.state)}
|
|
49
|
-
enter={enter?.bind(bond.state)}
|
|
50
|
-
exit={exit?.bind(bond.state)}
|
|
51
|
-
initial={initial?.bind(bond.state)}
|
|
52
|
-
type={as === 'button' ? 'button' : undefined}
|
|
53
|
-
{...triggerProps}
|
|
54
|
-
>
|
|
55
|
-
{@render children?.({ popover: bond })}
|
|
56
|
-
</HtmlAtom>
|
|
1
|
+
<script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
|
|
2
|
+
import { HtmlAtom, type Base } from '../atom';
|
|
3
|
+
import { PopoverBond } from './bond.svelte';
|
|
4
|
+
import type { PopoverTriggerProps } from './types';
|
|
5
|
+
|
|
6
|
+
const bond = PopoverBond.get();
|
|
7
|
+
|
|
8
|
+
if (!bond) {
|
|
9
|
+
throw new Error('');
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
let {
|
|
13
|
+
class: klass = '',
|
|
14
|
+
as = 'button' as E,
|
|
15
|
+
preset = 'popover.trigger',
|
|
16
|
+
children = undefined,
|
|
17
|
+
onmount = undefined,
|
|
18
|
+
ondestroy = undefined,
|
|
19
|
+
animate = undefined,
|
|
20
|
+
enter = undefined,
|
|
21
|
+
exit = undefined,
|
|
22
|
+
initial = undefined,
|
|
23
|
+
...restProps
|
|
24
|
+
}: PopoverTriggerProps<E, B> = $props();
|
|
25
|
+
|
|
26
|
+
const triggerProps = $derived({
|
|
27
|
+
...bond.trigger(),
|
|
28
|
+
...restProps
|
|
29
|
+
});
|
|
30
|
+
</script>
|
|
31
|
+
|
|
32
|
+
<HtmlAtom
|
|
33
|
+
{as}
|
|
34
|
+
{bond}
|
|
35
|
+
{preset}
|
|
36
|
+
class={['border-border flex w-fit cursor-pointer rounded-md p-2', '$preset', klass]}
|
|
37
|
+
onmount={onmount?.bind(bond.state)}
|
|
38
|
+
ondestroy={ondestroy?.bind(bond.state)}
|
|
39
|
+
animate={animate?.bind(bond.state)}
|
|
40
|
+
enter={enter?.bind(bond.state)}
|
|
41
|
+
exit={exit?.bind(bond.state)}
|
|
42
|
+
initial={initial?.bind(bond.state)}
|
|
43
|
+
type={as === 'button' ? 'button' : undefined}
|
|
44
|
+
{...triggerProps}
|
|
45
|
+
>
|
|
46
|
+
{@render children?.({ popover: bond })}
|
|
47
|
+
</HtmlAtom>
|
|
@@ -1,11 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
popover?: PopoverBond;
|
|
4
|
-
}]>;
|
|
5
|
-
};
|
|
6
|
-
import type { Snippet } from 'svelte';
|
|
7
|
-
import { type HtmlAtomProps, type Base } from '../atom';
|
|
8
|
-
import { PopoverBond } from './bond.svelte';
|
|
1
|
+
import { type Base } from '../atom';
|
|
2
|
+
import type { PopoverTriggerProps } from './types';
|
|
9
3
|
declare function $$render<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base>(): {
|
|
10
4
|
props: PopoverTriggerProps<E, B>;
|
|
11
5
|
exports: {};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { Snippet } from 'svelte';
|
|
2
|
+
import type { Placement } from '@floating-ui/dom';
|
|
3
|
+
import type { Factory } from '../../types';
|
|
4
|
+
import type { PopoverBond } from './bond.svelte';
|
|
5
|
+
import type { Override } from '../../types';
|
|
6
|
+
import type { Base, HtmlAtomProps } from '../atom';
|
|
7
|
+
import type { HtmlElementTagName } from '../element';
|
|
8
|
+
import type { PortalBond } from '../portal';
|
|
9
|
+
export type PopoverRootProps = {
|
|
10
|
+
open?: boolean;
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
placements?: Placement[];
|
|
13
|
+
placement?: Placement;
|
|
14
|
+
offset?: number;
|
|
15
|
+
portal?: string | PortalBond;
|
|
16
|
+
extend?: Record<string, unknown>;
|
|
17
|
+
factory?: Factory<PopoverBond>;
|
|
18
|
+
children?: Snippet<[{
|
|
19
|
+
popover: PopoverBond;
|
|
20
|
+
}]>;
|
|
21
|
+
};
|
|
22
|
+
export type AnimateParams = {
|
|
23
|
+
x: number;
|
|
24
|
+
y: number;
|
|
25
|
+
xOffset: number;
|
|
26
|
+
yOffset: number;
|
|
27
|
+
open: boolean;
|
|
28
|
+
};
|
|
29
|
+
export type PopoverContentProps<T extends HtmlElementTagName, B extends Base = Base> = Override<HtmlAtomProps<T, B>, {
|
|
30
|
+
children?: Snippet<[{
|
|
31
|
+
popover?: PopoverBond;
|
|
32
|
+
}]>;
|
|
33
|
+
}>;
|
|
34
|
+
export type PopoverArrowProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> = HtmlAtomProps<E, B>;
|
|
35
|
+
export type PopoverTriggerProps<T extends keyof HTMLElementTagNameMap, B extends Base = Base> = HtmlAtomProps<T, B> & {
|
|
36
|
+
children?: Snippet<[{
|
|
37
|
+
popover?: PopoverBond;
|
|
38
|
+
}]>;
|
|
39
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,16 +1,22 @@
|
|
|
1
|
-
<script>
|
|
2
|
-
import { PortalsBond } from './portals/bond.svelte';
|
|
3
|
-
|
|
4
|
-
let {
|
|
5
|
-
|
|
6
|
-
const portalsBond = PortalsBond.get();
|
|
7
|
-
const activePortal =
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
1
|
+
<script>
|
|
2
|
+
import { PortalsBond } from './portals/bond.svelte';
|
|
3
|
+
|
|
4
|
+
let { portal, children = undefined } = $props();
|
|
5
|
+
|
|
6
|
+
const portalsBond = PortalsBond.get();
|
|
7
|
+
const activePortal = (() => {
|
|
8
|
+
if (typeof portal === 'string') {
|
|
9
|
+
return portalsBond?.state?.get(portal) ?? undefined;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
return portal;
|
|
13
|
+
})()?.share();
|
|
14
|
+
|
|
15
|
+
if (!portalsBond) {
|
|
16
|
+
throw new Error('Portals bond is not found');
|
|
17
|
+
}
|
|
18
|
+
</script>
|
|
19
|
+
|
|
20
|
+
{#if activePortal}
|
|
21
|
+
{@render children?.()}
|
|
22
|
+
{/if}
|
|
@@ -4,10 +4,10 @@ type ActivePortal = {
|
|
|
4
4
|
$set?(props: Partial<$$ComponentProps>): void;
|
|
5
5
|
};
|
|
6
6
|
declare const ActivePortal: import("svelte").Component<{
|
|
7
|
-
|
|
7
|
+
portal: any;
|
|
8
8
|
children?: any;
|
|
9
9
|
}, {}, "">;
|
|
10
10
|
type $$ComponentProps = {
|
|
11
|
-
|
|
11
|
+
portal: any;
|
|
12
12
|
children?: any;
|
|
13
13
|
};
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
<HtmlAtom
|
|
34
34
|
{bond}
|
|
35
35
|
preset="portal.inner"
|
|
36
|
-
class={['relative size-full', '$preset', klass]}
|
|
36
|
+
class={['border-border relative size-full', '$preset', klass]}
|
|
37
37
|
enter={enter?.bind(bond.state)}
|
|
38
38
|
exit={exit?.bind(bond.state)}
|
|
39
39
|
initial={initial?.bind(bond.state)}
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
<HtmlAtom
|
|
76
76
|
{bond}
|
|
77
77
|
preset="portal"
|
|
78
|
-
class={['pointer-events-none', '$preset', klass]}
|
|
78
|
+
class={['border-border pointer-events-none', '$preset', klass]}
|
|
79
79
|
enter={enter?.bind(bond.state)}
|
|
80
80
|
exit={exit?.bind(bond.state)}
|
|
81
81
|
initial={initial?.bind(bond.state)}
|
|
@@ -1,49 +1,55 @@
|
|
|
1
|
-
<script module lang="ts">
|
|
2
|
-
import { HtmlAtom, type HtmlAtomProps, type Base } from '../atom';
|
|
3
|
-
import type { HtmlElementTagName, HtmlElementType } from '../element';
|
|
4
|
-
|
|
5
|
-
export type TeleportProps<
|
|
6
|
-
E extends HtmlElementTagName = 'div',
|
|
7
|
-
B extends Base = Base
|
|
8
|
-
> = HtmlAtomProps<E, B> & {
|
|
9
|
-
portal?: string;
|
|
10
|
-
};
|
|
11
|
-
</script>
|
|
12
|
-
|
|
13
|
-
<script lang="ts" generics="E extends HtmlElementTagName = 'div', B extends Base = Base">
|
|
14
|
-
import type { HTMLAttributes } from 'svelte/elements';
|
|
15
|
-
import { PortalsBond } from './portals';
|
|
16
|
-
import { RootBond } from '../root/bond.svelte';
|
|
17
|
-
import { port } from './utils';
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
const
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
1
|
+
<script module lang="ts">
|
|
2
|
+
import { HtmlAtom, type HtmlAtomProps, type Base } from '../atom';
|
|
3
|
+
import type { HtmlElementTagName, HtmlElementType } from '../element';
|
|
4
|
+
|
|
5
|
+
export type TeleportProps<
|
|
6
|
+
E extends HtmlElementTagName = 'div',
|
|
7
|
+
B extends Base = Base
|
|
8
|
+
> = HtmlAtomProps<E, B> & {
|
|
9
|
+
portal?: string | PortalBond;
|
|
10
|
+
};
|
|
11
|
+
</script>
|
|
12
|
+
|
|
13
|
+
<script lang="ts" generics="E extends HtmlElementTagName = 'div', B extends Base = Base">
|
|
14
|
+
import type { HTMLAttributes } from 'svelte/elements';
|
|
15
|
+
import { PortalsBond } from './portals';
|
|
16
|
+
import { RootBond } from '../root/bond.svelte';
|
|
17
|
+
import { port } from './utils';
|
|
18
|
+
import type { PortalBond } from '.';
|
|
19
|
+
|
|
20
|
+
type Element = HtmlElementType<E>;
|
|
21
|
+
|
|
22
|
+
let { portal, as, base, children, ...restProps }: TeleportProps<E, B> & HTMLAttributes<Element> =
|
|
23
|
+
$props();
|
|
24
|
+
|
|
25
|
+
const portalsBond = PortalsBond.get();
|
|
26
|
+
const rootBond = RootBond.get();
|
|
27
|
+
|
|
28
|
+
const portalBond = $derived.by(() => {
|
|
29
|
+
if (typeof portal === 'string') {
|
|
30
|
+
return portalsBond?.state?.get(portal!) ?? rootBond?.state?.getPortal(portal!);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return portal;
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
const targetElement = $derived(portalBond?.targetElement);
|
|
37
|
+
|
|
38
|
+
function _port(node: HTMLElement) {
|
|
39
|
+
const hidden = node.hidden;
|
|
40
|
+
|
|
41
|
+
node.hidden = true;
|
|
42
|
+
|
|
43
|
+
const unport = port(node, targetElement);
|
|
44
|
+
|
|
45
|
+
node.hidden = hidden;
|
|
46
|
+
|
|
47
|
+
return unport;
|
|
48
|
+
}
|
|
49
|
+
</script>
|
|
50
|
+
|
|
51
|
+
{#if targetElement && portal}
|
|
52
|
+
<HtmlAtom {@attach _port} as={as as E} {base} {...restProps}>
|
|
53
|
+
{@render children?.({ portal: portalBond })}
|
|
54
|
+
</HtmlAtom>
|
|
55
|
+
{/if}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { type HtmlAtomProps, type Base } from '../atom';
|
|
2
2
|
import type { HtmlElementTagName, HtmlElementType } from '../element';
|
|
3
3
|
export type TeleportProps<E extends HtmlElementTagName = 'div', B extends Base = Base> = HtmlAtomProps<E, B> & {
|
|
4
|
-
portal?: string;
|
|
4
|
+
portal?: string | PortalBond;
|
|
5
5
|
};
|
|
6
6
|
import type { HTMLAttributes } from 'svelte/elements';
|
|
7
|
+
import type { PortalBond } from '.';
|
|
7
8
|
declare function $$render<E extends HtmlElementTagName = 'div', B extends Base = Base>(): {
|
|
8
9
|
props: Record<string, unknown> & {
|
|
9
10
|
[key: string]: unknown;
|
|
@@ -23,7 +24,7 @@ declare function $$render<E extends HtmlElementTagName = 'div', B extends Base =
|
|
|
23
24
|
preset?: import("../..").ModuleName | (string & {});
|
|
24
25
|
variants?: import("../..").VariantDefinition<any> | ((bond: import("../..").Bond, variantProps: Record<string, any>) => Record<string, any>);
|
|
25
26
|
} & {
|
|
26
|
-
portal?: string;
|
|
27
|
+
portal?: string | PortalBond;
|
|
27
28
|
} & HTMLAttributes<HtmlElementType<E>>;
|
|
28
29
|
exports: {};
|
|
29
30
|
bindings: "";
|
|
@@ -20,22 +20,22 @@
|
|
|
20
20
|
<div class="flex h-full w-full flex-col items-center justify-center">
|
|
21
21
|
<RadioGroupComponent class="gap-4" name="choice" bind:value>
|
|
22
22
|
<label class="flex items-center gap-2">
|
|
23
|
-
<RadioComponent class="size-8
|
|
23
|
+
<RadioComponent class="size-8" value="t1" />
|
|
24
24
|
<div>Test 1</div>
|
|
25
25
|
</label>
|
|
26
26
|
|
|
27
27
|
<label class="flex items-center gap-2">
|
|
28
|
-
<RadioComponent class="size-8
|
|
28
|
+
<RadioComponent class="size-8" value="t2" />
|
|
29
29
|
<div>Test 2</div>
|
|
30
30
|
</label>
|
|
31
31
|
|
|
32
32
|
<label class="flex items-center gap-2">
|
|
33
|
-
<RadioComponent class="size-8
|
|
33
|
+
<RadioComponent class="size-8" value="t3" />
|
|
34
34
|
<div>Test 3</div>
|
|
35
35
|
</label>
|
|
36
36
|
|
|
37
37
|
<label class="flex items-center gap-2">
|
|
38
|
-
<RadioComponent class="size-8
|
|
38
|
+
<RadioComponent class="size-8" value="t4" />
|
|
39
39
|
<div>Test 4</div>
|
|
40
40
|
</label>
|
|
41
41
|
</RadioGroupComponent>
|
|
@@ -72,7 +72,7 @@
|
|
|
72
72
|
<Stack.Root
|
|
73
73
|
preset="radio"
|
|
74
74
|
class={[
|
|
75
|
-
'text-foreground box-border inline-flex aspect-square size-4 max-w-fit cursor-pointer place-items-center rounded-full border p-
|
|
75
|
+
'text-foreground bg-input box-border inline-flex aspect-square size-4 max-w-fit cursor-pointer place-items-center rounded-full border p-0',
|
|
76
76
|
isDisabled && 'pointer-events-none opacity-50',
|
|
77
77
|
'$preset',
|
|
78
78
|
toClassValue.apply(null, [klass, {}])
|
|
@@ -99,11 +99,11 @@
|
|
|
99
99
|
{#if isChecked}
|
|
100
100
|
{#if checkedContent}
|
|
101
101
|
<HtmlAtom
|
|
102
|
-
class="rounded-inherit pointer-events-none size-
|
|
102
|
+
class="rounded-inherit pointer-events-none size-1/2 bg-current"
|
|
103
103
|
base={checkedContent}
|
|
104
104
|
/>
|
|
105
105
|
{:else}
|
|
106
|
-
<Stack.Item class="rounded-inherit pointer-events-none size-
|
|
106
|
+
<Stack.Item class="rounded-inherit pointer-events-none size-1/2 bg-current"></Stack.Item>
|
|
107
107
|
{/if}
|
|
108
108
|
{/if}
|
|
109
109
|
</Stack.Root>
|