@faasjs/ant-design 8.0.0-beta.16 → 8.0.0-beta.18

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
@@ -60,6 +60,8 @@ type FaasActionUnionType = Record<string, any> | string;
60
60
  * Returns the original type when `T` is a known action path,
61
61
  * otherwise falls back to `string`.
62
62
  *
63
+ * @template T - Candidate action path type.
64
+ *
63
65
  * @example
64
66
  * ```typescript
65
67
  * type A = FaasAction<'demo'> // 'demo'
@@ -69,62 +71,181 @@ type FaasActionUnionType = Record<string, any> | string;
69
71
  type FaasAction<T = any> = T extends FaasActionPaths ? T : string;
70
72
  //#endregion
71
73
  //#region src/Loading.d.ts
74
+ /**
75
+ * Props for the {@link Loading} component.
76
+ */
72
77
  type LoadingProps = {
73
- style?: React.CSSProperties;
78
+ /** Inline styles applied to the loading wrapper. */style?: React.CSSProperties;
79
+ /**
80
+ * Ant Design spinner size.
81
+ *
82
+ * @default 'large'
83
+ */
74
84
  size?: 'small' | 'default' | 'large';
75
- loading?: boolean;
85
+ /**
86
+ * Whether the loading indicator should be shown.
87
+ *
88
+ * @default true
89
+ */
90
+ loading?: boolean; /** Content rendered when `loading` is `false`. */
76
91
  children?: React.ReactNode;
77
92
  };
78
93
  /**
79
- * Loading component based on Spin
94
+ * Render an Ant Design loading spinner with an optional content fallback.
95
+ *
96
+ * @param {LoadingProps} props - Loading indicator props and optional wrapped children.
80
97
  *
81
98
  * @example
82
99
  * ```tsx
83
- * <Loading /> // display loading
100
+ * import { Loading } from '@faasjs/ant-design'
84
101
  *
85
- * <Loading loading={ !remoteData }>
86
- * <div>{remoteData}</div>
87
- * </Loading>
102
+ * export function Page({ remoteData }: { remoteData?: string }) {
103
+ * return (
104
+ * <>
105
+ * <Loading />
106
+ * <Loading loading={!remoteData}>
107
+ * <div>{remoteData}</div>
108
+ * </Loading>
109
+ * </>
110
+ * )
111
+ * }
88
112
  * ```
89
113
  */
90
114
  declare function Loading(props: LoadingProps): react_jsx_runtime0.JSX.Element;
91
115
  //#endregion
92
116
  //#region src/FaasDataWrapper.d.ts
117
+ /**
118
+ * Partial data injection exposed to wrapped Ant Design components.
119
+ *
120
+ * @template T - Action path or response data type used for inference.
121
+ */
93
122
  type FaasDataInjection<T extends FaasActionUnionType = any> = Partial<FaasDataInjection$1<T>>;
123
+ /**
124
+ * Ant Design wrapper props for the underlying `@faasjs/react` data wrapper.
125
+ *
126
+ * @template T - Action path or response data type used for inference.
127
+ */
94
128
  interface FaasDataWrapperProps<T extends FaasActionUnionType = any> extends FaasDataWrapperProps$1<T> {
129
+ /** Props forwarded to the built-in {@link Loading} fallback. */
95
130
  loadingProps?: LoadingProps;
131
+ /** Explicit loading element that overrides the built-in {@link Loading} fallback. */
96
132
  loading?: JSX.Element;
97
133
  }
98
134
  /**
99
- * FaasDataWrapper component with Loading
135
+ * Render the `@faasjs/react` data wrapper with an Ant Design loading fallback.
136
+ *
137
+ * When `loading` is not provided, the component renders {@link Loading} with `loadingProps` while
138
+ * the wrapped FaasJS request is pending.
139
+ *
140
+ * @template T - Action path or response data type used for inference.
141
+ * @param {FaasDataWrapperProps<T>} props - Wrapper props including loading fallbacks and request configuration.
100
142
  *
101
143
  * @example
102
144
  * ```tsx
103
- * function MyComponent (props: FaasDataInjection) {
104
- * return <div>{ props.data }</div>
145
+ * import { Alert, Button } from 'antd'
146
+ * import { FaasDataWrapper } from '@faasjs/ant-design'
147
+ *
148
+ * type User = {
149
+ * name: string
150
+ * }
151
+ *
152
+ * function UserView(props: {
153
+ * data?: User
154
+ * error?: Error
155
+ * reload?: () => void
156
+ * }) {
157
+ * if (props.error) {
158
+ * return (
159
+ * <Alert
160
+ * type="error"
161
+ * message={props.error.message}
162
+ * action={
163
+ * <Button size="small" onClick={() => props.reload?.()}>
164
+ * Retry
165
+ * </Button>
166
+ * }
167
+ * />
168
+ * )
169
+ * }
170
+ *
171
+ * return <div>Hello, {props.data?.name}</div>
172
+ * }
173
+ *
174
+ * // Render-prop mode
175
+ * export function UserProfile(props: { id: number }) {
176
+ * return (
177
+ * <FaasDataWrapper<User>
178
+ * action="user/get"
179
+ * params={{ id: props.id }}
180
+ * loading={<div>Loading user...</div>}
181
+ * render={({ data, error, reload }) => {
182
+ * if (error) {
183
+ * return (
184
+ * <Alert
185
+ * type="error"
186
+ * message={error.message}
187
+ * action={
188
+ * <Button size="small" onClick={() => reload()}>
189
+ * Retry
190
+ * </Button>
191
+ * }
192
+ * />
193
+ * )
194
+ * }
195
+ *
196
+ * return <div>Hello, {data.name}</div>
197
+ * }}
198
+ * />
199
+ * )
105
200
  * }
106
201
  *
107
- * function MyPage () {
108
- * return <FaasDataWrapper action="test" params={{ a: 1 }}>
109
- * <MyComponent />
110
- * </FaasDataWrapper>
202
+ * // Children injection mode
203
+ * export function UserProfileWithChildren(props: { id: number }) {
204
+ * return (
205
+ * <FaasDataWrapper<User>
206
+ * action="user/get"
207
+ * params={{ id: props.id }}
208
+ * loading={<div>Loading user...</div>}
209
+ * >
210
+ * <UserView />
211
+ * </FaasDataWrapper>
212
+ * )
111
213
  * }
112
214
  * ```
113
215
  */
114
216
  declare function FaasDataWrapper<T extends FaasActionUnionType = any>(props: FaasDataWrapperProps<T>): JSX.Element;
115
217
  /**
116
- * HOC to wrap a component with FaasDataWrapper and Loading
218
+ * Wrap a component with {@link FaasDataWrapper} and its Ant Design loading fallback.
219
+ *
220
+ * @template PathOrData - Action path or response data type used for inference.
221
+ * @template TComponentProps - Component props including injected Faas data fields.
222
+ * @param {React.FC<TComponentProps & Record<string, any>>} Component - Component that consumes injected Faas data props.
223
+ * @param {FaasDataWrapperProps<PathOrData>} faasProps - Request configuration forwarded to {@link FaasDataWrapper}.
224
+ * @returns Higher-order component that injects Faas data props.
117
225
  *
118
226
  * @example
119
227
  * ```tsx
120
- * const MyComponent = withFaasData(({ data }) => <div>{data.name}</div>, { action: 'test', params: { a: 1 } })
228
+ * import { withFaasData } from '@faasjs/ant-design'
229
+ *
230
+ * const UserCard = withFaasData(
231
+ * ({ data, error, reload }) =>
232
+ * error ? (
233
+ * <a onClick={() => reload()}>Retry</a>
234
+ * ) : (
235
+ * <div>{data.name}</div>
236
+ * ),
237
+ * { action: 'user/get', params: { id: 1 } },
238
+ * )
121
239
  * ```
122
240
  */
123
241
  declare function withFaasData<PathOrData extends FaasActionUnionType, TComponentProps extends Required<FaasDataInjection<PathOrData>> = Required<FaasDataInjection<PathOrData>>>(Component: React.FC<TComponentProps & Record<string, any>>, faasProps: FaasDataWrapperProps<PathOrData>): React.FC<Omit<TComponentProps, keyof FaasDataInjection<PathOrData>>>;
124
242
  //#endregion
125
243
  //#region src/Config.d.ts
244
+ /**
245
+ * Fully resolved theme object consumed by `@faasjs/ant-design` components.
246
+ */
126
247
  type ResolvedTheme = {
127
- lang: string;
248
+ /** Current language code used for built-in copy. */lang: string; /** Shared copy used by multiple components. */
128
249
  common: {
129
250
  blank: string;
130
251
  all: string;
@@ -135,19 +256,19 @@ type ResolvedTheme = {
135
256
  required: string;
136
257
  search: string;
137
258
  reset: string;
138
- };
259
+ }; /** Theme values consumed by the `Blank` component. */
139
260
  Blank: {
140
261
  text: string;
141
- };
262
+ }; /** Theme values consumed by the `Form` component. */
142
263
  Form: {
143
264
  submit: {
144
265
  text: string;
145
266
  };
146
- };
267
+ }; /** Theme values consumed by the `Title` component. */
147
268
  Title: {
148
269
  separator: string;
149
270
  suffix: string;
150
- };
271
+ }; /** Theme values consumed by the `Link` component. */
151
272
  Link: {
152
273
  target?: string;
153
274
  style: CSSProperties;
@@ -156,11 +277,17 @@ type ResolvedTheme = {
156
277
  type ConfigContextValue = {
157
278
  theme: ResolvedTheme;
158
279
  };
280
+ /**
281
+ * Props for the `@faasjs/ant-design` {@link ConfigProvider}.
282
+ */
159
283
  interface ConfigProviderProps {
284
+ /** Optional FaasJS client options used to initialize {@link FaasReactClient}. */
160
285
  faasClientOptions?: FaasReactClientOptions;
286
+ /** Descendant components that consume the resolved config context. */
161
287
  children: React.ReactNode;
288
+ /** Theme overrides merged with the built-in defaults. */
162
289
  theme?: {
163
- lang?: string;
290
+ /** Language code used to select localized defaults. */lang?: string; /** Common shared copy and labels used across components. */
164
291
  common?: {
165
292
  blank?: string;
166
293
  all?: string;
@@ -171,85 +298,168 @@ interface ConfigProviderProps {
171
298
  required?: string;
172
299
  search?: string;
173
300
  reset?: string;
174
- };
301
+ }; /** Blank-component theme overrides. */
175
302
  Blank?: {
176
303
  text?: string;
177
- };
304
+ }; /** Form-component theme overrides. */
178
305
  Form?: {
179
306
  submit?: {
180
307
  text?: string;
181
308
  };
182
- };
309
+ }; /** Title-component theme overrides. */
183
310
  Title?: {
184
- /** ' - ' as default */separator?: string;
311
+ /**
312
+ * Separator inserted between title segments.
313
+ *
314
+ * @default ' - '
315
+ */
316
+ separator?: string; /** Suffix appended to generated page titles. */
185
317
  suffix?: string;
186
- };
318
+ }; /** Link-component theme overrides. */
187
319
  Link?: {
188
- /** '_blank' as default */target?: string;
320
+ /**
321
+ * Default target used by the `Link` component when `props.target` is omitted.
322
+ *
323
+ * @default '_blank'
324
+ */
325
+ target?: string; /** Default inline styles merged into every `Link`. */
189
326
  style?: CSSProperties;
190
327
  };
191
328
  };
192
329
  }
330
+ /**
331
+ * React context storing the resolved FaasJS Ant Design theme.
332
+ */
193
333
  declare const ConfigContext: react.Context<ConfigContextValue>;
194
334
  /**
195
- * Config for `@faasjs/ant-design` components.
335
+ * Provide theme overrides and optional FaasJS client initialization for descendants.
336
+ *
337
+ * Theme overrides are merged with the built-in defaults. When `theme.lang` is omitted, the
338
+ * provider infers a default language from `navigator.language`.
339
+ *
340
+ * @param {ConfigProviderProps} props - Theme overrides and optional FaasJS client configuration.
196
341
  *
197
342
  * @example
198
343
  * ```tsx
199
- * import { ConfigProvider } from '@faasjs/ant-design'
344
+ * import { Blank, ConfigProvider } from '@faasjs/ant-design'
200
345
  *
201
- * <ConfigProvider theme={{ common: { blank: 'Empty' } }}>
202
- * <Blank />
203
- * </ConfigProvider>
346
+ * export function Page() {
347
+ * return (
348
+ * <ConfigProvider theme={{ common: { blank: 'Empty' } }}>
349
+ * <Blank />
350
+ * </ConfigProvider>
351
+ * )
352
+ * }
204
353
  * ```
205
354
  */
206
355
  declare function ConfigProvider(props: ConfigProviderProps): react_jsx_runtime0.JSX.Element | null;
356
+ /**
357
+ * Read the current `@faasjs/ant-design` config context.
358
+ *
359
+ * @returns Current config context value containing the resolved theme.
360
+ *
361
+ * @example
362
+ * ```tsx
363
+ * import { Blank, ConfigProvider, useConfigContext } from '@faasjs/ant-design'
364
+ *
365
+ * function EmptyState() {
366
+ * const { theme } = useConfigContext()
367
+ *
368
+ * return <span>{theme.common.blank}</span>
369
+ * }
370
+ *
371
+ * export function Page() {
372
+ * return (
373
+ * <ConfigProvider theme={{ common: { blank: 'N/A' } }}>
374
+ * <EmptyState />
375
+ * </ConfigProvider>
376
+ * )
377
+ * }
378
+ * ```
379
+ */
207
380
  declare function useConfigContext(): ConfigContextValue;
208
381
  //#endregion
209
382
  //#region src/ErrorBoundary.d.ts
210
383
  /**
211
384
  * Styled error boundary.
385
+ *
386
+ * When `errorChildren` is not provided, the fallback UI renders an Ant Design `Alert` containing
387
+ * the captured error message and description.
388
+ *
389
+ * @param {ErrorBoundaryProps} props - Error boundary props forwarded to the underlying React implementation.
390
+ *
391
+ * @example
392
+ * ```tsx
393
+ * import { ErrorBoundary } from '@faasjs/ant-design'
394
+ *
395
+ * export function Page() {
396
+ * return (
397
+ * <ErrorBoundary>
398
+ * <DangerousWidget />
399
+ * </ErrorBoundary>
400
+ * )
401
+ * }
402
+ * ```
212
403
  */
213
404
  declare function ErrorBoundary(props: ErrorBoundaryProps): react_jsx_runtime0.JSX.Element;
214
405
  //#endregion
215
406
  //#region src/App.d.ts
407
+ /**
408
+ * Props for the root {@link App} shell.
409
+ *
410
+ * `App` composes the Ant Design provider tree, FaasJS config provider, shared modal and drawer
411
+ * state, and optional browser routing into a single wrapper component.
412
+ */
216
413
  interface AppProps {
414
+ /** Descendant elements rendered inside all configured providers. */
217
415
  children: React.ReactNode;
218
- /** @see https://ant.design/components/config-provider/#API */
416
+ /**
417
+ * Props forwarded to Ant Design's `ConfigProvider`.
418
+ *
419
+ * @see https://ant.design/components/config-provider/#API
420
+ */
219
421
  configProviderProps?: ConfigProviderProps$1;
220
422
  /**
221
- * `false` to disable BrowserRouter.
423
+ * Props forwarded to React Router's `BrowserRouter`, or `false` to disable browser routing.
222
424
  *
223
- * Auto disable when not in browser.
425
+ * Routing is enabled automatically when running in a browser and this prop is not `false`.
224
426
  *
225
427
  * @see https://api.reactrouter.com/v7/interfaces/react_router.BrowserRouterProps.html
226
428
  */
227
429
  browserRouterProps?: BrowserRouterProps | false;
228
- /** @see https://faasjs.com/doc/ant-design/#errorboundary */
430
+ /**
431
+ * Props forwarded to {@link ErrorBoundary}.
432
+ *
433
+ * @see https://faasjs.com/doc/ant-design/#errorboundary
434
+ */
229
435
  errorBoundaryProps?: Omit<ErrorBoundaryProps, 'children'>;
230
- /** @see https://faasjs.com/doc/ant-design/#configprovider */
436
+ /**
437
+ * Props forwarded to {@link ConfigProvider}, or `false` to skip the FaasJS config layer.
438
+ *
439
+ * @see https://faasjs.com/doc/ant-design/#configprovider
440
+ */
231
441
  faasConfigProviderProps?: Omit<ConfigProviderProps, 'children'> | false;
232
442
  }
233
443
  /**
234
- * App component with Ant Design & FaasJS
444
+ * Render the root provider shell for a FaasJS Ant Design application.
445
+ *
446
+ * `App` initializes Ant Design message and notification APIs, exposes hook-managed modal and
447
+ * drawer state through {@link AppContext}, wraps descendants with {@link ErrorBoundary}, and
448
+ * optionally mounts React Router's `BrowserRouter`.
235
449
  *
236
- * - Based on Ant Design's [ConfigProvider](https://ant.design/components/config-provider/).
237
- * - Integrated Ant Design's [Message](https://ant.design/components/message/) and [Notification](https://ant.design/components/notification/).
238
- * - Based on FaasJS's [ConfigProvider](https://faasjs.com/doc/ant-design/#configprovider).
239
- * - Integrated FaasJS's [Modal](https://faasjs.com/doc/ant-design/#usemodal), [Drawer](https://faasjs.com/doc/ant-design/#usedrawer) and [ErrorBoundary](https://faasjs.com/doc/ant-design/#errorboundary).
240
- * - Integrated React Router's [BrowserRouter](https://api.reactrouter.com/v7/interfaces/react_router.BrowserRouterProps.html).
450
+ * @param {AppProps} props - App shell props including providers, routing, and error handling options.
241
451
  *
242
452
  * @example
243
453
  * ```tsx
244
454
  * import { App } from '@faasjs/ant-design'
245
455
  *
246
- * export default function () {
456
+ * export default function Page() {
247
457
  * return (
248
458
  * <App
249
- * configProviderProps={{}} // https://ant.design/components/config-provider/#API
250
- * browserRouterProps={{}} // https://api.reactrouter.com/v7/interfaces/react_router.BrowserRouterProps.html
251
- * errorBoundaryProps={{}} // https://faasjs.com/doc/ant-design/#errorboundary
252
- * faasConfigProviderProps={{}} // https://faasjs.com/doc/ant-design/#configprovider
459
+ * configProviderProps={{}}
460
+ * browserRouterProps={{}}
461
+ * errorBoundaryProps={{}}
462
+ * faasConfigProviderProps={{}}
253
463
  * >
254
464
  * <div>content</div>
255
465
  * </App>
@@ -260,28 +470,46 @@ interface AppProps {
260
470
  declare function App(props: AppProps): react_jsx_runtime0.JSX.Element;
261
471
  //#endregion
262
472
  //#region src/Blank.d.ts
473
+ /**
474
+ * Props for the {@link Blank} placeholder component.
475
+ */
263
476
  interface BlankProps {
477
+ /** Value to render when it is present. */
264
478
  value?: any;
479
+ /** Placeholder text shown when `value` is empty. */
265
480
  text?: string;
266
481
  }
267
482
  /**
268
- * Blank component.
483
+ * Render a disabled placeholder when a value is empty.
484
+ *
485
+ * Empty values include `undefined`, `null`, empty strings, and empty arrays.
269
486
  *
270
- * If value is undefined or null, return text, otherwise return value.
487
+ * @param {BlankProps} [options] - Placeholder text and value to render.
488
+ * @returns Rendered value or the configured placeholder text.
271
489
  *
272
490
  * @example
273
491
  * ```tsx
274
492
  * import { Blank } from '@faasjs/ant-design'
275
493
  *
276
- * <Blank value={undefined} text="Empty" />
494
+ * export function FieldPreview() {
495
+ * return <Blank value={undefined} text="Empty" />
496
+ * }
277
497
  * ```
278
498
  */
279
499
  declare function Blank(options?: BlankProps): JSX.Element;
280
500
  //#endregion
281
501
  //#region src/FormItem.d.ts
502
+ /**
503
+ * Custom renderer registration for a form item type.
504
+ *
505
+ * @template T - Value type rendered by the custom form item type.
506
+ */
282
507
  type ExtendFormTypeProps<T = any> = {
283
- children?: UnionFaasItemElement<T>;
508
+ /** Custom element used to render the registered form item type. */children?: UnionFaasItemElement<T>;
284
509
  };
510
+ /**
511
+ * Map of custom form item type registrations.
512
+ */
285
513
  type ExtendTypes = {
286
514
  [type: string]: ExtendFormTypeProps;
287
515
  };
@@ -296,39 +524,61 @@ type InputTypeMap<T> = {
296
524
  object: never;
297
525
  'object[]': never;
298
526
  };
527
+ /**
528
+ * Item definition used by the `FormItem` and `Form` components.
529
+ *
530
+ * @template T - Value type rendered or edited by the form item.
531
+ */
299
532
  interface FormItemProps<T = any> extends BaseItemProps, Omit<FormItemProps$1<T>, 'id' | 'children' | 'render'> {
533
+ /**
534
+ * Built-in FaasJS field type used to choose the default Ant Design input.
535
+ *
536
+ * @default 'string'
537
+ */
300
538
  type?: FaasItemType;
539
+ /** Input props forwarded to the generated Ant Design control. */
301
540
  input?: InputTypeMap<T>[FaasItemType];
541
+ /** Maximum item count allowed for list-style field types. */
302
542
  maxCount?: number;
543
+ /** Nested field definitions used by `object` and `object[]` item types. */
303
544
  object?: FormItemProps[];
545
+ /** Whether the generated field is disabled. */
304
546
  disabled?: boolean;
547
+ /** Whether the generated field adds a required validation rule. */
305
548
  required?: boolean;
549
+ /** Grid span used by surrounding object-list layouts. */
306
550
  col?: number;
551
+ /** Generic custom field renderer or element. */
307
552
  children?: UnionFaasItemElement<T> | null;
553
+ /** Form-specific custom field renderer or element. */
308
554
  formChildren?: UnionFaasItemElement<T> | null;
555
+ /** Generic custom render callback. */
309
556
  render?: UnionFaasItemRender<T> | null;
557
+ /** Form-specific custom render callback. */
310
558
  formRender?: UnionFaasItemRender<T> | null;
559
+ /** Validation rules forwarded to Ant Design `Form.Item`. */
311
560
  rules?: RuleObject[];
561
+ /** Label override, or `false` to hide the label completely. */
312
562
  label?: string | false;
563
+ /** Custom form item type renderers keyed by type name. */
313
564
  extendTypes?: ExtendTypes;
314
- /** trigger when current item's value changed */
565
+ /** Callback invoked when this field's value changes. */
315
566
  onValueChange?: (value: T, values: any, form: FormInstance) => void;
316
- /** trigger when any item's value changed */
567
+ /** Predicate used to show or hide the item from the current form values. */
317
568
  if?: (values: Record<string, any>) => boolean;
318
569
  }
319
570
  /**
320
- * Extend custom form item types.
571
+ * Item shape used to extend `Form` with custom type names.
321
572
  *
322
573
  * @example
323
- * ```ts
324
- * import type { ExtendFormItemProps, FormProps } from '@faasjs/ant-design'
574
+ * ```tsx
575
+ * import { Form, type ExtendFormItemProps, type FormProps } from '@faasjs/ant-design'
576
+ * import { Input } from 'antd'
325
577
  *
326
- * // define custom type
327
578
  * interface ExtendTypes extends ExtendFormItemProps {
328
579
  * type: 'password'
329
580
  * }
330
581
  *
331
- * // extend form
332
582
  * function ExtendForm(props: FormProps<any, ExtendTypes>) {
333
583
  * return (
334
584
  * <Form
@@ -338,35 +588,48 @@ interface FormItemProps<T = any> extends BaseItemProps, Omit<FormItemProps$1<T>,
338
588
  * )
339
589
  * }
340
590
  *
341
- * // use custom type
342
- * <ExtendForm
343
- * items={[
344
- * {
345
- * id: 'test',
346
- * type: 'password',
347
- * },
348
- * ]}
349
- * />
591
+ * export function Page() {
592
+ * return (
593
+ * <ExtendForm
594
+ * items={[
595
+ * {
596
+ * id: 'password',
597
+ * type: 'password',
598
+ * },
599
+ * ]}
600
+ * />
601
+ * )
602
+ * }
350
603
  * ```
351
604
  */
352
605
  interface ExtendFormItemProps extends Omit<FormItemProps, 'type'> {
353
606
  type?: string;
354
607
  }
355
608
  /**
356
- * FormItem
609
+ * Render a FaasJS-aware Ant Design form field or nested field group.
357
610
  *
358
- * - Based on [Ant Design Form.Item](https://ant.design/components/form#formitem).
359
- * - Can be used without [Form](https://faasjs.com/doc/ant-design/#form).
611
+ * The component derives default labels from `id`, applies required validation messages from the
612
+ * active theme, supports surface-specific union renderers, and can render nested `object` or
613
+ * `object[]` field structures.
614
+ *
615
+ * @template T - Value type rendered or edited by the form item.
616
+ * @param {FormItemProps<T>} props - Form item props including field metadata, rules, and custom renderers.
360
617
  *
361
618
  * @example
362
619
  * ```tsx
363
- * // use inline type
364
- * <FormItem type='string' id='name' />
620
+ * import { FormItem } from '@faasjs/ant-design'
621
+ * import { Input } from 'antd'
365
622
  *
366
- * // use custom type
367
- * <FormItem id='password'>
368
- * <Input.Password />
369
- * </>
623
+ * export function AccountFields() {
624
+ * return (
625
+ * <>
626
+ * <FormItem id="name" type="string" />
627
+ * <FormItem id="password">
628
+ * <Input.Password />
629
+ * </FormItem>
630
+ * </>
631
+ * )
632
+ * }
370
633
  * ```
371
634
  */
372
635
  declare function FormItem<T = any>(props: FormItemProps<T>): react_jsx_runtime0.JSX.Element | null;
@@ -379,25 +642,52 @@ declare namespace FormItem {
379
642
  }
380
643
  //#endregion
381
644
  //#region src/Table.d.ts
645
+ /**
646
+ * Column definition used by the FaasJS Ant Design {@link Table} component.
647
+ *
648
+ * @template T - Row record type rendered by the table.
649
+ */
382
650
  interface TableItemProps<T = any> extends FaasItemProps, Omit<TableColumnProps<T>, 'title' | 'children' | 'render'> {
651
+ /** Use built-in option inference for filters when supported. */
383
652
  optionsType?: 'auto';
653
+ /** Generic custom element rendered when no table-specific child overrides it. */
384
654
  children?: UnionFaasItemElement<T> | null;
655
+ /** Table-specific custom element. */
385
656
  tableChildren?: UnionFaasItemElement<T> | null;
657
+ /** Generic custom render callback. */
386
658
  render?: UnionFaasItemRender<T> | null;
659
+ /** Table-specific custom render callback. */
387
660
  tableRender?: UnionFaasItemRender<T> | null;
661
+ /** Nested item definitions used by `object` and `object[]` item types. */
388
662
  object?: TableItemProps<T>[];
389
663
  }
664
+ /**
665
+ * Custom renderer registration for a table item type.
666
+ *
667
+ * @template T - Row record type rendered by the custom table item type.
668
+ */
390
669
  type ExtendTableTypeProps<T = any> = {
391
- children?: UnionFaasItemElement<T>;
670
+ /** Custom element used to render the registered table item type. */children?: UnionFaasItemElement<T>; /** Custom render callback used when `children` is not provided. */
392
671
  render?: UnionFaasItemRender<T>;
393
672
  };
673
+ /**
674
+ * Shared fields for extending table item unions.
675
+ *
676
+ * @template T - Row record type rendered by the table.
677
+ */
394
678
  type ExtendTableItemProps<T = any> = BaseItemProps & Omit<TableColumnProps<T>, 'children'>;
679
+ /**
680
+ * Props for the FaasJS Ant Design {@link Table} component.
681
+ *
682
+ * @template T - Row record type rendered by the table.
683
+ * @template ExtendTypes - Additional item prop shape accepted by `items`.
684
+ */
395
685
  type TableProps<T = any, ExtendTypes = any> = {
396
- items: (TableItemProps | (ExtendTypes & ExtendTableItemProps))[];
686
+ /** Column definitions rendered by the table. */items: (TableItemProps | (ExtendTypes & ExtendTableItemProps))[]; /** Custom type renderers keyed by item type. */
397
687
  extendTypes?: {
398
688
  [key: string]: ExtendTableTypeProps;
399
- };
400
- faasData?: FaasDataWrapperProps<any>;
689
+ }; /** Request config used to fetch table data before rendering. */
690
+ faasData?: FaasDataWrapperProps<any>; /** Change handler that can return rewritten pagination, filter, and sorter state. */
401
691
  onChange?: (pagination: TablePaginationConfig, filters: Record<string, FilterValue | null>, sorter: SorterResult<T> | SorterResult<T>[], extra: TableCurrentDataSource<T>) => {
402
692
  pagination: TablePaginationConfig;
403
693
  filters: Record<string, FilterValue | null>;
@@ -405,41 +695,81 @@ type TableProps<T = any, ExtendTypes = any> = {
405
695
  extra: TableCurrentDataSource<T>;
406
696
  };
407
697
  } & TableProps$1<T>;
698
+ /**
699
+ * Query params shape expected by table-backed FaasJS endpoints.
700
+ */
408
701
  type TableFaasDataParams = {
409
- filters?: Record<string, any[]>;
702
+ /** Active filter values keyed by column field. */filters?: Record<string, any[]>; /** Pagination state sent to the endpoint. */
410
703
  pagination?: {
411
- current?: number;
704
+ /** Current page number. */current?: number; /** Requested page size. */
412
705
  pageSize?: number;
413
- };
706
+ }; /** Sorter state sent to the endpoint. */
414
707
  sorter?: {
415
- field: string;
708
+ /** Column field being sorted. */field: string; /** Sort direction. */
416
709
  order: 'ascend' | 'descend';
417
710
  } | {
418
- field: string;
711
+ /** Column field being sorted. */field: string; /** Sort direction when active. */
419
712
  order?: 'ascend' | 'descend';
420
713
  }[];
421
714
  };
715
+ /**
716
+ * Paginated response shape expected by {@link Table} when using `faasData`.
717
+ *
718
+ * @template T - Row record type contained in `rows`.
719
+ */
422
720
  type TableFaasDataResponse<T = any> = {
423
- rows: T[];
721
+ /** Rows rendered by the table. */rows: T[]; /** Pagination state returned by the endpoint. */
424
722
  pagination: {
425
- current: number;
426
- pageSize: number;
723
+ /** Current page number. */current: number; /** Page size used for the result set. */
724
+ pageSize: number; /** Total number of available rows. */
427
725
  total: number;
428
726
  };
429
727
  };
430
728
  /**
431
- * Table component with Ant Design & FaasJS
729
+ * Render an Ant Design table from FaasJS item metadata.
730
+ *
731
+ * The component can render local `dataSource` rows or resolve remote rows through `faasData`. It
732
+ * also generates default filters and sorters for built-in item types unless you disable them with
733
+ * the corresponding Ant Design column props.
734
+ *
735
+ * @template T - Row record type rendered by the table.
736
+ * @template ExtendTypes - Additional item prop shape accepted by `items`.
737
+ * @param {TableProps<T, ExtendTypes>} props - Table props including columns, data source, and optional Faas data config.
738
+ * @throws {Error} When an entry in `extendTypes` omits both `children` and `render`.
739
+ *
740
+ * @example
741
+ * ```tsx
742
+ * import { Table } from '@faasjs/ant-design'
743
+ *
744
+ * const rows = [
745
+ * { id: 1, name: 'Alice', active: true },
746
+ * { id: 2, name: 'Bob', active: false },
747
+ * ]
432
748
  *
433
- * - Based on [Ant Design Table](https://ant.design/components/table/).
434
- * - Support FaasJS injection.
435
- * - Auto generate filter dropdown (disable with `filterDropdown: false`).
436
- * - Auto generate sorter (disable with `sorter: false`).
749
+ * export function UserTable() {
750
+ * return (
751
+ * <Table
752
+ * rowKey="id"
753
+ * dataSource={rows}
754
+ * items={[
755
+ * { id: 'name', title: 'Name' },
756
+ * { id: 'active', type: 'boolean', title: 'Active' },
757
+ * ]}
758
+ * />
759
+ * )
760
+ * }
761
+ * ```
437
762
  */
438
763
  declare function Table<T extends Record<string, any>, ExtendTypes = any>(props: TableProps<T, ExtendTypes>): react_jsx_runtime0.JSX.Element | null;
439
764
  //#endregion
440
765
  //#region src/data.d.ts
766
+ /**
767
+ * Supported built-in field types shared by form, table, and description components.
768
+ */
441
769
  type FaasItemType = 'string' | 'string[]' | 'number' | 'number[]' | 'boolean' | 'date' | 'time' | 'object' | 'object[]';
442
- /** FaasItemType's value type */
770
+ /**
771
+ * Runtime value mapping for each built-in {@link FaasItemType}.
772
+ */
443
773
  type FaasItemTypeValue = {
444
774
  string: string;
445
775
  'string[]': string[];
@@ -451,59 +781,117 @@ type FaasItemTypeValue = {
451
781
  object: any;
452
782
  'object[]': any[];
453
783
  };
784
+ /**
785
+ * Option item accepted by built-in choice inputs.
786
+ */
454
787
  type BaseOption = string | number | {
455
- label: string;
788
+ /** Display label rendered by Ant Design controls. */label: string; /** Raw option value submitted or matched by components. */
456
789
  value?: any;
457
790
  };
791
+ /**
792
+ * Common metadata shared by form, table, and description items.
793
+ */
458
794
  interface BaseItemProps {
795
+ /** Stable field identifier used as the default name and title source. */
459
796
  id: string | number;
797
+ /** Human-readable title used for labels and table headers. */
460
798
  title?: string;
799
+ /** Shared choice options used by select-like renderers. */
461
800
  options?: BaseOption[];
462
801
  }
802
+ /**
803
+ * Base item props plus the shared built-in value type selector.
804
+ */
463
805
  interface FaasItemProps extends BaseItemProps {
464
806
  /**
465
- * Support string, string[], number, number[], boolean, date, time, object, object[]
807
+ * Built-in FaasJS field type used to normalize and render values.
808
+ *
466
809
  * @default 'string'
467
810
  */
468
811
  type?: FaasItemType;
469
812
  }
470
813
  /**
471
- * Converts an identifier string to a title case string.
472
- *
473
- * This function takes an identifier string with words separated by underscores,
474
- * capitalizes the first letter of each word, and joins them together without spaces.
814
+ * Convert a snake_case, kebab-case, or spaced identifier into a title-style label.
475
815
  *
476
- * @param id - The identifier string to convert.
477
- * @returns The converted title case string.
816
+ * @param {string | number} id - Identifier to convert.
817
+ * @returns Generated label string.
478
818
  *
479
819
  * @example
480
- * ```typescript
481
- * idToTitle('example_id'); // returns 'ExampleId'
820
+ * ```ts
821
+ * idToTitle('example_id') // 'Example Id'
482
822
  * ```
483
823
  */
484
824
  declare function idToTitle(id: string | number): string;
485
825
  /**
486
- * convert string[] or number[] to { label, value }[]
826
+ * Normalize primitive options into explicit `{ label, value }` objects.
827
+ *
828
+ * String and number options are converted with {@link idToTitle}, while pre-shaped option objects
829
+ * are returned as-is.
830
+ *
831
+ * @param {BaseOption[]} options - Raw option list to normalize.
832
+ * @returns Normalized option list.
833
+ *
834
+ * @example
835
+ * ```ts
836
+ * import { transferOptions } from '@faasjs/ant-design'
837
+ *
838
+ * transferOptions(['draft', { label: 'Published', value: 'published' }])
839
+ * // [
840
+ * // { label: 'Draft', value: 'draft' },
841
+ * // { label: 'Published', value: 'published' },
842
+ * // ]
843
+ * ```
487
844
  */
488
845
  declare function transferOptions(options: BaseOption[]): {
489
846
  label: string;
490
847
  value?: string | number;
491
848
  }[];
849
+ /**
850
+ * Normalize raw values into the runtime shape expected by FaasJS Ant Design components.
851
+ *
852
+ * Primitive strings such as `'null'` and `'undefined'` become `null`, comma-delimited array
853
+ * strings are split into arrays, and date or time values are converted to `dayjs` objects.
854
+ *
855
+ * @param {FaasItemType | null | undefined} type - Target field type.
856
+ * @param {any} value - Raw value to normalize.
857
+ * @returns Normalized value for rendering or form initialization.
858
+ *
859
+ * @example
860
+ * ```ts
861
+ * import { transferValue } from '@faasjs/ant-design'
862
+ *
863
+ * transferValue('number', '42') // 42
864
+ * transferValue('boolean', 'true') // true
865
+ * transferValue('string[]', 'a,b') // ['a', 'b']
866
+ * ```
867
+ */
492
868
  declare function transferValue(type: FaasItemType | null | undefined, value: any): any;
869
+ /**
870
+ * Rendering surfaces supported by union item helpers.
871
+ */
493
872
  type UnionScene = 'form' | 'description' | 'table';
873
+ /**
874
+ * Props injected into custom union item components.
875
+ *
876
+ * @template Value - Current item value type.
877
+ * @template Values - Whole record or row type that contains the value.
878
+ */
494
879
  type UnionFaasItemInjection<Value = any, Values = any> = {
495
- scene?: UnionScene;
496
- value?: Value;
497
- values?: Values;
880
+ /** Rendering surface requesting the injected element. */scene?: UnionScene; /** Current field, cell, or item value. */
881
+ value?: Value; /** Full record or row containing the current value. */
882
+ values?: Values; /** Current row or list index when available. */
498
883
  index?: number;
499
884
  };
500
885
  /**
501
- * A type representing a function that renders a React node for a given item in a list.
886
+ * Render callback signature shared by form, description, and table item definitions.
502
887
  *
503
- * @param value - The value of the current item.
504
- * @param values - The entire list of values.
505
- * @param index - The index of the current item in the list.
506
- * @param scene - The scene in which the rendering is taking place. See {@link UnionScene}.
888
+ * @template Value - Current item value type.
889
+ * @template Values - Whole record or row type that contains the value.
890
+ *
891
+ * @param {Value} value - Current item value.
892
+ * @param {Values} values - Whole record or row containing the value.
893
+ * @param {number} index - Current row or list index.
894
+ * @param {UnionScene} scene - Rendering surface requesting the output.
507
895
  *
508
896
  * @example
509
897
  * ```tsx
@@ -539,9 +927,10 @@ type UnionFaasItemInjection<Value = any, Values = any> = {
539
927
  */
540
928
  type UnionFaasItemRender<Value = any, Values = any> = (value: Value, values: Values, index: number, scene: UnionScene) => React.ReactNode;
541
929
  /**
542
- * Represents a React element that is used in the UnionFaasItem context.
930
+ * Custom React component or element accepted by union item definitions.
543
931
  *
544
- * This type can either be a React element with the specified injection types or `null`.
932
+ * @template Value - Current item value type.
933
+ * @template Values - Whole record or row type that contains the value.
545
934
  *
546
935
  * @example
547
936
  * ```tsx
@@ -549,7 +938,6 @@ type UnionFaasItemRender<Value = any, Values = any> = (value: Value, values: Val
549
938
  *
550
939
  * const NameComponent: UnionFaasItemElement = ({ scene, value }) => {
551
940
  * switch (scene) {
552
- * switch (scene) {
553
941
  * case 'form':
554
942
  * return <input />
555
943
  * case 'description':
@@ -562,49 +950,36 @@ type UnionFaasItemRender<Value = any, Values = any> = (value: Value, values: Val
562
950
  *
563
951
  * const items = [
564
952
  * {
565
- * id: 'name',
566
- * children: NameComponent // both `NameComponent` and `<NameComponent />` is valid
953
+ * id: 'name',
954
+ * children: NameComponent, // both `NameComponent` and `<NameComponent />` are valid
567
955
  * }
568
956
  * ]
569
957
  *
570
958
  * function App() {
571
- * return <>
572
- * <Form items={items} /> // Will render an input
573
- * <Description items={items} dataSource={{ name: 'John' }} /> // Will render a span
574
- * <Table items={items} dataSource={[{ name: 'John' }]} /> // Will render a span
575
- * </>
959
+ * return (
960
+ * <>
961
+ * <Form items={items} />
962
+ * <Description items={items} dataSource={{ name: 'John' }} />
963
+ * <Table items={items} dataSource={[{ name: 'John' }]} />
964
+ * </>
965
+ * )
576
966
  * }
577
967
  * ```
578
968
  */
579
969
  type UnionFaasItemElement<Value = any, Values = any> = ReactElement<UnionFaasItemInjection<Value, Values>> | FC<UnionFaasItemInjection<Value, Values>>;
580
970
  /**
581
- * Interface representing the properties of a UnionFaas item.
582
- *
583
- * The UnionFaas item can be used in a form, description, or table.
971
+ * Shared union item contract that can be reused across `Form`, `Description`, and `Table`.
584
972
  *
585
973
  * ### Render Priority Order
586
974
  *
587
- * 1. **Null Rendering** (Notice: it also doesn't render column in table and description)
588
- * 1. Returns `null` if specific children or render props are null:
589
- * - `formChildren` / `descriptionChildren` / `tableChildren` / `formRender` / `descriptionRender` / `tableRender`
590
- * 2. Returns `null` if `children` or `render` prop is null
591
- * 2. **Children Rendering**
592
- * 1. First priority: Component-specific children
593
- * - `formChildren` for Form
594
- * - `descriptionChildren` for Description
595
- * - `tableChildren` for Table
596
- * 2. Second priority: Generic `children` prop
597
- * 3. **Custom Render Functions**
598
- * 1. First priority: Component-specific render functions
599
- * - `formRender` for Form
600
- * - `descriptionRender` for Description
601
- * - `tableRender` for Table
602
- * 2. Second priority: Generic `render` prop
603
- * 4. **Extended Types**
604
- * - Renders based on registered extended type handlers
605
- * 5. **Default Rendering**
606
- * - Renders primitive types (string, number, etc.)
607
- * - Uses default formatting based on data type
975
+ * 1. Component-specific null renderers hide the item for that surface.
976
+ * 2. Component-specific children override generic `children`.
977
+ * 3. Component-specific render callbacks override generic `render`.
978
+ * 4. Registered extended types handle unmatched items.
979
+ * 5. Built-in type renderers handle primitive and object values.
980
+ *
981
+ * @template Value - Current item value type.
982
+ * @template Values - Whole record or row type that contains the value.
608
983
  *
609
984
  * @example
610
985
  * ```tsx
@@ -642,105 +1017,183 @@ type UnionFaasItemElement<Value = any, Values = any> = ReactElement<UnionFaasIte
642
1017
  * ```
643
1018
  */
644
1019
  interface UnionFaasItemProps<Value = any, Values = any> extends FormItemProps, DescriptionItemProps, TableItemProps {
1020
+ /** Shared custom element rendered when no surface-specific child overrides it. */
645
1021
  children?: UnionFaasItemElement<Value, Values> | null;
1022
+ /** Shared render callback used when no surface-specific render overrides it. */
646
1023
  render?: UnionFaasItemRender<Value, Values> | null;
1024
+ /** Nested item definitions used by `object` and `object[]` item types. */
647
1025
  object?: UnionFaasItemProps<Value, Values>[];
648
1026
  }
649
1027
  /**
650
- * Clone a UnionFaasItemElement with the given props.
1028
+ * Clone a {@link UnionFaasItemElement} with FaasJS injection props.
1029
+ *
1030
+ * React elements are cloned directly, while component references are first wrapped with
1031
+ * `createElement`.
1032
+ *
1033
+ * @param {UnionFaasItemElement} element - Element or component to clone.
1034
+ * @param {any} props - Injection props such as `scene`, `value`, `values`, and `index`.
1035
+ * @returns Cloned React element ready for rendering.
1036
+ *
1037
+ * @example
1038
+ * ```tsx
1039
+ * import { cloneUnionFaasItemElement, type UnionFaasItemElement } from '@faasjs/ant-design'
651
1040
  *
652
- * This function takes a UnionFaasItemElement and props, and returns a cloned element.
653
- * If the provided element is a valid React element, it clones it with the new props.
654
- * Otherwise, it creates a new element from the provided element and props.
1041
+ * const Cell: UnionFaasItemElement<string> = ({ value }) => <span>{value}</span>
655
1042
  *
656
- * @param element - The UnionFaasItemElement to be cloned.
657
- * @param props - The props to be applied to the cloned element.
658
- * @returns The cloned element with the applied props.
1043
+ * const element = cloneUnionFaasItemElement(Cell, {
1044
+ * scene: 'table',
1045
+ * value: 'Hello',
1046
+ * index: 0,
1047
+ * })
1048
+ * ```
659
1049
  */
660
1050
  declare function cloneUnionFaasItemElement(element: UnionFaasItemElement, props: any): ReactElement<UnionFaasItemInjection<any, any>, string | react.JSXElementConstructor<any>>;
661
1051
  //#endregion
662
1052
  //#region src/Description.d.ts
1053
+ /**
1054
+ * Custom renderer registration for a description item type.
1055
+ *
1056
+ * @template T - Value type rendered by the custom description item type.
1057
+ */
663
1058
  interface ExtendDescriptionTypeProps<T = any> {
1059
+ /** Custom element used to render the registered description item type. */
664
1060
  children?: UnionFaasItemElement<T>;
1061
+ /** Custom render callback used when `children` is not provided. */
665
1062
  render?: UnionFaasItemRender<T>;
666
1063
  }
1064
+ /**
1065
+ * Shared fields for extending description item unions.
1066
+ */
667
1067
  type ExtendDescriptionItemProps = BaseItemProps;
1068
+ /**
1069
+ * Item definition used by {@link Description}.
1070
+ *
1071
+ * @template T - Value type rendered by the item.
1072
+ */
668
1073
  interface DescriptionItemProps<T = any> extends FaasItemProps {
1074
+ /** Generic custom element rendered when no description-specific child overrides it. */
669
1075
  children?: UnionFaasItemElement<T> | null;
1076
+ /** Description-specific custom element. */
670
1077
  descriptionChildren?: UnionFaasItemElement<T> | null;
1078
+ /** Generic custom render callback. */
671
1079
  render?: UnionFaasItemRender<T> | null;
1080
+ /** Description-specific custom render callback. */
672
1081
  descriptionRender?: UnionFaasItemRender<T> | null;
1082
+ /** Predicate used to hide the item for the current record. */
673
1083
  if?: (values: Record<string, any>) => boolean;
1084
+ /** Nested item definitions used by `object` and `object[]` item types. */
674
1085
  object?: DescriptionItemProps<T>[];
675
1086
  }
1087
+ /**
1088
+ * Props for the {@link Description} component.
1089
+ *
1090
+ * @template T - Data record shape rendered by the component.
1091
+ * @template ExtendItemProps - Additional item prop shape accepted by `items`.
1092
+ */
676
1093
  interface DescriptionProps<T = any, ExtendItemProps = any> extends Omit<DescriptionsProps, 'items'> {
1094
+ /** Callback used to derive the rendered title from the current record. */
677
1095
  renderTitle?(this: void, values: T): ReactNode;
1096
+ /** Description item definitions rendered by the component. */
678
1097
  items: (DescriptionItemProps | ExtendItemProps)[];
1098
+ /** Custom type renderers keyed by item type. */
679
1099
  extendTypes?: {
680
1100
  [key: string]: ExtendDescriptionTypeProps;
681
1101
  };
1102
+ /** Local data record rendered directly by the component. */
682
1103
  dataSource?: T;
1104
+ /** Request config used to fetch the record before rendering. */
683
1105
  faasData?: FaasDataWrapperProps<any>;
684
1106
  }
1107
+ /**
1108
+ * Props passed to the exported `DescriptionItemContent` helper shape.
1109
+ *
1110
+ * @template T - Value type rendered by the item content.
1111
+ */
685
1112
  interface DescriptionItemContentProps<T = any> {
1113
+ /** Item definition describing how the value should render. */
686
1114
  item: DescriptionItemProps;
1115
+ /** Current item value. */
687
1116
  value: T;
1117
+ /** Full record containing the current value. */
688
1118
  values?: any;
1119
+ /** Custom type renderers keyed by item type. */
689
1120
  extendTypes?: {
690
1121
  [key: string]: ExtendDescriptionTypeProps;
691
1122
  };
692
1123
  }
693
1124
  /**
694
- * Description component
1125
+ * Render an Ant Design description list from FaasJS item metadata.
1126
+ *
1127
+ * The component can render a local `dataSource` directly or resolve one through `faasData`, and
1128
+ * it applies the same item type normalization helpers used by the form and table components.
695
1129
  *
696
- * - Based on [Ant Design Descriptions](https://ant.design/components/descriptions/).
1130
+ * @template T - Data record shape rendered by the component.
1131
+ * @param {DescriptionProps<T>} props - Description props including items, data source, and optional Faas data config.
1132
+ * @throws {Error} When an entry in `extendTypes` omits both `children` and `render`.
697
1133
  *
698
1134
  * @example
699
1135
  * ```tsx
700
1136
  * import { Description } from '@faasjs/ant-design'
701
1137
  *
702
- * <Description
703
- * title="Title"
704
- * items={[
705
- * {
706
- * id: 'id',
707
- * title: 'Title',
708
- * type: 'string',
709
- * },
710
- * ]}
711
- * dataSource={{ id: 'value' }}
712
- * />
713
- * ```
714
- */
715
- declare function Description<T extends Record<string, any> = any>({
716
- faasData,
717
- dataSource,
718
- renderTitle,
719
- extendTypes,
720
- ...props
721
- }: DescriptionProps<T>): react_jsx_runtime0.JSX.Element;
1138
+ * export function Detail() {
1139
+ * return (
1140
+ * <Description
1141
+ * title="Title"
1142
+ * items={[
1143
+ * {
1144
+ * id: 'id',
1145
+ * title: 'Title',
1146
+ * type: 'string',
1147
+ * },
1148
+ * ]}
1149
+ * dataSource={{ id: 'value' }}
1150
+ * />
1151
+ * )
1152
+ * }
1153
+ * ```
1154
+ */
1155
+ declare function Description<T extends Record<string, any> = any>(props: DescriptionProps<T>): react_jsx_runtime0.JSX.Element;
722
1156
  declare namespace Description {
723
1157
  var displayName: string;
724
1158
  }
725
1159
  //#endregion
726
1160
  //#region src/Drawer.d.ts
1161
+ /**
1162
+ * Props accepted by the hook-managed drawer wrapper.
1163
+ */
727
1164
  interface DrawerProps extends DrawerProps$1 {
1165
+ /** Drawer body content managed by {@link useDrawer}. */
728
1166
  children?: JSX.Element | JSX.Element[];
729
1167
  }
1168
+ /**
1169
+ * State setter used to update hook-managed drawer props.
1170
+ */
730
1171
  type setDrawerProps = Dispatch<SetStateAction<DrawerProps>>;
731
1172
  /**
732
- * Hook style drawer
1173
+ * Create a hook-managed Ant Design drawer instance.
1174
+ *
1175
+ * The returned setter merges partial updates into the current drawer props instead of replacing the
1176
+ * entire state object.
733
1177
  *
1178
+ * @param {DrawerProps} [init] - Initial drawer props.
1179
+ * @returns Hook-managed drawer element, current props, and a state-merging setter.
1180
+ *
1181
+ * @example
734
1182
  * ```tsx
1183
+ * import { useDrawer } from '@faasjs/ant-design'
1184
+ * import { Button } from 'antd'
1185
+ *
735
1186
  * function Example() {
736
1187
  * const { drawer, setDrawerProps } = useDrawer()
737
1188
  *
738
- * return <>
739
- * <Button onClick={ () => setDrawerProps(prev => ({ open: !prev.open})) }>
740
- * Toggle
741
- * </Button>
742
- * {drawer}
743
- * </>
1189
+ * return (
1190
+ * <>
1191
+ * <Button onClick={() => setDrawerProps({ open: true, title: 'Details', children: <div>Content</div> })}>
1192
+ * Open
1193
+ * </Button>
1194
+ * {drawer}
1195
+ * </>
1196
+ * )
744
1197
  * }
745
1198
  * ```
746
1199
  */
@@ -751,56 +1204,112 @@ declare function useDrawer(init?: DrawerProps): {
751
1204
  };
752
1205
  //#endregion
753
1206
  //#region src/Form.d.ts
1207
+ /**
1208
+ * Props for the built-in submit button rendered by {@link Form}.
1209
+ */
754
1210
  type FormSubmitProps = {
755
- /** Default: Submit */text?: string;
756
- /**
757
- * Submit to FaasJS server.
758
- *
759
- * If use onFinish, you should call submit manually.
760
- * ```ts
761
- * {
762
- * submit: {
763
- * to: {
764
- * action: 'action_name'
765
- * }
766
- * },
767
- * onFinish: (values, submit) => {
768
- * // do something before submit
769
- *
770
- * // submit
771
- * await submit({
772
- * ...values,
773
- * extraProps: 'some extra props'
774
- * })
775
- *
776
- * // do something after submit
777
- * }
778
- * }
779
- * ```
780
- */
781
- to?: {
782
- action: FaasAction; /** params will overwrite form values before submit */
783
- params?: Record<string, any>;
784
- then?: (result: any) => void;
785
- catch?: (error: any) => void;
786
- finally?: () => void;
787
- };
1211
+ /** Text rendered by the built-in submit button. */text?: string; /** Additional props forwarded to the built-in submit button. */
1212
+ buttonProps?: ButtonProps;
788
1213
  };
789
- interface FormProps<Values extends Record<string, any> = any, ExtendItemProps extends ExtendFormItemProps = ExtendFormItemProps> extends Omit<FormProps$1<Values>, 'onFinish' | 'children' | 'initialValues'> {
790
- items?: ((ExtendItemProps extends ExtendFormItemProps ? ExtendItemProps | FormItemProps : FormItemProps) | JSX.Element)[];
791
- /** Default: { text: 'Submit' }, set false to disable it */
792
- submit?: false | FormSubmitProps;
793
- onFinish?: (values: Values, submit?: (values: any) => Promise<any>) => Promise<any>;
794
- beforeItems?: JSX.Element | JSX.Element[];
795
- footer?: JSX.Element | JSX.Element[];
796
- extendTypes?: ExtendTypes;
797
- children?: ReactNode;
1214
+ /**
1215
+ * Built-in FaasJS submit handler configuration for {@link Form}.
1216
+ *
1217
+ * @template Values - Form values shape used by submit handlers.
1218
+ *
1219
+ * @example
1220
+ * ```ts
1221
+ * const faas = {
1222
+ * action: 'user/create',
1223
+ * params: (values) => ({
1224
+ * ...values,
1225
+ * role: values.role || 'user',
1226
+ * }),
1227
+ * onSuccess: (result) => {
1228
+ * console.log(result)
1229
+ * },
1230
+ * }
1231
+ * ```
1232
+ */
1233
+ type FormFaasProps<Values extends Record<string, any> = any> = {
1234
+ /** Action name submitted through `faas()`. */action: FaasAction; /** Extra params merged into the submitted payload after `transformValues` runs. */
1235
+ params?: Record<string, any> | ((values: Record<string, any>) => Record<string, any>); /** Transform form values before sending the request. */
1236
+ transformValues?: (values: Values) => Record<string, any> | Promise<Record<string, any>>; /** Callback invoked when the request succeeds. */
1237
+ onSuccess?: (result: any, values: Record<string, any>) => void; /** Callback invoked when the request fails. */
1238
+ onError?: (error: any, values: Record<string, any>) => void; /** Callback invoked after the request settles. */
1239
+ onFinally?: () => void;
1240
+ };
1241
+ /**
1242
+ * Props for the FaasJS Ant Design {@link Form} component.
1243
+ *
1244
+ * @template Values - Form values shape.
1245
+ * @template ExtendItemProps - Additional item prop shape accepted by `items`.
1246
+ */
1247
+ type FormProps<Values extends Record<string, any> = any, ExtendItemProps extends ExtendFormItemProps = ExtendFormItemProps> = Omit<FormProps$1<Values>, 'onFinish' | 'children' | 'initialValues'> & {
1248
+ /** Form item definitions or custom JSX blocks rendered inside the form. */items?: ((ExtendItemProps extends ExtendFormItemProps ? ExtendItemProps | FormItemProps : FormItemProps) | JSX.Element)[]; /** Built-in submit button config, or `false` to disable the generated submit button. */
1249
+ submit?: false | FormSubmitProps; /** Extra content rendered before generated items. */
1250
+ beforeItems?: JSX.Element | JSX.Element[]; /** Extra content rendered after generated items. */
1251
+ footer?: JSX.Element | JSX.Element[]; /** Custom form item type renderers keyed by type name. */
1252
+ extendTypes?: ExtendTypes; /** Additional custom content rendered inside the form. */
1253
+ children?: ReactNode; /** Initial values applied to the underlying Ant Design form. */
798
1254
  initialValues?: Partial<Values>;
799
- }
1255
+ } & ({
1256
+ /** Built-in FaasJS submit handler, ignored when `onFinish` is provided. */faas?: FormFaasProps<Values>;
1257
+ onFinish?: never;
1258
+ } | {
1259
+ faas?: never; /** Custom submit handler used instead of the built-in FaasJS submit flow. */
1260
+ onFinish?: (values: Values) => void | Promise<void>;
1261
+ });
800
1262
  /**
801
- * Form component with Ant Design & FaasJS
1263
+ * Render a data-aware Ant Design form with optional FaasJS submission helpers.
1264
+ *
1265
+ * The component normalizes `initialValues` with {@link transferValue}, renders item definitions
1266
+ * through {@link FormItem}, and can either delegate submission to a custom `onFinish` handler or
1267
+ * the built-in FaasJS request flow configured by `faas`.
1268
+ *
1269
+ * @template Values - Form values shape.
1270
+ * @param {FormProps<Values>} props - Form props including items, submit behavior, and FaasJS integration.
1271
+ *
1272
+ * @example
1273
+ * ```tsx
1274
+ * import { Form } from '@faasjs/ant-design'
1275
+ *
1276
+ * export function ProfileForm() {
1277
+ * return (
1278
+ * <Form
1279
+ * items={[
1280
+ * { id: 'name', required: true },
1281
+ * { id: 'email', required: true },
1282
+ * ]}
1283
+ * onFinish={async (values) => {
1284
+ * console.log(values)
1285
+ * }}
1286
+ * />
1287
+ * )
1288
+ * }
1289
+ * ```
1290
+ *
1291
+ * @example
1292
+ * ```tsx
1293
+ * import { Form } from '@faasjs/ant-design'
802
1294
  *
803
- * - Based on [Ant Design Form](https://ant.design/components/form/).
1295
+ * export function CreateUserForm() {
1296
+ * return (
1297
+ * <Form
1298
+ * initialValues={{ role: 'user' }}
1299
+ * items={[
1300
+ * { id: 'name', required: true },
1301
+ * { id: 'role', options: ['user', 'admin'] },
1302
+ * ]}
1303
+ * faas={{
1304
+ * action: 'user/create',
1305
+ * params: (values) => ({
1306
+ * role: values.role || 'user',
1307
+ * }),
1308
+ * }}
1309
+ * />
1310
+ * )
1311
+ * }
1312
+ * ```
804
1313
  */
805
1314
  declare function Form<Values extends Record<string, any> = any>(props: FormProps<Values>): react_jsx_runtime0.JSX.Element | null;
806
1315
  declare namespace Form {
@@ -814,48 +1323,92 @@ declare namespace Form {
814
1323
  }
815
1324
  //#endregion
816
1325
  //#region src/Link.d.ts
1326
+ /**
1327
+ * Props for the navigation-aware {@link Link} component.
1328
+ */
817
1329
  interface LinkProps {
1330
+ /** Target URL or route path. */
818
1331
  href: string;
1332
+ /** Explicit link target. Absolute HTTP URLs default to `_blank`. */
819
1333
  target?: '_blank';
1334
+ /** Text rendered when `children` is not provided. */
820
1335
  text?: string | number;
1336
+ /** Custom link content rendered instead of `text`. */
821
1337
  children?: ReactNode;
1338
+ /** Inline styles merged with the theme defaults. */
822
1339
  style?: CSSProperties;
1340
+ /** Button mode config, or `true` to render with default Ant Design button props. */
823
1341
  button?: ButtonProps | boolean;
1342
+ /** Whether the rendered link or button should take the full width. */
824
1343
  block?: boolean;
825
- /** only use for text without button */
1344
+ /** Whether plain-text links should enable the Typography copy action. */
826
1345
  copyable?: boolean;
1346
+ /** Custom click handler that overrides the built-in navigation behavior. */
827
1347
  onClick?: (event: React.MouseEvent<HTMLElement, MouseEvent>) => void;
828
1348
  }
829
1349
  /**
830
- * Link component with button
1350
+ * Render a navigation-aware link or button.
1351
+ *
1352
+ * Internal links are pushed through React Router, while links with `_blank` targets are opened
1353
+ * with `window.open`.
1354
+ *
1355
+ * @param {LinkProps} props - Link props controlling navigation target, rendering mode, and button behavior.
831
1356
  *
832
1357
  * @example
833
1358
  * ```tsx
834
- * // pure link
835
- * <Link href="/">Home</Link>
1359
+ * import { Link } from '@faasjs/ant-design'
836
1360
  *
837
- * // link with button
838
- * <Link href="/" button={{ type:'primary' }}>Home</Link>
1361
+ * export function Navigation() {
1362
+ * return (
1363
+ * <>
1364
+ * <Link href="/">Home</Link>
1365
+ * <Link href="/users/new" button={{ type: 'primary' }}>
1366
+ * Create User
1367
+ * </Link>
1368
+ * </>
1369
+ * )
1370
+ * }
839
1371
  * ```
840
1372
  */
841
1373
  declare function Link(props: LinkProps): react_jsx_runtime0.JSX.Element;
842
1374
  //#endregion
843
1375
  //#region src/Modal.d.ts
1376
+ /**
1377
+ * Props accepted by the hook-managed modal wrapper.
1378
+ */
844
1379
  interface ModalProps extends ModalProps$1 {
1380
+ /** Modal body content managed by {@link useModal}. */
845
1381
  children?: JSX.Element | JSX.Element[] | string;
846
1382
  }
1383
+ /**
1384
+ * State setter used to update hook-managed modal props.
1385
+ */
847
1386
  type setModalProps = Dispatch<SetStateAction<ModalProps>>;
848
1387
  /**
849
- * Hook style modal
1388
+ * Create a hook-managed Ant Design modal instance.
1389
+ *
1390
+ * The returned setter merges partial updates into the current modal props instead of replacing the
1391
+ * entire state object.
1392
+ *
1393
+ * @param {ModalProps} [init] - Initial modal props.
1394
+ * @returns Hook-managed modal element, current props, and a state-merging setter.
850
1395
  *
1396
+ * @example
851
1397
  * ```tsx
1398
+ * import { useModal } from '@faasjs/ant-design'
1399
+ * import { Button } from 'antd'
1400
+ *
852
1401
  * function Example() {
853
1402
  * const { modal, setModalProps } = useModal()
854
1403
  *
855
- * return <>
856
- * <Button onClick={() => setModalProps({ open: true })}>Open Modal</Button>
857
- * {modal}
858
- * </>
1404
+ * return (
1405
+ * <>
1406
+ * <Button onClick={() => setModalProps({ open: true, title: 'Delete', children: 'Are you sure?' })}>
1407
+ * Open Modal
1408
+ * </Button>
1409
+ * {modal}
1410
+ * </>
1411
+ * )
859
1412
  * }
860
1413
  * ```
861
1414
  */
@@ -866,139 +1419,242 @@ declare function useModal(init?: ModalProps): {
866
1419
  };
867
1420
  //#endregion
868
1421
  //#region src/Routers.d.ts
1422
+ /**
1423
+ * Default 404 route element that uses the configured localized title.
1424
+ *
1425
+ * @example
1426
+ * ```tsx
1427
+ * import { PageNotFound, Routes } from '@faasjs/ant-design'
1428
+ *
1429
+ * export function AppRoutes() {
1430
+ * return (
1431
+ * <Routes
1432
+ * routes={[{ path: '/', element: <div>Home</div> }]}
1433
+ * notFound={<PageNotFound />}
1434
+ * />
1435
+ * )
1436
+ * }
1437
+ * ```
1438
+ */
869
1439
  declare function PageNotFound(): react_jsx_runtime0.JSX.Element;
1440
+ /**
1441
+ * Props for the lazy-loading {@link Routes} wrapper.
1442
+ */
870
1443
  interface RoutesProps {
1444
+ /** Route records forwarded to React Router, with optional lazy `page` components. */
871
1445
  routes: (RouteProps & {
872
1446
  page?: LazyExoticComponent<ComponentType<any>>;
873
1447
  })[];
1448
+ /** Fallback element rendered while lazy pages are loading. */
874
1449
  fallback?: JSX.Element;
1450
+ /** Element rendered for the generated catch-all 404 route. */
875
1451
  notFound?: JSX.Element;
876
1452
  }
877
1453
  /**
878
- * Routes with lazy loading and 404 page.
1454
+ * Render React Router routes with lazy-page support and a default 404 route.
1455
+ *
1456
+ * The wrapper adds a catch-all route automatically and uses an Ant Design `Skeleton` fallback when
1457
+ * `fallback` is not provided.
1458
+ *
1459
+ * @param {RoutesProps} props - Route definitions and optional fallback or 404 elements.
879
1460
  *
880
1461
  * @example
881
1462
  * ```tsx
882
1463
  * import { Routes, lazy } from '@faasjs/ant-design'
883
1464
  * import { BrowserRouter } from 'react-router-dom'
884
1465
  *
885
- * export function App () {
886
- * return <BrowserRouter>
887
- * <Routes routes={[
888
- * {
889
- * path: '/',
890
- * page: lazy(() => import('./pages/home'))
891
- * }
892
- * ]} />
893
- * </BrowserRouter>
1466
+ * export function App() {
1467
+ * return (
1468
+ * <BrowserRouter>
1469
+ * <Routes
1470
+ * routes={[
1471
+ * {
1472
+ * path: '/',
1473
+ * page: lazy(() => import('./pages/home')),
1474
+ * },
1475
+ * ]}
1476
+ * />
1477
+ * </BrowserRouter>
1478
+ * )
894
1479
  * }
895
1480
  * ```
896
1481
  */
897
1482
  declare function Routes(props: RoutesProps): react_jsx_runtime0.JSX.Element;
898
1483
  //#endregion
899
1484
  //#region src/Tabs.d.ts
1485
+ /**
1486
+ * Tab item accepted by the FaasJS Ant Design {@link Tabs} wrapper.
1487
+ */
900
1488
  interface TabProps extends Partial<Tab> {
1489
+ /** Stable tab identifier used as the default key and label. */
901
1490
  id: string;
1491
+ /** Title used as the default Ant Design tab label. */
902
1492
  title?: React.ReactNode;
1493
+ /** Tab panel content. */
903
1494
  children: React.ReactNode;
904
1495
  }
1496
+ /**
1497
+ * Props for the FaasJS Ant Design {@link Tabs} component.
1498
+ */
905
1499
  interface TabsProps extends Omit<TabsProps$1, 'items'> {
906
- /** auto skip null tab */
1500
+ /** Tab definitions. `null` and `false` entries are skipped automatically. */
907
1501
  items: (TabProps | null | false)[];
908
1502
  }
909
1503
  /**
910
- * Tabs component with Ant Design & FaasJS
1504
+ * Render an Ant Design tabs wrapper that accepts FaasJS-style tab definitions.
1505
+ *
1506
+ * Missing `key` and `label` values are derived from each tab's `id` and `title`.
911
1507
  *
912
- * - Based on [Ant Design Tabs](https://ant.design/components/tabs/).
913
- * - Support auto skip null/false tab item.
914
- * - Support `id` as key and label.
1508
+ * @param {TabsProps} props - Tabs props including tab items and Ant Design tab options.
915
1509
  *
916
1510
  * @example
917
1511
  * ```tsx
918
1512
  * import { Tabs } from '@faasjs/ant-design'
919
1513
  *
920
- * <Tabs
921
- * items={[
922
- * {
923
- * id: 'id',
924
- * children: 'content',
925
- * },
926
- * 1 === 0 && {
927
- * id: 'hidden',
928
- * children: 'content',
929
- * },
930
- * ]}
931
- * />
1514
+ * export function Page() {
1515
+ * return (
1516
+ * <Tabs
1517
+ * items={[
1518
+ * {
1519
+ * id: 'id',
1520
+ * children: 'content',
1521
+ * },
1522
+ * 1 === 0 && {
1523
+ * id: 'hidden',
1524
+ * children: 'content',
1525
+ * },
1526
+ * ]}
1527
+ * />
1528
+ * )
1529
+ * }
932
1530
  * ```
933
1531
  */
934
1532
  declare function Tabs(props: TabsProps): react_jsx_runtime0.JSX.Element;
935
1533
  //#endregion
936
1534
  //#region src/Title.d.ts
1535
+ /**
1536
+ * Props for the document-title helper component.
1537
+ */
937
1538
  interface TitleProps {
1539
+ /** Title text or title segments used to update `document.title`. */
938
1540
  title: string | string[];
939
- /** ` - ` as default */
1541
+ /**
1542
+ * Separator used when joining title segments.
1543
+ *
1544
+ * @default ' - '
1545
+ */
940
1546
  separator?: string;
1547
+ /** Suffix appended to the generated document title. */
941
1548
  suffix?: string;
942
- /** return a h1 element */
1549
+ /** Whether to render an `h1`, or the props used to style that `h1`. */
943
1550
  h1?: boolean | {
944
1551
  className?: string;
945
1552
  style?: React.CSSProperties;
946
1553
  };
947
- /** return a pure text element */
1554
+ /** Whether to render plain text instead of returning `null`. */
948
1555
  plain?: boolean;
949
- /** return children */
1556
+ /** Existing element cloned with a `title` prop. */
950
1557
  children?: JSX.Element;
951
1558
  }
952
1559
  /**
953
- * Title is used to change the title of the page
1560
+ * Update `document.title` and optionally render the title inline.
954
1561
  *
955
- * Return null by default.
1562
+ * The component returns `null` by default and is often used only for its side effect.
956
1563
  *
957
- * ```tsx
958
- * // return null
959
- * <Title title='hi' /> // => change the document.title to 'hi'
960
- * <Title title={['a', 'b']} /> // => change the document.title to 'a - b'
1564
+ * @param {TitleProps} props - Title props controlling document title updates and optional inline rendering.
961
1565
  *
962
- * // return h1
963
- * <Title title='hi' h1 /> // => <h1>hi</h1>
964
- * <Title title={['a', 'b']} h1 /> // => <h1>a</h1>
1566
+ * @example
1567
+ * ```tsx
1568
+ * import { Title } from '@faasjs/ant-design'
965
1569
  *
966
- * // return children
967
- * <Title title='hi'><CustomTitle /></Title> // => <CustomTitle />
1570
+ * export function DetailPage() {
1571
+ * return (
1572
+ * <>
1573
+ * <Title title={['Orders', 'Detail']} h1 />
1574
+ * <div>...</div>
1575
+ * </>
1576
+ * )
1577
+ * }
968
1578
  * ```
969
1579
  */
970
1580
  declare function Title(props: TitleProps): JSX.Element | null;
971
1581
  //#endregion
972
1582
  //#region src/useApp.d.ts
1583
+ /**
1584
+ * Shared app services exposed by {@link AppContext} and {@link useApp}.
1585
+ */
973
1586
  interface useAppProps {
1587
+ /** Ant Design message API instance created by the root `App` component. */
974
1588
  message: MessageInstance;
1589
+ /** Ant Design notification API instance created by the root `App` component. */
975
1590
  notification: NotificationInstance;
1591
+ /** Current props of the hook-managed modal element. */
976
1592
  modalProps: ModalProps;
1593
+ /** Setter that merges updates into the hook-managed modal props. */
977
1594
  setModalProps: setModalProps;
1595
+ /** Current props of the hook-managed drawer element. */
978
1596
  drawerProps: DrawerProps;
1597
+ /** Setter that merges updates into the hook-managed drawer props. */
979
1598
  setDrawerProps: setDrawerProps;
980
1599
  }
1600
+ /**
1601
+ * Shared context storing message, notification, modal, and drawer helpers.
1602
+ */
981
1603
  declare const AppContext: any;
982
1604
  /**
983
- * Get app context.
1605
+ * Read app-level services exposed by the root `App` component.
984
1606
  *
985
- * ```ts
986
- * import { useApp } from '@faasjs/ant-design'
1607
+ * @template NewT - Narrowed app context shape to read from `AppContext`.
1608
+ * @returns Read-only app context value.
1609
+ *
1610
+ * @example
1611
+ * ```tsx
1612
+ * import { App, useApp } from '@faasjs/ant-design'
1613
+ * import { Button } from 'antd'
1614
+ *
1615
+ * function Page() {
1616
+ * const { message, setModalProps } = useApp()
1617
+ *
1618
+ * return (
1619
+ * <Button
1620
+ * onClick={() => {
1621
+ * message.success('Saved')
1622
+ * setModalProps({ open: true, title: 'Done', children: 'Profile updated.' })
1623
+ * }}
1624
+ * >
1625
+ * Save
1626
+ * </Button>
1627
+ * )
1628
+ * }
987
1629
  *
988
- * const { message, notification, setModalProps, setDrawerProps } = useApp()
1630
+ * export function Root() {
1631
+ * return (
1632
+ * <App>
1633
+ * <Page />
1634
+ * </App>
1635
+ * )
1636
+ * }
989
1637
  * ```
990
1638
  */
991
1639
  declare function useApp<NewT extends useAppProps = useAppProps>(this: void): Readonly<NewT>;
992
1640
  //#endregion
993
1641
  //#region src/useThemeToken.d.ts
994
1642
  /**
995
- * Hook to retrieve the theme token from the Ant Design theme configuration.
1643
+ * Read the current Ant Design theme token.
996
1644
  *
997
- * This function uses the `theme.useToken` method to get the current theme configuration
998
- * and returns the `token` property from the configuration.
1645
+ * @returns Ant Design global token object for the active theme.
999
1646
  *
1000
- * @returns {GlobalToken} The theme token from the Ant Design theme configuration.
1647
+ * @example
1648
+ * ```tsx
1649
+ * import { useThemeToken } from '@faasjs/ant-design'
1650
+ *
1651
+ * function PrimarySwatch() {
1652
+ * const { colorPrimary } = useThemeToken()
1653
+ *
1654
+ * return <div style={{ width: 24, height: 24, background: colorPrimary }} />
1655
+ * }
1656
+ * ```
1001
1657
  */
1002
1658
  declare function useThemeToken(): GlobalToken;
1003
1659
  //#endregion
1004
- export { App, AppContext, AppProps, BaseItemProps, BaseOption, Blank, BlankProps, ConfigContext, ConfigProvider, ConfigProviderProps, Description, DescriptionItemContentProps, DescriptionItemProps, DescriptionProps, Drawer, DrawerProps, ErrorBoundary, type ErrorBoundaryProps, ExtendDescriptionItemProps, ExtendDescriptionTypeProps, type ExtendFormItemProps, type ExtendFormTypeProps, ExtendTableItemProps, ExtendTableTypeProps, ExtendTypes, FaasDataInjection, FaasDataWrapper, FaasDataWrapperProps, type FaasDataWrapperRef, FaasItemProps, FaasItemType, FaasItemTypeValue, FaasReactClient, type FaasReactClientOptions, Form, FormItem, FormItemProps, FormProps, FormSubmitProps, Link, LinkProps, Loading, LoadingProps, Modal, ModalProps, PageNotFound, ResolvedTheme, Routes, RoutesProps, TabProps, Table, TableFaasDataParams, TableFaasDataResponse, TableItemProps, TableProps, Tabs, TabsProps, Title, TitleProps, UnionFaasItemElement, UnionFaasItemInjection, UnionFaasItemProps, UnionFaasItemRender, UnionScene, cloneUnionFaasItemElement, faas, idToTitle, lazy, setDrawerProps, setModalProps, transferOptions, transferValue, useApp, useAppProps, useConfigContext, useDrawer, useFaas, useModal, useThemeToken, withFaasData };
1660
+ export { App, AppContext, AppProps, BaseItemProps, BaseOption, Blank, BlankProps, ConfigContext, ConfigProvider, ConfigProviderProps, Description, DescriptionItemContentProps, DescriptionItemProps, DescriptionProps, Drawer, DrawerProps, ErrorBoundary, type ErrorBoundaryProps, ExtendDescriptionItemProps, ExtendDescriptionTypeProps, type ExtendFormItemProps, type ExtendFormTypeProps, ExtendTableItemProps, ExtendTableTypeProps, ExtendTypes, FaasDataInjection, FaasDataWrapper, FaasDataWrapperProps, type FaasDataWrapperRef, FaasItemProps, FaasItemType, FaasItemTypeValue, FaasReactClient, type FaasReactClientOptions, Form, FormFaasProps, FormItem, FormItemProps, FormProps, FormSubmitProps, Link, LinkProps, Loading, LoadingProps, Modal, ModalProps, PageNotFound, ResolvedTheme, Routes, RoutesProps, TabProps, Table, TableFaasDataParams, TableFaasDataResponse, TableItemProps, TableProps, Tabs, TabsProps, Title, TitleProps, UnionFaasItemElement, UnionFaasItemInjection, UnionFaasItemProps, UnionFaasItemRender, UnionScene, cloneUnionFaasItemElement, faas, idToTitle, lazy, setDrawerProps, setModalProps, transferOptions, transferValue, useApp, useAppProps, useConfigContext, useDrawer, useFaas, useModal, useThemeToken, withFaasData };