@jirawatpyk/aura-react 5.14.0 → 5.16.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 +22 -0
- package/dist/aura.bundle.js +425 -91
- package/dist/cjs/index.cjs +425 -91
- package/dist/esm/AppShell.js +5 -0
- package/dist/esm/Breadcrumb.js +76 -6
- package/dist/esm/Button.js +6 -2
- package/dist/esm/Checkbox.js +12 -2
- package/dist/esm/Combobox.js +116 -45
- package/dist/esm/DataTable.js +51 -10
- package/dist/esm/Dialog.js +73 -12
- package/dist/esm/FilterBar.js +7 -1
- package/dist/esm/IconButton.js +7 -2
- package/dist/esm/Progress.js +14 -2
- package/dist/esm/SideNav.js +21 -4
- package/dist/esm/Table.js +5 -2
- package/dist/esm/Tabs.js +7 -1
- package/dist/esm/display.js +8 -3
- package/dist/esm/index.js +2 -1
- 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/esm/useModal.js +8 -1
- package/dist/index.d.cts +125 -10
- package/dist/index.d.ts +125 -10
- 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 +106 -1
- package/dist/styles.layer.css +106 -1
- package/package.json +1 -1
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; }
|
|
@@ -672,7 +685,7 @@ a.aura-tab { text-decoration: none; }
|
|
|
672
685
|
background: var(--aura-bg-canvas); border-right: 1px solid var(--aura-border-default);
|
|
673
686
|
font-family: var(--font-sans); color: var(--aura-fg-primary);
|
|
674
687
|
}
|
|
675
|
-
.aura-nav__header { padding: var(--aura-space-5) var(--aura-space-4) var(--aura-space-4); }
|
|
688
|
+
.aura-nav__header { padding: var(--aura-space-5) var(--aura-space-4) var(--aura-space-4); padding-inline-end: var(--aura-space-2); } /* 5.16 (Chamber-OS 96): 8px at the end, so a brand, its dot and a badge share one row at 240px */
|
|
676
689
|
.aura-nav__scroll { flex: 1; overflow-y: auto; padding: 0 var(--aura-space-3); }
|
|
677
690
|
/* No header: keep the first item off the top edge (5.0.2). */
|
|
678
691
|
.aura-nav > .aura-nav__scroll:first-child { padding-top: var(--aura-space-3); }
|
|
@@ -709,6 +722,10 @@ a.aura-tab { text-decoration: none; }
|
|
|
709
722
|
.aura-nav__item--group.has-active { color: var(--aura-fg-primary); }
|
|
710
723
|
.aura-nav__chevron { color: var(--aura-fg-secondary); transition: transform var(--aura-duration-fast) var(--aura-ease); }
|
|
711
724
|
.aura-nav__chevron.is-open { transform: rotate(180deg); }
|
|
725
|
+
/* 5.16 (Chamber-OS 96): chevron="right" — right when closed, down when open (left when closed in right-to-left). */
|
|
726
|
+
.aura-nav--chevron-right .aura-nav__chevron { transform: rotate(-90deg); }
|
|
727
|
+
.aura-nav--chevron-right .aura-nav__chevron.is-open { transform: none; }
|
|
728
|
+
[dir='rtl'] .aura-nav--chevron-right .aura-nav__chevron:not(.is-open), .aura-nav--chevron-right[dir='rtl'] .aura-nav__chevron:not(.is-open) { transform: rotate(90deg); }
|
|
712
729
|
.aura-nav__sub { margin-top: 2px; }
|
|
713
730
|
.aura-nav__sub[hidden] { display: none; }
|
|
714
731
|
.aura-nav__footer { padding: var(--aura-space-3); border-top: 1px solid var(--aura-border-default); }
|
|
@@ -749,6 +766,21 @@ a.aura-tab { text-decoration: none; }
|
|
|
749
766
|
/* 5.7: a segment with no page of its own — the links' colour, not interactive. */
|
|
750
767
|
.aura-crumbs__text { color: var(--aura-fg-secondary); }
|
|
751
768
|
.aura-crumbs__sep { color: var(--aura-fg-tertiary); }
|
|
769
|
+
/* 5.15 (Chamber-OS 94): first, "…", last below a width. */
|
|
770
|
+
.aura-crumbs li.aura-crumbs__more { display: none; }
|
|
771
|
+
/* "…" is the only way to the hidden items: a 24px target, 44px on touch screens. */
|
|
772
|
+
.aura-crumbs__more > button { position: relative; min-width: 24px; min-height: 24px; display: inline-flex; align-items: center; justify-content: center; }
|
|
773
|
+
@media (pointer: coarse) {
|
|
774
|
+
.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%); }
|
|
775
|
+
}
|
|
776
|
+
@media (max-width: 639.98px) {
|
|
777
|
+
.aura-crumbs--collapse-sm li.aura-crumbs__more { display: inline-flex; }
|
|
778
|
+
.aura-crumbs--collapse-sm .aura-crumbs__middle { display: none; }
|
|
779
|
+
}
|
|
780
|
+
@media (max-width: 767.98px) {
|
|
781
|
+
.aura-crumbs--collapse-md li.aura-crumbs__more { display: inline-flex; }
|
|
782
|
+
.aura-crumbs--collapse-md .aura-crumbs__middle { display: none; }
|
|
783
|
+
}
|
|
752
784
|
|
|
753
785
|
/* ---------- Avatar ---------- */
|
|
754
786
|
.aura-avatar {
|
|
@@ -804,6 +836,11 @@ a.aura-tab { text-decoration: none; }
|
|
|
804
836
|
.aura-combo__desc { font-size: 12px; line-height: 1.5; color: var(--aura-fg-secondary); }
|
|
805
837
|
/* Same specificity as `.aura-combo__option > .aura-icon` above and later in the file, so it wins by order (4.18). */
|
|
806
838
|
.aura-combo__option > .aura-combo__check { color: var(--aura-fg-accent); }
|
|
839
|
+
/* 5.16 (Chamber-OS 105): option groups under a heading. */
|
|
840
|
+
.aura-combo__group { list-style: none; }
|
|
841
|
+
.aura-combo__group + .aura-combo__group, .aura-combo__option + .aura-combo__group { margin-top: var(--aura-space-1); padding-top: var(--aura-space-1); border-top: 1px solid var(--aura-border-subtle); }
|
|
842
|
+
.aura-combo__group-label { display: block; padding: var(--aura-space-2) var(--aura-space-2) var(--aura-space-1); font-family: var(--font-mono); font-size: 11px; line-height: 16px; color: var(--aura-fg-secondary); text-transform: uppercase; letter-spacing: 0.04em; }
|
|
843
|
+
.aura-combo__grouplist { list-style: none; margin: 0; padding: 0; }
|
|
807
844
|
.aura-combo__note { display: flex; align-items: center; gap: var(--aura-space-2); padding: var(--aura-space-3) var(--aura-space-2); font-size: 13px; color: var(--aura-fg-secondary); }
|
|
808
845
|
|
|
809
846
|
/* ---------- DatePicker / Calendar ---------- */
|
|
@@ -1083,6 +1120,12 @@ a.aura-upload__name:focus-visible { outline: var(--aura-focus-ring-width) solid
|
|
|
1083
1120
|
.aura-progress--warning .aura-progress__bar { background: var(--aura-alert-warning-fg); }
|
|
1084
1121
|
.aura-progress--danger .aura-progress__bar { background: var(--aura-fg-danger); }
|
|
1085
1122
|
.aura-progress--neutral .aura-progress__bar { background: var(--aura-fg-secondary); }
|
|
1123
|
+
/* 5.15 (Chamber-OS 89): a reserved amount after the value — the same tone, striped, so it reads without colour. */
|
|
1124
|
+
.aura-progress__bar--reserved {
|
|
1125
|
+
transition: left var(--aura-duration-base) var(--aura-ease), width var(--aura-duration-base) var(--aura-ease);
|
|
1126
|
+
-webkit-mask-image: repeating-linear-gradient(135deg, currentColor 0 3px, transparent 3px 6px);
|
|
1127
|
+
mask-image: repeating-linear-gradient(135deg, currentColor 0 3px, transparent 3px 6px);
|
|
1128
|
+
}
|
|
1086
1129
|
.aura-progress__track.is-indeterminate .aura-progress__bar { width: 35%; animation: aura-progress-slide var(--aura-duration-pulse) var(--aura-ease) infinite; }
|
|
1087
1130
|
@keyframes aura-progress-slide { from { left: -35%; } to { left: 100%; } }
|
|
1088
1131
|
@media (prefers-reduced-motion: reduce) { .aura-progress__track.is-indeterminate .aura-progress__bar { animation-duration: calc(var(--aura-duration-pulse) * 3); } }
|
|
@@ -1265,6 +1308,30 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
|
|
|
1265
1308
|
.aura-tabs--segmented .aura-tabs__list.aura-segmented { gap: 2px; }
|
|
1266
1309
|
.aura-tabs--segmented .aura-tabs__list.aura-segmented.is-full .aura-tab { min-width: max-content; }
|
|
1267
1310
|
.aura-tabs--segmented .aura-tab.aura-segmented__option { margin-bottom: 0; }
|
|
1311
|
+
/* 5.15 (Chamber-OS 90): underline tabs sharing the width, always or below a breakpoint; the segmented track below one. */
|
|
1312
|
+
.aura-tabs__list.is-fill { gap: 0; }
|
|
1313
|
+
.aura-tabs__list.is-fill > .aura-tab { flex: 1 1 0; min-width: max-content; justify-content: center; padding: 0 var(--aura-space-3); }
|
|
1314
|
+
@media (max-width: 639.98px) {
|
|
1315
|
+
.aura-tabs__list.is-fill-below-sm { gap: 0; }
|
|
1316
|
+
.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); }
|
|
1317
|
+
.aura-segmented.is-full-below-sm { display: flex; width: 100%; }
|
|
1318
|
+
.aura-segmented.is-full-below-sm .aura-segmented__option { flex: 1 1 0; min-width: 0; }
|
|
1319
|
+
.aura-tabs--segmented .aura-segmented.is-full-below-sm .aura-tab { min-width: max-content; }
|
|
1320
|
+
}
|
|
1321
|
+
@media (max-width: 767.98px) {
|
|
1322
|
+
.aura-tabs__list.is-fill-below-md { gap: 0; }
|
|
1323
|
+
.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); }
|
|
1324
|
+
.aura-segmented.is-full-below-md { display: flex; width: 100%; }
|
|
1325
|
+
.aura-segmented.is-full-below-md .aura-segmented__option { flex: 1 1 0; min-width: 0; }
|
|
1326
|
+
.aura-tabs--segmented .aura-segmented.is-full-below-md .aura-tab { min-width: max-content; }
|
|
1327
|
+
}
|
|
1328
|
+
@media (max-width: 1023.98px) {
|
|
1329
|
+
.aura-tabs__list.is-fill-below-lg { gap: 0; }
|
|
1330
|
+
.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); }
|
|
1331
|
+
.aura-segmented.is-full-below-lg { display: flex; width: 100%; }
|
|
1332
|
+
.aura-segmented.is-full-below-lg .aura-segmented__option { flex: 1 1 0; min-width: 0; }
|
|
1333
|
+
.aura-tabs--segmented .aura-segmented.is-full-below-lg .aura-tab { min-width: max-content; }
|
|
1334
|
+
}
|
|
1268
1335
|
.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
1336
|
.aura-tabs--segmented .aura-tab.aura-segmented__option:disabled,
|
|
1270
1337
|
.aura-tabs--segmented .aura-tab.aura-segmented__option.is-disabled { opacity: var(--aura-disabled-opacity); cursor: not-allowed; }
|
|
@@ -1391,6 +1458,16 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
|
|
|
1391
1458
|
/* 5.12 searchGrow: the search fills what the controls leave. */
|
|
1392
1459
|
.aura-filterbar--grow .aura-filterbar__search { max-width: none; }
|
|
1393
1460
|
.aura-filterbar--grow .aura-filterbar__search ~ .aura-filterbar__spacer { display: none; }
|
|
1461
|
+
/* 5.15 (Chamber-OS 92): the search on its own row up to 1024px; controls sharing their row in equal columns. */
|
|
1462
|
+
@media (max-width: 1023.98px) {
|
|
1463
|
+
.aura-filterbar--stack-lg .aura-filterbar__search { flex-basis: 100%; max-width: none; }
|
|
1464
|
+
.aura-filterbar--stack-lg .aura-filterbar__spacer { display: none; }
|
|
1465
|
+
}
|
|
1466
|
+
.aura-filterbar--fill .aura-filterbar__spacer { display: none; }
|
|
1467
|
+
.aura-filterbar--fill .aura-filterbar__controls { flex: 1 1 auto; min-width: 0; }
|
|
1468
|
+
.aura-filterbar--fill .aura-filterbar__controls > * { flex: 1 1 0; min-width: 120px; max-width: none; width: auto; }
|
|
1469
|
+
.aura-filterbar--fill .aura-filterbar__controls > .aura-filterselect .aura-filterselect__face { width: 100%; }
|
|
1470
|
+
.aura-filterbar--fill .aura-filterbar__controls > .aura-filterselect .aura-filterselect__chevron { margin-inline-start: auto; }
|
|
1394
1471
|
/* Compact filters sit closer together than full fields. */
|
|
1395
1472
|
.aura-filterbar__controls:has(> .aura-filterselect) { gap: var(--aura-space-2); }
|
|
1396
1473
|
|
|
@@ -1631,6 +1708,34 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
|
|
|
1631
1708
|
}
|
|
1632
1709
|
}
|
|
1633
1710
|
|
|
1711
|
+
/* 5.15 (Chamber-OS 85): stackStyle="cards" — each stacked row its own card (DataTable's card spacing), no outer frame.
|
|
1712
|
+
* .aura-tbl-cards is the container here, so the wrap's own frame can be dropped while stacked. */
|
|
1713
|
+
.aura-tbl-cards { container: aura-tbl / inline-size; width: 100%; }
|
|
1714
|
+
@container aura-tbl (width < 768px) {
|
|
1715
|
+
.aura-tbl-cards--md > .aura-tbl-wrap { border: 0; border-radius: 0; background: transparent; overflow: visible; }
|
|
1716
|
+
.aura-tbl--cards.aura-tbl--stack-md > .aura-tbl__caption { padding: 0 0 var(--aura-space-3); }
|
|
1717
|
+
.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 {
|
|
1718
|
+
margin-bottom: var(--aura-space-2); padding: var(--aura-space-4);
|
|
1719
|
+
border: 1px solid var(--aura-border-default); border-radius: var(--aura-radius-lg); background: var(--aura-bg-surface);
|
|
1720
|
+
}
|
|
1721
|
+
.aura-tbl--cards.aura-tbl--stack-md > .aura-tbl__foot > .aura-tbl__row { background: var(--aura-bg-canvas); }
|
|
1722
|
+
.aura-tbl--cards.aura-tbl--stack-md > :last-child > .aura-tbl__row:last-child { margin-bottom: 0; }
|
|
1723
|
+
.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); }
|
|
1724
|
+
.aura-tbl-wrap.is-flush > .aura-tbl--cards.aura-tbl--stack-md > .aura-tbl__caption { padding: 0 0 var(--aura-space-3); }
|
|
1725
|
+
}
|
|
1726
|
+
@container aura-tbl (width < 640px) {
|
|
1727
|
+
.aura-tbl-cards--sm > .aura-tbl-wrap { border: 0; border-radius: 0; background: transparent; overflow: visible; }
|
|
1728
|
+
.aura-tbl--cards.aura-tbl--stack-sm > .aura-tbl__caption { padding: 0 0 var(--aura-space-3); }
|
|
1729
|
+
.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 {
|
|
1730
|
+
margin-bottom: var(--aura-space-2); padding: var(--aura-space-4);
|
|
1731
|
+
border: 1px solid var(--aura-border-default); border-radius: var(--aura-radius-lg); background: var(--aura-bg-surface);
|
|
1732
|
+
}
|
|
1733
|
+
.aura-tbl--cards.aura-tbl--stack-sm > .aura-tbl__foot > .aura-tbl__row { background: var(--aura-bg-canvas); }
|
|
1734
|
+
.aura-tbl--cards.aura-tbl--stack-sm > :last-child > .aura-tbl__row:last-child { margin-bottom: 0; }
|
|
1735
|
+
.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); }
|
|
1736
|
+
.aura-tbl-wrap.is-flush > .aura-tbl--cards.aura-tbl--stack-sm > .aura-tbl__caption { padding: 0 0 var(--aura-space-3); }
|
|
1737
|
+
}
|
|
1738
|
+
|
|
1634
1739
|
/* ---------- 4.20: DataTable width queries and cards, one markup ---------- */
|
|
1635
1740
|
/* Each .aura-table-q is the table's width × 10000 / its threshold (DataTable.tsx, Q), so `(width < 9999.5px)` is true
|
|
1636
1741
|
* 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; }
|
|
@@ -674,7 +687,7 @@ a.aura-tab { text-decoration: none; }
|
|
|
674
687
|
background: var(--aura-bg-canvas); border-right: 1px solid var(--aura-border-default);
|
|
675
688
|
font-family: var(--font-sans); color: var(--aura-fg-primary);
|
|
676
689
|
}
|
|
677
|
-
.aura-nav__header { padding: var(--aura-space-5) var(--aura-space-4) var(--aura-space-4); }
|
|
690
|
+
.aura-nav__header { padding: var(--aura-space-5) var(--aura-space-4) var(--aura-space-4); padding-inline-end: var(--aura-space-2); } /* 5.16 (Chamber-OS 96): 8px at the end, so a brand, its dot and a badge share one row at 240px */
|
|
678
691
|
.aura-nav__scroll { flex: 1; overflow-y: auto; padding: 0 var(--aura-space-3); }
|
|
679
692
|
/* No header: keep the first item off the top edge (5.0.2). */
|
|
680
693
|
.aura-nav > .aura-nav__scroll:first-child { padding-top: var(--aura-space-3); }
|
|
@@ -711,6 +724,10 @@ a.aura-tab { text-decoration: none; }
|
|
|
711
724
|
.aura-nav__item--group.has-active { color: var(--aura-fg-primary); }
|
|
712
725
|
.aura-nav__chevron { color: var(--aura-fg-secondary); transition: transform var(--aura-duration-fast) var(--aura-ease); }
|
|
713
726
|
.aura-nav__chevron.is-open { transform: rotate(180deg); }
|
|
727
|
+
/* 5.16 (Chamber-OS 96): chevron="right" — right when closed, down when open (left when closed in right-to-left). */
|
|
728
|
+
.aura-nav--chevron-right .aura-nav__chevron { transform: rotate(-90deg); }
|
|
729
|
+
.aura-nav--chevron-right .aura-nav__chevron.is-open { transform: none; }
|
|
730
|
+
[dir='rtl'] .aura-nav--chevron-right .aura-nav__chevron:not(.is-open), .aura-nav--chevron-right[dir='rtl'] .aura-nav__chevron:not(.is-open) { transform: rotate(90deg); }
|
|
714
731
|
.aura-nav__sub { margin-top: 2px; }
|
|
715
732
|
.aura-nav__sub[hidden] { display: none; }
|
|
716
733
|
.aura-nav__footer { padding: var(--aura-space-3); border-top: 1px solid var(--aura-border-default); }
|
|
@@ -751,6 +768,21 @@ a.aura-tab { text-decoration: none; }
|
|
|
751
768
|
/* 5.7: a segment with no page of its own — the links' colour, not interactive. */
|
|
752
769
|
.aura-crumbs__text { color: var(--aura-fg-secondary); }
|
|
753
770
|
.aura-crumbs__sep { color: var(--aura-fg-tertiary); }
|
|
771
|
+
/* 5.15 (Chamber-OS 94): first, "…", last below a width. */
|
|
772
|
+
.aura-crumbs li.aura-crumbs__more { display: none; }
|
|
773
|
+
/* "…" is the only way to the hidden items: a 24px target, 44px on touch screens. */
|
|
774
|
+
.aura-crumbs__more > button { position: relative; min-width: 24px; min-height: 24px; display: inline-flex; align-items: center; justify-content: center; }
|
|
775
|
+
@media (pointer: coarse) {
|
|
776
|
+
.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%); }
|
|
777
|
+
}
|
|
778
|
+
@media (max-width: 639.98px) {
|
|
779
|
+
.aura-crumbs--collapse-sm li.aura-crumbs__more { display: inline-flex; }
|
|
780
|
+
.aura-crumbs--collapse-sm .aura-crumbs__middle { display: none; }
|
|
781
|
+
}
|
|
782
|
+
@media (max-width: 767.98px) {
|
|
783
|
+
.aura-crumbs--collapse-md li.aura-crumbs__more { display: inline-flex; }
|
|
784
|
+
.aura-crumbs--collapse-md .aura-crumbs__middle { display: none; }
|
|
785
|
+
}
|
|
754
786
|
|
|
755
787
|
/* ---------- Avatar ---------- */
|
|
756
788
|
.aura-avatar {
|
|
@@ -806,6 +838,11 @@ a.aura-tab { text-decoration: none; }
|
|
|
806
838
|
.aura-combo__desc { font-size: 12px; line-height: 1.5; color: var(--aura-fg-secondary); }
|
|
807
839
|
/* Same specificity as `.aura-combo__option > .aura-icon` above and later in the file, so it wins by order (4.18). */
|
|
808
840
|
.aura-combo__option > .aura-combo__check { color: var(--aura-fg-accent); }
|
|
841
|
+
/* 5.16 (Chamber-OS 105): option groups under a heading. */
|
|
842
|
+
.aura-combo__group { list-style: none; }
|
|
843
|
+
.aura-combo__group + .aura-combo__group, .aura-combo__option + .aura-combo__group { margin-top: var(--aura-space-1); padding-top: var(--aura-space-1); border-top: 1px solid var(--aura-border-subtle); }
|
|
844
|
+
.aura-combo__group-label { display: block; padding: var(--aura-space-2) var(--aura-space-2) var(--aura-space-1); font-family: var(--font-mono); font-size: 11px; line-height: 16px; color: var(--aura-fg-secondary); text-transform: uppercase; letter-spacing: 0.04em; }
|
|
845
|
+
.aura-combo__grouplist { list-style: none; margin: 0; padding: 0; }
|
|
809
846
|
.aura-combo__note { display: flex; align-items: center; gap: var(--aura-space-2); padding: var(--aura-space-3) var(--aura-space-2); font-size: 13px; color: var(--aura-fg-secondary); }
|
|
810
847
|
|
|
811
848
|
/* ---------- DatePicker / Calendar ---------- */
|
|
@@ -1085,6 +1122,12 @@ a.aura-upload__name:focus-visible { outline: var(--aura-focus-ring-width) solid
|
|
|
1085
1122
|
.aura-progress--warning .aura-progress__bar { background: var(--aura-alert-warning-fg); }
|
|
1086
1123
|
.aura-progress--danger .aura-progress__bar { background: var(--aura-fg-danger); }
|
|
1087
1124
|
.aura-progress--neutral .aura-progress__bar { background: var(--aura-fg-secondary); }
|
|
1125
|
+
/* 5.15 (Chamber-OS 89): a reserved amount after the value — the same tone, striped, so it reads without colour. */
|
|
1126
|
+
.aura-progress__bar--reserved {
|
|
1127
|
+
transition: left var(--aura-duration-base) var(--aura-ease), width var(--aura-duration-base) var(--aura-ease);
|
|
1128
|
+
-webkit-mask-image: repeating-linear-gradient(135deg, currentColor 0 3px, transparent 3px 6px);
|
|
1129
|
+
mask-image: repeating-linear-gradient(135deg, currentColor 0 3px, transparent 3px 6px);
|
|
1130
|
+
}
|
|
1088
1131
|
.aura-progress__track.is-indeterminate .aura-progress__bar { width: 35%; animation: aura-progress-slide var(--aura-duration-pulse) var(--aura-ease) infinite; }
|
|
1089
1132
|
@keyframes aura-progress-slide { from { left: -35%; } to { left: 100%; } }
|
|
1090
1133
|
@media (prefers-reduced-motion: reduce) { .aura-progress__track.is-indeterminate .aura-progress__bar { animation-duration: calc(var(--aura-duration-pulse) * 3); } }
|
|
@@ -1267,6 +1310,30 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
|
|
|
1267
1310
|
.aura-tabs--segmented .aura-tabs__list.aura-segmented { gap: 2px; }
|
|
1268
1311
|
.aura-tabs--segmented .aura-tabs__list.aura-segmented.is-full .aura-tab { min-width: max-content; }
|
|
1269
1312
|
.aura-tabs--segmented .aura-tab.aura-segmented__option { margin-bottom: 0; }
|
|
1313
|
+
/* 5.15 (Chamber-OS 90): underline tabs sharing the width, always or below a breakpoint; the segmented track below one. */
|
|
1314
|
+
.aura-tabs__list.is-fill { gap: 0; }
|
|
1315
|
+
.aura-tabs__list.is-fill > .aura-tab { flex: 1 1 0; min-width: max-content; justify-content: center; padding: 0 var(--aura-space-3); }
|
|
1316
|
+
@media (max-width: 639.98px) {
|
|
1317
|
+
.aura-tabs__list.is-fill-below-sm { gap: 0; }
|
|
1318
|
+
.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); }
|
|
1319
|
+
.aura-segmented.is-full-below-sm { display: flex; width: 100%; }
|
|
1320
|
+
.aura-segmented.is-full-below-sm .aura-segmented__option { flex: 1 1 0; min-width: 0; }
|
|
1321
|
+
.aura-tabs--segmented .aura-segmented.is-full-below-sm .aura-tab { min-width: max-content; }
|
|
1322
|
+
}
|
|
1323
|
+
@media (max-width: 767.98px) {
|
|
1324
|
+
.aura-tabs__list.is-fill-below-md { gap: 0; }
|
|
1325
|
+
.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); }
|
|
1326
|
+
.aura-segmented.is-full-below-md { display: flex; width: 100%; }
|
|
1327
|
+
.aura-segmented.is-full-below-md .aura-segmented__option { flex: 1 1 0; min-width: 0; }
|
|
1328
|
+
.aura-tabs--segmented .aura-segmented.is-full-below-md .aura-tab { min-width: max-content; }
|
|
1329
|
+
}
|
|
1330
|
+
@media (max-width: 1023.98px) {
|
|
1331
|
+
.aura-tabs__list.is-fill-below-lg { gap: 0; }
|
|
1332
|
+
.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); }
|
|
1333
|
+
.aura-segmented.is-full-below-lg { display: flex; width: 100%; }
|
|
1334
|
+
.aura-segmented.is-full-below-lg .aura-segmented__option { flex: 1 1 0; min-width: 0; }
|
|
1335
|
+
.aura-tabs--segmented .aura-segmented.is-full-below-lg .aura-tab { min-width: max-content; }
|
|
1336
|
+
}
|
|
1270
1337
|
.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
1338
|
.aura-tabs--segmented .aura-tab.aura-segmented__option:disabled,
|
|
1272
1339
|
.aura-tabs--segmented .aura-tab.aura-segmented__option.is-disabled { opacity: var(--aura-disabled-opacity); cursor: not-allowed; }
|
|
@@ -1393,6 +1460,16 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
|
|
|
1393
1460
|
/* 5.12 searchGrow: the search fills what the controls leave. */
|
|
1394
1461
|
.aura-filterbar--grow .aura-filterbar__search { max-width: none; }
|
|
1395
1462
|
.aura-filterbar--grow .aura-filterbar__search ~ .aura-filterbar__spacer { display: none; }
|
|
1463
|
+
/* 5.15 (Chamber-OS 92): the search on its own row up to 1024px; controls sharing their row in equal columns. */
|
|
1464
|
+
@media (max-width: 1023.98px) {
|
|
1465
|
+
.aura-filterbar--stack-lg .aura-filterbar__search { flex-basis: 100%; max-width: none; }
|
|
1466
|
+
.aura-filterbar--stack-lg .aura-filterbar__spacer { display: none; }
|
|
1467
|
+
}
|
|
1468
|
+
.aura-filterbar--fill .aura-filterbar__spacer { display: none; }
|
|
1469
|
+
.aura-filterbar--fill .aura-filterbar__controls { flex: 1 1 auto; min-width: 0; }
|
|
1470
|
+
.aura-filterbar--fill .aura-filterbar__controls > * { flex: 1 1 0; min-width: 120px; max-width: none; width: auto; }
|
|
1471
|
+
.aura-filterbar--fill .aura-filterbar__controls > .aura-filterselect .aura-filterselect__face { width: 100%; }
|
|
1472
|
+
.aura-filterbar--fill .aura-filterbar__controls > .aura-filterselect .aura-filterselect__chevron { margin-inline-start: auto; }
|
|
1396
1473
|
/* Compact filters sit closer together than full fields. */
|
|
1397
1474
|
.aura-filterbar__controls:has(> .aura-filterselect) { gap: var(--aura-space-2); }
|
|
1398
1475
|
|
|
@@ -1633,6 +1710,34 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
|
|
|
1633
1710
|
}
|
|
1634
1711
|
}
|
|
1635
1712
|
|
|
1713
|
+
/* 5.15 (Chamber-OS 85): stackStyle="cards" — each stacked row its own card (DataTable's card spacing), no outer frame.
|
|
1714
|
+
* .aura-tbl-cards is the container here, so the wrap's own frame can be dropped while stacked. */
|
|
1715
|
+
.aura-tbl-cards { container: aura-tbl / inline-size; width: 100%; }
|
|
1716
|
+
@container aura-tbl (width < 768px) {
|
|
1717
|
+
.aura-tbl-cards--md > .aura-tbl-wrap { border: 0; border-radius: 0; background: transparent; overflow: visible; }
|
|
1718
|
+
.aura-tbl--cards.aura-tbl--stack-md > .aura-tbl__caption { padding: 0 0 var(--aura-space-3); }
|
|
1719
|
+
.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 {
|
|
1720
|
+
margin-bottom: var(--aura-space-2); padding: var(--aura-space-4);
|
|
1721
|
+
border: 1px solid var(--aura-border-default); border-radius: var(--aura-radius-lg); background: var(--aura-bg-surface);
|
|
1722
|
+
}
|
|
1723
|
+
.aura-tbl--cards.aura-tbl--stack-md > .aura-tbl__foot > .aura-tbl__row { background: var(--aura-bg-canvas); }
|
|
1724
|
+
.aura-tbl--cards.aura-tbl--stack-md > :last-child > .aura-tbl__row:last-child { margin-bottom: 0; }
|
|
1725
|
+
.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); }
|
|
1726
|
+
.aura-tbl-wrap.is-flush > .aura-tbl--cards.aura-tbl--stack-md > .aura-tbl__caption { padding: 0 0 var(--aura-space-3); }
|
|
1727
|
+
}
|
|
1728
|
+
@container aura-tbl (width < 640px) {
|
|
1729
|
+
.aura-tbl-cards--sm > .aura-tbl-wrap { border: 0; border-radius: 0; background: transparent; overflow: visible; }
|
|
1730
|
+
.aura-tbl--cards.aura-tbl--stack-sm > .aura-tbl__caption { padding: 0 0 var(--aura-space-3); }
|
|
1731
|
+
.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 {
|
|
1732
|
+
margin-bottom: var(--aura-space-2); padding: var(--aura-space-4);
|
|
1733
|
+
border: 1px solid var(--aura-border-default); border-radius: var(--aura-radius-lg); background: var(--aura-bg-surface);
|
|
1734
|
+
}
|
|
1735
|
+
.aura-tbl--cards.aura-tbl--stack-sm > .aura-tbl__foot > .aura-tbl__row { background: var(--aura-bg-canvas); }
|
|
1736
|
+
.aura-tbl--cards.aura-tbl--stack-sm > :last-child > .aura-tbl__row:last-child { margin-bottom: 0; }
|
|
1737
|
+
.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); }
|
|
1738
|
+
.aura-tbl-wrap.is-flush > .aura-tbl--cards.aura-tbl--stack-sm > .aura-tbl__caption { padding: 0 0 var(--aura-space-3); }
|
|
1739
|
+
}
|
|
1740
|
+
|
|
1636
1741
|
/* ---------- 4.20: DataTable width queries and cards, one markup ---------- */
|
|
1637
1742
|
/* Each .aura-table-q is the table's width × 10000 / its threshold (DataTable.tsx, Q), so `(width < 9999.5px)` is true
|
|
1638
1743
|
* 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.16.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",
|