elbe-ui 1.0.8 → 2.0.1

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 (149) hide show
  1. package/dist/bit/_bit_provider.d.ts +1 -1
  2. package/dist/bit/_bit_provider.js +4 -4
  3. package/dist/bit/bit.d.ts +1 -1
  4. package/dist/bit/bit.js +1 -0
  5. package/dist/elbe.css +150 -562
  6. package/dist/elbe.css.map +1 -1
  7. package/dist/index.d.ts +188 -46
  8. package/dist/index.js +8 -6
  9. package/dist/ui/app/app.d.ts +13 -0
  10. package/dist/ui/app/app.js +81 -0
  11. package/dist/ui/app/app_ctxt.d.ts +35 -0
  12. package/dist/ui/app/app_ctxt.js +10 -0
  13. package/dist/ui/components/badge.d.ts +3 -3
  14. package/dist/ui/components/badge.js +16 -5
  15. package/dist/ui/components/banner.d.ts +3 -3
  16. package/dist/ui/components/banner.js +1 -1
  17. package/dist/ui/components/base/box.d.ts +82 -35
  18. package/dist/ui/components/base/box.js +56 -8
  19. package/dist/ui/components/base/card.d.ts +11 -12
  20. package/dist/ui/components/base/card.js +41 -19
  21. package/dist/ui/components/base/padded.d.ts +2 -4
  22. package/dist/ui/components/base/state_builder.d.ts +9 -0
  23. package/dist/ui/components/base/state_builder.js +33 -0
  24. package/dist/ui/components/button/button.d.ts +8 -6
  25. package/dist/ui/components/button/button.js +27 -16
  26. package/dist/ui/components/button/choose_button.d.ts +5 -3
  27. package/dist/ui/components/button/choose_button.js +9 -6
  28. package/dist/ui/components/button/icon_button.d.ts +6 -5
  29. package/dist/ui/components/button/icon_button.js +33 -23
  30. package/dist/ui/components/button/toggle_button.d.ts +5 -5
  31. package/dist/ui/components/button/toggle_button.js +13 -7
  32. package/dist/ui/components/dialog/dialog.d.ts +13 -0
  33. package/dist/ui/components/dialog/dialog.js +69 -0
  34. package/dist/ui/components/dialog/dialog_ctx.d.ts +34 -0
  35. package/dist/ui/components/dialog/dialog_ctx.js +44 -0
  36. package/dist/ui/components/dialog/dialogs/_alert.d.ts +7 -0
  37. package/dist/ui/components/dialog/dialogs/_alert.js +9 -0
  38. package/dist/ui/components/dialog/dialogs/_confirm.d.ts +9 -0
  39. package/dist/ui/components/dialog/dialogs/_confirm.js +21 -0
  40. package/dist/ui/components/error_view.js +3 -3
  41. package/dist/ui/components/footer.js +7 -7
  42. package/dist/ui/components/input/_labeled_input.d.ts +21 -0
  43. package/dist/ui/components/input/_labeled_input.js +21 -0
  44. package/dist/ui/components/input/checkbox.d.ts +4 -2
  45. package/dist/ui/components/input/checkbox.js +16 -8
  46. package/dist/ui/components/input/range.d.ts +5 -3
  47. package/dist/ui/components/input/range.js +19 -18
  48. package/dist/ui/components/input/select.d.ts +4 -3
  49. package/dist/ui/components/input/select.js +13 -40
  50. package/dist/ui/components/input/switch.d.ts +4 -2
  51. package/dist/ui/components/input/switch.js +30 -40
  52. package/dist/ui/components/input/text/input_field.d.ts +14 -19
  53. package/dist/ui/components/input/text/input_field.js +59 -61
  54. package/dist/ui/components/input/text/single_line.d.ts +11 -9
  55. package/dist/ui/components/input/text/single_line.js +15 -21
  56. package/dist/ui/components/layout/flex.d.ts +7 -3
  57. package/dist/ui/components/layout/flex.js +15 -12
  58. package/dist/ui/components/layout/header.d.ts +2 -2
  59. package/dist/ui/components/layout/header.js +26 -18
  60. package/dist/ui/components/layout/menu.d.ts +1 -1
  61. package/dist/ui/components/layout/menu.js +80 -49
  62. package/dist/ui/components/layout/scroll.d.ts +1 -0
  63. package/dist/ui/components/layout/scroll.js +3 -1
  64. package/dist/ui/components/layout/toolbar.js +9 -6
  65. package/dist/ui/components/link.d.ts +4 -2
  66. package/dist/ui/components/link.js +24 -11
  67. package/dist/ui/components/progress_bar.d.ts +2 -2
  68. package/dist/ui/components/progress_bar.js +12 -9
  69. package/dist/ui/components/spinner.d.ts +2 -7
  70. package/dist/ui/components/spinner.js +15 -16
  71. package/dist/ui/components/text.d.ts +5 -6
  72. package/dist/ui/components/text.js +34 -21
  73. package/dist/ui/components/tooltip.d.ts +5 -0
  74. package/dist/ui/components/tooltip.js +48 -0
  75. package/dist/ui/theme/subthemes/_theme_geometry.d.ts +9 -0
  76. package/dist/ui/theme/subthemes/_theme_geometry.js +22 -0
  77. package/dist/ui/theme/subthemes/_theme_menu.d.ts +9 -0
  78. package/dist/ui/theme/subthemes/_theme_menu.js +12 -0
  79. package/dist/ui/theme/subthemes/_theme_motion.d.ts +9 -0
  80. package/dist/ui/theme/subthemes/_theme_motion.js +13 -0
  81. package/dist/ui/theme/subthemes/_theme_toast.d.ts +8 -0
  82. package/dist/ui/theme/subthemes/_theme_toast.js +11 -0
  83. package/dist/ui/theme/subthemes/_theme_type.d.ts +49 -0
  84. package/dist/ui/theme/subthemes/_theme_type.js +73 -0
  85. package/dist/ui/theme/subthemes/color/_seed.d.ts +2 -0
  86. package/dist/ui/theme/subthemes/color/_seed.js +105 -0
  87. package/dist/ui/theme/subthemes/color/_theme_color.d.ts +865 -0
  88. package/dist/ui/theme/subthemes/color/_theme_color.js +83 -0
  89. package/dist/ui/theme/subthemes/color/colors/_color_contrast.d.ts +284 -0
  90. package/dist/ui/theme/subthemes/color/colors/_color_contrast.js +17 -0
  91. package/dist/ui/theme/subthemes/color/colors/_color_kind.d.ts +242 -0
  92. package/dist/ui/theme/subthemes/color/colors/_color_kind.js +45 -0
  93. package/dist/ui/theme/subthemes/color/colors/_color_layer.d.ts +226 -0
  94. package/dist/ui/theme/subthemes/color/colors/_color_layer.js +95 -0
  95. package/dist/ui/theme/subthemes/color/colors/_color_manner.d.ts +280 -0
  96. package/dist/ui/theme/subthemes/color/colors/_color_manner.js +17 -0
  97. package/dist/ui/theme/subthemes/color/colors/_color_mode.d.ts +269 -0
  98. package/dist/ui/theme/subthemes/color/colors/_color_mode.js +16 -0
  99. package/dist/ui/theme/subthemes/color/colors/_color_rgba.d.ts +166 -0
  100. package/dist/ui/theme/subthemes/color/colors/_color_rgba.js +86 -0
  101. package/dist/ui/theme/subthemes/color/colors/_color_scheme.d.ts +256 -0
  102. package/dist/ui/theme/subthemes/color/colors/_color_scheme.js +17 -0
  103. package/dist/ui/theme/subthemes/color/colors/_color_state.d.ts +252 -0
  104. package/dist/ui/theme/subthemes/color/colors/_color_state.js +49 -0
  105. package/dist/ui/theme/subthemes/color/colors/_colordef.d.ts +22 -0
  106. package/dist/ui/theme/subthemes/color/colors/_colordef.js +34 -0
  107. package/dist/ui/theme/subthemes/color/colors/colors.d.ts +511 -0
  108. package/dist/ui/theme/subthemes/color/colors/colors.js +24 -0
  109. package/dist/ui/theme/theme.d.ts +984 -30
  110. package/dist/ui/theme/theme.js +14 -82
  111. package/dist/ui/theme/theme_context.d.ts +15 -17
  112. package/dist/ui/theme/theme_context.js +79 -18
  113. package/dist/ui/util/_util.d.ts +8 -0
  114. package/dist/ui/util/_util.js +42 -0
  115. package/dist/ui/util/error_view.js +3 -3
  116. package/dist/ui/util/merge_deep.d.ts +1 -0
  117. package/dist/ui/util/merge_deep.js +18 -0
  118. package/dist/ui/util/root.d.ts +17 -0
  119. package/dist/ui/util/root.js +23 -0
  120. package/dist/ui/util/toast/_toast.d.ts +5 -0
  121. package/dist/ui/util/toast/_toast.js +7 -0
  122. package/dist/ui/util/toast/toast_ctx.d.ts +28 -0
  123. package/dist/ui/util/toast/toast_ctx.js +62 -0
  124. package/dist/ui/util/toast/toast_legacy.d.ts +5 -0
  125. package/dist/ui/util/{toast.js → toast/toast_legacy.js} +4 -4
  126. package/dist/ui/util/util.d.ts +15 -0
  127. package/dist/ui/util/util.js +69 -1
  128. package/package.json +11 -9
  129. package/dist/ui/components/dialog.d.ts +0 -10
  130. package/dist/ui/components/dialog.js +0 -35
  131. package/dist/ui/components/layout/app_base.d.ts +0 -15
  132. package/dist/ui/components/layout/app_base.js +0 -76
  133. package/dist/ui/components/layout/ctx_app_base.d.ts +0 -19
  134. package/dist/ui/components/layout/ctx_app_base.js +0 -12
  135. package/dist/ui/theme/color_theme.d.ts +0 -2
  136. package/dist/ui/theme/color_theme.js +0 -92
  137. package/dist/ui/theme/colors.d.ts +0 -133
  138. package/dist/ui/theme/colors.js +0 -309
  139. package/dist/ui/theme/geometry_theme.d.ts +0 -16
  140. package/dist/ui/theme/geometry_theme.js +0 -28
  141. package/dist/ui/theme/seed.d.ts +0 -53
  142. package/dist/ui/theme/seed.js +0 -4
  143. package/dist/ui/theme/type_theme.d.ts +0 -38
  144. package/dist/ui/theme/type_theme.js +0 -73
  145. package/dist/ui/util/confirm_dialog.d.ts +0 -10
  146. package/dist/ui/util/confirm_dialog.js +0 -46
  147. package/dist/ui/util/toast.d.ts +0 -5
  148. /package/dist/bit/{_bit_utils.d.ts → _bit_types.d.ts} +0 -0
  149. /package/dist/bit/{_bit_utils.js → _bit_types.js} +0 -0
package/dist/elbe.css CHANGED
@@ -4,13 +4,6 @@
4
4
  */
5
5
  @import url("https://fonts.googleapis.com/css2?display=swap&family=Space+Mono:ital,wght@0,400;0,700;1,400;1,700&family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=Calistoga&family=Noto+Color+Emoji");
6
6
  :root {
7
- --g-size: 1rem;
8
- --g-radius: 0.75rem;
9
- --g-padding: 1rem;
10
- --g-border-width: 0.125rem;
11
- --c-context-back: #ffffff;
12
- --c-context-front: #000;
13
- --c-context-border: #000;
14
7
  line-height: 1.3;
15
8
  color: #222;
16
9
  background-color: #ffffff;
@@ -33,6 +26,7 @@
33
26
  font-family: inherit;
34
27
  font-weight: inherit;
35
28
  border-color: inherit;
29
+ color: inherit;
36
30
  }
37
31
 
38
32
  body,
@@ -43,592 +37,178 @@ body,
43
37
  background-color: white;
44
38
  }
45
39
 
46
- .elbe {
47
- /* ========= SPACING ========= */
48
- }
49
- .elbe .padded,
50
- .elbe .card,
51
- .elbe .toast,
52
- .elbe select,
53
- .elbe button {
54
- padding: var(--g-padding);
55
- }
56
- .elbe .padding-none {
57
- padding: 0rem;
58
- }
59
- .elbe .margined {
60
- margin: var(--g-padding);
61
- }
62
- .elbe .margined-none {
63
- margin: 0rem;
64
- }
65
- .elbe {
66
- /* ========= ELEMENT_STYLE ========= */
67
- }
68
- .elbe .sharp.sharp.sharp {
69
- border-radius: 0;
70
- }
71
- .elbe .rounded,
72
- .elbe .card,
73
- .elbe .toast,
74
- .elbe select,
75
- .elbe button {
76
- border-radius: var(--g-radius);
77
- border-color: inherit;
78
- }
79
- .elbe .round {
80
- border-radius: 50%;
81
- }
82
- .elbe img.round,
83
- .elbe img.rounded {
84
- object-fit: cover;
85
- }
86
- .elbe .borderless {
87
- border: none;
88
- }
89
- .elbe .raised, .elbe .toast {
90
- box-shadow: 0 0.1rem 1rem rgba(0, 0, 0, 0.2);
91
- }
92
- .elbe .scrollbars-none {
93
- scrollbar-width: none;
94
- -ms-overflow-style: none;
95
- }
96
- .elbe .scrollbars-none::-webkit-scrollbar {
97
- display: none;
98
- }
99
- .elbe .pointer {
100
- cursor: pointer;
101
- }
102
- .elbe .text-centered {
103
- text-align: center;
104
- }
105
- .elbe .text-start {
106
- text-align: start;
107
- }
108
- .elbe .text-end {
109
- text-align: end;
110
- }
111
- .elbe body:has(dialog[open=""]) {
112
- overflow: hidden;
113
- }
114
- .elbe .transparent.transparent {
115
- background-color: transparent;
116
- }
117
- .elbe .disabled {
118
- cursor: not-allowed;
119
- }
120
- .elbe .plain.disabled {
121
- opacity: 0.5;
40
+ #elbe_app *:focus-visible, #elbe_app .elbe-focussink:focus-within, #elbe_dialog *:focus-visible, #elbe_dialog .elbe-focussink:focus-within,
41
+ #elbe_tooltip *:focus-visible,
42
+ #elbe_tooltip .elbe-focussink:focus-within, #elbe_toast *:focus-visible, #elbe_toast .elbe-focussink:focus-within {
43
+ position: relative;
44
+ outline: max(2px, 0.15em) solid var(--elbe-context-color-outline);
45
+ outline-offset: 0;
122
46
  }
123
- .elbe {
124
- /* ========= CARD ========= */
47
+ #elbe_app *:focus-visible *:focus-visible:focus-visible, #elbe_app .elbe-focussink:focus-within *:focus-visible:focus-visible, #elbe_dialog *:focus-visible *:focus-visible:focus-visible, #elbe_dialog .elbe-focussink:focus-within *:focus-visible:focus-visible,
48
+ #elbe_tooltip *:focus-visible *:focus-visible:focus-visible,
49
+ #elbe_tooltip .elbe-focussink:focus-within *:focus-visible:focus-visible, #elbe_toast *:focus-visible *:focus-visible:focus-visible, #elbe_toast .elbe-focussink:focus-within *:focus-visible:focus-visible {
50
+ outline: none !important;
125
51
  }
126
- .elbe .box, .elbe .header, .elbe .base-limited,
127
- .elbe .card,
128
- .elbe .toast,
129
- .elbe select,
130
- .elbe button {
131
- border-style: solid;
132
- border-width: var(--g-border-width);
133
- }
134
- .elbe {
135
- /* ========= UTIL ========= */
52
+ #elbe_app *:active, #elbe_dialog *:active,
53
+ #elbe_tooltip *:active, #elbe_toast *:active {
54
+ outline: none;
136
55
  }
137
- .elbe .action {
138
- cursor: pointer;
56
+ #elbe_app.dark :focus-visible, #elbe_dialog.dark :focus-visible,
57
+ #elbe_tooltip.dark :focus-visible, #elbe_toast.dark :focus-visible {
58
+ outline: 0.15rem solid white;
139
59
  }
140
- .elbe .base-limited {
141
- max-width: 700px;
60
+ #elbe_app, #elbe_dialog,
61
+ #elbe_tooltip, #elbe_toast {
142
62
  width: 100%;
143
- margin: 0 auto;
144
- }
145
- .elbe {
146
- /* ========= MARKUP ========= */
147
63
  }
148
- .elbe i,
149
- .elbe .i {
150
- font-style: italic;
64
+ #elbe_app hr, #elbe_dialog hr,
65
+ #elbe_tooltip hr, #elbe_toast hr {
66
+ margin: 0;
67
+ height: 0;
68
+ width: 100%;
69
+ border: none;
70
+ border-top-width: max(var(--elbe-context-geometry-border-width), 1px);
71
+ border-top-style: solid;
72
+ border-top-color: var(--elbe-context-color-border);
151
73
  }
152
- .elbe b,
153
- .elbe .b,
154
- .elbe .toast,
155
- .elbe button {
74
+ #elbe_app * b, #elbe_app * strong, #elbe_dialog * b, #elbe_dialog * strong,
75
+ #elbe_tooltip * b,
76
+ #elbe_tooltip * strong, #elbe_toast * b, #elbe_toast * strong {
156
77
  font-weight: bold;
157
78
  }
158
- .elbe .u {
159
- text-decoration: underline;
160
- }
161
- .elbe .ni {
162
- font-style: normal;
163
- }
164
- .elbe .nb {
165
- font-weight: normal;
166
- }
167
- .elbe .nu {
168
- text-decoration: none;
169
- }
170
- .elbe .striked {
171
- text-decoration: line-through;
172
- }
173
- .elbe .code {
174
- font-family: monospace;
175
- white-space: pre-wrap;
176
- }
177
- .elbe {
178
- /* ========= ANIMATIONS ========= */
179
- }
180
- .elbe .rotate {
181
- display: flex;
182
- align-items: center;
183
- justify-content: center;
184
- animation: rotation 1.5s infinite linear;
185
- }
186
- @keyframes rotation {
187
- from {
188
- transform: rotate(0deg);
189
- }
190
- to {
191
- transform: rotate(359deg);
192
- }
193
- }
194
- .elbe.highvis a {
195
- text-decoration: underline;
196
- }
197
- .elbe a {
198
- text-decoration: none;
199
- }
200
- .elbe a:hover {
201
- text-decoration: underline;
202
- }
203
- .elbe .column, .elbe dialog,
204
- .elbe .row,
205
- .elbe .header,
206
- .elbe button,
207
- .elbe .row-resp {
208
- display: flex;
209
- justify-content: start;
210
- align-items: stretch;
211
- gap: 1rem;
212
- }
213
- .elbe .column, .elbe dialog {
214
- flex-direction: column;
215
- }
216
- .elbe .row, .elbe .header, .elbe button {
217
- flex-direction: row;
218
- align-items: center;
219
- }
220
- .elbe .centered {
221
- display: flex;
222
- align-items: center;
223
- justify-content: center;
224
- }
225
- .elbe {
226
- /* ========== GAP =========== */
227
- }
228
- .elbe .gap-none {
229
- gap: 0;
230
- }
231
- .elbe .gap-quarter {
232
- gap: 0.25rem;
233
- }
234
- .elbe .gap-half {
235
- gap: 0.5rem;
236
- }
237
- .elbe .gap-one {
238
- gap: 1rem;
239
- }
240
- .elbe .gap-double {
241
- gap: 2rem;
242
- }
243
- .elbe .gap-triple {
244
- gap: 3rem;
245
- }
246
- .elbe {
247
- /* ========== EXPAND =========== */
248
- }
249
- .elbe .flex-none {
250
- flex: 0 0 auto;
251
- }
252
- .elbe .flex-1 {
253
- flex: 1 1 0%;
254
- }
255
- .elbe .flex-2 {
256
- flex: 2 2 0%;
257
- }
258
- .elbe .flex-3 {
259
- flex: 3 3 0%;
260
- }
261
- .elbe .flex-4 {
262
- flex: 4 4 0%;
263
- }
264
- .elbe .flex-5 {
265
- flex: 5 5 0%;
266
- }
267
- .elbe .flex-6 {
268
- flex: 6 6 0%;
269
- }
270
- .elbe .flex-7 {
271
- flex: 7 7 0%;
272
- }
273
- .elbe .flex-8 {
274
- flex: 8 8 0%;
275
- }
276
- .elbe .flex-9 {
277
- flex: 9 9 0%;
278
- }
279
- .elbe .flex-10 {
280
- flex: 10 10 0%;
281
- }
282
- .elbe .flex-11 {
283
- flex: 11 11 0%;
284
- }
285
- .elbe .flex-12 {
286
- flex: 12 12 0%;
287
- }
288
- .elbe {
289
- /* ========== ALIGN =========== */
290
- }
291
- .elbe .cross-start {
292
- align-items: flex-start;
293
- }
294
- .elbe .cross-center, .elbe dialog {
295
- align-items: center;
296
- }
297
- .elbe .cross-end {
298
- align-items: flex-end;
299
- }
300
- .elbe .cross-stretch {
301
- align-items: stretch;
302
- }
303
- .elbe .cross-baseline {
304
- align-items: baseline;
305
- }
306
- .elbe {
307
- /* ========== JUSTIFY =========== */
308
- }
309
- .elbe .main-start {
310
- justify-content: flex-start;
311
- }
312
- .elbe .main-center, .elbe dialog {
313
- justify-content: center;
314
- }
315
- .elbe .main-end {
316
- justify-content: flex-end;
317
- }
318
- .elbe .main-between {
319
- justify-content: space-between;
320
- }
321
- .elbe .main-around {
322
- justify-content: space-around;
323
- }
324
- .elbe .main-evenly {
325
- justify-content: space-evenly;
326
- }
327
- .elbe {
328
- /* ========== RESPONSIVE =========== */
329
- }
330
- @media (max-width: 700px) {
331
- .elbe .row-resp {
332
- flex-direction: column;
333
- }
334
- .elbe .resp-reversed {
335
- flex-direction: column-reverse;
336
- }
337
- .elbe .if-wide {
338
- display: none;
339
- }
340
- }
341
- @media (min-width: 700px) {
342
- .elbe .if-narrow {
343
- display: none;
344
- }
345
- }
346
- .elbe .wrap {
347
- flex-wrap: wrap;
348
- }
349
- .elbe .c_from_context, .elbe input[type=text],
350
- .elbe input[type=number],
351
- .elbe input[type=password],
352
- .elbe input[type=email],
353
- .elbe input[type=date],
354
- .elbe input[type=time],
355
- .elbe textarea, .elbe select {
356
- background-color: var(--c-context-back);
357
- color: var(--c-context-front);
358
- border: var(--g-border-width) solid var(--c-context-border);
359
- }
360
- .elbe .borderless {
361
- border: none;
362
- }
363
- .elbe .bordered.bordered.bordered.bordered.bordered {
364
- border: var(--g-border-width) solid var(--c-context-border);
79
+ #elbe_app * i, #elbe_app * em, #elbe_dialog * i, #elbe_dialog * em,
80
+ #elbe_tooltip * i,
81
+ #elbe_tooltip * em, #elbe_toast * i, #elbe_toast * em {
82
+ font-style: italic;
365
83
  }
366
- .elbe .no-scrollbar {
84
+
85
+ .elbe_no-scrollbar {
367
86
  scrollbar-width: none; /* Firefox */
368
87
  -ms-overflow-style: none; /* Internet Explorer and Edge */
369
88
  }
370
- .elbe .no-scrollbar::-webkit-scrollbar {
89
+ .elbe_no-scrollbar::-webkit-scrollbar {
371
90
  display: none; /* Safari and Chrome */
372
91
  }
373
- .elbe button {
374
- justify-content: center;
375
- padding: 0.25rem 0.75rem;
376
- gap: 0.5rem;
377
- min-height: 3rem;
378
- cursor: pointer;
379
- color: inherit;
380
- background-color: inherit;
92
+
93
+ .elbe_scrollbars-hidden {
94
+ scrollbar-width: none; /* Firefox */
95
+ -ms-overflow-style: none; /* Internet Explorer and Edge */
381
96
  }
382
- .elbe button:not(.dummy_class_001) {
383
- border: none;
97
+ .elbe_scrollbars-hidden::-webkit-scrollbar {
98
+ display: none; /* Safari and Chrome */
384
99
  }
385
- .elbe button {
386
- /*& > .lucide {
387
- & + div {
388
- text-align: center;
389
- flex: 1;
390
- text-align: center;
391
- }
392
- }
393
100
 
394
- &.text-left {
395
- text-align: left;
396
- div {
397
- margin-left: 0.25rem;
398
- text-align: left;
399
- }
400
- }*/
401
- }
402
- .elbe .icon {
403
- aspect-ratio: 1;
404
- border-radius: 25%;
405
- object-fit: cover;
406
- }
407
- .elbe select {
408
- padding: 0 0.75rem;
409
- height: 3rem;
410
- min-width: 12rem;
411
- width: 100%;
101
+ .elbe_colored {
102
+ color: var(--elbe-context-color-front);
103
+ background-color: var(--elbe-context-color-back);
104
+ border-color: var(--elbe-context-color-border);
412
105
  }
413
- .elbe.dark dialog[open=""] > div {
414
- border-width: var(--g-border-width);
415
- border-style: solid;
416
- border-color: var(--c-context-border);
106
+
107
+ input[type=checkbox] {
108
+ -webkit-appearance: none;
109
+ appearance: none;
110
+ margin: 0;
111
+ display: flex;
112
+ align-items: center;
113
+ justify-content: center;
417
114
  }
418
- .elbe .elbe_dialog_base.elbe_dialog_base.elbe_dialog_base {
419
- transform: scale(0.95);
420
- opacity: 0;
421
- transition: opacity 0.3s, transform 0.3s ease-in-out;
115
+
116
+ input[type=checkbox]::after {
117
+ content: "";
118
+ width: 0.95rem;
119
+ height: 0.75rem;
120
+ clip-path: polygon(10% 41%, 37% 75%, 91% 0, 100% 13%, 38% 100%, 0 55%);
121
+ transform: scale(0);
122
+ transform-origin: center;
123
+ transition: 0.2s all ease-in-out;
124
+ background-color: var(--elbe-context-color-front);
125
+ z-index: 1;
422
126
  }
423
- .elbe dialog {
424
- z-index: 100;
425
- position: fixed;
426
- top: 0;
427
- left: 0;
428
- width: 100vw;
429
- height: 100vh;
430
- border: none;
431
- pointer-events: none;
432
- background-color: transparent;
433
- backdrop-filter: blur(0px) brightness(1);
434
- transition: backdrop-filter 0.3s ease-in-out;
435
- /*& > *:not(.elbe_dialog_base) {
436
- display: none;
437
- }*/
438
- }
439
- .elbe dialog[open=""] {
440
- backdrop-filter: blur(5px) brightness(0.7);
441
- pointer-events: all;
442
- }
443
- .elbe dialog[open=""] > * {
444
- display: unset;
445
- max-width: 100vw;
446
- }
447
- .elbe dialog[open=""] .elbe_dialog_base.elbe_dialog_base.elbe_dialog_base {
448
- opacity: 1;
127
+
128
+ input[type=checkbox]:checked::after {
449
129
  transform: scale(1);
450
130
  }
451
- .elbe .expandable {
452
- max-height: 0px;
453
- transition: max-height 0.25s ease-out;
454
- overflow: hidden;
455
- }
456
- .elbe .expandable:has(*) {
457
- max-height: 500px;
458
- transition: max-height 0.25s ease-in;
459
- }
460
- .elbe .header {
461
- width: 100%;
462
- position: fixed;
463
- left: 0;
464
- top: 0;
465
- display: flex;
466
- font-size: 1.25rem;
467
- font-weight: 900;
468
- border-width: 20px;
469
- border-style: solid;
470
- border-width: 0 0 2px 0;
471
- padding: 0 0.5rem;
472
- z-index: 20;
473
- box-sizing: border-box;
474
- justify-content: space-between;
475
- align-items: center;
476
- }
477
- .elbe .frosted.frosted.frosted.frosted {
478
- background-color: color-mix(in srgb, var(--c-context-back) 50%, transparent);
479
- backdrop-filter: blur(10px);
480
- -webkit-backdrop-filter: blur(10px);
131
+
132
+ .elbe_tooltip {
133
+ animation: elbe_tooltip_fadein 0.15s ease-in-out forwards;
481
134
  }
482
- .elbe .text_field_base:has(:focus) {
483
- outline: max(2px, 0.15em) solid var(--c-accent);
135
+
136
+ @keyframes elbe_tooltip_fadein {
137
+ from {
138
+ opacity: 0;
139
+ scale: 0.95;
140
+ }
141
+ to {
142
+ opacity: 1;
143
+ scale: 1;
144
+ }
484
145
  }
485
- .elbe.highvis input[type=range]::-webkit-slider-thumb {
486
- border-width: var(--g-border-width);
146
+ input[type=range]::-webkit-slider-thumb {
147
+ border-width: var(--elbe-context-geometry-border-width);
487
148
  border-style: solid;
488
- border-color: var(--c-context-back);
149
+ border-color: var(--elbe-context-color-back);
489
150
  }
490
- .elbe.highvis input[type=range]::-moz-range-thumb {
491
- border-width: var(--g-border-width);
151
+ input[type=range]::-moz-range-thumb {
152
+ border-width: var(--elbe-context-geometry-border-width);
492
153
  border-style: solid;
493
- border-color: var(--c-context-back);
154
+ border-color: var(--elbe-context-color-back);
494
155
  }
495
- .elbe input[type=range] {
156
+
157
+ input[type=range] {
496
158
  -webkit-appearance: none;
497
159
  appearance: none;
498
160
  width: 100%;
499
161
  height: 0.4rem;
500
- background-color: var(--c-context-back);
162
+ background-color: var(--elbe-context-color-back);
501
163
  outline: none;
502
164
  -webkit-transition: 0.2s;
503
165
  transition: background-color 0.2s;
504
166
  }
505
- .elbe input[type=range]:hover {
506
- background-color: var(--c-context-back);
167
+ input[type=range]:hover {
168
+ background-color: var(--elbe-context-color-back);
507
169
  }
508
- .elbe input[type=range]::-webkit-slider-thumb {
170
+ input[type=range]::-webkit-slider-thumb {
509
171
  -webkit-appearance: none;
510
172
  appearance: none;
511
- width: 1.5rem;
512
- height: 1.5rem;
513
- border-radius: var(--g-radius);
514
- background: var(--c-context-front);
515
- border: none;
173
+ width: 1rem;
174
+ height: 1rem;
175
+ border-radius: var(--elbe-context-geometry-border-radius);
176
+ background-color: var(--elbe-range-dot-back);
177
+ border: 0.25rem solid var(--elbe-range-dot-border);
516
178
  outline: none;
517
179
  cursor: pointer;
518
180
  }
519
- .elbe input[type=range]::-moz-range-thumb {
520
- width: 1.5rem;
521
- height: 1.5rem;
522
- border-radius: var(--g-radius);
523
- background: var(--c-context-front);
524
- border: none;
181
+ input[type=range]::-moz-range-thumb {
182
+ width: 1rem;
183
+ height: 1rem;
184
+ border-radius: var(--elbe-context-geometry-border-radius);
185
+ background-color: var(--elbe-range-dot-back);
186
+ border: 0.25rem solid var(--elbe-range-dot-border);
525
187
  outline: none;
526
188
  cursor: pointer;
527
189
  }
528
- .elbe {
529
- /*input[type="range"] {
530
- -webkit-appearance: none;
531
- appearance: none;
532
- background: green;
533
- cursor: pointer;
534
- width: 15rem;
535
-
536
- &::-moz-range-track{
537
- background-color: var(--c-context-border);
538
- border-radius: 100px;
539
- border: none;
540
- height: 0.5rem;
541
- }
542
190
 
543
- &::-webkit-slider-runnable-track
544
- {
545
- border-radius: 100px;
546
- border: none;
547
- height: 0.5rem;
548
- }
549
-
550
- &::-webkit-slider-thumb
551
- {
552
-
553
- border: none;
554
- -webkit-appearance: none; // Override default look
555
- appearance: none;
556
- margin-top: -6px;
557
- border-radius: 100px;
558
- height: 1.2rem;
559
- width: 1.2rem;
560
- }
561
- }*/
562
- }
563
- .elbe input[type=checkbox] {
564
- -webkit-appearance: none;
565
- appearance: none;
566
- margin: 0;
567
- font: inherit;
568
- width: 1.8rem;
569
- height: 1.8rem;
570
- border-width: var(--g-border-width);
571
- border-radius: var(--g-radius);
572
- border-style: solid;
573
- transform: translateY(-0.075em);
574
- display: grid;
575
- place-content: center;
576
- outline: none;
191
+ .toast-animated {
192
+ animation: toast-animated_fadein 0.2s ease-out;
577
193
  }
578
- .elbe input[type=checkbox]::before {
579
- content: "";
580
- width: 0.95rem;
581
- height: 0.75rem;
582
- clip-path: polygon(10% 41%, 37% 75%, 91% 0, 100% 13%, 38% 100%, 0 55%);
583
- transform: scale(0);
584
- transform-origin: center;
585
- transition: 0.2s all ease-in-out;
586
- }
587
- .elbe.reduced_motion input[type=checkbox]::before {
588
- transition: none;
589
- }
590
- .elbe input[type=checkbox]:checked::before {
591
- transform: scale(1);
592
- background-color: var(--c-context-front);
593
- }
594
- .elbe input[type=checkbox]:focus {
595
- outline: max(2px, 0.15em) solid var(--c-accent);
596
- outline-offset: 0;
597
- }
598
- .elbe input[type=checkbox]:not(:checked):disabled {
599
- cursor: not-allowed;
600
- border: 0.16em solid var(--c-context-border);
601
- }
602
- .elbe.highvis div[data-type=elbe_progress_bar] > * {
603
- outline-width: var(--g-border-width);
604
- outline-style: solid;
605
- outline-color: var(--c-context-back);
606
- }
607
- .elbe hr {
608
- border: none;
609
- border-top: var(--g-border-width) solid var(--c-context-border);
610
- width: 100%;
611
- }
612
- .elbe button > * {
613
- flex-shrink: 0;
614
- }
615
- .elbe ._elbe_tooltip {
616
- position: fixed;
617
- background-color: black;
618
- color: white;
619
- padding: 0.25rem 0.5rem;
620
- border-radius: 0.25rem;
621
- font-size: 1rem;
622
- white-space: nowrap;
623
- z-index: 101;
624
- pointer-events: none;
625
- }
626
- @keyframes _tt_show {
627
- 100% {
194
+
195
+ @keyframes toast-animated_fadein {
196
+ from {
197
+ opacity: 0;
198
+ transform: translateY(20px);
199
+ }
200
+ to {
628
201
  opacity: 1;
202
+ transform: translateY(0);
629
203
  }
630
204
  }
631
- .elbe .toast {
205
+ .toast {
206
+ background-color: black;
207
+ color: white;
208
+ border-radius: 0.5rem;
209
+ padding: 1rem;
210
+ box-shadow: 0px 0px 1rem -0.5rem black;
211
+ font-weight: bold;
632
212
  position: fixed;
633
213
  bottom: 1rem;
634
214
  right: 1rem;
@@ -638,9 +218,7 @@ body,
638
218
  transform: translateX(-50%);
639
219
  animation: toast_fadeIn 0.2s ease-out;
640
220
  }
641
- .elbe.reduced_motion .toast {
642
- animation: none;
643
- }
221
+
644
222
  @keyframes toast_fadeIn {
645
223
  from {
646
224
  opacity: 0;
@@ -651,27 +229,37 @@ body,
651
229
  transform: translateX(-50%) translateY(0);
652
230
  }
653
231
  }
654
- .elbe {
655
- /*@keyframes toast_fadeOut {
656
- from {
657
- opacity: 1;
658
- }
659
- to {
660
- opacity: 0;
661
- }
662
- }*/
232
+ /* AnimatedDialog.css */
233
+ .elbe_dialog-base {
234
+ animation: elbe_dialog-fadeIn 0.3s;
663
235
  }
664
- .elbe :focus-visible {
665
- outline: 0.15rem solid var(--c-accent);
236
+
237
+ .elbe_dialog-base dialog {
238
+ animation: elbe_dialog-scaleIn 0.3s;
666
239
  }
667
- .elbe :active {
668
- outline: none;
240
+
241
+ @keyframes elbe_dialog-fadeIn {
242
+ from {
243
+ opacity: 0;
244
+ }
245
+ to {
246
+ opacity: 1;
247
+ }
669
248
  }
670
- .elbe.dark :focus-visible {
671
- outline: 0.15rem solid white;
249
+ @keyframes elbe_dialog-scaleIn {
250
+ from {
251
+ transform: scale(0.8);
252
+ opacity: 0;
253
+ }
254
+ to {
255
+ transform: scale(1);
256
+ opacity: 1;
257
+ }
672
258
  }
673
- .elbe {
674
- width: 100vw;
259
+ ._color_from_context {
260
+ background-color: var(--c-context-back);
261
+ color: var(--c-context-front);
262
+ border: var(--g-border-width) solid var(--c-context-border);
675
263
  }
676
264
 
677
265
  ._elbe_tooltip {