@oicl/openbridge-webcomponents-full-bundle 2.0.0-next.143 → 2.0.0-next.144

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 (33) hide show
  1. package/bundle/openbridge-webcomponents.bundle.js +129 -28
  2. package/bundle/openbridge-webcomponents.bundle.js.map +1 -1
  3. package/custom-elements.json +53 -19
  4. package/dist/components/app-button/app-button.css.js +56 -0
  5. package/dist/components/app-button/app-button.css.js.map +1 -1
  6. package/dist/integration-systems/integration-app-bar/integration-app-bar.css.js +12 -1
  7. package/dist/integration-systems/integration-app-bar/integration-app-bar.css.js.map +1 -1
  8. package/dist/integration-systems/integration-app-bar/integration-app-bar.d.ts +2 -2
  9. package/dist/integration-systems/integration-app-bar/integration-app-bar.d.ts.map +1 -1
  10. package/dist/integration-systems/integration-app-bar/integration-app-bar.js +1 -21
  11. package/dist/integration-systems/integration-app-bar/integration-app-bar.js.map +1 -1
  12. package/dist/navigation-instruments/readout/readout.d.ts +11 -2
  13. package/dist/navigation-instruments/readout/readout.d.ts.map +1 -1
  14. package/dist/navigation-instruments/readout/readout.js +18 -0
  15. package/dist/navigation-instruments/readout/readout.js.map +1 -1
  16. package/dist/navigation-instruments/readout-list-item/readout-list-item.css.js +25 -0
  17. package/dist/navigation-instruments/readout-list-item/readout-list-item.css.js.map +1 -1
  18. package/dist/navigation-instruments/readout-list-item/readout-list-item.d.ts +20 -4
  19. package/dist/navigation-instruments/readout-list-item/readout-list-item.d.ts.map +1 -1
  20. package/dist/navigation-instruments/readout-list-item/readout-list-item.js +18 -6
  21. package/dist/navigation-instruments/readout-list-item/readout-list-item.js.map +1 -1
  22. package/package.json +1 -1
  23. package/src/components/app-button/app-button.css +2 -0
  24. package/src/components/app-button/app-button.stories.ts +26 -0
  25. package/src/integration-systems/integration-app-bar/integration-app-bar-sizing.stories.ts +130 -0
  26. package/src/integration-systems/integration-app-bar/integration-app-bar.css +11 -1
  27. package/src/integration-systems/integration-app-bar/integration-app-bar.ts +3 -27
  28. package/src/navigation-instruments/readout/readout.stories.ts +57 -4
  29. package/src/navigation-instruments/readout/readout.ts +28 -1
  30. package/src/navigation-instruments/readout-list/readout-list.stories.ts +62 -2
  31. package/src/navigation-instruments/readout-list-item/readout-list-item.css +21 -0
  32. package/src/navigation-instruments/readout-list-item/readout-list-item.stories.ts +56 -3
  33. package/src/navigation-instruments/readout-list-item/readout-list-item.ts +37 -19
@@ -49894,6 +49894,31 @@ obc-readout-block {
49894
49894
  gap: var(--global-size-spacing-target-padding);
49895
49895
  }
49896
49896
 
49897
+ /* leading-src-inline: the source follows the label on one line, bottom-aligned
49898
+ so the \`xs\` source and the label share a cap baseline. The label↔source gap
49899
+ reuses the tier's content gap (8px, matching Figma 46596:102880). */
49900
+
49901
+ .stacking-leading-src-inline .label-stack {
49902
+ flex-direction: row;
49903
+ align-items: flex-end;
49904
+ }
49905
+
49906
+ .size-small.stacking-leading-src-inline .label-stack {
49907
+ gap: var(
49908
+ --instrument-components-readout-new-list-item-regular-content-container-gap
49909
+ );
49910
+ }
49911
+
49912
+ .size-medium.stacking-leading-src-inline .label-stack {
49913
+ gap: var(
49914
+ --instrument-components-readout-new-list-item-medium-content-container-gap
49915
+ );
49916
+ }
49917
+
49918
+ .size-large.stacking-leading-src-inline .label-stack {
49919
+ gap: var(--instrument-components-readout-new-list-item-large-content-gap);
49920
+ }
49921
+
49897
49922
  /* ---------- Data quality ----------
49898
49923
  * Orthogonal to the alert frame — both can apply at once. */
49899
49924
 
@@ -50102,9 +50127,21 @@ let ObcReadoutListItem = class extends i$4 {
50102
50127
  get resolvedStacking() {
50103
50128
  return this.stacking ?? "trailing-unit";
50104
50129
  }
50130
+ /** Both leading-src stackings move the source into the label stack. */
50131
+ get hasLeadingSrc() {
50132
+ const stacking = this.resolvedStacking;
50133
+ return stacking === "leading-src" || stacking === "leading-src-inline";
50134
+ }
50105
50135
  get resolvedPriority() {
50106
50136
  return this.priority ?? "regular";
50107
50137
  }
50138
+ /**
50139
+ * Whether a unit box follows the value: a unit, or a reserver alone — the
50140
+ * blank reserved column keeps a unit-less row aligned with its neighbours.
50141
+ */
50142
+ get hasTrailingUnitBox() {
50143
+ return this.resolvedStacking !== "leading-unit" && (Boolean(this.unit) || Boolean(this.unitOptions?.spaceReserver));
50144
+ }
50108
50145
  get resolvedFractionDigits() {
50109
50146
  return this.fractionDigits ?? 0;
50110
50147
  }
@@ -50333,13 +50370,12 @@ let ObcReadoutListItem = class extends i$4 {
50333
50370
  if (!this.hasValue) {
50334
50371
  return A;
50335
50372
  }
50336
- const hasTrailingUnit = Boolean(this.unit) && this.resolvedStacking !== "leading-unit";
50337
50373
  if ((this.hasDegree ?? false) && !this.off) {
50338
50374
  return this.renderDegreeGlyph(this.valueSize, {
50339
50375
  enhanced: this.rowEnhanced
50340
50376
  });
50341
50377
  }
50342
- if (hasTrailingUnit) {
50378
+ if (this.hasTrailingUnitBox) {
50343
50379
  return b`<span class="value-unit-gap" aria-hidden="true"></span>`;
50344
50380
  }
50345
50381
  return A;
@@ -50509,7 +50545,7 @@ let ObcReadoutListItem = class extends i$4 {
50509
50545
  renderLabelContainer() {
50510
50546
  const stacking = this.resolvedStacking;
50511
50547
  const showLeadingUnit = stacking === "leading-unit" && Boolean(this.unit);
50512
- const showLeadingSrc = stacking === "leading-src" && Boolean(this.src);
50548
+ const showLeadingSrc = this.hasLeadingSrc && Boolean(this.src);
50513
50549
  return b`
50514
50550
  <div class="label-container" part="label-container">
50515
50551
  ${this.hasLeadingIcon ? b`<span class="leading-icon" aria-hidden="true"
@@ -50532,12 +50568,12 @@ let ObcReadoutListItem = class extends i$4 {
50532
50568
  `;
50533
50569
  }
50534
50570
  renderTrailingUnit() {
50535
- if (this.resolvedStacking === "leading-unit" || !this.unit) {
50571
+ if (!this.hasTrailingUnitBox) {
50536
50572
  return A;
50537
50573
  }
50538
50574
  return this.renderTextbox(
50539
50575
  "unit",
50540
- this.unit,
50576
+ this.unit ?? "",
50541
50577
  this.unitOptions?.spaceReserver
50542
50578
  );
50543
50579
  }
@@ -50584,7 +50620,7 @@ let ObcReadoutListItem = class extends i$4 {
50584
50620
  `;
50585
50621
  }
50586
50622
  renderTrailingSource() {
50587
- if (this.resolvedStacking === "leading-src" || !this.src) {
50623
+ if (this.hasLeadingSrc || !this.src) {
50588
50624
  return A;
50589
50625
  }
50590
50626
  return b`
@@ -55301,6 +55337,7 @@ let ObcReadout = class extends i$4 {
55301
55337
  this.showDebugOverlay = false;
55302
55338
  this.deferredSetpointHidePhase = ReadoutBlockHidePhase.none;
55303
55339
  this.hasCompletedFirstUpdate = false;
55340
+ this.hasWarnedHorizontalSize = false;
55304
55341
  this.sourcePickerContentVisible = false;
55305
55342
  this.sourcePickerOptions = [];
55306
55343
  this.onWindowPointerDown = (event) => {
@@ -56050,6 +56087,23 @@ let ObcReadout = class extends i$4 {
56050
56087
  super.willUpdate(changed);
56051
56088
  assertReadoutValueType("obc-readout", this.value, this.valueType);
56052
56089
  assertReadoutFractionDigits("obc-readout", this.fractionDigits);
56090
+ this.warnHorizontalSizeIgnored();
56091
+ }
56092
+ /**
56093
+ * A horizontal readout discards any `size` but `large` (see `resolvedSize`).
56094
+ * A silent discard is indistinguishable from a bug to a consumer, so each
56095
+ * offending element says so once and logs itself for locating (#1182).
56096
+ * A removed `size` attribute arrives as `null` and counts as unset.
56097
+ */
56098
+ warnHorizontalSizeIgnored() {
56099
+ if (this.hasWarnedHorizontalSize || !this.isHorizontal || !this.size || this.size === ReadoutSize.large) {
56100
+ return;
56101
+ }
56102
+ this.hasWarnedHorizontalSize = true;
56103
+ console.warn(
56104
+ `[obc-readout] size="${this.size}" is ignored when direction="horizontal": the horizontal arrangement exists in the large tier only. Remove the size, or use direction="vertical" for the small / medium tiers.`,
56105
+ this
56106
+ );
56053
56107
  }
56054
56108
  updated(changed) {
56055
56109
  super.updated(changed);
@@ -86721,6 +86775,62 @@ const compentStyle$P = i$7`* {
86721
86775
  "ss04" on;
86722
86776
  }
86723
86777
 
86778
+ .wrapper.integration {
86779
+ border-color: var(--integration-flat-enabled-border-color);
86780
+ background-color: var(--integration-flat-enabled-background-color);
86781
+ border-width: 1px;
86782
+ border-style: solid;
86783
+ cursor: pointer;
86784
+ --base-border-color: var(--integration-flat-enabled-border-color);
86785
+ --base-background-color: var(--integration-flat-enabled-background-color);
86786
+ }
86787
+
86788
+ .wrapper.integration:focus {
86789
+ outline: none;
86790
+ }
86791
+
86792
+ .wrapper.integration.activated {
86793
+ border-color: var(--integration-flat-activated-border-color);
86794
+ background-color: var(--integration-flat-activated-background-color);
86795
+ --base-border-color: var(--integration-flat-activated-border-color);
86796
+ --base-background-color: var(--integration-flat-activated-background-color);
86797
+ }
86798
+
86799
+ @media (hover:hover) {
86800
+
86801
+ .wrapper.integration:hover {
86802
+ border-color: color-mix(in srgb, var(--integration-flat-hover-border-color) calc(var(--obc-can-hover) * 100%), var(--base-border-color));
86803
+ background-color: color-mix(in srgb, var(--integration-flat-hover-background-color) calc(var(--obc-can-hover) * 100%), var(--base-background-color));
86804
+ }
86805
+ }
86806
+
86807
+ .wrapper.integration:active {
86808
+ border-color: var(--integration-flat-pressed-border-color);
86809
+ background-color: var(--integration-flat-pressed-background-color);
86810
+ }
86811
+
86812
+ .wrapper.integration:focus-visible {
86813
+ outline-color: var(--border-focus-color);
86814
+ outline-width: var(--global-size-spacing-border-weight-focusframe);
86815
+ outline-style: solid;
86816
+ border-color: var(--container-global-color);
86817
+ z-index: 1;
86818
+ }
86819
+
86820
+ .wrapper.integration:disabled {
86821
+ border-color: var(--integration-flat-disabled-border-color);
86822
+ background-color: var(--integration-flat-disabled-background-color);
86823
+ cursor: not-allowed;
86824
+ color: var(--integration-on-flat-disabled-color) !important;
86825
+ }
86826
+
86827
+ .wrapper.integration.disabled {
86828
+ border-color: var(--integration-flat-disabled-border-color);
86829
+ background-color: var(--integration-flat-disabled-background-color);
86830
+ cursor: not-allowed;
86831
+ color: var(--integration-on-flat-disabled-color) !important;
86832
+ }
86833
+
86724
86834
  :is(.wrapper.integration .icon-wrapper) {
86725
86835
  border-color: var(--integration-normal-enabled-border-color);
86726
86836
  background-color: var(--integration-normal-enabled-background-color);
@@ -216921,10 +217031,21 @@ const compentStyle$j = i$7`* {
216921
217031
  }
216922
217032
 
216923
217033
  .wrapper .center {
216924
- display: flex;
217034
+ display: grid;
217035
+ grid-auto-flow: column;
217036
+ grid-auto-columns: minmax(
217037
+ var(--obc-integration-app-bar-app-width, max-content),
217038
+ 1fr
217039
+ );
216925
217040
  gap: var(--app-components-app-menu-app-button-spacing);
216926
217041
  justify-content: center;
216927
217042
  }
217043
+
217044
+ /* Svelte wrappers add a slot container that must not become a grid item. */
217045
+
217046
+ slot[name="apps"]::slotted(:not(obc-app-button)) {
217047
+ display: contents;
217048
+ }
216928
217049
  `;
216929
217050
  var __getOwnPropDesc$11 = Object.getOwnPropertyDescriptor;
216930
217051
  var __decorateClass$11 = (decorators, target, key, kind) => {
@@ -216940,32 +217061,12 @@ let ObcIntegrationAppBar = class extends i$4 {
216940
217061
  <div class="wrapper">
216941
217062
  <div class="left-side"></div>
216942
217063
  <div class="center">
216943
- <slot name="apps" @slotchange=${this.handleAppsSlotChange}></slot>
217064
+ <slot name="apps"></slot>
216944
217065
  </div>
216945
217066
  <div class="right-side"></div>
216946
217067
  </div>
216947
217068
  `;
216948
217069
  }
216949
- handleAppsSlotChange(event) {
216950
- const slot = event.target;
216951
- const buttons = slot.assignedElements();
216952
- if (buttons.length === 0) {
216953
- return;
216954
- }
216955
- for (const btn of buttons) {
216956
- btn.style.width = "";
216957
- }
216958
- requestAnimationFrame(() => {
216959
- const maxWidth = Math.max(
216960
- ...buttons.map((btn) => btn.getBoundingClientRect().width)
216961
- );
216962
- if (maxWidth > 0) {
216963
- for (const btn of buttons) {
216964
- btn.style.width = `${maxWidth}px`;
216965
- }
216966
- }
216967
- });
216968
- }
216969
217070
  };
216970
217071
  ObcIntegrationAppBar.styles = r$7(compentStyle$j);
216971
217072
  ObcIntegrationAppBar = __decorateClass$11([