@republicroad/seal-appshell 1.1.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 (105) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +74 -0
  3. package/dist/assets/custom-node-schema.json.d.ts +549 -0
  4. package/dist/components/__tests__/skinned-decision-graph.test.d.ts +1 -0
  5. package/dist/components/__tests__/skinned-header.test.d.ts +1 -0
  6. package/dist/components/__tests__/skinned-panels.test.d.ts +1 -0
  7. package/dist/components/__tests__/skinned-simulator-panel.test.d.ts +1 -0
  8. package/dist/components/__tests__/skinned-simulator.test.d.ts +1 -0
  9. package/dist/components/custom-node/__tests__/custom-node-button.test.d.ts +1 -0
  10. package/dist/components/custom-node/__tests__/schema-container-tab.test.d.ts +1 -0
  11. package/dist/components/custom-node/crypto-node.d.ts +5 -0
  12. package/dist/components/custom-node/current-date-node.d.ts +8 -0
  13. package/dist/components/custom-node/http-request-node.d.ts +5 -0
  14. package/dist/components/custom-node/key-value-editor.d.ts +16 -0
  15. package/dist/components/custom-node/locked-corner-badge.d.ts +2 -0
  16. package/dist/components/custom-node/query-list-node.d.ts +5 -0
  17. package/dist/components/custom-node/schema-container-tab.d.ts +13 -0
  18. package/dist/components/icons/code.d.ts +3 -0
  19. package/dist/components/icons/flash-circle.d.ts +3 -0
  20. package/dist/components/reui/alert.d.ts +9 -0
  21. package/dist/components/reui/autocomplete.d.ts +40 -0
  22. package/dist/components/reui/badge.d.ts +14 -0
  23. package/dist/components/reui/cascader/cascader-async.d.ts +86 -0
  24. package/dist/components/reui/cascader/cascader-columns.d.ts +26 -0
  25. package/dist/components/reui/cascader/cascader-context.d.ts +190 -0
  26. package/dist/components/reui/cascader/cascader-footer.d.ts +83 -0
  27. package/dist/components/reui/cascader/cascader-i18n.d.ts +13 -0
  28. package/dist/components/reui/cascader/cascader-item.d.ts +112 -0
  29. package/dist/components/reui/cascader/cascader-lib.d.ts +137 -0
  30. package/dist/components/reui/cascader/cascader-nav.d.ts +56 -0
  31. package/dist/components/reui/cascader/cascader-types.d.ts +179 -0
  32. package/dist/components/reui/cascader/cascader-virtual.d.ts +62 -0
  33. package/dist/components/reui/cascader/cascader.d.ts +325 -0
  34. package/dist/components/shell-header.d.ts +20 -0
  35. package/dist/components/skinned-decision-graph.d.ts +19 -0
  36. package/dist/components/ui/alert-dialog.d.ts +20 -0
  37. package/dist/components/ui/avatar.d.ts +5 -0
  38. package/dist/components/ui/badge.d.ts +9 -0
  39. package/dist/components/ui/button.d.ts +11 -0
  40. package/dist/components/ui/dropdown-menu.d.ts +27 -0
  41. package/dist/components/ui/field.d.ts +24 -0
  42. package/dist/components/ui/input.d.ts +3 -0
  43. package/dist/components/ui/label.d.ts +4 -0
  44. package/dist/components/ui/scroll-area.d.ts +4 -0
  45. package/dist/components/ui/select.d.ts +13 -0
  46. package/dist/components/ui/separator.d.ts +3 -0
  47. package/dist/components/ui/sheet.d.ts +23 -0
  48. package/dist/components/ui/sonner.d.ts +5 -0
  49. package/dist/components/ui/spinner.d.ts +2 -0
  50. package/dist/components/ui/switch.d.ts +3 -0
  51. package/dist/components/ui/tabs.d.ts +6 -0
  52. package/dist/components/ui/toggle-group.d.ts +13 -0
  53. package/dist/components/ui/toggle.d.ts +12 -0
  54. package/dist/components/ui/tooltip.d.ts +7 -0
  55. package/dist/components/version-history/__tests__/version-history-panel.test.d.ts +1 -0
  56. package/dist/components/version-history/version-history-panel.d.ts +40 -0
  57. package/dist/context/theme.provider.d.ts +29 -0
  58. package/dist/hooks/useCustomNodes.d.ts +16 -0
  59. package/dist/index.d.ts +24 -0
  60. package/dist/index.js +121959 -0
  61. package/dist/integration/decision-graph-appshell.stories.d.ts +10 -0
  62. package/dist/lib/__tests__/crypto-protocol.test.d.ts +1 -0
  63. package/dist/lib/__tests__/custom-node-registry.test.d.ts +1 -0
  64. package/dist/lib/__tests__/http-request-protocol.test.d.ts +1 -0
  65. package/dist/lib/__tests__/json-path-protocol.test.d.ts +1 -0
  66. package/dist/lib/__tests__/storage-key.test.d.ts +1 -0
  67. package/dist/lib/auth/__tests__/adapter.test.d.ts +1 -0
  68. package/dist/lib/auth/adapter.d.ts +7 -0
  69. package/dist/lib/auth-client.d.ts +3 -0
  70. package/dist/lib/crypto-protocol.d.ts +28 -0
  71. package/dist/lib/custom-node-plans.d.ts +24 -0
  72. package/dist/lib/custom-node-registry.d.ts +13 -0
  73. package/dist/lib/custom-node-schema-source.d.ts +6 -0
  74. package/dist/lib/custom-node-types.d.ts +73 -0
  75. package/dist/lib/http-request-protocol.d.ts +47 -0
  76. package/dist/lib/json-path-protocol.d.ts +11 -0
  77. package/dist/lib/roster-source.d.ts +12 -0
  78. package/dist/lib/storage-key.d.ts +5 -0
  79. package/dist/lib/user-resolver.d.ts +6 -0
  80. package/dist/lib/utils.d.ts +2 -0
  81. package/dist/reui/icons/animated/duotone/lock.d.ts +3 -0
  82. package/dist/reui/icons/animated/outline/play-circle.d.ts +3 -0
  83. package/dist/reui/icons/default/outline/plus-circle.d.ts +3 -0
  84. package/dist/reui/icons/default/outline/shield-search.d.ts +3 -0
  85. package/dist/reui/icons/default/outline/trash-square.d.ts +3 -0
  86. package/dist/setupTests.d.ts +0 -0
  87. package/dist/shell/__tests__/default-simulate.test.d.ts +1 -0
  88. package/dist/shell/__tests__/graphs-http-adapter.test.d.ts +1 -0
  89. package/dist/shell/__tests__/indexed-db-adapter.test.d.ts +0 -0
  90. package/dist/shell/__tests__/restore.test.d.ts +0 -0
  91. package/dist/shell/default-simulate.d.ts +3 -0
  92. package/dist/shell/editor-shell.context.d.ts +22 -0
  93. package/dist/shell/execute-simulate.d.ts +8 -0
  94. package/dist/shell/graphs-http-adapter.d.ts +7 -0
  95. package/dist/shell/index.d.ts +10 -0
  96. package/dist/shell/indexed-db-adapter.d.ts +16 -0
  97. package/dist/shell/persistence.d.ts +89 -0
  98. package/dist/shell/restore.d.ts +21 -0
  99. package/dist/shell/types.d.ts +20 -0
  100. package/dist/skin/__tests__/apply.test.d.ts +1 -0
  101. package/dist/skin/apply.d.ts +7 -0
  102. package/dist/skin/layout.d.ts +17 -0
  103. package/dist/skin/types.d.ts +73 -0
  104. package/dist/style.css +2 -0
  105. package/package.json +73 -0
@@ -0,0 +1,325 @@
1
+ import { Combobox as ComboboxPrimitive } from '@base-ui/react';
2
+ import { useRender } from '@base-ui/react/use-render';
3
+ import { CascaderGetChildren, CascaderOnSearch, CascaderResolveValue } from '../../../components/reui/cascader/cascader-async';
4
+ import { createCascaderHighlightStore, useCascaderActions, useCascaderHighlight, useCascaderRender, useCascaderState, CascaderActionsContextValue, CascaderColumn, CascaderHighlight, CascaderHighlightStore, CascaderItemState, CascaderRenderContextValue, CascaderStateContextValue } from '../../../components/reui/cascader/cascader-context';
5
+ import { CascaderCheckedStrategy } from '../../../components/reui/cascader/cascader-lib';
6
+ import { CascaderActionItem, CascaderChangeDetails, CascaderLabels, CascaderMode, CascaderNode, CascaderSearchScope, CascaderSelectable } from '../../../components/reui/cascader/cascader-types';
7
+ import * as React from 'react';
8
+ /** The pre-split shape, merged, so `useCascader()` returns what it always did. */
9
+ export interface CascaderContextValue<T = unknown> extends CascaderActionsContextValue<T>, CascaderStateContextValue<T> {
10
+ }
11
+ /**
12
+ * The cascader's internals, typed for the caller's own item payload.
13
+ * @deprecated Reads BOTH halves, so a caller re-renders on every keystroke.
14
+ * Prefer `useCascaderActions()` or `useCascaderState()`. Kept for compat.
15
+ */
16
+ export declare function useCascader<T = unknown>(): CascaderContextValue<T>;
17
+ export interface CascaderSelection<T = unknown> {
18
+ /** The selected nodes, resolved. Empty when nothing is selected. */
19
+ selected: CascaderNode<T>[];
20
+ /** Ancestor chain per selected node, root first, node last. */
21
+ paths: CascaderNode<T>[][];
22
+ /** The single selection, or the first one in `multiple` mode. */
23
+ first: CascaderNode<T> | null;
24
+ /** Ancestor chain of `first`. */
25
+ firstPath: CascaderNode<T>[];
26
+ count: number;
27
+ isEmpty: boolean;
28
+ multiple: boolean;
29
+ remove: (value: string) => void;
30
+ clear: () => void;
31
+ }
32
+ /** Headless access to the selection, for a trigger that is not
33
+ * `CascaderValue`. Pass the payload explicitly to get `node.data` typed. */
34
+ export declare function useCascaderSelection<T = unknown>(): CascaderSelection<T>;
35
+ /**
36
+ * Why the navigation path changed.
37
+ * - `"drill"`: a branch was entered (row press, level arrow, deep-search hit).
38
+ * - `"back"`: one level up (back control, Backspace on an empty query).
39
+ * - `"breadcrumb"`: a jump to an exact depth in the trail.
40
+ * - `"reveal"`: the reopen navigated to the level holding the selection.
41
+ * - `"external"`: `setPath` called from outside the primitive's own flows.
42
+ */
43
+ export type CascaderPathChangeReason = 'drill' | 'back' | 'breadcrumb' | 'reveal' | 'external';
44
+ /** Everything independent of the selection mode; the rest is on the two arms. */
45
+ export interface CascaderBaseProps<T = unknown> {
46
+ /** Nested tree, or a flat list when `getParent` is supplied. */
47
+ items: CascaderNode<T>[];
48
+ /** Opt in to flat adjacency input by returning each node's parent value. */
49
+ getParent?: (node: CascaderNode<T>) => string | null | undefined;
50
+ /**
51
+ * Fetches one level on demand; `node` is `null` for the root. Return an
52
+ * array, or a `CascaderLoadResult` when the level pages. Pages cache apart
53
+ * from `items`; mark unfetched branches `hasChildren` or they read as leaves.
54
+ */
55
+ getChildren?: CascaderGetChildren<T>;
56
+ /**
57
+ * Server-side search, debounced by `searchDebounce`; replaces the local scan
58
+ * while the query is set. Results are detached: resolvable by value, in no
59
+ * level. Ignored in `mode="tree"`, where a hit belongs to no visible branch.
60
+ */
61
+ onSearch?: CascaderOnSearch<T>;
62
+ /** Milliseconds of quiet before `onSearch` fires. */
63
+ searchDebounce?: number;
64
+ /**
65
+ * Resolves a value the loader has never seen into its ancestor chain, root
66
+ * first, so the trigger can path a server-supplied selection. Does NOT mark
67
+ * those levels loaded: opening one still fetches.
68
+ */
69
+ resolveValue?: CascaderResolveValue<T>;
70
+ /** Cache key. Changing it drops every page and aborts anything in flight. */
71
+ loadKey?: unknown;
72
+ /** Prefetch a highlighted branch's children after a pause. Off by default. */
73
+ prefetch?: boolean;
74
+ /**
75
+ * Called when a load fails. `context.parent` is the level (`null` for root);
76
+ * `context.reason` is `"level"`, `"more"`, `"retry"`, `"prefetch"`,
77
+ * `"search"` or `"resolve"`. Never for an aborted or superseded request.
78
+ */
79
+ onLoadError?: (error: unknown, context: {
80
+ parent: string | null;
81
+ reason: string;
82
+ }) => void;
83
+ /** Which nodes may be committed. Defaults to leaves only. */
84
+ selectable?: CascaderSelectable<T>;
85
+ /**
86
+ * Whether the built-in SINGLE-SELECT check is drawn. Defaults to true.
87
+ * `false` also gives back the inline-end gutter every style reserves for it;
88
+ * `data-selected` and `aria-selected` stay. A no-op under `multiple`, where
89
+ * the checkbox is the selection CONTROL rather than a decoration.
90
+ */
91
+ indicator?: boolean;
92
+ /**
93
+ * Footer ACTIONS: commands pinned below the list, never rows in it, and never
94
+ * touching the data tree. A childless `<CascaderFooter />` draws these; an
95
+ * action with `items` opens a side-anchored flyout rather than firing.
96
+ */
97
+ actions?: CascaderActionItem[];
98
+ /**
99
+ * Parent/child cascading. Multi-select only, off by default, and it needs
100
+ * committable branches (`selectable="any"` or a predicate). A commit selects
101
+ * or deselects every SELECTABLE node in the LOADED subtree and reconciles
102
+ * ancestors. LOADED is the semantic, not a hedge: a commit must not fan out
103
+ * into a request per level, so children arriving later arrive unchecked.
104
+ */
105
+ cascade?: boolean;
106
+ mode?: CascaderMode;
107
+ /** How a branch opens from the pointer in columns mode's ACTIVE column.
108
+ * `"click"` is the default, and neither value ever commits a selection. */
109
+ expandTrigger?: 'click' | 'hover';
110
+ path?: string[];
111
+ defaultPath?: string[];
112
+ /** The second argument says WHY. An existing `(path) => void` still works. */
113
+ onPathChange?: (path: string[], details: {
114
+ reason: CascaderPathChangeReason;
115
+ }) => void;
116
+ expanded?: string[];
117
+ defaultExpanded?: string[];
118
+ onExpandedChange?: (expanded: string[]) => void;
119
+ open?: boolean;
120
+ defaultOpen?: boolean;
121
+ /** Forwards Base UI's reason; a leaf commit's close says `"item-press"`. */
122
+ onOpenChange?: (open: boolean, details: {
123
+ reason: string;
124
+ }) => void;
125
+ /**
126
+ * Whether a SINGLE-SELECT leaf commit closes the popup. Defaults to true.
127
+ * `false` is for a compare-and-repick flow; Escape, outside press and the
128
+ * trigger still close. Ignored under `multiple`, which never closes.
129
+ */
130
+ closeOnSelect?: boolean;
131
+ inputValue?: string;
132
+ defaultInputValue?: string;
133
+ onInputValueChange?: (value: string) => void;
134
+ searchScope?: CascaderSearchScope;
135
+ /** Custom matcher, replacing label + keywords substring matching. */
136
+ filter?: (node: CascaderNode<T>, normalizedQuery: string) => boolean;
137
+ /** On open, navigate to the level holding the selection. Default true. */
138
+ revealSelected?: boolean;
139
+ maxHeight?: number | string;
140
+ /**
141
+ * Window the rendered rows. `undefined` decides per level from
142
+ * `virtualizeThreshold`; `true`/`false` force it. Also opt-in at the markup
143
+ * level, so the base install pulls in no virtualization library.
144
+ */
145
+ virtualize?: boolean;
146
+ /** Row count at which windowing turns itself on. */
147
+ virtualizeThreshold?: number;
148
+ /** Row height handed to the virtualizer before a row has been measured. */
149
+ estimateRowSize?: number;
150
+ /** Rows rendered beyond each edge of the viewport. */
151
+ overscan?: number;
152
+ labels?: Partial<CascaderLabels>;
153
+ /** Replaces the entire row, affordances included. */
154
+ renderItem?: (node: CascaderNode<T>, state: CascaderItemState<T>) => React.ReactNode;
155
+ /** Replaces only the label block; icon, count, chevron and check stay. */
156
+ renderLabel?: (node: CascaderNode<T>, state: CascaderItemState<T>) => React.ReactNode;
157
+ disabled?: boolean;
158
+ /** Native form field name. Submits the selected value(s). */
159
+ name?: string;
160
+ /** Id of the owning form, for a cascader rendered outside it. */
161
+ form?: string;
162
+ /** Id of the control. Pairs the field with a `<label htmlFor>`. */
163
+ id?: string;
164
+ /** Marks the field required for native form validation. */
165
+ required?: boolean;
166
+ /** The value can be read and submitted, but not changed. */
167
+ readOnly?: boolean;
168
+ /** Marks the field invalid: `aria-invalid` and `data-invalid` on the trigger,
169
+ * the chips and the input, which every style's error treatment reads. */
170
+ invalid?: boolean;
171
+ /** Ref to the hidden input Base UI submits with, for form-library focus. */
172
+ inputRef?: React.Ref<HTMLInputElement>;
173
+ /** Renders without a floating popup, for an embedded `CascaderPanel`. */
174
+ inline?: boolean;
175
+ children?: React.ReactNode;
176
+ }
177
+ export interface CascaderSingleProps<T = unknown> extends CascaderBaseProps<T> {
178
+ multiple?: false;
179
+ value?: string;
180
+ defaultValue?: string;
181
+ onValueChange?: (value: string, details: CascaderChangeDetails<T>) => void;
182
+ /** `never` so passing it is a compile error, not a silent no-op. */
183
+ max?: never;
184
+ }
185
+ /** Multi-select props. Enables checkbox rows and chip display. */
186
+ export interface CascaderMultipleProps<T = unknown> extends CascaderBaseProps<T> {
187
+ multiple: true;
188
+ value?: string[];
189
+ defaultValue?: string[];
190
+ onValueChange?: (value: string[], details: CascaderChangeDetails<T>) => void;
191
+ /** Cap on selections. Further picks are refused, the existing ones survive. */
192
+ max?: number;
193
+ }
194
+ /** `multiple` discriminates: `value`, `onValueChange` and `max` narrow with it. */
195
+ export type CascaderProps<T = unknown> = CascaderSingleProps<T> | CascaderMultipleProps<T>;
196
+ /** No default on `T`: inferred from `items`, so `node.data` arrives typed. */
197
+ declare function Cascader<T>({ items, getParent, getChildren, onSearch, searchDebounce, resolveValue, loadKey, prefetch, onLoadError, value: valueProp, defaultValue, onValueChange: onValueChangeProp, multiple, selectable, indicator, actions, cascade, max, mode, expandTrigger, path: pathProp, defaultPath, onPathChange, expanded: expandedProp, defaultExpanded, onExpandedChange, open: openProp, defaultOpen, onOpenChange, closeOnSelect, inputValue: inputValueProp, defaultInputValue, onInputValueChange, searchScope, filter, revealSelected, maxHeight, virtualize, virtualizeThreshold, estimateRowSize, overscan, labels: labelsProp, renderItem, renderLabel, disabled, name, form, id, required, readOnly, invalid, inputRef, inline, children, }: CascaderProps<T>): React.JSX.Element;
198
+ /** `Trigger.Props` stops short of `ref`, so it is intersected in, as the
199
+ * shadcn combobox wrapper also does: a form library needs a ref here, and
200
+ * `onBlur`, the "touched" signal, lands here too. */
201
+ export interface CascaderTriggerProps extends ComboboxPrimitive.Trigger.Props, Pick<React.ComponentPropsWithRef<'button'>, 'ref'> {
202
+ /** Hides the trailing chevron, for a trigger that supplies its own. */
203
+ showIcon?: boolean;
204
+ }
205
+ declare function CascaderTrigger({ className, children, showIcon, ref, ...props }: CascaderTriggerProps): React.JSX.Element;
206
+ /** Ref for the chips container: they replace the trigger, so the popup has to
207
+ * be anchored to them. Hand it to `CascaderContent`'s `anchor`. */
208
+ export declare function useCascaderAnchor(): React.MutableRefObject<HTMLDivElement | null>;
209
+ export interface CascaderChipsProps extends Omit<ComboboxPrimitive.Chips.Props, 'children'>, Pick<React.ComponentPropsWithRef<'div'>, 'ref'> {
210
+ /** Shown in place of the chips when nothing is selected. */
211
+ placeholder?: React.ReactNode;
212
+ /**
213
+ * How a `cascade` selection is condensed into chips. DISPLAY ONLY: the
214
+ * stored value stays the full closure, which keeps a row's checked state an
215
+ * O(1) lookup. `"all"` (default) is one chip per value, `"parent"` collapses
216
+ * a fully selected branch, `"child"` chips only the deepest frontier.
217
+ * Removing a condensed chip removes its whole closure and reconciles.
218
+ */
219
+ strategy?: CascaderCheckedStrategy;
220
+ /** Replaces the chip list, receiving the resolved selection IN SELECTION
221
+ * ORDER. Keep that order: Base UI removes a chip by sibling position. */
222
+ children?: React.ReactNode | ((nodes: CascaderNode[]) => React.ReactNode);
223
+ }
224
+ /**
225
+ * The multi-select trigger surface: one removable chip per selection, where
226
+ * `CascaderValue` would collapse to "3 selected". A component rather than a
227
+ * recipe because of three easy misses: the popup anchored to the chips, an
228
+ * accessible name on every remove button, and labels that disambiguate when
229
+ * two branches use the same one.
230
+ *
231
+ * ```tsx
232
+ * const anchor = useCascaderAnchor()
233
+ * <Cascader multiple items={items}>
234
+ * <CascaderChips ref={anchor} placeholder="Select attributes" />
235
+ * <CascaderContent anchor={anchor}>...</CascaderContent>
236
+ * </Cascader>
237
+ * ```
238
+ */
239
+ declare function CascaderChips({ className, children, placeholder, strategy, ...props }: CascaderChipsProps): React.JSX.Element;
240
+ export interface CascaderChipProps extends Omit<ComboboxPrimitive.Chip.Props, 'children'> {
241
+ node: CascaderNode;
242
+ /** Prefix the label with its ancestor trail. */
243
+ showPath?: boolean;
244
+ /** Trail segments to show, the node itself included. */
245
+ maxSegments?: number;
246
+ /** Hides the remove button, for a read-only chip. */
247
+ showRemove?: boolean;
248
+ /** Replaces Base UI's positional removal for this chip (remove button and
249
+ * Backspace/Delete). Supplied for a `strategy`-condensed chip, whose
250
+ * position no longer maps onto the stored array. */
251
+ onRemove?: () => void;
252
+ /** Replaces the chip's label. The remove button is still rendered. */
253
+ children?: React.ReactNode;
254
+ }
255
+ /** One chip. Removal goes through Base UI's `ChipRemove`, which reports the
256
+ * shortened selection to the root, so it lands in the same `setSelection` as
257
+ * every other deselection and `cascade` applies to it. */
258
+ declare function CascaderChip({ className, node, showPath, maxSegments, showRemove, onRemove, children, ...props }: CascaderChipProps): React.JSX.Element;
259
+ export interface CascaderContentProps extends ComboboxPrimitive.Popup.Props,
260
+ /** Positioner surface forwarded as-is, so an unusual anchor does not force
261
+ * a rebuild of the content stack. No `trackAnchor`: Base UI 1.5.0 has
262
+ * none. */
263
+ Pick<ComboboxPrimitive.Positioner.Props, 'side' | 'align' | 'sideOffset' | 'alignOffset' | 'anchor' | 'collisionBoundary' | 'collisionPadding' | 'sticky' | 'positionMethod'>,
264
+ /** Where the portal mounts, for a shadow root or a scoped stacking context. */
265
+ Pick<ComboboxPrimitive.Portal.Props, 'container'> {
266
+ }
267
+ /** Portal + Positioner + floating panel. Unlike shadcn's `ComboboxContent` it
268
+ * does NOT clamp the popup to the anchor width (a cascader panel is routinely
269
+ * wider), but it keeps `group/combobox-content`, which `CascaderEmpty` needs. */
270
+ declare function CascaderContent({ className, side, sideOffset, align, alignOffset, anchor, collisionBoundary, collisionPadding, sticky, positionMethod, container, ref, ...props }: CascaderContentProps): React.JSX.Element;
271
+ export type CascaderPanelProps = useRender.ComponentProps<'div'>;
272
+ /**
273
+ * The nav + list(s) + footer container, with no positioning of its own: inside
274
+ * `CascaderContent` for the popup case, alone for the embedded one.
275
+ *
276
+ * `min-h-0` and `max-h-full` are load-bearing. A flex child without `min-h-0`
277
+ * refuses to shrink below its content, which is the usual reason a scroll area
278
+ * never scrolls - worst embedded, where no positioner publishes
279
+ * `--available-height`. It also owns the panel's TAB ORDER: the scroll area
280
+ * makes itself a tab stop whenever the level overflows, stranding the footer,
281
+ * and the panel is the only ancestor of both ends of that move in BOTH shapes.
282
+ */
283
+ declare function CascaderPanel({ className, ...props }: CascaderPanelProps): React.ReactElement<any, string | React.JSXElementConstructor<any>>;
284
+ export interface CascaderListProps extends Omit<ComboboxPrimitive.List.Props, 'style'> {
285
+ /** Applied to the OUTER shell, which owns the height, so an inline
286
+ * `--cascader-max-height` lands where the bound can read it. Narrowed from
287
+ * Base UI's `style`: the shell is a plain `<div>` with no list state. */
288
+ style?: React.CSSProperties;
289
+ /** Caps this level's height; the panel still shrinks to fit. Default 24rem. */
290
+ maxHeight?: number | string;
291
+ }
292
+ /**
293
+ * Scroll container for one level: pattern 3 of the house scroll reference,
294
+ * viewport-bounded popup scroll. The height is `min()` of `--available-height`
295
+ * (the positioner's space between anchor and viewport edge) and `maxHeight`,
296
+ * so neither can be ignored; a fixed pixel cap alone still reserved 288px for
297
+ * a panel opened 200px above the fold and spilled off screen, and wasted room
298
+ * in a tall window. The four classes are shared with `CascaderColumns` and
299
+ * live in `cascader-lib.tsx`.
300
+ */
301
+ declare function CascaderList({ className, style, maxHeight: maxHeightProp, ...props }: CascaderListProps): React.JSX.Element;
302
+ export interface CascaderEmptyProps extends ComboboxPrimitive.Empty.Props {
303
+ /** @deprecated Ignored: the loading surface no longer draws skeletons. They
304
+ * promised a shape the level might not have and cost a second layout; the
305
+ * progress lives on the branch row instead. Kept so call sites compile. */
306
+ skeletonRows?: number;
307
+ }
308
+ /** The empty, loading and error surface, in ONE element that never unmounts.
309
+ * `Combobox.Empty` renders whenever `filteredItems.length === 0`, as true of a
310
+ * fetching level as of an empty one, so swapping siblings would announce "No
311
+ * results found." over every async level. Swap the CHILDREN. */
312
+ declare function CascaderEmpty({ className, children, skeletonRows, ...props }: CascaderEmptyProps): React.JSX.Element;
313
+ export type CascaderStatusProps = ComboboxPrimitive.Status.Props;
314
+ /**
315
+ * Polite live region for the current level and result count, which drill-down
316
+ * otherwise hides in a visual breadcrumb. Built on `Combobox.Status` for its
317
+ * initial-mutation marker: Safari and VoiceOver need a text change ~200ms
318
+ * after mount before reading a polite region at all.
319
+ */
320
+ declare function CascaderStatus({ className, children, ...props }: CascaderStatusProps): React.JSX.Element;
321
+ export { Cascader, CascaderTrigger, CascaderChip, CascaderChips, CascaderContent, CascaderPanel, CascaderList, CascaderEmpty, CascaderStatus, };
322
+ /** Re-exported from `cascader-context.tsx`: existing import paths keep
323
+ * working, and the row component avoids an import cycle through this file. */
324
+ export { createCascaderHighlightStore, useCascaderActions, useCascaderHighlight, useCascaderRender, useCascaderState };
325
+ export type { CascaderActionsContextValue, CascaderColumn, CascaderHighlight, CascaderHighlightStore, CascaderItemState, CascaderRenderContextValue, CascaderStateContextValue, };
@@ -0,0 +1,20 @@
1
+ import { DecisionGraphRef, DecisionGraphType } from '@republicroad/seal-editor';
2
+ import { default as React } from 'react';
3
+ export type ShellHeaderProps = {
4
+ /** 注入槽位的图文档(SkinnedDecisionGraph 自动传入;独立使用时由宿主提供) */
5
+ graph?: DecisionGraphType;
6
+ disabled?: boolean;
7
+ /**
8
+ * 决策图引用:ref 对象(`useRef` 产物,内部自动解包为当前句柄)或句柄本身;
9
+ * null = 尚未挂载。
10
+ */
11
+ graphRef?: DecisionGraphRef | React.RefObject<DecisionGraphRef | null> | null;
12
+ className?: string;
13
+ };
14
+ /**
15
+ * 皮肤头部(S005 P3):渲染 activeSkin.layout.header 的 left/right 槽位——
16
+ * 左侧标题/环境标识、右侧状态徽标/操作,均注入 SkinSlotContext。
17
+ * kernel 保持无 header(页面骨架属宿主,规格稿 §10-3 宿主裁决);
18
+ * 无槽位时返回 null,宿主页面层头部不受影响。
19
+ */
20
+ export declare const ShellHeader: React.FC<ShellHeaderProps>;
@@ -0,0 +1,19 @@
1
+ import { DecisionGraphProps, DecisionGraphRef } from '@republicroad/seal-editor';
2
+ import { default as React } from 'react';
3
+ import { SimulateHandler } from '../shell/types';
4
+ export type SkinnedDecisionGraphProps = DecisionGraphProps & {
5
+ /**
6
+ * 传入后自动注册左侧栏 simulator 面板(kernel GraphSimulator:输入 JSON →
7
+ * Run → 画布命中高亮 + Output/Trace),onRun 经由此 handler 调执行引擎。
8
+ * 不传则与直接渲染 `<DecisionGraph>` 行为完全一致。
9
+ */
10
+ simulateHandler?: SimulateHandler;
11
+ };
12
+ /**
13
+ * 皮肤感知的 DecisionGraph(S005 P1):读取 activeSkin.layout 把工具栏槽位
14
+ * 映射为 kernel `toolbarItems`(追加在宿主自有项之后),其余 props 全透传。
15
+ *
16
+ * - 无皮肤 / 皮肤无 layout → 与直接渲染 `<DecisionGraph>` 行为完全一致
17
+ * - ctx.graph 随受控 value 更新;graphRef 惰性挂载(挂载后首次重渲染时注入)
18
+ */
19
+ export declare const SkinnedDecisionGraph: React.ForwardRefExoticComponent<SkinnedDecisionGraphProps & React.RefAttributes<DecisionGraphRef>>;
@@ -0,0 +1,20 @@
1
+ import { AlertDialog as AlertDialogPrimitive } from '@base-ui/react/alert-dialog';
2
+ import * as React from 'react';
3
+ declare const AlertDialog: typeof AlertDialogPrimitive.Root;
4
+ declare const AlertDialogTrigger: AlertDialogPrimitive.Trigger;
5
+ declare const AlertDialogPortal: React.ForwardRefExoticComponent<Omit<import('@base-ui/react').AlertDialogPortalProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
6
+ declare const AlertDialogOverlay: React.ForwardRefExoticComponent<Omit<Omit<import('@base-ui/react').AlertDialogBackdropProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
7
+ declare const AlertDialogContent: React.ForwardRefExoticComponent<Omit<Omit<import('@base-ui/react').AlertDialogPopupProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
8
+ declare const AlertDialogHeader: {
9
+ ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): React.JSX.Element;
10
+ displayName: string;
11
+ };
12
+ declare const AlertDialogFooter: {
13
+ ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): React.JSX.Element;
14
+ displayName: string;
15
+ };
16
+ declare const AlertDialogTitle: React.ForwardRefExoticComponent<Omit<Omit<import('@base-ui/react').AlertDialogTitleProps, "ref"> & React.RefAttributes<HTMLHeadingElement>, "ref"> & React.RefAttributes<HTMLHeadingElement>>;
17
+ declare const AlertDialogDescription: React.ForwardRefExoticComponent<Omit<Omit<import('@base-ui/react').AlertDialogDescriptionProps, "ref"> & React.RefAttributes<HTMLParagraphElement>, "ref"> & React.RefAttributes<HTMLParagraphElement>>;
18
+ declare const AlertDialogAction: React.ForwardRefExoticComponent<Omit<import('../../components/ui/button').ButtonProps & React.RefAttributes<HTMLElement>, "ref"> & React.RefAttributes<HTMLElement>>;
19
+ declare const AlertDialogCancel: React.ForwardRefExoticComponent<Omit<import('../../components/ui/button').ButtonProps & React.RefAttributes<HTMLElement>, "ref"> & React.RefAttributes<HTMLElement>>;
20
+ export { AlertDialog, AlertDialogPortal, AlertDialogOverlay, AlertDialogTrigger, AlertDialogContent, AlertDialogHeader, AlertDialogFooter, AlertDialogTitle, AlertDialogDescription, AlertDialogAction, AlertDialogCancel, };
@@ -0,0 +1,5 @@
1
+ import * as React from 'react';
2
+ declare const Avatar: React.ForwardRefExoticComponent<Omit<Omit<import('@base-ui/react').AvatarRootProps, "ref"> & React.RefAttributes<HTMLSpanElement>, "ref"> & React.RefAttributes<HTMLSpanElement>>;
3
+ declare const AvatarImage: React.ForwardRefExoticComponent<Omit<Omit<import('@base-ui/react').AvatarImageProps, "ref"> & React.RefAttributes<HTMLImageElement>, "ref"> & React.RefAttributes<HTMLImageElement>>;
4
+ declare const AvatarFallback: React.ForwardRefExoticComponent<Omit<Omit<import('@base-ui/react').AvatarFallbackProps, "ref"> & React.RefAttributes<HTMLSpanElement>, "ref"> & React.RefAttributes<HTMLSpanElement>>;
5
+ export { Avatar, AvatarImage, AvatarFallback };
@@ -0,0 +1,9 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ import * as React from 'react';
3
+ declare const badgeVariants: (props?: ({
4
+ variant?: "default" | "destructive" | "outline" | "secondary" | null | undefined;
5
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
6
+ export interface BadgeProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> {
7
+ }
8
+ declare function Badge({ className, variant, ...props }: BadgeProps): React.JSX.Element;
9
+ export { Badge, badgeVariants };
@@ -0,0 +1,11 @@
1
+ import { Button as ButtonPrimitive } from '@base-ui/react/button';
2
+ import { VariantProps } from 'class-variance-authority';
3
+ import * as React from 'react';
4
+ declare const buttonVariants: (props?: ({
5
+ variant?: "default" | "link" | "destructive" | "outline" | "secondary" | "ghost" | null | undefined;
6
+ size?: "default" | "icon" | "sm" | "lg" | null | undefined;
7
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
8
+ export interface ButtonProps extends React.ComponentPropsWithoutRef<typeof ButtonPrimitive>, VariantProps<typeof buttonVariants> {
9
+ }
10
+ declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLElement>>;
11
+ export { Button, buttonVariants };
@@ -0,0 +1,27 @@
1
+ import { Menu as MenuPrimitive } from '@base-ui/react/menu';
2
+ import * as React from 'react';
3
+ declare const DropdownMenu: <Payload>(props: MenuPrimitive.Root.Props<Payload>) => React.JSX.Element;
4
+ declare const DropdownMenuTrigger: MenuPrimitive.Trigger;
5
+ declare const DropdownMenuGroup: React.ForwardRefExoticComponent<Omit<import('@base-ui/react').ContextMenuGroupProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
6
+ declare const DropdownMenuPortal: React.ForwardRefExoticComponent<Omit<import('@base-ui/react').ContextMenuPortalProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
7
+ declare const DropdownMenuSub: typeof MenuPrimitive.SubmenuRoot;
8
+ declare const DropdownMenuRadioGroup: React.NamedExoticComponent<Omit<import('@base-ui/react').ContextMenuRadioGroupProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
9
+ declare const DropdownMenuSubTrigger: React.ForwardRefExoticComponent<Omit<Omit<import('@base-ui/react').ContextMenuSubmenuTriggerProps, "ref"> & React.RefAttributes<HTMLElement>, "ref"> & {
10
+ inset?: boolean;
11
+ } & React.RefAttributes<HTMLElement>>;
12
+ declare const DropdownMenuSubContent: React.ForwardRefExoticComponent<Omit<Omit<import('@base-ui/react').ContextMenuPopupProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & Pick<import('@base-ui/react').MenuPositionerProps, "side" | "sideOffset" | "align" | "alignOffset"> & React.RefAttributes<HTMLDivElement>>;
13
+ declare const DropdownMenuContent: React.ForwardRefExoticComponent<Omit<Omit<import('@base-ui/react').ContextMenuPopupProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & Pick<import('@base-ui/react').MenuPositionerProps, "side" | "sideOffset" | "align" | "alignOffset"> & React.RefAttributes<HTMLDivElement>>;
14
+ declare const DropdownMenuItem: React.ForwardRefExoticComponent<Omit<Omit<import('@base-ui/react').ContextMenuItemProps, "ref"> & React.RefAttributes<HTMLElement>, "ref"> & {
15
+ inset?: boolean;
16
+ } & React.RefAttributes<HTMLElement>>;
17
+ declare const DropdownMenuCheckboxItem: React.ForwardRefExoticComponent<Omit<Omit<import('@base-ui/react').ContextMenuCheckboxItemProps, "ref"> & React.RefAttributes<HTMLElement>, "ref"> & React.RefAttributes<HTMLElement>>;
18
+ declare const DropdownMenuRadioItem: React.ForwardRefExoticComponent<Omit<Omit<import('@base-ui/react').ContextMenuRadioItemProps, "ref"> & React.RefAttributes<HTMLElement>, "ref"> & React.RefAttributes<HTMLElement>>;
19
+ declare const DropdownMenuLabel: React.ForwardRefExoticComponent<Omit<Omit<import('@base-ui/react').ContextMenuGroupLabelProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & {
20
+ inset?: boolean;
21
+ } & React.RefAttributes<HTMLDivElement>>;
22
+ declare const DropdownMenuSeparator: React.ForwardRefExoticComponent<Omit<Omit<import('@base-ui/react').SeparatorProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
23
+ declare const DropdownMenuShortcut: {
24
+ ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>): React.JSX.Element;
25
+ displayName: string;
26
+ };
27
+ export { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, DropdownMenuCheckboxItem, DropdownMenuRadioItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuGroup, DropdownMenuPortal, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuRadioGroup, };
@@ -0,0 +1,24 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ import { Label } from '../../components/ui/label';
3
+ declare function FieldSet({ className, ...props }: React.ComponentProps<'fieldset'>): import('react').JSX.Element;
4
+ declare function FieldLegend({ className, variant, ...props }: React.ComponentProps<'legend'> & {
5
+ variant?: 'legend' | 'label';
6
+ }): import('react').JSX.Element;
7
+ declare function FieldGroup({ className, ...props }: React.ComponentProps<'div'>): import('react').JSX.Element;
8
+ declare const fieldVariants: (props?: ({
9
+ orientation?: "horizontal" | "vertical" | "responsive" | null | undefined;
10
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
11
+ declare function Field({ className, orientation, ...props }: React.ComponentProps<'div'> & VariantProps<typeof fieldVariants>): import('react').JSX.Element;
12
+ declare function FieldContent({ className, ...props }: React.ComponentProps<'div'>): import('react').JSX.Element;
13
+ declare function FieldLabel({ className, ...props }: React.ComponentProps<typeof Label>): import('react').JSX.Element;
14
+ declare function FieldTitle({ className, ...props }: React.ComponentProps<'div'>): import('react').JSX.Element;
15
+ declare function FieldDescription({ className, ...props }: React.ComponentProps<'p'>): import('react').JSX.Element;
16
+ declare function FieldSeparator({ children, className, ...props }: React.ComponentProps<'div'> & {
17
+ children?: React.ReactNode;
18
+ }): import('react').JSX.Element;
19
+ declare function FieldError({ className, children, errors, ...props }: React.ComponentProps<'div'> & {
20
+ errors?: Array<{
21
+ message?: string;
22
+ } | undefined>;
23
+ }): import('react').JSX.Element | null;
24
+ export { Field, FieldLabel, FieldDescription, FieldError, FieldGroup, FieldLegend, FieldSeparator, FieldSet, FieldContent, FieldTitle, };
@@ -0,0 +1,3 @@
1
+ import * as React from 'react';
2
+ declare const Input: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "ref"> & React.RefAttributes<HTMLInputElement>>;
3
+ export { Input };
@@ -0,0 +1,4 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ import * as React from 'react';
3
+ declare const Label: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.LabelHTMLAttributes<HTMLLabelElement>, HTMLLabelElement>, "ref"> & VariantProps<(props?: import('class-variance-authority/types').ClassProp | undefined) => string> & React.RefAttributes<HTMLLabelElement>>;
4
+ export { Label };
@@ -0,0 +1,4 @@
1
+ import * as React from 'react';
2
+ declare const ScrollArea: React.ForwardRefExoticComponent<Omit<Omit<import('@base-ui/react').ScrollAreaRootProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
3
+ declare const ScrollBar: React.ForwardRefExoticComponent<Omit<Omit<import('@base-ui/react').ScrollAreaScrollbarProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
4
+ export { ScrollArea, ScrollBar };
@@ -0,0 +1,13 @@
1
+ import { Select as SelectPrimitive } from '@base-ui/react/select';
2
+ import * as React from 'react';
3
+ declare const Select: typeof SelectPrimitive.Root;
4
+ declare const SelectGroup: React.ForwardRefExoticComponent<Omit<import('@base-ui/react').SelectGroupProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
5
+ declare const SelectValue: React.ForwardRefExoticComponent<Omit<import('@base-ui/react').SelectValueProps, "ref"> & React.RefAttributes<HTMLSpanElement>>;
6
+ declare const SelectTrigger: React.ForwardRefExoticComponent<Omit<Omit<import('@base-ui/react').SelectTriggerProps, "ref"> & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
7
+ declare const SelectScrollUpButton: React.ForwardRefExoticComponent<Omit<Omit<import('@base-ui/react').SelectScrollUpArrowProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
8
+ declare const SelectScrollDownButton: React.ForwardRefExoticComponent<Omit<Omit<import('@base-ui/react').SelectScrollDownArrowProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
9
+ declare const SelectContent: React.ForwardRefExoticComponent<Omit<Omit<import('@base-ui/react').SelectPopupProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & Pick<import('@base-ui/react').SelectPositionerProps, "side" | "sideOffset" | "align" | "alignOffset" | "alignItemWithTrigger"> & React.RefAttributes<HTMLDivElement>>;
10
+ declare const SelectLabel: React.ForwardRefExoticComponent<Omit<Omit<import('@base-ui/react').SelectGroupLabelProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
11
+ declare const SelectItem: React.ForwardRefExoticComponent<Omit<Omit<import('@base-ui/react').SelectItemProps, "ref"> & React.RefAttributes<HTMLElement>, "ref"> & React.RefAttributes<HTMLElement>>;
12
+ declare const SelectSeparator: React.ForwardRefExoticComponent<Omit<import('@base-ui/react').SelectSeparatorProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
13
+ export { Select, SelectGroup, SelectValue, SelectTrigger, SelectContent, SelectLabel, SelectItem, SelectSeparator, SelectScrollUpButton, SelectScrollDownButton, };
@@ -0,0 +1,3 @@
1
+ import * as React from 'react';
2
+ declare const Separator: React.ForwardRefExoticComponent<Omit<Omit<import('@base-ui/react').SeparatorProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
3
+ export { Separator };
@@ -0,0 +1,23 @@
1
+ import { Dialog as DialogPrimitive } from '@base-ui/react/dialog';
2
+ import * as React from 'react';
3
+ declare const Sheet: <Payload>(props: DialogPrimitive.Root.Props<Payload>) => React.JSX.Element;
4
+ declare const SheetTrigger: DialogPrimitive.Trigger;
5
+ declare const SheetClose: React.ForwardRefExoticComponent<Omit<import('@base-ui/react').AlertDialogCloseProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
6
+ declare const SheetPortal: React.ForwardRefExoticComponent<Omit<import('@base-ui/react').AlertDialogPortalProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
7
+ declare const SheetOverlay: React.ForwardRefExoticComponent<Omit<Omit<import('@base-ui/react').AlertDialogBackdropProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
8
+ type SheetSide = 'top' | 'bottom' | 'left' | 'right';
9
+ interface SheetContentProps extends React.ComponentPropsWithoutRef<typeof DialogPrimitive.Popup> {
10
+ side?: SheetSide;
11
+ }
12
+ declare const SheetContent: React.ForwardRefExoticComponent<SheetContentProps & React.RefAttributes<HTMLDivElement>>;
13
+ declare const SheetHeader: {
14
+ ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): React.JSX.Element;
15
+ displayName: string;
16
+ };
17
+ declare const SheetFooter: {
18
+ ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): React.JSX.Element;
19
+ displayName: string;
20
+ };
21
+ declare const SheetTitle: React.ForwardRefExoticComponent<Omit<Omit<import('@base-ui/react').AlertDialogTitleProps, "ref"> & React.RefAttributes<HTMLHeadingElement>, "ref"> & React.RefAttributes<HTMLHeadingElement>>;
22
+ declare const SheetDescription: React.ForwardRefExoticComponent<Omit<Omit<import('@base-ui/react').AlertDialogDescriptionProps, "ref"> & React.RefAttributes<HTMLParagraphElement>, "ref"> & React.RefAttributes<HTMLParagraphElement>>;
23
+ export { Sheet, SheetPortal, SheetOverlay, SheetTrigger, SheetClose, SheetContent, SheetHeader, SheetFooter, SheetTitle, SheetDescription, type SheetSide, };
@@ -0,0 +1,5 @@
1
+ import { default as React } from 'react';
2
+ import { Toaster as Sonner } from 'sonner';
3
+ type ToasterProps = React.ComponentProps<typeof Sonner>;
4
+ declare const Toaster: ({ ...props }: ToasterProps) => React.JSX.Element;
5
+ export { Toaster };
@@ -0,0 +1,2 @@
1
+ declare function Spinner({ className, ...props }: React.ComponentProps<'svg'>): import('react').JSX.Element;
2
+ export { Spinner };
@@ -0,0 +1,3 @@
1
+ import * as React from 'react';
2
+ declare const Switch: React.ForwardRefExoticComponent<Omit<Omit<import('@base-ui/react').SwitchRootProps, "ref"> & React.RefAttributes<HTMLElement>, "ref"> & React.RefAttributes<HTMLElement>>;
3
+ export { Switch };
@@ -0,0 +1,6 @@
1
+ import * as React from 'react';
2
+ declare const Tabs: React.ForwardRefExoticComponent<Omit<import('@base-ui/react').TabsRootProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
3
+ declare const TabsList: React.ForwardRefExoticComponent<Omit<Omit<import('@base-ui/react').TabsListProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
4
+ declare const TabsTrigger: React.ForwardRefExoticComponent<Omit<Omit<import('@base-ui/react').TabsTabProps, "ref"> & React.RefAttributes<HTMLElement>, "ref"> & React.RefAttributes<HTMLElement>>;
5
+ declare const TabsContent: React.ForwardRefExoticComponent<Omit<Omit<import('@base-ui/react').TabsPanelProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
6
+ export { Tabs, TabsList, TabsTrigger, TabsContent };
@@ -0,0 +1,13 @@
1
+ import { Toggle as TogglePrimitive } from '@base-ui/react/toggle';
2
+ import { ToggleGroup as ToggleGroupPrimitive } from '@base-ui/react/toggle-group';
3
+ import { VariantProps } from 'class-variance-authority';
4
+ import * as React from 'react';
5
+ declare const ToggleGroup: React.ForwardRefExoticComponent<Omit<ToggleGroupPrimitive.Props<string> & VariantProps<(props?: ({
6
+ variant?: "default" | "outline" | null | undefined;
7
+ size?: "default" | "sm" | "lg" | null | undefined;
8
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string>, "ref"> & React.RefAttributes<HTMLDivElement>>;
9
+ declare const ToggleGroupItem: React.ForwardRefExoticComponent<Omit<TogglePrimitive.Props<string> & VariantProps<(props?: ({
10
+ variant?: "default" | "outline" | null | undefined;
11
+ size?: "default" | "sm" | "lg" | null | undefined;
12
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
13
+ export { ToggleGroup, ToggleGroupItem };
@@ -0,0 +1,12 @@
1
+ import { Toggle as TogglePrimitive } from '@base-ui/react/toggle';
2
+ import { VariantProps } from 'class-variance-authority';
3
+ import * as React from 'react';
4
+ declare const toggleVariants: (props?: ({
5
+ variant?: "default" | "outline" | null | undefined;
6
+ size?: "default" | "sm" | "lg" | null | undefined;
7
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
8
+ declare const Toggle: React.ForwardRefExoticComponent<Omit<TogglePrimitive.Props<string> & VariantProps<(props?: ({
9
+ variant?: "default" | "outline" | null | undefined;
10
+ size?: "default" | "sm" | "lg" | null | undefined;
11
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
12
+ export { Toggle, toggleVariants };
@@ -0,0 +1,7 @@
1
+ import { Tooltip as TooltipPrimitive } from '@base-ui/react/tooltip';
2
+ import * as React from 'react';
3
+ declare const TooltipProvider: React.FC<import('@base-ui/react').TooltipProviderProps>;
4
+ declare const Tooltip: <Payload>(props: TooltipPrimitive.Root.Props<Payload>) => React.JSX.Element;
5
+ declare const TooltipTrigger: TooltipPrimitive.Trigger;
6
+ declare const TooltipContent: React.ForwardRefExoticComponent<Omit<Omit<import('@base-ui/react').TooltipPopupProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & Pick<import('@base-ui/react').TooltipPositionerProps, "side" | "sideOffset" | "align" | "alignOffset"> & React.RefAttributes<HTMLDivElement>>;
7
+ export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };