@alxgrn/telefrag-ui 0.0.62 → 0.0.64

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.
@@ -1 +1 @@
1
- .Content{display:flex;align-items:stretch;gap:var(--alxgrn-unit-half);max-width:var(--alxgrn-layout-width);margin:0 auto;margin-top:var(--alxgrn-layout-header-height)}.Content .ContentMain{flex:0 0 auto;width:calc(var(--alxgrn-layout-width) - var(--alxgrn-layout-menu-width) - var(--alxgrn-unit-half))}.Content .ContentMenu{flex:0 0 auto;width:var(--alxgrn-layout-menu-width);max-height:calc(100vh - var(--alxgrn-unit) - var(--alxgrn-layout-header-height));overflow-y:auto;margin:var(--alxgrn-unit-half) 0;position:sticky;top:var(--alxgrn-layout-header-height)}.Content .ContentMenu::-webkit-scrollbar{width:var(--alxgrn-unit-small);height:var(--alxgrn-unit-small)}.Content .ContentMenu::-webkit-scrollbar-corner{background-color:transparent}.Content .ContentMenu::-webkit-scrollbar-track{background-color:transparent;border-radius:var(--alxgrn-unit-small)}.Content .ContentMenu::-webkit-scrollbar-thumb{background-color:transparent;border-radius:var(--alxgrn-unit-small)}.Content .ContentMenu:hover::-webkit-scrollbar-thumb{background-color:var(--alxgrn-color-scroll);border-radius:var(--alxgrn-unit-small)}@media (max-width: 1024px){.Content .ContentMenu{display:none}.Content .ContentMain{width:100%}}
1
+ .Content{display:flex;align-items:stretch;gap:var(--alxgrn-unit-half);max-width:var(--alxgrn-layout-width);margin:0 auto;margin-top:var(--alxgrn-layout-header-height)}.Content .ContentMain{flex:0 0 auto;width:calc(var(--alxgrn-layout-width) - var(--alxgrn-layout-menu-width) - var(--alxgrn-unit-half))}.Content .ContentMenu{flex:0 0 auto;width:var(--alxgrn-layout-menu-width);max-height:calc(100vh - var(--alxgrn-layout-header-height));overflow-y:auto;position:sticky;top:var(--alxgrn-layout-header-height)}.Content .ContentMenu::-webkit-scrollbar{width:var(--alxgrn-unit-small);height:var(--alxgrn-unit-small)}.Content .ContentMenu::-webkit-scrollbar-corner{background-color:transparent}.Content .ContentMenu::-webkit-scrollbar-track{background-color:transparent;border-radius:var(--alxgrn-unit-small)}.Content .ContentMenu::-webkit-scrollbar-thumb{background-color:transparent;border-radius:var(--alxgrn-unit-small)}.Content .ContentMenu:hover::-webkit-scrollbar-thumb{background-color:var(--alxgrn-color-scroll);border-radius:var(--alxgrn-unit-small)}@media (max-width: 1024px){.Content .ContentMenu{display:none}.Content .ContentMain{width:100%}}
@@ -0,0 +1 @@
1
+ .Expandable{position:relative;overflow:hidden}.ExpandableExpanded,.ExpandableCollapsed{transition:max-height .5s ease;overflow:hidden}.ExpandableShadow{position:absolute;width:100%;height:50px;background:linear-gradient(rgba(255,255,255,.001),var(--alxgrn-bg-panel));bottom:calc(var(--alxgrn-font-size) * var(--alxgrn-line-height) + var(--alxgrn-unit))}.ExpandableButton{display:inline-block;margin-top:var(--alxgrn-unit);color:var(--alxgrn-color-accent);cursor:pointer;border-bottom:1px solid transparent}.ExpandableButton:hover{border-bottom:1px solid var(--alxgrn-color-accent)}
@@ -1 +1 @@
1
- .MainMenu{margin-top:var(--alxgrn-unit-small);margin-right:var(--alxgrn-unit-half)}.Sidebar .MainMenu{margin-top:0}.MainMenu .MainMenuAlternative{display:flex;align-items:center;gap:var(--alxgrn-unit-half);cursor:pointer;padding:var(--alxgrn-unit-half);border-radius:var(--alxgrn-unit-half)}.MainMenu .MainMenuAlternative:hover{background-color:var(--alxgrn-bg-panel)}.MainMenu .MainMenuAlternative:hover *{color:var(--alxgrn-color-accent)}.MainMenu .MainMenuAlternative svg{color:var(--alxgrn-color-accent);font-size:var(--alxgrn-font-size-big)}.MainMenu .MainMenuAlternative img{width:var(--alxgrn-font-size-big);height:var(--alxgrn-font-size-big);border-radius:50%;flex:0 0 auto}.MainMenu .MainMenuAlternative span{font-size:var(--alxgrn-font-size);overflow-wrap:break-word;display:-webkit-box;line-clamp:1;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;flex:1 1 auto}.MainMenu .MainMenuAlternative span.MainMenuCheck{display:block;width:var(--alxgrn-unit-half);height:var(--alxgrn-unit-half);border-radius:50%;background-color:var(--alxgrn-color-accent);flex:0 0 auto}.MainMenu .MainMenuNode,.MainMenu .MainMenuTitle{padding:var(--alxgrn-unit-half)}.MainMenu .MainMenuTitle span{text-transform:uppercase;font-size:var(--alxgrn-font-size-small);font-weight:600;color:var(--alxgrn-color-light)}
1
+ .MainMenu{margin-top:var(--alxgrn-unit);margin-right:var(--alxgrn-unit-half)}.Sidebar .MainMenu{margin-top:0}.MainMenu .MainMenuAlternative{display:flex;align-items:center;gap:var(--alxgrn-unit-half);cursor:pointer;padding:var(--alxgrn-unit-half);border-radius:var(--alxgrn-unit-half)}.MainMenu .MainMenuAlternative:hover{background-color:var(--alxgrn-bg-panel)}.MainMenu .MainMenuAlternative:hover *{color:var(--alxgrn-color-accent)}.MainMenu .MainMenuAlternative svg{color:var(--alxgrn-color-accent);font-size:var(--alxgrn-font-size-big)}.MainMenu .MainMenuAlternative img{width:var(--alxgrn-font-size-big);height:var(--alxgrn-font-size-big);border-radius:50%;flex:0 0 auto}.MainMenu .MainMenuAlternative span{font-size:var(--alxgrn-font-size);overflow-wrap:break-word;display:-webkit-box;line-clamp:1;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;flex:1 1 auto}.MainMenu .MainMenuAlternative span.MainMenuCheck{display:block;width:var(--alxgrn-unit-half);height:var(--alxgrn-unit-half);border-radius:50%;background-color:var(--alxgrn-color-accent);flex:0 0 auto}.MainMenu .MainMenuNode,.MainMenu .MainMenuTitle{padding:var(--alxgrn-unit-half)}.MainMenu .MainMenuTitle span{text-transform:uppercase;font-size:var(--alxgrn-font-size-small);font-weight:600;color:var(--alxgrn-color-light)}
@@ -4,7 +4,7 @@ import { deepForEach as y } from "react-children-utilities";
4
4
  import x, { isValidDate as R } from "../date/Date.js";
5
5
  import { Select as F } from "../select/Select.js";
6
6
  import { Button as C } from "../button/Button.js";
7
- import '../../../assets/Content.css';import '../../../assets/MainMenu.css';import '../../../assets/Header.css';import '../../../assets/Editable.css';import '../../../assets/Toolbar.css';import '../../../assets/Sidebar.css';import '../../../assets/Scroll.css';import '../../../assets/Message.css';import '../../../assets/Modal.css';import '../../../assets/Overlay.css';import '../../../assets/Panel.css';import '../../../assets/Menu.css';import '../../../assets/Popup.css';import '../../../assets/Fieldset.css';import '../../../assets/Label.css';import '../../../assets/RequiredMark.css';import '../../../assets/DatePicker.css';import '../../../assets/TelefragLogo.css';import '../../../assets/TelefragSymbol.css';import '../../../assets/FormCol.css';import '../../../assets/FormRow.css';import '../../../assets/PageHeader.css';/* empty css */
7
+ import '../../../assets/Content.css';import '../../../assets/MainMenu.css';import '../../../assets/Header.css';import '../../../assets/Expandable.css';import '../../../assets/Editable.css';import '../../../assets/Toolbar.css';import '../../../assets/Sidebar.css';import '../../../assets/Scroll.css';import '../../../assets/Message.css';import '../../../assets/Modal.css';import '../../../assets/Overlay.css';import '../../../assets/Panel.css';import '../../../assets/Menu.css';import '../../../assets/Popup.css';import '../../../assets/Fieldset.css';import '../../../assets/Label.css';import '../../../assets/RequiredMark.css';import '../../../assets/DatePicker.css';import '../../../assets/TelefragLogo.css';import '../../../assets/TelefragSymbol.css';import '../../../assets/FormCol.css';import '../../../assets/FormRow.css';import '../../../assets/PageHeader.css';/* empty css */
8
8
  /* empty css */
9
9
  /* empty css */
10
10
  /* empty css */
@@ -34,10 +34,11 @@ import l from "../../ui/block/Block.js";
34
34
  /* empty css */
35
35
  /* empty css */
36
36
  /* empty css */
37
+ /* empty css */
37
38
  /* empty css */
38
39
  /* empty css */
39
40
  /* empty css */
40
- const ge = ({
41
+ const De = ({
41
42
  info: d,
42
43
  error: k,
43
44
  success: b,
@@ -67,14 +68,14 @@ const ge = ({
67
68
  break;
68
69
  case F:
69
70
  {
70
- const a = e.value;
71
- e.options.findIndex((p) => p.value === a) < 0 && i(!0);
71
+ const p = e.value;
72
+ e.options.findIndex((a) => a.value === p) < 0 && i(!0);
72
73
  }
73
74
  break;
74
75
  case D:
75
76
  {
76
- const a = e.value;
77
- e.options.findIndex((p) => p.value === a) < 0 && i(!0);
77
+ const p = e.value;
78
+ e.options.findIndex((a) => a.value === p) < 0 && i(!0);
78
79
  }
79
80
  break;
80
81
  case E:
@@ -141,10 +142,10 @@ const ge = ({
141
142
  break;
142
143
  case S:
143
144
  {
144
- const a = [];
145
- t.options.forEach((p) => {
146
- p.checked && a.push(p.value);
147
- }), o(t.id, a);
145
+ const p = [];
146
+ t.options.forEach((a) => {
147
+ a.checked && p.push(a.value);
148
+ }), o(t.id, p);
148
149
  }
149
150
  break;
150
151
  }
@@ -164,6 +165,6 @@ const ge = ({
164
165
  ] });
165
166
  };
166
167
  export {
167
- ge as Form,
168
- ge as default
168
+ De as Form,
169
+ De as default
169
170
  };
@@ -1,7 +1,7 @@
1
1
  import { jsx as r, jsxs as F, Fragment as C } from "react/jsx-runtime";
2
2
  import { useState as n, useEffect as d } from "react";
3
3
  import E from "../label/Label.js";
4
- import '../../../assets/Content.css';import '../../../assets/MainMenu.css';import '../../../assets/Header.css';import '../../../assets/Editable.css';import '../../../assets/Toolbar.css';import '../../../assets/Sidebar.css';import '../../../assets/Scroll.css';import '../../../assets/Message.css';import '../../../assets/Modal.css';import '../../../assets/Overlay.css';import '../../../assets/Panel.css';import '../../../assets/Block.css';import '../../../assets/RadioLabel.css';import '../../../assets/Input.css';import '../../../assets/Files.css';import '../../../assets/Fieldset.css';import '../../../assets/RequiredMark.css';import '../../../assets/Menu.css';import '../../../assets/FormCol.css';import '../../../assets/FormRow.css';import '../../../assets/Button.css';import '../../../assets/DatePicker.css';import '../../../assets/TelefragLogo.css';import '../../../assets/TelefragSymbol.css';import '../../../assets/Popup.css';import '../../../assets/PageHeader.css';/* empty css */
4
+ import '../../../assets/Content.css';import '../../../assets/MainMenu.css';import '../../../assets/Header.css';import '../../../assets/Expandable.css';import '../../../assets/Editable.css';import '../../../assets/Toolbar.css';import '../../../assets/Sidebar.css';import '../../../assets/Scroll.css';import '../../../assets/Message.css';import '../../../assets/Modal.css';import '../../../assets/Overlay.css';import '../../../assets/Panel.css';import '../../../assets/Block.css';import '../../../assets/RadioLabel.css';import '../../../assets/Input.css';import '../../../assets/Files.css';import '../../../assets/Fieldset.css';import '../../../assets/RequiredMark.css';import '../../../assets/Menu.css';import '../../../assets/FormCol.css';import '../../../assets/FormRow.css';import '../../../assets/Button.css';import '../../../assets/DatePicker.css';import '../../../assets/TelefragLogo.css';import '../../../assets/TelefragSymbol.css';import '../../../assets/Popup.css';import '../../../assets/PageHeader.css';/* empty css */
5
5
  import "react-children-utilities";
6
6
  import "react-transition-group";
7
7
  import "react-dom";
@@ -30,10 +30,11 @@ import j from "../../icons/Trash.js";
30
30
  /* empty css */
31
31
  /* empty css */
32
32
  /* empty css */
33
+ /* empty css */
33
34
  /* empty css */
34
35
  /* empty css */
35
36
  /* empty css */
36
- const cr = ({
37
+ const gr = ({
37
38
  id: u,
38
39
  value: o,
39
40
  text: l,
@@ -100,6 +101,6 @@ const cr = ({
100
101
  ) });
101
102
  };
102
103
  export {
103
- cr as Image,
104
- cr as default
104
+ gr as Image,
105
+ gr as default
105
106
  };
@@ -1,7 +1,7 @@
1
1
  import { jsx as r, jsxs as u } from "react/jsx-runtime";
2
2
  import { useRef as S, useState as a, useEffect as O } from "react";
3
3
  import V from "../label/Label.js";
4
- import '../../../assets/Content.css';import '../../../assets/MainMenu.css';import '../../../assets/Header.css';import '../../../assets/Editable.css';import '../../../assets/Toolbar.css';import '../../../assets/Sidebar.css';import '../../../assets/Scroll.css';import '../../../assets/Message.css';import '../../../assets/Modal.css';import '../../../assets/Overlay.css';import '../../../assets/Panel.css';import '../../../assets/Block.css';import '../../../assets/RadioLabel.css';import '../../../assets/Input.css';import '../../../assets/Files.css';import '../../../assets/Fieldset.css';import '../../../assets/RequiredMark.css';import '../../../assets/FormCol.css';import '../../../assets/FormRow.css';import '../../../assets/Button.css';import '../../../assets/DatePicker.css';import '../../../assets/TelefragLogo.css';import '../../../assets/TelefragSymbol.css';import '../../../assets/Popup.css';import '../../../assets/PageHeader.css';/* empty css */
4
+ import '../../../assets/Content.css';import '../../../assets/MainMenu.css';import '../../../assets/Header.css';import '../../../assets/Expandable.css';import '../../../assets/Editable.css';import '../../../assets/Toolbar.css';import '../../../assets/Sidebar.css';import '../../../assets/Scroll.css';import '../../../assets/Message.css';import '../../../assets/Modal.css';import '../../../assets/Overlay.css';import '../../../assets/Panel.css';import '../../../assets/Block.css';import '../../../assets/RadioLabel.css';import '../../../assets/Input.css';import '../../../assets/Files.css';import '../../../assets/Fieldset.css';import '../../../assets/RequiredMark.css';import '../../../assets/FormCol.css';import '../../../assets/FormRow.css';import '../../../assets/Button.css';import '../../../assets/DatePicker.css';import '../../../assets/TelefragLogo.css';import '../../../assets/TelefragSymbol.css';import '../../../assets/Popup.css';import '../../../assets/PageHeader.css';/* empty css */
5
5
  import "react-children-utilities";
6
6
  import "react-transition-group";
7
7
  import "react-dom";
@@ -29,10 +29,11 @@ import { Menu as E } from "../../ui/menu/Menu.js";
29
29
  /* empty css */
30
30
  /* empty css */
31
31
  /* empty css */
32
+ /* empty css */
32
33
  /* empty css */
33
34
  /* empty css */
34
35
  /* empty css */
35
- const cr = ({
36
+ const ur = ({
36
37
  id: f,
37
38
  value: o,
38
39
  onChange: d,
@@ -108,6 +109,6 @@ const cr = ({
108
109
  ] });
109
110
  };
110
111
  export {
111
- cr as Select,
112
- cr as default
112
+ ur as Select,
113
+ ur as default
113
114
  };
@@ -2,7 +2,7 @@ import { jsxs as y, jsx as e } from "react/jsx-runtime";
2
2
  import { useRef as k, useState as s, useEffect as H } from "react";
3
3
  import R from "../label/Label.js";
4
4
  import { Menu as N } from "../../ui/menu/Menu.js";
5
- import '../../../assets/Content.css';import '../../../assets/MainMenu.css';import '../../../assets/Header.css';import '../../../assets/Editable.css';import '../../../assets/Toolbar.css';import '../../../assets/Sidebar.css';import '../../../assets/Scroll.css';import '../../../assets/Message.css';import '../../../assets/Modal.css';import '../../../assets/Overlay.css';import '../../../assets/Panel.css';import '../../../assets/Block.css';import '../../../assets/RadioLabel.css';import '../../../assets/Input.css';import '../../../assets/Files.css';import '../../../assets/Fieldset.css';import '../../../assets/RequiredMark.css';import '../../../assets/FormCol.css';import '../../../assets/FormRow.css';import '../../../assets/Button.css';import '../../../assets/DatePicker.css';import '../../../assets/TelefragLogo.css';import '../../../assets/TelefragSymbol.css';import '../../../assets/Popup.css';import '../../../assets/PageHeader.css';/* empty css */
5
+ import '../../../assets/Content.css';import '../../../assets/MainMenu.css';import '../../../assets/Header.css';import '../../../assets/Expandable.css';import '../../../assets/Editable.css';import '../../../assets/Toolbar.css';import '../../../assets/Sidebar.css';import '../../../assets/Scroll.css';import '../../../assets/Message.css';import '../../../assets/Modal.css';import '../../../assets/Overlay.css';import '../../../assets/Panel.css';import '../../../assets/Block.css';import '../../../assets/RadioLabel.css';import '../../../assets/Input.css';import '../../../assets/Files.css';import '../../../assets/Fieldset.css';import '../../../assets/RequiredMark.css';import '../../../assets/FormCol.css';import '../../../assets/FormRow.css';import '../../../assets/Button.css';import '../../../assets/DatePicker.css';import '../../../assets/TelefragLogo.css';import '../../../assets/TelefragSymbol.css';import '../../../assets/Popup.css';import '../../../assets/PageHeader.css';/* empty css */
6
6
  import "react-children-utilities";
7
7
  import "react-transition-group";
8
8
  import "react-dom";
@@ -28,12 +28,13 @@ import O from "../../icons/Check.js";
28
28
  /* empty css */
29
29
  /* empty css */
30
30
  /* empty css */
31
+ /* empty css */
31
32
  /* empty css */
32
33
  /* empty css */
33
34
  /* empty css */
34
- const hr = ({
35
+ const vr = ({
35
36
  id: d,
36
- value: m,
37
+ value: l,
37
38
  step: x = 1,
38
39
  onChange: o,
39
40
  label: g,
@@ -42,13 +43,13 @@ const hr = ({
42
43
  required: $ = !1,
43
44
  disabled: p = !1
44
45
  }) => {
45
- const a = k(null), c = k(null), [n, C] = s(""), [l, I] = s(""), [j, w] = s([]), [z, E] = s([]), [S, u] = s(!1), [T, f] = s(!1);
46
+ const a = k(null), c = k(null), [n, C] = s(""), [m, I] = s(""), [j, w] = s([]), [z, E] = s([]), [S, u] = s(!1), [T, f] = s(!1);
46
47
  H(() => {
47
- let [r, t] = m.split(":");
48
+ let [r, t] = l.split(":");
48
49
  r = parseInt(r), t = parseInt(t), (isNaN(r) || r < 0 || r > 23) && (r = 0), (isNaN(t) || t < 0 || t > 59) && (t = 0), r = `0${r}`.slice(-2), t = `0${t}`.slice(-2), C(r), I(t);
49
50
  const i = `${r}:${t}`;
50
- i !== m && o && o(i);
51
- }, [m, o]), H(() => {
51
+ i !== l && o && o(i);
52
+ }, [l, o]), H(() => {
52
53
  const r = [], t = [];
53
54
  for (let i = 0; i < 24; i++)
54
55
  r.push(`0${i}`.slice(-2));
@@ -56,14 +57,14 @@ const hr = ({
56
57
  t.push(`0${i}`.slice(-2));
57
58
  w(r), E(t);
58
59
  }, [x]);
59
- const h = () => !!($ && (!n || !l)), v = () => {
60
+ const h = () => !!($ && (!n || !m)), v = () => {
60
61
  if (h()) return {
61
62
  caretColor: "var(--alxgrn-input-border-error)",
62
63
  borderColor: "var(--alxgrn-input-border-error)",
63
64
  backgroundColor: "var(--alxgrn-input-bg-error)"
64
65
  };
65
66
  }, F = (r) => {
66
- u(!1), o && o(`${r.text ?? ""}:${l}`);
67
+ u(!1), o && o(`${r.text ?? ""}:${m}`);
67
68
  }, L = (r) => {
68
69
  f(!1), o && o(`${n}:${r.text ?? ""}`);
69
70
  };
@@ -98,7 +99,7 @@ const hr = ({
98
99
  id: `${d}-min`,
99
100
  ref: c,
100
101
  type: "text",
101
- value: l,
102
+ value: m,
102
103
  style: v(),
103
104
  disabled: !!p,
104
105
  onClick: () => f(!0),
@@ -130,7 +131,7 @@ const hr = ({
130
131
  onClose: () => f(!1),
131
132
  horizontal: "inner-right",
132
133
  margin: "var(--alxgrn-unit-small)",
133
- items: z.map((r) => ({ id: r, text: r, icon: r === l ? /* @__PURE__ */ e(O, {}) : /* @__PURE__ */ e("div", { className: "empty" }) })),
134
+ items: z.map((r) => ({ id: r, text: r, icon: r === m ? /* @__PURE__ */ e(O, {}) : /* @__PURE__ */ e("div", { className: "empty" }) })),
134
135
  onClick: L,
135
136
  maxHeight: "auto",
136
137
  width: "auto"
@@ -139,5 +140,5 @@ const hr = ({
139
140
  ] });
140
141
  };
141
142
  export {
142
- hr as default
143
+ vr as default
143
144
  };
@@ -2,7 +2,7 @@ import { jsxs as f, jsx as o } from "react/jsx-runtime";
2
2
  import { useState as n } from "react";
3
3
  import l from "./Header.js";
4
4
  import u from "./Content.js";
5
- import '../../assets/Editable.css';import '../../assets/Toolbar.css';import '../../assets/Scroll.css';import '../../assets/Message.css';import '../../assets/Modal.css';import '../../assets/Overlay.css';import '../../assets/Panel.css';import '../../assets/Block.css';import '../../assets/RadioLabel.css';import '../../assets/Input.css';import '../../assets/Files.css';import '../../assets/Fieldset.css';import '../../assets/Menu.css';import '../../assets/FormCol.css';import '../../assets/FormRow.css';import '../../assets/Button.css';import '../../assets/DatePicker.css';import '../../assets/Label.css';import '../../assets/RequiredMark.css';import '../../assets/TelefragLogo.css';import '../../assets/TelefragSymbol.css';import '../../assets/Popup.css';import '../../assets/PageHeader.css';/* empty css */
5
+ import '../../assets/Expandable.css';import '../../assets/Editable.css';import '../../assets/Toolbar.css';import '../../assets/Scroll.css';import '../../assets/Message.css';import '../../assets/Modal.css';import '../../assets/Overlay.css';import '../../assets/Panel.css';import '../../assets/Block.css';import '../../assets/RadioLabel.css';import '../../assets/Input.css';import '../../assets/Files.css';import '../../assets/Fieldset.css';import '../../assets/Menu.css';import '../../assets/FormCol.css';import '../../assets/FormRow.css';import '../../assets/Button.css';import '../../assets/DatePicker.css';import '../../assets/Label.css';import '../../assets/RequiredMark.css';import '../../assets/TelefragLogo.css';import '../../assets/TelefragSymbol.css';import '../../assets/Popup.css';import '../../assets/PageHeader.css';/* empty css */
6
6
  import "react-children-utilities";
7
7
  import "react-transition-group";
8
8
  import "react-dom";
@@ -29,8 +29,9 @@ import "react-dom";
29
29
  import { Sidebar as d } from "../ui/sidebar/Sidebar.js";
30
30
  /* empty css */
31
31
  /* empty css */
32
+ /* empty css */
32
33
  import c from "./MainMenu.js";
33
- const W = ({ children: p, mainMenu: m, userMenu: e, onLogoClick: s, onMenuClick: t }) => {
34
+ const X = ({ children: p, mainMenu: m, userMenu: e, onLogoClick: s, onMenuClick: t }) => {
34
35
  const [a, r] = n(!1);
35
36
  return /* @__PURE__ */ f("div", { className: "Layout", children: [
36
37
  /* @__PURE__ */ o(
@@ -61,5 +62,5 @@ const W = ({ children: p, mainMenu: m, userMenu: e, onLogoClick: s, onMenuClick:
61
62
  ] });
62
63
  };
63
64
  export {
64
- W as default
65
+ X as default
65
66
  };
@@ -1,5 +1,5 @@
1
1
  import { jsxs as m, jsx as r, Fragment as a } from "react/jsx-runtime";
2
- import '../../assets/Content.css';import '../../assets/MainMenu.css';import '../../assets/Header.css';import '../../assets/Editable.css';import '../../assets/Toolbar.css';import '../../assets/Scroll.css';import '../../assets/Message.css';import '../../assets/Modal.css';import '../../assets/Overlay.css';import '../../assets/Panel.css';import '../../assets/Block.css';import '../../assets/RadioLabel.css';import '../../assets/Input.css';import '../../assets/Files.css';import '../../assets/Fieldset.css';import '../../assets/Menu.css';import '../../assets/FormCol.css';import '../../assets/FormRow.css';import '../../assets/Button.css';import '../../assets/DatePicker.css';import '../../assets/Label.css';import '../../assets/RequiredMark.css';import '../../assets/TelefragLogo.css';import '../../assets/TelefragSymbol.css';import '../../assets/Popup.css';import '../../assets/PageHeader.css';/* empty css */
2
+ import '../../assets/Content.css';import '../../assets/MainMenu.css';import '../../assets/Header.css';import '../../assets/Expandable.css';import '../../assets/Editable.css';import '../../assets/Toolbar.css';import '../../assets/Scroll.css';import '../../assets/Message.css';import '../../assets/Modal.css';import '../../assets/Overlay.css';import '../../assets/Panel.css';import '../../assets/Block.css';import '../../assets/RadioLabel.css';import '../../assets/Input.css';import '../../assets/Files.css';import '../../assets/Fieldset.css';import '../../assets/Menu.css';import '../../assets/FormCol.css';import '../../assets/FormRow.css';import '../../assets/Button.css';import '../../assets/DatePicker.css';import '../../assets/Label.css';import '../../assets/RequiredMark.css';import '../../assets/TelefragLogo.css';import '../../assets/TelefragSymbol.css';import '../../assets/Popup.css';import '../../assets/PageHeader.css';/* empty css */
3
3
  import "react";
4
4
  import "react-children-utilities";
5
5
  import "react-transition-group";
@@ -27,10 +27,11 @@ import "react-dom";
27
27
  import { Sidebar as n } from "../ui/sidebar/Sidebar.js";
28
28
  /* empty css */
29
29
  /* empty css */
30
+ /* empty css */
30
31
  /* empty css */
31
32
  /* empty css */
32
33
  /* empty css */
33
- const K = ({ header: o, children: p, sidebar: i, isSidebarVisible: e = !1, onSidebarClose: t }) => /* @__PURE__ */ m("div", { className: "Page", children: [
34
+ const L = ({ header: o, children: p, sidebar: i, isSidebarVisible: e = !1, onSidebarClose: t }) => /* @__PURE__ */ m("div", { className: "Page", children: [
34
35
  o && /* @__PURE__ */ r(a, { children: o }),
35
36
  /* @__PURE__ */ m("div", { className: i ? "PageBody" : "PageBody Wide", children: [
36
37
  /* @__PURE__ */ r("div", { className: "PageContent", children: p }),
@@ -49,5 +50,5 @@ const K = ({ header: o, children: p, sidebar: i, isSidebarVisible: e = !1, onSid
49
50
  )
50
51
  ] });
51
52
  export {
52
- K as default
53
+ L as default
53
54
  };
@@ -1,6 +1,6 @@
1
1
  import { jsxs as a, jsx as e } from "react/jsx-runtime";
2
2
  import f from "../icons/Image.js";
3
- import '../../assets/Content.css';import '../../assets/MainMenu.css';import '../../assets/Header.css';import '../../assets/Editable.css';import '../../assets/Sidebar.css';import '../../assets/Scroll.css';import '../../assets/Message.css';import '../../assets/Modal.css';import '../../assets/Overlay.css';import '../../assets/Panel.css';import '../../assets/Block.css';import '../../assets/RadioLabel.css';import '../../assets/Input.css';import '../../assets/Files.css';import '../../assets/Fieldset.css';import '../../assets/Menu.css';import '../../assets/FormCol.css';import '../../assets/FormRow.css';import '../../assets/DatePicker.css';import '../../assets/Label.css';import '../../assets/RequiredMark.css';import '../../assets/Popup.css';import '../../assets/PageHeader.css';import '../../assets/TelefragLogo.css';import '../../assets/TelefragSymbol.css';/* empty css */
3
+ import '../../assets/Content.css';import '../../assets/MainMenu.css';import '../../assets/Header.css';import '../../assets/Expandable.css';import '../../assets/Editable.css';import '../../assets/Sidebar.css';import '../../assets/Scroll.css';import '../../assets/Message.css';import '../../assets/Modal.css';import '../../assets/Overlay.css';import '../../assets/Panel.css';import '../../assets/Block.css';import '../../assets/RadioLabel.css';import '../../assets/Input.css';import '../../assets/Files.css';import '../../assets/Fieldset.css';import '../../assets/Menu.css';import '../../assets/FormCol.css';import '../../assets/FormRow.css';import '../../assets/DatePicker.css';import '../../assets/Label.css';import '../../assets/RequiredMark.css';import '../../assets/Popup.css';import '../../assets/PageHeader.css';import '../../assets/TelefragLogo.css';import '../../assets/TelefragSymbol.css';/* empty css */
4
4
  /* empty css */
5
5
  import k from "../icons/Trash.js";
6
6
  /* empty css */
@@ -29,10 +29,11 @@ import { Button as b } from "../form/button/Button.js";
29
29
  /* empty css */
30
30
  import x from "../ui/toolbar/Toolbar.js";
31
31
  /* empty css */
32
+ /* empty css */
32
33
  /* empty css */
33
34
  /* empty css */
34
35
  /* empty css */
35
- const de = ({
36
+ const te = ({
36
37
  menu: d,
37
38
  title: C,
38
39
  subtitle: T,
@@ -106,5 +107,5 @@ const de = ({
106
107
  ] });
107
108
  };
108
109
  export {
109
- de as default
110
+ te as default
110
111
  };
@@ -0,0 +1,17 @@
1
+ import { default as React, PropsWithChildren } from 'react';
2
+ type PropsWithMaxHeight = {
3
+ maxHeight?: number;
4
+ aspectRatio?: never;
5
+ };
6
+ type PropsWithAspectRatio = {
7
+ maxHeight?: never;
8
+ aspectRatio?: '1x1' | '16x9';
9
+ };
10
+ type Props = (PropsWithAspectRatio | PropsWithMaxHeight) & {
11
+ expand?: string;
12
+ collapse?: string;
13
+ isCollapsable?: boolean;
14
+ noShadow?: boolean;
15
+ };
16
+ declare const Expandable: React.FC<PropsWithChildren<Props>>;
17
+ export default Expandable;
@@ -0,0 +1,78 @@
1
+ import { jsxs as i, jsx as a, Fragment as h } from "react/jsx-runtime";
2
+ import { useState as f, useRef as E, useCallback as C, useEffect as I } from "react";
3
+ import '../../../assets/Expandable.css';/* empty css */
4
+ const M = 50, b = 300, j = ({
5
+ children: m,
6
+ maxHeight: l,
7
+ aspectRatio: d = "1x1",
8
+ expand: H = "Показать целиком...",
9
+ collapse: g = "Свернуть...",
10
+ isCollapsable: v = !0,
11
+ noShadow: N
12
+ }) => {
13
+ var x;
14
+ const [t, u] = f(!1), [w, p] = f(!1), e = E(null), c = E(null), o = C(() => {
15
+ if (l) return Math.max(l, M);
16
+ const n = e.current;
17
+ if (!n) return b;
18
+ const r = n.clientWidth;
19
+ switch (d) {
20
+ case "1x1":
21
+ return r;
22
+ case "16x9":
23
+ return Math.ceil(r / 16 * 9);
24
+ default:
25
+ return b;
26
+ }
27
+ }, [l, d, e]);
28
+ return I(() => {
29
+ const n = e.current;
30
+ if (!n) return;
31
+ const r = o();
32
+ c.current && c.current.disconnect();
33
+ const s = new ResizeObserver(() => {
34
+ p(n.scrollHeight > r);
35
+ });
36
+ return s.observe(n), c.current = s, p(n.scrollHeight > r), () => {
37
+ s && s.disconnect();
38
+ };
39
+ }, [o]), /* @__PURE__ */ i("div", { className: "Expandable", children: [
40
+ /* @__PURE__ */ a(
41
+ "div",
42
+ {
43
+ ref: e,
44
+ className: t ? "ExpandableExpanded" : "ExpandableCollapsed",
45
+ style: { maxHeight: t ? (x = e == null ? void 0 : e.current) != null && x.scrollHeight ? e.current.scrollHeight + "px" : "none" : `${o()}px` },
46
+ children: m
47
+ }
48
+ ),
49
+ w && /* @__PURE__ */ i(h, { children: [
50
+ t && v && /* @__PURE__ */ a(
51
+ "span",
52
+ {
53
+ className: "ExpandableButton",
54
+ onClick: () => u(!1),
55
+ "aria-expanded": t,
56
+ "aria-controls": "collapsible-content",
57
+ children: g
58
+ }
59
+ ),
60
+ !t && /* @__PURE__ */ i(h, { children: [
61
+ !N && /* @__PURE__ */ a("div", { className: "ExpandableShadow" }),
62
+ /* @__PURE__ */ a(
63
+ "span",
64
+ {
65
+ className: "ExpandableButton",
66
+ onClick: () => u(!0),
67
+ "aria-expanded": t,
68
+ "aria-controls": "collapsible-content",
69
+ children: H
70
+ }
71
+ )
72
+ ] })
73
+ ] })
74
+ ] });
75
+ };
76
+ export {
77
+ j as default
78
+ };
package/dist/main.d.ts CHANGED
@@ -30,10 +30,11 @@ import { default as Scroll } from './components/ui/scroll/Scroll';
30
30
  import { default as Sidebar } from './components/ui/sidebar/Sidebar';
31
31
  import { default as Toolbar, ToolbarItem } from './components/ui/toolbar/Toolbar';
32
32
  import { default as Editable } from './components/ui/editable/Editable';
33
+ import { default as Expandable } from './components/ui/expandable/Expandable';
33
34
  import { default as Layout } from './components/layout/Layout';
34
35
  import { MainMenuItem } from './components/layout/MainMenu';
35
36
  import { default as Page } from './components/layout/Page';
36
37
  import { default as PageHeader } from './components/layout/PageHeader';
37
38
  import * as Icons from './components/icons';
38
- export { Form, Date, Time, Files, Image, Input, Label, RadioList, Button, Select, Hidden, Checkbox, CheckboxList, Fieldset, FormRow, FormCol, DatePicker, Menu, Block, Panel, Modal, Overlay, Popup, Portal, Message, Alert, Confirm, Prompt, Scroll, Sidebar, Toolbar, Editable, Layout, Page, PageHeader, Icons, };
39
+ export { Form, Date, Time, Files, Image, Input, Label, RadioList, Button, Select, Hidden, Checkbox, CheckboxList, Fieldset, FormRow, FormCol, DatePicker, Menu, Block, Panel, Modal, Overlay, Popup, Portal, Message, Alert, Confirm, Prompt, Scroll, Sidebar, Toolbar, Editable, Expandable, Layout, Page, PageHeader, Icons, };
39
40
  export type { FormData, MainMenuItem, MenuItem, ModalProps, ButtonType, CheckboxListOption, RadioListOption, RadioListValue, SelectOption, ToolbarItem, };
package/dist/main.js CHANGED
@@ -5,17 +5,17 @@ import { default as p } from "./components/form/form/FormCol.js";
5
5
  import { default as x } from "./components/form/date/Date.js";
6
6
  import { default as s } from "./components/form/date/DatePicker.js";
7
7
  import { default as i } from "./components/form/time/Time.js";
8
- import { Files as n } from "./components/form/files/Files.js";
9
- import { Image as b } from "./components/form/image/Image.js";
8
+ import { Files as b } from "./components/form/files/Files.js";
9
+ import { Image as P } from "./components/form/image/Image.js";
10
10
  import { default as g } from "./components/form/input/Input.js";
11
11
  import { default as C } from "./components/form/label/Label.js";
12
12
  import { RadioList as I } from "./components/form/radio/RadioList.js";
13
13
  import { Button as S } from "./components/form/button/Button.js";
14
14
  import { Select as y } from "./components/form/select/Select.js";
15
15
  import { default as D } from "./components/form/hidden/Hidden.js";
16
- import { default as R } from "./components/form/checkbox/Checkbox.js";
17
- import { CheckboxList as v } from "./components/form/checkbox/CheckboxList.js";
18
- import { default as A } from "./components/form/fieldset/Fieldset.js";
16
+ import { default as H } from "./components/form/checkbox/Checkbox.js";
17
+ import { CheckboxList as T } from "./components/form/checkbox/CheckboxList.js";
18
+ import { default as w } from "./components/form/fieldset/Fieldset.js";
19
19
  import { Menu as O } from "./components/ui/menu/Menu.js";
20
20
  import { default as q } from "./components/ui/block/Block.js";
21
21
  import { default as G } from "./components/ui/panel/Panel.js";
@@ -25,34 +25,36 @@ import { Popup as V } from "./components/ui/popup/Popup.js";
25
25
  import { default as X } from "./components/ui/portal/Portal.js";
26
26
  import { default as Z } from "./components/ui/message/Message.js";
27
27
  import { default as $ } from "./components/ui/alert/Alert.js";
28
- import { default as ro } from "./components/ui/confirm/Confirm.js";
28
+ import { default as eo } from "./components/ui/confirm/Confirm.js";
29
29
  import { default as to } from "./components/ui/prompt/Prompt.js";
30
30
  import { default as fo } from "./components/ui/scroll/Scroll.js";
31
31
  import { Sidebar as po } from "./components/ui/sidebar/Sidebar.js";
32
32
  import { default as xo } from "./components/ui/toolbar/Toolbar.js";
33
33
  import { default as uo } from "./components/ui/editable/Editable.js";
34
+ import { default as no } from "./components/ui/expandable/Expandable.js";
34
35
  import { default as co } from "./components/layout/Layout.js";
35
- import { default as Po } from "./components/layout/Page.js";
36
- import { default as Fo } from "./components/layout/PageHeader.js";
37
- import { i as ko } from "./index-D12KbdVs.js";
36
+ import { default as Fo } from "./components/layout/Page.js";
37
+ import { default as ko } from "./components/layout/PageHeader.js";
38
+ import { i as Lo } from "./index-D12KbdVs.js";
38
39
  export {
39
40
  $ as Alert,
40
41
  q as Block,
41
42
  S as Button,
42
- R as Checkbox,
43
- v as CheckboxList,
44
- ro as Confirm,
43
+ H as Checkbox,
44
+ T as CheckboxList,
45
+ eo as Confirm,
45
46
  x as Date,
46
47
  s as DatePicker,
47
48
  uo as Editable,
48
- A as Fieldset,
49
- n as Files,
49
+ no as Expandable,
50
+ w as Fieldset,
51
+ b as Files,
50
52
  t as Form,
51
53
  p as FormCol,
52
54
  f as FormRow,
53
55
  D as Hidden,
54
- ko as Icons,
55
- b as Image,
56
+ Lo as Icons,
57
+ P as Image,
56
58
  g as Input,
57
59
  C as Label,
58
60
  co as Layout,
@@ -60,8 +62,8 @@ export {
60
62
  Z as Message,
61
63
  K as Modal,
62
64
  Q as Overlay,
63
- Po as Page,
64
- Fo as PageHeader,
65
+ Fo as Page,
66
+ ko as PageHeader,
65
67
  G as Panel,
66
68
  V as Popup,
67
69
  X as Portal,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@alxgrn/telefrag-ui",
3
3
  "description": "UI library for The Daily Telefrag project",
4
- "version": "0.0.62",
4
+ "version": "0.0.64",
5
5
  "private": false,
6
6
  "author": "Alexander Fedorov <alex@molner.ru>",
7
7
  "license": "Apache-2.0",