elbe-ui 0.2.46 → 0.2.52
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.
- package/dist/elbe.css +60 -18
- package/dist/elbe.css.map +1 -1
- package/dist/index.d.ts +6 -0
- package/dist/index.js +6 -0
- package/dist/ui/components/banner.d.ts +12 -0
- package/dist/ui/components/banner.js +17 -0
- package/dist/ui/components/base/box.d.ts +15 -1
- package/dist/ui/components/base/box.js +4 -4
- package/dist/ui/components/base/card.d.ts +4 -1
- package/dist/ui/components/base/card.js +11 -2
- package/dist/ui/components/base/padded.js +1 -1
- package/dist/ui/components/button/button.d.ts +3 -2
- package/dist/ui/components/button/button.js +4 -2
- package/dist/ui/components/button/choose_button.d.ts +1 -0
- package/dist/ui/components/button/choose_button.js +5 -2
- package/dist/ui/components/button/icon_button.d.ts +3 -2
- package/dist/ui/components/button/icon_button.js +2 -1
- package/dist/ui/components/button/toggle_button.d.ts +2 -2
- package/dist/ui/components/button/toggle_button.js +1 -1
- package/dist/ui/components/dev/todo.js +3 -3
- package/dist/ui/components/dialog.js +1 -1
- package/dist/ui/components/input/checkbox.d.ts +2 -2
- package/dist/ui/components/input/checkbox.js +3 -1
- package/dist/ui/components/input/input_field.d.ts +2 -2
- package/dist/ui/components/input/input_field.js +1 -1
- package/dist/ui/components/input/range.d.ts +2 -2
- package/dist/ui/components/input/range.js +2 -2
- package/dist/ui/components/input/select.d.ts +2 -2
- package/dist/ui/components/input/select.js +1 -1
- package/dist/ui/components/input/switch.d.ts +6 -0
- package/dist/ui/components/input/switch.js +49 -0
- package/dist/ui/components/input/text_area.d.ts +2 -2
- package/dist/ui/components/input/text_area.js +1 -1
- package/dist/ui/components/layout/alignment.d.ts +9 -0
- package/dist/ui/components/layout/alignment.js +13 -0
- package/dist/ui/components/layout/flex.js +1 -1
- package/dist/ui/components/layout/header.d.ts +19 -0
- package/dist/ui/components/layout/header.js +52 -0
- package/dist/ui/components/layout/scaffold.d.ts +2 -17
- package/dist/ui/components/layout/scaffold.js +3 -34
- package/dist/ui/components/layout/scroll.js +1 -1
- package/dist/ui/components/progress_bar.d.ts +6 -0
- package/dist/ui/components/progress_bar.js +28 -0
- package/dist/ui/components/text.js +3 -2
- package/dist/ui/theme/color_theme.d.ts +2 -2
- package/dist/ui/theme/color_theme.js +51 -27
- package/dist/ui/theme/colors.d.ts +5 -33
- package/dist/ui/theme/colors.js +13 -11
- package/dist/ui/theme/seed.d.ts +43 -0
- package/dist/ui/theme/seed.js +1 -0
- package/dist/ui/theme/theme.d.ts +9 -5
- package/dist/ui/theme/theme.js +12 -4
- package/dist/ui/util/confirm_dialog.js +6 -3
- package/package.json +1 -1
package/dist/elbe.css
CHANGED
|
@@ -112,7 +112,7 @@ body,
|
|
|
112
112
|
.elbe .margined-none {
|
|
113
113
|
margin: 0rem;
|
|
114
114
|
}
|
|
115
|
-
.elbe .sharp {
|
|
115
|
+
.elbe .sharp.sharp.sharp {
|
|
116
116
|
border-radius: 0;
|
|
117
117
|
}
|
|
118
118
|
.elbe .rounded,
|
|
@@ -129,7 +129,6 @@ body,
|
|
|
129
129
|
.elbe button {
|
|
130
130
|
border-radius: var(--g-radius);
|
|
131
131
|
border-color: inherit;
|
|
132
|
-
overflow: hidden;
|
|
133
132
|
}
|
|
134
133
|
.elbe .round {
|
|
135
134
|
border-radius: 50%;
|
|
@@ -166,7 +165,7 @@ body,
|
|
|
166
165
|
.elbe body:has(dialog[open=""]) {
|
|
167
166
|
overflow: hidden;
|
|
168
167
|
}
|
|
169
|
-
.elbe .transparent {
|
|
168
|
+
.elbe .transparent.transparent {
|
|
170
169
|
background-color: transparent;
|
|
171
170
|
}
|
|
172
171
|
.elbe .disabled {
|
|
@@ -238,6 +237,15 @@ body,
|
|
|
238
237
|
transform: rotate(359deg);
|
|
239
238
|
}
|
|
240
239
|
}
|
|
240
|
+
.elbe.high_vis a {
|
|
241
|
+
text-decoration: underline;
|
|
242
|
+
}
|
|
243
|
+
.elbe a {
|
|
244
|
+
text-decoration: none;
|
|
245
|
+
}
|
|
246
|
+
.elbe a:hover {
|
|
247
|
+
text-decoration: underline;
|
|
248
|
+
}
|
|
241
249
|
.elbe .column, .elbe dialog,
|
|
242
250
|
.elbe .row,
|
|
243
251
|
.elbe .header,
|
|
@@ -354,6 +362,9 @@ body,
|
|
|
354
362
|
.elbe .row-resp {
|
|
355
363
|
flex-direction: column;
|
|
356
364
|
}
|
|
365
|
+
.elbe .resp-reversed {
|
|
366
|
+
flex-direction: column-reverse;
|
|
367
|
+
}
|
|
357
368
|
.elbe .if-wide {
|
|
358
369
|
display: none;
|
|
359
370
|
}
|
|
@@ -380,7 +391,7 @@ body,
|
|
|
380
391
|
.elbe .borderless {
|
|
381
392
|
border: none;
|
|
382
393
|
}
|
|
383
|
-
.elbe .bordered {
|
|
394
|
+
.elbe .bordered.bordered.bordered {
|
|
384
395
|
border: var(--g-border-width) solid var(--c-context-border);
|
|
385
396
|
}
|
|
386
397
|
.elbe button {
|
|
@@ -421,6 +432,11 @@ body,
|
|
|
421
432
|
min-width: 12rem;
|
|
422
433
|
width: 100%;
|
|
423
434
|
}
|
|
435
|
+
.elbe.dark dialog[open=""] > div {
|
|
436
|
+
border-width: var(--g-border-width);
|
|
437
|
+
border-style: solid;
|
|
438
|
+
border-color: var(--c-context-border);
|
|
439
|
+
}
|
|
424
440
|
.elbe dialog {
|
|
425
441
|
z-index: 100;
|
|
426
442
|
position: fixed;
|
|
@@ -460,21 +476,22 @@ body,
|
|
|
460
476
|
left: 0;
|
|
461
477
|
top: 0;
|
|
462
478
|
display: flex;
|
|
463
|
-
font-size:
|
|
479
|
+
font-size: 1.25rem;
|
|
464
480
|
font-weight: 900;
|
|
465
481
|
border-width: 20px;
|
|
466
482
|
border-style: solid;
|
|
467
483
|
border-width: 0 0 2px 0;
|
|
468
|
-
padding: 0 0.
|
|
469
|
-
background-color: color-mix(in srgb, var(--c-context-back) 50%, transparent);
|
|
470
|
-
backdrop-filter: blur(10px);
|
|
471
|
-
-webkit-backdrop-filter: blur(10px);
|
|
484
|
+
padding: 0 0.5rem;
|
|
472
485
|
z-index: 20;
|
|
473
486
|
box-sizing: border-box;
|
|
474
|
-
height: 4.5rem;
|
|
475
487
|
justify-content: space-between;
|
|
476
488
|
align-items: center;
|
|
477
489
|
}
|
|
490
|
+
.elbe .frosted {
|
|
491
|
+
background-color: color-mix(in srgb, var(--c-context-back) 50%, transparent);
|
|
492
|
+
backdrop-filter: blur(10px);
|
|
493
|
+
-webkit-backdrop-filter: blur(10px);
|
|
494
|
+
}
|
|
478
495
|
.elbe input[type=text],
|
|
479
496
|
.elbe input[type=number],
|
|
480
497
|
.elbe input[type=password],
|
|
@@ -493,6 +510,16 @@ body,
|
|
|
493
510
|
resize: vertical;
|
|
494
511
|
min-height: 3rem;
|
|
495
512
|
}
|
|
513
|
+
.elbe.high_vis input[type=range]::-webkit-slider-thumb {
|
|
514
|
+
border-width: var(--g-border-width);
|
|
515
|
+
border-style: solid;
|
|
516
|
+
border-color: var(--c-context-back);
|
|
517
|
+
}
|
|
518
|
+
.elbe.high_vis input[type=range]::-moz-range-thumb {
|
|
519
|
+
border-width: var(--g-border-width);
|
|
520
|
+
border-style: solid;
|
|
521
|
+
border-color: var(--c-context-back);
|
|
522
|
+
}
|
|
496
523
|
.elbe input[type=range] {
|
|
497
524
|
-webkit-appearance: none;
|
|
498
525
|
appearance: none;
|
|
@@ -532,11 +559,11 @@ body,
|
|
|
532
559
|
appearance: none;
|
|
533
560
|
margin: 0;
|
|
534
561
|
font: inherit;
|
|
535
|
-
color: black;
|
|
536
562
|
width: 1.8rem;
|
|
537
563
|
height: 1.8rem;
|
|
538
|
-
border:
|
|
539
|
-
border-radius:
|
|
564
|
+
border-width: var(--g-border-width);
|
|
565
|
+
border-radius: var(--g-radius);
|
|
566
|
+
border-style: solid;
|
|
540
567
|
transform: translateY(-0.075em);
|
|
541
568
|
display: grid;
|
|
542
569
|
place-content: center;
|
|
@@ -551,13 +578,9 @@ body,
|
|
|
551
578
|
transform-origin: center;
|
|
552
579
|
transition: 0.2s all ease-in-out;
|
|
553
580
|
}
|
|
554
|
-
.elbe input[type=checkbox]:checked {
|
|
555
|
-
border-color: var(--c-accent);
|
|
556
|
-
background: color-mix(in srgb, var(--c-accent) 20%, transparent);
|
|
557
|
-
}
|
|
558
581
|
.elbe input[type=checkbox]:checked::before {
|
|
559
582
|
transform: scale(1);
|
|
560
|
-
background-color: var(--c-
|
|
583
|
+
background-color: var(--c-context-front);
|
|
561
584
|
}
|
|
562
585
|
.elbe input[type=checkbox]:focus {
|
|
563
586
|
outline: max(2px, 0.15em) solid var(--c-accent);
|
|
@@ -567,6 +590,25 @@ body,
|
|
|
567
590
|
cursor: not-allowed;
|
|
568
591
|
border: 0.16em solid var(--c-context-border);
|
|
569
592
|
}
|
|
593
|
+
.elbe.high_vis div[data-type=elbe_progress_bar] > * {
|
|
594
|
+
outline-width: var(--g-border-width);
|
|
595
|
+
outline-style: solid;
|
|
596
|
+
outline-color: var(--c-context-back);
|
|
597
|
+
}
|
|
598
|
+
.elbe hr {
|
|
599
|
+
border: none;
|
|
600
|
+
border-top: var(--g-border-width) solid var(--c-context-border);
|
|
601
|
+
width: 100%;
|
|
602
|
+
}
|
|
603
|
+
.elbe :focus-visible {
|
|
604
|
+
outline: 0.15rem solid var(--c-accent);
|
|
605
|
+
}
|
|
606
|
+
.elbe :active {
|
|
607
|
+
outline: none;
|
|
608
|
+
}
|
|
609
|
+
.elbe.dark :focus-visible {
|
|
610
|
+
outline: 0.15rem solid white;
|
|
611
|
+
}
|
|
570
612
|
|
|
571
613
|
.toast {
|
|
572
614
|
position: fixed;
|
package/dist/elbe.css.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sourceRoot":"","sources":["../style/elbe.scss","../style/_base.scss","../style/_flex.scss","../style/_components.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;AAAA;AAOQ;AAMR;EACE;EACA;EACA;EACA;EAEA;EACA;EACA;EAGA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;;;AAGF;AAAA;AAAA;EAGE;EACA;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;EACA;EACA;;;AAIF;AC3DA;AAoBA;AA6DA;AAUA;AAaA;AA8BA;AC9GA;AAqBA;AAYA;AAkBA;AAqBA;
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../style/elbe.scss","../style/_base.scss","../style/_flex.scss","../style/_components.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;AAAA;AAOQ;AAMR;EACE;EACA;EACA;EACA;EAEA;EACA;EACA;EAGA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;;;AAGF;AAAA;AAAA;EAGE;EACA;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;EACA;EACA;;;AAIF;AC3DA;AAoBA;AA6DA;AAUA;AAaA;AA8BA;AC9GA;AAqBA;AAYA;AAkBA;AAqBA;ACkIA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AFhOA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAEE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAMF;EACE;;AAEF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAEE;EACA;;AAGF;EACE;;AAGF;AAAA;EAEE;;AAGF;EACE;;AAEF;EACE;;AAGF;EACE;EACA;;AACA;EACE;;AAIJ;EACE;;AAGF;EACE;;AAEF;EACE;;AAEF;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAKF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAEE;EACA;;AAOF;EACE;;AAGF;EAEE;EACA;EACA;;AAKF;AAAA;EAEE;;AAEF;AAAA;AAAA;AAAA;EAEE;;AAEF;EACE;;AAEF;EACE;;AAEF;EACE;;AAEF;EACE;;AAEF;EACE;;AAEF;EACE;EACA;;AAKF;EACE;EACA;EACA;EACA;;AAGF;EACE;IACE;;EAEF;IACE;;;AAKJ;EACE;;AAEF;EACE;;AACA;EACE;;AC/JJ;AAAA;AAAA;AAAA;AAAA;EAGE;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;;AAKF;EACE;;AAEF;EACE;;AAEF;EACE;;AAEF;EACE;;AAEF;EACE;;AAEF;EACE;;AAKF;EACE;;AAIA;EACE;;AADF;EACE;;AADF;EACE;;AADF;EACE;;AADF;EACE;;AADF;EACE;;AADF;EACE;;AADF;EACE;;AADF;EACE;;AADF;EACE;;AADF;EACE;;AADF;EACE;;AAMJ;EACE;;AAEF;EACE;;AAEF;EACE;;AAEF;EACE;;AAEF;EACE;;AAKF;EACE;;AAEF;EACE;;AAEF;EACE;;AAEF;EACE;;AAEF;EACE;;AAEF;EACE;;AAKF;EACE;IACE;;EAGF;IACE;;EAGF;IACE;;;AAIJ;EACE;IACE;;;AAIJ;EACE;;ACvHF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;AAIF;EAIE;EACA;EACA;EACA;EACA;EACA;EACA;AAMA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAJA;EACE;;AAoBJ;EACE;EACA;EACA;;AAGF;EAGE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EAKE;EAEA;EACA;EACA;EACA;EACA;EAEA;EAEA;EAEA;EAEA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;;AACA;EACE;;AAKN;EACE;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EAGC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACC;EAGD;EAEA;EAEA;EACA;;AAGD;EACE;EACD;EACA;;AAKD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAWE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAcA;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;EAEA;EACA;EAEA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EA1CF;EACA;EACA;EACA;EACA;EACA;EACA;;AAwCA;EA9CA;EACA;EACA;EACA;EACA;EACA;EACA;;AAoFF;EACE;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EAEA;EACA;EACA;;AAIF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAKF;EACE;EACA;EACA;;AAIF;EACE;EACA;EACA;;AH/PA;EACE;;AAEF;EACG;;AAGH;EACE;;;AAMJ;EAIE;EACA;EACA;EACA;EACA;EACA;EACA","file":"elbe.css"}
|
package/dist/index.d.ts
CHANGED
|
@@ -12,7 +12,9 @@ export * from "./ui/components/button/button";
|
|
|
12
12
|
export * from "./ui/components/button/choose_button";
|
|
13
13
|
export * from "./ui/components/button/icon_button";
|
|
14
14
|
export * from "./ui/components/button/toggle_button";
|
|
15
|
+
export * from "./ui/components/layout/alignment";
|
|
15
16
|
export * from "./ui/components/layout/flex";
|
|
17
|
+
export * from "./ui/components/layout/header";
|
|
16
18
|
export * from "./ui/components/layout/scaffold";
|
|
17
19
|
export * from "./ui/components/layout/scroll";
|
|
18
20
|
export * from "./ui/components/layout/spaced";
|
|
@@ -20,13 +22,17 @@ export * from "./ui/components/input/checkbox";
|
|
|
20
22
|
export * from "./ui/components/input/input_field";
|
|
21
23
|
export * from "./ui/components/input/range";
|
|
22
24
|
export * from "./ui/components/input/select";
|
|
25
|
+
export * from "./ui/components/input/switch";
|
|
23
26
|
export * from "./ui/components/input/text_area";
|
|
24
27
|
export * from "./ui/components/badge";
|
|
28
|
+
export * from "./ui/components/banner";
|
|
25
29
|
export * from "./ui/components/dialog";
|
|
26
30
|
export * from "./ui/components/error_view";
|
|
31
|
+
export * from "./ui/components/progress_bar";
|
|
27
32
|
export * from "./ui/components/spinner";
|
|
28
33
|
export * from "./ui/components/text";
|
|
29
34
|
export * from "./ui/components/dev/todo";
|
|
35
|
+
export * from "./ui/theme/seed";
|
|
30
36
|
export * from "./ui/theme/theme";
|
|
31
37
|
declare function None({}: {}): import("preact").JSX.Element;
|
|
32
38
|
export declare const Icons: {
|
package/dist/index.js
CHANGED
|
@@ -15,7 +15,9 @@ export * from "./ui/components/button/button";
|
|
|
15
15
|
export * from "./ui/components/button/choose_button";
|
|
16
16
|
export * from "./ui/components/button/icon_button";
|
|
17
17
|
export * from "./ui/components/button/toggle_button";
|
|
18
|
+
export * from "./ui/components/layout/alignment";
|
|
18
19
|
export * from "./ui/components/layout/flex";
|
|
20
|
+
export * from "./ui/components/layout/header";
|
|
19
21
|
export * from "./ui/components/layout/scaffold";
|
|
20
22
|
export * from "./ui/components/layout/scroll";
|
|
21
23
|
export * from "./ui/components/layout/spaced";
|
|
@@ -23,13 +25,17 @@ export * from "./ui/components/input/checkbox";
|
|
|
23
25
|
export * from "./ui/components/input/input_field";
|
|
24
26
|
export * from "./ui/components/input/range";
|
|
25
27
|
export * from "./ui/components/input/select";
|
|
28
|
+
export * from "./ui/components/input/switch";
|
|
26
29
|
export * from "./ui/components/input/text_area";
|
|
27
30
|
export * from "./ui/components/badge";
|
|
31
|
+
export * from "./ui/components/banner";
|
|
28
32
|
export * from "./ui/components/dialog";
|
|
29
33
|
export * from "./ui/components/error_view";
|
|
34
|
+
export * from "./ui/components/progress_bar";
|
|
30
35
|
export * from "./ui/components/spinner";
|
|
31
36
|
export * from "./ui/components/text";
|
|
32
37
|
export * from "./ui/components/dev/todo";
|
|
38
|
+
export * from "./ui/theme/seed";
|
|
33
39
|
export * from "./ui/theme/theme";
|
|
34
40
|
function None({}) {
|
|
35
41
|
return _jsx("div", { style: { width: "1.5rem", height: "1.5rem" } });
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ElbeAlertKinds, IconChild } from "../..";
|
|
2
|
+
export declare function KindAlertIcon({ kind }: {
|
|
3
|
+
kind: ElbeAlertKinds;
|
|
4
|
+
}): import("preact").JSX.Element;
|
|
5
|
+
export declare function Banner({ kind, manner, title, onDismiss, dismissIcon, children, }: {
|
|
6
|
+
kind: ElbeAlertKinds;
|
|
7
|
+
manner?: "major" | "minor";
|
|
8
|
+
title?: string;
|
|
9
|
+
onDismiss?: () => void;
|
|
10
|
+
dismissIcon?: IconChild;
|
|
11
|
+
children?: React.ReactNode;
|
|
12
|
+
}): import("preact").JSX.Element;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "preact/jsx-runtime";
|
|
2
|
+
import { AlertTriangle, CheckCircle2, CircleHelp, InfoIcon, OctagonAlert, XIcon, } from "lucide-react";
|
|
3
|
+
import { Align, Card, Column, IconButton, Row, Text, } from "../..";
|
|
4
|
+
export function KindAlertIcon({ kind }) {
|
|
5
|
+
if (kind === "info")
|
|
6
|
+
return _jsx(InfoIcon, {});
|
|
7
|
+
if (kind === "warning")
|
|
8
|
+
return _jsx(AlertTriangle, {});
|
|
9
|
+
if (kind === "error")
|
|
10
|
+
return _jsx(OctagonAlert, {});
|
|
11
|
+
if (kind === "success")
|
|
12
|
+
return _jsx(CheckCircle2, {});
|
|
13
|
+
return _jsx(CircleHelp, {});
|
|
14
|
+
}
|
|
15
|
+
export function Banner({ kind, manner = "major", title, onDismiss, dismissIcon = XIcon, children, }) {
|
|
16
|
+
return (_jsx(Card, { kind: kind, manner: manner, padding: 0, children: _jsxs(Row, { cross: "start", gap: 0, children: [_jsx(Align, { size: 3, children: _jsx(KindAlertIcon, { kind: kind }) }), _jsxs(Column, { gap: 0.5, class: "flex-1", style: { padding: ".9rem 0", paddingRight: onDismiss ? "0" : "1rem" }, children: [title && _jsx(Text, { bold: true, v: title }), children] }), onDismiss && (_jsx(IconButton, { manner: manner, kind: kind, transparent: manner === "minor", ariaLabel: "close", icon: dismissIcon, onTap: onDismiss }))] }) }));
|
|
17
|
+
}
|
|
@@ -8,8 +8,14 @@ export type ElbeProps = {
|
|
|
8
8
|
tooltip?: string;
|
|
9
9
|
flex?: boolean | number;
|
|
10
10
|
typeLabel?: string;
|
|
11
|
+
ariaLabel?: string | null;
|
|
11
12
|
};
|
|
12
|
-
export
|
|
13
|
+
export type ActionElbeProps = ElbeProps & {
|
|
14
|
+
ariaLabel: string | null;
|
|
15
|
+
};
|
|
16
|
+
export declare function applyProps(typeLabel: string, p: ElbeProps, classes?: string | null | (string | false | null | undefined)[], style?: React.CSSProperties): {
|
|
17
|
+
"aria-label": string | undefined;
|
|
18
|
+
ariaLabel: string | null;
|
|
13
19
|
"data-type": string | undefined;
|
|
14
20
|
"data-tooltip"?: string | undefined;
|
|
15
21
|
id: string | undefined;
|
|
@@ -527,6 +533,8 @@ export declare class Box extends Component<ElbeBoxProps & {
|
|
|
527
533
|
scheme: ElbeColorSchemes;
|
|
528
534
|
}> {
|
|
529
535
|
static primary: (p: ElbeBoxProps) => import("preact").VNode<import("preact").ClassAttributes<HTMLElement> & {
|
|
536
|
+
"aria-label": string | undefined;
|
|
537
|
+
ariaLabel: string | null;
|
|
530
538
|
"data-type": string | undefined;
|
|
531
539
|
"data-tooltip"?: string | undefined;
|
|
532
540
|
id: string | undefined;
|
|
@@ -1035,6 +1043,8 @@ export declare class Box extends Component<ElbeBoxProps & {
|
|
|
1035
1043
|
};
|
|
1036
1044
|
}>;
|
|
1037
1045
|
static secondary: (p: ElbeBoxProps) => import("preact").VNode<import("preact").ClassAttributes<HTMLElement> & {
|
|
1046
|
+
"aria-label": string | undefined;
|
|
1047
|
+
ariaLabel: string | null;
|
|
1038
1048
|
"data-type": string | undefined;
|
|
1039
1049
|
"data-tooltip"?: string | undefined;
|
|
1040
1050
|
id: string | undefined;
|
|
@@ -1543,6 +1553,8 @@ export declare class Box extends Component<ElbeBoxProps & {
|
|
|
1543
1553
|
};
|
|
1544
1554
|
}>;
|
|
1545
1555
|
static inverse: (p: ElbeBoxProps) => import("preact").VNode<import("preact").ClassAttributes<HTMLElement> & {
|
|
1556
|
+
"aria-label": string | undefined;
|
|
1557
|
+
ariaLabel: string | null;
|
|
1546
1558
|
"data-type": string | undefined;
|
|
1547
1559
|
"data-tooltip"?: string | undefined;
|
|
1548
1560
|
id: string | undefined;
|
|
@@ -2051,6 +2063,8 @@ export declare class Box extends Component<ElbeBoxProps & {
|
|
|
2051
2063
|
};
|
|
2052
2064
|
}>;
|
|
2053
2065
|
render(): import("preact").VNode<import("preact").ClassAttributes<HTMLElement> & {
|
|
2066
|
+
"aria-label": string | undefined;
|
|
2067
|
+
ariaLabel: string | null;
|
|
2054
2068
|
"data-type": string | undefined;
|
|
2055
2069
|
"data-tooltip"?: string | undefined;
|
|
2056
2070
|
id: string | undefined;
|
|
@@ -10,17 +10,17 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
10
10
|
return t;
|
|
11
11
|
};
|
|
12
12
|
import { Component, h } from "preact";
|
|
13
|
-
export function applyProps(p, classes, style) {
|
|
14
|
-
var _a;
|
|
13
|
+
export function applyProps(typeLabel, p, classes, style) {
|
|
14
|
+
var _a, _b, _c, _d;
|
|
15
15
|
if (Array.isArray(classes)) {
|
|
16
16
|
classes = classes.filter((c) => c).join(" ");
|
|
17
17
|
}
|
|
18
|
-
return Object.assign(Object.assign({ id: p.id, class: `${classes || ""} ${p.class || ""}`, style: Object.assign(Object.assign(Object.assign({}, (style !== null && style !== void 0 ? style : {})), ((_a = p.style) !== null && _a !== void 0 ? _a : {})), (p.flex ? { flex: p.flex === true ? 1 : p.flex } : {})) }, (p.tooltip ? { ["data-tooltip"]: p.tooltip } : {})), { ["data-type"]: p.typeLabel });
|
|
18
|
+
return Object.assign(Object.assign({ id: p.id, class: `${classes || ""} ${p.class || ""}`, style: Object.assign(Object.assign(Object.assign({}, (style !== null && style !== void 0 ? style : {})), ((_a = p.style) !== null && _a !== void 0 ? _a : {})), (p.flex ? { flex: p.flex === true ? 1 : p.flex } : {})) }, (p.tooltip ? { ["data-tooltip"]: p.tooltip } : {})), { ["aria-label"]: (_b = p.ariaLabel) !== null && _b !== void 0 ? _b : undefined, ariaLabel: (_c = p.ariaLabel) !== null && _c !== void 0 ? _c : null, ["data-type"]: (_d = p.typeLabel) !== null && _d !== void 0 ? _d : (!!typeLabel ? `elbe_${typeLabel}` : undefined) });
|
|
19
19
|
}
|
|
20
20
|
export class Box extends Component {
|
|
21
21
|
render() {
|
|
22
22
|
const _a = this.props, { scheme, mode, padding, margin, children } = _a, elbe = __rest(_a, ["scheme", "mode", "padding", "margin", "children"]);
|
|
23
|
-
return h("div", applyProps(elbe, [scheme, mode], Object.assign({ padding: `${padding}rem`, margin: `${margin}rem` }, elbe.style)), children);
|
|
23
|
+
return h("div", applyProps("box", elbe, [scheme, mode], Object.assign({ padding: `${padding}rem`, margin: `${margin}rem` }, elbe.style)), children);
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
26
|
Box.primary = (p) => new Box(Object.assign(Object.assign({}, p), { scheme: "primary" })).render();
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ElbeColorKinds, ElbeColorManners, ElbeColorModes, ElbeColorSchemes } from "../../theme/colors";
|
|
2
2
|
import type { ElbeChildren } from "../../util/util";
|
|
3
3
|
import { type ElbeProps } from "./box";
|
|
4
|
-
export declare function Card({ mode, scheme, kind, manner, padding, margin, onTap, onLongTap, children, ...elbe }: {
|
|
4
|
+
export declare function Card({ mode, scheme, kind, manner, padding, margin, onTap, onLongTap, frosted, bordered, sharp, children, ...elbe }: {
|
|
5
5
|
mode?: ElbeColorModes;
|
|
6
6
|
scheme?: ElbeColorSchemes;
|
|
7
7
|
kind?: ElbeColorKinds;
|
|
@@ -10,5 +10,8 @@ export declare function Card({ mode, scheme, kind, manner, padding, margin, onTa
|
|
|
10
10
|
margin?: number;
|
|
11
11
|
onTap?: () => void;
|
|
12
12
|
onLongTap?: () => void;
|
|
13
|
+
frosted?: boolean;
|
|
14
|
+
bordered?: boolean;
|
|
15
|
+
sharp?: boolean;
|
|
13
16
|
children?: ElbeChildren;
|
|
14
17
|
} & ElbeProps): import("preact").JSX.Element;
|
|
@@ -12,8 +12,17 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
12
12
|
import { jsx as _jsx } from "preact/jsx-runtime";
|
|
13
13
|
import { applyProps } from "./box";
|
|
14
14
|
export function Card(_a) {
|
|
15
|
-
var { mode, scheme = "primary", kind, manner, padding = 1, margin = 0, onTap, onLongTap, children } = _a, elbe = __rest(_a, ["mode", "scheme", "kind", "manner", "padding", "margin", "onTap", "onLongTap", "children"]);
|
|
16
|
-
return (_jsx("div", Object.assign({}, applyProps(
|
|
15
|
+
var { mode, scheme = "primary", kind, manner, padding = 1, margin = 0, onTap, onLongTap, frosted, bordered, sharp, children } = _a, elbe = __rest(_a, ["mode", "scheme", "kind", "manner", "padding", "margin", "onTap", "onLongTap", "frosted", "bordered", "sharp", "children"]);
|
|
16
|
+
return (_jsx("div", Object.assign({}, applyProps("card", elbe, [
|
|
17
|
+
"card",
|
|
18
|
+
mode,
|
|
19
|
+
scheme,
|
|
20
|
+
kind,
|
|
21
|
+
manner,
|
|
22
|
+
frosted && "frosted",
|
|
23
|
+
bordered && "bordered",
|
|
24
|
+
sharp && "sharp",
|
|
25
|
+
], {
|
|
17
26
|
padding: `${padding}rem`,
|
|
18
27
|
margin: `${margin}rem`,
|
|
19
28
|
}), { onClick: onTap, onContextMenu: onLongTap, children: children })));
|
|
@@ -17,7 +17,7 @@ export class Padded extends React.Component {
|
|
|
17
17
|
super(props);
|
|
18
18
|
}
|
|
19
19
|
render() {
|
|
20
|
-
return (_jsx("div", Object.assign({}, applyProps(this.props, [], {
|
|
20
|
+
return (_jsx("div", Object.assign({}, applyProps("padded", this.props, [], {
|
|
21
21
|
paddingTop: `${this.props.top || 0}rem`,
|
|
22
22
|
paddingRight: `${this.props.right || 0}rem`,
|
|
23
23
|
paddingBottom: `${this.props.bottom || 0}rem`,
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { Component } from "preact";
|
|
2
2
|
import type { ElbeColorKinds, ElbeColorManners } from "../../theme/colors";
|
|
3
|
-
import {
|
|
3
|
+
import { ActionElbeProps } from "../base/box";
|
|
4
4
|
import type { IconChild } from "./icon_button";
|
|
5
|
-
export type ButtonProps =
|
|
5
|
+
export type ButtonProps = ActionElbeProps & {
|
|
6
6
|
kind?: ElbeColorKinds;
|
|
7
|
+
transparent?: boolean;
|
|
7
8
|
onTap?: (e: Event) => void;
|
|
8
9
|
} & {
|
|
9
10
|
icon?: IconChild;
|
|
@@ -24,12 +24,14 @@ Button.flat = (p) => _btn(p, "flat");
|
|
|
24
24
|
Button.plain = (p) => _btn(p, "plain");
|
|
25
25
|
function _btn(_a, manner) {
|
|
26
26
|
var { kind, onTap, icon, label, children } = _a, elbe = __rest(_a, ["kind", "onTap", "icon", "label", "children"]);
|
|
27
|
-
return label || icon || children ? (_jsxs("button", Object.assign({}, applyProps(elbe, [
|
|
27
|
+
return label || icon || children ? (_jsxs("button", Object.assign({}, applyProps("button", elbe, [
|
|
28
28
|
"row",
|
|
29
29
|
"gap-half",
|
|
30
30
|
"main-center",
|
|
31
31
|
kind !== null && kind !== void 0 ? kind : (manner != "plain" && "accent"),
|
|
32
32
|
manner,
|
|
33
33
|
!onTap && "disabled",
|
|
34
|
-
]
|
|
34
|
+
], {
|
|
35
|
+
backgroundColor: elbe.transparent ? "transparent" : null,
|
|
36
|
+
}), { disabled: !onTap, onClick: (e) => onTap && onTap(e), children: [typeof icon === "function" ? icon({}) : icon, label && _jsx("span", { children: label }), children] }))) : (_ElbeErr("Button requires either an icon and or a label, or a child"));
|
|
35
37
|
}
|
|
@@ -3,6 +3,9 @@ import { CheckIcon } from "lucide-react";
|
|
|
3
3
|
import { Spaced } from "../layout/spaced";
|
|
4
4
|
import { Button } from "./button";
|
|
5
5
|
export function ChooseButton({ items, value, onChange, kind, column = false, }) {
|
|
6
|
-
return (_jsx("div", { class: `${column ? "column" : "row"} gap-none rounded accent minor card padding-none cross-stretch ${!onChange ? "disabled" : ""}`, style: "background: transparent", children: items.map((e) =>
|
|
7
|
-
|
|
6
|
+
return (_jsx("div", { class: `${column ? "column" : "row"} gap-none rounded accent minor card padding-none cross-stretch ${!onChange ? "disabled" : ""}`, style: "background: transparent; overflow: hidden", children: items.map((e) => {
|
|
7
|
+
var _a, _b;
|
|
8
|
+
return (_jsxs(Button, { ariaLabel: (_b = (_a = e.ariaLabel) !== null && _a !== void 0 ? _a : e.label) !== null && _b !== void 0 ? _b : null, manner: e.value === value ? "minor" : "flat", kind: kind, onTap: onChange && (() => onChange(e.value)), class: `sharp ${column ? "main-between gap-double" : ""}`, children: [_jsxs("div", { class: "row gap-half", children: [typeof e.icon === "function" ? e.icon({}) : e.icon, e.label && _jsx("span", { children: e.label })] }), column &&
|
|
9
|
+
(e.value === value ? _jsx(CheckIcon, {}) : _jsx(Spaced, { amount: 1.5 }))] }));
|
|
10
|
+
}) }));
|
|
8
11
|
}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { Component } from "preact";
|
|
2
|
-
import { type ElbeChild, type ElbeColorKinds, type ElbeColorManners
|
|
2
|
+
import { ActionElbeProps, type ElbeChild, type ElbeColorKinds, type ElbeColorManners } from "../../..";
|
|
3
3
|
export type IconChild = ElbeChild | ((_: any) => ElbeChild);
|
|
4
4
|
export type IconButtonProps = {
|
|
5
5
|
icon?: IconChild;
|
|
6
6
|
kind?: ElbeColorKinds;
|
|
7
|
+
transparent?: boolean;
|
|
7
8
|
onTap?: (e: Event) => void;
|
|
8
|
-
} &
|
|
9
|
+
} & ActionElbeProps;
|
|
9
10
|
export declare class IconButton extends Component<IconButtonProps & {
|
|
10
11
|
manner?: ElbeColorManners;
|
|
11
12
|
}> {
|
|
@@ -25,7 +25,7 @@ function _btn(_a, manner) {
|
|
|
25
25
|
var _b;
|
|
26
26
|
var { icon, onTap } = _a, elbe = __rest(_a, ["icon", "onTap"]);
|
|
27
27
|
if (manner === void 0) { manner = "major"; }
|
|
28
|
-
return (_jsx("button", Object.assign({}, applyProps(elbe, [
|
|
28
|
+
return (_jsx("button", Object.assign({}, applyProps("icon_button", elbe, [
|
|
29
29
|
"row",
|
|
30
30
|
"main-center",
|
|
31
31
|
"gap-half",
|
|
@@ -33,6 +33,7 @@ function _btn(_a, manner) {
|
|
|
33
33
|
manner,
|
|
34
34
|
!onTap && "disabled",
|
|
35
35
|
], {
|
|
36
|
+
backgroundColor: elbe.transparent ? "transparent" : null,
|
|
36
37
|
border: "none",
|
|
37
38
|
borderRadius: "3rem",
|
|
38
39
|
height: "3rem",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ElbeColorKinds } from "../../theme/colors";
|
|
2
|
-
import {
|
|
2
|
+
import { ActionElbeProps } from "../base/box";
|
|
3
3
|
import type { IconChild } from "./icon_button";
|
|
4
4
|
export declare function ToggleButton({ value, onChange, label, icon, kind, ...elbe }: {
|
|
5
5
|
value: boolean;
|
|
@@ -7,4 +7,4 @@ export declare function ToggleButton({ value, onChange, label, icon, kind, ...el
|
|
|
7
7
|
kind?: ElbeColorKinds;
|
|
8
8
|
label: string;
|
|
9
9
|
icon?: IconChild;
|
|
10
|
-
} &
|
|
10
|
+
} & ActionElbeProps): import("preact").JSX.Element;
|
|
@@ -16,5 +16,5 @@ import { Spaced } from "../layout/spaced";
|
|
|
16
16
|
import { Button } from "./button";
|
|
17
17
|
export function ToggleButton(_a) {
|
|
18
18
|
var { value, onChange, label, icon, kind } = _a, elbe = __rest(_a, ["value", "onChange", "label", "icon", "kind"]);
|
|
19
|
-
return (_jsxs(Button, Object.assign({ manner: value ? "minor" : "flat", kind: kind, onTap: onChange && (() => onChange(!value)) }, applyProps(elbe, "main-between", { gap: "1.5rem" }), { children: [_jsxs("div", { class: "row gap-half", children: [typeof icon === "function" ? icon({}) : icon, label && _jsx("span", { children: label })] }), value ? _jsx(CheckIcon, {}) : _jsx(Spaced, { amount: 1.5 })] })));
|
|
19
|
+
return (_jsxs(Button, Object.assign({ manner: value ? "minor" : "flat", kind: kind, onTap: onChange && (() => onChange(!value)) }, applyProps("toggle_button", elbe, "main-between", { gap: "1.5rem" }), { children: [_jsxs("div", { class: "row gap-half", children: [typeof icon === "function" ? icon({}) : icon, label && _jsx("span", { children: label })] }), value ? _jsx(CheckIcon, {}) : _jsx(Spaced, { amount: 1.5 })] })));
|
|
20
20
|
}
|
|
@@ -48,17 +48,17 @@ export var ToDo;
|
|
|
48
48
|
ToDo.Overlay = Overlay;
|
|
49
49
|
function Inline(_a) {
|
|
50
50
|
var { msg } = _a, elbe = __rest(_a, ["msg"]);
|
|
51
|
-
return (_jsxs("div", Object.assign({}, applyProps(
|
|
51
|
+
return (_jsxs("div", Object.assign({}, applyProps("todo", elbe, [], Object.assign(Object.assign({}, _toDoStyle), { display: "inline" })), { children: [_jsx("b", { children: "ToDo: " }), _jsx("span", { style: { fontWeight: "normal" }, children: msg })] })));
|
|
52
52
|
}
|
|
53
53
|
ToDo.Inline = Inline;
|
|
54
54
|
function Block(_a) {
|
|
55
55
|
var { msg, width, height } = _a, elbe = __rest(_a, ["msg", "width", "height"]);
|
|
56
|
-
return (_jsx("div", Object.assign({}, applyProps(
|
|
56
|
+
return (_jsx("div", Object.assign({}, applyProps("todo", elbe, [], Object.assign(Object.assign({}, _toDoStyle), { display: "flex", flexDirection: "column", alignItems: "center", justifyContent: "center", width: width ? width + "rem" : "auto", height: height ? height + "rem" : "auto", overflow: "hidden" })), { children: _jsxs("span", { children: [_jsx("b", { children: "ToDo: " }), _jsx("span", { style: { fontWeight: "normal" }, children: msg })] }) })));
|
|
57
57
|
}
|
|
58
58
|
ToDo.Block = Block;
|
|
59
59
|
function Placeholder(_a) {
|
|
60
60
|
var { width, height } = _a, elbe = __rest(_a, ["width", "height"]);
|
|
61
|
-
return (_jsx("div", Object.assign({}, applyProps(
|
|
61
|
+
return (_jsx("div", Object.assign({}, applyProps("placeholder", elbe, [], {
|
|
62
62
|
padding: "0",
|
|
63
63
|
width: width ? width + "rem" : "auto",
|
|
64
64
|
height: height ? height + "rem" : "auto",
|
|
@@ -3,7 +3,7 @@ import { X } from "lucide-react";
|
|
|
3
3
|
import { IconButton } from "./button/icon_button";
|
|
4
4
|
import { Spaced } from "./layout/spaced";
|
|
5
5
|
export function ElbeDialog({ title, open, onClose, children, _style, }) {
|
|
6
|
-
return (_jsx("dialog", { onClick: (e) => e.stopPropagation(), open: open, style: "text-align: start" + (_style !== null && _style !== void 0 ? _style : ""), children: _jsxs("div", { class: "primary card plain-opaque padding-none", style: "max-width: 40rem; min-width: 10rem", children: [_jsxs("div", { class: "row cross-center padded main-between", children: [_jsx("div", { class: "body-l b", children: title }), _jsx(IconButton.plain, { icon: X, onTap: (e) => {
|
|
6
|
+
return (_jsx("dialog", { onClick: (e) => e.stopPropagation(), open: open, style: "text-align: start" + (_style !== null && _style !== void 0 ? _style : ""), children: _jsxs("div", { class: "primary card plain-opaque padding-none", style: "max-width: 40rem; min-width: 10rem", children: [_jsxs("div", { class: "row cross-center padded main-between", children: [_jsx("div", { class: "body-l b", children: title }), _jsx(IconButton.plain, { ariaLabel: "Close", icon: X, onTap: (e) => {
|
|
7
7
|
e.stopPropagation();
|
|
8
8
|
e.preventDefault();
|
|
9
9
|
onClose();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ActionElbeProps } from "../base/box";
|
|
2
2
|
export declare function Checkbox({ value, label, onChange, ...elbe }: {
|
|
3
3
|
value: boolean;
|
|
4
4
|
label?: string;
|
|
5
5
|
onChange?: ((checked: boolean) => void) | null;
|
|
6
|
-
} &
|
|
6
|
+
} & ActionElbeProps): import("preact").JSX.Element;
|
|
@@ -17,5 +17,7 @@ export function Checkbox(_a) {
|
|
|
17
17
|
gap: ".75rem",
|
|
18
18
|
filter: onChange ? "" : "grayscale(1)",
|
|
19
19
|
opacity: onChange ? "" : "0.5",
|
|
20
|
-
}, children: [_jsx("input", Object.assign({ type: "checkbox" }, applyProps(
|
|
20
|
+
}, children: [_jsx("input", Object.assign({ type: "checkbox" }, applyProps("checkbox", elbe, value ? ["accent major"] : "accent minor", {
|
|
21
|
+
background: value ? null : "transparent",
|
|
22
|
+
}), { disabled: !onChange, checked: value, onChange: (e) => onChange === null || onChange === void 0 ? void 0 : onChange(e.currentTarget.checked) })), label && _jsx("div", { style: "margin-top: -.25rem", children: label })] }));
|
|
21
23
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from "preact/compat";
|
|
2
|
-
import {
|
|
2
|
+
import { ActionElbeProps } from "../base/box";
|
|
3
3
|
import { _TextArea } from "./text_area";
|
|
4
4
|
export type InputFieldProps = {
|
|
5
5
|
label?: string;
|
|
@@ -7,7 +7,7 @@ export type InputFieldProps = {
|
|
|
7
7
|
readonly?: boolean;
|
|
8
8
|
value: string | number;
|
|
9
9
|
onInput?: (value: string) => void;
|
|
10
|
-
} &
|
|
10
|
+
} & ActionElbeProps;
|
|
11
11
|
export declare class Field extends React.Component<InputFieldProps & {
|
|
12
12
|
type?: "text" | "number" | "password" | "date" | "time" | "email";
|
|
13
13
|
}> {
|
|
@@ -22,7 +22,7 @@ export class Field extends React.Component {
|
|
|
22
22
|
display: "flex",
|
|
23
23
|
flexDirection: "column",
|
|
24
24
|
alignItems: "stretch",
|
|
25
|
-
}, "data-tooltip": (_a = this.props) === null || _a === void 0 ? void 0 : _a.tooltip, children: _jsx("input", Object.assign({ type: this.props.type }, applyProps(this.props, null, {
|
|
25
|
+
}, "data-tooltip": (_a = this.props) === null || _a === void 0 ? void 0 : _a.tooltip, children: _jsx("input", Object.assign({ type: this.props.type }, applyProps("text_field", this.props, null, {
|
|
26
26
|
width: "100%",
|
|
27
27
|
}), { size: 5, label: this.props.label, placeholder: this.props.hint, value: this.props.value, onInput: (e) => this.props.onInput && this.props.onInput(e.currentTarget.value), readonly: this.props.readonly })) }));
|
|
28
28
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ActionElbeProps } from "../base/box";
|
|
2
2
|
export declare function Range({ value, onChange, min, max, step, ...elbe }: {
|
|
3
3
|
value: number;
|
|
4
4
|
min?: number;
|
|
5
5
|
step?: number;
|
|
6
6
|
max?: number;
|
|
7
7
|
onChange?: ((value: number) => void) | null;
|
|
8
|
-
} &
|
|
8
|
+
} & ActionElbeProps): import("preact").JSX.Element;
|
|
@@ -15,14 +15,14 @@ import { applyProps } from "../base/box";
|
|
|
15
15
|
import { Card } from "../base/card";
|
|
16
16
|
export function Range(_a) {
|
|
17
17
|
var { value, onChange, min = 0, max = 100, step = 1 } = _a, elbe = __rest(_a, ["value", "onChange", "min", "max", "step"]);
|
|
18
|
-
return min > max ? (_ElbeErr("Range: max is smaller than min")) : (_jsx(Card, { scheme: "secondary", kind: "accent", manner: "minor", style: {
|
|
18
|
+
return min > max ? (_ElbeErr("Range: max is smaller than min")) : (_jsx(Card, { ariaLabel: null, scheme: "secondary", kind: "accent", manner: "minor", style: {
|
|
19
19
|
overflow: "unset",
|
|
20
20
|
backgroundColor: "transparent",
|
|
21
21
|
padding: "0",
|
|
22
22
|
margin: "0",
|
|
23
23
|
border: "none",
|
|
24
24
|
width: "100%",
|
|
25
|
-
}, children: _jsx("input", Object.assign({ type: "range" }, applyProps(elbe, null, {
|
|
25
|
+
}, children: _jsx("input", Object.assign({ type: "range" }, applyProps("range", elbe, null, {
|
|
26
26
|
filter: onChange ? "" : "grayscale(1)",
|
|
27
27
|
opacity: onChange ? "" : "0.5",
|
|
28
28
|
cursor: onChange ? "pointer" : "not-allowed",
|