@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.
- package/dist/components/aspect-ratio/AspectRatio.d.ts +4 -0
- package/dist/components/aspect-ratio/AspectRatio.types.d.ts +5 -0
- package/dist/components/aspect-ratio/index.d.ts +2 -0
- package/dist/components/breadcrumb/Breadcrumb.d.ts +15 -0
- package/dist/components/breadcrumb/Breadcrumb.types.d.ts +15 -0
- package/dist/components/breadcrumb/index.d.ts +2 -0
- package/dist/components/calendar/Calendar.d.ts +17 -0
- package/dist/components/calendar/Calendar.types.d.ts +69 -0
- package/dist/components/calendar/index.d.ts +2 -0
- package/dist/components/combobox/Combobox.d.ts +17 -0
- package/dist/components/combobox/Combobox.types.d.ts +65 -0
- package/dist/components/combobox/index.d.ts +2 -0
- package/dist/components/context-menu/ContextMenu.d.ts +15 -0
- package/dist/components/context-menu/ContextMenu.types.d.ts +27 -0
- package/dist/components/context-menu/index.d.ts +2 -0
- package/dist/components/date-picker/DatePicker.d.ts +19 -0
- package/dist/components/date-picker/DatePicker.types.d.ts +33 -0
- package/dist/components/date-picker/index.d.ts +2 -0
- package/dist/components/file-upload/FileUpload.d.ts +18 -0
- package/dist/components/file-upload/FileUpload.types.d.ts +41 -0
- package/dist/components/file-upload/index.d.ts +2 -0
- package/dist/components/form/Form.d.ts +17 -0
- package/dist/components/form/Form.types.d.ts +38 -0
- package/dist/components/form/index.d.ts +2 -0
- package/dist/components/index.d.ts +19 -0
- package/dist/components/menu-bar/MenuBar.d.ts +17 -0
- package/dist/components/menu-bar/MenuBar.types.d.ts +36 -0
- package/dist/components/menu-bar/index.d.ts +2 -0
- package/dist/components/navigation-menu/NavigationMenu.d.ts +17 -0
- package/dist/components/navigation-menu/NavigationMenu.types.d.ts +38 -0
- package/dist/components/navigation-menu/index.d.ts +2 -0
- package/dist/components/number-input/NumberInput.d.ts +11 -0
- package/dist/components/number-input/NumberInput.types.d.ts +37 -0
- package/dist/components/number-input/index.d.ts +2 -0
- package/dist/components/pagination/Pagination.d.ts +25 -0
- package/dist/components/pagination/Pagination.types.d.ts +39 -0
- package/dist/components/pagination/index.d.ts +2 -0
- package/dist/components/resizable-panels/ResizablePanels.d.ts +13 -0
- package/dist/components/resizable-panels/ResizablePanels.types.d.ts +28 -0
- package/dist/components/resizable-panels/index.d.ts +2 -0
- package/dist/components/skeleton/Skeleton.d.ts +3 -0
- package/dist/components/skeleton/Skeleton.types.d.ts +5 -0
- package/dist/components/skeleton/index.d.ts +2 -0
- package/dist/components/spinner/Spinner.d.ts +4 -0
- package/dist/components/spinner/Spinner.types.d.ts +7 -0
- package/dist/components/spinner/index.d.ts +2 -0
- package/dist/components/tag/Tag.d.ts +10 -0
- package/dist/components/tag/Tag.types.d.ts +10 -0
- package/dist/components/tag/index.d.ts +2 -0
- package/dist/components/tag-input/TagInput.d.ts +16 -0
- package/dist/components/tag-input/TagInput.types.d.ts +29 -0
- package/dist/components/tag-input/index.d.ts +2 -0
- package/dist/components/toast/Toast.d.ts +24 -0
- package/dist/components/toast/Toast.types.d.ts +36 -0
- package/dist/components/toast/index.d.ts +2 -0
- package/dist/components/tree-view/TreeView.d.ts +7 -0
- package/dist/components/tree-view/TreeView.types.d.ts +46 -0
- package/dist/components/tree-view/index.d.ts +2 -0
- package/dist/index.d.ts +23 -4
- package/dist/primitives/create-controllable-state.d.ts +26 -0
- package/dist/primitives/create-debounce.d.ts +19 -0
- package/dist/primitives/create-disclosure.d.ts +25 -0
- package/dist/primitives/create-floating.d.ts +43 -0
- package/dist/primitives/create-focus-trap.d.ts +24 -0
- package/dist/primitives/create-focus-visible.d.ts +21 -0
- package/dist/primitives/create-id.d.ts +11 -0
- package/dist/primitives/create-intersection-observer.d.ts +22 -0
- package/dist/primitives/create-keyboard.d.ts +41 -0
- package/dist/primitives/create-media-query.d.ts +10 -0
- package/dist/primitives/create-merged-refs.d.ts +17 -0
- package/dist/primitives/create-reduce-motion.d.ts +11 -0
- package/dist/primitives/create-resize-observer.d.ts +17 -0
- package/dist/primitives/create-scroll-lock.d.ts +14 -0
- package/dist/primitives/create-throttle.d.ts +20 -0
- package/dist/primitives/index.d.ts +23 -0
- package/dist/wire-ui-solid.cjs.js +1 -1
- package/dist/wire-ui-solid.es.js +4226 -721
- 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';
|