@jirawatpyk/aura-react 5.85.0 → 5.87.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.
@@ -1228,6 +1228,45 @@ function alertElement(props, ref, close, autoId) {
1228
1228
  close
1229
1229
  );
1230
1230
  }
1231
+ var NAMED_ROOTS = [
1232
+ "section",
1233
+ "article",
1234
+ "aside",
1235
+ "nav",
1236
+ "main",
1237
+ "search",
1238
+ "form",
1239
+ "fieldset",
1240
+ "details",
1241
+ "dialog",
1242
+ "figure",
1243
+ "li",
1244
+ "ul",
1245
+ "ol",
1246
+ "menu"
1247
+ ];
1248
+ var NAMELESS_ROLES = [
1249
+ "generic",
1250
+ "none",
1251
+ "presentation",
1252
+ "paragraph",
1253
+ "caption",
1254
+ "code",
1255
+ "deletion",
1256
+ "emphasis",
1257
+ "insertion",
1258
+ "strong",
1259
+ "subscript",
1260
+ "superscript",
1261
+ "term",
1262
+ "time",
1263
+ "mark"
1264
+ ];
1265
+ function cardTakesName(as, role) {
1266
+ const first = role ? role.trim().split(/\s+/)[0].toLowerCase() : "";
1267
+ if (first) return NAMELESS_ROLES.indexOf(first) < 0;
1268
+ return NAMED_ROOTS.indexOf(as) >= 0;
1269
+ }
1231
1270
  function cardElement(props, ref) {
1232
1271
  const creative = props.variant === "creative";
1233
1272
  const rest = omit(props, [
@@ -1257,8 +1296,10 @@ function cardElement(props, ref) {
1257
1296
  props.flushBelow && "aura-card--flush-below-" + props.flushBelow,
1258
1297
  props.className
1259
1298
  ),
1260
- /* A titled card is labelled by its title; otherwise the caller's aria-labelledby stays (5.8). */
1261
- "aria-labelledby": !head && props.title && props.titleId ? props.titleId : props["aria-labelledby"]
1299
+ /* A titled card is labelled by its title; otherwise the caller's aria-labelledby stays (5.8). 5.86 (Chamber-OS
1300
+ * 199): only where a name is allowed — a root that takes one (section, article…) or one with a role; a plain
1301
+ * div is generic, where ARIA 1.2 prohibits a name. The title keeps its id either way. */
1302
+ "aria-labelledby": !head && props.title && props.titleId && cardTakesName(props.as || "section", props.role) ? props.titleId : props["aria-labelledby"]
1262
1303
  }),
1263
1304
  head || props.title || props.actions ? /* @__PURE__ */ React3.createElement("div", { className: "aura-card__head" }, /* @__PURE__ */ React3.createElement("div", { className: "aura-card__heading" }, head ? props.header : null, !head && props.title ? h2("h" + (props.headingLevel || 3), { className: "aura-card__title", id: props.titleId }, props.title) : null, !head && props.description ? /* @__PURE__ */ React3.createElement("p", { className: "aura-card__desc" }, props.description) : null), props.actions ? /* @__PURE__ */ React3.createElement("div", { className: "aura-card__actions" }, props.actions) : null) : null,
1264
1305
  props.children ? /* @__PURE__ */ React3.createElement("div", { className: "aura-card__body" }, props.children) : null,
@@ -1358,7 +1399,13 @@ function emptyStateElement(props, ref) {
1358
1399
  props.className
1359
1400
  )
1360
1401
  },
1361
- /* @__PURE__ */ React3.createElement("span", { className: "aura-empty__icon", "aria-hidden": true }, /* @__PURE__ */ React3.createElement(Icon, { name: props.icon || /* @__PURE__ */ React3.createElement(IconInbox, null), size: props.size === "sm" ? "md" : "lg" })),
1402
+ props.icon === false ? null : /* @__PURE__ */ React3.createElement("span", { className: "aura-empty__icon", "aria-hidden": true }, /* @__PURE__ */ React3.createElement(
1403
+ Icon,
1404
+ {
1405
+ name: props.icon || (props.tone === "danger" ? /* @__PURE__ */ React3.createElement(IconTriangleAlert, null) : /* @__PURE__ */ React3.createElement(IconInbox, null)),
1406
+ size: props.size === "sm" ? "md" : "lg"
1407
+ }
1408
+ )),
1362
1409
  /* @__PURE__ */ React3.createElement(HT, { className: "aura-empty__title" }, props.title),
1363
1410
  props.description ? /* @__PURE__ */ React3.createElement("p", { className: "aura-empty__text" }, props.description) : null,
1364
1411
  props.action ? /* @__PURE__ */ React3.createElement("div", { className: "aura-empty__action" }, props.action) : null
@@ -114,7 +114,10 @@ export interface CardProps extends Omit<React$1.HTMLAttributes<HTMLElement>, "ti
114
114
  interactive?: boolean | undefined;
115
115
  as?: keyof React$1.JSX.IntrinsicElements | undefined;
116
116
  className?: string | undefined;
117
- /** id for the title element; the card is then labelled by it (aria-labelledby). */
117
+ /** id for the title element; the card is then labelled by it (aria-labelledby) — when its root takes a name: the
118
+ * default `section`, `article`, `aside`, `nav`, `form`, `fieldset`… or any root with a `role` (5.86, Chamber-OS 199).
119
+ * With `as="div"` and no role the title keeps its id but the root stays unlabelled (ARIA 1.2 prohibits a name on a
120
+ * generic element). */
118
121
  titleId?: string | undefined;
119
122
  /** Free head content in place of `title` and `description` (5.15, Chamber-OS 87): skeleton bars while the card
120
123
  * loads, a status pill above a title you mark up yourself. No heading is added; `actions` still sit top-right. */
@@ -233,7 +236,9 @@ export interface BadgeProps extends React$1.HTMLAttributes<HTMLSpanElement> {
233
236
  export interface EmptyStateProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "title" | "children"> {
234
237
  title: React$1.ReactNode;
235
238
  description?: React$1.ReactNode | undefined;
236
- icon?: IconInput | undefined;
239
+ /** Default `inbox`, or `triangle-alert` with `tone="danger"` (5.86, Chamber-OS 202). `false` (5.86, Chamber-OS 201)
240
+ * draws no icon and no circle — a short placeholder in a table cell or a small panel. */
241
+ icon?: IconInput | false | undefined;
237
242
  /** One or two buttons. */
238
243
  action?: React$1.ReactNode | undefined;
239
244
  size?: "sm" | "md" | undefined;
@@ -114,7 +114,10 @@ export interface CardProps extends Omit<React$1.HTMLAttributes<HTMLElement>, "ti
114
114
  interactive?: boolean | undefined;
115
115
  as?: keyof React$1.JSX.IntrinsicElements | undefined;
116
116
  className?: string | undefined;
117
- /** id for the title element; the card is then labelled by it (aria-labelledby). */
117
+ /** id for the title element; the card is then labelled by it (aria-labelledby) — when its root takes a name: the
118
+ * default `section`, `article`, `aside`, `nav`, `form`, `fieldset`… or any root with a `role` (5.86, Chamber-OS 199).
119
+ * With `as="div"` and no role the title keeps its id but the root stays unlabelled (ARIA 1.2 prohibits a name on a
120
+ * generic element). */
118
121
  titleId?: string | undefined;
119
122
  /** Free head content in place of `title` and `description` (5.15, Chamber-OS 87): skeleton bars while the card
120
123
  * loads, a status pill above a title you mark up yourself. No heading is added; `actions` still sit top-right. */
@@ -233,7 +236,9 @@ export interface BadgeProps extends React$1.HTMLAttributes<HTMLSpanElement> {
233
236
  export interface EmptyStateProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "title" | "children"> {
234
237
  title: React$1.ReactNode;
235
238
  description?: React$1.ReactNode | undefined;
236
- icon?: IconInput | undefined;
239
+ /** Default `inbox`, or `triangle-alert` with `tone="danger"` (5.86, Chamber-OS 202). `false` (5.86, Chamber-OS 201)
240
+ * draws no icon and no circle — a short placeholder in a table cell or a small panel. */
241
+ icon?: IconInput | false | undefined;
237
242
  /** One or two buttons. */
238
243
  action?: React$1.ReactNode | undefined;
239
244
  size?: "sm" | "md" | undefined;
@@ -1161,6 +1161,45 @@ function alertElement(props, ref, close, autoId) {
1161
1161
  close
1162
1162
  );
1163
1163
  }
1164
+ var NAMED_ROOTS = [
1165
+ "section",
1166
+ "article",
1167
+ "aside",
1168
+ "nav",
1169
+ "main",
1170
+ "search",
1171
+ "form",
1172
+ "fieldset",
1173
+ "details",
1174
+ "dialog",
1175
+ "figure",
1176
+ "li",
1177
+ "ul",
1178
+ "ol",
1179
+ "menu"
1180
+ ];
1181
+ var NAMELESS_ROLES = [
1182
+ "generic",
1183
+ "none",
1184
+ "presentation",
1185
+ "paragraph",
1186
+ "caption",
1187
+ "code",
1188
+ "deletion",
1189
+ "emphasis",
1190
+ "insertion",
1191
+ "strong",
1192
+ "subscript",
1193
+ "superscript",
1194
+ "term",
1195
+ "time",
1196
+ "mark"
1197
+ ];
1198
+ function cardTakesName(as, role) {
1199
+ const first = role ? role.trim().split(/\s+/)[0].toLowerCase() : "";
1200
+ if (first) return NAMELESS_ROLES.indexOf(first) < 0;
1201
+ return NAMED_ROOTS.indexOf(as) >= 0;
1202
+ }
1164
1203
  function cardElement(props, ref) {
1165
1204
  const creative = props.variant === "creative";
1166
1205
  const rest = omit(props, [
@@ -1190,8 +1229,10 @@ function cardElement(props, ref) {
1190
1229
  props.flushBelow && "aura-card--flush-below-" + props.flushBelow,
1191
1230
  props.className
1192
1231
  ),
1193
- /* A titled card is labelled by its title; otherwise the caller's aria-labelledby stays (5.8). */
1194
- "aria-labelledby": !head && props.title && props.titleId ? props.titleId : props["aria-labelledby"]
1232
+ /* A titled card is labelled by its title; otherwise the caller's aria-labelledby stays (5.8). 5.86 (Chamber-OS
1233
+ * 199): only where a name is allowed — a root that takes one (section, article…) or one with a role; a plain
1234
+ * div is generic, where ARIA 1.2 prohibits a name. The title keeps its id either way. */
1235
+ "aria-labelledby": !head && props.title && props.titleId && cardTakesName(props.as || "section", props.role) ? props.titleId : props["aria-labelledby"]
1195
1236
  }),
1196
1237
  head || props.title || props.actions ? /* @__PURE__ */ React3.createElement("div", { className: "aura-card__head" }, /* @__PURE__ */ React3.createElement("div", { className: "aura-card__heading" }, head ? props.header : null, !head && props.title ? h2("h" + (props.headingLevel || 3), { className: "aura-card__title", id: props.titleId }, props.title) : null, !head && props.description ? /* @__PURE__ */ React3.createElement("p", { className: "aura-card__desc" }, props.description) : null), props.actions ? /* @__PURE__ */ React3.createElement("div", { className: "aura-card__actions" }, props.actions) : null) : null,
1197
1238
  props.children ? /* @__PURE__ */ React3.createElement("div", { className: "aura-card__body" }, props.children) : null,
@@ -1291,7 +1332,13 @@ function emptyStateElement(props, ref) {
1291
1332
  props.className
1292
1333
  )
1293
1334
  },
1294
- /* @__PURE__ */ React3.createElement("span", { className: "aura-empty__icon", "aria-hidden": true }, /* @__PURE__ */ React3.createElement(Icon, { name: props.icon || /* @__PURE__ */ React3.createElement(IconInbox, null), size: props.size === "sm" ? "md" : "lg" })),
1335
+ props.icon === false ? null : /* @__PURE__ */ React3.createElement("span", { className: "aura-empty__icon", "aria-hidden": true }, /* @__PURE__ */ React3.createElement(
1336
+ Icon,
1337
+ {
1338
+ name: props.icon || (props.tone === "danger" ? /* @__PURE__ */ React3.createElement(IconTriangleAlert, null) : /* @__PURE__ */ React3.createElement(IconInbox, null)),
1339
+ size: props.size === "sm" ? "md" : "lg"
1340
+ }
1341
+ )),
1295
1342
  /* @__PURE__ */ React3.createElement(HT, { className: "aura-empty__title" }, props.title),
1296
1343
  props.description ? /* @__PURE__ */ React3.createElement("p", { className: "aura-empty__text" }, props.description) : null,
1297
1344
  props.action ? /* @__PURE__ */ React3.createElement("div", { className: "aura-empty__action" }, props.action) : null
package/dist/styles.css CHANGED
@@ -28,16 +28,19 @@
28
28
  .aura-btn:active { transform: scale(0.98); }
29
29
  .aura-btn:disabled, a.aura-btn[aria-disabled='true'] { opacity: var(--aura-disabled-opacity); pointer-events: none; }
30
30
  a.aura-btn { text-decoration: none; }
31
- /* fullWidth: fills the row and wraps a long label (Thai and Swedish run ~30% longer) instead of overflowing. */
31
+ /* fullWidth: fills the row and wraps a long label (Thai and Swedish run ~30% longer) instead of overflowing.
32
+ * 5.87 (Chamber-OS 203): one shape wherever it sits — corners at most half the 44px button, so one line is the lozenge
33
+ * and a wrapped label is a rounded box (22px corners), not a stretched pill. */
32
34
  .aura-btn--full {
33
35
  width: 100%; height: auto; min-height: var(--aura-button-height); white-space: normal; flex-shrink: 1;
34
36
  padding-block: var(--aura-space-2); line-height: 1.35; text-align: center; overflow-wrap: anywhere;
37
+ border-radius: min(var(--aura-button-radius), 22px);
35
38
  }
36
39
  /* 5.53 (Chamber-OS 165): fullWidth="below-md" — the same, only below 768px, and at least 44px tall there, touchHeight
37
40
  * or not (hence the doubled class); its natural width above. "below-sm" is with the phone rules (max-width 639.98px). */
38
41
  @media (max-width: 767.98px) {
39
42
  .aura-btn.aura-btn.aura-btn--full-below-md { width: 100%; height: auto; min-height: var(--aura-touch-target); white-space: normal; flex-shrink: 1;
40
- padding-block: var(--aura-space-2); line-height: 1.35; text-align: center; overflow-wrap: anywhere; }
43
+ padding-block: var(--aura-space-2); line-height: 1.35; text-align: center; overflow-wrap: anywhere; border-radius: min(var(--aura-button-radius), 22px); }
41
44
  }
42
45
  .aura-btn.is-loading { cursor: progress; }
43
46
  /* 5.14: a button gated with aria-disabled looks unavailable but stays focusable (no pointer-events: none, so the
@@ -1358,11 +1361,17 @@ summary.aura-link::-webkit-details-marker { display: none; }
1358
1361
  * span as wide as its text and the page scrolled sideways. :where keeps the selector's weight as before. */
1359
1362
  @media (max-width: 639.98px) {
1360
1363
  .aura-page-header--actions-full-below-sm > .aura-page-header__actions { flex: 1 1 100%; gap: var(--aura-space-3); }
1361
- .aura-page-header--actions-full-below-sm:not(.aura-page-header--actions-bar-below-sm, .aura-page-header--actions-bar-below-md) > .aura-page-header__actions > :is(.aura-btn, :not(.aura-page-header__bar) > .aura-btn):not(.aura-icon-btn) { border-radius: var(--aura-radius-md); } /* 5.78 (visual audit 11): a label that wraps to two lines is a rounded box, not a lozenge */
1362
- .aura-page-header--actions-full-below-sm:is(.aura-page-header--actions-bar-below-sm, .aura-page-header--actions-bar-below-md) > .aura-page-header__actions.is-split > :is(.aura-btn, :not(.aura-page-header__bar) > .aura-btn):not(.aura-icon-btn) { border-radius: var(--aura-radius-md); } /* 5.78: actionsBar's split — the header's own actions, not the strip */
1363
- .aura-page-header--actions-full-below-sm > .aura-page-header__actions > :where(:not(.sr-only, .aura-sr-only, .visually-hidden, .screen-reader-text, [hidden], [style*="position: absolute"], [style*="position:absolute"])) { flex: 1 1 0; min-width: max-content; }
1364
+ .aura-page-header--actions-full-below-sm:not(.aura-page-header--actions-bar-below-sm, .aura-page-header--actions-bar-below-md) > .aura-page-header__actions > :is(.aura-btn, :not(.aura-page-header__bar) > .aura-btn):not(.aura-icon-btn) { border-radius: min(var(--aura-button-radius), 22px); } /* 5.87 (Chamber-OS 203): a lozenge on one line, a rounded box when the label wraps — as every full-width button */
1365
+ .aura-page-header--actions-full-below-sm:is(.aura-page-header--actions-bar-below-sm, .aura-page-header--actions-bar-below-md) > .aura-page-header__actions.is-split > :is(.aura-btn, :not(.aura-page-header__bar) > .aura-btn):not(.aura-icon-btn) { border-radius: min(var(--aura-button-radius), 22px); } /* 5.78: actionsBar's split — the header's own actions, not the strip */
1366
+ .aura-page-header--actions-full-below-sm > .aura-page-header__actions > :where(:not(.sr-only, .aura-sr-only, .visually-hidden, .screen-reader-text, [hidden], [style*="position: absolute"], [style*="position:absolute"])) { flex: 1 1 0; min-width: max-content; min-width: fit-content; }
1367
+ .aura-page-header--actions-full-below-sm > .aura-page-header__actions > :is(.aura-btn, * > .aura-btn):not(.aura-icon-btn) { height: auto; min-height: var(--aura-button-height); white-space: normal; padding-block: var(--aura-space-2); line-height: 1.35; text-align: center; overflow-wrap: anywhere; border-radius: min(var(--aura-button-radius), 22px); }
1368
+ .aura-page-header--actions-full-below-sm > .aura-page-header__actions > :is(.aura-btn--sm, * > .aura-btn--sm):not(.aura-icon-btn) { min-height: var(--aura-button-height-sm); padding-block: var(--aura-space-1); }
1369
+ .aura-page-header--actions-full-below-sm > .aura-page-header__actions > :is(.aura-btn--touch, * > .aura-btn--touch):not(.aura-icon-btn) { min-height: var(--aura-touch-target); }
1364
1370
  .aura-page-header--actions-full-below-sm > .aura-page-header__actions > :is(.aura-dropdown, .aura-tooltip-anchor, .aura-popover-anchor) > * { flex: 1 1 auto; }
1365
- .aura-page-header--actions-full-below-sm > .aura-page-header__actions > .aura-page-header__bar > :where(:not(.aura-page-header__status, .sr-only, .aura-sr-only, .visually-hidden, .screen-reader-text, [hidden], [style*="position: absolute"], [style*="position:absolute"])) { flex: 1 1 0; min-width: max-content; } /* 5.71: actionsBar in the row, as the actions (5.61) */
1371
+ .aura-page-header--actions-full-below-sm > .aura-page-header__actions > .aura-page-header__bar > :where(:not(.aura-page-header__status, .sr-only, .aura-sr-only, .visually-hidden, .screen-reader-text, [hidden], [style*="position: absolute"], [style*="position:absolute"])) { flex: 1 1 0; min-width: max-content; min-width: fit-content; } /* 5.71: actionsBar in the row, as the actions (5.61) */
1372
+ .aura-page-header--actions-full-below-sm > .aura-page-header__actions > .aura-page-header__bar > :is(.aura-btn, * > .aura-btn):not(.aura-icon-btn) { height: auto; min-height: var(--aura-button-height); white-space: normal; padding-block: var(--aura-space-2); line-height: 1.35; text-align: center; overflow-wrap: anywhere; border-radius: min(var(--aura-button-radius), 22px); }
1373
+ .aura-page-header--actions-full-below-sm > .aura-page-header__actions > .aura-page-header__bar > :is(.aura-btn--sm, * > .aura-btn--sm):not(.aura-icon-btn) { min-height: var(--aura-button-height-sm); padding-block: var(--aura-space-1); }
1374
+ .aura-page-header--actions-full-below-sm > .aura-page-header__actions > .aura-page-header__bar > :is(.aura-btn--touch, * > .aura-btn--touch):not(.aura-icon-btn) { min-height: var(--aura-touch-target); }
1366
1375
  .aura-page-header--actions-full-below-sm > .aura-page-header__actions > .aura-page-header__bar > :is(.aura-icon-btn, :has(> .aura-icon-btn)) { flex: none; }
1367
1376
  /* (5.71: an IconButton in actionsBar doesn't put the actions in 5.45's one-row mode — the :has() above skips the bar box.) */
1368
1377
  .aura-page-header--actions-full-below-sm > .aura-page-header__actions > .aura-icon-btn { flex: none; }
@@ -1370,42 +1379,54 @@ summary.aura-link::-webkit-details-marker { display: none; }
1370
1379
  .aura-page-header--actions-full-below-sm > .aura-page-header__actions:has(> .aura-icon-btn, > :not(.aura-page-header__bar) > .aura-icon-btn) { flex-wrap: nowrap; align-items: stretch; }
1371
1380
  .aura-page-header--actions-full-below-sm > .aura-page-header__actions:has(> .aura-icon-btn, > :not(.aura-page-header__bar) > .aura-icon-btn) > * { min-width: 0; }
1372
1381
  .aura-page-header--actions-full-below-sm > .aura-page-header__actions:has(> .aura-icon-btn, > :not(.aura-page-header__bar) > .aura-icon-btn) > :is(.aura-btn, * > .aura-btn):not(.aura-icon-btn) { height: auto; min-height: var(--aura-button-height); white-space: normal; padding: var(--aura-space-2) var(--aura-space-3); line-height: 1.35; text-align: center; overflow-wrap: anywhere; hyphens: auto; border-radius: min(var(--aura-button-radius), 22px); }
1373
- .aura-page-header--actions-full-below-sm:not(.aura-page-header--actions-bar-below-sm, .aura-page-header--actions-bar-below-md) > .aura-page-header__actions:has(> .aura-icon-btn, > :not(.aura-page-header__bar) > .aura-icon-btn) > :is(.aura-btn, * > .aura-btn):not(.aura-icon-btn) { border-radius: var(--aura-radius-md); } /* 5.78 (visual audit 11) */
1374
- .aura-page-header--actions-full-below-sm:is(.aura-page-header--actions-bar-below-sm, .aura-page-header--actions-bar-below-md) > .aura-page-header__actions.is-split:has(> .aura-icon-btn, > :not(.aura-page-header__bar) > .aura-icon-btn) > :is(.aura-btn, :not(.aura-page-header__bar) > .aura-btn):not(.aura-icon-btn) { border-radius: var(--aura-radius-md); }
1382
+ .aura-page-header--actions-full-below-sm:not(.aura-page-header--actions-bar-below-sm, .aura-page-header--actions-bar-below-md) > .aura-page-header__actions:has(> .aura-icon-btn, > :not(.aura-page-header__bar) > .aura-icon-btn) > :is(.aura-btn, * > .aura-btn):not(.aura-icon-btn) { border-radius: min(var(--aura-button-radius), 22px); } /* 5.78 (visual audit 11) */
1383
+ .aura-page-header--actions-full-below-sm:is(.aura-page-header--actions-bar-below-sm, .aura-page-header--actions-bar-below-md) > .aura-page-header__actions.is-split:has(> .aura-icon-btn, > :not(.aura-page-header__bar) > .aura-icon-btn) > :is(.aura-btn, :not(.aura-page-header__bar) > .aura-btn):not(.aura-icon-btn) { border-radius: min(var(--aura-button-radius), 22px); }
1375
1384
  .aura-page-header--actions-full-below-sm > .aura-page-header__actions:has(> .aura-icon-btn, > :not(.aura-page-header__bar) > .aura-icon-btn) > :is(.aura-icon-btn, :has(> .aura-icon-btn)) { align-self: center; } /* 5.45 (Chamber-OS addendum 52): centred on a taller button */
1376
1385
  }
1377
1386
  @media (max-width: 767.98px) {
1378
1387
  .aura-page-header--actions-full-below-md > .aura-page-header__actions { flex: 1 1 100%; gap: var(--aura-space-3); }
1379
- .aura-page-header--actions-full-below-md:not(.aura-page-header--actions-bar-below-sm, .aura-page-header--actions-bar-below-md) > .aura-page-header__actions > :is(.aura-btn, :not(.aura-page-header__bar) > .aura-btn):not(.aura-icon-btn) { border-radius: var(--aura-radius-md); } /* 5.78 (visual audit 11): a label that wraps to two lines is a rounded box, not a lozenge */
1380
- .aura-page-header--actions-full-below-md:is(.aura-page-header--actions-bar-below-sm, .aura-page-header--actions-bar-below-md) > .aura-page-header__actions.is-split > :is(.aura-btn, :not(.aura-page-header__bar) > .aura-btn):not(.aura-icon-btn) { border-radius: var(--aura-radius-md); } /* 5.78: actionsBar's split — the header's own actions, not the strip */
1381
- .aura-page-header--actions-full-below-md > .aura-page-header__actions > :where(:not(.sr-only, .aura-sr-only, .visually-hidden, .screen-reader-text, [hidden], [style*="position: absolute"], [style*="position:absolute"])) { flex: 1 1 0; min-width: max-content; }
1388
+ .aura-page-header--actions-full-below-md:not(.aura-page-header--actions-bar-below-sm, .aura-page-header--actions-bar-below-md) > .aura-page-header__actions > :is(.aura-btn, :not(.aura-page-header__bar) > .aura-btn):not(.aura-icon-btn) { border-radius: min(var(--aura-button-radius), 22px); } /* 5.87 (Chamber-OS 203): a lozenge on one line, a rounded box when the label wraps — as every full-width button */
1389
+ .aura-page-header--actions-full-below-md:is(.aura-page-header--actions-bar-below-sm, .aura-page-header--actions-bar-below-md) > .aura-page-header__actions.is-split > :is(.aura-btn, :not(.aura-page-header__bar) > .aura-btn):not(.aura-icon-btn) { border-radius: min(var(--aura-button-radius), 22px); } /* 5.78: actionsBar's split — the header's own actions, not the strip */
1390
+ .aura-page-header--actions-full-below-md > .aura-page-header__actions > :where(:not(.sr-only, .aura-sr-only, .visually-hidden, .screen-reader-text, [hidden], [style*="position: absolute"], [style*="position:absolute"])) { flex: 1 1 0; min-width: max-content; min-width: fit-content; }
1391
+ .aura-page-header--actions-full-below-md > .aura-page-header__actions > :is(.aura-btn, * > .aura-btn):not(.aura-icon-btn) { height: auto; min-height: var(--aura-button-height); white-space: normal; padding-block: var(--aura-space-2); line-height: 1.35; text-align: center; overflow-wrap: anywhere; border-radius: min(var(--aura-button-radius), 22px); }
1392
+ .aura-page-header--actions-full-below-md > .aura-page-header__actions > :is(.aura-btn--sm, * > .aura-btn--sm):not(.aura-icon-btn) { min-height: var(--aura-button-height-sm); padding-block: var(--aura-space-1); }
1393
+ .aura-page-header--actions-full-below-md > .aura-page-header__actions > :is(.aura-btn--touch, * > .aura-btn--touch):not(.aura-icon-btn) { min-height: var(--aura-touch-target); }
1382
1394
  .aura-page-header--actions-full-below-md > .aura-page-header__actions > :is(.aura-dropdown, .aura-tooltip-anchor, .aura-popover-anchor) > * { flex: 1 1 auto; }
1383
- .aura-page-header--actions-full-below-md > .aura-page-header__actions > .aura-page-header__bar > :where(:not(.aura-page-header__status, .sr-only, .aura-sr-only, .visually-hidden, .screen-reader-text, [hidden], [style*="position: absolute"], [style*="position:absolute"])) { flex: 1 1 0; min-width: max-content; } /* 5.71: actionsBar in the row, as the actions (5.61) */
1395
+ .aura-page-header--actions-full-below-md > .aura-page-header__actions > .aura-page-header__bar > :where(:not(.aura-page-header__status, .sr-only, .aura-sr-only, .visually-hidden, .screen-reader-text, [hidden], [style*="position: absolute"], [style*="position:absolute"])) { flex: 1 1 0; min-width: max-content; min-width: fit-content; } /* 5.71: actionsBar in the row, as the actions (5.61) */
1396
+ .aura-page-header--actions-full-below-md > .aura-page-header__actions > .aura-page-header__bar > :is(.aura-btn, * > .aura-btn):not(.aura-icon-btn) { height: auto; min-height: var(--aura-button-height); white-space: normal; padding-block: var(--aura-space-2); line-height: 1.35; text-align: center; overflow-wrap: anywhere; border-radius: min(var(--aura-button-radius), 22px); }
1397
+ .aura-page-header--actions-full-below-md > .aura-page-header__actions > .aura-page-header__bar > :is(.aura-btn--sm, * > .aura-btn--sm):not(.aura-icon-btn) { min-height: var(--aura-button-height-sm); padding-block: var(--aura-space-1); }
1398
+ .aura-page-header--actions-full-below-md > .aura-page-header__actions > .aura-page-header__bar > :is(.aura-btn--touch, * > .aura-btn--touch):not(.aura-icon-btn) { min-height: var(--aura-touch-target); }
1384
1399
  .aura-page-header--actions-full-below-md > .aura-page-header__actions > .aura-page-header__bar > :is(.aura-icon-btn, :has(> .aura-icon-btn)) { flex: none; }
1385
1400
  .aura-page-header--actions-full-below-md > .aura-page-header__actions > .aura-icon-btn { flex: none; }
1386
1401
  .aura-page-header--actions-full-below-md > .aura-page-header__actions > :has(> .aura-icon-btn) { flex: none; }
1387
1402
  .aura-page-header--actions-full-below-md > .aura-page-header__actions:has(> .aura-icon-btn, > :not(.aura-page-header__bar) > .aura-icon-btn) { flex-wrap: nowrap; align-items: stretch; }
1388
1403
  .aura-page-header--actions-full-below-md > .aura-page-header__actions:has(> .aura-icon-btn, > :not(.aura-page-header__bar) > .aura-icon-btn) > * { min-width: 0; }
1389
1404
  .aura-page-header--actions-full-below-md > .aura-page-header__actions:has(> .aura-icon-btn, > :not(.aura-page-header__bar) > .aura-icon-btn) > :is(.aura-btn, * > .aura-btn):not(.aura-icon-btn) { height: auto; min-height: var(--aura-button-height); white-space: normal; padding: var(--aura-space-2) var(--aura-space-3); line-height: 1.35; text-align: center; overflow-wrap: anywhere; hyphens: auto; border-radius: min(var(--aura-button-radius), 22px); }
1390
- .aura-page-header--actions-full-below-md:not(.aura-page-header--actions-bar-below-sm, .aura-page-header--actions-bar-below-md) > .aura-page-header__actions:has(> .aura-icon-btn, > :not(.aura-page-header__bar) > .aura-icon-btn) > :is(.aura-btn, * > .aura-btn):not(.aura-icon-btn) { border-radius: var(--aura-radius-md); } /* 5.78 (visual audit 11) */
1391
- .aura-page-header--actions-full-below-md:is(.aura-page-header--actions-bar-below-sm, .aura-page-header--actions-bar-below-md) > .aura-page-header__actions.is-split:has(> .aura-icon-btn, > :not(.aura-page-header__bar) > .aura-icon-btn) > :is(.aura-btn, :not(.aura-page-header__bar) > .aura-btn):not(.aura-icon-btn) { border-radius: var(--aura-radius-md); }
1405
+ .aura-page-header--actions-full-below-md:not(.aura-page-header--actions-bar-below-sm, .aura-page-header--actions-bar-below-md) > .aura-page-header__actions:has(> .aura-icon-btn, > :not(.aura-page-header__bar) > .aura-icon-btn) > :is(.aura-btn, * > .aura-btn):not(.aura-icon-btn) { border-radius: min(var(--aura-button-radius), 22px); } /* 5.78 (visual audit 11) */
1406
+ .aura-page-header--actions-full-below-md:is(.aura-page-header--actions-bar-below-sm, .aura-page-header--actions-bar-below-md) > .aura-page-header__actions.is-split:has(> .aura-icon-btn, > :not(.aura-page-header__bar) > .aura-icon-btn) > :is(.aura-btn, :not(.aura-page-header__bar) > .aura-btn):not(.aura-icon-btn) { border-radius: min(var(--aura-button-radius), 22px); }
1392
1407
  .aura-page-header--actions-full-below-md > .aura-page-header__actions:has(> .aura-icon-btn, > :not(.aura-page-header__bar) > .aura-icon-btn) > :is(.aura-icon-btn, :has(> .aura-icon-btn)) { align-self: center; } /* 5.45 (Chamber-OS addendum 52): centred on a taller button */
1393
1408
  }
1394
1409
  @media (max-width: 1023.98px) {
1395
1410
  .aura-page-header--actions-full-below-lg > .aura-page-header__actions { flex: 1 1 100%; gap: var(--aura-space-3); }
1396
- .aura-page-header--actions-full-below-lg:not(.aura-page-header--actions-bar-below-sm, .aura-page-header--actions-bar-below-md) > .aura-page-header__actions > :is(.aura-btn, :not(.aura-page-header__bar) > .aura-btn):not(.aura-icon-btn) { border-radius: var(--aura-radius-md); } /* 5.78 (visual audit 11): a label that wraps to two lines is a rounded box, not a lozenge */
1397
- .aura-page-header--actions-full-below-lg:is(.aura-page-header--actions-bar-below-sm, .aura-page-header--actions-bar-below-md) > .aura-page-header__actions.is-split > :is(.aura-btn, :not(.aura-page-header__bar) > .aura-btn):not(.aura-icon-btn) { border-radius: var(--aura-radius-md); } /* 5.78: actionsBar's split — the header's own actions, not the strip */
1398
- .aura-page-header--actions-full-below-lg > .aura-page-header__actions > :where(:not(.sr-only, .aura-sr-only, .visually-hidden, .screen-reader-text, [hidden], [style*="position: absolute"], [style*="position:absolute"])) { flex: 1 1 0; min-width: max-content; }
1411
+ .aura-page-header--actions-full-below-lg:not(.aura-page-header--actions-bar-below-sm, .aura-page-header--actions-bar-below-md) > .aura-page-header__actions > :is(.aura-btn, :not(.aura-page-header__bar) > .aura-btn):not(.aura-icon-btn) { border-radius: min(var(--aura-button-radius), 22px); } /* 5.87 (Chamber-OS 203): a lozenge on one line, a rounded box when the label wraps — as every full-width button */
1412
+ .aura-page-header--actions-full-below-lg:is(.aura-page-header--actions-bar-below-sm, .aura-page-header--actions-bar-below-md) > .aura-page-header__actions.is-split > :is(.aura-btn, :not(.aura-page-header__bar) > .aura-btn):not(.aura-icon-btn) { border-radius: min(var(--aura-button-radius), 22px); } /* 5.78: actionsBar's split — the header's own actions, not the strip */
1413
+ .aura-page-header--actions-full-below-lg > .aura-page-header__actions > :where(:not(.sr-only, .aura-sr-only, .visually-hidden, .screen-reader-text, [hidden], [style*="position: absolute"], [style*="position:absolute"])) { flex: 1 1 0; min-width: max-content; min-width: fit-content; }
1414
+ .aura-page-header--actions-full-below-lg > .aura-page-header__actions > :is(.aura-btn, * > .aura-btn):not(.aura-icon-btn) { height: auto; min-height: var(--aura-button-height); white-space: normal; padding-block: var(--aura-space-2); line-height: 1.35; text-align: center; overflow-wrap: anywhere; border-radius: min(var(--aura-button-radius), 22px); }
1415
+ .aura-page-header--actions-full-below-lg > .aura-page-header__actions > :is(.aura-btn--sm, * > .aura-btn--sm):not(.aura-icon-btn) { min-height: var(--aura-button-height-sm); padding-block: var(--aura-space-1); }
1416
+ .aura-page-header--actions-full-below-lg > .aura-page-header__actions > :is(.aura-btn--touch, * > .aura-btn--touch):not(.aura-icon-btn) { min-height: var(--aura-touch-target); }
1399
1417
  .aura-page-header--actions-full-below-lg > .aura-page-header__actions > :is(.aura-dropdown, .aura-tooltip-anchor, .aura-popover-anchor) > * { flex: 1 1 auto; }
1400
- .aura-page-header--actions-full-below-lg > .aura-page-header__actions > .aura-page-header__bar > :where(:not(.aura-page-header__status, .sr-only, .aura-sr-only, .visually-hidden, .screen-reader-text, [hidden], [style*="position: absolute"], [style*="position:absolute"])) { flex: 1 1 0; min-width: max-content; } /* 5.71: actionsBar in the row, as the actions (5.61) */
1418
+ .aura-page-header--actions-full-below-lg > .aura-page-header__actions > .aura-page-header__bar > :where(:not(.aura-page-header__status, .sr-only, .aura-sr-only, .visually-hidden, .screen-reader-text, [hidden], [style*="position: absolute"], [style*="position:absolute"])) { flex: 1 1 0; min-width: max-content; min-width: fit-content; } /* 5.71: actionsBar in the row, as the actions (5.61) */
1419
+ .aura-page-header--actions-full-below-lg > .aura-page-header__actions > .aura-page-header__bar > :is(.aura-btn, * > .aura-btn):not(.aura-icon-btn) { height: auto; min-height: var(--aura-button-height); white-space: normal; padding-block: var(--aura-space-2); line-height: 1.35; text-align: center; overflow-wrap: anywhere; border-radius: min(var(--aura-button-radius), 22px); }
1420
+ .aura-page-header--actions-full-below-lg > .aura-page-header__actions > .aura-page-header__bar > :is(.aura-btn--sm, * > .aura-btn--sm):not(.aura-icon-btn) { min-height: var(--aura-button-height-sm); padding-block: var(--aura-space-1); }
1421
+ .aura-page-header--actions-full-below-lg > .aura-page-header__actions > .aura-page-header__bar > :is(.aura-btn--touch, * > .aura-btn--touch):not(.aura-icon-btn) { min-height: var(--aura-touch-target); }
1401
1422
  .aura-page-header--actions-full-below-lg > .aura-page-header__actions > .aura-page-header__bar > :is(.aura-icon-btn, :has(> .aura-icon-btn)) { flex: none; }
1402
1423
  .aura-page-header--actions-full-below-lg > .aura-page-header__actions > .aura-icon-btn { flex: none; }
1403
1424
  .aura-page-header--actions-full-below-lg > .aura-page-header__actions > :has(> .aura-icon-btn) { flex: none; }
1404
1425
  .aura-page-header--actions-full-below-lg > .aura-page-header__actions:has(> .aura-icon-btn, > :not(.aura-page-header__bar) > .aura-icon-btn) { flex-wrap: nowrap; align-items: stretch; }
1405
1426
  .aura-page-header--actions-full-below-lg > .aura-page-header__actions:has(> .aura-icon-btn, > :not(.aura-page-header__bar) > .aura-icon-btn) > * { min-width: 0; }
1406
1427
  .aura-page-header--actions-full-below-lg > .aura-page-header__actions:has(> .aura-icon-btn, > :not(.aura-page-header__bar) > .aura-icon-btn) > :is(.aura-btn, * > .aura-btn):not(.aura-icon-btn) { height: auto; min-height: var(--aura-button-height); white-space: normal; padding: var(--aura-space-2) var(--aura-space-3); line-height: 1.35; text-align: center; overflow-wrap: anywhere; hyphens: auto; border-radius: min(var(--aura-button-radius), 22px); }
1407
- .aura-page-header--actions-full-below-lg:not(.aura-page-header--actions-bar-below-sm, .aura-page-header--actions-bar-below-md) > .aura-page-header__actions:has(> .aura-icon-btn, > :not(.aura-page-header__bar) > .aura-icon-btn) > :is(.aura-btn, * > .aura-btn):not(.aura-icon-btn) { border-radius: var(--aura-radius-md); } /* 5.78 (visual audit 11) */
1408
- .aura-page-header--actions-full-below-lg:is(.aura-page-header--actions-bar-below-sm, .aura-page-header--actions-bar-below-md) > .aura-page-header__actions.is-split:has(> .aura-icon-btn, > :not(.aura-page-header__bar) > .aura-icon-btn) > :is(.aura-btn, :not(.aura-page-header__bar) > .aura-btn):not(.aura-icon-btn) { border-radius: var(--aura-radius-md); }
1428
+ .aura-page-header--actions-full-below-lg:not(.aura-page-header--actions-bar-below-sm, .aura-page-header--actions-bar-below-md) > .aura-page-header__actions:has(> .aura-icon-btn, > :not(.aura-page-header__bar) > .aura-icon-btn) > :is(.aura-btn, * > .aura-btn):not(.aura-icon-btn) { border-radius: min(var(--aura-button-radius), 22px); } /* 5.78 (visual audit 11) */
1429
+ .aura-page-header--actions-full-below-lg:is(.aura-page-header--actions-bar-below-sm, .aura-page-header--actions-bar-below-md) > .aura-page-header__actions.is-split:has(> .aura-icon-btn, > :not(.aura-page-header__bar) > .aura-icon-btn) > :is(.aura-btn, :not(.aura-page-header__bar) > .aura-btn):not(.aura-icon-btn) { border-radius: min(var(--aura-button-radius), 22px); }
1409
1430
  .aura-page-header--actions-full-below-lg > .aura-page-header__actions:has(> .aura-icon-btn, > :not(.aura-page-header__bar) > .aura-icon-btn) > :is(.aura-icon-btn, :has(> .aura-icon-btn)) { align-self: center; } /* 5.45 (Chamber-OS addendum 52): centred on a taller button */
1410
1431
  }
1411
1432
  /* 5.48 (Chamber-OS 154): only on a screen taller than 30rem (5.49: 480px at the default text size) — on a short one (400% zoom, a phone held sideways) the
@@ -1432,7 +1453,10 @@ summary.aura-link::-webkit-details-marker { display: none; }
1432
1453
  :is(.aura-page-header--actions-bar-below-sm > .aura-page-header__actions:not(.is-split), .aura-page-header--actions-bar-below-sm > .aura-page-header__actions > .aura-page-header__bar) > .aura-icon-btn, :is(.aura-page-header--actions-bar-below-sm > .aura-page-header__actions:not(.is-split), .aura-page-header--actions-bar-below-sm > .aura-page-header__actions > .aura-page-header__bar) > * > .aura-icon-btn:only-child { width: var(--aura-touch-target); height: var(--aura-touch-target); }
1433
1454
  :is(.aura-page-header--actions-bar-below-sm.aura-page-header--actions-bar-floating > .aura-page-header__actions:not(.is-split), .aura-page-header--actions-bar-below-sm.aura-page-header--actions-bar-floating > .aura-page-header__actions > .aura-page-header__bar) { left: var(--aura-space-4); right: var(--aura-space-4); bottom: calc(var(--aura-bottomnav-offset, 0px) + max(var(--aura-space-3), env(safe-area-inset-bottom, 0px))); padding-bottom: var(--aura-space-2); border: 1px solid var(--aura-border-default); border-radius: var(--aura-radius-lg); box-shadow: var(--aura-shadow-overlay); }
1434
1455
  :is(.aura-page-header--actions-bar-below-sm > .aura-page-header__actions:not(.is-split), .aura-page-header--actions-bar-below-sm > .aura-page-header__actions > .aura-page-header__bar) > .aura-page-header__status { display: block; flex: 1 1 100%; min-width: 0; font-size: max(14px, .875rem); line-height: 1.5; color: var(--aura-fg-secondary); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
1435
- :is(.aura-page-header--actions-bar-below-sm > .aura-page-header__actions:not(.is-split), .aura-page-header--actions-bar-below-sm > .aura-page-header__actions > .aura-page-header__bar) > :not(.aura-page-header__status, .sr-only, .aura-sr-only, .visually-hidden, .screen-reader-text, [hidden], [style*="position: absolute"], [style*="position:absolute"]) { flex: 1 1 0; min-width: max-content; }
1456
+ :is(.aura-page-header--actions-bar-below-sm > .aura-page-header__actions:not(.is-split), .aura-page-header--actions-bar-below-sm > .aura-page-header__actions > .aura-page-header__bar) > :not(.aura-page-header__status, .sr-only, .aura-sr-only, .visually-hidden, .screen-reader-text, [hidden], [style*="position: absolute"], [style*="position:absolute"]) { flex: 1 1 0; min-width: max-content; min-width: fit-content; }
1457
+ :is(.aura-page-header--actions-bar-below-sm > .aura-page-header__actions:not(.is-split), .aura-page-header--actions-bar-below-sm > .aura-page-header__actions > .aura-page-header__bar) > :is(.aura-btn, * > .aura-btn):not(.aura-icon-btn) { height: auto; min-height: var(--aura-button-height); white-space: normal; padding-block: var(--aura-space-2); line-height: 1.35; text-align: center; overflow-wrap: anywhere; border-radius: min(var(--aura-button-radius), 22px); }
1458
+ :is(.aura-page-header--actions-bar-below-sm > .aura-page-header__actions:not(.is-split), .aura-page-header--actions-bar-below-sm > .aura-page-header__actions > .aura-page-header__bar) > :is(.aura-btn--sm, * > .aura-btn--sm):not(.aura-icon-btn) { min-height: var(--aura-button-height-sm); padding-block: var(--aura-space-1); }
1459
+ :is(.aura-page-header--actions-bar-below-sm > .aura-page-header__actions:not(.is-split), .aura-page-header--actions-bar-below-sm > .aura-page-header__actions > .aura-page-header__bar) > :is(.aura-btn--touch, * > .aura-btn--touch):not(.aura-icon-btn) { min-height: var(--aura-touch-target); }
1436
1460
  :is(.aura-page-header--actions-bar-below-sm > .aura-page-header__actions:not(.is-split), .aura-page-header--actions-bar-below-sm > .aura-page-header__actions > .aura-page-header__bar) > :is(.aura-dropdown, .aura-tooltip-anchor, .aura-popover-anchor) > * { flex: 1 1 auto; }
1437
1461
  :is(.aura-page-header--actions-bar-below-sm > .aura-page-header__actions:not(.is-split), .aura-page-header--actions-bar-below-sm > .aura-page-header__actions > .aura-page-header__bar) > .aura-icon-btn { flex: none; }
1438
1462
  :is(.aura-page-header--actions-bar-below-sm > .aura-page-header__actions:not(.is-split), .aura-page-header--actions-bar-below-sm > .aura-page-header__actions > .aura-page-header__bar) > :has(> .aura-icon-btn) { flex: none; }
@@ -1458,7 +1482,10 @@ summary.aura-link::-webkit-details-marker { display: none; }
1458
1482
  :is(.aura-page-header--actions-bar-below-md > .aura-page-header__actions:not(.is-split), .aura-page-header--actions-bar-below-md > .aura-page-header__actions > .aura-page-header__bar) > .aura-icon-btn, :is(.aura-page-header--actions-bar-below-md > .aura-page-header__actions:not(.is-split), .aura-page-header--actions-bar-below-md > .aura-page-header__actions > .aura-page-header__bar) > * > .aura-icon-btn:only-child { width: var(--aura-touch-target); height: var(--aura-touch-target); }
1459
1483
  :is(.aura-page-header--actions-bar-below-md.aura-page-header--actions-bar-floating > .aura-page-header__actions:not(.is-split), .aura-page-header--actions-bar-below-md.aura-page-header--actions-bar-floating > .aura-page-header__actions > .aura-page-header__bar) { left: var(--aura-space-4); right: var(--aura-space-4); bottom: calc(var(--aura-bottomnav-offset, 0px) + max(var(--aura-space-3), env(safe-area-inset-bottom, 0px))); padding-bottom: var(--aura-space-2); border: 1px solid var(--aura-border-default); border-radius: var(--aura-radius-lg); box-shadow: var(--aura-shadow-overlay); }
1460
1484
  :is(.aura-page-header--actions-bar-below-md > .aura-page-header__actions:not(.is-split), .aura-page-header--actions-bar-below-md > .aura-page-header__actions > .aura-page-header__bar) > .aura-page-header__status { display: block; flex: 1 1 100%; min-width: 0; font-size: max(14px, .875rem); line-height: 1.5; color: var(--aura-fg-secondary); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
1461
- :is(.aura-page-header--actions-bar-below-md > .aura-page-header__actions:not(.is-split), .aura-page-header--actions-bar-below-md > .aura-page-header__actions > .aura-page-header__bar) > :not(.aura-page-header__status, .sr-only, .aura-sr-only, .visually-hidden, .screen-reader-text, [hidden], [style*="position: absolute"], [style*="position:absolute"]) { flex: 1 1 0; min-width: max-content; }
1485
+ :is(.aura-page-header--actions-bar-below-md > .aura-page-header__actions:not(.is-split), .aura-page-header--actions-bar-below-md > .aura-page-header__actions > .aura-page-header__bar) > :not(.aura-page-header__status, .sr-only, .aura-sr-only, .visually-hidden, .screen-reader-text, [hidden], [style*="position: absolute"], [style*="position:absolute"]) { flex: 1 1 0; min-width: max-content; min-width: fit-content; }
1486
+ :is(.aura-page-header--actions-bar-below-md > .aura-page-header__actions:not(.is-split), .aura-page-header--actions-bar-below-md > .aura-page-header__actions > .aura-page-header__bar) > :is(.aura-btn, * > .aura-btn):not(.aura-icon-btn) { height: auto; min-height: var(--aura-button-height); white-space: normal; padding-block: var(--aura-space-2); line-height: 1.35; text-align: center; overflow-wrap: anywhere; border-radius: min(var(--aura-button-radius), 22px); }
1487
+ :is(.aura-page-header--actions-bar-below-md > .aura-page-header__actions:not(.is-split), .aura-page-header--actions-bar-below-md > .aura-page-header__actions > .aura-page-header__bar) > :is(.aura-btn--sm, * > .aura-btn--sm):not(.aura-icon-btn) { min-height: var(--aura-button-height-sm); padding-block: var(--aura-space-1); }
1488
+ :is(.aura-page-header--actions-bar-below-md > .aura-page-header__actions:not(.is-split), .aura-page-header--actions-bar-below-md > .aura-page-header__actions > .aura-page-header__bar) > :is(.aura-btn--touch, * > .aura-btn--touch):not(.aura-icon-btn) { min-height: var(--aura-touch-target); }
1462
1489
  :is(.aura-page-header--actions-bar-below-md > .aura-page-header__actions:not(.is-split), .aura-page-header--actions-bar-below-md > .aura-page-header__actions > .aura-page-header__bar) > :is(.aura-dropdown, .aura-tooltip-anchor, .aura-popover-anchor) > * { flex: 1 1 auto; }
1463
1490
  :is(.aura-page-header--actions-bar-below-md > .aura-page-header__actions:not(.is-split), .aura-page-header--actions-bar-below-md > .aura-page-header__actions > .aura-page-header__bar) > .aura-icon-btn { flex: none; }
1464
1491
  :is(.aura-page-header--actions-bar-below-md > .aura-page-header__actions:not(.is-split), .aura-page-header--actions-bar-below-md > .aura-page-header__actions > .aura-page-header__bar) > :has(> .aura-icon-btn) { flex: none; }
@@ -1995,7 +2022,7 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
1995
2022
  .aura-dialog__foot > .aura-btn, .aura-dialog__foot > * > .aura-btn:only-child,
1996
2023
  .aura-drawer__foot > .aura-btn, .aura-drawer__foot > * > .aura-btn:only-child, .aura-btn.aura-btn.aura-btn--full-below-sm {
1997
2024
  height: auto; min-height: var(--aura-touch-target); white-space: normal; flex-shrink: 1;
1998
- padding-block: var(--aura-space-2); line-height: 1.35; text-align: center; overflow-wrap: anywhere; }
2025
+ padding-block: var(--aura-space-2); line-height: 1.35; text-align: center; overflow-wrap: anywhere; border-radius: min(var(--aura-button-radius), 22px); }
1999
2026
  .aura-dialog__foot > * > .aura-btn:only-child, .aura-btn.aura-btn.aura-btn--full-below-sm { width: 100%; }
2000
2027
  .aura-drawer__foot > * { max-width: 100%; }
2001
2028
  .aura-drawer:not(.aura-drawer--nav) { max-width: none; }
@@ -2421,15 +2448,15 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
2421
2448
  :root:has(.aura-actionbar--edge:not(.is-idle)):not(:has(.aura-shell__content)) body { padding-bottom: var(--aura-actionbar-space); }
2422
2449
  }
2423
2450
  /* 5.79 (5.78 carry-over): where actionsFullWidthBelow reaches wider than actionsBarBelow, the bar isn't pinned between
2424
- * the two breakpoints and its buttons sit in the same full-width row — every button there is radius-md, not some. */
2451
+ * the two breakpoints and its buttons sit in the same full-width row — every button there has the full-width shape (5.87). */
2425
2452
  @media (min-width: 640px) and (max-width: 767.98px) {
2426
- .aura-page-header--actions-full-below-md.aura-page-header--actions-bar-below-sm > .aura-page-header__actions .aura-btn:not(.aura-icon-btn) { border-radius: var(--aura-radius-md); }
2453
+ .aura-page-header--actions-full-below-md.aura-page-header--actions-bar-below-sm > .aura-page-header__actions .aura-btn:not(.aura-icon-btn) { border-radius: min(var(--aura-button-radius), 22px); }
2427
2454
  }
2428
2455
  @media (min-width: 640px) and (max-width: 1023.98px) {
2429
- .aura-page-header--actions-full-below-lg.aura-page-header--actions-bar-below-sm > .aura-page-header__actions .aura-btn:not(.aura-icon-btn) { border-radius: var(--aura-radius-md); }
2456
+ .aura-page-header--actions-full-below-lg.aura-page-header--actions-bar-below-sm > .aura-page-header__actions .aura-btn:not(.aura-icon-btn) { border-radius: min(var(--aura-button-radius), 22px); }
2430
2457
  }
2431
2458
  @media (min-width: 768px) and (max-width: 1023.98px) {
2432
- .aura-page-header--actions-full-below-lg.aura-page-header--actions-bar-below-md > .aura-page-header__actions .aura-btn:not(.aura-icon-btn) { border-radius: var(--aura-radius-md); }
2459
+ .aura-page-header--actions-full-below-lg.aura-page-header--actions-bar-below-md > .aura-page-header__actions .aura-btn:not(.aura-icon-btn) { border-radius: min(var(--aura-button-radius), 22px); }
2433
2460
  }
2434
2461
  /* 5.79 (visual audit 10): in an AppShell on a desktop the edge strip starts where the content does — after the
2435
2462
  * sidebar (its rail width when collapsed; the right edge in RTL) — and its contents line up with the content's 32px
@@ -2447,7 +2474,10 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
2447
2474
  :is(.aura-actionbar--edge, .aura-actionbar--edge-below-sm, .aura-actionbar--edge-below-md):not(.is-idle) > .aura-actionbar__inner { padding-inline: var(--aura-space-4); }
2448
2475
  :is(.aura-actionbar--edge, .aura-actionbar--edge-below-sm, .aura-actionbar--edge-below-md):not(.is-idle) > .aura-actionbar__inner > .aura-actionbar__status:not(:empty) { flex-basis: 100%; }
2449
2476
  :is(.aura-actionbar--edge, .aura-actionbar--edge-below-sm, .aura-actionbar--edge-below-md):not(.is-idle) .aura-actionbar__actions { flex: 1 1 auto; min-width: 0; margin-inline-start: 0; }
2450
- :is(.aura-actionbar--edge, .aura-actionbar--edge-below-sm, .aura-actionbar--edge-below-md):not(.is-idle) .aura-actionbar__actions > :not(.aura-icon-btn, :has(> .aura-icon-btn)) { flex: 1 1 0; min-width: max-content; } /* as PageHeader's strip (5.61): shares, a long label takes its own row */
2477
+ :is(.aura-actionbar--edge, .aura-actionbar--edge-below-sm, .aura-actionbar--edge-below-md):not(.is-idle) .aura-actionbar__actions > :not(.aura-icon-btn, :has(> .aura-icon-btn)) { flex: 1 1 0; min-width: max-content; min-width: fit-content; } /* as PageHeader's strip (5.61): shares, a long label takes its own row */
2478
+ :is(.aura-actionbar--edge, .aura-actionbar--edge-below-sm, .aura-actionbar--edge-below-md):not(.is-idle) .aura-actionbar__actions > :is(.aura-btn, * > .aura-btn):not(.aura-icon-btn) { height: auto; min-height: var(--aura-touch-target); white-space: normal; padding-block: var(--aura-space-2); line-height: 1.35; text-align: center; overflow-wrap: anywhere; border-radius: min(var(--aura-button-radius), 22px); }
2479
+ :is(.aura-actionbar--edge, .aura-actionbar--edge-below-sm, .aura-actionbar--edge-below-md):not(.is-idle) .aura-actionbar__actions > :is(.aura-btn--sm, * > .aura-btn--sm):not(.aura-icon-btn) { min-height: var(--aura-touch-target); }
2480
+ :is(.aura-actionbar--edge, .aura-actionbar--edge-below-sm, .aura-actionbar--edge-below-md):not(.is-idle) .aura-actionbar__actions > :is(.aura-btn--touch, * > .aura-btn--touch):not(.aura-icon-btn) { min-height: var(--aura-touch-target); }
2451
2481
  :is(.aura-actionbar--edge, .aura-actionbar--edge-below-sm, .aura-actionbar--edge-below-md):not(.is-idle) .aura-actionbar__actions > :is(.aura-dropdown, .aura-tooltip-anchor, .aura-popover-anchor):not(:has(> .aura-icon-btn)) > .aura-btn { width: 100%; }
2452
2482
  }
2453
2483
  }
@@ -2455,7 +2485,11 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
2455
2485
  .aura-actionbar--edge-below-md:not(.is-idle) > .aura-actionbar__inner { padding-inline: var(--aura-space-4); }
2456
2486
  .aura-actionbar--edge-below-md:not(.is-idle) > .aura-actionbar__inner > .aura-actionbar__status:not(:empty) { flex-basis: 100%; }
2457
2487
  .aura-actionbar--edge-below-md:not(.is-idle) .aura-actionbar__actions { flex: 1 1 auto; min-width: 0; margin-inline-start: 0; }
2458
- .aura-actionbar--edge-below-md:not(.is-idle) .aura-actionbar__actions > :not(.aura-icon-btn, :has(> .aura-icon-btn)) { flex: 1 1 0; min-width: max-content; } /* as PageHeader's strip (5.61): shares, a long label takes its own row */
2488
+ .aura-actionbar--edge-below-md:not(.is-idle) .aura-actionbar__actions > :not(.aura-icon-btn, :has(> .aura-icon-btn)) { flex: 1 1 0; min-width: max-content; min-width: fit-content; } /* as PageHeader's strip (5.61): shares, a long label takes its own row */
2489
+ .aura-actionbar--edge-below-md:not(.is-idle) .aura-actionbar__actions > :is(.aura-btn, * > .aura-btn):not(.aura-icon-btn) { height: auto; min-height: var(--aura-button-height); white-space: normal; padding-block: var(--aura-space-2); line-height: 1.35; text-align: center; overflow-wrap: anywhere; border-radius: min(var(--aura-button-radius), 22px); }
2490
+ .aura-actionbar--edge-below-md:not(.is-idle) .aura-actionbar__actions > :is(.aura-btn--sm, * > .aura-btn--sm):not(.aura-icon-btn) { min-height: var(--aura-button-height-sm); padding-block: var(--aura-space-1); }
2491
+ .aura-actionbar--edge-below-md:not(.is-idle) .aura-actionbar__actions > :is(.aura-btn--touch, * > .aura-btn--touch):not(.aura-icon-btn) { min-height: var(--aura-touch-target); }
2492
+ @media (pointer: coarse) { .aura-actionbar--edge-below-md:not(.is-idle) .aura-actionbar__actions > :is(.aura-btn, * > .aura-btn):not(.aura-icon-btn) { min-height: var(--aura-touch-target); } } /* as 5.55: 44px on a touch screen */
2459
2493
  .aura-actionbar--edge-below-md:not(.is-idle) .aura-actionbar__actions > :is(.aura-dropdown, .aura-tooltip-anchor, .aura-popover-anchor):not(:has(> .aura-icon-btn)) > .aura-btn { width: 100%; }
2460
2494
  }
2461
2495
  @media (max-width: 639.98px) { .aura-actionbar--edge-below-sm:not(.is-idle) { border: 0; border-top: 1px solid var(--aura-border-default); border-radius: 0; box-shadow: none; } }
@@ -2664,8 +2698,9 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
2664
2698
  @container aura-stack (width >= 9999.5px) { .aura-table [data-grid='off'] { display: none; } }
2665
2699
 
2666
2700
  /* Below stackBelow the same grid lays out as cards: the first column is the title, the first other pill column sits
2667
- * beside it, `actions` columns go top-right, the rest are label/value fields two to a line. Column headers stay for
2668
- * screen readers; the labels are generated content with empty alt text, so they aren't read twice. */
2701
+ * beside it, `actions` columns go top-right, the rest are label/value fields two to a line.
2702
+ * 5.87 (Chamber-OS 205): the column headers leave the accessibility tree while the cards show (only the select-all
2703
+ * line stays); each field's label is generated content that is read with its value. */
2669
2704
  @container aura-stack (width < 9999.5px) {
2670
2705
  .aura-table { background: transparent; border: 0; border-radius: 0; overflow: visible; }
2671
2706
  /* 5.26: stacked cards inside a framed Card keep its padding (0 where the Card is flush). */
@@ -2678,10 +2713,7 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
2678
2713
  position: static; height: auto; min-width: 0; padding: 0 0 var(--aura-space-3); border: 0; background: none;
2679
2714
  font-family: var(--font-sans); font-size: max(13px, .8125rem);
2680
2715
  }
2681
- .aura-table__head > .aura-table__th {
2682
- position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
2683
- }
2684
- .aura-table__head:not(.has-select-all) { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); }
2716
+ .aura-table__head > .aura-table__th, .aura-table__head:not(.has-select-all) { display: none; }
2685
2717
  .aura-table__head > .aura-table__sel { position: static; width: auto; gap: var(--aura-space-3); padding: 0 var(--aura-space-4); }
2686
2718
  .aura-table__sel-text { display: inline; color: var(--aura-fg-secondary); }
2687
2719
  .aura-table__gutter, .aura-table__gutter--end.has-picker { display: none; } /* 5.78 (audit 20): the column picker's slot too, which squeezed the card's title */
@@ -2697,7 +2729,7 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
2697
2729
  margin-bottom: var(--aura-space-1);
2698
2730
  padding: 0; line-height: normal;
2699
2731
  }
2700
- .aura-table__td[data-hide], .aura-table__head > .aura-table__th[data-hide] { display: block; }
2732
+ .aura-table__td[data-hide] { display: block; }
2701
2733
  /* 5.13 (Chamber-OS 80): card: 'hide' leaves a column out of the card; cardOrder orders the fields. */
2702
2734
  .aura-table__td[data-card='hide'], .aura-table__head > .aura-table__th[data-card='hide'],
2703
2735
  .aura-table__row--skeleton .aura-table__td[data-card='hide'] { display: none; }
@@ -2707,14 +2739,14 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
2707
2739
  .aura-table__row--skeleton .aura-table__td.is-end { justify-content: flex-start; }
2708
2740
  /* hideSelectionInCards: no row boxes, no select-all line. */
2709
2741
  .aura-table--cards-nosel .aura-table__row > .aura-table__sel { display: none; }
2710
- .aura-table--cards-nosel .aura-table__head { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); }
2742
+ .aura-table--cards-nosel .aura-table__head { display: none; }
2711
2743
  .aura-table--cards-nosel .aura-table__head > .aura-table__sel { display: none; }
2712
2744
  /* 5.11: rowHeight="auto" leaves cards as they are. */
2713
2745
  .aura-table__td--auto { display: block; white-space: nowrap; }
2714
2746
  .aura-table__td--auto .aura-table__cell > .aura-badge, .aura-table__td--auto .aura-table__cell > .aura-pill { margin: 0; }
2715
2747
  .aura-table__spacer { display: none; }
2716
2748
  .aura-table__td[data-label]::before {
2717
- content: attr(data-label); content: attr(data-label) / '';
2749
+ content: attr(data-label);
2718
2750
  display: block; margin-bottom: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-align: start;
2719
2751
  font-family: var(--font-mono); font-size: max(11px, .6875rem); line-height: normal; font-weight: 400; color: var(--aura-fg-secondary);
2720
2752
  }
@@ -2758,6 +2790,16 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
2758
2790
  .aura-table__total > .is-blank { display: none; }
2759
2791
  .aura-table__foot { border: 1px solid var(--aura-border-default); border-radius: var(--aura-radius-lg); margin-top: var(--aura-space-2); background: var(--aura-bg-surface); }
2760
2792
  .aura-table__empty { background: var(--aura-bg-surface); border: 1px solid var(--aura-border-default); border-radius: var(--aura-radius-lg); }
2793
+ /* 5.87 (Chamber-OS 204): stackStyle="list" — the same stacked layout as one list divided by rules: no frame, radius
2794
+ * or gap per row, so it sits in a framed Card. A rule above every row after the first (the virtual spacers and the
2795
+ * header aren't rows); the totals row and the pager follow the last rule, unshaded and unframed. */
2796
+ .aura-table--stack-list .aura-table__row, .aura-table--stack-list .aura-table__row:last-child { margin-bottom: 0; padding-inline: 0; border-width: 0; border-radius: 0; }
2797
+ .aura-table--stack-list .aura-table__row ~ .aura-table__row { border-top-width: 1px; }
2798
+ .aura-table--stack-list .aura-table__head > .aura-table__sel { padding-inline: 0; }
2799
+ .aura-table--stack-list .aura-table__head.has-select-all + .aura-table__row { border-top-width: 1px; } /* under the select-all line */
2800
+ .aura-table--stack-list .aura-table__total { background: none; }
2801
+ .aura-table--stack-list .aura-table__foot { margin-top: 0; padding-inline: 0; border-width: 1px 0 0; border-radius: 0; background: none; }
2802
+ .aura-table--stack-list .aura-table__empty { border: 0; border-radius: 0; background: none; }
2761
2803
  }
2762
2804
 
2763
2805
  /* ---------- 5.1.1: Windows High Contrast / forced colours ---------- */