@jirawatpyk/aura-react 5.26.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 +8 -2
- package/dist/aura.bundle.js +27 -2
- package/dist/cjs/index.cjs +27 -2
- package/dist/esm/Container.js +1 -1
- package/dist/esm/DataTable.js +14 -1
- package/dist/esm/Table.js +13 -1
- package/dist/index.d.cts +19 -10
- package/dist/index.d.ts +19 -10
- 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 +18 -17
- package/dist/styles.layer.css +18 -17
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -186,6 +186,12 @@ DataTable with sort and page in the URL (4.17): `onStateChange={({ sort, page })
|
|
|
186
186
|
- **Time zone**: `timeZone` on AuraProvider, DatePicker, DateRangePicker and Calendar decides "today" (the marker, `min`/`max="today"`, the first month shown); or pass `today` as an ISO date. `todayIn('Asia/Bangkok')` is exported from the root and `/server`.
|
|
187
187
|
- **Toasts** queue past three instead of dropping: six in a row all show, in order, three at a time.
|
|
188
188
|
|
|
189
|
+
## 5.27 — Chamber-OS addenda 33–34
|
|
190
|
+
|
|
191
|
+
- **`bleed` reaches through your own wrappers** (item 130): a bleeding DataTable or Table now spans the Card from anywhere in its content — inside a `flex flex-col gap-4` column, a container-query `div`, a `role="tabpanel"` — as long as those wrappers add no padding or frame and don't clip or scroll (`overflow` other than `visible`): a padded wrapper leaves the table short of the card's edge by that padding, and a clipping or scrolling one cuts it off or adds scrollbars. A nested Card resets the reach to its own padding. The last-content rule is unchanged: only a table that is the Card content's direct, last child drops its bottom rule automatically; inside wrappers pass **`bleedEnd`** when nothing follows the table in the card (and the Card has no `footer`), and the card's radius closes it. Without `bleedEnd`, a pager or link after the table keeps the rule; don't pass `bleedEnd` then, or what follows is pulled up over the table. Still nothing below `flushBelow` or outside a Card.
|
|
192
|
+
- **`Container` from `/server`** (item 131): it is stateless, so `@jirawatpyk/aura-react/server` exports it next to Card and EmptyState, and a Server Component can render the page column without becoming a client reference. Same HTML as the root export.
|
|
193
|
+
- **The override guarantee covers padding** (item 131): with `styles.layer.css`, utilities that set a Container's `padding` (e.g. your own gutter, `px-[var(--page-padding-x)]`) win as well as `max-width` and `margin`, also directly inside a padded AppShell where AURA zeroes the side padding. `check:tailwind4` tests it at 700px, between AURA's 640 and 1024px steps.
|
|
194
|
+
|
|
189
195
|
## 5.26 — Chamber-OS addenda 28–32
|
|
190
196
|
|
|
191
197
|
One release: everything below shipped together in 5.26.0.
|
|
@@ -202,7 +208,7 @@ One release: everything below shipped together in 5.26.0.
|
|
|
202
208
|
|
|
203
209
|
### `bleed` (addendum 30)
|
|
204
210
|
|
|
205
|
-
- **`bleed` on DataTable and Table** (item 127): edge to edge inside a Card — a list card with its filters in the card's padding and the table across its full inner width (Polaris IndexTable, GitHub issues). As a direct child of the Card's content the table loses its side borders and radius and is pulled out by the card's padding; its header band and top rule stay, and cell text stays level with the card's content (DataTable's 24px gutter, Table's 24px outer cells). When it is the card's last content (no Card `footer`, nothing after it) the bottom rule goes too and the card's radius closes it; a pager or footer after it keeps the rule. Below the Card's `flushBelow` width, and outside a Card, it does nothing; stacked rows inside a framed Card keep its padding.
|
|
211
|
+
- **`bleed` on DataTable and Table** (item 127): edge to edge inside a Card — a list card with its filters in the card's padding and the table across its full inner width (Polaris IndexTable, GitHub issues). As a direct child of the Card's content the table loses its side borders and radius and is pulled out by the card's padding; its header band and top rule stay, and cell text stays level with the card's content (DataTable's 24px gutter, Table's 24px outer cells). When it is the card's last content (no Card `footer`, nothing after it) the bottom rule goes too and the card's radius closes it; a pager or footer after it keeps the rule. Below the Card's `flushBelow` width, and outside a Card, it does nothing; stacked rows inside a framed Card keep its padding. In 5.26 it needed to be the Card content's direct child; since 5.27 it also reaches through unpadded wrappers. The reach is the Card's padding token: change a Card's padding with `--aura-card-padding` (with a unit, `0px`), not a padding utility, or the table overshoots or falls short; `flushBelow` with `max-sm:p-0` is fine. On phones (<640px) a Card without `flushBelow` has 16px padding while DataTable's gutter stays 24px, so its text sits 8px in from the card's content there; Table's outer cells stay 24px too.
|
|
206
212
|
- **DataTable `bordered={false}`**: drops the frame (border and radius) and keeps the header band and the 24px gutter, for a table in a section that doesn't bleed. Table's `bordered={false}` is unchanged.
|
|
207
213
|
- Budgets raised on purpose: the whole library and the `window.Aura` bundle 62 → 64 kB.
|
|
208
214
|
|
|
@@ -212,7 +218,7 @@ One release: everything below shipped together in 5.26.0.
|
|
|
212
218
|
|
|
213
219
|
### Container (addendum 29)
|
|
214
220
|
|
|
215
|
-
- **Overriding a Container's width and margin is supported** (item 126): with `styles.layer.css`, utilities that set `max-width` or `margin` on a `Container` (`max-w-[672px]`, `mx-0`, `ms-0`) win over `.aura-container`, and that is now a guarantee rather than a side effect. AURA keeps every `.aura-container` rule in `@layer aura`, never uses `!important` on it and never adds an unlayered rule for it; `npm run check:tailwind4` fails if a 672px column, centred or at the start edge, stops working at a 1400px page. With the unlayered `styles.css` the component wins instead (as for every component), so use `size` / `align` or the layered stylesheet. The side padding (16 / 24 / 32px at <640 / ≥640 / ≥1024) and its removal directly inside a padded `AppShell` are unchanged.
|
|
221
|
+
- **Overriding a Container's width and margin is supported** (item 126; padding too since 5.27): with `styles.layer.css`, utilities that set `max-width` or `margin` on a `Container` (`max-w-[672px]`, `mx-0`, `ms-0`) win over `.aura-container`, and that is now a guarantee rather than a side effect. AURA keeps every `.aura-container` rule in `@layer aura`, never uses `!important` on it and never adds an unlayered rule for it; `npm run check:tailwind4` fails if a 672px column, centred or at the start edge, stops working at a 1400px page. With the unlayered `styles.css` the component wins instead (as for every component), so use `size` / `align` or the layered stylesheet. The side padding (16 / 24 / 32px at <640 / ≥640 / ≥1024) and its removal directly inside a padded `AppShell` are unchanged.
|
|
216
222
|
- **`align="start"`**: the column sits at the start edge (left; right in right-to-left) instead of being centred — a form board beside the page's start. Default `center`.
|
|
217
223
|
- **Attributes reach the element**: `id`, `lang`, `dir`, `aria-*` and `data-*` (e.g. `data-slot="layout-container" data-variant="form"`), so an app's layout checks can read a Container. Other props are still not passed.
|
|
218
224
|
- Budget raised on purpose: styles.css 27 → 28 kB.
|
package/dist/aura.bundle.js
CHANGED
|
@@ -6507,6 +6507,7 @@ window.Aura = (() => {
|
|
|
6507
6507
|
/* 5.26 (Chamber-OS 127): bleed and bordered={false}; the outermost element carries aura-bleed. */
|
|
6508
6508
|
props.bleed && "aura-bleed-frame",
|
|
6509
6509
|
props.bleed && !levels.length && "aura-bleed",
|
|
6510
|
+
props.bleed && props.bleedEnd && !levels.length && "aura-bleed-end",
|
|
6510
6511
|
props.bordered === false && "aura-table--borderless",
|
|
6511
6512
|
stacked && "aura-table--stacked",
|
|
6512
6513
|
noCardSel && "aura-table--cards-nosel",
|
|
@@ -6605,7 +6606,19 @@ window.Aura = (() => {
|
|
|
6605
6606
|
out
|
|
6606
6607
|
);
|
|
6607
6608
|
}
|
|
6608
|
-
return /* @__PURE__ */ React32.createElement(
|
|
6609
|
+
return /* @__PURE__ */ React32.createElement(
|
|
6610
|
+
"div",
|
|
6611
|
+
{
|
|
6612
|
+
ref,
|
|
6613
|
+
className: cx(
|
|
6614
|
+
"aura-table-box",
|
|
6615
|
+
props.bleed && "aura-bleed",
|
|
6616
|
+
props.bleed && props.bleedEnd && "aura-bleed-end",
|
|
6617
|
+
props.className
|
|
6618
|
+
)
|
|
6619
|
+
},
|
|
6620
|
+
out
|
|
6621
|
+
);
|
|
6609
6622
|
});
|
|
6610
6623
|
var DataTable2 = DataTableImpl;
|
|
6611
6624
|
|
|
@@ -7477,6 +7490,7 @@ window.Aura = (() => {
|
|
|
7477
7490
|
align,
|
|
7478
7491
|
bordered,
|
|
7479
7492
|
bleed,
|
|
7493
|
+
bleedEnd,
|
|
7480
7494
|
stickyHeader,
|
|
7481
7495
|
maxHeight,
|
|
7482
7496
|
stackStyle,
|
|
@@ -7530,6 +7544,7 @@ window.Aura = (() => {
|
|
|
7530
7544
|
/* 5.26 (Chamber-OS 127): the frame that bleeds; the outermost element carries aura-bleed. */
|
|
7531
7545
|
bleed && "aura-bleed-frame",
|
|
7532
7546
|
bleed && !cards && "aura-bleed",
|
|
7547
|
+
bleed && bleedEnd && !cards && "aura-bleed-end",
|
|
7533
7548
|
/* 5.26 (Chamber-OS 129): stickyHeader pins to the page, or inside the box when it has a maxHeight. */
|
|
7534
7549
|
stickyHeader && (maxHeight != null ? "is-sticky-box" : "is-sticky-page"),
|
|
7535
7550
|
maxHeight != null && "has-max",
|
|
@@ -7562,7 +7577,17 @@ window.Aura = (() => {
|
|
|
7562
7577
|
labels ? /* @__PURE__ */ React45.createElement(StackLabels.Provider, { value: labels }, children) : outer ? /* @__PURE__ */ React45.createElement(StackLabels.Provider, { value: null }, children) : children
|
|
7563
7578
|
)
|
|
7564
7579
|
);
|
|
7565
|
-
return cards ? /* @__PURE__ */ React45.createElement(
|
|
7580
|
+
return cards ? /* @__PURE__ */ React45.createElement(
|
|
7581
|
+
"div",
|
|
7582
|
+
{
|
|
7583
|
+
className: cx(
|
|
7584
|
+
"aura-tbl-cards aura-tbl-cards--" + stackBelow,
|
|
7585
|
+
bleed && "aura-bleed",
|
|
7586
|
+
bleed && bleedEnd && "aura-bleed-end"
|
|
7587
|
+
)
|
|
7588
|
+
},
|
|
7589
|
+
table
|
|
7590
|
+
) : table;
|
|
7566
7591
|
});
|
|
7567
7592
|
function section(tag, cls) {
|
|
7568
7593
|
const C = React45.forwardRef(function TableSection(props, ref) {
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -6489,6 +6489,7 @@ var DataTableImpl = React32.forwardRef(function DataTable(props, ref) {
|
|
|
6489
6489
|
/* 5.26 (Chamber-OS 127): bleed and bordered={false}; the outermost element carries aura-bleed. */
|
|
6490
6490
|
props.bleed && "aura-bleed-frame",
|
|
6491
6491
|
props.bleed && !levels.length && "aura-bleed",
|
|
6492
|
+
props.bleed && props.bleedEnd && !levels.length && "aura-bleed-end",
|
|
6492
6493
|
props.bordered === false && "aura-table--borderless",
|
|
6493
6494
|
stacked && "aura-table--stacked",
|
|
6494
6495
|
noCardSel && "aura-table--cards-nosel",
|
|
@@ -6587,7 +6588,19 @@ var DataTableImpl = React32.forwardRef(function DataTable(props, ref) {
|
|
|
6587
6588
|
out
|
|
6588
6589
|
);
|
|
6589
6590
|
}
|
|
6590
|
-
return /* @__PURE__ */ React32.createElement(
|
|
6591
|
+
return /* @__PURE__ */ React32.createElement(
|
|
6592
|
+
"div",
|
|
6593
|
+
{
|
|
6594
|
+
ref,
|
|
6595
|
+
className: cx(
|
|
6596
|
+
"aura-table-box",
|
|
6597
|
+
props.bleed && "aura-bleed",
|
|
6598
|
+
props.bleed && props.bleedEnd && "aura-bleed-end",
|
|
6599
|
+
props.className
|
|
6600
|
+
)
|
|
6601
|
+
},
|
|
6602
|
+
out
|
|
6603
|
+
);
|
|
6591
6604
|
});
|
|
6592
6605
|
var DataTable2 = DataTableImpl;
|
|
6593
6606
|
|
|
@@ -7459,6 +7472,7 @@ var Table = React45.forwardRef(function Table2(props, ref) {
|
|
|
7459
7472
|
align,
|
|
7460
7473
|
bordered,
|
|
7461
7474
|
bleed,
|
|
7475
|
+
bleedEnd,
|
|
7462
7476
|
stickyHeader,
|
|
7463
7477
|
maxHeight,
|
|
7464
7478
|
stackStyle,
|
|
@@ -7512,6 +7526,7 @@ var Table = React45.forwardRef(function Table2(props, ref) {
|
|
|
7512
7526
|
/* 5.26 (Chamber-OS 127): the frame that bleeds; the outermost element carries aura-bleed. */
|
|
7513
7527
|
bleed && "aura-bleed-frame",
|
|
7514
7528
|
bleed && !cards && "aura-bleed",
|
|
7529
|
+
bleed && bleedEnd && !cards && "aura-bleed-end",
|
|
7515
7530
|
/* 5.26 (Chamber-OS 129): stickyHeader pins to the page, or inside the box when it has a maxHeight. */
|
|
7516
7531
|
stickyHeader && (maxHeight != null ? "is-sticky-box" : "is-sticky-page"),
|
|
7517
7532
|
maxHeight != null && "has-max",
|
|
@@ -7544,7 +7559,17 @@ var Table = React45.forwardRef(function Table2(props, ref) {
|
|
|
7544
7559
|
labels ? /* @__PURE__ */ React45.createElement(StackLabels.Provider, { value: labels }, children) : outer ? /* @__PURE__ */ React45.createElement(StackLabels.Provider, { value: null }, children) : children
|
|
7545
7560
|
)
|
|
7546
7561
|
);
|
|
7547
|
-
return cards ? /* @__PURE__ */ React45.createElement(
|
|
7562
|
+
return cards ? /* @__PURE__ */ React45.createElement(
|
|
7563
|
+
"div",
|
|
7564
|
+
{
|
|
7565
|
+
className: cx(
|
|
7566
|
+
"aura-tbl-cards aura-tbl-cards--" + stackBelow,
|
|
7567
|
+
bleed && "aura-bleed",
|
|
7568
|
+
bleed && bleedEnd && "aura-bleed-end"
|
|
7569
|
+
)
|
|
7570
|
+
},
|
|
7571
|
+
table
|
|
7572
|
+
) : table;
|
|
7548
7573
|
});
|
|
7549
7574
|
function section(tag, cls) {
|
|
7550
7575
|
const C = React45.forwardRef(function TableSection(props, ref) {
|
package/dist/esm/Container.js
CHANGED
package/dist/esm/DataTable.js
CHANGED
|
@@ -1321,6 +1321,7 @@ const DataTableImpl = React.forwardRef(function DataTable(props, ref) {
|
|
|
1321
1321
|
/* 5.26 (Chamber-OS 127): bleed and bordered={false}; the outermost element carries aura-bleed. */
|
|
1322
1322
|
props.bleed && "aura-bleed-frame",
|
|
1323
1323
|
props.bleed && !levels.length && "aura-bleed",
|
|
1324
|
+
props.bleed && props.bleedEnd && !levels.length && "aura-bleed-end",
|
|
1324
1325
|
props.bordered === false && "aura-table--borderless",
|
|
1325
1326
|
stacked && "aura-table--stacked",
|
|
1326
1327
|
noCardSel && "aura-table--cards-nosel",
|
|
@@ -1419,7 +1420,19 @@ const DataTableImpl = React.forwardRef(function DataTable(props, ref) {
|
|
|
1419
1420
|
out
|
|
1420
1421
|
);
|
|
1421
1422
|
}
|
|
1422
|
-
return /* @__PURE__ */ React.createElement(
|
|
1423
|
+
return /* @__PURE__ */ React.createElement(
|
|
1424
|
+
"div",
|
|
1425
|
+
{
|
|
1426
|
+
ref,
|
|
1427
|
+
className: cx(
|
|
1428
|
+
"aura-table-box",
|
|
1429
|
+
props.bleed && "aura-bleed",
|
|
1430
|
+
props.bleed && props.bleedEnd && "aura-bleed-end",
|
|
1431
|
+
props.className
|
|
1432
|
+
)
|
|
1433
|
+
},
|
|
1434
|
+
out
|
|
1435
|
+
);
|
|
1423
1436
|
});
|
|
1424
1437
|
const DataTable2 = DataTableImpl;
|
|
1425
1438
|
export {
|
package/dist/esm/Table.js
CHANGED
|
@@ -56,6 +56,7 @@ const Table = React.forwardRef(function Table2(props, ref) {
|
|
|
56
56
|
align,
|
|
57
57
|
bordered,
|
|
58
58
|
bleed,
|
|
59
|
+
bleedEnd,
|
|
59
60
|
stickyHeader,
|
|
60
61
|
maxHeight,
|
|
61
62
|
stackStyle,
|
|
@@ -109,6 +110,7 @@ const Table = React.forwardRef(function Table2(props, ref) {
|
|
|
109
110
|
/* 5.26 (Chamber-OS 127): the frame that bleeds; the outermost element carries aura-bleed. */
|
|
110
111
|
bleed && "aura-bleed-frame",
|
|
111
112
|
bleed && !cards && "aura-bleed",
|
|
113
|
+
bleed && bleedEnd && !cards && "aura-bleed-end",
|
|
112
114
|
/* 5.26 (Chamber-OS 129): stickyHeader pins to the page, or inside the box when it has a maxHeight. */
|
|
113
115
|
stickyHeader && (maxHeight != null ? "is-sticky-box" : "is-sticky-page"),
|
|
114
116
|
maxHeight != null && "has-max",
|
|
@@ -141,7 +143,17 @@ const Table = React.forwardRef(function Table2(props, ref) {
|
|
|
141
143
|
labels ? /* @__PURE__ */ React.createElement(StackLabels.Provider, { value: labels }, children) : outer ? /* @__PURE__ */ React.createElement(StackLabels.Provider, { value: null }, children) : children
|
|
142
144
|
)
|
|
143
145
|
);
|
|
144
|
-
return cards ? /* @__PURE__ */ React.createElement(
|
|
146
|
+
return cards ? /* @__PURE__ */ React.createElement(
|
|
147
|
+
"div",
|
|
148
|
+
{
|
|
149
|
+
className: cx(
|
|
150
|
+
"aura-tbl-cards aura-tbl-cards--" + stackBelow,
|
|
151
|
+
bleed && "aura-bleed",
|
|
152
|
+
bleed && bleedEnd && "aura-bleed-end"
|
|
153
|
+
)
|
|
154
|
+
},
|
|
155
|
+
table
|
|
156
|
+
) : table;
|
|
145
157
|
});
|
|
146
158
|
function section(tag, cls) {
|
|
147
159
|
const C = React.forwardRef(function TableSection(props, ref) {
|
package/dist/index.d.cts
CHANGED
|
@@ -236,11 +236,15 @@ 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):
|
|
240
|
-
*
|
|
241
|
-
*
|
|
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
|
|
242
243
|
* `flushBelow` width, and outside a Card, it does nothing. */
|
|
243
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;
|
|
244
248
|
/** `false` drops the frame — border and radius — keeping the header band and the 24px gutter, for a table that sits
|
|
245
249
|
* in a section without bleeding (5.26). Default `true`. */
|
|
246
250
|
bordered?: boolean | undefined;
|
|
@@ -1195,12 +1199,16 @@ export interface TableProps extends Omit<React$1.TableHTMLAttributes<HTMLTableEl
|
|
|
1195
1199
|
/** `false` (5.13) drops the frame — border, radius, background — and the outer cells' side padding, so the table
|
|
1196
1200
|
* lines up with the content around it, e.g. flush inside a Card under its heading. Default `true`. */
|
|
1197
1201
|
bordered?: boolean | undefined;
|
|
1198
|
-
/** Edge to edge inside a Card (5.26, Chamber-OS 127):
|
|
1199
|
-
*
|
|
1200
|
-
*
|
|
1201
|
-
*
|
|
1202
|
-
*
|
|
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. */
|
|
1203
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;
|
|
1204
1212
|
/** Keep the header row in view while the rows scroll (5.26, Chamber-OS 129), with its band, its bottom rule and
|
|
1205
1213
|
* above the body. Without `maxHeight` it pins to the page's scroll, under an AppShell's top bar
|
|
1206
1214
|
* (`--aura-shell-bar-height`; set `--aura-table-sticky-top` for another offset). A table wider than its box
|
|
@@ -1720,8 +1728,9 @@ export interface ContainerProps extends Pick<React$1.HTMLAttributes<HTMLElement>
|
|
|
1720
1728
|
* the page's start (5.26, Chamber-OS 126). Default `center`. */
|
|
1721
1729
|
align?: "center" | "start" | undefined;
|
|
1722
1730
|
as?: keyof React$1.JSX.IntrinsicElements | undefined;
|
|
1723
|
-
/** Utilities that set `max-width` or `
|
|
1724
|
-
* where a utility beats `.aura-container` (5.26).
|
|
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). */
|
|
1725
1734
|
className?: string | undefined;
|
|
1726
1735
|
style?: React$1.CSSProperties | undefined;
|
|
1727
1736
|
children?: React$1.ReactNode | undefined;
|
package/dist/index.d.ts
CHANGED
|
@@ -236,11 +236,15 @@ 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):
|
|
240
|
-
*
|
|
241
|
-
*
|
|
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
|
|
242
243
|
* `flushBelow` width, and outside a Card, it does nothing. */
|
|
243
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;
|
|
244
248
|
/** `false` drops the frame — border and radius — keeping the header band and the 24px gutter, for a table that sits
|
|
245
249
|
* in a section without bleeding (5.26). Default `true`. */
|
|
246
250
|
bordered?: boolean | undefined;
|
|
@@ -1195,12 +1199,16 @@ export interface TableProps extends Omit<React$1.TableHTMLAttributes<HTMLTableEl
|
|
|
1195
1199
|
/** `false` (5.13) drops the frame — border, radius, background — and the outer cells' side padding, so the table
|
|
1196
1200
|
* lines up with the content around it, e.g. flush inside a Card under its heading. Default `true`. */
|
|
1197
1201
|
bordered?: boolean | undefined;
|
|
1198
|
-
/** Edge to edge inside a Card (5.26, Chamber-OS 127):
|
|
1199
|
-
*
|
|
1200
|
-
*
|
|
1201
|
-
*
|
|
1202
|
-
*
|
|
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. */
|
|
1203
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;
|
|
1204
1212
|
/** Keep the header row in view while the rows scroll (5.26, Chamber-OS 129), with its band, its bottom rule and
|
|
1205
1213
|
* above the body. Without `maxHeight` it pins to the page's scroll, under an AppShell's top bar
|
|
1206
1214
|
* (`--aura-shell-bar-height`; set `--aura-table-sticky-top` for another offset). A table wider than its box
|
|
@@ -1720,8 +1728,9 @@ export interface ContainerProps extends Pick<React$1.HTMLAttributes<HTMLElement>
|
|
|
1720
1728
|
* the page's start (5.26, Chamber-OS 126). Default `center`. */
|
|
1721
1729
|
align?: "center" | "start" | undefined;
|
|
1722
1730
|
as?: keyof React$1.JSX.IntrinsicElements | undefined;
|
|
1723
|
-
/** Utilities that set `max-width` or `
|
|
1724
|
-
* where a utility beats `.aura-container` (5.26).
|
|
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). */
|
|
1725
1734
|
className?: string | undefined;
|
|
1726
1735
|
style?: React$1.CSSProperties | undefined;
|
|
1727
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,
|
package/dist/styles.css
CHANGED
|
@@ -662,21 +662,22 @@ a.aura-icon-btn { text-decoration: none; }
|
|
|
662
662
|
@media (max-width: 639.98px) { .aura-card.aura-card--flush-below-sm, .aura-card.aura-card--flush-below-sm:hover { border-color: transparent; background: transparent; box-shadow: none; --aura-card-bleed: 0px; } }
|
|
663
663
|
@media (max-width: 767.98px) { .aura-card.aura-card--flush-below-md, .aura-card.aura-card--flush-below-md:hover { border-color: transparent; background: transparent; box-shadow: none; --aura-card-bleed: 0px; } }
|
|
664
664
|
@media (max-width: 1023.98px) { .aura-card.aura-card--flush-below-lg, .aura-card.aura-card--flush-below-lg:hover { border-color: transparent; background: transparent; box-shadow: none; --aura-card-bleed: 0px; } }
|
|
665
|
-
/* 5.26 (Chamber-OS 127): bleed — a table
|
|
665
|
+
/* 5.26 (Chamber-OS 127): bleed — a table anywhere in a Card's content (5.27, 130: through the app's own unpadded
|
|
666
|
+
* wrappers; a nested Card resets the reach) spans its inner width; the side
|
|
666
667
|
* borders and radius go (a 0px bleed — a flush card — keeps them: 1px - min(1px, 0) = 1px). As the card's last content
|
|
667
668
|
* it also drops its bottom rule and the card's radius closes it. */
|
|
668
669
|
/* Two classes deep so it beats a stackable Table's width: 100%. `* 1000` turns any bleed into a 0 radius; 0 keeps it. */
|
|
669
|
-
.aura-card .aura-card__body
|
|
670
|
+
.aura-card .aura-card__body .aura-bleed { margin-inline: calc(-1 * var(--aura-card-bleed)); width: auto; }
|
|
670
671
|
/* A Table with bordered={false} too: its outer cells take the bleed (0 where the card is flush, as before). */
|
|
671
|
-
.aura-card__body
|
|
672
|
-
.aura-card__body
|
|
673
|
-
.aura-card__body
|
|
674
|
-
.aura-card__body
|
|
675
|
-
.aura-card__body
|
|
672
|
+
.aura-card__body .aura-bleed .aura-tbl-wrap.is-flush > .aura-tbl > * > .aura-tbl__row > :first-child,
|
|
673
|
+
.aura-card__body .aura-bleed.aura-tbl-wrap.is-flush > .aura-tbl > * > .aura-tbl__row > :first-child { padding-inline-start: var(--aura-card-bleed); }
|
|
674
|
+
.aura-card__body .aura-bleed .aura-tbl-wrap.is-flush > .aura-tbl > * > .aura-tbl__row > :last-child,
|
|
675
|
+
.aura-card__body .aura-bleed.aura-tbl-wrap.is-flush > .aura-tbl > * > .aura-tbl__row > :last-child { padding-inline-end: var(--aura-card-bleed); }
|
|
676
|
+
.aura-card__body .aura-bleed.aura-bleed-frame, .aura-card__body .aura-bleed .aura-bleed-frame {
|
|
676
677
|
border-inline-width: calc(1px - min(1px, var(--aura-card-bleed))); border-radius: max(0px, var(--aura-card-radius) - var(--aura-card-bleed) * 1000);
|
|
677
678
|
}
|
|
678
|
-
.aura-card__body:last-child > .aura-bleed:last-child { margin-bottom: calc(-1 * var(--aura-card-bleed)); }
|
|
679
|
-
.aura-card__body:last-child > .aura-bleed:last-child.aura-bleed-frame, .aura-card__body:last-child > .aura-bleed:last-child .aura-bleed-frame {
|
|
679
|
+
:is(.aura-card__body:last-child > .aura-bleed:last-child, .aura-card__body:last-child .aura-bleed.aura-bleed-end) { margin-bottom: calc(-1 * var(--aura-card-bleed)); }
|
|
680
|
+
:is(.aura-card__body:last-child > .aura-bleed:last-child, .aura-card__body:last-child .aura-bleed.aura-bleed-end).aura-bleed-frame, :is(.aura-card__body:last-child > .aura-bleed:last-child, .aura-card__body:last-child .aura-bleed.aura-bleed-end) .aura-bleed-frame {
|
|
680
681
|
border-bottom-width: calc(1px - min(1px, var(--aura-card-bleed)));
|
|
681
682
|
border-bottom-left-radius: calc(var(--aura-card-radius) - min(1px, var(--aura-card-bleed)));
|
|
682
683
|
border-bottom-right-radius: calc(var(--aura-card-radius) - min(1px, var(--aura-card-bleed)));
|
|
@@ -1788,7 +1789,7 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
|
|
|
1788
1789
|
display: block; margin-bottom: 2px; font-family: var(--font-mono); font-size: 11px; line-height: 16px; font-weight: 400; color: var(--aura-fg-secondary);
|
|
1789
1790
|
}
|
|
1790
1791
|
/* 5.26: a bleeding list keeps its rows' text level with the Card's content (16px where it doesn't bleed). */
|
|
1791
|
-
.aura-card__body
|
|
1792
|
+
.aura-card__body .aura-bleed.aura-bleed-frame > .aura-tbl--stack-md:not(.aura-tbl--cards) > * > .aura-tbl__row, .aura-card__body .aura-bleed > .aura-bleed-frame > .aura-tbl--stack-md:not(.aura-tbl--cards) > * > .aura-tbl__row { padding-inline: max(var(--aura-card-bleed), var(--aura-space-4) - var(--aura-card-bleed) * 1000); }
|
|
1792
1793
|
}
|
|
1793
1794
|
@container aura-tbl (width < 640px) {
|
|
1794
1795
|
.aura-tbl--stack-sm, .aura-tbl--stack-sm > .aura-tbl__body, .aura-tbl--stack-sm > .aura-tbl__foot, .aura-tbl--stack-sm > .aura-tbl__body > .aura-tbl__row, .aura-tbl--stack-sm > .aura-tbl__foot > .aura-tbl__row, .aura-tbl--stack-sm > * > .aura-tbl__row > .aura-tbl__th, .aura-tbl--stack-sm > * > .aura-tbl__row > .aura-tbl__td { display: block; }
|
|
@@ -1812,7 +1813,7 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
|
|
|
1812
1813
|
display: block; margin-bottom: 2px; font-family: var(--font-mono); font-size: 11px; line-height: 16px; font-weight: 400; color: var(--aura-fg-secondary);
|
|
1813
1814
|
}
|
|
1814
1815
|
/* 5.26: a bleeding list keeps its rows' text level with the Card's content (16px where it doesn't bleed). */
|
|
1815
|
-
.aura-card__body
|
|
1816
|
+
.aura-card__body .aura-bleed.aura-bleed-frame > .aura-tbl--stack-sm:not(.aura-tbl--cards) > * > .aura-tbl__row, .aura-card__body .aura-bleed > .aura-bleed-frame > .aura-tbl--stack-sm:not(.aura-tbl--cards) > * > .aura-tbl__row { padding-inline: max(var(--aura-card-bleed), var(--aura-space-4) - var(--aura-card-bleed) * 1000); }
|
|
1816
1817
|
}
|
|
1817
1818
|
|
|
1818
1819
|
/* 5.15 (Chamber-OS 85): stackStyle="cards" — each stacked row its own card (DataTable's card spacing), no outer frame.
|
|
@@ -1820,8 +1821,8 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
|
|
|
1820
1821
|
.aura-tbl-cards { container: aura-tbl / inline-size; width: 100%; }
|
|
1821
1822
|
@container aura-tbl (width < 768px) {
|
|
1822
1823
|
.aura-tbl-cards--md > .aura-tbl-wrap { border: 0; border-radius: 0; background: transparent; overflow: visible; }
|
|
1823
|
-
.aura-card__body
|
|
1824
|
-
.aura-card__body:last-child > .aura-bleed:last-child .aura-bleed-frame > .aura-tbl--cards.aura-tbl--stack-md { padding-bottom: var(--aura-card-bleed); }
|
|
1824
|
+
.aura-card__body .aura-bleed.aura-bleed-frame > .aura-tbl--cards.aura-tbl--stack-md, .aura-card__body .aura-bleed > .aura-bleed-frame > .aura-tbl--cards.aura-tbl--stack-md { padding-inline: var(--aura-card-bleed); }
|
|
1825
|
+
:is(.aura-card__body:last-child > .aura-bleed:last-child, .aura-card__body:last-child .aura-bleed.aura-bleed-end) .aura-bleed-frame > .aura-tbl--cards.aura-tbl--stack-md { padding-bottom: var(--aura-card-bleed); }
|
|
1825
1826
|
.aura-tbl--cards.aura-tbl--stack-md > .aura-tbl__caption { padding: 0 0 var(--aura-space-3); }
|
|
1826
1827
|
.aura-tbl--cards.aura-tbl--stack-md > .aura-tbl__body > .aura-tbl__row, .aura-tbl--cards.aura-tbl--stack-md > .aura-tbl__foot > .aura-tbl__row {
|
|
1827
1828
|
margin-bottom: var(--aura-space-2); padding: var(--aura-tbl-card-py, var(--aura-space-4)) var(--aura-space-4);
|
|
@@ -1833,8 +1834,8 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
|
|
|
1833
1834
|
}
|
|
1834
1835
|
@container aura-tbl (width < 640px) {
|
|
1835
1836
|
.aura-tbl-cards--sm > .aura-tbl-wrap { border: 0; border-radius: 0; background: transparent; overflow: visible; }
|
|
1836
|
-
.aura-card__body
|
|
1837
|
-
.aura-card__body:last-child > .aura-bleed:last-child .aura-bleed-frame > .aura-tbl--cards.aura-tbl--stack-sm { padding-bottom: var(--aura-card-bleed); }
|
|
1837
|
+
.aura-card__body .aura-bleed.aura-bleed-frame > .aura-tbl--cards.aura-tbl--stack-sm, .aura-card__body .aura-bleed > .aura-bleed-frame > .aura-tbl--cards.aura-tbl--stack-sm { padding-inline: var(--aura-card-bleed); }
|
|
1838
|
+
:is(.aura-card__body:last-child > .aura-bleed:last-child, .aura-card__body:last-child .aura-bleed.aura-bleed-end) .aura-bleed-frame > .aura-tbl--cards.aura-tbl--stack-sm { padding-bottom: var(--aura-card-bleed); }
|
|
1838
1839
|
.aura-tbl--cards.aura-tbl--stack-sm > .aura-tbl__caption { padding: 0 0 var(--aura-space-3); }
|
|
1839
1840
|
.aura-tbl--cards.aura-tbl--stack-sm > .aura-tbl__body > .aura-tbl__row, .aura-tbl--cards.aura-tbl--stack-sm > .aura-tbl__foot > .aura-tbl__row {
|
|
1840
1841
|
margin-bottom: var(--aura-space-2); padding: var(--aura-tbl-card-py, var(--aura-space-4)) var(--aura-space-4);
|
|
@@ -1865,8 +1866,8 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
|
|
|
1865
1866
|
@container aura-stack (width < 9999.5px) {
|
|
1866
1867
|
.aura-table { background: transparent; border: 0; border-radius: 0; overflow: visible; }
|
|
1867
1868
|
/* 5.26: stacked cards inside a framed Card keep its padding (0 where the Card is flush). */
|
|
1868
|
-
.aura-card__body
|
|
1869
|
-
.aura-card__body:last-child > .aura-bleed:last-child .aura-bleed-frame { padding-bottom: var(--aura-card-bleed); }
|
|
1869
|
+
.aura-card__body .aura-bleed .aura-bleed-frame { padding-inline: var(--aura-card-bleed); }
|
|
1870
|
+
:is(.aura-card__body:last-child > .aura-bleed:last-child, .aura-card__body:last-child .aura-bleed.aura-bleed-end) .aura-bleed-frame { padding-bottom: var(--aura-card-bleed); }
|
|
1870
1871
|
.aura-table__scroll { overflow: visible; height: auto; }
|
|
1871
1872
|
.aura-table__busy-bar { top: 0; }
|
|
1872
1873
|
.aura-table__picker { display: none; }
|
package/dist/styles.layer.css
CHANGED
|
@@ -664,21 +664,22 @@ a.aura-icon-btn { text-decoration: none; }
|
|
|
664
664
|
@media (max-width: 639.98px) { .aura-card.aura-card--flush-below-sm, .aura-card.aura-card--flush-below-sm:hover { border-color: transparent; background: transparent; box-shadow: none; --aura-card-bleed: 0px; } }
|
|
665
665
|
@media (max-width: 767.98px) { .aura-card.aura-card--flush-below-md, .aura-card.aura-card--flush-below-md:hover { border-color: transparent; background: transparent; box-shadow: none; --aura-card-bleed: 0px; } }
|
|
666
666
|
@media (max-width: 1023.98px) { .aura-card.aura-card--flush-below-lg, .aura-card.aura-card--flush-below-lg:hover { border-color: transparent; background: transparent; box-shadow: none; --aura-card-bleed: 0px; } }
|
|
667
|
-
/* 5.26 (Chamber-OS 127): bleed — a table
|
|
667
|
+
/* 5.26 (Chamber-OS 127): bleed — a table anywhere in a Card's content (5.27, 130: through the app's own unpadded
|
|
668
|
+
* wrappers; a nested Card resets the reach) spans its inner width; the side
|
|
668
669
|
* borders and radius go (a 0px bleed — a flush card — keeps them: 1px - min(1px, 0) = 1px). As the card's last content
|
|
669
670
|
* it also drops its bottom rule and the card's radius closes it. */
|
|
670
671
|
/* Two classes deep so it beats a stackable Table's width: 100%. `* 1000` turns any bleed into a 0 radius; 0 keeps it. */
|
|
671
|
-
.aura-card .aura-card__body
|
|
672
|
+
.aura-card .aura-card__body .aura-bleed { margin-inline: calc(-1 * var(--aura-card-bleed)); width: auto; }
|
|
672
673
|
/* A Table with bordered={false} too: its outer cells take the bleed (0 where the card is flush, as before). */
|
|
673
|
-
.aura-card__body
|
|
674
|
-
.aura-card__body
|
|
675
|
-
.aura-card__body
|
|
676
|
-
.aura-card__body
|
|
677
|
-
.aura-card__body
|
|
674
|
+
.aura-card__body .aura-bleed .aura-tbl-wrap.is-flush > .aura-tbl > * > .aura-tbl__row > :first-child,
|
|
675
|
+
.aura-card__body .aura-bleed.aura-tbl-wrap.is-flush > .aura-tbl > * > .aura-tbl__row > :first-child { padding-inline-start: var(--aura-card-bleed); }
|
|
676
|
+
.aura-card__body .aura-bleed .aura-tbl-wrap.is-flush > .aura-tbl > * > .aura-tbl__row > :last-child,
|
|
677
|
+
.aura-card__body .aura-bleed.aura-tbl-wrap.is-flush > .aura-tbl > * > .aura-tbl__row > :last-child { padding-inline-end: var(--aura-card-bleed); }
|
|
678
|
+
.aura-card__body .aura-bleed.aura-bleed-frame, .aura-card__body .aura-bleed .aura-bleed-frame {
|
|
678
679
|
border-inline-width: calc(1px - min(1px, var(--aura-card-bleed))); border-radius: max(0px, var(--aura-card-radius) - var(--aura-card-bleed) * 1000);
|
|
679
680
|
}
|
|
680
|
-
.aura-card__body:last-child > .aura-bleed:last-child { margin-bottom: calc(-1 * var(--aura-card-bleed)); }
|
|
681
|
-
.aura-card__body:last-child > .aura-bleed:last-child.aura-bleed-frame, .aura-card__body:last-child > .aura-bleed:last-child .aura-bleed-frame {
|
|
681
|
+
:is(.aura-card__body:last-child > .aura-bleed:last-child, .aura-card__body:last-child .aura-bleed.aura-bleed-end) { margin-bottom: calc(-1 * var(--aura-card-bleed)); }
|
|
682
|
+
:is(.aura-card__body:last-child > .aura-bleed:last-child, .aura-card__body:last-child .aura-bleed.aura-bleed-end).aura-bleed-frame, :is(.aura-card__body:last-child > .aura-bleed:last-child, .aura-card__body:last-child .aura-bleed.aura-bleed-end) .aura-bleed-frame {
|
|
682
683
|
border-bottom-width: calc(1px - min(1px, var(--aura-card-bleed)));
|
|
683
684
|
border-bottom-left-radius: calc(var(--aura-card-radius) - min(1px, var(--aura-card-bleed)));
|
|
684
685
|
border-bottom-right-radius: calc(var(--aura-card-radius) - min(1px, var(--aura-card-bleed)));
|
|
@@ -1790,7 +1791,7 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
|
|
|
1790
1791
|
display: block; margin-bottom: 2px; font-family: var(--font-mono); font-size: 11px; line-height: 16px; font-weight: 400; color: var(--aura-fg-secondary);
|
|
1791
1792
|
}
|
|
1792
1793
|
/* 5.26: a bleeding list keeps its rows' text level with the Card's content (16px where it doesn't bleed). */
|
|
1793
|
-
.aura-card__body
|
|
1794
|
+
.aura-card__body .aura-bleed.aura-bleed-frame > .aura-tbl--stack-md:not(.aura-tbl--cards) > * > .aura-tbl__row, .aura-card__body .aura-bleed > .aura-bleed-frame > .aura-tbl--stack-md:not(.aura-tbl--cards) > * > .aura-tbl__row { padding-inline: max(var(--aura-card-bleed), var(--aura-space-4) - var(--aura-card-bleed) * 1000); }
|
|
1794
1795
|
}
|
|
1795
1796
|
@container aura-tbl (width < 640px) {
|
|
1796
1797
|
.aura-tbl--stack-sm, .aura-tbl--stack-sm > .aura-tbl__body, .aura-tbl--stack-sm > .aura-tbl__foot, .aura-tbl--stack-sm > .aura-tbl__body > .aura-tbl__row, .aura-tbl--stack-sm > .aura-tbl__foot > .aura-tbl__row, .aura-tbl--stack-sm > * > .aura-tbl__row > .aura-tbl__th, .aura-tbl--stack-sm > * > .aura-tbl__row > .aura-tbl__td { display: block; }
|
|
@@ -1814,7 +1815,7 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
|
|
|
1814
1815
|
display: block; margin-bottom: 2px; font-family: var(--font-mono); font-size: 11px; line-height: 16px; font-weight: 400; color: var(--aura-fg-secondary);
|
|
1815
1816
|
}
|
|
1816
1817
|
/* 5.26: a bleeding list keeps its rows' text level with the Card's content (16px where it doesn't bleed). */
|
|
1817
|
-
.aura-card__body
|
|
1818
|
+
.aura-card__body .aura-bleed.aura-bleed-frame > .aura-tbl--stack-sm:not(.aura-tbl--cards) > * > .aura-tbl__row, .aura-card__body .aura-bleed > .aura-bleed-frame > .aura-tbl--stack-sm:not(.aura-tbl--cards) > * > .aura-tbl__row { padding-inline: max(var(--aura-card-bleed), var(--aura-space-4) - var(--aura-card-bleed) * 1000); }
|
|
1818
1819
|
}
|
|
1819
1820
|
|
|
1820
1821
|
/* 5.15 (Chamber-OS 85): stackStyle="cards" — each stacked row its own card (DataTable's card spacing), no outer frame.
|
|
@@ -1822,8 +1823,8 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
|
|
|
1822
1823
|
.aura-tbl-cards { container: aura-tbl / inline-size; width: 100%; }
|
|
1823
1824
|
@container aura-tbl (width < 768px) {
|
|
1824
1825
|
.aura-tbl-cards--md > .aura-tbl-wrap { border: 0; border-radius: 0; background: transparent; overflow: visible; }
|
|
1825
|
-
.aura-card__body
|
|
1826
|
-
.aura-card__body:last-child > .aura-bleed:last-child .aura-bleed-frame > .aura-tbl--cards.aura-tbl--stack-md { padding-bottom: var(--aura-card-bleed); }
|
|
1826
|
+
.aura-card__body .aura-bleed.aura-bleed-frame > .aura-tbl--cards.aura-tbl--stack-md, .aura-card__body .aura-bleed > .aura-bleed-frame > .aura-tbl--cards.aura-tbl--stack-md { padding-inline: var(--aura-card-bleed); }
|
|
1827
|
+
:is(.aura-card__body:last-child > .aura-bleed:last-child, .aura-card__body:last-child .aura-bleed.aura-bleed-end) .aura-bleed-frame > .aura-tbl--cards.aura-tbl--stack-md { padding-bottom: var(--aura-card-bleed); }
|
|
1827
1828
|
.aura-tbl--cards.aura-tbl--stack-md > .aura-tbl__caption { padding: 0 0 var(--aura-space-3); }
|
|
1828
1829
|
.aura-tbl--cards.aura-tbl--stack-md > .aura-tbl__body > .aura-tbl__row, .aura-tbl--cards.aura-tbl--stack-md > .aura-tbl__foot > .aura-tbl__row {
|
|
1829
1830
|
margin-bottom: var(--aura-space-2); padding: var(--aura-tbl-card-py, var(--aura-space-4)) var(--aura-space-4);
|
|
@@ -1835,8 +1836,8 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
|
|
|
1835
1836
|
}
|
|
1836
1837
|
@container aura-tbl (width < 640px) {
|
|
1837
1838
|
.aura-tbl-cards--sm > .aura-tbl-wrap { border: 0; border-radius: 0; background: transparent; overflow: visible; }
|
|
1838
|
-
.aura-card__body
|
|
1839
|
-
.aura-card__body:last-child > .aura-bleed:last-child .aura-bleed-frame > .aura-tbl--cards.aura-tbl--stack-sm { padding-bottom: var(--aura-card-bleed); }
|
|
1839
|
+
.aura-card__body .aura-bleed.aura-bleed-frame > .aura-tbl--cards.aura-tbl--stack-sm, .aura-card__body .aura-bleed > .aura-bleed-frame > .aura-tbl--cards.aura-tbl--stack-sm { padding-inline: var(--aura-card-bleed); }
|
|
1840
|
+
:is(.aura-card__body:last-child > .aura-bleed:last-child, .aura-card__body:last-child .aura-bleed.aura-bleed-end) .aura-bleed-frame > .aura-tbl--cards.aura-tbl--stack-sm { padding-bottom: var(--aura-card-bleed); }
|
|
1840
1841
|
.aura-tbl--cards.aura-tbl--stack-sm > .aura-tbl__caption { padding: 0 0 var(--aura-space-3); }
|
|
1841
1842
|
.aura-tbl--cards.aura-tbl--stack-sm > .aura-tbl__body > .aura-tbl__row, .aura-tbl--cards.aura-tbl--stack-sm > .aura-tbl__foot > .aura-tbl__row {
|
|
1842
1843
|
margin-bottom: var(--aura-space-2); padding: var(--aura-tbl-card-py, var(--aura-space-4)) var(--aura-space-4);
|
|
@@ -1867,8 +1868,8 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
|
|
|
1867
1868
|
@container aura-stack (width < 9999.5px) {
|
|
1868
1869
|
.aura-table { background: transparent; border: 0; border-radius: 0; overflow: visible; }
|
|
1869
1870
|
/* 5.26: stacked cards inside a framed Card keep its padding (0 where the Card is flush). */
|
|
1870
|
-
.aura-card__body
|
|
1871
|
-
.aura-card__body:last-child > .aura-bleed:last-child .aura-bleed-frame { padding-bottom: var(--aura-card-bleed); }
|
|
1871
|
+
.aura-card__body .aura-bleed .aura-bleed-frame { padding-inline: var(--aura-card-bleed); }
|
|
1872
|
+
:is(.aura-card__body:last-child > .aura-bleed:last-child, .aura-card__body:last-child .aura-bleed.aura-bleed-end) .aura-bleed-frame { padding-bottom: var(--aura-card-bleed); }
|
|
1872
1873
|
.aura-table__scroll { overflow: visible; height: auto; }
|
|
1873
1874
|
.aura-table__busy-bar { top: 0; }
|
|
1874
1875
|
.aura-table__picker { display: none; }
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jirawatpyk/aura-react",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.27.0",
|
|
4
4
|
"description": "AURA Design System — React components (Enterprise Standard, Human Creative). Thai-first: Buddhist-era dates, Thai collation.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|