@wallarm-org/design-system 0.71.4 → 0.72.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 (91) hide show
  1. package/README.md +1 -3
  2. package/dist/components/Attribute/AttributeValue.js +1 -1
  3. package/dist/components/Calendar/Calendar.js +14 -4
  4. package/dist/components/Calendar/CalendarContext.d.ts +19 -2
  5. package/dist/components/Calendar/CalendarHeader.js +2 -1
  6. package/dist/components/Calendar/CalendarInputHeader.js +27 -27
  7. package/dist/components/Calendar/dateValue.d.ts +18 -0
  8. package/dist/components/Calendar/dateValue.js +7 -0
  9. package/dist/components/Calendar/useCalendarTime.d.ts +25 -0
  10. package/dist/components/Calendar/useCalendarTime.js +38 -0
  11. package/dist/components/DropdownMenu/DropdownMenuInput.d.ts +1 -1
  12. package/dist/components/InlineEdit/InlineEdit.d.ts +52 -0
  13. package/dist/components/InlineEdit/InlineEdit.js +223 -0
  14. package/dist/components/InlineEdit/InlineEditContext.d.ts +43 -0
  15. package/dist/components/InlineEdit/InlineEditContext.js +16 -0
  16. package/dist/components/InlineEdit/InlineEditControl.d.ts +14 -0
  17. package/dist/components/InlineEdit/InlineEditControl.js +72 -0
  18. package/dist/components/InlineEdit/InlineEditDate.d.ts +19 -0
  19. package/dist/components/InlineEdit/InlineEditDate.js +22 -0
  20. package/dist/components/InlineEdit/InlineEditDateTime.d.ts +21 -0
  21. package/dist/components/InlineEdit/InlineEditDateTime.js +23 -0
  22. package/dist/components/InlineEdit/InlineEditError.d.ts +6 -0
  23. package/dist/components/InlineEdit/InlineEditError.js +32 -0
  24. package/dist/components/InlineEdit/InlineEditInput.d.ts +4 -0
  25. package/dist/components/InlineEdit/InlineEditInput.js +18 -0
  26. package/dist/components/InlineEdit/InlineEditNumber.d.ts +11 -0
  27. package/dist/components/InlineEdit/InlineEditNumber.js +18 -0
  28. package/dist/components/InlineEdit/InlineEditPreview.d.ts +23 -0
  29. package/dist/components/InlineEdit/InlineEditPreview.js +105 -0
  30. package/dist/components/InlineEdit/InlineEditPreviewIcon.d.ts +12 -0
  31. package/dist/components/InlineEdit/InlineEditPreviewIcon.js +43 -0
  32. package/dist/components/InlineEdit/InlineEditPreviewValue.d.ts +11 -0
  33. package/dist/components/InlineEdit/InlineEditPreviewValue.js +25 -0
  34. package/dist/components/InlineEdit/InlineEditSelect.d.ts +39 -0
  35. package/dist/components/InlineEdit/InlineEditSelect.js +42 -0
  36. package/dist/components/InlineEdit/InlineEditTextarea.d.ts +4 -0
  37. package/dist/components/InlineEdit/InlineEditTextarea.js +18 -0
  38. package/dist/components/InlineEdit/InlineEditTime.d.ts +12 -0
  39. package/dist/components/InlineEdit/InlineEditTime.js +21 -0
  40. package/dist/components/InlineEdit/classes.d.ts +5 -0
  41. package/dist/components/InlineEdit/classes.js +35 -0
  42. package/dist/components/InlineEdit/dateValueCast.d.ts +25 -0
  43. package/dist/components/InlineEdit/dateValueCast.js +9 -0
  44. package/dist/components/InlineEdit/index.d.ts +15 -0
  45. package/dist/components/InlineEdit/index.js +16 -0
  46. package/dist/components/Input/Input.d.ts +1 -1
  47. package/dist/components/Input/Input.js +4 -3
  48. package/dist/components/Input/classes.d.ts +1 -0
  49. package/dist/components/Input/classes.js +8 -0
  50. package/dist/components/NumberInput/NumberInput.d.ts +4 -1
  51. package/dist/components/NumberInput/NumberInput.js +17 -7
  52. package/dist/components/NumberInput/classes.d.ts +12 -0
  53. package/dist/components/NumberInput/classes.js +51 -0
  54. package/dist/components/Select/SelectButton.d.ts +2 -1
  55. package/dist/components/Select/SelectButton.js +7 -2
  56. package/dist/components/Select/SelectInput/SelectInput.d.ts +1 -0
  57. package/dist/components/Select/SelectInput/SelectInput.js +21 -7
  58. package/dist/components/Select/SelectInput/SelectInputItemRenderer.d.ts +4 -0
  59. package/dist/components/Select/SelectInput/SelectInputItemRenderer.js +8 -3
  60. package/dist/components/Select/SelectInput/SelectInputOverflowRenderer.d.ts +1 -1
  61. package/dist/components/Select/SelectInput/SelectInputOverflowRenderer.js +28 -27
  62. package/dist/components/Slider/SliderInput.d.ts +1 -1
  63. package/dist/components/Textarea/classes.js +2 -2
  64. package/dist/components/Toast/Toast.js +6 -6
  65. package/dist/components/Toast/Toaster.js +1 -1
  66. package/dist/components/Tree/TreeContext.d.ts +1 -9
  67. package/dist/components/Tree/TreeContext.js +2 -18
  68. package/dist/components/Tree/TreeItemContent.js +5 -8
  69. package/dist/components/TreeView/TreeView.d.ts +19 -0
  70. package/dist/components/TreeView/TreeView.js +82 -0
  71. package/dist/components/TreeView/TreeViewContext.d.ts +12 -0
  72. package/dist/components/TreeView/TreeViewContext.js +9 -0
  73. package/dist/components/TreeView/TreeViewItem.d.ts +24 -0
  74. package/dist/components/TreeView/TreeViewItem.js +168 -0
  75. package/dist/components/TreeView/classes.d.ts +5 -0
  76. package/dist/components/TreeView/classes.js +30 -0
  77. package/dist/components/TreeView/index.d.ts +9 -0
  78. package/dist/components/TreeView/index.js +5 -0
  79. package/dist/index.d.ts +7 -5
  80. package/dist/index.js +4 -2
  81. package/dist/metadata/components.json +6122 -2828
  82. package/dist/theme/fonts/Geist-Variable.woff2 +0 -0
  83. package/dist/theme/fonts/GeistMono-Variable.woff2 +0 -0
  84. package/dist/theme/fonts/geist.css +21 -0
  85. package/dist/theme/index.css +1 -0
  86. package/dist/theme/typography.css +5 -3
  87. package/dist/utils/Collapse.d.ts +18 -0
  88. package/dist/utils/Collapse.js +15 -0
  89. package/dist/utils/treeDepth.d.ts +11 -0
  90. package/dist/utils/treeDepth.js +18 -0
  91. package/package.json +1 -3
@@ -1,5 +1,5 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
- import { cn } from "../../utils/cn.js";
2
+ import { Collapse } from "../../utils/Collapse.js";
3
3
  import { useTreeItemContext } from "./TreeItemContext.js";
4
4
  const TreeItemContent = ({ ref, children, className, ...props })=>{
5
5
  const { collapsible, open } = useTreeItemContext();
@@ -10,16 +10,13 @@ const TreeItemContent = ({ ref, children, className, ...props })=>{
10
10
  ...props,
11
11
  children: children
12
12
  });
13
- return /*#__PURE__*/ jsx("div", {
13
+ return /*#__PURE__*/ jsx(Collapse, {
14
14
  ref: ref,
15
+ open: open,
15
16
  "data-slot": "tree-item-content",
16
- "data-state": open ? 'open' : 'closed',
17
- className: cn('grid transition-[grid-template-rows] duration-[220ms] ease-[cubic-bezier(0.4,0,0.2,1)] motion-reduce:transition-none', open ? 'grid-rows-[1fr]' : 'grid-rows-[0fr]', className),
17
+ className: className,
18
18
  ...props,
19
- children: /*#__PURE__*/ jsx("div", {
20
- className: "overflow-hidden",
21
- children: children
22
- })
19
+ children: children
23
20
  });
24
21
  };
25
22
  TreeItemContent.displayName = 'TreeItemContent';
@@ -0,0 +1,19 @@
1
+ import { type FC, type HTMLAttributes, type ReactNode, type Ref } from 'react';
2
+ import { type TestableProps } from '../../utils/testId';
3
+ /** Horizontal indentation added per nesting level, in pixels. */
4
+ export declare const TREE_VIEW_INDENT_STEP = 16;
5
+ export interface TreeViewProps extends HTMLAttributes<HTMLDivElement>, TestableProps {
6
+ ref?: Ref<HTMLDivElement>;
7
+ children?: ReactNode;
8
+ /** Allow rows to be selected by clicking. */
9
+ selectable?: boolean;
10
+ /** Allow more than one row to be selected at a time. */
11
+ multiSelect?: boolean;
12
+ /** Controlled selected item ids. */
13
+ selectedIds?: string[];
14
+ /** Uncontrolled initial selected item ids. */
15
+ defaultSelectedIds?: string[];
16
+ /** Called whenever the selection changes. */
17
+ onSelectionChange?: (ids: string[]) => void;
18
+ }
19
+ export declare const TreeView: FC<TreeViewProps>;
@@ -0,0 +1,82 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { Children, isValidElement, useCallback, useMemo, useState } from "react";
3
+ import { cn } from "../../utils/cn.js";
4
+ import { TestIdProvider } from "../../utils/testId.js";
5
+ import { TreeDepthProvider } from "../../utils/treeDepth.js";
6
+ import { Text } from "../Text/index.js";
7
+ import { TreeViewProvider } from "./TreeViewContext.js";
8
+ const TREE_VIEW_INDENT_STEP = 16;
9
+ const TreeView = ({ ref, children, selectable = false, multiSelect = false, selectedIds: controlledSelectedIds, defaultSelectedIds, onSelectionChange, 'data-testid': testId, className, ...props })=>{
10
+ const [internalSelected, setInternalSelected] = useState(()=>defaultSelectedIds ?? []);
11
+ const isControlled = void 0 !== controlledSelectedIds;
12
+ const selectedList = isControlled ? controlledSelectedIds : internalSelected;
13
+ const selectedIds = useMemo(()=>new Set(selectedList), [
14
+ selectedList
15
+ ]);
16
+ const toggleSelect = useCallback((id)=>{
17
+ const isSelected = selectedIds.has(id);
18
+ let next;
19
+ next = multiSelect ? isSelected ? selectedList.filter((v)=>v !== id) : [
20
+ ...selectedList,
21
+ id
22
+ ] : isSelected ? [] : [
23
+ id
24
+ ];
25
+ if (!isControlled) setInternalSelected(next);
26
+ onSelectionChange?.(next);
27
+ }, [
28
+ selectedIds,
29
+ selectedList,
30
+ multiSelect,
31
+ isControlled,
32
+ onSelectionChange
33
+ ]);
34
+ const contextValue = useMemo(()=>({
35
+ selectable,
36
+ multiSelect,
37
+ selectedIds,
38
+ toggleSelect
39
+ }), [
40
+ selectable,
41
+ multiSelect,
42
+ selectedIds,
43
+ toggleSelect
44
+ ]);
45
+ const hasItems = Children.toArray(children).some((child)=>/*#__PURE__*/ isValidElement(child) && 'TreeViewItem' === child.type.displayName);
46
+ return /*#__PURE__*/ jsx(TestIdProvider, {
47
+ value: testId,
48
+ children: /*#__PURE__*/ jsx(TreeViewProvider, {
49
+ value: contextValue,
50
+ children: /*#__PURE__*/ jsx(TreeDepthProvider, {
51
+ value: {
52
+ depth: 0,
53
+ indent: TREE_VIEW_INDENT_STEP,
54
+ gap: void 0
55
+ },
56
+ children: /*#__PURE__*/ jsxs("div", {
57
+ ref: ref,
58
+ role: "tree",
59
+ "aria-multiselectable": selectable && multiSelect ? true : void 0,
60
+ "data-slot": "tree-view",
61
+ "data-testid": testId,
62
+ className: cn('flex w-full flex-col', className),
63
+ ...props,
64
+ children: [
65
+ children,
66
+ !hasItems && /*#__PURE__*/ jsx("div", {
67
+ "data-slot": "tree-view-empty",
68
+ className: "flex h-32 items-center justify-center",
69
+ children: /*#__PURE__*/ jsx(Text, {
70
+ size: "sm",
71
+ color: "secondary",
72
+ children: "No results"
73
+ })
74
+ })
75
+ ]
76
+ })
77
+ })
78
+ })
79
+ });
80
+ };
81
+ TreeView.displayName = 'TreeView';
82
+ export { TREE_VIEW_INDENT_STEP, TreeView };
@@ -0,0 +1,12 @@
1
+ export interface TreeViewContextValue {
2
+ /** Whether rows can be selected by clicking. */
3
+ selectable: boolean;
4
+ /** Allow multiple rows to be selected at once. */
5
+ multiSelect: boolean;
6
+ /** Currently selected item ids. */
7
+ selectedIds: Set<string>;
8
+ /** Toggle selection for a given item id. */
9
+ toggleSelect: (id: string) => void;
10
+ }
11
+ export declare const TreeViewProvider: import("react").Provider<TreeViewContextValue | null>;
12
+ export declare function useTreeViewContext(): TreeViewContextValue;
@@ -0,0 +1,9 @@
1
+ import { createContext, useContext } from "react";
2
+ const TreeViewContext = createContext(null);
3
+ const TreeViewProvider = TreeViewContext.Provider;
4
+ function useTreeViewContext() {
5
+ const ctx = useContext(TreeViewContext);
6
+ if (null === ctx) throw new Error('TreeView sub-components must be used within a <TreeView>');
7
+ return ctx;
8
+ }
9
+ export { TreeViewProvider, useTreeViewContext };
@@ -0,0 +1,24 @@
1
+ import { type FC, type HTMLAttributes, type ReactNode, type Ref } from 'react';
2
+ export interface TreeViewItemProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onSelect'> {
3
+ ref?: Ref<HTMLDivElement>;
4
+ /** Stable id used for selection. Required for a row to be selectable. */
5
+ id?: string;
6
+ /**
7
+ * Row content and nested items. Compose the row freely (icon, badge, text);
8
+ * any nested `<TreeViewItem>` children are rendered as the collapsible subtree,
9
+ * which also marks this item as an expandable branch.
10
+ */
11
+ children?: ReactNode;
12
+ /** Force branch behaviour (show a toggle) even without nested items. */
13
+ expandable?: boolean;
14
+ /** Controlled open state. */
15
+ open?: boolean;
16
+ /** Uncontrolled initial open state. */
17
+ defaultOpen?: boolean;
18
+ onOpenChange?: (open: boolean) => void;
19
+ /** Visually mark the row as selected (defaults to the tree's selection state). */
20
+ selected?: boolean;
21
+ /** Dim the row and disable all interaction (toggle, selection, checkbox). */
22
+ disabled?: boolean;
23
+ }
24
+ export declare const TreeViewItem: FC<TreeViewItemProps>;
@@ -0,0 +1,168 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { Children, isValidElement, useCallback, useState } from "react";
3
+ import { SquareMinus, SquarePlus } from "../../icons/index.js";
4
+ import { Collapse } from "../../utils/Collapse.js";
5
+ import { cn } from "../../utils/cn.js";
6
+ import { useTestId } from "../../utils/testId.js";
7
+ import { TreeDepthProvider, useTreeDepth } from "../../utils/treeDepth.js";
8
+ import { treeViewRowVariants } from "./classes.js";
9
+ import { TREE_VIEW_INDENT_STEP } from "./TreeView.js";
10
+ import { useTreeViewContext } from "./TreeViewContext.js";
11
+ const RAIL_BASE_LEFT = 14;
12
+ const TreeViewItem = ({ ref, id, children, expandable, open: controlledOpen, defaultOpen = false, onOpenChange, selected: selectedProp, disabled = false, className, onClick, ...props })=>{
13
+ const depth = useTreeDepth();
14
+ const testId = useTestId('item');
15
+ const { selectable, selectedIds, toggleSelect } = useTreeViewContext();
16
+ const [internalOpen, setInternalOpen] = useState(defaultOpen);
17
+ const isControlled = void 0 !== controlledOpen;
18
+ const isOpen = isControlled ? controlledOpen : internalOpen;
19
+ const nestedItems = [];
20
+ const content = [];
21
+ let labelIndex = 0;
22
+ for (const child of Children.toArray(children))if (/*#__PURE__*/ isValidElement(child) && child.type === TreeViewItem) nestedItems.push(child);
23
+ else if ('string' == typeof child || 'number' == typeof child) {
24
+ labelIndex += 1;
25
+ content.push(/*#__PURE__*/ jsx("span", {
26
+ className: "min-w-0 flex-1 truncate",
27
+ children: child
28
+ }, `label-${labelIndex}`));
29
+ } else content.push(child);
30
+ const isBranch = expandable || nestedItems.length > 0;
31
+ const isSelected = selectedProp ?? (void 0 !== id ? selectedIds.has(id) : false);
32
+ const isInteractive = !disabled && (selectable ? void 0 !== id : isBranch);
33
+ const setOpen = useCallback((next)=>{
34
+ if (!isControlled) setInternalOpen(next);
35
+ onOpenChange?.(next);
36
+ }, [
37
+ isControlled,
38
+ onOpenChange
39
+ ]);
40
+ const activate = useCallback(()=>{
41
+ if (selectable && void 0 !== id) toggleSelect(id);
42
+ else if (isBranch) setOpen(!isOpen);
43
+ }, [
44
+ selectable,
45
+ id,
46
+ toggleSelect,
47
+ isBranch,
48
+ isOpen,
49
+ setOpen
50
+ ]);
51
+ const handleToggle = useCallback((event)=>{
52
+ event.stopPropagation();
53
+ setOpen(!isOpen);
54
+ }, [
55
+ isOpen,
56
+ setOpen
57
+ ]);
58
+ const handleRowClick = useCallback((event)=>{
59
+ onClick?.(event);
60
+ activate();
61
+ }, [
62
+ onClick,
63
+ activate
64
+ ]);
65
+ const handleRowKeyDown = useCallback((event)=>{
66
+ if ('Enter' === event.key || ' ' === event.key) {
67
+ event.preventDefault();
68
+ event.stopPropagation();
69
+ activate();
70
+ } else if (isBranch && 'ArrowRight' === event.key && !isOpen) {
71
+ event.preventDefault();
72
+ event.stopPropagation();
73
+ setOpen(true);
74
+ } else if (isBranch && 'ArrowLeft' === event.key && isOpen) {
75
+ event.preventDefault();
76
+ event.stopPropagation();
77
+ setOpen(false);
78
+ }
79
+ }, [
80
+ activate,
81
+ isBranch,
82
+ isOpen,
83
+ setOpen
84
+ ]);
85
+ const paddingLeft = depth * TREE_VIEW_INDENT_STEP;
86
+ return /*#__PURE__*/ jsxs("div", {
87
+ ref: ref,
88
+ role: "treeitem",
89
+ "aria-expanded": isBranch ? isOpen : void 0,
90
+ "aria-selected": selectable && void 0 !== id && !disabled ? isSelected : void 0,
91
+ "aria-disabled": disabled || void 0,
92
+ tabIndex: isInteractive ? 0 : -1,
93
+ onKeyDown: isInteractive ? handleRowKeyDown : void 0,
94
+ "data-slot": "tree-view-item",
95
+ "data-testid": testId,
96
+ ...props,
97
+ children: [
98
+ /*#__PURE__*/ jsxs("div", {
99
+ "data-slot": "tree-view-row",
100
+ "data-selected": isSelected || void 0,
101
+ "data-disabled": disabled || void 0,
102
+ "data-state": isBranch ? isOpen ? 'open' : 'closed' : void 0,
103
+ className: cn(treeViewRowVariants({
104
+ interactive: isInteractive,
105
+ selected: isSelected,
106
+ disabled
107
+ }), className),
108
+ onClick: isInteractive ? handleRowClick : onClick,
109
+ children: [
110
+ Array.from({
111
+ length: depth
112
+ }, (_, k)=>RAIL_BASE_LEFT + k * TREE_VIEW_INDENT_STEP).map((left)=>/*#__PURE__*/ jsx("span", {
113
+ "aria-hidden": true,
114
+ "data-slot": "tree-view-rail",
115
+ className: "pointer-events-none absolute inset-y-0 w-px bg-border-primary-light",
116
+ style: {
117
+ left
118
+ }
119
+ }, left)),
120
+ /*#__PURE__*/ jsxs("div", {
121
+ className: "flex h-24 min-w-0 flex-1 items-center gap-4 text-xs text-text-primary [&>svg]:icon-xs [&>svg]:shrink-0 [&>svg]:text-text-secondary",
122
+ style: {
123
+ paddingLeft
124
+ },
125
+ "data-slot": "tree-view-left",
126
+ children: [
127
+ isBranch ? /*#__PURE__*/ jsx("button", {
128
+ type: "button",
129
+ "data-slot": "tree-view-toggle",
130
+ "aria-label": isOpen ? 'Collapse' : 'Expand',
131
+ disabled: disabled,
132
+ className: "flex shrink-0 cursor-pointer items-center justify-center text-text-secondary disabled:cursor-not-allowed",
133
+ onClick: handleToggle,
134
+ tabIndex: -1,
135
+ children: isOpen ? /*#__PURE__*/ jsx(SquareMinus, {
136
+ size: "xs"
137
+ }) : /*#__PURE__*/ jsx(SquarePlus, {
138
+ size: "xs"
139
+ })
140
+ }) : /*#__PURE__*/ jsx("span", {
141
+ "aria-hidden": true,
142
+ className: "size-12 shrink-0",
143
+ "data-slot": "tree-view-toggle-spacer"
144
+ }),
145
+ content
146
+ ]
147
+ })
148
+ ]
149
+ }),
150
+ isBranch && /*#__PURE__*/ jsx(Collapse, {
151
+ open: isOpen,
152
+ inertWhenClosed: true,
153
+ role: "group",
154
+ "data-slot": "tree-view-group",
155
+ children: /*#__PURE__*/ jsx(TreeDepthProvider, {
156
+ value: {
157
+ depth: depth + 1,
158
+ indent: TREE_VIEW_INDENT_STEP,
159
+ gap: void 0
160
+ },
161
+ children: nestedItems
162
+ })
163
+ })
164
+ ]
165
+ });
166
+ };
167
+ TreeViewItem.displayName = 'TreeViewItem';
168
+ export { TreeViewItem };
@@ -0,0 +1,5 @@
1
+ export declare const treeViewRowVariants: (props?: ({
2
+ interactive?: boolean | null | undefined;
3
+ selected?: boolean | null | undefined;
4
+ disabled?: boolean | null | undefined;
5
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
@@ -0,0 +1,30 @@
1
+ import { cva } from "class-variance-authority";
2
+ const treeViewRowVariants = cva('group/row relative flex min-h-24 w-full items-center gap-4 px-8 py-2 text-left', {
3
+ variants: {
4
+ interactive: {
5
+ true: 'cursor-pointer active:bg-states-primary-pressed',
6
+ false: ''
7
+ },
8
+ selected: {
9
+ true: 'bg-states-primary-default-alt',
10
+ false: ''
11
+ },
12
+ disabled: {
13
+ true: 'opacity-50 cursor-not-allowed',
14
+ false: ''
15
+ }
16
+ },
17
+ compoundVariants: [
18
+ {
19
+ interactive: true,
20
+ selected: false,
21
+ className: '[&:hover:not(:active)]:bg-states-primary-hover'
22
+ }
23
+ ],
24
+ defaultVariants: {
25
+ interactive: false,
26
+ selected: false,
27
+ disabled: false
28
+ }
29
+ });
30
+ export { treeViewRowVariants };
@@ -0,0 +1,9 @@
1
+ import { TreeView as TreeViewRoot } from './TreeView';
2
+ import { TreeViewItem } from './TreeViewItem';
3
+ type TreeViewComponent = typeof TreeViewRoot & {
4
+ Item: typeof TreeViewItem;
5
+ };
6
+ declare const TreeView: TreeViewComponent;
7
+ export { TreeView };
8
+ export { TREE_VIEW_INDENT_STEP, type TreeViewProps } from './TreeView';
9
+ export { TreeViewItem, type TreeViewItemProps } from './TreeViewItem';
@@ -0,0 +1,5 @@
1
+ import { TREE_VIEW_INDENT_STEP, TreeView } from "./TreeView.js";
2
+ import { TreeViewItem } from "./TreeViewItem.js";
3
+ const TreeView_TreeView = TreeView;
4
+ TreeView_TreeView.Item = TreeViewItem;
5
+ export { TREE_VIEW_INDENT_STEP, TreeView_TreeView as TreeView, TreeViewItem };
package/dist/index.d.ts CHANGED
@@ -4,10 +4,10 @@
4
4
  * barrel gives consumers a single import surface and lets us swap the
5
5
  * underlying library later without breaking every caller.
6
6
  *
7
- * Note: `DateValue` is intentionally not re-exported here to avoid colliding
8
- * with `Calendar`'s own `DateValue` type. Consumers can type state with the
9
- * concrete classes (e.g. `useState<CalendarDate | null>`) TypeScript
10
- * narrows the union automatically.
7
+ * Note: the `DateValue` union re-exported below comes from `Calendar`
8
+ * (`./components/Calendar`); the concrete classes (`CalendarDate`,
9
+ * `CalendarDateTime`, `ZonedDateTime`, `Time`) come from
10
+ * `@internationalized/date`.
11
11
  */
12
12
  export { usePagination, usePaginationContext } from '@ark-ui/react/pagination';
13
13
  export { CalendarDate, CalendarDateTime, getLocalTimeZone, parseDate, parseDateTime, parseTime, parseZonedDateTime, Time, today, ZonedDateTime, } from '@internationalized/date';
@@ -37,6 +37,7 @@ export { Flex, type FlexProps } from './components/Flex';
37
37
  export { FormatDateTime, type FormatDateTimeProps } from './components/FormatDateTime';
38
38
  export { Heading, type HeadingProps } from './components/Heading';
39
39
  export { HTTP_METHOD_COLOR, HTTP_METHODS, HttpMethod, type HttpMethodName, type HttpMethodProps, } from './components/HttpMethod';
40
+ export { InlineEdit, type InlineEditActivationMode, type InlineEditContextValue, InlineEditControl, type InlineEditControlProps, InlineEditDate, type InlineEditDateProps, InlineEditDateTime, type InlineEditDateTimeProps, InlineEditError, type InlineEditErrorProps, InlineEditInput, type InlineEditInputProps, InlineEditNumber, type InlineEditNumberProps, InlineEditPreview, InlineEditPreviewIcon, type InlineEditPreviewIconProps, type InlineEditPreviewProps, InlineEditPreviewValue, type InlineEditPreviewValueProps, type InlineEditProps, InlineEditSelect, type InlineEditSelectProps, type InlineEditStatus, type InlineEditSubmitMode, InlineEditTextarea, type InlineEditTextareaProps, InlineEditTime, type InlineEditTimeProps, toCalendarDateValue, toReactAriaDateValue, useInlineEdit, useInlineEditSubmitMode, withMinuteGranularity, } from './components/InlineEdit';
40
41
  export { Input, type InputProps } from './components/Input';
41
42
  export { InputGroup, InputGroupAddon, InputGroupText, } from './components/InputGroup';
42
43
  export { OTPInput, type OTPInputProps } from './components/InputOTP';
@@ -60,7 +61,7 @@ export { getResponseCodeCategory, RESPONSE_CODE_COLOR, ResponseCode, type Respon
60
61
  export { ScrollArea, ScrollAreaContent, type ScrollAreaContentProps, ScrollAreaCorner, type ScrollAreaProps, ScrollAreaScrollbar, type ScrollAreaScrollbarProps, ScrollAreaViewport, type ScrollAreaViewportProps, } from './components/ScrollArea';
61
62
  export { SegmentedControl, SegmentedControlButton, type SegmentedControlButtonProps, SegmentedControlItem, type SegmentedControlItemProps, type SegmentedControlProps, SegmentedControlSeparator, type SegmentedControlSeparatorProps, } from './components/SegmentedControl';
62
63
  export { SegmentedTabs, SegmentedTabsButton, SegmentedTabsContent, SegmentedTabsList, SegmentedTabsSeparator, SegmentedTabsTrigger, SegmentedTabsTriggerButton, } from './components/SegmentedTabs';
63
- export { Select, SelectButton, SelectClearTrigger, SelectContent, SelectFooter, SelectGroup, SelectGroupLabel, SelectHeader, SelectInput, SelectOption, SelectOptionDescription, SelectOptionIndicator, SelectOptionText, SelectPositioner, SelectSearchInput, SelectSeparator, } from './components/Select';
64
+ export { createListCollection, Select, SelectButton, SelectClearTrigger, SelectContent, type SelectDataItem, SelectFooter, SelectGroup, SelectGroupLabel, SelectHeader, SelectInput, SelectOption, SelectOptionDescription, SelectOptionIndicator, SelectOptionText, SelectPositioner, SelectSearchInput, SelectSeparator, } from './components/Select';
64
65
  export { Selection, SelectionAll, type SelectionAllProps, SelectionBulkBar, type SelectionBulkBarPlacement, type SelectionBulkBarProps, type SelectionContextValue, SelectionItem, type SelectionItemProps, type SelectionProps, useSelectionContext, } from './components/Selection';
65
66
  export { Separator, type SeparatorProps } from './components/Separator';
66
67
  export { Skeleton, type SkeletonProps } from './components/Skeleton';
@@ -82,6 +83,7 @@ export { Tooltip, TooltipContent, type TooltipProps, TooltipTrigger, } from './c
82
83
  export { TopHeader, TopHeaderActions, type TopHeaderActionsProps, TopHeaderLogo, type TopHeaderLogoProps, type TopHeaderProps, } from './components/TopHeader';
83
84
  export { type BeaconStepEffectOptions, beaconStepEffect, Tour, type TourProps, type TourStatusChangeDetails, type TourStepAction, type TourStepChangeDetails, type TourStepChangeDetailsExtended, type TourStepDetails, type TourStepEffectArgs, useTour, type WaitForStepEventOptions, waitForStepEvent, } from './components/Tour';
84
85
  export { Tree, TreeItem, TreeItemContent, type TreeItemContentProps, TreeItemHeader, type TreeItemHeaderProps, type TreeItemProps, type TreeProps, useTreeDepth, useTreeIndent, } from './components/Tree';
86
+ export { TREE_VIEW_INDENT_STEP, TreeView, TreeViewItem, type TreeViewItemProps, type TreeViewProps, } from './components/TreeView';
85
87
  export { UtilityPage, type UtilityPageProps } from './components/UtilityPage';
86
88
  export { WallyIcon, type WallyIconProps, type WallyIconSize, type WallyIconStyle, } from './components/WallyIcon';
87
89
  export { type TestableProps, TestIdProvider, useTestId } from './utils/testId';
package/dist/index.js CHANGED
@@ -26,6 +26,7 @@ import { Flex } from "./components/Flex/index.js";
26
26
  import { FormatDateTime } from "./components/FormatDateTime/index.js";
27
27
  import { Heading } from "./components/Heading/index.js";
28
28
  import { HTTP_METHODS, HTTP_METHOD_COLOR, HttpMethod } from "./components/HttpMethod/index.js";
29
+ import { InlineEdit, InlineEditControl, InlineEditDate, InlineEditDateTime, InlineEditError, InlineEditInput, InlineEditNumber, InlineEditPreview, InlineEditPreviewIcon, InlineEditPreviewValue, InlineEditSelect, InlineEditTextarea, InlineEditTime, toCalendarDateValue, toReactAriaDateValue, useInlineEdit, useInlineEditSubmitMode, withMinuteGranularity } from "./components/InlineEdit/index.js";
29
30
  import { Input } from "./components/Input/index.js";
30
31
  import { InputGroup, InputGroupAddon, InputGroupText } from "./components/InputGroup/index.js";
31
32
  import { OTPInput } from "./components/InputOTP/index.js";
@@ -49,7 +50,7 @@ import { RESPONSE_CODE_COLOR, ResponseCode, getResponseCodeCategory } from "./co
49
50
  import { ScrollArea, ScrollAreaContent, ScrollAreaCorner, ScrollAreaScrollbar, ScrollAreaViewport } from "./components/ScrollArea/index.js";
50
51
  import { SegmentedControl, SegmentedControlButton, SegmentedControlItem, SegmentedControlSeparator } from "./components/SegmentedControl/index.js";
51
52
  import { SegmentedTabs, SegmentedTabsButton, SegmentedTabsContent, SegmentedTabsList, SegmentedTabsSeparator, SegmentedTabsTrigger, SegmentedTabsTriggerButton } from "./components/SegmentedTabs/index.js";
52
- import { Select, SelectButton, SelectClearTrigger, SelectContent, SelectFooter, SelectGroup, SelectGroupLabel, SelectHeader, SelectInput, SelectOption, SelectOptionDescription, SelectOptionIndicator, SelectOptionText, SelectPositioner, SelectSearchInput, SelectSeparator } from "./components/Select/index.js";
53
+ import { Select, SelectButton, SelectClearTrigger, SelectContent, SelectFooter, SelectGroup, SelectGroupLabel, SelectHeader, SelectInput, SelectOption, SelectOptionDescription, SelectOptionIndicator, SelectOptionText, SelectPositioner, SelectSearchInput, SelectSeparator, createListCollection } from "./components/Select/index.js";
53
54
  import { Selection, SelectionAll, SelectionBulkBar, SelectionItem, useSelectionContext } from "./components/Selection/index.js";
54
55
  import { Separator } from "./components/Separator/index.js";
55
56
  import { Skeleton } from "./components/Skeleton/index.js";
@@ -71,7 +72,8 @@ import { Tooltip, TooltipContent, TooltipTrigger } from "./components/Tooltip/in
71
72
  import { TopHeader, TopHeaderActions, TopHeaderLogo } from "./components/TopHeader/index.js";
72
73
  import { Tour, beaconStepEffect, useTour, waitForStepEvent } from "./components/Tour/index.js";
73
74
  import { Tree, TreeItem, TreeItemContent, TreeItemHeader, useTreeDepth, useTreeIndent } from "./components/Tree/index.js";
75
+ import { TREE_VIEW_INDENT_STEP, TreeView, TreeViewItem } from "./components/TreeView/index.js";
74
76
  import { UtilityPage } from "./components/UtilityPage/index.js";
75
77
  import { WallyIcon } from "./components/WallyIcon/index.js";
76
78
  import { TestIdProvider, useTestId } from "./utils/testId.js";
77
- export { Accordion, AccordionActions, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertClose, AlertContent, AlertControls, AlertDescription, AlertIcon, AlertTitle, AnimatedBackground, AppShell, AppShellHeader, AppShellRail, AppShellRemote, Attribute, AttributeActions, AttributeActionsContent, AttributeActionsItem, AttributeActionsTarget, AttributeLabel, AttributeLabelDescription, AttributeLabelInfo, AttributeValue, Badge, Banner, BannerClose, BannerContent, BannerControls, BannerDescription, BannerIcon, BannerLink, BannerTitle, Breadcrumbs, BreadcrumbsEllipsis, BreadcrumbsItem, BreadcrumbsScopeSwitcher, BreadcrumbsSeparator, Button, Calendar, CalendarApplyButton, CalendarBody, CalendarContent, CalendarDate, CalendarDateTime, CalendarDayName, CalendarFooter, CalendarFooterControls, CalendarGrid, CalendarGrids, CalendarHeader, CalendarInputHeader, CalendarKeyboardHints, CalendarPresetItem, CalendarPresets, CalendarProvider, CalendarResetButton, CalendarTrigger, Card, CardContent, CardFooter, CardHeader, CardTitle, Checkbox, CheckboxDescription, CheckboxGroup, CheckboxIndicator, CheckboxLabel, Code, Country, CountryFlag, CountryName, DAY_NAMES, DEFAULT_RANGE_PRESETS, DEFAULT_SINGLE_PRESETS, DateFormatProvider, DateInput, DateRangeEndValue, DateRangeInput, DateRangeProvider, DateRangeSeparator, DateRangeStartValue, Drawer, DrawerBody, DrawerClose, DrawerContent, DrawerFooter, DrawerFooterControls, DrawerHeader, DrawerPositioner, DrawerResizeHandle, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuContent, DropdownMenuContextTrigger, DropdownMenuFooter, DropdownMenuGroup, DropdownMenuInput, DropdownMenuItem, DropdownMenuItemContent, DropdownMenuItemDescription, DropdownMenuItemIcon, DropdownMenuItemText, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuTrigger, DropdownMenuTriggerItem, EmptyState, EmptyStateActions, EmptyStateDescription, EmptyStateIllustration, EmptyStateLink, EmptyStateMessage, EmptyStateTitle, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, FilterInput, FilterInputChip, FilterInputFieldMenu, FilterInputOperatorMenu, Flex, FormatDateTime, HStack, HTTP_METHODS, HTTP_METHOD_COLOR, Heading, HttpMethod, Input, InputGroup, InputGroupAddon, InputGroupText, Ip, IpAddress, IpCountry, IpList, IpPort, IpProvider, Kbd, KbdGroup, Link, Loader, Logo, MONTH_NAMES, NavRail, NavRailBody, NavRailFooter, NavRailItem, NavRailSeparator, NavRailSkeleton, NumberInput, NumericBadge, OTPInput, OverflowTooltip, OverflowTooltipContent, Page, PageActions, PageContent, PageHeader, PageHostProvider, PageTitle, Pagination, PaginationEllipsis, PaginationItem, PaginationList, PaginationNext, PaginationPageSize, PaginationPrevious, ParameterPath, Popover, PopoverContent, PopoverTrigger, Progress, RESPONSE_CODE_COLOR, Radio, RadioDescription, RadioGroup, RadioIndicator, RadioLabel, RemoteShell, RemoteShellBreadcrumb, RemoteShellContent, RemoteShellPanel, ResponseCode, ScrollArea, ScrollAreaContent, ScrollAreaCorner, ScrollAreaScrollbar, ScrollAreaViewport, SegmentedControl, SegmentedControlButton, SegmentedControlItem, SegmentedControlSeparator, SegmentedTabs, SegmentedTabsButton, SegmentedTabsContent, SegmentedTabsList, SegmentedTabsSeparator, SegmentedTabsTrigger, SegmentedTabsTriggerButton, Select, SelectButton, SelectClearTrigger, SelectContent, SelectFooter, SelectGroup, SelectGroupLabel, SelectHeader, SelectInput, SelectOption, SelectOptionDescription, SelectOptionIndicator, SelectOptionText, SelectPositioner, SelectSearchInput, SelectSeparator, Selection, SelectionAll, SelectionBulkBar, SelectionItem, Separator, Skeleton, Slider, SliderControl, SliderInput, SliderMarks, SliderThumb, SliderValue, SplashScreen, SplitButton, Stack, Switch, SwitchControl, SwitchDescription, SwitchLabel, Table, TableActionBar, TableColumnMenu, TableColumnMenuHideItem, TableColumnMenuMoveLeftItem, TableColumnMenuMoveRightItem, TableColumnMenuPinItem, TableColumnMenuSortItem, TableEmptyState, TableSettingsMenu, TableSortTrigger, Tabs, TabsButton, TabsContent, TabsLineActions, TabsList, TabsSeparator, TabsTrigger, Tag, TagClose, TestIdProvider, Text, Textarea, ThemeProvider, Time, TimeInput, Toast, ToastActions, Toaster, ToggleButton, Tooltip, TooltipContent, TooltipTrigger, TopHeader, TopHeaderActions, TopHeaderLogo, Tour, Tree, TreeItem, TreeItemContent, TreeItemHeader, UtilityPage, VStack, WallyIcon, ZonedDateTime, beaconStepEffect, cardVariants, createTableColumnHelper, datacenters, drawerContentVariants, drawerPositionerVariants, findFirstLinkPath, formatAsFilter, getLocalTimeZone, getResponseCodeCategory, parseDate, parseDateTime, parseTime, parseZonedDateTime, proxyTypes, pushPathname, sourceLabels, toaster, today, useCalendarContext, useDateFormat, useDateRangeContext, useDrawerContext, useLocationPathname, usePageHost, usePagination, usePaginationContext, usePaginationSizeContext, useRemoteShellContext, useSelectionContext, useTestId, useTheme, useTour, useTreeDepth, useTreeIndent, waitForStepEvent };
79
+ export { Accordion, AccordionActions, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertClose, AlertContent, AlertControls, AlertDescription, AlertIcon, AlertTitle, AnimatedBackground, AppShell, AppShellHeader, AppShellRail, AppShellRemote, Attribute, AttributeActions, AttributeActionsContent, AttributeActionsItem, AttributeActionsTarget, AttributeLabel, AttributeLabelDescription, AttributeLabelInfo, AttributeValue, Badge, Banner, BannerClose, BannerContent, BannerControls, BannerDescription, BannerIcon, BannerLink, BannerTitle, Breadcrumbs, BreadcrumbsEllipsis, BreadcrumbsItem, BreadcrumbsScopeSwitcher, BreadcrumbsSeparator, Button, Calendar, CalendarApplyButton, CalendarBody, CalendarContent, CalendarDate, CalendarDateTime, CalendarDayName, CalendarFooter, CalendarFooterControls, CalendarGrid, CalendarGrids, CalendarHeader, CalendarInputHeader, CalendarKeyboardHints, CalendarPresetItem, CalendarPresets, CalendarProvider, CalendarResetButton, CalendarTrigger, Card, CardContent, CardFooter, CardHeader, CardTitle, Checkbox, CheckboxDescription, CheckboxGroup, CheckboxIndicator, CheckboxLabel, Code, Country, CountryFlag, CountryName, DAY_NAMES, DEFAULT_RANGE_PRESETS, DEFAULT_SINGLE_PRESETS, DateFormatProvider, DateInput, DateRangeEndValue, DateRangeInput, DateRangeProvider, DateRangeSeparator, DateRangeStartValue, Drawer, DrawerBody, DrawerClose, DrawerContent, DrawerFooter, DrawerFooterControls, DrawerHeader, DrawerPositioner, DrawerResizeHandle, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuContent, DropdownMenuContextTrigger, DropdownMenuFooter, DropdownMenuGroup, DropdownMenuInput, DropdownMenuItem, DropdownMenuItemContent, DropdownMenuItemDescription, DropdownMenuItemIcon, DropdownMenuItemText, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuTrigger, DropdownMenuTriggerItem, EmptyState, EmptyStateActions, EmptyStateDescription, EmptyStateIllustration, EmptyStateLink, EmptyStateMessage, EmptyStateTitle, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, FilterInput, FilterInputChip, FilterInputFieldMenu, FilterInputOperatorMenu, Flex, FormatDateTime, HStack, HTTP_METHODS, HTTP_METHOD_COLOR, Heading, HttpMethod, InlineEdit, InlineEditControl, InlineEditDate, InlineEditDateTime, InlineEditError, InlineEditInput, InlineEditNumber, InlineEditPreview, InlineEditPreviewIcon, InlineEditPreviewValue, InlineEditSelect, InlineEditTextarea, InlineEditTime, Input, InputGroup, InputGroupAddon, InputGroupText, Ip, IpAddress, IpCountry, IpList, IpPort, IpProvider, Kbd, KbdGroup, Link, Loader, Logo, MONTH_NAMES, NavRail, NavRailBody, NavRailFooter, NavRailItem, NavRailSeparator, NavRailSkeleton, NumberInput, NumericBadge, OTPInput, OverflowTooltip, OverflowTooltipContent, Page, PageActions, PageContent, PageHeader, PageHostProvider, PageTitle, Pagination, PaginationEllipsis, PaginationItem, PaginationList, PaginationNext, PaginationPageSize, PaginationPrevious, ParameterPath, Popover, PopoverContent, PopoverTrigger, Progress, RESPONSE_CODE_COLOR, Radio, RadioDescription, RadioGroup, RadioIndicator, RadioLabel, RemoteShell, RemoteShellBreadcrumb, RemoteShellContent, RemoteShellPanel, ResponseCode, ScrollArea, ScrollAreaContent, ScrollAreaCorner, ScrollAreaScrollbar, ScrollAreaViewport, SegmentedControl, SegmentedControlButton, SegmentedControlItem, SegmentedControlSeparator, SegmentedTabs, SegmentedTabsButton, SegmentedTabsContent, SegmentedTabsList, SegmentedTabsSeparator, SegmentedTabsTrigger, SegmentedTabsTriggerButton, Select, SelectButton, SelectClearTrigger, SelectContent, SelectFooter, SelectGroup, SelectGroupLabel, SelectHeader, SelectInput, SelectOption, SelectOptionDescription, SelectOptionIndicator, SelectOptionText, SelectPositioner, SelectSearchInput, SelectSeparator, Selection, SelectionAll, SelectionBulkBar, SelectionItem, Separator, Skeleton, Slider, SliderControl, SliderInput, SliderMarks, SliderThumb, SliderValue, SplashScreen, SplitButton, Stack, Switch, SwitchControl, SwitchDescription, SwitchLabel, TREE_VIEW_INDENT_STEP, Table, TableActionBar, TableColumnMenu, TableColumnMenuHideItem, TableColumnMenuMoveLeftItem, TableColumnMenuMoveRightItem, TableColumnMenuPinItem, TableColumnMenuSortItem, TableEmptyState, TableSettingsMenu, TableSortTrigger, Tabs, TabsButton, TabsContent, TabsLineActions, TabsList, TabsSeparator, TabsTrigger, Tag, TagClose, TestIdProvider, Text, Textarea, ThemeProvider, Time, TimeInput, Toast, ToastActions, Toaster, ToggleButton, Tooltip, TooltipContent, TooltipTrigger, TopHeader, TopHeaderActions, TopHeaderLogo, Tour, Tree, TreeItem, TreeItemContent, TreeItemHeader, TreeView, TreeViewItem, UtilityPage, VStack, WallyIcon, ZonedDateTime, beaconStepEffect, cardVariants, createListCollection, createTableColumnHelper, datacenters, drawerContentVariants, drawerPositionerVariants, findFirstLinkPath, formatAsFilter, getLocalTimeZone, getResponseCodeCategory, parseDate, parseDateTime, parseTime, parseZonedDateTime, proxyTypes, pushPathname, sourceLabels, toCalendarDateValue, toReactAriaDateValue, toaster, today, useCalendarContext, useDateFormat, useDateRangeContext, useDrawerContext, useInlineEdit, useInlineEditSubmitMode, useLocationPathname, usePageHost, usePagination, usePaginationContext, usePaginationSizeContext, useRemoteShellContext, useSelectionContext, useTestId, useTheme, useTour, useTreeDepth, useTreeIndent, waitForStepEvent, withMinuteGranularity };