@godxjp/ui 27.1.0 → 27.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/data-display/badge.d.ts +10 -3
- package/dist/components/data-display/badge.js +14 -3
- package/dist/components/data-display/data-table.d.ts +20 -12
- package/dist/components/data-display/data-table.js +53 -5
- package/dist/components/data-display/range-timeline.d.ts +16 -0
- package/dist/components/data-display/range-timeline.js +115 -80
- package/dist/components/data-display/table.d.ts +16 -0
- package/dist/components/data-display/table.js +2 -0
- package/dist/components/data-entry/checkbox.js +23 -5
- package/dist/components/data-entry/command.d.ts +3 -1
- package/dist/components/data-entry/command.js +10 -2
- package/dist/components/data-entry/form-field.js +9 -8
- package/dist/components/data-entry/index.d.ts +1 -0
- package/dist/components/data-entry/search-select.js +145 -136
- package/dist/components/data-entry/select.js +38 -3
- package/dist/components/general/icon.d.ts +31 -0
- package/dist/components/general/icon.js +23 -0
- package/dist/components/general/index.d.ts +2 -0
- package/dist/components/general/index.js +2 -0
- package/dist/components/layout/flex.d.ts +2 -2
- package/dist/components/layout/flex.js +7 -1
- package/dist/components/layout/org-switcher.js +1 -1
- package/dist/components/layout/responsive-grid.d.ts +8 -2
- package/dist/components/layout/responsive-grid.js +2 -0
- package/dist/components/layout/topbar-item.d.ts +1 -0
- package/dist/components/layout/topbar-item.js +3 -1
- package/dist/contracts/measurement.json +1 -1
- package/dist/form/form-field-control.d.ts +1 -1
- package/dist/form/form-field-control.js +32 -23
- package/dist/i18n/messages/en.json +2 -1
- package/dist/i18n/messages/ja.json +2 -1
- package/dist/i18n/messages/vi.json +2 -1
- package/dist/props/components/data-display.prop.d.ts +12 -0
- package/dist/props/components/data-entry.prop.d.ts +10 -0
- package/dist/props/components/form.prop.d.ts +34 -2
- package/dist/props/components/general.prop.d.ts +42 -1
- package/dist/props/components/index.d.ts +1 -1
- package/dist/props/components/layout.prop.d.ts +49 -0
- package/dist/props/registry.d.ts +57 -3
- package/dist/props/registry.js +62 -2
- package/dist/props/vocabulary/data.prop.d.ts +27 -1
- package/dist/props/vocabulary/index.d.ts +2 -2
- package/dist/props/vocabulary/interaction.prop.d.ts +11 -0
- package/dist/styles/control.css +44 -1
- package/dist/styles/core.css +2 -0
- package/dist/styles/data-display-layout.css +58 -1
- package/dist/styles/form-layout.css +21 -0
- package/dist/styles/icon-layout.css +37 -0
- package/dist/styles/index.css +2 -0
- package/dist/styles/layout.css +7 -0
- package/dist/styles/navigation-layout.css +5 -1
- package/dist/styles/shell-layout.css +11 -14
- package/dist/styles/table-layout.css +80 -8
- package/dist/styles/text-layout.css +16 -8
- package/dist/tokens/components/control.css +5 -0
- package/dist/tokens/components/data-display.css +6 -0
- package/dist/tokens/components/navigation.css +1 -1
- package/dist/tokens/components/table.css +2 -0
- package/docs/CONSUMER-RULES.md +2 -2
- package/docs/DESIGN-AUTHORITY.md +32 -1
- package/docs/FRAME-COVERAGE-REPORT.md +3 -2
- package/docs/data-display/data-table/examples/server-paged.tsx +156 -0
- package/docs/data-display/data-table/examples/striped-list.tsx +173 -0
- package/docs/data-display/popover.tsx +43 -1
- package/docs/data-display/timeline.tsx +73 -9
- package/docs/data-entry/command.tsx +80 -1
- package/docs/data-entry/form-root.tsx +12 -2
- package/docs/general/icon.tsx +215 -0
- package/docs/layout/flex.tsx +59 -0
- package/docs/layout/responsive-grid.tsx +100 -0
- package/docs/layout/topbar-item.tsx +29 -1
- package/package.json +3 -2
- package/scripts/consumer-rule.md +18 -17
- package/scripts/ui-audit.mjs +128 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { FlexProp } from "../../props/components/layout.prop.js";
|
|
2
|
-
export type { FlexAlignProp, FlexDirectionProp, FlexJustifyProp, FlexProp, FlexProp as FlexProps, } from "../../props/components/layout.prop.js";
|
|
3
|
-
export declare function Flex({ as: Element, direction, grow, shrink, surface, bleed, reveal, gap, gapRaw, pad, padRaw, align, justify, wrap, hideBelow, hideFrom, hideBelowRaw, hideFromRaw, fill, width, className, style, children, ...props }: FlexProp): import("react").JSX.Element;
|
|
2
|
+
export type { FlexAlignProp, FlexDirectionProp, FlexJustifyProp, FlexMarkerProp, FlexProp, FlexProp as FlexProps, } from "../../props/components/layout.prop.js";
|
|
3
|
+
export declare function Flex({ as: Element, direction, marker, grow, shrink, surface, bleed, reveal, gap, gapRaw, pad, padRaw, align, justify, wrap, hideBelow, hideFrom, hideBelowRaw, hideFromRaw, fill, width, className, style, children, ...props }: FlexProp): import("react").JSX.Element;
|
|
@@ -6,9 +6,15 @@ import { flexGapClass, padStyle, padStepToken } from "../../lib/variants.js";
|
|
|
6
6
|
const toCssLength = (value) => typeof value === "number" ? `${value}px` : value;
|
|
7
7
|
const rawBreakpoint = (value) => typeof value === "number" && Number.isFinite(value) ? value : void 0;
|
|
8
8
|
const rawBreakpointRule = (axis, px) => `@media (width ${axis === "below" ? "<" : ">="} ${px}px){.ui-flex[data-hide-${axis}-raw="${px}"]{display:none}}`;
|
|
9
|
+
const listMarker = (element, marker) => {
|
|
10
|
+
if (element !== "ul" && element !== "ol") return void 0;
|
|
11
|
+
const resolved = marker ?? (element === "ul" ? "disc" : "decimal");
|
|
12
|
+
return resolved === "none" ? void 0 : resolved;
|
|
13
|
+
};
|
|
9
14
|
function Flex({
|
|
10
15
|
as: Element = "div",
|
|
11
16
|
direction = "row",
|
|
17
|
+
marker,
|
|
12
18
|
grow,
|
|
13
19
|
shrink,
|
|
14
20
|
surface,
|
|
@@ -65,7 +71,7 @@ function Flex({
|
|
|
65
71
|
"data-shrink": shrink === false ? "false" : void 0,
|
|
66
72
|
"data-surface": surface,
|
|
67
73
|
"data-reveal": reveal,
|
|
68
|
-
"data-list": Element
|
|
74
|
+
"data-list": listMarker(Element, marker),
|
|
69
75
|
"data-align": align,
|
|
70
76
|
"data-justify": justify,
|
|
71
77
|
"data-wrap": wrap ? "true" : void 0,
|
|
@@ -105,7 +105,7 @@ function OrgSwitcherPanel({
|
|
|
105
105
|
] }) : null
|
|
106
106
|
] });
|
|
107
107
|
}
|
|
108
|
-
return /* @__PURE__ */ jsxs(Command, { label: labels.title, className: "ui-org-switcher-command", children: [
|
|
108
|
+
return /* @__PURE__ */ jsxs(Command, { label: labels.title, className: "ui-org-switcher-command", split: true, children: [
|
|
109
109
|
/* @__PURE__ */ jsx(CommandInput, { placeholder: labels.search, "aria-label": labels.search }),
|
|
110
110
|
/* @__PURE__ */ jsxs(CommandList, { children: [
|
|
111
111
|
/* @__PURE__ */ jsx(CommandEmpty, { children: labels.empty }),
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ReactNode } from "react";
|
|
2
|
-
import type { ResponsiveGridColumnsProp, ResponsiveGridFlowProp, ResponsiveGridPresetProp } from "../../props/components/layout.prop.js";
|
|
2
|
+
import type { ResponsiveGridAlignProp, ResponsiveGridColumnsProp, ResponsiveGridFlowProp, ResponsiveGridPresetProp } from "../../props/components/layout.prop.js";
|
|
3
3
|
import type { PadProp, PadRawProp } from "../../props/vocabulary/index.js";
|
|
4
4
|
import type { GapProp } from "../../props/vocabulary/layout.prop.js";
|
|
5
5
|
export type ResponsiveGridProps = {
|
|
@@ -12,6 +12,12 @@ export type ResponsiveGridProps = {
|
|
|
12
12
|
columns?: ResponsiveGridColumnsProp;
|
|
13
13
|
/** Keep collections in a horizontal sequence; pair with ScrollArea orientation="horizontal". */
|
|
14
14
|
flow?: ResponsiveGridFlowProp;
|
|
15
|
+
/**
|
|
16
|
+
* Block-axis alignment of the cells (antd `Row align`). `stretch` makes every cell as tall as
|
|
17
|
+
* the tallest — Kanban lanes, where an empty lane must stay a full-height drop zone. Omitted,
|
|
18
|
+
* `flow="columns"` aligns to `start` and `flow="rows"` stretches, as before.
|
|
19
|
+
*/
|
|
20
|
+
align?: ResponsiveGridAlignProp;
|
|
15
21
|
/**
|
|
16
22
|
* Named column geometry for a recognised collection shape — see `ResponsiveGridPresetProp`.
|
|
17
23
|
* Wins over `columns` when both are set, so a caller migrating to a preset does not also need
|
|
@@ -20,7 +26,7 @@ export type ResponsiveGridProps = {
|
|
|
20
26
|
preset?: ResponsiveGridPresetProp;
|
|
21
27
|
children: ReactNode;
|
|
22
28
|
};
|
|
23
|
-
export declare function ResponsiveGrid({ columns, flow, gap, pad, padRaw, preset, className, children, }: ResponsiveGridProps): import("react").JSX.Element;
|
|
29
|
+
export declare function ResponsiveGrid({ columns, flow, align, gap, pad, padRaw, preset, className, children, }: ResponsiveGridProps): import("react").JSX.Element;
|
|
24
30
|
export declare namespace ResponsiveGrid {
|
|
25
31
|
export { ResponsiveGridItem as Item };
|
|
26
32
|
}
|
|
@@ -31,6 +31,7 @@ function toStyle(resolved) {
|
|
|
31
31
|
function ResponsiveGrid({
|
|
32
32
|
columns = 4,
|
|
33
33
|
flow = "rows",
|
|
34
|
+
align,
|
|
34
35
|
gap,
|
|
35
36
|
pad,
|
|
36
37
|
padRaw,
|
|
@@ -45,6 +46,7 @@ function ResponsiveGrid({
|
|
|
45
46
|
className: cn("ui-responsive-grid", className),
|
|
46
47
|
"data-gap": gap,
|
|
47
48
|
"data-flow": flow === "columns" ? "columns" : void 0,
|
|
49
|
+
"data-align": align,
|
|
48
50
|
style: { ...toStyle(resolved), ...padStyle(pad, padRaw) },
|
|
49
51
|
"data-pad-raw": padRaw === void 0 ? void 0 : "",
|
|
50
52
|
children
|
|
@@ -12,6 +12,7 @@ export type { TopbarItemProp, TopbarItemProp as TopbarItemProps, } from "../../p
|
|
|
12
12
|
*/
|
|
13
13
|
export declare const TopbarItem: React.ForwardRefExoticComponent<Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "children"> & {
|
|
14
14
|
hideBelow?: import("../../props/index.js").BreakpointProp;
|
|
15
|
+
icon?: React.ReactNode;
|
|
15
16
|
badge?: React.ReactNode;
|
|
16
17
|
badgeTone?: import("../../props/components/layout.prop.js").SidebarBadgeToneProp;
|
|
17
18
|
asChild?: boolean;
|
|
@@ -2,9 +2,10 @@ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import * as React from "react";
|
|
3
3
|
import { Slot } from "../../lib/slot.js";
|
|
4
4
|
import { cn } from "../../lib/utils.js";
|
|
5
|
-
const TopbarItem = React.forwardRef(function TopbarItem2({ asChild = false, className, type, hideBelow, badge, badgeTone, children, ...props }, ref) {
|
|
5
|
+
const TopbarItem = React.forwardRef(function TopbarItem2({ asChild = false, className, type, hideBelow, icon, badge, badgeTone, children, ...props }, ref) {
|
|
6
6
|
const Comp = asChild ? Slot : "button";
|
|
7
7
|
const showBadge = !asChild && badge !== void 0 && badge !== "";
|
|
8
|
+
const iconNode = !asChild && icon !== void 0 && icon !== null && icon !== false ? /* @__PURE__ */ jsx("span", { "data-slot": "topbar-item-icon", className: "ui-topbar-item-icon", children: icon }) : null;
|
|
8
9
|
const badgeNode = showBadge ? /* @__PURE__ */ jsx(
|
|
9
10
|
"span",
|
|
10
11
|
{
|
|
@@ -24,6 +25,7 @@ const TopbarItem = React.forwardRef(function TopbarItem2({ asChild = false, clas
|
|
|
24
25
|
type: asChild ? void 0 : type ?? "button",
|
|
25
26
|
...props,
|
|
26
27
|
children: asChild ? children : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
28
|
+
iconNode,
|
|
27
29
|
children,
|
|
28
30
|
badgeNode
|
|
29
31
|
] })
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$comment": "AUTO-GENERATED by scripts/gen-measurement-contract.mjs — do not edit. Read this instead of guessing: docs/MEASUREMENT-CONTRACT.md.",
|
|
3
|
-
"version": "27.1
|
|
3
|
+
"version": "27.4.1",
|
|
4
4
|
"targetSize": {
|
|
5
5
|
"standard": "WCAG 2.2 SC 2.5.8 Target Size (Minimum), level AA — 24×24 CSS px",
|
|
6
6
|
"min": 24,
|
|
@@ -2,4 +2,4 @@ import * as React from "react";
|
|
|
2
2
|
import { type FieldValues } from "react-hook-form";
|
|
3
3
|
import type { FormFieldControlProp } from "../props/components/form.prop.js";
|
|
4
4
|
export type { FormFieldControlProp } from "../props/components/form.prop.js";
|
|
5
|
-
export declare function FormFieldControl<TFieldValues extends FieldValues>({ name, id, field: fieldKey, labelAddon, layout, labelWidth, controlWidth, colSpan, label, required, helper, disabled, dependencies, getValueFromEvent, normalize, help, validateStatus, hasFeedback, feedback, preserve, className, children, }: FormFieldControlProp<TFieldValues>): React.JSX.Element;
|
|
5
|
+
export declare function FormFieldControl<TFieldValues extends FieldValues>({ name, id, field: fieldKey, labelAddon, layout, labelWidth, controlWidth, colSpan, label, required, helper, disabled, dependencies, getValueFromEvent, normalize, help, validateStatus, hasFeedback, feedback, preserve, className, valuePropName, children, }: FormFieldControlProp<TFieldValues>): React.JSX.Element;
|
|
@@ -51,6 +51,7 @@ function FormFieldControl({
|
|
|
51
51
|
feedback,
|
|
52
52
|
preserve,
|
|
53
53
|
className,
|
|
54
|
+
valuePropName,
|
|
54
55
|
children
|
|
55
56
|
}) {
|
|
56
57
|
const autoId = React.useId();
|
|
@@ -62,9 +63,23 @@ function FormFieldControl({
|
|
|
62
63
|
const isDisabled = disabled ?? formDisabled;
|
|
63
64
|
const disabledProp = isDisabled ? { disabled: true } : disabled === false ? { disabled: false } : void 0;
|
|
64
65
|
const readValue = (args, previousValue) => {
|
|
65
|
-
const
|
|
66
|
+
const extracted = getValueFromEvent ? getValueFromEvent(...args) : extractControlValue(args[0]);
|
|
67
|
+
const raw = valuePropName === "checked" ? extracted === true : extracted;
|
|
66
68
|
return normalize ? normalize(raw, previousValue) : raw;
|
|
67
69
|
};
|
|
70
|
+
const renderControl = (bag) => {
|
|
71
|
+
const render = children;
|
|
72
|
+
if (valuePropName === "checked") {
|
|
73
|
+
const { value, onChange, ...rest } = bag;
|
|
74
|
+
return render({
|
|
75
|
+
...rest,
|
|
76
|
+
checked: value === true,
|
|
77
|
+
onCheckedChange: (checked) => onChange(checked),
|
|
78
|
+
...disabledProp
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
return render(bindField({ ...bag, ...disabledProp }));
|
|
82
|
+
};
|
|
68
83
|
if (adapter) {
|
|
69
84
|
const fieldName = String(name);
|
|
70
85
|
return /* @__PURE__ */ jsx(
|
|
@@ -81,17 +96,14 @@ function FormFieldControl({
|
|
|
81
96
|
hasFeedback,
|
|
82
97
|
feedback,
|
|
83
98
|
className,
|
|
84
|
-
children:
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
...disabledProp
|
|
93
|
-
})
|
|
94
|
-
)
|
|
99
|
+
children: renderControl({
|
|
100
|
+
id: resolvedId,
|
|
101
|
+
name: fieldName,
|
|
102
|
+
value: adapter.getValue(fieldName),
|
|
103
|
+
onChange: (...args) => adapter.setValue(fieldName, readValue(args, adapter.getValue(fieldName))),
|
|
104
|
+
onBlur: () => adapter.onBlur?.(fieldName),
|
|
105
|
+
ref: noopRef
|
|
106
|
+
})
|
|
95
107
|
}
|
|
96
108
|
);
|
|
97
109
|
}
|
|
@@ -125,17 +137,14 @@ function FormFieldControl({
|
|
|
125
137
|
hasFeedback,
|
|
126
138
|
feedback,
|
|
127
139
|
className,
|
|
128
|
-
children:
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
...disabledProp
|
|
137
|
-
})
|
|
138
|
-
)
|
|
140
|
+
children: renderControl({
|
|
141
|
+
id: resolvedId,
|
|
142
|
+
name: field.name,
|
|
143
|
+
value: field.value,
|
|
144
|
+
onChange: (...args) => field.onChange(readValue(args, field.value)),
|
|
145
|
+
onBlur: field.onBlur,
|
|
146
|
+
ref: field.ref
|
|
147
|
+
})
|
|
139
148
|
}
|
|
140
149
|
)
|
|
141
150
|
}
|
|
@@ -607,7 +607,8 @@
|
|
|
607
607
|
"trendCurrent": "current"
|
|
608
608
|
},
|
|
609
609
|
"rangeTimeline": {
|
|
610
|
-
"
|
|
610
|
+
"outsideAfter": "After the visible range",
|
|
611
|
+
"outsideBefore": "Before the visible range",
|
|
611
612
|
"schedule": "Schedule"
|
|
612
613
|
},
|
|
613
614
|
"textExamples": {
|
|
@@ -595,7 +595,8 @@
|
|
|
595
595
|
"trendCurrent": "hiện tại"
|
|
596
596
|
},
|
|
597
597
|
"rangeTimeline": {
|
|
598
|
-
"
|
|
598
|
+
"outsideAfter": "Sau khoảng đang xem",
|
|
599
|
+
"outsideBefore": "Trước khoảng đang xem",
|
|
599
600
|
"schedule": "Lịch công việc"
|
|
600
601
|
},
|
|
601
602
|
"textExamples": {
|
|
@@ -294,6 +294,12 @@ export type BadgeProp = {
|
|
|
294
294
|
* Port name `onRemove` (not `onClose`) — see {@link Badge} JSDoc and `docs/DESIGN-AUTHORITY.md`.
|
|
295
295
|
*/
|
|
296
296
|
onRemove?: () => void;
|
|
297
|
+
/**
|
|
298
|
+
* The × button's full accessible name, verbatim (antd 5.15+ `closable={{ 'aria-label' }}`, gh#706).
|
|
299
|
+
* Without it the name quotes the chip's label — a string `children`, or the label's rendered text
|
|
300
|
+
* when `children` is a link or other node.
|
|
301
|
+
*/
|
|
302
|
+
removeLabel?: string;
|
|
297
303
|
};
|
|
298
304
|
/** @see CredentialReveal */
|
|
299
305
|
/**
|
|
@@ -403,6 +409,12 @@ export type DataTableProp<T> = {
|
|
|
403
409
|
onRow?: OnRowProp<T>;
|
|
404
410
|
/** Outer frame + vertical rules between columns (antd `bordered`). */
|
|
405
411
|
bordered?: boolean;
|
|
412
|
+
/**
|
|
413
|
+
* Zebra rows by logical record (Element Plus `stripe`, Bootstrap `.table-striped`; antd has no
|
|
414
|
+
* prop). Omit to inherit the theme default `--table-row-striped-alpha`; `true` / `false`
|
|
415
|
+
* override it for this table.
|
|
416
|
+
*/
|
|
417
|
+
striped?: boolean;
|
|
406
418
|
/** Explain the next sort step in a tooltip on sortable headers (antd `showSorterTooltip`). */
|
|
407
419
|
showSorterTooltip?: boolean;
|
|
408
420
|
/** Table-wide sort cycle; a column's own `sortDirections` wins (antd `sortDirections`). */
|
|
@@ -114,6 +114,16 @@ export type ControlCountProp = {
|
|
|
114
114
|
strategy?: (value: string) => number;
|
|
115
115
|
};
|
|
116
116
|
/** @see Input */
|
|
117
|
+
/** `Command` — the library's own knob; cmdk's root props pass through untouched beside it. */
|
|
118
|
+
export type CommandProp = {
|
|
119
|
+
/**
|
|
120
|
+
* antd `List` `split`: draw the list as ONE ruled box — group padding 0, rows full-bleed to the
|
|
121
|
+
* panel edge with a square highlight, a hairline `border-block-end` between rows and none after
|
|
122
|
+
* the last visible one. For option / checkbox lists (filter facets, pickers). Default `false`:
|
|
123
|
+
* a command palette keeps its airy, inset rows.
|
|
124
|
+
*/
|
|
125
|
+
split?: boolean;
|
|
126
|
+
};
|
|
117
127
|
export type InputProp = Omit<React.InputHTMLAttributes<HTMLInputElement>, "size" | "prefix"> & {
|
|
118
128
|
onValueChange?: (value: string) => void;
|
|
119
129
|
/** Control height tier: `md` (default), `sm` or `lg` — the same tiers as SelectTrigger. */
|
|
@@ -117,7 +117,12 @@ export type FormRootProp<TFieldValues extends FieldValues> = {
|
|
|
117
117
|
/** @see FormFieldControl */
|
|
118
118
|
export type FormFieldControlProp<TFieldValues extends FieldValues> = Pick<import("./data-entry.prop.js").FormFieldProp, "id" | "field" | "labelAddon" | "layout" | "labelWidth" | "controlWidth" | "colSpan"> & {
|
|
119
119
|
name: FieldPath<TFieldValues>;
|
|
120
|
-
|
|
120
|
+
/**
|
|
121
|
+
* Field label. Optional (antd `Form.Item`): omitted, the field renders NO label row and reserves
|
|
122
|
+
* no space for one — the boolean-field shape, where the control carries its own inline label
|
|
123
|
+
* (`valuePropName="checked"` + `<Checkbox {...field}>label</Checkbox>`).
|
|
124
|
+
*/
|
|
125
|
+
label?: LabelProp;
|
|
121
126
|
required?: RequiredProp;
|
|
122
127
|
helper?: HelperProp;
|
|
123
128
|
/**
|
|
@@ -164,6 +169,12 @@ export type FormFieldControlProp<TFieldValues extends FieldValues> = Pick<import
|
|
|
164
169
|
*/
|
|
165
170
|
preserve?: boolean;
|
|
166
171
|
className?: string;
|
|
172
|
+
} & ({
|
|
173
|
+
/**
|
|
174
|
+
* Which prop of the control carries the value (antd `valuePropName`). Default `"value"`: the
|
|
175
|
+
* render prop receives `value` / `onChange` / `onValueChange`.
|
|
176
|
+
*/
|
|
177
|
+
valuePropName?: "value";
|
|
167
178
|
children: (field: {
|
|
168
179
|
id: string;
|
|
169
180
|
name: string;
|
|
@@ -180,7 +191,28 @@ export type FormFieldControlProp<TFieldValues extends FieldValues> = Pick<import
|
|
|
180
191
|
/** Present (and `true`) only when the field is disabled, so `{...field}` never re-enables a control. */
|
|
181
192
|
disabled?: DisabledProp;
|
|
182
193
|
}) => React.ReactNode;
|
|
183
|
-
}
|
|
194
|
+
} | {
|
|
195
|
+
/**
|
|
196
|
+
* `"checked"` (antd `valuePropName="checked"`) — a boolean field. The render prop receives
|
|
197
|
+
* `checked` / `onCheckedChange` instead of `value` / `onChange`, so
|
|
198
|
+
* `{(field) => <Checkbox {...field}>label</Checkbox>}` (or `<Switch {...field} />`) needs no
|
|
199
|
+
* wiring. The stored value is always a boolean: `"indeterminate"` and any non-`true` payload
|
|
200
|
+
* store `false`.
|
|
201
|
+
*/
|
|
202
|
+
valuePropName: "checked";
|
|
203
|
+
children: (field: {
|
|
204
|
+
id: string;
|
|
205
|
+
name: string;
|
|
206
|
+
/** `true` only when the stored value is exactly `true`. */
|
|
207
|
+
checked: boolean;
|
|
208
|
+
onCheckedChange: (checked: boolean | "indeterminate") => void;
|
|
209
|
+
onBlur: () => void;
|
|
210
|
+
/** Same callback ref as the `"value"` bag — spreads onto `Checkbox` / `Switch` with no cast. */
|
|
211
|
+
ref: React.RefCallback<HTMLElement>;
|
|
212
|
+
/** Present (and `true`) only when the field is disabled, so `{...field}` never re-enables a control. */
|
|
213
|
+
disabled?: DisabledProp;
|
|
214
|
+
}) => React.ReactNode;
|
|
215
|
+
});
|
|
184
216
|
/**
|
|
185
217
|
* @see FormFieldArray — dynamic repeating fields (antd `Form.List`) on react-hook-form's
|
|
186
218
|
* `useFieldArray`. `name` is the array field; each row hands back the dotted path prefix to build
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** Foundation component prop types — @see docs/COMPONENTS.md#foundation */
|
|
2
2
|
import type * as React from "react";
|
|
3
|
-
import type { ActivityAnnounceProp, ActivityVariantProp, AsChildProp, ButtonSizeProp, ButtonVariantProp, ChildrenProp, ClassNameProp, DescriptionProp, DisabledProp, FontWeightProp, HeadingLevelProp, IdProp, LabelProp, OnClickProp, OnOpenChangeProp, OpenProp, PendingProp, RevealDelayProp, ShapeProp, SizeProp, TextAlignProp, TextSizeProp, TextToneProp, TextWhitespaceProp, TitleLevelProp, TypographyActionsConfigProp, TypographyCopyConfigProp, TypographyEditConfigProp, TypographyEllipsisConfigProp, TypographyTypeProp } from "../vocabulary/index.js";
|
|
3
|
+
import type { ActivityAnnounceProp, ActivityVariantProp, AsChildProp, ButtonSizeProp, ButtonVariantProp, ChildrenProp, ClassNameProp, DescriptionProp, DisabledProp, FontWeightProp, HeadingLevelProp, IconSizeProp, IdProp, LabelProp, OnClickProp, OnOpenChangeProp, OpenProp, PendingProp, RevealDelayProp, ShapeProp, SizeProp, TextAlignProp, TextSizeProp, TextToneProp, TextWhitespaceProp, TitleLevelProp, TypographyActionsConfigProp, TypographyCopyConfigProp, TypographyEditConfigProp, TypographyEllipsisConfigProp, TypographyTypeProp } from "../vocabulary/index.js";
|
|
4
4
|
/**
|
|
5
5
|
* @see Text — typographic primitive; replaces hand-rolled `<span className="text-[13px] …">`.
|
|
6
6
|
*
|
|
@@ -336,6 +336,47 @@ export type ActivityProp = Omit<React.HTMLAttributes<HTMLSpanElement>, "color">
|
|
|
336
336
|
announce?: ActivityAnnounceProp;
|
|
337
337
|
className?: ClassNameProp;
|
|
338
338
|
};
|
|
339
|
+
/**
|
|
340
|
+
* @see Icon — the ONE supported way to put a standalone glyph on the `--icon-size-*` scale.
|
|
341
|
+
*
|
|
342
|
+
* A lucide component carries `width="24" height="24"` of its own, and only four rules in this
|
|
343
|
+
* library ever re-size a glyph (`.ui-button svg`, the menu row, the topbar cell, the ListRow
|
|
344
|
+
* leading slot) — three of them direct-child rules. Outside those four a glyph renders at 24px
|
|
345
|
+
* beside 14px text, and a consumer has no supported way to fix it: `docs/CONSUMER-RULES.md` §8
|
|
346
|
+
* forbids `size-4`/`w-[16px]`, and `size={16}` re-derives a scale the theme owns. Measured in a
|
|
347
|
+
* consumer at 38 such glyphs (gh#712).
|
|
348
|
+
*
|
|
349
|
+
* Icon renders ONTO the glyph rather than wrapping it — the sized element IS the `<svg>` — so it
|
|
350
|
+
* composes anywhere a bare glyph does (inside `Text`, in a `Button`, in a table cell, in an `<a>`)
|
|
351
|
+
* and adds no box to the layout.
|
|
352
|
+
*/
|
|
353
|
+
export type IconGlyphProp = Omit<React.SVGProps<SVGSVGElement>, "ref" | "children"> & {
|
|
354
|
+
/**
|
|
355
|
+
* The glyph COMPONENT — `as={Lock}`, not `<Lock />`. Any component that forwards SVG props and a
|
|
356
|
+
* ref qualifies (every `lucide-react` icon does); Icon hands it the class, the size attributes
|
|
357
|
+
* and the a11y wiring.
|
|
358
|
+
*/
|
|
359
|
+
as: React.ComponentType<React.SVGProps<SVGSVGElement> & React.RefAttributes<SVGSVGElement>>;
|
|
360
|
+
/**
|
|
361
|
+
* Step of the nine-step icon scale. Default `md` (16px — "the default icon step" in
|
|
362
|
+
* docs/TOKENS.md). A glyph beside `Text size="sm"` wants `sm`; an empty-state mark wants `4xl`.
|
|
363
|
+
*/
|
|
364
|
+
size?: IconSizeProp;
|
|
365
|
+
/**
|
|
366
|
+
* Semantic colour intent, the same vocabulary `Text` uses. Omitted by default, and that default
|
|
367
|
+
* is load-bearing: a glyph inherits `currentColor`, so an Icon inside a Button, a Badge or a
|
|
368
|
+
* toned `Text` paints in that surface's own ink without being told.
|
|
369
|
+
*/
|
|
370
|
+
tone?: TextToneProp;
|
|
371
|
+
/**
|
|
372
|
+
* Accessible NAME, when the glyph carries meaning nothing else on screen says (a lock in a
|
|
373
|
+
* status cell with no text beside it). Localized by the consumer — the library ships no copy.
|
|
374
|
+
* Supplying it switches the glyph from `aria-hidden` to `role="img"` + that name; leave it off
|
|
375
|
+
* (the default) for a decorative glyph beside a visible label, which is the common case.
|
|
376
|
+
*/
|
|
377
|
+
label?: string;
|
|
378
|
+
className?: ClassNameProp;
|
|
379
|
+
};
|
|
339
380
|
/**
|
|
340
381
|
* FloatButton `type` — the two fills Ant Design gives the corner mark.
|
|
341
382
|
*
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export type { AppLauncherApp, AppLauncherGroup, AppLauncherLabels, AppLauncherProp, AppShellProp, AuthFooterProp, AuthIdentityProp, OrgSwitcherLabels, OrgSwitcherOrganization, OrgSwitcherProp, DragAxisProp, DragBoundsProp, DraggablePanelLabels, DraggablePanelPlacementProp, DraggablePanelPositionProp, DraggablePanelProp, PageContainerProp, PageInsetProp, SidebarItemProp, SidebarProductProp, SidebarProp, SidebarSectionProp, TopbarProp, } from "./layout.prop.js";
|
|
2
2
|
export type { ButtonProp } from "./general.prop.js";
|
|
3
|
-
export type { InputProp, TextareaProp, FormFieldProp, SearchInputProp, CheckboxProp, CheckboxGroupProp, ChoiceOptionProp, RadioProp, RadioGroupProp, SwitchProp, SliderProp, CalendarProp, DatePickerProp, TimePickerProp, ColorPickerProp, UploadProp, UploadFileItemProp, UploadVariantProp, TreeOptionProp, TreeFieldNamesProp, CascaderProp, TreeSelectProp, ShowCheckedStrategyProp, TransferProp, TransferItemProp, } from "./data-entry.prop.js";
|
|
3
|
+
export type { CommandProp, InputProp, TextareaProp, FormFieldProp, SearchInputProp, CheckboxProp, CheckboxGroupProp, ChoiceOptionProp, RadioProp, RadioGroupProp, SwitchProp, SliderProp, CalendarProp, DatePickerProp, TimePickerProp, ColorPickerProp, UploadProp, UploadFileItemProp, UploadVariantProp, TreeOptionProp, TreeFieldNamesProp, CascaderProp, TreeSelectProp, ShowCheckedStrategyProp, TransferProp, TransferItemProp, } from "./data-entry.prop.js";
|
|
4
4
|
export type { AvatarProp, EmptyStateProp, DescriptionsProp, DescriptionsItemProp, BadgeProp, DataTableProp, QrCodeProp, } from "./data-display.prop.js";
|
|
5
5
|
export type { ChartDatum, ChartSeriesProp, LineChartProp, BarChartProp, AreaChartProp, PieChartProp, } from "./charts.prop.js";
|
|
6
6
|
export type { AlertQueryErrorProp, AlertProp, DialogProp, DialogContentProp, AlertTitleProp, AlertContentProp, AlertDescriptionProp, AlertActionsProp, SheetResponsiveProp, SkeletonRowsProp, } from "./feedback.prop.js";
|
|
@@ -100,6 +100,11 @@ export type PageContainerProp = {
|
|
|
100
100
|
className?: ClassNameProp;
|
|
101
101
|
};
|
|
102
102
|
export type FlexDirectionProp = "row" | "col";
|
|
103
|
+
/**
|
|
104
|
+
* List marker for `as="ul"`/`as="ol"` — the CSS `list-style-type` keywords the layer implements,
|
|
105
|
+
* plus `none` for a list that is SEMANTIC ONLY (gh#714).
|
|
106
|
+
*/
|
|
107
|
+
export type FlexMarkerProp = "disc" | "decimal" | "none";
|
|
103
108
|
export type FlexAlignProp = "start" | "center" | "end" | "stretch" | "baseline";
|
|
104
109
|
export type FlexJustifyProp = "start" | "center" | "end" | "between" | "around" | "evenly";
|
|
105
110
|
/** @see Flex */
|
|
@@ -112,6 +117,26 @@ export type FlexProp = React.HTMLAttributes<HTMLElement> & {
|
|
|
112
117
|
* `.ui-flex` rules carry `display: flex`, so the box is identical either way.
|
|
113
118
|
*/
|
|
114
119
|
as?: "div" | "span" | "ul" | "ol" | "li";
|
|
120
|
+
/**
|
|
121
|
+
* Marker for a LIST element (`as="ul"` → `disc`, `as="ol"` → `decimal` by default); ignored by
|
|
122
|
+
* every other tag.
|
|
123
|
+
*
|
|
124
|
+
* `marker="none"` emits no `data-list` at all, so the list keeps its element, its `<li>`
|
|
125
|
+
* semantics and its `gap`, and loses the bullet AND the `--space-5` indent that come with it.
|
|
126
|
+
*
|
|
127
|
+
* ## Why the axis exists
|
|
128
|
+
*
|
|
129
|
+
* The bullet was unconditional, and the catalog's own idiom — `<ListRow as="li">` inside a list
|
|
130
|
+
* — could not live with it: `.ui-flex[data-list] > li { display: list-item }` outranks
|
|
131
|
+
* `[data-slot="list-row"] { display: flex }`, so every row fell out of flex layout (measured on
|
|
132
|
+
* this page: row height 94.58px → 41.2px once the attribute is gone). The only move left was a
|
|
133
|
+
* RAW `<ul>`, which carries no gap token and which the consumer rules forbid in spirit — one
|
|
134
|
+
* consumer kept three `Flex role="list"` divs for exactly that reason (gh#714).
|
|
135
|
+
*
|
|
136
|
+
* `disc`/`decimal` stay available so an `<ol>` can be bulleted (or a `<ul>` numbered) without a
|
|
137
|
+
* `list-style-type` in a className.
|
|
138
|
+
*/
|
|
139
|
+
marker?: FlexMarkerProp;
|
|
115
140
|
/** Lightweight surfaces for rows and notices; no Card elevation by default. */
|
|
116
141
|
surface?: "muted" | "popover" | "warning";
|
|
117
142
|
/** Negative inline inset, using the same spacing scale as pad. */
|
|
@@ -266,6 +291,13 @@ export type ResponsiveGridColumnsProp = number | {
|
|
|
266
291
|
*/
|
|
267
292
|
export type ResponsiveGridFlowProp = "rows" | "columns";
|
|
268
293
|
export type ResponsiveGridPresetProp = "pricing-plans";
|
|
294
|
+
/**
|
|
295
|
+
* Block-axis alignment of the cells in each grid row — antd `Row align`, spelled with Flex's
|
|
296
|
+
* `FlexAlignProp` values (antd `top` → `start`; `stretch` is the same word). `stretch` gives every
|
|
297
|
+
* cell the height of the tallest one, so an empty Kanban lane is still a full-height drop zone.
|
|
298
|
+
* Omitted, each flow keeps its own alignment: `columns` → `start`, `rows` → the grid's stretch.
|
|
299
|
+
*/
|
|
300
|
+
export type ResponsiveGridAlignProp = Extract<FlexAlignProp, "start" | "stretch">;
|
|
269
301
|
export type MasterDetailRailWidthProp = "narrow" | "compact" | "standard" | "wide";
|
|
270
302
|
export type MasterDetailRailProp = "master" | "detail";
|
|
271
303
|
/**
|
|
@@ -1307,6 +1339,23 @@ export type TopbarItemProp = Omit<React.ButtonHTMLAttributes<HTMLButtonElement>,
|
|
|
1307
1339
|
*/
|
|
1308
1340
|
/** Hide below a shared responsive breakpoint, without changing cell height. */
|
|
1309
1341
|
hideBelow?: BreakpointProp;
|
|
1342
|
+
/**
|
|
1343
|
+
* The cell's leading glyph, placed in a slot the CELL sizes (`--topbar-icon-size`).
|
|
1344
|
+
*
|
|
1345
|
+
* Passing the glyph as a child works too — but only while it stays a DIRECT child, because
|
|
1346
|
+
* `.ui-topbar-item > svg` is the rule that sizes it. The moment a cell wraps its glyph (a
|
|
1347
|
+
* `<Flex hideBelow>` so the icon drops at narrow widths) the rule can no longer reach it and the
|
|
1348
|
+
* glyph renders at lucide's intrinsic 24px: measured at 390px on an org-switcher cell, 1.5x the
|
|
1349
|
+
* cell's own step (gh#712). This slot survives that, because the wrapper is the one the cell
|
|
1350
|
+
* placed. The alternative — widening the rule to a descendant — was measured to shrink or grow
|
|
1351
|
+
* OTHER components' glyphs inside the cell (a Badge's 12px glyph became 16px), so it is not one.
|
|
1352
|
+
*
|
|
1353
|
+
* Decorative by convention: the cell's accessible name comes from its own `aria-label` or its
|
|
1354
|
+
* visible label, not from the glyph. For a glyph that must carry a name, or one that needs a
|
|
1355
|
+
* step other than the bar's, pass `<Icon as={…} size=… label=… />` — as this prop's value or as
|
|
1356
|
+
* a child — and it keeps its own metric and its own semantics.
|
|
1357
|
+
*/
|
|
1358
|
+
icon?: ReactNode;
|
|
1310
1359
|
/**
|
|
1311
1360
|
* Unread count OVERLAID on the cell's glyph — the notification-bell affordance the cell's own use
|
|
1312
1361
|
* cases name (gh#398). Pass the CONTENT ONLY, exactly like `SidebarItemProp.badge`: a number, a
|
package/dist/props/registry.d.ts
CHANGED
|
@@ -352,7 +352,12 @@ export declare const VOCABULARY_REGISTRY: {
|
|
|
352
352
|
readonly TablePaginationProp: {
|
|
353
353
|
readonly file: "vocabulary/data.prop.ts";
|
|
354
354
|
readonly category: "data";
|
|
355
|
-
readonly description: "DataTable pagination object surface — 1-based current | pageSize | total | pageSizeOptions | showSizeChanger | onChange (antd TablePaginationConfig); `false` hides the pager";
|
|
355
|
+
readonly description: "DataTable pagination object surface — 1-based current | pageSize | total | pageSizeOptions | showSizeChanger | showTotal | position | onChange (antd TablePaginationConfig); `false` hides the pager. Without a composed DataTable.Pagination the table renders its own Pagination footer (total + page numbers, density-sized); total > data.length ≤ pageSize reads as server paging";
|
|
356
|
+
};
|
|
357
|
+
readonly TablePaginationPositionProp: {
|
|
358
|
+
readonly file: "vocabulary/data.prop.ts";
|
|
359
|
+
readonly category: "data";
|
|
360
|
+
readonly description: "DataTable pagination footer position (antd TablePaginationPosition, logical) — topStart | topCenter | topEnd | bottomStart | bottomCenter | bottomEnd (default) | none";
|
|
356
361
|
};
|
|
357
362
|
readonly TableCellIndentProp: {
|
|
358
363
|
readonly file: "vocabulary/data.prop.ts";
|
|
@@ -429,6 +434,11 @@ export declare const VOCABULARY_REGISTRY: {
|
|
|
429
434
|
readonly category: "interaction";
|
|
430
435
|
readonly description: "Text size — golden-ratio type-scale steps (2xs…2xl), never an arbitrary px";
|
|
431
436
|
};
|
|
437
|
+
readonly IconSizeProp: {
|
|
438
|
+
readonly file: "vocabulary/interaction.prop.ts";
|
|
439
|
+
readonly category: "interaction";
|
|
440
|
+
readonly description: "Icon size — the nine --icon-size-* scale steps (2xs…4xl), never an arbitrary px or a size- utility";
|
|
441
|
+
};
|
|
432
442
|
readonly TextToneProp: {
|
|
433
443
|
readonly file: "vocabulary/interaction.prop.ts";
|
|
434
444
|
readonly category: "interaction";
|
|
@@ -741,6 +751,11 @@ export declare const COMPONENT_PROP_REGISTRY: {
|
|
|
741
751
|
readonly file: "components/layout.prop.ts";
|
|
742
752
|
readonly vocabulary: readonly [];
|
|
743
753
|
};
|
|
754
|
+
readonly FlexMarkerProp: {
|
|
755
|
+
readonly group: "layout";
|
|
756
|
+
readonly file: "components/layout.prop.ts";
|
|
757
|
+
readonly vocabulary: readonly [];
|
|
758
|
+
};
|
|
744
759
|
readonly FlexAlignProp: {
|
|
745
760
|
readonly group: "layout";
|
|
746
761
|
readonly file: "components/layout.prop.ts";
|
|
@@ -762,6 +777,10 @@ export declare const COMPONENT_PROP_REGISTRY: {
|
|
|
762
777
|
readonly field: "direction";
|
|
763
778
|
readonly local: true;
|
|
764
779
|
readonly reason: "Flex-specific axis control.";
|
|
780
|
+
}, {
|
|
781
|
+
readonly field: "marker";
|
|
782
|
+
readonly local: true;
|
|
783
|
+
readonly reason: 'List-marker seam for as="ul"/"ol" (disc | decimal | none). marker="none" emits no data-list, so a list keeps its element, its <li> semantics and its gap token while losing the bullet and the --space-5 indent — the home <ListRow as="li"> had none of, which forced a raw <ul> (gh#714).';
|
|
765
784
|
}, "GapProp", {
|
|
766
785
|
readonly field: "align";
|
|
767
786
|
readonly local: true;
|
|
@@ -799,6 +818,11 @@ export declare const COMPONENT_PROP_REGISTRY: {
|
|
|
799
818
|
readonly file: "components/layout.prop.ts";
|
|
800
819
|
readonly vocabulary: readonly [];
|
|
801
820
|
};
|
|
821
|
+
readonly ResponsiveGridAlignProp: {
|
|
822
|
+
readonly group: "layout";
|
|
823
|
+
readonly file: "components/layout.prop.ts";
|
|
824
|
+
readonly vocabulary: readonly [];
|
|
825
|
+
};
|
|
802
826
|
readonly MasterDetailRailWidthProp: {
|
|
803
827
|
readonly group: "layout";
|
|
804
828
|
readonly file: "components/layout.prop.ts";
|
|
@@ -1193,6 +1217,23 @@ export declare const COMPONENT_PROP_REGISTRY: {
|
|
|
1193
1217
|
readonly reason: "Ambient live-region opt-in — ActivityAnnounceProp vocabulary; deliberately NOT a boolean so the value names the politeness level.";
|
|
1194
1218
|
}];
|
|
1195
1219
|
};
|
|
1220
|
+
readonly IconGlyphProp: {
|
|
1221
|
+
readonly group: "general";
|
|
1222
|
+
readonly file: "components/general.prop.ts";
|
|
1223
|
+
readonly vocabulary: readonly ["IconProp", "IconSizeProp", "TextToneProp", "LabelProp", "ClassNameProp", {
|
|
1224
|
+
readonly field: "label";
|
|
1225
|
+
readonly local: true;
|
|
1226
|
+
readonly reason: "LabelProp narrowed to string: this becomes the glyph's aria-label, and an accessible name is TEXT — a ReactNode cannot be one.";
|
|
1227
|
+
}, {
|
|
1228
|
+
readonly field: "as";
|
|
1229
|
+
readonly local: true;
|
|
1230
|
+
readonly reason: "The glyph COMPONENT to render — the IconProp concept, widened to a component that also forwards SVG props and a ref, because Icon renders ONTO the glyph (the sized element is the <svg> itself) rather than wrapping it.";
|
|
1231
|
+
}, {
|
|
1232
|
+
readonly field: "size";
|
|
1233
|
+
readonly local: true;
|
|
1234
|
+
readonly reason: "IconSizeProp, the nine-step icon scale — deliberately NOT the four-step control SizeProp: a glyph beside 2xs caption text and a 48px empty-state mark are the same primitive.";
|
|
1235
|
+
}];
|
|
1236
|
+
};
|
|
1196
1237
|
readonly FloatButtonTypeProp: {
|
|
1197
1238
|
readonly group: "general";
|
|
1198
1239
|
readonly file: "components/general.prop.ts";
|
|
@@ -1322,6 +1363,15 @@ export declare const COMPONENT_PROP_REGISTRY: {
|
|
|
1322
1363
|
readonly file: "components/data-entry.prop.ts";
|
|
1323
1364
|
readonly vocabulary: readonly ["PlaceholderProp", "ValueProp", "DisabledProp"];
|
|
1324
1365
|
};
|
|
1366
|
+
readonly CommandProp: {
|
|
1367
|
+
readonly group: "data-entry";
|
|
1368
|
+
readonly file: "components/data-entry.prop.ts";
|
|
1369
|
+
readonly vocabulary: readonly [{
|
|
1370
|
+
readonly field: "split";
|
|
1371
|
+
readonly local: true;
|
|
1372
|
+
readonly reason: "antd List `split` — ruled-list presentation (row dividers, 0 list padding) for option/checkbox lists; the rest of the root API is cmdk's (gh#699).";
|
|
1373
|
+
}];
|
|
1374
|
+
};
|
|
1325
1375
|
readonly TextareaProp: {
|
|
1326
1376
|
readonly group: "data-entry";
|
|
1327
1377
|
readonly file: "components/data-entry.prop.ts";
|
|
@@ -1686,7 +1736,7 @@ export declare const COMPONENT_PROP_REGISTRY: {
|
|
|
1686
1736
|
readonly DataTableProp: {
|
|
1687
1737
|
readonly group: "data-display";
|
|
1688
1738
|
readonly file: "components/data-display.prop.ts";
|
|
1689
|
-
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"];
|
|
1739
|
+
readonly vocabulary: readonly ["ColumnDefProp", "DensityProp", "SortStateProp", "SelectedIdsProp", "GetRowLabelProp", "HandlerProp", "TablePresetProp", "TableColumnPriorityProp", "BreakpointProp", "ColumnFixedProp", "ColumnFilterItemProp", "ColumnFilterStateProp", "ColumnSorterProp", "TableRowSelectionProp", "TableExpandableProp", "TableSummaryProp", "TableScrollProp", "TableStickyProp", "OnRowProp", "TablePaginationProp", "TablePaginationPositionProp", "SortDirectionProp", "OnColumnFilterChangeProp"];
|
|
1690
1740
|
};
|
|
1691
1741
|
readonly ListRowDensityProp: {
|
|
1692
1742
|
readonly group: "data-display";
|
|
@@ -2883,7 +2933,11 @@ export declare const COMPONENT_PROP_REGISTRY: {
|
|
|
2883
2933
|
readonly vocabulary: readonly ["LabelProp", {
|
|
2884
2934
|
readonly field: "columns";
|
|
2885
2935
|
readonly local: true;
|
|
2886
|
-
readonly reason: "Labels
|
|
2936
|
+
readonly reason: "Labels, positive numeric unit counts and an optional muted flag (non-working period) define a consumer-supplied axis.";
|
|
2937
|
+
}, {
|
|
2938
|
+
readonly field: "bordered";
|
|
2939
|
+
readonly local: true;
|
|
2940
|
+
readonly reason: "Rules the body as a grid (row rules, header rule, a vertical rule per column); default true, same name and default as Calendar bordered.";
|
|
2887
2941
|
}, {
|
|
2888
2942
|
readonly field: "bands";
|
|
2889
2943
|
readonly local: true;
|