@oicl/openbridge-webcomponents-full-bundle 2.0.0-next.96 → 2.0.0-next.98

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 (167) hide show
  1. package/bundle/openbridge-webcomponents.bundle.js +39 -124
  2. package/bundle/openbridge-webcomponents.bundle.js.map +1 -1
  3. package/custom-elements.json +343 -142
  4. package/dist/ar/poi/poi.d.ts +4 -2
  5. package/dist/ar/poi/poi.d.ts.map +1 -1
  6. package/dist/ar/poi/poi.js.map +1 -1
  7. package/dist/ar/poi-layer/poi-layer.d.ts +1 -0
  8. package/dist/ar/poi-layer/poi-layer.d.ts.map +1 -1
  9. package/dist/ar/poi-layer/poi-layer.js.map +1 -1
  10. package/dist/ar/poi-object/poi-object-aton.d.ts +1 -0
  11. package/dist/ar/poi-object/poi-object-aton.d.ts.map +1 -1
  12. package/dist/ar/poi-object/poi-object-aton.js.map +1 -1
  13. package/dist/automation/automation-badge/automation-badge.d.ts +2 -0
  14. package/dist/automation/automation-badge/automation-badge.d.ts.map +1 -1
  15. package/dist/automation/automation-badge/automation-badge.js.map +1 -1
  16. package/dist/automation/automation-button/automation-button.d.ts +9 -0
  17. package/dist/automation/automation-button/automation-button.d.ts.map +1 -1
  18. package/dist/automation/automation-button/automation-button.js.map +1 -1
  19. package/dist/automation/automation-input-modal/automation-input-modal.d.ts +4 -0
  20. package/dist/automation/automation-input-modal/automation-input-modal.d.ts.map +1 -1
  21. package/dist/automation/automation-input-modal/automation-input-modal.js.map +1 -1
  22. package/dist/automation/automation-tank/automation-tank.css.js +8 -87
  23. package/dist/automation/automation-tank/automation-tank.css.js.map +1 -1
  24. package/dist/automation/automation-tank/automation-tank.d.ts +13 -33
  25. package/dist/automation/automation-tank/automation-tank.d.ts.map +1 -1
  26. package/dist/automation/automation-tank/automation-tank.js +12 -28
  27. package/dist/automation/automation-tank/automation-tank.js.map +1 -1
  28. package/dist/building-blocks/alert-list/alert-list.d.ts +4 -0
  29. package/dist/building-blocks/alert-list/alert-list.d.ts.map +1 -1
  30. package/dist/building-blocks/alert-list/alert-list.js.map +1 -1
  31. package/dist/building-blocks/bar-horizontal/bar-horizontal.d.ts +2 -0
  32. package/dist/building-blocks/bar-horizontal/bar-horizontal.d.ts.map +1 -1
  33. package/dist/building-blocks/bar-horizontal/bar-horizontal.js.map +1 -1
  34. package/dist/building-blocks/bar-vertical/bar-vertical.d.ts +2 -0
  35. package/dist/building-blocks/bar-vertical/bar-vertical.d.ts.map +1 -1
  36. package/dist/building-blocks/bar-vertical/bar-vertical.js.map +1 -1
  37. package/dist/components/advice-floating-item/advice-floating-item.d.ts +2 -4
  38. package/dist/components/advice-floating-item/advice-floating-item.d.ts.map +1 -1
  39. package/dist/components/advice-floating-item/advice-floating-item.js.map +1 -1
  40. package/dist/components/advice-message-item/advice-message-item.d.ts +6 -19
  41. package/dist/components/advice-message-item/advice-message-item.d.ts.map +1 -1
  42. package/dist/components/advice-message-item/advice-message-item.js.map +1 -1
  43. package/dist/components/alert-floating-item/alert-floating-item.d.ts +12 -0
  44. package/dist/components/alert-floating-item/alert-floating-item.d.ts.map +1 -1
  45. package/dist/components/alert-floating-item/alert-floating-item.js.map +1 -1
  46. package/dist/components/alert-menu/alert-menu.d.ts +6 -20
  47. package/dist/components/alert-menu/alert-menu.d.ts.map +1 -1
  48. package/dist/components/alert-menu/alert-menu.js.map +1 -1
  49. package/dist/components/alert-menu-item/alert-menu-item.d.ts +4 -0
  50. package/dist/components/alert-menu-item/alert-menu-item.d.ts.map +1 -1
  51. package/dist/components/alert-menu-item/alert-menu-item.js.map +1 -1
  52. package/dist/components/chat-message/chat-message.d.ts +3 -0
  53. package/dist/components/chat-message/chat-message.d.ts.map +1 -1
  54. package/dist/components/chat-message/chat-message.js.map +1 -1
  55. package/dist/components/elevated-card-radio/elevated-card-radio.d.ts +2 -6
  56. package/dist/components/elevated-card-radio/elevated-card-radio.d.ts.map +1 -1
  57. package/dist/components/elevated-card-radio/elevated-card-radio.js.map +1 -1
  58. package/dist/components/keyboard-numeric/keyboard-numeric.d.ts +6 -0
  59. package/dist/components/keyboard-numeric/keyboard-numeric.d.ts.map +1 -1
  60. package/dist/components/keyboard-numeric/keyboard-numeric.js.map +1 -1
  61. package/dist/components/notification-floating-item/notification-floating-item.d.ts +2 -4
  62. package/dist/components/notification-floating-item/notification-floating-item.d.ts.map +1 -1
  63. package/dist/components/notification-floating-item/notification-floating-item.js.map +1 -1
  64. package/dist/components/sequence-card/sequence-card.d.ts +9 -0
  65. package/dist/components/sequence-card/sequence-card.d.ts.map +1 -1
  66. package/dist/components/sequence-card/sequence-card.js.map +1 -1
  67. package/dist/components/sequence-item/sequence-item.d.ts +5 -0
  68. package/dist/components/sequence-item/sequence-item.d.ts.map +1 -1
  69. package/dist/components/sequence-item/sequence-item.js.map +1 -1
  70. package/dist/components/sequence-modal/sequence-modal.d.ts +4 -0
  71. package/dist/components/sequence-modal/sequence-modal.d.ts.map +1 -1
  72. package/dist/components/sequence-modal/sequence-modal.js.map +1 -1
  73. package/dist/components/sequence-step/sequence-step.d.ts.map +1 -1
  74. package/dist/components/sequence-step/sequence-step.js.map +1 -1
  75. package/dist/components/slider-double/slider-double.d.ts +4 -8
  76. package/dist/components/slider-double/slider-double.d.ts.map +1 -1
  77. package/dist/components/slider-double/slider-double.js.map +1 -1
  78. package/dist/components/status-indicator/status-indicator.d.ts +1 -0
  79. package/dist/components/status-indicator/status-indicator.d.ts.map +1 -1
  80. package/dist/components/status-indicator/status-indicator.js.map +1 -1
  81. package/dist/components/system-menu/system-menu.d.ts +2 -0
  82. package/dist/components/system-menu/system-menu.d.ts.map +1 -1
  83. package/dist/components/system-menu/system-menu.js.map +1 -1
  84. package/dist/components/table-header-item/table-header-item.d.ts +2 -0
  85. package/dist/components/table-header-item/table-header-item.d.ts.map +1 -1
  86. package/dist/components/table-header-item/table-header-item.js.map +1 -1
  87. package/dist/components/tag/tag.d.ts +1 -0
  88. package/dist/components/tag/tag.d.ts.map +1 -1
  89. package/dist/components/tag/tag.js.map +1 -1
  90. package/dist/components/toggletip/toggletip.d.ts +4 -4
  91. package/dist/components/toggletip/toggletip.js.map +1 -1
  92. package/dist/components/user-menu/user-menu.d.ts +1 -0
  93. package/dist/components/user-menu/user-menu.d.ts.map +1 -1
  94. package/dist/components/user-menu/user-menu.js.map +1 -1
  95. package/dist/integration-systems/integration-app-bar/integration-app-bar.d.ts +1 -0
  96. package/dist/integration-systems/integration-app-bar/integration-app-bar.d.ts.map +1 -1
  97. package/dist/integration-systems/integration-app-bar/integration-app-bar.js.map +1 -1
  98. package/dist/integration-systems/integration-bar/integration-bar.d.ts +0 -1
  99. package/dist/integration-systems/integration-bar/integration-bar.d.ts.map +1 -1
  100. package/dist/integration-systems/integration-bar/integration-bar.js.map +1 -1
  101. package/dist/integration-systems/integration-bar-dropdown/integration-bar-dropdown.d.ts +9 -9
  102. package/dist/integration-systems/integration-bar-dropdown/integration-bar-dropdown.js.map +1 -1
  103. package/dist/integration-systems/integration-fleet-button/integration-fleet-button.d.ts +1 -0
  104. package/dist/integration-systems/integration-fleet-button/integration-fleet-button.d.ts.map +1 -1
  105. package/dist/integration-systems/integration-fleet-button/integration-fleet-button.js.map +1 -1
  106. package/dist/integration-systems/integration-tabs/integration-tabs.d.ts +1 -0
  107. package/dist/integration-systems/integration-tabs/integration-tabs.d.ts.map +1 -1
  108. package/dist/integration-systems/integration-tabs/integration-tabs.js.map +1 -1
  109. package/dist/navigation-instruments/compass-sector/compass-sector.d.ts +0 -1
  110. package/dist/navigation-instruments/compass-sector/compass-sector.d.ts.map +1 -1
  111. package/dist/navigation-instruments/compass-sector/compass-sector.js.map +1 -1
  112. package/dist/navigation-instruments/watch/tickmark.d.ts.map +1 -1
  113. package/dist/navigation-instruments/watch/tickmark.js +17 -7
  114. package/dist/navigation-instruments/watch/tickmark.js.map +1 -1
  115. package/dist/navigation-instruments/watch/watch.d.ts.map +1 -1
  116. package/dist/navigation-instruments/watch/watch.js +2 -2
  117. package/dist/navigation-instruments/watch/watch.js.map +1 -1
  118. package/dist/navigation-instruments/wind-propulsion/wind-propulsion.d.ts +0 -1
  119. package/dist/navigation-instruments/wind-propulsion/wind-propulsion.d.ts.map +1 -1
  120. package/dist/navigation-instruments/wind-propulsion/wind-propulsion.js.map +1 -1
  121. package/dist/pages/alert-detail-page/alert-detail-page.d.ts.map +1 -1
  122. package/dist/pages/alert-detail-page/alert-detail-page.js.map +1 -1
  123. package/package.json +3 -2
  124. package/script/check-slot-event-docs.ts +353 -0
  125. package/src/ar/poi/poi.ts +4 -2
  126. package/src/ar/poi-layer/poi-layer.ts +1 -0
  127. package/src/ar/poi-object/poi-object-aton.ts +1 -0
  128. package/src/automation/automation-badge/automation-badge.ts +2 -0
  129. package/src/automation/automation-button/automation-button.ts +9 -0
  130. package/src/automation/automation-input-modal/automation-input-modal.ts +4 -0
  131. package/src/automation/automation-tank/automation-tank.css +8 -64
  132. package/src/automation/automation-tank/automation-tank.stories.ts +41 -23
  133. package/src/automation/automation-tank/automation-tank.ts +25 -65
  134. package/src/building-blocks/alert-list/alert-list.ts +4 -0
  135. package/src/building-blocks/bar-horizontal/bar-horizontal.ts +2 -0
  136. package/src/building-blocks/bar-vertical/bar-vertical.ts +2 -0
  137. package/src/components/advice-floating-item/advice-floating-item.ts +2 -4
  138. package/src/components/advice-message-item/advice-message-item.ts +6 -19
  139. package/src/components/alert-floating-item/alert-floating-item.ts +12 -0
  140. package/src/components/alert-menu/alert-menu.ts +6 -20
  141. package/src/components/alert-menu-item/alert-menu-item.ts +4 -0
  142. package/src/components/chat-message/chat-message.ts +3 -0
  143. package/src/components/elevated-card-radio/elevated-card-radio.ts +2 -6
  144. package/src/components/keyboard-numeric/keyboard-numeric.ts +6 -0
  145. package/src/components/notification-floating-item/notification-floating-item.ts +2 -4
  146. package/src/components/sequence-card/sequence-card.ts +9 -0
  147. package/src/components/sequence-item/sequence-item.ts +5 -0
  148. package/src/components/sequence-modal/sequence-modal.ts +4 -0
  149. package/src/components/sequence-step/sequence-step.ts +3 -0
  150. package/src/components/slider-double/slider-double.ts +4 -8
  151. package/src/components/status-indicator/status-indicator.ts +1 -0
  152. package/src/components/system-menu/system-menu.ts +2 -0
  153. package/src/components/table-header-item/table-header-item.ts +2 -0
  154. package/src/components/tag/tag.ts +1 -0
  155. package/src/components/toggletip/toggletip.ts +4 -4
  156. package/src/components/user-menu/user-menu.ts +1 -0
  157. package/src/integration-systems/integration-app-bar/integration-app-bar.ts +1 -0
  158. package/src/integration-systems/integration-bar/integration-bar.ts +0 -1
  159. package/src/integration-systems/integration-bar-dropdown/integration-bar-dropdown.ts +9 -9
  160. package/src/integration-systems/integration-fleet-button/integration-fleet-button.ts +1 -0
  161. package/src/integration-systems/integration-tabs/integration-tabs.ts +1 -0
  162. package/src/navigation-instruments/compass-sector/compass-sector.ts +0 -1
  163. package/src/navigation-instruments/watch/tickmark.spec.ts +99 -0
  164. package/src/navigation-instruments/watch/tickmark.ts +21 -8
  165. package/src/navigation-instruments/watch/watch.ts +7 -2
  166. package/src/navigation-instruments/wind-propulsion/wind-propulsion.ts +0 -1
  167. package/src/pages/alert-detail-page/alert-detail-page.ts +7 -0
@@ -94,25 +94,6 @@ export enum TankChartMode {
94
94
  graphAndBar = 'graph-and-bar',
95
95
  }
96
96
 
97
- /**
98
- * A single detail row rendered in the tank's `readout` rich list (below the
99
- * main percent / value block, separated by a divider). Each row is rendered
100
- * as `<label>` on the left and `<value><degree?><percent?><unit>` on the
101
- * right, all on a single line.
102
- */
103
- export interface TankReadoutItem {
104
- /** Left-aligned label text (e.g. `Temperature`). */
105
- label: string;
106
- /** Numeric value, formatted with the tank's `percentFractionDigits`. */
107
- value: number;
108
- /** Append a `°` glyph directly after the value with no gap. */
109
- hasDegree?: boolean;
110
- /** Append a `%` glyph directly after the value with no gap. */
111
- hasPercentage?: boolean;
112
- /** Unit text (e.g. `C`, `Pa`, `m/s`). Rendered after the value/glyph. */
113
- unit: string;
114
- }
115
-
116
97
  /**
117
98
  *
118
99
  *
@@ -122,7 +103,11 @@ export interface TankReadoutItem {
122
103
  * @slot max-value - Content for the capacity value.
123
104
  * @slot unit - Content for the unit of measurement.
124
105
  * @slot current-value - Content for the current level value.
125
- * @slot rich - Content for additional detail rows.
106
+ * @slot rich - Detail rows below the main readout, shown in the regular
107
+ * (non-compact, non-static) layout. Slot an `<obc-readout-list>` of
108
+ * `<obc-readout-list-item>` rows — it owns the row typography and cross-row
109
+ * column alignment; the tank renders a divider above it automatically when
110
+ * the slot is filled.
126
111
  * @slot alert-icon - Custom icon for the alert frame.
127
112
  * @slot alert-label - Label for the alert frame.
128
113
  * @slot alert-timer - Timer for the alert frame.
@@ -249,21 +234,6 @@ export class ObcAutomationTank extends LitElement {
249
234
  */
250
235
  @property({type: Number}) percentFractionDigits: number = 0;
251
236
 
252
- /**
253
- * Rich detail rows shown below the main percent/value block in the regular
254
- * (non-compact, non-static) layout, separated by a divider. When empty (the
255
- * default), nothing is rendered — neither the divider nor the list. In
256
- * vertical orientation the chart cell shrinks to make room; in horizontal
257
- * orientation the readout column already has reserved whitespace so the
258
- * chart is unaffected.
259
- *
260
- * Values are formatted using `percentFractionDigits`. Consumers that need
261
- * full control over the markup can replace the entire fallback by slotting
262
- * arbitrary content into `slot="rich"` (note: this is a different name from
263
- * the existing `slot="readout"` which replaces the whole readout block).
264
- */
265
- @property({type: Array, attribute: false}) readout: TankReadoutItem[] = [];
266
-
267
237
  /**
268
238
  * Enum-driven badges rendered inside the `badges` cell. Mirrors the API
269
239
  * introduced for `ObcAbstractAutomationButton` in PR #839 (#829). When set
@@ -297,6 +267,13 @@ export class ObcAutomationTank extends LitElement {
297
267
  */
298
268
  @state() private _hasBadges = false;
299
269
  @state() private _hasTagSlot = false;
270
+ /**
271
+ * Tracks whether the `rich` slot has assigned content, so the regular
272
+ * (non-compact) layout only draws the rich divider when a consumer has
273
+ * slotted detail rows (canonically an `<obc-readout-list>`). Mirrors
274
+ * `_hasBadges` / `_hasTagSlot`.
275
+ */
276
+ @state() private _hasRichSlot = false;
300
277
  private _chartResizeObserver?: ResizeObserver;
301
278
  private _observedCell?: Element;
302
279
 
@@ -396,6 +373,17 @@ export class ObcAutomationTank extends LitElement {
396
373
  );
397
374
  }
398
375
 
376
+ private _onRichSlotChange(e: Event): void {
377
+ const slot = e.target as HTMLSlotElement;
378
+ this._hasRichSlot = slot
379
+ .assignedNodes({flatten: true})
380
+ .some(
381
+ (n) =>
382
+ n.nodeType === Node.ELEMENT_NODE ||
383
+ (n.nodeType === Node.TEXT_NODE && !!n.textContent?.trim())
384
+ );
385
+ }
386
+
399
387
  override disconnectedCallback(): void {
400
388
  super.disconnectedCallback();
401
389
  this._chartResizeObserver?.disconnect();
@@ -756,36 +744,8 @@ export class ObcAutomationTank extends LitElement {
756
744
  <slot class="unit" name="unit">m<sup>3</sup></slot>
757
745
  </div>
758
746
  </div>
759
- <slot name="rich">
760
- ${this.readout.length > 0
761
- ? html`
762
- <div class="rich-divider"></div>
763
- <div class="rich">
764
- ${this.readout.map(
765
- (row) => html`
766
- <div class="rich-row">
767
- <span class="rich-label">${row.label}</span>
768
- <span class="rich-value"
769
- >${row.value.toFixed(
770
- this.percentFractionDigits
771
- )}</span
772
- >
773
- <span class="rich-suffix"
774
- >${row.hasDegree
775
- ? html`<span class="rich-glyph">°</span>`
776
- : nothing}${row.hasPercentage
777
- ? html`<span class="rich-glyph">%</span>`
778
- : nothing}<span class="rich-unit"
779
- >${row.unit}</span
780
- ></span
781
- >
782
- </div>
783
- `
784
- )}
785
- </div>
786
- `
787
- : nothing}
788
- </slot>
747
+ <div class="rich-divider" ?hidden=${!this._hasRichSlot}></div>
748
+ <slot name="rich" @slotchange=${this._onRichSlotChange}></slot>
789
749
  </slot>
790
750
  </div>
791
751
  `;
@@ -7,6 +7,10 @@ import {ObcScrollbar} from '../../components/scrollbar/scrollbar.js';
7
7
  import {ObcAlertMenuItem} from '../../components/alert-menu-item/alert-menu-item.js';
8
8
 
9
9
  /**
10
+ * @slot - Default slot for the alert list items.
11
+ * @slot empty-icon - Icon shown when the list is empty.
12
+ * @slot empty-title - Title shown when the list is empty.
13
+ * @slot empty-description - Description shown when the list is empty.
10
14
  * @stable
11
15
  */
12
16
  @customElement('obc-alert-list')
@@ -63,6 +63,8 @@ export {
63
63
  * Set `priority` to `Priority.enhanced` to use the blue/enhanced color palette
64
64
  * for bar fill and setpoint instead of the default gray/regular palette
65
65
  * (default: `Priority.regular`).
66
+ *
67
+ * @fires scale-dimensions-changed {CustomEvent} Fired when the scale's computed layout thickness changes; a parent chart listens for this to reserve space for the scale. Bubbles and is composed.
66
68
  * @beta
67
69
  */
68
70
  @customElement('obc-bar-horizontal')
@@ -61,6 +61,8 @@ export {
61
61
  * Set `priority` to `Priority.enhanced` to use the blue/enhanced color palette
62
62
  * for bar fill and setpoint instead of the default gray/regular palette
63
63
  * (default: `Priority.regular`).
64
+ *
65
+ * @fires scale-dimensions-changed {CustomEvent} Fired when the scale's computed layout thickness changes; a parent chart listens for this to reserve space for the scale. Bubbles and is composed.
64
66
  * @beta
65
67
  */
66
68
  @customElement('obc-bar-vertical')
@@ -43,8 +43,7 @@ import {
43
43
  * ## Slots
44
44
  * | Slot Name | Renders When... | Purpose |
45
45
  * | -------------- | ------------------------------------ | ------------------------------------------------------------ |
46
- * | primary-icon | Always (unless overridden) | Main advice icon (default: `<obi-notification-advice-active>`) or custom icon. |
47
- * | secondary-icon | Only when `type="application"` | Additional icon for application-type advice messages. |
46
+ * | primary-icon | Only when `type="application"` | Custom main icon (the built-in advice icon is used otherwise). |
48
47
  * | title | Always | Title or heading of the advice message. |
49
48
  * | description | Always | Detailed advice or message text. |
50
49
  * | time | If `hasTimestamp` is true | Timestamp label (e.g., "09:12:46"). |
@@ -75,8 +74,7 @@ import {
75
74
  * </obc-advice-floating-item>
76
75
  * ```
77
76
  *
78
- * @slot primary-icon - Main advice icon (default: `<obi-notification-advice-active>`), or custom icon.
79
- * @slot secondary-icon - Additional icon for application-type advice messages.
77
+ * @slot primary-icon - Custom main icon, projected into the child only when `type="application"` (the built-in advice icon is used otherwise).
80
78
  * @slot title - Title or heading of the advice message.
81
79
  * @slot description - Detailed advice or message text.
82
80
  * @slot time - Timestamp label (e.g., "09:12:46").
@@ -62,17 +62,12 @@ export enum ObcAdviceMessageItemSize {
62
62
  * ---
63
63
  *
64
64
  * ### Slots
65
- * | Slot Name | Renders When... | Purpose |
66
- * |-------------------|------------------------------------------------|--------------------------------------------------------------|
67
- * | `primary-icon` | Always | Main icon representing the advice (default: advice icon). |
68
- * | `secondary-icon` | `hasSecondaryIcon` is true | Optional overlay icon for additional status or category. |
69
- * | `title` | `hasTitle` is true and `title` is set | Title or heading of the advice message. |
70
- * | `description` | `hasDescription` is true and `description` set | Detailed message text. |
71
- * | `time` | `hasTimestamp` is true and `time` is set | Primary timestamp (e.g., time of advice). |
72
- * | `time-secondary` | `hasTimestamp2` is true and `timeSecondary` set| Secondary timestamp (e.g., duration, relative time). |
73
- * | `action-text` | `type="with-button"` | Label for the primary action button. |
74
- * | `action-icon` | `type="with-icon-button"` | Icon for the action button (default: close icon). |
75
- * | `empty` | `type="inactive"` or `empty` is true | Text to display in the empty/inactive state. |
65
+ * | Slot Name | Renders When... | Purpose |
66
+ * |-------------------|----------------------------|----------------------------------------------------------|
67
+ * | `secondary-icon` | `hasSecondaryIcon` is true | Optional overlay icon for additional status or category. |
68
+ *
69
+ * All other content (title, description, timestamps, action label/icon, empty-state
70
+ * text) is driven by properties and rendered internally; it is not exposed as slots.
76
71
  *
77
72
  * ---
78
73
  *
@@ -104,15 +99,7 @@ export enum ObcAdviceMessageItemSize {
104
99
  *
105
100
  * In this example, the advice message displays a title, description, timestamp, and a "View" action button.
106
101
  *
107
- * @slot primary-icon - Main icon representing the advice (always present)
108
102
  * @slot secondary-icon - Optional overlay icon for additional status/category (shown when `hasSecondaryIcon` is true)
109
- * @slot title - Title or heading of the advice (shown when `hasTitle` is true)
110
- * @slot description - Detailed message text (shown when `hasDescription` is true)
111
- * @slot time - Primary timestamp (shown when `hasTimestamp` is true)
112
- * @slot time-secondary - Secondary timestamp (shown when `hasTimestamp2` is true)
113
- * @slot action-text - Label for the action button (when `type="with-button"`)
114
- * @slot action-icon - Icon for the action button (when `type="with-icon-button"`)
115
- * @slot empty - Text to display in the empty/inactive state (when `type="inactive"` or `empty` is true)
116
103
  * @fires message-click {CustomEvent<void>} When the main message area is clicked
117
104
  * @fires action-click {CustomEvent<void>} When the action button (text or icon) is clicked
118
105
  * @beta
@@ -12,6 +12,18 @@ import {
12
12
  } from '../floating-item/floating-item.js';
13
13
 
14
14
  /**
15
+ * `<obc-alert-floating-item>` – A floating alert message that overlays the interface with a built-in alert icon.
16
+ *
17
+ * @slot primary-icon - Custom main icon, projected into the child only when `type="application"` (the built-in alert icon is used otherwise).
18
+ * @slot title - Title or heading of the alert message.
19
+ * @slot description - Detailed message text.
20
+ * @slot time - Timestamp label (e.g., "09:12:46").
21
+ * @slot day - Day label (e.g., "Yesterday").
22
+ * @slot action - Primary action button label/content.
23
+ * @slot action2 - Secondary action button label/content.
24
+ * @fires action-click {CustomEvent} When the primary action button is clicked.
25
+ * @fires action2-click {CustomEvent} When the secondary action button is clicked.
26
+ * @fires dismiss-click {CustomEvent} When the alert message is dismissed.
15
27
  * @stable
16
28
  */
17
29
  @customElement('obc-alert-floating-item')
@@ -50,15 +50,9 @@ export type ObcAckAllVisibleClickEvent = CustomEvent<{
50
50
  * | Slot Name | Renders When... | Purpose |
51
51
  * |----------------------------------|----------------------------------|----------------------------------------------------------------|
52
52
  * | (default) | Always | Place one or more `<obc-alert-menu-item>` elements as alert rows. |
53
- * | empty-unacked-title | Unacked tab, when empty | Custom title for empty unacknowledged alerts. |
54
- * | empty-unacked-description | Unacked tab, when empty | Custom description for empty unacknowledged alerts. |
55
- * | empty-unacked-icon | Unacked tab, when empty | Custom icon for empty unacknowledged alerts. |
56
- * | empty-all-title | Active tab, when empty | Custom title for empty active alerts. |
57
- * | empty-all-description | Active tab, when empty | Custom description for empty active alerts. |
58
- * | empty-all-icon | Active tab, when empty | Custom icon for empty active alerts. |
59
- * | empty-shelved-title | Shelved tab, when empty | Custom title for empty shelved alerts. |
60
- * | empty-shelved-description | Shelved tab, when empty | Custom description for empty shelved alerts. |
61
- * | empty-shelved-icon | Shelved tab, when empty | Custom icon for empty shelved alerts. |
53
+ * | empty-<tab>-title | Selected tab is empty | Custom title for the empty state (`<tab>` is one of `unacked`, `all`, `shelved`). |
54
+ * | empty-<tab>-description | Selected tab is empty | Custom description for the empty state (`<tab>` is one of `unacked`, `all`, `shelved`). |
55
+ * | empty-<tab>-icon | Selected tab is empty | Custom icon for the empty state (`<tab>` is one of `unacked`, `all`, `shelved`). |
62
56
  *
63
57
  * ### Properties
64
58
  * - `hasShelved` (boolean): If true, displays the "Shelved" tab and enables shelving support. Default: false.
@@ -68,7 +62,6 @@ export type ObcAckAllVisibleClickEvent = CustomEvent<{
68
62
  *
69
63
  * ### Events
70
64
  * - **ack-all-visible-click** – Fired when the "ACK visible" button is clicked. The event detail includes the list of visible alert elements and the current tab name.
71
- * - **alert-list-click** – Fired when the "Alerts" navigation button is clicked.
72
65
  * - **silence-click** – Fired when the "Silence" button is clicked.
73
66
  * - **go-to-alert-list-click** – Fired when the "Alerts" navigation button is clicked.
74
67
  *
@@ -92,17 +85,10 @@ export type ObcAckAllVisibleClickEvent = CustomEvent<{
92
85
  * ```
93
86
  *
94
87
  * @slot - The alerts items as ObcAlertMenuItem
95
- * @slot empty-unacked-title - Custom title for empty unacknowledged alerts (Unacked tab)
96
- * @slot empty-unacked-description - Custom description for empty unacknowledged alerts (Unacked tab)
97
- * @slot empty-unacked-icon - Custom icon for empty unacknowledged alerts (Unacked tab)
98
- * @slot empty-all-title - Custom title for empty active alerts (Active tab)
99
- * @slot empty-all-description - Custom description for empty active alerts (Active tab)
100
- * @slot empty-all-icon - Custom icon for empty active alerts (Active tab)
101
- * @slot empty-shelved-title - Custom title for empty shelved alerts (Shelved tab)
102
- * @slot empty-shelved-description - Custom description for empty shelved alerts (Shelved tab)
103
- * @slot empty-shelved-icon - Custom icon for empty shelved alerts (Shelved tab)
88
+ * @slot empty-<tab>-title - Custom empty-state title for the selected tab (`<tab>` is one of `unacked`, `all`, `shelved`)
89
+ * @slot empty-<tab>-description - Custom empty-state description for the selected tab (`<tab>` is one of `unacked`, `all`, `shelved`)
90
+ * @slot empty-<tab>-icon - Custom empty-state icon for the selected tab (`<tab>` is one of `unacked`, `all`, `shelved`)
104
91
  * @fires ack-all-visible-click {ObcAckAllVisibleClickEvent} - Fired when the ack all visible button is clicked
105
- * @fires alert-list-click {CustomEvent} - Fired when the alert list button is clicked
106
92
  * @fires silence-click {CustomEvent} - Fired when the silence button is clicked
107
93
  * @fires go-to-alert-list-click {CustomEvent} - Fired when the go to alert list button is clicked
108
94
  */
@@ -65,6 +65,8 @@ export enum ObcAlertMenuItemActionState {
65
65
  * | Slot Name | Renders When... | Purpose |
66
66
  * |---------------|-------------------------------|------------------------------------------------------|
67
67
  * | alert-icon | Always | Main alert icon representing the alert type. |
68
+ * | title | Always | Title content; falls back to the `title` property. |
69
+ * | description | Always | Description content; falls back to the `description` property. |
68
70
  * | icon | If `hasIcon` is true | Secondary icon (e.g., system/source of alert). |
69
71
  *
70
72
  * ### Events
@@ -94,6 +96,8 @@ export enum ObcAlertMenuItemActionState {
94
96
  * ```
95
97
  *
96
98
  * @slot alert-icon - The main alert icon representing the alert type.
99
+ * @slot title - Title content; falls back to the `title` property when empty.
100
+ * @slot description - Description content; falls back to the `description` property when empty.
97
101
  * @slot icon - Optional secondary icon (e.g., source/system).
98
102
  *
99
103
  * @fires ack-click {CustomEvent<void>} Fired when the ACK action button is clicked.
@@ -12,6 +12,9 @@ export enum ObcChatMessagePosition {
12
12
  }
13
13
 
14
14
  /**
15
+ * `<obc-chat-message>` – A single chat message bubble with optional name and date header.
16
+ *
17
+ * @slot - The message content (body of the chat bubble).
15
18
  * @stable
16
19
  */
17
20
  @customElement('obc-chat-message')
@@ -38,10 +38,8 @@ import {ObcRadio} from '../radio/radio.js';
38
38
  * ---
39
39
  *
40
40
  * ### Slots
41
- * | Slot Name | Renders When... | Purpose |
42
- * |-------------- |-----------------|-----------------------------------------|
43
- * | leading-icon | Always | Contains the radio button itself. |
44
- * | label | Always | Displays the label text for the option. |
41
+ * This component exposes no slots. The radio input and its label are rendered
42
+ * internally from the `label`, `value`, `checked`, and related properties.
45
43
  *
46
44
  * ---
47
45
  *
@@ -82,8 +80,6 @@ import {ObcRadio} from '../radio/radio.js';
82
80
  * ```
83
81
  * In this example, two card radios form a group; only one can be selected at a time.
84
82
  *
85
- * @slot leading-icon - Contains the radio button input.
86
- * @slot label - Displays the label text for the radio option.
87
83
  * @fires change - Fired when the radio is changed.
88
84
  * @stable
89
85
  */
@@ -84,6 +84,12 @@ const ALLOWED_CHARS_PATTERN = `^[${ALLOWED_CHARS.map((c) =>
84
84
  ).join('')}]*$`;
85
85
 
86
86
  /**
87
+ * `<obc-keyboard-numeric>` – An on-screen numeric keyboard with optional calculation and symbol modes.
88
+ *
89
+ * @slot leading-icon - Custom leading icon shown inside the input field (rendered when `hasLeadingIcon` is true).
90
+ * @fires close-click {CustomEvent} Fired when the close button (or Escape) dismisses the keyboard.
91
+ * @fires value-change {CustomEvent<{value: string}>} Fired whenever the current value changes.
92
+ * @fires done-click {CustomEvent<{value: string}>} Fired when the DONE button (or Enter) is pressed.
87
93
  * @beta
88
94
  */
89
95
  @customElement('obc-keyboard-numeric')
@@ -53,8 +53,7 @@ import {
53
53
  *
54
54
  * | Slot Name | Renders When... | Purpose |
55
55
  * |-----------------|------------------------------|--------------------------------------------------------------|
56
- * | primary-icon | Always (all types) | Main icon representing the notification category. |
57
- * | secondary-icon | type="application" only | Additional icon for application-type notifications. |
56
+ * | primary-icon | type="application" only | Custom main icon (the built-in notification icon is used otherwise). |
58
57
  * | title | Always | Title or heading of the notification. |
59
58
  * | description | Always | Detailed message text. |
60
59
  * | time | hasTimestamp is true | Timestamp label (e.g., "09:12:46"). |
@@ -83,8 +82,7 @@ import {
83
82
  * </obc-notification-floating-item>
84
83
  * ```
85
84
  *
86
- * @slot primary-icon - Main icon representing the notification category.
87
- * @slot secondary-icon - Additional icon for application-type notifications.
85
+ * @slot primary-icon - Custom main icon, projected into the child only when `type="application"` (the built-in notification icon is used otherwise).
88
86
  * @slot title - Title or heading of the notification.
89
87
  * @slot description - Detailed message text.
90
88
  * @slot time - Timestamp label (e.g., "09:12:46").
@@ -97,6 +97,15 @@ export enum ObcSequenceCardState {
97
97
  * ```
98
98
  *
99
99
  * Keywords: timeline, step, progress, sequence, card, event, status.
100
+ *
101
+ * @slot leading-icon - Icon before the title (shown when `hasLeadingIcon` is true).
102
+ * @slot title - Title text (falls back to `cardTitle`).
103
+ * @slot subtitle - Subtitle/description (falls back to `subtitle`).
104
+ * @slot time-stamp - Header timestamp (falls back to `timeLabel` + `time`).
105
+ * @slot header-actions - Optional header actions (e.g., close button).
106
+ * @slot left-time-stamp - Left rail timestamp (falls back to `leftTime`).
107
+ * @slot actions - Actions row content (shown when `hasActions` is true).
108
+ * @slot - Main content area (shown when `hasContent` is true).
100
109
  * @experimental
101
110
  */
102
111
  @customElement('obc-sequence-card')
@@ -32,6 +32,11 @@ export enum SequenceItemState {
32
32
  * composing `<obc-sequence-step>` for the visual indicator. Consumers can either
33
33
  * configure the built-in step via `step*` props or supply a custom step through
34
34
  * the `step` slot.
35
+ *
36
+ * @slot title - Title/subtitle block (falls back to the built-in `title`/`subtitle`/inline description).
37
+ * @slot description - Description text (rendered when `hasDescription` is true and not inlined).
38
+ * @slot meta - Meta row with timestamp/distance stamps (rendered when `hasMeta` is true — i.e. `hasStamp` with a timestamp or distance stamp enabled).
39
+ * @slot step - Custom step indicator (falls back to the built-in `<obc-sequence-step>`).
35
40
  * @beta
36
41
  */
37
42
  @customElement('obc-sequence-item')
@@ -59,6 +59,10 @@ export enum ObcSequenceModalType {
59
59
  * ```
60
60
  *
61
61
  * Keywords: modal, sequence, step, dialog, progress, actions.
62
+ *
63
+ * @slot actions - Actions row content (shown when `hasActions` is true).
64
+ * @slot - Main content area.
65
+ * @fires close-click - Fired when the close icon is clicked.
62
66
  * @experimental
63
67
  */
64
68
  @customElement('obc-sequence-modal')
@@ -55,6 +55,9 @@ export enum SequenceVariant {
55
55
  * `<obc-sequence-step>` renders the visual node of a sequence diagram.
56
56
  * Supports three sizes, multiple styles (regular/point/connector), and can show
57
57
  * leading/trailing connectors as well as state-specific icons.
58
+ *
59
+ * @slot leading-icon - Custom leading state icon (shown for medium/large regular steps with `hasIcon`, when the value has no built-in icon).
60
+ * @slot - Step label content (shown for non-small steps).
58
61
  */
59
62
  export class ObcSequenceStep extends LitElement {
60
63
  @property({type: String}) orientation: SequenceOrientation =
@@ -43,7 +43,7 @@ export type ObcSliderDoubleChangeEvent = CustomEvent<{
43
43
  *
44
44
  * This component allows users to select a minimum and maximum value by dragging two thumbs along a horizontal track. It is commonly used for filtering or specifying ranges (such as price, speed, or time intervals) in forms and dashboards. The slider supports both interactive and read-only display modes, as well as visual variants for different UI needs.
45
45
  *
46
- * Appears with two draggable handles (thumbs) and labels showing the current low and high values. Optionally, icons can be placed at each end of the slider via slots.
46
+ * Appears with two draggable handles (thumbs) and labels showing the current low and high values. The low and high readout labels can be customized via slots.
47
47
  *
48
48
  * ## Features
49
49
  * - **Dual-thumb range selection:** Users can adjust both the lower and upper bounds of a numeric interval.
@@ -56,7 +56,7 @@ export type ObcSliderDoubleChangeEvent = CustomEvent<{
56
56
  * - **Seeking mode:** Enable `allowSeeking` to let users jump to a value by clicking on the track, with smooth animated transitions controlled by `seekingSpeed`.
57
57
  * - **Custom labels:** Display formatted value labels with unit (`labelUnit`), decimal precision (`labelDecimals`), and adjustable label width (`labelWidth`).
58
58
  * - **Hug container option:** Remove spacing between slider and container edges with the `hugcontainer` attribute for seamless layout integration.
59
- * - **Icon slots:** Add icons to the left and right ends of the slider using `icon-left` and `icon-right` slots.
59
+ * - **Custom readouts:** Replace the low/high value labels with custom content using the `left-readout` and `right-readout` slots.
60
60
  *
61
61
  * ## Usage Guidelines
62
62
  * Use `obc-slider-double` when you need users to specify a numeric range, such as filtering results by minimum and maximum values. Ideal for scenarios like:
@@ -72,8 +72,6 @@ export type ObcSliderDoubleChangeEvent = CustomEvent<{
72
72
  *
73
73
  * | Slot Name | Renders When... | Purpose |
74
74
  * |---------------|-------------------------------|------------------------------------------------------------------------------------------------------------------|
75
- * | icon-left | Always | Icon or content at the left end of the slider. Example: `<obi-placeholder slot="icon-left"></obi-placeholder>` |
76
- * | icon-right | Always | Icon or content at the right end of the slider. Example: `<obi-placeholder slot="icon-right"></obi-placeholder>` |
77
75
  * | left-readout | `showLeftReadout` is true | Custom content for the left (low) readout label. Falls back to the formatted `low` value. |
78
76
  * | right-readout | `showRightReadout` is true | Custom content for the right (high) readout label. Falls back to the formatted `high` value. |
79
77
  *
@@ -119,15 +117,13 @@ export type ObcSliderDoubleChangeEvent = CustomEvent<{
119
117
  * variant="enhanced"
120
118
  * allowSeeking
121
119
  * >
122
- * <obi-placeholder slot="icon-left"></obi-placeholder>
123
- * <obi-placeholder slot="icon-right"></obi-placeholder>
120
+ * <span slot="left-readout">Min</span>
121
+ * <span slot="right-readout">Max</span>
124
122
  * </obc-slider-double>
125
123
  * ```
126
124
  *
127
125
  * In this example, the slider allows selection of a percentage range from 0 to 100, with 5% increments, enhanced styling, and seeking enabled.
128
126
  *
129
- * @slot icon-left - Slot for the left icon
130
- * @slot icon-right - Slot for the right icon
131
127
  * @slot left-readout - Custom content for the left (low) readout label (rendered when `showLeftReadout` is true)
132
128
  * @slot right-readout - Custom content for the right (high) readout label (rendered when `showRightReadout` is true)
133
129
  * @fires value {ObcSliderDoubleValueEvent} - Fires when the value is changed
@@ -14,6 +14,7 @@ export enum StatusIndicatorStatus {
14
14
  }
15
15
 
16
16
  /**
17
+ * @slot - Label content shown next to the status indicator.
17
18
  * @beta
18
19
  */
19
20
  @customElement('obc-status-indicator')
@@ -97,6 +97,7 @@ export type VolumeChangeEvent = CustomEvent<number>;
97
97
  * @fires audio-click - When the Audio button is clicked
98
98
  * @fires audio-volume-change - {VolumeChangeEvent} - When the Audio volume is changed
99
99
  * @fires microphone-click - When the Microphone button is clicked
100
+ * @fires push-to-talk-change - When the push-to-talk toggle is changed
100
101
  * @fires battery-usage-click - When the Battery usage button is clicked
101
102
  * @fires battery-saving-mode-change - When the Battery saving mode is changed
102
103
  * @fires battery-mode-change - When the Battery mode is changed
@@ -107,6 +108,7 @@ export type VolumeChangeEvent = CustomEvent<number>;
107
108
  * @fires to-sub-menu-click - When the sub menu is clicked
108
109
  * @fires wifi-options-click - When the Wi-Fi options are clicked
109
110
  * @fires wifi-disconnect-click - When the Wi-Fi disconnect is clicked
111
+ * @slot battery-status - Custom battery status text (falls back to the built-in charging/battery label).
110
112
  * @stable
111
113
  */
112
114
  @customElement('obc-system-menu')
@@ -20,6 +20,8 @@ export enum ObcTableHeaderItemSortDirection {
20
20
  }
21
21
 
22
22
  /**
23
+ * @slot leading-icon - Leading icon (shown when `hasLeadingIcon` is true).
24
+ * @slot - Header label content (hidden when `type` is `IconOnly`).
23
25
  * @beta
24
26
  */
25
27
  @customElement('obc-table-header-item')
@@ -23,6 +23,7 @@ export enum TagSize {
23
23
  }
24
24
 
25
25
  /**
26
+ * @slot - Leading icon content (shown when `hasIcon` is true).
26
27
  * @stable
27
28
  */
28
29
  @customElement('obc-tag')
@@ -84,10 +84,10 @@ export enum ToggletipVariant {
84
84
  * ## Properties and Configuration
85
85
  *
86
86
  * - `variant`: Controls the visual style and semantic meaning (see Features above for all options).
87
- * - `title`: Sets the header text (shown if `hasTitleContainer` is true).
88
- * - `description`: Sets the main message text (shown if `hasDescription` is true).
89
- * - `hasTitleContainer`, `hasDescription`, `hasContent`, `hasActions`: Toggle visibility of each section.
90
- * - `hasLeadingIcon`, `hasTrailingIcon`: Toggle visibility of icon slots.
87
+ * - `title`: Sets the header text. The header is shown only when `title` is a non-empty string.
88
+ * - `description`: Sets the main message text. Shown whenever `description` is defined.
89
+ * - `hasContent`, `hasActions`: Toggle visibility of the custom content area and the action buttons.
90
+ * - `hasLeadingIcon`, `hasTrailingIcon`: Toggle visibility of icon slots (only effective when a `title` is set).
91
91
  * - `primaryButtonLabel`, `secondaryButtonLabel`: Set labels for action buttons (shown if `hasActions` is true).
92
92
  * - `customWidth`: Sets a custom width for the toggletip (in pixels).
93
93
  *
@@ -104,6 +104,7 @@ export type ObcUserMenuSignedInAction = {
104
104
  * ></obc-user-menu>
105
105
  * ```
106
106
  *
107
+ * @slot signed-in-action-icon-<id> - Optional icon for a signed-in action, one per action; `<id>` is the normalized action id (shown in the `signed-in` type).
107
108
  * @fires sign-in-click {CustomEvent<{username: string, password: string}>}
108
109
  * @fires sign-out-click
109
110
  * @fires signed-in-action-click {CustomEvent<{id: string, label: string}>}
@@ -3,6 +3,7 @@ import {customElement} from '../../decorator.js';
3
3
  import compentStyle from './integration-app-bar.css?inline';
4
4
 
5
5
  /**
6
+ * @slot apps - Application buttons; slotted elements are normalized to a uniform width
6
7
  * @experimental
7
8
  */
8
9
  @customElement('obc-integration-app-bar')
@@ -30,7 +30,6 @@ import {classMap} from 'lit/directives/class-map.js';
30
30
  * @slot clock - Custom clock content, rendered when `showClock` is true
31
31
  * @slot integration-buttons - Regular vessel integration buttons
32
32
  * @slot hug-buttons - Compact vessel integration buttons; slotted integration buttons are forced to hug type
33
- * @slot vessel-integration-menu - Modal that will appear achored below the fleet/vessel button. Typically an obc-integration-vessel-menu
34
33
  * @property {IntegrationBarType} type - Integration bar mode for fleet/vessel presentation
35
34
  * @property {boolean} hideHomeButton - Hides the home button when true
36
35
  * @property {boolean} showClock - Toggles rendering of the clock slot
@@ -16,18 +16,18 @@ import {property} from 'lit/decorators.js';
16
16
  *
17
17
  * @fires home-button-clicked - Fired when the home button is clicked
18
18
  * @fires dimming-button-clicked - Fired when the dimming button is clicked
19
- * @fires notification-button-clicked - Firaed when the notification button is clicked
19
+ * @fires notification-button-clicked - Fired when the notification button is clicked
20
20
  * @fires user-button-clicked - Fired when the user button is clicked
21
21
  * @fires system-button-clicked - Fired when the system button is clicked
22
22
  *
23
- * @slot vessel-selector
24
- * @slot status-label-1
25
- * @slot status-icon-1
26
- * @slot status-label-2
27
- * @slot status-icon-2
28
- * @slot status-label-3
29
- * @slot status-icon-3
30
- * @slot clock
23
+ * @slot vessel-selector - Vessel selector content
24
+ * @slot status-label-1 - Label for the first status field
25
+ * @slot status-icon-1 - Icon for the first status field
26
+ * @slot status-label-2 - Label for the second status field
27
+ * @slot status-icon-2 - Icon for the second status field
28
+ * @slot status-label-3 - Label for the third status field
29
+ * @slot status-icon-3 - Icon for the third status field
30
+ * @slot clock - Custom clock content, rendered when `showClock` is true
31
31
  * @experimental
32
32
  */
33
33
  @customElement('obc-integration-bar-dropdown')
@@ -13,6 +13,7 @@ export interface IntegrationFleetButtonReadout {
13
13
  }
14
14
 
15
15
  /**
16
+ * @slot alert-topic-icon - Icon shown alongside the alert topic
16
17
  * @experimental
17
18
  */
18
19
  @customElement('obc-integration-fleet-button')
@@ -4,6 +4,7 @@ import compentStyle from './integration-tabs.css?inline';
4
4
  import {property} from 'lit/decorators.js';
5
5
 
6
6
  /**
7
+ * @slot - Tab label content
7
8
  * @experimental
8
9
  */
9
10
  @customElement('obc-integration-tabs')
@@ -96,7 +96,6 @@ function normalizeAngle(a: number): number {
96
96
  * - Enable `zoomToFitArc` to enlarge the arc to fill the viewport.
97
97
  * - For a full‑circle compass, use `<obc-compass>` instead.
98
98
  *
99
- * @fires None
100
99
  * @stable
101
100
  */
102
101
  @customElement('obc-compass-sector')