@bysages/react 0.0.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -1,27 +1,32 @@
1
1
  import { Accordion as Accordion$1 } from "@ark-ui/react/accordion";
2
- import { AnchorHTMLAttributes, ButtonHTMLAttributes, CSSProperties, HTMLAttributes, ReactNode } from "react";
3
- import { Collapsible as Collapsible$1 } from "@ark-ui/react/collapsible";
2
+ import { AnchorHTMLAttributes, ButtonHTMLAttributes, CSSProperties, HTMLAttributes, InputHTMLAttributes, ReactNode, Ref, TextareaHTMLAttributes } from "react";
4
3
  import { Field as Field$1 } from "@ark-ui/react/field";
4
+ import { Popover as Popover$1 } from "@ark-ui/react/popover";
5
+ import { Collapsible as Collapsible$1 } from "@ark-ui/react/collapsible";
5
6
  import { AngleSlider as AngleSlider$1 } from "@ark-ui/react/angle-slider";
7
+ import { CollectionItem, CollectionOptions, FilePathTreeNode, FlatTreeNode, GridCollection, GridCollectionOptions, ListCollection, TreeCollection, TreeCollectionOptions, TreeNode, UseAsyncListProps, UseAsyncListReturn, UseListCollectionProps, UseListCollectionReturn, UseListSelectionProps, UseListSelectionReturn, createFileTreeCollection, createGridCollection, createTreeCollection, useAsyncList, useListCollection, useListSelection } from "@ark-ui/react/collection";
8
+ import { Combobox as Combobox$1 } from "@ark-ui/react/combobox";
6
9
  import { Avatar as Avatar$1 } from "@ark-ui/react/avatar";
7
10
  import { DatePicker as DatePicker$1, DatePickerFocusChangeDetails, DatePickerOpenChangeDetails, DatePickerRootProps, DatePickerValueChangeDetails, DatePickerViewChangeDetails, DatePickerVisibleRangeChangeDetails } from "@ark-ui/react/date-picker";
8
11
  import { Carousel as Carousel$1 } from "@ark-ui/react/carousel";
9
12
  import { Checkbox as Checkbox$1 } from "@ark-ui/react/checkbox";
10
13
  import { Clipboard as Clipboard$1 } from "@ark-ui/react/clipboard";
14
+ import { ClientOnly, ClientOnlyProps } from "@ark-ui/react/client-only";
11
15
  import { ColorPicker as ColorPicker$1 } from "@ark-ui/react/color-picker";
12
- import { Combobox as Combobox$1 } from "@ark-ui/react/combobox";
13
- import { DateInput as DateInput$1, DateInputFocusChangeDetails, DateInputValueChangeDetails } from "@ark-ui/react/date-input";
14
16
  import { Dialog as Dialog$1, DialogOpenChangeDetails } from "@ark-ui/react/dialog";
17
+ import { DateInput as DateInput$1, DateInputFocusChangeDetails, DateInputValueChangeDetails } from "@ark-ui/react/date-input";
18
+ import { DownloadTrigger, DownloadTriggerBaseProps, DownloadTriggerProps, DownloadableData, UseDownloadProps, UseDownloadReturn, useDownload } from "@ark-ui/react/download-trigger";
15
19
  import { Drawer as Drawer$1 } from "@ark-ui/react/drawer";
16
20
  import { Editable as Editable$1 } from "@ark-ui/react/editable";
17
21
  import { Fieldset as Fieldset$1 } from "@ark-ui/react/fieldset";
18
22
  import { FileUpload as FileUpload$1 } from "@ark-ui/react/file-upload";
19
23
  import { FloatingPanel as FloatingPanel$1 } from "@ark-ui/react/floating-panel";
24
+ import { FocusTrap, FocusTrapBaseProps, FocusTrapProps } from "@ark-ui/react/focus-trap";
20
25
  import { Format as Format$1 } from "@ark-ui/react/format";
21
26
  import { HoverCard as HoverCard$1 } from "@ark-ui/react/hover-card";
22
27
  import { ImageCropper as ImageCropper$1 } from "@ark-ui/react/image-cropper";
23
28
  import { JsonTreeView as JsonTreeView$1 } from "@ark-ui/react/json-tree-view";
24
- import { Listbox as Listbox$1, createListCollection } from "@ark-ui/react/listbox";
29
+ import { Listbox as Listbox$1 } from "@ark-ui/react/listbox";
25
30
  import { Marquee as Marquee$1 } from "@ark-ui/react/marquee";
26
31
  import { Menu as Menu$1 } from "@ark-ui/react/menu";
27
32
  import { NavigationMenu as NavigationMenu$1 } from "@ark-ui/react/navigation-menu";
@@ -29,7 +34,7 @@ import { NumberInput as NumberInput$1 } from "@ark-ui/react/number-input";
29
34
  import { Pagination as Pagination$1 } from "@ark-ui/react/pagination";
30
35
  import { PasswordInput as PasswordInput$1 } from "@ark-ui/react/password-input";
31
36
  import { PinInput as PinInput$1 } from "@ark-ui/react/pin-input";
32
- import { Popover as Popover$1 } from "@ark-ui/react/popover";
37
+ import { Presence, PresenceBaseProps, PresenceProps, PresenceProvider, UsePresenceContext, UsePresenceProps, UsePresenceReturn, usePresence, usePresenceContext } from "@ark-ui/react/presence";
33
38
  import { Progress as Progress$1 } from "@ark-ui/react/progress";
34
39
  import { QrCode as QrCode$1 } from "@ark-ui/react/qr-code";
35
40
  import { RadioGroup as RadioGroup$1 } from "@ark-ui/react/radio-group";
@@ -55,6 +60,7 @@ import { Tooltip as Tooltip$1 } from "@ark-ui/react/tooltip";
55
60
  import { Tour as Tour$1, TourInteractOutsideEvent, TourPointerDownOutsideEvent, TourStepDetails, useTour } from "@ark-ui/react/tour";
56
61
  import { TreeView as TreeView$1, TreeViewCheckedChangeDetails, TreeViewExpandedChangeDetails, TreeViewFocusChangeDetails, TreeViewSelectionChangeDetails } from "@ark-ui/react/tree-view";
57
62
  import { JSONSchema7, JSONSchema7 as JSONSchema7$1 } from "json-schema";
63
+ export * from "@bysages/core";
58
64
  //#endregion
59
65
  //#region src/components/accordion/index.d.ts
60
66
  /** Ark's Accordion, dressed in the paper-and-ink system: a ruled sheet
@@ -62,6 +68,264 @@ import { JSONSchema7, JSONSchema7 as JSONSchema7$1 } from "json-schema";
62
68
  * API is Ark's own — Root, Item, ItemTrigger, ItemContent, ItemIndicator. */
63
69
  export declare const Accordion: typeof Accordion$1;
64
70
  //#endregion
71
+ //#region src/components/affix/index.d.ts
72
+ /**
73
+ * A nail: the wrapped content travels with the page until it reaches its
74
+ * offset, then stays put while the page moves on. The semantics are
75
+ * plain `position: sticky` — pinning is relative to the nearest
76
+ * *scrolling* ancestor, so the element works inside a scrollable panel
77
+ * exactly as it does on the page itself, and a parent with
78
+ * `overflow: hidden` clips the pin. Both offsets may be given: the
79
+ * content then holds its place inside that band.
80
+ */
81
+ export interface AffixProps extends HTMLAttributes<HTMLDivElement> {
82
+ /** Where the content pins when it reaches the top of the scrolling
83
+ * ancestor — the height of any fixed header it must clear. */
84
+ offsetTop?: string;
85
+ /** Where it pins from the bottom instead, for footers and action bars. */
86
+ offsetBottom?: string;
87
+ }
88
+ export declare function Affix({ offsetTop, offsetBottom, ...rest }: AffixProps): import("react").JSX.Element;
89
+ //#endregion
90
+ //#region src/components/ai-action/index.d.ts
91
+ /** A quiet icon button — copy, retry, thumbs. The label names it to
92
+ * assistive tech and as the hover title. The control itself is the
93
+ * shared Button in its ghost register. */
94
+ export interface ActionProps extends ButtonHTMLAttributes<HTMLButtonElement> {
95
+ /** What the button does, spoken to assistive tech and shown as the
96
+ * hover title — copy, retry, thumbs. */
97
+ label: string;
98
+ children?: ReactNode;
99
+ }
100
+ export declare function Action({ label, children, ...rest }: ActionProps): import("react").JSX.Element;
101
+ //#endregion
102
+ //#region src/components/ai-message/index.d.ts
103
+ /** Whose stroke this is — the user's words sit in a recessed bubble,
104
+ * the assistant speaks flat on the paper. */
105
+ export interface MessageProps extends HTMLAttributes<HTMLElement> {
106
+ role?: "user" | "assistant" | "system";
107
+ children?: ReactNode;
108
+ }
109
+ export declare function Message({ role, children, ...rest }: MessageProps): import("react").JSX.Element;
110
+ //#endregion
111
+ //#region src/components/mentions/use-mentions.d.ts
112
+ interface UseMentionsOptions {
113
+ /** The candidates offered once the trigger character is typed. */
114
+ items: MentionEntry[];
115
+ /** The character that summons the candidates. */
116
+ trigger?: string;
117
+ }
118
+ interface UseMentionsHandlers {
119
+ /** The text the field holds right now — read at keystroke time, never
120
+ * from a controlled prop that lags a render behind the caret. */
121
+ getText: () => string;
122
+ /** Writes the field's next text: a mention inserted at the token. */
123
+ setText: (value: string) => void;
124
+ }
125
+ /** Whatever carries a key press — a native KeyboardEvent or a React
126
+ * synthetic one; the detector only needs the key's name and the power
127
+ * to hold the key back. */
128
+ interface MentionKeyEvent {
129
+ key: string;
130
+ preventDefault: () => void;
131
+ }
132
+ /** The @-detection machinery behind a mention field: watch the caret,
133
+ * offer the matching candidates, and answer for the keys that drive
134
+ * them. The field element arrives as a getter because hosts wrap it
135
+ * differently (a bare textarea, a field part's ref).
136
+ *
137
+ * `onKeydown` answers whether the vessel consumed the key, so a host
138
+ * with its own Enter semantics — a composer that sends — can yield to
139
+ * the candidates first and act only when the vessel stands down. */
140
+ export declare function useMentions(options: UseMentionsOptions | (() => UseMentionsOptions), textarea: () => HTMLTextAreaElement | null, handlers: UseMentionsHandlers): {
141
+ open: boolean;
142
+ matches: MentionEntry[];
143
+ active: number;
144
+ setActive: import("react").Dispatch<import("react").SetStateAction<number>>;
145
+ insert: (entry: MentionEntry) => void;
146
+ close: () => void;
147
+ onInput: () => void;
148
+ onKeydown: (event: MentionKeyEvent) => boolean;
149
+ };
150
+ //#endregion
151
+ //#region src/components/mentions/index.d.ts
152
+ export interface MentionEntry {
153
+ label: string;
154
+ value: string;
155
+ }
156
+ export interface MentionsVesselProps {
157
+ /** Whether the candidates are up. */
158
+ open?: boolean;
159
+ /** The candidates on offer. */
160
+ matches?: MentionEntry[];
161
+ /** The keyboard's active row. */
162
+ active?: number;
163
+ /** The rectangle the vessel points at — the host's textarea. */
164
+ anchor?: HTMLTextAreaElement | null;
165
+ /** A candidate was chosen. */
166
+ onInsert?: (entry: MentionEntry) => void;
167
+ /** The pointer moved to a row. */
168
+ onActiveChange?: (index: number) => void;
169
+ /** The vessel was dismissed. */
170
+ onOpenChange?: (open: boolean) => void;
171
+ }
172
+ /** The vessel: the candidates themselves as a floating card. The anchor
173
+ * is virtual — a live rectangle off the host's field — so a host keeps
174
+ * its own anatomy (the textarea rides where the host puts it) and the
175
+ * vessel still points at the right place. Shares the detection state
176
+ * with the host through `useMentions`. */
177
+ export declare function MentionsVessel({ open, matches, active, anchor, onInsert, onActiveChange, onOpenChange }: MentionsVesselProps): import("react").JSX.Element;
178
+ /**
179
+ * @-mentions: a plain textarea that, when the text before the caret ends
180
+ * with the trigger character followed by a token, offers the matching
181
+ * candidates in a small anchored vessel; choosing one replaces the token
182
+ * with `trigger + label` and hands the whole text back through
183
+ * `onValueChange`. Arrows move, Enter inserts, Escape dismisses.
184
+ *
185
+ * The field is the shared `Field.Textarea` — field wiring (label ids,
186
+ * the invalid state, autoresize) rides on it for free — and the vessel
187
+ * anchors to the field as a whole (popover machinery), not to the caret
188
+ * coordinates; caret-precise positioning would need a second
189
+ * positioning system for no practical gain at typical field sizes.
190
+ * Composers that keep their own field anatomy (the AI prompt input)
191
+ * skip this shell and wire `useMentions` plus `MentionsVessel`
192
+ * themselves.
193
+ */
194
+ export interface MentionsProps extends HTMLAttributes<HTMLDivElement> {
195
+ /** The candidates offered once the trigger character is typed. */
196
+ items?: MentionEntry[];
197
+ /** The text held by the field. Supply it to control the field;
198
+ * changes are reported via `onValueChange`. */
199
+ value?: string;
200
+ /** The character that summons the candidates. */
201
+ trigger?: string;
202
+ placeholder?: string;
203
+ /** Let the field grow with its text instead of holding `rows`. */
204
+ autoresize?: boolean;
205
+ /** Standing alone, the field styles itself from this flag; inside a
206
+ * `Field.Root` the field's own invalid state takes over. */
207
+ invalid?: boolean;
208
+ /** Reports the field's next text. */
209
+ onValueChange?: (value: string) => void;
210
+ }
211
+ export declare function Mentions({ items, value, trigger, placeholder, autoresize, invalid, onValueChange, children, ...rest }: MentionsProps): import("react").JSX.Element;
212
+ //#endregion
213
+ //#region src/components/ai-prompt-input/index.d.ts
214
+ /**
215
+ * The prompt vessel: the shared field textarea — self-growing on the
216
+ * machine's autoresize — with the submit seal riding its last line.
217
+ * Around the body, props answer the composer's anatomy: `header` for
218
+ * attachments riding above, `leading` for the tools at the text's
219
+ * left, `trailing` for the seal itself, `footer` for the tools beneath,
220
+ * and `footerEnd` for the controls that close the footer row — the
221
+ * seal falls there by default, so a model picker dropped in rides the
222
+ * send's shoulder. Controlled — bind `value` and take the text on
223
+ * `submit`. Enter sends; Shift+Enter breaks the line. While `busy`
224
+ * the seal becomes a stop seal and Enter holds its breath.
225
+ */
226
+ export interface PromptInputProps extends Omit<HTMLAttributes<HTMLFormElement>, "onSubmit"> {
227
+ /** The draft in the vessel — bind `value`; it clears itself on a
228
+ * successful submit. */
229
+ value: string;
230
+ onValueChange?: (value: string) => void;
231
+ onSubmit?: (value: string) => void;
232
+ onStop?: () => void;
233
+ /** The quiet invitation before the reader types. */
234
+ placeholder?: string;
235
+ /** Still the words on the canvas, but the submit seal does nothing
236
+ * and Enter stays a line break. */
237
+ disabled?: boolean;
238
+ /** The machine is working — the seal becomes a stop seal and Enter
239
+ * holds its breath. */
240
+ busy?: boolean;
241
+ /** Mention candidates for the field: pass the roster and the summon
242
+ * character (`@` unless told otherwise) and the vessel rides the
243
+ * textarea. While candidates are up, Enter inserts and the send
244
+ * waits. */
245
+ mentions?: {
246
+ items: MentionEntry[];
247
+ trigger?: string;
248
+ };
249
+ header?: ReactNode;
250
+ leading?: ReactNode;
251
+ trailing?: ReactNode;
252
+ footer?: ReactNode;
253
+ footerEnd?: ReactNode;
254
+ }
255
+ export declare function PromptInput({ value, onValueChange, onSubmit, onStop, placeholder, disabled, busy, mentions, header, leading, trailing, footer, footerEnd, ...rest }: PromptInputProps): import("react").JSX.Element;
256
+ //#endregion
257
+ //#region src/components/ai-reasoning/index.d.ts
258
+ /** The model's thought, folded by the shared collapsible in its quiet
259
+ * register: bare ink for a trigger, the thought on one hairline. */
260
+ export interface ReasoningProps extends HTMLAttributes<HTMLDivElement> {
261
+ /** The trigger's words — the fold arrives open under them. */
262
+ label?: string;
263
+ defaultOpen?: boolean;
264
+ children?: ReactNode;
265
+ }
266
+ export declare function Reasoning({ label, children, ...rest }: ReasoningProps): import("react").JSX.Element;
267
+ //#endregion
268
+ //#region src/components/ai-response/index.d.ts
269
+ /** Markdown set on the paper. Rendering goes through
270
+ * `@tanstack/markdown`, whose defaults leave raw HTML and executable
271
+ * links inert — streaming-safe by construction. An optional
272
+ * highlighter re-inks fenced code; the component stays agnostic about
273
+ * which engine provides it. */
274
+ export interface ResponseProps extends HTMLAttributes<HTMLDivElement> {
275
+ /** The markdown text to set on the paper — streamed in freely; raw
276
+ * HTML and executable links stay inert. */
277
+ content: string;
278
+ /** Optional code-highlighting function re-inking fenced blocks; the
279
+ * component stays agnostic about which engine provides it. */
280
+ highlighter?: (code: string, lang?: string) => string;
281
+ }
282
+ declare function Response$1({ content, highlighter, ...rest }: ResponseProps): import("react").JSX.Element;
283
+ //#endregion
284
+ //#region src/components/ai-source/index.d.ts
285
+ /** One place the ink came from; href and the rest ride the anchor. */
286
+ export interface SourceProps extends HTMLAttributes<HTMLAnchorElement> {
287
+ /** Where the ink came from — also the link text when no children are
288
+ * given; opens in a new tab, referrer-free. */
289
+ href: string;
290
+ children?: ReactNode;
291
+ }
292
+ export declare function Source({ href, children, ...rest }: SourceProps): import("react").JSX.Element;
293
+ /** The reading list under a response: where this ink came from. */
294
+ export interface SourcesProps extends HTMLAttributes<HTMLOListElement> {
295
+ children?: ReactNode;
296
+ }
297
+ export declare function Sources({ children, ...rest }: SourcesProps): import("react").JSX.Element;
298
+ //#endregion
299
+ //#region src/components/ai-suggestion/index.d.ts
300
+ /** A seal-cut button proposing the next stroke; selection hands back
301
+ * the prompt. The shared Button in its outline register. */
302
+ export interface SuggestionProps extends Omit<HTMLAttributes<HTMLButtonElement>, "onSelect"> {
303
+ /** The next stroke this seal proposes — also its label; handed back
304
+ * whole on `onSelect`. */
305
+ prompt: string;
306
+ onSelect?: (prompt: string) => void;
307
+ }
308
+ export declare function Suggestion({ prompt, onSelect, ...rest }: SuggestionProps): import("react").JSX.Element;
309
+ //#endregion
310
+ //#region src/components/ai-tool/index.d.ts
311
+ export type ToolStatus = "pending" | "running" | "completed" | "error";
312
+ /** A tool call: the shared collapsible as the vessel — the name it was
313
+ * reached by and the state it reached in on the trigger, its input and
314
+ * output folded inside. */
315
+ export interface ToolProps extends HTMLAttributes<HTMLDivElement> {
316
+ /** The name the tool was reached by — shown raw on the trigger
317
+ * unless a `label` speaks friendlier words ("Searching pages…"). */
318
+ name: string;
319
+ label?: ReactNode;
320
+ /** The state the call reached — pending, running, completed, or
321
+ * error; stamped on the fold and whispered in the status chip. */
322
+ status?: ToolStatus;
323
+ defaultOpen?: boolean;
324
+ input?: ReactNode;
325
+ output?: ReactNode;
326
+ }
327
+ export declare function Tool({ name, label, status, input, output, ...rest }: ToolProps): import("react").JSX.Element;
328
+ //#endregion
65
329
  //#region ../../node_modules/.pnpm/@ai-sdk+provider@4.0.14/node_modules/@ai-sdk/provider/dist/index.d.ts
66
330
  /**
67
331
  * Audio format configuration shared by provider V4 model specifications.
@@ -7583,7 +7847,7 @@ interface ToJSONSchemaContext {
7583
7847
  } | undefined;
7584
7848
  }
7585
7849
  declare namespace util_d_exports {
7586
- export { AnyFunc, AssertEqual$1 as AssertEqual, AssertExtends, AssertNotEqual, BIGINT_FORMAT_RANGES, BuiltIn, CONSTANT_CATCH, Class, CleanKey, Constructor, EmptyObject, EmptyToNever, EnumLike, EnumValue, Exactly, Extend, ExtractIndexSignature, Flatten, FromCleanMap, HasLength, HasSize, HashAlgorithm, HashEncoding, HashFormat, IPVersion, Identity, InexactPartial, IsAny$1 as IsAny, IsProp, JSONType, JWTAlgorithm, KeyOf, Keys, KeysArray, KeysEnum, Literal, LiteralArray, LoosePartial, MakePartial, MakeReadonly, MakeRequired, Mapped, Mask, MaybeAsync, MimeTypes, NUMBER_FORMAT_RANGES, NoNever, NoNeverKeys, NoUndefined, Normalize$1 as Normalize, Numeric, Omit$1 as Omit, OmitIndexSignature, OmitKeys, ParsedTypes, Prettify, Primitive, PrimitiveArray, PrimitiveSet, PropValues, ProtoOf, SafeParseError, SafeParseResult, SafeParseSuccess, SchemaClass, ShapeGetter, SomeObject, ToCleanMap, ToEnum, TupleItems, Whatever, Widen, Writeable, aborted, allowsEval, assert, assertEqual, assertIs, assertNever, assertNotEqual, assignProp, attachSchema, base64ToUint8Array, base64urlToUint8Array, cached, captureStackTrace, cleanEnum, cleanRegex, clone, cloneDef, codePointLength, constantCatch, createTransparentProxy, defineLazy, defineLazyInternal, derived, esc, escapeRegex, explicitlyAborted, extend, finalizeIssue, floatSafeRemainder, getElementAtPath, getEnumValues, getLengthableOrigin, getParsedType, getSizableOrigin, hexToUint8Array, hide, installLazyProp, isObject, isPlainObject, issue, joinValues, jsonStringifyReplacer, members, merge, mergeDefs, normalizeParams, nullish, numKeys, objectClone, omit, optionalKeys$1 as optionalKeys, own, parsedType, partial, pick, prefixIssues, primitiveTypes, promiseAllObject, propertyKeyTypes, randomString, rawShape, required, safeExtend, shallowClone, slugify, stringifyPrimitive, toZod, uint8ArrayToBase64, uint8ArrayToBase64url, uint8ArrayToHex, unwrapMessage };
7850
+ export { AnyFunc, AssertEqual$1 as AssertEqual, AssertExtends, AssertNotEqual, BIGINT_FORMAT_RANGES, BuiltIn, CONSTANT_CATCH, Class, CleanKey, Constructor, EmptyObject, EmptyToNever, EnumLike, EnumValue, Exactly, Extend, ExtractIndexSignature, Flatten, FromCleanMap, HasLength, HasSize, HashAlgorithm, HashEncoding, HashFormat, IPVersion, Identity, InexactPartial, IsAny$1 as IsAny, IsProp, JSONType, JWTAlgorithm, KeyOf, Keys, KeysArray, KeysEnum, Literal, LiteralArray, LoosePartial, MakePartial, MakeReadonly, MakeRequired, Mapped, Mask, MaybeAsync, MimeTypes, NUMBER_FORMAT_RANGES, NoNever, NoNeverKeys, NoUndefined, Normalize$1 as Normalize, Numeric, Omit$1 as Omit, OmitIndexSignature, OmitKeys, ParsedTypes, Prettify, Primitive, PrimitiveArray, PrimitiveSet, PropValues, ProtoOf, SafeParseError, SafeParseResult, SafeParseSuccess, SchemaClass, ShapeGetter, SomeObject, ToCleanMap, ToEnum, TupleItems, Whatever, Widen, Writeable, aborted, allowsEval, assert, assertEqual, assertIs, assertNever, assertNotEqual, assignProp, attachSchema, base64ToUint8Array, base64urlToUint8Array, cached, captureStackTrace, cleanEnum, cleanRegex, clone, cloneDef, codePointLength, constantCatch, createTransparentProxy, defineLazy, defineLazyInternal, derived, esc, escapeRegex, explicitlyAborted, extend, finalizeIssue, floatSafeRemainder, getElementAtPath, getEnumValues, getLengthableOrigin, getParsedType, getSizableOrigin, hexToUint8Array, hide, installLazyProp, isObject, isPlainObject, issue, joinValues, jsonStringifyReplacer, members, merge, mergeDefs, normalizeParams, nullish, numKeys, objectClone, omit, optionalKeys$1 as optionalKeys, own, parsedType, partial, pick, prefixIssues, primitiveTypes, promiseAllObject, propertyKeyTypes, randomString, rawShape, required$1 as required, safeExtend, shallowClone, slugify, stringifyPrimitive, toZod, uint8ArrayToBase64, uint8ArrayToBase64url, uint8ArrayToHex, unwrapMessage };
7587
7851
  }
7588
7852
  type JSONType = string | number | boolean | null | JSONType[] | {
7589
7853
  [key: string]: JSONType;
@@ -7754,7 +8018,7 @@ declare function extend(schema: $ZodObject, shape: $ZodShape): any;
7754
8018
  declare function safeExtend(schema: $ZodObject, shape: $ZodShape): any;
7755
8019
  declare function merge(a: $ZodObject, b: $ZodObject): any;
7756
8020
  declare function partial(Class: SchemaClass<$ZodOptional> | null, schema: $ZodObject, mask: object | undefined, name?: string): any;
7757
- declare function required(Class: SchemaClass<$ZodNonOptional>, schema: $ZodObject, mask: object | undefined): any;
8021
+ declare function required$1(Class: SchemaClass<$ZodNonOptional>, schema: $ZodObject, mask: object | undefined): any;
7758
8022
  type Constructor<T, Def extends any[] = any[]> = new (...args: Def) => T;
7759
8023
  declare function aborted(x: ParsePayload, startIndex?: number): boolean;
7760
8024
  declare function explicitlyAborted(x: ParsePayload, startIndex?: number): boolean;
@@ -10136,13 +10400,13 @@ type Schema<OBJECT = unknown> = {
10136
10400
  };
10137
10401
  type LazySchema<SCHEMA> = () => Schema<SCHEMA>;
10138
10402
  type ZodSchema<SCHEMA = any> = ZodType<SCHEMA, ZodTypeDef, any> | $ZodType<SCHEMA, any>;
10139
- type StandardSchema<SCHEMA = any> = StandardSchemaV1$2<unknown, SCHEMA> & {
10403
+ type StandardSchema$1<SCHEMA = any> = StandardSchemaV1$2<unknown, SCHEMA> & {
10140
10404
  readonly '~standard': StandardSchemaV1$2.Props<unknown, SCHEMA> & {
10141
10405
  readonly jsonSchema?: StandardJSONSchemaV1.Converter;
10142
10406
  };
10143
10407
  };
10144
- type FlexibleSchema<SCHEMA = any> = Schema<SCHEMA> | LazySchema<SCHEMA> | ZodSchema<SCHEMA> | StandardSchema<SCHEMA>;
10145
- type InferSchema<SCHEMA> = SCHEMA extends ZodSchema<infer T> ? T : SCHEMA extends StandardSchema<infer T> ? T : SCHEMA extends LazySchema<infer T> ? T : SCHEMA extends Schema<infer T> ? T : never;
10408
+ type FlexibleSchema<SCHEMA = any> = Schema<SCHEMA> | LazySchema<SCHEMA> | ZodSchema<SCHEMA> | StandardSchema$1<SCHEMA>;
10409
+ type InferSchema<SCHEMA> = SCHEMA extends ZodSchema<infer T> ? T : SCHEMA extends StandardSchema$1<infer T> ? T : SCHEMA extends LazySchema<infer T> ? T : SCHEMA extends Schema<infer T> ? T : never;
10146
10410
  /**
10147
10411
  * A context object that is passed into tool execution.
10148
10412
  */
@@ -13191,73 +13455,8 @@ declare global {
13191
13455
  }
13192
13456
  //#endregion
13193
13457
  //#region src/components/ai/index.d.ts
13194
- export type ToolStatus = "pending" | "running" | "completed" | "error";
13195
- /** Whose stroke this is — the user's words sit in a recessed bubble,
13196
- * the assistant speaks flat on the paper. */
13197
- export interface MessageProps extends HTMLAttributes<HTMLElement> {
13198
- role?: "user" | "assistant" | "system";
13199
- children?: ReactNode;
13200
- }
13201
- export declare function Message({ role, children, ...rest }: MessageProps): import("react").JSX.Element;
13202
- /** Markdown set on the paper. Rendering goes through
13203
- * `@tanstack/markdown`, whose defaults leave raw HTML and executable
13204
- * links inert — streaming-safe by construction. */
13205
- export interface ResponseProps extends HTMLAttributes<HTMLDivElement> {
13206
- content: string;
13207
- }
13208
- declare function Response$1({ content, ...rest }: ResponseProps): import("react").JSX.Element;
13209
- /** The model's thought, folded by the shared collapsible in its quiet
13210
- * register: bare ink for a trigger, the thought on one hairline. */
13211
- export interface ReasoningProps extends HTMLAttributes<HTMLDivElement> {
13212
- label?: string;
13213
- defaultOpen?: boolean;
13214
- children?: ReactNode;
13215
- }
13216
- export declare function Reasoning({ label, children, ...rest }: ReasoningProps): import("react").JSX.Element;
13217
- /** A tool call: the shared collapsible as the vessel — the name it was
13218
- * reached by and the state it reached in on the trigger, its input and
13219
- * output folded inside. */
13220
- export interface ToolProps extends HTMLAttributes<HTMLDivElement> {
13221
- name: string;
13222
- status?: ToolStatus;
13223
- defaultOpen?: boolean;
13224
- input?: ReactNode;
13225
- output?: ReactNode;
13226
- }
13227
- export declare function Tool({ name, status, input, output, ...rest }: ToolProps): import("react").JSX.Element;
13228
- /** One place the ink came from; href and the rest ride the anchor. */
13229
- export interface SourceProps extends HTMLAttributes<HTMLAnchorElement> {
13230
- href: string;
13231
- children?: ReactNode;
13232
- }
13233
- export declare function Source({ href, children, ...rest }: SourceProps): import("react").JSX.Element;
13234
- /** A quiet icon button — copy, retry, thumbs. The label names it to
13235
- * assistive tech and as the hover title. The control itself is the
13236
- * shared Button in its ghost register. */
13237
- export interface ActionProps extends HTMLAttributes<HTMLButtonElement> {
13238
- label: string;
13239
- children?: ReactNode;
13240
- }
13241
- export declare function Action({ label, children, ...rest }: ActionProps): import("react").JSX.Element;
13242
- /** A seal-cut button proposing the next stroke; selection hands back
13243
- * the prompt. The shared Button in its outline register. */
13244
- export interface SuggestionProps extends Omit<HTMLAttributes<HTMLButtonElement>, "onSelect"> {
13245
- prompt: string;
13246
- onSelect?: (prompt: string) => void;
13247
- }
13248
- export declare function Suggestion({ prompt, onSelect, ...rest }: SuggestionProps): import("react").JSX.Element;
13249
- /** The prompt vessel: the shared field textarea — self-growing on the
13250
- * machine's autoresize — over a footer row carrying the submit seal.
13251
- * Controlled — bind `value` and take the text on `submit`. Enter
13252
- * sends; Shift+Enter breaks the line. */
13253
- export interface PromptInputProps extends Omit<HTMLAttributes<HTMLFormElement>, "onSubmit"> {
13254
- value: string;
13255
- onValueChange?: (value: string) => void;
13256
- onSubmit?: (value: string) => void;
13257
- placeholder?: string;
13258
- disabled?: boolean;
13259
- }
13260
- export declare function PromptInput({ value, onValueChange, onSubmit, placeholder, disabled, ...rest }: PromptInputProps): import("react").JSX.Element;
13458
+ /** The whole family under one handle — `Ai.Conversation`,
13459
+ * `Ai.Message`, and the rest, exactly as before the split. */
13261
13460
  export declare const Ai: {
13262
13461
  ({ children, ...rest }: HTMLAttributes<HTMLElement>): import("react").JSX.Element;
13263
13462
  displayName: string;
@@ -13266,32 +13465,46 @@ export declare const Ai: {
13266
13465
  ({ children, ...rest }: HTMLAttributes<HTMLElement>): import("react").JSX.Element;
13267
13466
  displayName: string;
13268
13467
  };
13269
- Message: typeof Message;
13270
13468
  MessageContent: {
13271
13469
  ({ children, ...rest }: HTMLAttributes<HTMLElement>): import("react").JSX.Element;
13272
13470
  displayName: string;
13273
13471
  };
13274
- Response: typeof Response$1;
13275
- Reasoning: typeof Reasoning;
13276
- Tool: typeof Tool;
13277
- Sources: {
13472
+ Actions: {
13278
13473
  ({ children, ...rest }: HTMLAttributes<HTMLElement>): import("react").JSX.Element;
13279
13474
  displayName: string;
13280
13475
  };
13281
- Source: typeof Source;
13282
- Actions: {
13476
+ Loader: {
13283
13477
  ({ children, ...rest }: HTMLAttributes<HTMLElement>): import("react").JSX.Element;
13284
13478
  displayName: string;
13285
13479
  };
13480
+ Message: typeof Message;
13481
+ Response: typeof Response$1;
13482
+ Reasoning: typeof Reasoning;
13483
+ Tool: typeof Tool;
13484
+ Sources: typeof Sources;
13485
+ Source: typeof Source;
13286
13486
  Action: typeof Action;
13287
13487
  Suggestion: typeof Suggestion;
13288
13488
  PromptInput: typeof PromptInput;
13289
- Loader: {
13290
- ({ children, ...rest }: HTMLAttributes<HTMLElement>): import("react").JSX.Element;
13291
- displayName: string;
13292
- };
13293
13489
  };
13294
13490
  //#endregion
13491
+ //#region src/components/ai-attachments/index.d.ts
13492
+ /** One file riding the prompt: its glyph by extension, its name and
13493
+ * human size, and a quiet way to take it back off. Uploading reads as
13494
+ * a dashed ghost, error as danger ink. */
13495
+ export interface AttachmentProps extends HTMLAttributes<HTMLSpanElement> {
13496
+ /** The file's name — it picks the glyph by extension. */
13497
+ name: string;
13498
+ /** The file's size in bytes, when known — rendered human. */
13499
+ size?: number;
13500
+ /** The upload's state on the wire. */
13501
+ status?: "uploading" | "ready" | "error";
13502
+ onRemove?: () => void;
13503
+ }
13504
+ export declare function Attachment({ name, size, status, onRemove, ...rest }: AttachmentProps): import("react").JSX.Element;
13505
+ /** The row the files ride in — a wrapping line of chips. */
13506
+ export declare function Attachments({ children, ...rest }: HTMLAttributes<HTMLSpanElement>): import("react").JSX.Element;
13507
+ //#endregion
13295
13508
  //#region src/components/alert/index.d.ts
13296
13509
  export type AlertStatus = "ink" | "info" | "success" | "warning" | "danger";
13297
13510
  /** A notice drawn on the page: a wash of the status pigment, one heavier
@@ -13302,13 +13515,13 @@ export interface AlertProps extends HTMLAttributes<HTMLDivElement> {
13302
13515
  children?: ReactNode;
13303
13516
  }
13304
13517
  declare function AlertRoot({ status, children, ...rest }: AlertProps): import("react").JSX.Element;
13305
- declare function Icon(): import("react").JSX.Element;
13518
+ declare function Icon$1(): import("react").JSX.Element;
13306
13519
  declare function Body({ children, ...rest }: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
13307
13520
  declare function Title({ children, ...rest }: HTMLAttributes<HTMLParagraphElement>): import("react").JSX.Element;
13308
13521
  declare function Description({ children, ...rest }: HTMLAttributes<HTMLParagraphElement>): import("react").JSX.Element;
13309
13522
  export declare const Alert: typeof AlertRoot & {
13310
13523
  Root: typeof AlertRoot;
13311
- Icon: typeof Icon;
13524
+ Icon: typeof Icon$1;
13312
13525
  Body: typeof Body;
13313
13526
  Title: typeof Title;
13314
13527
  Description: typeof Description;
@@ -13321,6 +13534,33 @@ export declare const Alert: typeof AlertRoot & {
13321
13534
  * Marker, HiddenInput. */
13322
13535
  export declare const AngleSlider: typeof AngleSlider$1;
13323
13536
  //#endregion
13537
+ //#region src/components/aspect-ratio/index.d.ts
13538
+ /** A frame that keeps its shape: the box holds the given ratio whatever
13539
+ * the width it is dealt, and the child fills the frame it is given. */
13540
+ export interface AspectRatioProps extends HTMLAttributes<HTMLDivElement> {
13541
+ /** A CSS `aspect-ratio` value — "16 / 9", "4 / 3", "1 / 1". */
13542
+ ratio?: string;
13543
+ }
13544
+ export declare function AspectRatio({ ratio, ...rest }: AspectRatioProps): import("react").JSX.Element;
13545
+ //#endregion
13546
+ //#region src/components/autocomplete/index.d.ts
13547
+ /**
13548
+ * Free text with suggestions: the reader types anything, the list
13549
+ * narrows to help, and both a pick and a custom value end up in the
13550
+ * same `value`. A preset of the combobox machinery — same parts, same
13551
+ * styling, one job. `items` seeds the suggestion list once; matching is
13552
+ * a case-insensitive substring unless `filter` says otherwise.
13553
+ */
13554
+ export interface AutoCompleteProps extends Omit<HTMLAttributes<HTMLDivElement>, "defaultValue" | "onSelect"> {
13555
+ value?: string;
13556
+ items?: string[];
13557
+ placeholder?: string;
13558
+ /** Field text to match against; defaults to the item itself. */
13559
+ filter?: (item: string, input: string) => boolean;
13560
+ onValueChange?: (value: string) => void;
13561
+ }
13562
+ export declare function AutoComplete({ value, items, placeholder, filter, onValueChange, ...rest }: AutoCompleteProps): import("react").JSX.Element;
13563
+ //#endregion
13324
13564
  //#region src/components/avatar/index.d.ts
13325
13565
  /** Ark's Avatar, dressed in the paper-and-ink system: a circular seal on
13326
13566
  * inset paper that holds initials until the image loads over them. The
@@ -13333,6 +13573,28 @@ export declare const Avatar: typeof Avatar$1;
13333
13573
  export type AvatarGroupProps = HTMLAttributes<HTMLDivElement>;
13334
13574
  export declare function AvatarGroup({ children, ...rest }: AvatarGroupProps): import("react").JSX.Element;
13335
13575
  //#endregion
13576
+ //#region src/components/back-top/index.d.ts
13577
+ export interface BackTopProps extends HTMLAttributes<HTMLButtonElement> {
13578
+ /** How far the reader must have travelled (px) before the affordance
13579
+ * appears. */
13580
+ threshold?: number;
13581
+ /** The accessible name; the control is icon-only by default. */
13582
+ label?: string;
13583
+ }
13584
+ /**
13585
+ * A way home: after the page has scrolled past `threshold`, a small
13586
+ * floating control rises at the page's corner and returns the reader to
13587
+ * the top. The scroll itself stays native — `window.scrollTo` defers to
13588
+ * the stylesheet's `scroll-behavior: smooth`, which reduced motion turns
13589
+ * back into an instant jump. The button stays mounted either way so the
13590
+ * entrance is a transition, never a pop.
13591
+ *
13592
+ * The control itself is the shared `Button` (outline, square) — the
13593
+ * paper, hairline and halo are its; this family owns only the floating
13594
+ * and the entrance.
13595
+ */
13596
+ export declare function BackTop({ threshold, label, ...rest }: BackTopProps): import("react").JSX.Element;
13597
+ //#endregion
13336
13598
  //#region src/components/badge/index.d.ts
13337
13599
  /** A small seal of state. Ink is the neutral tone; the four semantic
13338
13600
  * pigments are fixed. Subtle and outline re-register the same pigment. */
@@ -13391,6 +13653,29 @@ export interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
13391
13653
  }
13392
13654
  export declare function Button({ variant, tone, size, square, asChild, disabled, type, children, ...rest }: ButtonProps): import("react").JSX.Element | null;
13393
13655
  //#endregion
13656
+ //#region src/components/button-group/index.d.ts
13657
+ export interface ButtonGroupProps extends HTMLAttributes<HTMLDivElement> {
13658
+ /** The seam runs across the group (default) or down it. */
13659
+ orientation?: "horizontal" | "vertical";
13660
+ /** One register for every member: falls onto data-size for the
13661
+ * stylesheet to retune the buttons' heights. */
13662
+ size?: "sm" | "md" | "lg";
13663
+ /** The members' corner register: retunes --bs-radius-control for the
13664
+ * whole fused shape — edges and trimmed seams keep one story. */
13665
+ radius?: "sm" | "md" | "lg" | "xl" | "2xl" | "full";
13666
+ children?: ReactNode;
13667
+ }
13668
+ /**
13669
+ * Buttons fused into one control: the group owns only the joinery, so
13670
+ * members keep every variant they were given — a solid action can sit
13671
+ * beside an outline one and the seam still reads. Selection belongs to
13672
+ * the toggle group; this is layout alone.
13673
+ */
13674
+ declare function Root$3({ orientation, size, radius, children, ...rest }: ButtonGroupProps): import("react").JSX.Element;
13675
+ export declare const ButtonGroup: typeof Root$3 & {
13676
+ Root: typeof Root$3;
13677
+ };
13678
+ //#endregion
13394
13679
  //#region src/components/banner/index.d.ts
13395
13680
  export type BannerStatus = "ink" | "info" | "success" | "warning" | "danger";
13396
13681
  export interface BannerRootProps extends HTMLAttributes<HTMLElement> {
@@ -13418,7 +13703,7 @@ export declare const Banner: (({ status, children, ...rest }: BannerRootProps) =
13418
13703
  ({ children, ...rest }: HTMLAttributes<HTMLElement>): import("react").JSX.Element;
13419
13704
  displayName: string;
13420
13705
  };
13421
- Close: ({ children, ...rest }: HTMLAttributes<HTMLButtonElement>) => import("react").JSX.Element;
13706
+ Close: (rest: ButtonHTMLAttributes<HTMLButtonElement>) => import("react").JSX.Element;
13422
13707
  };
13423
13708
  //#endregion
13424
13709
  //#region src/components/calendar/index.d.ts
@@ -13481,6 +13766,31 @@ declare const Card$1: {
13481
13766
  };
13482
13767
  };
13483
13768
  //#endregion
13769
+ //#region src/components/cascade-select/index.d.ts
13770
+ export interface CascadeSelectNode {
13771
+ label: string;
13772
+ value: string;
13773
+ children?: CascadeSelectNode[];
13774
+ disabled?: boolean;
13775
+ }
13776
+ /**
13777
+ * A corridor of linked columns: pick a branch and the next column
13778
+ * dissolves open beside it, until a leaf click settles the whole path.
13779
+ * `value` is the selected path (or paths, when `multiple`) — the joined
13780
+ * labels ride the trigger. `highlightTrigger: "hover"` turns the
13781
+ * classic cascading menu: pointing is enough to unfold.
13782
+ */
13783
+ export interface CascadeSelectProps extends HTMLAttributes<HTMLDivElement> {
13784
+ value?: string[][];
13785
+ data: CascadeSelectNode[];
13786
+ placeholder?: string;
13787
+ highlightTrigger?: "click" | "hover";
13788
+ multiple?: boolean;
13789
+ disabled?: boolean;
13790
+ onValueChange?: (value: string[][]) => void;
13791
+ }
13792
+ export declare function CascadeSelect({ value, data, placeholder, highlightTrigger, multiple, disabled, onValueChange, ...rest }: CascadeSelectProps): import("react").JSX.Element;
13793
+ //#endregion
13484
13794
  //#region src/components/carousel/index.d.ts
13485
13795
  /** Ark's Carousel, dressed in the paper-and-ink system: slides ride in one
13486
13796
  * hairline-clipped lane, the triggers are quiet outline controls, and the
@@ -13496,6 +13806,27 @@ export declare const Carousel: typeof Carousel$1;
13496
13806
  * HiddenInput. */
13497
13807
  export declare const Checkbox: typeof Checkbox$1;
13498
13808
  //#endregion
13809
+ //#region src/components/checkbox-group/index.d.ts
13810
+ export interface CheckboxOption {
13811
+ label: string;
13812
+ value: string;
13813
+ disabled?: boolean;
13814
+ }
13815
+ export interface CheckboxGroupProps extends HTMLAttributes<HTMLDivElement> {
13816
+ value?: string[];
13817
+ options: CheckboxOption[];
13818
+ layout?: "vertical" | "horizontal";
13819
+ disabled?: boolean;
13820
+ onValueChange?: (value: string[]) => void;
13821
+ }
13822
+ /**
13823
+ * One question, many answers: a labelled stack (or row) of the seal-cut
13824
+ * checkboxes bound to a single array. Toggling a box adds or removes its
13825
+ * value; the group itself is semantics (`role="group"`), the boxes stay
13826
+ * the machine-driven originals.
13827
+ */
13828
+ export declare function CheckboxGroup({ value, options, layout, disabled, onValueChange, ...rest }: CheckboxGroupProps): import("react").JSX.Element;
13829
+ //#endregion
13499
13830
  //#region src/components/chip/index.d.ts
13500
13831
  /** A counting coin: the numeric value, capped at `max` with an ellipsis
13501
13832
  * of the remainder ("99+"). */
@@ -13539,6 +13870,115 @@ export declare const ColorPicker: typeof ColorPicker$1;
13539
13870
  * Item, ItemText, ItemIndicator, ItemGroup, ItemGroupLabel. */
13540
13871
  export declare const Combobox: typeof Combobox$1;
13541
13872
  //#endregion
13873
+ //#region src/components/command/index.d.ts
13874
+ export interface CommandEntry {
13875
+ label: string;
13876
+ value: string;
13877
+ /** Entries sharing a group are listed under one heading. */
13878
+ group?: string;
13879
+ /** A short affordance note, set as a keycap at the row's end. */
13880
+ hint?: string;
13881
+ }
13882
+ /**
13883
+ * The command palette: a modal sheet at the top of the page carrying a
13884
+ * search field over the caller's commands, grouped as a ledger with a
13885
+ * keycap hint at each row. The shell is the dialog machinery — scrim,
13886
+ * focus trap, Escape — and the searching is the combobox machinery
13887
+ * driving our own list: the vessel and the list live inside the sheet,
13888
+ * so the combobox renders no separate popup and the machine's content
13889
+ * grafts onto the sheet's list.
13890
+ */
13891
+ export interface CommandProps {
13892
+ /** The commands on offer, grouped as they arrive. */
13893
+ items?: CommandEntry[];
13894
+ placeholder?: string;
13895
+ /** Whether the palette is up. Supply it to control the palette;
13896
+ * changes are reported via `onOpenChange`. */
13897
+ open?: boolean;
13898
+ /** Whether the shell narrows `items` as the reader types. Turn it off
13899
+ * when the caller owns the searching — a ranked engine or a remote
13900
+ * source — and hands down the already-narrowed list. */
13901
+ autoFilter?: boolean;
13902
+ /** The field's text under the caller's control; changes are reported
13903
+ * via `onInputValueChange`. */
13904
+ inputValue?: string;
13905
+ /** What the list whispers when nothing matches. */
13906
+ emptyText?: string;
13907
+ /** Called with the chosen entry's `value`; the palette closes after. */
13908
+ onSelect?: (value: string) => void;
13909
+ /** Reports the palette's next state. */
13910
+ onOpenChange?: (open: boolean) => void;
13911
+ /** Reports the field's live text. */
13912
+ onInputValueChange?: (value: string) => void;
13913
+ }
13914
+ export declare function Command({ items, placeholder, open, autoFilter, inputValue, emptyText, onSelect, onOpenChange, onInputValueChange }: CommandProps): import("react").JSX.Element;
13915
+ //#endregion
13916
+ //#region src/components/comment/index.d.ts
13917
+ /**
13918
+ * A voice on the record: the portrait hangs left (the `avatar` prop),
13919
+ * the body carries the byline from `author` and `datetime`, the ink is
13920
+ * the children, and `actions` is the row of answers.
13921
+ */
13922
+ export interface CommentProps extends HTMLAttributes<HTMLElement> {
13923
+ author?: string;
13924
+ datetime?: string;
13925
+ /** The portrait at the row's head. */
13926
+ avatar?: ReactNode;
13927
+ /** The row of answers beneath the ink. */
13928
+ actions?: ReactNode;
13929
+ }
13930
+ export declare function Comment({ author, datetime, avatar, actions, children, ...rest }: CommentProps): import("react").JSX.Element;
13931
+ //#endregion
13932
+ //#region src/components/config-provider/index.d.ts
13933
+ /** The four density tiers the token layer's `[data-density]` selectors
13934
+ * name — whitespace and control heights compress, readability never
13935
+ * does. */
13936
+ export type ConfigDensity = "compact" | "default" | "comfortable" | "spacious";
13937
+ /** The configuration a provider lays over its subtree. Every field is
13938
+ * optional: an absent field changes nothing, and the page's own
13939
+ * attributes keep ruling. */
13940
+ export interface ConfigContext {
13941
+ density?: ConfigDensity;
13942
+ /** A mineral pigment theme (qinghua, celadon, zhusha, …) landing as
13943
+ * `[data-accent]` on the host element. */
13944
+ accent?: string;
13945
+ /** Writing direction, landing as the native `dir` attribute. */
13946
+ dir?: "ltr" | "rtl";
13947
+ /** BCP-47 locale, landing as the native `lang` attribute. */
13948
+ locale?: string;
13949
+ }
13950
+ /** The nearest provider's snapshot, or an empty one when no provider
13951
+ * wraps the caller — the hook the date and format families will consume
13952
+ * to localize their output. */
13953
+ export declare function useConfig(): ConfigContext;
13954
+ export interface ConfigProviderProps extends HTMLAttributes<HTMLDivElement> {
13955
+ density?: ConfigDensity;
13956
+ accent?: string;
13957
+ dir?: "ltr" | "rtl";
13958
+ locale?: string;
13959
+ children?: ReactNode;
13960
+ }
13961
+ /**
13962
+ * The declarative host for global configuration: one element that both
13963
+ * carries the token layer's attributes — `[data-density]` and
13964
+ * `[data-accent]` fire on any element — and provides the same values to
13965
+ * descendants through `useConfig`, so interactive behavior (formatting,
13966
+ * messages) and visual theming stay one decision.
13967
+ */
13968
+ export declare function ConfigProvider({ density, accent, dir, locale, children, ...rest }: ConfigProviderProps): import("react").JSX.Element;
13969
+ //#endregion
13970
+ //#region src/components/container/index.d.ts
13971
+ /** The reading frame: content held to a measure and centered on the
13972
+ * page. The sizes name typographic measures, not breakpoints — the page
13973
+ * owns its edges, the container only owns how long a line of ink runs. */
13974
+ export interface ContainerProps extends HTMLAttributes<HTMLDivElement> {
13975
+ size?: "narrow" | "readable" | "wide" | "full";
13976
+ /** Keep the ink off the page edges when the viewport runs narrower
13977
+ * than the measure. */
13978
+ padding?: boolean;
13979
+ }
13980
+ export declare function Container({ size, padding, ...rest }: ContainerProps): import("react").JSX.Element;
13981
+ //#endregion
13542
13982
  //#region src/components/date-input/index.d.ts
13543
13983
  /** Ark's DateInput, dressed in the paper-and-ink system: a segmented
13544
13984
  * field where the focused segment takes the flat ink fill. The API is
@@ -13555,6 +13995,30 @@ export declare const DateInput: typeof DateInput$1;
13555
13995
  * NextTrigger, Table*, MonthSelect, YearSelect, PresetTrigger. */
13556
13996
  export declare const DatePicker: typeof DatePicker$1;
13557
13997
  //#endregion
13998
+ //#region src/components/descriptions/index.d.ts
13999
+ /** A ledger laid flat: term and detail pairs in one quiet grid. The
14000
+ * horizontal layout reads as a table of two columns; the vertical one
14001
+ * stacks each pair for narrow measures. */
14002
+ export interface DescriptionsRootProps extends HTMLAttributes<HTMLDListElement> {
14003
+ layout?: "horizontal" | "vertical";
14004
+ }
14005
+ export declare function DescriptionsRoot({ layout, children, ...rest }: DescriptionsRootProps): import("react").JSX.Element;
14006
+ export declare const Descriptions: {
14007
+ Root: typeof DescriptionsRoot;
14008
+ Item: {
14009
+ ({ children, ...rest }: HTMLAttributes<HTMLElement>): import("react").JSX.Element;
14010
+ displayName: string;
14011
+ };
14012
+ Term: {
14013
+ ({ children, ...rest }: HTMLAttributes<HTMLElement>): import("react").JSX.Element;
14014
+ displayName: string;
14015
+ };
14016
+ Detail: {
14017
+ ({ children, ...rest }: HTMLAttributes<HTMLElement>): import("react").JSX.Element;
14018
+ displayName: string;
14019
+ };
14020
+ };
14021
+ //#endregion
13558
14022
  //#region src/components/dialog/index.d.ts
13559
14023
  /** Ark's Dialog, dressed in the paper-and-ink system: the sheet dissolves
13560
14024
  * in on elevation, the backdrop fades, and nested overlays stack through
@@ -13570,6 +14034,31 @@ export declare const Dialog: typeof Dialog$1;
13570
14034
  * Description, CloseTrigger, SwipeArea. */
13571
14035
  export declare const Drawer: typeof Drawer$1;
13572
14036
  //#endregion
14037
+ //#region src/components/dynamic-input/index.d.ts
14038
+ export interface DynamicInputProps extends HTMLAttributes<HTMLDivElement> {
14039
+ /** The rows' values; the group renders one Input per entry. */
14040
+ value?: string[];
14041
+ /** The fewest rows the group keeps; the remove seals yield first. */
14042
+ min?: number;
14043
+ /** The most rows the group grows to; the add control yields then. */
14044
+ max?: number;
14045
+ placeholder?: string;
14046
+ /** The add control's visible words. */
14047
+ addLabel?: string;
14048
+ disabled?: boolean;
14049
+ invalid?: boolean;
14050
+ onValueChange?: (value: string[]) => void;
14051
+ }
14052
+ /**
14053
+ * A column of entry rows: one Input per line, each with a quiet remove
14054
+ * seal, and an add row at the tail. The list is controlled — every edit
14055
+ * reports a fresh array through `onValueChange` and the caller's array
14056
+ * stays the only truth. Deleting never drops below `min`, adding never
14057
+ * grows past `max`, and the group always keeps one row: an entry list
14058
+ * that emptied itself would leave the reader no place to type.
14059
+ */
14060
+ export declare function DynamicInput({ value, min, max, placeholder, addLabel, disabled, invalid, onValueChange, children: _children, ...rest }: DynamicInputProps): import("react").JSX.Element;
14061
+ //#endregion
13573
14062
  //#region src/components/editable/index.d.ts
13574
14063
  /** Ark's Editable, dressed in the paper-and-ink system: bare ink while
13575
14064
  * reading, the full field recipe while editing. The API is Ark's own —
@@ -13577,6 +14066,15 @@ export declare const Drawer: typeof Drawer$1;
13577
14066
  * CancelTrigger, Control. */
13578
14067
  export declare const Editable: typeof Editable$1;
13579
14068
  //#endregion
14069
+ //#region src/components/ellipsis/index.d.ts
14070
+ /** The overflow knife: text cut at one line, or held to N lines. The
14071
+ * primitive only draws the cut — reaching the full text (title,
14072
+ * tooltip) stays the consumer's decision. */
14073
+ export interface EllipsisProps extends HTMLAttributes<HTMLElement> {
14074
+ lines?: number;
14075
+ }
14076
+ export declare function Ellipsis({ lines, ...rest }: EllipsisProps): import("react").JSX.Element;
14077
+ //#endregion
13580
14078
  //#region src/components/empty/index.d.ts
13581
14079
  export declare const Empty: {
13582
14080
  ({ children, ...rest }: HTMLAttributes<HTMLElement>): import("react").JSX.Element;
@@ -13626,6 +14124,58 @@ export declare const Fieldset: typeof Fieldset$1;
13626
14124
  * Context. */
13627
14125
  export declare const FileUpload: typeof FileUpload$1;
13628
14126
  //#endregion
14127
+ //#region src/components/float-button/index.d.ts
14128
+ export type FloatButtonPlacement = "bottom-end" | "bottom-start" | "top-end" | "top-start";
14129
+ /** The group's openness, shared from the mooring to its parts. */
14130
+ export interface FloatButtonContextValue {
14131
+ open: boolean;
14132
+ toggle: () => void;
14133
+ /** Folds the fan — an Item calls this once its action fires, the way
14134
+ * a speed dial closes after a choice. */
14135
+ close: () => void;
14136
+ }
14137
+ /** Context for {@link FloatButtonContextValue}, exported so a custom
14138
+ * part can read the group's state. */
14139
+ export declare const FLOAT_BUTTON_CONTEXT: import("react").Context<FloatButtonContextValue | null>;
14140
+ export interface FloatButtonRootProps extends HTMLAttributes<HTMLDivElement> {
14141
+ /** Controlled openness: leave unset to let the group hold its own
14142
+ * state; while set, the Trigger reports back through
14143
+ * `onOpenChange`. */
14144
+ open?: boolean;
14145
+ /** Which corner the group moors at. */
14146
+ placement?: FloatButtonPlacement;
14147
+ onOpenChange?: (open: boolean) => void;
14148
+ children?: ReactNode;
14149
+ }
14150
+ /**
14151
+ * A floating action and its fanned-out alternatives — FAB and speed
14152
+ * dial in one family. The Root moors the group at a page corner and
14153
+ * holds the openness (mirrored from `open` when controlled); the
14154
+ * Trigger flips it; each Item is a round action with its name surfacing
14155
+ * beside it while the group is open. The buttons are the shared recipe
14156
+ * (vessels here: round); this family owns only the mooring, the fan
14157
+ * and the fold.
14158
+ */
14159
+ declare function Root$2({ open: openProp, placement, onOpenChange, children, ...rest }: FloatButtonRootProps): import("react").JSX.Element;
14160
+ declare function Trigger({ label, children }: {
14161
+ label?: string;
14162
+ children?: ReactNode;
14163
+ }): import("react").JSX.Element;
14164
+ interface FloatButtonItemProps {
14165
+ /** The action's name: the button's accessible name and the
14166
+ * annotation surfaced beside it while the group is open. */
14167
+ label: string;
14168
+ disabled?: boolean;
14169
+ onClick?: () => void;
14170
+ children?: ReactNode;
14171
+ }
14172
+ declare function Item({ label, disabled, onClick, children }: FloatButtonItemProps): import("react").JSX.Element;
14173
+ export declare const FloatButton: typeof Root$2 & {
14174
+ Root: typeof Root$2;
14175
+ Trigger: typeof Trigger;
14176
+ Item: typeof Item;
14177
+ };
14178
+ //#endregion
13629
14179
  //#region src/components/floating-panel/index.d.ts
13630
14180
  /** Ark's FloatingPanel, dressed in the paper-and-ink system: the shared
13631
14181
  * popup vessel let loose — a draggable, resizable sheet whose header is the
@@ -13634,6 +14184,79 @@ export declare const FileUpload: typeof FileUpload$1;
13634
14184
  * Body. */
13635
14185
  export declare const FloatingPanel: typeof FloatingPanel$1;
13636
14186
  //#endregion
14187
+ //#region src/components/form/index.d.ts
14188
+ /** The one error a field can carry: where it lives in the form state
14189
+ * (dot notation for nested objects, indexes for arrays) and what went
14190
+ * wrong. */
14191
+ export interface FormError {
14192
+ name: string;
14193
+ message: string;
14194
+ }
14195
+ /** The Standard Schema surface this package understands — the slice
14196
+ * valibot, zod, arktype and friends all expose. Declared structurally
14197
+ * so no spec package becomes a dependency. */
14198
+ export interface StandardSchema<Input = unknown> {
14199
+ readonly "~standard": {
14200
+ readonly validate: (value: Input) => Promise<ValidateResult> | ValidateResult;
14201
+ };
14202
+ }
14203
+ interface ValidateResult {
14204
+ readonly value?: unknown;
14205
+ readonly issues?: ReadonlyArray<{
14206
+ readonly message: string;
14207
+ readonly path?: ReadonlyArray<PropertyKey | {
14208
+ readonly key: PropertyKey;
14209
+ }>;
14210
+ }>;
14211
+ }
14212
+ export type FormInputEvent = "input" | "change" | "blur";
14213
+ /** The imperative handle a caller holds through `ref`: the scheduled
14214
+ * validation, the error surgery, and the live error map itself. */
14215
+ export interface FormHandle {
14216
+ validate: () => Promise<Map<string, string>>;
14217
+ clear: (name?: string | RegExp) => void;
14218
+ setErrors: (errors: FormError[]) => void;
14219
+ getErrors: (name?: string | RegExp) => FormError[];
14220
+ errors: Map<string, string>;
14221
+ }
14222
+ export interface FormProps extends Omit<HTMLAttributes<HTMLFormElement>, "onSubmit" | "onError"> {
14223
+ state: Record<string, unknown>;
14224
+ schema?: StandardSchema;
14225
+ validate?: (state: Record<string, unknown>) => FormError[] | Promise<FormError[]>;
14226
+ validateOn?: FormInputEvent[];
14227
+ disabled?: boolean;
14228
+ onSubmit?: (state: Record<string, unknown>) => void;
14229
+ onError?: (errors: FormError[]) => void;
14230
+ ref?: Ref<FormHandle>;
14231
+ }
14232
+ /**
14233
+ * The validation scheduler: one error map, a submit that validates
14234
+ * before it fires, live re-validation on the events the `validateOn`
14235
+ * prop names, and the imperative handle. The schema is any Standard
14236
+ * Schema (valibot, zod, arktype, …) — none are bundled; a `validate`
14237
+ * function composes with it for the cases schemas can't express. Errors
14238
+ * reach their field by name, through FormField.
14239
+ */
14240
+ export declare function Form({ state, schema, validate, validateOn, disabled, onSubmit, onError, ref, children, ...rest }: FormProps): import("react").JSX.Element;
14241
+ /**
14242
+ * The named slot in the grid: label, control, hint — and the error the
14243
+ * Form routed to this name, shown through the same parts the standalone
14244
+ * Field family styles. The Ark field context runs underneath, so our
14245
+ * Input and Textarea pick up the label wiring and the invalid state
14246
+ * without knowing the Form exists. Without a Form above it degrades to
14247
+ * a plain labelled field.
14248
+ */
14249
+ export interface FormFieldProps extends HTMLAttributes<HTMLDivElement> {
14250
+ name?: string;
14251
+ label?: string;
14252
+ hint?: string;
14253
+ required?: boolean;
14254
+ invalid?: boolean;
14255
+ disabled?: boolean;
14256
+ children?: ReactNode;
14257
+ }
14258
+ export declare function FormField({ name, label, hint, required, invalid, disabled, children, ...rest }: FormFieldProps): import("react").JSX.Element;
14259
+ //#endregion
13637
14260
  //#region src/components/format/index.d.ts
13638
14261
  /** Ark's Format, dressed in the paper-and-ink system: Intl formatting for
13639
14262
  * numbers, currency, bytes and relative time. The components render bare
@@ -13652,6 +14275,18 @@ export declare const Format: typeof Format$1;
13652
14275
  * to hook. The API is Ark's own. */
13653
14276
  export declare const Frame: import("react").ForwardRefExoticComponent<import("@ark-ui/react/frame").FrameProps & import("react").RefAttributes<HTMLIFrameElement>>;
13654
14277
  //#endregion
14278
+ //#region src/components/grid/index.d.ts
14279
+ /** An alignment lattice: tracks of equal measure, sized by column count
14280
+ * — or, with `minChildWidth`, as many tracks as the container fits. */
14281
+ export interface GridProps extends HTMLAttributes<HTMLDivElement> {
14282
+ columns?: number;
14283
+ gap?: "none" | "xs" | "sm" | "md" | "lg" | "xl";
14284
+ /** Switch to the auto-fill lattice: each track is at least this wide,
14285
+ * and the container decides how many fit. */
14286
+ minChildWidth?: string;
14287
+ }
14288
+ export declare function Grid({ columns, gap, minChildWidth, ...rest }: GridProps): import("react").JSX.Element;
14289
+ //#endregion
13655
14290
  //#region src/components/highlight/index.d.ts
13656
14291
  /** Ark's Highlight, dressed in the paper-and-ink system: query hits are
13657
14292
  * strokes of pigment on the page — a quiet tint of the accent behind the
@@ -13665,6 +14300,36 @@ export declare const Highlight: (props: import("@ark-ui/react/highlight").Highli
13665
14300
  * API is Ark's own — Root, Trigger, Positioner, Content, Arrow, ArrowTip. */
13666
14301
  export declare const HoverCard: typeof HoverCard$1;
13667
14302
  //#endregion
14303
+ //#region src/components/icon/index.d.ts
14304
+ /** The inkwell: a standard box that keeps any inline svg at its optical
14305
+ * measure and in the text's own ink — the icon carries no pigment and no
14306
+ * size of its own. Bring the glyph; it ships no set. */
14307
+ export interface IconProps extends HTMLAttributes<HTMLSpanElement> {
14308
+ /** Size steps follow the surrounding font size; `inherit` is the
14309
+ * default — one em of the text the icon sits in. */
14310
+ size?: "inherit" | "sm" | "md" | "lg";
14311
+ /** The accessible name. Without it the icon is presentation-only and
14312
+ * hidden from the accessibility tree. */
14313
+ label?: string;
14314
+ }
14315
+ export declare function Icon({ size, label, children, ...rest }: IconProps): import("react").JSX.Element;
14316
+ //#endregion
14317
+ //#region src/components/image/index.d.ts
14318
+ /** A framed picture: while the source loads, the frame keeps the
14319
+ * skeleton's breath; the picture dissolves in when it lands; a broken
14320
+ * source leaves the `fallback` — or the placeholder glyph when the
14321
+ * caller has nothing local to say. The frame's size is the consumer's
14322
+ * to give. */
14323
+ export interface ImageProps extends Omit<HTMLAttributes<HTMLElement>, "onError" | "onLoad"> {
14324
+ src: string;
14325
+ alt?: string;
14326
+ fit?: "cover" | "contain" | "fill" | "none";
14327
+ loading?: "lazy" | "eager";
14328
+ /** Shown in place of the picture when the source breaks. */
14329
+ fallback?: ReactNode;
14330
+ }
14331
+ export declare function Image({ src, alt, fit, loading, fallback, ...rest }: ImageProps): import("react").JSX.Element;
14332
+ //#endregion
13668
14333
  //#region src/components/image-cropper/index.d.ts
13669
14334
  /** Ark's ImageCropper, dressed in the paper-and-ink system: a rounded vessel
13670
14335
  * holding the photograph, one lit selection window framed by light hairlines.
@@ -13672,6 +14337,55 @@ export declare const HoverCard: typeof HoverCard$1;
13672
14337
  * Context. */
13673
14338
  export declare const ImageCropper: typeof ImageCropper$1;
13674
14339
  //#endregion
14340
+ //#region src/components/image-viewer/index.d.ts
14341
+ /**
14342
+ * A lightbox: the picture over a dimmed page, with a small toolbar
14343
+ * beneath it. Zoom is the reader's hand (half to three times, clamped),
14344
+ * a quarter turn at a time rotates, Escape and the scrim close — the
14345
+ * dialog machine carries the modal part. `open` may stay with the
14346
+ * caller; left undefined the viewer keeps it to itself.
14347
+ */
14348
+ export interface ImageViewerProps {
14349
+ src: string;
14350
+ alt?: string;
14351
+ open?: boolean;
14352
+ zoomable?: boolean;
14353
+ /** Reports the viewer's next state. */
14354
+ onOpenChange?: (open: boolean) => void;
14355
+ }
14356
+ export declare function ImageViewer({ src, alt, open, zoomable, onOpenChange }: ImageViewerProps): import("react").JSX.Element;
14357
+ //#endregion
14358
+ //#region src/components/input/index.d.ts
14359
+ /** The bare text input: the field recipe — border, surface, focus halo —
14360
+ * on a native control. Standing alone it styles itself from the `invalid`
14361
+ * prop; inside a `Field.Root` it consumes the field context, picking up
14362
+ * the label id, the described-by wiring and the invalid state for free,
14363
+ * which is also the seam the Form validation layer will drive. Disabled
14364
+ * rides the native attribute. */
14365
+ export interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "size"> {
14366
+ value?: string | number;
14367
+ size?: "sm" | "md" | "lg";
14368
+ invalid?: boolean;
14369
+ onValueChange?: (value: string) => void;
14370
+ }
14371
+ export declare function Input({ value, size, invalid, onValueChange, ...rest }: InputProps): import("react").JSX.Element;
14372
+ //#endregion
14373
+ //#region src/components/input-group/index.d.ts
14374
+ export type InputGroupPartProps = HTMLAttributes<HTMLDivElement>;
14375
+ export declare const InputGroup: {
14376
+ ({ children, ...rest }: InputGroupPartProps): import("react").JSX.Element;
14377
+ displayName: string;
14378
+ } & {
14379
+ Root: {
14380
+ ({ children, ...rest }: InputGroupPartProps): import("react").JSX.Element;
14381
+ displayName: string;
14382
+ };
14383
+ Addon: {
14384
+ ({ children, ...rest }: InputGroupPartProps): import("react").JSX.Element;
14385
+ displayName: string;
14386
+ };
14387
+ };
14388
+ //#endregion
13675
14389
  //#region src/components/json-tree-view/index.d.ts
13676
14390
  /** Ark's JsonTreeView, dressed in the paper-and-ink system: the tree-view
13677
14391
  * recipes re-scoped, with value nodes reading as tabular data. The API is
@@ -13683,6 +14397,69 @@ export declare const JsonTreeView: typeof JsonTreeView$1;
13683
14397
  export type KbdProps = HTMLAttributes<HTMLElement>;
13684
14398
  export declare function Kbd({ children, ...rest }: KbdProps): import("react").JSX.Element;
13685
14399
  //#endregion
14400
+ //#region src/components/layout/index.d.ts
14401
+ /** Declare which edge the skeleton reserves for its sider — without
14402
+ * it the root is a single column. */
14403
+ export interface LayoutRootProps extends HTMLAttributes<HTMLDivElement> {
14404
+ sider?: "start" | "end";
14405
+ children?: ReactNode;
14406
+ }
14407
+ /** Which edge the enclosing root reserves for its rail — shared so the
14408
+ * sider's resize handle knows which way the hand pulls. */
14409
+ export interface LayoutContextValue {
14410
+ siderPlacement: () => "start" | "end" | undefined;
14411
+ }
14412
+ /**
14413
+ * The application skeleton: Root, Header, Sider, Content, Footer —
14414
+ * the admin arrangement (Element Plus / AntD keep the same anatomy)
14415
+ * dressed in the paper-and-ink surfaces. The root is a full-height
14416
+ * grid; a declared `sider` turns the columns around to meet whichever
14417
+ * edge the rail stands on.
14418
+ */
14419
+ declare function Root$1({ sider, children, ...rest }: LayoutRootProps): import("react").JSX.Element;
14420
+ export interface LayoutSiderProps extends Omit<HTMLAttributes<HTMLElement>, "children"> {
14421
+ /** The caller drives the fold; the sider mirrors it and echoes every
14422
+ * change back through `onCollapsedChange`. */
14423
+ collapsed?: boolean;
14424
+ /** The rail's resting inline size — a layout parameter, not a visual
14425
+ * token, so it rides an inline variable. */
14426
+ width?: string;
14427
+ /** The inline size when folded. */
14428
+ collapsedWidth?: string;
14429
+ /** Offer the hairline at the flow edge: the rail's width follows the
14430
+ * hand (and the arrow keys), clamped by `minWidth`/`maxWidth`, and
14431
+ * every change rides `onWidthChange`. */
14432
+ resizable?: boolean;
14433
+ /** The rail's narrowest inline size while resizing. */
14434
+ minWidth?: string;
14435
+ /** The rail's widest inline size while resizing. */
14436
+ maxWidth?: string;
14437
+ onCollapsedChange?: (collapsed: boolean) => void;
14438
+ onWidthChange?: (width: string) => void;
14439
+ /** The rail's contents; a function receives `{ collapsed }` so a
14440
+ * caller can swap label content while the edge moves. */
14441
+ children?: ReactNode | ((state: {
14442
+ collapsed: boolean;
14443
+ }) => ReactNode);
14444
+ }
14445
+ declare function Sider({ collapsed, width: widthProp, collapsedWidth, resizable, minWidth, maxWidth, style, onCollapsedChange, onWidthChange, children, ...rest }: LayoutSiderProps): import("react").JSX.Element;
14446
+ export declare const Layout: typeof Root$1 & {
14447
+ Root: typeof Root$1;
14448
+ Header: {
14449
+ ({ children, ...rest }: HTMLAttributes<HTMLElement>): import("react").JSX.Element;
14450
+ displayName: string;
14451
+ };
14452
+ Sider: typeof Sider;
14453
+ Content: {
14454
+ ({ children, ...rest }: HTMLAttributes<HTMLElement>): import("react").JSX.Element;
14455
+ displayName: string;
14456
+ };
14457
+ Footer: {
14458
+ ({ children, ...rest }: HTMLAttributes<HTMLElement>): import("react").JSX.Element;
14459
+ displayName: string;
14460
+ };
14461
+ };
14462
+ //#endregion
13686
14463
  //#region src/components/link/index.d.ts
13687
14464
  export interface LinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {
13688
14465
  underline?: "always" | "hover" | "none";
@@ -13692,6 +14469,44 @@ export interface LinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {
13692
14469
  * always, on hover, or never. */
13693
14470
  export declare function Link({ underline, children, ...rest }: LinkProps): import("react").JSX.Element;
13694
14471
  //#endregion
14472
+ //#region src/components/list/index.d.ts
14473
+ export interface ListRootProps extends HTMLAttributes<HTMLUListElement> {
14474
+ /** One hairline between rows. */
14475
+ bordered?: boolean;
14476
+ /** Every row answers the pointer with a wash. */
14477
+ hoverable?: boolean;
14478
+ }
14479
+ declare function Root({ bordered, hoverable, children, ...rest }: ListRootProps): import("react").JSX.Element;
14480
+ declare namespace Root {
14481
+ var displayName: string;
14482
+ }
14483
+ /** The row's words: `title` and `description` ride their own slots, the
14484
+ * children follow them for anything else. */
14485
+ export interface ListContentProps extends Omit<HTMLAttributes<HTMLDivElement>, "title"> {
14486
+ title?: ReactNode;
14487
+ description?: ReactNode;
14488
+ }
14489
+ declare function Content({ title, description, children, ...rest }: ListContentProps): import("react").JSX.Element;
14490
+ declare namespace Content {
14491
+ var displayName: string;
14492
+ }
14493
+ export declare const List: typeof Root & {
14494
+ Root: typeof Root;
14495
+ Item: {
14496
+ ({ children, ...rest }: HTMLAttributes<HTMLElement>): import("react").JSX.Element;
14497
+ displayName: string;
14498
+ };
14499
+ Leading: {
14500
+ ({ children, ...rest }: HTMLAttributes<HTMLElement>): import("react").JSX.Element;
14501
+ displayName: string;
14502
+ };
14503
+ Content: typeof Content;
14504
+ Actions: {
14505
+ ({ children, ...rest }: HTMLAttributes<HTMLElement>): import("react").JSX.Element;
14506
+ displayName: string;
14507
+ };
14508
+ };
14509
+ //#endregion
13695
14510
  //#region src/components/listbox/index.d.ts
13696
14511
  /** Ark's Listbox, dressed in the paper-and-ink system: quiet rows of ink
13697
14512
  * where the checked row alone takes the flat primary fill. The API is
@@ -13706,6 +14521,16 @@ export declare const Listbox: typeof Listbox$1;
13706
14521
  * cutting off. The API is Ark's own — Root, Viewport, Content, Edge, Item. */
13707
14522
  export declare const Marquee: typeof Marquee$1;
13708
14523
  //#endregion
14524
+ //#region src/components/masonry/index.d.ts
14525
+ /** A wall of uneven heights: items flow down each column before
14526
+ * crossing to the next, so the order is column-first. A row-flow wall
14527
+ * would need grid masonry, which browsers do not ship yet. */
14528
+ export interface MasonryProps extends HTMLAttributes<HTMLDivElement> {
14529
+ columns?: number;
14530
+ gap?: "none" | "xs" | "sm" | "md" | "lg" | "xl";
14531
+ }
14532
+ export declare function Masonry({ columns, gap, ...rest }: MasonryProps): import("react").JSX.Element;
14533
+ //#endregion
13709
14534
  //#region src/components/menu/index.d.ts
13710
14535
  /** Ark's Menu, dressed in the paper-and-ink system: a quiet paper vessel on
13711
14536
  * elevation, hover as light on the row, checked items as the flat ink fill.
@@ -13714,6 +14539,37 @@ export declare const Marquee: typeof Marquee$1;
13714
14539
  * TriggerItem, Separator, Arrow, ArrowTip. */
13715
14540
  export declare const Menu: typeof Menu$1;
13716
14541
  //#endregion
14542
+ //#region src/components/menubar/index.d.ts
14543
+ export interface MenubarEntry {
14544
+ label: string;
14545
+ value: string;
14546
+ danger?: boolean;
14547
+ disabled?: boolean;
14548
+ }
14549
+ export interface MenubarGroup {
14550
+ label: string;
14551
+ items: MenubarEntry[];
14552
+ }
14553
+ /**
14554
+ * A desktop-style menu bar: a row of quiet ghost triggers, each opening
14555
+ * the same paper vessel as the menu family. The triggers are our own
14556
+ * buttons grafted onto the menu machine's trigger via `asChild` — the
14557
+ * machine keeps the trigger element (positioning, focus restore,
14558
+ * `data-state`) while the element wears the menubar scope. The popups
14559
+ * keep the menu parts untouched, so the menu stylesheet dresses them.
14560
+ *
14561
+ * Keyboard note: the triggers move between each other with Tab, not
14562
+ * arrow keys — cross-menu arrow traversal is out of scope for this
14563
+ * version. Inside an open menu the machine handles arrows and Escape.
14564
+ */
14565
+ export interface MenubarProps extends Omit<HTMLAttributes<HTMLDivElement>, "onSelect"> {
14566
+ /** The menus across the bar, each with its entries. */
14567
+ items: MenubarGroup[];
14568
+ /** Called with the entry's `value` when it is chosen. */
14569
+ onSelect?: (value: string) => void;
14570
+ }
14571
+ export declare function Menubar({ items, onSelect, children, ...rest }: MenubarProps): import("react").JSX.Element;
14572
+ //#endregion
13717
14573
  //#region src/components/meter/index.d.ts
13718
14574
  export interface MeterRootProps extends HTMLAttributes<HTMLElement> {
13719
14575
  /** The measured value — clamped between min and max. */
@@ -13734,7 +14590,7 @@ export declare const Meter: (({ value, min, max, level, label, children, ...rest
13734
14590
  ({ children, ...rest }: HTMLAttributes<HTMLElement>): import("react").JSX.Element;
13735
14591
  displayName: string;
13736
14592
  };
13737
- Track: ({ children, ...rest }: HTMLAttributes<HTMLElement>) => import("react").JSX.Element;
14593
+ Track: ({ ...rest }: HTMLAttributes<HTMLElement>) => import("react").JSX.Element;
13738
14594
  };
13739
14595
  //#endregion
13740
14596
  //#region src/components/navigation-menu/index.d.ts
@@ -13773,6 +14629,25 @@ export declare const PasswordInput: typeof PasswordInput$1;
13773
14629
  * Root, Label, Control, Input, HiddenInput. */
13774
14630
  export declare const PinInput: typeof PinInput$1;
13775
14631
  //#endregion
14632
+ //#region src/components/popconfirm/index.d.ts
14633
+ /**
14634
+ * A question at the point of no return: the trigger opens a small
14635
+ * anchored vessel carrying the message and two answers. Confirmation
14636
+ * and cancellation are the caller's to act on — the panel closes
14637
+ * either way. The children are the trigger; give it a single element
14638
+ * (wrap a group in a span otherwise).
14639
+ */
14640
+ export interface PopconfirmProps {
14641
+ /** The question the reader is answering. */
14642
+ message: string;
14643
+ confirmText?: string;
14644
+ cancelText?: string;
14645
+ children?: ReactNode;
14646
+ onConfirm?: () => void;
14647
+ onCancel?: () => void;
14648
+ }
14649
+ export declare function Popconfirm({ message, confirmText, cancelText, children, onConfirm, onCancel }: PopconfirmProps): import("react").JSX.Element;
14650
+ //#endregion
13776
14651
  //#region src/components/popover/index.d.ts
13777
14652
  /** Ark's Popover, dressed in the paper-and-ink system: a paper vessel that
13778
14653
  * dissolves in on elevation, anchored to its trigger by a whisker arrow. The
@@ -13787,6 +14662,27 @@ export declare const Popover: typeof Popover$1;
13787
14662
  * CircleTrack, CircleRange. */
13788
14663
  export declare const Progress: typeof Progress$1;
13789
14664
  //#endregion
14665
+ //#region src/components/progress-group/index.d.ts
14666
+ /** One verdict on the bar. */
14667
+ export interface ProgressSegment {
14668
+ value: number;
14669
+ label?: string;
14670
+ pigment?: "primary" | "success" | "warning" | "danger" | "info";
14671
+ }
14672
+ /**
14673
+ * One bar, several verdicts: the segments stand shoulder to shoulder,
14674
+ * each as wide as its share of the whole and speaking its own pigment;
14675
+ * the legend reads them back beneath (swatch, label, value) unless the
14676
+ * caller declines it. The whole is the sum of the parts unless the
14677
+ * caller brings a larger one — the remainder then shows as groove.
14678
+ */
14679
+ export interface ProgressGroupProps extends HTMLAttributes<HTMLDivElement> {
14680
+ segments: ProgressSegment[];
14681
+ max?: number;
14682
+ showLegend?: boolean;
14683
+ }
14684
+ export declare function ProgressGroup({ segments, max, showLegend, ...rest }: ProgressGroupProps): import("react").JSX.Element;
14685
+ //#endregion
13790
14686
  //#region src/components/qr-code/index.d.ts
13791
14687
  /** Ark's QrCode, dressed in the paper-and-ink system: the pattern prints in
13792
14688
  * ink on the page, with an optional paper badge and a seal-cut download
@@ -13859,12 +14755,57 @@ export declare function Skeleton({ ...rest }: SkeletonProps): import("react").JS
13859
14755
  * Thumb, MarkerGroup, Marker, DraggingIndicator, HiddenInput. */
13860
14756
  export declare const Slider: typeof Slider$1;
13861
14757
  //#endregion
14758
+ //#region src/components/split-button/index.d.ts
14759
+ export interface SplitButtonEntry {
14760
+ label: string;
14761
+ /** Handed back with `onSelect` when the entry is chosen. */
14762
+ value: string;
14763
+ danger?: boolean;
14764
+ disabled?: boolean;
14765
+ }
14766
+ export interface SplitButtonProps extends Omit<HTMLAttributes<HTMLDivElement>, "onSelect"> {
14767
+ /** The main action's label. */
14768
+ label: string;
14769
+ /** The dropdown's entries. */
14770
+ items?: SplitButtonEntry[];
14771
+ /** How both halves rest; the arrow always reads as one control with
14772
+ * the main button. */
14773
+ variant?: "solid" | "outline" | "ghost" | "subtle";
14774
+ tone?: "ink" | "info" | "success" | "warning" | "danger";
14775
+ size?: "sm" | "md" | "lg";
14776
+ disabled?: boolean;
14777
+ /** The main button was pressed. */
14778
+ onClick?: () => void;
14779
+ /** An entry was chosen; carries its `value`. */
14780
+ onSelect?: (value: string) => void;
14781
+ }
14782
+ /**
14783
+ * A primary action with its alternatives one seam away: the main button
14784
+ * fires `onClick`, the fitted arrow opens a paper vessel of the same
14785
+ * register whose entries report `onSelect` with their value. The arrow
14786
+ * is the menu machine's trigger grafting the button recipe — the
14787
+ * machine keeps the element (positioning, focus, `data-state`), the
14788
+ * button stylesheet's trigger register dresses it. The popup keeps the
14789
+ * menu parts untouched.
14790
+ */
14791
+ export declare function SplitButton({ label, items, variant, tone, size, disabled, onClick, onSelect, ...rest }: SplitButtonProps): import("react").JSX.Element;
14792
+ //#endregion
13862
14793
  //#region src/components/splitter/index.d.ts
13863
14794
  /** Ark's Splitter, dressed in the paper-and-ink system: panels divide on
13864
14795
  * a hairline and a small paper-seal thumb answers the hand. The API is
13865
14796
  * Ark's own — Root, Panel, ResizeTrigger, ResizeTriggerIndicator. */
13866
14797
  export declare const Splitter: typeof Splitter$1;
13867
14798
  //#endregion
14799
+ //#region src/components/stack/index.d.ts
14800
+ export interface StackProps extends HTMLAttributes<HTMLDivElement> {
14801
+ direction?: "column" | "row";
14802
+ gap?: "none" | "xs" | "sm" | "md" | "lg" | "xl";
14803
+ wrap?: boolean;
14804
+ align?: string;
14805
+ justify?: string;
14806
+ }
14807
+ export declare function Stack({ direction, gap, wrap, align, justify, ...rest }: StackProps): import("react").JSX.Element;
14808
+ //#endregion
13868
14809
  //#region src/components/page-header/index.d.ts
13869
14810
  export declare const PageHeader: {
13870
14811
  ({ children, ...rest }: HTMLAttributes<HTMLElement>): import("react").JSX.Element;
@@ -13907,6 +14848,7 @@ export declare function Spinner({ size, children, ...rest }: SpinnerProps): impo
13907
14848
  //#region src/components/stat/index.d.ts
13908
14849
  export interface StatDeltaProps extends HTMLAttributes<HTMLElement> {
13909
14850
  direction?: "up" | "down" | "flat";
14851
+ "data-direction"?: string;
13910
14852
  }
13911
14853
  export declare const Stat: {
13912
14854
  ({ children, ...rest }: HTMLAttributes<HTMLElement>): import("react").JSX.Element;
@@ -14043,6 +14985,19 @@ export interface DataTableProps {
14043
14985
  }
14044
14986
  export declare function DataTable(rawProps: DataTableProps): import("react").JSX.Element;
14045
14987
  //#endregion
14988
+ //#region src/components/textarea/index.d.ts
14989
+ /** The bare multi-line input: the field recipe on a `<textarea>`, sized
14990
+ * by rows and resizable in the block direction. Standing alone it styles
14991
+ * itself from the `invalid` prop; inside a `Field.Root` it consumes the
14992
+ * field context, picking up the label id, the described-by wiring and
14993
+ * the invalid state for free. Disabled rides the native attribute. */
14994
+ export interface TextareaProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {
14995
+ value?: string;
14996
+ invalid?: boolean;
14997
+ onValueChange?: (value: string) => void;
14998
+ }
14999
+ export declare function Textarea({ value, invalid, onValueChange, ...rest }: TextareaProps): import("react").JSX.Element;
15000
+ //#endregion
14046
15001
  //#region src/components/timeline/index.d.ts
14047
15002
  export declare const Timeline: {
14048
15003
  ({ children, ...rest }: HTMLAttributes<HTMLElement>): import("react").JSX.Element;
@@ -14146,6 +15101,50 @@ export declare const Tooltip: typeof Tooltip$1;
14146
15101
  * useTour. */
14147
15102
  export declare const Tour: typeof Tour$1;
14148
15103
  //#endregion
15104
+ //#region src/components/transfer/index.d.ts
15105
+ export interface TransferItem {
15106
+ label: string;
15107
+ value: string;
15108
+ disabled?: boolean;
15109
+ }
15110
+ export interface TransferProps extends HTMLAttributes<HTMLDivElement> {
15111
+ value?: string[];
15112
+ data: TransferItem[];
15113
+ titles?: string[];
15114
+ searchable?: boolean;
15115
+ disabled?: boolean;
15116
+ onValueChange?: (value: string[]) => void;
15117
+ }
15118
+ /**
15119
+ * Two ledgers and a crossing: items sit in the source column until the
15120
+ * reader checks them and walks them across — and back, the same way.
15121
+ * `value` is the target column's value list; everything else in `data`
15122
+ * stays on the left. `searchable` adds a filter line to each panel.
15123
+ */
15124
+ export declare function Transfer({ value, data, titles, searchable, disabled, onValueChange, ...rest }: TransferProps): import("react").JSX.Element;
15125
+ //#endregion
15126
+ //#region src/components/tree-select/index.d.ts
15127
+ export interface TreeSelectNode {
15128
+ label: string;
15129
+ value: string;
15130
+ children?: TreeSelectNode[];
15131
+ disabled?: boolean;
15132
+ }
15133
+ /**
15134
+ * A tree behind a field: the control reads like an input, the vessel
15135
+ * below walks the hierarchy, and one leaf click closes the deal. Single
15136
+ * selection — the chosen label rides on the control, its value rides in
15137
+ * `value`.
15138
+ */
15139
+ export interface TreeSelectProps extends HTMLAttributes<HTMLDivElement> {
15140
+ value?: string;
15141
+ data: TreeSelectNode[];
15142
+ placeholder?: string;
15143
+ disabled?: boolean;
15144
+ onValueChange?: (value: string) => void;
15145
+ }
15146
+ export declare function TreeSelect({ value, data, placeholder, disabled, onValueChange, ...rest }: TreeSelectProps): import("react").JSX.Element;
15147
+ //#endregion
14149
15148
  //#region src/components/tree-view/index.d.ts
14150
15149
  /** Ark's TreeView, dressed in the paper-and-ink system: quiet rows where
14151
15150
  * selection is pure light on the paper, one hairline plumb line per depth,
@@ -14156,4 +15155,19 @@ export declare const Tour: typeof Tour$1;
14156
15155
  * NodeRenameInput, plus createTreeCollection. */
14157
15156
  export declare const TreeView: typeof TreeView$1;
14158
15157
  //#endregion
14159
- export { Card$1 as Card, type ColumnDef, type CreateToasterReturn, type DataUIPart, type DateInputFocusChangeDetails, type DateInputValueChangeDetails, type DatePickerFocusChangeDetails, type DatePickerOpenChangeDetails, type DatePickerValueChangeDetails, type DatePickerViewChangeDetails, type DatePickerVisibleRangeChangeDetails, type DialogOpenChangeDetails, type FileUIPart, FlexRender, type ReasoningUIPart, Response$1 as Response, type SortingState, type SourceDocumentUIPart, type SourceUrlUIPart, type StepStartUIPart, type TextUIPart, type ToolUIPart, type TourInteractOutsideEvent, type TourPointerDownOutsideEvent, type TourStepDetails, type TreeViewCheckedChangeDetails, type TreeViewExpandedChangeDetails, type TreeViewFocusChangeDetails, type TreeViewSelectionChangeDetails, type UIMessage, type UIMessagePart, createColumnHelper, createListCollection, createToaster, useTour };
15158
+ //#region src/components/watermark/index.d.ts
15159
+ export interface WatermarkProps extends HTMLAttributes<HTMLDivElement> {
15160
+ content: string;
15161
+ opacity?: number;
15162
+ rotate?: number;
15163
+ fontSize?: string;
15164
+ }
15165
+ /**
15166
+ * The paper bears its seal beneath the content: a canvas draws the
15167
+ * text once into a tile (rotated, faint, crisp at the screen's pixel
15168
+ * density) and the marks layer repeats it over the children. The seal
15169
+ * redraws itself when a prop turns — and it never takes a pointer.
15170
+ */
15171
+ export declare function Watermark({ content, opacity, rotate, fontSize, children, ...rest }: WatermarkProps): import("react").JSX.Element;
15172
+ //#endregion
15173
+ export { Action as AiAction, Attachment as AiAttachment, Attachments as AiAttachments, Message as AiMessage, PromptInput as AiPromptInput, Reasoning as AiReasoning, Response$1 as AiResponse, Response$1 as Response, Source as AiSource, Sources as AiSources, Suggestion as AiSuggestion, Tool as AiTool, Card$1 as Card, ClientOnly, type ClientOnlyProps, type CollectionItem, type CollectionOptions, type ColumnDef, type CreateToasterReturn, type DataUIPart, type DateInputFocusChangeDetails, type DateInputValueChangeDetails, type DatePickerFocusChangeDetails, type DatePickerOpenChangeDetails, type DatePickerValueChangeDetails, type DatePickerViewChangeDetails, type DatePickerVisibleRangeChangeDetails, type DialogOpenChangeDetails, DownloadTrigger, type DownloadTriggerBaseProps, type DownloadTriggerProps, type DownloadableData, type FilePathTreeNode, type FileUIPart, type FlatTreeNode, FlexRender, FocusTrap, type FocusTrapBaseProps, type FocusTrapProps, type GridCollection, type GridCollectionOptions, type ListCollection, Presence, type PresenceBaseProps, type PresenceProps, PresenceProvider, type ReasoningUIPart, type SortingState, type SourceDocumentUIPart, type SourceUrlUIPart, type StepStartUIPart, type TextUIPart, type ToolUIPart, type TourInteractOutsideEvent, type TourPointerDownOutsideEvent, type TourStepDetails, type TreeCollection, type TreeCollectionOptions, type TreeNode, type TreeViewCheckedChangeDetails, type TreeViewExpandedChangeDetails, type TreeViewFocusChangeDetails, type TreeViewSelectionChangeDetails, type UIMessage, type UIMessagePart, type UseAsyncListProps, type UseAsyncListReturn, type UseDownloadProps, type UseDownloadReturn, type UseListCollectionProps, type UseListCollectionReturn, type UseListSelectionProps, type UseListSelectionReturn, type UseMentionsHandlers, type UseMentionsOptions, type UsePresenceContext, type UsePresenceProps, type UsePresenceReturn, createColumnHelper, createFileTreeCollection, createGridCollection, createToaster, createTreeCollection, useAsyncList, useDownload, useListCollection, useListSelection, usePresence, usePresenceContext, useTour };