@webority/theme 0.6.7 → 0.6.8

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webority/theme",
3
- "version": "0.6.7",
3
+ "version": "0.6.8",
4
4
  "description": "Webority shared design system — Bootstrap 5.3 SCSS overrides, --wui-* tokens, and shared component CSS. The single source of brand chrome for React portals and Razor sites.",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "publishConfig": {
@@ -34,4 +34,19 @@
34
34
  @import "wui/disclosure";
35
35
  @import "wui/display";
36
36
  @import "wui/flow";
37
+
38
+ // Flags belong here because <wui-phone> cannot render without them.
39
+ //
40
+ // The 245 `.wui-flag-*` rules live in _flags.scss, and this entry did not pull it in — so a
41
+ // product following the documented chain (variables -> bootstrap -> tokens -> components ->
42
+ // wui-components) got AppPhoneNumberInput with an empty grey box where every flag should be,
43
+ // and nothing failing anywhere to point at the cause. The component shipped; its styling did
44
+ // not. That is the same escape as th.sortable and .u-name, and the fix is the same principle:
45
+ // a component and the CSS it requires travel together.
46
+ //
47
+ // It is not free — roughly 183KB raw, 45KB gzipped, mostly inlined SVG. A product that never
48
+ // renders a phone field can skip it by importing the `wui/*` partials above individually
49
+ // instead of this aggregate; that is the deliberate opt-out, and it is a choice rather than
50
+ // an accident.
51
+ @import "flags";
37
52
  @import "wui/shell";
@@ -475,12 +475,17 @@
475
475
  gap: 4px;
476
476
  margin-bottom: 6px;
477
477
  }
478
+ // The seven-column calendar. This is the grid the day cells actually live in.
479
+ //
480
+ // It was a COLUMN FLEX wrapping a `.datepicker-row` that nothing ever emitted: the element
481
+ // writes its day buttons flat into this container. So each day became a full-width flex item
482
+ // — `width: 100%` of 274px, then `aspect-ratio: 1` squared it — giving 274x274 cells and a
483
+ // 9,622px popup. Every date picker in the library, not just the one inside a modal where a
484
+ // tester happened to notice it.
485
+ //
486
+ // It survived because the interaction tests only ever asserted that the popup OPENS. Opening
487
+ // a calendar you cannot click a day in is not opening it.
478
488
  .datepicker-grid {
479
- display: flex;
480
- flex-direction: column;
481
- gap: 4px;
482
- }
483
- .datepicker-row {
484
489
  display: grid;
485
490
  grid-template-columns: repeat(7, 1fr);
486
491
  gap: 4px;
@@ -285,10 +285,16 @@
285
285
  // 360px column to 854px and pushed the table into horizontal scroll. It trades row height for
286
286
  // column geometry. A line clamp leaves the text wrappable, so min-content stays one word.
287
287
  //
288
- // Opt-in rather than default because the library styles `.u-name` but never emits it — it is
289
- // applied by consumers, and `-webkit-box` stacks element children vertically. A product that
290
- // composes a name with an inline badge would get the badge under the name. Flip this to the
291
- // default once the composition is known to be text-only everywhere.
288
+ // DEFAULT inside a ledger, opt-in class elsewhere.
289
+ //
290
+ // It shipped opt-in because `-webkit-box` stacks element children, and the library styles
291
+ // `.u-name` without ever emitting it — so a product composing a name with an inline badge
292
+ // would have got the badge under the name. A consumer then audited all 13 of their usages:
293
+ // every one has a bare text expression as its only child, and the badges and sublines are
294
+ // SIBLINGS inside `.u-meta`, outside `.u-name` entirely. The caution was right to have and
295
+ // does not apply, so the ledger case — where a wrapped name breaks row rhythm down the whole
296
+ // table — gets it without anyone opting in.
297
+ .table-ledger .u-name,
292
298
  .u-name-clamp {
293
299
  display: -webkit-box;
294
300
  -webkit-line-clamp: 1;