@jirawatpyk/aura-react 5.25.0 → 5.27.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/README.md +43 -2
- package/dist/aura.bundle.js +1979 -1731
- package/dist/cjs/index.cjs +1978 -1730
- package/dist/esm/Accordion.js +14 -2
- package/dist/esm/Checkbox.js +4 -2
- package/dist/esm/Combobox.js +3 -1
- package/dist/esm/Command.js +4 -2
- package/dist/esm/Container.js +14 -4
- package/dist/esm/DataTable.js +18 -1
- package/dist/esm/DatePicker.js +2 -0
- package/dist/esm/FilterDateRange.js +157 -0
- package/dist/esm/RadioGroup.js +5 -2
- package/dist/esm/Table.js +41 -5
- package/dist/esm/dates.js +14 -0
- package/dist/esm/index.js +2 -0
- package/dist/index.d.cts +86 -4
- package/dist/index.d.ts +86 -4
- package/dist/server/index.cjs +31 -5
- package/dist/server/index.d.cts +18 -0
- package/dist/server/index.d.ts +18 -0
- package/dist/server/index.js +31 -5
- package/dist/styles.css +64 -4
- package/dist/styles.layer.css +64 -4
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -236,6 +236,18 @@ export interface DataTableProps<Row extends Record<string, any> = Record<string,
|
|
|
236
236
|
density?: "comfortable" | "compact" | undefined;
|
|
237
237
|
/** Table width in px below which rows render as stacked cards (phones). Try 640. It follows the table's own width, not the window. Since 4.20 the cards are the same markup as the grid, laid out by a container query, so any width is right before hydration and each row is in the HTML once. With `height` (virtual rows) the server can only send the first screenful; the rest of the cards arrive on hydration. */
|
|
238
238
|
stackBelow?: number | undefined;
|
|
239
|
+
/** Edge to edge inside a Card (5.26, Chamber-OS 127): anywhere in a Card's content — also inside your own wrappers,
|
|
240
|
+
* as long as they add no padding or frame and don't clip or scroll (5.27, 130) — the table spans the card's full inner width, no side borders
|
|
241
|
+
* or radius, keeping its header band and top rule. As a direct child that is the card's last content (no footer,
|
|
242
|
+
* nothing after it), or with `bleedEnd`, it drops its bottom rule and the card's radius closes it. Below the Card's
|
|
243
|
+
* `flushBelow` width, and outside a Card, it does nothing. */
|
|
244
|
+
bleed?: boolean | undefined;
|
|
245
|
+
/** With `bleed`: the table ends the card even though it sits inside your wrappers — no bottom rule, the card's radius
|
|
246
|
+
* closes it. Only when nothing follows it in the card and the Card has no `footer` (5.27). */
|
|
247
|
+
bleedEnd?: boolean | undefined;
|
|
248
|
+
/** `false` drops the frame — border and radius — keeping the header band and the 24px gutter, for a table that sits
|
|
249
|
+
* in a section without bleeding (5.26). Default `true`. */
|
|
250
|
+
bordered?: boolean | undefined;
|
|
239
251
|
className?: string | undefined;
|
|
240
252
|
}
|
|
241
253
|
/** An AURA icon name, or any icon element (e.g. `<Building />` from lucide-react). AURA sizes it and hides it from screen readers. */
|
|
@@ -300,7 +312,9 @@ export interface CheckboxProps extends Omit<React$1.InputHTMLAttributes<HTMLInpu
|
|
|
300
312
|
hideLabel?: boolean | undefined;
|
|
301
313
|
/** The visible label beside the box. */
|
|
302
314
|
children?: React$1.ReactNode | undefined;
|
|
303
|
-
/** Second line under the visible label, linked by `aria-describedby` after any id you pass there (5.11).
|
|
315
|
+
/** Second line under the visible label, linked by `aria-describedby` after any id you pass there (5.11). Since 5.26
|
|
316
|
+
* it is not part of the name: the box is named by the visible label alone, or by your `aria-label` /
|
|
317
|
+
* `aria-labelledby` (Chamber-OS 125). */
|
|
304
318
|
description?: React$1.ReactNode | undefined;
|
|
305
319
|
onChange?: ((checked: boolean) => void) | undefined;
|
|
306
320
|
disabled?: boolean | undefined;
|
|
@@ -468,6 +482,7 @@ export interface CommandItem {
|
|
|
468
482
|
/** Items with the same group are listed together under its heading, in first-seen order. */
|
|
469
483
|
group?: string | undefined;
|
|
470
484
|
icon?: IconInput | undefined;
|
|
485
|
+
/** A second line; read after the item's name (label and shortcut), not as part of it (5.26). */
|
|
471
486
|
description?: string | undefined;
|
|
472
487
|
/** Extra words that find it ("invoice" → Billing). */
|
|
473
488
|
keywords?: string[] | undefined;
|
|
@@ -542,6 +557,8 @@ export interface FilterSelectProps extends Omit<React$1.SelectHTMLAttributes<HTM
|
|
|
542
557
|
* readers keep the option's own text. */
|
|
543
558
|
allLabel?: string | undefined;
|
|
544
559
|
}
|
|
560
|
+
/** A RadioGroup option. `description` is a second line under the label; since 5.26 the radio is named by `label`
|
|
561
|
+
* alone and the description is read after it (`aria-describedby`), also when the option is disabled (Chamber-OS 125). */
|
|
545
562
|
export type ChoiceOption = string | {
|
|
546
563
|
value: string;
|
|
547
564
|
label: string;
|
|
@@ -841,7 +858,7 @@ export interface DropdownMenuProps {
|
|
|
841
858
|
export interface ComboboxOption {
|
|
842
859
|
value: string;
|
|
843
860
|
label: string;
|
|
844
|
-
/** Second line in the list; also searched. */
|
|
861
|
+
/** Second line in the list; also searched. Read after the option's name, not as part of it (5.26). */
|
|
845
862
|
description?: string | undefined;
|
|
846
863
|
/** Extra search terms (English name, phone, code…). */
|
|
847
864
|
keywords?: string[] | undefined;
|
|
@@ -1035,6 +1052,39 @@ export interface DateRange {
|
|
|
1035
1052
|
start: ISODate | null;
|
|
1036
1053
|
end: ISODate | null;
|
|
1037
1054
|
}
|
|
1055
|
+
/** A FilterDateRange preset: a name and the range it sets (5.26). */
|
|
1056
|
+
export interface DateRangePreset {
|
|
1057
|
+
label: string;
|
|
1058
|
+
range: DateRange;
|
|
1059
|
+
}
|
|
1060
|
+
/** A compact date-range filter for FilterBar (5.26, Chamber-OS 128): "Submitted Any time ▾", one click to the range
|
|
1061
|
+
* calendar. Dates as DateRangePicker: `locale` / `calendar` from the provider (Thai shows Buddhist-era years), `min`,
|
|
1062
|
+
* `max`, `timeZone`, `weekStartsOn`. */
|
|
1063
|
+
export interface FilterDateRangeProps extends DateDisplayOptions, Pick<React$1.HTMLAttributes<HTMLButtonElement>, "style">, React$1.AriaAttributes, DataAttributes {
|
|
1064
|
+
/** The filter's name: first on the face ("Submitted"), the popover's name, and the start of the face's accessible
|
|
1065
|
+
* name ("Submitted: Any time"). */
|
|
1066
|
+
label: string;
|
|
1067
|
+
value?: DateRange | undefined;
|
|
1068
|
+
defaultValue?: DateRange | undefined;
|
|
1069
|
+
/** Runs once a range is complete, a preset is picked, or "Any time" clears it — never on a lone start day, and
|
|
1070
|
+
* not when the same range is picked again. There is no form field: write the range to the URL or state here. */
|
|
1071
|
+
onChange?: ((value: DateRange) => void) | undefined;
|
|
1072
|
+
/** Choices beside the calendar (Last 7 days, This month…), each setting a whole range; one that reaches past
|
|
1073
|
+
* `min` / `max` or onto an `isDateDisabled` day is shown disabled. */
|
|
1074
|
+
presets?: DateRangePreset[] | undefined;
|
|
1075
|
+
/** The empty value and the choice that clears it. Default "Any time" in the date locale. */
|
|
1076
|
+
anyLabel?: string | undefined;
|
|
1077
|
+
min?: ISODate | "today" | undefined;
|
|
1078
|
+
max?: ISODate | "today" | undefined;
|
|
1079
|
+
isDateDisabled?: ((iso: ISODate) => boolean) | undefined;
|
|
1080
|
+
weekStartsOn?: 0 | 1 | undefined;
|
|
1081
|
+
timeZone?: string | undefined;
|
|
1082
|
+
/** Today, given outright (ISO); wins over `timeZone`. */
|
|
1083
|
+
today?: ISODate | undefined;
|
|
1084
|
+
disabled?: boolean | undefined;
|
|
1085
|
+
id?: string | undefined;
|
|
1086
|
+
className?: string | undefined;
|
|
1087
|
+
}
|
|
1038
1088
|
export interface DateRangePickerProps extends DateFieldProps {
|
|
1039
1089
|
value?: DateRange | undefined;
|
|
1040
1090
|
defaultValue?: DateRange | undefined;
|
|
@@ -1149,6 +1199,26 @@ export interface TableProps extends Omit<React$1.TableHTMLAttributes<HTMLTableEl
|
|
|
1149
1199
|
/** `false` (5.13) drops the frame — border, radius, background — and the outer cells' side padding, so the table
|
|
1150
1200
|
* lines up with the content around it, e.g. flush inside a Card under its heading. Default `true`. */
|
|
1151
1201
|
bordered?: boolean | undefined;
|
|
1202
|
+
/** Edge to edge inside a Card (5.26, Chamber-OS 127): anywhere in a Card's content — also inside your own wrappers,
|
|
1203
|
+
* as long as they add no padding or frame and don't clip or scroll (5.27, 130) — the table spans the card's full inner width, no side borders
|
|
1204
|
+
* or radius, keeping its header band and top rule, and its 24px outer cells keep the text level with the card's
|
|
1205
|
+
* content. As a direct child that is the card's last content, or with `bleedEnd`, it drops its bottom rule and the
|
|
1206
|
+
* card's radius closes it. Below the Card's `flushBelow` width, and outside a Card, it does nothing. With
|
|
1207
|
+
* `bordered={false}` too, the outer cells take the card's padding while it bleeds. */
|
|
1208
|
+
bleed?: boolean | undefined;
|
|
1209
|
+
/** With `bleed`: the table ends the card even though it sits inside your wrappers — only when nothing follows it in
|
|
1210
|
+
* the card and the Card has no `footer` (5.27). */
|
|
1211
|
+
bleedEnd?: boolean | undefined;
|
|
1212
|
+
/** Keep the header row in view while the rows scroll (5.26, Chamber-OS 129), with its band, its bottom rule and
|
|
1213
|
+
* above the body. Without `maxHeight` it pins to the page's scroll, under an AppShell's top bar
|
|
1214
|
+
* (`--aura-shell-bar-height`; set `--aura-table-sticky-top` for another offset). A table wider than its box
|
|
1215
|
+
* scrolls sideways instead and its header can't pin to the page then: give it `maxHeight`. Inside your own scroll
|
|
1216
|
+
* container within an AppShell set `--aura-table-sticky-top: 0px` or use `maxHeight`. With `maxHeight` the box
|
|
1217
|
+
* scrolls both ways and the header pins to its top. One header row. Stacked rows (`stackBelow`) have no visible header, so it
|
|
1218
|
+
* does nothing there. Default off. */
|
|
1219
|
+
stickyHeader?: boolean | undefined;
|
|
1220
|
+
/** Caps the table's box (px, or any CSS length such as `60vh`); the rows scroll inside it. (5.26) */
|
|
1221
|
+
maxHeight?: number | string | undefined;
|
|
1152
1222
|
/** How stacked rows look (5.15, Chamber-OS 85): `list` (default) — one frame, rows divided by rules; `cards` —
|
|
1153
1223
|
* each row its own framed card, spaced like DataTable's cards, with no frame around them. From the `stackBelow`
|
|
1154
1224
|
* width up the table is unchanged. The table then sits in one more `div` (`.aura-tbl-cards`). */
|
|
@@ -1421,6 +1491,7 @@ export interface PaginationProps {
|
|
|
1421
1491
|
export interface AccordionItem {
|
|
1422
1492
|
id: string;
|
|
1423
1493
|
title: React$1.ReactNode;
|
|
1494
|
+
/** A second line under the title; read as the header button's description, not its name (5.26). */
|
|
1424
1495
|
description?: React$1.ReactNode | undefined;
|
|
1425
1496
|
content: React$1.ReactNode;
|
|
1426
1497
|
icon?: IconInput | undefined;
|
|
@@ -1548,6 +1619,10 @@ export declare const Select: React$1.ForwardRefExoticComponent<SelectProps & Rea
|
|
|
1548
1619
|
/** A compact filter for FilterBar (5.12): a small button reading "Status All ▾" that opens Select's list. The name
|
|
1549
1620
|
* is the accessible name, the chosen option its value; forms, refs and the keyboard work as in Select. */
|
|
1550
1621
|
export declare const FilterSelect: React$1.ForwardRefExoticComponent<FilterSelectProps & React$1.RefAttributes<HTMLSelectElement>>;
|
|
1622
|
+
/** A compact date-range filter for FilterBar (5.26, Chamber-OS 128): a face like FilterSelect's — "Submitted Any
|
|
1623
|
+
* time ▾" — that opens the range calendar, with optional presets, in one click. `onChange` runs once a range is
|
|
1624
|
+
* complete, a preset is picked or the range is cleared; never on a lone start day. */
|
|
1625
|
+
export declare const FilterDateRange: React$1.ForwardRefExoticComponent<FilterDateRangeProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
1551
1626
|
export declare const RadioGroup: React$1.ForwardRefExoticComponent<RadioGroupProps & React$1.RefAttributes<HTMLFieldSetElement>>;
|
|
1552
1627
|
export declare const Switch: React$1.ForwardRefExoticComponent<SwitchProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
1553
1628
|
/** One value, or with `multiple` any number (chips). Two call signatures so value/onChange are typed for each. */
|
|
@@ -1644,11 +1719,18 @@ export declare const Avatar: React$1.ForwardRefExoticComponent<AvatarProps & Rea
|
|
|
1644
1719
|
export declare const Stack: React$1.ForwardRefExoticComponent<StackProps & React$1.RefAttributes<HTMLElement>>;
|
|
1645
1720
|
/** Grid — equal columns. columns may be responsive ({ base: 1, md: 2, lg: 3 }), or use minItemWidth to fit as many as fit. */
|
|
1646
1721
|
export declare const Grid: React$1.ForwardRefExoticComponent<GridProps & React$1.RefAttributes<HTMLElement>>;
|
|
1647
|
-
/** Centred page column.
|
|
1648
|
-
|
|
1722
|
+
/** Centred page column. To name it (`aria-label`), render a landmark with `as="section"` (or `main`, `nav`): a
|
|
1723
|
+
* plain `div` may not carry a name. */
|
|
1724
|
+
export interface ContainerProps extends Pick<React$1.HTMLAttributes<HTMLElement>, "id" | "lang" | "dir">, React$1.AriaAttributes, DataAttributes {
|
|
1649
1725
|
/** `narrow` caps it at aura-container-narrow (720px). Default `default` (1280px). */
|
|
1650
1726
|
size?: "default" | "narrow" | undefined;
|
|
1727
|
+
/** `start` puts the column at the start edge (left; right in RTL) instead of centring it — a form board beside
|
|
1728
|
+
* the page's start (5.26, Chamber-OS 126). Default `center`. */
|
|
1729
|
+
align?: "center" | "start" | undefined;
|
|
1651
1730
|
as?: keyof React$1.JSX.IntrinsicElements | undefined;
|
|
1731
|
+
/** Utilities that set `max-width`, `margin` or `padding` (e.g. `max-w-[672px] mx-0`, your own gutter) are supported
|
|
1732
|
+
* with `styles.layer.css`, where a utility beats `.aura-container` (5.26; padding 5.27). Also exported from
|
|
1733
|
+
* `/server` for Server Components (5.27). */
|
|
1652
1734
|
className?: string | undefined;
|
|
1653
1735
|
style?: React$1.CSSProperties | undefined;
|
|
1654
1736
|
children?: React$1.ReactNode | undefined;
|
package/dist/index.d.ts
CHANGED
|
@@ -236,6 +236,18 @@ export interface DataTableProps<Row extends Record<string, any> = Record<string,
|
|
|
236
236
|
density?: "comfortable" | "compact" | undefined;
|
|
237
237
|
/** Table width in px below which rows render as stacked cards (phones). Try 640. It follows the table's own width, not the window. Since 4.20 the cards are the same markup as the grid, laid out by a container query, so any width is right before hydration and each row is in the HTML once. With `height` (virtual rows) the server can only send the first screenful; the rest of the cards arrive on hydration. */
|
|
238
238
|
stackBelow?: number | undefined;
|
|
239
|
+
/** Edge to edge inside a Card (5.26, Chamber-OS 127): anywhere in a Card's content — also inside your own wrappers,
|
|
240
|
+
* as long as they add no padding or frame and don't clip or scroll (5.27, 130) — the table spans the card's full inner width, no side borders
|
|
241
|
+
* or radius, keeping its header band and top rule. As a direct child that is the card's last content (no footer,
|
|
242
|
+
* nothing after it), or with `bleedEnd`, it drops its bottom rule and the card's radius closes it. Below the Card's
|
|
243
|
+
* `flushBelow` width, and outside a Card, it does nothing. */
|
|
244
|
+
bleed?: boolean | undefined;
|
|
245
|
+
/** With `bleed`: the table ends the card even though it sits inside your wrappers — no bottom rule, the card's radius
|
|
246
|
+
* closes it. Only when nothing follows it in the card and the Card has no `footer` (5.27). */
|
|
247
|
+
bleedEnd?: boolean | undefined;
|
|
248
|
+
/** `false` drops the frame — border and radius — keeping the header band and the 24px gutter, for a table that sits
|
|
249
|
+
* in a section without bleeding (5.26). Default `true`. */
|
|
250
|
+
bordered?: boolean | undefined;
|
|
239
251
|
className?: string | undefined;
|
|
240
252
|
}
|
|
241
253
|
/** An AURA icon name, or any icon element (e.g. `<Building />` from lucide-react). AURA sizes it and hides it from screen readers. */
|
|
@@ -300,7 +312,9 @@ export interface CheckboxProps extends Omit<React$1.InputHTMLAttributes<HTMLInpu
|
|
|
300
312
|
hideLabel?: boolean | undefined;
|
|
301
313
|
/** The visible label beside the box. */
|
|
302
314
|
children?: React$1.ReactNode | undefined;
|
|
303
|
-
/** Second line under the visible label, linked by `aria-describedby` after any id you pass there (5.11).
|
|
315
|
+
/** Second line under the visible label, linked by `aria-describedby` after any id you pass there (5.11). Since 5.26
|
|
316
|
+
* it is not part of the name: the box is named by the visible label alone, or by your `aria-label` /
|
|
317
|
+
* `aria-labelledby` (Chamber-OS 125). */
|
|
304
318
|
description?: React$1.ReactNode | undefined;
|
|
305
319
|
onChange?: ((checked: boolean) => void) | undefined;
|
|
306
320
|
disabled?: boolean | undefined;
|
|
@@ -468,6 +482,7 @@ export interface CommandItem {
|
|
|
468
482
|
/** Items with the same group are listed together under its heading, in first-seen order. */
|
|
469
483
|
group?: string | undefined;
|
|
470
484
|
icon?: IconInput | undefined;
|
|
485
|
+
/** A second line; read after the item's name (label and shortcut), not as part of it (5.26). */
|
|
471
486
|
description?: string | undefined;
|
|
472
487
|
/** Extra words that find it ("invoice" → Billing). */
|
|
473
488
|
keywords?: string[] | undefined;
|
|
@@ -542,6 +557,8 @@ export interface FilterSelectProps extends Omit<React$1.SelectHTMLAttributes<HTM
|
|
|
542
557
|
* readers keep the option's own text. */
|
|
543
558
|
allLabel?: string | undefined;
|
|
544
559
|
}
|
|
560
|
+
/** A RadioGroup option. `description` is a second line under the label; since 5.26 the radio is named by `label`
|
|
561
|
+
* alone and the description is read after it (`aria-describedby`), also when the option is disabled (Chamber-OS 125). */
|
|
545
562
|
export type ChoiceOption = string | {
|
|
546
563
|
value: string;
|
|
547
564
|
label: string;
|
|
@@ -841,7 +858,7 @@ export interface DropdownMenuProps {
|
|
|
841
858
|
export interface ComboboxOption {
|
|
842
859
|
value: string;
|
|
843
860
|
label: string;
|
|
844
|
-
/** Second line in the list; also searched. */
|
|
861
|
+
/** Second line in the list; also searched. Read after the option's name, not as part of it (5.26). */
|
|
845
862
|
description?: string | undefined;
|
|
846
863
|
/** Extra search terms (English name, phone, code…). */
|
|
847
864
|
keywords?: string[] | undefined;
|
|
@@ -1035,6 +1052,39 @@ export interface DateRange {
|
|
|
1035
1052
|
start: ISODate | null;
|
|
1036
1053
|
end: ISODate | null;
|
|
1037
1054
|
}
|
|
1055
|
+
/** A FilterDateRange preset: a name and the range it sets (5.26). */
|
|
1056
|
+
export interface DateRangePreset {
|
|
1057
|
+
label: string;
|
|
1058
|
+
range: DateRange;
|
|
1059
|
+
}
|
|
1060
|
+
/** A compact date-range filter for FilterBar (5.26, Chamber-OS 128): "Submitted Any time ▾", one click to the range
|
|
1061
|
+
* calendar. Dates as DateRangePicker: `locale` / `calendar` from the provider (Thai shows Buddhist-era years), `min`,
|
|
1062
|
+
* `max`, `timeZone`, `weekStartsOn`. */
|
|
1063
|
+
export interface FilterDateRangeProps extends DateDisplayOptions, Pick<React$1.HTMLAttributes<HTMLButtonElement>, "style">, React$1.AriaAttributes, DataAttributes {
|
|
1064
|
+
/** The filter's name: first on the face ("Submitted"), the popover's name, and the start of the face's accessible
|
|
1065
|
+
* name ("Submitted: Any time"). */
|
|
1066
|
+
label: string;
|
|
1067
|
+
value?: DateRange | undefined;
|
|
1068
|
+
defaultValue?: DateRange | undefined;
|
|
1069
|
+
/** Runs once a range is complete, a preset is picked, or "Any time" clears it — never on a lone start day, and
|
|
1070
|
+
* not when the same range is picked again. There is no form field: write the range to the URL or state here. */
|
|
1071
|
+
onChange?: ((value: DateRange) => void) | undefined;
|
|
1072
|
+
/** Choices beside the calendar (Last 7 days, This month…), each setting a whole range; one that reaches past
|
|
1073
|
+
* `min` / `max` or onto an `isDateDisabled` day is shown disabled. */
|
|
1074
|
+
presets?: DateRangePreset[] | undefined;
|
|
1075
|
+
/** The empty value and the choice that clears it. Default "Any time" in the date locale. */
|
|
1076
|
+
anyLabel?: string | undefined;
|
|
1077
|
+
min?: ISODate | "today" | undefined;
|
|
1078
|
+
max?: ISODate | "today" | undefined;
|
|
1079
|
+
isDateDisabled?: ((iso: ISODate) => boolean) | undefined;
|
|
1080
|
+
weekStartsOn?: 0 | 1 | undefined;
|
|
1081
|
+
timeZone?: string | undefined;
|
|
1082
|
+
/** Today, given outright (ISO); wins over `timeZone`. */
|
|
1083
|
+
today?: ISODate | undefined;
|
|
1084
|
+
disabled?: boolean | undefined;
|
|
1085
|
+
id?: string | undefined;
|
|
1086
|
+
className?: string | undefined;
|
|
1087
|
+
}
|
|
1038
1088
|
export interface DateRangePickerProps extends DateFieldProps {
|
|
1039
1089
|
value?: DateRange | undefined;
|
|
1040
1090
|
defaultValue?: DateRange | undefined;
|
|
@@ -1149,6 +1199,26 @@ export interface TableProps extends Omit<React$1.TableHTMLAttributes<HTMLTableEl
|
|
|
1149
1199
|
/** `false` (5.13) drops the frame — border, radius, background — and the outer cells' side padding, so the table
|
|
1150
1200
|
* lines up with the content around it, e.g. flush inside a Card under its heading. Default `true`. */
|
|
1151
1201
|
bordered?: boolean | undefined;
|
|
1202
|
+
/** Edge to edge inside a Card (5.26, Chamber-OS 127): anywhere in a Card's content — also inside your own wrappers,
|
|
1203
|
+
* as long as they add no padding or frame and don't clip or scroll (5.27, 130) — the table spans the card's full inner width, no side borders
|
|
1204
|
+
* or radius, keeping its header band and top rule, and its 24px outer cells keep the text level with the card's
|
|
1205
|
+
* content. As a direct child that is the card's last content, or with `bleedEnd`, it drops its bottom rule and the
|
|
1206
|
+
* card's radius closes it. Below the Card's `flushBelow` width, and outside a Card, it does nothing. With
|
|
1207
|
+
* `bordered={false}` too, the outer cells take the card's padding while it bleeds. */
|
|
1208
|
+
bleed?: boolean | undefined;
|
|
1209
|
+
/** With `bleed`: the table ends the card even though it sits inside your wrappers — only when nothing follows it in
|
|
1210
|
+
* the card and the Card has no `footer` (5.27). */
|
|
1211
|
+
bleedEnd?: boolean | undefined;
|
|
1212
|
+
/** Keep the header row in view while the rows scroll (5.26, Chamber-OS 129), with its band, its bottom rule and
|
|
1213
|
+
* above the body. Without `maxHeight` it pins to the page's scroll, under an AppShell's top bar
|
|
1214
|
+
* (`--aura-shell-bar-height`; set `--aura-table-sticky-top` for another offset). A table wider than its box
|
|
1215
|
+
* scrolls sideways instead and its header can't pin to the page then: give it `maxHeight`. Inside your own scroll
|
|
1216
|
+
* container within an AppShell set `--aura-table-sticky-top: 0px` or use `maxHeight`. With `maxHeight` the box
|
|
1217
|
+
* scrolls both ways and the header pins to its top. One header row. Stacked rows (`stackBelow`) have no visible header, so it
|
|
1218
|
+
* does nothing there. Default off. */
|
|
1219
|
+
stickyHeader?: boolean | undefined;
|
|
1220
|
+
/** Caps the table's box (px, or any CSS length such as `60vh`); the rows scroll inside it. (5.26) */
|
|
1221
|
+
maxHeight?: number | string | undefined;
|
|
1152
1222
|
/** How stacked rows look (5.15, Chamber-OS 85): `list` (default) — one frame, rows divided by rules; `cards` —
|
|
1153
1223
|
* each row its own framed card, spaced like DataTable's cards, with no frame around them. From the `stackBelow`
|
|
1154
1224
|
* width up the table is unchanged. The table then sits in one more `div` (`.aura-tbl-cards`). */
|
|
@@ -1421,6 +1491,7 @@ export interface PaginationProps {
|
|
|
1421
1491
|
export interface AccordionItem {
|
|
1422
1492
|
id: string;
|
|
1423
1493
|
title: React$1.ReactNode;
|
|
1494
|
+
/** A second line under the title; read as the header button's description, not its name (5.26). */
|
|
1424
1495
|
description?: React$1.ReactNode | undefined;
|
|
1425
1496
|
content: React$1.ReactNode;
|
|
1426
1497
|
icon?: IconInput | undefined;
|
|
@@ -1548,6 +1619,10 @@ export declare const Select: React$1.ForwardRefExoticComponent<SelectProps & Rea
|
|
|
1548
1619
|
/** A compact filter for FilterBar (5.12): a small button reading "Status All ▾" that opens Select's list. The name
|
|
1549
1620
|
* is the accessible name, the chosen option its value; forms, refs and the keyboard work as in Select. */
|
|
1550
1621
|
export declare const FilterSelect: React$1.ForwardRefExoticComponent<FilterSelectProps & React$1.RefAttributes<HTMLSelectElement>>;
|
|
1622
|
+
/** A compact date-range filter for FilterBar (5.26, Chamber-OS 128): a face like FilterSelect's — "Submitted Any
|
|
1623
|
+
* time ▾" — that opens the range calendar, with optional presets, in one click. `onChange` runs once a range is
|
|
1624
|
+
* complete, a preset is picked or the range is cleared; never on a lone start day. */
|
|
1625
|
+
export declare const FilterDateRange: React$1.ForwardRefExoticComponent<FilterDateRangeProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
1551
1626
|
export declare const RadioGroup: React$1.ForwardRefExoticComponent<RadioGroupProps & React$1.RefAttributes<HTMLFieldSetElement>>;
|
|
1552
1627
|
export declare const Switch: React$1.ForwardRefExoticComponent<SwitchProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
1553
1628
|
/** One value, or with `multiple` any number (chips). Two call signatures so value/onChange are typed for each. */
|
|
@@ -1644,11 +1719,18 @@ export declare const Avatar: React$1.ForwardRefExoticComponent<AvatarProps & Rea
|
|
|
1644
1719
|
export declare const Stack: React$1.ForwardRefExoticComponent<StackProps & React$1.RefAttributes<HTMLElement>>;
|
|
1645
1720
|
/** Grid — equal columns. columns may be responsive ({ base: 1, md: 2, lg: 3 }), or use minItemWidth to fit as many as fit. */
|
|
1646
1721
|
export declare const Grid: React$1.ForwardRefExoticComponent<GridProps & React$1.RefAttributes<HTMLElement>>;
|
|
1647
|
-
/** Centred page column.
|
|
1648
|
-
|
|
1722
|
+
/** Centred page column. To name it (`aria-label`), render a landmark with `as="section"` (or `main`, `nav`): a
|
|
1723
|
+
* plain `div` may not carry a name. */
|
|
1724
|
+
export interface ContainerProps extends Pick<React$1.HTMLAttributes<HTMLElement>, "id" | "lang" | "dir">, React$1.AriaAttributes, DataAttributes {
|
|
1649
1725
|
/** `narrow` caps it at aura-container-narrow (720px). Default `default` (1280px). */
|
|
1650
1726
|
size?: "default" | "narrow" | undefined;
|
|
1727
|
+
/** `start` puts the column at the start edge (left; right in RTL) instead of centring it — a form board beside
|
|
1728
|
+
* the page's start (5.26, Chamber-OS 126). Default `center`. */
|
|
1729
|
+
align?: "center" | "start" | undefined;
|
|
1651
1730
|
as?: keyof React$1.JSX.IntrinsicElements | undefined;
|
|
1731
|
+
/** Utilities that set `max-width`, `margin` or `padding` (e.g. `max-w-[672px] mx-0`, your own gutter) are supported
|
|
1732
|
+
* with `styles.layer.css`, where a utility beats `.aura-container` (5.26; padding 5.27). Also exported from
|
|
1733
|
+
* `/server` for Server Components (5.27). */
|
|
1652
1734
|
className?: string | undefined;
|
|
1653
1735
|
style?: React$1.CSSProperties | undefined;
|
|
1654
1736
|
children?: React$1.ReactNode | undefined;
|
package/dist/server/index.cjs
CHANGED
|
@@ -34,6 +34,7 @@ __export(server_exports, {
|
|
|
34
34
|
Avatar: () => ServerAvatar,
|
|
35
35
|
Badge: () => ServerBadge,
|
|
36
36
|
Card: () => ServerCard,
|
|
37
|
+
Container: () => Container,
|
|
37
38
|
EmptyState: () => ServerEmptyState,
|
|
38
39
|
Icon: () => Icon,
|
|
39
40
|
STRINGS: () => STRINGS,
|
|
@@ -605,14 +606,14 @@ var STRINGS = {
|
|
|
605
606
|
|
|
606
607
|
// src/theme.ts
|
|
607
608
|
function hexToRgb(hex) {
|
|
608
|
-
let
|
|
609
|
-
if (
|
|
610
|
-
|
|
609
|
+
let h4 = String(hex).trim().replace("#", "");
|
|
610
|
+
if (h4.length === 3)
|
|
611
|
+
h4 = h4.split("").map(function(c) {
|
|
611
612
|
return c + c;
|
|
612
613
|
}).join("");
|
|
613
|
-
if (!/^[0-9a-f]{6}$/i.test(
|
|
614
|
+
if (!/^[0-9a-f]{6}$/i.test(h4)) throw new Error('createTheme: "' + hex + '" is not a #rgb or #rrggbb colour');
|
|
614
615
|
return [0, 2, 4].map(function(i) {
|
|
615
|
-
return parseInt(
|
|
616
|
+
return parseInt(h4.slice(i, i + 2), 16) / 255;
|
|
616
617
|
});
|
|
617
618
|
}
|
|
618
619
|
function rgbToHex(rgb) {
|
|
@@ -1318,3 +1319,28 @@ function ServerStat(props) {
|
|
|
1318
1319
|
function ServerAvatar(props) {
|
|
1319
1320
|
return avatarElement(props, void 0, null, void 0);
|
|
1320
1321
|
}
|
|
1322
|
+
|
|
1323
|
+
// src/Container.tsx
|
|
1324
|
+
var React4 = __toESM(require("react"), 1);
|
|
1325
|
+
var h3 = React4.createElement;
|
|
1326
|
+
var Container = React4.forwardRef(function Container2(props, ref) {
|
|
1327
|
+
const attrs = {};
|
|
1328
|
+
Object.keys(props).forEach(function(k) {
|
|
1329
|
+
if (k === "id" || k === "lang" || k === "dir" || /^(aria|data)-/.test(k))
|
|
1330
|
+
attrs[k] = props[k];
|
|
1331
|
+
});
|
|
1332
|
+
return h3(
|
|
1333
|
+
props.as || "div",
|
|
1334
|
+
Object.assign(attrs, {
|
|
1335
|
+
ref,
|
|
1336
|
+
className: cx(
|
|
1337
|
+
"aura-container",
|
|
1338
|
+
props.size === "narrow" && "is-narrow",
|
|
1339
|
+
props.align === "start" && "is-start",
|
|
1340
|
+
props.className
|
|
1341
|
+
),
|
|
1342
|
+
style: props.style
|
|
1343
|
+
}),
|
|
1344
|
+
props.children
|
|
1345
|
+
);
|
|
1346
|
+
});
|
package/dist/server/index.d.cts
CHANGED
|
@@ -386,6 +386,24 @@ declare function ServerAvatar(props: AvatarProps): React$1.ReactElement;
|
|
|
386
386
|
* render names with `/server`'s Icon (the two entries keep separate registries). */
|
|
387
387
|
export declare function registerIcons(icons: readonly AuraIcon[]): void;
|
|
388
388
|
export declare const Icon: React$1.ForwardRefExoticComponent<IconProps & React$1.RefAttributes<SVGSVGElement>>;
|
|
389
|
+
/** Centred page column. To name it (`aria-label`), render a landmark with `as="section"` (or `main`, `nav`): a
|
|
390
|
+
* plain `div` may not carry a name. */
|
|
391
|
+
export interface ContainerProps extends Pick<React$1.HTMLAttributes<HTMLElement>, "id" | "lang" | "dir">, React$1.AriaAttributes, DataAttributes {
|
|
392
|
+
/** `narrow` caps it at aura-container-narrow (720px). Default `default` (1280px). */
|
|
393
|
+
size?: "default" | "narrow" | undefined;
|
|
394
|
+
/** `start` puts the column at the start edge (left; right in RTL) instead of centring it — a form board beside
|
|
395
|
+
* the page's start (5.26, Chamber-OS 126). Default `center`. */
|
|
396
|
+
align?: "center" | "start" | undefined;
|
|
397
|
+
as?: keyof React$1.JSX.IntrinsicElements | undefined;
|
|
398
|
+
/** Utilities that set `max-width`, `margin` or `padding` (e.g. `max-w-[672px] mx-0`, your own gutter) are supported
|
|
399
|
+
* with `styles.layer.css`, where a utility beats `.aura-container` (5.26; padding 5.27). Also exported from
|
|
400
|
+
* `/server` for Server Components (5.27). */
|
|
401
|
+
className?: string | undefined;
|
|
402
|
+
style?: React$1.CSSProperties | undefined;
|
|
403
|
+
children?: React$1.ReactNode | undefined;
|
|
404
|
+
}
|
|
405
|
+
/** Container — centres content up to aura-container-max (1280px) with responsive side padding. */
|
|
406
|
+
export declare const Container: React$1.ForwardRefExoticComponent<ContainerProps & React$1.RefAttributes<HTMLElement>>;
|
|
389
407
|
|
|
390
408
|
export {
|
|
391
409
|
ServerAlert as Alert,
|
package/dist/server/index.d.ts
CHANGED
|
@@ -386,6 +386,24 @@ declare function ServerAvatar(props: AvatarProps): React$1.ReactElement;
|
|
|
386
386
|
* render names with `/server`'s Icon (the two entries keep separate registries). */
|
|
387
387
|
export declare function registerIcons(icons: readonly AuraIcon[]): void;
|
|
388
388
|
export declare const Icon: React$1.ForwardRefExoticComponent<IconProps & React$1.RefAttributes<SVGSVGElement>>;
|
|
389
|
+
/** Centred page column. To name it (`aria-label`), render a landmark with `as="section"` (or `main`, `nav`): a
|
|
390
|
+
* plain `div` may not carry a name. */
|
|
391
|
+
export interface ContainerProps extends Pick<React$1.HTMLAttributes<HTMLElement>, "id" | "lang" | "dir">, React$1.AriaAttributes, DataAttributes {
|
|
392
|
+
/** `narrow` caps it at aura-container-narrow (720px). Default `default` (1280px). */
|
|
393
|
+
size?: "default" | "narrow" | undefined;
|
|
394
|
+
/** `start` puts the column at the start edge (left; right in RTL) instead of centring it — a form board beside
|
|
395
|
+
* the page's start (5.26, Chamber-OS 126). Default `center`. */
|
|
396
|
+
align?: "center" | "start" | undefined;
|
|
397
|
+
as?: keyof React$1.JSX.IntrinsicElements | undefined;
|
|
398
|
+
/** Utilities that set `max-width`, `margin` or `padding` (e.g. `max-w-[672px] mx-0`, your own gutter) are supported
|
|
399
|
+
* with `styles.layer.css`, where a utility beats `.aura-container` (5.26; padding 5.27). Also exported from
|
|
400
|
+
* `/server` for Server Components (5.27). */
|
|
401
|
+
className?: string | undefined;
|
|
402
|
+
style?: React$1.CSSProperties | undefined;
|
|
403
|
+
children?: React$1.ReactNode | undefined;
|
|
404
|
+
}
|
|
405
|
+
/** Container — centres content up to aura-container-max (1280px) with responsive side padding. */
|
|
406
|
+
export declare const Container: React$1.ForwardRefExoticComponent<ContainerProps & React$1.RefAttributes<HTMLElement>>;
|
|
389
407
|
|
|
390
408
|
export {
|
|
391
409
|
ServerAlert as Alert,
|
package/dist/server/index.js
CHANGED
|
@@ -546,14 +546,14 @@ var STRINGS = {
|
|
|
546
546
|
|
|
547
547
|
// src/theme.ts
|
|
548
548
|
function hexToRgb(hex) {
|
|
549
|
-
let
|
|
550
|
-
if (
|
|
551
|
-
|
|
549
|
+
let h4 = String(hex).trim().replace("#", "");
|
|
550
|
+
if (h4.length === 3)
|
|
551
|
+
h4 = h4.split("").map(function(c) {
|
|
552
552
|
return c + c;
|
|
553
553
|
}).join("");
|
|
554
|
-
if (!/^[0-9a-f]{6}$/i.test(
|
|
554
|
+
if (!/^[0-9a-f]{6}$/i.test(h4)) throw new Error('createTheme: "' + hex + '" is not a #rgb or #rrggbb colour');
|
|
555
555
|
return [0, 2, 4].map(function(i) {
|
|
556
|
-
return parseInt(
|
|
556
|
+
return parseInt(h4.slice(i, i + 2), 16) / 255;
|
|
557
557
|
});
|
|
558
558
|
}
|
|
559
559
|
function rgbToHex(rgb) {
|
|
@@ -1259,11 +1259,37 @@ function ServerStat(props) {
|
|
|
1259
1259
|
function ServerAvatar(props) {
|
|
1260
1260
|
return avatarElement(props, void 0, null, void 0);
|
|
1261
1261
|
}
|
|
1262
|
+
|
|
1263
|
+
// src/Container.tsx
|
|
1264
|
+
import * as React4 from "react";
|
|
1265
|
+
var h3 = React4.createElement;
|
|
1266
|
+
var Container = React4.forwardRef(function Container2(props, ref) {
|
|
1267
|
+
const attrs = {};
|
|
1268
|
+
Object.keys(props).forEach(function(k) {
|
|
1269
|
+
if (k === "id" || k === "lang" || k === "dir" || /^(aria|data)-/.test(k))
|
|
1270
|
+
attrs[k] = props[k];
|
|
1271
|
+
});
|
|
1272
|
+
return h3(
|
|
1273
|
+
props.as || "div",
|
|
1274
|
+
Object.assign(attrs, {
|
|
1275
|
+
ref,
|
|
1276
|
+
className: cx(
|
|
1277
|
+
"aura-container",
|
|
1278
|
+
props.size === "narrow" && "is-narrow",
|
|
1279
|
+
props.align === "start" && "is-start",
|
|
1280
|
+
props.className
|
|
1281
|
+
),
|
|
1282
|
+
style: props.style
|
|
1283
|
+
}),
|
|
1284
|
+
props.children
|
|
1285
|
+
);
|
|
1286
|
+
});
|
|
1262
1287
|
export {
|
|
1263
1288
|
ServerAlert as Alert,
|
|
1264
1289
|
ServerAvatar as Avatar,
|
|
1265
1290
|
ServerBadge as Badge,
|
|
1266
1291
|
ServerCard as Card,
|
|
1292
|
+
Container,
|
|
1267
1293
|
ServerEmptyState as EmptyState,
|
|
1268
1294
|
Icon,
|
|
1269
1295
|
STRINGS,
|