bits-ui 2.1.0 → 2.2.1

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 (79) hide show
  1. package/dist/bits/avatar/avatar.svelte.d.ts +2 -1
  2. package/dist/bits/avatar/avatar.svelte.js +5 -3
  3. package/dist/bits/calendar/calendar.svelte.d.ts +2 -0
  4. package/dist/bits/calendar/calendar.svelte.js +9 -4
  5. package/dist/bits/combobox/components/combobox-input.svelte +2 -2
  6. package/dist/bits/combobox/components/combobox.svelte +5 -0
  7. package/dist/bits/combobox/types.d.ts +18 -1
  8. package/dist/bits/date-field/date-field.svelte.d.ts +3 -1
  9. package/dist/bits/date-field/date-field.svelte.js +15 -6
  10. package/dist/bits/date-range-field/date-range-field.svelte.d.ts +2 -0
  11. package/dist/bits/date-range-field/date-range-field.svelte.js +4 -2
  12. package/dist/bits/link-preview/link-preview.svelte.d.ts +2 -0
  13. package/dist/bits/link-preview/link-preview.svelte.js +11 -6
  14. package/dist/bits/menu/menu.svelte.d.ts +2 -0
  15. package/dist/bits/menu/menu.svelte.js +15 -10
  16. package/dist/bits/navigation-menu/navigation-menu.svelte.d.ts +3 -1
  17. package/dist/bits/navigation-menu/navigation-menu.svelte.js +21 -11
  18. package/dist/bits/pin-input/pin-input.svelte.d.ts +4 -2
  19. package/dist/bits/pin-input/pin-input.svelte.js +17 -13
  20. package/dist/bits/pin-input/usePasswordManager.svelte.d.ts +3 -2
  21. package/dist/bits/pin-input/usePasswordManager.svelte.js +6 -5
  22. package/dist/bits/range-calendar/range-calendar.svelte.d.ts +2 -0
  23. package/dist/bits/range-calendar/range-calendar.svelte.js +9 -3
  24. package/dist/bits/scroll-area/scroll-area.svelte.d.ts +2 -0
  25. package/dist/bits/scroll-area/scroll-area.svelte.js +15 -12
  26. package/dist/bits/select/components/select.svelte +6 -0
  27. package/dist/bits/select/select.svelte.d.ts +5 -1
  28. package/dist/bits/select/select.svelte.js +34 -18
  29. package/dist/bits/slider/helpers.js +33 -2
  30. package/dist/bits/time-field/time-field.svelte.d.ts +3 -1
  31. package/dist/bits/time-field/time-field.svelte.js +15 -6
  32. package/dist/bits/time-range-field/time-range-field.svelte.d.ts +2 -0
  33. package/dist/bits/time-range-field/time-range-field.svelte.js +4 -2
  34. package/dist/bits/tooltip/components/tooltip-content-static.svelte +2 -0
  35. package/dist/bits/tooltip/components/tooltip-content.svelte +2 -0
  36. package/dist/bits/tooltip/components/tooltip-trigger.svelte +1 -1
  37. package/dist/bits/tooltip/components/tooltip.svelte +1 -1
  38. package/dist/bits/tooltip/tooltip.svelte.d.ts +18 -18
  39. package/dist/bits/tooltip/tooltip.svelte.js +7 -3
  40. package/dist/bits/utilities/floating-layer/components/floating-layer-anchor.svelte +9 -6
  41. package/dist/bits/utilities/floating-layer/components/floating-layer-content.svelte +25 -21
  42. package/dist/bits/utilities/floating-layer/components/floating-layer.svelte +2 -2
  43. package/dist/bits/utilities/floating-layer/components/floating-layer.svelte.d.ts +1 -0
  44. package/dist/bits/utilities/floating-layer/types.d.ts +18 -0
  45. package/dist/bits/utilities/floating-layer/use-floating-layer.svelte.d.ts +3 -3
  46. package/dist/bits/utilities/floating-layer/use-floating-layer.svelte.js +16 -11
  47. package/dist/bits/utilities/focus-scope/use-focus-scope.svelte.js +14 -9
  48. package/dist/bits/utilities/popper-layer/popper-layer-inner.svelte +2 -0
  49. package/dist/bits/utilities/popper-layer/types.d.ts +9 -0
  50. package/dist/bits/utilities/portal/types.d.ts +1 -1
  51. package/dist/bits/utilities/text-selection-layer/use-text-selection-layer.svelte.d.ts +2 -0
  52. package/dist/bits/utilities/text-selection-layer/use-text-selection-layer.svelte.js +7 -7
  53. package/dist/internal/box-auto-reset.svelte.d.ts +7 -1
  54. package/dist/internal/box-auto-reset.svelte.js +11 -6
  55. package/dist/internal/date-time/announcer.d.ts +1 -1
  56. package/dist/internal/date-time/announcer.js +20 -20
  57. package/dist/internal/date-time/calendar-helpers.svelte.js +7 -5
  58. package/dist/internal/date-time/field/helpers.d.ts +8 -2
  59. package/dist/internal/date-time/field/helpers.js +8 -7
  60. package/dist/internal/date-time/field/time-helpers.d.ts +8 -2
  61. package/dist/internal/date-time/field/time-helpers.js +9 -9
  62. package/dist/internal/dom.d.ts +0 -1
  63. package/dist/internal/dom.js +0 -3
  64. package/dist/internal/focus.d.ts +2 -2
  65. package/dist/internal/focus.js +14 -9
  66. package/dist/internal/math.d.ts +0 -4
  67. package/dist/internal/math.js +0 -28
  68. package/dist/internal/tabbable.d.ts +0 -2
  69. package/dist/internal/tabbable.js +10 -14
  70. package/dist/internal/use-data-typeahead.svelte.d.ts +1 -0
  71. package/dist/internal/use-data-typeahead.svelte.js +4 -1
  72. package/dist/internal/use-dom-typeahead.svelte.d.ts +3 -1
  73. package/dist/internal/use-dom-typeahead.svelte.js +5 -2
  74. package/dist/internal/use-grace-area.svelte.js +9 -5
  75. package/package.json +2 -2
  76. package/dist/internal/dom-context.svelte.d.ts +0 -9
  77. package/dist/internal/dom-context.svelte.js +0 -26
  78. package/dist/internal/use-size.svelte.d.ts +0 -7
  79. package/dist/internal/use-size.svelte.js +0 -54
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bits-ui",
3
- "version": "2.1.0",
3
+ "version": "2.2.1",
4
4
  "license": "MIT",
5
5
  "repository": "github:huntabyte/bits-ui",
6
6
  "funding": "https://github.com/sponsors/huntabyte",
@@ -46,7 +46,7 @@
46
46
  "css.escape": "^1.5.1",
47
47
  "esm-env": "^1.1.2",
48
48
  "runed": "^0.28.0",
49
- "svelte-toolbelt": "^0.8.2",
49
+ "svelte-toolbelt": "^0.9.1",
50
50
  "tabbable": "^6.2.0"
51
51
  },
52
52
  "peerDependencies": {
@@ -1,9 +0,0 @@
1
- import type { Box } from "svelte-toolbelt";
2
- export declare class DOMContext {
3
- readonly element: Box<HTMLElement | null>;
4
- readonly root: Document | ShadowRoot | null;
5
- constructor(element: Box<HTMLElement | null>);
6
- querySelector: (selector: string) => Element | null;
7
- querySelectorAll: (selector: string) => NodeListOf<Element>;
8
- getElementById: (id: string) => HTMLElement | null;
9
- }
@@ -1,26 +0,0 @@
1
- export class DOMContext {
2
- element;
3
- root = $derived.by(() => {
4
- if (!this.element.current)
5
- return null;
6
- return this.element.current.getRootNode();
7
- });
8
- constructor(element) {
9
- this.element = element;
10
- }
11
- querySelector = (selector) => {
12
- if (!this.root)
13
- return null;
14
- return this.root.querySelector(selector);
15
- };
16
- querySelectorAll = (selector) => {
17
- if (!this.root)
18
- return [];
19
- return this.root.querySelectorAll(selector);
20
- };
21
- getElementById = (id) => {
22
- if (!this.root)
23
- return null;
24
- return this.root.getElementById(id);
25
- };
26
- }
@@ -1,7 +0,0 @@
1
- import { type WritableBox } from "svelte-toolbelt";
2
- export declare function useSize(node: WritableBox<HTMLElement | null>): {
3
- readonly value: {
4
- width: number;
5
- height: number;
6
- } | undefined;
7
- };
@@ -1,54 +0,0 @@
1
- /// <reference types="resize-observer-browser" />
2
- import { untrack } from "svelte";
3
- import { afterTick } from "svelte-toolbelt";
4
- export function useSize(node) {
5
- let size = $state(undefined);
6
- $effect(() => {
7
- const currNode = node.current;
8
- if (!currNode) {
9
- size = undefined;
10
- return;
11
- }
12
- afterTick(() => {
13
- if (!currNode)
14
- return;
15
- size = {
16
- width: currNode.offsetWidth,
17
- height: currNode.offsetHeight,
18
- };
19
- });
20
- const resizeObserver = new ResizeObserver((entries) => {
21
- if (!Array.isArray(entries) || !entries.length)
22
- return;
23
- const entry = entries[0];
24
- if (!entry)
25
- return;
26
- let width;
27
- let height;
28
- if ("borderBoxSize" in entry) {
29
- const borderSizeEntry = entry.borderBoxSize;
30
- const borderSize = Array.isArray(borderSizeEntry)
31
- ? borderSizeEntry[0]
32
- : borderSizeEntry;
33
- width = borderSize.inlineSize;
34
- height = borderSize.blockSize;
35
- }
36
- else {
37
- width = currNode.offsetWidth;
38
- height = currNode.offsetHeight;
39
- }
40
- untrack(() => (size = { width, height }));
41
- });
42
- resizeObserver.observe(currNode, { box: "border-box" });
43
- return () => {
44
- if (!currNode)
45
- return;
46
- resizeObserver.unobserve(currNode);
47
- };
48
- });
49
- return {
50
- get value() {
51
- return size;
52
- },
53
- };
54
- }