@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
@@ -0,0 +1,429 @@
1
+ import { css } from "lit";
2
+ const componentStyle = css`
3
+ * {
4
+ -webkit-tap-highlight-color: transparent;
5
+ }
6
+
7
+ * {
8
+ box-sizing: border-box;
9
+ }
10
+
11
+ :host {
12
+ display: block;
13
+ }
14
+
15
+ .wrapper {
16
+ display: flex;
17
+ align-items: center;
18
+ width: 100%;
19
+ height: var(--menu-navigation-components-tree-navigation-item-touch-target);
20
+ user-select: none;
21
+ }
22
+
23
+ .wrapper:focus-visible {
24
+ outline-offset: -2px;
25
+ }
26
+
27
+ .wrapper {
28
+ cursor: pointer;
29
+ }
30
+
31
+ .wrapper:focus {
32
+ outline: none;
33
+ }
34
+
35
+ .wrapper .visible-wrapper {
36
+ border-color: var(--flat-enabled-border-color);
37
+ background-color: var(--flat-enabled-background-color);
38
+ border-width: 1px;
39
+ border-style: solid;
40
+ cursor: pointer;
41
+ --base-border-color: var(--flat-enabled-border-color);
42
+ --base-background-color: var(--flat-enabled-background-color);
43
+ }
44
+
45
+ .wrapper.activated .visible-wrapper {
46
+ border-color: var(--flat-activated-border-color);
47
+ background-color: var(--flat-activated-background-color);
48
+ --base-border-color: var(--flat-activated-border-color);
49
+ --base-background-color: var(--flat-activated-background-color);
50
+ }
51
+
52
+ @media (hover:hover) {
53
+
54
+ .wrapper:hover .visible-wrapper {
55
+ border-color: color-mix(in srgb, var(--flat-hover-border-color) calc(var(--obc-can-hover) * 100%), var(--base-border-color));
56
+ background-color: color-mix(in srgb, var(--flat-hover-background-color) calc(var(--obc-can-hover) * 100%), var(--base-background-color));
57
+ }
58
+ }
59
+
60
+ .wrapper:active .visible-wrapper {
61
+ border-color: var(--flat-pressed-border-color);
62
+ background-color: var(--flat-pressed-background-color);
63
+ }
64
+
65
+ .wrapper:focus-visible .visible-wrapper {
66
+ outline-color: var(--border-focus-color);
67
+ outline-width: var(--global-size-spacing-border-weight-focusframe);
68
+ outline-style: solid;
69
+ border-color: var(--container-global-color);
70
+ z-index: 1;
71
+ }
72
+
73
+ .wrapper:disabled .visible-wrapper {
74
+ border-color: var(--flat-disabled-border-color);
75
+ background-color: var(--flat-disabled-background-color);
76
+ cursor: not-allowed;
77
+ color: var(--on-flat-disabled-color) !important;
78
+ }
79
+
80
+ .wrapper.disabled .visible-wrapper {
81
+ border-color: var(--flat-disabled-border-color);
82
+ background-color: var(--flat-disabled-background-color);
83
+ cursor: not-allowed;
84
+ color: var(--on-flat-disabled-color) !important;
85
+ }
86
+
87
+ .wrapper:disabled {
88
+ cursor: not-allowed;
89
+ }
90
+
91
+ .wrapper.disabled {
92
+ cursor: not-allowed;
93
+ }
94
+
95
+ .wrapper {
96
+ font-family: var(--global-typography-font-family);
97
+ font-weight: var(--global-typography-ui-body-font-weight);
98
+ font-size: var(--global-typography-ui-body-font-size);
99
+ line-height: var(--global-typography-ui-body-line-height);
100
+ font-feature-settings:
101
+ "liga" off,
102
+ "clig" off,
103
+ "ss04" on;
104
+ color: var(--on-flat-active-color);
105
+ }
106
+
107
+ .wrapper .visible-wrapper {
108
+ display: flex;
109
+ align-items: center;
110
+ width: 100%;
111
+ height: 100%;
112
+ border-radius: var(--global-border-radius-border-radius-base);
113
+ padding: 0
114
+ var(--menu-navigation-components-tree-navigation-item-padding-horizontal);
115
+ }
116
+
117
+ /*
118
+ * A checked row is not re-selectable, so it stays on the amplified enabled
119
+ * style with no hover/pressed feedback.
120
+ */
121
+
122
+ .wrapper.checked {
123
+ cursor: pointer;
124
+ }
125
+
126
+ .wrapper.checked:focus {
127
+ outline: none;
128
+ }
129
+
130
+ .wrapper.checked .visible-wrapper {
131
+ border-color: var(--amplified-enabled-border-color);
132
+ background-color: var(--amplified-enabled-background-color);
133
+ border-width: 1px;
134
+ border-style: solid;
135
+ cursor: pointer;
136
+ --base-border-color: var(--amplified-enabled-border-color);
137
+ --base-background-color: var(--amplified-enabled-background-color);
138
+ }
139
+
140
+ .wrapper.checked.activated .visible-wrapper {
141
+ border-color: var(--amplified-activated-border-color);
142
+ background-color: var(--amplified-activated-background-color);
143
+ --base-border-color: var(--amplified-activated-border-color);
144
+ --base-background-color: var(--amplified-activated-background-color);
145
+ }
146
+
147
+ @media (hover:hover) {
148
+
149
+ .wrapper.checked:hover .visible-wrapper {
150
+ border-color: color-mix(in srgb, var(--amplified-hover-border-color) calc(var(--obc-can-hover) * 100%), var(--base-border-color));
151
+ background-color: color-mix(in srgb, var(--amplified-hover-background-color) calc(var(--obc-can-hover) * 100%), var(--base-background-color));
152
+ }
153
+ }
154
+
155
+ .wrapper.checked:active .visible-wrapper {
156
+ border-color: var(--amplified-pressed-border-color);
157
+ background-color: var(--amplified-pressed-background-color);
158
+ }
159
+
160
+ .wrapper.checked:focus-visible .visible-wrapper {
161
+ outline-color: var(--border-focus-color);
162
+ outline-width: var(--global-size-spacing-border-weight-focusframe);
163
+ outline-style: solid;
164
+ border-color: var(--container-global-color);
165
+ z-index: 1;
166
+ }
167
+
168
+ .wrapper.checked:disabled .visible-wrapper {
169
+ border-color: var(--amplified-disabled-border-color);
170
+ background-color: var(--amplified-disabled-background-color);
171
+ cursor: not-allowed;
172
+ color: var(--on-amplified-disabled-color) !important;
173
+ }
174
+
175
+ .wrapper.checked.disabled .visible-wrapper {
176
+ border-color: var(--amplified-disabled-border-color);
177
+ background-color: var(--amplified-disabled-background-color);
178
+ cursor: not-allowed;
179
+ color: var(--on-amplified-disabled-color) !important;
180
+ }
181
+
182
+ .wrapper.checked:disabled {
183
+ cursor: not-allowed;
184
+ }
185
+
186
+ .wrapper.checked.disabled {
187
+ cursor: not-allowed;
188
+ }
189
+
190
+ .wrapper.checked {
191
+ cursor: default;
192
+ }
193
+
194
+ .wrapper.checked .visible-wrapper,.wrapper.checked:hover .visible-wrapper,.wrapper.checked:active .visible-wrapper {
195
+ background-color: var(--amplified-enabled-background-color);
196
+ border-color: var(--amplified-enabled-border-color);
197
+ }
198
+
199
+ .wrapper.checked .label {
200
+ font-family: var(--global-typography-font-family);
201
+ font-weight: var(--global-typography-ui-body-active-font-weight);
202
+ font-size: var(--global-typography-ui-body-active-font-size);
203
+ line-height: var(--global-typography-ui-body-active-line-height);
204
+ font-feature-settings:
205
+ "liga" off,
206
+ "clig" off,
207
+ "ss04" on;
208
+ color: var(--on-flat-active-color);
209
+ }
210
+
211
+ .wrapper.checked .leading-icon {
212
+ color: var(--on-amplified-active-color);
213
+ }
214
+
215
+ /* Guide lines are tree structure, not row state, so they do not dim here. */
216
+
217
+ .wrapper.disabled {
218
+ color: var(--on-flat-disabled-color);
219
+ }
220
+
221
+ .wrapper.disabled .leading-icon {
222
+ color: var(--on-flat-disabled-color);
223
+ }
224
+
225
+ .tree-node-row {
226
+ display: flex;
227
+ align-items: center;
228
+ height: 100%;
229
+ flex-shrink: 0;
230
+ }
231
+
232
+ .branch {
233
+ position: relative;
234
+ height: 100%;
235
+ width: var(--menu-navigation-components-branch-width);
236
+ flex-shrink: 0;
237
+ }
238
+
239
+ /*
240
+ * Guide lines all run on a rail at 75% of each 32px column and share the faint
241
+ * outline color. Verticals and the dropdown bleed 1px past the row edges so they
242
+ * cross the visible-wrapper's 1px transparent flat border and meet the adjacent
243
+ * row's line with no seam gap.
244
+ */
245
+
246
+ .branch-vertical {
247
+ position: absolute;
248
+ top: -1px;
249
+ bottom: -1px;
250
+ left: 75%;
251
+ width: 1px;
252
+ transform: translateX(-0.5px);
253
+ background: var(--border-outline-color);
254
+ }
255
+
256
+ .branch-horizontal {
257
+ position: absolute;
258
+ top: 50%;
259
+ transform: translateY(-0.5px);
260
+ left: 75%;
261
+ right: 0;
262
+ height: 1px;
263
+ background: var(--border-outline-color);
264
+ }
265
+
266
+ /*
267
+ * Corner (└, last child): a single bordered box replaces the straight rects so
268
+ * the bend can be rounded. The box bleeds 1px past the column's right edge so its
269
+ * bottom border overlaps the terminal connector with no break, and translateY
270
+ * drops it 0.5px so that border lands on the connector's pixel row (else the join
271
+ * reads as a \`---___\` step). The radius stays tight — the stub is only 8px, so a
272
+ * larger fillet would consume the whole flat run.
273
+ */
274
+
275
+ .branch-corner .branch-vertical,
276
+ .branch-corner .branch-horizontal {
277
+ display: none;
278
+ }
279
+
280
+ .branch-corner .branch-elbow {
281
+ position: absolute;
282
+ top: -1px;
283
+ bottom: 50%;
284
+ left: 75%;
285
+ right: -1px;
286
+ transform: translate(-0.5px, 0.5px);
287
+ border-left: 1px solid var(--border-outline-color);
288
+ border-bottom: 1px solid var(--border-outline-color);
289
+ border-bottom-left-radius: var(
290
+ --menu-navigation-components-branch-corner-radius,
291
+ 2px
292
+ );
293
+ }
294
+
295
+ .terminal {
296
+ position: relative;
297
+ height: 100%;
298
+ width: var(--global-size-spacing-touch-target-min);
299
+ flex-shrink: 0;
300
+ display: flex;
301
+ align-items: center;
302
+ justify-content: center;
303
+ }
304
+
305
+ /* Stub entering the terminal, continuing the guide line up to the chevron gap. */
306
+
307
+ .terminal-connector {
308
+ position: absolute;
309
+ top: 50%;
310
+ transform: translateY(-0.5px);
311
+ left: 0;
312
+ width: 25%;
313
+ height: 1px;
314
+ background: var(--border-outline-color);
315
+ }
316
+
317
+ /* On a leaf (no chevron) the stub runs further, stopping ~13px before the icon. */
318
+
319
+ .terminal:not(:has(.chevron)) .terminal-connector {
320
+ width: calc(100% - 13px);
321
+ }
322
+
323
+ /* Descends from below the chevron to connect an expanded node to its children. */
324
+
325
+ .terminal-dropdown {
326
+ position: absolute;
327
+ left: 50%;
328
+ transform: translateX(-0.5px);
329
+ top: 75%;
330
+ bottom: -1px;
331
+ width: 1px;
332
+ background: var(--border-outline-color);
333
+ }
334
+
335
+ /* Visual expand/collapse indicator only — not a separate control. */
336
+
337
+ .chevron {
338
+ position: relative;
339
+ display: flex;
340
+ align-items: center;
341
+ justify-content: center;
342
+ width: var(--menu-navigation-components-tree-navigation-item-icon-size);
343
+ height: var(--menu-navigation-components-tree-navigation-item-icon-size);
344
+ color: var(--element-neutral-color);
345
+ transition: transform 100ms ease-in-out;
346
+ }
347
+
348
+ @media (prefers-reduced-motion: reduce) {
349
+ .chevron {
350
+ transition: none;
351
+ }
352
+ }
353
+
354
+ .wrapper.disabled .chevron {
355
+ color: var(--on-flat-disabled-color);
356
+ }
357
+
358
+ :host([expanded]) .chevron {
359
+ transform: rotate(90deg);
360
+ }
361
+
362
+ /* Alert-header marker for non-regular terminal types, at the terminal's top-right. */
363
+
364
+ .terminal-header {
365
+ position: absolute;
366
+ inset: 0;
367
+ display: flex;
368
+ justify-content: flex-end;
369
+ align-items: flex-start;
370
+ padding: var(--menu-navigation-components-terminal-padding-aggregated-icon);
371
+ color: var(--element-neutral-color);
372
+ pointer-events: none;
373
+ }
374
+
375
+ .terminal-header > * {
376
+ width: var(--menu-navigation-components-tree-navigation-item-icon-size);
377
+ height: var(--menu-navigation-components-tree-navigation-item-icon-size);
378
+ }
379
+
380
+ .wrapper.disabled .terminal-header {
381
+ color: var(--on-flat-disabled-color);
382
+ }
383
+
384
+ .label-container {
385
+ display: flex;
386
+ flex: 1;
387
+ gap: var(
388
+ --menu-navigation-components-tree-navigation-item-padding-horizontal
389
+ );
390
+ align-items: center;
391
+ min-width: 0;
392
+ padding-right: var(
393
+ --menu-navigation-components-tree-navigation-item-padding-horizontal
394
+ );
395
+ }
396
+
397
+ .leading-icon {
398
+ position: relative;
399
+ flex-shrink: 0;
400
+ display: flex;
401
+ align-items: center;
402
+ justify-content: center;
403
+ width: var(--menu-navigation-components-tree-navigation-item-icon-size);
404
+ height: var(--menu-navigation-components-tree-navigation-item-icon-size);
405
+ color: var(--on-flat-neutral-color);
406
+ }
407
+
408
+ ::slotted([slot="icon"]) {
409
+ display: block;
410
+ width: var(--menu-navigation-components-tree-navigation-item-icon-size);
411
+ height: var(--menu-navigation-components-tree-navigation-item-icon-size);
412
+ }
413
+
414
+ .label {
415
+ flex: 1;
416
+ overflow: hidden;
417
+ text-overflow: ellipsis;
418
+ white-space: nowrap;
419
+ min-width: 0;
420
+ }
421
+
422
+ .alert-badge {
423
+ flex-shrink: 0;
424
+ }
425
+ `;
426
+ export {
427
+ componentStyle as default
428
+ };
429
+ //# sourceMappingURL=tree-navigation-item.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree-navigation-item.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,160 @@
1
+ import { LitElement } from 'lit';
2
+ import '../../icons/icon-chevron-right-google.js';
3
+ import '../../icons/icon-alert-header-aggregated-iec.js';
4
+ import '../../icons/icon-alert-header-group-iec.js';
5
+ import '../badge/badge.js';
6
+ /**
7
+ * Guide line drawn for one indentation column. Normally computed by
8
+ * `obc-tree-navigation`; rarely set by hand.
9
+ *
10
+ * - `straight`: vertical pass-through (`│`)
11
+ * - `intersection`: vertical + stub for a non-last child (`├`)
12
+ * - `corner`: half vertical + stub for the last child (`└`)
13
+ * - `blank`: empty spacer
14
+ */
15
+ export declare enum TreeBranchType {
16
+ straight = "straight",
17
+ intersection = "intersection",
18
+ corner = "corner",
19
+ blank = "blank"
20
+ }
21
+ /**
22
+ * Terminal type for a tree item, controlling the alert-header marker shown in
23
+ * the terminal (top-right, by the chevron).
24
+ *
25
+ * - `regular`: No marker — a plain expand/collapse terminal.
26
+ * - `aggregatedHeader`: Shows the aggregated alert-header marker, indicating the
27
+ * node aggregates alerts from its descendants.
28
+ * - `groupHeader`: Shows the group alert-header marker, indicating a grouped set
29
+ * of alerts beneath the node.
30
+ */
31
+ export declare enum TreeTerminalType {
32
+ regular = "regular",
33
+ aggregatedHeader = "aggregated-header",
34
+ groupHeader = "group-header"
35
+ }
36
+ /**
37
+ * `<obc-tree-navigation-item>` – A single row in a tree- or file-explorer-style
38
+ * navigation list, with indentation guide lines, an optional expand/collapse
39
+ * chevron, a leading icon, a label, and an optional alert badge.
40
+ *
41
+ * Each row represents one node in a hierarchy. Depth is expressed through the
42
+ * `branches` array: one entry per ancestor level, each describing the guide line
43
+ * to draw for that level. The expand chevron lets a node disclose its children,
44
+ * emitting `expand-toggle` so a parent can manage the open/closed state.
45
+ *
46
+ * ## Features
47
+ * - **Indentation guides:** Render one 32px guide column per `branches` entry —
48
+ * pass-through vertical lines for ancestors that continue, and an elbow
49
+ * (`intersection`) connecting the row to its parent.
50
+ * - **Expand/collapse:** Set `expandable` to show a chevron that rotates when
51
+ * `expanded`. The chevron is a visual indicator only — activating the row
52
+ * fires `expand-toggle` with the next state; manage `expanded` in response.
53
+ * When `expanded`, a vertical guide descends from the chevron to connect to
54
+ * the revealed child rows below.
55
+ * - **Terminal type:** `terminalType` adds an alert-header marker in the terminal
56
+ * (`aggregatedHeader` or `groupHeader`), indicating the node heads a set of
57
+ * aggregated or grouped alerts.
58
+ * - **Leading icon:** Provide an icon via the `icon` slot (shown when
59
+ * `hasLeadingIcon`).
60
+ * - **Alert badge:** A trailing counter badge (e.g. an alarm count), toggled with
61
+ * `hasAlertBadge` and configured via `alertCount` and `alertType`.
62
+ * - **Checked state:** `checked` highlights the current selection using the
63
+ * amplified elevation style. A checked row is the current item and is not
64
+ * re-selectable — it shows no hover/pressed feedback and fires no `click` or
65
+ * navigation. An expandable checked row still toggles (fires `expand-toggle`),
66
+ * so a group that is the current selection can be opened and closed. It stays
67
+ * keyboard-focusable.
68
+ * - **Link or button:** Set `href` to render the row as a link; otherwise it acts
69
+ * as a button.
70
+ *
71
+ * ## Usage Guidelines
72
+ * - Use for hierarchical navigation such as file trees, layer panels, or nested
73
+ * menus. For flat navigation lists, use `obc-navigation-item` instead.
74
+ * - Build `branches` from the row's ancestry: `intersection` for the level that
75
+ * owns this row, `straight` for ancestors with siblings still to come, and
76
+ * `blank` for ancestors whose subtrees have ended. When placed inside
77
+ * `obc-tree-navigation`, the container computes `branches` automatically.
78
+ * - Keep one row `checked` at a time within a tree to mark the current location.
79
+ * - Leaf nodes should leave `expandable` as `false` so no chevron is shown.
80
+ *
81
+ * ## Slots
82
+ *
83
+ * | Slot Name | Renders When... | Purpose |
84
+ * |----------------|---------------------------------|-------------------------------------------------------------------------|
85
+ * | icon | `hasLeadingIcon` is true | Leading icon for the row, e.g. `<obi-placeholder slot="icon">`. |
86
+ *
87
+ * @slot icon - Leading icon slot (shown when `hasLeadingIcon` is true).
88
+ * @fires expand-toggle {CustomEvent<boolean>} Fired when an expandable row is activated; detail is the next `expanded` value.
89
+ * @fires click {CustomEvent<void>} Fired when the row is activated.
90
+ */
91
+ export declare class ObcTreeNavigationItem extends LitElement {
92
+ /** The text label displayed for the row. */
93
+ label: string;
94
+ /**
95
+ * Guide line for each ancestor level, outermost first; one 32px column per
96
+ * entry. Computed by `obc-tree-navigation` — rarely set by hand.
97
+ */
98
+ branches: TreeBranchType[];
99
+ /** Whether the row shows an expand/collapse chevron. Leave false for leaf nodes. */
100
+ expandable: boolean;
101
+ /** Whether the node is expanded. Rotates the chevron and sets `aria-expanded`. */
102
+ expanded: boolean;
103
+ /**
104
+ * Whether the row is the current selection. Applies the amplified style and
105
+ * makes the row inert to re-selection (no hover/pressed feedback, no `click`
106
+ * or navigation); it remains keyboard-focusable. An expandable checked row
107
+ * still fires `expand-toggle` so a selected group can open and close.
108
+ */
109
+ checked: boolean;
110
+ /** Disables the row, removing it from the tab order and dimming its appearance. */
111
+ disabled: boolean;
112
+ /**
113
+ * Whether the row is in the tab order. A tree container manages this as a
114
+ * roving tabindex (one row focusable at a time); standalone rows stay tabbable.
115
+ */
116
+ focusable: boolean;
117
+ /**
118
+ * Whether the row shows a leading icon (provided via the `icon` slot).
119
+ */
120
+ hasLeadingIcon: boolean;
121
+ /**
122
+ * Terminal type, controlling the alert-header marker shown in the terminal.
123
+ * One of `regular` (default), `aggregated-header`, or `group-header`.
124
+ */
125
+ terminalType: string;
126
+ /** Whether a trailing alert counter badge is shown. */
127
+ hasAlertBadge: boolean;
128
+ /** The number shown in the alert badge when `hasAlertBadge` is true. */
129
+ alertCount: number;
130
+ /** The severity/type of the alert badge. One of the `obc-badge` types (default `alarm`). */
131
+ alertType: string;
132
+ /**
133
+ * The URL to navigate to when the row is activated. If set, the row renders as
134
+ * a link; otherwise it acts as a button.
135
+ */
136
+ href: string | undefined;
137
+ private wrapperElement?;
138
+ /** Focuses the row's interactive wrapper (the host itself is not focusable). */
139
+ focus(options?: FocusOptions): void;
140
+ /** A root-level row has no ancestor columns, so it draws no connector lines. */
141
+ private get isRoot();
142
+ /**
143
+ * All ancestor columns are blank spacers — the row is indented but draws no
144
+ * guide lines, so the terminal connector and dropdown are suppressed too.
145
+ */
146
+ private get isBlankAncestry();
147
+ private activate;
148
+ private handleKeydown;
149
+ private renderBranch;
150
+ private renderTerminalHeader;
151
+ render(): import('lit-html').TemplateResult<1>;
152
+ static styles: import('lit').CSSResult;
153
+ }
154
+ export type ObcTreeNavigationItemExpandToggleEvent = CustomEvent<boolean>;
155
+ declare global {
156
+ interface HTMLElementTagNameMap {
157
+ 'obc-tree-navigation-item': ObcTreeNavigationItem;
158
+ }
159
+ }
160
+ //# sourceMappingURL=tree-navigation-item.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree-navigation-item.d.ts","sourceRoot":"","sources":["../../../src/components/tree-navigation-item/tree-navigation-item.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAA2B,MAAM,KAAK,CAAC;AAMzD,OAAO,0CAA0C,CAAC;AAClD,OAAO,iDAAiD,CAAC;AACzD,OAAO,4CAA4C,CAAC;AACpD,OAAO,mBAAmB,CAAC;AAG3B;;;;;;;;GAQG;AACH,oBAAY,cAAc;IACxB,QAAQ,aAAa;IACrB,YAAY,iBAAiB;IAC7B,MAAM,WAAW;IACjB,KAAK,UAAU;CAChB;AAED;;;;;;;;;GASG;AACH,oBAAY,gBAAgB;IAC1B,OAAO,YAAY;IACnB,gBAAgB,sBAAsB;IACtC,WAAW,iBAAiB;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACH,qBACa,qBAAsB,SAAQ,UAAU;IACnD,4CAA4C;IAClB,KAAK,SAAe;IAE9C;;;OAGG;IACsB,QAAQ,EAAE,cAAc,EAAE,CAAM;IAEzD,oFAAoF;IACzD,UAAU,UAAS;IAE9C,kFAAkF;IACxC,QAAQ,UAAS;IAE3D;;;;;OAKG;IACuC,OAAO,UAAS;IAE1D,mFAAmF;IACzC,QAAQ,UAAS;IAE3D;;;OAGG;IAC0C,SAAS,UAAQ;IAE9D;;OAEG;IAC0C,cAAc,UAAQ;IAEnE;;;OAGG;IACuB,YAAY,EAAE,MAAM,CAA4B;IAE1E,uDAAuD;IAC5B,aAAa,UAAS;IAEjD,wEAAwE;IAC9C,UAAU,SAAK;IAEzC,4FAA4F;IAClE,SAAS,EAAE,MAAM,CAAmB;IAE9D;;;OAGG;IACuB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAEhC,OAAO,CAAC,cAAc,CAAC,CAAc;IAExD,gFAAgF;IAChE,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,IAAI;IAInD,gFAAgF;IAChF,OAAO,KAAK,MAAM,GAEjB;IAED;;;OAGG;IACH,OAAO,KAAK,eAAe,GAK1B;IAED,OAAO,CAAC,QAAQ;IAiBhB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,YAAY;IAkBpB,OAAO,CAAC,oBAAoB;IAcnB,MAAM;IA2Df,OAAgB,MAAM,0BAA6B;CACpD;AAED,MAAM,MAAM,sCAAsC,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;AAE1E,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,0BAA0B,EAAE,qBAAqB,CAAC;KACnD;CACF"}