@godxjp/ui 23.0.0 → 23.2.0
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/app/date-format-labels.d.ts +14 -2
- package/dist/app/date-format-labels.js +1 -1
- package/dist/app/date-formats.d.ts +14 -2
- package/dist/app/date-formats.js +9 -2
- package/dist/components/data-display/card.d.ts +45 -2
- package/dist/components/data-display/card.js +4 -2
- package/dist/components/data-display/data-table.d.ts +8 -1
- package/dist/components/data-display/data-table.js +9 -2
- package/dist/components/data-display/feature-list.d.ts +26 -0
- package/dist/components/data-display/feature-list.js +29 -0
- package/dist/components/data-display/index.d.ts +6 -0
- package/dist/components/data-display/index.js +6 -0
- package/dist/components/data-display/swatch.d.ts +24 -0
- package/dist/components/data-display/swatch.js +19 -0
- package/dist/components/data-display/thumbnail.d.ts +37 -0
- package/dist/components/data-display/thumbnail.js +20 -0
- package/dist/components/data-entry/checkbox.js +1 -1
- package/dist/components/data-entry/form-field.js +2 -2
- package/dist/components/data-entry/input.js +1 -1
- package/dist/components/data-entry/number-input.js +27 -6
- package/dist/components/data-entry/radio.js +1 -1
- package/dist/components/data-entry/switch.js +1 -1
- package/dist/components/feedback/dialog.js +2 -2
- package/dist/components/feedback/index.d.ts +2 -2
- package/dist/components/feedback/index.js +19 -1
- package/dist/components/feedback/sheet.js +2 -22
- package/dist/components/feedback/skeleton.d.ts +33 -3
- package/dist/components/feedback/skeleton.js +154 -3
- package/dist/components/layout/flex.d.ts +1 -1
- package/dist/components/layout/flex.js +17 -5
- package/dist/components/layout/sidebar.js +9 -2
- package/dist/components/navigation/filter-bar.js +2 -1
- package/dist/components/navigation/tabs-scroll.d.ts +27 -0
- package/dist/components/navigation/tabs-scroll.js +36 -1
- package/dist/components/navigation/tabs.d.ts +2 -2
- package/dist/components/navigation/tabs.js +60 -16
- package/dist/i18n/messages/en.json +10 -1
- package/dist/i18n/messages/ja.json +10 -1
- package/dist/i18n/messages/vi.json +10 -1
- package/dist/lib/breakpoint-token.d.ts +8 -0
- package/dist/lib/breakpoint-token.js +29 -0
- package/dist/props/components/data-display.prop.d.ts +101 -1
- package/dist/props/components/feedback.prop.d.ts +85 -1
- package/dist/props/components/layout.prop.d.ts +72 -1
- package/dist/props/components/navigation.prop.d.ts +80 -2
- package/dist/props/registry.d.ts +124 -1
- package/dist/props/registry.js +140 -0
- package/dist/props/vocabulary/data.prop.d.ts +5 -0
- package/dist/props/vocabulary/index.d.ts +1 -1
- package/dist/styles/alert-layout.css +139 -0
- package/dist/styles/card-layout.css +48 -0
- package/dist/styles/control.css +41 -5
- package/dist/styles/data-display-layout.css +88 -0
- package/dist/styles/focus-ring.css +28 -0
- package/dist/styles/form-layout.css +4 -0
- package/dist/styles/layout.css +2 -1
- package/dist/styles/navigation-layout.css +89 -5
- package/dist/styles/shell-layout.css +22 -0
- package/dist/styles/table-layout.css +5 -2
- package/dist/tokens/components/card.css +2 -0
- package/dist/tokens/components/control.css +8 -3
- package/dist/tokens/components/data-display.css +23 -0
- package/dist/tokens/components/feedback.css +18 -0
- package/dist/tokens/components/navigation.css +4 -0
- package/dist/tokens/foundation.css +18 -16
- package/docs/CONSUMER-RULES.md +8 -3
- package/docs/CUSTOMER-THEMING.md +18 -8
- package/docs/DATETIME.md +11 -2
- package/docs/DESIGN-AUTHORITY.md +2 -1
- package/docs/FRAME-COVERAGE-REPORT.md +29 -3
- package/docs/SPACING.md +35 -5
- package/docs/TOKENS.md +1 -1
- package/docs/assets/shot-landscape.svg +12 -0
- package/docs/assets/shot-portrait.svg +10 -0
- package/docs/data-display/card/index.tsx +40 -0
- package/docs/data-display/data-table/index.tsx +17 -2
- package/docs/data-display/feature-list.tsx +159 -0
- package/docs/data-display/swatch.tsx +107 -0
- package/docs/data-display/table.tsx +1 -1
- package/docs/data-display/thumbnail.tsx +128 -0
- package/docs/data-entry/segmented-in-filter-row.tsx +77 -0
- package/docs/feedback/skeleton.tsx +57 -0
- package/docs/layout/flex.tsx +29 -0
- package/docs/layout/sidebar.tsx +66 -10
- package/docs/navigation/dropdown-menu.tsx +4 -4
- package/docs/navigation/tabs.tsx +131 -0
- package/docs/roadmap/ai-chat-components.md +1 -2
- package/docs/roadmap/tree-components.md +0 -1
- package/package.json +12 -21
- package/scripts/_agent-setup.mjs +18 -0
- package/scripts/consumer-rule.md +16 -0
- package/scripts/guinea-pig-skill.md +12 -6
- package/scripts/ui-audit.mjs +184 -7
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** Navigation component prop types — @see docs/COMPONENTS.md#navigation */
|
|
2
2
|
import type * as React from "react";
|
|
3
|
-
import type { ActionsProp, ChildrenProp, ClassNameProp, DisabledProp, ErrorProp, HasActiveFiltersProp, IdProp, LabelProp, OnClearFiltersProp, PendingProp, PlaceholderProp, StickyProp } from "../vocabulary/index.js";
|
|
3
|
+
import type { ActionsProp, ChildrenProp, ClassNameProp, DisabledProp, ErrorProp, HasActiveFiltersProp, IdProp, LabelProp, OnClearFiltersProp, PendingProp, PlaceholderProp, StickyProp, TextAlignProp } from "../vocabulary/index.js";
|
|
4
4
|
import type { SearchSelectOptionProp } from "./data-entry.prop.js";
|
|
5
5
|
/**
|
|
6
6
|
* `wrap` (default) stacks on narrow viewports then wraps onto extra rows; `scroll` keeps ONE
|
|
@@ -330,6 +330,60 @@ export type TabsOverflowProp = "scroll" | "menu";
|
|
|
330
330
|
* so an inline `(value, event) => void` leaks its second PARAMETER as a phantom prop.
|
|
331
331
|
*/
|
|
332
332
|
export type TabsOnTabClickProp = (value: string, event: React.MouseEvent<HTMLButtonElement>) => void;
|
|
333
|
+
/**
|
|
334
|
+
* @see Tabs — Ant Design `animated`, same shape and same two switches.
|
|
335
|
+
*
|
|
336
|
+
* `inkBar` (default ON) is the `line` variant's active bar cross-fading between triggers.
|
|
337
|
+
* `tabPane` (default OFF, as in antd) fades the panel in when the selection moves.
|
|
338
|
+
*
|
|
339
|
+
* WHERE IT DIVERGES, and why: antd animates the PANE by laying every pane on one translated
|
|
340
|
+
* inline track and sliding it, which needs all of them mounted. This component destroys a hidden
|
|
341
|
+
* panel by default (`destroyOnHidden` — the opposite default from antd), so there is no track to
|
|
342
|
+
* slide; the pane animation is a token-owned fade-in on the panel that just became active
|
|
343
|
+
* (`--tabs-pane-motion-*`). The SWITCH is antd's, the motion is this library's, and both switches
|
|
344
|
+
* are additionally off under `prefers-reduced-motion` — which antd's is not.
|
|
345
|
+
*/
|
|
346
|
+
export type TabsAnimatedProp = boolean | {
|
|
347
|
+
inkBar?: boolean;
|
|
348
|
+
tabPane?: boolean;
|
|
349
|
+
};
|
|
350
|
+
/**
|
|
351
|
+
* @see Tabs — Ant Design `indicator.size`, held to a NAMED axis instead of a pixel length.
|
|
352
|
+
*
|
|
353
|
+
* antd takes `number | (origin: number) => number` — a measured px length, or a function of the
|
|
354
|
+
* tab's own width. Neither can enter this library: a literal is what `no-arbitrary-spacing`
|
|
355
|
+
* exists to stop, and a function of the measured origin is the free-form escape hatch
|
|
356
|
+
* `docs/DESIGN-AUTHORITY.md` refuses by name. The two lengths that answer the actual request are
|
|
357
|
+
* named instead — `full` (the whole trigger, today's bar and the default) and `label` (the
|
|
358
|
+
* trigger's content box, i.e. minus its own inline padding), which is what
|
|
359
|
+
* `size: (origin) => origin - 2 * padding` is written to produce.
|
|
360
|
+
*/
|
|
361
|
+
export type TabsIndicatorSizeProp = "full" | "label";
|
|
362
|
+
/**
|
|
363
|
+
* @see Tabs — Ant Design `indicator`. `align` keeps antd's own name AND its values, which are
|
|
364
|
+
* already logical, so it reads the shared `TextAlignProp` vocabulary rather than a second
|
|
365
|
+
* spelling of the same axis. It only has anything to place when `size` is shorter than the
|
|
366
|
+
* trigger, exactly as in antd.
|
|
367
|
+
*/
|
|
368
|
+
export type TabsIndicatorProp = {
|
|
369
|
+
size?: TabsIndicatorSizeProp;
|
|
370
|
+
align?: TextAlignProp;
|
|
371
|
+
};
|
|
372
|
+
/**
|
|
373
|
+
* @see Tabs — the edge a scroll of the trigger strip moved TOWARDS, on the logical axis.
|
|
374
|
+
*
|
|
375
|
+
* antd reports `left | right | top | bottom`; those four cannot mirror for an RTL locale and two
|
|
376
|
+
* of them are just the other axis of the same event. `start`/`end` say the same thing on whichever
|
|
377
|
+
* axis the strip is on — the same override that makes `tabPlacement` logical.
|
|
378
|
+
*/
|
|
379
|
+
export type TabsScrollDirectionProp = "start" | "end";
|
|
380
|
+
/**
|
|
381
|
+
* @see Tabs — Ant Design `onTabScroll`. A NAMED alias for the same reason as `TabsOnEditProp`.
|
|
382
|
+
* Only fires for the `items` API, which is the path that owns the strip element.
|
|
383
|
+
*/
|
|
384
|
+
export type TabsOnScrollProp = (info: {
|
|
385
|
+
direction: TabsScrollDirectionProp;
|
|
386
|
+
}) => void;
|
|
333
387
|
/** @see Tabs — high-level tabs with optional `items` array. */
|
|
334
388
|
export type TabsProp = {
|
|
335
389
|
items?: TabItemProp[];
|
|
@@ -337,7 +391,14 @@ export type TabsProp = {
|
|
|
337
391
|
defaultValue?: string;
|
|
338
392
|
onValueChange?: (value: string) => void;
|
|
339
393
|
variant?: TabsVariantProp;
|
|
340
|
-
/**
|
|
394
|
+
/**
|
|
395
|
+
* Ant Design `tabPlacement`. Default `top`.
|
|
396
|
+
*
|
|
397
|
+
* `start`/`end` FOLD to `top`/`bottom` at or below
|
|
398
|
+
* `--tabs-placement-responsive-breakpoint-width` (48rem), arrow keys included — a vertical strip
|
|
399
|
+
* shares one inline axis with its panel and a phone has no room for both. Ant Design folds the
|
|
400
|
+
* same pair the same way. Set the token to `0px` to keep the strip vertical at every width.
|
|
401
|
+
*/
|
|
341
402
|
tabPlacement?: TabsPlacementProp;
|
|
342
403
|
/** Control tier of the triggers. Default `md`. Ant Design `size` (`small`/`middle`/`large`). */
|
|
343
404
|
size?: "sm" | "md" | "lg";
|
|
@@ -384,6 +445,23 @@ export type TabsProp = {
|
|
|
384
445
|
* "click" would be a fiction. Use `onValueChange` for selection, whatever moved it.
|
|
385
446
|
*/
|
|
386
447
|
onTabClick?: TabsOnTabClickProp;
|
|
448
|
+
/**
|
|
449
|
+
* Ant Design `animated`. Default `{ inkBar: true, tabPane: false }` — antd's own default, and
|
|
450
|
+
* byte for byte what this strip already painted. @see TabsAnimatedProp
|
|
451
|
+
*/
|
|
452
|
+
animated?: TabsAnimatedProp;
|
|
453
|
+
/**
|
|
454
|
+
* Ant Design `indicator`. Governs the `line` variant's active bar only — the other variants
|
|
455
|
+
* have no bar to place. @see TabsIndicatorProp
|
|
456
|
+
*/
|
|
457
|
+
indicator?: TabsIndicatorProp;
|
|
458
|
+
/**
|
|
459
|
+
* Ant Design `more.icon` — the glyph on the `overflow="menu"` button, flat here for the same
|
|
460
|
+
* reason `addIcon` and `closeIcon` are flat: `overflow` names the BEHAVIOUR, the icon is a slot.
|
|
461
|
+
*/
|
|
462
|
+
moreIcon?: React.ReactNode;
|
|
463
|
+
/** Ant Design `onTabScroll`, on the logical axis. @see TabsOnScrollProp */
|
|
464
|
+
onTabScroll?: TabsOnScrollProp;
|
|
387
465
|
className?: ClassNameProp;
|
|
388
466
|
listClassName?: ClassNameProp;
|
|
389
467
|
contentClassName?: ClassNameProp;
|
package/dist/props/registry.d.ts
CHANGED
|
@@ -584,6 +584,11 @@ export declare const VOCABULARY_REGISTRY: {
|
|
|
584
584
|
readonly category: "data";
|
|
585
585
|
readonly description: "Row ID extractor generic";
|
|
586
586
|
};
|
|
587
|
+
readonly GetRowLabelProp: {
|
|
588
|
+
readonly file: "vocabulary/data.prop.ts";
|
|
589
|
+
readonly category: "data";
|
|
590
|
+
readonly description: "Row label extractor generic — the accessible name of a row's selection control";
|
|
591
|
+
};
|
|
587
592
|
readonly OnRowClickProp: {
|
|
588
593
|
readonly file: "vocabulary/data.prop.ts";
|
|
589
594
|
readonly category: "data";
|
|
@@ -1533,7 +1538,7 @@ export declare const COMPONENT_PROP_REGISTRY: {
|
|
|
1533
1538
|
readonly DataTableProp: {
|
|
1534
1539
|
readonly group: "data-display";
|
|
1535
1540
|
readonly file: "components/data-display.prop.ts";
|
|
1536
|
-
readonly vocabulary: readonly ["ColumnDefProp", "DensityProp", "SortStateProp", "SelectedIdsProp", "HandlerProp", "TablePresetProp", "TableColumnPriorityProp", "BreakpointProp", "ColumnFixedProp", "ColumnFilterItemProp", "ColumnFilterStateProp", "ColumnSorterProp", "TableRowSelectionProp", "TableExpandableProp", "TableSummaryProp", "TableScrollProp", "TableStickyProp", "OnRowProp", "TablePaginationProp", "SortDirectionProp", "OnColumnFilterChangeProp"];
|
|
1541
|
+
readonly vocabulary: readonly ["ColumnDefProp", "DensityProp", "SortStateProp", "SelectedIdsProp", "GetRowLabelProp", "HandlerProp", "TablePresetProp", "TableColumnPriorityProp", "BreakpointProp", "ColumnFixedProp", "ColumnFilterItemProp", "ColumnFilterStateProp", "ColumnSorterProp", "TableRowSelectionProp", "TableExpandableProp", "TableSummaryProp", "TableScrollProp", "TableStickyProp", "OnRowProp", "TablePaginationProp", "SortDirectionProp", "OnColumnFilterChangeProp"];
|
|
1537
1542
|
};
|
|
1538
1543
|
readonly ListRowDensityProp: {
|
|
1539
1544
|
readonly group: "data-display";
|
|
@@ -1935,6 +1940,45 @@ export declare const COMPONENT_PROP_REGISTRY: {
|
|
|
1935
1940
|
readonly file: "components/feedback.prop.ts";
|
|
1936
1941
|
readonly vocabulary: readonly [];
|
|
1937
1942
|
};
|
|
1943
|
+
readonly SkeletonProp: {
|
|
1944
|
+
readonly group: "feedback";
|
|
1945
|
+
readonly file: "components/feedback.prop.ts";
|
|
1946
|
+
readonly vocabulary: readonly ["ClassNameProp", "ChildrenProp"];
|
|
1947
|
+
};
|
|
1948
|
+
readonly SkeletonAvatarProp: {
|
|
1949
|
+
readonly group: "feedback";
|
|
1950
|
+
readonly file: "components/feedback.prop.ts";
|
|
1951
|
+
readonly vocabulary: readonly ["SizeProp", "ClassNameProp"];
|
|
1952
|
+
};
|
|
1953
|
+
readonly SkeletonButtonProp: {
|
|
1954
|
+
readonly group: "feedback";
|
|
1955
|
+
readonly file: "components/feedback.prop.ts";
|
|
1956
|
+
readonly vocabulary: readonly ["SizeProp", "ShapeProp", "ClassNameProp"];
|
|
1957
|
+
};
|
|
1958
|
+
readonly SkeletonInputProp: {
|
|
1959
|
+
readonly group: "feedback";
|
|
1960
|
+
readonly file: "components/feedback.prop.ts";
|
|
1961
|
+
readonly vocabulary: readonly ["SizeProp", "ClassNameProp"];
|
|
1962
|
+
};
|
|
1963
|
+
readonly SkeletonNodeProp: {
|
|
1964
|
+
readonly group: "feedback";
|
|
1965
|
+
readonly file: "components/feedback.prop.ts";
|
|
1966
|
+
readonly vocabulary: readonly ["ChildrenProp", "ClassNameProp"];
|
|
1967
|
+
};
|
|
1968
|
+
readonly SkeletonImageProp: {
|
|
1969
|
+
readonly group: "feedback";
|
|
1970
|
+
readonly file: "components/feedback.prop.ts";
|
|
1971
|
+
readonly vocabulary: readonly ["ClassNameProp"];
|
|
1972
|
+
};
|
|
1973
|
+
readonly SkeletonArticleProp: {
|
|
1974
|
+
readonly group: "feedback";
|
|
1975
|
+
readonly file: "components/feedback.prop.ts";
|
|
1976
|
+
readonly vocabulary: readonly ["ChildrenProp", "ClassNameProp", {
|
|
1977
|
+
readonly field: "title";
|
|
1978
|
+
readonly local: true;
|
|
1979
|
+
readonly reason: "antd's Skeleton `title` is the presence/measure of the HEADING LINE, not the string TitleProp names — `false` drops the line and `{ width }` re-measures it.";
|
|
1980
|
+
}];
|
|
1981
|
+
};
|
|
1938
1982
|
readonly ToolbarProp: {
|
|
1939
1983
|
readonly group: "navigation";
|
|
1940
1984
|
readonly file: "components/navigation.prop.ts";
|
|
@@ -2075,6 +2119,35 @@ export declare const COMPONENT_PROP_REGISTRY: {
|
|
|
2075
2119
|
readonly file: "components/navigation.prop.ts";
|
|
2076
2120
|
readonly vocabulary: readonly [];
|
|
2077
2121
|
};
|
|
2122
|
+
readonly TabsAnimatedProp: {
|
|
2123
|
+
readonly group: "navigation";
|
|
2124
|
+
readonly file: "components/navigation.prop.ts";
|
|
2125
|
+
readonly vocabulary: readonly [];
|
|
2126
|
+
};
|
|
2127
|
+
readonly TabsIndicatorSizeProp: {
|
|
2128
|
+
readonly group: "navigation";
|
|
2129
|
+
readonly file: "components/navigation.prop.ts";
|
|
2130
|
+
readonly vocabulary: readonly [];
|
|
2131
|
+
};
|
|
2132
|
+
readonly TabsIndicatorProp: {
|
|
2133
|
+
readonly group: "navigation";
|
|
2134
|
+
readonly file: "components/navigation.prop.ts";
|
|
2135
|
+
readonly vocabulary: readonly ["TextAlignProp", {
|
|
2136
|
+
readonly field: "size";
|
|
2137
|
+
readonly local: true;
|
|
2138
|
+
readonly reason: "The LENGTH of the active bar along the strip (Ant Design `indicator.size`), not a control tier — `SizeProp` is the sm/md/lg band and reusing it here would say something false. Values stay a closed named axis (`full` | `label`) so no pixel length or origin-function enters the API.";
|
|
2139
|
+
}];
|
|
2140
|
+
};
|
|
2141
|
+
readonly TabsScrollDirectionProp: {
|
|
2142
|
+
readonly group: "navigation";
|
|
2143
|
+
readonly file: "components/navigation.prop.ts";
|
|
2144
|
+
readonly vocabulary: readonly [];
|
|
2145
|
+
};
|
|
2146
|
+
readonly TabsOnScrollProp: {
|
|
2147
|
+
readonly group: "navigation";
|
|
2148
|
+
readonly file: "components/navigation.prop.ts";
|
|
2149
|
+
readonly vocabulary: readonly ["HandlerProp"];
|
|
2150
|
+
};
|
|
2078
2151
|
readonly TabItemProp: {
|
|
2079
2152
|
readonly group: "navigation";
|
|
2080
2153
|
readonly file: "components/navigation.prop.ts";
|
|
@@ -2197,6 +2270,56 @@ export declare const COMPONENT_PROP_REGISTRY: {
|
|
|
2197
2270
|
readonly file: "components/data-display.prop.ts";
|
|
2198
2271
|
readonly vocabulary: readonly ["ClassNameProp"];
|
|
2199
2272
|
};
|
|
2273
|
+
readonly SwatchProp: {
|
|
2274
|
+
readonly group: "data-display";
|
|
2275
|
+
readonly file: "components/data-display.prop.ts";
|
|
2276
|
+
readonly vocabulary: readonly ["ClassNameProp", {
|
|
2277
|
+
readonly field: "color";
|
|
2278
|
+
readonly local: true;
|
|
2279
|
+
readonly reason: "A CSS colour VALUE a person chose (a brand's primary_color, a tag tint) — DATA, the same axis as Badge's `color`, and deliberately not ToneProp: a tone is a closed set of meanings and this colour means only itself (gh#527).";
|
|
2280
|
+
}, {
|
|
2281
|
+
readonly field: "aria-label";
|
|
2282
|
+
readonly local: true;
|
|
2283
|
+
readonly reason: "The sample's accessible NAME, which is what lets a read-only colour be shown with no visible label. Absent, the mark is aria-hidden (Legend's rule) — so colour is never the sole carrier either way.";
|
|
2284
|
+
}];
|
|
2285
|
+
};
|
|
2286
|
+
readonly FeatureStateProp: {
|
|
2287
|
+
readonly group: "data-display";
|
|
2288
|
+
readonly file: "components/data-display.prop.ts";
|
|
2289
|
+
readonly vocabulary: readonly [];
|
|
2290
|
+
};
|
|
2291
|
+
readonly FeatureItemProp: {
|
|
2292
|
+
readonly group: "data-display";
|
|
2293
|
+
readonly file: "components/data-display.prop.ts";
|
|
2294
|
+
readonly vocabulary: readonly ["LabelProp", "DescriptionProp", {
|
|
2295
|
+
readonly field: "state";
|
|
2296
|
+
readonly local: true;
|
|
2297
|
+
readonly reason: "Inclusion axis (included/excluded/limited) — FeatureList's own, not a tone.";
|
|
2298
|
+
}];
|
|
2299
|
+
};
|
|
2300
|
+
readonly FeatureListProp: {
|
|
2301
|
+
readonly group: "data-display";
|
|
2302
|
+
readonly file: "components/data-display.prop.ts";
|
|
2303
|
+
readonly vocabulary: readonly ["ClassNameProp"];
|
|
2304
|
+
};
|
|
2305
|
+
readonly ThumbnailSizeProp: {
|
|
2306
|
+
readonly group: "data-display";
|
|
2307
|
+
readonly file: "components/data-display.prop.ts";
|
|
2308
|
+
readonly vocabulary: readonly ["SizeProp"];
|
|
2309
|
+
};
|
|
2310
|
+
readonly ThumbnailProp: {
|
|
2311
|
+
readonly group: "data-display";
|
|
2312
|
+
readonly file: "components/data-display.prop.ts";
|
|
2313
|
+
readonly vocabulary: readonly ["SizeProp", "ClassNameProp", {
|
|
2314
|
+
readonly field: "alt";
|
|
2315
|
+
readonly local: true;
|
|
2316
|
+
readonly reason: "The native img alt contract, made required so it cannot be forgotten.";
|
|
2317
|
+
}, {
|
|
2318
|
+
readonly field: "src";
|
|
2319
|
+
readonly local: true;
|
|
2320
|
+
readonly reason: "The native img src attribute.";
|
|
2321
|
+
}];
|
|
2322
|
+
};
|
|
2200
2323
|
readonly CodeBlockProp: {
|
|
2201
2324
|
readonly group: "data-display";
|
|
2202
2325
|
readonly file: "components/data-display.prop.ts";
|
package/dist/props/registry.js
CHANGED
|
@@ -585,6 +585,11 @@ const VOCABULARY_REGISTRY = {
|
|
|
585
585
|
category: "data",
|
|
586
586
|
description: "Row ID extractor generic"
|
|
587
587
|
},
|
|
588
|
+
GetRowLabelProp: {
|
|
589
|
+
file: "vocabulary/data.prop.ts",
|
|
590
|
+
category: "data",
|
|
591
|
+
description: "Row label extractor generic \u2014 the accessible name of a row's selection control"
|
|
592
|
+
},
|
|
588
593
|
OnRowClickProp: {
|
|
589
594
|
file: "vocabulary/data.prop.ts",
|
|
590
595
|
category: "data",
|
|
@@ -1833,6 +1838,7 @@ const COMPONENT_PROP_REGISTRY = {
|
|
|
1833
1838
|
"DensityProp",
|
|
1834
1839
|
"SortStateProp",
|
|
1835
1840
|
"SelectedIdsProp",
|
|
1841
|
+
"GetRowLabelProp",
|
|
1836
1842
|
"HandlerProp",
|
|
1837
1843
|
"TablePresetProp",
|
|
1838
1844
|
"TableColumnPriorityProp",
|
|
@@ -2233,6 +2239,49 @@ const COMPONENT_PROP_REGISTRY = {
|
|
|
2233
2239
|
},
|
|
2234
2240
|
SheetResponsiveProp: { group: "feedback", file: "components/feedback.prop.ts", vocabulary: [] },
|
|
2235
2241
|
SkeletonRowsProp: { group: "feedback", file: "components/feedback.prop.ts", vocabulary: [] },
|
|
2242
|
+
SkeletonProp: {
|
|
2243
|
+
group: "feedback",
|
|
2244
|
+
file: "components/feedback.prop.ts",
|
|
2245
|
+
vocabulary: ["ClassNameProp", "ChildrenProp"]
|
|
2246
|
+
},
|
|
2247
|
+
SkeletonAvatarProp: {
|
|
2248
|
+
group: "feedback",
|
|
2249
|
+
file: "components/feedback.prop.ts",
|
|
2250
|
+
vocabulary: ["SizeProp", "ClassNameProp"]
|
|
2251
|
+
},
|
|
2252
|
+
SkeletonButtonProp: {
|
|
2253
|
+
group: "feedback",
|
|
2254
|
+
file: "components/feedback.prop.ts",
|
|
2255
|
+
vocabulary: ["SizeProp", "ShapeProp", "ClassNameProp"]
|
|
2256
|
+
},
|
|
2257
|
+
SkeletonInputProp: {
|
|
2258
|
+
group: "feedback",
|
|
2259
|
+
file: "components/feedback.prop.ts",
|
|
2260
|
+
vocabulary: ["SizeProp", "ClassNameProp"]
|
|
2261
|
+
},
|
|
2262
|
+
SkeletonNodeProp: {
|
|
2263
|
+
group: "feedback",
|
|
2264
|
+
file: "components/feedback.prop.ts",
|
|
2265
|
+
vocabulary: ["ChildrenProp", "ClassNameProp"]
|
|
2266
|
+
},
|
|
2267
|
+
SkeletonImageProp: {
|
|
2268
|
+
group: "feedback",
|
|
2269
|
+
file: "components/feedback.prop.ts",
|
|
2270
|
+
vocabulary: ["ClassNameProp"]
|
|
2271
|
+
},
|
|
2272
|
+
SkeletonArticleProp: {
|
|
2273
|
+
group: "feedback",
|
|
2274
|
+
file: "components/feedback.prop.ts",
|
|
2275
|
+
vocabulary: [
|
|
2276
|
+
"ChildrenProp",
|
|
2277
|
+
"ClassNameProp",
|
|
2278
|
+
{
|
|
2279
|
+
field: "title",
|
|
2280
|
+
local: true,
|
|
2281
|
+
reason: "antd's Skeleton `title` is the presence/measure of the HEADING LINE, not the string TitleProp names \u2014 `false` drops the line and `{ width }` re-measures it."
|
|
2282
|
+
}
|
|
2283
|
+
]
|
|
2284
|
+
},
|
|
2236
2285
|
ToolbarProp: {
|
|
2237
2286
|
group: "navigation",
|
|
2238
2287
|
file: "components/navigation.prop.ts",
|
|
@@ -2386,6 +2435,38 @@ const COMPONENT_PROP_REGISTRY = {
|
|
|
2386
2435
|
file: "components/navigation.prop.ts",
|
|
2387
2436
|
vocabulary: []
|
|
2388
2437
|
},
|
|
2438
|
+
TabsAnimatedProp: {
|
|
2439
|
+
group: "navigation",
|
|
2440
|
+
file: "components/navigation.prop.ts",
|
|
2441
|
+
vocabulary: []
|
|
2442
|
+
},
|
|
2443
|
+
TabsIndicatorSizeProp: {
|
|
2444
|
+
group: "navigation",
|
|
2445
|
+
file: "components/navigation.prop.ts",
|
|
2446
|
+
vocabulary: []
|
|
2447
|
+
},
|
|
2448
|
+
TabsIndicatorProp: {
|
|
2449
|
+
group: "navigation",
|
|
2450
|
+
file: "components/navigation.prop.ts",
|
|
2451
|
+
vocabulary: [
|
|
2452
|
+
"TextAlignProp",
|
|
2453
|
+
{
|
|
2454
|
+
field: "size",
|
|
2455
|
+
local: true,
|
|
2456
|
+
reason: "The LENGTH of the active bar along the strip (Ant Design `indicator.size`), not a control tier \u2014 `SizeProp` is the sm/md/lg band and reusing it here would say something false. Values stay a closed named axis (`full` | `label`) so no pixel length or origin-function enters the API."
|
|
2457
|
+
}
|
|
2458
|
+
]
|
|
2459
|
+
},
|
|
2460
|
+
TabsScrollDirectionProp: {
|
|
2461
|
+
group: "navigation",
|
|
2462
|
+
file: "components/navigation.prop.ts",
|
|
2463
|
+
vocabulary: []
|
|
2464
|
+
},
|
|
2465
|
+
TabsOnScrollProp: {
|
|
2466
|
+
group: "navigation",
|
|
2467
|
+
file: "components/navigation.prop.ts",
|
|
2468
|
+
vocabulary: ["HandlerProp"]
|
|
2469
|
+
},
|
|
2389
2470
|
TabItemProp: {
|
|
2390
2471
|
group: "navigation",
|
|
2391
2472
|
file: "components/navigation.prop.ts",
|
|
@@ -2538,6 +2619,65 @@ const COMPONENT_PROP_REGISTRY = {
|
|
|
2538
2619
|
file: "components/data-display.prop.ts",
|
|
2539
2620
|
vocabulary: ["ClassNameProp"]
|
|
2540
2621
|
},
|
|
2622
|
+
SwatchProp: {
|
|
2623
|
+
group: "data-display",
|
|
2624
|
+
file: "components/data-display.prop.ts",
|
|
2625
|
+
vocabulary: [
|
|
2626
|
+
"ClassNameProp",
|
|
2627
|
+
{
|
|
2628
|
+
field: "color",
|
|
2629
|
+
local: true,
|
|
2630
|
+
reason: "A CSS colour VALUE a person chose (a brand's primary_color, a tag tint) \u2014 DATA, the same axis as Badge's `color`, and deliberately not ToneProp: a tone is a closed set of meanings and this colour means only itself (gh#527)."
|
|
2631
|
+
},
|
|
2632
|
+
{
|
|
2633
|
+
field: "aria-label",
|
|
2634
|
+
local: true,
|
|
2635
|
+
reason: "The sample's accessible NAME, which is what lets a read-only colour be shown with no visible label. Absent, the mark is aria-hidden (Legend's rule) \u2014 so colour is never the sole carrier either way."
|
|
2636
|
+
}
|
|
2637
|
+
]
|
|
2638
|
+
},
|
|
2639
|
+
FeatureStateProp: {
|
|
2640
|
+
group: "data-display",
|
|
2641
|
+
file: "components/data-display.prop.ts",
|
|
2642
|
+
vocabulary: []
|
|
2643
|
+
},
|
|
2644
|
+
FeatureItemProp: {
|
|
2645
|
+
group: "data-display",
|
|
2646
|
+
file: "components/data-display.prop.ts",
|
|
2647
|
+
vocabulary: [
|
|
2648
|
+
"LabelProp",
|
|
2649
|
+
"DescriptionProp",
|
|
2650
|
+
{
|
|
2651
|
+
field: "state",
|
|
2652
|
+
local: true,
|
|
2653
|
+
reason: "Inclusion axis (included/excluded/limited) \u2014 FeatureList's own, not a tone."
|
|
2654
|
+
}
|
|
2655
|
+
]
|
|
2656
|
+
},
|
|
2657
|
+
FeatureListProp: {
|
|
2658
|
+
group: "data-display",
|
|
2659
|
+
file: "components/data-display.prop.ts",
|
|
2660
|
+
vocabulary: ["ClassNameProp"]
|
|
2661
|
+
},
|
|
2662
|
+
ThumbnailSizeProp: {
|
|
2663
|
+
group: "data-display",
|
|
2664
|
+
file: "components/data-display.prop.ts",
|
|
2665
|
+
vocabulary: ["SizeProp"]
|
|
2666
|
+
},
|
|
2667
|
+
ThumbnailProp: {
|
|
2668
|
+
group: "data-display",
|
|
2669
|
+
file: "components/data-display.prop.ts",
|
|
2670
|
+
vocabulary: [
|
|
2671
|
+
"SizeProp",
|
|
2672
|
+
"ClassNameProp",
|
|
2673
|
+
{
|
|
2674
|
+
field: "alt",
|
|
2675
|
+
local: true,
|
|
2676
|
+
reason: "The native img alt contract, made required so it cannot be forgotten."
|
|
2677
|
+
},
|
|
2678
|
+
{ field: "src", local: true, reason: "The native img src attribute." }
|
|
2679
|
+
]
|
|
2680
|
+
},
|
|
2541
2681
|
CodeBlockProp: {
|
|
2542
2682
|
group: "data-display",
|
|
2543
2683
|
file: "components/data-display.prop.ts",
|
|
@@ -7,6 +7,11 @@ import type { BreakpointProp, ColumnAlignProp, SortDirectionProp } from "./inter
|
|
|
7
7
|
import type { TableDensityProp } from "./layout.prop.js";
|
|
8
8
|
/** Generic row identifier extractor for tables with selection. */
|
|
9
9
|
export type GetRowIdProp<T> = (row: T) => string;
|
|
10
|
+
/**
|
|
11
|
+
* Human-readable row name — what a row's selection control is announced as. The row id is a KEY,
|
|
12
|
+
* not a name: announced, it reads a UUID aloud.
|
|
13
|
+
*/
|
|
14
|
+
export type GetRowLabelProp<T> = (row: T) => string;
|
|
10
15
|
/** Row click navigation handler. */
|
|
11
16
|
export type OnRowClickProp<T> = (row: T) => void;
|
|
12
17
|
/** Column definition for DataTable. */
|
|
@@ -4,4 +4,4 @@ export type { TitleProp, SubtitleProp, StatusProp, DescriptionProp, ExtraProp, F
|
|
|
4
4
|
export type { PageDensityProp, PageContainerVariantProp, CenteredShellWidthProp, CenteredShellAlignProp, CenteredShellPresetProp, ErrorSurfaceModeProp, ErrorSurfaceStatusProp, AuthShellPresetProp, MobileShellHeightProp, MobileShellWidthProp, OrientationProp, TableDensityProp, DensityProp, GapNameProp, PadProp, PadRawProp, PadSides, GapProp, GapStepProp, } from "./layout.prop.js";
|
|
5
5
|
export type { ButtonVariantProp, ButtonSizeProp, BadgeVariantProp, AppSettingPickerAppearanceProp, AppSettingToggleAppearanceProp, ShapeProp, AvatarShapeProp, TextSizeProp, TextToneProp, FontWeightProp, HeadingLevelProp, TextAlignProp, TextWhitespaceProp, SizeProp, ControlStatusProp, ControlVariantProp, FormLayoutProp, DescriptionsLayoutProp, BreakpointProp, ConfirmVariantProp, ToneProp, AlertVariantProp, SortDirectionProp, ColumnAlignProp, SortStateProp, RevealDelayProp, ActivityVariantProp, ActivityAnnounceProp, } from "./interaction.prop.js";
|
|
6
6
|
export type { BreadcrumbItemProp, BreadcrumbProp, BreadcrumbItemMenuProp, BreadcrumbItemMenuEntryProp, BreadcrumbSeparatorProp, BreadcrumbItemRenderProp, } from "./navigation.prop.js";
|
|
7
|
-
export type { GetRowIdProp, OnRowClickProp, ColumnDefProp, TablePresetProp, TableColumnPriorityProp, TableCellIndentProp, SelectedIdsProp, OnSelectChangeProp, OnTableDensityChangeProp, TableRowToneProp, RowToneProp, OnSortChangeProp, OnSearchChangeProp, OnClearFiltersProp, HasActiveFiltersProp, StickyProp, ColumnFixedProp, ColumnFilterValueProp, ColumnFilterItemProp, ColumnFilterStateProp, OnColumnFilterChangeProp, ColumnCompareProp, ColumnSorterProp, TableSelectionItemProp, TableRowSelectionProp, TableExpandableProp, TableSummaryProp, TableScrollProp, TableStickyProp, OnRowProp, TablePaginationProp, DescriptionsColumnProp, DescriptionsSpanProp, DescriptionsItemsProp, } from "./data.prop.js";
|
|
7
|
+
export type { GetRowIdProp, GetRowLabelProp, OnRowClickProp, ColumnDefProp, TablePresetProp, TableColumnPriorityProp, TableCellIndentProp, SelectedIdsProp, OnSelectChangeProp, OnTableDensityChangeProp, TableRowToneProp, RowToneProp, OnSortChangeProp, OnSearchChangeProp, OnClearFiltersProp, HasActiveFiltersProp, StickyProp, ColumnFixedProp, ColumnFilterValueProp, ColumnFilterItemProp, ColumnFilterStateProp, OnColumnFilterChangeProp, ColumnCompareProp, ColumnSorterProp, TableSelectionItemProp, TableRowSelectionProp, TableExpandableProp, TableSummaryProp, TableScrollProp, TableStickyProp, OnRowProp, TablePaginationProp, DescriptionsColumnProp, DescriptionsSpanProp, DescriptionsItemsProp, } from "./data.prop.js";
|
|
@@ -288,6 +288,145 @@
|
|
|
288
288
|
}
|
|
289
289
|
}
|
|
290
290
|
|
|
291
|
+
.ui-skeleton-block[data-active],
|
|
292
|
+
.ui-skeleton-article[data-active] .ui-skeleton-block {
|
|
293
|
+
background-image: var(
|
|
294
|
+
--skeleton-sweep-gradient,
|
|
295
|
+
linear-gradient(90deg, hsl(var(--muted)) 25%, hsl(var(--border)) 37%, hsl(var(--muted)) 63%)
|
|
296
|
+
);
|
|
297
|
+
background-size: 400% 100%;
|
|
298
|
+
|
|
299
|
+
animation: ui-skeleton-sweep var(--duration-loop, 1400ms) ease infinite;
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
@keyframes ui-skeleton-sweep {
|
|
303
|
+
from {
|
|
304
|
+
background-position: 100% 50%;
|
|
305
|
+
}
|
|
306
|
+
to {
|
|
307
|
+
background-position: 0 50%;
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
@media (prefers-reduced-motion: reduce) {
|
|
312
|
+
.ui-skeleton-block,
|
|
313
|
+
.ui-skeleton-block[data-active],
|
|
314
|
+
.ui-skeleton-article[data-active] .ui-skeleton-block {
|
|
315
|
+
animation: none;
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
[data-skeleton-element] {
|
|
320
|
+
--skeleton-element-block-size: var(--control-height);
|
|
321
|
+
|
|
322
|
+
display: inline-block;
|
|
323
|
+
vertical-align: top;
|
|
324
|
+
block-size: var(--skeleton-element-block-size);
|
|
325
|
+
border-radius: var(--skeleton-element-radius);
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
[data-skeleton-element][data-size="xs"] {
|
|
329
|
+
--skeleton-element-block-size: var(--control-height-xs);
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
[data-skeleton-element][data-size="sm"] {
|
|
333
|
+
--skeleton-element-block-size: var(--control-height-sm);
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
[data-skeleton-element][data-size="lg"] {
|
|
337
|
+
--skeleton-element-block-size: var(--control-height-lg);
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
[data-skeleton-element="avatar"] {
|
|
341
|
+
inline-size: var(--skeleton-element-block-size);
|
|
342
|
+
border-radius: var(--avatar-square-radius);
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
[data-skeleton-element="avatar"][data-shape="circle"] {
|
|
346
|
+
border-radius: var(--radius-pill);
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
[data-skeleton-element="button"] {
|
|
350
|
+
inline-size: calc(var(--skeleton-element-block-size) * var(--skeleton-button-width-ratio));
|
|
351
|
+
min-inline-size: calc(var(--skeleton-element-block-size) * var(--skeleton-button-width-ratio));
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
[data-skeleton-element="button"][data-shape="pill"] {
|
|
355
|
+
border-radius: var(--radius-pill);
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
[data-skeleton-element="button"][data-shape="sharp"] {
|
|
359
|
+
border-radius: var(--radius-sharp);
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
[data-skeleton-element="input"] {
|
|
363
|
+
inline-size: calc(var(--skeleton-element-block-size) * var(--skeleton-input-width-ratio));
|
|
364
|
+
min-inline-size: calc(var(--skeleton-element-block-size) * var(--skeleton-input-width-ratio));
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
[data-skeleton-element][data-block] {
|
|
368
|
+
display: block;
|
|
369
|
+
inline-size: 100%;
|
|
370
|
+
min-inline-size: 0;
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
[data-skeleton-element="node"],
|
|
374
|
+
[data-skeleton-element="image"] {
|
|
375
|
+
display: inline-flex;
|
|
376
|
+
align-items: center;
|
|
377
|
+
justify-content: center;
|
|
378
|
+
vertical-align: middle;
|
|
379
|
+
inline-size: var(--skeleton-node-size);
|
|
380
|
+
block-size: var(--skeleton-node-size);
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
.ui-skeleton-image-glyph {
|
|
384
|
+
inline-size: var(--skeleton-image-glyph-size);
|
|
385
|
+
block-size: var(--skeleton-image-glyph-size);
|
|
386
|
+
color: var(--skeleton-image-glyph-color, hsl(var(--muted-foreground) / 0.4));
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
.ui-skeleton-article {
|
|
390
|
+
display: flex;
|
|
391
|
+
align-items: flex-start;
|
|
392
|
+
gap: var(--skeleton-article-avatar-gap);
|
|
393
|
+
inline-size: 100%;
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
.ui-skeleton-article-header {
|
|
397
|
+
flex: 0 0 auto;
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
.ui-skeleton-article-section {
|
|
401
|
+
display: grid;
|
|
402
|
+
flex: 1 1 auto;
|
|
403
|
+
gap: var(--skeleton-article-title-gap);
|
|
404
|
+
min-inline-size: 0;
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
.ui-skeleton-article[data-avatar] .ui-skeleton-article-title {
|
|
408
|
+
margin-block-start: var(--skeleton-article-avatar-title-offset);
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
.ui-skeleton-article-paragraph {
|
|
412
|
+
display: grid;
|
|
413
|
+
gap: var(--skeleton-article-line-gap);
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
.ui-skeleton-article-title,
|
|
417
|
+
.ui-skeleton-article-line {
|
|
418
|
+
block-size: var(--skeleton-block-height);
|
|
419
|
+
inline-size: var(--skeleton-line-width, 100%);
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
.ui-skeleton-article-line:last-child:not(:first-child):not(:nth-child(2)) {
|
|
423
|
+
--skeleton-line-width: var(--skeleton-paragraph-last-width);
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
.ui-skeleton-article[data-round] .ui-skeleton-block {
|
|
427
|
+
border-radius: var(--radius-pill);
|
|
428
|
+
}
|
|
429
|
+
|
|
291
430
|
@keyframes pulse {
|
|
292
431
|
50% {
|
|
293
432
|
opacity: 0.5;
|