@enonic/ui 1.6.0 → 1.7.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/README.md +10 -6
- package/dist/enonic-ui.cjs +1 -1
- package/dist/enonic-ui.es.js +135 -134
- package/dist/style.cjs +1 -1
- package/dist/style.es.js +1 -1
- package/dist/styles/style.css +2 -2
- package/dist/types/components/avatar/avatar.d.ts +18 -13
- package/dist/types/components/button/button.d.ts +6 -3
- package/dist/types/components/checkbox/checkbox.d.ts +25 -3
- package/dist/types/components/combobox/combobox.d.ts +20 -12
- package/dist/types/components/context-menu/context-menu.d.ts +78 -37
- package/dist/types/components/date-picker/date-picker.d.ts +36 -23
- package/dist/types/components/dialog/dialog-actions.d.ts +1 -1
- package/dist/types/components/dialog/dialog.d.ts +81 -44
- package/dist/types/components/grid-list/grid-list.d.ts +102 -12
- package/dist/types/components/icon-button/icon-button.d.ts +2 -4
- package/dist/types/components/input/input.d.ts +28 -6
- package/dist/types/components/link/link.d.ts +7 -3
- package/dist/types/components/listbox/listbox.d.ts +5 -3
- package/dist/types/components/menu/menu.d.ts +52 -25
- package/dist/types/components/menubar/menubar.d.ts +94 -33
- package/dist/types/components/radio-group/radio-group.d.ts +30 -12
- package/dist/types/components/search-field/search-field.d.ts +1 -3
- package/dist/types/components/selectable-list-item/selectable-list-item.d.ts +1 -1
- package/dist/types/components/selector/selector.d.ts +72 -36
- package/dist/types/components/stepper/stepper.d.ts +54 -18
- package/dist/types/components/tab/tab.d.ts +93 -21
- package/dist/types/components/tag/tag.d.ts +27 -18
- package/dist/types/components/textarea/textarea.d.ts +34 -3
- package/dist/types/components/time-picker/time-picker.d.ts +26 -19
- package/dist/types/components/toast/toast.d.ts +28 -25
- package/dist/types/components/toggle/toggle.d.ts +5 -3
- package/dist/types/components/toggle-group/toggle-group.d.ts +6 -9
- package/dist/types/components/toolbar/toolbar-toggle-group.d.ts +10 -12
- package/dist/types/components/toolbar/toolbar.d.ts +29 -21
- package/dist/types/components/tooltip/tooltip.d.ts +13 -1
- package/dist/types/components/tree-list/tree-list.d.ts +253 -60
- package/dist/types/components/virtualized-tree-list/virtualized-tree-list.d.ts +87 -41
- package/dist/types/hooks/use-active-item-focus.d.ts +1 -1
- package/dist/types/hooks/use-active-on-open.d.ts +1 -1
- package/dist/types/hooks/use-click-outside.d.ts +2 -2
- package/dist/types/hooks/use-floating-position.d.ts +2 -2
- package/dist/types/hooks/use-pointer-position.d.ts +1 -1
- package/dist/types/hooks/use-radio-navigation.d.ts +1 -1
- package/dist/types/hooks/use-scroll-active-into-view.d.ts +1 -1
- package/dist/types/hooks/use-step-navigation.d.ts +1 -1
- package/dist/types/hooks/use-submenu-safe-area.d.ts +1 -1
- package/dist/types/hooks/use-sync-value.d.ts +1 -1
- package/dist/types/primitives/menu-primitive/menu-primitive.d.ts +41 -20
- package/dist/types/providers/combobox-provider.d.ts +5 -5
- package/dist/types/providers/context-menu-provider.d.ts +4 -5
- package/dist/types/providers/context-menu-sub-provider.d.ts +3 -3
- package/dist/types/providers/date-picker-provider.d.ts +2 -2
- package/dist/types/providers/focus-container-provider.d.ts +1 -1
- package/dist/types/providers/menu-provider.d.ts +2 -2
- package/dist/types/providers/menubar-menu-provider.d.ts +4 -4
- package/dist/types/providers/menubar-provider.d.ts +1 -1
- package/dist/types/providers/search-field-provider.d.ts +1 -1
- package/dist/types/providers/selector-provider.d.ts +1 -1
- package/dist/types/providers/time-picker-provider.d.ts +3 -3
- package/dist/types/providers/toolbar-provider.d.ts +1 -1
- package/dist/types/types/lucide.d.ts +9 -5
- package/dist/types/utils/dom.d.ts +15 -1
- package/dist/types/utils/unwrap.d.ts +1 -1
- package/package.json +27 -32
|
@@ -20,25 +20,31 @@ export type MenuItemOwnProps = {
|
|
|
20
20
|
onSelect?: (event: Event) => void;
|
|
21
21
|
className?: string;
|
|
22
22
|
children: ReactNode;
|
|
23
|
-
} & ComponentPropsWithoutRef<'div'>;
|
|
23
|
+
} & Omit<ComponentPropsWithoutRef<'div'>, 'onSelect'>;
|
|
24
24
|
/** Internal primitive props (own props + context operations for dependency injection) */
|
|
25
25
|
export type MenuPrimitiveItemProps = MenuItemOwnProps & MenuContextOperations;
|
|
26
|
-
export declare const MenuPrimitiveItem: import('
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
export declare const MenuPrimitiveItem: import('react').ForwardRefExoticComponent<{
|
|
27
|
+
id?: string;
|
|
28
|
+
asChild?: boolean;
|
|
29
|
+
disabled?: boolean;
|
|
30
|
+
onSelect?: (event: Event) => void;
|
|
31
|
+
className?: string;
|
|
32
|
+
children: ReactNode;
|
|
33
|
+
} & Omit<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, "onSelect"> & MenuContextOperations & import('react').RefAttributes<HTMLDivElement>>;
|
|
29
34
|
export type MenuPrimitiveLabelProps = {
|
|
30
35
|
className?: string;
|
|
31
36
|
children: ReactNode;
|
|
32
37
|
} & ComponentPropsWithoutRef<'div'>;
|
|
33
|
-
export declare const MenuPrimitiveLabel: import('
|
|
34
|
-
|
|
35
|
-
|
|
38
|
+
export declare const MenuPrimitiveLabel: import('react').ForwardRefExoticComponent<{
|
|
39
|
+
className?: string;
|
|
40
|
+
children: ReactNode;
|
|
41
|
+
} & Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
36
42
|
export type MenuPrimitiveSeparatorProps = {
|
|
37
43
|
className?: string;
|
|
38
44
|
} & ComponentPropsWithoutRef<'div'>;
|
|
39
|
-
export declare const MenuPrimitiveSeparator: import('
|
|
40
|
-
|
|
41
|
-
}
|
|
45
|
+
export declare const MenuPrimitiveSeparator: import('react').ForwardRefExoticComponent<{
|
|
46
|
+
className?: string;
|
|
47
|
+
} & Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
42
48
|
type RadioGroupContextValue = {
|
|
43
49
|
value: string | undefined;
|
|
44
50
|
setValue: (value: string) => void;
|
|
@@ -59,9 +65,16 @@ export type MenuRadioGroupOwnProps = {
|
|
|
59
65
|
export type MenuPrimitiveRadioGroupProps = MenuRadioGroupOwnProps & {
|
|
60
66
|
setOpen: (open: boolean) => void;
|
|
61
67
|
};
|
|
62
|
-
export declare const MenuPrimitiveRadioGroup: import('
|
|
63
|
-
|
|
64
|
-
|
|
68
|
+
export declare const MenuPrimitiveRadioGroup: import('react').ForwardRefExoticComponent<{
|
|
69
|
+
value?: string;
|
|
70
|
+
defaultValue?: string;
|
|
71
|
+
onValueChange?: (value: string) => void;
|
|
72
|
+
closeOnSelect?: boolean;
|
|
73
|
+
className?: string;
|
|
74
|
+
children?: ReactNode;
|
|
75
|
+
} & Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
|
|
76
|
+
setOpen: (open: boolean) => void;
|
|
77
|
+
} & import('react').RefAttributes<HTMLDivElement>>;
|
|
65
78
|
export declare const menuRadioItemVariants: (props?: ({
|
|
66
79
|
active?: boolean | null | undefined;
|
|
67
80
|
disabled?: boolean | null | undefined;
|
|
@@ -76,18 +89,26 @@ export type MenuRadioItemOwnProps = {
|
|
|
76
89
|
onSelect?: (event: Event) => void;
|
|
77
90
|
className?: string;
|
|
78
91
|
children: ReactNode;
|
|
79
|
-
} & ComponentPropsWithoutRef<'div'>;
|
|
92
|
+
} & Omit<ComponentPropsWithoutRef<'div'>, 'onSelect'>;
|
|
80
93
|
/** Internal primitive props (own props + context operations except setOpen, which comes from RadioGroup) */
|
|
81
94
|
export type MenuPrimitiveRadioItemProps = MenuRadioItemOwnProps & Omit<MenuContextOperations, 'setOpen'>;
|
|
82
|
-
export declare const MenuPrimitiveRadioItem: import('
|
|
83
|
-
|
|
84
|
-
|
|
95
|
+
export declare const MenuPrimitiveRadioItem: import('react').ForwardRefExoticComponent<{
|
|
96
|
+
id?: string;
|
|
97
|
+
value: string;
|
|
98
|
+
asChild?: boolean;
|
|
99
|
+
disabled?: boolean;
|
|
100
|
+
onSelect?: (event: Event) => void;
|
|
101
|
+
className?: string;
|
|
102
|
+
children: ReactNode;
|
|
103
|
+
} & Omit<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, "onSelect"> & Omit<MenuContextOperations, "setOpen"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
85
104
|
export type MenuPrimitiveItemIndicatorProps = {
|
|
86
105
|
forceMount?: boolean;
|
|
87
106
|
className?: string;
|
|
88
107
|
children?: ReactNode;
|
|
89
108
|
} & ComponentPropsWithoutRef<'span'>;
|
|
90
|
-
export declare const MenuPrimitiveItemIndicator: import('
|
|
91
|
-
|
|
92
|
-
|
|
109
|
+
export declare const MenuPrimitiveItemIndicator: import('react').ForwardRefExoticComponent<{
|
|
110
|
+
forceMount?: boolean;
|
|
111
|
+
className?: string;
|
|
112
|
+
children?: ReactNode;
|
|
113
|
+
} & Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & import('react').RefAttributes<HTMLSpanElement>>;
|
|
93
114
|
export {};
|
|
@@ -8,11 +8,11 @@ export type ComboboxOpenOptions = {
|
|
|
8
8
|
export type ComboboxApplyOptions = Pick<ComboboxOpenOptions, 'restoreFocus'>;
|
|
9
9
|
export type ComboboxContextValue = {
|
|
10
10
|
baseId: string;
|
|
11
|
-
contentRef: RefObject<HTMLDivElement>;
|
|
12
|
-
controlRef: RefObject<HTMLDivElement> | null;
|
|
13
|
-
inputRef: RefObject<HTMLInputElement>;
|
|
14
|
-
applyRef: RefObject<HTMLButtonElement>;
|
|
15
|
-
popupRef: RefObject<HTMLDivElement>;
|
|
11
|
+
contentRef: RefObject<HTMLDivElement | null>;
|
|
12
|
+
controlRef: RefObject<HTMLDivElement | null> | null;
|
|
13
|
+
inputRef: RefObject<HTMLInputElement | null>;
|
|
14
|
+
applyRef: RefObject<HTMLButtonElement | null>;
|
|
15
|
+
popupRef: RefObject<HTMLDivElement | null>;
|
|
16
16
|
restoreFocusOnCloseRef: RefObject<boolean>;
|
|
17
17
|
inputFocusIntentRef: RefObject<boolean>;
|
|
18
18
|
ignoreFocusExitCloseRef: RefObject<boolean>;
|
|
@@ -10,7 +10,7 @@ export type ContextMenuContextValue = {
|
|
|
10
10
|
baseId: string;
|
|
11
11
|
open: boolean;
|
|
12
12
|
setOpen: (open: boolean) => void;
|
|
13
|
-
/**
|
|
13
|
+
/** Coordinates where the menu was opened, from the pointer or keyboard target. */
|
|
14
14
|
position: {
|
|
15
15
|
x: number;
|
|
16
16
|
y: number;
|
|
@@ -22,10 +22,9 @@ export type ContextMenuContextValue = {
|
|
|
22
22
|
/**
|
|
23
23
|
* Tracks whether the user has started keyboard navigation.
|
|
24
24
|
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
* `false` when the menu closes.
|
|
25
|
+
* Keyboard openings show focus-visible rings immediately. Pointer openings
|
|
26
|
+
* show them once the user presses a navigation key (Arrow keys, Home, End).
|
|
27
|
+
* The state resets to `false` when the menu closes.
|
|
29
28
|
*/
|
|
30
29
|
isUsingKeyboard: boolean;
|
|
31
30
|
setIsUsingKeyboard: (value: boolean) => void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { RefObject } from 'react';
|
|
1
|
+
import { Context, RefObject } from 'react';
|
|
2
2
|
import { ContextMenuContentContextValue } from './context-menu-content-provider';
|
|
3
3
|
/**
|
|
4
4
|
* Context value for a single `ContextMenu.Sub` wrapper.
|
|
@@ -16,13 +16,13 @@ export type ContextMenuSubContextValue = {
|
|
|
16
16
|
/** Open/close the submenu */
|
|
17
17
|
setOpen: (open: boolean) => void;
|
|
18
18
|
/** Ref to the SubTrigger DOM node (for ArrowLeft refocus and collision anchoring) */
|
|
19
|
-
triggerRef: RefObject<HTMLDivElement> | null;
|
|
19
|
+
triggerRef: RefObject<HTMLDivElement | null> | null;
|
|
20
20
|
/**
|
|
21
21
|
* Snapshot of the parent content context captured at mount time.
|
|
22
22
|
* Used by SubContent's ArrowLeft handler to set parent `active` back to the trigger.
|
|
23
23
|
*/
|
|
24
24
|
parentContent: ContextMenuContentContextValue;
|
|
25
25
|
};
|
|
26
|
-
export declare const ContextMenuSubProvider:
|
|
26
|
+
export declare const ContextMenuSubProvider: Context<ContextMenuSubContextValue | undefined>['Provider'];
|
|
27
27
|
export declare const useContextMenuSub: () => ContextMenuSubContextValue;
|
|
28
28
|
export declare const useContextMenuSubOptional: () => ContextMenuSubContextValue | undefined;
|
|
@@ -3,8 +3,8 @@ export type DatePickerContextValue = {
|
|
|
3
3
|
baseId: string;
|
|
4
4
|
open: boolean;
|
|
5
5
|
setOpen: (open: boolean) => void;
|
|
6
|
-
triggerRef: RefObject<HTMLButtonElement>;
|
|
7
|
-
focusOnCloseRef?: RefObject<HTMLElement>;
|
|
6
|
+
triggerRef: RefObject<HTMLButtonElement | null>;
|
|
7
|
+
focusOnCloseRef?: RefObject<HTMLElement | null>;
|
|
8
8
|
monthSelectId: string;
|
|
9
9
|
yearSelectId: string;
|
|
10
10
|
prevButtonId: string;
|
|
@@ -12,7 +12,7 @@ export type FocusContainerRegistry = {
|
|
|
12
12
|
/** Focus once the trap has acknowledged this container. Returns a cancellation callback. */
|
|
13
13
|
requestFocus?: (container: HTMLElement, focus: () => void) => () => void;
|
|
14
14
|
};
|
|
15
|
-
export declare const FocusContainerContext: import('
|
|
15
|
+
export declare const FocusContainerContext: import('react').Context<FocusContainerRegistry | null>;
|
|
16
16
|
/**
|
|
17
17
|
* Hook for portaled components to register with a parent focus trap.
|
|
18
18
|
* Returns null when not inside a focus container provider (e.g., Dialog.Content).
|
|
@@ -10,8 +10,8 @@ export type MenuContextValue = {
|
|
|
10
10
|
getItems: () => string[];
|
|
11
11
|
isItemDisabled: (id: string) => boolean;
|
|
12
12
|
getItemElement: (id: string) => HTMLElement | null;
|
|
13
|
-
triggerRef: RefObject<HTMLButtonElement> | null;
|
|
14
|
-
contentRef: RefObject<HTMLDivElement>;
|
|
13
|
+
triggerRef: RefObject<HTMLButtonElement | null> | null;
|
|
14
|
+
contentRef: RefObject<HTMLDivElement | null>;
|
|
15
15
|
};
|
|
16
16
|
export type MenuProviderProps = {
|
|
17
17
|
value: MenuContextValue;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { RefObject } from 'react';
|
|
1
|
+
import { Context, RefObject } from 'react';
|
|
2
2
|
import { MenubarContextValue } from './menubar-provider';
|
|
3
3
|
/**
|
|
4
4
|
* Context value for individual menu within a menubar.
|
|
@@ -17,10 +17,10 @@ export type MenubarMenuContextValue = {
|
|
|
17
17
|
/** Reference to the parent menubar context */
|
|
18
18
|
menubarContext: MenubarContextValue;
|
|
19
19
|
/** Reference to the trigger element */
|
|
20
|
-
triggerRef: RefObject<HTMLButtonElement> | null;
|
|
20
|
+
triggerRef: RefObject<HTMLButtonElement | null> | null;
|
|
21
21
|
};
|
|
22
|
-
export declare const MenubarMenuContext:
|
|
23
|
-
export declare const MenubarMenuProvider:
|
|
22
|
+
export declare const MenubarMenuContext: Context<MenubarMenuContextValue | undefined>;
|
|
23
|
+
export declare const MenubarMenuProvider: Context<MenubarMenuContextValue | undefined>['Provider'];
|
|
24
24
|
/**
|
|
25
25
|
* Access the menubar menu context.
|
|
26
26
|
*
|
|
@@ -35,7 +35,7 @@ export type MenubarContextValue = {
|
|
|
35
35
|
/**
|
|
36
36
|
* Ref to the menubar container element for focus management.
|
|
37
37
|
*/
|
|
38
|
-
menubarRef: RefObject<HTMLDivElement> | null;
|
|
38
|
+
menubarRef: RefObject<HTMLDivElement | null> | null;
|
|
39
39
|
};
|
|
40
40
|
export type MenubarProviderProps = {
|
|
41
41
|
value: MenubarContextValue;
|
|
@@ -8,7 +8,7 @@ export type SearchFieldContextValue = {
|
|
|
8
8
|
placeholder?: string;
|
|
9
9
|
clearLabel: string;
|
|
10
10
|
setValue: (v: string) => void;
|
|
11
|
-
inputRef: RefObject<HTMLInputElement>;
|
|
11
|
+
inputRef: RefObject<HTMLInputElement | null>;
|
|
12
12
|
};
|
|
13
13
|
export type SearchFieldProviderProps = {
|
|
14
14
|
value: SearchFieldContextValue;
|
|
@@ -20,7 +20,7 @@ export type SelectorContextValue = {
|
|
|
20
20
|
unregisterItemText: (id: string) => void;
|
|
21
21
|
getItemText: (id: string) => string | undefined;
|
|
22
22
|
keyHandler: (e: React.KeyboardEvent<HTMLElement>) => void;
|
|
23
|
-
triggerRef: RefObject<HTMLButtonElement>;
|
|
23
|
+
triggerRef: RefObject<HTMLButtonElement | null>;
|
|
24
24
|
};
|
|
25
25
|
export type SelectorProviderProps = {
|
|
26
26
|
value: SelectorContextValue;
|
|
@@ -3,9 +3,9 @@ export type TimePickerContextValue = {
|
|
|
3
3
|
baseId: string;
|
|
4
4
|
open: boolean;
|
|
5
5
|
setOpen: (open: boolean) => void;
|
|
6
|
-
triggerRef: RefObject<HTMLButtonElement>;
|
|
7
|
-
hourTriggerRef: RefObject<HTMLButtonElement>;
|
|
8
|
-
minuteTriggerRef: RefObject<HTMLButtonElement>;
|
|
6
|
+
triggerRef: RefObject<HTMLButtonElement | null>;
|
|
7
|
+
hourTriggerRef: RefObject<HTMLButtonElement | null>;
|
|
8
|
+
minuteTriggerRef: RefObject<HTMLButtonElement | null>;
|
|
9
9
|
hourSelectId: string;
|
|
10
10
|
minuteSelectId: string;
|
|
11
11
|
selectorActive: string | undefined;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ReactElement, ReactNode } from 'react';
|
|
2
2
|
export type ToolbarContextValue = {
|
|
3
3
|
toolbarId: string;
|
|
4
|
-
toolbarRef: React.RefObject<HTMLDivElement>;
|
|
4
|
+
toolbarRef: React.RefObject<HTMLDivElement | null>;
|
|
5
5
|
active: string | undefined;
|
|
6
6
|
setActive: (id: string | undefined) => void;
|
|
7
7
|
registerItem: (id: string, disabled?: boolean, element?: HTMLElement | null) => void;
|
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { LucideIcon as LucideIconReact } from 'lucide-react';
|
|
1
|
+
import { ComponentType } from 'react';
|
|
3
2
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
3
|
+
* An icon component as the library renders it. Structural rather than `lucide-react`'s own type, so icons from
|
|
4
|
+
* both `lucide-react` and `lucide-preact` fit.
|
|
6
5
|
*/
|
|
7
|
-
export type LucideIcon =
|
|
6
|
+
export type LucideIcon = ComponentType<{
|
|
7
|
+
size?: string | number;
|
|
8
|
+
strokeWidth?: string | number;
|
|
9
|
+
className?: string;
|
|
10
|
+
'aria-hidden'?: boolean | 'true' | 'false';
|
|
11
|
+
}>;
|
|
@@ -13,13 +13,26 @@ export declare const getRoot: (node: Node | null | undefined) => Document | Shad
|
|
|
13
13
|
/**
|
|
14
14
|
* The deeply focused element. From outside a shadow root `document.activeElement` reports the host
|
|
15
15
|
* rather than the focused element inside it. Stops at a closed root, whose `shadowRoot` is hidden.
|
|
16
|
+
*
|
|
17
|
+
* Reads from `root` when given instead of the global document: a held reference to a closed root
|
|
18
|
+
* still sees inside it, and another frame's document has its own focus.
|
|
16
19
|
*/
|
|
17
|
-
export declare const getActiveElement: () => Element | null;
|
|
20
|
+
export declare const getActiveElement: (root?: Document | ShadowRoot | null) => Element | null;
|
|
18
21
|
/**
|
|
19
22
|
* Whether a container holds a node, crossing shadow boundaries. `Node.contains` stops at them, so a
|
|
20
23
|
* node focused inside a nested root reads as outside the host that holds it.
|
|
21
24
|
*/
|
|
22
25
|
export declare const containsDeep: (container: Node | null | undefined, node: Node | null | undefined) => boolean;
|
|
26
|
+
type BubbledEvent = {
|
|
27
|
+
currentTarget: EventTarget | null;
|
|
28
|
+
target: EventTarget | null;
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Whether an event reached its handler from a portal rendered inside it rather than from the
|
|
32
|
+
* handler's own DOM. React bubbles events along the component tree, through portals, while Preact
|
|
33
|
+
* bubbles along the DOM. Container handlers return early on these so both runtimes behave alike.
|
|
34
|
+
*/
|
|
35
|
+
export declare const isPortaledEvent: ({ currentTarget, target }: BubbledEvent) => boolean;
|
|
23
36
|
/**
|
|
24
37
|
* The element a container asks to receive focus: the first `[data-autofocus]` that is not under a
|
|
25
38
|
* `[hidden]` ancestor. The consumer marks the target; the caller decides when focus moves.
|
|
@@ -28,3 +41,4 @@ export declare const containsDeep: (container: Node | null | undefined, node: No
|
|
|
28
41
|
* attribute as a string — toggle the marker with `data-autofocus={condition || undefined}`.
|
|
29
42
|
*/
|
|
30
43
|
export declare const getAutofocusTarget: (container: Element | null | undefined) => HTMLElement | null;
|
|
44
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@enonic/ui",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.7.0",
|
|
4
4
|
"description": "Enonic UI Component Library",
|
|
5
5
|
"author": "Enonic",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -59,66 +59,61 @@
|
|
|
59
59
|
"class-variance-authority": "~0.7.1",
|
|
60
60
|
"clsx": "~2.1.1",
|
|
61
61
|
"focus-trap-react": "^12.0.3",
|
|
62
|
-
"lucide-react": "^1.
|
|
62
|
+
"lucide-react": "^1.72.0",
|
|
63
63
|
"tailwind-merge": "~3.7.0"
|
|
64
64
|
},
|
|
65
65
|
"peerDependencies": {
|
|
66
66
|
"@radix-ui/react-slot": "^1.2.0",
|
|
67
|
-
"preact": ">=10.0.0",
|
|
68
67
|
"react": "^19.0.0",
|
|
69
68
|
"react-dom": "^19.0.0",
|
|
70
|
-
"react-virtuoso": "^4.0.0",
|
|
71
69
|
"tw-animate-css": "^1.4.0"
|
|
72
70
|
},
|
|
73
71
|
"peerDependenciesMeta": {
|
|
74
|
-
"preact": {
|
|
75
|
-
"optional": true
|
|
76
|
-
},
|
|
77
72
|
"react": {
|
|
78
73
|
"optional": true
|
|
79
74
|
},
|
|
80
75
|
"react-dom": {
|
|
81
76
|
"optional": true
|
|
82
77
|
},
|
|
83
|
-
"react-virtuoso": {
|
|
84
|
-
"optional": true
|
|
85
|
-
},
|
|
86
78
|
"tw-animate-css": {
|
|
87
79
|
"optional": true
|
|
88
80
|
}
|
|
89
81
|
},
|
|
90
82
|
"devDependencies": {
|
|
91
83
|
"@preact/preset-vite": "~2.10.6",
|
|
92
|
-
"@radix-ui/react-slot": "^1.
|
|
84
|
+
"@radix-ui/react-slot": "^1.5.0",
|
|
93
85
|
"@size-limit/preset-small-lib": "~14.3.0",
|
|
94
|
-
"@storybook/addon-a11y": "~10.6.
|
|
95
|
-
"@storybook/addon-docs": "~10.6.
|
|
96
|
-
"@storybook/addon-themes": "~10.6.
|
|
97
|
-
"@storybook/preact-vite": "~10.6.
|
|
86
|
+
"@storybook/addon-a11y": "~10.6.7",
|
|
87
|
+
"@storybook/addon-docs": "~10.6.7",
|
|
88
|
+
"@storybook/addon-themes": "~10.6.7",
|
|
89
|
+
"@storybook/preact-vite": "~10.6.7",
|
|
98
90
|
"@storybook/test-runner": "^0.26.0",
|
|
99
|
-
"@tailwindcss/vite": "~4.3.
|
|
100
|
-
"@types/node": "~26.
|
|
91
|
+
"@tailwindcss/vite": "~4.3.5",
|
|
92
|
+
"@types/node": "~26.6.6",
|
|
101
93
|
"@types/react": "~19.3.0",
|
|
102
94
|
"@types/react-dom": "~19.3.0",
|
|
103
95
|
"@typescript/typescript6": "~6.0.2",
|
|
104
96
|
"http-server": "^14.1.1",
|
|
105
|
-
"
|
|
106
|
-
"playwright": "^1.
|
|
107
|
-
"
|
|
108
|
-
"
|
|
109
|
-
"react
|
|
110
|
-
"
|
|
97
|
+
"jsdom": "~31.0.0",
|
|
98
|
+
"playwright": "^1.65.0",
|
|
99
|
+
"preact": "~10.29.8",
|
|
100
|
+
"publint": "^0.3.25",
|
|
101
|
+
"react": "~19.3.1",
|
|
102
|
+
"react-doctor": "0.9.22",
|
|
103
|
+
"react-dom": "~19.3.1",
|
|
104
|
+
"react-virtuoso": "^4.18.21",
|
|
105
|
+
"rollup-plugin-visualizer": "~7.1.3",
|
|
111
106
|
"size-limit": "~14.3.0",
|
|
112
|
-
"storybook": "~10.6.
|
|
113
|
-
"tailwindcss": "~4.3.
|
|
107
|
+
"storybook": "~10.6.7",
|
|
108
|
+
"tailwindcss": "~4.3.5",
|
|
114
109
|
"terser": "~5.51.2",
|
|
115
110
|
"tw-animate-css": "^1.4.0",
|
|
116
111
|
"typescript": "~7.0.2",
|
|
117
|
-
"vite": "npm:@voidzero-dev/vite-plus-core@^1.
|
|
118
|
-
"vite-plugin-dts": "~5.1.
|
|
119
|
-
"vite-plugin-environment": "~1.1.
|
|
120
|
-
"vite-plus": "^1.
|
|
121
|
-
"wait-on": "^9.1
|
|
112
|
+
"vite": "npm:@voidzero-dev/vite-plus-core@^1.6.0",
|
|
113
|
+
"vite-plugin-dts": "~5.1.2",
|
|
114
|
+
"vite-plugin-environment": "~1.1.4",
|
|
115
|
+
"vite-plus": "^1.6.0",
|
|
116
|
+
"wait-on": "^9.5.1"
|
|
122
117
|
},
|
|
123
118
|
"engines": {
|
|
124
119
|
"node": ">=24.16.0",
|
|
@@ -172,9 +167,9 @@
|
|
|
172
167
|
"format": "vp fmt",
|
|
173
168
|
"format:check": "vp fmt --check",
|
|
174
169
|
"check:react": "react-doctor --no-telemetry",
|
|
175
|
-
"test": "
|
|
170
|
+
"test": "vp test",
|
|
176
171
|
"check:package": "node scripts/package-smoke.mjs",
|
|
177
|
-
"test:ci": "
|
|
172
|
+
"test:ci": "vp test",
|
|
178
173
|
"test:storybook": "test-storybook --includeTags interactions-smoke",
|
|
179
174
|
"release:dry": "pnpm publish --dry-run --no-git-checks",
|
|
180
175
|
"analyze": "pnpm build && open dist/stats.html",
|