@oicl/openbridge-webcomponents 0.0.7 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (273) hide show
  1. package/.storybook/main.ts +2 -0
  2. package/.storybook/preview.ts +11 -0
  3. package/.vscode/launch.json +16 -0
  4. package/README.md +8 -0
  5. package/__snapshots__/alert-icon--primary.png +0 -0
  6. package/__snapshots__/application-alert-button--notification.png +0 -0
  7. package/__snapshots__/application-alert-button--running.png +0 -0
  8. package/__snapshots__/application-notification-message--large-single-message.png +0 -0
  9. package/__snapshots__/application-notification-message--large.png +0 -0
  10. package/__snapshots__/application-notification-message--primary.png +0 -0
  11. package/__snapshots__/button-rich-button--bottom-with-boarder.png +0 -0
  12. package/__snapshots__/button-rich-button--bottom.png +0 -0
  13. package/__snapshots__/button-rich-button--center.png +0 -0
  14. package/__snapshots__/button-rich-button--double-line.png +0 -0
  15. package/__snapshots__/button-rich-button--multi-line.png +0 -0
  16. package/__snapshots__/button-rich-button--regular-no-icons.png +0 -0
  17. package/__snapshots__/button-rich-button--regular.png +0 -0
  18. package/__snapshots__/button-rich-button--single-line.png +0 -0
  19. package/__snapshots__/button-rich-button--top-with-boarder.png +0 -0
  20. package/__snapshots__/button-rich-button--top.png +0 -0
  21. package/__snapshots__/button-rich-button--with-graphic-border.png +0 -0
  22. package/__snapshots__/button-rich-button--with-graphic.png +0 -0
  23. package/__snapshots__/button-rich-button--with-status.png +0 -0
  24. package/__snapshots__/button-vendor-button--primary.png +0 -0
  25. package/__snapshots__/icons-icon--list.png +0 -0
  26. package/__snapshots__/icons-icon--use-font-color.png +0 -0
  27. package/custom-elements.json +2331 -745
  28. package/dist/components/alert-button/alert-button.css.js +4 -12
  29. package/dist/components/alert-button/alert-button.css.js.map +1 -1
  30. package/dist/components/alert-button/alert-button.d.ts +11 -1
  31. package/dist/components/alert-button/alert-button.d.ts.map +1 -1
  32. package/dist/components/alert-button/alert-button.js +21 -1
  33. package/dist/components/alert-button/alert-button.js.map +1 -1
  34. package/dist/components/alert-icon/alert-icon.d.ts +36 -0
  35. package/dist/components/alert-icon/alert-icon.d.ts.map +1 -0
  36. package/dist/components/alert-icon/alert-icon.js +84 -0
  37. package/dist/components/alert-icon/alert-icon.js.map +1 -0
  38. package/dist/components/alert-icon/icons/icon-14-alarm-silenced-a.d.ts +2 -0
  39. package/dist/components/alert-icon/icons/icon-14-alarm-silenced-a.d.ts.map +1 -0
  40. package/dist/components/alert-icon/icons/icon-14-alarm-silenced-a.js +13 -0
  41. package/dist/components/alert-icon/icons/icon-14-alarm-silenced-a.js.map +1 -0
  42. package/dist/components/alert-icon/icons/icon-14-alarm-silenced-b.d.ts +2 -0
  43. package/dist/components/alert-icon/icons/icon-14-alarm-silenced-b.d.ts.map +1 -0
  44. package/dist/components/alert-icon/icons/icon-14-alarm-silenced-b.js +20 -0
  45. package/dist/components/alert-icon/icons/icon-14-alarm-silenced-b.js.map +1 -0
  46. package/dist/components/alert-icon/icons/icon-14-alarm-unack-a.d.ts +2 -0
  47. package/dist/components/alert-icon/icons/icon-14-alarm-unack-a.d.ts.map +1 -0
  48. package/dist/components/alert-icon/icons/icon-14-alarm-unack-a.js +12 -0
  49. package/dist/components/alert-icon/icons/icon-14-alarm-unack-a.js.map +1 -0
  50. package/dist/components/alert-icon/icons/icon-14-alarm-unack-b.d.ts +2 -0
  51. package/dist/components/alert-icon/icons/icon-14-alarm-unack-b.d.ts.map +1 -0
  52. package/dist/components/alert-icon/icons/icon-14-alarm-unack-b.js +19 -0
  53. package/dist/components/alert-icon/icons/icon-14-alarm-unack-b.js.map +1 -0
  54. package/dist/components/alert-icon/icons/icon-14-warning-unack-a.d.ts +2 -0
  55. package/dist/components/alert-icon/icons/icon-14-warning-unack-a.d.ts.map +1 -0
  56. package/dist/components/alert-icon/icons/icon-14-warning-unack-a.js +12 -0
  57. package/dist/components/alert-icon/icons/icon-14-warning-unack-a.js.map +1 -0
  58. package/dist/components/alert-icon/icons/icon-14-warning-unack-b.d.ts +2 -0
  59. package/dist/components/alert-icon/icons/icon-14-warning-unack-b.d.ts.map +1 -0
  60. package/dist/components/alert-icon/icons/icon-14-warning-unack-b.js +12 -0
  61. package/dist/components/alert-icon/icons/icon-14-warning-unack-b.js.map +1 -0
  62. package/dist/components/alert-topbar-element/alert-topbar-element.d.ts +13 -0
  63. package/dist/components/alert-topbar-element/alert-topbar-element.d.ts.map +1 -1
  64. package/dist/components/alert-topbar-element/alert-topbar-element.js +10 -0
  65. package/dist/components/alert-topbar-element/alert-topbar-element.js.map +1 -1
  66. package/dist/components/rich-button/rich-button.css.js +182 -0
  67. package/dist/components/rich-button/rich-button.css.js.map +1 -0
  68. package/dist/components/rich-button/rich-button.d.ts +32 -0
  69. package/dist/components/rich-button/rich-button.d.ts.map +1 -0
  70. package/dist/components/rich-button/rich-button.js +113 -0
  71. package/dist/components/rich-button/rich-button.js.map +1 -0
  72. package/dist/components/vendor-button/vendor-button.css.js +48 -0
  73. package/dist/components/vendor-button/vendor-button.css.js.map +1 -0
  74. package/dist/components/vendor-button/vendor-button.d.ts +13 -0
  75. package/dist/components/vendor-button/vendor-button.d.ts.map +1 -0
  76. package/dist/components/vendor-button/vendor-button.js +42 -0
  77. package/dist/components/vendor-button/vendor-button.js.map +1 -0
  78. package/dist/icons/{icon-07-target-radar.d.ts → icon-01-content-copy.d.ts} +3 -3
  79. package/dist/icons/{icon-07-target-radar.d.ts.map → icon-01-content-copy.d.ts.map} +1 -1
  80. package/dist/icons/{icon-07-target-radar.js → icon-01-content-copy.js} +10 -10
  81. package/dist/icons/icon-01-content-copy.js.map +1 -0
  82. package/dist/icons/{icon-07-target-ias-selected.d.ts → icon-01-content-cut.d.ts} +3 -3
  83. package/dist/icons/icon-01-content-cut.d.ts.map +1 -0
  84. package/dist/icons/icon-01-content-cut.js +52 -0
  85. package/dist/icons/icon-01-content-cut.js.map +1 -0
  86. package/dist/icons/{icon-07-target-radar-selected.d.ts → icon-01-content-paste.d.ts} +3 -3
  87. package/dist/icons/icon-01-content-paste.d.ts.map +1 -0
  88. package/dist/icons/icon-01-content-paste.js +52 -0
  89. package/dist/icons/icon-01-content-paste.js.map +1 -0
  90. package/dist/icons/icon-02-dock-bottom.d.ts +14 -0
  91. package/dist/icons/icon-02-dock-bottom.d.ts.map +1 -0
  92. package/dist/icons/icon-02-dock-bottom.js +52 -0
  93. package/dist/icons/icon-02-dock-bottom.js.map +1 -0
  94. package/dist/icons/{icon-07-target-ias.d.ts → icon-02-dock-left.d.ts} +3 -3
  95. package/dist/icons/icon-02-dock-left.d.ts.map +1 -0
  96. package/dist/icons/{icon-07-target-ias.js → icon-02-dock-left.js} +10 -24
  97. package/dist/icons/icon-02-dock-left.js.map +1 -0
  98. package/dist/icons/icon-02-dock-right.d.ts +14 -0
  99. package/dist/icons/icon-02-dock-right.d.ts.map +1 -0
  100. package/dist/icons/icon-02-dock-right.js +52 -0
  101. package/dist/icons/icon-02-dock-right.js.map +1 -0
  102. package/dist/icons/icon-03-license.d.ts +14 -0
  103. package/dist/icons/icon-03-license.d.ts.map +1 -0
  104. package/dist/icons/icon-03-license.js +52 -0
  105. package/dist/icons/icon-03-license.js.map +1 -0
  106. package/dist/icons/icon-03-star-unchecked.js +1 -1
  107. package/dist/icons/icon-03-star-unchecked.js.map +1 -1
  108. package/dist/icons/icon-04-colorcalibrated.d.ts.map +1 -1
  109. package/dist/icons/icon-04-colorcalibrated.js +2 -14
  110. package/dist/icons/icon-04-colorcalibrated.js.map +1 -1
  111. package/dist/icons/icon-07-target-associated-ais-camera.d.ts +14 -0
  112. package/dist/icons/icon-07-target-associated-ais-camera.d.ts.map +1 -0
  113. package/dist/icons/icon-07-target-associated-ais-camera.js +54 -0
  114. package/dist/icons/icon-07-target-associated-ais-camera.js.map +1 -0
  115. package/dist/icons/icon-07-target-associated-camera-radar.d.ts +14 -0
  116. package/dist/icons/icon-07-target-associated-camera-radar.d.ts.map +1 -0
  117. package/dist/icons/icon-07-target-associated-camera-radar.js +52 -0
  118. package/dist/icons/icon-07-target-associated-camera-radar.js.map +1 -0
  119. package/dist/icons/icon-07-target-associated-radar-camera.d.ts +14 -0
  120. package/dist/icons/icon-07-target-associated-radar-camera.d.ts.map +1 -0
  121. package/dist/icons/icon-07-target-associated-radar-camera.js +54 -0
  122. package/dist/icons/icon-07-target-associated-radar-camera.js.map +1 -0
  123. package/dist/icons/icon-07-target-camera.d.ts +14 -0
  124. package/dist/icons/icon-07-target-camera.d.ts.map +1 -0
  125. package/dist/icons/icon-07-target-camera.js +52 -0
  126. package/dist/icons/icon-07-target-camera.js.map +1 -0
  127. package/dist/icons/icon-08-backward-fast.js +1 -1
  128. package/dist/icons/icon-08-backward-fast.js.map +1 -1
  129. package/dist/icons/icon-08-backward-stopped.js +1 -1
  130. package/dist/icons/icon-08-backward-stopped.js.map +1 -1
  131. package/dist/icons/icon-08-forward-fast.js +1 -1
  132. package/dist/icons/icon-08-forward-fast.js.map +1 -1
  133. package/dist/icons/icon-08-forward-stopped.js +1 -1
  134. package/dist/icons/icon-08-forward-stopped.js.map +1 -1
  135. package/dist/icons/icon-08-motor-off-horisontal.js +1 -1
  136. package/dist/icons/icon-08-motor-off-horisontal.js.map +1 -1
  137. package/dist/icons/icon-09-switch-horizontal-off-large.js +1 -1
  138. package/dist/icons/icon-09-switch-horizontal-off-large.js.map +1 -1
  139. package/dist/icons/icon-09-switch-horizontal-off.js +1 -1
  140. package/dist/icons/icon-09-switch-horizontal-off.js.map +1 -1
  141. package/dist/icons/icon-10-autonomous.js +3 -3
  142. package/dist/icons/icon-10-autonomous.js.map +1 -1
  143. package/dist/icons/icon-14-alert-rectified.js +1 -1
  144. package/dist/icons/icon-14-alert-rectified.js.map +1 -1
  145. package/dist/icons/icon-14-alertheader-aggregated-large.d.ts +14 -0
  146. package/dist/icons/icon-14-alertheader-aggregated-large.d.ts.map +1 -0
  147. package/dist/icons/icon-14-alertheader-aggregated-large.js +52 -0
  148. package/dist/icons/icon-14-alertheader-aggregated-large.js.map +1 -0
  149. package/dist/icons/icon-14-alertheader-group-large.d.ts +14 -0
  150. package/dist/icons/icon-14-alertheader-group-large.d.ts.map +1 -0
  151. package/dist/icons/icon-14-alertheader-group-large.js +54 -0
  152. package/dist/icons/icon-14-alertheader-group-large.js.map +1 -0
  153. package/dist/icons/icon-14-exclamationmark.js +4 -4
  154. package/dist/icons/icon-14-exclamationmark.js.map +1 -1
  155. package/dist/icons/icon-14-rectified.js +1 -1
  156. package/dist/icons/icon-14-rectified.js.map +1 -1
  157. package/dist/icons/icon-18-ais-anchored.js +4 -4
  158. package/dist/icons/icon-18-ais-anchored.js.map +1 -1
  159. package/dist/icons/icon-18-ais-notunderway.js +1 -1
  160. package/dist/icons/icon-18-ais-notunderway.js.map +1 -1
  161. package/dist/icons/icon-iec-02-ais-target-activated-selected.d.ts +14 -0
  162. package/dist/icons/icon-iec-02-ais-target-activated-selected.d.ts.map +1 -0
  163. package/dist/icons/icon-iec-02-ais-target-activated-selected.js +52 -0
  164. package/dist/icons/icon-iec-02-ais-target-activated-selected.js.map +1 -0
  165. package/dist/icons/icon-iec-02-ais-target-activated.d.ts +14 -0
  166. package/dist/icons/icon-iec-02-ais-target-activated.d.ts.map +1 -0
  167. package/dist/icons/icon-iec-02-ais-target-activated.js +52 -0
  168. package/dist/icons/icon-iec-02-ais-target-activated.js.map +1 -0
  169. package/dist/icons/icon-iec-02-associated-target-ais.d.ts +14 -0
  170. package/dist/icons/icon-iec-02-associated-target-ais.d.ts.map +1 -0
  171. package/dist/icons/icon-iec-02-associated-target-ais.js +52 -0
  172. package/dist/icons/icon-iec-02-associated-target-ais.js.map +1 -0
  173. package/dist/icons/icon-iec-02-associated-target-radar.d.ts +14 -0
  174. package/dist/icons/icon-iec-02-associated-target-radar.d.ts.map +1 -0
  175. package/dist/icons/icon-iec-02-associated-target-radar.js +52 -0
  176. package/dist/icons/icon-iec-02-associated-target-radar.js.map +1 -0
  177. package/dist/icons/icon-iec-02-radar-target-tracked-selected.d.ts +14 -0
  178. package/dist/icons/icon-iec-02-radar-target-tracked-selected.d.ts.map +1 -0
  179. package/dist/icons/icon-iec-02-radar-target-tracked-selected.js +60 -0
  180. package/dist/icons/icon-iec-02-radar-target-tracked-selected.js.map +1 -0
  181. package/dist/icons/icon-iec-02-radar-target-tracked.d.ts +14 -0
  182. package/dist/icons/icon-iec-02-radar-target-tracked.d.ts.map +1 -0
  183. package/dist/icons/icon-iec-02-radar-target-tracked.js +52 -0
  184. package/dist/icons/icon-iec-02-radar-target-tracked.js.map +1 -0
  185. package/dist/icons/index.d.ts +19 -4
  186. package/dist/icons/index.d.ts.map +1 -1
  187. package/dist/icons/index.js +19 -4
  188. package/dist/icons/index.js.map +1 -1
  189. package/dist/icons/names.d.ts.map +1 -1
  190. package/dist/icons/names.js +19 -4
  191. package/dist/icons/names.js.map +1 -1
  192. package/dist/navigation-instruments/thruster/thruster.d.ts +2 -1
  193. package/dist/navigation-instruments/thruster/thruster.d.ts.map +1 -1
  194. package/dist/navigation-instruments/thruster/thruster.js +45 -25
  195. package/dist/navigation-instruments/thruster/thruster.js.map +1 -1
  196. package/fix-generated.cjs +3 -0
  197. package/new-component.ts +7 -8
  198. package/package.json +5 -1
  199. package/script/convert-icons.ts +177 -0
  200. package/script/download-alert-icons.ts +180 -0
  201. package/script/download-icons.ts +7 -141
  202. package/src/components/alert-button/alert-button.css +1 -12
  203. package/src/components/alert-button/alert-button.stories.ts +2 -0
  204. package/src/components/alert-button/alert-button.ts +29 -4
  205. package/src/components/alert-icon/alert-icon.stories.ts +35 -0
  206. package/src/components/alert-icon/alert-icon.ts +75 -0
  207. package/src/components/alert-icon/icons/icon-14-alarm-silenced-a.ts +9 -0
  208. package/src/components/alert-icon/icons/icon-14-alarm-silenced-b.ts +16 -0
  209. package/src/components/alert-icon/icons/icon-14-alarm-unack-a.ts +8 -0
  210. package/src/components/alert-icon/icons/icon-14-alarm-unack-b.ts +15 -0
  211. package/src/components/alert-icon/icons/icon-14-warning-unack-a.ts +8 -0
  212. package/src/components/alert-icon/icons/icon-14-warning-unack-b.ts +8 -0
  213. package/src/components/alert-topbar-element/alert-topbar-element.stories.ts +4 -0
  214. package/src/components/alert-topbar-element/alert-topbar-element.ts +17 -0
  215. package/src/components/notification-message/notification-message.stories.ts +26 -10
  216. package/src/components/rich-button/rich-button.css +118 -0
  217. package/src/components/rich-button/rich-button.stories.ts +196 -0
  218. package/src/components/rich-button/rich-button.ts +95 -0
  219. package/src/components/vendor-button/vendor-button.css +10 -0
  220. package/src/components/vendor-button/vendor-button.stories.ts +19 -0
  221. package/src/components/vendor-button/vendor-button.ts +25 -0
  222. package/src/icons/icon-01-content-copy.ts +40 -0
  223. package/src/icons/icon-01-content-cut.ts +40 -0
  224. package/src/icons/icon-01-content-paste.ts +40 -0
  225. package/src/icons/icon-02-dock-bottom.ts +40 -0
  226. package/src/icons/icon-02-dock-left.ts +40 -0
  227. package/src/icons/icon-02-dock-right.ts +40 -0
  228. package/src/icons/icon-03-license.ts +40 -0
  229. package/src/icons/icon-03-star-unchecked.ts +1 -1
  230. package/src/icons/icon-04-colorcalibrated.ts +2 -14
  231. package/src/icons/icon-07-target-associated-ais-camera.ts +42 -0
  232. package/src/icons/icon-07-target-associated-camera-radar.ts +40 -0
  233. package/src/icons/icon-07-target-associated-radar-camera.ts +42 -0
  234. package/src/icons/icon-07-target-camera.ts +40 -0
  235. package/src/icons/icon-08-backward-fast.ts +1 -1
  236. package/src/icons/icon-08-backward-stopped.ts +1 -1
  237. package/src/icons/icon-08-forward-fast.ts +1 -1
  238. package/src/icons/icon-08-forward-stopped.ts +1 -1
  239. package/src/icons/icon-08-motor-off-horisontal.ts +1 -1
  240. package/src/icons/icon-09-switch-horizontal-off-large.ts +1 -1
  241. package/src/icons/icon-09-switch-horizontal-off.ts +1 -1
  242. package/src/icons/icon-10-autonomous.ts +3 -3
  243. package/src/icons/icon-14-alert-rectified.ts +1 -1
  244. package/src/icons/icon-14-alertheader-aggregated-large.ts +40 -0
  245. package/src/icons/icon-14-alertheader-group-large.ts +42 -0
  246. package/src/icons/icon-14-exclamationmark.ts +4 -4
  247. package/src/icons/icon-14-rectified.ts +1 -1
  248. package/src/icons/icon-18-ais-anchored.ts +4 -4
  249. package/src/icons/icon-18-ais-notunderway.ts +1 -1
  250. package/src/icons/icon-iec-02-ais-target-activated-selected.ts +40 -0
  251. package/src/icons/icon-iec-02-ais-target-activated.ts +40 -0
  252. package/src/icons/icon-iec-02-associated-target-ais.ts +40 -0
  253. package/src/icons/icon-iec-02-associated-target-radar.ts +40 -0
  254. package/src/icons/icon-iec-02-radar-target-tracked-selected.ts +48 -0
  255. package/src/icons/icon-iec-02-radar-target-tracked.ts +40 -0
  256. package/src/icons/index.ts +19 -4
  257. package/src/icons/names.ts +19 -4
  258. package/src/icons.stories.ts +78 -0
  259. package/src/navigation-instruments/thruster/thruster.stories.ts +18 -1
  260. package/src/navigation-instruments/thruster/thruster.ts +43 -27
  261. package/dist/icons/icon-07-target-ias-selected.d.ts.map +0 -1
  262. package/dist/icons/icon-07-target-ias-selected.js +0 -60
  263. package/dist/icons/icon-07-target-ias-selected.js.map +0 -1
  264. package/dist/icons/icon-07-target-ias.d.ts.map +0 -1
  265. package/dist/icons/icon-07-target-ias.js.map +0 -1
  266. package/dist/icons/icon-07-target-radar-selected.d.ts.map +0 -1
  267. package/dist/icons/icon-07-target-radar-selected.js +0 -60
  268. package/dist/icons/icon-07-target-radar-selected.js.map +0 -1
  269. package/dist/icons/icon-07-target-radar.js.map +0 -1
  270. package/src/icons/icon-07-target-ias-selected.ts +0 -48
  271. package/src/icons/icon-07-target-ias.ts +0 -54
  272. package/src/icons/icon-07-target-radar-selected.ts +0 -48
  273. package/src/icons/icon-07-target-radar.ts +0 -40
@@ -0,0 +1,118 @@
1
+ * {
2
+ box-sizing: border-box;
3
+ }
4
+
5
+ .wrapper {
6
+ position: relative;
7
+ background-color: var(--container-background-color);
8
+ box-shadow: var(--shadow-flat);
9
+ overflow: hidden;
10
+
11
+ &.top, &.regular {
12
+ border-top-left-radius: 6px;
13
+ border-top-right-radius: 6px;
14
+ }
15
+
16
+ &.bottom, &.regular {
17
+ border-bottom-left-radius: 6px;
18
+ border-bottom-right-radius: 6px;
19
+ }
20
+ }
21
+
22
+ button {
23
+ width: 100%;
24
+ appearance: none;
25
+ @mixin style style=flat;
26
+ border-width: 0 !important;
27
+ display: flex;
28
+ flex-direction: column;
29
+ text-align: left;
30
+ padding: 0;
31
+ }
32
+
33
+ .top.border button, .center.border button {
34
+ border-bottom: 1px solid var(--border-outline-color) !important;
35
+ }
36
+
37
+ .bottom.border button{
38
+ border-top: 1px solid var(--border-outline-color) !important;
39
+ }
40
+
41
+ .container {
42
+ width: 100%;
43
+ display: flex;
44
+ align-items: center;
45
+ gap: 8px;
46
+ padding: 8px;
47
+ }
48
+
49
+ .wrapper.single-line .container {
50
+ padding-top: 4px;
51
+ padding-bottom: 4px;
52
+ }
53
+
54
+ .container-content {
55
+ display: flex;
56
+ align-items: center;
57
+ flex-grow: 1;
58
+ gap: 8px;
59
+ padding: 8px;
60
+ min-width: 0;
61
+ }
62
+
63
+ .content {
64
+ display: flex;
65
+ flex-direction: column;
66
+ min-width: 0;
67
+ }
68
+
69
+ .leading-icon {
70
+ display: block;
71
+ width: 32px;
72
+ height: 24px;
73
+ padding-right: 8px;
74
+ color: var(--element-neutral-color);
75
+ flex-shrink: 0;
76
+ flex-grow: 0;
77
+ }
78
+
79
+ .trailing-icon {
80
+ width: 40px;
81
+ height: 24px;
82
+ padding-left: 8px;
83
+ padding-right: 8px;
84
+ color: var(--element-neutral-color);
85
+ flex-shrink: 0;
86
+ flex-grow: 0;
87
+
88
+ }
89
+
90
+ ::slotted([slot="label"]) {
91
+ @mixin font-body;
92
+ color: var(--element-active-color);
93
+ }
94
+
95
+ ::slotted([slot="description"]) {
96
+ @mixin font-label;
97
+ color: var(--element-neutral-color);
98
+ }
99
+
100
+ .double-line ::slotted([slot="description"]) {
101
+ white-space: nowrap;
102
+ overflow: hidden;
103
+ text-overflow: ellipsis;
104
+ }
105
+
106
+ .status {
107
+ @mixin font-body;
108
+ color: var(--element-neutral-color);
109
+ }
110
+
111
+ .graphic {
112
+ width: 100%;
113
+ }
114
+
115
+ .graphic-border .graphic {
116
+ border-bottom: 1px solid var(--border-outline-color);
117
+ margin-bottom: -1px;
118
+ }
@@ -0,0 +1,196 @@
1
+ import type {Meta, StoryObj} from '@storybook/web-components';
2
+ import {ObcRichButton} from './rich-button';
3
+ import './rich-button';
4
+ import {html} from 'lit';
5
+ import '../../icons/icon-01-placeholder';
6
+ import '../../icons/icon-02-chevron-right';
7
+ import '../../icons/icon-01-print';
8
+ import {spread} from '@open-wc/lit-helpers';
9
+
10
+ const meta: Meta<typeof ObcRichButton> = {
11
+ title: 'Button/Rich button',
12
+ tags: ['autodocs'],
13
+ component: 'obc-rich-button',
14
+ args: {
15
+ position: 'regular',
16
+ size: 'multi-line',
17
+ hasLeadingIcon: true,
18
+ hasTrailingIcon: true,
19
+ },
20
+ parameters: {
21
+ backgrounds: {
22
+ default: 'container-section-color',
23
+ },
24
+ },
25
+ argTypes: {
26
+ position: {
27
+ control: {type: 'select'},
28
+ options: ['regular', 'top', 'bottom', 'center'],
29
+ },
30
+ size: {
31
+ control: {type: 'select'},
32
+ options: ['single-line', 'double-line', 'multi-line'],
33
+ },
34
+ },
35
+ decorators: (story) => html`<div style="width: 400px;">${story()}</div>`,
36
+ render: (args) =>
37
+ html`<obc-rich-button
38
+ position=${args.position}
39
+ size=${args.size}
40
+ ?has-graphic=${args.hasGraphic}
41
+ ?has-leading-icon=${args.hasLeadingIcon}
42
+ ?has-trailing-icon=${args.hasTrailingIcon}
43
+ ?has-status=${args.hasStatus}
44
+ ?border=${args.border}
45
+ >
46
+ <obi-01-placeholder slot="leading-icon"></obi-01-placeholder>
47
+ <div slot="label">Title</div>
48
+ <div slot="description">
49
+ Description with multiple lines of text and more than one line of
50
+ description
51
+ </div>
52
+ <obi-02-chevron-right slot="trailing-icon"></obi-02-chevron-right>
53
+ </obc-rich-button> `,
54
+ } satisfies Meta<ObcRichButton>;
55
+
56
+ export default meta;
57
+ type Story = StoryObj<ObcRichButton>;
58
+
59
+ export const Regular: Story = {};
60
+
61
+ export const RegularNoIcons: Story = {
62
+ args: {
63
+ hasLeadingIcon: false,
64
+ hasTrailingIcon: false,
65
+ },
66
+ };
67
+
68
+ export const Top: Story = {
69
+ args: {
70
+ position: 'top',
71
+ },
72
+ };
73
+
74
+ export const TopWithBoarder: Story = {
75
+ args: {
76
+ position: 'top',
77
+ border: true,
78
+ },
79
+ };
80
+
81
+ export const Bottom: Story = {
82
+ args: {
83
+ position: 'bottom',
84
+ },
85
+ };
86
+
87
+ export const BottomWithBoarder: Story = {
88
+ args: {
89
+ position: 'bottom',
90
+ border: true,
91
+ },
92
+ };
93
+
94
+ export const Center: Story = {
95
+ args: {
96
+ position: 'center',
97
+ },
98
+ };
99
+
100
+ export const SingleLine: Story = {
101
+ args: {
102
+ size: 'single-line',
103
+ },
104
+ };
105
+
106
+ export const DoubleLine: Story = {
107
+ args: {
108
+ size: 'double-line',
109
+ },
110
+ };
111
+
112
+ export const MultiLine: Story = {
113
+ args: {
114
+ size: 'multi-line',
115
+ },
116
+ };
117
+
118
+ export const WithStatus: Story = {
119
+ args: {
120
+ size: 'double-line',
121
+ hasStatus: true,
122
+ hasLeadingIcon: true,
123
+ hasTrailingIcon: true,
124
+ },
125
+ render: (args) =>
126
+ html`<obc-rich-button ${spread(args)}>
127
+ <obi-01-placeholder slot="leading-icon"></obi-01-placeholder>
128
+ <div slot="label">Title</div>
129
+ <div slot="status">Status</div>
130
+ <obi-02-chevron-right slot="trailing-icon"></obi-02-chevron-right>
131
+ </obc-rich-button> `,
132
+ };
133
+
134
+ export const WithGraphic: Story = {
135
+ args: {
136
+ size: 'double-line',
137
+ hasStatus: true,
138
+ hasLeadingIcon: true,
139
+ hasTrailingIcon: true,
140
+ hasGraphic: true,
141
+ graphicBorder: false,
142
+ },
143
+ render: (args) =>
144
+ html`<obc-rich-button
145
+ position=${args.position}
146
+ size=${args.size}
147
+ ?has-graphic=${args.hasGraphic}
148
+ ?has-leading-icon=${args.hasLeadingIcon}
149
+ ?has-trailing-icon=${args.hasTrailingIcon}
150
+ ?has-status=${args.hasStatus}
151
+ ?graphic-border=${args.graphicBorder}
152
+ >
153
+ <div
154
+ slot="graphic"
155
+ style="width: 100%; height: 120px; color: var(--element-neutral-color); padding-top: 40px; padding-bottom: 32px"
156
+ >
157
+ <obi-01-print></obi-01-print>
158
+ </div>
159
+ <obi-01-placeholder slot="leading-icon"></obi-01-placeholder>
160
+ <div slot="label">Title</div>
161
+ <div slot="status">Status</div>
162
+ <obi-02-chevron-right slot="trailing-icon"></obi-02-chevron-right>
163
+ </obc-rich-button> `,
164
+ };
165
+
166
+ export const WithGraphicBorder: Story = {
167
+ args: {
168
+ size: 'double-line',
169
+ hasStatus: true,
170
+ hasLeadingIcon: true,
171
+ hasTrailingIcon: true,
172
+ hasGraphic: true,
173
+ graphicBorder: true,
174
+ },
175
+ render: (args) =>
176
+ html`<obc-rich-button
177
+ position=${args.position}
178
+ size=${args.size}
179
+ ?has-graphic=${args.hasGraphic}
180
+ ?has-leading-icon=${args.hasLeadingIcon}
181
+ ?has-trailing-icon=${args.hasTrailingIcon}
182
+ ?has-status=${args.hasStatus}
183
+ ?graphic-border=${args.graphicBorder}
184
+ >
185
+ <div
186
+ slot="graphic"
187
+ style="width: 100%; height: 120px; color: var(--element-neutral-color); padding-top: 40px; padding-bottom: 32px"
188
+ >
189
+ <obi-01-print></obi-01-print>
190
+ </div>
191
+ <obi-01-placeholder slot="leading-icon"></obi-01-placeholder>
192
+ <div slot="label">Title</div>
193
+ <div slot="status">Status</div>
194
+ <obi-02-chevron-right slot="trailing-icon"></obi-02-chevron-right>
195
+ </obc-rich-button> `,
196
+ };
@@ -0,0 +1,95 @@
1
+ import {LitElement, html, nothing, unsafeCSS} from 'lit';
2
+ import {customElement, property} from 'lit/decorators.js';
3
+ import compentStyle from './rich-button.css?inline';
4
+ import {classMap} from 'lit/directives/class-map.js';
5
+
6
+ export enum ObcRichButtonPosition {
7
+ Regular = 'regular',
8
+ Top = 'top',
9
+ Bottom = 'bottom',
10
+ Center = 'center',
11
+ }
12
+ export type ObcRichButtonPositionType = 'regular' | 'top' | 'bottom' | 'center';
13
+
14
+ export enum ObcRichButtonSize {
15
+ SingleLine = 'single-line',
16
+ DoubleLine = 'double-line',
17
+ MultiLine = 'multi-line',
18
+ }
19
+ export type ObcRichButtonSizeType =
20
+ | 'single-line'
21
+ | 'double-line'
22
+ | 'multi-line';
23
+
24
+ @customElement('obc-rich-button')
25
+ export class ObcRichButton extends LitElement {
26
+ @property({type: String}) position: ObcRichButtonPositionType =
27
+ ObcRichButtonPosition.Regular;
28
+ @property({type: String}) size: ObcRichButtonSizeType =
29
+ ObcRichButtonSize.SingleLine;
30
+ @property({type: Boolean, attribute: 'has-leading-icon'}) hasLeadingIcon =
31
+ false;
32
+ @property({type: Boolean, attribute: 'has-trailing-icon'}) hasTrailingIcon =
33
+ false;
34
+ @property({type: Boolean, attribute: 'has-status'}) hasStatus = false;
35
+ @property({type: Boolean, attribute: 'has-graphic'}) hasGraphic = false;
36
+ @property({type: Boolean, attribute: 'graphic-border'}) graphicBorder = false;
37
+ @property({type: Boolean}) border = false;
38
+
39
+ override render() {
40
+ return html`
41
+ <div
42
+ class=${classMap({
43
+ wrapper: true,
44
+ [this.position]: true,
45
+ [this.size]: true,
46
+ 'graphic-border': this.graphicBorder,
47
+ border: this.border,
48
+ })}
49
+ >
50
+ <button>
51
+ ${this.hasGraphic
52
+ ? html`<div class="graphic"><slot name="graphic"></slot></div>`
53
+ : nothing}
54
+ <div class="container">
55
+ <div class="container-content">
56
+ ${this.hasLeadingIcon
57
+ ? html`<div class="leading-icon">
58
+ <slot name="leading-icon"></slot>
59
+ </div>`
60
+ : nothing}
61
+ <div class="content">
62
+ <slot name="label"></slot>
63
+ ${this.size === ObcRichButtonSize.SingleLine
64
+ ? nothing
65
+ : html`<slot name="description"></slot>`}
66
+ </div>
67
+ </div>
68
+ ${this.hasStatus
69
+ ? html`
70
+ <div class="status">
71
+ <slot name="status"></slot>
72
+ </div>
73
+ `
74
+ : nothing}
75
+ ${this.hasTrailingIcon
76
+ ? html`
77
+ <div class="trailing-icon">
78
+ <slot name="trailing-icon"></slot>
79
+ </div>
80
+ `
81
+ : nothing}
82
+ </div>
83
+ </button>
84
+ </div>
85
+ `;
86
+ }
87
+
88
+ static override styles = unsafeCSS(compentStyle);
89
+ }
90
+
91
+ declare global {
92
+ interface HTMLElementTagNameMap {
93
+ 'obc-rich-button': ObcRichButton;
94
+ }
95
+ }
@@ -0,0 +1,10 @@
1
+ .wrapper {
2
+ width: 100%;
3
+ @mixin style style=flat;
4
+ @mixin outline-inward;
5
+
6
+ & img {
7
+ width: 100%;
8
+ height: 100%;
9
+ }
10
+ }
@@ -0,0 +1,19 @@
1
+ import type {Meta, StoryObj} from '@storybook/web-components';
2
+ import {ObcVendorButton} from './vendor-button';
3
+ import './vendor-button';
4
+ import {html} from 'lit';
5
+
6
+ const meta: Meta<typeof ObcVendorButton> = {
7
+ title: 'Button/Vendor button',
8
+ tags: ['autodocs'],
9
+ component: 'obc-vendor-button',
10
+ args: {
11
+ imageSrc: 'https://openbridge-demo.web.app/companylogo-day.png',
12
+ },
13
+ decorators: [(story) => html`<div style="width:300px">${story()}</div>`],
14
+ } satisfies Meta<ObcVendorButton>;
15
+
16
+ export default meta;
17
+ type Story = StoryObj<ObcVendorButton>;
18
+
19
+ export const Primary: Story = {};
@@ -0,0 +1,25 @@
1
+ import {LitElement, html, unsafeCSS} from 'lit';
2
+ import {customElement, property} from 'lit/decorators.js';
3
+ import compentStyle from './vendor-button.css?inline';
4
+
5
+ @customElement('obc-vendor-button')
6
+ export class ObcVendorButton extends LitElement {
7
+ @property({type: String, attribute: 'image-src'}) imageSrc = '';
8
+ @property({type: String}) alt = 'logo';
9
+
10
+ override render() {
11
+ return html`
12
+ <button class="wrapper">
13
+ <img src=${this.imageSrc} alt=${this.alt} />
14
+ </button>
15
+ `;
16
+ }
17
+
18
+ static override styles = unsafeCSS(compentStyle);
19
+ }
20
+
21
+ declare global {
22
+ interface HTMLElementTagNameMap {
23
+ 'obc-vendor-button': ObcVendorButton;
24
+ }
25
+ }
@@ -0,0 +1,40 @@
1
+ import {LitElement, html, css, svg} from 'lit';
2
+ import {customElement, property} from 'lit/decorators.js';
3
+
4
+ @customElement('obi-01-content-copy')
5
+ export class Obi01ContentCopy extends LitElement {
6
+ @property({type: Boolean, attribute: 'use-css-color'}) useCssColor = false;
7
+
8
+ private icon = svg`<svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
9
+ <path d="M9 18C8.45 18 7.97917 17.8042 7.5875 17.4125C7.19583 17.0208 7 16.55 7 16V4C7 3.45 7.19583 2.97917 7.5875 2.5875C7.97917 2.19583 8.45 2 9 2H18C18.55 2 19.0208 2.19583 19.4125 2.5875C19.8042 2.97917 20 3.45 20 4V16C20 16.55 19.8042 17.0208 19.4125 17.4125C19.0208 17.8042 18.55 18 18 18H9ZM9 16H18V4H9V16ZM5 22C4.45 22 3.97917 21.8042 3.5875 21.4125C3.19583 21.0208 3 20.55 3 20V6H5V20H16V22H5Z" fill="currentColor"/>
10
+ </svg>
11
+ `;
12
+
13
+ private iconCss = svg`<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
14
+ <path d="M9 18C8.45 18 7.97917 17.8042 7.5875 17.4125C7.19583 17.0208 7 16.55 7 16V4C7 3.45 7.19583 2.97917 7.5875 2.5875C7.97917 2.19583 8.45 2 9 2H18C18.55 2 19.0208 2.19583 19.4125 2.5875C19.8042 2.97917 20 3.45 20 4V16C20 16.55 19.8042 17.0208 19.4125 17.4125C19.0208 17.8042 18.55 18 18 18H9ZM9 16H18V4H9V16ZM5 22C4.45 22 3.97917 21.8042 3.5875 21.4125C3.19583 21.0208 3 20.55 3 20V6H5V20H16V22H5Z" style="fill: var(--element-active-color)"/>
15
+ </svg>
16
+ `;
17
+
18
+ override render() {
19
+ return html`
20
+ <div class="wrapper">${this.useCssColor ? this.iconCss : this.icon}</div>
21
+ `;
22
+ }
23
+
24
+ static override styles = css`
25
+ .wrapper {
26
+ height: 100%;
27
+ width: 100%;
28
+ }
29
+ .wrapper > * {
30
+ height: 100%;
31
+ width: 100%;
32
+ }
33
+ `;
34
+ }
35
+
36
+ declare global {
37
+ interface HTMLElementTagNameMap {
38
+ 'obi-01-content-copy': Obi01ContentCopy;
39
+ }
40
+ }
@@ -0,0 +1,40 @@
1
+ import {LitElement, html, css, svg} from 'lit';
2
+ import {customElement, property} from 'lit/decorators.js';
3
+
4
+ @customElement('obi-01-content-cut')
5
+ export class Obi01ContentCut extends LitElement {
6
+ @property({type: Boolean, attribute: 'use-css-color'}) useCssColor = false;
7
+
8
+ private icon = svg`<svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
9
+ <path d="M19 21L12 14L9.65 16.35C9.78333 16.6 9.875 16.8667 9.925 17.15C9.975 17.4333 10 17.7167 10 18C10 19.1 9.60833 20.0417 8.825 20.825C8.04167 21.6083 7.1 22 6 22C4.9 22 3.95833 21.6083 3.175 20.825C2.39167 20.0417 2 19.1 2 18C2 16.9 2.39167 15.9583 3.175 15.175C3.95833 14.3917 4.9 14 6 14C6.28333 14 6.56667 14.025 6.85 14.075C7.13333 14.125 7.4 14.2167 7.65 14.35L10 12L7.65 9.65C7.4 9.78333 7.13333 9.875 6.85 9.925C6.56667 9.975 6.28333 10 6 10C4.9 10 3.95833 9.60833 3.175 8.825C2.39167 8.04167 2 7.1 2 6C2 4.9 2.39167 3.95833 3.175 3.175C3.95833 2.39167 4.9 2 6 2C7.1 2 8.04167 2.39167 8.825 3.175C9.60833 3.95833 10 4.9 10 6C10 6.28333 9.975 6.56667 9.925 6.85C9.875 7.13333 9.78333 7.4 9.65 7.65L22 20V21H19ZM15 11L13 9L19 3H22V4L15 11ZM6 8C6.55 8 7.02083 7.80417 7.4125 7.4125C7.80417 7.02083 8 6.55 8 6C8 5.45 7.80417 4.97917 7.4125 4.5875C7.02083 4.19583 6.55 4 6 4C5.45 4 4.97917 4.19583 4.5875 4.5875C4.19583 4.97917 4 5.45 4 6C4 6.55 4.19583 7.02083 4.5875 7.4125C4.97917 7.80417 5.45 8 6 8ZM12 12.5C12.1333 12.5 12.25 12.45 12.35 12.35C12.45 12.25 12.5 12.1333 12.5 12C12.5 11.8667 12.45 11.75 12.35 11.65C12.25 11.55 12.1333 11.5 12 11.5C11.8667 11.5 11.75 11.55 11.65 11.65C11.55 11.75 11.5 11.8667 11.5 12C11.5 12.1333 11.55 12.25 11.65 12.35C11.75 12.45 11.8667 12.5 12 12.5ZM6 20C6.55 20 7.02083 19.8042 7.4125 19.4125C7.80417 19.0208 8 18.55 8 18C8 17.45 7.80417 16.9792 7.4125 16.5875C7.02083 16.1958 6.55 16 6 16C5.45 16 4.97917 16.1958 4.5875 16.5875C4.19583 16.9792 4 17.45 4 18C4 18.55 4.19583 19.0208 4.5875 19.4125C4.97917 19.8042 5.45 20 6 20Z" fill="currentColor"/>
10
+ </svg>
11
+ `;
12
+
13
+ private iconCss = svg`<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
14
+ <path d="M19 21L12 14L9.65 16.35C9.78333 16.6 9.875 16.8667 9.925 17.15C9.975 17.4333 10 17.7167 10 18C10 19.1 9.60833 20.0417 8.825 20.825C8.04167 21.6083 7.1 22 6 22C4.9 22 3.95833 21.6083 3.175 20.825C2.39167 20.0417 2 19.1 2 18C2 16.9 2.39167 15.9583 3.175 15.175C3.95833 14.3917 4.9 14 6 14C6.28333 14 6.56667 14.025 6.85 14.075C7.13333 14.125 7.4 14.2167 7.65 14.35L10 12L7.65 9.65C7.4 9.78333 7.13333 9.875 6.85 9.925C6.56667 9.975 6.28333 10 6 10C4.9 10 3.95833 9.60833 3.175 8.825C2.39167 8.04167 2 7.1 2 6C2 4.9 2.39167 3.95833 3.175 3.175C3.95833 2.39167 4.9 2 6 2C7.1 2 8.04167 2.39167 8.825 3.175C9.60833 3.95833 10 4.9 10 6C10 6.28333 9.975 6.56667 9.925 6.85C9.875 7.13333 9.78333 7.4 9.65 7.65L22 20V21H19ZM15 11L13 9L19 3H22V4L15 11ZM6 8C6.55 8 7.02083 7.80417 7.4125 7.4125C7.80417 7.02083 8 6.55 8 6C8 5.45 7.80417 4.97917 7.4125 4.5875C7.02083 4.19583 6.55 4 6 4C5.45 4 4.97917 4.19583 4.5875 4.5875C4.19583 4.97917 4 5.45 4 6C4 6.55 4.19583 7.02083 4.5875 7.4125C4.97917 7.80417 5.45 8 6 8ZM12 12.5C12.1333 12.5 12.25 12.45 12.35 12.35C12.45 12.25 12.5 12.1333 12.5 12C12.5 11.8667 12.45 11.75 12.35 11.65C12.25 11.55 12.1333 11.5 12 11.5C11.8667 11.5 11.75 11.55 11.65 11.65C11.55 11.75 11.5 11.8667 11.5 12C11.5 12.1333 11.55 12.25 11.65 12.35C11.75 12.45 11.8667 12.5 12 12.5ZM6 20C6.55 20 7.02083 19.8042 7.4125 19.4125C7.80417 19.0208 8 18.55 8 18C8 17.45 7.80417 16.9792 7.4125 16.5875C7.02083 16.1958 6.55 16 6 16C5.45 16 4.97917 16.1958 4.5875 16.5875C4.19583 16.9792 4 17.45 4 18C4 18.55 4.19583 19.0208 4.5875 19.4125C4.97917 19.8042 5.45 20 6 20Z" style="fill: var(--element-active-color)"/>
15
+ </svg>
16
+ `;
17
+
18
+ override render() {
19
+ return html`
20
+ <div class="wrapper">${this.useCssColor ? this.iconCss : this.icon}</div>
21
+ `;
22
+ }
23
+
24
+ static override styles = css`
25
+ .wrapper {
26
+ height: 100%;
27
+ width: 100%;
28
+ }
29
+ .wrapper > * {
30
+ height: 100%;
31
+ width: 100%;
32
+ }
33
+ `;
34
+ }
35
+
36
+ declare global {
37
+ interface HTMLElementTagNameMap {
38
+ 'obi-01-content-cut': Obi01ContentCut;
39
+ }
40
+ }
@@ -0,0 +1,40 @@
1
+ import {LitElement, html, css, svg} from 'lit';
2
+ import {customElement, property} from 'lit/decorators.js';
3
+
4
+ @customElement('obi-01-content-paste')
5
+ export class Obi01ContentPaste extends LitElement {
6
+ @property({type: Boolean, attribute: 'use-css-color'}) useCssColor = false;
7
+
8
+ private icon = svg`<svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
9
+ <path d="M5 22C4.45 22 3.97917 21.8042 3.5875 21.4125C3.19583 21.0208 3 20.55 3 20V6C3 5.45 3.19583 4.97917 3.5875 4.5875C3.97917 4.19583 4.45 4 5 4H9.175C9.35833 3.41667 9.71667 2.9375 10.25 2.5625C10.7833 2.1875 11.3667 2 12 2C12.6667 2 13.2625 2.1875 13.7875 2.5625C14.3125 2.9375 14.6667 3.41667 14.85 4H19C19.55 4 20.0208 4.19583 20.4125 4.5875C20.8042 4.97917 21 5.45 21 6V20C21 20.55 20.8042 21.0208 20.4125 21.4125C20.0208 21.8042 19.55 22 19 22H5ZM5 20H19V6H17V9H7V6H5V20ZM12 6C12.2833 6 12.5208 5.90417 12.7125 5.7125C12.9042 5.52083 13 5.28333 13 5C13 4.71667 12.9042 4.47917 12.7125 4.2875C12.5208 4.09583 12.2833 4 12 4C11.7167 4 11.4792 4.09583 11.2875 4.2875C11.0958 4.47917 11 4.71667 11 5C11 5.28333 11.0958 5.52083 11.2875 5.7125C11.4792 5.90417 11.7167 6 12 6Z" fill="currentColor"/>
10
+ </svg>
11
+ `;
12
+
13
+ private iconCss = svg`<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
14
+ <path d="M5 22C4.45 22 3.97917 21.8042 3.5875 21.4125C3.19583 21.0208 3 20.55 3 20V6C3 5.45 3.19583 4.97917 3.5875 4.5875C3.97917 4.19583 4.45 4 5 4H9.175C9.35833 3.41667 9.71667 2.9375 10.25 2.5625C10.7833 2.1875 11.3667 2 12 2C12.6667 2 13.2625 2.1875 13.7875 2.5625C14.3125 2.9375 14.6667 3.41667 14.85 4H19C19.55 4 20.0208 4.19583 20.4125 4.5875C20.8042 4.97917 21 5.45 21 6V20C21 20.55 20.8042 21.0208 20.4125 21.4125C20.0208 21.8042 19.55 22 19 22H5ZM5 20H19V6H17V9H7V6H5V20ZM12 6C12.2833 6 12.5208 5.90417 12.7125 5.7125C12.9042 5.52083 13 5.28333 13 5C13 4.71667 12.9042 4.47917 12.7125 4.2875C12.5208 4.09583 12.2833 4 12 4C11.7167 4 11.4792 4.09583 11.2875 4.2875C11.0958 4.47917 11 4.71667 11 5C11 5.28333 11.0958 5.52083 11.2875 5.7125C11.4792 5.90417 11.7167 6 12 6Z" style="fill: var(--element-active-color)"/>
15
+ </svg>
16
+ `;
17
+
18
+ override render() {
19
+ return html`
20
+ <div class="wrapper">${this.useCssColor ? this.iconCss : this.icon}</div>
21
+ `;
22
+ }
23
+
24
+ static override styles = css`
25
+ .wrapper {
26
+ height: 100%;
27
+ width: 100%;
28
+ }
29
+ .wrapper > * {
30
+ height: 100%;
31
+ width: 100%;
32
+ }
33
+ `;
34
+ }
35
+
36
+ declare global {
37
+ interface HTMLElementTagNameMap {
38
+ 'obi-01-content-paste': Obi01ContentPaste;
39
+ }
40
+ }
@@ -0,0 +1,40 @@
1
+ import {LitElement, html, css, svg} from 'lit';
2
+ import {customElement, property} from 'lit/decorators.js';
3
+
4
+ @customElement('obi-02-dock-bottom')
5
+ export class Obi02DockBottom extends LitElement {
6
+ @property({type: Boolean, attribute: 'use-css-color'}) useCssColor = false;
7
+
8
+ private icon = svg`<svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
9
+ <path d="M5 21C4.45 21 3.97917 20.8042 3.5875 20.4125C3.19583 20.0208 3 19.55 3 19V5C3 4.45 3.19583 3.97917 3.5875 3.5875C3.97917 3.19583 4.45 3 5 3H19C19.55 3 20.0208 3.19583 20.4125 3.5875C20.8042 3.97917 21 4.45 21 5V19C21 19.55 20.8042 20.0208 20.4125 20.4125C20.0208 20.8042 19.55 21 19 21H5ZM5 16V19H19V16H5ZM5 14H19V5H5V14Z" fill="currentColor"/>
10
+ </svg>
11
+ `;
12
+
13
+ private iconCss = svg`<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
14
+ <path d="M5 21C4.45 21 3.97917 20.8042 3.5875 20.4125C3.19583 20.0208 3 19.55 3 19V5C3 4.45 3.19583 3.97917 3.5875 3.5875C3.97917 3.19583 4.45 3 5 3H19C19.55 3 20.0208 3.19583 20.4125 3.5875C20.8042 3.97917 21 4.45 21 5V19C21 19.55 20.8042 20.0208 20.4125 20.4125C20.0208 20.8042 19.55 21 19 21H5ZM5 16V19H19V16H5ZM5 14H19V5H5V14Z" style="fill: var(--element-active-color)"/>
15
+ </svg>
16
+ `;
17
+
18
+ override render() {
19
+ return html`
20
+ <div class="wrapper">${this.useCssColor ? this.iconCss : this.icon}</div>
21
+ `;
22
+ }
23
+
24
+ static override styles = css`
25
+ .wrapper {
26
+ height: 100%;
27
+ width: 100%;
28
+ }
29
+ .wrapper > * {
30
+ height: 100%;
31
+ width: 100%;
32
+ }
33
+ `;
34
+ }
35
+
36
+ declare global {
37
+ interface HTMLElementTagNameMap {
38
+ 'obi-02-dock-bottom': Obi02DockBottom;
39
+ }
40
+ }
@@ -0,0 +1,40 @@
1
+ import {LitElement, html, css, svg} from 'lit';
2
+ import {customElement, property} from 'lit/decorators.js';
3
+
4
+ @customElement('obi-02-dock-left')
5
+ export class Obi02DockLeft extends LitElement {
6
+ @property({type: Boolean, attribute: 'use-css-color'}) useCssColor = false;
7
+
8
+ private icon = svg`<svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
9
+ <path d="M5 21C4.45 21 3.97917 20.8042 3.5875 20.4125C3.19583 20.0208 3 19.55 3 19V5C3 4.45 3.19583 3.97917 3.5875 3.5875C3.97917 3.19583 4.45 3 5 3H19C19.55 3 20.0208 3.19583 20.4125 3.5875C20.8042 3.97917 21 4.45 21 5V19C21 19.55 20.8042 20.0208 20.4125 20.4125C20.0208 20.8042 19.55 21 19 21H5ZM8 19V5H5V19H8ZM10 19H19V5H10V19Z" fill="currentColor"/>
10
+ </svg>
11
+ `;
12
+
13
+ private iconCss = svg`<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
14
+ <path d="M5 21C4.45 21 3.97917 20.8042 3.5875 20.4125C3.19583 20.0208 3 19.55 3 19V5C3 4.45 3.19583 3.97917 3.5875 3.5875C3.97917 3.19583 4.45 3 5 3H19C19.55 3 20.0208 3.19583 20.4125 3.5875C20.8042 3.97917 21 4.45 21 5V19C21 19.55 20.8042 20.0208 20.4125 20.4125C20.0208 20.8042 19.55 21 19 21H5ZM8 19V5H5V19H8ZM10 19H19V5H10V19Z" style="fill: var(--element-active-color)"/>
15
+ </svg>
16
+ `;
17
+
18
+ override render() {
19
+ return html`
20
+ <div class="wrapper">${this.useCssColor ? this.iconCss : this.icon}</div>
21
+ `;
22
+ }
23
+
24
+ static override styles = css`
25
+ .wrapper {
26
+ height: 100%;
27
+ width: 100%;
28
+ }
29
+ .wrapper > * {
30
+ height: 100%;
31
+ width: 100%;
32
+ }
33
+ `;
34
+ }
35
+
36
+ declare global {
37
+ interface HTMLElementTagNameMap {
38
+ 'obi-02-dock-left': Obi02DockLeft;
39
+ }
40
+ }