@bysages/react 0.0.1 → 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";
@@ -63,6 +68,264 @@ export * from "@bysages/core";
63
68
  * API is Ark's own — Root, Item, ItemTrigger, ItemContent, ItemIndicator. */
64
69
  export declare const Accordion: typeof Accordion$1;
65
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
66
329
  //#region ../../node_modules/.pnpm/@ai-sdk+provider@4.0.14/node_modules/@ai-sdk/provider/dist/index.d.ts
67
330
  /**
68
331
  * Audio format configuration shared by provider V4 model specifications.
@@ -7584,7 +7847,7 @@ interface ToJSONSchemaContext {
7584
7847
  } | undefined;
7585
7848
  }
7586
7849
  declare namespace util_d_exports {
7587
- 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 };
7588
7851
  }
7589
7852
  type JSONType = string | number | boolean | null | JSONType[] | {
7590
7853
  [key: string]: JSONType;
@@ -7755,7 +8018,7 @@ declare function extend(schema: $ZodObject, shape: $ZodShape): any;
7755
8018
  declare function safeExtend(schema: $ZodObject, shape: $ZodShape): any;
7756
8019
  declare function merge(a: $ZodObject, b: $ZodObject): any;
7757
8020
  declare function partial(Class: SchemaClass<$ZodOptional> | null, schema: $ZodObject, mask: object | undefined, name?: string): any;
7758
- 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;
7759
8022
  type Constructor<T, Def extends any[] = any[]> = new (...args: Def) => T;
7760
8023
  declare function aborted(x: ParsePayload, startIndex?: number): boolean;
7761
8024
  declare function explicitlyAborted(x: ParsePayload, startIndex?: number): boolean;
@@ -10137,13 +10400,13 @@ type Schema<OBJECT = unknown> = {
10137
10400
  };
10138
10401
  type LazySchema<SCHEMA> = () => Schema<SCHEMA>;
10139
10402
  type ZodSchema<SCHEMA = any> = ZodType<SCHEMA, ZodTypeDef, any> | $ZodType<SCHEMA, any>;
10140
- type StandardSchema<SCHEMA = any> = StandardSchemaV1$2<unknown, SCHEMA> & {
10403
+ type StandardSchema$1<SCHEMA = any> = StandardSchemaV1$2<unknown, SCHEMA> & {
10141
10404
  readonly '~standard': StandardSchemaV1$2.Props<unknown, SCHEMA> & {
10142
10405
  readonly jsonSchema?: StandardJSONSchemaV1.Converter;
10143
10406
  };
10144
10407
  };
10145
- type FlexibleSchema<SCHEMA = any> = Schema<SCHEMA> | LazySchema<SCHEMA> | ZodSchema<SCHEMA> | StandardSchema<SCHEMA>;
10146
- 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;
10147
10410
  /**
10148
10411
  * A context object that is passed into tool execution.
10149
10412
  */
@@ -13192,76 +13455,8 @@ declare global {
13192
13455
  }
13193
13456
  //#endregion
13194
13457
  //#region src/components/ai/index.d.ts
13195
- export type ToolStatus = "pending" | "running" | "completed" | "error";
13196
- /** Whose stroke this is — the user's words sit in a recessed bubble,
13197
- * the assistant speaks flat on the paper. */
13198
- export interface MessageProps extends HTMLAttributes<HTMLElement> {
13199
- role?: "user" | "assistant" | "system";
13200
- children?: ReactNode;
13201
- }
13202
- export declare function Message({ role, children, ...rest }: MessageProps): import("react").JSX.Element;
13203
- /** Markdown set on the paper. Rendering goes through
13204
- * `@tanstack/markdown`, whose defaults leave raw HTML and executable
13205
- * links inert — streaming-safe by construction. */
13206
- export interface ResponseProps extends HTMLAttributes<HTMLDivElement> {
13207
- content: string;
13208
- }
13209
- declare function Response$1({ content, ...rest }: ResponseProps): import("react").JSX.Element;
13210
- /** The model's thought, folded by the shared collapsible in its quiet
13211
- * register: bare ink for a trigger, the thought on one hairline. */
13212
- export interface ReasoningProps extends HTMLAttributes<HTMLDivElement> {
13213
- label?: string;
13214
- defaultOpen?: boolean;
13215
- children?: ReactNode;
13216
- }
13217
- export declare function Reasoning({ label, children, ...rest }: ReasoningProps): import("react").JSX.Element;
13218
- /** A tool call: the shared collapsible as the vessel — the name it was
13219
- * reached by and the state it reached in on the trigger, its input and
13220
- * output folded inside. */
13221
- export interface ToolProps extends HTMLAttributes<HTMLDivElement> {
13222
- name: string;
13223
- /** Friendlier trigger words than the raw tool name (a `label` slot
13224
- * in the Vue/Svelte wrappers). */
13225
- label?: ReactNode;
13226
- status?: ToolStatus;
13227
- defaultOpen?: boolean;
13228
- input?: ReactNode;
13229
- output?: ReactNode;
13230
- }
13231
- export declare function Tool({ name, label, status, input, output, ...rest }: ToolProps): import("react").JSX.Element;
13232
- /** One place the ink came from; href and the rest ride the anchor. */
13233
- export interface SourceProps extends HTMLAttributes<HTMLAnchorElement> {
13234
- href: string;
13235
- children?: ReactNode;
13236
- }
13237
- export declare function Source({ href, children, ...rest }: SourceProps): import("react").JSX.Element;
13238
- /** A quiet icon button — copy, retry, thumbs. The label names it to
13239
- * assistive tech and as the hover title. The control itself is the
13240
- * shared Button in its ghost register. */
13241
- export interface ActionProps extends HTMLAttributes<HTMLButtonElement> {
13242
- label: string;
13243
- children?: ReactNode;
13244
- }
13245
- export declare function Action({ label, children, ...rest }: ActionProps): import("react").JSX.Element;
13246
- /** A seal-cut button proposing the next stroke; selection hands back
13247
- * the prompt. The shared Button in its outline register. */
13248
- export interface SuggestionProps extends Omit<HTMLAttributes<HTMLButtonElement>, "onSelect"> {
13249
- prompt: string;
13250
- onSelect?: (prompt: string) => void;
13251
- }
13252
- export declare function Suggestion({ prompt, onSelect, ...rest }: SuggestionProps): import("react").JSX.Element;
13253
- /** The prompt vessel: the shared field textarea — self-growing on the
13254
- * machine's autoresize — over a footer row carrying the submit seal.
13255
- * Controlled — bind `value` and take the text on `submit`. Enter
13256
- * sends; Shift+Enter breaks the line. */
13257
- export interface PromptInputProps extends Omit<HTMLAttributes<HTMLFormElement>, "onSubmit"> {
13258
- value: string;
13259
- onValueChange?: (value: string) => void;
13260
- onSubmit?: (value: string) => void;
13261
- placeholder?: string;
13262
- disabled?: boolean;
13263
- }
13264
- 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. */
13265
13460
  export declare const Ai: {
13266
13461
  ({ children, ...rest }: HTMLAttributes<HTMLElement>): import("react").JSX.Element;
13267
13462
  displayName: string;
@@ -13270,32 +13465,46 @@ export declare const Ai: {
13270
13465
  ({ children, ...rest }: HTMLAttributes<HTMLElement>): import("react").JSX.Element;
13271
13466
  displayName: string;
13272
13467
  };
13273
- Message: typeof Message;
13274
13468
  MessageContent: {
13275
13469
  ({ children, ...rest }: HTMLAttributes<HTMLElement>): import("react").JSX.Element;
13276
13470
  displayName: string;
13277
13471
  };
13278
- Response: typeof Response$1;
13279
- Reasoning: typeof Reasoning;
13280
- Tool: typeof Tool;
13281
- Sources: {
13472
+ Actions: {
13282
13473
  ({ children, ...rest }: HTMLAttributes<HTMLElement>): import("react").JSX.Element;
13283
13474
  displayName: string;
13284
13475
  };
13285
- Source: typeof Source;
13286
- Actions: {
13476
+ Loader: {
13287
13477
  ({ children, ...rest }: HTMLAttributes<HTMLElement>): import("react").JSX.Element;
13288
13478
  displayName: string;
13289
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;
13290
13486
  Action: typeof Action;
13291
13487
  Suggestion: typeof Suggestion;
13292
13488
  PromptInput: typeof PromptInput;
13293
- Loader: {
13294
- ({ children, ...rest }: HTMLAttributes<HTMLElement>): import("react").JSX.Element;
13295
- displayName: string;
13296
- };
13297
13489
  };
13298
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
13299
13508
  //#region src/components/alert/index.d.ts
13300
13509
  export type AlertStatus = "ink" | "info" | "success" | "warning" | "danger";
13301
13510
  /** A notice drawn on the page: a wash of the status pigment, one heavier
@@ -13306,13 +13515,13 @@ export interface AlertProps extends HTMLAttributes<HTMLDivElement> {
13306
13515
  children?: ReactNode;
13307
13516
  }
13308
13517
  declare function AlertRoot({ status, children, ...rest }: AlertProps): import("react").JSX.Element;
13309
- declare function Icon(): import("react").JSX.Element;
13518
+ declare function Icon$1(): import("react").JSX.Element;
13310
13519
  declare function Body({ children, ...rest }: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
13311
13520
  declare function Title({ children, ...rest }: HTMLAttributes<HTMLParagraphElement>): import("react").JSX.Element;
13312
13521
  declare function Description({ children, ...rest }: HTMLAttributes<HTMLParagraphElement>): import("react").JSX.Element;
13313
13522
  export declare const Alert: typeof AlertRoot & {
13314
13523
  Root: typeof AlertRoot;
13315
- Icon: typeof Icon;
13524
+ Icon: typeof Icon$1;
13316
13525
  Body: typeof Body;
13317
13526
  Title: typeof Title;
13318
13527
  Description: typeof Description;
@@ -13325,6 +13534,33 @@ export declare const Alert: typeof AlertRoot & {
13325
13534
  * Marker, HiddenInput. */
13326
13535
  export declare const AngleSlider: typeof AngleSlider$1;
13327
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
13328
13564
  //#region src/components/avatar/index.d.ts
13329
13565
  /** Ark's Avatar, dressed in the paper-and-ink system: a circular seal on
13330
13566
  * inset paper that holds initials until the image loads over them. The
@@ -13337,6 +13573,28 @@ export declare const Avatar: typeof Avatar$1;
13337
13573
  export type AvatarGroupProps = HTMLAttributes<HTMLDivElement>;
13338
13574
  export declare function AvatarGroup({ children, ...rest }: AvatarGroupProps): import("react").JSX.Element;
13339
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
13340
13598
  //#region src/components/badge/index.d.ts
13341
13599
  /** A small seal of state. Ink is the neutral tone; the four semantic
13342
13600
  * pigments are fixed. Subtle and outline re-register the same pigment. */
@@ -13395,6 +13653,29 @@ export interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
13395
13653
  }
13396
13654
  export declare function Button({ variant, tone, size, square, asChild, disabled, type, children, ...rest }: ButtonProps): import("react").JSX.Element | null;
13397
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
13398
13679
  //#region src/components/banner/index.d.ts
13399
13680
  export type BannerStatus = "ink" | "info" | "success" | "warning" | "danger";
13400
13681
  export interface BannerRootProps extends HTMLAttributes<HTMLElement> {
@@ -13422,7 +13703,7 @@ export declare const Banner: (({ status, children, ...rest }: BannerRootProps) =
13422
13703
  ({ children, ...rest }: HTMLAttributes<HTMLElement>): import("react").JSX.Element;
13423
13704
  displayName: string;
13424
13705
  };
13425
- Close: ({ children, ...rest }: HTMLAttributes<HTMLButtonElement>) => import("react").JSX.Element;
13706
+ Close: (rest: ButtonHTMLAttributes<HTMLButtonElement>) => import("react").JSX.Element;
13426
13707
  };
13427
13708
  //#endregion
13428
13709
  //#region src/components/calendar/index.d.ts
@@ -13485,6 +13766,31 @@ declare const Card$1: {
13485
13766
  };
13486
13767
  };
13487
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
13488
13794
  //#region src/components/carousel/index.d.ts
13489
13795
  /** Ark's Carousel, dressed in the paper-and-ink system: slides ride in one
13490
13796
  * hairline-clipped lane, the triggers are quiet outline controls, and the
@@ -13500,6 +13806,27 @@ export declare const Carousel: typeof Carousel$1;
13500
13806
  * HiddenInput. */
13501
13807
  export declare const Checkbox: typeof Checkbox$1;
13502
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
13503
13830
  //#region src/components/chip/index.d.ts
13504
13831
  /** A counting coin: the numeric value, capped at `max` with an ellipsis
13505
13832
  * of the remainder ("99+"). */
@@ -13543,6 +13870,115 @@ export declare const ColorPicker: typeof ColorPicker$1;
13543
13870
  * Item, ItemText, ItemIndicator, ItemGroup, ItemGroupLabel. */
13544
13871
  export declare const Combobox: typeof Combobox$1;
13545
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
13546
13982
  //#region src/components/date-input/index.d.ts
13547
13983
  /** Ark's DateInput, dressed in the paper-and-ink system: a segmented
13548
13984
  * field where the focused segment takes the flat ink fill. The API is
@@ -13559,6 +13995,30 @@ export declare const DateInput: typeof DateInput$1;
13559
13995
  * NextTrigger, Table*, MonthSelect, YearSelect, PresetTrigger. */
13560
13996
  export declare const DatePicker: typeof DatePicker$1;
13561
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
13562
14022
  //#region src/components/dialog/index.d.ts
13563
14023
  /** Ark's Dialog, dressed in the paper-and-ink system: the sheet dissolves
13564
14024
  * in on elevation, the backdrop fades, and nested overlays stack through
@@ -13574,6 +14034,31 @@ export declare const Dialog: typeof Dialog$1;
13574
14034
  * Description, CloseTrigger, SwipeArea. */
13575
14035
  export declare const Drawer: typeof Drawer$1;
13576
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
13577
14062
  //#region src/components/editable/index.d.ts
13578
14063
  /** Ark's Editable, dressed in the paper-and-ink system: bare ink while
13579
14064
  * reading, the full field recipe while editing. The API is Ark's own —
@@ -13581,6 +14066,15 @@ export declare const Drawer: typeof Drawer$1;
13581
14066
  * CancelTrigger, Control. */
13582
14067
  export declare const Editable: typeof Editable$1;
13583
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
13584
14078
  //#region src/components/empty/index.d.ts
13585
14079
  export declare const Empty: {
13586
14080
  ({ children, ...rest }: HTMLAttributes<HTMLElement>): import("react").JSX.Element;
@@ -13630,6 +14124,58 @@ export declare const Fieldset: typeof Fieldset$1;
13630
14124
  * Context. */
13631
14125
  export declare const FileUpload: typeof FileUpload$1;
13632
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
13633
14179
  //#region src/components/floating-panel/index.d.ts
13634
14180
  /** Ark's FloatingPanel, dressed in the paper-and-ink system: the shared
13635
14181
  * popup vessel let loose — a draggable, resizable sheet whose header is the
@@ -13638,6 +14184,79 @@ export declare const FileUpload: typeof FileUpload$1;
13638
14184
  * Body. */
13639
14185
  export declare const FloatingPanel: typeof FloatingPanel$1;
13640
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
13641
14260
  //#region src/components/format/index.d.ts
13642
14261
  /** Ark's Format, dressed in the paper-and-ink system: Intl formatting for
13643
14262
  * numbers, currency, bytes and relative time. The components render bare
@@ -13656,6 +14275,18 @@ export declare const Format: typeof Format$1;
13656
14275
  * to hook. The API is Ark's own. */
13657
14276
  export declare const Frame: import("react").ForwardRefExoticComponent<import("@ark-ui/react/frame").FrameProps & import("react").RefAttributes<HTMLIFrameElement>>;
13658
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
13659
14290
  //#region src/components/highlight/index.d.ts
13660
14291
  /** Ark's Highlight, dressed in the paper-and-ink system: query hits are
13661
14292
  * strokes of pigment on the page — a quiet tint of the accent behind the
@@ -13669,6 +14300,36 @@ export declare const Highlight: (props: import("@ark-ui/react/highlight").Highli
13669
14300
  * API is Ark's own — Root, Trigger, Positioner, Content, Arrow, ArrowTip. */
13670
14301
  export declare const HoverCard: typeof HoverCard$1;
13671
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
13672
14333
  //#region src/components/image-cropper/index.d.ts
13673
14334
  /** Ark's ImageCropper, dressed in the paper-and-ink system: a rounded vessel
13674
14335
  * holding the photograph, one lit selection window framed by light hairlines.
@@ -13676,6 +14337,55 @@ export declare const HoverCard: typeof HoverCard$1;
13676
14337
  * Context. */
13677
14338
  export declare const ImageCropper: typeof ImageCropper$1;
13678
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
13679
14389
  //#region src/components/json-tree-view/index.d.ts
13680
14390
  /** Ark's JsonTreeView, dressed in the paper-and-ink system: the tree-view
13681
14391
  * recipes re-scoped, with value nodes reading as tabular data. The API is
@@ -13687,6 +14397,69 @@ export declare const JsonTreeView: typeof JsonTreeView$1;
13687
14397
  export type KbdProps = HTMLAttributes<HTMLElement>;
13688
14398
  export declare function Kbd({ children, ...rest }: KbdProps): import("react").JSX.Element;
13689
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
13690
14463
  //#region src/components/link/index.d.ts
13691
14464
  export interface LinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {
13692
14465
  underline?: "always" | "hover" | "none";
@@ -13696,6 +14469,44 @@ export interface LinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {
13696
14469
  * always, on hover, or never. */
13697
14470
  export declare function Link({ underline, children, ...rest }: LinkProps): import("react").JSX.Element;
13698
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
13699
14510
  //#region src/components/listbox/index.d.ts
13700
14511
  /** Ark's Listbox, dressed in the paper-and-ink system: quiet rows of ink
13701
14512
  * where the checked row alone takes the flat primary fill. The API is
@@ -13710,6 +14521,16 @@ export declare const Listbox: typeof Listbox$1;
13710
14521
  * cutting off. The API is Ark's own — Root, Viewport, Content, Edge, Item. */
13711
14522
  export declare const Marquee: typeof Marquee$1;
13712
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
13713
14534
  //#region src/components/menu/index.d.ts
13714
14535
  /** Ark's Menu, dressed in the paper-and-ink system: a quiet paper vessel on
13715
14536
  * elevation, hover as light on the row, checked items as the flat ink fill.
@@ -13718,6 +14539,37 @@ export declare const Marquee: typeof Marquee$1;
13718
14539
  * TriggerItem, Separator, Arrow, ArrowTip. */
13719
14540
  export declare const Menu: typeof Menu$1;
13720
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
13721
14573
  //#region src/components/meter/index.d.ts
13722
14574
  export interface MeterRootProps extends HTMLAttributes<HTMLElement> {
13723
14575
  /** The measured value — clamped between min and max. */
@@ -13738,7 +14590,7 @@ export declare const Meter: (({ value, min, max, level, label, children, ...rest
13738
14590
  ({ children, ...rest }: HTMLAttributes<HTMLElement>): import("react").JSX.Element;
13739
14591
  displayName: string;
13740
14592
  };
13741
- Track: ({ children, ...rest }: HTMLAttributes<HTMLElement>) => import("react").JSX.Element;
14593
+ Track: ({ ...rest }: HTMLAttributes<HTMLElement>) => import("react").JSX.Element;
13742
14594
  };
13743
14595
  //#endregion
13744
14596
  //#region src/components/navigation-menu/index.d.ts
@@ -13777,6 +14629,25 @@ export declare const PasswordInput: typeof PasswordInput$1;
13777
14629
  * Root, Label, Control, Input, HiddenInput. */
13778
14630
  export declare const PinInput: typeof PinInput$1;
13779
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
13780
14651
  //#region src/components/popover/index.d.ts
13781
14652
  /** Ark's Popover, dressed in the paper-and-ink system: a paper vessel that
13782
14653
  * dissolves in on elevation, anchored to its trigger by a whisker arrow. The
@@ -13791,6 +14662,27 @@ export declare const Popover: typeof Popover$1;
13791
14662
  * CircleTrack, CircleRange. */
13792
14663
  export declare const Progress: typeof Progress$1;
13793
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
13794
14686
  //#region src/components/qr-code/index.d.ts
13795
14687
  /** Ark's QrCode, dressed in the paper-and-ink system: the pattern prints in
13796
14688
  * ink on the page, with an optional paper badge and a seal-cut download
@@ -13863,12 +14755,57 @@ export declare function Skeleton({ ...rest }: SkeletonProps): import("react").JS
13863
14755
  * Thumb, MarkerGroup, Marker, DraggingIndicator, HiddenInput. */
13864
14756
  export declare const Slider: typeof Slider$1;
13865
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
13866
14793
  //#region src/components/splitter/index.d.ts
13867
14794
  /** Ark's Splitter, dressed in the paper-and-ink system: panels divide on
13868
14795
  * a hairline and a small paper-seal thumb answers the hand. The API is
13869
14796
  * Ark's own — Root, Panel, ResizeTrigger, ResizeTriggerIndicator. */
13870
14797
  export declare const Splitter: typeof Splitter$1;
13871
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
13872
14809
  //#region src/components/page-header/index.d.ts
13873
14810
  export declare const PageHeader: {
13874
14811
  ({ children, ...rest }: HTMLAttributes<HTMLElement>): import("react").JSX.Element;
@@ -13911,6 +14848,7 @@ export declare function Spinner({ size, children, ...rest }: SpinnerProps): impo
13911
14848
  //#region src/components/stat/index.d.ts
13912
14849
  export interface StatDeltaProps extends HTMLAttributes<HTMLElement> {
13913
14850
  direction?: "up" | "down" | "flat";
14851
+ "data-direction"?: string;
13914
14852
  }
13915
14853
  export declare const Stat: {
13916
14854
  ({ children, ...rest }: HTMLAttributes<HTMLElement>): import("react").JSX.Element;
@@ -14047,6 +14985,19 @@ export interface DataTableProps {
14047
14985
  }
14048
14986
  export declare function DataTable(rawProps: DataTableProps): import("react").JSX.Element;
14049
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
14050
15001
  //#region src/components/timeline/index.d.ts
14051
15002
  export declare const Timeline: {
14052
15003
  ({ children, ...rest }: HTMLAttributes<HTMLElement>): import("react").JSX.Element;
@@ -14150,6 +15101,50 @@ export declare const Tooltip: typeof Tooltip$1;
14150
15101
  * useTour. */
14151
15102
  export declare const Tour: typeof Tour$1;
14152
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
14153
15148
  //#region src/components/tree-view/index.d.ts
14154
15149
  /** Ark's TreeView, dressed in the paper-and-ink system: quiet rows where
14155
15150
  * selection is pure light on the paper, one hairline plumb line per depth,
@@ -14160,4 +15155,19 @@ export declare const Tour: typeof Tour$1;
14160
15155
  * NodeRenameInput, plus createTreeCollection. */
14161
15156
  export declare const TreeView: typeof TreeView$1;
14162
15157
  //#endregion
14163
- 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 };