@jirawatpyk/aura-react 5.33.0 → 5.35.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 +16 -2
- package/dist/aura.bundle.js +831 -412
- package/dist/cjs/index.cjs +830 -411
- package/dist/esm/ActionBar.js +1 -0
- package/dist/esm/AppShell.js +16 -2
- package/dist/esm/BottomNav.js +26 -2
- package/dist/esm/StatusTile.js +53 -0
- package/dist/esm/autoTip.js +5 -0
- package/dist/esm/breakpoints.js +18 -1
- package/dist/esm/index.js +5 -0
- package/dist/esm/responsive.js +1 -15
- package/dist/esm/scrollHide.js +96 -0
- package/dist/esm/strings.js +5 -0
- package/dist/esm/strings.sv.js +5 -0
- package/dist/esm/strings.th.js +5 -0
- package/dist/esm/tiles.js +220 -0
- package/dist/index.d.cts +126 -36
- package/dist/index.d.ts +126 -36
- package/dist/locales/sv.cjs +5 -0
- package/dist/locales/sv.d.cts +7 -0
- package/dist/locales/sv.d.ts +7 -0
- package/dist/locales/th.cjs +5 -0
- package/dist/locales/th.d.cts +7 -0
- package/dist/locales/th.d.ts +7 -0
- package/dist/server/index.cjs +274 -27
- package/dist/server/index.d.cts +78 -0
- package/dist/server/index.d.ts +78 -0
- package/dist/server/index.js +274 -27
- package/dist/styles.css +86 -5
- package/dist/styles.layer.css +86 -5
- package/package.json +1 -1
package/dist/styles.layer.css
CHANGED
|
@@ -866,8 +866,14 @@ a.aura-tab { text-decoration: none; }
|
|
|
866
866
|
.aura-crumbs li.aura-crumbs__more { display: none; }
|
|
867
867
|
/* "…" is the only way to the hidden items: a 24px target, 44px on touch screens. */
|
|
868
868
|
.aura-crumbs__more > button { position: relative; min-width: 24px; min-height: 24px; display: inline-flex; align-items: center; justify-content: center; }
|
|
869
|
+
/* 5.35 (DxT Monitor 11): on a touch screen every crumb link and button (and "…") gets a 44px-tall hit area; the text
|
|
870
|
+
* doesn't move. The area reaches 12px into the gutter on each side (the gutter is 28px, so neighbours never overlap)
|
|
871
|
+
* and only 4px below the text, so it stops short of a PageHeader title 4px under the crumbs; the rest of the 44px is
|
|
872
|
+
* above. Wrapped rows sit 24px apart on touch screens so one row's areas never cover the next. */
|
|
869
873
|
@media (pointer: coarse) {
|
|
870
|
-
.aura-
|
|
874
|
+
.aura-crumbs ol { row-gap: 24px; }
|
|
875
|
+
.aura-crumbs li > a, .aura-crumbs li > button { position: relative; }
|
|
876
|
+
.aura-crumbs li > a::after, .aura-crumbs li > button::after { content: ''; position: absolute; left: -12px; right: -12px; bottom: -4px; height: max(100% + 4px, var(--aura-touch-target)); }
|
|
871
877
|
}
|
|
872
878
|
@media (max-width: 639.98px) {
|
|
873
879
|
.aura-crumbs--collapse-sm li.aura-crumbs__more { display: inline-flex; }
|
|
@@ -1074,6 +1080,10 @@ a.aura-tab { text-decoration: none; }
|
|
|
1074
1080
|
--aura-shell-bar-height: 56px; /* 5.14 (Chamber-OS 104): the top bar's height, for sticky offsets under it */
|
|
1075
1081
|
}
|
|
1076
1082
|
.aura-shell--no-bar { --aura-shell-bar-height: 0px; }
|
|
1083
|
+
/* 5.35 (DxT Monitor 13): headerHideOnScroll — below lg the bar slides up out of view while the page scrolls down (its
|
|
1084
|
+
* shadow too); AppShell sets the bar-height token to 0 meanwhile. */
|
|
1085
|
+
.aura-shell__bar--hides { transition: transform var(--aura-duration-base) var(--aura-ease); }
|
|
1086
|
+
@media (max-width: 1023.98px) { .aura-shell__bar.is-away { transform: translateY(calc(-100% - 8px)); } }
|
|
1077
1087
|
@media (min-width: 1024px) { .aura-shell--menu-bar { --aura-shell-bar-height: 0px; } }
|
|
1078
1088
|
.aura-shell__nav { position: sticky; top: 0; height: 100vh; height: 100dvh; flex: none; }
|
|
1079
1089
|
.aura-shell__main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
|
|
@@ -1166,6 +1176,69 @@ button.aura-stat { font: inherit; width: 100%; cursor: pointer; }
|
|
|
1166
1176
|
/* Anything else interactive in the tile sits above the stretched link. No specificity, so a control's own position wins. */
|
|
1167
1177
|
:where(.aura-stat--label-link) :where(a, button, input, select, textarea, label, summary, [tabindex]):not(:where(.aura-stat__link)) { position: relative; z-index: 1; }
|
|
1168
1178
|
|
|
1179
|
+
/* ---------- StatusTile, TileGrid, Sparkline (5.34, DxT Monitor S06) ---------- */
|
|
1180
|
+
.aura-tile-grid { list-style: none; margin: 0; padding: 0; --aura-grid-gap-base: var(--aura-space-2); --aura-grid-gap-sm: var(--aura-space-2); --aura-grid-gap-md: var(--aura-space-2); --aura-grid-gap-lg: var(--aura-space-2); --aura-grid-gap-xl: var(--aura-space-2); }
|
|
1181
|
+
.aura-tile-grid > li { display: flex; min-width: 0; container: aura-status-tile / inline-size; } /* the narrow-tile query reads the cell: a grid cell has a definite width */
|
|
1182
|
+
.aura-tile-grid > li > * { flex: 1; min-width: 0; }
|
|
1183
|
+
.aura-status-tile {
|
|
1184
|
+
position: relative; box-sizing: border-box; display: flex; flex-direction: column; gap: 2px; min-width: 0;
|
|
1185
|
+
padding: var(--aura-space-2) var(--aura-space-3); background: var(--aura-bg-surface); color: var(--aura-fg-primary);
|
|
1186
|
+
border: 1px solid var(--aura-border-default); border-radius: var(--aura-radius-sm);
|
|
1187
|
+
font-family: var(--font-sans); font-size: 13px; line-height: 18px; text-align: start; text-decoration: none;
|
|
1188
|
+
--aura-hover: var(--aura-bg-surface-hover);
|
|
1189
|
+
}
|
|
1190
|
+
.aura-status-tile--down { background: var(--aura-alert-danger-bg); border-color: var(--aura-alert-danger-border); }
|
|
1191
|
+
.aura-status-tile--problem { background: var(--aura-alert-warning-bg); border-color: var(--aura-alert-warning-border); }
|
|
1192
|
+
.aura-status-tile--maintenance { background: var(--aura-alert-info-bg); border-color: var(--aura-alert-info-border); }
|
|
1193
|
+
.aura-status-tile.is-interactive { cursor: pointer; transition: border-color var(--aura-duration-fast) var(--aura-ease); }
|
|
1194
|
+
.aura-status-tile.is-interactive:hover { border-color: var(--aura-border-strong); }
|
|
1195
|
+
.aura-status-tile.is-interactive:focus-visible { outline: var(--aura-focus-ring-width) solid var(--aura-focus-ring); outline-offset: var(--aura-focus-ring-offset); }
|
|
1196
|
+
.aura-status-tile__head { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 0 var(--aura-space-2); min-width: 0; }
|
|
1197
|
+
.aura-status-tile__sep { font-size: 0; }
|
|
1198
|
+
.aura-status-tile__icon { flex: none; margin-top: 1px; color: var(--aura-fg-secondary); }
|
|
1199
|
+
.aura-status-tile--down .aura-status-tile__icon { color: var(--aura-alert-danger-fg); }
|
|
1200
|
+
.aura-status-tile--problem .aura-status-tile__icon { color: var(--aura-alert-warning-fg); }
|
|
1201
|
+
.aura-status-tile--maintenance .aura-status-tile__icon { color: var(--aura-alert-info-fg); }
|
|
1202
|
+
.aura-status-tile--unknown .aura-status-tile__icon { color: var(--aura-fg-tertiary); } /* 5.35: no data yet */
|
|
1203
|
+
/* Two lines at most: similar names stay apart. */
|
|
1204
|
+
.aura-status-tile__title {
|
|
1205
|
+
flex: 1 1 0; min-width: 0; font-weight: 600; overflow-wrap: break-word;
|
|
1206
|
+
display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden;
|
|
1207
|
+
}
|
|
1208
|
+
.aura-status-tile__value { flex: none; margin-inline-start: auto; font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }
|
|
1209
|
+
.aura-status-tile__value.is-danger, .aura-status-tile__marker.is-danger { color: var(--aura-fg-danger); }
|
|
1210
|
+
.aura-status-tile__value.is-warning, .aura-status-tile__marker.is-warning { color: var(--aura-fg-warning); }
|
|
1211
|
+
.aura-status-tile__value.is-accent, .aura-status-tile__marker.is-accent { color: var(--aura-fg-accent); }
|
|
1212
|
+
.aura-status-tile__value.is-neutral, .aura-status-tile__marker.is-neutral { color: var(--aura-fg-secondary); }
|
|
1213
|
+
.aura-status-tile--down .aura-status-tile__value.is-danger { color: var(--aura-alert-danger-fg); }
|
|
1214
|
+
.aura-status-tile--problem .aura-status-tile__value.is-warning { color: var(--aura-alert-warning-fg); }
|
|
1215
|
+
.aura-status-tile--maintenance .aura-status-tile__value.is-accent { color: var(--aura-alert-info-fg); }
|
|
1216
|
+
/* A narrow tile in a TileGrid (two columns on a phone) puts the value on its own line under the title, in every tile
|
|
1217
|
+
* alike, rather than squeezing the title to a word. The grid's cells are the containers: on the tile itself, inline-size
|
|
1218
|
+
* containment would collapse a tile in a flex row or an inline block to nothing. */
|
|
1219
|
+
@container aura-status-tile (max-width: 225.98px) {
|
|
1220
|
+
.aura-status-tile__value { flex-basis: 100%; margin-inline-start: 0; padding-inline-start: 24px; }
|
|
1221
|
+
}
|
|
1222
|
+
/* The second line starts under the title. */
|
|
1223
|
+
.aura-status-tile__foot { display: flex; align-items: center; gap: var(--aura-space-2); min-width: 0; padding-inline-start: 24px; font-size: 12px; color: var(--aura-fg-secondary); }
|
|
1224
|
+
.aura-status-tile__meta { flex: 1; min-width: 0; overflow-wrap: anywhere; }
|
|
1225
|
+
.aura-status-tile__markers { display: inline-flex; align-items: center; gap: var(--aura-space-1); margin-inline-start: auto; flex: none; }
|
|
1226
|
+
.aura-status-tile__marker { display: inline-flex; }
|
|
1227
|
+
.aura-status-tile:lang(th) { line-height: 20px; }
|
|
1228
|
+
.aura-sparkline { display: inline-block; flex: none; vertical-align: middle; overflow: visible; color: var(--aura-fg-secondary); }
|
|
1229
|
+
.aura-sparkline.is-accent { color: var(--aura-fg-accent); }
|
|
1230
|
+
.aura-sparkline.is-danger { color: var(--aura-fg-danger); }
|
|
1231
|
+
.aura-sparkline.is-warning { color: var(--aura-fg-warning); }
|
|
1232
|
+
.aura-sparkline.is-positive { color: var(--aura-fg-positive); }
|
|
1233
|
+
.aura-sparkline__line { fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linejoin: round; stroke-linecap: round; }
|
|
1234
|
+
.aura-sparkline__dots { fill: currentColor; }
|
|
1235
|
+
.aura-sparkline__band { fill: var(--aura-fg-danger); opacity: 0.16; }
|
|
1236
|
+
.aura-sparkline__ticks { fill: var(--aura-fg-danger); }
|
|
1237
|
+
@media (forced-colors: active) {
|
|
1238
|
+
.aura-sparkline { color: CanvasText; }
|
|
1239
|
+
.aura-sparkline__band, .aura-sparkline__ticks { fill: Highlight; }
|
|
1240
|
+
}
|
|
1241
|
+
|
|
1169
1242
|
/* ---------- TimePicker ---------- */
|
|
1170
1243
|
.aura-time__popover { min-width: 160px; }
|
|
1171
1244
|
.aura-time__option { min-height: 36px; font-variant-numeric: tabular-nums; }
|
|
@@ -1785,10 +1858,18 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
|
|
|
1785
1858
|
@media (min-width: 1024px) { .aura-bottomnav.aura-bottomnav--below-lg, .aura-bottomnav-spacer.aura-bottomnav--below-lg { display: none; } }
|
|
1786
1859
|
@media (min-width: 1280px) { .aura-bottomnav.aura-bottomnav--below-xl, .aura-bottomnav-spacer.aura-bottomnav--below-xl { display: none; } }
|
|
1787
1860
|
/* While a BottomNav shows, viewport ActionBars and phone toasts sit on top of it. */
|
|
1788
|
-
:
|
|
1789
|
-
|
|
1790
|
-
@media (max-width:
|
|
1791
|
-
@media (max-width:
|
|
1861
|
+
/* 5.35: not while it has slid away on scroll, nor on a page that hides it (data-aura-hide-bottomnav). */
|
|
1862
|
+
:root:has(nav.aura-bottomnav--always:not(.is-away)):not(:has([data-aura-hide-bottomnav])) { --aura-bottomnav-offset: calc(var(--aura-bottomnav-height) + env(safe-area-inset-bottom, 0px)); }
|
|
1863
|
+
@media (max-width: 767.98px) { :root:has(nav.aura-bottomnav--below-md:not(.is-away)):not(:has([data-aura-hide-bottomnav])) { --aura-bottomnav-offset: calc(var(--aura-bottomnav-height) + env(safe-area-inset-bottom, 0px)); } }
|
|
1864
|
+
@media (max-width: 1023.98px) { :root:has(nav.aura-bottomnav--below-lg:not(.is-away)):not(:has([data-aura-hide-bottomnav])) { --aura-bottomnav-offset: calc(var(--aura-bottomnav-height) + env(safe-area-inset-bottom, 0px)); } }
|
|
1865
|
+
@media (max-width: 1279.98px) { :root:has(nav.aura-bottomnav--below-xl:not(.is-away)):not(:has([data-aura-hide-bottomnav])) { --aura-bottomnav-offset: calc(var(--aura-bottomnav-height) + env(safe-area-inset-bottom, 0px)); } }
|
|
1866
|
+
/* 5.35 (DxT Monitor 14): hideOnScroll slides it down out of view (the spacer stays, so nothing shifts); a page with its
|
|
1867
|
+
* own bottom bar (ActionBar hidesBottomNav, or data-aura-hide-bottomnav on any element) has no BottomNav or spacer. */
|
|
1868
|
+
.aura-bottomnav--hides { transition: transform var(--aura-duration-base) var(--aura-ease); }
|
|
1869
|
+
.aura-bottomnav.is-away { transform: translateY(100%); }
|
|
1870
|
+
:root:has([data-aura-hide-bottomnav]) .aura-bottomnav, :root:has([data-aura-hide-bottomnav]) .aura-bottomnav-spacer { display: none; }
|
|
1871
|
+
.aura-actionbar--viewport { transition: bottom var(--aura-duration-base) var(--aura-ease); }
|
|
1872
|
+
@media (prefers-reduced-motion: reduce) { .aura-bottomnav--hides, .aura-actionbar--viewport, .aura-shell__bar--hides { transition: none; } }
|
|
1792
1873
|
/* Toasts clear a BottomNav wherever it shows (phones and tablets), else the bottom safe-area inset (5.6). */
|
|
1793
1874
|
.aura-toaster:not(.is-top) { bottom: calc(var(--aura-toaster-offset, var(--aura-space-6)) + var(--aura-bottomnav-offset, env(safe-area-inset-bottom, 0px))); }
|
|
1794
1875
|
@media (max-width: 639.98px) { .aura-toaster:not(.is-top) { bottom: calc(var(--aura-toaster-offset, var(--aura-space-4)) + var(--aura-bottomnav-offset, env(safe-area-inset-bottom, 0px))); } }
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jirawatpyk/aura-react",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.35.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",
|