@bysages/solid 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,35 +1,40 @@
1
1
  import { Accordion as Accordion$1 } from "@ark-ui/solid/accordion";
2
- import { Component, JSX as JSX$1 } from "solid-js";
3
- import { Collapsible as Collapsible$1 } from "@ark-ui/solid/collapsible";
2
+ import { Accessor, Component, JSX as JSX$1 } from "solid-js";
4
3
  import { Field as Field$1 } from "@ark-ui/solid/field";
4
+ import { Collapsible as Collapsible$1 } from "@ark-ui/solid/collapsible";
5
5
  import { AngleSlider as AngleSlider$1 } from "@ark-ui/solid/angle-slider";
6
+ 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/solid/collection";
7
+ import { Combobox as Combobox$1 } from "@ark-ui/solid/combobox";
6
8
  import { Avatar as Avatar$1 } from "@ark-ui/solid/avatar";
7
9
  import { DatePicker as DatePicker$1, DatePickerFocusChangeDetails, DatePickerOpenChangeDetails, DatePickerRootProps, DatePickerValueChangeDetails, DatePickerViewChangeDetails, DatePickerVisibleRangeChangeDetails } from "@ark-ui/solid/date-picker";
8
10
  import { Carousel as Carousel$1 } from "@ark-ui/solid/carousel";
9
11
  import { Checkbox as Checkbox$1 } from "@ark-ui/solid/checkbox";
12
+ import { ClientOnly, ClientOnlyProps } from "@ark-ui/solid/client-only";
10
13
  import { Clipboard as Clipboard$1 } from "@ark-ui/solid/clipboard";
11
14
  import { ColorPicker as ColorPicker$1 } from "@ark-ui/solid/color-picker";
12
- import { Combobox as Combobox$1 } from "@ark-ui/solid/combobox";
13
- import { DateInput as DateInput$1, DateInputFocusChangeDetails, DateInputValueChangeDetails } from "@ark-ui/solid/date-input";
14
15
  import { Dialog as Dialog$1, DialogOpenChangeDetails } from "@ark-ui/solid/dialog";
16
+ import { DateInput as DateInput$1, DateInputFocusChangeDetails, DateInputValueChangeDetails } from "@ark-ui/solid/date-input";
17
+ import { DownloadTrigger, DownloadTriggerBaseProps, DownloadTriggerProps, DownloadableData, UseDownloadProps, UseDownloadReturn, useDownload } from "@ark-ui/solid/download-trigger";
15
18
  import { Drawer as Drawer$1 } from "@ark-ui/solid/drawer";
16
19
  import { Editable as Editable$1 } from "@ark-ui/solid/editable";
17
20
  import { Fieldset as Fieldset$1 } from "@ark-ui/solid/fieldset";
18
21
  import { FileUpload as FileUpload$1 } from "@ark-ui/solid/file-upload";
19
22
  import { FloatingPanel as FloatingPanel$1 } from "@ark-ui/solid/floating-panel";
23
+ import { FocusTrap, FocusTrapBaseProps, FocusTrapProps } from "@ark-ui/solid/focus-trap";
20
24
  import { Format as Format$1 } from "@ark-ui/solid/format";
21
25
  import { HoverCard as HoverCard$1 } from "@ark-ui/solid/hover-card";
22
26
  import { ImageCropper as ImageCropper$1 } from "@ark-ui/solid/image-cropper";
23
27
  import { JsonTreeView as JsonTreeView$1 } from "@ark-ui/solid/json-tree-view";
24
- import { Listbox as Listbox$1, createListCollection } from "@ark-ui/solid/listbox";
28
+ import { Listbox as Listbox$1 } from "@ark-ui/solid/listbox";
25
29
  import { Marquee as Marquee$1 } from "@ark-ui/solid/marquee";
26
30
  import { Menu as Menu$1 } from "@ark-ui/solid/menu";
31
+ import { Popover as Popover$1 } from "@ark-ui/solid/popover";
27
32
  import { NavigationMenu as NavigationMenu$1 } from "@ark-ui/solid/navigation-menu";
28
33
  import { NumberInput as NumberInput$1 } from "@ark-ui/solid/number-input";
29
34
  import { Pagination as Pagination$1 } from "@ark-ui/solid/pagination";
30
35
  import { PasswordInput as PasswordInput$1 } from "@ark-ui/solid/password-input";
31
36
  import { PinInput as PinInput$1 } from "@ark-ui/solid/pin-input";
32
- import { Popover as Popover$1 } from "@ark-ui/solid/popover";
37
+ import { Presence, PresenceProps, PresenceProvider, UsePresenceContext, UsePresenceProps, UsePresenceReturn, usePresence, usePresenceContext } from "@ark-ui/solid/presence";
33
38
  import { Progress as Progress$1 } from "@ark-ui/solid/progress";
34
39
  import { QrCode as QrCode$1 } from "@ark-ui/solid/qr-code";
35
40
  import { RadioGroup as RadioGroup$1 } from "@ark-ui/solid/radio-group";
@@ -55,6 +60,7 @@ import { Tooltip as Tooltip$1 } from "@ark-ui/solid/tooltip";
55
60
  import { Tour as Tour$1, TourInteractOutsideEvent, TourPointerDownOutsideEvent, TourStepDetails, useTour } from "@ark-ui/solid/tour";
56
61
  import { TreeView as TreeView$1, TreeViewCheckedChangeDetails, TreeViewExpandedChangeDetails, TreeViewFocusChangeDetails, TreeViewSelectionChangeDetails } from "@ark-ui/solid/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,154 @@ 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
+ export interface AffixProps extends JSX$1.HTMLAttributes<HTMLDivElement> {
73
+ /** Where the content pins when it reaches the top of the scrolling
74
+ * ancestor — the height of any fixed header it must clear. */
75
+ offsetTop?: string;
76
+ /** Where it pins from the bottom instead, for footers and action bars. */
77
+ offsetBottom?: string;
78
+ }
79
+ /**
80
+ * A nail: the wrapped content travels with the page until it reaches its
81
+ * offset, then stays put while the page moves on. The semantics are
82
+ * plain `position: sticky` — pinning is relative to the nearest
83
+ * *scrolling* ancestor, so the element works inside a scrollable panel
84
+ * exactly as it does on the page itself, and a parent with
85
+ * `overflow: hidden` clips the pin. Both offsets may be given: the
86
+ * content then holds its place inside that band.
87
+ */
88
+ export declare function Affix(props: AffixProps): JSX$1.Element;
89
+ //#endregion
90
+ //#region src/components/ai-action/index.d.ts
91
+ export interface ActionProps extends JSX$1.HTMLAttributes<HTMLButtonElement> {
92
+ /** What the button does, spoken to assistive tech and shown as
93
+ * the hover title — copy, retry, thumbs. */
94
+ label: string;
95
+ }
96
+ /** A quiet icon button — copy, retry, thumbs. The label names it to
97
+ * assistive tech and as the hover title. The control itself is the
98
+ * shared Button in its ghost register. */
99
+ export declare function Action(props: ActionProps): JSX$1.Element;
100
+ //#endregion
101
+ //#region src/components/ai-message/index.d.ts
102
+ export type MessageRole = "user" | "assistant" | "system";
103
+ export interface MessageProps extends Omit<JSX$1.HTMLAttributes<HTMLElement>, "role"> {
104
+ /** Whose stroke this is — the user's words sit in a recessed
105
+ * bubble, the assistant speaks flat on the paper. */
106
+ role?: MessageRole;
107
+ }
108
+ /** Whose stroke this is — the user's words sit in a recessed bubble,
109
+ * the assistant speaks flat on the paper. */
110
+ export declare function Message(props: MessageProps): JSX$1.Element;
111
+ //#endregion
112
+ //#region src/components/ai-prompt-input/index.d.ts
113
+ export interface PromptInputProps extends Omit<JSX$1.HTMLAttributes<HTMLFormElement>, "onSubmit" | "value"> {
114
+ /** The draft in the vessel — bind `value`; it clears itself on
115
+ * a successful submit. */
116
+ value?: string;
117
+ onValueChange?: (value: string) => void;
118
+ onSubmit?: (value: string) => void;
119
+ onStop?: () => void;
120
+ /** The quiet invitation before the reader types. */
121
+ placeholder?: string;
122
+ /** Still the words on the canvas, but the submit seal does
123
+ * nothing and Enter stays a line break. */
124
+ disabled?: boolean;
125
+ /** The machine is working — the seal becomes a stop seal and
126
+ * Enter holds its breath. */
127
+ busy?: boolean;
128
+ /** Attachments riding above the text. */
129
+ header?: JSX$1.Element;
130
+ /** The tools at the text's left. */
131
+ leading?: JSX$1.Element;
132
+ /** The row at the text's right — the send seal falls there by
133
+ * default. */
134
+ trailing?: JSX$1.Element;
135
+ /** The tools beneath the text. */
136
+ footer?: JSX$1.Element;
137
+ /** The controls that close the footer row — the seal falls there
138
+ * when a footer exists. */
139
+ footerEnd?: JSX$1.Element;
140
+ }
141
+ /** The prompt vessel: the shared field textarea — self-growing on the
142
+ * machine's autoresize — with the submit seal riding its last line.
143
+ * Around the body, the slot props answer the composer's anatomy:
144
+ * `header` for attachments riding above, `leading` for the tools at
145
+ * the text's left, `trailing` for the seal itself, `footer` for the
146
+ * tools beneath, and `footerEnd` for the controls that close the
147
+ * footer row — the seal falls there by default, so a model picker
148
+ * dropped in rides the send's shoulder. An empty slot renders no part,
149
+ * so the bare vessel stays one quiet line. Controlled — bind `value`
150
+ * and take the text on `onSubmit`. Enter sends; Shift+Enter breaks the
151
+ * line. While `busy` the seal becomes a stop seal and Enter holds its
152
+ * breath. */
153
+ export declare function PromptInput(props: PromptInputProps): JSX$1.Element;
154
+ //#endregion
155
+ //#region src/components/ai-reasoning/index.d.ts
156
+ export interface ReasoningProps extends JSX$1.HTMLAttributes<HTMLDivElement> {
157
+ /** The trigger's words — the fold arrives open under them. */
158
+ label?: string;
159
+ }
160
+ /** The model's thought, folded by the shared collapsible in its quiet
161
+ * register: bare ink for a trigger, the thought on one hairline. */
162
+ export declare function Reasoning(props: ReasoningProps): JSX$1.Element;
163
+ //#endregion
164
+ //#region src/components/ai-response/index.d.ts
165
+ export interface ResponseProps extends JSX$1.HTMLAttributes<HTMLDivElement> {
166
+ /** The markdown text to set on the paper — streamed in freely;
167
+ * raw HTML and executable links stay inert. */
168
+ content: string;
169
+ /** Optional code-highlighting function re-inking fenced blocks;
170
+ * the component stays agnostic about which engine provides it. */
171
+ highlighter?: (code: string, lang?: string) => string;
172
+ }
173
+ /** Markdown set on the paper. Rendering goes through
174
+ * `@tanstack/markdown`, whose defaults leave raw HTML and executable
175
+ * links inert — streaming-safe by construction. */
176
+ declare function Response$1(props: ResponseProps): JSX$1.Element;
177
+ //#endregion
178
+ //#region src/components/ai-source/index.d.ts
179
+ export interface SourceProps extends JSX$1.HTMLAttributes<HTMLAnchorElement> {
180
+ /** Where the ink came from — also the link text when no children are
181
+ * given; opens in a new tab, referrer-free. */
182
+ href: string;
183
+ }
184
+ /** One place the ink came from; href and the rest ride the anchor. */
185
+ export declare function Source(props: SourceProps): JSX$1.Element;
186
+ /** The reading list under a response: where this ink came from. */
187
+ export declare function Sources(props: JSX$1.HTMLAttributes<HTMLOListElement>): JSX$1.Element;
188
+ //#endregion
189
+ //#region src/components/ai-suggestion/index.d.ts
190
+ export interface SuggestionProps extends Omit<JSX$1.HTMLAttributes<HTMLButtonElement>, "onSelect"> {
191
+ /** The next stroke this seal proposes — also its label; handed
192
+ * back whole on `onSelect`. */
193
+ prompt: string;
194
+ onSelect?: (prompt: string) => void;
195
+ }
196
+ /** A seal-cut button proposing the next stroke; selection hands back
197
+ * the prompt. The shared Button in its outline register. */
198
+ export declare function Suggestion(props: SuggestionProps): JSX$1.Element;
199
+ //#endregion
200
+ //#region src/components/ai-tool/index.d.ts
201
+ export type ToolStatus = "pending" | "running" | "completed" | "error";
202
+ export interface ToolProps extends JSX$1.HTMLAttributes<HTMLDivElement> {
203
+ /** The name the tool was reached by — shown raw on the trigger
204
+ * unless friendlier `label` words are given. */
205
+ name: string;
206
+ /** Friendlier trigger words than the raw tool name. */
207
+ label?: JSX$1.Element;
208
+ /** The state the call reached — pending, running, completed, or
209
+ * error; stamped on the fold and whispered in the status chip. */
210
+ status?: ToolStatus;
211
+ input?: string;
212
+ output?: string;
213
+ }
214
+ /** A tool call: the shared collapsible as the vessel — the name it was
215
+ * reached by and the state it reached in on the trigger, its input and
216
+ * output folded inside. */
217
+ export declare function Tool(props: ToolProps): JSX$1.Element;
218
+ //#endregion
65
219
  //#region ../../node_modules/.pnpm/@ai-sdk+provider@4.0.14/node_modules/@ai-sdk/provider/dist/index.d.ts
66
220
  /**
67
221
  * Audio format configuration shared by provider V4 model specifications.
@@ -10136,13 +10290,13 @@ type Schema<OBJECT = unknown> = {
10136
10290
  };
10137
10291
  type LazySchema<SCHEMA> = () => Schema<SCHEMA>;
10138
10292
  type ZodSchema<SCHEMA = any> = ZodType<SCHEMA, ZodTypeDef, any> | $ZodType<SCHEMA, any>;
10139
- type StandardSchema<SCHEMA = any> = StandardSchemaV1$2<unknown, SCHEMA> & {
10293
+ type StandardSchema$1<SCHEMA = any> = StandardSchemaV1$2<unknown, SCHEMA> & {
10140
10294
  readonly '~standard': StandardSchemaV1$2.Props<unknown, SCHEMA> & {
10141
10295
  readonly jsonSchema?: StandardJSONSchemaV1.Converter;
10142
10296
  };
10143
10297
  };
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;
10298
+ type FlexibleSchema<SCHEMA = any> = Schema<SCHEMA> | LazySchema<SCHEMA> | ZodSchema<SCHEMA> | StandardSchema$1<SCHEMA>;
10299
+ 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
10300
  /**
10147
10301
  * A context object that is passed into tool execution.
10148
10302
  */
@@ -13191,98 +13345,68 @@ declare global {
13191
13345
  }
13192
13346
  //#endregion
13193
13347
  //#region src/components/ai/index.d.ts
13194
- export type MessageRole = "user" | "assistant" | "system";
13195
- export interface MessageProps extends JSX$1.HTMLAttributes<HTMLElement> {
13196
- role?: MessageRole;
13197
- }
13198
- /** Whose stroke this is — the user's words sit in a recessed bubble,
13199
- * the assistant speaks flat on the paper. */
13200
- export declare function Message(props: MessageProps): JSX$1.Element;
13201
- export interface ResponseProps extends JSX$1.HTMLAttributes<HTMLDivElement> {
13202
- content: string;
13203
- }
13204
- /** Markdown set on the paper. Rendering goes through
13205
- * `@tanstack/markdown`, whose defaults leave raw HTML and executable
13206
- * links inert — streaming-safe by construction. */
13207
- declare function Response$1(props: ResponseProps): JSX$1.Element;
13208
- export interface ReasoningProps extends JSX$1.HTMLAttributes<HTMLDivElement> {
13209
- label?: string;
13210
- }
13211
- /** The model's thought, folded by the shared collapsible in its quiet
13212
- * register: bare ink for a trigger, the thought on one hairline. */
13213
- export declare function Reasoning(props: ReasoningProps): JSX$1.Element;
13214
- export type ToolStatus = "pending" | "running" | "completed" | "error";
13215
- export interface ToolProps extends JSX$1.HTMLAttributes<HTMLDivElement> {
13216
- name: string;
13217
- status?: ToolStatus;
13218
- input?: string;
13219
- output?: string;
13220
- }
13221
- /** A tool call: the shared collapsible as the vessel — the name it was
13222
- * reached by and the state it reached in on the trigger, its input and
13223
- * output folded inside. */
13224
- export declare function Tool(props: ToolProps): JSX$1.Element;
13225
- export interface SourceProps extends JSX$1.HTMLAttributes<HTMLAnchorElement> {
13226
- href: string;
13227
- }
13228
- /** One place the ink came from; href and the rest ride the anchor. */
13229
- export declare function Source(props: SourceProps): JSX$1.Element;
13230
- export interface ActionProps extends JSX$1.HTMLAttributes<HTMLButtonElement> {
13231
- label: string;
13232
- }
13233
- /** A quiet icon button — copy, retry, thumbs. The label names it to
13234
- * assistive tech and as the hover title. The control itself is the
13235
- * shared Button in its ghost register. */
13236
- export declare function Action(props: ActionProps): JSX$1.Element;
13237
- export interface SuggestionProps extends JSX$1.HTMLAttributes<HTMLButtonElement> {
13238
- prompt: string;
13239
- onSelect?: (prompt: string) => void;
13240
- }
13241
- /** A seal-cut button proposing the next stroke; selection hands back
13242
- * the prompt. The shared Button in its outline register. */
13243
- export declare function Suggestion(props: SuggestionProps): JSX$1.Element;
13244
- export interface PromptInputProps extends JSX$1.HTMLAttributes<HTMLFormElement> {
13245
- value: string;
13246
- onValueChange?: (value: string) => void;
13247
- onSubmit?: (value: string) => void;
13248
- placeholder?: string;
13249
- disabled?: boolean;
13250
- }
13251
- /** The prompt vessel: the shared field textarea — self-growing on the
13252
- * machine's autoresize — over a footer row carrying the submit seal.
13253
- * Controlled — bind `value` and take the text on `onSubmit`. Enter
13254
- * sends; Shift+Enter breaks the line. */
13255
- export declare function PromptInput(props: PromptInputProps): JSX$1.Element;
13256
- export declare const Ai: ((props: JSX$1.HTMLAttributes<HTMLElement>) => JSX$1.Element) & {
13257
- Conversation: (props: JSX$1.HTMLAttributes<HTMLElement>) => JSX$1.Element;
13348
+ /** The log itself: the column every stroke lands in, a landmark to
13349
+ * screen readers. */
13350
+ export declare const AiConversation: (props: JSX$1.HTMLAttributes<HTMLDivElement>) => JSX$1.Element;
13351
+ /** The bubble's inner measure — content that belongs to neither side
13352
+ * specifically. */
13353
+ export declare const AiContent: (props: JSX$1.HTMLAttributes<HTMLDivElement>) => JSX$1.Element;
13354
+ /** The quiet row under a message — copy, retry, feedback. */
13355
+ export declare const AiActions: (props: JSX$1.HTMLAttributes<HTMLDivElement>) => JSX$1.Element;
13356
+ /** The while-it-works whisper for the in-flight turns. */
13357
+ export declare const AiLoader: (props: JSX$1.HTMLAttributes<HTMLDivElement>) => JSX$1.Element;
13358
+ /** The whole family under one handle — `Ai.Conversation`,
13359
+ * `Ai.MessageContent`, and the rest. */
13360
+ export declare const Ai: ((props: JSX$1.HTMLAttributes<HTMLDivElement>) => JSX$1.Element) & {
13361
+ Conversation: (props: JSX$1.HTMLAttributes<HTMLDivElement>) => JSX$1.Element;
13362
+ MessageContent: (props: JSX$1.HTMLAttributes<HTMLDivElement>) => JSX$1.Element;
13363
+ Actions: (props: JSX$1.HTMLAttributes<HTMLDivElement>) => JSX$1.Element;
13364
+ Loader: (props: JSX$1.HTMLAttributes<HTMLDivElement>) => JSX$1.Element;
13258
13365
  Message: typeof Message;
13259
- Content: (props: JSX$1.HTMLAttributes<HTMLElement>) => JSX$1.Element;
13260
13366
  Response: typeof Response$1;
13261
13367
  Reasoning: typeof Reasoning;
13262
13368
  Tool: typeof Tool;
13263
- Sources: (props: JSX$1.HTMLAttributes<HTMLElement>) => JSX$1.Element;
13369
+ Sources: typeof Sources;
13264
13370
  Source: typeof Source;
13265
- Actions: (props: JSX$1.HTMLAttributes<HTMLElement>) => JSX$1.Element;
13266
13371
  Action: typeof Action;
13267
13372
  Suggestion: typeof Suggestion;
13268
13373
  PromptInput: typeof PromptInput;
13269
- Loader: (props: JSX$1.HTMLAttributes<HTMLElement>) => JSX$1.Element;
13270
13374
  };
13271
13375
  //#endregion
13376
+ //#region src/components/ai-attachments/index.d.ts
13377
+ export type AttachmentStatus = "uploading" | "ready" | "error";
13378
+ export interface AttachmentProps extends JSX$1.HTMLAttributes<HTMLSpanElement> {
13379
+ /** The file's name — it picks the glyph by extension. */
13380
+ name: string;
13381
+ /** The file's size in bytes, when known — rendered human. */
13382
+ size?: number;
13383
+ /** The upload's state on the wire. */
13384
+ status?: AttachmentStatus;
13385
+ onRemove?: () => void;
13386
+ }
13387
+ /** One file riding the prompt: its glyph by extension, its name and
13388
+ * human size, and a quiet way to take it back off. Uploading reads as
13389
+ * a dashed ghost, error as danger ink. */
13390
+ export declare function Attachment(props: AttachmentProps): JSX$1.Element;
13391
+ /** The row the files ride in — a wrapping line of chips. */
13392
+ export declare function Attachments(props: JSX$1.HTMLAttributes<HTMLSpanElement>): JSX$1.Element;
13393
+ //#endregion
13272
13394
  //#region src/components/alert/index.d.ts
13273
13395
  export type AlertStatus = "ink" | "info" | "success" | "warning" | "danger";
13274
13396
  /** A notice drawn on the page: a wash of the status pigment, one heavier
13275
13397
  * hairline on the leading edge, the serif for its title. Root, Icon,
13276
13398
  * Body, Title, Description — the icon reads the status from the Root. */
13277
- export interface AlertProps extends JSX$1.HTMLAttributes<HTMLDivElement> {}
13399
+ export interface AlertProps extends JSX$1.HTMLAttributes<HTMLDivElement> {
13400
+ status?: AlertStatus;
13401
+ }
13278
13402
  declare function AlertRoot(props: AlertProps): JSX$1.Element;
13279
- declare function Icon(): JSX$1.Element;
13403
+ declare function Icon$1(): JSX$1.Element;
13280
13404
  declare function Body(props: JSX$1.HTMLAttributes<HTMLDivElement>): JSX$1.Element;
13281
13405
  declare function Title(props: JSX$1.HTMLAttributes<HTMLParagraphElement>): JSX$1.Element;
13282
13406
  declare function Description(props: JSX$1.HTMLAttributes<HTMLParagraphElement>): JSX$1.Element;
13283
13407
  export declare const Alert: typeof AlertRoot & {
13284
13408
  Root: typeof AlertRoot;
13285
- Icon: typeof Icon;
13409
+ Icon: typeof Icon$1;
13286
13410
  Body: typeof Body;
13287
13411
  Title: typeof Title;
13288
13412
  Description: typeof Description;
@@ -13295,6 +13419,34 @@ export declare const Alert: typeof AlertRoot & {
13295
13419
  * Marker, HiddenInput. */
13296
13420
  export declare const AngleSlider: typeof AngleSlider$1;
13297
13421
  //#endregion
13422
+ //#region src/components/aspect-ratio/index.d.ts
13423
+ /** A frame that keeps its shape: the box holds the given ratio whatever
13424
+ * the width it is dealt, and the child fills the frame it is given. */
13425
+ export interface AspectRatioProps extends JSX$1.HTMLAttributes<HTMLDivElement> {
13426
+ /** A CSS `aspect-ratio` value — "16 / 9", "4 / 3", "1 / 1". */
13427
+ ratio?: string;
13428
+ }
13429
+ export declare function AspectRatio(props: AspectRatioProps): JSX$1.Element;
13430
+ //#endregion
13431
+ //#region src/components/autocomplete/index.d.ts
13432
+ export interface AutoCompleteProps {
13433
+ value?: string;
13434
+ items?: string[];
13435
+ placeholder?: string;
13436
+ /** Field text to match against; defaults to the item itself. */
13437
+ filter?: (item: string, input: string) => boolean;
13438
+ onValueChange?: (value: string) => void;
13439
+ }
13440
+ /**
13441
+ * Free text with suggestions: the reader types anything, the list
13442
+ * narrows to help, and both a pick and a custom value end up in the
13443
+ * same `value`. A preset of the combobox machinery — same parts,
13444
+ * same styling, one job. `items` seeds the suggestion list once;
13445
+ * matching is a case-insensitive substring unless `filter` says
13446
+ * otherwise.
13447
+ */
13448
+ export declare function AutoComplete(props: AutoCompleteProps): import("solid-js").JSX.Element;
13449
+ //#endregion
13298
13450
  //#region src/components/avatar/index.d.ts
13299
13451
  /** Ark's Avatar, dressed in the paper-and-ink system: a circular seal on
13300
13452
  * inset paper that holds initials until the image loads over them. The
@@ -13307,6 +13459,28 @@ export declare const Avatar: typeof Avatar$1;
13307
13459
  export type AvatarGroupProps = JSX$1.HTMLAttributes<HTMLDivElement>;
13308
13460
  export declare function AvatarGroup(props: AvatarGroupProps): JSX$1.Element;
13309
13461
  //#endregion
13462
+ //#region src/components/back-top/index.d.ts
13463
+ export interface BackTopProps extends JSX$1.HTMLAttributes<HTMLButtonElement> {
13464
+ /** How far the reader must have travelled (px) before the affordance
13465
+ * appears. */
13466
+ threshold?: number;
13467
+ /** The accessible name; the control is icon-only by default. */
13468
+ label?: string;
13469
+ }
13470
+ /**
13471
+ * A way home: after the page has scrolled past `threshold`, a small
13472
+ * floating control rises at the page's corner and returns the reader to
13473
+ * the top. The scroll itself stays native — `window.scrollTo` defers to
13474
+ * the stylesheet's `scroll-behavior: smooth`, which reduced motion turns
13475
+ * back into an instant jump. The button stays mounted either way so the
13476
+ * entrance is a transition, never a pop.
13477
+ *
13478
+ * The control itself is the shared `Button` (outline, square) — the
13479
+ * paper, hairline and halo are its; this family owns only the floating
13480
+ * and the entrance.
13481
+ */
13482
+ export declare function BackTop(props: BackTopProps): JSX$1.Element;
13483
+ //#endregion
13310
13484
  //#region src/components/badge/index.d.ts
13311
13485
  /** A small seal of state. Ink is the neutral tone; the four semantic
13312
13486
  * pigments are fixed. Subtle and outline re-register the same pigment. */
@@ -13318,24 +13492,24 @@ export declare function Badge(props: BadgeProps): JSX$1.Element;
13318
13492
  //#endregion
13319
13493
  //#region src/components/banner/index.d.ts
13320
13494
  export type BannerStatus = "ink" | "info" | "success" | "warning" | "danger";
13321
- export interface BannerRootProps extends JSX$1.HTMLAttributes<HTMLElement> {
13495
+ export interface BannerRootProps extends JSX$1.HTMLAttributes<HTMLDivElement> {
13322
13496
  status?: BannerStatus;
13323
13497
  }
13324
13498
  /** A page-level notice, spoken across the full measure: a wash of the
13325
13499
  * status pigment, one heavier hairline on the leading edge, and room
13326
13500
  * for actions and a quiet close. Ink is the neutral register; the four
13327
13501
  * semantic pigments are fixed. */
13328
- declare function Root$1(props: BannerRootProps): JSX$1.Element;
13502
+ declare function Root$3(props: BannerRootProps): JSX$1.Element;
13329
13503
  /** The quiet close: a plain square-cut button; dismissal stays the
13330
13504
  * consumer's state. */
13331
- declare function Close(props: JSX$1.HTMLAttributes<HTMLButtonElement>): JSX$1.Element;
13332
- export declare const Banner: typeof Root$1 & {
13333
- Root: typeof Root$1;
13334
- Icon: (props: JSX$1.HTMLAttributes<HTMLElement>) => JSX$1.Element;
13335
- Body: (props: JSX$1.HTMLAttributes<HTMLElement>) => JSX$1.Element;
13336
- Title: (props: JSX$1.HTMLAttributes<HTMLElement>) => JSX$1.Element;
13337
- Description: (props: JSX$1.HTMLAttributes<HTMLElement>) => JSX$1.Element;
13338
- Actions: (props: JSX$1.HTMLAttributes<HTMLElement>) => JSX$1.Element;
13505
+ declare function Close(props: JSX$1.ButtonHTMLAttributes<HTMLButtonElement>): JSX$1.Element;
13506
+ export declare const Banner: typeof Root$3 & {
13507
+ Root: typeof Root$3;
13508
+ Icon: (props: JSX$1.HTMLAttributes<HTMLDivElement>) => JSX$1.Element;
13509
+ Body: (props: JSX$1.HTMLAttributes<HTMLDivElement>) => JSX$1.Element;
13510
+ Title: (props: JSX$1.HTMLAttributes<HTMLDivElement>) => JSX$1.Element;
13511
+ Description: (props: JSX$1.HTMLAttributes<HTMLDivElement>) => JSX$1.Element;
13512
+ Actions: (props: JSX$1.HTMLAttributes<HTMLDivElement>) => JSX$1.Element;
13339
13513
  Close: typeof Close;
13340
13514
  };
13341
13515
  //#endregion
@@ -13354,7 +13528,7 @@ export declare const Breadcrumb: Component<Record<string, unknown>> & {
13354
13528
  * rests, the tone chooses the pigment. Ink is the solemn default; any
13355
13529
  * action can carry the primary weight. The react package's asChild has
13356
13530
  * no solid equivalent — compose a control around `<Button>` instead. */
13357
- export interface ButtonProps extends JSX$1.HTMLAttributes<HTMLButtonElement> {
13531
+ export interface ButtonProps extends JSX$1.ButtonHTMLAttributes<HTMLButtonElement> {
13358
13532
  variant?: "solid" | "outline" | "ghost" | "subtle";
13359
13533
  tone?: "ink" | "info" | "success" | "warning" | "danger";
13360
13534
  size?: "sm" | "md" | "lg";
@@ -13363,8 +13537,30 @@ export interface ButtonProps extends JSX$1.HTMLAttributes<HTMLButtonElement> {
13363
13537
  }
13364
13538
  export declare function Button(props: ButtonProps): JSX$1.Element;
13365
13539
  //#endregion
13540
+ //#region src/components/button-group/index.d.ts
13541
+ export interface ButtonGroupProps extends JSX$1.HTMLAttributes<HTMLDivElement> {
13542
+ /** The seam runs across the group (default) or down it. */
13543
+ orientation?: "horizontal" | "vertical";
13544
+ /** One register for every member: falls onto data-size for the
13545
+ * stylesheet to retune the buttons' heights. */
13546
+ size?: "sm" | "md" | "lg";
13547
+ /** The members' corner register: retunes --bs-radius-control for the
13548
+ * whole fused shape — edges and trimmed seams keep one story. */
13549
+ radius?: "sm" | "md" | "lg" | "xl" | "2xl" | "full";
13550
+ }
13551
+ /**
13552
+ * Buttons fused into one control: the group owns only the joinery, so
13553
+ * members keep every variant they were given — a solid action can sit
13554
+ * beside an outline one and the seam still reads. Selection belongs to
13555
+ * the toggle group; this is layout alone.
13556
+ */
13557
+ export declare function ButtonGroupRoot(props: ButtonGroupProps): JSX$1.Element;
13558
+ export declare const ButtonGroup: typeof ButtonGroupRoot & {
13559
+ Root: typeof ButtonGroupRoot;
13560
+ };
13561
+ //#endregion
13366
13562
  //#region src/components/calendar/index.d.ts
13367
- export interface CalendarProps extends JSX.HTMLAttributes<HTMLDivElement> {
13563
+ export interface CalendarProps extends JSX$1.HTMLAttributes<HTMLDivElement> {
13368
13564
  /** Selected date(s) — an array, as the machine speaks in ranges. */
13369
13565
  value?: DatePickerRootProps["value"];
13370
13566
  min?: DatePickerRootProps["min"];
@@ -13376,7 +13572,7 @@ export interface CalendarProps extends JSX.HTMLAttributes<HTMLDivElement> {
13376
13572
  * title zooms out through month and year grids; the grids themselves
13377
13573
  * are the shared machinery — value, range selection, and focus ride
13378
13574
  * Ark's own contract. */
13379
- export declare function Calendar(props: CalendarProps): import("solid-js").JSX.Element;
13575
+ export declare function Calendar(props: CalendarProps): JSX$1.Element;
13380
13576
  //#endregion
13381
13577
  //#region src/components/card/index.d.ts
13382
13578
  declare const Card$1: Component<Record<string, unknown>> & {
@@ -13396,6 +13592,31 @@ declare const Card$1: Component<Record<string, unknown>> & {
13396
13592
  * Indicator, AutoplayTrigger, ProgressText. */
13397
13593
  export declare const Carousel: typeof Carousel$1;
13398
13594
  //#endregion
13595
+ //#region src/components/cascade-select/index.d.ts
13596
+ export interface CascadeSelectNode {
13597
+ label: string;
13598
+ value: string;
13599
+ children?: CascadeSelectNode[];
13600
+ disabled?: boolean;
13601
+ }
13602
+ export interface CascadeSelectProps extends JSX$1.HTMLAttributes<HTMLDivElement> {
13603
+ value?: string[][];
13604
+ data: CascadeSelectNode[];
13605
+ placeholder?: string;
13606
+ highlightTrigger?: "click" | "hover";
13607
+ multiple?: boolean;
13608
+ disabled?: boolean;
13609
+ onValueChange?: (value: string[][]) => void;
13610
+ }
13611
+ /**
13612
+ * A corridor of linked columns: pick a branch and the next column
13613
+ * dissolves open beside it, until a leaf click settles the whole path.
13614
+ * `value` is the selected path (or paths, when `multiple`) — the
13615
+ * joined labels ride the trigger. `highlightTrigger: "hover"` turns the
13616
+ * classic cascading menu: pointing is enough to unfold.
13617
+ */
13618
+ export declare function CascadeSelect(props: CascadeSelectProps): JSX$1.Element;
13619
+ //#endregion
13399
13620
  //#region src/components/checkbox/index.d.ts
13400
13621
  /** Ark's Checkbox, dressed in the paper-and-ink system: a square-cut seal
13401
13622
  * that fills flat with primary ink when ticked, the mark springing into
@@ -13403,6 +13624,27 @@ export declare const Carousel: typeof Carousel$1;
13403
13624
  * HiddenInput. */
13404
13625
  export declare const Checkbox: typeof Checkbox$1;
13405
13626
  //#endregion
13627
+ //#region src/components/checkbox-group/index.d.ts
13628
+ export interface CheckboxOption {
13629
+ label: string;
13630
+ value: string;
13631
+ disabled?: boolean;
13632
+ }
13633
+ export interface CheckboxGroupProps extends JSX$1.HTMLAttributes<HTMLDivElement> {
13634
+ value?: string[];
13635
+ options: CheckboxOption[];
13636
+ layout?: "vertical" | "horizontal";
13637
+ disabled?: boolean;
13638
+ onValueChange?: (value: string[]) => void;
13639
+ }
13640
+ /**
13641
+ * One question, many answers: a labelled stack (or row) of the seal-cut
13642
+ * checkboxes bound to a single array. Toggling a box adds or removes its
13643
+ * value; the group itself is semantics (`role="group"`), the boxes stay
13644
+ * the machine-driven originals.
13645
+ */
13646
+ export declare function CheckboxGroup(props: CheckboxGroupProps): JSX$1.Element;
13647
+ //#endregion
13406
13648
  //#region src/components/chip/index.d.ts
13407
13649
  /** A counting coin: the numeric value, capped at `max` with an ellipsis
13408
13650
  * of the remainder ("99+"). */
@@ -13446,6 +13688,117 @@ export declare const ColorPicker: typeof ColorPicker$1;
13446
13688
  * Item, ItemText, ItemIndicator, ItemGroup, ItemGroupLabel. */
13447
13689
  export declare const Combobox: typeof Combobox$1;
13448
13690
  //#endregion
13691
+ //#region src/components/command/index.d.ts
13692
+ export interface CommandEntry {
13693
+ label: string;
13694
+ value: string;
13695
+ /** Entries sharing a group are listed under one heading. */
13696
+ group?: string;
13697
+ /** A short affordance note, set as a keycap at the row's end. */
13698
+ hint?: string;
13699
+ }
13700
+ export interface CommandProps {
13701
+ /** The commands on offer, grouped as they arrive. */
13702
+ items?: CommandEntry[];
13703
+ placeholder?: string;
13704
+ /** Whether the palette is up. Supply it to control the palette;
13705
+ * changes are reported through `onOpenChange`. */
13706
+ open?: boolean;
13707
+ /** Whether the shell narrows `items` as the reader types. Turn it off
13708
+ * when the caller owns the searching — a ranked engine or a remote
13709
+ * source — and hands down the already-narrowed list. */
13710
+ autoFilter?: boolean;
13711
+ /** The field's text under the caller's control; changes are reported
13712
+ * through `onInputValueChange`. */
13713
+ inputValue?: string;
13714
+ /** What the list whispers when nothing matches. */
13715
+ emptyText?: string;
13716
+ /** Called with the chosen entry's `value`; the palette closes after. */
13717
+ onSelect?: (value: string) => void;
13718
+ /** The palette's openness changed. */
13719
+ onOpenChange?: (open: boolean) => void;
13720
+ /** The field's text changed. */
13721
+ onInputValueChange?: (value: string) => void;
13722
+ }
13723
+ /**
13724
+ * The command palette: a modal sheet at the top of the page carrying a
13725
+ * search field over the caller's commands, grouped as a ledger with a
13726
+ * keycap hint at each row. The shell is the dialog machinery — scrim,
13727
+ * focus trap, Escape — and the searching is the combobox machinery
13728
+ * driving our own list: the vessel and the list live inside the sheet,
13729
+ * so the combobox renders no separate popup and the machine's content
13730
+ * grafts onto the sheet's list.
13731
+ */
13732
+ export declare function Command(props: CommandProps): import("solid-js").JSX.Element;
13733
+ //#endregion
13734
+ //#region src/components/comment/index.d.ts
13735
+ export interface CommentProps extends JSX$1.HTMLAttributes<HTMLElement> {
13736
+ author?: string;
13737
+ datetime?: string;
13738
+ /** The portrait hanging to the left of the body. */
13739
+ avatar?: JSX$1.Element;
13740
+ /** The row of answers beneath the ink. */
13741
+ actions?: JSX$1.Element;
13742
+ }
13743
+ /**
13744
+ * A voice on the record: the portrait hangs left (the `avatar` prop),
13745
+ * the body carries the byline from `author` and `datetime`, the ink is
13746
+ * the children, and `actions` is the row of answers.
13747
+ */
13748
+ export declare function Comment(props: CommentProps): JSX$1.Element;
13749
+ //#endregion
13750
+ //#region src/components/config-provider/index.d.ts
13751
+ /** The four density tiers the token layer's `[data-density]` selectors
13752
+ * name — whitespace and control heights compress, readability never
13753
+ * does. */
13754
+ export type ConfigDensity = "compact" | "default" | "comfortable" | "spacious";
13755
+ /** The configuration a provider lays over its subtree. Every field is
13756
+ * optional: an absent field changes nothing, and the page's own
13757
+ * attributes keep ruling. */
13758
+ export interface ConfigContext {
13759
+ density?: ConfigDensity;
13760
+ /** A mineral pigment theme (qinghua, celadon, zhusha, …) landing as
13761
+ * `[data-accent]` on the host element. */
13762
+ accent?: string;
13763
+ /** Writing direction, landing as the native `dir` attribute. */
13764
+ dir?: "ltr" | "rtl";
13765
+ /** BCP-47 locale, landing as the native `lang` attribute. */
13766
+ locale?: string;
13767
+ }
13768
+ /** Solid context for the provider's snapshot — a custom part reads it
13769
+ * with `useContext(ConfigContextKey)`. */
13770
+ export declare const ConfigContextKey: import("solid-js").Context<() => ConfigContext>;
13771
+ /** The nearest provider's snapshot, or an empty one when no provider
13772
+ * wraps the caller — the hook the date and format families will consume
13773
+ * to localize their output. */
13774
+ export declare function useConfig(): () => ConfigContext;
13775
+ export interface ConfigProviderProps extends JSX$1.HTMLAttributes<HTMLDivElement> {
13776
+ density?: ConfigDensity;
13777
+ accent?: string;
13778
+ dir?: "ltr" | "rtl";
13779
+ locale?: string;
13780
+ }
13781
+ /**
13782
+ * The declarative host for global configuration: one element that both
13783
+ * carries the token layer's attributes — `[data-density]` and
13784
+ * `[data-accent]` fire on any element — and provides the same values to
13785
+ * descendants through `useConfig`, so interactive behavior (formatting,
13786
+ * messages) and visual theming stay one decision.
13787
+ */
13788
+ export declare function ConfigProvider(props: ConfigProviderProps): JSX$1.Element;
13789
+ //#endregion
13790
+ //#region src/components/container/index.d.ts
13791
+ /** The reading frame: content held to a measure and centered on the
13792
+ * page. The sizes name typographic measures, not breakpoints — the page
13793
+ * owns its edges, the container only owns how long a line of ink runs. */
13794
+ export interface ContainerProps extends JSX$1.HTMLAttributes<HTMLDivElement> {
13795
+ size?: "narrow" | "readable" | "wide" | "full";
13796
+ /** Keep the ink off the page edges when the viewport runs narrower
13797
+ * than the measure. */
13798
+ padding?: boolean;
13799
+ }
13800
+ export declare function Container(props: ContainerProps): JSX$1.Element;
13801
+ //#endregion
13449
13802
  //#region src/components/date-input/index.d.ts
13450
13803
  /** Ark's DateInput, dressed in the paper-and-ink system: a segmented
13451
13804
  * field where the focused segment takes the flat ink fill. The API is
@@ -13462,6 +13815,23 @@ export declare const DateInput: typeof DateInput$1;
13462
13815
  * NextTrigger, Table*, MonthSelect, YearSelect, PresetTrigger. */
13463
13816
  export declare const DatePicker: typeof DatePicker$1;
13464
13817
  //#endregion
13818
+ //#region src/components/descriptions/index.d.ts
13819
+ /**
13820
+ * A ledger laid flat: term and detail pairs in one quiet grid. The
13821
+ * horizontal layout reads as a table of two columns; the vertical one
13822
+ * stacks each pair for narrow measures.
13823
+ */
13824
+ export interface DescriptionsRootProps extends JSX$1.HTMLAttributes<HTMLDListElement> {
13825
+ layout?: "horizontal" | "vertical";
13826
+ }
13827
+ declare function Root$2(props: DescriptionsRootProps): JSX$1.Element;
13828
+ export declare const Descriptions: typeof Root$2 & {
13829
+ Root: typeof Root$2;
13830
+ Item: (props: JSX$1.HTMLAttributes<HTMLDivElement>) => JSX$1.Element;
13831
+ Term: (props: JSX$1.HTMLAttributes<HTMLDivElement>) => JSX$1.Element;
13832
+ Detail: (props: JSX$1.HTMLAttributes<HTMLDivElement>) => JSX$1.Element;
13833
+ };
13834
+ //#endregion
13465
13835
  //#region src/components/dialog/index.d.ts
13466
13836
  /** Ark's Dialog, dressed in the paper-and-ink system: the sheet dissolves
13467
13837
  * in on elevation, the backdrop fades, and nested overlays stack through
@@ -13477,6 +13847,33 @@ export declare const Dialog: typeof Dialog$1;
13477
13847
  * Description, CloseTrigger, SwipeArea. */
13478
13848
  export declare const Drawer: typeof Drawer$1;
13479
13849
  //#endregion
13850
+ //#region src/components/dynamic-input/index.d.ts
13851
+ export interface DynamicInputProps extends JSX$1.HTMLAttributes<HTMLDivElement> {
13852
+ /** The rows' values; the group renders one Input per entry. */
13853
+ value?: string[];
13854
+ /** The fewest rows the group keeps; the remove seals yield first. */
13855
+ min?: number;
13856
+ /** The most rows the group grows to; the add control yields then. */
13857
+ max?: number;
13858
+ placeholder?: string;
13859
+ /** The add control's visible words. */
13860
+ addLabel?: string;
13861
+ disabled?: boolean;
13862
+ invalid?: boolean;
13863
+ /** Every edit emits a fresh array; the caller's array stays the only
13864
+ * truth. */
13865
+ onValueChange?: (value: string[]) => void;
13866
+ }
13867
+ /**
13868
+ * A column of entry rows: one Input per line, each with a quiet remove
13869
+ * seal, and an add row at the tail. The list is controlled — every edit
13870
+ * calls `onValueChange` with a fresh array and the caller's array stays
13871
+ * the only truth. Deleting never drops below `min`, adding never grows
13872
+ * past `max`, and the group always keeps one row: an entry list that
13873
+ * emptied itself would leave the reader no place to type.
13874
+ */
13875
+ export declare function DynamicInput(props: DynamicInputProps): JSX$1.Element;
13876
+ //#endregion
13480
13877
  //#region src/components/editable/index.d.ts
13481
13878
  /** Ark's Editable, dressed in the paper-and-ink system: bare ink while
13482
13879
  * reading, the full field recipe while editing. The API is Ark's own —
@@ -13484,6 +13881,15 @@ export declare const Drawer: typeof Drawer$1;
13484
13881
  * CancelTrigger, Control. */
13485
13882
  export declare const Editable: typeof Editable$1;
13486
13883
  //#endregion
13884
+ //#region src/components/ellipsis/index.d.ts
13885
+ /** The overflow knife: text cut at one line, or held to N lines. The
13886
+ * primitive only draws the cut — reaching the full text (title,
13887
+ * tooltip) stays the consumer's decision. */
13888
+ export interface EllipsisProps extends JSX$1.HTMLAttributes<HTMLSpanElement> {
13889
+ lines?: number;
13890
+ }
13891
+ export declare function Ellipsis(props: EllipsisProps): JSX$1.Element;
13892
+ //#endregion
13487
13893
  //#region src/components/empty/index.d.ts
13488
13894
  export declare const Empty: Component<Record<string, unknown>> & {
13489
13895
  Root: Component<Record<string, unknown>>;
@@ -13515,6 +13921,60 @@ export declare const Fieldset: typeof Fieldset$1;
13515
13921
  * Context. */
13516
13922
  export declare const FileUpload: typeof FileUpload$1;
13517
13923
  //#endregion
13924
+ //#region src/components/float-button/index.d.ts
13925
+ export type FloatButtonPlacement = "bottom-end" | "bottom-start" | "top-end" | "top-start";
13926
+ /** The group's openness, shared from the mooring to its parts. */
13927
+ export interface FloatButtonContext {
13928
+ open: () => boolean;
13929
+ toggle: () => void;
13930
+ /** Folds the fan — an Item calls this once its action fires, the way
13931
+ * a speed dial closes after a choice. */
13932
+ close: () => void;
13933
+ }
13934
+ /** Solid context for {@link FloatButtonContext}, exported so a custom
13935
+ * part can read the group's state with `useContext`. */
13936
+ export declare const FloatButtonContextKey: import("solid-js").Context<FloatButtonContext | undefined>;
13937
+ export interface FloatButtonRootProps extends JSX$1.HTMLAttributes<HTMLDivElement> {
13938
+ /** Controlled openness: leave unset to let the group hold its own
13939
+ * state; while set, the Trigger reports back through
13940
+ * `onOpenChange`. */
13941
+ open?: boolean;
13942
+ /** Which corner the group moors at. */
13943
+ placement?: FloatButtonPlacement;
13944
+ /** The openness changed — from the Trigger, or an Item folding the
13945
+ * fan. */
13946
+ onOpenChange?: (open: boolean) => void;
13947
+ }
13948
+ /**
13949
+ * A floating action and its fanned-out alternatives — FAB and speed
13950
+ * dial in one family. The Root moors the group at a page corner and
13951
+ * holds the openness (mirrored from `open` when controlled); the
13952
+ * Trigger flips it; each Item is a round action with its name surfacing
13953
+ * beside it while the group is open. The buttons are the shared recipe
13954
+ * (vessels here: round); this family owns only the mooring, the fan
13955
+ * and the fold.
13956
+ */
13957
+ declare function FloatButtonRoot(props: FloatButtonRootProps): JSX$1.Element;
13958
+ export interface FloatButtonTriggerProps extends JSX$1.HTMLAttributes<HTMLButtonElement> {
13959
+ /** The accessible name; the control is icon-only. */
13960
+ label?: string;
13961
+ }
13962
+ declare function FloatButtonTrigger(props: FloatButtonTriggerProps): JSX$1.Element;
13963
+ export interface FloatButtonItemProps extends Omit<JSX$1.HTMLAttributes<HTMLDivElement>, "onClick"> {
13964
+ /** The action's name: the button's accessible name and the
13965
+ * annotation surfaced beside it while the group is open. */
13966
+ label: string;
13967
+ disabled?: boolean;
13968
+ /** The action fired — the fan folds right after. */
13969
+ onClick?: (event: MouseEvent) => void;
13970
+ }
13971
+ declare function FloatButtonItem(props: FloatButtonItemProps): JSX$1.Element;
13972
+ export declare const FloatButton: typeof FloatButtonRoot & {
13973
+ Root: typeof FloatButtonRoot;
13974
+ Trigger: typeof FloatButtonTrigger;
13975
+ Item: typeof FloatButtonItem;
13976
+ };
13977
+ //#endregion
13518
13978
  //#region src/components/floating-panel/index.d.ts
13519
13979
  /** Ark's FloatingPanel, dressed in the paper-and-ink system: the shared
13520
13980
  * popup vessel let loose — a draggable, resizable sheet whose header is the
@@ -13531,6 +13991,80 @@ export declare const FloatingPanel: typeof FloatingPanel$1;
13531
13991
  * Byte, Time, RelativeTime. */
13532
13992
  export declare const Format: typeof Format$1;
13533
13993
  //#endregion
13994
+ //#region src/components/form/index.d.ts
13995
+ /** The one error a field can carry: where it lives in the form state
13996
+ * (dot notation for nested objects, indexes for arrays) and what went
13997
+ * wrong. */
13998
+ export interface FormError {
13999
+ name: string;
14000
+ message: string;
14001
+ }
14002
+ /** The Standard Schema surface this package understands — the slice
14003
+ * valibot, zod, arktype and friends all expose. Declared structurally
14004
+ * so no spec package becomes a dependency. */
14005
+ export interface StandardSchema<Input = unknown> {
14006
+ readonly "~standard": {
14007
+ readonly validate: (value: Input) => Promise<ValidateResult> | ValidateResult;
14008
+ };
14009
+ }
14010
+ interface ValidateResult {
14011
+ readonly value?: unknown;
14012
+ readonly issues?: ReadonlyArray<{
14013
+ readonly message: string;
14014
+ readonly path?: ReadonlyArray<PropertyKey | {
14015
+ readonly key: PropertyKey;
14016
+ }>;
14017
+ }>;
14018
+ }
14019
+ export type FormInputEvent = "input" | "change" | "blur";
14020
+ /** The imperative handle the `ref` callback receives: run the
14021
+ * validation, clear errors (all of them or by name), and set or read
14022
+ * them directly. */
14023
+ export interface FormApi {
14024
+ validate: () => Promise<Map<string, string>>;
14025
+ clear: (name?: string | RegExp) => void;
14026
+ setErrors: (errors: FormError[]) => void;
14027
+ getErrors: (name?: string | RegExp) => FormError[];
14028
+ errors: () => Map<string, string>;
14029
+ }
14030
+ export interface FormProps extends Omit<JSX$1.FormHTMLAttributes<HTMLFormElement>, "onSubmit" | "onError" | "ref"> {
14031
+ state: Record<string, unknown>;
14032
+ schema?: StandardSchema;
14033
+ validate?: (state: Record<string, unknown>) => FormError[] | Promise<FormError[]>;
14034
+ validateOn?: FormInputEvent[];
14035
+ disabled?: boolean;
14036
+ onSubmit?: (state: Record<string, unknown>) => void;
14037
+ onError?: (errors: FormError[]) => void;
14038
+ /** The imperative handle — set/clear/read errors from outside. */
14039
+ ref?: (api: FormApi) => void;
14040
+ }
14041
+ /**
14042
+ * The validation scheduler: one reactive error map, a submit that
14043
+ * validates before it emits, live re-validation on the events the
14044
+ * `validateOn` prop names, and the imperative handle. The schema is any
14045
+ * Standard Schema (valibot, zod, arktype, …) — none are bundled; a
14046
+ * `validate` function composes with it for the cases schemas can't
14047
+ * express. Errors reach their field by name, through FormField.
14048
+ */
14049
+ export declare function Form(props: FormProps): JSX$1.Element;
14050
+ export interface FormFieldProps extends JSX$1.HTMLAttributes<HTMLDivElement> {
14051
+ name?: string;
14052
+ label?: string;
14053
+ hint?: string;
14054
+ required?: boolean;
14055
+ invalid?: boolean;
14056
+ disabled?: boolean;
14057
+ }
14058
+ /**
14059
+ * The named slot in the grid: label, control, hint — and the error the
14060
+ * Form routed to this name, shown through the same parts the standalone
14061
+ * Field family styles. The Ark field context runs underneath, so our
14062
+ * Input and Textarea pick up the label wiring and the invalid state
14063
+ * without knowing the Form exists. Without a Form above it degrades to
14064
+ * a plain labelled field.
14065
+ */
14066
+ export declare function FormField(props: FormFieldProps): JSX$1.Element;
14067
+ //#endregion
13534
14068
  //#region src/components/frame/index.d.ts
13535
14069
  /** Ark's Frame, dressed in the paper-and-ink system: a sandboxed
13536
14070
  * iframe whose body mounts the children and whose `head` prop
@@ -13541,6 +14075,18 @@ export declare const Format: typeof Format$1;
13541
14075
  * core stylesheet to hook. The API is Ark's own. */
13542
14076
  export declare const Frame: (props: import("@ark-ui/solid/frame").FrameProps) => import("solid-js").JSX.Element;
13543
14077
  //#endregion
14078
+ //#region src/components/grid/index.d.ts
14079
+ /** An alignment lattice: tracks of equal measure, sized by column count
14080
+ * — or, with `minChildWidth`, as many tracks as the container fits. */
14081
+ export interface GridProps extends JSX$1.HTMLAttributes<HTMLDivElement> {
14082
+ columns?: number;
14083
+ gap?: "none" | "xs" | "sm" | "md" | "lg" | "xl";
14084
+ /** Switch to the auto-fill lattice: each track is at least this wide,
14085
+ * and the container decides how many fit. */
14086
+ minChildWidth?: string;
14087
+ }
14088
+ export declare function Grid(props: GridProps): JSX$1.Element;
14089
+ //#endregion
13544
14090
  //#region src/components/highlight/index.d.ts
13545
14091
  /** Ark's Highlight, dressed in the paper-and-ink system: query hits are
13546
14092
  * strokes of pigment on the page — a quiet tint of the accent behind the
@@ -13554,6 +14100,36 @@ export declare const Highlight: (props: import("@ark-ui/solid/highlight").Highli
13554
14100
  * API is Ark's own — Root, Trigger, Positioner, Content, Arrow, ArrowTip. */
13555
14101
  export declare const HoverCard: typeof HoverCard$1;
13556
14102
  //#endregion
14103
+ //#region src/components/icon/index.d.ts
14104
+ /** The inkwell: a standard box that keeps any inline svg at its optical
14105
+ * measure and in the text's own ink — the icon carries no pigment and no
14106
+ * size of its own. Bring the glyph; it ships no set. */
14107
+ export interface IconProps extends JSX$1.HTMLAttributes<HTMLSpanElement> {
14108
+ /** Size steps follow the surrounding font size; `inherit` is the
14109
+ * default — one em of the text the icon sits in. */
14110
+ size?: "inherit" | "sm" | "md" | "lg";
14111
+ /** The accessible name. Without it the icon is presentation-only and
14112
+ * hidden from the accessibility tree. */
14113
+ label?: string;
14114
+ }
14115
+ export declare function Icon(props: IconProps): JSX$1.Element;
14116
+ //#endregion
14117
+ //#region src/components/image/index.d.ts
14118
+ /** A framed picture: while the source loads, the frame keeps the
14119
+ * skeleton's breath; the picture dissolves in when it lands; a broken
14120
+ * source leaves the `fallback` prop — or the placeholder glyph when the
14121
+ * caller has nothing local to say. The frame's size is the consumer's
14122
+ * to give. */
14123
+ export interface ImageProps extends JSX$1.HTMLAttributes<HTMLElement> {
14124
+ src: string;
14125
+ alt?: string;
14126
+ fit?: "cover" | "contain" | "fill" | "none";
14127
+ loading?: "lazy" | "eager";
14128
+ /** What a broken source leaves instead of the picture. */
14129
+ fallback?: JSX$1.Element;
14130
+ }
14131
+ export declare function Image(props: ImageProps): JSX$1.Element;
14132
+ //#endregion
13557
14133
  //#region src/components/image-cropper/index.d.ts
13558
14134
  /** Ark's ImageCropper, dressed in the paper-and-ink system: a rounded vessel
13559
14135
  * holding the photograph, one lit selection window framed by light hairlines.
@@ -13561,6 +14137,56 @@ export declare const HoverCard: typeof HoverCard$1;
13561
14137
  * Context. */
13562
14138
  export declare const ImageCropper: typeof ImageCropper$1;
13563
14139
  //#endregion
14140
+ //#region src/components/image-viewer/index.d.ts
14141
+ /**
14142
+ * A lightbox: the picture over a dimmed page, with a small toolbar
14143
+ * beneath it. Zoom is the reader's hand (half to three times, clamped),
14144
+ * a quarter turn at a time rotates, Escape and the scrim close — the
14145
+ * dialog machine carries the modal part. `open` may stay with the
14146
+ * caller; left undefined the viewer keeps it to itself.
14147
+ */
14148
+ export interface ImageViewerProps {
14149
+ src: string;
14150
+ alt?: string;
14151
+ open?: boolean;
14152
+ zoomable?: boolean;
14153
+ /** The openness changed — from the scrim, Escape or the toolbar. */
14154
+ onOpenChange?: (open: boolean) => void;
14155
+ }
14156
+ export declare function ImageViewer(props: ImageViewerProps): JSX$1.Element;
14157
+ //#endregion
14158
+ //#region src/components/input/index.d.ts
14159
+ export interface InputProps extends JSX$1.InputHTMLAttributes<HTMLInputElement> {
14160
+ value?: string | number;
14161
+ onValueChange?: (value: string) => void;
14162
+ size?: "sm" | "md" | "lg";
14163
+ invalid?: boolean;
14164
+ }
14165
+ /** The bare text input: the field recipe — border, surface, focus halo —
14166
+ * on a native control. Standing alone it styles itself from the `invalid`
14167
+ * prop; inside a `Field.Root` it consumes the field context, picking up
14168
+ * the label id, the described-by wiring and the invalid state for free,
14169
+ * which is also the seam the Form validation layer will drive. Disabled
14170
+ * rides the native attribute. */
14171
+ export declare function Input(props: InputProps): JSX$1.Element;
14172
+ //#endregion
14173
+ //#region src/components/input-group/index.d.ts
14174
+ /**
14175
+ * Merged controls: attachments and the entry fused into one seal. The
14176
+ * Root draws the single hairline and carries the group's focus halo;
14177
+ * the Addon is a recessed cell for the reader's fixed words — a scheme,
14178
+ * a unit, a quiet button — placed before or after the entry. Put our
14179
+ * Input (or Textarea) inside and its own border and halo step aside in
14180
+ * favor of the group's; the stylesheet does the merging, the wrapper
14181
+ * adds no visuals of its own.
14182
+ */
14183
+ declare function InputGroupRoot(props: JSX$1.HTMLAttributes<HTMLDivElement>): JSX$1.Element;
14184
+ declare function InputGroupAddon(props: JSX$1.HTMLAttributes<HTMLDivElement>): JSX$1.Element;
14185
+ export declare const InputGroup: typeof InputGroupRoot & {
14186
+ Root: typeof InputGroupRoot;
14187
+ Addon: typeof InputGroupAddon;
14188
+ };
14189
+ //#endregion
13564
14190
  //#region src/components/json-tree-view/index.d.ts
13565
14191
  /** Ark's JsonTreeView, dressed in the paper-and-ink system: the tree-view
13566
14192
  * recipes re-scoped, with value nodes reading as tabular data. The API is
@@ -13572,6 +14198,66 @@ export declare const JsonTreeView: typeof JsonTreeView$1;
13572
14198
  export type KbdProps = JSX$1.HTMLAttributes<HTMLElement>;
13573
14199
  export declare function Kbd(props: KbdProps): JSX$1.Element;
13574
14200
  //#endregion
14201
+ //#region src/components/layout/index.d.ts
14202
+ export interface LayoutRootProps extends JSX$1.HTMLAttributes<HTMLDivElement> {
14203
+ /** Declare which edge the skeleton reserves for its sider — without
14204
+ * it the root is a single column. */
14205
+ sider?: "start" | "end";
14206
+ }
14207
+ /** Which edge the enclosing root reserves for its rail — shared so the
14208
+ * sider's resize handle knows which way the hand pulls. */
14209
+ export interface LayoutContextValue {
14210
+ siderPlacement: () => "start" | "end" | undefined;
14211
+ }
14212
+ /**
14213
+ * The application skeleton: Root, Header, Sider, Content, Footer —
14214
+ * the admin arrangement (Element Plus / AntD keep the same anatomy)
14215
+ * dressed in the paper-and-ink surfaces. The root is a full-height
14216
+ * grid; a declared `sider` turns the columns around to meet whichever
14217
+ * edge the rail stands on.
14218
+ */
14219
+ declare function LayoutRoot(props: LayoutRootProps): JSX$1.Element;
14220
+ declare function LayoutHeader(props: JSX$1.HTMLAttributes<HTMLElement>): JSX$1.Element;
14221
+ declare function LayoutContent(props: JSX$1.HTMLAttributes<HTMLElement>): JSX$1.Element;
14222
+ declare function LayoutFooter(props: JSX$1.HTMLAttributes<HTMLElement>): JSX$1.Element;
14223
+ export interface LayoutSiderProps extends Omit<JSX$1.HTMLAttributes<HTMLElement>, "children"> {
14224
+ /** The caller drives the fold; the sider mirrors it and echoes every
14225
+ * change back through `onCollapsedChange`. */
14226
+ collapsed?: boolean;
14227
+ /** The rail's resting inline size — a layout parameter, not a visual
14228
+ * token, so it rides an inline variable. */
14229
+ width?: string;
14230
+ /** The inline size when folded. */
14231
+ collapsedWidth?: string;
14232
+ /** Offer the hairline at the flow edge: the rail's width follows the
14233
+ * hand (and the arrow keys), clamped by `min-width`/`max-width`, and
14234
+ * every change rides `onWidthChange`. */
14235
+ resizable?: boolean;
14236
+ /** The rail's narrowest inline size while resizing. */
14237
+ minWidth?: string;
14238
+ /** The rail's widest inline size while resizing. */
14239
+ maxWidth?: string;
14240
+ /** The fold flipped. */
14241
+ onCollapsedChange?: (collapsed: boolean) => void;
14242
+ /** The rail's inline size changed — the hand, the arrow keys, or the
14243
+ * caller's own width prop moving. */
14244
+ onWidthChange?: (width: string) => void;
14245
+ /** The children, or a function of the fold state — a rail can swap
14246
+ * its labels for icons instead of being clipped mid-word by the
14247
+ * narrowing edge. */
14248
+ children?: JSX$1.Element | ((state: {
14249
+ collapsed: boolean;
14250
+ }) => JSX$1.Element);
14251
+ }
14252
+ declare function LayoutSider(props: LayoutSiderProps): JSX$1.Element;
14253
+ export declare const Layout: typeof LayoutRoot & {
14254
+ Root: typeof LayoutRoot;
14255
+ Header: typeof LayoutHeader;
14256
+ Sider: typeof LayoutSider;
14257
+ Content: typeof LayoutContent;
14258
+ Footer: typeof LayoutFooter;
14259
+ };
14260
+ //#endregion
13575
14261
  //#region src/components/link/index.d.ts
13576
14262
  export interface LinkProps extends JSX$1.AnchorHTMLAttributes<HTMLAnchorElement> {
13577
14263
  underline?: "always" | "hover" | "none";
@@ -13581,6 +14267,31 @@ export interface LinkProps extends JSX$1.AnchorHTMLAttributes<HTMLAnchorElement>
13581
14267
  * always, on hover, or never. */
13582
14268
  export declare function Link(props: LinkProps): JSX$1.Element;
13583
14269
  //#endregion
14270
+ //#region src/components/list/index.d.ts
14271
+ export interface ListRootProps extends JSX$1.HTMLAttributes<HTMLUListElement> {
14272
+ /** One hairline between rows. */
14273
+ bordered?: boolean;
14274
+ /** Every row answers the pointer with a wash. */
14275
+ hoverable?: boolean;
14276
+ }
14277
+ declare function Root$1(props: ListRootProps): JSX$1.Element;
14278
+ export interface ListContentProps extends Omit<JSX$1.HTMLAttributes<HTMLDivElement>, "title"> {
14279
+ /** The row's title, riding its own part above the words. */
14280
+ title?: JSX$1.Element;
14281
+ /** The quiet echo beneath the title. */
14282
+ description?: JSX$1.Element;
14283
+ }
14284
+ /** The row's words: `title` and `description` ride their own named
14285
+ * parts, the children follow them for anything else. */
14286
+ declare function Content(props: ListContentProps): JSX$1.Element;
14287
+ export declare const List: typeof Root$1 & {
14288
+ Root: typeof Root$1;
14289
+ Item: Component<JSX$1.HTMLAttributes<HTMLElement>>;
14290
+ Leading: Component<JSX$1.HTMLAttributes<HTMLElement>>;
14291
+ Content: typeof Content;
14292
+ Actions: Component<JSX$1.HTMLAttributes<HTMLElement>>;
14293
+ };
14294
+ //#endregion
13584
14295
  //#region src/components/listbox/index.d.ts
13585
14296
  /** Ark's Listbox, dressed in the paper-and-ink system: quiet rows of ink
13586
14297
  * where the checked row alone takes the flat primary fill. The API is
@@ -13595,6 +14306,16 @@ export declare const Listbox: typeof Listbox$1;
13595
14306
  * cutting off. The API is Ark's own — Root, Viewport, Content, Edge, Item. */
13596
14307
  export declare const Marquee: typeof Marquee$1;
13597
14308
  //#endregion
14309
+ //#region src/components/masonry/index.d.ts
14310
+ /** A wall of uneven heights: items flow down each column before
14311
+ * crossing to the next, so the order is column-first. A row-flow wall
14312
+ * would need grid masonry, which browsers do not ship yet. */
14313
+ export interface MasonryProps extends JSX$1.HTMLAttributes<HTMLDivElement> {
14314
+ columns?: number;
14315
+ gap?: "none" | "xs" | "sm" | "md" | "lg" | "xl";
14316
+ }
14317
+ export declare function Masonry(props: MasonryProps): JSX$1.Element;
14318
+ //#endregion
13598
14319
  //#region src/components/menu/index.d.ts
13599
14320
  /** Ark's Menu, dressed in the paper-and-ink system: a quiet paper vessel on
13600
14321
  * elevation, hover as light on the row, checked items as the flat ink fill.
@@ -13603,8 +14324,128 @@ export declare const Marquee: typeof Marquee$1;
13603
14324
  * TriggerItem, Separator, Arrow, ArrowTip. */
13604
14325
  export declare const Menu: typeof Menu$1;
13605
14326
  //#endregion
14327
+ //#region src/components/menubar/index.d.ts
14328
+ export interface MenubarEntry {
14329
+ label: string;
14330
+ value: string;
14331
+ danger?: boolean;
14332
+ disabled?: boolean;
14333
+ }
14334
+ export interface MenubarGroup {
14335
+ label: string;
14336
+ items: MenubarEntry[];
14337
+ }
14338
+ export interface MenubarProps extends Omit<JSX$1.HTMLAttributes<HTMLDivElement>, "onSelect"> {
14339
+ /** The menus across the bar, each with its entries. */
14340
+ items?: MenubarGroup[];
14341
+ /** Called with the entry's `value` when it is chosen. */
14342
+ onSelect?: (value: string) => void;
14343
+ }
14344
+ /**
14345
+ * A desktop-style menu bar: a row of quiet ghost triggers, each opening
14346
+ * the same paper vessel as the menu family. The triggers are our own
14347
+ * buttons grafted onto the menu machine's trigger via `asChild` — the
14348
+ * machine keeps the trigger element (positioning, focus restore,
14349
+ * `data-state`) while the element wears the menubar scope. The popups
14350
+ * keep the menu parts untouched, so the menu stylesheet dresses them.
14351
+ *
14352
+ * Keyboard note: the triggers move between each other with Tab, not
14353
+ * arrow keys — cross-menu arrow traversal is out of scope for this
14354
+ * version. Inside an open menu the machine handles arrows and Escape.
14355
+ */
14356
+ export declare function Menubar(props: MenubarProps): JSX$1.Element;
14357
+ //#endregion
14358
+ //#region src/components/mentions/use-mentions.d.ts
14359
+ interface UseMentionsOptions {
14360
+ /** The candidates offered once the trigger character is typed. */
14361
+ items: MentionEntry[];
14362
+ /** The character that summons the candidates. */
14363
+ trigger?: string;
14364
+ }
14365
+ interface UseMentionsHandlers {
14366
+ /** The text the field holds right now — read at keystroke time, never
14367
+ * from a controlled prop that lags a render behind the caret. */
14368
+ getText: () => string;
14369
+ /** Writes the field's next text: a mention inserted at the token. */
14370
+ setText: (value: string) => void;
14371
+ }
14372
+ /** The @-detection machinery behind a mention field: watch the caret,
14373
+ * offer the matching candidates, and answer for the keys that drive
14374
+ * them. The field element arrives as an accessor because hosts wrap it
14375
+ * differently (a bare textarea, a field's own part).
14376
+ *
14377
+ * `onKeydown` answers whether the vessel consumed the key, so a host
14378
+ * with its own Enter semantics — a composer that sends — can yield to
14379
+ * the candidates first and act only when the vessel stands down. */
14380
+ export declare function useMentions(options: Accessor<UseMentionsOptions>, textarea: Accessor<HTMLTextAreaElement | null>, handlers: UseMentionsHandlers): {
14381
+ open: Accessor<boolean>;
14382
+ matches: Accessor<MentionEntry[]>;
14383
+ active: Accessor<number>;
14384
+ setActive: import("solid-js").Setter<number>;
14385
+ insert: (entry: MentionEntry) => void;
14386
+ close: () => void;
14387
+ onInput: () => void;
14388
+ onKeydown: (event: KeyboardEvent) => boolean;
14389
+ };
14390
+ //#endregion
14391
+ //#region src/components/mentions/index.d.ts
14392
+ export interface MentionEntry {
14393
+ label: string;
14394
+ value: string;
14395
+ }
14396
+ export interface MentionsVesselProps {
14397
+ open?: boolean;
14398
+ matches?: MentionEntry[];
14399
+ active?: number;
14400
+ /** The live element the vessel points at — the anchor is virtual, a
14401
+ * rectangle read off the host's field. */
14402
+ anchor?: HTMLTextAreaElement | null;
14403
+ onInsert?: (entry: MentionEntry) => void;
14404
+ onActiveChange?: (index: number) => void;
14405
+ onOpenChange?: (open: boolean) => void;
14406
+ }
14407
+ /** The vessel: the candidates themselves as a floating card. The anchor
14408
+ * is virtual — a live rectangle off the host's field — so a host keeps
14409
+ * its own anatomy (the textarea rides where the host puts it) and the
14410
+ * vessel still points at the right place. Shares the detection state
14411
+ * with the host through `useMentions`. */
14412
+ export declare function MentionsVessel(props: MentionsVesselProps): JSX$1.Element;
14413
+ export interface MentionsProps extends Omit<JSX$1.HTMLAttributes<HTMLDivElement>, "onInput"> {
14414
+ /** The candidates offered once the trigger character is typed. */
14415
+ items?: MentionEntry[];
14416
+ /** The text held by the field. Supply it to control the field;
14417
+ * changes are reported through `onValueChange`. */
14418
+ value?: string;
14419
+ /** The character that summons the candidates. */
14420
+ trigger?: string;
14421
+ placeholder?: string;
14422
+ /** Let the field grow with its text instead of holding `rows`. */
14423
+ autoresize?: boolean;
14424
+ /** Standing alone, the field styles itself from this flag; inside a
14425
+ * `Field.Root` the field's own invalid state takes over. */
14426
+ invalid?: boolean;
14427
+ /** The field's text changed. */
14428
+ onValueChange?: (value: string) => void;
14429
+ }
14430
+ /**
14431
+ * @-mentions: a plain textarea that, when the text before the caret ends
14432
+ * with the trigger character followed by a token, offers the matching
14433
+ * candidates in a small anchored vessel; choosing one replaces the token
14434
+ * with `trigger + label` and hands the whole text back through
14435
+ * `onValueChange`. Arrows move, Enter inserts, Escape dismisses.
14436
+ *
14437
+ * The field is the shared `Textarea` — field wiring (label ids, the
14438
+ * invalid state) rides on it for free — and the vessel anchors to the
14439
+ * field as a whole (popover machinery), not to the caret coordinates;
14440
+ * caret-precise positioning would need a second positioning system for
14441
+ * no practical gain at typical field sizes. Composers that keep their
14442
+ * own field anatomy (the AI prompt input) skip this shell and wire
14443
+ * `useMentions` plus `MentionsVessel` themselves.
14444
+ */
14445
+ export declare function Mentions(props: MentionsProps): JSX$1.Element;
14446
+ //#endregion
13606
14447
  //#region src/components/meter/index.d.ts
13607
- export interface MeterRootProps extends JSX$1.HTMLAttributes<HTMLElement> {
14448
+ export interface MeterRootProps extends JSX$1.HTMLAttributes<HTMLDivElement> {
13608
14449
  /** The measured value — clamped between min and max. */
13609
14450
  value: number;
13610
14451
  min?: number;
@@ -13667,6 +14508,22 @@ export declare const PasswordInput: typeof PasswordInput$1;
13667
14508
  * Root, Label, Control, Input, HiddenInput. */
13668
14509
  export declare const PinInput: typeof PinInput$1;
13669
14510
  //#endregion
14511
+ //#region src/components/popconfirm/index.d.ts
14512
+ export interface PopconfirmProps extends JSX$1.HTMLAttributes<HTMLButtonElement> {
14513
+ /** The question the reader is answering. */
14514
+ message: string;
14515
+ confirmText?: string;
14516
+ cancelText?: string;
14517
+ onConfirm?: () => void;
14518
+ onCancel?: () => void;
14519
+ }
14520
+ /** A question at the point of no return: the trigger opens a small
14521
+ * anchored vessel carrying the message and two answers. Confirmation
14522
+ * and cancellation are the caller's to act on — the panel closes
14523
+ * either way. The children are the trigger's content, riding the
14524
+ * machine-driven trigger button. */
14525
+ export declare function Popconfirm(props: PopconfirmProps): JSX$1.Element;
14526
+ //#endregion
13670
14527
  //#region src/components/popover/index.d.ts
13671
14528
  /** Ark's Popover, dressed in the paper-and-ink system: a paper vessel that
13672
14529
  * dissolves in on elevation, anchored to its trigger by a whisker arrow. The
@@ -13681,6 +14538,27 @@ export declare const Popover: typeof Popover$1;
13681
14538
  * CircleTrack, CircleRange. */
13682
14539
  export declare const Progress: typeof Progress$1;
13683
14540
  //#endregion
14541
+ //#region src/components/progress-group/index.d.ts
14542
+ /** One verdict on the bar. */
14543
+ export interface ProgressSegment {
14544
+ value: number;
14545
+ label?: string;
14546
+ pigment?: "primary" | "success" | "warning" | "danger" | "info";
14547
+ }
14548
+ /**
14549
+ * One bar, several verdicts: the segments stand shoulder to shoulder,
14550
+ * each as wide as its share of the whole and speaking its own pigment;
14551
+ * the legend reads them back beneath (swatch, label, value) unless the
14552
+ * caller declines it. The whole is the sum of the parts unless the
14553
+ * caller brings a larger one — the remainder then shows as groove.
14554
+ */
14555
+ export interface ProgressGroupProps extends JSX$1.HTMLAttributes<HTMLDivElement> {
14556
+ segments: ProgressSegment[];
14557
+ max?: number;
14558
+ showLegend?: boolean;
14559
+ }
14560
+ export declare function ProgressGroup(props: ProgressGroupProps): JSX$1.Element;
14561
+ //#endregion
13684
14562
  //#region src/components/qr-code/index.d.ts
13685
14563
  /** Ark's QrCode, dressed in the paper-and-ink system: the pattern prints in
13686
14564
  * ink on the page, with an optional paper badge and a seal-cut download
@@ -13761,25 +14639,71 @@ export interface SpinnerProps extends JSX$1.HTMLAttributes<HTMLElement> {
13761
14639
  * default — it reports progress without claiming attention. */
13762
14640
  export declare function Spinner(props: SpinnerProps): JSX$1.Element;
13763
14641
  //#endregion
14642
+ //#region src/components/split-button/index.d.ts
14643
+ export interface SplitButtonEntry {
14644
+ label: string;
14645
+ /** Handed back with `onSelect` when the entry is chosen. */
14646
+ value: string;
14647
+ danger?: boolean;
14648
+ disabled?: boolean;
14649
+ }
14650
+ export interface SplitButtonProps extends Omit<JSX$1.HTMLAttributes<HTMLDivElement>, "onClick" | "onSelect"> {
14651
+ /** The main action's label. */
14652
+ label: string;
14653
+ /** The dropdown's entries. */
14654
+ items?: SplitButtonEntry[];
14655
+ /** How both halves rest; the arrow always reads as one control with
14656
+ * the main button. */
14657
+ variant?: "solid" | "outline" | "ghost" | "subtle";
14658
+ tone?: "ink" | "info" | "success" | "warning" | "danger";
14659
+ size?: "sm" | "md" | "lg";
14660
+ disabled?: boolean;
14661
+ /** The main button was pressed. */
14662
+ onClick?: (event: MouseEvent) => void;
14663
+ /** An entry was chosen; carries its `value`. */
14664
+ onSelect?: (value: string) => void;
14665
+ }
14666
+ /**
14667
+ * A primary action with its alternatives one seam away: the main button
14668
+ * fires `onClick`, the fitted arrow opens a paper vessel of the same
14669
+ * register whose entries call `onSelect` with their value. The arrow is
14670
+ * the menu machine's trigger with the button recipe riding over it —
14671
+ * the machine keeps the element (positioning, focus, `data-state`), the
14672
+ * button stylesheet's trigger register dresses it. The popup keeps the
14673
+ * menu parts untouched.
14674
+ */
14675
+ export declare function SplitButton(props: SplitButtonProps): JSX$1.Element;
14676
+ //#endregion
13764
14677
  //#region src/components/splitter/index.d.ts
13765
14678
  /** Ark's Splitter, dressed in the paper-and-ink system: panels divide on
13766
14679
  * a hairline and a small paper-seal thumb answers the hand. The API is
13767
14680
  * Ark's own — Root, Panel, ResizeTrigger, ResizeTriggerIndicator. */
13768
14681
  export declare const Splitter: typeof Splitter$1;
13769
14682
  //#endregion
14683
+ //#region src/components/stack/index.d.ts
14684
+ export interface StackProps extends JSX$1.HTMLAttributes<HTMLDivElement> {
14685
+ direction?: "column" | "row";
14686
+ gap?: "none" | "xs" | "sm" | "md" | "lg" | "xl";
14687
+ wrap?: boolean;
14688
+ align?: string;
14689
+ justify?: string;
14690
+ }
14691
+ export declare function Stack(props: StackProps): JSX$1.Element;
14692
+ //#endregion
13770
14693
  //#region src/components/stat/index.d.ts
13771
14694
  export interface StatDeltaProps extends JSX$1.HTMLAttributes<HTMLElement> {
13772
14695
  direction?: "up" | "down" | "flat";
14696
+ "data-direction"?: string;
13773
14697
  }
13774
14698
  /** The delta reads the direction in the fixed semantic pigments; an
13775
14699
  * explicit `data-direction` attribute on the consumer side still wins. */
13776
14700
  declare function Delta(props: StatDeltaProps): JSX$1.Element;
13777
- export declare const Stat: ((props: JSX$1.HTMLAttributes<HTMLElement>) => JSX$1.Element) & {
13778
- Root: (props: JSX$1.HTMLAttributes<HTMLElement>) => JSX$1.Element;
13779
- Label: (props: JSX$1.HTMLAttributes<HTMLElement>) => JSX$1.Element;
13780
- Value: (props: JSX$1.HTMLAttributes<HTMLElement>) => JSX$1.Element;
14701
+ export declare const Stat: ((props: JSX$1.HTMLAttributes<HTMLDivElement>) => JSX$1.Element) & {
14702
+ Root: (props: JSX$1.HTMLAttributes<HTMLDivElement>) => JSX$1.Element;
14703
+ Label: (props: JSX$1.HTMLAttributes<HTMLDivElement>) => JSX$1.Element;
14704
+ Value: (props: JSX$1.HTMLAttributes<HTMLDivElement>) => JSX$1.Element;
13781
14705
  Delta: typeof Delta;
13782
- Description: (props: JSX$1.HTMLAttributes<HTMLElement>) => JSX$1.Element;
14706
+ Description: (props: JSX$1.HTMLAttributes<HTMLDivElement>) => JSX$1.Element;
13783
14707
  };
13784
14708
  //#endregion
13785
14709
  //#region src/components/steps/index.d.ts
@@ -13892,6 +14816,19 @@ export declare const Tabs: typeof Tabs$1;
13892
14816
  * Context. */
13893
14817
  export declare const TagsInput: typeof TagsInput$1;
13894
14818
  //#endregion
14819
+ //#region src/components/textarea/index.d.ts
14820
+ export interface TextareaProps extends JSX$1.TextareaHTMLAttributes<HTMLTextAreaElement> {
14821
+ value?: string;
14822
+ onValueChange?: (value: string) => void;
14823
+ invalid?: boolean;
14824
+ }
14825
+ /** The bare multi-line input: the field recipe on a `<textarea>`, sized
14826
+ * by rows and resizable in the block direction. Standing alone it styles
14827
+ * itself from the `invalid` prop; inside a `Field.Root` it consumes the
14828
+ * field context, picking up the label id, the described-by wiring and
14829
+ * the invalid state for free. Disabled rides the native attribute. */
14830
+ export declare function Textarea(props: TextareaProps): JSX$1.Element;
14831
+ //#endregion
13895
14832
  //#region src/components/timeline/index.d.ts
13896
14833
  export declare const Timeline: Component<Record<string, unknown>> & {
13897
14834
  Root: Component<Record<string, unknown>>;
@@ -13929,13 +14866,13 @@ export declare const Toc: typeof Toc$1;
13929
14866
  export declare const Toggle: typeof Toggle$1;
13930
14867
  //#endregion
13931
14868
  //#region src/components/typography/index.d.ts
13932
- export declare const Typography: ((props: JSX$1.HTMLAttributes<HTMLElement>) => JSX$1.Element) & {
13933
- Display: (props: JSX$1.HTMLAttributes<HTMLElement>) => JSX$1.Element;
13934
- Heading: (props: JSX$1.HTMLAttributes<HTMLElement>) => JSX$1.Element;
13935
- Lead: (props: JSX$1.HTMLAttributes<HTMLElement>) => JSX$1.Element;
13936
- Body: (props: JSX$1.HTMLAttributes<HTMLElement>) => JSX$1.Element;
13937
- Muted: (props: JSX$1.HTMLAttributes<HTMLElement>) => JSX$1.Element;
13938
- Label: (props: JSX$1.HTMLAttributes<HTMLElement>) => JSX$1.Element;
14869
+ export declare const Typography: ((props: JSX$1.HTMLAttributes<HTMLParagraphElement>) => JSX$1.Element) & {
14870
+ Display: (props: JSX$1.HTMLAttributes<HTMLParagraphElement>) => JSX$1.Element;
14871
+ Heading: (props: JSX$1.HTMLAttributes<HTMLParagraphElement>) => JSX$1.Element;
14872
+ Lead: (props: JSX$1.HTMLAttributes<HTMLParagraphElement>) => JSX$1.Element;
14873
+ Body: (props: JSX$1.HTMLAttributes<HTMLParagraphElement>) => JSX$1.Element;
14874
+ Muted: (props: JSX$1.HTMLAttributes<HTMLParagraphElement>) => JSX$1.Element;
14875
+ Label: (props: JSX$1.HTMLAttributes<HTMLParagraphElement>) => JSX$1.Element;
13939
14876
  };
13940
14877
  //#endregion
13941
14878
  //#region src/components/toggle-group/index.d.ts
@@ -13944,6 +14881,29 @@ export declare const Typography: ((props: JSX$1.HTMLAttributes<HTMLElement>) =>
13944
14881
  * Ark's own — Root, Item. */
13945
14882
  export declare const ToggleGroup: typeof ToggleGroup$1;
13946
14883
  //#endregion
14884
+ //#region src/components/transfer/index.d.ts
14885
+ export interface TransferItem {
14886
+ label: string;
14887
+ value: string;
14888
+ disabled?: boolean;
14889
+ }
14890
+ export interface TransferProps extends JSX$1.HTMLAttributes<HTMLDivElement> {
14891
+ value?: string[];
14892
+ data: TransferItem[];
14893
+ titles?: string[];
14894
+ searchable?: boolean;
14895
+ disabled?: boolean;
14896
+ onValueChange?: (value: string[]) => void;
14897
+ }
14898
+ /**
14899
+ * Two ledgers and a crossing: items sit in the source column until the
14900
+ * reader checks them and walks them across — and back, the same way.
14901
+ * `value` is the target column's value list; everything else in
14902
+ * `data` stays on the left. `searchable` adds a filter line to each
14903
+ * panel.
14904
+ */
14905
+ export declare function Transfer(props: TransferProps): JSX$1.Element;
14906
+ //#endregion
13947
14907
  //#region src/components/tooltip/index.d.ts
13948
14908
  /** Ark's Tooltip, dressed in the paper-and-ink system: the smallest
13949
14909
  * vessel — a tight chip of ink that dissolves in over its anchor. The
@@ -13959,6 +14919,28 @@ export declare const Tooltip: typeof Tooltip$1;
13959
14919
  * useTour. */
13960
14920
  export declare const Tour: typeof Tour$1;
13961
14921
  //#endregion
14922
+ //#region src/components/tree-select/index.d.ts
14923
+ export interface TreeSelectNode {
14924
+ label: string;
14925
+ value: string;
14926
+ children?: TreeSelectNode[];
14927
+ disabled?: boolean;
14928
+ }
14929
+ export interface TreeSelectProps extends JSX$1.HTMLAttributes<HTMLDivElement> {
14930
+ value?: string;
14931
+ data: TreeSelectNode[];
14932
+ placeholder?: string;
14933
+ disabled?: boolean;
14934
+ onValueChange?: (value: string) => void;
14935
+ }
14936
+ /**
14937
+ * A tree behind a field: the control reads like an input, the vessel
14938
+ * below walks the hierarchy, and one leaf click closes the deal. Single
14939
+ * selection — the chosen label rides on the control, its value rides in
14940
+ * `value`.
14941
+ */
14942
+ export declare function TreeSelect(props: TreeSelectProps): JSX$1.Element;
14943
+ //#endregion
13962
14944
  //#region src/components/tree-view/index.d.ts
13963
14945
  /** Ark's TreeView, dressed in the paper-and-ink system: quiet rows where
13964
14946
  * selection is pure light on the paper, one hairline plumb line per depth,
@@ -13969,4 +14951,20 @@ export declare const Tour: typeof Tour$1;
13969
14951
  * NodeRenameInput, plus createTreeCollection. */
13970
14952
  export declare const TreeView: typeof TreeView$1;
13971
14953
  //#endregion
13972
- 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 };
14954
+ //#region src/components/watermark/index.d.ts
14955
+ /**
14956
+ * The paper bears its seal beneath the content: a canvas draws the
14957
+ * text once into a tile (rotated, faint, crisp at the screen's pixel
14958
+ * density) and the marks layer repeats it over the children. The
14959
+ * seal redraws itself when a prop turns — and it never takes a
14960
+ * pointer.
14961
+ */
14962
+ export interface WatermarkProps extends JSX$1.HTMLAttributes<HTMLDivElement> {
14963
+ content: string;
14964
+ opacity?: number;
14965
+ rotate?: number;
14966
+ fontSize?: string;
14967
+ }
14968
+ export declare function Watermark(props: WatermarkProps): JSX$1.Element;
14969
+ //#endregion
14970
+ 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 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 };