@jirawatpyk/aura-react 5.14.0 → 5.15.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 +13 -0
- package/dist/aura.bundle.js +153 -21
- package/dist/cjs/index.cjs +153 -21
- package/dist/esm/Breadcrumb.js +76 -6
- package/dist/esm/Button.js +6 -2
- package/dist/esm/Checkbox.js +12 -2
- package/dist/esm/FilterBar.js +7 -1
- package/dist/esm/IconButton.js +7 -2
- package/dist/esm/Progress.js +14 -2
- package/dist/esm/Table.js +5 -2
- package/dist/esm/Tabs.js +7 -1
- package/dist/esm/display.js +8 -3
- package/dist/esm/strings.js +4 -0
- package/dist/esm/strings.sv.js +4 -0
- package/dist/esm/strings.th.js +4 -0
- package/dist/index.d.cts +57 -4
- package/dist/index.d.ts +57 -4
- package/dist/locales/sv.cjs +4 -0
- package/dist/locales/sv.d.cts +4 -0
- package/dist/locales/sv.d.ts +4 -0
- package/dist/locales/th.cjs +4 -0
- package/dist/locales/th.d.cts +4 -0
- package/dist/locales/th.d.ts +4 -0
- package/dist/server/index.cjs +20 -3
- package/dist/server/index.d.cts +14 -0
- package/dist/server/index.d.ts +14 -0
- package/dist/server/index.js +20 -3
- package/dist/styles.css +96 -0
- package/dist/styles.layer.css +96 -0
- package/package.json +1 -1
package/dist/server/index.js
CHANGED
|
@@ -268,6 +268,10 @@ var th = {
|
|
|
268
268
|
pageN: function(p) {
|
|
269
269
|
return "\u0E2B\u0E19\u0E49\u0E32 " + p;
|
|
270
270
|
},
|
|
271
|
+
progressReserved: function(v, r, max) {
|
|
272
|
+
return "\u0E43\u0E0A\u0E49\u0E41\u0E25\u0E49\u0E27 " + n(v) + " \u0E08\u0E32\u0E01 " + n(max) + " \u0E08\u0E2D\u0E07\u0E44\u0E27\u0E49 " + n(r);
|
|
273
|
+
},
|
|
274
|
+
breadcrumbMore: "\u0E41\u0E2A\u0E14\u0E07\u0E40\u0E2A\u0E49\u0E19\u0E17\u0E32\u0E07\u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14",
|
|
271
275
|
accepts: function(list, max) {
|
|
272
276
|
return [list, max && "\u0E44\u0E21\u0E48\u0E40\u0E01\u0E34\u0E19 " + max + " \u0E15\u0E48\u0E2D\u0E44\u0E1F\u0E25\u0E4C"].filter(Boolean).join(" \xB7 ");
|
|
273
277
|
}
|
|
@@ -394,6 +398,10 @@ var sv = {
|
|
|
394
398
|
pageN: function(p) {
|
|
395
399
|
return "Sida " + p;
|
|
396
400
|
},
|
|
401
|
+
progressReserved: function(v, r, max) {
|
|
402
|
+
return nsv(v) + " av " + nsv(max) + " anv\xE4nda, " + nsv(r) + " reserverade";
|
|
403
|
+
},
|
|
404
|
+
breadcrumbMore: "Visa hela s\xF6kv\xE4gen",
|
|
397
405
|
accepts: function(list, max) {
|
|
398
406
|
return [list, max && "h\xF6gst " + max + " per fil"].filter(Boolean).join(", ");
|
|
399
407
|
}
|
|
@@ -521,6 +529,10 @@ var STRINGS = {
|
|
|
521
529
|
pageN: function(p) {
|
|
522
530
|
return "Page " + p;
|
|
523
531
|
},
|
|
532
|
+
progressReserved: function(v, r, max) {
|
|
533
|
+
return n2(v) + " of " + n2(max) + " used, " + n2(r) + " reserved";
|
|
534
|
+
},
|
|
535
|
+
breadcrumbMore: "Show the full path",
|
|
524
536
|
accepts: function(list, max) {
|
|
525
537
|
return [list, max && "up to " + max + " each"].filter(Boolean).join(", ");
|
|
526
538
|
}
|
|
@@ -1047,8 +1059,11 @@ function cardElement(props, ref) {
|
|
|
1047
1059
|
"interactive",
|
|
1048
1060
|
"as",
|
|
1049
1061
|
"className",
|
|
1050
|
-
"titleId"
|
|
1062
|
+
"titleId",
|
|
1063
|
+
"header",
|
|
1064
|
+
"flushBelow"
|
|
1051
1065
|
]);
|
|
1066
|
+
const head = props.header !== void 0 && props.header !== null && props.header !== false;
|
|
1052
1067
|
return h2(
|
|
1053
1068
|
props.as || "section",
|
|
1054
1069
|
Object.assign({}, rest, {
|
|
@@ -1057,12 +1072,13 @@ function cardElement(props, ref) {
|
|
|
1057
1072
|
"aura-card",
|
|
1058
1073
|
creative && "aura-card--creative",
|
|
1059
1074
|
props.interactive && "is-interactive",
|
|
1075
|
+
props.flushBelow && "aura-card--flush-below-" + props.flushBelow,
|
|
1060
1076
|
props.className
|
|
1061
1077
|
),
|
|
1062
1078
|
/* A titled card is labelled by its title; otherwise the caller's aria-labelledby stays (5.8). */
|
|
1063
|
-
"aria-labelledby": props.title && props.titleId ? props.titleId : props["aria-labelledby"]
|
|
1079
|
+
"aria-labelledby": !head && props.title && props.titleId ? props.titleId : props["aria-labelledby"]
|
|
1064
1080
|
}),
|
|
1065
|
-
props.title || props.actions ? /* @__PURE__ */ React3.createElement("div", { className: "aura-card__head" }, /* @__PURE__ */ React3.createElement("div", { className: "aura-card__heading" }, props.title ? h2("h" + (props.headingLevel || 3), { className: "aura-card__title", id: props.titleId }, props.title) : null, 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,
|
|
1081
|
+
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,
|
|
1066
1082
|
props.children ? /* @__PURE__ */ React3.createElement("div", { className: "aura-card__body" }, props.children) : null,
|
|
1067
1083
|
props.footer ? /* @__PURE__ */ React3.createElement("div", { className: "aura-card__foot" }, props.footer) : null
|
|
1068
1084
|
);
|
|
@@ -1197,6 +1213,7 @@ function buttonClass(opts = {}) {
|
|
|
1197
1213
|
"aura-btn--" + (opts.variant || "primary"),
|
|
1198
1214
|
opts.size === "sm" && "aura-btn--sm",
|
|
1199
1215
|
opts.fullWidth && "aura-btn--full",
|
|
1216
|
+
opts.touchHeight && "aura-btn--touch",
|
|
1200
1217
|
opts.loading && "is-loading",
|
|
1201
1218
|
opts.className
|
|
1202
1219
|
);
|
package/dist/styles.css
CHANGED
|
@@ -312,6 +312,12 @@ a.aura-icon-btn { text-decoration: none; }
|
|
|
312
312
|
.aura-icon-btn--danger:hover { background: var(--aura-alert-danger-bg); }
|
|
313
313
|
.aura-icon-btn:disabled { opacity: var(--aura-disabled-opacity); pointer-events: none; }
|
|
314
314
|
.aura-icon-btn:focus-visible { outline: var(--aura-focus-ring-width) solid var(--aura-focus-ring); outline-offset: var(--aura-focus-ring-offset); }
|
|
315
|
+
/* 5.15 (Chamber-OS 100): touchHeight — visibly 44px on phones, for buttons and icon buttons a phone design wants full size. */
|
|
316
|
+
@media (max-width: 639.98px) {
|
|
317
|
+
.aura-btn.aura-btn--touch { height: var(--aura-touch-target); }
|
|
318
|
+
.aura-btn.aura-btn--touch.aura-btn--full { height: auto; min-height: var(--aura-touch-target); }
|
|
319
|
+
.aura-icon-btn.aura-icon-btn--touch { width: var(--aura-touch-target); height: var(--aura-touch-target); }
|
|
320
|
+
}
|
|
315
321
|
/* Touch: same 32px look, a 44px hit area around it (WCAG 2.5.5). */
|
|
316
322
|
@media (pointer: coarse) {
|
|
317
323
|
.aura-icon-btn { position: relative; }
|
|
@@ -345,6 +351,9 @@ a.aura-icon-btn { text-decoration: none; }
|
|
|
345
351
|
/* Checkbox — 16px, 4px corners, ink when checked */
|
|
346
352
|
.aura-check { position: relative; display: inline-flex; width: var(--aura-icon-sm); height: var(--aura-icon-sm); flex: none; cursor: pointer; }
|
|
347
353
|
.aura-check__input { position: absolute; inset: 0; margin: 0; opacity: 0; cursor: pointer; }
|
|
354
|
+
/* 5.15 (Chamber-OS 99): hitArea — the input reaches past the box. */
|
|
355
|
+
.aura-check.has-hit { isolation: isolate; } /* the larger input stays inside the checkbox's own stacking */
|
|
356
|
+
.aura-check.has-hit .aura-check__input { inset: calc(-1 * var(--aura-check-hit-y)) calc(-1 * var(--aura-check-hit-x)); z-index: 1; }
|
|
348
357
|
.aura-check__box {
|
|
349
358
|
box-sizing: border-box; width: 100%; height: 100%;
|
|
350
359
|
display: inline-flex; align-items: center; justify-content: center;
|
|
@@ -632,6 +641,10 @@ a.aura-icon-btn { text-decoration: none; }
|
|
|
632
641
|
}
|
|
633
642
|
.aura-card.is-interactive { cursor: pointer; transition: border-color var(--aura-duration-fast) var(--aura-ease); }
|
|
634
643
|
.aura-card.is-interactive:hover { border-color: var(--aura-border-control); }
|
|
644
|
+
/* 5.15 (Chamber-OS 93): frameless below a width — the rows inside become cards of their own. */
|
|
645
|
+
@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; } }
|
|
646
|
+
@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; } }
|
|
647
|
+
@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; } }
|
|
635
648
|
.aura-card--creative { border: 2px solid var(--aura-border-strong); box-shadow: var(--aura-card-shadow-creative); }
|
|
636
649
|
.aura-card__head { display: flex; align-items: flex-start; gap: var(--aura-space-3); }
|
|
637
650
|
.aura-card__heading { flex: 1; min-width: 0; }
|
|
@@ -749,6 +762,21 @@ a.aura-tab { text-decoration: none; }
|
|
|
749
762
|
/* 5.7: a segment with no page of its own — the links' colour, not interactive. */
|
|
750
763
|
.aura-crumbs__text { color: var(--aura-fg-secondary); }
|
|
751
764
|
.aura-crumbs__sep { color: var(--aura-fg-tertiary); }
|
|
765
|
+
/* 5.15 (Chamber-OS 94): first, "…", last below a width. */
|
|
766
|
+
.aura-crumbs li.aura-crumbs__more { display: none; }
|
|
767
|
+
/* "…" is the only way to the hidden items: a 24px target, 44px on touch screens. */
|
|
768
|
+
.aura-crumbs__more > button { position: relative; min-width: 24px; min-height: 24px; display: inline-flex; align-items: center; justify-content: center; }
|
|
769
|
+
@media (pointer: coarse) {
|
|
770
|
+
.aura-crumbs__more > button::after { content: ''; position: absolute; top: 50%; left: 50%; width: var(--aura-touch-target); height: var(--aura-touch-target); transform: translate(-50%, -50%); }
|
|
771
|
+
}
|
|
772
|
+
@media (max-width: 639.98px) {
|
|
773
|
+
.aura-crumbs--collapse-sm li.aura-crumbs__more { display: inline-flex; }
|
|
774
|
+
.aura-crumbs--collapse-sm .aura-crumbs__middle { display: none; }
|
|
775
|
+
}
|
|
776
|
+
@media (max-width: 767.98px) {
|
|
777
|
+
.aura-crumbs--collapse-md li.aura-crumbs__more { display: inline-flex; }
|
|
778
|
+
.aura-crumbs--collapse-md .aura-crumbs__middle { display: none; }
|
|
779
|
+
}
|
|
752
780
|
|
|
753
781
|
/* ---------- Avatar ---------- */
|
|
754
782
|
.aura-avatar {
|
|
@@ -1083,6 +1111,12 @@ a.aura-upload__name:focus-visible { outline: var(--aura-focus-ring-width) solid
|
|
|
1083
1111
|
.aura-progress--warning .aura-progress__bar { background: var(--aura-alert-warning-fg); }
|
|
1084
1112
|
.aura-progress--danger .aura-progress__bar { background: var(--aura-fg-danger); }
|
|
1085
1113
|
.aura-progress--neutral .aura-progress__bar { background: var(--aura-fg-secondary); }
|
|
1114
|
+
/* 5.15 (Chamber-OS 89): a reserved amount after the value — the same tone, striped, so it reads without colour. */
|
|
1115
|
+
.aura-progress__bar--reserved {
|
|
1116
|
+
transition: left var(--aura-duration-base) var(--aura-ease), width var(--aura-duration-base) var(--aura-ease);
|
|
1117
|
+
-webkit-mask-image: repeating-linear-gradient(135deg, currentColor 0 3px, transparent 3px 6px);
|
|
1118
|
+
mask-image: repeating-linear-gradient(135deg, currentColor 0 3px, transparent 3px 6px);
|
|
1119
|
+
}
|
|
1086
1120
|
.aura-progress__track.is-indeterminate .aura-progress__bar { width: 35%; animation: aura-progress-slide var(--aura-duration-pulse) var(--aura-ease) infinite; }
|
|
1087
1121
|
@keyframes aura-progress-slide { from { left: -35%; } to { left: 100%; } }
|
|
1088
1122
|
@media (prefers-reduced-motion: reduce) { .aura-progress__track.is-indeterminate .aura-progress__bar { animation-duration: calc(var(--aura-duration-pulse) * 3); } }
|
|
@@ -1265,6 +1299,30 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
|
|
|
1265
1299
|
.aura-tabs--segmented .aura-tabs__list.aura-segmented { gap: 2px; }
|
|
1266
1300
|
.aura-tabs--segmented .aura-tabs__list.aura-segmented.is-full .aura-tab { min-width: max-content; }
|
|
1267
1301
|
.aura-tabs--segmented .aura-tab.aura-segmented__option { margin-bottom: 0; }
|
|
1302
|
+
/* 5.15 (Chamber-OS 90): underline tabs sharing the width, always or below a breakpoint; the segmented track below one. */
|
|
1303
|
+
.aura-tabs__list.is-fill { gap: 0; }
|
|
1304
|
+
.aura-tabs__list.is-fill > .aura-tab { flex: 1 1 0; min-width: max-content; justify-content: center; padding: 0 var(--aura-space-3); }
|
|
1305
|
+
@media (max-width: 639.98px) {
|
|
1306
|
+
.aura-tabs__list.is-fill-below-sm { gap: 0; }
|
|
1307
|
+
.aura-tabs__list.is-fill-below-sm > .aura-tab { flex: 1 1 0; min-width: max-content; justify-content: center; padding: 0 var(--aura-space-3); }
|
|
1308
|
+
.aura-segmented.is-full-below-sm { display: flex; width: 100%; }
|
|
1309
|
+
.aura-segmented.is-full-below-sm .aura-segmented__option { flex: 1 1 0; min-width: 0; }
|
|
1310
|
+
.aura-tabs--segmented .aura-segmented.is-full-below-sm .aura-tab { min-width: max-content; }
|
|
1311
|
+
}
|
|
1312
|
+
@media (max-width: 767.98px) {
|
|
1313
|
+
.aura-tabs__list.is-fill-below-md { gap: 0; }
|
|
1314
|
+
.aura-tabs__list.is-fill-below-md > .aura-tab { flex: 1 1 0; min-width: max-content; justify-content: center; padding: 0 var(--aura-space-3); }
|
|
1315
|
+
.aura-segmented.is-full-below-md { display: flex; width: 100%; }
|
|
1316
|
+
.aura-segmented.is-full-below-md .aura-segmented__option { flex: 1 1 0; min-width: 0; }
|
|
1317
|
+
.aura-tabs--segmented .aura-segmented.is-full-below-md .aura-tab { min-width: max-content; }
|
|
1318
|
+
}
|
|
1319
|
+
@media (max-width: 1023.98px) {
|
|
1320
|
+
.aura-tabs__list.is-fill-below-lg { gap: 0; }
|
|
1321
|
+
.aura-tabs__list.is-fill-below-lg > .aura-tab { flex: 1 1 0; min-width: max-content; justify-content: center; padding: 0 var(--aura-space-3); }
|
|
1322
|
+
.aura-segmented.is-full-below-lg { display: flex; width: 100%; }
|
|
1323
|
+
.aura-segmented.is-full-below-lg .aura-segmented__option { flex: 1 1 0; min-width: 0; }
|
|
1324
|
+
.aura-tabs--segmented .aura-segmented.is-full-below-lg .aura-tab { min-width: max-content; }
|
|
1325
|
+
}
|
|
1268
1326
|
.aura-tabs--segmented .aura-tab.aura-segmented__option:focus-visible { border-radius: var(--aura-radius-full); outline-offset: calc(-1 * var(--aura-focus-ring-width)); }
|
|
1269
1327
|
.aura-tabs--segmented .aura-tab.aura-segmented__option:disabled,
|
|
1270
1328
|
.aura-tabs--segmented .aura-tab.aura-segmented__option.is-disabled { opacity: var(--aura-disabled-opacity); cursor: not-allowed; }
|
|
@@ -1391,6 +1449,16 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
|
|
|
1391
1449
|
/* 5.12 searchGrow: the search fills what the controls leave. */
|
|
1392
1450
|
.aura-filterbar--grow .aura-filterbar__search { max-width: none; }
|
|
1393
1451
|
.aura-filterbar--grow .aura-filterbar__search ~ .aura-filterbar__spacer { display: none; }
|
|
1452
|
+
/* 5.15 (Chamber-OS 92): the search on its own row up to 1024px; controls sharing their row in equal columns. */
|
|
1453
|
+
@media (max-width: 1023.98px) {
|
|
1454
|
+
.aura-filterbar--stack-lg .aura-filterbar__search { flex-basis: 100%; max-width: none; }
|
|
1455
|
+
.aura-filterbar--stack-lg .aura-filterbar__spacer { display: none; }
|
|
1456
|
+
}
|
|
1457
|
+
.aura-filterbar--fill .aura-filterbar__spacer { display: none; }
|
|
1458
|
+
.aura-filterbar--fill .aura-filterbar__controls { flex: 1 1 auto; min-width: 0; }
|
|
1459
|
+
.aura-filterbar--fill .aura-filterbar__controls > * { flex: 1 1 0; min-width: 120px; max-width: none; width: auto; }
|
|
1460
|
+
.aura-filterbar--fill .aura-filterbar__controls > .aura-filterselect .aura-filterselect__face { width: 100%; }
|
|
1461
|
+
.aura-filterbar--fill .aura-filterbar__controls > .aura-filterselect .aura-filterselect__chevron { margin-inline-start: auto; }
|
|
1394
1462
|
/* Compact filters sit closer together than full fields. */
|
|
1395
1463
|
.aura-filterbar__controls:has(> .aura-filterselect) { gap: var(--aura-space-2); }
|
|
1396
1464
|
|
|
@@ -1631,6 +1699,34 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
|
|
|
1631
1699
|
}
|
|
1632
1700
|
}
|
|
1633
1701
|
|
|
1702
|
+
/* 5.15 (Chamber-OS 85): stackStyle="cards" — each stacked row its own card (DataTable's card spacing), no outer frame.
|
|
1703
|
+
* .aura-tbl-cards is the container here, so the wrap's own frame can be dropped while stacked. */
|
|
1704
|
+
.aura-tbl-cards { container: aura-tbl / inline-size; width: 100%; }
|
|
1705
|
+
@container aura-tbl (width < 768px) {
|
|
1706
|
+
.aura-tbl-cards--md > .aura-tbl-wrap { border: 0; border-radius: 0; background: transparent; overflow: visible; }
|
|
1707
|
+
.aura-tbl--cards.aura-tbl--stack-md > .aura-tbl__caption { padding: 0 0 var(--aura-space-3); }
|
|
1708
|
+
.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 {
|
|
1709
|
+
margin-bottom: var(--aura-space-2); padding: var(--aura-space-4);
|
|
1710
|
+
border: 1px solid var(--aura-border-default); border-radius: var(--aura-radius-lg); background: var(--aura-bg-surface);
|
|
1711
|
+
}
|
|
1712
|
+
.aura-tbl--cards.aura-tbl--stack-md > .aura-tbl__foot > .aura-tbl__row { background: var(--aura-bg-canvas); }
|
|
1713
|
+
.aura-tbl--cards.aura-tbl--stack-md > :last-child > .aura-tbl__row:last-child { margin-bottom: 0; }
|
|
1714
|
+
.aura-tbl-wrap[data-density='compact'] > .aura-tbl--cards.aura-tbl--stack-md > * > .aura-tbl__row { padding-top: var(--aura-space-2); padding-bottom: var(--aura-space-2); }
|
|
1715
|
+
.aura-tbl-wrap.is-flush > .aura-tbl--cards.aura-tbl--stack-md > .aura-tbl__caption { padding: 0 0 var(--aura-space-3); }
|
|
1716
|
+
}
|
|
1717
|
+
@container aura-tbl (width < 640px) {
|
|
1718
|
+
.aura-tbl-cards--sm > .aura-tbl-wrap { border: 0; border-radius: 0; background: transparent; overflow: visible; }
|
|
1719
|
+
.aura-tbl--cards.aura-tbl--stack-sm > .aura-tbl__caption { padding: 0 0 var(--aura-space-3); }
|
|
1720
|
+
.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 {
|
|
1721
|
+
margin-bottom: var(--aura-space-2); padding: var(--aura-space-4);
|
|
1722
|
+
border: 1px solid var(--aura-border-default); border-radius: var(--aura-radius-lg); background: var(--aura-bg-surface);
|
|
1723
|
+
}
|
|
1724
|
+
.aura-tbl--cards.aura-tbl--stack-sm > .aura-tbl__foot > .aura-tbl__row { background: var(--aura-bg-canvas); }
|
|
1725
|
+
.aura-tbl--cards.aura-tbl--stack-sm > :last-child > .aura-tbl__row:last-child { margin-bottom: 0; }
|
|
1726
|
+
.aura-tbl-wrap[data-density='compact'] > .aura-tbl--cards.aura-tbl--stack-sm > * > .aura-tbl__row { padding-top: var(--aura-space-2); padding-bottom: var(--aura-space-2); }
|
|
1727
|
+
.aura-tbl-wrap.is-flush > .aura-tbl--cards.aura-tbl--stack-sm > .aura-tbl__caption { padding: 0 0 var(--aura-space-3); }
|
|
1728
|
+
}
|
|
1729
|
+
|
|
1634
1730
|
/* ---------- 4.20: DataTable width queries and cards, one markup ---------- */
|
|
1635
1731
|
/* Each .aura-table-q is the table's width × 10000 / its threshold (DataTable.tsx, Q), so `(width < 9999.5px)` is true
|
|
1636
1732
|
* exactly when the table is narrower than stackBelow or a hideBelow width — before hydration, at any width. */
|
package/dist/styles.layer.css
CHANGED
|
@@ -314,6 +314,12 @@ a.aura-icon-btn { text-decoration: none; }
|
|
|
314
314
|
.aura-icon-btn--danger:hover { background: var(--aura-alert-danger-bg); }
|
|
315
315
|
.aura-icon-btn:disabled { opacity: var(--aura-disabled-opacity); pointer-events: none; }
|
|
316
316
|
.aura-icon-btn:focus-visible { outline: var(--aura-focus-ring-width) solid var(--aura-focus-ring); outline-offset: var(--aura-focus-ring-offset); }
|
|
317
|
+
/* 5.15 (Chamber-OS 100): touchHeight — visibly 44px on phones, for buttons and icon buttons a phone design wants full size. */
|
|
318
|
+
@media (max-width: 639.98px) {
|
|
319
|
+
.aura-btn.aura-btn--touch { height: var(--aura-touch-target); }
|
|
320
|
+
.aura-btn.aura-btn--touch.aura-btn--full { height: auto; min-height: var(--aura-touch-target); }
|
|
321
|
+
.aura-icon-btn.aura-icon-btn--touch { width: var(--aura-touch-target); height: var(--aura-touch-target); }
|
|
322
|
+
}
|
|
317
323
|
/* Touch: same 32px look, a 44px hit area around it (WCAG 2.5.5). */
|
|
318
324
|
@media (pointer: coarse) {
|
|
319
325
|
.aura-icon-btn { position: relative; }
|
|
@@ -347,6 +353,9 @@ a.aura-icon-btn { text-decoration: none; }
|
|
|
347
353
|
/* Checkbox — 16px, 4px corners, ink when checked */
|
|
348
354
|
.aura-check { position: relative; display: inline-flex; width: var(--aura-icon-sm); height: var(--aura-icon-sm); flex: none; cursor: pointer; }
|
|
349
355
|
.aura-check__input { position: absolute; inset: 0; margin: 0; opacity: 0; cursor: pointer; }
|
|
356
|
+
/* 5.15 (Chamber-OS 99): hitArea — the input reaches past the box. */
|
|
357
|
+
.aura-check.has-hit { isolation: isolate; } /* the larger input stays inside the checkbox's own stacking */
|
|
358
|
+
.aura-check.has-hit .aura-check__input { inset: calc(-1 * var(--aura-check-hit-y)) calc(-1 * var(--aura-check-hit-x)); z-index: 1; }
|
|
350
359
|
.aura-check__box {
|
|
351
360
|
box-sizing: border-box; width: 100%; height: 100%;
|
|
352
361
|
display: inline-flex; align-items: center; justify-content: center;
|
|
@@ -634,6 +643,10 @@ a.aura-icon-btn { text-decoration: none; }
|
|
|
634
643
|
}
|
|
635
644
|
.aura-card.is-interactive { cursor: pointer; transition: border-color var(--aura-duration-fast) var(--aura-ease); }
|
|
636
645
|
.aura-card.is-interactive:hover { border-color: var(--aura-border-control); }
|
|
646
|
+
/* 5.15 (Chamber-OS 93): frameless below a width — the rows inside become cards of their own. */
|
|
647
|
+
@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; } }
|
|
648
|
+
@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; } }
|
|
649
|
+
@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; } }
|
|
637
650
|
.aura-card--creative { border: 2px solid var(--aura-border-strong); box-shadow: var(--aura-card-shadow-creative); }
|
|
638
651
|
.aura-card__head { display: flex; align-items: flex-start; gap: var(--aura-space-3); }
|
|
639
652
|
.aura-card__heading { flex: 1; min-width: 0; }
|
|
@@ -751,6 +764,21 @@ a.aura-tab { text-decoration: none; }
|
|
|
751
764
|
/* 5.7: a segment with no page of its own — the links' colour, not interactive. */
|
|
752
765
|
.aura-crumbs__text { color: var(--aura-fg-secondary); }
|
|
753
766
|
.aura-crumbs__sep { color: var(--aura-fg-tertiary); }
|
|
767
|
+
/* 5.15 (Chamber-OS 94): first, "…", last below a width. */
|
|
768
|
+
.aura-crumbs li.aura-crumbs__more { display: none; }
|
|
769
|
+
/* "…" is the only way to the hidden items: a 24px target, 44px on touch screens. */
|
|
770
|
+
.aura-crumbs__more > button { position: relative; min-width: 24px; min-height: 24px; display: inline-flex; align-items: center; justify-content: center; }
|
|
771
|
+
@media (pointer: coarse) {
|
|
772
|
+
.aura-crumbs__more > button::after { content: ''; position: absolute; top: 50%; left: 50%; width: var(--aura-touch-target); height: var(--aura-touch-target); transform: translate(-50%, -50%); }
|
|
773
|
+
}
|
|
774
|
+
@media (max-width: 639.98px) {
|
|
775
|
+
.aura-crumbs--collapse-sm li.aura-crumbs__more { display: inline-flex; }
|
|
776
|
+
.aura-crumbs--collapse-sm .aura-crumbs__middle { display: none; }
|
|
777
|
+
}
|
|
778
|
+
@media (max-width: 767.98px) {
|
|
779
|
+
.aura-crumbs--collapse-md li.aura-crumbs__more { display: inline-flex; }
|
|
780
|
+
.aura-crumbs--collapse-md .aura-crumbs__middle { display: none; }
|
|
781
|
+
}
|
|
754
782
|
|
|
755
783
|
/* ---------- Avatar ---------- */
|
|
756
784
|
.aura-avatar {
|
|
@@ -1085,6 +1113,12 @@ a.aura-upload__name:focus-visible { outline: var(--aura-focus-ring-width) solid
|
|
|
1085
1113
|
.aura-progress--warning .aura-progress__bar { background: var(--aura-alert-warning-fg); }
|
|
1086
1114
|
.aura-progress--danger .aura-progress__bar { background: var(--aura-fg-danger); }
|
|
1087
1115
|
.aura-progress--neutral .aura-progress__bar { background: var(--aura-fg-secondary); }
|
|
1116
|
+
/* 5.15 (Chamber-OS 89): a reserved amount after the value — the same tone, striped, so it reads without colour. */
|
|
1117
|
+
.aura-progress__bar--reserved {
|
|
1118
|
+
transition: left var(--aura-duration-base) var(--aura-ease), width var(--aura-duration-base) var(--aura-ease);
|
|
1119
|
+
-webkit-mask-image: repeating-linear-gradient(135deg, currentColor 0 3px, transparent 3px 6px);
|
|
1120
|
+
mask-image: repeating-linear-gradient(135deg, currentColor 0 3px, transparent 3px 6px);
|
|
1121
|
+
}
|
|
1088
1122
|
.aura-progress__track.is-indeterminate .aura-progress__bar { width: 35%; animation: aura-progress-slide var(--aura-duration-pulse) var(--aura-ease) infinite; }
|
|
1089
1123
|
@keyframes aura-progress-slide { from { left: -35%; } to { left: 100%; } }
|
|
1090
1124
|
@media (prefers-reduced-motion: reduce) { .aura-progress__track.is-indeterminate .aura-progress__bar { animation-duration: calc(var(--aura-duration-pulse) * 3); } }
|
|
@@ -1267,6 +1301,30 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
|
|
|
1267
1301
|
.aura-tabs--segmented .aura-tabs__list.aura-segmented { gap: 2px; }
|
|
1268
1302
|
.aura-tabs--segmented .aura-tabs__list.aura-segmented.is-full .aura-tab { min-width: max-content; }
|
|
1269
1303
|
.aura-tabs--segmented .aura-tab.aura-segmented__option { margin-bottom: 0; }
|
|
1304
|
+
/* 5.15 (Chamber-OS 90): underline tabs sharing the width, always or below a breakpoint; the segmented track below one. */
|
|
1305
|
+
.aura-tabs__list.is-fill { gap: 0; }
|
|
1306
|
+
.aura-tabs__list.is-fill > .aura-tab { flex: 1 1 0; min-width: max-content; justify-content: center; padding: 0 var(--aura-space-3); }
|
|
1307
|
+
@media (max-width: 639.98px) {
|
|
1308
|
+
.aura-tabs__list.is-fill-below-sm { gap: 0; }
|
|
1309
|
+
.aura-tabs__list.is-fill-below-sm > .aura-tab { flex: 1 1 0; min-width: max-content; justify-content: center; padding: 0 var(--aura-space-3); }
|
|
1310
|
+
.aura-segmented.is-full-below-sm { display: flex; width: 100%; }
|
|
1311
|
+
.aura-segmented.is-full-below-sm .aura-segmented__option { flex: 1 1 0; min-width: 0; }
|
|
1312
|
+
.aura-tabs--segmented .aura-segmented.is-full-below-sm .aura-tab { min-width: max-content; }
|
|
1313
|
+
}
|
|
1314
|
+
@media (max-width: 767.98px) {
|
|
1315
|
+
.aura-tabs__list.is-fill-below-md { gap: 0; }
|
|
1316
|
+
.aura-tabs__list.is-fill-below-md > .aura-tab { flex: 1 1 0; min-width: max-content; justify-content: center; padding: 0 var(--aura-space-3); }
|
|
1317
|
+
.aura-segmented.is-full-below-md { display: flex; width: 100%; }
|
|
1318
|
+
.aura-segmented.is-full-below-md .aura-segmented__option { flex: 1 1 0; min-width: 0; }
|
|
1319
|
+
.aura-tabs--segmented .aura-segmented.is-full-below-md .aura-tab { min-width: max-content; }
|
|
1320
|
+
}
|
|
1321
|
+
@media (max-width: 1023.98px) {
|
|
1322
|
+
.aura-tabs__list.is-fill-below-lg { gap: 0; }
|
|
1323
|
+
.aura-tabs__list.is-fill-below-lg > .aura-tab { flex: 1 1 0; min-width: max-content; justify-content: center; padding: 0 var(--aura-space-3); }
|
|
1324
|
+
.aura-segmented.is-full-below-lg { display: flex; width: 100%; }
|
|
1325
|
+
.aura-segmented.is-full-below-lg .aura-segmented__option { flex: 1 1 0; min-width: 0; }
|
|
1326
|
+
.aura-tabs--segmented .aura-segmented.is-full-below-lg .aura-tab { min-width: max-content; }
|
|
1327
|
+
}
|
|
1270
1328
|
.aura-tabs--segmented .aura-tab.aura-segmented__option:focus-visible { border-radius: var(--aura-radius-full); outline-offset: calc(-1 * var(--aura-focus-ring-width)); }
|
|
1271
1329
|
.aura-tabs--segmented .aura-tab.aura-segmented__option:disabled,
|
|
1272
1330
|
.aura-tabs--segmented .aura-tab.aura-segmented__option.is-disabled { opacity: var(--aura-disabled-opacity); cursor: not-allowed; }
|
|
@@ -1393,6 +1451,16 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
|
|
|
1393
1451
|
/* 5.12 searchGrow: the search fills what the controls leave. */
|
|
1394
1452
|
.aura-filterbar--grow .aura-filterbar__search { max-width: none; }
|
|
1395
1453
|
.aura-filterbar--grow .aura-filterbar__search ~ .aura-filterbar__spacer { display: none; }
|
|
1454
|
+
/* 5.15 (Chamber-OS 92): the search on its own row up to 1024px; controls sharing their row in equal columns. */
|
|
1455
|
+
@media (max-width: 1023.98px) {
|
|
1456
|
+
.aura-filterbar--stack-lg .aura-filterbar__search { flex-basis: 100%; max-width: none; }
|
|
1457
|
+
.aura-filterbar--stack-lg .aura-filterbar__spacer { display: none; }
|
|
1458
|
+
}
|
|
1459
|
+
.aura-filterbar--fill .aura-filterbar__spacer { display: none; }
|
|
1460
|
+
.aura-filterbar--fill .aura-filterbar__controls { flex: 1 1 auto; min-width: 0; }
|
|
1461
|
+
.aura-filterbar--fill .aura-filterbar__controls > * { flex: 1 1 0; min-width: 120px; max-width: none; width: auto; }
|
|
1462
|
+
.aura-filterbar--fill .aura-filterbar__controls > .aura-filterselect .aura-filterselect__face { width: 100%; }
|
|
1463
|
+
.aura-filterbar--fill .aura-filterbar__controls > .aura-filterselect .aura-filterselect__chevron { margin-inline-start: auto; }
|
|
1396
1464
|
/* Compact filters sit closer together than full fields. */
|
|
1397
1465
|
.aura-filterbar__controls:has(> .aura-filterselect) { gap: var(--aura-space-2); }
|
|
1398
1466
|
|
|
@@ -1633,6 +1701,34 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
|
|
|
1633
1701
|
}
|
|
1634
1702
|
}
|
|
1635
1703
|
|
|
1704
|
+
/* 5.15 (Chamber-OS 85): stackStyle="cards" — each stacked row its own card (DataTable's card spacing), no outer frame.
|
|
1705
|
+
* .aura-tbl-cards is the container here, so the wrap's own frame can be dropped while stacked. */
|
|
1706
|
+
.aura-tbl-cards { container: aura-tbl / inline-size; width: 100%; }
|
|
1707
|
+
@container aura-tbl (width < 768px) {
|
|
1708
|
+
.aura-tbl-cards--md > .aura-tbl-wrap { border: 0; border-radius: 0; background: transparent; overflow: visible; }
|
|
1709
|
+
.aura-tbl--cards.aura-tbl--stack-md > .aura-tbl__caption { padding: 0 0 var(--aura-space-3); }
|
|
1710
|
+
.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 {
|
|
1711
|
+
margin-bottom: var(--aura-space-2); padding: var(--aura-space-4);
|
|
1712
|
+
border: 1px solid var(--aura-border-default); border-radius: var(--aura-radius-lg); background: var(--aura-bg-surface);
|
|
1713
|
+
}
|
|
1714
|
+
.aura-tbl--cards.aura-tbl--stack-md > .aura-tbl__foot > .aura-tbl__row { background: var(--aura-bg-canvas); }
|
|
1715
|
+
.aura-tbl--cards.aura-tbl--stack-md > :last-child > .aura-tbl__row:last-child { margin-bottom: 0; }
|
|
1716
|
+
.aura-tbl-wrap[data-density='compact'] > .aura-tbl--cards.aura-tbl--stack-md > * > .aura-tbl__row { padding-top: var(--aura-space-2); padding-bottom: var(--aura-space-2); }
|
|
1717
|
+
.aura-tbl-wrap.is-flush > .aura-tbl--cards.aura-tbl--stack-md > .aura-tbl__caption { padding: 0 0 var(--aura-space-3); }
|
|
1718
|
+
}
|
|
1719
|
+
@container aura-tbl (width < 640px) {
|
|
1720
|
+
.aura-tbl-cards--sm > .aura-tbl-wrap { border: 0; border-radius: 0; background: transparent; overflow: visible; }
|
|
1721
|
+
.aura-tbl--cards.aura-tbl--stack-sm > .aura-tbl__caption { padding: 0 0 var(--aura-space-3); }
|
|
1722
|
+
.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 {
|
|
1723
|
+
margin-bottom: var(--aura-space-2); padding: var(--aura-space-4);
|
|
1724
|
+
border: 1px solid var(--aura-border-default); border-radius: var(--aura-radius-lg); background: var(--aura-bg-surface);
|
|
1725
|
+
}
|
|
1726
|
+
.aura-tbl--cards.aura-tbl--stack-sm > .aura-tbl__foot > .aura-tbl__row { background: var(--aura-bg-canvas); }
|
|
1727
|
+
.aura-tbl--cards.aura-tbl--stack-sm > :last-child > .aura-tbl__row:last-child { margin-bottom: 0; }
|
|
1728
|
+
.aura-tbl-wrap[data-density='compact'] > .aura-tbl--cards.aura-tbl--stack-sm > * > .aura-tbl__row { padding-top: var(--aura-space-2); padding-bottom: var(--aura-space-2); }
|
|
1729
|
+
.aura-tbl-wrap.is-flush > .aura-tbl--cards.aura-tbl--stack-sm > .aura-tbl__caption { padding: 0 0 var(--aura-space-3); }
|
|
1730
|
+
}
|
|
1731
|
+
|
|
1636
1732
|
/* ---------- 4.20: DataTable width queries and cards, one markup ---------- */
|
|
1637
1733
|
/* Each .aura-table-q is the table's width × 10000 / its threshold (DataTable.tsx, Q), so `(width < 9999.5px)` is true
|
|
1638
1734
|
* exactly when the table is narrower than stackBelow or a hideBelow width — before hydration, at any width. */
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jirawatpyk/aura-react",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.15.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",
|