@oicl/openbridge-webcomponents-full-bundle 2.0.0-next.58 → 2.0.0-next.60

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 (213) hide show
  1. package/bundle/openbridge-webcomponents.bundle.js +8144 -5241
  2. package/bundle/openbridge-webcomponents.bundle.js.map +1 -1
  3. package/custom-elements.json +1937 -78
  4. package/dist/alert-severity.d.ts +38 -0
  5. package/dist/alert-severity.d.ts.map +1 -0
  6. package/dist/alert-severity.js +176 -0
  7. package/dist/alert-severity.js.map +1 -0
  8. package/dist/ar/building-blocks/poi-header/poi-header.css.js +38 -7
  9. package/dist/ar/building-blocks/poi-header/poi-header.css.js.map +1 -1
  10. package/dist/ar/building-blocks/poi-header/poi-header.d.ts +7 -2
  11. package/dist/ar/building-blocks/poi-header/poi-header.d.ts.map +1 -1
  12. package/dist/ar/building-blocks/poi-header/poi-header.js +5 -0
  13. package/dist/ar/building-blocks/poi-header/poi-header.js.map +1 -1
  14. package/dist/ar/poi-button/poi-button.css.js +110 -32
  15. package/dist/ar/poi-button/poi-button.css.js.map +1 -1
  16. package/dist/ar/poi-button/poi-button.d.ts +7 -2
  17. package/dist/ar/poi-button/poi-button.d.ts.map +1 -1
  18. package/dist/ar/poi-button/poi-button.js +15 -0
  19. package/dist/ar/poi-button/poi-button.js.map +1 -1
  20. package/dist/ar/types.d.ts +6 -1
  21. package/dist/ar/types.d.ts.map +1 -1
  22. package/dist/ar/types.js +5 -0
  23. package/dist/ar/types.js.map +1 -1
  24. package/dist/automation/automation-badge/automation-badge.d.ts +9 -1
  25. package/dist/automation/automation-badge/automation-badge.d.ts.map +1 -1
  26. package/dist/automation/automation-badge/automation-badge.js +119 -12
  27. package/dist/automation/automation-badge/automation-badge.js.map +1 -1
  28. package/dist/automation/automation-button/abstract-automation-button-storybook-helpers.d.ts +25 -1
  29. package/dist/automation/automation-button/abstract-automation-button-storybook-helpers.d.ts.map +1 -1
  30. package/dist/automation/automation-button/abstract-automation-button-storybook-helpers.js +7 -2
  31. package/dist/automation/automation-button/abstract-automation-button-storybook-helpers.js.map +1 -1
  32. package/dist/automation/automation-button/abstract-automation-button.d.ts +10 -3
  33. package/dist/automation/automation-button/abstract-automation-button.d.ts.map +1 -1
  34. package/dist/automation/automation-button/abstract-automation-button.js +23 -2
  35. package/dist/automation/automation-button/abstract-automation-button.js.map +1 -1
  36. package/dist/automation/automation-button/automation-button.css.js +9 -4
  37. package/dist/automation/automation-button/automation-button.css.js.map +1 -1
  38. package/dist/automation/automation-button/automation-button.d.ts +4 -2
  39. package/dist/automation/automation-button/automation-button.d.ts.map +1 -1
  40. package/dist/automation/automation-button/automation-button.js +24 -6
  41. package/dist/automation/automation-button/automation-button.js.map +1 -1
  42. package/dist/automation/automation-tank/automation-tank.d.ts +3 -2
  43. package/dist/automation/automation-tank/automation-tank.d.ts.map +1 -1
  44. package/dist/automation/automation-tank/automation-tank.js +13 -2
  45. package/dist/automation/automation-tank/automation-tank.js.map +1 -1
  46. package/dist/components/accordion-card/accordion-card.css.js +34 -0
  47. package/dist/components/accordion-card/accordion-card.css.js.map +1 -1
  48. package/dist/components/accordion-card/accordion-card.d.ts +3 -2
  49. package/dist/components/accordion-card/accordion-card.d.ts.map +1 -1
  50. package/dist/components/accordion-card/accordion-card.js +4 -3
  51. package/dist/components/accordion-card/accordion-card.js.map +1 -1
  52. package/dist/components/alert-button/alert-button.css.js +744 -7
  53. package/dist/components/alert-button/alert-button.css.js.map +1 -1
  54. package/dist/components/alert-button/alert-button.d.ts +3 -1
  55. package/dist/components/alert-button/alert-button.d.ts.map +1 -1
  56. package/dist/components/alert-button/alert-button.js +33 -31
  57. package/dist/components/alert-button/alert-button.js.map +1 -1
  58. package/dist/components/alert-frame/alert-frame.css.js +116 -29
  59. package/dist/components/alert-frame/alert-frame.css.js.map +1 -1
  60. package/dist/components/alert-frame/alert-frame.d.ts +42 -15
  61. package/dist/components/alert-frame/alert-frame.d.ts.map +1 -1
  62. package/dist/components/alert-frame/alert-frame.js +68 -17
  63. package/dist/components/alert-frame/alert-frame.js.map +1 -1
  64. package/dist/components/alert-frame/critical-badge.d.ts +12 -0
  65. package/dist/components/alert-frame/critical-badge.d.ts.map +1 -0
  66. package/dist/components/alert-frame/critical-badge.js +47 -0
  67. package/dist/components/alert-frame/critical-badge.js.map +1 -0
  68. package/dist/components/alert-frame/diagnostic-badge.d.ts +12 -0
  69. package/dist/components/alert-frame/diagnostic-badge.d.ts.map +1 -0
  70. package/dist/components/alert-frame/diagnostic-badge.js +60 -0
  71. package/dist/components/alert-frame/diagnostic-badge.js.map +1 -0
  72. package/dist/components/alert-icon/alert-icon.d.ts +6 -1
  73. package/dist/components/alert-icon/alert-icon.d.ts.map +1 -1
  74. package/dist/components/alert-icon/alert-icon.js +96 -38
  75. package/dist/components/alert-icon/alert-icon.js.map +1 -1
  76. package/dist/components/alert-icon/icons/icon-critical.d.ts +3 -0
  77. package/dist/components/alert-icon/icons/icon-critical.d.ts.map +1 -0
  78. package/dist/components/alert-icon/icons/icon-critical.js +26 -0
  79. package/dist/components/alert-icon/icons/icon-critical.js.map +1 -0
  80. package/dist/components/alert-list-details/alert-list-details.d.ts.map +1 -1
  81. package/dist/components/alert-list-details/alert-list-details.js +6 -7
  82. package/dist/components/alert-list-details/alert-list-details.js.map +1 -1
  83. package/dist/components/badge/badge.css.js +50 -2
  84. package/dist/components/badge/badge.css.js.map +1 -1
  85. package/dist/components/badge/badge.d.ts +13 -2
  86. package/dist/components/badge/badge.d.ts.map +1 -1
  87. package/dist/components/badge/badge.js +54 -0
  88. package/dist/components/badge/badge.js.map +1 -1
  89. package/dist/components/navigation-item/navigation-item.css.js +5 -0
  90. package/dist/components/navigation-item/navigation-item.css.js.map +1 -1
  91. package/dist/components/navigation-item/navigation-item.d.ts +18 -0
  92. package/dist/components/navigation-item/navigation-item.d.ts.map +1 -1
  93. package/dist/components/navigation-item/navigation-item.js +49 -1
  94. package/dist/components/navigation-item/navigation-item.js.map +1 -1
  95. package/dist/components/navigation-item-group/navigation-item-group.css.js +8 -0
  96. package/dist/components/navigation-item-group/navigation-item-group.css.js.map +1 -1
  97. package/dist/components/navigation-item-group/navigation-item-group.d.ts +22 -0
  98. package/dist/components/navigation-item-group/navigation-item-group.d.ts.map +1 -1
  99. package/dist/components/navigation-item-group/navigation-item-group.js +63 -1
  100. package/dist/components/navigation-item-group/navigation-item-group.js.map +1 -1
  101. package/dist/components/navigation-menu/navigation-menu.d.ts +29 -1
  102. package/dist/components/navigation-menu/navigation-menu.d.ts.map +1 -1
  103. package/dist/components/navigation-menu/navigation-menu.js +105 -0
  104. package/dist/components/navigation-menu/navigation-menu.js.map +1 -1
  105. package/dist/components/tree-navigation/tree-navigation.css.js +18 -0
  106. package/dist/components/tree-navigation/tree-navigation.css.js.map +1 -0
  107. package/dist/components/tree-navigation/tree-navigation.d.ts +74 -0
  108. package/dist/components/tree-navigation/tree-navigation.d.ts.map +1 -0
  109. package/dist/components/tree-navigation/tree-navigation.js +120 -0
  110. package/dist/components/tree-navigation/tree-navigation.js.map +1 -0
  111. package/dist/components/tree-navigation-group/tree-navigation-group.css.js +22 -0
  112. package/dist/components/tree-navigation-group/tree-navigation-group.css.js.map +1 -0
  113. package/dist/components/tree-navigation-group/tree-navigation-group.d.ts +94 -0
  114. package/dist/components/tree-navigation-group/tree-navigation-group.d.ts.map +1 -0
  115. package/dist/components/tree-navigation-group/tree-navigation-group.js +116 -0
  116. package/dist/components/tree-navigation-group/tree-navigation-group.js.map +1 -0
  117. package/dist/components/tree-navigation-item/tree-navigation-item.css.js +429 -0
  118. package/dist/components/tree-navigation-item/tree-navigation-item.css.js.map +1 -0
  119. package/dist/components/tree-navigation-item/tree-navigation-item.d.ts +160 -0
  120. package/dist/components/tree-navigation-item/tree-navigation-item.d.ts.map +1 -0
  121. package/dist/components/tree-navigation-item/tree-navigation-item.js +208 -0
  122. package/dist/components/tree-navigation-item/tree-navigation-item.js.map +1 -0
  123. package/dist/index.js +2 -1
  124. package/dist/internal/tree-roving-navigator.d.ts +71 -0
  125. package/dist/internal/tree-roving-navigator.d.ts.map +1 -0
  126. package/dist/internal/tree-roving-navigator.js +172 -0
  127. package/dist/internal/tree-roving-navigator.js.map +1 -0
  128. package/dist/manual-icon/icon-alerts-critical-twotone.d.ts +30 -0
  129. package/dist/manual-icon/icon-alerts-critical-twotone.d.ts.map +1 -0
  130. package/dist/manual-icon/icon-alerts-critical-twotone.js +55 -0
  131. package/dist/manual-icon/icon-alerts-critical-twotone.js.map +1 -0
  132. package/dist/manual-icon/icon-alerts-diagnostic-twotone.d.ts +30 -0
  133. package/dist/manual-icon/icon-alerts-diagnostic-twotone.d.ts.map +1 -0
  134. package/dist/manual-icon/icon-alerts-diagnostic-twotone.js +55 -0
  135. package/dist/manual-icon/icon-alerts-diagnostic-twotone.js.map +1 -0
  136. package/dist/navigation-instruments/readout/readout.css.js +3 -18
  137. package/dist/navigation-instruments/readout/readout.css.js.map +1 -1
  138. package/dist/navigation-instruments/readout/readout.d.ts +6 -7
  139. package/dist/navigation-instruments/readout/readout.d.ts.map +1 -1
  140. package/dist/navigation-instruments/readout/readout.js +54 -52
  141. package/dist/navigation-instruments/readout/readout.js.map +1 -1
  142. package/dist/navigation-instruments/readout-list-item/readout-list-item.css.js +9 -36
  143. package/dist/navigation-instruments/readout-list-item/readout-list-item.css.js.map +1 -1
  144. package/dist/navigation-instruments/readout-list-item/readout-list-item.d.ts +8 -8
  145. package/dist/navigation-instruments/readout-list-item/readout-list-item.d.ts.map +1 -1
  146. package/dist/navigation-instruments/readout-list-item/readout-list-item.js +49 -42
  147. package/dist/navigation-instruments/readout-list-item/readout-list-item.js.map +1 -1
  148. package/dist/openbridge.css +155 -0
  149. package/dist/types.d.ts +7 -1
  150. package/dist/types.d.ts.map +1 -1
  151. package/dist/types.js +18 -7
  152. package/dist/types.js.map +1 -1
  153. package/package.json +1 -1
  154. package/src/alert-severity.ts +225 -0
  155. package/src/ar/building-blocks/poi-header/poi-header.css +38 -7
  156. package/src/ar/building-blocks/poi-header/poi-header.ts +6 -1
  157. package/src/ar/poi-button/poi-button.css +126 -32
  158. package/src/ar/poi-button/poi-button.ts +16 -1
  159. package/src/ar/types.ts +5 -0
  160. package/src/automation/automation-badge/automation-badge.ts +124 -17
  161. package/src/automation/automation-button/abstract-automation-button-storybook-helpers.ts +5 -0
  162. package/src/automation/automation-button/abstract-automation-button.ts +21 -3
  163. package/src/automation/automation-button/automation-button.css +9 -4
  164. package/src/automation/automation-button/automation-button.ts +25 -7
  165. package/src/automation/automation-tank/automation-tank.stories.ts +22 -0
  166. package/src/automation/automation-tank/automation-tank.ts +12 -3
  167. package/src/components/accordion-card/accordion-card.css +33 -0
  168. package/src/components/accordion-card/accordion-card.stories.ts +2 -1
  169. package/src/components/accordion-card/accordion-card.ts +3 -4
  170. package/src/components/alert-button/alert-button.css +89 -5
  171. package/src/components/alert-button/alert-button.stories.ts +43 -0
  172. package/src/components/alert-button/alert-button.ts +43 -32
  173. package/src/components/alert-frame/alert-frame.css +116 -29
  174. package/src/components/alert-frame/alert-frame.stories.ts +63 -3
  175. package/src/components/alert-frame/alert-frame.ts +114 -23
  176. package/src/components/alert-frame/critical-badge.ts +39 -0
  177. package/src/components/alert-frame/diagnostic-badge.ts +52 -0
  178. package/src/components/alert-icon/alert-icon.stories.ts +41 -0
  179. package/src/components/alert-icon/alert-icon.ts +101 -38
  180. package/src/components/alert-icon/icons/icon-critical.ts +23 -0
  181. package/src/components/alert-list-details/alert-list-details.stories.ts +67 -0
  182. package/src/components/alert-list-details/alert-list-details.ts +11 -10
  183. package/src/components/badge/badge.css +52 -2
  184. package/src/components/badge/badge.stories.ts +75 -0
  185. package/src/components/badge/badge.ts +70 -2
  186. package/src/components/navigation-item/navigation-item.css +5 -0
  187. package/src/components/navigation-item/navigation-item.ts +56 -1
  188. package/src/components/navigation-item-group/navigation-item-group.css +8 -0
  189. package/src/components/navigation-item-group/navigation-item-group.ts +71 -1
  190. package/src/components/navigation-menu/navigation-menu.stories.ts +54 -0
  191. package/src/components/navigation-menu/navigation-menu.ts +151 -0
  192. package/src/components/tree-navigation/tree-navigation.css +7 -0
  193. package/src/components/tree-navigation/tree-navigation.stories.ts +162 -0
  194. package/src/components/tree-navigation/tree-navigation.ts +188 -0
  195. package/src/components/tree-navigation-group/tree-navigation-group.css +11 -0
  196. package/src/components/tree-navigation-group/tree-navigation-group.ts +157 -0
  197. package/src/components/tree-navigation-item/tree-navigation-item.css +258 -0
  198. package/src/components/tree-navigation-item/tree-navigation-item.stories.ts +119 -0
  199. package/src/components/tree-navigation-item/tree-navigation-item.ts +307 -0
  200. package/src/internal/tree-roving-navigator.ts +231 -0
  201. package/src/main.css +1 -0
  202. package/src/manual-icon/icon-alerts-critical-twotone.ts +60 -0
  203. package/src/manual-icon/icon-alerts-diagnostic-twotone.ts +60 -0
  204. package/src/mixins/alert.css +29 -0
  205. package/src/navigation-instruments/readout/readout.css +3 -24
  206. package/src/navigation-instruments/readout/readout.stories.ts +57 -4
  207. package/src/navigation-instruments/readout/readout.ts +69 -63
  208. package/src/navigation-instruments/readout-list-item/readout-list-item.css +9 -42
  209. package/src/navigation-instruments/readout-list-item/readout-list-item.stories.ts +57 -14
  210. package/src/navigation-instruments/readout-list-item/readout-list-item.ts +54 -44
  211. package/src/palettes/critical.md +95 -0
  212. package/src/palettes/manual.css +165 -0
  213. package/src/types.ts +20 -3
@@ -7,6 +7,11 @@
7
7
  height: 0;
8
8
  }
9
9
 
10
+ .button-wrapper {
11
+ width: fit-content;
12
+ height: fit-content;
13
+ }
14
+
10
15
  .positioning-point {
11
16
  &.label-bottom {
12
17
  top: calc(var(--automation-components-button-touch-target-size) / -2);
@@ -230,8 +235,8 @@
230
235
 
231
236
  .alert-frame {
232
237
  position: absolute;
233
- top: -1px;
234
- right: -1px;
235
- left: -1px;
236
- bottom: -1px;
238
+ top: 0;
239
+ right: 0;
240
+ left: 0;
241
+ bottom: 0;
237
242
  }
@@ -15,10 +15,12 @@ import '../../icons/icon-arrow-left-google.js';
15
15
  import '../../icons/icon-arrow-right-google.js';
16
16
  import '../../components/alert-frame/alert-frame.js';
17
17
  import {
18
- ObcAlertFrameStatus,
19
18
  ObcAlertFrameThickness,
20
19
  ObcAlertFrameType,
20
+ ObcAlertFrameMode,
21
+ wrapWithAlertFrame,
21
22
  } from '../../components/alert-frame/alert-frame.js';
23
+ import {AlertType} from '../../types.js';
22
24
  import {customElement} from '../../decorator.js';
23
25
  import {
24
26
  AutomationButtonReadoutStack,
@@ -102,8 +104,9 @@ export class ObcAutomationButton extends LitElement {
102
104
  ObcAlertFrameType.SmallSideFlip;
103
105
  @property({type: String}) alertFrameThickness: ObcAlertFrameThickness =
104
106
  ObcAlertFrameThickness.Small;
105
- @property({type: String}) alertFrameStatus: ObcAlertFrameStatus =
106
- ObcAlertFrameStatus.Alarm;
107
+ @property({type: String}) alertFrameStatus: AlertType = AlertType.Alarm;
108
+ @property({type: String}) alertFrameMode: ObcAlertFrameMode =
109
+ ObcAlertFrameMode.ackedActive;
107
110
  @property({type: Boolean, attribute: false}) showAlertCategoryIcon: boolean =
108
111
  true;
109
112
  @property({type: Boolean}) showAlertIcon: boolean = false;
@@ -165,12 +168,13 @@ export class ObcAutomationButton extends LitElement {
165
168
  ></obc-automation-button-readout-stack>
166
169
  `
167
170
  : nothing}
168
- ${this.alert
171
+ ${this.alert && this.positioning === AutomationButtonPositioning.point
169
172
  ? html` <obc-alert-frame
170
173
  class="alert-frame"
171
174
  .type=${this.alertFrameType}
172
175
  .thickness=${this.alertFrameThickness}
173
176
  .status=${this.alertFrameStatus}
177
+ .mode=${this.alertFrameMode}
174
178
  .showAlertCategoryIcon=${this.showAlertCategoryIcon}
175
179
  .showIcon=${this.showAlertIcon}
176
180
  >
@@ -186,17 +190,31 @@ export class ObcAutomationButton extends LitElement {
186
190
  private wrapContent(content: HTMLTemplateResult): HTMLTemplateResult {
187
191
  if (this.positioning === AutomationButtonPositioning.point) {
188
192
  return html`<div class="point-wrapper">${content}</div>`;
189
- } else if (this.positioning === AutomationButtonPositioning.symbol) {
193
+ }
194
+ const innerContent = wrapWithAlertFrame(
195
+ this.alert
196
+ ? {
197
+ type: this.alertFrameType,
198
+ thickness: this.alertFrameThickness,
199
+ status: this.alertFrameStatus,
200
+ mode: this.alertFrameMode,
201
+ showIcon: this.showAlertIcon,
202
+ showAlertCategoryIcon: this.showAlertCategoryIcon,
203
+ }
204
+ : false,
205
+ content
206
+ );
207
+ if (this.positioning === AutomationButtonPositioning.symbol) {
190
208
  return html`<div
191
209
  class=${classMap({
192
210
  'symbol-wrapper': true,
193
211
  ['label-' + this.readoutPosition]: true,
194
212
  })}
195
213
  >
196
- ${content}
214
+ ${innerContent}
197
215
  </div> `;
198
216
  }
199
- return content;
217
+ return innerContent;
200
218
  }
201
219
 
202
220
  static override styles = unsafeCSS(compentStyle);
@@ -516,6 +516,28 @@ export const WithAlertCautionCompact: Story = {
516
516
  },
517
517
  };
518
518
 
519
+ export const WithAlertIsaCritical: Story = {
520
+ ...WithAlertAlarm,
521
+ args: {
522
+ type: TankType.atmospheric,
523
+ alert: true,
524
+ alertFrameStatus: ObcAlertFrameStatus.IsaCritical,
525
+ alertFrameType: ObcAlertFrameType.SmallSideFlip,
526
+ badgeAlert: AutomationButtonBadgeAlert.IsaCritical,
527
+ },
528
+ };
529
+
530
+ export const WithAlertIsaDiagnostic: Story = {
531
+ ...WithAlertAlarm,
532
+ args: {
533
+ type: TankType.atmospheric,
534
+ alert: true,
535
+ alertFrameStatus: ObcAlertFrameStatus.IsaDiagnostic,
536
+ alertFrameType: ObcAlertFrameType.Regular,
537
+ badgeAlert: AutomationButtonBadgeAlert.IsaDiagnostic,
538
+ },
539
+ };
540
+
519
541
  /**
520
542
  * Demonstrates `positioning="button"`: the tank host fills its parent
521
543
  * container (100% × 100%) with no P&ID anchor offset, so it behaves like a
@@ -30,10 +30,10 @@ import '../../building-blocks/bar-vertical/bar-vertical.js';
30
30
  import '../../components/alert-frame/alert-frame.js';
31
31
  import {Priority} from '../../navigation-instruments/types.js';
32
32
  import {
33
- ObcAlertFrameStatus,
34
33
  ObcAlertFrameThickness,
35
34
  ObcAlertFrameType,
36
35
  } from '../../components/alert-frame/alert-frame.js';
36
+ import {AlertType} from '../../types.js';
37
37
  import type {ChartLineDataItem} from '../../building-blocks/chart-line/chart-line-base.js';
38
38
  import type {LinearAdvice} from '../../building-blocks/instrument-linear/advice.js';
39
39
  import {
@@ -221,8 +221,7 @@ export class ObcAutomationTank extends LitElement {
221
221
  ObcAlertFrameType.SmallSideFlip;
222
222
  @property({type: String}) alertFrameThickness: ObcAlertFrameThickness =
223
223
  ObcAlertFrameThickness.Small;
224
- @property({type: String}) alertFrameStatus: ObcAlertFrameStatus =
225
- ObcAlertFrameStatus.Alarm;
224
+ @property({type: String}) alertFrameStatus: AlertType = AlertType.Alarm;
226
225
  @property({type: Boolean, attribute: false}) showAlertCategoryIcon: boolean =
227
226
  true;
228
227
  @property({type: Boolean}) showAlertIcon: boolean = false;
@@ -316,6 +315,16 @@ export class ObcAutomationTank extends LitElement {
316
315
  return ObcAutomationBadgeType.Warning;
317
316
  case AutomationButtonBadgeAlert.Alarm:
318
317
  return ObcAutomationBadgeType.Alarm;
318
+ case AutomationButtonBadgeAlert.IsaCritical:
319
+ return ObcAutomationBadgeType.IsaCritical;
320
+ case AutomationButtonBadgeAlert.IsaHigh:
321
+ return ObcAutomationBadgeType.IsaHigh;
322
+ case AutomationButtonBadgeAlert.IsaMedium:
323
+ return ObcAutomationBadgeType.IsaMedium;
324
+ case AutomationButtonBadgeAlert.IsaLow:
325
+ return ObcAutomationBadgeType.IsaLow;
326
+ case AutomationButtonBadgeAlert.IsaDiagnostic:
327
+ return ObcAutomationBadgeType.IsaDiagnostic;
319
328
  default:
320
329
  return null;
321
330
  }
@@ -205,4 +205,37 @@
205
205
 
206
206
  .alert {
207
207
  pointer-events: none;
208
+
209
+ /* z-index follows ALERT_SEVERITY_PRIORITY: more severe statuses stack on top. */
210
+ &.alert-isa-critical {
211
+ z-index: 8;
212
+ }
213
+
214
+ &.alert-alarm {
215
+ z-index: 7;
216
+ }
217
+
218
+ &.alert-isa-high {
219
+ z-index: 6;
220
+ }
221
+
222
+ &.alert-warning {
223
+ z-index: 5;
224
+ }
225
+
226
+ &.alert-isa-medium {
227
+ z-index: 4;
228
+ }
229
+
230
+ &.alert-caution {
231
+ z-index: 3;
232
+ }
233
+
234
+ &.alert-isa-low {
235
+ z-index: 2;
236
+ }
237
+
238
+ &.alert-isa-diagnostic {
239
+ z-index: 1;
240
+ }
208
241
  }
@@ -229,7 +229,7 @@ export const Multiple: Story = {
229
229
  .size="${AccordionSize.SingleLine}"
230
230
  .position="${Position.top}"
231
231
  .hasAlert=${true}
232
- .alertFrameStatus="${ObcAlertFrameStatus.Warning}"
232
+ .alertFrameStatus="${ObcAlertFrameStatus.Alarm}"
233
233
  >
234
234
  <div slot="expanded-content">Placeholder text</div>
235
235
  </obc-accordion-card>
@@ -241,6 +241,7 @@ export const Multiple: Story = {
241
241
  .hasDescription=${true}
242
242
  .position="${Position.center}"
243
243
  .hasAlert=${true}
244
+ .alertFrameStatus="${ObcAlertFrameStatus.Warning}"
244
245
  >
245
246
  <div slot="expanded-content">Placeholder text</div>
246
247
  </obc-accordion-card>
@@ -7,10 +7,10 @@ import '../../icons/icon-chevron-up-google.js';
7
7
  import '../../icons/icon-chevron-down-google.js';
8
8
  import '../alert-frame/alert-frame.js';
9
9
  import {
10
- ObcAlertFrameStatus,
11
10
  ObcAlertFrameThickness,
12
11
  ObcAlertFrameType,
13
12
  } from '../alert-frame/alert-frame.js';
13
+ import {AlertType} from '../../types.js';
14
14
 
15
15
  export enum AccordionSize {
16
16
  SingleLine = 'single-line',
@@ -188,8 +188,7 @@ export class ObcAccordionCard extends LitElement {
188
188
  * Status of the alert frame overlay (used when `hasAlert` is true).
189
189
  * See `obc-alert-frame` for available statuses.
190
190
  */
191
- @property({type: String}) alertFrameStatus: ObcAlertFrameStatus =
192
- ObcAlertFrameStatus.Alarm;
191
+ @property({type: String}) alertFrameStatus: AlertType = AlertType.Alarm;
193
192
 
194
193
  private get shouldShowDescription() {
195
194
  return (
@@ -304,7 +303,7 @@ export class ObcAccordionCard extends LitElement {
304
303
  ${this.hasAlert
305
304
  ? html`
306
305
  <obc-alert-frame
307
- class="alert"
306
+ class="alert alert-${this.alertFrameStatus}"
308
307
  .sharpEdgeTopLeft=${this.isShartEdgeTop()}
309
308
  .sharpEdgeTopRight=${this.isShartEdgeTop()}
310
309
  .sharpEdgeBottomLeft=${this.isShartEdgeBottom()}
@@ -89,6 +89,46 @@ button {
89
89
  }
90
90
  }
91
91
 
92
+ .type-enhanced.alert-type-isa-critical & {
93
+ @mixin style style=normal visibleWrapperClass=.blink;
94
+ @mixin style style=critical visibleWrapperClass=.visible-wrapper;
95
+ & .visible-wrapper {
96
+ color: var(--on-critical-active-color);
97
+ }
98
+ }
99
+
100
+ .type-enhanced.alert-type-isa-high & {
101
+ @mixin style style=normal visibleWrapperClass=.blink;
102
+ @mixin style style=alarm visibleWrapperClass=.visible-wrapper;
103
+ & .visible-wrapper {
104
+ color: var(--on-alarm-active-color);
105
+ }
106
+ }
107
+
108
+ .type-enhanced.alert-type-isa-medium & {
109
+ @mixin style style=normal visibleWrapperClass=.blink;
110
+ @mixin style style=warning visibleWrapperClass=.visible-wrapper;
111
+ & .visible-wrapper {
112
+ color: var(--on-warning-active-color);
113
+ }
114
+ }
115
+
116
+ .type-enhanced.alert-type-isa-low & {
117
+ @mixin style style=normal visibleWrapperClass=.blink;
118
+ @mixin style style=caution visibleWrapperClass=.visible-wrapper;
119
+ & .visible-wrapper {
120
+ color: var(--on-caution-active-color);
121
+ }
122
+ }
123
+
124
+ .type-enhanced.alert-type-isa-diagnostic & {
125
+ @mixin style style=normal visibleWrapperClass=.blink;
126
+ @mixin style style=notification visibleWrapperClass=.visible-wrapper;
127
+ & .visible-wrapper {
128
+ color: var(--on-notification-active-color);
129
+ }
130
+ }
131
+
92
132
  & .visible-wrapper,
93
133
  & .blink {
94
134
  border-radius: var(--ui-components-button-border-radius-top-left)
@@ -127,7 +167,29 @@ button {
127
167
  }
128
168
  }
129
169
 
130
- .blinking.alert-type-alarm .alert-button {
170
+ .blinking.alert-type-warning .alert-button,
171
+ .blinking.alert-type-isa-medium .alert-button {
172
+ .visible-wrapper {
173
+ opacity: var(--warning-blink-on);
174
+ }
175
+
176
+ .blink {
177
+ opacity: var(--warning-blink-off);
178
+ }
179
+ }
180
+
181
+ .blinking.alert-type-isa-critical .alert-button {
182
+ .visible-wrapper {
183
+ opacity: var(--critical-blink-on);
184
+ }
185
+
186
+ .blink {
187
+ opacity: var(--critical-blink-off);
188
+ }
189
+ }
190
+
191
+ .blinking.alert-type-alarm .alert-button,
192
+ .blinking.alert-type-isa-high .alert-button {
131
193
  .visible-wrapper {
132
194
  opacity: var(--alarm-blink-on);
133
195
  }
@@ -137,13 +199,14 @@ button {
137
199
  }
138
200
  }
139
201
 
140
- .blinking.alert-type-warning .alert-button {
202
+ .blinking.alert-type-caution .alert-button,
203
+ .blinking.alert-type-isa-low .alert-button {
141
204
  .visible-wrapper {
142
- opacity: var(--warning-blink-on);
205
+ opacity: var(--low-blink-on);
143
206
  }
144
207
 
145
208
  .blink {
146
- opacity: var(--warning-blink-off);
209
+ opacity: var(--low-blink-off);
147
210
  }
148
211
  }
149
212
 
@@ -163,11 +226,32 @@ button {
163
226
  --icon-stroke: var(--warning-pressed-border-color);
164
227
  }
165
228
 
166
- .alert-type-caution {
229
+ .alert-type-caution,
230
+ .alert-type-isa-low {
167
231
  --icon-fill: var(--caution-enabled-background-color);
168
232
  --icon-stroke: var(--caution-pressed-border-color);
169
233
  }
170
234
 
235
+ .alert-type-isa-critical {
236
+ --icon-fill: var(--alert-critical-color);
237
+ --icon-stroke: var(--alert-critical-outline-color);
238
+ }
239
+
240
+ .alert-type-isa-high {
241
+ --icon-fill: var(--alarm-enabled-background-color);
242
+ --icon-stroke: var(--alarm-pressed-border-color);
243
+ }
244
+
245
+ .alert-type-isa-medium {
246
+ --icon-fill: var(--warning-enabled-background-color);
247
+ --icon-stroke: var(--warning-pressed-border-color);
248
+ }
249
+
250
+ .alert-type-isa-diagnostic {
251
+ --icon-fill: var(--alert-diagnostic-color);
252
+ --icon-stroke: var(--alert-diagnostic-outline-color);
253
+ }
254
+
171
255
  .silence-button {
172
256
  @mixin style style=normal visibleWrapperClass=.visible-wrapper;
173
257
  color: var(--on-normal-neutral-color);
@@ -207,3 +207,46 @@ export const EnhancedCaution: Story = {
207
207
  nAlerts: 3,
208
208
  },
209
209
  };
210
+
211
+ export const EnhancedIsaCritical: Story = {
212
+ args: {
213
+ alertType: AlertType.IsaCritical,
214
+ type: ObcAlertButtonType.Enhanced,
215
+ nAlerts: 3,
216
+ blinking: true,
217
+ },
218
+ };
219
+
220
+ export const NormalIsaHigh: Story = {
221
+ args: {
222
+ alertType: AlertType.IsaHigh,
223
+ type: ObcAlertButtonType.Normal,
224
+ nAlerts: 2,
225
+ blinking: true,
226
+ },
227
+ };
228
+
229
+ export const NormalIsaMedium: Story = {
230
+ args: {
231
+ alertType: AlertType.IsaMedium,
232
+ type: ObcAlertButtonType.Normal,
233
+ nAlerts: 1,
234
+ blinking: true,
235
+ },
236
+ };
237
+
238
+ export const FlatIsaLow: Story = {
239
+ args: {
240
+ alertType: AlertType.IsaLow,
241
+ type: ObcAlertButtonType.Flat,
242
+ nAlerts: 1,
243
+ },
244
+ };
245
+
246
+ export const NormalIsaDiagnostic: Story = {
247
+ args: {
248
+ alertType: AlertType.IsaDiagnostic,
249
+ type: ObcAlertButtonType.Normal,
250
+ nAlerts: 1,
251
+ },
252
+ };
@@ -4,14 +4,20 @@ import compentStyle from './alert-button.css?inline';
4
4
  import '../../icons/icon-alerts.js';
5
5
  import '../../icons/icon-alerts-active.js';
6
6
  import '../../icons/icon-notification.js';
7
- import '../../icons/icon-notification-filled.js';
8
7
  import '../../icons/icon-notification-advice.js';
9
8
  import '../../icons/icon-notification-advice-active.js';
10
9
  import '../../icons/icon-silence-iec.js';
11
10
  import '../../icons/icon-alerts-alarm-twotone.js';
12
11
  import '../../icons/icon-alerts-warning-twotone.js';
13
12
  import '../../icons/icon-alerts-caution-twotone.js';
13
+ import '../../manual-icon/icon-alerts-critical-twotone.js';
14
+ import '../../manual-icon/icon-alerts-diagnostic-twotone.js';
14
15
  import {AlertType} from '../../types.js';
16
+ import {
17
+ getAlertTwotoneComponent,
18
+ AlertTwotoneComponent,
19
+ supportsBlinking,
20
+ } from '../../alert-severity.js';
15
21
  import {classMap} from 'lit/directives/class-map.js';
16
22
  import {customElement} from '../../decorator.js';
17
23
 
@@ -196,31 +202,48 @@ export class ObcAlertButton extends LitElement {
196
202
  super.disconnectedCallback();
197
203
  }
198
204
 
199
- private alertIcon() {
200
- const isIdle = this.nAlerts === 0;
201
- if (isIdle) {
202
- return html`<obi-alerts class="icon"></obi-alerts>`;
203
- } else {
204
- if (this.type === ObcAlertButtonType.Enhanced) {
205
- return html`<obi-alerts-active class="icon"></obi-alerts-active>`;
206
- } else if (this.alertType === AlertType.Alarm) {
207
- return html`<obi-alerts-alarm-twotone
205
+ private renderAlertTwotoneIcon() {
206
+ const twotone = this.alertType
207
+ ? getAlertTwotoneComponent(this.alertType)
208
+ : AlertTwotoneComponent.Caution;
209
+ switch (twotone) {
210
+ case AlertTwotoneComponent.Critical:
211
+ return html`<obi-alerts-critical-twotone
208
212
  useCssColor
209
213
  class="icon"
210
- ></obi-alerts-alarm-twotone>`;
211
- } else if (this.alertType === AlertType.Warning) {
214
+ ></obi-alerts-critical-twotone>`;
215
+ case AlertTwotoneComponent.Diagnostic:
216
+ return html`<obi-alerts-diagnostic-twotone
217
+ useCssColor
218
+ class="icon"
219
+ ></obi-alerts-diagnostic-twotone>`;
220
+ case AlertTwotoneComponent.Warning:
212
221
  return html`<obi-alerts-warning-twotone
213
222
  useCssColor
214
223
  class="icon"
215
224
  ></obi-alerts-warning-twotone>`;
216
- } else {
225
+ case AlertTwotoneComponent.Caution:
217
226
  return html`<obi-alerts-caution-twotone
218
227
  useCssColor
219
228
  class="icon"
220
229
  ></obi-alerts-caution-twotone>`;
221
- // }
222
- }
230
+ default:
231
+ return html`<obi-alerts-alarm-twotone
232
+ useCssColor
233
+ class="icon"
234
+ ></obi-alerts-alarm-twotone>`;
235
+ }
236
+ }
237
+
238
+ private alertIcon() {
239
+ const isIdle = this.nAlerts === 0;
240
+ if (isIdle) {
241
+ return html`<obi-alerts class="icon"></obi-alerts>`;
242
+ }
243
+ if (this.type === ObcAlertButtonType.Enhanced) {
244
+ return html`<obi-alerts-active class="icon"></obi-alerts-active>`;
223
245
  }
246
+ return this.renderAlertTwotoneIcon();
224
247
  }
225
248
 
226
249
  private alertIconNegative() {
@@ -228,23 +251,8 @@ export class ObcAlertButton extends LitElement {
228
251
  this.nAlerts === 0 || this.type !== ObcAlertButtonType.Enhanced;
229
252
  if (useIdle) {
230
253
  return html`<obi-alerts class="icon"></obi-alerts>`;
231
- } else if (this.alertType === AlertType.Alarm) {
232
- return html`<obi-alerts-alarm-twotone
233
- useCssColor
234
- class="icon"
235
- ></obi-alerts-alarm-twotone>`;
236
- } else if (this.alertType === AlertType.Warning) {
237
- return html`<obi-alerts-warning-twotone
238
- useCssColor
239
- class="icon"
240
- ></obi-alerts-warning-twotone>`;
241
- } else {
242
- return html`<obi-alerts-caution-twotone
243
- useCssColor
244
- class="icon"
245
- ></obi-alerts-caution-twotone>`;
246
- // }
247
254
  }
255
+ return this.renderAlertTwotoneIcon();
248
256
  }
249
257
 
250
258
  private get activeType(): ObcAlertButtonType {
@@ -270,7 +278,10 @@ export class ObcAlertButton extends LitElement {
270
278
  const showCounter =
271
279
  this.counter && hasAlerts && this.activeType !== ObcAlertButtonType.Flat;
272
280
  const showBlinking =
273
- this.blinking && hasAlerts && this.alertType !== AlertType.Caution;
281
+ this.blinking &&
282
+ hasAlerts &&
283
+ this.alertType !== undefined &&
284
+ supportsBlinking(this.alertType);
274
285
  return html`
275
286
  <div
276
287
  class=${classMap({