@monimesl/dot-core 0.1.0-alpha.7 → 0.1.0-alpha.9

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.ts CHANGED
@@ -15,22 +15,19 @@ interface PropTypes {
15
15
  }
16
16
  type PropType = keyof PropTypes | readonly string[];
17
17
  type PropValue<T extends PropType> = T extends readonly string[] ? T[number] : T extends keyof PropTypes ? PropTypes[T] : never;
18
- /**
19
- * - `none`: no children
20
- * - `text`: text and inline components (such as `Text`).
21
- * - `elements`: any components, but raw text must be wrapped in an inline component.
22
- */
23
18
  type ChildrenType = 'none' | 'text' | 'elements';
24
- /**
25
- * Describes a UI component independently of any renderer. The compiler checks `.dml` markup
26
- * against it, and each renderer maps it to its own elements.
27
- */
28
19
  interface ComponentManifest<Name extends string = string, Props extends Record<string, PropType> = Record<string, PropType>, Events extends string = string, Children extends ChildrenType = ChildrenType> {
29
20
  readonly name: Name;
30
21
  readonly props: Props;
31
22
  readonly events: readonly Events[];
32
23
  readonly children: Children;
33
24
  readonly inline?: boolean;
25
+ readonly overrides?: readonly PropOverride[];
26
+ }
27
+ interface PropOverride {
28
+ prop: string;
29
+ ignores: string;
30
+ because: string;
34
31
  }
35
32
  export declare function defineComponent<const Name extends string, const Props extends Record<string, PropType> = Record<never, PropType>, const Events extends string = never, const Children extends ChildrenType = ChildrenType>(manifest: {
36
33
  name: Name;
@@ -38,27 +35,215 @@ export declare function defineComponent<const Name extends string, const Props e
38
35
  events?: readonly Events[];
39
36
  children: Children;
40
37
  inline?: boolean;
38
+ overrides?: readonly PropOverride[];
41
39
  }): ComponentManifest<Name, Props, Events, Children>;
42
40
  type EventProp<Event extends string> = `on${Capitalize<Event>}`;
43
41
  export declare function eventProp<Event extends string>(event: Event): EventProp<Event>;
44
42
  export declare function isEventProp(name: string): boolean;
45
43
  export declare function eventName(prop: string): string;
46
- /**
47
- * The props a renderer's implementation of `M` receives, with `Children` as its node type. Every
48
- * prop is optional and may be `undefined`: markup can omit it, and a binding can evaluate to
49
- * `undefined` at runtime.
50
- */
51
44
  type PropsOf<M extends ComponentManifest, Children = never> = { [K in keyof M['props']]?: PropValue<M['props'][K]> | undefined; } & { [E in M['events'][number] as EventProp<E>]?: ((event: DotEvent) => void) | undefined; } & (M['children'] extends 'none' ? unknown : {
52
45
  children?: Children | undefined;
53
46
  });
54
47
  type ComponentRegistry = Readonly<Record<string, ComponentManifest>>;
55
48
  export declare function componentRegistry(manifests: Iterable<ComponentManifest>): ComponentRegistry;
56
49
  //#endregion
50
+ //#region src/theme/theme.d.ts
51
+ interface Theme {
52
+ scheme?: ColorScheme | 'system' | undefined;
53
+ colors?: ThemeColors | undefined;
54
+ density?: ThemeDensity | undefined;
55
+ shape?: ThemeShape | undefined;
56
+ }
57
+ type ThemeDensity = 'dense' | 'compact' | 'comfortable';
58
+ type ThemeShape = 'square' | 'subtle' | 'soft' | 'rounded';
59
+ interface ThemeColors {
60
+ primary?: SchemeColor | undefined;
61
+ background?: SchemeColor | undefined;
62
+ surface?: SchemeColor | undefined;
63
+ text?: SchemeColor | undefined;
64
+ }
65
+ interface SchemeColor {
66
+ light?: HexColor | undefined;
67
+ dark?: HexColor | undefined;
68
+ }
69
+ type HexColor = `#${string}`;
70
+ type ColorScheme = 'light' | 'dark';
71
+ //#endregion
72
+ //#region src/host/context.d.ts
73
+ type AppState = 'active' | 'background';
74
+ interface SystemContext {
75
+ readonly scheme: ColorScheme;
76
+ readonly appState: AppState;
77
+ }
78
+ export declare const DEFAULT_SYSTEM_CONTEXT: SystemContext;
79
+ //#endregion
80
+ //#region src/host/calls.d.ts
81
+ type HostErrorCode = 'unsupported' | 'denied' | 'cancelled' | 'timeout' | 'invalid' | 'failed';
82
+ export declare class HostError extends Error {
83
+ readonly name = "HostError";
84
+ readonly code: HostErrorCode;
85
+ constructor(code: HostErrorCode, message: string);
86
+ }
87
+ interface HostCallOptions {
88
+ timeout?: number | undefined;
89
+ }
90
+ interface HostRequest<T> extends Promise<T> {
91
+ cancel(): void;
92
+ }
93
+ type HostCaller = (method: string, params: unknown, options: HostCallOptions) => HostRequest<unknown>;
94
+ export declare function connectHost(caller: HostCaller | null): void;
95
+ export declare function callHost<Result>(method: string, params: unknown, options?: HostCallOptions): HostRequest<Result>;
96
+ export declare function createHostRequest<Result>(promise: Promise<Result>, cancel?: () => void): HostRequest<Result>;
97
+ //#endregion
98
+ //#region src/page/bars.d.ts
99
+ interface NavigationBarOptions {
100
+ title?: string | undefined;
101
+ hidden?: boolean | undefined;
102
+ backgroundColor?: string | undefined;
103
+ textColor?: string | undefined;
104
+ }
105
+ interface TabBarOptions {
106
+ hidden?: boolean | undefined;
107
+ }
108
+ interface PageConfigs {
109
+ navigationBar?: NavigationBarOptions | undefined;
110
+ tabBar?: TabBarOptions | undefined;
111
+ }
112
+ interface PageBars {
113
+ navigationBar: NavigationBarOptions;
114
+ tabBar: TabBarOptions;
115
+ }
116
+ export declare function checkNavigationBar(options: NavigationBarOptions): void;
117
+ export declare function checkTabBar(options: TabBarOptions): void;
118
+ export declare function checkConfigs(configs: PageConfigs): void;
119
+ export declare function mergeConfigs(...configs: (PageConfigs | undefined)[]): PageBars;
120
+ //#endregion
121
+ //#region src/page/navigation.d.ts
122
+ export declare const MAX_STACK_DEPTH = 8;
123
+ export declare function isPageId(value: string): boolean;
124
+ type PageLaunchOptions = Readonly<Record<string, string>>;
125
+ type Navigation = {
126
+ readonly action: 'push' | 'replace' | 'reset';
127
+ readonly page: string;
128
+ readonly options: PageLaunchOptions;
129
+ } | {
130
+ readonly action: 'back';
131
+ readonly delta: number;
132
+ };
133
+ interface StackEntry {
134
+ readonly instanceId: number;
135
+ readonly page: string;
136
+ readonly options: PageLaunchOptions;
137
+ }
138
+ export declare class NavigationStack {
139
+ #private;
140
+ readonly limit: number;
141
+ constructor(limit?: number);
142
+ get pages(): readonly StackEntry[];
143
+ get top(): StackEntry | undefined;
144
+ apply(navigation: Navigation): boolean;
145
+ }
146
+ //#endregion
147
+ //#region src/protocol/core.d.ts
148
+ type PageState = Record<string, unknown>;
149
+ interface UILayerMessages {
150
+ connect: Record<string, never>;
151
+ load: {
152
+ instanceId: number;
153
+ page: string;
154
+ options: PageLaunchOptions;
155
+ };
156
+ unload: {
157
+ instanceId: number;
158
+ };
159
+ show: {
160
+ instanceId: number;
161
+ };
162
+ hide: {
163
+ instanceId: number;
164
+ };
165
+ event: {
166
+ instanceId: number;
167
+ handler: string;
168
+ event: DotEvent;
169
+ };
170
+ }
171
+ interface LogicLayerMessages {
172
+ setTheme: {
173
+ theme: Theme;
174
+ };
175
+ initPageState: {
176
+ instanceId: number;
177
+ state: PageState;
178
+ };
179
+ setPageState: {
180
+ instanceId: number;
181
+ patchState: PageState;
182
+ };
183
+ error: {
184
+ instanceId?: number;
185
+ message: string;
186
+ };
187
+ navigate: Navigation & {
188
+ from: number;
189
+ };
190
+ hostCall: {
191
+ id: number;
192
+ method: string;
193
+ params: unknown;
194
+ timeout?: number;
195
+ };
196
+ hostCancel: {
197
+ id: number;
198
+ };
199
+ pageBars: {
200
+ instanceId: number;
201
+ } & PageBars;
202
+ }
203
+ interface HostLayerMessages {
204
+ syncStack: {
205
+ pages: readonly StackEntry[];
206
+ limit: number;
207
+ };
208
+ syncSystemContext: SystemContext;
209
+ hostResult: HostResult;
210
+ }
211
+ type HostResult = {
212
+ id: number;
213
+ value: unknown;
214
+ } | {
215
+ id: number;
216
+ error: {
217
+ code: HostErrorCode;
218
+ message: string;
219
+ };
220
+ };
221
+ interface Envelope<Type extends string = string, Payload = unknown> {
222
+ readonly type: Type;
223
+ readonly payload: Payload;
224
+ }
225
+ type MessageMap = object;
226
+ type MessageType<M extends MessageMap> = keyof M & string;
227
+ //#endregion
228
+ //#region src/view/renderer.d.ts
229
+ interface RenderContext<Node> {
230
+ readonly h: (type: string, props: Record<string, unknown> | null, ...children: (Node | string)[]) => Node;
231
+ readonly on: (handler: string, data?: Readonly<Record<string, unknown>>) => (event: DotEvent) => void;
232
+ readonly text: (value: unknown) => string;
233
+ readonly each: (items: unknown, render: (item: unknown, index: number) => (Node | string)[], key?: (item: unknown, index: number) => unknown) => Node;
234
+ }
235
+ type ViewRender = <Node>(state: PageState, context: RenderContext<Node>) => Node;
236
+ //#endregion
237
+ //#region src/view/values.d.ts
238
+ export declare function toText(value: unknown): string;
239
+ export declare function toList(value: unknown): readonly unknown[];
240
+ //#endregion
57
241
  //#region src/view/components/amount-input.d.ts
58
242
  export declare const AmountInput: ComponentManifest<"AmountInput", {
59
243
  readonly value: "number";
60
244
  readonly currency: "string";
61
- readonly decimals: "number";
245
+ readonly minorUnits: "number";
246
+ readonly unit: readonly ["minor", "major"];
62
247
  readonly label: "string";
63
248
  readonly placeholder: "string";
64
249
  readonly hint: "string";
@@ -75,6 +260,11 @@ export declare const Button: ComponentManifest<"Button", {
75
260
  //#endregion
76
261
  //#region src/view/components/carousel.d.ts
77
262
  export declare const Carousel: ComponentManifest<"Carousel", {
263
+ readonly padding: readonly ["none", "small", "medium", "large"];
264
+ readonly paddingTop: readonly ["none", "small", "medium", "large"];
265
+ readonly paddingStart: readonly ["none", "small", "medium", "large"];
266
+ readonly paddingEnd: readonly ["none", "small", "medium", "large"];
267
+ readonly paddingBottom: readonly ["none", "small", "medium", "large"];
78
268
  readonly autoplay: "boolean";
79
269
  readonly interval: "number";
80
270
  readonly loop: "boolean";
@@ -87,7 +277,7 @@ export declare const Carousel: ComponentManifest<"Carousel", {
87
277
  //#region src/view/components/chip.d.ts
88
278
  export declare const Chip: ComponentManifest<"Chip", {
89
279
  readonly label: "string";
90
- readonly icon: readonly ["arrow-down", "arrow-left", "arrow-right", "arrow-up", "bank", "bell", "bolt", "calendar", "card", "cart", "cash", "check", "chevron-down", "chevron-left", "chevron-right", "chevron-up", "clock", "close", "copy", "download", "edit", "error", "eye", "eye-off", "file", "gift", "grid", "heart", "help", "history", "home", "image", "info", "list", "location", "lock", "logout", "mail", "minus", "mobile", "more", "phone", "plus", "qr-code", "receipt", "refresh", "search", "send", "settings", "share", "star", "success", "trash", "upload", "user", "users", "wallet", "warning", "water", "wifi"];
280
+ readonly icon: readonly ["arrow-down", "arrow-left", "arrow-right", "arrow-up", "bank", "bell", "bolt", "calendar", "card", "cart", "cash", "check", "chevron-down", "chevron-left", "chevron-right", "chevron-up", "clock", "close", "copy", "download", "edit", "error", "external-link", "eye", "eye-off", "file", "gift", "globe", "grid", "headphones", "heart", "help", "history", "home", "image", "info", "link", "list", "location", "lock", "logout", "mail", "microphone", "minus", "mobile", "more", "music", "phone", "playlist", "plus", "qr-code", "receipt", "refresh", "search", "send", "settings", "share", "star", "success", "ticket", "trash", "upload", "user", "users", "video", "wallet", "warning", "water", "wifi"];
91
281
  readonly selected: "boolean";
92
282
  readonly disabled: "boolean";
93
283
  }, "tap", "none">;
@@ -103,12 +293,30 @@ export declare const CodeInput: ComponentManifest<"CodeInput", {
103
293
  readonly disabled: "boolean";
104
294
  }, "change" | "complete", "none">;
105
295
  //#endregion
296
+ //#region src/view/components/detail-row.d.ts
297
+ export declare const DetailRow: ComponentManifest<"DetailRow", {
298
+ readonly padding: readonly ["none", "small", "medium", "large"];
299
+ readonly paddingTop: readonly ["none", "small", "medium", "large"];
300
+ readonly paddingStart: readonly ["none", "small", "medium", "large"];
301
+ readonly paddingEnd: readonly ["none", "small", "medium", "large"];
302
+ readonly paddingBottom: readonly ["none", "small", "medium", "large"];
303
+ readonly label: "string";
304
+ readonly value: "string";
305
+ readonly tone: readonly ["default", "muted", "info", "success", "warning", "danger"];
306
+ readonly weight: readonly ["regular", "medium", "bold"];
307
+ }, never, "none">;
308
+ //#endregion
106
309
  //#region src/view/components/divider.d.ts
107
310
  export declare const Divider: ComponentManifest<"Divider", Record<never, PropType>, never, "none">;
108
311
  //#endregion
109
312
  //#region src/view/components/empty-state.d.ts
110
313
  export declare const EmptyState: ComponentManifest<"EmptyState", {
111
- readonly icon: readonly ["arrow-down", "arrow-left", "arrow-right", "arrow-up", "bank", "bell", "bolt", "calendar", "card", "cart", "cash", "check", "chevron-down", "chevron-left", "chevron-right", "chevron-up", "clock", "close", "copy", "download", "edit", "error", "eye", "eye-off", "file", "gift", "grid", "heart", "help", "history", "home", "image", "info", "list", "location", "lock", "logout", "mail", "minus", "mobile", "more", "phone", "plus", "qr-code", "receipt", "refresh", "search", "send", "settings", "share", "star", "success", "trash", "upload", "user", "users", "wallet", "warning", "water", "wifi"];
314
+ readonly padding: readonly ["none", "small", "medium", "large"];
315
+ readonly paddingTop: readonly ["none", "small", "medium", "large"];
316
+ readonly paddingStart: readonly ["none", "small", "medium", "large"];
317
+ readonly paddingEnd: readonly ["none", "small", "medium", "large"];
318
+ readonly paddingBottom: readonly ["none", "small", "medium", "large"];
319
+ readonly icon: readonly ["arrow-down", "arrow-left", "arrow-right", "arrow-up", "bank", "bell", "bolt", "calendar", "card", "cart", "cash", "check", "chevron-down", "chevron-left", "chevron-right", "chevron-up", "clock", "close", "copy", "download", "edit", "error", "external-link", "eye", "eye-off", "file", "gift", "globe", "grid", "headphones", "heart", "help", "history", "home", "image", "info", "link", "list", "location", "lock", "logout", "mail", "microphone", "minus", "mobile", "more", "music", "phone", "playlist", "plus", "qr-code", "receipt", "refresh", "search", "send", "settings", "share", "star", "success", "ticket", "trash", "upload", "user", "users", "video", "wallet", "warning", "water", "wifi"];
112
320
  readonly title: "string";
113
321
  readonly text: "string";
114
322
  }, never, "elements">;
@@ -121,6 +329,11 @@ export declare const ProgressBar: ComponentManifest<"ProgressBar", {
121
329
  readonly value: "number";
122
330
  }, never, "none">;
123
331
  export declare const Notice: ComponentManifest<"Notice", {
332
+ readonly padding: readonly ["none", "small", "medium", "large"];
333
+ readonly paddingTop: readonly ["none", "small", "medium", "large"];
334
+ readonly paddingStart: readonly ["none", "small", "medium", "large"];
335
+ readonly paddingEnd: readonly ["none", "small", "medium", "large"];
336
+ readonly paddingBottom: readonly ["none", "small", "medium", "large"];
124
337
  readonly tone: readonly ["default", "info", "success", "warning", "danger"];
125
338
  readonly title: "string";
126
339
  }, never, "text">;
@@ -129,23 +342,34 @@ export declare const Badge: ComponentManifest<"Badge", {
129
342
  }, never, "text">;
130
343
  //#endregion
131
344
  //#region src/view/components/footer.d.ts
132
- export declare const Footer: ComponentManifest<"Footer", Record<never, PropType>, never, "elements">;
345
+ export declare const Footer: ComponentManifest<"Footer", {
346
+ readonly padding: readonly ["none", "small", "medium", "large"];
347
+ readonly paddingTop: readonly ["none", "small", "medium", "large"];
348
+ readonly paddingStart: readonly ["none", "small", "medium", "large"];
349
+ readonly paddingEnd: readonly ["none", "small", "medium", "large"];
350
+ readonly paddingBottom: readonly ["none", "small", "medium", "large"];
351
+ }, never, "elements">;
133
352
  //#endregion
134
353
  //#region src/view/components/grid.d.ts
135
354
  export declare const Grid: ComponentManifest<"Grid", {
355
+ readonly padding: readonly ["none", "small", "medium", "large"];
356
+ readonly paddingTop: readonly ["none", "small", "medium", "large"];
357
+ readonly paddingStart: readonly ["none", "small", "medium", "large"];
358
+ readonly paddingEnd: readonly ["none", "small", "medium", "large"];
359
+ readonly paddingBottom: readonly ["none", "small", "medium", "large"];
136
360
  readonly columns: "number";
137
361
  readonly gap: readonly ["none", "small", "medium", "large"];
138
362
  }, never, "elements">;
139
363
  export declare const GridItem: ComponentManifest<"GridItem", {
140
364
  readonly label: "string";
141
- readonly icon: readonly ["arrow-down", "arrow-left", "arrow-right", "arrow-up", "bank", "bell", "bolt", "calendar", "card", "cart", "cash", "check", "chevron-down", "chevron-left", "chevron-right", "chevron-up", "clock", "close", "copy", "download", "edit", "error", "eye", "eye-off", "file", "gift", "grid", "heart", "help", "history", "home", "image", "info", "list", "location", "lock", "logout", "mail", "minus", "mobile", "more", "phone", "plus", "qr-code", "receipt", "refresh", "search", "send", "settings", "share", "star", "success", "trash", "upload", "user", "users", "wallet", "warning", "water", "wifi"];
365
+ readonly icon: readonly ["arrow-down", "arrow-left", "arrow-right", "arrow-up", "bank", "bell", "bolt", "calendar", "card", "cart", "cash", "check", "chevron-down", "chevron-left", "chevron-right", "chevron-up", "clock", "close", "copy", "download", "edit", "error", "external-link", "eye", "eye-off", "file", "gift", "globe", "grid", "headphones", "heart", "help", "history", "home", "image", "info", "link", "list", "location", "lock", "logout", "mail", "microphone", "minus", "mobile", "more", "music", "phone", "playlist", "plus", "qr-code", "receipt", "refresh", "search", "send", "settings", "share", "star", "success", "ticket", "trash", "upload", "user", "users", "video", "wallet", "warning", "water", "wifi"];
142
366
  readonly image: "string";
143
367
  readonly badge: "string";
144
368
  }, "tap", "none">;
145
369
  //#endregion
146
370
  //#region src/view/components/icon.d.ts
147
371
  export declare const Icon: ComponentManifest<"Icon", {
148
- readonly name: readonly ["arrow-down", "arrow-left", "arrow-right", "arrow-up", "bank", "bell", "bolt", "calendar", "card", "cart", "cash", "check", "chevron-down", "chevron-left", "chevron-right", "chevron-up", "clock", "close", "copy", "download", "edit", "error", "eye", "eye-off", "file", "gift", "grid", "heart", "help", "history", "home", "image", "info", "list", "location", "lock", "logout", "mail", "minus", "mobile", "more", "phone", "plus", "qr-code", "receipt", "refresh", "search", "send", "settings", "share", "star", "success", "trash", "upload", "user", "users", "wallet", "warning", "water", "wifi"];
372
+ readonly name: readonly ["arrow-down", "arrow-left", "arrow-right", "arrow-up", "bank", "bell", "bolt", "calendar", "card", "cart", "cash", "check", "chevron-down", "chevron-left", "chevron-right", "chevron-up", "clock", "close", "copy", "download", "edit", "error", "external-link", "eye", "eye-off", "file", "gift", "globe", "grid", "headphones", "heart", "help", "history", "home", "image", "info", "link", "list", "location", "lock", "logout", "mail", "microphone", "minus", "mobile", "more", "music", "phone", "playlist", "plus", "qr-code", "receipt", "refresh", "search", "send", "settings", "share", "star", "success", "ticket", "trash", "upload", "user", "users", "video", "wallet", "warning", "water", "wifi"];
149
373
  readonly size: readonly ["small", "medium", "large"];
150
374
  readonly tone: readonly ["default", "muted", "info", "success", "warning", "danger"];
151
375
  }, never, "none">;
@@ -158,6 +382,7 @@ export declare const Image: ComponentManifest<"Image", {
158
382
  readonly height: "number";
159
383
  readonly fit: readonly ["cover", "contain"];
160
384
  readonly shape: readonly ["rounded", "square", "circle"];
385
+ readonly aspect: readonly ["1:1", "4:3", "3:2", "16:9", "3:4", "2:3", "9:16"];
161
386
  }, "error" | "load", "none">;
162
387
  //#endregion
163
388
  //#region src/view/components/input.d.ts
@@ -174,20 +399,41 @@ export declare const Input: ComponentManifest<"Input", {
174
399
  readonly disabled: "boolean";
175
400
  }, "change" | "submit", "none">;
176
401
  //#endregion
402
+ //#region src/view/components/link.d.ts
403
+ export declare const Link: ComponentManifest<"Link", {
404
+ readonly href: "string";
405
+ readonly tone: readonly ["default", "muted", "info", "success", "warning", "danger"];
406
+ }, "tap", "text">;
407
+ //#endregion
177
408
  //#region src/view/components/list.d.ts
178
409
  export declare const List: ComponentManifest<"List", {
410
+ readonly padding: readonly ["none", "small", "medium", "large"];
411
+ readonly paddingTop: readonly ["none", "small", "medium", "large"];
412
+ readonly paddingStart: readonly ["none", "small", "medium", "large"];
413
+ readonly paddingEnd: readonly ["none", "small", "medium", "large"];
414
+ readonly paddingBottom: readonly ["none", "small", "medium", "large"];
179
415
  readonly size: readonly ["sm", "md"];
180
- }, never, "elements">;
416
+ }, "endReached", "elements">;
181
417
  export declare const ListItem: ComponentManifest<"ListItem", {
418
+ readonly padding: readonly ["none", "small", "medium", "large"];
419
+ readonly paddingTop: readonly ["none", "small", "medium", "large"];
420
+ readonly paddingStart: readonly ["none", "small", "medium", "large"];
421
+ readonly paddingEnd: readonly ["none", "small", "medium", "large"];
422
+ readonly paddingBottom: readonly ["none", "small", "medium", "large"];
182
423
  readonly title: "string";
183
424
  readonly subtitle: "string";
184
425
  readonly value: "string";
185
- readonly icon: readonly ["arrow-down", "arrow-left", "arrow-right", "arrow-up", "bank", "bell", "bolt", "calendar", "card", "cart", "cash", "check", "chevron-down", "chevron-left", "chevron-right", "chevron-up", "clock", "close", "copy", "download", "edit", "error", "eye", "eye-off", "file", "gift", "grid", "heart", "help", "history", "home", "image", "info", "list", "location", "lock", "logout", "mail", "minus", "mobile", "more", "phone", "plus", "qr-code", "receipt", "refresh", "search", "send", "settings", "share", "star", "success", "trash", "upload", "user", "users", "wallet", "warning", "water", "wifi"];
426
+ readonly icon: readonly ["arrow-down", "arrow-left", "arrow-right", "arrow-up", "bank", "bell", "bolt", "calendar", "card", "cart", "cash", "check", "chevron-down", "chevron-left", "chevron-right", "chevron-up", "clock", "close", "copy", "download", "edit", "error", "external-link", "eye", "eye-off", "file", "gift", "globe", "grid", "headphones", "heart", "help", "history", "home", "image", "info", "link", "list", "location", "lock", "logout", "mail", "microphone", "minus", "mobile", "more", "music", "phone", "playlist", "plus", "qr-code", "receipt", "refresh", "search", "send", "settings", "share", "star", "success", "ticket", "trash", "upload", "user", "users", "video", "wallet", "warning", "water", "wifi"];
186
427
  readonly image: "string";
187
428
  }, "tap", "elements">;
188
429
  //#endregion
189
430
  //#region src/view/components/overlays.d.ts
190
431
  export declare const Sheet: ComponentManifest<"Sheet", {
432
+ readonly padding: readonly ["none", "small", "medium", "large"];
433
+ readonly paddingTop: readonly ["none", "small", "medium", "large"];
434
+ readonly paddingStart: readonly ["none", "small", "medium", "large"];
435
+ readonly paddingEnd: readonly ["none", "small", "medium", "large"];
436
+ readonly paddingBottom: readonly ["none", "small", "medium", "large"];
191
437
  readonly open: "boolean";
192
438
  readonly title: "string";
193
439
  readonly showCloseIcon: "boolean";
@@ -219,6 +465,18 @@ export declare const Option: ComponentManifest<"Option", {
219
465
  readonly label: "string";
220
466
  }, never, "none">;
221
467
  //#endregion
468
+ //#region src/view/components/scroll.d.ts
469
+ export declare const Scroll: ComponentManifest<"Scroll", {
470
+ readonly padding: readonly ["none", "small", "medium", "large"];
471
+ readonly paddingTop: readonly ["none", "small", "medium", "large"];
472
+ readonly paddingStart: readonly ["none", "small", "medium", "large"];
473
+ readonly paddingEnd: readonly ["none", "small", "medium", "large"];
474
+ readonly paddingBottom: readonly ["none", "small", "medium", "large"];
475
+ readonly gap: readonly ["none", "small", "medium", "large"];
476
+ readonly snap: readonly ["none", "start", "center"];
477
+ readonly index: "number";
478
+ }, "change", "elements">;
479
+ //#endregion
222
480
  //#region src/view/components/skeleton.d.ts
223
481
  export declare const Skeleton: ComponentManifest<"Skeleton", {
224
482
  readonly shape: readonly ["text", "circle", "box"];
@@ -228,8 +486,13 @@ export declare const Skeleton: ComponentManifest<"Skeleton", {
228
486
  //#endregion
229
487
  //#region src/view/components/tabs.d.ts
230
488
  export declare const Tabs: ComponentManifest<"Tabs", {
231
- readonly value: "string";
232
- readonly variant: readonly ["underline", "segmented"];
489
+ readonly padding: readonly ["none", "small", "medium", "large"];
490
+ readonly paddingTop: readonly ["none", "small", "medium", "large"];
491
+ readonly paddingStart: readonly ["none", "small", "medium", "large"];
492
+ readonly paddingEnd: readonly ["none", "small", "medium", "large"];
493
+ readonly paddingBottom: readonly ["none", "small", "medium", "large"];
494
+ readonly value: "string";
495
+ readonly variant: readonly ["underline", "segmented"];
233
496
  }, "change", "elements">;
234
497
  export declare const Tab: ComponentManifest<"Tab", {
235
498
  readonly value: "string";
@@ -239,6 +502,11 @@ export declare const Tab: ComponentManifest<"Tab", {
239
502
  //#endregion
240
503
  //#region src/view/components/text.d.ts
241
504
  export declare const Text: ComponentManifest<"Text", {
505
+ readonly padding: readonly ["none", "small", "medium", "large"];
506
+ readonly paddingTop: readonly ["none", "small", "medium", "large"];
507
+ readonly paddingStart: readonly ["none", "small", "medium", "large"];
508
+ readonly paddingEnd: readonly ["none", "small", "medium", "large"];
509
+ readonly paddingBottom: readonly ["none", "small", "medium", "large"];
242
510
  readonly variant: readonly ["title", "body", "caption"];
243
511
  readonly tone: readonly ["default", "muted", "info", "success", "warning", "danger"];
244
512
  readonly weight: readonly ["regular", "medium", "bold"];
@@ -282,25 +550,34 @@ export declare const Radio: ComponentManifest<"Radio", {
282
550
  //#endregion
283
551
  //#region src/view/components/view.d.ts
284
552
  export declare const View: ComponentManifest<"View", {
553
+ readonly variant: readonly ["plain", "card"];
554
+ readonly padding: readonly ["none", "small", "medium", "large"];
555
+ readonly paddingTop: readonly ["none", "small", "medium", "large"];
556
+ readonly paddingStart: readonly ["none", "small", "medium", "large"];
557
+ readonly paddingEnd: readonly ["none", "small", "medium", "large"];
558
+ readonly paddingBottom: readonly ["none", "small", "medium", "large"];
285
559
  readonly gap: readonly ["none", "small", "medium", "large"];
286
560
  readonly direction: readonly ["column", "row"];
287
561
  readonly align: readonly ["stretch", "start", "center", "end"];
288
562
  readonly justify: readonly ["start", "center", "end", "between"];
289
563
  readonly wrap: "boolean";
290
564
  readonly grow: "boolean";
565
+ }, "tap", "elements">;
566
+ //#endregion
567
+ //#region src/view/components/options.d.ts
568
+ export declare const SIZES: readonly ["small", "medium", "large"];
569
+ export declare const SPACES: readonly ["none", "small", "medium", "large"];
570
+ export declare const PADDING_PROPS: {
291
571
  readonly padding: readonly ["none", "small", "medium", "large"];
292
572
  readonly paddingTop: readonly ["none", "small", "medium", "large"];
293
573
  readonly paddingStart: readonly ["none", "small", "medium", "large"];
294
574
  readonly paddingEnd: readonly ["none", "small", "medium", "large"];
295
575
  readonly paddingBottom: readonly ["none", "small", "medium", "large"];
296
- readonly variant: readonly ["plain", "card"];
297
- }, "tap", "elements">;
298
- //#endregion
299
- //#region src/view/components/options.d.ts
300
- export declare const SIZES: readonly ["small", "medium", "large"];
576
+ };
577
+ export declare const ASPECTS: readonly ["1:1", "4:3", "3:2", "16:9", "3:4", "2:3", "9:16"];
301
578
  export declare const TONES: readonly ["default", "muted", "info", "success", "warning", "danger"];
302
579
  export declare const STATUS_TONES: readonly ["default", "info", "success", "warning", "danger"];
303
- export declare const ICON_NAMES: readonly ["arrow-down", "arrow-left", "arrow-right", "arrow-up", "bank", "bell", "bolt", "calendar", "card", "cart", "cash", "check", "chevron-down", "chevron-left", "chevron-right", "chevron-up", "clock", "close", "copy", "download", "edit", "error", "eye", "eye-off", "file", "gift", "grid", "heart", "help", "history", "home", "image", "info", "list", "location", "lock", "logout", "mail", "minus", "mobile", "more", "phone", "plus", "qr-code", "receipt", "refresh", "search", "send", "settings", "share", "star", "success", "trash", "upload", "user", "users", "wallet", "warning", "water", "wifi"];
580
+ export declare const ICON_NAMES: readonly ["arrow-down", "arrow-left", "arrow-right", "arrow-up", "bank", "bell", "bolt", "calendar", "card", "cart", "cash", "check", "chevron-down", "chevron-left", "chevron-right", "chevron-up", "clock", "close", "copy", "download", "edit", "error", "external-link", "eye", "eye-off", "file", "gift", "globe", "grid", "headphones", "heart", "help", "history", "home", "image", "info", "link", "list", "location", "lock", "logout", "mail", "microphone", "minus", "mobile", "more", "music", "phone", "playlist", "plus", "qr-code", "receipt", "refresh", "search", "send", "settings", "share", "star", "success", "ticket", "trash", "upload", "user", "users", "video", "wallet", "warning", "water", "wifi"];
304
581
  type IconName = (typeof ICON_NAMES)[number];
305
582
  //#endregion
306
583
  //#region src/view/components/index.d.ts
@@ -308,7 +585,8 @@ export declare const builtinComponents: {
308
585
  readonly AmountInput: ComponentManifest<"AmountInput", {
309
586
  readonly value: "number";
310
587
  readonly currency: "string";
311
- readonly decimals: "number";
588
+ readonly minorUnits: "number";
589
+ readonly unit: readonly ["minor", "major"];
312
590
  readonly label: "string";
313
591
  readonly placeholder: "string";
314
592
  readonly hint: "string";
@@ -324,6 +602,11 @@ export declare const builtinComponents: {
324
602
  readonly loading: "boolean";
325
603
  }, "click", "text">;
326
604
  readonly Carousel: ComponentManifest<"Carousel", {
605
+ readonly padding: readonly ["none", "small", "medium", "large"];
606
+ readonly paddingTop: readonly ["none", "small", "medium", "large"];
607
+ readonly paddingStart: readonly ["none", "small", "medium", "large"];
608
+ readonly paddingEnd: readonly ["none", "small", "medium", "large"];
609
+ readonly paddingBottom: readonly ["none", "small", "medium", "large"];
327
610
  readonly autoplay: "boolean";
328
611
  readonly interval: "number";
329
612
  readonly loop: "boolean";
@@ -339,7 +622,7 @@ export declare const builtinComponents: {
339
622
  }, "change", "none">;
340
623
  readonly Chip: ComponentManifest<"Chip", {
341
624
  readonly label: "string";
342
- readonly icon: readonly ["arrow-down", "arrow-left", "arrow-right", "arrow-up", "bank", "bell", "bolt", "calendar", "card", "cart", "cash", "check", "chevron-down", "chevron-left", "chevron-right", "chevron-up", "clock", "close", "copy", "download", "edit", "error", "eye", "eye-off", "file", "gift", "grid", "heart", "help", "history", "home", "image", "info", "list", "location", "lock", "logout", "mail", "minus", "mobile", "more", "phone", "plus", "qr-code", "receipt", "refresh", "search", "send", "settings", "share", "star", "success", "trash", "upload", "user", "users", "wallet", "warning", "water", "wifi"];
625
+ readonly icon: readonly ["arrow-down", "arrow-left", "arrow-right", "arrow-up", "bank", "bell", "bolt", "calendar", "card", "cart", "cash", "check", "chevron-down", "chevron-left", "chevron-right", "chevron-up", "clock", "close", "copy", "download", "edit", "error", "external-link", "eye", "eye-off", "file", "gift", "globe", "grid", "headphones", "heart", "help", "history", "home", "image", "info", "link", "list", "location", "lock", "logout", "mail", "microphone", "minus", "mobile", "more", "music", "phone", "playlist", "plus", "qr-code", "receipt", "refresh", "search", "send", "settings", "share", "star", "success", "ticket", "trash", "upload", "user", "users", "video", "wallet", "warning", "water", "wifi"];
343
626
  readonly selected: "boolean";
344
627
  readonly disabled: "boolean";
345
628
  }, "tap", "none">;
@@ -352,25 +635,52 @@ export declare const builtinComponents: {
352
635
  readonly secure: "boolean";
353
636
  readonly disabled: "boolean";
354
637
  }, "change" | "complete", "none">;
638
+ readonly DetailRow: ComponentManifest<"DetailRow", {
639
+ readonly padding: readonly ["none", "small", "medium", "large"];
640
+ readonly paddingTop: readonly ["none", "small", "medium", "large"];
641
+ readonly paddingStart: readonly ["none", "small", "medium", "large"];
642
+ readonly paddingEnd: readonly ["none", "small", "medium", "large"];
643
+ readonly paddingBottom: readonly ["none", "small", "medium", "large"];
644
+ readonly label: "string";
645
+ readonly value: "string";
646
+ readonly tone: readonly ["default", "muted", "info", "success", "warning", "danger"];
647
+ readonly weight: readonly ["regular", "medium", "bold"];
648
+ }, never, "none">;
355
649
  readonly Divider: ComponentManifest<"Divider", Record<never, PropType>, never, "none">;
356
650
  readonly EmptyState: ComponentManifest<"EmptyState", {
357
- readonly icon: readonly ["arrow-down", "arrow-left", "arrow-right", "arrow-up", "bank", "bell", "bolt", "calendar", "card", "cart", "cash", "check", "chevron-down", "chevron-left", "chevron-right", "chevron-up", "clock", "close", "copy", "download", "edit", "error", "eye", "eye-off", "file", "gift", "grid", "heart", "help", "history", "home", "image", "info", "list", "location", "lock", "logout", "mail", "minus", "mobile", "more", "phone", "plus", "qr-code", "receipt", "refresh", "search", "send", "settings", "share", "star", "success", "trash", "upload", "user", "users", "wallet", "warning", "water", "wifi"];
651
+ readonly padding: readonly ["none", "small", "medium", "large"];
652
+ readonly paddingTop: readonly ["none", "small", "medium", "large"];
653
+ readonly paddingStart: readonly ["none", "small", "medium", "large"];
654
+ readonly paddingEnd: readonly ["none", "small", "medium", "large"];
655
+ readonly paddingBottom: readonly ["none", "small", "medium", "large"];
656
+ readonly icon: readonly ["arrow-down", "arrow-left", "arrow-right", "arrow-up", "bank", "bell", "bolt", "calendar", "card", "cart", "cash", "check", "chevron-down", "chevron-left", "chevron-right", "chevron-up", "clock", "close", "copy", "download", "edit", "error", "external-link", "eye", "eye-off", "file", "gift", "globe", "grid", "headphones", "heart", "help", "history", "home", "image", "info", "link", "list", "location", "lock", "logout", "mail", "microphone", "minus", "mobile", "more", "music", "phone", "playlist", "plus", "qr-code", "receipt", "refresh", "search", "send", "settings", "share", "star", "success", "ticket", "trash", "upload", "user", "users", "video", "wallet", "warning", "water", "wifi"];
358
657
  readonly title: "string";
359
658
  readonly text: "string";
360
659
  }, never, "elements">;
361
- readonly Footer: ComponentManifest<"Footer", Record<never, PropType>, never, "elements">;
660
+ readonly Footer: ComponentManifest<"Footer", {
661
+ readonly padding: readonly ["none", "small", "medium", "large"];
662
+ readonly paddingTop: readonly ["none", "small", "medium", "large"];
663
+ readonly paddingStart: readonly ["none", "small", "medium", "large"];
664
+ readonly paddingEnd: readonly ["none", "small", "medium", "large"];
665
+ readonly paddingBottom: readonly ["none", "small", "medium", "large"];
666
+ }, never, "elements">;
362
667
  readonly Grid: ComponentManifest<"Grid", {
668
+ readonly padding: readonly ["none", "small", "medium", "large"];
669
+ readonly paddingTop: readonly ["none", "small", "medium", "large"];
670
+ readonly paddingStart: readonly ["none", "small", "medium", "large"];
671
+ readonly paddingEnd: readonly ["none", "small", "medium", "large"];
672
+ readonly paddingBottom: readonly ["none", "small", "medium", "large"];
363
673
  readonly columns: "number";
364
674
  readonly gap: readonly ["none", "small", "medium", "large"];
365
675
  }, never, "elements">;
366
676
  readonly GridItem: ComponentManifest<"GridItem", {
367
677
  readonly label: "string";
368
- readonly icon: readonly ["arrow-down", "arrow-left", "arrow-right", "arrow-up", "bank", "bell", "bolt", "calendar", "card", "cart", "cash", "check", "chevron-down", "chevron-left", "chevron-right", "chevron-up", "clock", "close", "copy", "download", "edit", "error", "eye", "eye-off", "file", "gift", "grid", "heart", "help", "history", "home", "image", "info", "list", "location", "lock", "logout", "mail", "minus", "mobile", "more", "phone", "plus", "qr-code", "receipt", "refresh", "search", "send", "settings", "share", "star", "success", "trash", "upload", "user", "users", "wallet", "warning", "water", "wifi"];
678
+ readonly icon: readonly ["arrow-down", "arrow-left", "arrow-right", "arrow-up", "bank", "bell", "bolt", "calendar", "card", "cart", "cash", "check", "chevron-down", "chevron-left", "chevron-right", "chevron-up", "clock", "close", "copy", "download", "edit", "error", "external-link", "eye", "eye-off", "file", "gift", "globe", "grid", "headphones", "heart", "help", "history", "home", "image", "info", "link", "list", "location", "lock", "logout", "mail", "microphone", "minus", "mobile", "more", "music", "phone", "playlist", "plus", "qr-code", "receipt", "refresh", "search", "send", "settings", "share", "star", "success", "ticket", "trash", "upload", "user", "users", "video", "wallet", "warning", "water", "wifi"];
369
679
  readonly image: "string";
370
680
  readonly badge: "string";
371
681
  }, "tap", "none">;
372
682
  readonly Icon: ComponentManifest<"Icon", {
373
- readonly name: readonly ["arrow-down", "arrow-left", "arrow-right", "arrow-up", "bank", "bell", "bolt", "calendar", "card", "cart", "cash", "check", "chevron-down", "chevron-left", "chevron-right", "chevron-up", "clock", "close", "copy", "download", "edit", "error", "eye", "eye-off", "file", "gift", "grid", "heart", "help", "history", "home", "image", "info", "list", "location", "lock", "logout", "mail", "minus", "mobile", "more", "phone", "plus", "qr-code", "receipt", "refresh", "search", "send", "settings", "share", "star", "success", "trash", "upload", "user", "users", "wallet", "warning", "water", "wifi"];
683
+ readonly name: readonly ["arrow-down", "arrow-left", "arrow-right", "arrow-up", "bank", "bell", "bolt", "calendar", "card", "cart", "cash", "check", "chevron-down", "chevron-left", "chevron-right", "chevron-up", "clock", "close", "copy", "download", "edit", "error", "external-link", "eye", "eye-off", "file", "gift", "globe", "grid", "headphones", "heart", "help", "history", "home", "image", "info", "link", "list", "location", "lock", "logout", "mail", "microphone", "minus", "mobile", "more", "music", "phone", "playlist", "plus", "qr-code", "receipt", "refresh", "search", "send", "settings", "share", "star", "success", "ticket", "trash", "upload", "user", "users", "video", "wallet", "warning", "water", "wifi"];
374
684
  readonly size: readonly ["small", "medium", "large"];
375
685
  readonly tone: readonly ["default", "muted", "info", "success", "warning", "danger"];
376
686
  }, never, "none">;
@@ -381,6 +691,7 @@ export declare const builtinComponents: {
381
691
  readonly height: "number";
382
692
  readonly fit: readonly ["cover", "contain"];
383
693
  readonly shape: readonly ["rounded", "square", "circle"];
694
+ readonly aspect: readonly ["1:1", "4:3", "3:2", "16:9", "3:4", "2:3", "9:16"];
384
695
  }, "error" | "load", "none">;
385
696
  readonly Input: ComponentManifest<"Input", {
386
697
  readonly value: "string";
@@ -394,17 +705,36 @@ export declare const builtinComponents: {
394
705
  readonly maxLength: "number";
395
706
  readonly disabled: "boolean";
396
707
  }, "change" | "submit", "none">;
708
+ readonly Link: ComponentManifest<"Link", {
709
+ readonly href: "string";
710
+ readonly tone: readonly ["default", "muted", "info", "success", "warning", "danger"];
711
+ }, "tap", "text">;
397
712
  readonly List: ComponentManifest<"List", {
713
+ readonly padding: readonly ["none", "small", "medium", "large"];
714
+ readonly paddingTop: readonly ["none", "small", "medium", "large"];
715
+ readonly paddingStart: readonly ["none", "small", "medium", "large"];
716
+ readonly paddingEnd: readonly ["none", "small", "medium", "large"];
717
+ readonly paddingBottom: readonly ["none", "small", "medium", "large"];
398
718
  readonly size: readonly ["sm", "md"];
399
- }, never, "elements">;
719
+ }, "endReached", "elements">;
400
720
  readonly ListItem: ComponentManifest<"ListItem", {
721
+ readonly padding: readonly ["none", "small", "medium", "large"];
722
+ readonly paddingTop: readonly ["none", "small", "medium", "large"];
723
+ readonly paddingStart: readonly ["none", "small", "medium", "large"];
724
+ readonly paddingEnd: readonly ["none", "small", "medium", "large"];
725
+ readonly paddingBottom: readonly ["none", "small", "medium", "large"];
401
726
  readonly title: "string";
402
727
  readonly subtitle: "string";
403
728
  readonly value: "string";
404
- readonly icon: readonly ["arrow-down", "arrow-left", "arrow-right", "arrow-up", "bank", "bell", "bolt", "calendar", "card", "cart", "cash", "check", "chevron-down", "chevron-left", "chevron-right", "chevron-up", "clock", "close", "copy", "download", "edit", "error", "eye", "eye-off", "file", "gift", "grid", "heart", "help", "history", "home", "image", "info", "list", "location", "lock", "logout", "mail", "minus", "mobile", "more", "phone", "plus", "qr-code", "receipt", "refresh", "search", "send", "settings", "share", "star", "success", "trash", "upload", "user", "users", "wallet", "warning", "water", "wifi"];
729
+ readonly icon: readonly ["arrow-down", "arrow-left", "arrow-right", "arrow-up", "bank", "bell", "bolt", "calendar", "card", "cart", "cash", "check", "chevron-down", "chevron-left", "chevron-right", "chevron-up", "clock", "close", "copy", "download", "edit", "error", "external-link", "eye", "eye-off", "file", "gift", "globe", "grid", "headphones", "heart", "help", "history", "home", "image", "info", "link", "list", "location", "lock", "logout", "mail", "microphone", "minus", "mobile", "more", "music", "phone", "playlist", "plus", "qr-code", "receipt", "refresh", "search", "send", "settings", "share", "star", "success", "ticket", "trash", "upload", "user", "users", "video", "wallet", "warning", "water", "wifi"];
405
730
  readonly image: "string";
406
731
  }, "tap", "elements">;
407
732
  readonly Notice: ComponentManifest<"Notice", {
733
+ readonly padding: readonly ["none", "small", "medium", "large"];
734
+ readonly paddingTop: readonly ["none", "small", "medium", "large"];
735
+ readonly paddingStart: readonly ["none", "small", "medium", "large"];
736
+ readonly paddingEnd: readonly ["none", "small", "medium", "large"];
737
+ readonly paddingBottom: readonly ["none", "small", "medium", "large"];
408
738
  readonly tone: readonly ["default", "info", "success", "warning", "danger"];
409
739
  readonly title: "string";
410
740
  }, never, "text">;
@@ -430,6 +760,16 @@ export declare const builtinComponents: {
430
760
  readonly label: "string";
431
761
  readonly disabled: "boolean";
432
762
  }, "change", "elements">;
763
+ readonly Scroll: ComponentManifest<"Scroll", {
764
+ readonly padding: readonly ["none", "small", "medium", "large"];
765
+ readonly paddingTop: readonly ["none", "small", "medium", "large"];
766
+ readonly paddingStart: readonly ["none", "small", "medium", "large"];
767
+ readonly paddingEnd: readonly ["none", "small", "medium", "large"];
768
+ readonly paddingBottom: readonly ["none", "small", "medium", "large"];
769
+ readonly gap: readonly ["none", "small", "medium", "large"];
770
+ readonly snap: readonly ["none", "start", "center"];
771
+ readonly index: "number";
772
+ }, "change", "elements">;
433
773
  readonly Select: ComponentManifest<"Select", {
434
774
  readonly value: "string";
435
775
  readonly label: "string";
@@ -439,6 +779,11 @@ export declare const builtinComponents: {
439
779
  readonly disabled: "boolean";
440
780
  }, "change", "elements">;
441
781
  readonly Sheet: ComponentManifest<"Sheet", {
782
+ readonly padding: readonly ["none", "small", "medium", "large"];
783
+ readonly paddingTop: readonly ["none", "small", "medium", "large"];
784
+ readonly paddingStart: readonly ["none", "small", "medium", "large"];
785
+ readonly paddingEnd: readonly ["none", "small", "medium", "large"];
786
+ readonly paddingBottom: readonly ["none", "small", "medium", "large"];
442
787
  readonly open: "boolean";
443
788
  readonly title: "string";
444
789
  readonly showCloseIcon: "boolean";
@@ -462,10 +807,20 @@ export declare const builtinComponents: {
462
807
  readonly badge: "number";
463
808
  }, never, "none">;
464
809
  readonly Tabs: ComponentManifest<"Tabs", {
810
+ readonly padding: readonly ["none", "small", "medium", "large"];
811
+ readonly paddingTop: readonly ["none", "small", "medium", "large"];
812
+ readonly paddingStart: readonly ["none", "small", "medium", "large"];
813
+ readonly paddingEnd: readonly ["none", "small", "medium", "large"];
814
+ readonly paddingBottom: readonly ["none", "small", "medium", "large"];
465
815
  readonly value: "string";
466
816
  readonly variant: readonly ["underline", "segmented"];
467
817
  }, "change", "elements">;
468
818
  readonly Text: ComponentManifest<"Text", {
819
+ readonly padding: readonly ["none", "small", "medium", "large"];
820
+ readonly paddingTop: readonly ["none", "small", "medium", "large"];
821
+ readonly paddingStart: readonly ["none", "small", "medium", "large"];
822
+ readonly paddingEnd: readonly ["none", "small", "medium", "large"];
823
+ readonly paddingBottom: readonly ["none", "small", "medium", "large"];
469
824
  readonly variant: readonly ["title", "body", "caption"];
470
825
  readonly tone: readonly ["default", "muted", "info", "success", "warning", "danger"];
471
826
  readonly weight: readonly ["regular", "medium", "bold"];
@@ -488,249 +843,23 @@ export declare const builtinComponents: {
488
843
  readonly duration: "number";
489
844
  }, "hide", "none">;
490
845
  readonly View: ComponentManifest<"View", {
846
+ readonly variant: readonly ["plain", "card"];
847
+ readonly padding: readonly ["none", "small", "medium", "large"];
848
+ readonly paddingTop: readonly ["none", "small", "medium", "large"];
849
+ readonly paddingStart: readonly ["none", "small", "medium", "large"];
850
+ readonly paddingEnd: readonly ["none", "small", "medium", "large"];
851
+ readonly paddingBottom: readonly ["none", "small", "medium", "large"];
491
852
  readonly gap: readonly ["none", "small", "medium", "large"];
492
853
  readonly direction: readonly ["column", "row"];
493
854
  readonly align: readonly ["stretch", "start", "center", "end"];
494
855
  readonly justify: readonly ["start", "center", "end", "between"];
495
856
  readonly wrap: "boolean";
496
857
  readonly grow: "boolean";
497
- readonly padding: readonly ["none", "small", "medium", "large"];
498
- readonly paddingTop: readonly ["none", "small", "medium", "large"];
499
- readonly paddingStart: readonly ["none", "small", "medium", "large"];
500
- readonly paddingEnd: readonly ["none", "small", "medium", "large"];
501
- readonly paddingBottom: readonly ["none", "small", "medium", "large"];
502
- readonly variant: readonly ["plain", "card"];
503
858
  }, "tap", "elements">;
504
859
  };
505
- type BuiltinComponents = typeof builtinComponents;
860
+ export type BuiltinComponents = typeof builtinComponents;
506
861
  export declare const builtinRegistry: Readonly<Record<string, ComponentManifest<string, Record<string, PropType>, string, ChildrenType>>>;
507
862
  //#endregion
508
- //#region src/theme/theme.d.ts
509
- /**
510
- * Dot-wide design tokens, set in `defineDot`.
511
- * Themes cross from the service to the webview as
512
- * messages, so they must be serializable.
513
- */
514
- interface Theme {
515
- scheme?: ColorScheme | 'system' | undefined;
516
- colors?: ThemeColors | undefined;
517
- density?: ThemeDensity | undefined;
518
- shape?: ThemeShape | undefined;
519
- }
520
- type ThemeDensity = 'dense' | 'compact' | 'comfortable';
521
- type ThemeShape = 'square' | 'subtle' | 'soft' | 'rounded';
522
- interface ThemeColors {
523
- primary?: SchemeColor | undefined;
524
- background?: SchemeColor | undefined;
525
- surface?: SchemeColor | undefined;
526
- text?: SchemeColor | undefined;
527
- }
528
- interface SchemeColor {
529
- light?: HexColor;
530
- dark?: HexColor;
531
- }
532
- type HexColor = `#${string}`;
533
- type ColorScheme = 'light' | 'dark';
534
- //#endregion
535
- //#region src/host/context.d.ts
536
- type AppState = 'active' | 'background';
537
- type Platform = 'ios' | 'android';
538
- interface SystemContext {
539
- readonly platform: Platform;
540
- readonly scheme: ColorScheme;
541
- readonly appState: AppState;
542
- }
543
- export declare const DEFAULT_SYSTEM_CONTEXT: SystemContext;
544
- //#endregion
545
- //#region src/host/calls.d.ts
546
- type HostErrorCode = 'unsupported' | 'denied' | 'cancelled' | 'timeout' | 'invalid' | 'failed';
547
- export declare class HostError extends Error {
548
- readonly name = "HostError";
549
- readonly code: HostErrorCode;
550
- constructor(code: HostErrorCode, message: string);
551
- }
552
- interface HostCallOptions {
553
- timeout?: number | undefined;
554
- }
555
- interface HostRequest<T> extends Promise<T> {
556
- cancel(): void;
557
- }
558
- type HostCaller = (method: string, params: unknown, options: HostCallOptions) => HostRequest<unknown>;
559
- export declare function connectHost(caller: HostCaller | null): void;
560
- export declare function callHost<Result>(method: string, params: unknown, options?: HostCallOptions): HostRequest<Result>;
561
- export declare function createHostRequest<Result>(promise: Promise<Result>, cancel?: () => void): HostRequest<Result>;
562
- //#endregion
563
- //#region src/page/bars.d.ts
564
- interface NavigationBarOptions {
565
- title?: string | undefined;
566
- hidden?: boolean | undefined;
567
- backgroundColor?: string | undefined;
568
- textColor?: string | undefined;
569
- }
570
- interface TabBarOptions {
571
- hidden?: boolean | undefined;
572
- }
573
- interface PageConfigs {
574
- navigationBar?: NavigationBarOptions | undefined;
575
- tabBar?: TabBarOptions | undefined;
576
- }
577
- interface PageBars {
578
- navigationBar: NavigationBarOptions;
579
- tabBar: TabBarOptions;
580
- }
581
- export declare function checkNavigationBar(options: NavigationBarOptions): void;
582
- export declare function checkTabBar(options: TabBarOptions): void;
583
- export declare function checkConfigs(configs: PageConfigs): void;
584
- export declare function mergeConfigs(...configs: (PageConfigs | undefined)[]): PageBars;
585
- //#endregion
586
- //#region src/page/navigation.d.ts
587
- export declare const MAX_STACK_DEPTH = 8;
588
- export declare function isPageId(value: string): boolean;
589
- type PageLaunchOptions = Readonly<Record<string, string>>;
590
- type Navigation = {
591
- readonly action: 'push' | 'replace' | 'reset';
592
- readonly page: string;
593
- readonly options: PageLaunchOptions;
594
- } | {
595
- readonly action: 'back';
596
- readonly delta: number;
597
- };
598
- interface StackEntry {
599
- readonly instanceId: number;
600
- readonly page: string;
601
- readonly options: PageLaunchOptions;
602
- }
603
- export declare class NavigationStack {
604
- #private;
605
- readonly limit: number;
606
- constructor(limit?: number);
607
- get pages(): readonly StackEntry[];
608
- get top(): StackEntry | undefined;
609
- /**
610
- * Applies a navigation, or refuses it and returns false: a push onto a full stack, or going back
611
- * from the first page (which the host handles itself, e.g. by closing the dot).
612
- */
613
- apply(navigation: Navigation): boolean;
614
- }
615
- //#endregion
616
- //#region src/protocol/core.d.ts
617
- type PageState = Record<string, unknown>;
618
- interface UILayerMessages {
619
- connect: Record<string, never>;
620
- load: {
621
- instanceId: number;
622
- page: string;
623
- options: PageLaunchOptions;
624
- };
625
- unload: {
626
- instanceId: number;
627
- };
628
- show: {
629
- instanceId: number;
630
- };
631
- hide: {
632
- instanceId: number;
633
- };
634
- event: {
635
- instanceId: number;
636
- handler: string;
637
- event: DotEvent;
638
- };
639
- }
640
- interface LogicLayerMessages {
641
- setTheme: {
642
- theme: Theme;
643
- };
644
- initPageState: {
645
- instanceId: number;
646
- state: PageState;
647
- };
648
- setPageState: {
649
- instanceId: number;
650
- patchState: PageState;
651
- };
652
- error: {
653
- instanceId?: number;
654
- message: string;
655
- };
656
- navigate: Navigation & {
657
- from: number;
658
- };
659
- hostCall: {
660
- id: number;
661
- method: string;
662
- params: unknown;
663
- timeout?: number;
664
- };
665
- hostCancel: {
666
- id: number;
667
- };
668
- pageBars: {
669
- instanceId: number;
670
- } & PageBars;
671
- }
672
- interface HostLayerMessages {
673
- syncStack: {
674
- pages: readonly StackEntry[];
675
- limit: number;
676
- };
677
- syncSystemContext: SystemContext;
678
- hostResult: HostResult;
679
- }
680
- type HostResult = {
681
- id: number;
682
- value: unknown;
683
- } | {
684
- id: number;
685
- error: {
686
- code: HostErrorCode;
687
- message: string;
688
- };
689
- };
690
- interface Envelope<Type extends string = string, Payload = unknown> {
691
- readonly type: Type;
692
- readonly payload: Payload;
693
- }
694
- type MessageMap = object;
695
- type MessageType<M extends MessageMap> = keyof M & string;
696
- //#endregion
697
- //#region src/view/renderer.d.ts
698
- /**
699
- * What a renderer provides to a compiled view.
700
- * `Node` represents the target renderer's native element type (e.g., React elements).
701
- */
702
- interface RenderContext<Node> {
703
- /**
704
- * Creates the element for a component type (e.g., `<View>`, `<Text>`).
705
- */
706
- readonly h: (type: string, props: Record<string, unknown> | null, ...children: (Node | string)[]) => Node;
707
- /**
708
- * Returns an event callback that forwards UI events to the named handler defined in
709
- * `controller.ts`, with `data` from the component's `data-*` attributes. Without data, the
710
- * callback is the same object on every render.
711
- */
712
- readonly on: (handler: string, data?: Readonly<Record<string, unknown>>) => (event: DotEvent) => void;
713
- /**
714
- * Converts a bound value to the text to display.
715
- */
716
- readonly text: (value: unknown) => string;
717
- /**
718
- * Renders a `<For>` control flow loop.
719
- * - `render` produces the virtual nodes for each item in the list.
720
- * - `key` provides a stable identity for list diffing where applicable.
721
- */
722
- readonly each: (items: unknown, render: (item: unknown, index: number) => (Node | string)[], key?: (item: unknown, index: number) => unknown) => Node;
723
- }
724
- /**
725
- * The export of a compiled view file: a pure function of the page state that imports no renderer
726
- * code, so any renderer can run it. It returns the page's root element, which is always a `<View>`.
727
- */
728
- type ViewRender = <Node>(state: PageState, context: RenderContext<Node>) => Node;
729
- //#endregion
730
- //#region src/view/values.d.ts
731
- export declare function toText(value: unknown): string;
732
- export declare function toList(value: unknown): readonly unknown[];
733
- //#endregion
734
863
  //#region src/source/location.d.ts
735
864
  interface SourceLocation {
736
865
  readonly line: number;
@@ -758,19 +887,10 @@ export declare class EventEmitter<Events extends { [K in keyof Events]: Listener
758
887
  }
759
888
  //#endregion
760
889
  //#region src/protocol/transport.d.ts
761
- /**
762
- * A universal bridge for sending and receiving messages,
763
- * whether across web workers, message ports, or native app boundaries.
764
- */
765
890
  interface Transport {
766
891
  post(message: unknown): void;
767
892
  listen(listener: (message: unknown) => void): () => void;
768
893
  }
769
- /**
770
- * Adapter interface for anything that acts like
771
- * 1. a MessagePort (https://developer.mozilla.org/en-US/docs/Web/API/MessagePort) or
772
- * 2. a Web Worker (https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API)
773
- */
774
894
  interface TransportAdapter {
775
895
  postMessage(message: unknown): void;
776
896
  addEventListener(type: 'message', listener: (event: {
@@ -851,5 +971,5 @@ export declare class MessageChannel<Outgoing extends MessageMap, Incoming extend
851
971
  listen(onError: (error: unknown, message: Envelope) => void): () => void;
852
972
  }
853
973
  //#endregion
854
- export type { AppState, BuiltinComponents, ChildrenType, ColorScheme, ComponentManifest, ComponentRegistry, DotEvent, DotHooks, DotPermission, Envelope, EventProp, HexColor, HostCallOptions, HostCaller, HostErrorCode, HostLayerMessages, HostRequest, HostResult, IconName, LogicLayerMessages, MessageHandler, MessageMap, MessageType, Navigation, NavigationBarOptions, PageBars, PageConfigs, PageHooks, PageLaunchOptions, PageState, Platform, PropType, PropTypes, PropValue, PropsOf, RenderContext, SchemeColor, SourceLocation, StackEntry, SystemContext, TabBarOptions, Theme, ThemeColors, ThemeDensity, ThemeShape, Transport, TransportAdapter, UILayerMessages, ViewRender };
974
+ export type { AppState, ChildrenType, ColorScheme, ComponentManifest, ComponentRegistry, DotEvent, DotHooks, DotPermission, Envelope, EventProp, HexColor, HostCallOptions, HostCaller, HostErrorCode, HostLayerMessages, HostRequest, HostResult, IconName, LogicLayerMessages, MessageHandler, MessageMap, MessageType, Navigation, NavigationBarOptions, PageBars, PageConfigs, PageHooks, PageLaunchOptions, PageState, PropOverride, PropType, PropTypes, PropValue, PropsOf, RenderContext, SchemeColor, SourceLocation, StackEntry, SystemContext, TabBarOptions, Theme, ThemeColors, ThemeDensity, ThemeShape, Transport, TransportAdapter, UILayerMessages, ViewRender };
855
975
  //# sourceMappingURL=index.d.ts.map