@guildofgleks/ui 21.12.0 → 21.13.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/styles/theme.css CHANGED
@@ -426,7 +426,12 @@
426
426
  /* Semantics */
427
427
  --gog-success-color: #34d399; /* Glowing emerald */
428
428
  --gog-danger-color: #f87171; /* Glowing ruby */
429
- --gog-warning-color: #fbbf24; /* Amber */
429
+ /* Orange, not the accent's amber. It was `#fbbf24` -- the same hex as `--gog-accent-color`
430
+ two declarations above, so an `accent` severity and a `warning` one were one colour in
431
+ every component that paints the set. Moved by hue rather than by lightness (18.1 deg, L
432
+ held) because darkening a status on a dark ground trades one defect for another, and a
433
+ warning reads as orange at least as readily as it reads as gold. */
434
+ --gog-warning-color: #ffac4e; /* Ember orange */
430
435
  --gog-info-color: #38bdf8; /* Sapphire */
431
436
 
432
437
  /* Elevation, as this theme states it. The long note in the literal block explains the knobs;
@@ -521,7 +526,6 @@
521
526
  shadow, so a theme moves all of them by turning one knob. Overriding any single one still
522
527
  works exactly as before. */
523
528
  --gog-panel-shadow: var(--gog-elevation-ring), var(--gog-elevation-3);
524
- --gog-panel-elevated-shadow: var(--gog-elevation-highlight), var(--gog-elevation-2);
525
529
  --gog-toast-shadow: var(--gog-elevation-ring), var(--gog-elevation-4);
526
530
  --gog-dialog-shadow: var(--gog-elevation-ring), var(--gog-elevation-5);
527
531
  --gog-toggle-thumb-shadow: var(--gog-elevation-1);
@@ -603,7 +607,6 @@
603
607
  --gog-field-slg-padding-y: var(--gog-space-20);
604
608
  --gog-field-slg-padding-x: var(--gog-space-40);
605
609
  --gog-field-float-label-over-gap: var(--gog-space-8);
606
- --gog-toast-gap: var(--gog-space-12);
607
610
  --gog-toast-stack-padding: var(--gog-space-16);
608
611
  /* L9 (docs/component-geometry.md, "D7 — taken"): the message wraps, so its cap is a measure —
609
612
  53ch at --gog-toast-message-font-size (14px), the nearest whole character to today's 400px so
@@ -682,7 +685,6 @@
682
685
  itself tinted with the accent. */
683
686
  --gog-accordion-hover-color: var(--gog-accordion-text-color);
684
687
  --gog-accordion-press-bg: var(--gog-border-color);
685
- --gog-accordion-hover-ring: var(--gog-accent-dim);
686
688
  /* Its own token. The header's `:focus-visible` outline read `--gog-accordion-hover-ring`, so a
687
689
  hover-weight colour was doing focus duty and failed 3:1 in all eleven themes. */
688
690
  --gog-accordion-focus-ring-color: var(--gog-accent-color);
@@ -788,6 +790,47 @@
788
790
  --gog-accordion-slg-chevron-size: 1.4em;
789
791
  --gog-accordion-slg-chevron-font-size: 1em;
790
792
 
793
+ /* ── Alert ─────────────────────────────────────────────────────────────────
794
+ A persistent, in-flow message. The severity is carried by a leading edge and the icon over
795
+ the ordinary surface, not by a tinted fill, and that is forced rather than chosen: the
796
+ library ships no per-status tint (`--gog-accent-pale` exists, `--gog-success-pale` does not),
797
+ and inventing one here would make the alert the twelfth place a theme restates its red.
798
+ `gog-toast` reached the same shape for the same reason. See `docs/alert.md`.
799
+
800
+ The five severity tokens below derive from the status colours rather than repeating them,
801
+ which is what lets a theme retune its red once. */
802
+ --gog-alert-bg: var(--gog-surface-color);
803
+ --gog-alert-color: var(--gog-text-color);
804
+ --gog-alert-heading-color: var(--gog-text-color);
805
+ --gog-alert-font-family: var(--gog-font-body);
806
+ --gog-alert-border-color: var(--gog-border-color);
807
+ --gog-alert-border-width: var(--gog-panel-border-width);
808
+ --gog-alert-border-style: var(--gog-panel-border-style);
809
+ /* The leading edge, which is the whole of the severity signal. Wider than the hairline around
810
+ it so it reads as a mark rather than as an uneven border — the control border tier doubled,
811
+ derived so a theme that thickens its controls thickens this with them. */
812
+ --gog-alert-edge-width: calc(var(--gog-control-border-width) * 2);
813
+ --gog-alert-radius: var(--gog-radius);
814
+ --gog-alert-padding-y: var(--gog-space-12);
815
+ --gog-alert-padding-x: var(--gog-space-24);
816
+ --gog-alert-gap: var(--gog-space-12);
817
+ /* Between the heading and the body — the tightest step on the scale, because they are one
818
+ block of text rather than two things in a row. */
819
+ --gog-alert-main-gap: var(--gog-space-4);
820
+ --gog-alert-icon-font-size: var(--gog-text-md);
821
+ /* A glyph in its own box: leading would push it off the centre it is placed on. */
822
+ --gog-alert-icon-line-height: var(--gog-line-height-none);
823
+ --gog-alert-heading-font-size: var(--gog-text-md);
824
+ --gog-alert-heading-font-weight: var(--gog-font-weight-semibold);
825
+ --gog-alert-heading-line-height: var(--gog-line-height-snug);
826
+ --gog-alert-body-font-size: var(--gog-text-sm);
827
+ --gog-alert-body-line-height: var(--gog-line-height-relaxed);
828
+ --gog-alert-accent-color: var(--gog-accent-color);
829
+ --gog-alert-success-color: var(--gog-success-color);
830
+ --gog-alert-danger-color: var(--gog-danger-color);
831
+ --gog-alert-warning-color: var(--gog-warning-color);
832
+ --gog-alert-info-color: var(--gog-info-color);
833
+
791
834
  /* ── Collapsible ───────────────────────────────────────────────────────────
792
835
  No portal, no owned markup — see utilities.css for the actual `.gog-collapsible__*`
793
836
  rules (they style content this component's consumer projects, which sits outside
@@ -831,6 +874,18 @@
831
874
  --gog-button-border-style: var(--gog-control-border-style);
832
875
  --gog-button-transition-duration: var(--gog-duration-base);
833
876
  --gog-button-focus-ring-width: var(--gog-focus-ring-width);
877
+ /* Its own colour. The ring read `--gog-button-variant-hover-bg` -- a *hover* fill doing focus
878
+ duty, the same defect eight other indicators had fixed in 21.12.0, and hidden here because
879
+ the value arrives through the variant layer rather than from a token this sweep could read.
880
+ It passed on `primary` and `secondary`, whose hover fill is a saturated accent, and failed
881
+ wherever the hover fill is a wash: `ghost` at 1.07-1.16:1 and the severity `outline`
882
+ combinations at 1.79-2.65:1, across four themes.
883
+
884
+ One colour, not one per variant. A focus ring's job is to be visible against the page the
885
+ button sits on, which does not change with the button's fill -- and the ring already sits a
886
+ pixel further out than the foundation's so it reads as separate even on a filled accent
887
+ button. That is the answer the other fourteen rings in the library already give. */
888
+ --gog-button-focus-ring-color: var(--gog-accent-color);
834
889
  /* One pixel further out than the foundation ring: a filled surface needs the extra air for
835
890
  the ring to read as separate from the fill. Written as the foundation plus that pixel
836
891
  rather than a flat 3px, so a theme that moves the ring moves this with it. */
@@ -1249,7 +1304,13 @@
1249
1304
  --gog-chip-pill-radius: 9999px;
1250
1305
  --gog-chip-remove-color: var(--gog-muted-text-color);
1251
1306
  --gog-chip-remove-hover-color: var(--gog-text-color);
1252
- --gog-chip-remove-scale: 1.1;
1307
+ /* The ring around the remove mark, as a ratio of the mark itself -- so `1` is the box the
1308
+ glyph occupies and anything above it is padding. It multiplied the button's *font-size*
1309
+ until 21.13.0, which is not the same thing: `gog-icon` draws at `--gog-icon-size` (1.2em) of
1310
+ that font-size, so a value of 1.1 produced a box 9% narrower than its own contents. A
1311
+ consumer who had overridden this gets a larger box than before at the same number; the
1312
+ number now means what the name says. */
1313
+ --gog-chip-remove-scale: 1;
1253
1314
  --gog-chip-avatar-inset-ratio: 0.9;
1254
1315
  --gog-chip-remove-inset-ratio: 0.85;
1255
1316
  --gog-chip-disabled-opacity: var(--gog-disabled-opacity);
@@ -1294,8 +1355,8 @@
1294
1355
  rem rather than five judgements. 1.125 is the ratio `lg` already held, the same way 1.5 was
1295
1356
  the avatar's, and it keeps what all five values agreed on: the mark a reader can press
1296
1357
  reads a shade heavier than the one that only decorates. No size moves by more than half a
1297
- pixel. The painted box stays `--gog-chip-remove-scale` of it -- see chip.component.scss,
1298
- which had to stop writing that multiplication in `em`. */
1358
+ pixel. The painted box is `--gog-chip-remove-scale` of the *mark* -- see chip.component.scss,
1359
+ which had to stop writing that multiplication against this token's own em basis. */
1299
1360
  --gog-chip-xsm-avatar-size: 1.5em;
1300
1361
  --gog-chip-xsm-icon-size: 1em;
1301
1362
  --gog-chip-xsm-remove-size: 1.125em;
@@ -1478,6 +1539,8 @@
1478
1539
  0px,
1479
1540
  calc(var(--gog-autocomplete-panel-radius) - var(--gog-autocomplete-options-padding))
1480
1541
  );
1542
+ /* The gap *inside* a row -- icon to label. Not the gap between rows; see the select's own
1543
+ note above the same token. */
1481
1544
  --gog-autocomplete-option-gap: var(--gog-space-12);
1482
1545
  --gog-autocomplete-option-color: var(--gog-text-color);
1483
1546
  --gog-autocomplete-option-hover-bg: var(--gog-hover-color);
@@ -1490,8 +1553,15 @@
1490
1553
  selected option has no tint behind it. The tint stays as the marker, alongside
1491
1554
  `aria-selected`. */
1492
1555
  --gog-autocomplete-option-selected-color: var(--gog-text-color);
1493
- /* Estimated row height fed into the panel's up/down placement math; not itself a real
1494
- layout property, so it has no effect unless the JS reads it. */
1556
+ /* The row height the panel's up/down placement math starts from. **A seed, not a claim**: the
1557
+ component measures a real row one frame after the panel renders and re-places if this
1558
+ disagreed, so this value only governs the very first open of an instance.
1559
+
1560
+ It used to say "an estimate ... no effect unless the JS reads it", and the JS did read it,
1561
+ for a layout decision. Measured against a rendered row it is wrong in all eleven shipped
1562
+ themes -- low in ten, by up to 8.38px -- and no static value can be right, since the row is
1563
+ padding plus leading plus border and a theme or `--gog-density` moves every term. Overriding
1564
+ this is still worth doing if your rows are very unusual: it buys the first frame. */
1495
1565
  --gog-autocomplete-option-height: 36px;
1496
1566
  --gog-autocomplete-empty-color: var(--gog-autocomplete-placeholder-color);
1497
1567
  --gog-autocomplete-empty-font-size: var(--gog-text-sm);
@@ -1724,6 +1794,8 @@
1724
1794
  --gog-multiselect-font-family: var(--gog-font-body);
1725
1795
  --gog-multiselect-label-font-family: var(--gog-font-heading);
1726
1796
  --gog-multiselect-gap: var(--gog-space-4);
1797
+ /* The gap *between* rows -- the only one of the three lists that declares one. The inside
1798
+ of a row is `--gog-multiselect-option-gap-inline`. */
1727
1799
  --gog-multiselect-option-gap: var(--gog-space-4);
1728
1800
  --gog-multiselect-options-padding: var(--gog-space-4);
1729
1801
  --gog-multiselect-label-color: var(--gog-accent-color);
@@ -1765,13 +1837,22 @@
1765
1837
  declared this token and this is the pair that did not. */
1766
1838
  --gog-multiselect-panel-radius: var(--gog-radius);
1767
1839
  --gog-multiselect-panel-max-height: 260px;
1768
- --gog-multiselect-panel-offset: var(--gog-space-4);
1840
+ /* Renamed from `--gog-multiselect-panel-offset` in 21.13.0; the old name is read as this
1841
+ one's fallback so a consumer override still resolves, and goes in 21.14.0. */
1842
+ --gog-multiselect-panel-gap: var(--gog-multiselect-panel-offset, var(--gog-space-4));
1769
1843
  --gog-multiselect-option-hover-bg: var(--gog-hover-color);
1770
1844
  --gog-multiselect-option-press-bg: var(--gog-border-color);
1771
1845
  --gog-multiselect-option-color: var(--gog-text-color);
1772
1846
  --gog-multiselect-option-gap-inline: var(--gog-space-12);
1773
- /* Estimated row height fed into the panel's up/down placement math; not itself a real
1774
- layout property, so it has no effect unless the JS reads it. */
1847
+ /* The row height the panel's up/down placement math starts from. **A seed, not a claim**: the
1848
+ component measures a real row one frame after the panel renders and re-places if this
1849
+ disagreed, so this value only governs the very first open of an instance.
1850
+
1851
+ It used to say "an estimate ... no effect unless the JS reads it", and the JS did read it,
1852
+ for a layout decision. Measured against a rendered row it is wrong in all eleven shipped
1853
+ themes -- low in ten, by up to 8.38px -- and no static value can be right, since the row is
1854
+ padding plus leading plus border and a theme or `--gog-density` moves every term. Overriding
1855
+ this is still worth doing if your rows are very unusual: it buys the first frame. */
1775
1856
  --gog-multiselect-option-height: 40px;
1776
1857
  /* Concentric with the panel, which paints `--gog-multiselect-panel-radius` and insets its rows
1777
1858
  by the list padding, so the row's corner is that radius minus that padding. It had subtracted
@@ -1783,9 +1864,7 @@
1783
1864
  --gog-multiselect-option-disabled-opacity: var(--gog-disabled-opacity);
1784
1865
  --gog-multiselect-option-transition-duration: var(--gog-duration-fast);
1785
1866
  --gog-multiselect-checkbox-border: var(--gog-accent-dim);
1786
- --gog-multiselect-checkbox-bg: var(--gog-background-color);
1787
1867
  --gog-multiselect-checkbox-checked-bg: var(--gog-accent-color);
1788
- --gog-multiselect-checkbox-checked-color: var(--gog-primary-color);
1789
1868
  --gog-multiselect-controls-gap: var(--gog-space-4);
1790
1869
  --gog-multiselect-controls-padding: var(--gog-space-8) var(--gog-space-12);
1791
1870
  --gog-multiselect-actions-gap: var(--gog-space-8);
@@ -1851,7 +1930,9 @@
1851
1930
  --gog-menu-font-family: var(--gog-font-body);
1852
1931
  --gog-menu-padding: var(--gog-space-4);
1853
1932
  --gog-menu-gap: var(--gog-space-4);
1854
- --gog-menu-offset: var(--gog-space-4);
1933
+ /* Gap between the trigger and the panel, matching the four other components that place one.
1934
+ Read by `menu.component.ts`, not by CSS -- a menu panel is positioned in script. */
1935
+ --gog-menu-panel-gap: var(--gog-space-4);
1855
1936
  --gog-menu-min-width: 180px;
1856
1937
  /* L8's viewport exception (docs/component-geometry.md, "D7 — taken"): a menu portals into
1857
1938
  <body> and floats over the viewport, not a container. Its items do not wrap (L9 does not
@@ -2126,7 +2207,8 @@
2126
2207
  --gog-select-panel-bg: var(--gog-surface-color);
2127
2208
  --gog-select-panel-shadow: var(--gog-panel-shadow);
2128
2209
  --gog-select-panel-max-height: 260px;
2129
- --gog-select-panel-offset: var(--gog-space-4);
2210
+ /* Renamed from `--gog-select-panel-offset` in 21.13.0; see the multiselect's note above. */
2211
+ --gog-select-panel-gap: var(--gog-select-panel-offset, var(--gog-space-4));
2130
2212
  /* The panel's own corner, and the reason it is not `--gog-select-radius`: that token shapes the
2131
2213
  *field*, and it shaped this box too until this release. One token painting two boxes meant a
2132
2214
  consumer rounding the field into a pill rounded the dropdown into one as well, and the filter
@@ -2143,6 +2225,9 @@
2143
2225
  --gog-select-option-press-bg: var(--gog-border-color);
2144
2226
  --gog-select-option-selected-color: var(--gog-accent-color);
2145
2227
  --gog-select-option-color: var(--gog-text-color);
2228
+ /* The gap *inside* a row -- check mark to label. Not the gap between rows: the options
2229
+ container declares none, and the placement estimate measures the container rather than
2230
+ reading this, which it used to do on the strength of the name alone. */
2146
2231
  --gog-select-option-gap: var(--gog-space-12);
2147
2232
  /* Concentric with the panel, which insets its rows by the list padding above. Derived rather
2148
2233
  than restated, so it stays true once `--gog-density` moves the padding. */
@@ -2150,8 +2235,15 @@
2150
2235
  0px,
2151
2236
  calc(var(--gog-select-panel-radius) - var(--gog-select-options-padding))
2152
2237
  );
2153
- /* Estimated row height fed into the panel's up/down placement math; not itself a real
2154
- layout property, so it has no effect unless the JS reads it. */
2238
+ /* The row height the panel's up/down placement math starts from. **A seed, not a claim**: the
2239
+ component measures a real row one frame after the panel renders and re-places if this
2240
+ disagreed, so this value only governs the very first open of an instance.
2241
+
2242
+ It used to say "an estimate ... no effect unless the JS reads it", and the JS did read it,
2243
+ for a layout decision. Measured against a rendered row it is wrong in all eleven shipped
2244
+ themes -- low in ten, by up to 8.38px -- and no static value can be right, since the row is
2245
+ padding plus leading plus border and a theme or `--gog-density` moves every term. Overriding
2246
+ this is still worth doing if your rows are very unusual: it buys the first frame. */
2155
2247
  --gog-select-option-height: 40px;
2156
2248
  --gog-select-option-disabled-opacity: var(--gog-disabled-opacity);
2157
2249
  --gog-select-option-transition-duration: var(--gog-duration-fast);
@@ -2240,7 +2332,12 @@
2240
2332
  --gog-slider-thumb-border: var(--gog-background-color);
2241
2333
  --gog-slider-thumb-border-width: var(--gog-control-border-width);
2242
2334
  --gog-slider-thumb-radius: 50%;
2243
- --gog-slider-thumb-shadow: var(--gog-accent-pale);
2335
+ /* A colour, not a shadow: the thumb's glow ring composes it as
2336
+ `0 0 var(--gog-slider-thumb-glow-size) <this>`. Renamed from
2337
+ `--gog-slider-thumb-shadow` in 21.13.0, which is the only token of the 31 the
2338
+ elevation audit classified whose name was simply wrong; the old name is read as this
2339
+ one's fallback and goes in 21.14.0. */
2340
+ --gog-slider-thumb-glow-color: var(--gog-slider-thumb-shadow, var(--gog-accent-pale));
2244
2341
  --gog-slider-thumb-glow-size: 6px;
2245
2342
  --gog-slider-focus-ring: var(--gog-accent-pale);
2246
2343
  --gog-slider-focus-ring-width: var(--gog-focus-ring-width);
@@ -2304,6 +2401,9 @@
2304
2401
  --gog-table-accent-color: var(--gog-accent-color);
2305
2402
  --gog-table-accent-bright: var(--gog-accent-bright);
2306
2403
  --gog-table-hover-bg: var(--gog-accent-pale);
2404
+ /* Only an `interactiveRows` row presses; a plain row is not a control and takes no state
2405
+ beyond hover. Same value the three option lists use, for the same reason. */
2406
+ --gog-table-row-press-bg: var(--gog-border-color);
2307
2407
  /* Selected rows keep this tint through hover, so hovering one never reads as clearing it. */
2308
2408
  --gog-table-selected-bg: var(--gog-accent-pale);
2309
2409
  --gog-table-muted-color: var(--gog-muted-text-color);
@@ -2469,10 +2569,16 @@
2469
2569
  --gog-toast-color: var(--gog-text-color);
2470
2570
  --gog-toast-border: var(--gog-accent-color);
2471
2571
  --gog-toast-icon-color: var(--gog-accent-color);
2572
+ /* Each type reads its own role. Two of the four did not until 21.13.0: `warning` read
2573
+ `--gog-accent-bright` and `info` read `--gog-accent-color`, which is also what a *typeless*
2574
+ toast paints -- so an info toast was pixel-identical to a plain one, and a warning toast was
2575
+ the same hue a shade brighter. This colour is the whole signal: it paints the leading stripe,
2576
+ the icon and the countdown bar (see toast.component.scss's `--toast-border`). Three of the
2577
+ five states were the accent. */
2472
2578
  --gog-toast-success-color: var(--gog-success-color);
2473
2579
  --gog-toast-error-color: var(--gog-danger-color);
2474
- --gog-toast-warning-color: var(--gog-accent-bright);
2475
- --gog-toast-info-color: var(--gog-accent-color);
2580
+ --gog-toast-warning-color: var(--gog-warning-color);
2581
+ --gog-toast-info-color: var(--gog-info-color);
2476
2582
  --gog-toast-accent-width: 4px;
2477
2583
  --gog-toast-padding: var(--gog-space-12) var(--gog-space-16);
2478
2584
  --gog-toast-radius: 0px;
@@ -2640,7 +2746,6 @@
2640
2746
  :root,
2641
2747
  [data-theme] {
2642
2748
  --gog-accordion-hover-bg: color-mix(in srgb, var(--gog-accent-dim) 10%, transparent);
2643
- --gog-accordion-hover-ring: color-mix(in srgb, var(--gog-accent-color) 30%, transparent);
2644
2749
  --gog-accordion-body-bg: color-mix(in srgb, black 6%, transparent);
2645
2750
  --gog-button-primary-hover-shadow: 0 0 16px
2646
2751
  color-mix(in srgb, var(--gog-accent-bright) 45%, transparent);
@@ -2793,7 +2898,7 @@
2793
2898
  --gog-skeleton-base: color-mix(in srgb, var(--gog-border-color) 40%, var(--gog-surface-color));
2794
2899
  --gog-skeleton-shine: color-mix(in srgb, var(--gog-skeleton-base), white 35%);
2795
2900
  --gog-slider-track-bg: color-mix(in srgb, var(--gog-text-color) 30%, var(--gog-border-color));
2796
- --gog-slider-thumb-shadow: color-mix(in srgb, var(--gog-accent-bright) 40%, transparent);
2901
+ --gog-slider-thumb-glow-color: color-mix(in srgb, var(--gog-accent-bright) 40%, transparent);
2797
2902
  --gog-slider-focus-ring: color-mix(in srgb, var(--gog-accent-color) 30%, transparent);
2798
2903
  --gog-toggle-track-off-bg: color-mix(in srgb, var(--gog-text-color) 18%, transparent);
2799
2904
  }
@@ -0,0 +1 @@
1
+ export { CalendarComponent, DatepickerComponent, GogCalendarDay, GogDatepickerValue } from '@guildofgleks/ui';
@@ -0,0 +1 @@
1
+ export { ConfirmDialogData, ConfirmationDialogComponent, DIALOG_DATA, DIALOG_REF, DialogComponent, DialogConfig, DialogHandle, DialogRef, DialogService, OpenDialog } from '@guildofgleks/ui';