@wire-ui/solid 0.1.0 → 0.2.0

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 (78) hide show
  1. package/dist/components/aspect-ratio/AspectRatio.d.ts +4 -0
  2. package/dist/components/aspect-ratio/AspectRatio.types.d.ts +5 -0
  3. package/dist/components/aspect-ratio/index.d.ts +2 -0
  4. package/dist/components/breadcrumb/Breadcrumb.d.ts +15 -0
  5. package/dist/components/breadcrumb/Breadcrumb.types.d.ts +15 -0
  6. package/dist/components/breadcrumb/index.d.ts +2 -0
  7. package/dist/components/calendar/Calendar.d.ts +17 -0
  8. package/dist/components/calendar/Calendar.types.d.ts +69 -0
  9. package/dist/components/calendar/index.d.ts +2 -0
  10. package/dist/components/combobox/Combobox.d.ts +17 -0
  11. package/dist/components/combobox/Combobox.types.d.ts +65 -0
  12. package/dist/components/combobox/index.d.ts +2 -0
  13. package/dist/components/context-menu/ContextMenu.d.ts +15 -0
  14. package/dist/components/context-menu/ContextMenu.types.d.ts +27 -0
  15. package/dist/components/context-menu/index.d.ts +2 -0
  16. package/dist/components/date-picker/DatePicker.d.ts +19 -0
  17. package/dist/components/date-picker/DatePicker.types.d.ts +33 -0
  18. package/dist/components/date-picker/index.d.ts +2 -0
  19. package/dist/components/file-upload/FileUpload.d.ts +18 -0
  20. package/dist/components/file-upload/FileUpload.types.d.ts +41 -0
  21. package/dist/components/file-upload/index.d.ts +2 -0
  22. package/dist/components/form/Form.d.ts +17 -0
  23. package/dist/components/form/Form.types.d.ts +38 -0
  24. package/dist/components/form/index.d.ts +2 -0
  25. package/dist/components/index.d.ts +19 -0
  26. package/dist/components/menu-bar/MenuBar.d.ts +17 -0
  27. package/dist/components/menu-bar/MenuBar.types.d.ts +36 -0
  28. package/dist/components/menu-bar/index.d.ts +2 -0
  29. package/dist/components/navigation-menu/NavigationMenu.d.ts +17 -0
  30. package/dist/components/navigation-menu/NavigationMenu.types.d.ts +38 -0
  31. package/dist/components/navigation-menu/index.d.ts +2 -0
  32. package/dist/components/number-input/NumberInput.d.ts +11 -0
  33. package/dist/components/number-input/NumberInput.types.d.ts +37 -0
  34. package/dist/components/number-input/index.d.ts +2 -0
  35. package/dist/components/pagination/Pagination.d.ts +25 -0
  36. package/dist/components/pagination/Pagination.types.d.ts +39 -0
  37. package/dist/components/pagination/index.d.ts +2 -0
  38. package/dist/components/resizable-panels/ResizablePanels.d.ts +13 -0
  39. package/dist/components/resizable-panels/ResizablePanels.types.d.ts +28 -0
  40. package/dist/components/resizable-panels/index.d.ts +2 -0
  41. package/dist/components/skeleton/Skeleton.d.ts +3 -0
  42. package/dist/components/skeleton/Skeleton.types.d.ts +5 -0
  43. package/dist/components/skeleton/index.d.ts +2 -0
  44. package/dist/components/spinner/Spinner.d.ts +4 -0
  45. package/dist/components/spinner/Spinner.types.d.ts +7 -0
  46. package/dist/components/spinner/index.d.ts +2 -0
  47. package/dist/components/tag/Tag.d.ts +10 -0
  48. package/dist/components/tag/Tag.types.d.ts +10 -0
  49. package/dist/components/tag/index.d.ts +2 -0
  50. package/dist/components/tag-input/TagInput.d.ts +16 -0
  51. package/dist/components/tag-input/TagInput.types.d.ts +29 -0
  52. package/dist/components/tag-input/index.d.ts +2 -0
  53. package/dist/components/toast/Toast.d.ts +24 -0
  54. package/dist/components/toast/Toast.types.d.ts +36 -0
  55. package/dist/components/toast/index.d.ts +2 -0
  56. package/dist/components/tree-view/TreeView.d.ts +7 -0
  57. package/dist/components/tree-view/TreeView.types.d.ts +46 -0
  58. package/dist/components/tree-view/index.d.ts +2 -0
  59. package/dist/index.d.ts +23 -4
  60. package/dist/primitives/create-controllable-state.d.ts +26 -0
  61. package/dist/primitives/create-debounce.d.ts +19 -0
  62. package/dist/primitives/create-disclosure.d.ts +25 -0
  63. package/dist/primitives/create-floating.d.ts +43 -0
  64. package/dist/primitives/create-focus-trap.d.ts +24 -0
  65. package/dist/primitives/create-focus-visible.d.ts +21 -0
  66. package/dist/primitives/create-id.d.ts +11 -0
  67. package/dist/primitives/create-intersection-observer.d.ts +22 -0
  68. package/dist/primitives/create-keyboard.d.ts +41 -0
  69. package/dist/primitives/create-media-query.d.ts +10 -0
  70. package/dist/primitives/create-merged-refs.d.ts +17 -0
  71. package/dist/primitives/create-reduce-motion.d.ts +11 -0
  72. package/dist/primitives/create-resize-observer.d.ts +17 -0
  73. package/dist/primitives/create-scroll-lock.d.ts +14 -0
  74. package/dist/primitives/create-throttle.d.ts +20 -0
  75. package/dist/primitives/index.d.ts +23 -0
  76. package/dist/wire-ui-solid.cjs.js +1 -1
  77. package/dist/wire-ui-solid.es.js +4226 -721
  78. package/package.json +1 -1
@@ -0,0 +1,21 @@
1
+ import { Accessor, JSX } from 'solid-js';
2
+ export interface CreateFocusVisibleResult {
3
+ /** Reactive accessor — true when focus arrived from keyboard navigation */
4
+ isFocusVisible: Accessor<boolean>;
5
+ focusProps: {
6
+ onFocus: JSX.FocusEventHandler<Element, FocusEvent>;
7
+ onBlur: () => void;
8
+ };
9
+ }
10
+ /**
11
+ * Tracks whether the focused element should show a "focus visible" indicator —
12
+ * i.e. focus arrived from keyboard navigation, not a pointer.
13
+ *
14
+ * Mirrors the CSS `:focus-visible` pseudo-class by querying `element.matches(':focus-visible')`
15
+ * on focus. Spread `focusProps` onto the target element.
16
+ *
17
+ * @example
18
+ * const { isFocusVisible, focusProps } = createFocusVisible()
19
+ * <button {...focusProps} data-focus-visible={isFocusVisible() ? '' : undefined} />
20
+ */
21
+ export declare function createFocusVisible(): CreateFocusVisibleResult;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Returns a stable, SSR-safe unique id with an optional human-readable prefix.
3
+ *
4
+ * Pass `staticId` to opt out — useful when the parent already provides an id and you
5
+ * want to honor it instead of generating one.
6
+ *
7
+ * @example
8
+ * const labelId = createId('label')
9
+ * const ownId = createId(undefined, props.id)
10
+ */
11
+ export declare function createId(prefix?: string, staticId?: string): string;
@@ -0,0 +1,22 @@
1
+ import { Accessor } from 'solid-js';
2
+ export interface CreateIntersectionObserverOptions extends IntersectionObserverInit {
3
+ /** Stop observing after the first intersection. */
4
+ once?: boolean;
5
+ /** Skip observation entirely while false. */
6
+ enabled?: boolean;
7
+ }
8
+ /**
9
+ * Observes intersection of the target element with its scroll container (or the viewport by default).
10
+ *
11
+ * Returns a reactive accessor for the latest `IntersectionObserverEntry`, or `null` before the
12
+ * first callback. Use `entry()?.isIntersecting` for the common visibility-check case.
13
+ *
14
+ * Pass `options` with getters to make `enabled` reactive:
15
+ * `{ get enabled() { return shouldObserve() } }`
16
+ *
17
+ * @example
18
+ * let el: HTMLDivElement | undefined;
19
+ * const entry = createIntersectionObserver(() => el, { threshold: 0.5, once: true })
20
+ * const isVisible = () => entry()?.isIntersecting ?? false
21
+ */
22
+ export declare function createIntersectionObserver<T extends Element>(target: Accessor<T | null | undefined>, options?: CreateIntersectionObserverOptions): Accessor<IntersectionObserverEntry | null>;
@@ -0,0 +1,41 @@
1
+ import { Accessor } from 'solid-js';
2
+ export interface KeyboardHandlerOptions {
3
+ /** Match Ctrl key state */
4
+ ctrl?: boolean;
5
+ /** Match Meta (Cmd) key state */
6
+ meta?: boolean;
7
+ /** Match Shift key state */
8
+ shift?: boolean;
9
+ /** Match Alt key state */
10
+ alt?: boolean;
11
+ /** Call `preventDefault()` when the handler matches */
12
+ preventDefault?: boolean;
13
+ /** Call `stopPropagation()` when the handler matches */
14
+ stopPropagation?: boolean;
15
+ }
16
+ export type KeyHandler = (event: KeyboardEvent) => void;
17
+ export type KeyboardMap = Record<string, KeyHandler | [KeyHandler, KeyboardHandlerOptions]>;
18
+ export interface CreateKeyboardOptions {
19
+ /** Element to attach the listener to. Defaults to `window`. */
20
+ target?: Accessor<HTMLElement | null | undefined> | HTMLElement | Window | Document | null;
21
+ /** Event to listen on. Defaults to `keydown`. */
22
+ event?: 'keydown' | 'keyup' | 'keypress';
23
+ /** Disable the listener */
24
+ enabled?: boolean;
25
+ }
26
+ /**
27
+ * Subscribes to keyboard events with a map of key → handler.
28
+ *
29
+ * Keys are matched against `event.key` (case-insensitive). Pass a tuple to require
30
+ * modifier keys: `{ s: [save, { meta: true }] }` matches Cmd/Ctrl+S only.
31
+ *
32
+ * Pass `options` with getters to make `target` or `enabled` reactive:
33
+ * `{ get enabled() { return isActive() } }`
34
+ *
35
+ * @example
36
+ * createKeyboard({
37
+ * Escape: () => close(),
38
+ * s: [() => save(), { meta: true, preventDefault: true }],
39
+ * })
40
+ */
41
+ export declare function createKeyboard(map: KeyboardMap, options?: CreateKeyboardOptions): void;
@@ -0,0 +1,10 @@
1
+ import { Accessor } from 'solid-js';
2
+ /**
3
+ * Returns a reactive accessor for whether the given CSS media query currently matches.
4
+ *
5
+ * Re-runs when the match state changes. SSR-safe — returns `false` on the server.
6
+ *
7
+ * @example
8
+ * const isMobile = createMediaQuery('(max-width: 640px)')
9
+ */
10
+ export declare function createMediaQuery(query: string): Accessor<boolean>;
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Merges multiple ref setters into a single callback ref.
3
+ *
4
+ * Useful when a component receives an external ref prop but also needs its own internal ref
5
+ * on the same element. All setters receive the latest element.
6
+ *
7
+ * In Solid, refs are set once via the `ref` attribute. Pass a signal setter, a variable
8
+ * setter `(el) => (localEl = el)`, or `undefined`/`null` to skip.
9
+ *
10
+ * @example
11
+ * function Component(props: { ref?: (el: HTMLDivElement) => void }) {
12
+ * let localEl: HTMLDivElement | undefined;
13
+ * const mergedRef = createMergedRefs((el) => (localEl = el), props.ref);
14
+ * return <div ref={mergedRef} />;
15
+ * }
16
+ */
17
+ export declare function createMergedRefs<T>(...refs: (((el: T) => void | unknown) | null | undefined)[]): (el: T) => void;
@@ -0,0 +1,11 @@
1
+ import { Accessor } from 'solid-js';
2
+ /**
3
+ * Returns a reactive accessor that is `true` when the user has requested reduced motion at the OS level.
4
+ *
5
+ * Use to gate animations and transitions for accessibility.
6
+ *
7
+ * @example
8
+ * const reduceMotion = createReduceMotion()
9
+ * const duration = () => reduceMotion() ? 0 : 200
10
+ */
11
+ export declare function createReduceMotion(): Accessor<boolean>;
@@ -0,0 +1,17 @@
1
+ import { Accessor } from 'solid-js';
2
+ export interface ElementSize {
3
+ width: number;
4
+ height: number;
5
+ }
6
+ /**
7
+ * Observes the size of the target element and returns a reactive accessor for its
8
+ * current content-box dimensions.
9
+ *
10
+ * Pass `onResize` to react imperatively without depending on the returned signal.
11
+ *
12
+ * @example
13
+ * let el: HTMLDivElement | undefined;
14
+ * const size = createResizeObserver(() => el)
15
+ * <p>Width: {size().width}</p>
16
+ */
17
+ export declare function createResizeObserver<T extends HTMLElement>(target: Accessor<T | null | undefined>, onResize?: (size: ElementSize, entry: ResizeObserverEntry) => void): Accessor<ElementSize>;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Locks document scrolling while `active` is true.
3
+ *
4
+ * Multiple consumers may call this at once (e.g. nested modals); scrolling is restored
5
+ * only after the last lock is released. Compensates for the disappearing scrollbar by
6
+ * adding equivalent padding to `<body>` to prevent layout shift.
7
+ *
8
+ * Pass a reactive getter to respond to signal changes:
9
+ * `createScrollLock(() => isOpen())`
10
+ *
11
+ * @example
12
+ * createScrollLock(() => isOpen())
13
+ */
14
+ export declare function createScrollLock(active: boolean | (() => boolean)): void;
@@ -0,0 +1,20 @@
1
+ import { Accessor } from 'solid-js';
2
+ /**
3
+ * Returns a reactive value throttled — updates at most once every `delay` ms.
4
+ *
5
+ * Pass the input as an accessor so Solid can track changes reactively.
6
+ * Use for derived state from high-frequency events (scroll, mousemove) where you
7
+ * want regular sampling rather than waiting for inactivity.
8
+ *
9
+ * @example
10
+ * const throttledScroll = createThrottle(() => scrollY(), 100)
11
+ */
12
+ export declare function createThrottle<T>(value: Accessor<T>, delay: number): Accessor<T>;
13
+ /**
14
+ * Returns a stable, throttled callback that runs at most once per `delay` ms.
15
+ * Fires on the leading edge; trailing calls are dropped.
16
+ *
17
+ * @example
18
+ * const onScroll = createThrottledCallback(() => track(), 200)
19
+ */
20
+ export declare function createThrottledCallback<Args extends unknown[]>(callback: (...args: Args) => void, delay: number): (...args: Args) => void;
@@ -1,3 +1,26 @@
1
1
  export { createClickOutside } from './create-click-outside';
2
+ export { createControllableState } from './create-controllable-state';
3
+ export type { CreateControllableStateOptions } from './create-controllable-state';
4
+ export { createDebounce, createDebouncedCallback } from './create-debounce';
5
+ export { createDisclosure } from './create-disclosure';
6
+ export type { CreateDisclosureOptions, CreateDisclosureResult } from './create-disclosure';
7
+ export { createFloating } from './create-floating';
8
+ export type { CreateFloatingOptions, CreateFloatingResult, FloatingSide, FloatingAlign, FloatingStrategy, } from './create-floating';
9
+ export { createFocusTrap } from './create-focus-trap';
10
+ export type { CreateFocusTrapOptions } from './create-focus-trap';
11
+ export { createFocusVisible } from './create-focus-visible';
12
+ export type { CreateFocusVisibleResult } from './create-focus-visible';
13
+ export { createId } from './create-id';
14
+ export { createIntersectionObserver } from './create-intersection-observer';
15
+ export type { CreateIntersectionObserverOptions } from './create-intersection-observer';
2
16
  export { createInteractiveState } from './create-interactive-state';
3
17
  export type { InteractiveStateOptions, InteractiveStateResult } from './create-interactive-state';
18
+ export { createKeyboard } from './create-keyboard';
19
+ export type { KeyboardMap, KeyHandler, KeyboardHandlerOptions, CreateKeyboardOptions } from './create-keyboard';
20
+ export { createMediaQuery } from './create-media-query';
21
+ export { createMergedRefs } from './create-merged-refs';
22
+ export { createReduceMotion } from './create-reduce-motion';
23
+ export { createResizeObserver } from './create-resize-observer';
24
+ export type { ElementSize } from './create-resize-observer';
25
+ export { createScrollLock } from './create-scroll-lock';
26
+ export { createThrottle, createThrottledCallback } from './create-throttle';