elbe-ui 0.2.41 → 0.2.46

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 (46) hide show
  1. package/dist/bit/bit.js +22 -25
  2. package/dist/bit/ctrl_bit.js +47 -28
  3. package/dist/elbe.css +58 -18
  4. package/dist/elbe.css.map +1 -1
  5. package/dist/index.d.ts +1 -0
  6. package/dist/index.js +34 -62
  7. package/dist/service/s_api.js +62 -49
  8. package/dist/ui/components/badge.js +13 -34
  9. package/dist/ui/components/base/box.d.ts +37 -40
  10. package/dist/ui/components/base/box.js +21 -23
  11. package/dist/ui/components/base/card.js +19 -10
  12. package/dist/ui/components/base/padded.d.ts +10 -9
  13. package/dist/ui/components/base/padded.js +31 -21
  14. package/dist/ui/components/button/button.js +30 -22
  15. package/dist/ui/components/button/choose_button.js +7 -10
  16. package/dist/ui/components/button/icon_button.js +36 -26
  17. package/dist/ui/components/button/toggle_button.js +19 -10
  18. package/dist/ui/components/dev/todo.d.ts +18 -0
  19. package/dist/ui/components/dev/todo.js +69 -0
  20. package/dist/ui/components/dialog.js +7 -10
  21. package/dist/ui/components/error_view.js +14 -16
  22. package/dist/ui/components/input/checkbox.js +17 -8
  23. package/dist/ui/components/input/input_field.js +28 -23
  24. package/dist/ui/components/input/range.js +26 -9
  25. package/dist/ui/components/input/select.js +16 -7
  26. package/dist/ui/components/input/text_area.js +17 -8
  27. package/dist/ui/components/layout/flex.d.ts +4 -3
  28. package/dist/ui/components/layout/flex.js +27 -19
  29. package/dist/ui/components/layout/scaffold.d.ts +9 -6
  30. package/dist/ui/components/layout/scaffold.js +40 -22
  31. package/dist/ui/components/layout/scroll.js +10 -14
  32. package/dist/ui/components/layout/spaced.js +3 -6
  33. package/dist/ui/components/spinner.js +16 -19
  34. package/dist/ui/components/text.js +42 -37
  35. package/dist/ui/theme/color_theme.js +36 -42
  36. package/dist/ui/theme/colors.js +40 -77
  37. package/dist/ui/theme/geometry_theme.js +8 -16
  38. package/dist/ui/theme/theme.d.ts +1 -0
  39. package/dist/ui/theme/theme.js +13 -34
  40. package/dist/ui/theme/type_theme.js +11 -39
  41. package/dist/ui/util/confirm_dialog.js +1 -4
  42. package/dist/ui/util/error_view.js +4 -7
  43. package/dist/ui/util/toast.js +8 -5
  44. package/dist/ui/util/util.d.ts +1 -0
  45. package/dist/ui/util/util.js +12 -13
  46. package/package.json +4 -2
package/dist/bit/bit.js CHANGED
@@ -1,22 +1,17 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.makeBit = makeBit;
4
- exports.ProvideBit = ProvideBit;
5
- exports.useBit = useBit;
6
- const jsx_runtime_1 = require("preact/jsx-runtime");
7
- const signals_1 = require("@preact/signals");
8
- const preact_1 = require("preact");
9
- const hooks_1 = require("preact/hooks");
10
- const error_view_1 = require("../ui/components/error_view");
11
- const flex_1 = require("../ui/components/layout/flex");
12
- const spinner_1 = require("../ui/components/spinner");
13
- function makeBit(name) {
14
- const c = (0, preact_1.createContext)(null);
1
+ import { jsx as _jsx } from "preact/jsx-runtime";
2
+ import { useSignal } from "@preact/signals";
3
+ import { createContext } from "preact";
4
+ import { useContext } from "preact/hooks";
5
+ import { ErrorView } from "../ui/components/error_view";
6
+ import { Column } from "../ui/components/layout/flex";
7
+ import { Spinner } from "../ui/components/spinner";
8
+ export function makeBit(name) {
9
+ const c = createContext(null);
15
10
  c.displayName = name;
16
11
  return c;
17
12
  }
18
- function ProvideBit(context, parameters, worker, ctrl, children) {
19
- const s = (0, signals_1.useSignal)({ loading: true });
13
+ export function ProvideBit(context, parameters, worker, ctrl, children) {
14
+ const s = useSignal({ loading: true });
20
15
  const _set = (n) => {
21
16
  try {
22
17
  if (JSON.stringify(n) === JSON.stringify(s.peek()))
@@ -32,29 +27,31 @@ function ProvideBit(context, parameters, worker, ctrl, children) {
32
27
  return _set({ error });
33
28
  };
34
29
  function map(m) {
30
+ var _a;
35
31
  const st = s.value;
36
32
  if (st.loading)
37
33
  return m.onLoading();
38
34
  if (st.error)
39
35
  return m.onError(st.error);
40
- return m.onData(st.data ?? null);
36
+ return m.onData((_a = st.data) !== null && _a !== void 0 ? _a : null);
41
37
  }
42
38
  const c = ctrl(parameters, { emit, emitLoading, emitError, map, signal: s });
43
39
  worker(parameters, { emit, emitLoading, emitError, map, signal: s }, c);
44
- return ((0, jsx_runtime_1.jsx)(context.Provider, { value: { ctrl: c, state: s }, children: children }));
40
+ return (_jsx(context.Provider, { value: { ctrl: c, state: s }, children: children }));
45
41
  }
46
- function useBit(context) {
42
+ export function useBit(context) {
47
43
  try {
48
- const { ctrl, state } = (0, hooks_1.useContext)(context);
44
+ const { ctrl, state } = useContext(context);
49
45
  const v = state.value;
50
46
  function map(m) {
47
+ var _a;
51
48
  if (v.loading)
52
49
  return (m.onLoading ||
53
- (() => ((0, jsx_runtime_1.jsx)(flex_1.Column, { cross: "center", children: (0, jsx_runtime_1.jsx)(spinner_1.Spinner, {}) }))))();
50
+ (() => (_jsx(Column, { cross: "center", children: _jsx(Spinner, {}) }))))();
54
51
  if (v.error)
55
52
  return (m.onError ||
56
- ((e) => (0, jsx_runtime_1.jsx)(error_view_1.ErrorView, { error: e, retry: ctrl.reload ?? null })))(v.error);
57
- return m.onData(v.data ?? null);
53
+ ((e) => { var _a; return _jsx(ErrorView, { error: e, retry: (_a = ctrl.reload) !== null && _a !== void 0 ? _a : null }); }))(v.error);
54
+ return m.onData((_a = v.data) !== null && _a !== void 0 ? _a : null);
58
55
  }
59
56
  return {
60
57
  signal: state,
@@ -73,10 +70,10 @@ function useBit(context) {
73
70
  const err = `BIT ERROR: NO ${context.displayName} PROVIDED`;
74
71
  console.error(err, e);
75
72
  return {
76
- map: (_) => (0, jsx_runtime_1.jsx)("div", { children: err }),
73
+ map: (_) => _jsx("div", { children: err }),
77
74
  ctrl: null,
78
75
  signal: null,
79
- onData: () => (0, jsx_runtime_1.jsx)("div", { children: err }),
76
+ onData: () => _jsx("div", { children: err }),
80
77
  };
81
78
  }
82
79
  }
@@ -1,21 +1,35 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.StreamControl = exports.WorkerControl = void 0;
4
- exports.CtrlBit = CtrlBit;
5
- const hooks_1 = require("preact/hooks");
6
- const bit_1 = require("./bit");
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __rest = (this && this.__rest) || function (s, e) {
11
+ var t = {};
12
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
13
+ t[p] = s[p];
14
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
15
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
16
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
17
+ t[p[i]] = s[p[i]];
18
+ }
19
+ return t;
20
+ };
21
+ import { useEffect } from "preact/hooks";
22
+ import { makeBit as mb, ProvideBit, useBit } from "./bit";
7
23
  class BitControl {
8
- p;
9
- bit;
10
24
  constructor(p, bit) {
11
25
  this.bit = bit;
12
26
  this.p = p;
13
27
  }
14
28
  act(fn) {
15
29
  this.bit.map({
16
- onData: async (d) => {
30
+ onData: (d) => __awaiter(this, void 0, void 0, function* () {
17
31
  try {
18
- await fn(d);
32
+ yield fn(d);
19
33
  }
20
34
  catch (e) {
21
35
  if (e && e.code && e.message)
@@ -23,7 +37,7 @@ class BitControl {
23
37
  else
24
38
  console.error("[BitERROR] act: ", e);
25
39
  }
26
- },
40
+ }),
27
41
  });
28
42
  }
29
43
  /**
@@ -32,33 +46,38 @@ class BitControl {
32
46
  */
33
47
  dispose() { }
34
48
  }
35
- class WorkerControl extends BitControl {
36
- reload = null;
49
+ export class WorkerControl extends BitControl {
50
+ constructor() {
51
+ super(...arguments);
52
+ this.reload = null;
53
+ }
37
54
  }
38
- exports.WorkerControl = WorkerControl;
39
- class StreamControl extends BitControl {
40
- stream = null;
55
+ export class StreamControl extends BitControl {
56
+ constructor() {
57
+ super(...arguments);
58
+ this.stream = null;
59
+ }
41
60
  dispose() {
42
61
  if (this.stream)
43
62
  this.disposeStream(this.stream);
44
63
  }
45
64
  }
46
- exports.StreamControl = StreamControl;
47
65
  function make(name) {
48
- return (0, bit_1.makeBit)(name);
66
+ return mb(name);
49
67
  }
50
68
  function use(b) {
51
- return (0, bit_1.useBit)(b);
69
+ return useBit(b);
52
70
  }
53
- function CtrlBit(ctrl, name) {
71
+ export function CtrlBit(ctrl, name) {
54
72
  const context = make((name || "Unknown") + "Bit");
55
- function Provide({ children, ...p }) {
56
- return (0, bit_1.ProvideBit)(context, p, async (p, b, c) => {
73
+ function Provide(_a) {
74
+ var { children } = _a, p = __rest(_a, ["children"]);
75
+ return ProvideBit(context, p, (p, b, c) => __awaiter(this, void 0, void 0, function* () {
57
76
  b.emitLoading();
58
77
  try {
59
78
  if (c instanceof WorkerControl) {
60
79
  if (c.reload)
61
- await c.reload();
80
+ yield c.reload();
62
81
  }
63
82
  if (c instanceof StreamControl) {
64
83
  c.stream = c.listen();
@@ -67,20 +86,20 @@ function CtrlBit(ctrl, name) {
67
86
  catch (e) {
68
87
  b.emitError(e);
69
88
  }
70
- }, (p, b) => {
89
+ }), (p, b) => {
71
90
  const c = ctrl(p, b);
72
91
  // clean up on unmount
73
- (0, hooks_1.useEffect)(() => () => c.dispose(), []);
92
+ useEffect(() => () => c.dispose(), []);
74
93
  if (c instanceof WorkerControl) {
75
- c.reload = async () => {
94
+ c.reload = () => __awaiter(this, void 0, void 0, function* () {
76
95
  b.emitLoading();
77
96
  try {
78
- b.emit(await c.worker());
97
+ b.emit(yield c.worker());
79
98
  }
80
99
  catch (e) {
81
100
  b.emitError(e);
82
101
  }
83
- };
102
+ });
84
103
  }
85
104
  return c;
86
105
  }, children);
package/dist/elbe.css CHANGED
@@ -55,6 +55,39 @@ body,
55
55
  /* ========== ALIGN =========== */
56
56
  /* ========== JUSTIFY =========== */
57
57
  /* ========== RESPONSIVE =========== */
58
+ /*input[type="range"] {
59
+ -webkit-appearance: none;
60
+ appearance: none;
61
+ background: green;
62
+ cursor: pointer;
63
+ width: 15rem;
64
+
65
+ &::-moz-range-track{
66
+ background-color: var(--c-context-border);
67
+ border-radius: 100px;
68
+ border: none;
69
+ height: 0.5rem;
70
+ }
71
+
72
+ &::-webkit-slider-runnable-track
73
+ {
74
+ border-radius: 100px;
75
+ border: none;
76
+ height: 0.5rem;
77
+ }
78
+
79
+ &::-webkit-slider-thumb
80
+ {
81
+
82
+ border: none;
83
+ -webkit-appearance: none; // Override default look
84
+ appearance: none;
85
+ margin-top: -6px;
86
+ border-radius: 100px;
87
+ height: 1.2rem;
88
+ width: 1.2rem;
89
+ }
90
+ }*/
58
91
  }
59
92
  .elbe .padded,
60
93
  .elbe .card,
@@ -463,29 +496,36 @@ body,
463
496
  .elbe input[type=range] {
464
497
  -webkit-appearance: none;
465
498
  appearance: none;
466
- background: transparent;
467
- cursor: pointer;
468
- width: 15rem;
469
- }
470
- .elbe input[type=range]::-moz-range-track {
471
- background-color: var(--c-context-border);
472
- border-radius: 100px;
473
- border: none;
474
- height: 0.5rem;
499
+ width: 100%;
500
+ height: 0.4rem;
501
+ border-radius: 1rem;
502
+ background-color: var(--c-context-back);
503
+ outline: none;
504
+ -webkit-transition: 0.2s;
505
+ transition: background-color 0.2s;
475
506
  }
476
- .elbe input[type=range]::-webkit-slider-runnable-track {
477
- border-radius: 100px;
478
- border: none;
479
- height: 0.5rem;
507
+ .elbe input[type=range]:hover {
508
+ background-color: var(--c-context-back);
480
509
  }
481
510
  .elbe input[type=range]::-webkit-slider-thumb {
482
- border: none;
483
511
  -webkit-appearance: none;
484
512
  appearance: none;
485
- margin-top: -6px;
486
- border-radius: 100px;
487
- height: 1.2rem;
488
- width: 1.2rem;
513
+ width: 1.5rem;
514
+ height: 1.5rem;
515
+ border-radius: 1rem;
516
+ background: var(--c-context-front);
517
+ border: none;
518
+ outline: none;
519
+ cursor: pointer;
520
+ }
521
+ .elbe input[type=range]::-moz-range-thumb {
522
+ width: 1.5rem;
523
+ height: 1.5rem;
524
+ border-radius: 1rem;
525
+ background: var(--c-context-front);
526
+ border: none;
527
+ outline: none;
528
+ cursor: pointer;
489
529
  }
490
530
  .elbe input[type=checkbox] {
491
531
  -webkit-appearance: none;
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;;AD9FA;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;EACA;;AAEF;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;;;ACpJJ;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;;EAEF;IACE;;;AAIJ;EACE;IACE;;;AAIJ;EACE;;AClHF;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;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;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;;AAKD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAWE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGF;EAEE;EACA;EACA;;AAGF;EAGE;EACA;EACA;EACA;EACA;EACA;EACA;;AAOJ;EACE;EACA;EACA;EAEA;EACA;EAEA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EAEA;EACA;EACA;;AAIF;EACE;EACA;;AACA;EACE;EACA;;AAMJ;EACE;EACA;;AAGF;EACE;EACA;;;AHxLF;EAIE;EACA;EACA;EACA;EACA;EACA;EACA","file":"elbe.css"}
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;AC2GA;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;;AFzMA;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;EACA;;AAEF;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;;;ACpJJ;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;;EAEF;IACE;;;AAIJ;EACE;IACE;;;AAIJ;EACE;;AClHF;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;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;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;;AAKD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAWE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAaF;EACE;EACA;EACA;EACA;EACA;EAEA;EACA;EAEA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EA5BF;EACA;EACA;EACA;EACA;EACA;EACA;;AA0BA;EAhCA;EACA;EACA;EACA;EACA;EACA;EACA;;AAsEF;EACE;EACA;EACA;EAEA;EACA;EAEA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EAEA;EACA;EACA;;AAIF;EACE;EACA;;AACA;EACE;EACA;;AAMJ;EACE;EACA;;AAGF;EACE;EACA;;;AHhOF;EAIE;EACA;EACA;EACA;EACA;EACA;EACA","file":"elbe.css"}
package/dist/index.d.ts CHANGED
@@ -26,6 +26,7 @@ export * from "./ui/components/dialog";
26
26
  export * from "./ui/components/error_view";
27
27
  export * from "./ui/components/spinner";
28
28
  export * from "./ui/components/text";
29
+ export * from "./ui/components/dev/todo";
29
30
  export * from "./ui/theme/theme";
30
31
  declare function None({}: {}): import("preact").JSX.Element;
31
32
  export declare const Icons: {
package/dist/index.js CHANGED
@@ -1,65 +1,37 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
26
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.Icons = void 0;
30
- const jsx_runtime_1 = require("preact/jsx-runtime");
31
- const Lucide = __importStar(require("lucide-react"));
32
- require("./elbe.css");
1
+ import { jsx as _jsx } from "preact/jsx-runtime";
2
+ import * as Lucide from "lucide-react";
3
+ import "./elbe.css";
33
4
  // exports
34
- __exportStar(require("./bit/bit"), exports);
35
- __exportStar(require("./bit/ctrl_bit"), exports);
36
- __exportStar(require("./service/s_api"), exports);
37
- __exportStar(require("./ui/util/confirm_dialog"), exports);
38
- __exportStar(require("./ui/util/toast"), exports);
39
- __exportStar(require("./ui/util/util"), exports);
40
- __exportStar(require("./ui/components/base/box"), exports);
41
- __exportStar(require("./ui/components/base/card"), exports);
42
- __exportStar(require("./ui/components/base/padded"), exports);
43
- __exportStar(require("./ui/components/button/button"), exports);
44
- __exportStar(require("./ui/components/button/choose_button"), exports);
45
- __exportStar(require("./ui/components/button/icon_button"), exports);
46
- __exportStar(require("./ui/components/button/toggle_button"), exports);
47
- __exportStar(require("./ui/components/layout/flex"), exports);
48
- __exportStar(require("./ui/components/layout/scaffold"), exports);
49
- __exportStar(require("./ui/components/layout/scroll"), exports);
50
- __exportStar(require("./ui/components/layout/spaced"), exports);
51
- __exportStar(require("./ui/components/input/checkbox"), exports);
52
- __exportStar(require("./ui/components/input/input_field"), exports);
53
- __exportStar(require("./ui/components/input/range"), exports);
54
- __exportStar(require("./ui/components/input/select"), exports);
55
- __exportStar(require("./ui/components/input/text_area"), exports);
56
- __exportStar(require("./ui/components/badge"), exports);
57
- __exportStar(require("./ui/components/dialog"), exports);
58
- __exportStar(require("./ui/components/error_view"), exports);
59
- __exportStar(require("./ui/components/spinner"), exports);
60
- __exportStar(require("./ui/components/text"), exports);
61
- __exportStar(require("./ui/theme/theme"), exports);
5
+ export * from "./bit/bit";
6
+ export * from "./bit/ctrl_bit";
7
+ export * from "./service/s_api";
8
+ export * from "./ui/util/confirm_dialog";
9
+ export * from "./ui/util/toast";
10
+ export * from "./ui/util/util";
11
+ export * from "./ui/components/base/box";
12
+ export * from "./ui/components/base/card";
13
+ export * from "./ui/components/base/padded";
14
+ export * from "./ui/components/button/button";
15
+ export * from "./ui/components/button/choose_button";
16
+ export * from "./ui/components/button/icon_button";
17
+ export * from "./ui/components/button/toggle_button";
18
+ export * from "./ui/components/layout/flex";
19
+ export * from "./ui/components/layout/scaffold";
20
+ export * from "./ui/components/layout/scroll";
21
+ export * from "./ui/components/layout/spaced";
22
+ export * from "./ui/components/input/checkbox";
23
+ export * from "./ui/components/input/input_field";
24
+ export * from "./ui/components/input/range";
25
+ export * from "./ui/components/input/select";
26
+ export * from "./ui/components/input/text_area";
27
+ export * from "./ui/components/badge";
28
+ export * from "./ui/components/dialog";
29
+ export * from "./ui/components/error_view";
30
+ export * from "./ui/components/spinner";
31
+ export * from "./ui/components/text";
32
+ export * from "./ui/components/dev/todo";
33
+ export * from "./ui/theme/theme";
62
34
  function None({}) {
63
- return (0, jsx_runtime_1.jsx)("div", { style: { width: "1.5rem", height: "1.5rem" } });
35
+ return _jsx("div", { style: { width: "1.5rem", height: "1.5rem" } });
64
36
  }
65
- exports.Icons = { ...Lucide.icons, None };
37
+ export const Icons = Object.assign(Object.assign({}, Lucide.icons), { None });
@@ -1,15 +1,18 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ApiService = void 0;
4
- exports.ifApiError = ifApiError;
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
5
10
  const _noArgs = {};
6
11
  /**
7
12
  * ApiService is a simple wrapper around fetch that handles JSON serialization and error handling.
8
13
  * to use it, you must first call `ApiService.init(apiURL)` with the base URL of your API.
9
14
  */
10
- class ApiService {
11
- apiURL;
12
- static _i = null;
15
+ export class ApiService {
13
16
  static get i() {
14
17
  if (!ApiService._i)
15
18
  throw "ApiService not initialized. Call ApiService.init(apiURL)";
@@ -23,66 +26,76 @@ class ApiService {
23
26
  throw "ApiService already initialized";
24
27
  ApiService._i = new ApiService(apiURL);
25
28
  }
26
- async _fetch(p, method, { path, query, body }) {
27
- try {
28
- p = path
29
- ? p.replace(/:([a-zA-Z0-9_]+)/g, (m, p1) => {
30
- const v = path[p1];
31
- if (v === undefined)
32
- throw { code: 400, message: `missing parameter ${p1}` };
33
- return v?.toString() ?? "";
34
- })
35
- : p;
36
- const queryStr = query != null ? "?" + new URLSearchParams(query).toString() : "";
37
- const response = await fetch(this.apiURL + p + queryStr, {
38
- method,
39
- credentials: "include",
40
- headers: { "Content-Type": "application/json" },
41
- body: body ? JSON.stringify(body) : undefined,
42
- });
43
- if (response.ok) {
29
+ _fetch(p_1, method_1, _a) {
30
+ return __awaiter(this, arguments, void 0, function* (p, method, { path, query, body }) {
31
+ var _b;
32
+ try {
33
+ p = path
34
+ ? p.replace(/:([a-zA-Z0-9_]+)/g, (m, p1) => {
35
+ var _a;
36
+ const v = path[p1];
37
+ if (v === undefined)
38
+ throw { code: 400, message: `missing parameter ${p1}` };
39
+ return (_a = v === null || v === void 0 ? void 0 : v.toString()) !== null && _a !== void 0 ? _a : "";
40
+ })
41
+ : p;
42
+ const queryStr = query != null ? "?" + new URLSearchParams(query).toString() : "";
43
+ const response = yield fetch(this.apiURL + p + queryStr, {
44
+ method,
45
+ credentials: "include",
46
+ headers: { "Content-Type": "application/json" },
47
+ body: body ? JSON.stringify(body) : undefined,
48
+ });
49
+ if (response.ok) {
50
+ try {
51
+ return yield response.json();
52
+ }
53
+ catch (e) {
54
+ return null;
55
+ }
56
+ }
57
+ let data = null;
44
58
  try {
45
- return await response.json();
59
+ data = yield response.clone().json();
46
60
  }
47
61
  catch (e) {
48
- return null;
62
+ data = yield response.text();
49
63
  }
50
- }
51
- let data = null;
52
- try {
53
- data = await response.clone().json();
64
+ throw {
65
+ code: response.status,
66
+ message: (_b = data.message) !== null && _b !== void 0 ? _b : "undefined error",
67
+ data,
68
+ };
54
69
  }
55
70
  catch (e) {
56
- data = await response.text();
71
+ rethrow(e, 0, "unknown error");
57
72
  }
58
- throw {
59
- code: response.status,
60
- message: data.message ?? "undefined error",
61
- data,
62
- };
63
- }
64
- catch (e) {
65
- rethrow(e, 0, "unknown error");
66
- }
73
+ });
67
74
  }
68
- async get(path, args) {
69
- return this._fetch(path, "GET", args || _noArgs);
75
+ get(path, args) {
76
+ return __awaiter(this, void 0, void 0, function* () {
77
+ return this._fetch(path, "GET", args || _noArgs);
78
+ });
70
79
  }
71
- async post(path, args) {
72
- return this._fetch(path, "POST", args || _noArgs);
80
+ post(path, args) {
81
+ return __awaiter(this, void 0, void 0, function* () {
82
+ return this._fetch(path, "POST", args || _noArgs);
83
+ });
73
84
  }
74
- async delete(path, args) {
75
- return this._fetch(path, "DELETE", args || _noArgs);
85
+ delete(path, args) {
86
+ return __awaiter(this, void 0, void 0, function* () {
87
+ return this._fetch(path, "DELETE", args || _noArgs);
88
+ });
76
89
  }
77
90
  }
78
- exports.ApiService = ApiService;
91
+ ApiService._i = null;
79
92
  function rethrow(e, code, message) {
80
93
  // if e implements the apiError interface, rethrow it:
81
94
  if (e && e.code !== null && e.message !== null)
82
95
  throw e;
83
96
  throw { code, message, data: e };
84
97
  }
85
- function ifApiError(e) {
98
+ export function ifApiError(e) {
86
99
  if (e && e.code !== null && e.message !== null)
87
100
  return e;
88
101
  return null;