@pzerelles/headlessui-svelte 2.1.2-next.2 → 2.1.2-next.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (168) hide show
  1. package/dist/button/Button.svelte.d.ts +1 -1
  2. package/dist/checkbox/Checkbox.svelte +4 -4
  3. package/dist/checkbox/Checkbox.svelte.d.ts +5 -7
  4. package/dist/close-button/CloseButton.svelte.d.ts +2 -2
  5. package/dist/data-interactive/DataInteractive.svelte.d.ts +1 -1
  6. package/dist/description/Description.svelte.d.ts +1 -1
  7. package/dist/description/context.svelte.js +1 -1
  8. package/dist/dialog/Dialog.svelte.d.ts +1 -1
  9. package/dist/dialog/DialogBackdrop.svelte.d.ts +1 -1
  10. package/dist/dialog/DialogPanel.svelte +0 -1
  11. package/dist/dialog/DialogPanel.svelte.d.ts +1 -1
  12. package/dist/dialog/DialogTitle.svelte.d.ts +1 -1
  13. package/dist/dialog/InternalDialog.svelte.d.ts +1 -1
  14. package/dist/dialog/context.svelte.js +1 -1
  15. package/dist/field/Field.svelte +21 -3
  16. package/dist/field/Field.svelte.d.ts +1 -1
  17. package/dist/fieldset/Fieldset.svelte.d.ts +1 -1
  18. package/dist/focus-trap/FocusTrap.svelte +7 -14
  19. package/dist/focus-trap/FocusTrap.svelte.d.ts +3 -15
  20. package/dist/focus-trap/FocusTrapFeatures.d.ts +14 -0
  21. package/dist/focus-trap/FocusTrapFeatures.js +15 -0
  22. package/dist/hooks/use-controllable.svelte.js +2 -1
  23. package/dist/hooks/use-did-element-move.svelte.js +5 -10
  24. package/dist/hooks/use-event-listener.svelte.d.ts +1 -1
  25. package/dist/hooks/use-event-listener.svelte.js +3 -1
  26. package/dist/hooks/use-root-containers.svelte.d.ts +2 -2
  27. package/dist/hooks/use-root-containers.svelte.js +5 -5
  28. package/dist/hooks/use-tab-direction.svelte.js +1 -1
  29. package/dist/index.d.ts +3 -0
  30. package/dist/index.js +3 -0
  31. package/dist/input/Input.svelte +2 -2
  32. package/dist/input/Input.svelte.d.ts +5 -7
  33. package/dist/internal/FloatingProvider.svelte +12 -0
  34. package/dist/internal/{HoistFormFields.svelte.d.ts → FloatingProvider.svelte.d.ts} +5 -4
  35. package/dist/internal/FormFields.svelte +22 -19
  36. package/dist/internal/FormFieldsProvider.svelte +13 -0
  37. package/dist/internal/FormFieldsProvider.svelte.d.ts +21 -0
  38. package/dist/internal/Hidden.svelte +18 -8
  39. package/dist/internal/Hidden.svelte.d.ts +3 -6
  40. package/dist/internal/HiddenFeatures.d.ts +5 -0
  41. package/dist/internal/HiddenFeatures.js +9 -0
  42. package/dist/internal/floating-provider.svelte.d.ts +3 -0
  43. package/dist/internal/floating-provider.svelte.js +206 -0
  44. package/dist/internal/floating.svelte.d.ts +48 -23
  45. package/dist/internal/floating.svelte.js +79 -260
  46. package/dist/internal/form-fields.svelte.d.ts +10 -0
  47. package/dist/internal/form-fields.svelte.js +23 -0
  48. package/dist/label/Label.svelte +5 -4
  49. package/dist/label/Label.svelte.d.ts +1 -1
  50. package/dist/label/context.svelte.js +1 -1
  51. package/dist/legend/Legend.svelte +2 -2
  52. package/dist/legend/Legend.svelte.d.ts +18 -30
  53. package/dist/listbox/Listbox.svelte +42 -66
  54. package/dist/listbox/Listbox.svelte.d.ts +6 -65
  55. package/dist/listbox/ListboxButton.svelte +10 -10
  56. package/dist/listbox/ListboxButton.svelte.d.ts +5 -7
  57. package/dist/listbox/ListboxOption.svelte +10 -6
  58. package/dist/listbox/ListboxOption.svelte.d.ts +1 -1
  59. package/dist/listbox/ListboxOptions.svelte +108 -54
  60. package/dist/listbox/ListboxOptions.svelte.d.ts +1 -1
  61. package/dist/listbox/ListboxSelectedOption.svelte +2 -4
  62. package/dist/listbox/ListboxSelectedOption.svelte.d.ts +6 -6
  63. package/dist/listbox/context.svelte.d.ts +76 -0
  64. package/dist/listbox/context.svelte.js +36 -0
  65. package/dist/menu/Menu.svelte +5 -177
  66. package/dist/menu/Menu.svelte.d.ts +1 -1
  67. package/dist/menu/MenuButton.svelte +4 -2
  68. package/dist/menu/MenuButton.svelte.d.ts +1 -1
  69. package/dist/menu/MenuHeading.svelte.d.ts +1 -1
  70. package/dist/menu/MenuItem.svelte.d.ts +6 -5
  71. package/dist/menu/MenuItems.svelte +15 -11
  72. package/dist/menu/MenuItems.svelte.d.ts +1 -1
  73. package/dist/menu/MenuSection.svelte.d.ts +1 -1
  74. package/dist/menu/MenuSeparator.svelte.d.ts +1 -1
  75. package/dist/menu/context.svelte.d.ts +30 -1
  76. package/dist/menu/context.svelte.js +208 -0
  77. package/dist/popover/Popover.svelte +161 -0
  78. package/dist/popover/Popover.svelte.d.ts +41 -0
  79. package/dist/popover/PopoverBackdrop.svelte +56 -0
  80. package/dist/popover/PopoverBackdrop.svelte.d.ts +45 -0
  81. package/dist/popover/PopoverButton.svelte +246 -0
  82. package/dist/popover/PopoverButton.svelte.d.ts +44 -0
  83. package/dist/popover/PopoverGroup.svelte +43 -0
  84. package/dist/popover/PopoverGroup.svelte.d.ts +33 -0
  85. package/dist/popover/PopoverPanel.svelte +274 -0
  86. package/dist/popover/PopoverPanel.svelte.d.ts +53 -0
  87. package/dist/popover/context.svelte.d.ts +51 -0
  88. package/dist/popover/context.svelte.js +108 -0
  89. package/dist/popover/index.d.ts +5 -0
  90. package/dist/popover/index.js +5 -0
  91. package/dist/portal/InternalPortal.svelte.d.ts +1 -1
  92. package/dist/portal/PortalGroup.svelte.d.ts +1 -1
  93. package/dist/select/Select.svelte +74 -0
  94. package/dist/select/Select.svelte.d.ts +48 -0
  95. package/dist/select/index.d.ts +1 -0
  96. package/dist/select/index.js +1 -0
  97. package/dist/switch/Switch.svelte +30 -20
  98. package/dist/switch/Switch.svelte.d.ts +5 -5
  99. package/dist/switch/SwitchGroup.svelte.d.ts +1 -1
  100. package/dist/tabs/Tab.svelte.d.ts +1 -1
  101. package/dist/tabs/TabGroup.svelte.d.ts +2 -2
  102. package/dist/tabs/TabList.svelte.d.ts +1 -1
  103. package/dist/tabs/TabPanel.svelte.d.ts +1 -1
  104. package/dist/tabs/TabPanels.svelte.d.ts +1 -1
  105. package/dist/textarea/Textarea.svelte +67 -0
  106. package/dist/textarea/Textarea.svelte.d.ts +50 -0
  107. package/dist/textarea/index.d.ts +1 -0
  108. package/dist/textarea/index.js +1 -0
  109. package/dist/transition/InternalTransitionChild.svelte.d.ts +1 -1
  110. package/dist/transition/Transition.svelte.d.ts +1 -1
  111. package/dist/transition/TransitionChild.svelte.d.ts +1 -1
  112. package/dist/transition/context.svelte.js +2 -2
  113. package/dist/utils/ElementOrComponent.svelte +2 -2
  114. package/dist/utils/ElementOrComponent.svelte.d.ts +2 -2
  115. package/dist/utils/Generic.svelte +0 -1
  116. package/dist/utils/Generic.svelte.d.ts +1 -2
  117. package/dist/utils/alternative-types.d.ts +1 -2
  118. package/dist/utils/floating-ui/svelte/components/FloatingNode.svelte +17 -0
  119. package/dist/utils/floating-ui/svelte/components/FloatingNode.svelte.d.ts +23 -0
  120. package/dist/utils/floating-ui/svelte/components/FloatingTree.svelte +50 -0
  121. package/dist/utils/floating-ui/svelte/components/FloatingTree.svelte.d.ts +41 -0
  122. package/dist/utils/floating-ui/svelte/hooks/useFloating.svelte.d.ts +6 -0
  123. package/dist/utils/floating-ui/svelte/hooks/useFloating.svelte.js +158 -0
  124. package/dist/utils/floating-ui/svelte/hooks/useFloatingRootContext.svelte.d.ts +11 -0
  125. package/dist/utils/floating-ui/svelte/hooks/useFloatingRootContext.svelte.js +53 -0
  126. package/dist/utils/floating-ui/svelte/hooks/useId.svelte.d.ts +9 -0
  127. package/dist/utils/floating-ui/svelte/hooks/useId.svelte.js +28 -0
  128. package/dist/utils/floating-ui/svelte/hooks/useInteractions.svelte.d.ts +23 -0
  129. package/dist/utils/floating-ui/svelte/hooks/useInteractions.svelte.js +72 -0
  130. package/dist/utils/floating-ui/svelte/index.d.ts +5 -0
  131. package/dist/utils/floating-ui/svelte/index.js +5 -0
  132. package/dist/utils/floating-ui/svelte/inner.svelte.d.ts +83 -0
  133. package/dist/utils/floating-ui/svelte/inner.svelte.js +178 -0
  134. package/dist/utils/floating-ui/svelte/types.d.ts +114 -0
  135. package/dist/utils/floating-ui/svelte/types.js +1 -0
  136. package/dist/utils/floating-ui/svelte/utils/createPubSub.d.ts +5 -0
  137. package/dist/utils/floating-ui/svelte/utils/createPubSub.js +14 -0
  138. package/dist/utils/floating-ui/svelte/utils/getFloatingFocusElement.d.ts +2 -0
  139. package/dist/utils/floating-ui/svelte/utils/getFloatingFocusElement.js +13 -0
  140. package/dist/utils/floating-ui/svelte/utils/log.d.ts +2 -0
  141. package/dist/utils/floating-ui/svelte/utils/log.js +19 -0
  142. package/dist/utils/floating-ui/svelte/utils.d.ts +19 -0
  143. package/dist/utils/floating-ui/svelte/utils.js +136 -0
  144. package/dist/utils/floating-ui/svelte-dom/arrow.d.ts +22 -0
  145. package/dist/utils/floating-ui/svelte-dom/arrow.js +29 -0
  146. package/dist/utils/floating-ui/svelte-dom/index.d.ts +2 -0
  147. package/dist/utils/floating-ui/svelte-dom/index.js +2 -0
  148. package/dist/utils/floating-ui/svelte-dom/types.d.ts +80 -0
  149. package/dist/utils/floating-ui/svelte-dom/types.js +3 -0
  150. package/dist/utils/floating-ui/svelte-dom/useFloating.svelte.d.ts +6 -0
  151. package/dist/utils/floating-ui/svelte-dom/useFloating.svelte.js +182 -0
  152. package/dist/utils/floating-ui/svelte-dom/utils/deepEqual.d.ts +1 -0
  153. package/dist/utils/floating-ui/svelte-dom/utils/deepEqual.js +50 -0
  154. package/dist/utils/floating-ui/svelte-dom/utils/getDPR.d.ts +1 -0
  155. package/dist/utils/floating-ui/svelte-dom/utils/getDPR.js +7 -0
  156. package/dist/utils/floating-ui/svelte-dom/utils/roundByDPR.d.ts +1 -0
  157. package/dist/utils/floating-ui/svelte-dom/utils/roundByDPR.js +5 -0
  158. package/dist/utils/floating-ui/svelte-dom/utils/useLatestRef.d.ts +4 -0
  159. package/dist/utils/floating-ui/svelte-dom/utils/useLatestRef.js +7 -0
  160. package/dist/utils/id.d.ts +1 -1
  161. package/dist/utils/id.js +1 -1
  162. package/dist/utils/style.d.ts +2 -0
  163. package/dist/utils/style.js +6 -0
  164. package/dist/utils/types.d.ts +1 -2
  165. package/package.json +25 -24
  166. package/dist/internal/HoistFormFields.svelte +0 -11
  167. package/dist/internal/id.d.ts +0 -8
  168. package/dist/internal/id.js +0 -11
@@ -0,0 +1,50 @@
1
+ // Fork of `fast-deep-equal` that only does the comparisons we need and compares
2
+ // functions
3
+ export function deepEqual(a, b) {
4
+ if (a === b) {
5
+ return true;
6
+ }
7
+ if (typeof a !== typeof b) {
8
+ return false;
9
+ }
10
+ if (typeof a === "function" && a.toString() === b.toString()) {
11
+ return true;
12
+ }
13
+ let length;
14
+ let i;
15
+ let keys;
16
+ if (a && b && typeof a === "object") {
17
+ if (Array.isArray(a)) {
18
+ length = a.length;
19
+ if (length !== b.length)
20
+ return false;
21
+ for (i = length; i-- !== 0;) {
22
+ if (!deepEqual(a[i], b[i])) {
23
+ return false;
24
+ }
25
+ }
26
+ return true;
27
+ }
28
+ keys = Object.keys(a);
29
+ length = keys.length;
30
+ if (length !== Object.keys(b).length) {
31
+ return false;
32
+ }
33
+ for (i = length; i-- !== 0;) {
34
+ if (!{}.hasOwnProperty.call(b, keys[i])) {
35
+ return false;
36
+ }
37
+ }
38
+ for (i = length; i-- !== 0;) {
39
+ const key = keys[i];
40
+ if (key === "_owner" && a.$$typeof) {
41
+ continue;
42
+ }
43
+ if (!deepEqual(a[key], b[key])) {
44
+ return false;
45
+ }
46
+ }
47
+ return true;
48
+ }
49
+ return a !== a && b !== b;
50
+ }
@@ -0,0 +1 @@
1
+ export declare function getDPR(element: Element): number;
@@ -0,0 +1,7 @@
1
+ export function getDPR(element) {
2
+ if (typeof window === "undefined") {
3
+ return 1;
4
+ }
5
+ const win = element.ownerDocument.defaultView || window;
6
+ return win.devicePixelRatio || 1;
7
+ }
@@ -0,0 +1 @@
1
+ export declare function roundByDPR(element: Element, value: number): number;
@@ -0,0 +1,5 @@
1
+ import { getDPR } from "./getDPR.js";
2
+ export function roundByDPR(element, value) {
3
+ const dpr = getDPR(element);
4
+ return Math.round(value * dpr) / dpr;
5
+ }
@@ -0,0 +1,4 @@
1
+ import type { MutableRefObject } from "../../../ref.svelte.js";
2
+ export declare function useLatestRef<T>(options: {
3
+ value: T;
4
+ }): MutableRefObject<T>;
@@ -0,0 +1,7 @@
1
+ export function useLatestRef(options) {
2
+ return {
3
+ get current() {
4
+ return options.value;
5
+ },
6
+ };
7
+ }
@@ -1,4 +1,4 @@
1
1
  export declare const alphaid: (size?: number) => string;
2
2
  export declare const htmlid: (size?: number) => string;
3
- export declare const getIdContext: () => string | undefined;
3
+ export declare const useProvidedId: () => string | undefined;
4
4
  export declare const createIdContext: (id: string) => string | undefined;
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 getIdContext = () => getContext("Id");
5
+ export const useProvidedId = () => getContext("Id");
6
6
  export const createIdContext = (id) => setContext("Id", id);
@@ -0,0 +1,2 @@
1
+ export declare const camelToKebab: (s: string) => string;
2
+ export declare const stylePropsToString: (props: Record<string, unknown>) => string;
@@ -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
+ };
@@ -8,11 +8,10 @@ export type Expand<T> = T extends infer O ? {
8
8
  [K in keyof O]: O[K];
9
9
  } : never;
10
10
  export type PropsOf<TTag extends ElementType> = SvelteHTMLProps[TTag];
11
- export type Children<TSlot> = Snippet | Snippet<[TSlot, Record<string, any>]>;
12
11
  type PropsWeControl = "as" | "children" | "refName" | "class";
13
12
  type CleanProps<TTag extends ElementType, TOmittableProps extends PropertyKey = never> = Omit<PropsOf<TTag>, TOmittableProps | PropsWeControl>;
14
13
  type OurProps<TSlot> = {
15
- children?: Children<TSlot>;
14
+ children?: Snippet<[TSlot, Record<string, any>]>;
16
15
  ref?: HTMLElement;
17
16
  };
18
17
  type HasProperty<T extends object, K extends PropertyKey> = T extends never ? never : K extends keyof T ? true : never;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pzerelles/headlessui-svelte",
3
- "version": "2.1.2-next.2",
3
+ "version": "2.1.2-next.21",
4
4
  "exports": {
5
5
  ".": {
6
6
  "types": "./dist/index.d.ts",
@@ -13,46 +13,47 @@
13
13
  "!dist/**/*.spec.*"
14
14
  ],
15
15
  "peerDependencies": {
16
- "svelte": "^5.0.0-next.1"
16
+ "svelte": "^5.0.0-next.244"
17
17
  },
18
18
  "devDependencies": {
19
- "@changesets/cli": "^2.27.7",
19
+ "@changesets/cli": "^2.27.8",
20
20
  "@changesets/types": "^6.0.0",
21
- "@playwright/test": "^1.46.1",
21
+ "@playwright/test": "^1.47.1",
22
22
  "@pzerelles/heroicons-svelte": "^2.1.5",
23
- "@sveltejs/adapter-auto": "^3.2.4",
24
- "@sveltejs/kit": "^2.5.24",
25
- "@sveltejs/package": "^2.3.4",
26
- "@sveltejs/vite-plugin-svelte": "^3.1.2",
23
+ "@sveltejs/adapter-auto": "^3.2.5",
24
+ "@sveltejs/kit": "^2.5.28",
25
+ "@sveltejs/package": "^2.3.5",
26
+ "@sveltejs/vite-plugin-svelte": "4.0.0-next.6",
27
27
  "@testing-library/jest-dom": "^6.5.0",
28
28
  "@testing-library/svelte": "^5.2.1",
29
- "@types/eslint": "^8.56.12",
30
- "@types/node": "^20.16.1",
29
+ "@types/eslint": "^9.6.1",
30
+ "@types/node": "^20.16.5",
31
31
  "autoprefixer": "^10.4.20",
32
- "clsx": "^2.1.1",
33
- "eslint": "^9.9.1",
32
+ "eslint": "^9.10.0",
34
33
  "eslint-config-prettier": "^9.1.0",
35
- "eslint-plugin-svelte": "^2.43.0",
34
+ "eslint-plugin-svelte": "^2.44.0",
36
35
  "globals": "^15.9.0",
37
36
  "jsdom": "^24.1.3",
38
37
  "outdent": "^0.8.0",
39
- "postcss": "^8.4.41",
38
+ "postcss": "^8.4.47",
40
39
  "prettier": "^3.3.3",
41
40
  "prettier-plugin-svelte": "^3.2.6",
42
- "prettier-plugin-tailwindcss": "^0.5.14",
43
- "publint": "^0.1.16",
44
- "svelte": "5.0.0-next.238",
41
+ "prettier-plugin-tailwindcss": "^0.6.6",
42
+ "publint": "^0.2.11",
43
+ "svelte": "5.0.0-next.249",
45
44
  "svelte-check": "^3.8.6",
46
- "tailwindcss": "^3.4.10",
45
+ "tailwindcss": "^3.4.12",
47
46
  "tslib": "^2.7.0",
48
- "typescript": "^5.5.4",
49
- "typescript-eslint": "8.0.0-alpha.28",
50
- "vite": "^5.4.2",
51
- "vitest": "^2.0.5"
47
+ "typescript": "^5.6.2",
48
+ "typescript-eslint": "^8.6.0",
49
+ "vite": "^5.4.6",
50
+ "vitest": "^2.1.1"
52
51
  },
53
52
  "dependencies": {
54
- "@floating-ui/core": "^1.6.7",
55
- "@floating-ui/dom": "^1.6.10",
53
+ "@floating-ui/core": "^1.6.8",
54
+ "@floating-ui/dom": "^1.6.11",
55
+ "@floating-ui/utils": "^0.2.8",
56
+ "clsx": "^2.1.1",
56
57
  "esm-env": "^1.0.0",
57
58
  "nanoid": "^5.0.7"
58
59
  },
@@ -1,11 +0,0 @@
1
- <script lang="ts">import { getContext } from "svelte";
2
- import Portal from "./Portal.svelte";
3
- let { children } = $props();
4
- const formFieldsContext = getContext("FormFieldsContext");
5
- </script>
6
-
7
- {#if !formFieldsContext}
8
- {@render children()}
9
- {:else if formFieldsContext.target}
10
- <Portal target={formFieldsContext.target}>{@render children()}</Portal>
11
- {/if}
@@ -1,8 +0,0 @@
1
- type IdContext = {
2
- value?: string;
3
- };
4
- export declare function useProvidedId(): IdContext | undefined;
5
- export declare function useIdContext(options: {
6
- id?: string;
7
- }): void;
8
- export {};
@@ -1,11 +0,0 @@
1
- import { getContext, setContext } from "svelte";
2
- export function useProvidedId() {
3
- return getContext("IdContext");
4
- }
5
- export function useIdContext(options) {
6
- setContext("IdContext", {
7
- get value() {
8
- return options.id;
9
- },
10
- });
11
- }