@oicl/openbridge-webcomponents-full-bundle 2.0.0-next.83 → 2.0.0-next.85

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.
Files changed (36) hide show
  1. package/bundle/openbridge-webcomponents.bundle.js +1223 -493
  2. package/bundle/openbridge-webcomponents.bundle.js.map +1 -1
  3. package/custom-elements.json +642 -196
  4. package/dist/components/tab-item/tab-item.css.js +8 -1
  5. package/dist/components/tab-item/tab-item.css.js.map +1 -1
  6. package/dist/components/tab-item/tab-item.d.ts +44 -0
  7. package/dist/components/tab-item/tab-item.d.ts.map +1 -1
  8. package/dist/components/tab-item/tab-item.js +44 -25
  9. package/dist/components/tab-item/tab-item.js.map +1 -1
  10. package/dist/components/tab-row/tab-row.d.ts +23 -9
  11. package/dist/components/tab-row/tab-row.d.ts.map +1 -1
  12. package/dist/components/tab-row/tab-row.js +24 -7
  13. package/dist/components/tab-row/tab-row.js.map +1 -1
  14. package/dist/components/textbox/textbox.css.js +29 -5
  15. package/dist/components/textbox/textbox.css.js.map +1 -1
  16. package/dist/components/textbox/textbox.d.ts +5 -0
  17. package/dist/components/textbox/textbox.d.ts.map +1 -1
  18. package/dist/components/textbox/textbox.js +6 -1
  19. package/dist/components/textbox/textbox.js.map +1 -1
  20. package/dist/navigation-instruments/readout-list-item/readout-list-item.css.js +611 -230
  21. package/dist/navigation-instruments/readout-list-item/readout-list-item.css.js.map +1 -1
  22. package/dist/navigation-instruments/readout-list-item/readout-list-item.d.ts +280 -61
  23. package/dist/navigation-instruments/readout-list-item/readout-list-item.d.ts.map +1 -1
  24. package/dist/navigation-instruments/readout-list-item/readout-list-item.js +529 -247
  25. package/dist/navigation-instruments/readout-list-item/readout-list-item.js.map +1 -1
  26. package/package.json +1 -1
  27. package/src/components/tab-item/tab-item.css +8 -1
  28. package/src/components/tab-item/tab-item.stories.ts +30 -0
  29. package/src/components/tab-item/tab-item.ts +89 -31
  30. package/src/components/tab-row/tab-row.stories.ts +20 -10
  31. package/src/components/tab-row/tab-row.ts +54 -19
  32. package/src/components/textbox/textbox.css +27 -5
  33. package/src/components/textbox/textbox.ts +6 -0
  34. package/src/navigation-instruments/readout-list-item/readout-list-item.css +505 -238
  35. package/src/navigation-instruments/readout-list-item/readout-list-item.stories.ts +1604 -356
  36. package/src/navigation-instruments/readout-list-item/readout-list-item.ts +792 -295
@@ -28,6 +28,11 @@
28
28
  justify-content: var(--alignment-justify, flex-end);
29
29
  height: var(--height);
30
30
  overflow: hidden;
31
+ /* Opt-in: animate a `size` change (height + font-size below). Defaults to 0s
32
+ (instant, current behavior) so existing usages and snapshots are unchanged;
33
+ a consumer sets `--obc-textbox-size-transition` (e.g. 300ms) to animate the
34
+ swap — used by readout-list-item's setpoint flip-flop. */
35
+ transition: height var(--obc-textbox-size-transition, 0s) ease;
31
36
  }
32
37
 
33
38
  /* The spacer must share the content's exact font metrics so the width it
@@ -38,6 +43,8 @@
38
43
  font-size: calc(var(--height) - 2 * var(--padding));
39
44
  font-size-adjust: cap-height 1;
40
45
  white-space: nowrap;
46
+ /* Opt-in size animation — see `.inner-wrapper`. */
47
+ transition: font-size var(--obc-textbox-size-transition, 0s) ease;
41
48
  }
42
49
 
43
50
  .content {
@@ -45,23 +52,38 @@
45
52
  text-box-edge: cap alphabetic;
46
53
  }
47
54
 
48
- .wrapper.size-xs .inner-wrapper {
55
+ /* Opt-in numeric mode: fixed-width lining numerals so values stay
56
+ column-aligned and width-stable. Applied to the spacer too so the reserved
57
+ width matches the rendered digits exactly. */
58
+ .wrapper.tabular-nums .content,
59
+ .wrapper.tabular-nums .length-spacer {
60
+ font-variant-numeric: tabular-nums lining-nums;
61
+ font-feature-settings:
62
+ "ss04" on,
63
+ "tnum" on,
64
+ "lnum" on;
65
+ }
66
+
67
+ /* Size override is set on `.wrapper` (not `.inner-wrapper`) so it reaches BOTH
68
+ the visible `.content` AND the sibling `.length-spacer`; otherwise the spacer
69
+ keeps the default (m) `--height` and reserves width at the wrong font size. */
70
+ .wrapper.size-xs {
49
71
  --height: 16px;
50
72
  }
51
73
 
52
- .wrapper.size-s .inner-wrapper {
74
+ .wrapper.size-s {
53
75
  --height: 20px;
54
76
  }
55
77
 
56
- .wrapper.size-m .inner-wrapper {
78
+ .wrapper.size-m {
57
79
  --height: 24px;
58
80
  }
59
81
 
60
- .wrapper.size-l .inner-wrapper {
82
+ .wrapper.size-l {
61
83
  --height: 32px;
62
84
  }
63
85
 
64
- .wrapper.size-xl .inner-wrapper {
86
+ .wrapper.size-xl {
65
87
  --height: 40px;
66
88
  }
67
89
 
@@ -41,6 +41,10 @@ export enum ObcTextboxFontWeight {
41
41
  * cap heights of 8 / 12 / 16 / 24 / 32 px so text aligns to a predictable
42
42
  * grid.
43
43
  * - **Font weight:** `regular` (default), `semibold`, `bold`.
44
+ * - **Tabular numbers:** `tabularNums` (default off) renders digits as
45
+ * fixed-width, lining numerals (`tabular-nums lining-nums` + the `ss04`/`tnum`/
46
+ * `lnum` features) so numeric values stay column-aligned and stable in width
47
+ * as they update – use it for readouts and other live numeric displays.
44
48
  * - **Alignment:** `left`, `center`, `right` (default) – positions the text
45
49
  * within the box's width when the box is wider than the content.
46
50
  * - **Reserved width:** content placed in the `length` slot reserves a minimum
@@ -70,6 +74,7 @@ export class ObcTextbox extends LitElement {
70
74
  @property({type: String}) size: ObcTextboxSize = ObcTextboxSize.m;
71
75
  @property({type: String}) fontWeight: ObcTextboxFontWeight =
72
76
  ObcTextboxFontWeight.regular;
77
+ @property({type: Boolean}) tabularNums = false;
73
78
 
74
79
  override render() {
75
80
  return html`
@@ -79,6 +84,7 @@ export class ObcTextbox extends LitElement {
79
84
  [`alignment-${this.alignment}`]: true,
80
85
  [`size-${this.size}`]: true,
81
86
  [`font-weight-${this.fontWeight}`]: true,
87
+ 'tabular-nums': this.tabularNums,
82
88
  })}
83
89
  >
84
90
  <div class="inner-wrapper">