@pzerelles/headlessui-svelte 2.1.1-next.1 → 2.1.2-next.11
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 +6 -10
- package/dist/button/Button.svelte.d.ts +34 -26
- package/dist/checkbox/Checkbox.svelte +43 -25
- package/dist/checkbox/Checkbox.svelte.d.ts +42 -28
- package/dist/close-button/CloseButton.svelte +5 -4
- package/dist/close-button/CloseButton.svelte.d.ts +36 -13
- package/dist/combobox/Combobox.svelte +2 -2
- package/dist/combobox/Combobox.svelte.d.ts +9 -9
- package/dist/data-interactive/DataInteractive.svelte +41 -0
- package/dist/data-interactive/DataInteractive.svelte.d.ts +39 -0
- package/dist/data-interactive/index.d.ts +1 -0
- package/dist/data-interactive/index.js +1 -0
- package/dist/description/Description.svelte +10 -53
- package/dist/description/Description.svelte.d.ts +15 -32
- package/dist/description/context.svelte.d.ts +17 -0
- package/dist/description/context.svelte.js +51 -0
- package/dist/dialog/Dialog.svelte +51 -0
- package/dist/dialog/Dialog.svelte.d.ts +60 -0
- package/dist/dialog/DialogBackdrop.svelte +39 -0
- package/dist/dialog/DialogBackdrop.svelte.d.ts +38 -0
- package/dist/dialog/DialogPanel.svelte +46 -0
- package/dist/dialog/DialogPanel.svelte.d.ts +40 -0
- package/dist/dialog/DialogTitle.svelte +29 -0
- package/dist/dialog/DialogTitle.svelte.d.ts +34 -0
- package/dist/dialog/InternalDialog.svelte +233 -0
- package/dist/dialog/InternalDialog.svelte.d.ts +42 -0
- package/dist/dialog/context.svelte.d.ts +15 -0
- package/dist/dialog/context.svelte.js +16 -0
- package/dist/dialog/index.d.ts +4 -0
- package/dist/dialog/index.js +4 -0
- package/dist/field/Field.svelte +8 -11
- package/dist/field/Field.svelte.d.ts +21 -17
- package/dist/fieldset/Fieldset.svelte +11 -9
- package/dist/fieldset/Fieldset.svelte.d.ts +21 -17
- package/dist/focus-trap/FocusTrap.svelte +325 -0
- package/dist/focus-trap/FocusTrap.svelte.d.ts +46 -0
- package/dist/focus-trap/FocusTrapFeatures.d.ts +14 -0
- package/dist/focus-trap/FocusTrapFeatures.js +15 -0
- package/dist/hooks/use-controllable.svelte.d.ts +1 -1
- package/dist/hooks/use-controllable.svelte.js +3 -3
- package/dist/hooks/use-did-element-move.svelte.js +5 -10
- package/dist/hooks/use-escape.svelte.d.ts +5 -0
- package/dist/hooks/use-escape.svelte.js +26 -0
- package/dist/hooks/use-event-listener.svelte.d.ts +6 -0
- package/dist/hooks/use-event-listener.svelte.js +12 -0
- package/dist/hooks/use-inert-others.svelte.d.ts +2 -2
- package/dist/hooks/use-inert-others.svelte.js +3 -3
- package/dist/hooks/use-is-mounted.svelte.d.ts +3 -0
- package/dist/hooks/use-is-mounted.svelte.js +14 -0
- package/dist/hooks/use-is-touch-device.svelte.d.ts +3 -0
- package/dist/hooks/use-is-touch-device.svelte.js +20 -0
- package/dist/hooks/use-root-containers.svelte.d.ts +9 -0
- package/dist/hooks/use-root-containers.svelte.js +50 -0
- package/dist/hooks/use-tab-direction.svelte.d.ts +7 -0
- package/dist/hooks/use-tab-direction.svelte.js +25 -0
- package/dist/hooks/use-transition.svelte.js +14 -13
- package/dist/hooks/use-tree-walker.svelte.d.ts +8 -0
- package/dist/hooks/use-tree-walker.svelte.js +19 -0
- package/dist/hooks/use-watch.svelte.d.ts +4 -0
- package/dist/hooks/use-watch.svelte.js +16 -0
- package/dist/hooks/use-window-event.svelte.d.ts +6 -0
- package/dist/hooks/use-window-event.svelte.js +12 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.js +10 -0
- package/dist/input/Input.svelte +59 -0
- package/dist/input/Input.svelte.d.ts +50 -0
- package/dist/input/index.d.ts +1 -0
- package/dist/input/index.js +1 -0
- package/dist/internal/FloatingProvider.svelte +12 -0
- package/dist/internal/FloatingProvider.svelte.d.ts +22 -0
- package/dist/internal/FocusSentinel.svelte.d.ts +4 -1
- package/dist/internal/ForcePortalRoot.svelte +6 -0
- package/dist/internal/ForcePortalRoot.svelte.d.ts +22 -0
- package/dist/internal/FormFields.svelte.d.ts +4 -1
- package/dist/internal/FormResolver.svelte.d.ts +4 -1
- package/dist/internal/Hidden.svelte +6 -14
- package/dist/internal/Hidden.svelte.d.ts +19 -15
- package/dist/internal/HiddenFeatures.d.ts +5 -0
- package/dist/internal/HiddenFeatures.js +9 -0
- package/dist/internal/HoistFormFields.svelte.d.ts +4 -1
- package/dist/internal/MainTreeProvider.svelte +45 -0
- package/dist/internal/MainTreeProvider.svelte.d.ts +31 -0
- package/dist/internal/Portal.svelte.d.ts +4 -1
- package/dist/internal/close-provider.d.ts +7 -0
- package/dist/internal/close-provider.js +7 -0
- package/dist/internal/floating-provider.svelte.d.ts +3 -0
- package/dist/internal/floating-provider.svelte.js +206 -0
- package/dist/internal/floating.svelte.d.ts +50 -20
- package/dist/internal/floating.svelte.js +100 -271
- package/dist/internal/inner.svelte.d.ts +91 -0
- package/dist/internal/inner.svelte.js +202 -0
- package/dist/internal/open-closed.d.ts +1 -1
- package/dist/internal/open-closed.js +1 -1
- package/dist/label/Label.svelte +17 -65
- package/dist/label/Label.svelte.d.ts +19 -32
- package/dist/label/context.svelte.d.ts +17 -0
- package/dist/label/context.svelte.js +56 -0
- package/dist/legend/Legend.svelte +4 -3
- package/dist/legend/Legend.svelte.d.ts +33 -15
- package/dist/listbox/Listbox.svelte +40 -74
- package/dist/listbox/Listbox.svelte.d.ts +30 -72
- package/dist/listbox/ListboxButton.svelte +16 -18
- package/dist/listbox/ListboxButton.svelte.d.ts +16 -7
- package/dist/listbox/ListboxOption.svelte +10 -10
- package/dist/listbox/ListboxOption.svelte.d.ts +22 -11
- package/dist/listbox/ListboxOptions.svelte +62 -60
- package/dist/listbox/ListboxOptions.svelte.d.ts +23 -7
- package/dist/listbox/ListboxSelectedOption.svelte +15 -7
- package/dist/listbox/ListboxSelectedOption.svelte.d.ts +24 -14
- package/dist/listbox/context.svelte.d.ts +75 -0
- package/dist/listbox/context.svelte.js +36 -0
- package/dist/menu/Menu.svelte +235 -0
- package/dist/menu/Menu.svelte.d.ts +42 -0
- package/dist/menu/MenuButton.svelte +129 -0
- package/dist/menu/MenuButton.svelte.d.ts +52 -0
- package/dist/menu/MenuHeading.svelte +19 -0
- package/dist/menu/MenuHeading.svelte.d.ts +39 -0
- package/dist/menu/MenuItem.svelte +114 -0
- package/dist/menu/MenuItem.svelte.d.ts +49 -0
- package/dist/menu/MenuItems.svelte +248 -0
- package/dist/menu/MenuItems.svelte.d.ts +55 -0
- package/dist/menu/MenuSection.svelte +14 -0
- package/dist/menu/MenuSection.svelte.d.ts +35 -0
- package/dist/menu/MenuSeparator.svelte +9 -0
- package/dist/menu/MenuSeparator.svelte.d.ts +35 -0
- package/dist/menu/context.svelte.d.ts +47 -0
- package/dist/menu/context.svelte.js +21 -0
- package/dist/menu/index.d.ts +7 -0
- package/dist/menu/index.js +7 -0
- package/dist/portal/InternalPortal.svelte +22 -33
- package/dist/portal/InternalPortal.svelte.d.ts +16 -7
- package/dist/portal/Portal.svelte +4 -8
- package/dist/portal/Portal.svelte.d.ts +6 -6
- package/dist/portal/PortalGroup.svelte +5 -6
- package/dist/portal/PortalGroup.svelte.d.ts +16 -7
- package/dist/switch/Switch.svelte +41 -37
- package/dist/switch/Switch.svelte.d.ts +24 -7
- package/dist/switch/SwitchGroup.svelte +7 -8
- package/dist/switch/SwitchGroup.svelte.d.ts +14 -7
- package/dist/tabs/Tab.svelte +9 -14
- package/dist/tabs/Tab.svelte.d.ts +18 -6
- package/dist/tabs/TabGroup.svelte +20 -23
- package/dist/tabs/TabGroup.svelte.d.ts +19 -6
- package/dist/tabs/TabList.svelte +5 -7
- package/dist/tabs/TabList.svelte.d.ts +13 -6
- package/dist/tabs/TabPanel.svelte +30 -32
- package/dist/tabs/TabPanel.svelte.d.ts +19 -6
- package/dist/tabs/TabPanels.svelte +5 -6
- package/dist/tabs/TabPanels.svelte.d.ts +13 -6
- package/dist/textarea/Textarea.svelte +67 -0
- package/dist/textarea/Textarea.svelte.d.ts +50 -0
- package/dist/textarea/index.d.ts +1 -0
- package/dist/textarea/index.js +1 -0
- package/dist/transition/InternalTransitionChild.svelte +178 -0
- package/dist/transition/InternalTransitionChild.svelte.d.ts +55 -0
- package/dist/transition/Transition.svelte +89 -0
- package/dist/transition/Transition.svelte.d.ts +42 -0
- package/dist/transition/TransitionChild.svelte +16 -0
- package/dist/transition/TransitionChild.svelte.d.ts +44 -0
- package/dist/transition/context.svelte.d.ts +64 -0
- package/dist/transition/context.svelte.js +120 -0
- package/dist/transition/index.d.ts +2 -0
- package/dist/transition/index.js +2 -0
- package/dist/utils/ElementOrComponent.svelte +26 -0
- package/dist/utils/ElementOrComponent.svelte.d.ts +56 -0
- package/dist/utils/Generic.svelte +44 -0
- package/dist/utils/Generic.svelte.d.ts +35 -0
- package/dist/utils/StableCollection.svelte +1 -1
- package/dist/utils/StableCollection.svelte.d.ts +4 -1
- package/dist/utils/active-element-history.d.ts +1 -0
- package/dist/utils/active-element-history.js +35 -0
- package/dist/utils/alternative-types.d.ts +21 -0
- package/dist/utils/alternative-types.js +1 -0
- package/dist/utils/class-names.d.ts +1 -0
- package/dist/utils/class-names.js +10 -0
- package/dist/utils/floating-ui/svelte/components/FloatingNode.svelte +17 -0
- package/dist/utils/floating-ui/svelte/components/FloatingNode.svelte.d.ts +23 -0
- package/dist/utils/floating-ui/svelte/components/FloatingTree.svelte +50 -0
- package/dist/utils/floating-ui/svelte/components/FloatingTree.svelte.d.ts +41 -0
- package/dist/utils/floating-ui/svelte/hooks/useFloating.svelte.d.ts +6 -0
- package/dist/utils/floating-ui/svelte/hooks/useFloating.svelte.js +158 -0
- package/dist/utils/floating-ui/svelte/hooks/useFloatingRootContext.svelte.d.ts +11 -0
- package/dist/utils/floating-ui/svelte/hooks/useFloatingRootContext.svelte.js +53 -0
- package/dist/utils/floating-ui/svelte/hooks/useId.svelte.d.ts +9 -0
- package/dist/utils/floating-ui/svelte/hooks/useId.svelte.js +28 -0
- package/dist/utils/floating-ui/svelte/hooks/useInteractions.svelte.d.ts +23 -0
- package/dist/utils/floating-ui/svelte/hooks/useInteractions.svelte.js +72 -0
- package/dist/utils/floating-ui/svelte/index.d.ts +5 -0
- package/dist/utils/floating-ui/svelte/index.js +5 -0
- package/dist/utils/floating-ui/svelte/inner.svelte.d.ts +83 -0
- package/dist/utils/floating-ui/svelte/inner.svelte.js +178 -0
- package/dist/utils/floating-ui/svelte/types.d.ts +114 -0
- package/dist/utils/floating-ui/svelte/types.js +1 -0
- package/dist/utils/floating-ui/svelte/utils/createPubSub.d.ts +5 -0
- package/dist/utils/floating-ui/svelte/utils/createPubSub.js +14 -0
- package/dist/utils/floating-ui/svelte/utils/getFloatingFocusElement.d.ts +2 -0
- package/dist/utils/floating-ui/svelte/utils/getFloatingFocusElement.js +13 -0
- package/dist/utils/floating-ui/svelte/utils/log.d.ts +2 -0
- package/dist/utils/floating-ui/svelte/utils/log.js +19 -0
- package/dist/utils/floating-ui/svelte/utils.d.ts +19 -0
- package/dist/utils/floating-ui/svelte/utils.js +136 -0
- package/dist/utils/floating-ui/svelte-dom/arrow.d.ts +22 -0
- package/dist/utils/floating-ui/svelte-dom/arrow.js +29 -0
- package/dist/utils/floating-ui/svelte-dom/index.d.ts +2 -0
- package/dist/utils/floating-ui/svelte-dom/index.js +2 -0
- package/dist/utils/floating-ui/svelte-dom/types.d.ts +80 -0
- package/dist/utils/floating-ui/svelte-dom/types.js +3 -0
- package/dist/utils/floating-ui/svelte-dom/useFloating.svelte.d.ts +6 -0
- package/dist/utils/floating-ui/svelte-dom/useFloating.svelte.js +183 -0
- package/dist/utils/floating-ui/svelte-dom/utils/deepEqual.d.ts +1 -0
- package/dist/utils/floating-ui/svelte-dom/utils/deepEqual.js +50 -0
- package/dist/utils/floating-ui/svelte-dom/utils/getDPR.d.ts +1 -0
- package/dist/utils/floating-ui/svelte-dom/utils/getDPR.js +7 -0
- package/dist/utils/floating-ui/svelte-dom/utils/roundByDPR.d.ts +1 -0
- package/dist/utils/floating-ui/svelte-dom/utils/roundByDPR.js +5 -0
- package/dist/utils/floating-ui/svelte-dom/utils/useLatestRef.d.ts +4 -0
- package/dist/utils/floating-ui/svelte-dom/utils/useLatestRef.js +7 -0
- package/dist/utils/focus-management.d.ts +2 -1
- package/dist/utils/focus-management.js +13 -13
- package/dist/utils/id.d.ts +1 -1
- package/dist/utils/id.js +1 -1
- package/dist/utils/on-document-ready.d.ts +1 -0
- package/dist/utils/on-document-ready.js +12 -0
- package/dist/utils/render.d.ts +3 -0
- package/dist/utils/render.js +63 -0
- package/dist/utils/state.d.ts +7 -1
- package/dist/utils/state.js +10 -6
- package/dist/utils/style.d.ts +2 -0
- package/dist/utils/style.js +6 -0
- package/dist/utils/types.d.ts +14 -17
- package/dist/utils/types.js +0 -5
- package/package.json +33 -31
- package/dist/internal/id.d.ts +0 -8
- package/dist/internal/id.js +0 -11
- package/dist/tabs/Button.svelte +0 -65
- package/dist/tabs/Button.svelte.d.ts +0 -39
- package/dist/utils/close.d.ts +0 -2
- package/dist/utils/close.js +0 -3
package/dist/utils/id.js
CHANGED
|
@@ -2,5 +2,5 @@ import { nanoid, customAlphabet } from "nanoid";
|
|
|
2
2
|
import { getContext, setContext } from "svelte";
|
|
3
3
|
export const alphaid = customAlphabet("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz");
|
|
4
4
|
export const htmlid = (size = 10) => alphaid(1) + nanoid(size - 1);
|
|
5
|
-
export const
|
|
5
|
+
export const useProvidedId = () => getContext("Id");
|
|
6
6
|
export const createIdContext = (id) => setContext("Id", id);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function onDocumentReady(cb: () => void): void;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export function onDocumentReady(cb) {
|
|
2
|
+
function check() {
|
|
3
|
+
if (document.readyState === "loading")
|
|
4
|
+
return;
|
|
5
|
+
cb();
|
|
6
|
+
document.removeEventListener("DOMContentLoaded", check);
|
|
7
|
+
}
|
|
8
|
+
if (typeof window !== "undefined" && typeof document !== "undefined") {
|
|
9
|
+
document.addEventListener("DOMContentLoaded", check);
|
|
10
|
+
check();
|
|
11
|
+
}
|
|
12
|
+
}
|
package/dist/utils/render.d.ts
CHANGED
|
@@ -28,4 +28,7 @@ export type PropsForFeatures<T extends RenderFeatures> = Expand<UnionToIntersect
|
|
|
28
28
|
unmount?: boolean;
|
|
29
29
|
}>>>;
|
|
30
30
|
export declare function mergeProps<T extends Props<any, any>[]>(...listOfProps: T): Props<any, any>;
|
|
31
|
+
export declare function mergePropsAdvanced(...listOfProps: Props<any, any>[]): Props<any, any>;
|
|
32
|
+
export declare function compact<T extends Record<any, any>>(object: T): {} & T;
|
|
33
|
+
export declare function omit<T extends Record<any, any>>(object: T, keysToOmit?: string[]): T;
|
|
31
34
|
export {};
|
package/dist/utils/render.js
CHANGED
|
@@ -54,3 +54,66 @@ export function mergeProps(...listOfProps) {
|
|
|
54
54
|
}
|
|
55
55
|
return target;
|
|
56
56
|
}
|
|
57
|
+
// A more complex example fo the `mergeProps` function, this one also cancels subsequent event
|
|
58
|
+
// listeners if the event has already been `preventDefault`ed.
|
|
59
|
+
export function mergePropsAdvanced(...listOfProps) {
|
|
60
|
+
if (listOfProps.length === 0)
|
|
61
|
+
return {};
|
|
62
|
+
if (listOfProps.length === 1)
|
|
63
|
+
return listOfProps[0];
|
|
64
|
+
let target = {};
|
|
65
|
+
let eventHandlers = {};
|
|
66
|
+
for (let props of listOfProps) {
|
|
67
|
+
for (let prop in props) {
|
|
68
|
+
// Collect event handlers
|
|
69
|
+
if (prop.startsWith("on") && typeof props[prop] === "function") {
|
|
70
|
+
eventHandlers[prop] ??= [];
|
|
71
|
+
eventHandlers[prop].push(props[prop]);
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
// Override incoming prop
|
|
75
|
+
target[prop] = props[prop];
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
// Ensure event listeners are not called if `disabled` or `aria-disabled` is true
|
|
80
|
+
if (target.disabled || target["aria-disabled"]) {
|
|
81
|
+
for (let eventName in eventHandlers) {
|
|
82
|
+
// Prevent default events for `onclick`, `onmousedown`, `onkeydown`, etc.
|
|
83
|
+
if (/^(on(?:click|pointer|mouse|key)(?:down|up|press)?)$/.test(eventName)) {
|
|
84
|
+
eventHandlers[eventName] = [(e) => e?.preventDefault?.()];
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
// Merge event handlers
|
|
89
|
+
for (let eventName in eventHandlers) {
|
|
90
|
+
Object.assign(target, {
|
|
91
|
+
[eventName](event, ...args) {
|
|
92
|
+
let handlers = eventHandlers[eventName];
|
|
93
|
+
for (let handler of handlers) {
|
|
94
|
+
if ((event instanceof Event || event?.nativeEvent instanceof Event) && event.defaultPrevented) {
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
handler(event, ...args);
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
return target;
|
|
103
|
+
}
|
|
104
|
+
export function compact(object) {
|
|
105
|
+
let clone = Object.assign({}, object);
|
|
106
|
+
for (let key in clone) {
|
|
107
|
+
if (clone[key] === undefined)
|
|
108
|
+
delete clone[key];
|
|
109
|
+
}
|
|
110
|
+
return clone;
|
|
111
|
+
}
|
|
112
|
+
export function omit(object, keysToOmit = []) {
|
|
113
|
+
let clone = Object.assign({}, object);
|
|
114
|
+
for (let key of keysToOmit) {
|
|
115
|
+
if (key in clone)
|
|
116
|
+
delete clone[key];
|
|
117
|
+
}
|
|
118
|
+
return clone;
|
|
119
|
+
}
|
package/dist/utils/state.d.ts
CHANGED
|
@@ -1 +1,7 @@
|
|
|
1
|
-
export
|
|
1
|
+
export type SlotStateProps<TSlot> = {
|
|
2
|
+
[Property in keyof TSlot as TSlot[Property] extends boolean ? `data-${string & Property}` : never]?: string;
|
|
3
|
+
};
|
|
4
|
+
export type StateProps<TSlot> = SlotStateProps<TSlot> & {
|
|
5
|
+
"data-headlessui-state"?: string;
|
|
6
|
+
};
|
|
7
|
+
export declare const stateFromSlot: <TSlot>(slot?: TSlot) => StateProps<TSlot>;
|
package/dist/utils/state.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export const stateFromSlot = (slot = {}) => {
|
|
2
|
+
if (typeof slot !== "object")
|
|
3
|
+
return {};
|
|
2
4
|
let dataAttributes = {};
|
|
3
5
|
let exposeState = false;
|
|
4
6
|
let states = [];
|
|
@@ -10,11 +12,13 @@ export const stateFromSlot = (slot = {}) => {
|
|
|
10
12
|
states.push(k.replace(/([A-Z])/g, (m) => `-${m.toLowerCase()}`));
|
|
11
13
|
}
|
|
12
14
|
}
|
|
13
|
-
if (exposeState)
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
}
|
|
15
|
+
if (!exposeState)
|
|
16
|
+
return {};
|
|
17
|
+
for (let s of states) {
|
|
18
|
+
dataAttributes[`data-${s}`] = "";
|
|
18
19
|
}
|
|
19
|
-
return
|
|
20
|
+
return {
|
|
21
|
+
"data-headlessui-state": states.join(" "),
|
|
22
|
+
...dataAttributes,
|
|
23
|
+
};
|
|
20
24
|
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export const camelToKebab = (s) => s.replace(/[A-Z]/g, (match) => `-${match.toLowerCase()}`);
|
|
2
|
+
export const stylePropsToString = (props) => {
|
|
3
|
+
return Object.entries(props)
|
|
4
|
+
.map(([key, value]) => `${camelToKebab(key)}: ${typeof value === "number" ? `${value}px` : value}`)
|
|
5
|
+
.join(";");
|
|
6
|
+
};
|
package/dist/utils/types.d.ts
CHANGED
|
@@ -1,27 +1,24 @@
|
|
|
1
1
|
import type { Snippet } from "svelte";
|
|
2
|
-
import type {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
export type
|
|
2
|
+
import type { SvelteHTMLElements } from "svelte/elements";
|
|
3
|
+
export interface SvelteHTMLProps extends SvelteHTMLElements {
|
|
4
|
+
"svelte:fragment": {};
|
|
5
|
+
}
|
|
6
|
+
export type ElementType = keyof SvelteHTMLProps;
|
|
7
7
|
export type Expand<T> = T extends infer O ? {
|
|
8
8
|
[K in keyof O]: O[K];
|
|
9
9
|
} : never;
|
|
10
|
-
export type PropsOf<TTag extends
|
|
11
|
-
type
|
|
12
|
-
type
|
|
13
|
-
type
|
|
14
|
-
|
|
15
|
-
children?:
|
|
10
|
+
export type PropsOf<TTag extends ElementType> = SvelteHTMLProps[TTag];
|
|
11
|
+
export type Children<TSlot> = Snippet | Snippet<[TSlot, Record<string, any>]>;
|
|
12
|
+
type PropsWeControl = "as" | "children" | "refName" | "class";
|
|
13
|
+
type CleanProps<TTag extends ElementType, TOmittableProps extends PropertyKey = never> = Omit<PropsOf<TTag>, TOmittableProps | PropsWeControl>;
|
|
14
|
+
type OurProps<TSlot> = {
|
|
15
|
+
children?: Children<TSlot>;
|
|
16
|
+
ref?: HTMLElement;
|
|
16
17
|
};
|
|
17
18
|
type HasProperty<T extends object, K extends PropertyKey> = T extends never ? never : K extends keyof T ? true : never;
|
|
18
|
-
type ClassNameOverride<TTag extends
|
|
19
|
+
type ClassNameOverride<TTag extends ElementType, TSlot = {}> = true extends HasProperty<PropsOf<TTag>, "class"> ? {
|
|
19
20
|
class?: PropsOf<TTag>["class"] | ((bag: TSlot) => string);
|
|
20
21
|
} : {};
|
|
21
|
-
export type Props<TTag extends
|
|
22
|
-
type Without<T, U> = {
|
|
23
|
-
[P in Exclude<keyof T, keyof U>]?: never;
|
|
24
|
-
};
|
|
25
|
-
export type XOR<T, U> = T | U extends __ ? never : T extends __ ? U : U extends __ ? T : T | U extends object ? (Without<T, U> & U) | (Without<U, T> & T) : T | U;
|
|
22
|
+
export type Props<TTag extends ElementType, TSlot = {}, TOmittableProps extends PropertyKey = never, Overrides = {}> = CleanProps<TTag, TOmittableProps | keyof Overrides> & OurProps<TSlot> & ClassNameOverride<TTag, TSlot> & Overrides;
|
|
26
23
|
export type EnsureArray<T> = T extends any[] ? T : Expand<T>[];
|
|
27
24
|
export {};
|
package/dist/utils/types.js
CHANGED
|
@@ -1,6 +1 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-empty-object-type */
|
|
2
|
-
// A unique placeholder we can use as a default. This is nice because we can use this instead of
|
|
3
|
-
// defaulting to null / never / ... and possibly collide with actual data.
|
|
4
|
-
// Ideally we use a unique symbol here.
|
|
5
|
-
const __ = "1D45E01E-AF44-47C4-988A-19A94EBAF55C";
|
|
6
1
|
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pzerelles/headlessui-svelte",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.2-next.11",
|
|
4
4
|
"exports": {
|
|
5
5
|
".": {
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -13,45 +13,47 @@
|
|
|
13
13
|
"!dist/**/*.spec.*"
|
|
14
14
|
],
|
|
15
15
|
"peerDependencies": {
|
|
16
|
-
"svelte": "^5.0.0-next.
|
|
16
|
+
"svelte": "^5.0.0-next.244"
|
|
17
17
|
},
|
|
18
18
|
"devDependencies": {
|
|
19
|
-
"@changesets/cli": "^2.27.
|
|
19
|
+
"@changesets/cli": "^2.27.8",
|
|
20
20
|
"@changesets/types": "^6.0.0",
|
|
21
|
-
"@playwright/test": "^1.
|
|
21
|
+
"@playwright/test": "^1.47.0",
|
|
22
22
|
"@pzerelles/heroicons-svelte": "^2.1.5",
|
|
23
|
-
"@sveltejs/adapter-auto": "^3.2.
|
|
24
|
-
"@sveltejs/kit": "^2.5.
|
|
25
|
-
"@sveltejs/package": "^2.3.
|
|
26
|
-
"@sveltejs/vite-plugin-svelte": "
|
|
27
|
-
"@testing-library/jest-dom": "^6.
|
|
28
|
-
"@testing-library/svelte": "^5.2.
|
|
29
|
-
"@types/eslint": "^
|
|
30
|
-
"@types/node": "^20.
|
|
31
|
-
"autoprefixer": "^10.4.
|
|
32
|
-
"
|
|
33
|
-
"eslint": "^9.7.0",
|
|
23
|
+
"@sveltejs/adapter-auto": "^3.2.4",
|
|
24
|
+
"@sveltejs/kit": "^2.5.26",
|
|
25
|
+
"@sveltejs/package": "^2.3.4",
|
|
26
|
+
"@sveltejs/vite-plugin-svelte": "4.0.0-next.6",
|
|
27
|
+
"@testing-library/jest-dom": "^6.5.0",
|
|
28
|
+
"@testing-library/svelte": "^5.2.1",
|
|
29
|
+
"@types/eslint": "^9.6.1",
|
|
30
|
+
"@types/node": "^20.16.5",
|
|
31
|
+
"autoprefixer": "^10.4.20",
|
|
32
|
+
"eslint": "^9.10.0",
|
|
34
33
|
"eslint-config-prettier": "^9.1.0",
|
|
35
|
-
"eslint-plugin-svelte": "^2.
|
|
36
|
-
"globals": "^15.
|
|
37
|
-
"jsdom": "^24.1.
|
|
34
|
+
"eslint-plugin-svelte": "^2.43.0",
|
|
35
|
+
"globals": "^15.9.0",
|
|
36
|
+
"jsdom": "^24.1.3",
|
|
38
37
|
"outdent": "^0.8.0",
|
|
39
|
-
"postcss": "^8.4.
|
|
38
|
+
"postcss": "^8.4.45",
|
|
40
39
|
"prettier": "^3.3.3",
|
|
41
|
-
"prettier-plugin-svelte": "^3.2.
|
|
42
|
-
"prettier-plugin-tailwindcss": "^0.
|
|
43
|
-
"publint": "^0.
|
|
44
|
-
"svelte": "5.0.0-next.
|
|
45
|
-
"svelte-check": "^3.8.
|
|
46
|
-
"tailwindcss": "^3.4.
|
|
47
|
-
"tslib": "^2.
|
|
48
|
-
"typescript": "^5.
|
|
49
|
-
"typescript-eslint": "8.
|
|
50
|
-
"vite": "^5.
|
|
51
|
-
"vitest": "^2.0.
|
|
40
|
+
"prettier-plugin-svelte": "^3.2.6",
|
|
41
|
+
"prettier-plugin-tailwindcss": "^0.6.6",
|
|
42
|
+
"publint": "^0.2.10",
|
|
43
|
+
"svelte": "^5.0.0-next.244",
|
|
44
|
+
"svelte-check": "^3.8.6",
|
|
45
|
+
"tailwindcss": "^3.4.11",
|
|
46
|
+
"tslib": "^2.7.0",
|
|
47
|
+
"typescript": "^5.6.2",
|
|
48
|
+
"typescript-eslint": "^8.5.0",
|
|
49
|
+
"vite": "^5.4.4",
|
|
50
|
+
"vitest": "^2.0.5"
|
|
52
51
|
},
|
|
53
52
|
"dependencies": {
|
|
54
|
-
"@
|
|
53
|
+
"@floating-ui/core": "^1.6.7",
|
|
54
|
+
"@floating-ui/dom": "^1.6.10",
|
|
55
|
+
"@floating-ui/utils": "^0.2.7",
|
|
56
|
+
"clsx": "^2.1.1",
|
|
55
57
|
"esm-env": "^1.0.0",
|
|
56
58
|
"nanoid": "^5.0.7"
|
|
57
59
|
},
|
package/dist/internal/id.d.ts
DELETED
package/dist/internal/id.js
DELETED
package/dist/tabs/Button.svelte
DELETED
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
<script lang="ts" context="module">const DEFAULT_BUTTON_TAG = "button";
|
|
2
|
-
</script>
|
|
3
|
-
|
|
4
|
-
<script lang="ts" generics="TTag extends keyof SvelteHTMLElements, TType">import { useActivePress } from "../hooks/use-active-press.svelte.js";
|
|
5
|
-
import { useFocusRing } from "../hooks/use-focus-ring.svelte.js";
|
|
6
|
-
import { useDisabled } from "../hooks/use-disabled.js";
|
|
7
|
-
import { stateFromSlot } from "../utils/state.js";
|
|
8
|
-
import { useHover } from "../hooks/use-hover.svelte.js";
|
|
9
|
-
import { mergeProps } from "../utils/render.js";
|
|
10
|
-
const providedDisabled = useDisabled();
|
|
11
|
-
let {
|
|
12
|
-
as,
|
|
13
|
-
disabled: ownDisabled = false,
|
|
14
|
-
autofocus = false,
|
|
15
|
-
type = "button",
|
|
16
|
-
children,
|
|
17
|
-
...theirProps
|
|
18
|
-
} = $props();
|
|
19
|
-
const disabled = $derived(providedDisabled.value || ownDisabled);
|
|
20
|
-
const { isHovered: hover, hoverProps } = $derived(
|
|
21
|
-
useHover({
|
|
22
|
-
get disabled() {
|
|
23
|
-
return disabled;
|
|
24
|
-
}
|
|
25
|
-
})
|
|
26
|
-
);
|
|
27
|
-
const { pressed: active, pressProps } = $derived(
|
|
28
|
-
useActivePress({
|
|
29
|
-
get disabled() {
|
|
30
|
-
return disabled;
|
|
31
|
-
}
|
|
32
|
-
})
|
|
33
|
-
);
|
|
34
|
-
const { isFocusVisible: focus, focusProps } = $derived(
|
|
35
|
-
useFocusRing({
|
|
36
|
-
get autofocus() {
|
|
37
|
-
return autofocus;
|
|
38
|
-
}
|
|
39
|
-
})
|
|
40
|
-
);
|
|
41
|
-
const slot = $derived({
|
|
42
|
-
disabled,
|
|
43
|
-
hover,
|
|
44
|
-
focus,
|
|
45
|
-
active,
|
|
46
|
-
autofocus
|
|
47
|
-
});
|
|
48
|
-
const ownProps = $derived(
|
|
49
|
-
mergeProps(
|
|
50
|
-
{
|
|
51
|
-
type,
|
|
52
|
-
disabled: disabled || void 0,
|
|
53
|
-
autofocus
|
|
54
|
-
},
|
|
55
|
-
focusProps,
|
|
56
|
-
hoverProps,
|
|
57
|
-
pressProps,
|
|
58
|
-
stateFromSlot(slot)
|
|
59
|
-
)
|
|
60
|
-
);
|
|
61
|
-
</script>
|
|
62
|
-
|
|
63
|
-
<svelte:element this={as ?? DEFAULT_BUTTON_TAG} {...ownProps} {...theirProps}>
|
|
64
|
-
{#if children}{@render children(slot)}{/if}
|
|
65
|
-
</svelte:element>
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import type { SvelteHTMLElements } from "svelte/elements";
|
|
2
|
-
export type ButtonProps<TTag extends keyof SvelteHTMLElements = typeof DEFAULT_BUTTON_TAG> = SvelteHTMLElements[TTag] & {
|
|
3
|
-
as?: TTag;
|
|
4
|
-
disabled?: boolean;
|
|
5
|
-
autofocus?: boolean;
|
|
6
|
-
type?: "button" | "submit" | "reset";
|
|
7
|
-
children?: Snippet<[
|
|
8
|
-
{
|
|
9
|
-
disabled: boolean;
|
|
10
|
-
hover: boolean;
|
|
11
|
-
focus: boolean;
|
|
12
|
-
active: boolean;
|
|
13
|
-
autofocus: boolean;
|
|
14
|
-
}
|
|
15
|
-
]>;
|
|
16
|
-
};
|
|
17
|
-
declare const DEFAULT_BUTTON_TAG: "button";
|
|
18
|
-
import type { Snippet } from "svelte";
|
|
19
|
-
declare class __sveltets_Render<TTag extends keyof SvelteHTMLElements, TType> {
|
|
20
|
-
props(): ButtonProps<TTag>;
|
|
21
|
-
events(): {} & {
|
|
22
|
-
[evt: string]: CustomEvent<any>;
|
|
23
|
-
};
|
|
24
|
-
slots(): {};
|
|
25
|
-
bindings(): "";
|
|
26
|
-
exports(): {};
|
|
27
|
-
}
|
|
28
|
-
interface $$IsomorphicComponent {
|
|
29
|
-
new <TTag extends keyof SvelteHTMLElements, TType>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<TTag, TType>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<TTag, TType>['props']>, ReturnType<__sveltets_Render<TTag, TType>['events']>, ReturnType<__sveltets_Render<TTag, TType>['slots']>> & {
|
|
30
|
-
$$bindings?: ReturnType<__sveltets_Render<TTag, TType>['bindings']>;
|
|
31
|
-
} & ReturnType<__sveltets_Render<TTag, TType>['exports']>;
|
|
32
|
-
<TTag extends keyof SvelteHTMLElements, TType>(internal: unknown, props: ReturnType<__sveltets_Render<TTag, TType>['props']> & {
|
|
33
|
-
$$events?: ReturnType<__sveltets_Render<TTag, TType>['events']>;
|
|
34
|
-
}): ReturnType<__sveltets_Render<TTag, TType>['exports']>;
|
|
35
|
-
z_$$bindings?: ReturnType<__sveltets_Render<any, any>['bindings']>;
|
|
36
|
-
}
|
|
37
|
-
declare const Button: $$IsomorphicComponent;
|
|
38
|
-
type Button<TTag extends keyof SvelteHTMLElements, TType> = InstanceType<typeof Button<TTag, TType>>;
|
|
39
|
-
export default Button;
|
package/dist/utils/close.d.ts
DELETED
package/dist/utils/close.js
DELETED