@pzerelles/headlessui-svelte 2.1.2-next.31 → 2.1.2-next.33
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/dist/button/Button.svelte +84 -55
- package/dist/button/Button.svelte.d.ts +4 -32
- package/dist/checkbox/Checkbox.svelte +177 -121
- package/dist/checkbox/Checkbox.svelte.d.ts +14 -32
- package/dist/close-button/CloseButton.svelte +10 -7
- package/dist/close-button/CloseButton.svelte.d.ts +2 -44
- package/dist/data-interactive/DataInteractive.svelte +49 -37
- package/dist/data-interactive/DataInteractive.svelte.d.ts +7 -30
- package/dist/description/Description.svelte +35 -22
- package/dist/description/Description.svelte.d.ts +7 -28
- package/dist/dialog/Dialog.svelte +326 -232
- package/dist/dialog/Dialog.svelte.d.ts +4 -42
- package/dist/dialog/DialogBackdrop.svelte +33 -16
- package/dist/dialog/DialogBackdrop.svelte.d.ts +4 -29
- package/dist/dialog/DialogPanel.svelte +60 -29
- package/dist/dialog/DialogPanel.svelte.d.ts +4 -30
- package/dist/dialog/DialogTitle.svelte +51 -24
- package/dist/dialog/DialogTitle.svelte.d.ts +6 -27
- package/dist/field/Field.svelte +44 -28
- package/dist/field/Field.svelte.d.ts +4 -30
- package/dist/fieldset/Fieldset.svelte +48 -30
- package/dist/fieldset/Fieldset.svelte.d.ts +5 -31
- package/dist/focus-trap/FocusTrap.svelte +430 -298
- package/dist/focus-trap/FocusTrap.svelte.d.ts +5 -34
- package/dist/hooks/use-inert-others.svelte.js +10 -10
- package/dist/hooks/use-resolve-button-type.svelte.js +0 -1
- package/dist/input/Input.svelte +95 -54
- package/dist/input/Input.svelte.d.ts +13 -27
- package/dist/internal/FloatingProvider.svelte +14 -9
- package/dist/internal/FocusSentinel.svelte +49 -40
- package/dist/internal/ForcePortalRoot.svelte +7 -3
- package/dist/internal/FormFields.svelte +47 -34
- package/dist/internal/FormFieldsProvider.svelte +9 -5
- package/dist/internal/FormResolver.svelte +25 -16
- package/dist/internal/Hidden.svelte +45 -38
- package/dist/internal/Hidden.svelte.d.ts +4 -30
- package/dist/internal/MainTreeProvider.svelte +90 -37
- package/dist/internal/Portal.svelte +18 -14
- package/dist/label/Label.svelte +100 -59
- package/dist/label/Label.svelte.d.ts +7 -32
- package/dist/legend/Legend.svelte +27 -4
- package/dist/legend/Legend.svelte.d.ts +4 -3
- package/dist/listbox/Listbox.svelte +518 -391
- package/dist/listbox/Listbox.svelte.d.ts +11 -35
- package/dist/listbox/ListboxButton.svelte +175 -128
- package/dist/listbox/ListboxButton.svelte.d.ts +5 -32
- package/dist/listbox/ListboxOption.svelte +171 -130
- package/dist/listbox/ListboxOption.svelte.d.ts +12 -26
- package/dist/listbox/ListboxOptions.svelte +403 -305
- package/dist/listbox/ListboxOptions.svelte.d.ts +4 -38
- package/dist/listbox/ListboxSelectedOption.svelte +40 -19
- package/dist/listbox/ListboxSelectedOption.svelte.d.ts +8 -33
- package/dist/menu/Menu.svelte +76 -52
- package/dist/menu/Menu.svelte.d.ts +3 -31
- package/dist/menu/MenuButton.svelte +158 -118
- package/dist/menu/MenuButton.svelte.d.ts +4 -34
- package/dist/menu/MenuHeading.svelte +34 -15
- package/dist/menu/MenuHeading.svelte.d.ts +4 -31
- package/dist/menu/MenuItem.svelte +143 -108
- package/dist/menu/MenuItem.svelte.d.ts +5 -32
- package/dist/menu/MenuItems.svelte +301 -230
- package/dist/menu/MenuItems.svelte.d.ts +4 -38
- package/dist/menu/MenuSection.svelte +26 -10
- package/dist/menu/MenuSection.svelte.d.ts +5 -29
- package/dist/menu/MenuSeparator.svelte +20 -5
- package/dist/menu/MenuSeparator.svelte.d.ts +5 -28
- package/dist/popover/Popover.svelte +217 -151
- package/dist/popover/Popover.svelte.d.ts +4 -30
- package/dist/popover/PopoverBackdrop.svelte +71 -42
- package/dist/popover/PopoverBackdrop.svelte.d.ts +6 -34
- package/dist/popover/PopoverButton.svelte +302 -222
- package/dist/popover/PopoverButton.svelte.d.ts +6 -29
- package/dist/popover/PopoverGroup.svelte +64 -36
- package/dist/popover/PopoverGroup.svelte.d.ts +5 -28
- package/dist/popover/PopoverPanel.svelte +335 -248
- package/dist/popover/PopoverPanel.svelte.d.ts +5 -36
- package/dist/popover/index.d.ts +1 -1
- package/dist/portal/InternalPortal.svelte +143 -86
- package/dist/portal/InternalPortal.svelte.d.ts +4 -30
- package/dist/portal/Portal.svelte +8 -4
- package/dist/portal/Portal.svelte.d.ts +2 -18
- package/dist/portal/PortalGroup.svelte +23 -10
- package/dist/portal/PortalGroup.svelte.d.ts +3 -31
- package/dist/select/Select.svelte +100 -69
- package/dist/select/Select.svelte.d.ts +5 -32
- package/dist/switch/Switch.svelte +181 -133
- package/dist/switch/Switch.svelte.d.ts +5 -38
- package/dist/switch/SwitchGroup.svelte +45 -32
- package/dist/switch/SwitchGroup.svelte.d.ts +7 -28
- package/dist/tabs/Tab.svelte +195 -143
- package/dist/tabs/Tab.svelte.d.ts +4 -32
- package/dist/tabs/TabGroup.svelte +87 -57
- package/dist/tabs/TabGroup.svelte.d.ts +4 -34
- package/dist/tabs/TabList.svelte +31 -12
- package/dist/tabs/TabList.svelte.d.ts +5 -28
- package/dist/tabs/TabPanel.svelte +69 -44
- package/dist/tabs/TabPanel.svelte.d.ts +4 -34
- package/dist/tabs/TabPanels.svelte +19 -8
- package/dist/tabs/TabPanels.svelte.d.ts +5 -27
- package/dist/textarea/Textarea.svelte +87 -54
- package/dist/textarea/Textarea.svelte.d.ts +13 -27
- package/dist/transition/InternalTransitionChild.svelte +267 -171
- package/dist/transition/InternalTransitionChild.svelte.d.ts +3 -33
- package/dist/transition/Transition.svelte +88 -67
- package/dist/transition/Transition.svelte.d.ts +3 -36
- package/dist/transition/TransitionChild.svelte +31 -12
- package/dist/transition/TransitionChild.svelte.d.ts +8 -35
- package/dist/transition/context.svelte.js +7 -7
- package/dist/utils/DisabledProvider.svelte +7 -3
- package/dist/utils/ElementOrComponent.svelte +88 -24
- package/dist/utils/ElementOrComponent.svelte.d.ts +32 -27
- package/dist/utils/StableCollection.svelte +54 -36
- package/dist/utils/floating-ui/svelte/components/FloatingNode.svelte +27 -12
- package/dist/utils/floating-ui/svelte/components/FloatingTree.svelte +88 -44
- package/dist/utils/state.js +4 -4
- package/dist/utils/types.d.ts +14 -12
- package/package.json +12 -12
- package/dist/combobox/Combobox.svelte +0 -6
- package/dist/combobox/Combobox.svelte.d.ts +0 -50
- package/dist/utils/Generic.svelte +0 -46
- package/dist/utils/Generic.svelte.d.ts +0 -32
- package/dist/utils/alternative-types.d.ts +0 -20
- package/dist/utils/alternative-types.js +0 -1
|
@@ -1,50 +1,94 @@
|
|
|
1
|
-
<script lang="ts" module>
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
<script lang="ts" module>
|
|
2
|
+
import { getContext, type Snippet } from "svelte"
|
|
3
|
+
import { useId } from "../hooks/useId.svelte.js"
|
|
4
|
+
import type { FloatingNodeType, FloatingTreeType, ReferenceType } from "../types.js"
|
|
5
|
+
import { createPubSub } from "../utils/createPubSub.js"
|
|
6
|
+
import type { MutableRefObject } from "../../../ref.svelte.js"
|
|
7
|
+
|
|
8
|
+
//const FloatingNodeContext = React.createContext<FloatingNodeType | null>(null)
|
|
9
|
+
//const FloatingTreeContext = React.createContext<FloatingTreeType | null>(null)
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Returns the parent node id for nested floating elements, if available.
|
|
13
|
+
* Returns `null` for top-level floating elements.
|
|
14
|
+
*/
|
|
15
|
+
export const useFloatingParentNodeId = (): { readonly value: string | null } => {
|
|
16
|
+
const context = getContext<FloatingNodeType>("FloatingNodeContext")
|
|
17
|
+
return {
|
|
18
|
+
get value() {
|
|
19
|
+
return context?.id ?? null
|
|
20
|
+
},
|
|
9
21
|
}
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Returns the nearest floating tree context, if available.
|
|
26
|
+
*/
|
|
27
|
+
export const useFloatingTree = <RT extends ReferenceType = ReferenceType>(): FloatingTreeType<RT> | null =>
|
|
28
|
+
getContext<FloatingTreeType<RT>>("FloatingTreeContext") ?? null
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Registers a node into the `FloatingTree`, returning its id.
|
|
32
|
+
* @see https://floating-ui.com/docs/FloatingTree
|
|
33
|
+
*/
|
|
34
|
+
export function useFloatingNodeId(options: { customParentId?: string }): string {
|
|
35
|
+
const { customParentId } = $derived(options)
|
|
36
|
+
const id = useId()
|
|
37
|
+
const tree = useFloatingTree()
|
|
38
|
+
const reactParentId = useFloatingParentNodeId()
|
|
39
|
+
const parentId = $derived(customParentId || reactParentId.value)
|
|
40
|
+
|
|
41
|
+
$effect(() => {
|
|
42
|
+
const node = { id, parentId }
|
|
43
|
+
tree?.addNode(node)
|
|
44
|
+
return () => {
|
|
45
|
+
tree?.removeNode(node)
|
|
46
|
+
}
|
|
47
|
+
}) //, [tree, id, parentId])
|
|
48
|
+
|
|
49
|
+
return id
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export interface FloatingTreeProps {
|
|
53
|
+
children?: Snippet
|
|
54
|
+
}
|
|
28
55
|
</script>
|
|
29
56
|
|
|
30
|
-
<script lang="ts">
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
57
|
+
<script lang="ts">
|
|
58
|
+
/**
|
|
59
|
+
* Provides context for nested floating elements when they are not children of
|
|
60
|
+
* each other on the DOM.
|
|
61
|
+
* This is not necessary in all cases, except when there must be explicit communication between parent and child floating elements. It is necessary for:
|
|
62
|
+
* - The `bubbles` option in the `useDismiss()` Hook
|
|
63
|
+
* - Nested virtual list navigation
|
|
64
|
+
* - Nested floating elements that each open on hover
|
|
65
|
+
* - Custom communication between parent and child floating elements
|
|
66
|
+
* @see https://floating-ui.com/docs/FloatingTree
|
|
67
|
+
*/
|
|
68
|
+
import { setContext } from "svelte"
|
|
69
|
+
|
|
70
|
+
const { children }: FloatingTreeProps = $props()
|
|
71
|
+
|
|
72
|
+
const nodesRef = $state<MutableRefObject<Array<FloatingNodeType>>>({ current: [] })
|
|
73
|
+
|
|
74
|
+
const addNode = (node: FloatingNodeType) => {
|
|
75
|
+
nodesRef.current = [...nodesRef.current, node]
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
const removeNode = (node: FloatingNodeType) => {
|
|
79
|
+
nodesRef.current = nodesRef.current.filter((n) => n !== node)
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
const events = createPubSub()
|
|
83
|
+
|
|
84
|
+
setContext<FloatingTreeType<ReferenceType>>("FloatingTreeContext", {
|
|
85
|
+
get nodesRef() {
|
|
86
|
+
return nodesRef
|
|
87
|
+
},
|
|
88
|
+
addNode,
|
|
89
|
+
removeNode,
|
|
90
|
+
events,
|
|
91
|
+
})
|
|
48
92
|
</script>
|
|
49
93
|
|
|
50
94
|
{#if children}{@render children()}{/if}
|
package/dist/utils/state.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export const stateFromSlot = (slot = {}) => {
|
|
2
2
|
if (typeof slot !== "object")
|
|
3
3
|
return {};
|
|
4
|
-
|
|
4
|
+
const dataAttributes = {};
|
|
5
5
|
let exposeState = false;
|
|
6
|
-
|
|
7
|
-
for (
|
|
6
|
+
const states = [];
|
|
7
|
+
for (const [k, v] of Object.entries(slot)) {
|
|
8
8
|
if (typeof v === "boolean") {
|
|
9
9
|
exposeState = true;
|
|
10
10
|
}
|
|
@@ -14,7 +14,7 @@ export const stateFromSlot = (slot = {}) => {
|
|
|
14
14
|
}
|
|
15
15
|
if (!exposeState)
|
|
16
16
|
return {};
|
|
17
|
-
for (
|
|
17
|
+
for (const s of states) {
|
|
18
18
|
dataAttributes[`data-${s}`] = "";
|
|
19
19
|
}
|
|
20
20
|
return {
|
package/dist/utils/types.d.ts
CHANGED
|
@@ -1,20 +1,22 @@
|
|
|
1
1
|
import type { Snippet } from "svelte";
|
|
2
2
|
import type { SvelteHTMLElements } from "svelte/elements";
|
|
3
|
-
export type ElementType = keyof SvelteHTMLElements;
|
|
4
3
|
export type Expand<T> = T extends infer O ? {
|
|
5
4
|
[K in keyof O]: O[K];
|
|
6
5
|
} : never;
|
|
7
|
-
export type
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
children?: Snippet<[{
|
|
12
|
-
slot: TSlot;
|
|
13
|
-
props: Record<string, any>;
|
|
6
|
+
export type Props<TTag extends string, TSlot extends Record<string, any> = {}, Overrides = {}> = Omit<SvelteHTMLElements[TTag], "asChild" | "children" | "class" | keyof Overrides> & ({
|
|
7
|
+
asChild: true;
|
|
8
|
+
children?: Snippet<[TSlot & {
|
|
9
|
+
props?: Record<string, any>;
|
|
14
10
|
}]>;
|
|
11
|
+
class?: never;
|
|
12
|
+
} | {
|
|
13
|
+
asChild?: never;
|
|
14
|
+
children?: Snippet<[TSlot]>;
|
|
15
15
|
class?: string | null | ((bag: TSlot) => string);
|
|
16
|
-
|
|
17
|
-
}
|
|
18
|
-
|
|
16
|
+
}) & Overrides;
|
|
17
|
+
export type PropsAsChild<TSlot extends Record<string, any> = {}, Overrides = {}> = {
|
|
18
|
+
children?: Snippet<[TSlot & {
|
|
19
|
+
props?: Record<string, any>;
|
|
20
|
+
}]>;
|
|
21
|
+
} & Overrides;
|
|
19
22
|
export type EnsureArray<T> = T extends any[] ? T : Expand<T>[];
|
|
20
|
-
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pzerelles/headlessui-svelte",
|
|
3
|
-
"version": "2.1.2-next.
|
|
3
|
+
"version": "2.1.2-next.33",
|
|
4
4
|
"exports": {
|
|
5
5
|
".": {
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -16,38 +16,38 @@
|
|
|
16
16
|
"svelte": "^5.0.0-next.244"
|
|
17
17
|
},
|
|
18
18
|
"devDependencies": {
|
|
19
|
-
"@changesets/cli": "^2.27.
|
|
19
|
+
"@changesets/cli": "^2.27.9",
|
|
20
20
|
"@changesets/types": "^6.0.0",
|
|
21
|
-
"@playwright/test": "^1.
|
|
21
|
+
"@playwright/test": "^1.48.0",
|
|
22
22
|
"@pzerelles/heroicons-svelte": "^2.1.5",
|
|
23
23
|
"@sveltejs/adapter-auto": "^3.2.5",
|
|
24
|
-
"@sveltejs/kit": "^2.6.
|
|
24
|
+
"@sveltejs/kit": "^2.6.3",
|
|
25
25
|
"@sveltejs/package": "^2.3.5",
|
|
26
26
|
"@sveltejs/vite-plugin-svelte": "4.0.0-next.7",
|
|
27
27
|
"@testing-library/jest-dom": "^6.5.0",
|
|
28
|
-
"@testing-library/svelte": "^5.2.
|
|
28
|
+
"@testing-library/svelte": "^5.2.3",
|
|
29
29
|
"@types/eslint": "^9.6.1",
|
|
30
|
-
"@types/node": "^20.16.
|
|
30
|
+
"@types/node": "^20.16.11",
|
|
31
31
|
"autoprefixer": "^10.4.20",
|
|
32
|
-
"eslint": "^9.
|
|
32
|
+
"eslint": "^9.12.0",
|
|
33
33
|
"eslint-config-prettier": "^9.1.0",
|
|
34
34
|
"eslint-plugin-svelte": "^2.44.1",
|
|
35
|
-
"globals": "^15.
|
|
36
|
-
"jsdom": "^
|
|
35
|
+
"globals": "^15.10.0",
|
|
36
|
+
"jsdom": "^25.0.1",
|
|
37
37
|
"outdent": "^0.8.0",
|
|
38
38
|
"postcss": "^8.4.47",
|
|
39
39
|
"prettier": "^3.3.3",
|
|
40
40
|
"prettier-plugin-svelte": "^3.2.7",
|
|
41
41
|
"prettier-plugin-tailwindcss": "^0.6.8",
|
|
42
42
|
"publint": "^0.2.11",
|
|
43
|
-
"svelte": "5.0.0-next.
|
|
43
|
+
"svelte": "5.0.0-next.262",
|
|
44
44
|
"svelte-check": "^4.0.4",
|
|
45
45
|
"tailwindcss": "^3.4.13",
|
|
46
46
|
"tslib": "^2.7.0",
|
|
47
47
|
"typescript": "^5.6.2",
|
|
48
|
-
"typescript-eslint": "^8.
|
|
48
|
+
"typescript-eslint": "^8.8.1",
|
|
49
49
|
"vite": "^5.4.8",
|
|
50
|
-
"vitest": "^2.1.
|
|
50
|
+
"vitest": "^2.1.2"
|
|
51
51
|
},
|
|
52
52
|
"dependencies": {
|
|
53
53
|
"@floating-ui/core": "^1.6.8",
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
<script lang="ts" module>const DEFAULT_COMBOBOX_TAG = "svelte:fragment";
|
|
2
|
-
</script>
|
|
3
|
-
|
|
4
|
-
<script lang="ts" generics="TType, TTag extends ElementType = typeof DEFAULT_COMBOBOX_TAG">import { useDisabled } from "../hooks/use-disabled.js";
|
|
5
|
-
const providedDisabled = useDisabled();
|
|
6
|
-
</script>
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import type { ElementType, EnsureArray, Props } from "../utils/types.js";
|
|
2
|
-
import type { ByComparator } from "../hooks/use-by-comparator.js";
|
|
3
|
-
declare const DEFAULT_COMBOBOX_TAG: "svelte:fragment";
|
|
4
|
-
type ComboboxRenderPropArg<TValue, TActive = TValue> = {
|
|
5
|
-
open: boolean;
|
|
6
|
-
disabled: boolean;
|
|
7
|
-
activeIndex: number | null;
|
|
8
|
-
activeOption: TActive | null;
|
|
9
|
-
value: TValue;
|
|
10
|
-
};
|
|
11
|
-
export type CheckboxProps<TValue, TMultiple extends boolean | undefined, TTag extends ElementType = typeof DEFAULT_COMBOBOX_TAG> = Props<TTag, ComboboxRenderPropArg<NoInfer<TValue>>, "value" | "defaultValue" | "multiple" | "onChange" | "by", {
|
|
12
|
-
value?: TMultiple extends true ? EnsureArray<TValue> : TValue;
|
|
13
|
-
defaultValue?: TMultiple extends true ? EnsureArray<NoInfer<TValue>> : NoInfer<TValue>;
|
|
14
|
-
onChange?(value: TMultiple extends true ? EnsureArray<NoInfer<TValue>> : NoInfer<TValue> | null): void;
|
|
15
|
-
by?: ByComparator<TMultiple extends true ? EnsureArray<NoInfer<TValue>>[number] : NoInfer<TValue>>;
|
|
16
|
-
/** @deprecated The `<Combobox />` is now nullable default */
|
|
17
|
-
nullable?: boolean;
|
|
18
|
-
multiple?: TMultiple;
|
|
19
|
-
disabled?: boolean;
|
|
20
|
-
form?: string;
|
|
21
|
-
name?: string;
|
|
22
|
-
immediate?: boolean;
|
|
23
|
-
virtual?: {
|
|
24
|
-
options: NoInfer<TValue>[];
|
|
25
|
-
disabled?: (value: NoInfer<TValue>) => boolean;
|
|
26
|
-
} | null;
|
|
27
|
-
onclose?(): void;
|
|
28
|
-
__demoMode?: boolean;
|
|
29
|
-
}>;
|
|
30
|
-
declare class __sveltets_Render<TType, TTag extends ElementType = typeof DEFAULT_COMBOBOX_TAG> {
|
|
31
|
-
props(): Record<string, never>;
|
|
32
|
-
events(): {} & {
|
|
33
|
-
[evt: string]: CustomEvent<any>;
|
|
34
|
-
};
|
|
35
|
-
slots(): {};
|
|
36
|
-
bindings(): string;
|
|
37
|
-
exports(): {};
|
|
38
|
-
}
|
|
39
|
-
interface $$IsomorphicComponent {
|
|
40
|
-
new <TType, TTag extends ElementType = typeof DEFAULT_COMBOBOX_TAG>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<TType, TTag>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<TType, TTag>['props']>, ReturnType<__sveltets_Render<TType, TTag>['events']>, ReturnType<__sveltets_Render<TType, TTag>['slots']>> & {
|
|
41
|
-
$$bindings?: ReturnType<__sveltets_Render<TType, TTag>['bindings']>;
|
|
42
|
-
} & ReturnType<__sveltets_Render<TType, TTag>['exports']>;
|
|
43
|
-
<TType, TTag extends ElementType = typeof DEFAULT_COMBOBOX_TAG>(internal: unknown, props: {
|
|
44
|
-
$$events?: ReturnType<__sveltets_Render<TType, TTag>['events']>;
|
|
45
|
-
}): ReturnType<__sveltets_Render<TType, TTag>['exports']>;
|
|
46
|
-
z_$$bindings?: ReturnType<__sveltets_Render<any, any>['bindings']>;
|
|
47
|
-
}
|
|
48
|
-
declare const Combobox: $$IsomorphicComponent;
|
|
49
|
-
type Combobox<TType, TTag extends ElementType = typeof DEFAULT_COMBOBOX_TAG> = InstanceType<typeof Combobox<TType, TTag>>;
|
|
50
|
-
export default Combobox;
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
<script lang="ts" generics="TTag extends ElementType, TSlot, TValue">import { stateFromSlot } from "./state.js";
|
|
2
|
-
let {
|
|
3
|
-
slot = {},
|
|
4
|
-
tag,
|
|
5
|
-
ref = $bindable(),
|
|
6
|
-
value = $bindable(),
|
|
7
|
-
checked = $bindable(),
|
|
8
|
-
children,
|
|
9
|
-
as = tag,
|
|
10
|
-
unmount,
|
|
11
|
-
static: isStatic,
|
|
12
|
-
...props
|
|
13
|
-
} = $props();
|
|
14
|
-
const resolvedClass = $derived(
|
|
15
|
-
typeof props.class === "function" ? props.class(slot) : props.class
|
|
16
|
-
);
|
|
17
|
-
</script>
|
|
18
|
-
|
|
19
|
-
{#if as === "svelte:fragment"}
|
|
20
|
-
{#if children}{@render children({
|
|
21
|
-
slot,
|
|
22
|
-
props: {
|
|
23
|
-
...props,
|
|
24
|
-
...(resolvedClass ? { class: resolvedClass } : {}),
|
|
25
|
-
...stateFromSlot(slot),
|
|
26
|
-
},
|
|
27
|
-
})}{/if}
|
|
28
|
-
{:else if children}
|
|
29
|
-
{#if as === "select"}
|
|
30
|
-
<select bind:this={ref} {...props} class={resolvedClass} {...stateFromSlot(slot)} bind:value>
|
|
31
|
-
{@render children({ slot, props: {} })}
|
|
32
|
-
</select>
|
|
33
|
-
{:else}
|
|
34
|
-
<svelte:element this={as} bind:this={ref} {...props} class={resolvedClass} {...stateFromSlot(slot)}>
|
|
35
|
-
{@render children({ slot, props: {} })}
|
|
36
|
-
</svelte:element>
|
|
37
|
-
{/if}
|
|
38
|
-
{:else if as === "input" && props.type === "checkbox"}
|
|
39
|
-
<input type="checkbox" bind:this={ref} {...props} class={resolvedClass} {...stateFromSlot(slot)} bind:checked />
|
|
40
|
-
{:else if as === "input"}
|
|
41
|
-
<input bind:this={ref} {...props} class={resolvedClass} {...stateFromSlot(slot)} bind:value />
|
|
42
|
-
{:else if as === "textarea"}
|
|
43
|
-
<textarea bind:this={ref} {...props} class={resolvedClass} {...stateFromSlot(slot)} bind:value></textarea>
|
|
44
|
-
{:else}
|
|
45
|
-
<svelte:element this={as} bind:this={ref} {...props} class={resolvedClass} {...stateFromSlot(slot)} />
|
|
46
|
-
{/if}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import type { ElementType } from "./types.js";
|
|
2
|
-
declare class __sveltets_Render<TTag extends ElementType, TSlot, TValue> {
|
|
3
|
-
props(): {
|
|
4
|
-
as?: TTag | undefined;
|
|
5
|
-
slot: TSlot;
|
|
6
|
-
tag: ElementType;
|
|
7
|
-
ref?: HTMLElement;
|
|
8
|
-
value?: TValue | undefined;
|
|
9
|
-
checked?: boolean;
|
|
10
|
-
} & (Exclude<keyof import("./types.js").PropsOf<TTag>, "slot" | "as" | "children" | "class" | "ref"> extends infer T extends keyof import("./types.js").PropsOf<TTag> ? { [P in T]: import("./types.js").PropsOf<TTag>[P]; } : never) & {
|
|
11
|
-
children?: import("svelte").Snippet<[{
|
|
12
|
-
slot: TSlot;
|
|
13
|
-
props: Record<string, any>;
|
|
14
|
-
}]> | undefined;
|
|
15
|
-
class?: string | ((bag: TSlot) => string) | null | undefined;
|
|
16
|
-
ref?: HTMLElement;
|
|
17
|
-
};
|
|
18
|
-
events(): {};
|
|
19
|
-
slots(): {};
|
|
20
|
-
bindings(): "ref" | "value" | "checked";
|
|
21
|
-
exports(): {};
|
|
22
|
-
}
|
|
23
|
-
interface $$IsomorphicComponent {
|
|
24
|
-
new <TTag extends ElementType, TSlot, TValue>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<TTag, TSlot, TValue>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<TTag, TSlot, TValue>['props']>, ReturnType<__sveltets_Render<TTag, TSlot, TValue>['events']>, ReturnType<__sveltets_Render<TTag, TSlot, TValue>['slots']>> & {
|
|
25
|
-
$$bindings?: ReturnType<__sveltets_Render<TTag, TSlot, TValue>['bindings']>;
|
|
26
|
-
} & ReturnType<__sveltets_Render<TTag, TSlot, TValue>['exports']>;
|
|
27
|
-
<TTag extends ElementType, TSlot, TValue>(internal: unknown, props: ReturnType<__sveltets_Render<TTag, TSlot, TValue>['props']> & {}): ReturnType<__sveltets_Render<TTag, TSlot, TValue>['exports']>;
|
|
28
|
-
z_$$bindings?: ReturnType<__sveltets_Render<any, any, any>['bindings']>;
|
|
29
|
-
}
|
|
30
|
-
declare const Generic: $$IsomorphicComponent;
|
|
31
|
-
type Generic<TTag extends ElementType, TSlot, TValue> = InstanceType<typeof Generic<TTag, TSlot, TValue>>;
|
|
32
|
-
export default Generic;
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import type { Snippet } from "svelte";
|
|
2
|
-
import type { SvelteHTMLElements } from "svelte/elements";
|
|
3
|
-
export interface SvelteHTMLProps extends SvelteHTMLElements {
|
|
4
|
-
"svelte:fragment": {};
|
|
5
|
-
}
|
|
6
|
-
export type ElementType = keyof SvelteHTMLProps;
|
|
7
|
-
export type Expand<T> = T extends infer O ? {
|
|
8
|
-
[K in keyof O]: O[K];
|
|
9
|
-
} : never;
|
|
10
|
-
type OurProps<TSlot> = {
|
|
11
|
-
children?: Snippet<[TSlot, Record<string, any>]>;
|
|
12
|
-
ref?: HTMLElement;
|
|
13
|
-
class?: string | null | ((bag: TSlot) => string);
|
|
14
|
-
};
|
|
15
|
-
type MergeProps3<T, U, V> = {
|
|
16
|
-
[K in keyof T | keyof U | keyof V]?: K extends keyof V ? V[K] : K extends keyof U ? U[K] : K extends keyof T ? T[K] : never;
|
|
17
|
-
};
|
|
18
|
-
export type Props<TTag extends ElementType, TSlot = {}, TOmittableProps extends PropertyKey = never, Overrides = {}> = MergeProps3<SvelteHTMLProps[TTag], OurProps<TSlot>, Overrides>;
|
|
19
|
-
export type EnsureArray<T> = T extends any[] ? T : Expand<T>[];
|
|
20
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|