elbe-ui 0.2.51 → 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 +59 -16
- package/dist/elbe.css.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.js +5 -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.js +2 -2
- 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 +1 -1
- 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 +7 -3
- package/dist/ui/theme/theme.js +12 -5
- 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,20 +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
484
|
padding: 0 0.5rem;
|
|
469
|
-
background-color: color-mix(in srgb, var(--c-context-back) 50%, transparent);
|
|
470
|
-
backdrop-filter: blur(10px);
|
|
471
|
-
-webkit-backdrop-filter: blur(10px);
|
|
472
485
|
z-index: 20;
|
|
473
486
|
box-sizing: border-box;
|
|
474
487
|
justify-content: space-between;
|
|
475
488
|
align-items: center;
|
|
476
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
|
+
}
|
|
477
495
|
.elbe input[type=text],
|
|
478
496
|
.elbe input[type=number],
|
|
479
497
|
.elbe input[type=password],
|
|
@@ -492,6 +510,16 @@ body,
|
|
|
492
510
|
resize: vertical;
|
|
493
511
|
min-height: 3rem;
|
|
494
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
|
+
}
|
|
495
523
|
.elbe input[type=range] {
|
|
496
524
|
-webkit-appearance: none;
|
|
497
525
|
appearance: none;
|
|
@@ -531,11 +559,11 @@ body,
|
|
|
531
559
|
appearance: none;
|
|
532
560
|
margin: 0;
|
|
533
561
|
font: inherit;
|
|
534
|
-
color: black;
|
|
535
562
|
width: 1.8rem;
|
|
536
563
|
height: 1.8rem;
|
|
537
|
-
border:
|
|
538
|
-
border-radius:
|
|
564
|
+
border-width: var(--g-border-width);
|
|
565
|
+
border-radius: var(--g-radius);
|
|
566
|
+
border-style: solid;
|
|
539
567
|
transform: translateY(-0.075em);
|
|
540
568
|
display: grid;
|
|
541
569
|
place-content: center;
|
|
@@ -550,13 +578,9 @@ body,
|
|
|
550
578
|
transform-origin: center;
|
|
551
579
|
transition: 0.2s all ease-in-out;
|
|
552
580
|
}
|
|
553
|
-
.elbe input[type=checkbox]:checked {
|
|
554
|
-
border-color: var(--c-accent);
|
|
555
|
-
background: color-mix(in srgb, var(--c-accent) 20%, transparent);
|
|
556
|
-
}
|
|
557
581
|
.elbe input[type=checkbox]:checked::before {
|
|
558
582
|
transform: scale(1);
|
|
559
|
-
background-color: var(--c-
|
|
583
|
+
background-color: var(--c-context-front);
|
|
560
584
|
}
|
|
561
585
|
.elbe input[type=checkbox]:focus {
|
|
562
586
|
outline: max(2px, 0.15em) solid var(--c-accent);
|
|
@@ -566,6 +590,25 @@ body,
|
|
|
566
590
|
cursor: not-allowed;
|
|
567
591
|
border: 0.16em solid var(--c-context-border);
|
|
568
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
|
+
}
|
|
569
612
|
|
|
570
613
|
.toast {
|
|
571
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,6 +12,7 @@ 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";
|
|
16
17
|
export * from "./ui/components/layout/header";
|
|
17
18
|
export * from "./ui/components/layout/scaffold";
|
|
@@ -21,13 +22,17 @@ export * from "./ui/components/input/checkbox";
|
|
|
21
22
|
export * from "./ui/components/input/input_field";
|
|
22
23
|
export * from "./ui/components/input/range";
|
|
23
24
|
export * from "./ui/components/input/select";
|
|
25
|
+
export * from "./ui/components/input/switch";
|
|
24
26
|
export * from "./ui/components/input/text_area";
|
|
25
27
|
export * from "./ui/components/badge";
|
|
28
|
+
export * from "./ui/components/banner";
|
|
26
29
|
export * from "./ui/components/dialog";
|
|
27
30
|
export * from "./ui/components/error_view";
|
|
31
|
+
export * from "./ui/components/progress_bar";
|
|
28
32
|
export * from "./ui/components/spinner";
|
|
29
33
|
export * from "./ui/components/text";
|
|
30
34
|
export * from "./ui/components/dev/todo";
|
|
35
|
+
export * from "./ui/theme/seed";
|
|
31
36
|
export * from "./ui/theme/theme";
|
|
32
37
|
declare function None({}: {}): import("preact").JSX.Element;
|
|
33
38
|
export declare const Icons: {
|
package/dist/index.js
CHANGED
|
@@ -15,6 +15,7 @@ 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";
|
|
19
20
|
export * from "./ui/components/layout/header";
|
|
20
21
|
export * from "./ui/components/layout/scaffold";
|
|
@@ -24,13 +25,17 @@ export * from "./ui/components/input/checkbox";
|
|
|
24
25
|
export * from "./ui/components/input/input_field";
|
|
25
26
|
export * from "./ui/components/input/range";
|
|
26
27
|
export * from "./ui/components/input/select";
|
|
28
|
+
export * from "./ui/components/input/switch";
|
|
27
29
|
export * from "./ui/components/input/text_area";
|
|
28
30
|
export * from "./ui/components/badge";
|
|
31
|
+
export * from "./ui/components/banner";
|
|
29
32
|
export * from "./ui/components/dialog";
|
|
30
33
|
export * from "./ui/components/error_view";
|
|
34
|
+
export * from "./ui/components/progress_bar";
|
|
31
35
|
export * from "./ui/components/spinner";
|
|
32
36
|
export * from "./ui/components/text";
|
|
33
37
|
export * from "./ui/components/dev/todo";
|
|
38
|
+
export * from "./ui/theme/seed";
|
|
34
39
|
export * from "./ui/theme/theme";
|
|
35
40
|
function None({}) {
|
|
36
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",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ActionElbeProps } from "../base/box";
|
|
2
2
|
export declare function Select({ options, value, label, onChange, ...elbe }: {
|
|
3
3
|
options: {
|
|
4
4
|
key: string;
|
|
@@ -7,4 +7,4 @@ export declare function Select({ options, value, label, onChange, ...elbe }: {
|
|
|
7
7
|
value?: string;
|
|
8
8
|
label?: string;
|
|
9
9
|
onChange: (value: string) => any;
|
|
10
|
-
} &
|
|
10
|
+
} & ActionElbeProps): import("preact").JSX.Element;
|