@stenajs-webui/core 19.0.0-next.21 → 19.0.0-next.23

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/index.es.js CHANGED
@@ -1,14 +1,14 @@
1
1
  (function(){"use strict";try{var i=document.createElement("style");i.appendChild(document.createTextNode("._text_1iisw_1{--swui-text-color: var(--swui-text-primary-color);--swui-text-color-caption: var(--lhds-color-ui-600);--swui-text-color-overline: var(--lhds-color-ui-600);--swui-text-font-family: var(--swui-font-primary);--swui-text-font-weight: var(--swui-font-weight-text);--current-color: var(--swui-text-color);--current-font-size: var(--swui-font-size-medium);--current-line-height: var(--swui-line-height-medium);--current-font-weight: var(--swui-text-font-weight);--current-letter-spacing: var(--swui-text-letter-spacing);font-size:var(--current-font-size);line-height:var(--current-line-height);color:var(--current-color);letter-spacing:var(--current-letter-spacing);font-family:var(--swui-text-font-family);font-weight:var(--current-font-weight)}._text_1iisw_1._bold_1iisw_27{--current-font-weight: var(--swui-font-weight-text-bold)}._text_1iisw_1._caption_1iisw_31{--current-font-size: var(--swui-font-size-small);--current-line-height: var(--swui-line-height-small);--current-color: var(--swui-text-color-caption);--current-letter-spacing: 0;font-style:italic}._text_1iisw_1._overline_1iisw_39{--current-font-size: var(--swui-font-size-smaller);--current-line-height: var(--swui-line-height-smaller);--current-color: var(--swui-text-color-overline);--current-font-weight: var(--swui-font-weight-text-bold);--current-letter-spacing: .1rem;text-transform:uppercase}._text_1iisw_1._large_1iisw_48{--current-font-size: var(--swui-font-size-large);--current-line-height: var(--swui-line-height-large)}._text_1iisw_1._medium_1iisw_53{--current-font-size: var(--swui-font-size-medium);--current-line-height: var(--swui-line-height-medium)}._text_1iisw_1._small_1iisw_58{--current-font-size: var(--swui-font-size-small);--current-line-height: var(--swui-line-height-small)}._text_1iisw_1._smaller_1iisw_63{--current-font-size: var(--swui-font-size-smaller);--current-line-height: var(--swui-line-height-smaller)}._heading_xn9xj_1{--swui-heading-text-color: var(--swui-text-primary-color);--swui-heading-font-family: var(--swui-font-primary);--swui-heading-font-weight: var(--swui-font-weight-text-bold);--swui-heading-line-height: var(--swui-line-height);font-size:var(--swui-heading-font-size);color:var(--swui-heading-text-color);letter-spacing:0;margin:0;line-height:var(--swui-heading-line-height);font-family:var(--swui-heading-font-family);font-weight:var(--swui-heading-font-weight)}._heading_xn9xj_1._h1_xn9xj_15{--swui-heading-font-size: 2.8rem}._heading_xn9xj_1._h2_xn9xj_19{--swui-heading-font-size: 2.4rem}._heading_xn9xj_1._h3_xn9xj_23{--swui-heading-font-size: 2rem}._heading_xn9xj_1._h4_xn9xj_27{--swui-heading-font-size: 1.8rem}._heading_xn9xj_1._h5_xn9xj_31{--swui-heading-font-size: 1.6rem}._heading_xn9xj_1._h6_xn9xj_35{--swui-heading-font-size: 1.4rem}")),document.head.appendChild(i)}catch(e){console.error("vite-plugin-css-injected-by-js",e)}})();
2
- import "@stenajs-webui/theme";
3
- import { jsx as d, Fragment as I } from "react/jsx-runtime";
2
+ import { cssColor as L } from "@stenajs-webui/theme";
3
+ import { jsx as a, Fragment as I } from "react/jsx-runtime";
4
4
  import $ from "@emotion/styled";
5
- import { forwardRef as f, useState as p, useCallback as h, useLayoutEffect as L, useRef as w, useEffect as m, useMemo as z } from "react";
6
- import F from "@emotion/is-prop-valid";
7
- import { system as R, background as j, border as H, borderRight as N, borderLeft as P, borderTop as V, borderBottom as A, borderColor as U, borderRadius as q, borderStyle as W, borderWidth as B, boxShadow as K, flexbox as G, overflow as J, position as Q, layout as X, zIndex as Y, left as Z, right as ee, top as te, bottom as ne } from "styled-system";
5
+ import { forwardRef as f, useState as p, useCallback as h, useLayoutEffect as z, useRef as w, useEffect as m, useMemo as F } from "react";
6
+ import R from "@emotion/is-prop-valid";
7
+ import { system as j, background as H, border as N, borderRight as P, borderLeft as V, borderTop as A, borderBottom as U, borderColor as q, borderRadius as W, borderStyle as B, borderWidth as K, boxShadow as G, flexbox as J, overflow as Q, position as X, layout as Y, zIndex as Z, left as ee, right as te, top as ne, bottom as re } from "styled-system";
8
8
  import T from "classnames";
9
- import * as re from "react-dom";
10
- import { debounce as oe, pickBy as se } from "lodash";
11
- const ce = $.hr`
9
+ import * as oe from "react-dom";
10
+ import { debounce as se, pickBy as ce } from "lodash";
11
+ const ue = $.hr`
12
12
  display: flex;
13
13
  border: 0;
14
14
  margin: 0;
@@ -16,14 +16,14 @@ const ce = $.hr`
16
16
  background-color: ${(e) => e.color};
17
17
  height: ${(e) => e.vertical ? e.size || "100%" : e.width || "1px"};
18
18
  width: ${(e) => e.vertical ? e.width || "1px" : e.size || "100%"};
19
- `, Be = f(
19
+ `, Ke = f(
20
20
  ({
21
- color: e = "var(--lhds-color-ui-300)",
21
+ color: e = L("--lhds-color-ui-300"),
22
22
  size: t = "100%",
23
23
  width: n = "1px",
24
24
  vertical: r = !1
25
- }, o) => /* @__PURE__ */ d(
26
- ce,
25
+ }, o) => /* @__PURE__ */ a(
26
+ ue,
27
27
  {
28
28
  color: e,
29
29
  size: t,
@@ -32,7 +32,7 @@ const ce = $.hr`
32
32
  ref: o
33
33
  }
34
34
  )
35
- ), ue = $.button`
35
+ ), ie = $.button`
36
36
  display: inline-block;
37
37
  user-select: none;
38
38
  border: 0;
@@ -55,7 +55,7 @@ const ce = $.hr`
55
55
  ${({ width: e }) => e ? `width: ${e};` : ""}
56
56
  ${({ height: e }) => e ? `height: ${e};` : ""}
57
57
  ${({ borderRadius: e }) => e ? `border-radius: ${e};` : ""}
58
- `, Ke = f(
58
+ `, Ge = f(
59
59
  ({
60
60
  disableFocusHighlight: e,
61
61
  onClick: t,
@@ -66,13 +66,13 @@ const ce = $.hr`
66
66
  opacityOnHover: c,
67
67
  disabled: i,
68
68
  children: u,
69
- background: a = "transparent",
69
+ background: d = "transparent",
70
70
  hoverBackground: l,
71
71
  focusBackground: g,
72
72
  type: M = "button",
73
73
  ...O
74
- }, k) => /* @__PURE__ */ d(
75
- ue,
74
+ }, k) => /* @__PURE__ */ a(
75
+ ie,
76
76
  {
77
77
  opacityOnHover: c,
78
78
  title: r,
@@ -83,7 +83,7 @@ const ce = $.hr`
83
83
  disableFocusHighlight: e,
84
84
  pointer: !!(t || n) && !s,
85
85
  ref: k,
86
- background: a,
86
+ background: d,
87
87
  hoverBackground: l,
88
88
  focusBackground: g,
89
89
  type: M,
@@ -91,7 +91,7 @@ const ce = $.hr`
91
91
  children: u
92
92
  }
93
93
  )
94
- ), _ = (e) => e == null ? 0 : typeof e == "boolean" ? e ? 1 : 0 : e, ie = {
94
+ ), _ = (e) => e == null ? 0 : typeof e == "boolean" ? e ? 1 : 0 : e, de = {
95
95
  box: "var(--swui-shadow-box)",
96
96
  popover: "var(--swui-shadow-popover)",
97
97
  modal: "var(--swui-shadow-modal)",
@@ -104,7 +104,7 @@ const ce = $.hr`
104
104
  "height",
105
105
  "overflow",
106
106
  "display"
107
- ], de = (e) => ae.includes(e), le = R({
107
+ ], le = (e) => ae.includes(e), me = j({
108
108
  row: {
109
109
  property: "flexDirection",
110
110
  transform: (e) => e ? "row" : "column"
@@ -125,11 +125,11 @@ const ce = $.hr`
125
125
  property: "boxShadow",
126
126
  transform: (e) => {
127
127
  var t;
128
- return (t = ie[e]) != null ? t : e;
128
+ return (t = de[e]) != null ? t : e;
129
129
  }
130
130
  }
131
131
  }), b = $("div", {
132
- shouldForwardProp: (e) => typeof e == "string" ? de(e) ? !1 : F(e) : !1
132
+ shouldForwardProp: (e) => typeof e == "string" ? le(e) ? !1 : R(e) : !1
133
133
  })`
134
134
  --current-spacing: 0;
135
135
  --current-indent: 0;
@@ -137,8 +137,7 @@ const ce = $.hr`
137
137
  box-sizing: border-box;
138
138
  display: flex;
139
139
  flex-direction: column;
140
- ${le};
141
- ${j};
140
+ ${me};
142
141
  ${H};
143
142
  ${N};
144
143
  ${P};
@@ -158,6 +157,7 @@ const ce = $.hr`
158
157
  ${ee};
159
158
  ${te};
160
159
  ${ne};
160
+ ${re};
161
161
 
162
162
  gap: calc(var(--current-gap) * var(--swui-metrics-space));
163
163
 
@@ -175,9 +175,9 @@ const ce = $.hr`
175
175
  ${({ focusWithinBackground: e }) => e ? `background: ${e};` : ""}
176
176
  ${({ focusWithinBorder: e }) => e ? `border: ${e};` : ""}
177
177
  }
178
- `, Ge = f(function(t, n) {
179
- return /* @__PURE__ */ d(b, { ref: n, ...t });
180
- }), me = (e) => {
178
+ `, Je = f(function(t, n) {
179
+ return /* @__PURE__ */ a(b, { ref: n, ...t });
180
+ }), he = (e) => {
181
181
  const { x: t, y: n, width: r, height: o, bottom: s, top: c, left: i, right: u } = e.getBoundingClientRect();
182
182
  return {
183
183
  width: r,
@@ -189,47 +189,47 @@ const ce = $.hr`
189
189
  right: u,
190
190
  bottom: s
191
191
  };
192
- }, he = (e, t) => e.x === t.x && e.y === t.y && e.width === t.width && e.height === t.height && e.bottom === t.bottom && e.top === t.top && e.left === t.left && e.right === t.right, fe = (e, t) => {
192
+ }, fe = (e, t) => e.x === t.x && e.y === t.y && e.width === t.width && e.height === t.height && e.bottom === t.bottom && e.top === t.top && e.left === t.left && e.right === t.right, pe = (e, t) => {
193
193
  const [n, r] = p(), o = h(() => {
194
194
  window.requestAnimationFrame(() => {
195
195
  if (e.current) {
196
- const s = me(e.current);
197
- (!n || !he(n, s)) && t && t(s), r(s);
196
+ const s = he(e.current);
197
+ (!n || !fe(n, s)) && t && t(s), r(s);
198
198
  }
199
199
  });
200
200
  }, [e, n, r, t]);
201
- return L(() => {
201
+ return z(() => {
202
202
  o();
203
203
  }, [o]), {
204
204
  dimensions: n
205
205
  };
206
- }, Je = f(
206
+ }, Qe = f(
207
207
  function({ onResize: t, ...n }, r) {
208
208
  const o = w(null), s = r != null ? r : o;
209
- return fe(s, t), /* @__PURE__ */ d(b, { ...n, ref: r });
209
+ return pe(s, t), /* @__PURE__ */ a(b, { ...n, ref: r });
210
210
  }
211
- ), Qe = f(function(t, n) {
212
- return /* @__PURE__ */ d(b, { row: !0, ref: n, ...t });
213
- }), Xe = f(function({ num: t = 1, ...n }, r) {
214
- return /* @__PURE__ */ d(b, { indent: t, ref: r, ...n });
215
- }), Ye = f(
211
+ ), Xe = f(function(t, n) {
212
+ return /* @__PURE__ */ a(b, { row: !0, ref: n, ...t });
213
+ }), Ye = f(function({ num: t = 1, ...n }, r) {
214
+ return /* @__PURE__ */ a(b, { indent: t, ref: r, ...n });
215
+ }), Ze = f(
216
216
  function({ num: t = 1, ...n }, r) {
217
- return /* @__PURE__ */ d(b, { spacing: t, ref: r, ...n });
217
+ return /* @__PURE__ */ a(b, { spacing: t, ref: r, ...n });
218
218
  }
219
- ), pe = $.div`
219
+ ), we = $.div`
220
220
  --current-size: 1;
221
221
  flex: none;
222
222
  width: calc(var(--current-size) * var(--swui-metrics-space));
223
223
  height: calc(var(--current-size) * var(--swui-metrics-space));
224
- `, Ze = ({
224
+ `, et = ({
225
225
  half: e = !1,
226
226
  horizontal: t = !1,
227
227
  num: n = 1,
228
228
  vertical: r = !1
229
229
  }) => {
230
230
  const o = n * (e ? 0.5 : 1);
231
- return /* @__PURE__ */ d(
232
- pe,
231
+ return /* @__PURE__ */ a(
232
+ we,
233
233
  {
234
234
  style: {
235
235
  ["--current-size"]: o,
@@ -238,16 +238,16 @@ const ce = $.hr`
238
238
  }
239
239
  }
240
240
  );
241
- }, et = ({ children: e, nest: t, render: n }) => t ? /* @__PURE__ */ d(I, { children: n(e) }) : /* @__PURE__ */ d(I, { children: e }), we = "_text_1iisw_1", ve = "_standard_1iisw_24", ge = "_bold_1iisw_27", be = "_caption_1iisw_31", xe = "_overline_1iisw_39", $e = "_large_1iisw_48", _e = "_medium_1iisw_53", ye = "_small_1iisw_58", Ee = "_smaller_1iisw_63", y = {
242
- text: we,
243
- standard: ve,
244
- bold: ge,
245
- caption: be,
246
- overline: xe,
247
- large: $e,
248
- medium: _e,
249
- small: ye,
250
- smaller: Ee
241
+ }, tt = ({ children: e, nest: t, render: n }) => t ? /* @__PURE__ */ a(I, { children: n(e) }) : /* @__PURE__ */ a(I, { children: e }), ve = "_text_1iisw_1", ge = "_standard_1iisw_24", be = "_bold_1iisw_27", xe = "_caption_1iisw_31", $e = "_overline_1iisw_39", _e = "_large_1iisw_48", ye = "_medium_1iisw_53", Ee = "_small_1iisw_58", Ie = "_smaller_1iisw_63", y = {
242
+ text: ve,
243
+ standard: ge,
244
+ bold: be,
245
+ caption: xe,
246
+ overline: $e,
247
+ large: _e,
248
+ medium: ye,
249
+ small: Ee,
250
+ smaller: Ie
251
251
  }, x = f(
252
252
  ({
253
253
  children: e,
@@ -259,26 +259,26 @@ const ce = $.hr`
259
259
  whiteSpace: c,
260
260
  wordBreak: i,
261
261
  style: u,
262
- ...a
263
- }, l) => /* @__PURE__ */ d(
262
+ ...d
263
+ }, l) => /* @__PURE__ */ a(
264
264
  "span",
265
265
  {
266
266
  className: T(y.text, y[t], y[n], r),
267
267
  ref: l,
268
268
  style: { color: o, userSelect: s, whiteSpace: c, wordBreak: i, ...u },
269
- ...a,
269
+ ...d,
270
270
  children: e
271
271
  }
272
272
  )
273
- ), tt = x, nt = (e) => /* @__PURE__ */ d(x, { size: "small", ...e }), rt = (e) => /* @__PURE__ */ d(x, { size: "smaller", ...e }), ot = (e) => /* @__PURE__ */ d(x, { size: "medium", ...e }), st = (e) => /* @__PURE__ */ d(x, { size: "large", ...e }), Ie = "_heading_xn9xj_1", Se = "_h1_xn9xj_15", Ce = "_h2_xn9xj_19", De = "_h3_xn9xj_23", Te = "_h4_xn9xj_27", Me = "_h5_xn9xj_31", Oe = "_h6_xn9xj_35", S = {
274
- heading: Ie,
275
- h1: Se,
276
- h2: Ce,
277
- h3: De,
278
- h4: Te,
279
- h5: Me,
280
- h6: Oe
281
- }, ke = f(
273
+ ), nt = x, rt = (e) => /* @__PURE__ */ a(x, { size: "small", ...e }), ot = (e) => /* @__PURE__ */ a(x, { size: "smaller", ...e }), st = (e) => /* @__PURE__ */ a(x, { size: "medium", ...e }), ct = (e) => /* @__PURE__ */ a(x, { size: "large", ...e }), Se = "_heading_xn9xj_1", Ce = "_h1_xn9xj_15", De = "_h2_xn9xj_19", Te = "_h3_xn9xj_23", Me = "_h4_xn9xj_27", Oe = "_h5_xn9xj_31", ke = "_h6_xn9xj_35", S = {
274
+ heading: Se,
275
+ h1: Ce,
276
+ h2: De,
277
+ h3: Te,
278
+ h4: Me,
279
+ h5: Oe,
280
+ h6: ke
281
+ }, Le = f(
282
282
  ({
283
283
  variant: e = "h3",
284
284
  className: t,
@@ -289,41 +289,41 @@ const ce = $.hr`
289
289
  children: c,
290
290
  as: i,
291
291
  ...u
292
- }, a) => {
292
+ }, d) => {
293
293
  const l = i != null ? i : e;
294
- return /* @__PURE__ */ d(
294
+ return /* @__PURE__ */ a(
295
295
  l,
296
296
  {
297
297
  className: T(S.heading, S[e], t),
298
298
  style: { color: n, whiteSpace: r, wordBreak: o, ...s },
299
- ref: a,
299
+ ref: d,
300
300
  ...u,
301
301
  children: c
302
302
  }
303
303
  );
304
304
  }
305
- ), ct = (e) => /* @__PURE__ */ d(ke, { variant: "h2", ...e }), Le = (e, t) => e === t, ut = (e, t, n = Le) => {
305
+ ), ut = (e) => /* @__PURE__ */ a(Le, { variant: "h2", ...e }), ze = (e, t) => e === t, it = (e, t, n = ze) => {
306
306
  const r = h(
307
307
  (u) => {
308
- e.some((a) => n(a, u)) || t([...e, u]);
308
+ e.some((d) => n(d, u)) || t([...e, u]);
309
309
  },
310
310
  [e, t, n]
311
311
  ), o = h(
312
312
  (u) => {
313
313
  t(
314
- u.reduce((a, l) => a.some((g) => n(g, l)) ? a : [...a, l], e)
314
+ u.reduce((d, l) => d.some((g) => n(g, l)) ? d : [...d, l], e)
315
315
  );
316
316
  },
317
317
  [e, t, n]
318
318
  ), s = h(
319
319
  (u) => {
320
- const a = e.findIndex((l) => n(l, u));
321
- a >= 0 && t(e.filter((l, g) => g !== a));
320
+ const d = e.findIndex((l) => n(l, u));
321
+ d >= 0 && t(e.filter((l, g) => g !== d));
322
322
  },
323
323
  [e, t, n]
324
324
  ), c = h(
325
325
  (u) => {
326
- t(e.filter((a) => !u.some((l) => n(l, a))));
326
+ t(e.filter((d) => !u.some((l) => n(l, d))));
327
327
  },
328
328
  [e, t, n]
329
329
  ), i = h(
@@ -348,7 +348,7 @@ const ce = $.hr`
348
348
  n((c) => !c);
349
349
  }, [n]);
350
350
  return [t, r, o, s];
351
- }, it = (e, t) => {
351
+ }, dt = (e, t) => {
352
352
  const [n, r] = p(e);
353
353
  return m(() => {
354
354
  const o = setTimeout(() => {
@@ -370,8 +370,8 @@ const ce = $.hr`
370
370
  };
371
371
  }, [e, t]), n;
372
372
  };
373
- let ze = 0;
374
- const C = (e) => `webui-${e ? e + "-" : ""}${++ze}`, dt = (e) => {
373
+ let Fe = 0;
374
+ const C = (e) => `webui-${e ? e + "-" : ""}${++Fe}`, lt = (e) => {
375
375
  const [t, n] = p(() => C(e));
376
376
  return m(() => n(C(e)), [e]), t;
377
377
  }, v = (e, t, n) => {
@@ -392,10 +392,10 @@ const C = (e) => `webui-${e ? e + "-" : ""}${++ze}`, dt = (e) => {
392
392
  c && c.removeEventListener(t, s);
393
393
  };
394
394
  }, [t, e]);
395
- }, lt = (e) => {
395
+ }, mt = (e) => {
396
396
  const [t, n, r] = E(!1);
397
397
  m(() => {
398
- document.activeElement === re.findDOMNode(e.current) ? n() : r();
398
+ document.activeElement === oe.findDOMNode(e.current) ? n() : r();
399
399
  }, [e, r, n]), v(e, "focus", n), v(e, "blur", r);
400
400
  const o = h(() => {
401
401
  e.current && e.current.focus();
@@ -403,13 +403,13 @@ const C = (e) => `webui-${e ? e + "-" : ""}${++ze}`, dt = (e) => {
403
403
  e.current && e.current.blur();
404
404
  }, [e]);
405
405
  return { isInFocus: t, focus: o, blur: s };
406
- }, mt = (e) => {
406
+ }, ht = (e) => {
407
407
  const [t, n, r] = E(!1);
408
408
  return v(e, "mouseover", n), v(e, "mouseout", r), t;
409
- }, ht = (e) => {
409
+ }, ft = (e) => {
410
410
  const [t, n, r] = E(!1);
411
411
  return v(e, "mouseenter", n), v(e, "mouseleave", r), t;
412
- }, ft = (e, t) => {
412
+ }, pt = (e, t) => {
413
413
  const n = w(() => {
414
414
  });
415
415
  m(() => {
@@ -422,7 +422,7 @@ const C = (e) => `webui-${e ? e + "-" : ""}${++ze}`, dt = (e) => {
422
422
  document.removeEventListener("mousedown", r), document.removeEventListener("touchstart", r);
423
423
  };
424
424
  }, [...e]);
425
- }, pt = (e, t, n) => {
425
+ }, wt = (e, t, n) => {
426
426
  const r = w(() => {
427
427
  });
428
428
  m(() => {
@@ -435,21 +435,21 @@ const C = (e) => `webui-${e ? e + "-" : ""}${++ze}`, dt = (e) => {
435
435
  document.removeEventListener("mousedown", o, n), document.removeEventListener("touchstart", o, n);
436
436
  };
437
437
  }, [e, n]);
438
- }, D = ["mousemove", "mousedown", "keydown", "touchstart", "scroll"], wt = (e, t) => {
438
+ }, D = ["mousemove", "mousedown", "keydown", "touchstart", "scroll"], vt = (e, t) => {
439
439
  const n = w(() => {
440
440
  });
441
441
  m(() => {
442
442
  n.current = e;
443
443
  }, [e]), m(() => {
444
- const r = oe(n.current, t);
444
+ const r = se(n.current, t);
445
445
  return D.forEach((o) => window.addEventListener(o, r)), () => {
446
446
  D.forEach(
447
447
  (o) => window.removeEventListener(o, r)
448
448
  );
449
449
  };
450
450
  }, [t]);
451
- }, vt = (e, t) => {
452
- const [n, r] = p(!1), { rootMargin: o, root: s, threshold: c } = t || {}, i = z(() => new IntersectionObserver(
451
+ }, gt = (e, t) => {
452
+ const [n, r] = p(!1), { rootMargin: o, root: s, threshold: c } = t || {}, i = F(() => new IntersectionObserver(
453
453
  ([u]) => r(u.isIntersecting),
454
454
  {
455
455
  rootMargin: o,
@@ -460,12 +460,12 @@ const C = (e) => `webui-${e ? e + "-" : ""}${++ze}`, dt = (e) => {
460
460
  return m(() => (e.current && i.observe(e.current), () => {
461
461
  i.disconnect();
462
462
  }), [i, e]), n;
463
- }, gt = (e) => {
463
+ }, bt = (e) => {
464
464
  const t = w(null);
465
465
  return m(() => {
466
466
  !e || (typeof e == "function" ? e(t.current) : e.current = t.current);
467
467
  }), t;
468
- }, bt = (e, t, n = !0) => {
468
+ }, xt = (e, t, n = !0) => {
469
469
  const [r, o] = p(e), s = w(), c = h(
470
470
  (i, u = t) => {
471
471
  o(i), n && clearTimeout(s.current), s.current = setTimeout(() => o(e), u);
@@ -475,15 +475,15 @@ const C = (e) => `webui-${e ? e + "-" : ""}${++ze}`, dt = (e) => {
475
475
  return m(() => () => {
476
476
  clearTimeout(s.current);
477
477
  }, []), [r, c];
478
- }, xt = (e) => {
478
+ }, $t = (e) => {
479
479
  throw new Error(`Switch unhandled case: ${e}`);
480
- }, $t = (e, t) => t, _t = (e) => Object.keys(e).filter((t) => e[t]), yt = (e) => se(e, Fe), Fe = (e, t) => Re(t), Re = (e) => e.startsWith("data-") || e.startsWith("aria-"), Et = (e) => {
480
+ }, _t = (e, t) => t, yt = (e) => Object.keys(e).filter((t) => e[t]), Et = (e) => ce(e, Re), Re = (e, t) => je(t), je = (e) => e.startsWith("data-") || e.startsWith("aria-"), It = (e) => {
481
481
  try {
482
482
  const t = parseFloat(e);
483
483
  return isNaN(t) || t == null ? void 0 : t;
484
484
  } catch {
485
485
  }
486
- }, It = (e) => {
486
+ }, St = (e) => {
487
487
  try {
488
488
  const t = parseInt(e, 10);
489
489
  return isNaN(t) || t == null ? void 0 : t;
@@ -492,46 +492,46 @@ const C = (e) => `webui-${e ? e + "-" : ""}${++ze}`, dt = (e) => {
492
492
  };
493
493
  export {
494
494
  b as Box,
495
- Ke as Clickable,
496
- Ge as Column,
497
- ct as HeaderText,
498
- ke as Heading,
499
- Xe as Indent,
500
- st as LargeText,
501
- et as Nest,
502
- Je as ResizeAwareBox,
503
- Qe as Row,
504
- Be as SeparatorLine,
505
- nt as SmallText,
506
- rt as SmallerText,
507
- Ze as Space,
508
- Ye as Spacing,
509
- ot as StandardText,
495
+ Ge as Clickable,
496
+ Je as Column,
497
+ ut as HeaderText,
498
+ Le as Heading,
499
+ Ye as Indent,
500
+ ct as LargeText,
501
+ tt as Nest,
502
+ Qe as ResizeAwareBox,
503
+ Xe as Row,
504
+ Ke as SeparatorLine,
505
+ rt as SmallText,
506
+ ot as SmallerText,
507
+ et as Space,
508
+ Ze as Spacing,
509
+ st as StandardText,
510
510
  x as Text,
511
- tt as Txt,
511
+ nt as Txt,
512
512
  _ as booleanOrNumberToNumber,
513
- $t as exhaustSwitchCase,
514
- xt as exhaustSwitchCaseElseThrow,
515
- yt as getDataProps,
516
- me as getDimensionObject,
517
- Et as parseFloatElseUndefined,
518
- It as parseIntElseUndefined,
519
- _t as truthyKeysAsList,
520
- ut as useArraySet,
513
+ _t as exhaustSwitchCase,
514
+ $t as exhaustSwitchCaseElseThrow,
515
+ Et as getDataProps,
516
+ he as getDimensionObject,
517
+ It as parseFloatElseUndefined,
518
+ St as parseIntElseUndefined,
519
+ yt as truthyKeysAsList,
520
+ it as useArraySet,
521
521
  E as useBoolean,
522
- it as useDebounce,
522
+ dt as useDebounce,
523
523
  at as useDelayedFalse,
524
- dt as useDomId,
525
- fe as useElementDimensions,
526
- lt as useElementFocus,
524
+ lt as useDomId,
525
+ pe as useElementDimensions,
526
+ mt as useElementFocus,
527
527
  v as useEventListener,
528
- gt as useForwardedRef,
529
- ht as useMouseIsEntered,
530
- mt as useMouseIsOver,
531
- ft as useMultiOnClickOutside,
532
- pt as useOnClickOutside,
533
- wt as useOnNoMouseMovement,
534
- vt as useOnScreen,
535
- bt as useTimeoutState
528
+ bt as useForwardedRef,
529
+ ft as useMouseIsEntered,
530
+ ht as useMouseIsOver,
531
+ pt as useMultiOnClickOutside,
532
+ wt as useOnClickOutside,
533
+ vt as useOnNoMouseMovement,
534
+ gt as useOnScreen,
535
+ xt as useTimeoutState
536
536
  };
537
537
  //# sourceMappingURL=index.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":["../src/components/decorators/separatorline/SeparatorLine.tsx","../src/components/interaction/Clickable.tsx","../src/utils/BooleanOrNumberToNumber.ts","../src/components/layout/box/Box.tsx","../src/components/layout/column/Column.tsx","../src/hooks/UseElementDimensions.ts","../src/components/layout/box/ResizeAwareBox.tsx","../src/components/layout/row/Row.tsx","../src/components/layout/indent/Indent.tsx","../src/components/layout/spacing/Spacing.tsx","../src/components/layout/space/Space.tsx","../src/components/util/Nest.tsx","../src/components/text/Text.tsx","../src/components/deprecated-text/SmallText.tsx","../src/components/deprecated-text/SmallerText.tsx","../src/components/deprecated-text/StandardText.tsx","../src/components/deprecated-text/LargeText.tsx","../src/components/heading/Heading.tsx","../src/components/deprecated-text/HeaderText.tsx","../src/hooks/UseArraySet.ts","../src/hooks/UseBoolean.ts","../src/hooks/UseDebounce.ts","../src/hooks/UseDelayedFalse.ts","../src/hooks/UseDomId.ts","../src/hooks/UseEventListener.ts","../src/hooks/UseElementFocus.ts","../src/hooks/UseMouseIsOver.ts","../src/hooks/UseMouseIsEntered.ts","../src/hooks/UseMultiOnClickOutside.ts","../src/hooks/UseOnClickOutside.ts","../src/hooks/UseOnNoMouseInput.ts","../src/hooks/UseOnScreen.ts","../src/hooks/UseForwardedRef.ts","../src/hooks/UseTimeoutState.ts","../src/utils/SwitchCaseExhauster.ts","../src/utils/TruthyKeysAsList.ts","../src/utils/PropsForwarder.ts","../src/utils/parsers/NumberParser.ts"],"sourcesContent":["import styled from \"@emotion/styled\";\nimport { Property } from \"csstype\";\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\n\nexport interface SeparatorLineProps {\n color?: Property.Color;\n vertical?: boolean;\n size?: string;\n width?: string;\n}\n\ninterface SeparatorLineComponentProps {\n color: string;\n vertical?: boolean;\n size?: string;\n width?: string;\n}\n\nconst SeparatorLineComponent = styled.hr<SeparatorLineComponentProps>`\n display: flex;\n border: 0;\n margin: 0;\n flex: none;\n background-color: ${(props) => props.color};\n height: ${(props) =>\n props.vertical ? props.size || \"100%\" : props.width || \"1px\"};\n width: ${(props) =>\n props.vertical ? props.width || \"1px\" : props.size || \"100%\"};\n`;\n\nexport const SeparatorLine = forwardRef<HTMLHRElement, SeparatorLineProps>(\n (\n {\n color = \"var(--lhds-color-ui-300)\",\n size = \"100%\",\n width = \"1px\",\n vertical = false,\n },\n ref\n ) => {\n return (\n <SeparatorLineComponent\n color={color}\n size={size}\n width={width}\n vertical={vertical}\n ref={ref}\n />\n );\n }\n);\n","import styled from \"@emotion/styled\";\nimport * as React from \"react\";\nimport { CSSProperties, forwardRef, MouseEventHandler } from \"react\";\nimport { ButtonElementProps } from \"../../types/ElementProps\";\n\nexport interface ClickableProps extends ButtonElementProps {\n /** Callback function called when clicking on click area. */\n onClick?: MouseEventHandler<HTMLButtonElement>;\n /** Callback function called when double clicking on click area. */\n onDblClick?: MouseEventHandler<HTMLButtonElement>;\n /** Adds a title to the click area. */\n tooltip?: string;\n /** If set, there is no opacity applies when clicking on the click area. */\n disableOpacityOnClick?: boolean;\n /** Mouse does not turn into pointer when hovering over click area. */\n disablePointer?: boolean;\n /** When set, click area receives opacity when mouse hovers over it. */\n opacityOnHover?: boolean;\n /** Custom style on div with click event. */\n style?: CSSProperties;\n /** Disables shadow when element is focused. */\n disableFocusHighlight?: boolean;\n /** Disables the HTML button element. */\n disabled?: boolean;\n /**\n * Sets the background of the box.\n */\n background?: string;\n /**\n * Sets the background of the box when the box is in focus.\n */\n focusBackground?: string;\n /**\n * Sets the background of the box when hovering with mouse.\n */\n hoverBackground?: string;\n /**\n * The width.\n */\n width?: string;\n /**\n * The height.\n */\n height?: string;\n /**\n * Border radius\n */\n borderRadius?: string;\n}\n\ninterface ClickableElementProps {\n disableOpacityOnClick?: boolean;\n opacityOnHover?: boolean;\n disableFocusHighlight?: boolean;\n pointer?: boolean;\n background?: string;\n focusBackground?: string;\n hoverBackground?: string;\n width?: string;\n height?: string;\n borderRadius?: string;\n}\n\nconst ClickableElement = styled.button<ClickableElementProps>`\n display: inline-block;\n user-select: none;\n border: 0;\n padding: 0;\n background: ${({ background }) => background};\n ${({ pointer }) => (pointer ? \"cursor: pointer;\" : \"\")}\n\n :hover {\n ${(props) => (props.opacityOnHover ? \"opacity: 0.7;\" : \"\")};\n ${({ hoverBackground }) => `background: ${hoverBackground};`}\n }\n :active {\n ${({ disableOpacityOnClick }) =>\n !disableOpacityOnClick ? \"opacity: 0.5;\" : \"\"}\n }\n :focus {\n outline: 0;\n ${({ disableFocusHighlight }) =>\n disableFocusHighlight\n ? \"\"\n : \"box-shadow: 0 0 3pt 2pt rgba(0, 0, 100, 0.3);\"}\n ${({ focusBackground }) => `background: ${focusBackground};`}\n }\n ${({ width }) => (width ? `width: ${width};` : \"\")}\n ${({ height }) => (height ? `height: ${height};` : \"\")}\n ${({ borderRadius }) =>\n borderRadius ? `border-radius: ${borderRadius};` : \"\"}\n`;\n\nexport const Clickable = forwardRef<HTMLButtonElement, ClickableProps>(\n (\n {\n disableFocusHighlight,\n onClick,\n onDblClick,\n tooltip,\n disableOpacityOnClick,\n disablePointer,\n opacityOnHover,\n disabled,\n children,\n background = \"transparent\",\n hoverBackground,\n focusBackground,\n type = \"button\",\n ...restProps\n },\n ref\n ) => {\n const hasClickHandler = !!(onClick || onDblClick);\n\n return (\n <ClickableElement\n opacityOnHover={opacityOnHover}\n title={tooltip}\n disabled={disabled}\n disableOpacityOnClick={disableOpacityOnClick}\n onClick={onClick}\n onDoubleClick={onDblClick}\n disableFocusHighlight={disableFocusHighlight}\n pointer={hasClickHandler && !disablePointer}\n ref={ref}\n background={background}\n hoverBackground={hoverBackground}\n focusBackground={focusBackground}\n type={type}\n {...restProps}\n >\n {children}\n </ClickableElement>\n );\n }\n);\n","export const booleanOrNumberToNumber = (\n num: number | boolean | undefined\n): number => {\n if (num == null) {\n return 0;\n }\n if (typeof num === \"boolean\") {\n return num ? 1 : 0;\n }\n return num;\n};\n","import isPropValid from \"@emotion/is-prop-valid\";\nimport styled from \"@emotion/styled\";\nimport { Property } from \"csstype\";\n\nimport {\n background,\n BackgroundProps,\n border,\n borderBottom,\n BorderBottomProps,\n borderColor,\n borderLeft,\n BorderLeftProps,\n borderRadius,\n BorderRadiusProps,\n borderRight,\n BorderRightProps,\n borderStyle,\n BorderStyleProps,\n borderTop,\n BorderTopProps,\n borderWidth,\n BorderWidthProps,\n bottom,\n BottomProps,\n boxShadow,\n BoxShadowProps,\n flexbox,\n FlexboxProps,\n layout,\n LayoutProps,\n left,\n LeftProps,\n overflow,\n OverflowProps,\n position,\n PositionProps,\n ResponsiveValue,\n right,\n RightProps,\n system,\n TLengthStyledSystem,\n top,\n TopProps,\n zIndex,\n ZIndexProps,\n} from \"styled-system\";\nimport { DivProps } from \"../../../types/ElementProps\";\nimport { booleanOrNumberToNumber } from \"../../../utils/BooleanOrNumberToNumber\";\n\ninterface StyledSystemProps\n extends BorderRadiusProps,\n BorderStyleProps,\n BorderWidthProps,\n BorderLeftProps,\n BorderRightProps,\n BorderTopProps,\n BorderBottomProps,\n FlexboxProps,\n LayoutProps,\n OverflowProps,\n PositionProps,\n ZIndexProps,\n LeftProps,\n RightProps,\n TopProps,\n BottomProps {}\n\nconst shadows = {\n box: \"var(--swui-shadow-box)\",\n popover: \"var(--swui-shadow-popover)\",\n modal: \"var(--swui-shadow-modal)\",\n bottom: \"var(--swui-shadow-bottom)\",\n};\n\ntype ShadowType = keyof typeof shadows;\n\nexport interface BoxProps extends StyledSystemProps, DivProps {\n /**\n * If true, children are placed in a row.\n */\n row?: ResponsiveValue<boolean>;\n\n /**\n * Adds spacing over and under content.\n */\n spacing?: ResponsiveValue<boolean | TLengthStyledSystem>;\n\n /**\n * Adds spacing left and right of content.\n */\n indent?: ResponsiveValue<boolean | TLengthStyledSystem>;\n\n /**\n * Adds spacing between children.\n */\n gap?: ResponsiveValue<boolean | TLengthStyledSystem>;\n\n /**\n * Adds a shadow around the box.\n */\n shadow?: ResponsiveValue<Property.BoxShadow | ShadowType>;\n\n /**\n * Sets the background of the box.\n */\n background?: ResponsiveValue<Property.Background<TLengthStyledSystem>>;\n\n /**\n * Sets the border of the box.\n */\n border?: ResponsiveValue<Property.Border<TLengthStyledSystem>>;\n\n /**\n * Sets the border color of the box.\n */\n borderColor?: ResponsiveValue<Property.BorderColor>;\n\n /**\n * Sets the background of the box when hovering with mouse.\n */\n hoverBackground?: Property.Background<TLengthStyledSystem>;\n\n /**\n * Sets the border of the box when hovering with mouse.\n */\n hoverBorder?: Property.Border<TLengthStyledSystem>;\n\n /**\n * Sets the background of the box when the box is in focus.\n */\n focusBackground?: Property.Background<TLengthStyledSystem>;\n\n /**\n * Sets the border of the box when the box is in focus.\n */\n focusBorder?: Property.Border<TLengthStyledSystem>;\n\n /**\n * Sets the background of the box when focus is within the box.\n */\n focusWithinBackground?: Property.Background<TLengthStyledSystem>;\n\n /**\n * Sets the border of the box when focus is within the box.\n */\n focusWithinBorder?: Property.Border<TLengthStyledSystem>;\n}\n\nconst excludedProps = [\n \"spacing\",\n \"indent\",\n \"gap\",\n \"width\",\n \"height\",\n \"overflow\",\n \"display\",\n];\n\nconst isExcludedWebUiProp = (propName: string) =>\n excludedProps.includes(propName);\n\nconst box = system({\n row: {\n property: \"flexDirection\",\n transform: (row: boolean) => (row ? \"row\" : \"column\"),\n },\n indent: {\n // @ts-ignore\n property: \"--current-indent\",\n transform: booleanOrNumberToNumber,\n },\n spacing: {\n // @ts-ignore\n property: \"--current-spacing\",\n transform: booleanOrNumberToNumber,\n },\n gap: {\n // @ts-ignore\n property: \"--current-gap\",\n transform: booleanOrNumberToNumber,\n },\n shadow: {\n property: \"boxShadow\",\n transform: (value) => shadows[value] ?? value,\n },\n});\n\ntype InnerProps = BoxProps & BoxShadowProps & BackgroundProps;\n\nexport const Box = styled(\"div\", {\n shouldForwardProp: (propName) =>\n typeof propName === \"string\"\n ? isExcludedWebUiProp(propName)\n ? false\n : isPropValid(propName)\n : false,\n})<InnerProps>`\n --current-spacing: 0;\n --current-indent: 0;\n --current-gap: 0;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n ${box};\n ${background};\n ${border};\n ${borderRight};\n ${borderLeft};\n ${borderTop};\n ${borderBottom};\n ${borderColor};\n ${borderRadius};\n ${borderStyle};\n ${borderWidth};\n ${boxShadow};\n ${flexbox};\n ${overflow};\n ${position};\n ${layout};\n ${zIndex};\n ${left};\n ${right};\n ${top};\n ${bottom};\n\n gap: calc(var(--current-gap) * var(--swui-metrics-space));\n\n padding: calc(var(--current-spacing) * var(--swui-metrics-spacing))\n calc(var(--current-indent) * var(--swui-metrics-indent));\n :hover {\n ${({ hoverBackground }) =>\n hoverBackground ? `background: ${hoverBackground};` : \"\"}\n ${({ hoverBorder }) => (hoverBorder ? `border: ${hoverBorder};` : \"\")}\n }\n :focus {\n ${({ focusBackground }) =>\n focusBackground ? `background: ${focusBackground};` : \"\"}\n ${({ focusBorder }) => (focusBorder ? `border: ${focusBorder};` : \"\")}\n }\n :focus-within {\n ${({ focusWithinBackground }) =>\n focusWithinBackground ? `background: ${focusWithinBackground};` : \"\"}\n ${({ focusWithinBorder }) =>\n focusWithinBorder ? `border: ${focusWithinBorder};` : \"\"}\n }\n`;\n","import * as React from \"react\";\nimport { forwardRef } from \"react\";\nimport { Box, BoxProps } from \"../box/Box\";\n\nexport const Column = forwardRef<HTMLDivElement, BoxProps>(function Column(\n props,\n ref\n) {\n return <Box ref={ref} {...props} />;\n});\n","import { RefObject, useCallback, useLayoutEffect, useState } from \"react\";\n\nexport interface ElementDimensions {\n width: number;\n height: number;\n top: number;\n left: number;\n x: number;\n y: number;\n right: number;\n bottom: number;\n}\n\nexport const getDimensionObject = (node: HTMLElement): ElementDimensions => {\n const { x, y, width, height, bottom, top, left, right } =\n node.getBoundingClientRect();\n\n return {\n width,\n height,\n top,\n left,\n x,\n y,\n right,\n bottom,\n };\n};\n\nconst isEqualDimensions = (\n a: ElementDimensions,\n b: ElementDimensions\n): boolean =>\n a.x === b.x &&\n a.y === b.y &&\n a.width === b.width &&\n a.height === b.height &&\n a.bottom === b.bottom &&\n a.top === b.top &&\n a.left === b.left &&\n a.right === b.right;\n\nexport const useElementDimensions = (\n ref: RefObject<HTMLElement>,\n onResizeElement?: (dimensions: ElementDimensions) => void\n) => {\n const [dimensions, setDimensions] = useState<ElementDimensions | undefined>();\n\n const updateDimensions = useCallback(() => {\n window.requestAnimationFrame(() => {\n if (ref.current) {\n const newDimensions = getDimensionObject(ref.current);\n if (!dimensions || !isEqualDimensions(dimensions, newDimensions)) {\n if (onResizeElement) {\n onResizeElement(newDimensions);\n }\n }\n setDimensions(newDimensions);\n }\n });\n }, [ref, dimensions, setDimensions, onResizeElement]);\n\n useLayoutEffect(() => {\n updateDimensions();\n }, [updateDimensions]);\n\n return {\n dimensions,\n };\n};\n","import * as React from \"react\";\nimport { forwardRef, RefObject, useRef } from \"react\";\nimport { Box, BoxProps } from \"./Box\";\nimport {\n ElementDimensions,\n useElementDimensions,\n} from \"../../../hooks/UseElementDimensions\";\n\nexport interface ResizeAwareBoxProps extends BoxProps {\n onResize?: (dimensions: ElementDimensions) => void;\n}\n\nexport const ResizeAwareBox = forwardRef<HTMLDivElement, ResizeAwareBoxProps>(\n function ResizeAwareBox({ onResize, ...boxProps }, ref) {\n const localRef = useRef<HTMLDivElement>(null);\n const currentRef = (ref as RefObject<HTMLDivElement>) ?? localRef;\n useElementDimensions(currentRef, onResize);\n\n return <Box {...boxProps} ref={ref} />;\n }\n);\n","import * as React from \"react\";\nimport { forwardRef } from \"react\";\nimport { Box, BoxProps } from \"../box/Box\";\n\nexport const Row = forwardRef<HTMLDivElement, BoxProps>(function Row(\n props,\n ref\n) {\n return <Box row ref={ref} {...props} />;\n});\n","import * as React from \"react\";\nimport { forwardRef } from \"react\";\nimport { Box, BoxProps } from \"../box/Box\";\nimport { ResponsiveValue, TLengthStyledSystem } from \"styled-system\";\n\nexport interface IndentProps extends BoxProps {\n num?: ResponsiveValue<boolean | TLengthStyledSystem>;\n}\n\nexport const Indent = forwardRef<HTMLDivElement, IndentProps>(function Indent(\n { num = 1, ...props },\n ref\n) {\n return <Box indent={num} ref={ref} {...props} />;\n});\n","import * as React from \"react\";\nimport { forwardRef } from \"react\";\nimport { Box, BoxProps } from \"../box/Box\";\nimport { ResponsiveValue, TLengthStyledSystem } from \"styled-system\";\n\nexport interface SpacingProps extends BoxProps {\n num?: ResponsiveValue<boolean | TLengthStyledSystem>;\n}\n\nexport const Spacing = forwardRef<HTMLDivElement, SpacingProps>(\n function Spacing({ num = 1, ...props }, ref) {\n return <Box spacing={num} ref={ref} {...props} />;\n }\n);\n","import styled from \"@emotion/styled\";\nimport * as React from \"react\";\n\nexport interface SpaceProps {\n half?: boolean;\n horizontal?: boolean;\n num?: number;\n vertical?: boolean;\n}\n\nconst InnerSpace = styled.div`\n --current-size: 1;\n flex: none;\n width: calc(var(--current-size) * var(--swui-metrics-space));\n height: calc(var(--current-size) * var(--swui-metrics-space));\n`;\n\nexport const Space: React.VFC<SpaceProps> = ({\n half = false,\n horizontal = false,\n num = 1,\n vertical = false,\n}) => {\n const size = num * (half ? 0.5 : 1);\n\n return (\n <InnerSpace\n style={{\n [\"--current-size\" as string]: size,\n height: horizontal ? 1 : undefined,\n width: vertical ? 1 : undefined,\n }}\n />\n );\n};\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\n\ninterface Props {\n nest?: boolean;\n render: (children: ReactNode) => ReactNode;\n children?: ReactNode;\n}\n\nexport const Nest: React.FC<Props> = ({ children, nest, render }) => {\n if (nest) {\n return <>{render(children)}</>;\n }\n return <>{children}</>;\n};\n","import * as React from \"react\";\nimport cx from \"classnames\";\nimport styles from \"./Text.module.css\";\nimport { SpanProps } from \"../../types/ElementProps\";\nimport { Property } from \"csstype\";\nimport { forwardRef } from \"react\";\n\nexport interface TextProps extends SpanProps {\n variant?: TextVariant;\n size?: TextSize;\n userSelect?: Property.UserSelect;\n whiteSpace?: Property.WhiteSpace;\n wordBreak?: Property.WordBreak;\n color?: string;\n}\n\nexport type TextVariant = \"standard\" | \"caption\" | \"overline\" | \"bold\";\nexport type TextSize = \"large\" | \"medium\" | \"small\" | \"smaller\";\n\nexport const Text = forwardRef<HTMLSpanElement, TextProps>(\n (\n {\n children,\n variant = \"standard\",\n size = \"medium\",\n className,\n color,\n userSelect,\n whiteSpace,\n wordBreak,\n style,\n ...spanProps\n },\n ref\n ) => {\n return (\n <span\n className={cx(styles.text, styles[variant], styles[size], className)}\n ref={ref}\n style={{ color, userSelect, whiteSpace, wordBreak, ...style }}\n {...spanProps}\n >\n {children}\n </span>\n );\n }\n);\n\nexport const Txt = Text;\n","import * as React from \"react\";\nimport { Text, TextProps } from \"../text/Text\";\n\n/**\n * @deprecated Please use `Text` instead.\n */\nexport const SmallText: React.FC<Omit<TextProps, \"size\">> = (props) => {\n return <Text size={\"small\"} {...props} />;\n};\n","import * as React from \"react\";\nimport { Text, TextProps } from \"../text/Text\";\n\n/**\n * @deprecated Please use `Text` instead.\n */\nexport const SmallerText: React.FC<Omit<TextProps, \"size\">> = (props) => {\n return <Text size={\"smaller\"} {...props} />;\n};\n","import * as React from \"react\";\nimport { Text, TextProps } from \"../text/Text\";\n\n/**\n * @deprecated Please use `Text` instead.\n */\nexport const StandardText: React.FC<Omit<TextProps, \"size\">> = (props) => {\n return <Text size={\"medium\"} {...props} />;\n};\n","import * as React from \"react\";\nimport { Text, TextProps } from \"../text/Text\";\n\n/**\n * @deprecated Please use `Text` instead.\n */\nexport const LargeText: React.FC<Omit<TextProps, \"size\">> = (props) => {\n return <Text size={\"large\"} {...props} />;\n};\n","import cx from \"classnames\";\nimport { Property } from \"csstype\";\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nimport { H1Props } from \"../../types/ElementProps\";\nimport styles from \"./Heading.module.css\";\n\nexport interface HeadingProps extends H1Props {\n variant?: HeadingVariant;\n whiteSpace?: Property.WhiteSpace;\n wordBreak?: Property.WordBreak;\n as?: HeadingVariant;\n}\n\nexport type HeadingVariant = \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\";\n\nexport const Heading = forwardRef<HTMLHeadingElement, HeadingProps>(\n (\n {\n variant = \"h3\",\n className,\n color,\n whiteSpace,\n wordBreak,\n style,\n children,\n as,\n ...hProps\n },\n ref\n ) => {\n const Element = as ?? variant;\n return (\n <Element\n className={cx(styles.heading, styles[variant], className)}\n style={{ color, whiteSpace, wordBreak, ...style }}\n ref={ref}\n {...hProps}\n >\n {children}\n </Element>\n );\n }\n);\n","import * as React from \"react\";\nimport { Heading, HeadingProps } from \"../heading/Heading\";\n\n/**\n * @deprecated Please use `Heading` instead.\n */\nexport const HeaderText: React.FC<Omit<HeadingProps, \"variant\">> = (props) => {\n return <Heading variant={\"h2\"} {...props} />;\n};\n","import { useCallback } from \"react\";\n\ntype ArrayItemEqualsComparator<T> = (a: T, b: T) => boolean;\n\nconst defaultComparator = <T>(a: T, b: T) => a === b;\n\nexport const useArraySet = <T>(\n list: Array<T>,\n setList: (list: Array<T>) => void,\n comparator: ArrayItemEqualsComparator<T> = defaultComparator\n) => {\n const add = useCallback(\n (item: T) => {\n if (!list.some((l) => comparator(l, item))) {\n setList([...list, item]);\n }\n },\n [list, setList, comparator]\n );\n\n const addMultiple = useCallback(\n (items: Array<T>) => {\n setList(\n items.reduce((list, item) => {\n if (!list.some((l) => comparator(l, item))) {\n return [...list, item];\n }\n return list;\n }, list)\n );\n },\n [list, setList, comparator]\n );\n\n const remove = useCallback(\n (item: T) => {\n const index = list.findIndex((l) => comparator(l, item));\n if (index >= 0) {\n setList(list.filter((_, i) => i !== index));\n }\n },\n [list, setList, comparator]\n );\n\n const removeMultiple = useCallback(\n (items: Array<T>) => {\n setList(list.filter((item) => !items.some((l) => comparator(l, item))));\n },\n [list, setList, comparator]\n );\n\n const toggle = useCallback(\n (item: T) => {\n const found = list.some((l) => comparator(l, item));\n if (found) {\n remove(item);\n } else {\n add(item);\n }\n },\n [list, add, remove, comparator]\n );\n\n return {\n add,\n addMultiple,\n remove,\n removeMultiple,\n toggle,\n };\n};\n","import { useCallback, useState } from \"react\";\n\ntype Value = boolean;\ntype SetTrue = () => void;\ntype SetFalse = () => void;\ntype ToggleValue = () => void;\ntype BooleanHook = [Value, SetTrue, SetFalse, ToggleValue];\n\nexport const useBoolean = (initialValue: Value): BooleanHook => {\n const [value, setValue] = useState(initialValue);\n\n const setTrue = useCallback(() => {\n setValue(true);\n }, [setValue]);\n\n const setFalse = useCallback(() => {\n setValue(false);\n }, [setValue]);\n\n const toggle = useCallback(() => {\n setValue((v) => !v);\n }, [setValue]);\n\n return [value, setTrue, setFalse, toggle];\n};\n","import { useEffect, useState } from \"react\";\n\nexport const useDebounce = <T>(value: T, delay: number): T => {\n // State and setters for debounced value\n const [debouncedValue, setDebouncedValue] = useState<T>(value);\n\n useEffect(() => {\n // Update debounced value after delay\n const handler = setTimeout(() => {\n setDebouncedValue(value);\n }, delay);\n\n // Cancel the timeout if value changes (also on delay change or unmount)\n // This is how we prevent debounced value from updating if value is changed ...\n // .. within the delay period. Timeout gets cleared and restarted.\n return () => {\n clearTimeout(handler);\n };\n }, [value, delay]); // Only re-call effect if value or delay changes\n\n return debouncedValue;\n};\n","import { useEffect, useState } from \"react\";\n\nexport const useDelayedFalse = (value: boolean, delay: number) => {\n const [debouncedValue, setDebouncedValue] = useState<boolean>(value);\n\n useEffect(() => {\n if (value) {\n setDebouncedValue(true);\n }\n\n const handler = setTimeout(() => {\n if (!value) {\n setDebouncedValue(value);\n }\n }, delay);\n\n return () => {\n clearTimeout(handler);\n };\n }, [value, delay]);\n\n return debouncedValue;\n};\n","import { useEffect, useState } from \"react\";\n\nlet id = 0;\nconst genId = (componentName?: string) =>\n `webui-${componentName ? componentName + \"-\" : \"\"}${++id}`;\n\n/** @deprecated use useId-hook from React 18 */\nexport const useDomId = (componentName?: string): string => {\n const [id, setId] = useState<string | null>(() => genId(componentName));\n useEffect(() => setId(genId(componentName)), [componentName]);\n return id!;\n};\n","import { RefObject, useEffect, useRef } from \"react\";\n\ntype EventHandler<TEventName extends keyof HTMLElementEventMap> = (\n event: HTMLElementEventMap[TEventName]\n) => void;\n\nexport const useEventListener = <TEventName extends keyof HTMLElementEventMap>(\n ref: RefObject<HTMLElement>,\n eventName: TEventName,\n handler: EventHandler<TEventName>\n) => {\n // Create a ref that stores handler\n const savedHandler = useRef<EventHandler<TEventName>>();\n\n // Update ref.current value if handler changes.\n // This allows our effect below to always get latest handler ...\n // ... without us needing to pass it in effect deps array ...\n // ... and potentially cause effect to re-run every render.\n useEffect(() => {\n savedHandler.current = handler;\n }, [handler]);\n\n useEffect(() => {\n // Make sure element supports addEventListener\n const isSupported = ref.current && ref.current.addEventListener;\n if (!isSupported) return;\n\n // Create event listener that calls handler function stored in ref\n const eventListener: EventHandler<TEventName> = (event) => {\n if (savedHandler.current) {\n return savedHandler.current(event);\n }\n };\n\n // Add event listener\n if (!ref.current) {\n return;\n }\n\n const element = ref.current;\n element.addEventListener(eventName, eventListener);\n\n // Remove event listener on cleanup\n return () => {\n if (element) {\n element.removeEventListener(eventName, eventListener);\n }\n };\n }, [eventName, ref]); // Re-run if eventName or element changes\n};\n","import { RefObject, useCallback, useEffect } from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { useBoolean } from \"./UseBoolean\";\nimport { useEventListener } from \"./UseEventListener\";\n\nexport const useElementFocus = <TElement extends HTMLElement>(\n ref: RefObject<TElement>\n) => {\n const [isInFocus, setIsInFocus, setIsNotInFocus] = useBoolean(false);\n\n useEffect(() => {\n if (document.activeElement === ReactDOM.findDOMNode(ref.current)) {\n setIsInFocus();\n } else {\n setIsNotInFocus();\n }\n }, [ref, setIsNotInFocus, setIsInFocus]);\n\n useEventListener(ref, \"focus\", setIsInFocus);\n useEventListener(ref, \"blur\", setIsNotInFocus);\n\n const focus = useCallback(() => {\n if (ref.current) {\n ref.current.focus();\n }\n }, [ref]);\n\n const blur = useCallback(() => {\n if (ref.current) {\n ref.current.blur();\n }\n }, [ref]);\n\n return { isInFocus, focus, blur };\n};\n","import { RefObject } from \"react\";\nimport { useBoolean } from \"./UseBoolean\";\nimport { useEventListener } from \"./UseEventListener\";\n\nexport const useMouseIsOver = <TElement extends HTMLElement>(\n ref: RefObject<TElement>\n) => {\n const [mouseIsOver, setMouseIsOver, setMouseIsNotOver] = useBoolean(false);\n\n useEventListener(ref, \"mouseover\", setMouseIsOver);\n useEventListener(ref, \"mouseout\", setMouseIsNotOver);\n\n return mouseIsOver;\n};\n","import { RefObject } from \"react\";\nimport { useBoolean } from \"./UseBoolean\";\nimport { useEventListener } from \"./UseEventListener\";\n\nexport const useMouseIsEntered = <TElement extends HTMLElement>(\n ref: RefObject<TElement>\n) => {\n const [mouseIsEntered, setMouseIsEntered, setMouseIsNotEntered] =\n useBoolean(false);\n\n useEventListener(ref, \"mouseenter\", setMouseIsEntered);\n useEventListener(ref, \"mouseleave\", setMouseIsNotEntered);\n\n return mouseIsEntered;\n};\n","import * as React from \"react\";\nimport { useEffect, useRef } from \"react\";\n\nexport const useMultiOnClickOutside = (\n refs: Array<React.RefObject<any>>,\n handler: (event: TouchEvent | MouseEvent) => void\n) => {\n const eventHandler = useRef<(event: TouchEvent | MouseEvent) => void>(() => {\n return;\n });\n\n useEffect(() => {\n eventHandler.current = handler;\n }, [handler]);\n\n useEffect(() => {\n const listener = (event: TouchEvent | MouseEvent) => {\n // Do nothing if clicking ref's element or descendent elements\n\n const allNotContains = refs\n .filter((ref) => ref.current)\n .every((ref) => {\n return ref.current && !ref.current.contains(event.target);\n });\n\n if (!allNotContains) {\n return;\n }\n\n eventHandler.current(event);\n };\n\n document.addEventListener(\"mousedown\", listener);\n document.addEventListener(\"touchstart\", listener);\n\n return () => {\n document.removeEventListener(\"mousedown\", listener);\n document.removeEventListener(\"touchstart\", listener);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [...refs]);\n};\n","import * as React from \"react\";\nimport { useEffect, useRef } from \"react\";\n\nexport const useOnClickOutside = (\n ref: React.RefObject<any>,\n handler: (event: TouchEvent | MouseEvent) => void,\n options?: AddEventListenerOptions\n) => {\n const eventHandler = useRef<(event: TouchEvent | MouseEvent) => void>(() => {\n return;\n });\n\n useEffect(() => {\n eventHandler.current = handler;\n }, [handler]);\n\n useEffect(() => {\n const listener = (event: TouchEvent | MouseEvent) => {\n // Do nothing if clicking ref's element or descendent elements\n if (!ref.current || ref.current.contains(event.target)) {\n return;\n }\n\n eventHandler.current(event);\n };\n\n document.addEventListener(\"mousedown\", listener, options);\n document.addEventListener(\"touchstart\", listener, options);\n\n return () => {\n document.removeEventListener(\"mousedown\", listener, options);\n document.removeEventListener(\"touchstart\", listener, options);\n };\n }, [ref, options]);\n};\n","import { debounce } from \"lodash\";\nimport { useEffect, useRef } from \"react\";\n\nconst events = [\"mousemove\", \"mousedown\", \"keydown\", \"touchstart\", \"scroll\"];\n\nexport const useOnNoMouseMovement = (callback: () => void, delay: number) => {\n const eventHandler = useRef<(event: Event) => void>(() => {\n return;\n });\n\n useEffect(() => {\n eventHandler.current = callback;\n }, [callback]);\n\n useEffect(() => {\n const onIdleChange = debounce(eventHandler.current, delay);\n events.forEach((event) => window.addEventListener(event, onIdleChange));\n\n return () => {\n events.forEach((event) =>\n window.removeEventListener(event, onIdleChange)\n );\n };\n }, [delay]);\n};\n","import { RefObject, useEffect, useMemo, useState } from \"react\";\n\nexport const useOnScreen = (\n ref: RefObject<Element>,\n options?: IntersectionObserverInit\n) => {\n const [isVisible, setIsVisible] = useState(false);\n\n const { rootMargin, root, threshold } = options || {};\n\n const observer = useMemo(() => {\n return new IntersectionObserver(\n ([entry]) => setIsVisible(entry.isIntersecting),\n {\n rootMargin,\n root,\n threshold,\n }\n );\n }, [setIsVisible, rootMargin, root, threshold]);\n\n useEffect(() => {\n if (ref.current) {\n observer.observe(ref.current);\n }\n return () => {\n observer.disconnect();\n };\n }, [observer, ref]);\n\n return isVisible;\n};\n","import {\n MutableRefObject,\n RefCallback,\n RefObject,\n useEffect,\n useRef,\n} from \"react\";\n\nexport const useForwardedRef = <T>(\n ref: RefCallback<T> | MutableRefObject<T> | null\n): RefObject<NonNullable<T>> => {\n const innerRef = useRef<T>(null) as MutableRefObject<NonNullable<T>>;\n\n useEffect(() => {\n if (!ref) return;\n if (typeof ref === \"function\") {\n ref(innerRef.current);\n } else {\n ref.current = innerRef.current;\n }\n });\n\n return innerRef;\n};\n","import { useCallback, useEffect, useRef, useState } from \"react\";\n\nexport const useTimeoutState = <S>(\n initialValue: S,\n defaultTimeout: number,\n clearTimeoutOnSetValue = true\n): [S, (v: S) => void] => {\n const [value, setValue] = useState<S>(initialValue);\n const timeoutRef = useRef<NodeJS.Timeout>();\n\n const wrappedSetter = useCallback(\n (newValue: S, timeout = defaultTimeout) => {\n setValue(newValue);\n if (clearTimeoutOnSetValue) {\n clearTimeout(timeoutRef.current!);\n }\n timeoutRef.current = setTimeout(() => setValue(initialValue), timeout);\n },\n [defaultTimeout, clearTimeoutOnSetValue, initialValue]\n );\n\n useEffect(() => {\n return () => {\n clearTimeout(timeoutRef.current!);\n };\n }, []);\n\n return [value, wrappedSetter];\n};\n","export const exhaustSwitchCaseElseThrow = (arg: never) => {\n throw new Error(`Switch unhandled case: ${arg}`);\n};\n\nexport const exhaustSwitchCase = <T>(_arg: never, fallback: T) => {\n return fallback;\n};\n","export const truthyKeysAsList = (r: Record<string, boolean>): Array<string> =>\n Object.keys(r).filter((key) => r[key]);\n","import { pickBy } from \"lodash\";\n\nexport const getDataProps = <T extends Record<string, unknown>>(\n props: Record<string, unknown> | {}\n): T => pickBy(props, isDataPropMapper) as T;\n\nconst isDataPropMapper = (_: unknown, key: string): boolean => isDataProp(key);\n\nconst isDataProp = <TProp extends string>(propName: TProp): boolean =>\n propName.startsWith(\"data-\") || propName.startsWith(\"aria-\");\n","export const parseFloatElseUndefined = (s: string): number | undefined => {\n try {\n const f = parseFloat(s);\n if (isNaN(f)) {\n return undefined;\n }\n if (f == null) {\n return undefined;\n }\n return f;\n } catch (e) {}\n return undefined;\n};\n\nexport const parseIntElseUndefined = (s: string): number | undefined => {\n try {\n const f = parseInt(s, 10);\n if (isNaN(f)) {\n return undefined;\n }\n if (f == null) {\n return undefined;\n }\n return f;\n } catch (e) {}\n return undefined;\n};\n"],"names":["SeparatorLineComponent","styled","props","SeparatorLine","forwardRef","color","size","width","vertical","ref","jsx","ClickableElement","background","pointer","hoverBackground","disableOpacityOnClick","disableFocusHighlight","focusBackground","height","borderRadius","Clickable","onClick","onDblClick","tooltip","disablePointer","opacityOnHover","disabled","children","type","restProps","booleanOrNumberToNumber","num","shadows","excludedProps","isExcludedWebUiProp","propName","box","system","row","value","_a","Box","isPropValid","border","borderRight","borderLeft","borderTop","borderBottom","borderColor","borderStyle","borderWidth","boxShadow","flexbox","overflow","position","layout","zIndex","left","right","top","bottom","hoverBorder","focusBorder","focusWithinBackground","focusWithinBorder","Column","getDimensionObject","node","x","y","isEqualDimensions","a","b","useElementDimensions","onResizeElement","dimensions","setDimensions","useState","updateDimensions","useCallback","newDimensions","useLayoutEffect","ResizeAwareBox","onResize","boxProps","localRef","useRef","currentRef","Row","Indent","Spacing","InnerSpace","Space","half","horizontal","Nest","nest","render","Fragment","Text","variant","className","userSelect","whiteSpace","wordBreak","style","spanProps","cx","styles","Txt","SmallText","SmallerText","StandardText","LargeText","Heading","as","hProps","Element","HeaderText","defaultComparator","useArraySet","list","setList","comparator","add","item","l","addMultiple","items","remove","index","_","i","removeMultiple","toggle","useBoolean","initialValue","setValue","setTrue","setFalse","v","useDebounce","delay","debouncedValue","setDebouncedValue","useEffect","handler","useDelayedFalse","id","genId","componentName","useDomId","setId","useEventListener","eventName","savedHandler","eventListener","event","element","useElementFocus","isInFocus","setIsInFocus","setIsNotInFocus","ReactDOM","focus","blur","useMouseIsOver","mouseIsOver","setMouseIsOver","setMouseIsNotOver","useMouseIsEntered","mouseIsEntered","setMouseIsEntered","setMouseIsNotEntered","useMultiOnClickOutside","refs","eventHandler","listener","useOnClickOutside","options","events","useOnNoMouseMovement","callback","onIdleChange","debounce","useOnScreen","isVisible","setIsVisible","rootMargin","root","threshold","observer","useMemo","entry","useForwardedRef","innerRef","useTimeoutState","defaultTimeout","clearTimeoutOnSetValue","timeoutRef","wrappedSetter","newValue","timeout","exhaustSwitchCaseElseThrow","arg","exhaustSwitchCase","_arg","fallback","truthyKeysAsList","r","key","getDataProps","pickBy","isDataPropMapper","isDataProp","parseFloatElseUndefined","s","f","parseIntElseUndefined"],"mappings":"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"}
1
+ {"version":3,"file":"index.es.js","sources":["../src/components/decorators/separatorline/SeparatorLine.tsx","../src/components/interaction/Clickable.tsx","../src/utils/BooleanOrNumberToNumber.ts","../src/components/layout/box/Box.tsx","../src/components/layout/column/Column.tsx","../src/hooks/UseElementDimensions.ts","../src/components/layout/box/ResizeAwareBox.tsx","../src/components/layout/row/Row.tsx","../src/components/layout/indent/Indent.tsx","../src/components/layout/spacing/Spacing.tsx","../src/components/layout/space/Space.tsx","../src/components/util/Nest.tsx","../src/components/text/Text.tsx","../src/components/deprecated-text/SmallText.tsx","../src/components/deprecated-text/SmallerText.tsx","../src/components/deprecated-text/StandardText.tsx","../src/components/deprecated-text/LargeText.tsx","../src/components/heading/Heading.tsx","../src/components/deprecated-text/HeaderText.tsx","../src/hooks/UseArraySet.ts","../src/hooks/UseBoolean.ts","../src/hooks/UseDebounce.ts","../src/hooks/UseDelayedFalse.ts","../src/hooks/UseDomId.ts","../src/hooks/UseEventListener.ts","../src/hooks/UseElementFocus.ts","../src/hooks/UseMouseIsOver.ts","../src/hooks/UseMouseIsEntered.ts","../src/hooks/UseMultiOnClickOutside.ts","../src/hooks/UseOnClickOutside.ts","../src/hooks/UseOnNoMouseInput.ts","../src/hooks/UseOnScreen.ts","../src/hooks/UseForwardedRef.ts","../src/hooks/UseTimeoutState.ts","../src/utils/SwitchCaseExhauster.ts","../src/utils/TruthyKeysAsList.ts","../src/utils/PropsForwarder.ts","../src/utils/parsers/NumberParser.ts"],"sourcesContent":["import styled from \"@emotion/styled\";\nimport { Property } from \"csstype\";\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nimport { cssColor } from \"@stenajs-webui/theme\";\n\nexport interface SeparatorLineProps {\n color?: Property.Color;\n vertical?: boolean;\n size?: string;\n width?: string;\n}\n\ninterface SeparatorLineComponentProps {\n color: string;\n vertical?: boolean;\n size?: string;\n width?: string;\n}\n\nconst SeparatorLineComponent = styled.hr<SeparatorLineComponentProps>`\n display: flex;\n border: 0;\n margin: 0;\n flex: none;\n background-color: ${(props) => props.color};\n height: ${(props) =>\n props.vertical ? props.size || \"100%\" : props.width || \"1px\"};\n width: ${(props) =>\n props.vertical ? props.width || \"1px\" : props.size || \"100%\"};\n`;\n\nexport const SeparatorLine = forwardRef<HTMLHRElement, SeparatorLineProps>(\n (\n {\n color = cssColor(\"--lhds-color-ui-300\"),\n size = \"100%\",\n width = \"1px\",\n vertical = false,\n },\n ref\n ) => {\n return (\n <SeparatorLineComponent\n color={color}\n size={size}\n width={width}\n vertical={vertical}\n ref={ref}\n />\n );\n }\n);\n","import styled from \"@emotion/styled\";\nimport * as React from \"react\";\nimport { CSSProperties, forwardRef, MouseEventHandler } from \"react\";\nimport { ButtonElementProps } from \"../../types/ElementProps\";\n\nexport interface ClickableProps extends ButtonElementProps {\n /** Callback function called when clicking on click area. */\n onClick?: MouseEventHandler<HTMLButtonElement>;\n /** Callback function called when double clicking on click area. */\n onDblClick?: MouseEventHandler<HTMLButtonElement>;\n /** Adds a title to the click area. */\n tooltip?: string;\n /** If set, there is no opacity applies when clicking on the click area. */\n disableOpacityOnClick?: boolean;\n /** Mouse does not turn into pointer when hovering over click area. */\n disablePointer?: boolean;\n /** When set, click area receives opacity when mouse hovers over it. */\n opacityOnHover?: boolean;\n /** Custom style on div with click event. */\n style?: CSSProperties;\n /** Disables shadow when element is focused. */\n disableFocusHighlight?: boolean;\n /** Disables the HTML button element. */\n disabled?: boolean;\n /**\n * Sets the background of the box.\n */\n background?: string;\n /**\n * Sets the background of the box when the box is in focus.\n */\n focusBackground?: string;\n /**\n * Sets the background of the box when hovering with mouse.\n */\n hoverBackground?: string;\n /**\n * The width.\n */\n width?: string;\n /**\n * The height.\n */\n height?: string;\n /**\n * Border radius\n */\n borderRadius?: string;\n}\n\ninterface ClickableElementProps {\n disableOpacityOnClick?: boolean;\n opacityOnHover?: boolean;\n disableFocusHighlight?: boolean;\n pointer?: boolean;\n background?: string;\n focusBackground?: string;\n hoverBackground?: string;\n width?: string;\n height?: string;\n borderRadius?: string;\n}\n\nconst ClickableElement = styled.button<ClickableElementProps>`\n display: inline-block;\n user-select: none;\n border: 0;\n padding: 0;\n background: ${({ background }) => background};\n ${({ pointer }) => (pointer ? \"cursor: pointer;\" : \"\")}\n\n :hover {\n ${(props) => (props.opacityOnHover ? \"opacity: 0.7;\" : \"\")};\n ${({ hoverBackground }) => `background: ${hoverBackground};`}\n }\n :active {\n ${({ disableOpacityOnClick }) =>\n !disableOpacityOnClick ? \"opacity: 0.5;\" : \"\"}\n }\n :focus {\n outline: 0;\n ${({ disableFocusHighlight }) =>\n disableFocusHighlight\n ? \"\"\n : \"box-shadow: 0 0 3pt 2pt rgba(0, 0, 100, 0.3);\"}\n ${({ focusBackground }) => `background: ${focusBackground};`}\n }\n ${({ width }) => (width ? `width: ${width};` : \"\")}\n ${({ height }) => (height ? `height: ${height};` : \"\")}\n ${({ borderRadius }) =>\n borderRadius ? `border-radius: ${borderRadius};` : \"\"}\n`;\n\nexport const Clickable = forwardRef<HTMLButtonElement, ClickableProps>(\n (\n {\n disableFocusHighlight,\n onClick,\n onDblClick,\n tooltip,\n disableOpacityOnClick,\n disablePointer,\n opacityOnHover,\n disabled,\n children,\n background = \"transparent\",\n hoverBackground,\n focusBackground,\n type = \"button\",\n ...restProps\n },\n ref\n ) => {\n const hasClickHandler = !!(onClick || onDblClick);\n\n return (\n <ClickableElement\n opacityOnHover={opacityOnHover}\n title={tooltip}\n disabled={disabled}\n disableOpacityOnClick={disableOpacityOnClick}\n onClick={onClick}\n onDoubleClick={onDblClick}\n disableFocusHighlight={disableFocusHighlight}\n pointer={hasClickHandler && !disablePointer}\n ref={ref}\n background={background}\n hoverBackground={hoverBackground}\n focusBackground={focusBackground}\n type={type}\n {...restProps}\n >\n {children}\n </ClickableElement>\n );\n }\n);\n","export const booleanOrNumberToNumber = (\n num: number | boolean | undefined\n): number => {\n if (num == null) {\n return 0;\n }\n if (typeof num === \"boolean\") {\n return num ? 1 : 0;\n }\n return num;\n};\n","import isPropValid from \"@emotion/is-prop-valid\";\nimport styled from \"@emotion/styled\";\nimport { Property } from \"csstype\";\n\nimport {\n background,\n BackgroundProps,\n border,\n borderBottom,\n BorderBottomProps,\n borderColor,\n borderLeft,\n BorderLeftProps,\n borderRadius,\n BorderRadiusProps,\n borderRight,\n BorderRightProps,\n borderStyle,\n BorderStyleProps,\n borderTop,\n BorderTopProps,\n borderWidth,\n BorderWidthProps,\n bottom,\n BottomProps,\n boxShadow,\n BoxShadowProps,\n flexbox,\n FlexboxProps,\n layout,\n LayoutProps,\n left,\n LeftProps,\n overflow,\n OverflowProps,\n position,\n PositionProps,\n ResponsiveValue,\n right,\n RightProps,\n system,\n TLengthStyledSystem,\n top,\n TopProps,\n zIndex,\n ZIndexProps,\n} from \"styled-system\";\nimport { DivProps } from \"../../../types/ElementProps\";\nimport { booleanOrNumberToNumber } from \"../../../utils/BooleanOrNumberToNumber\";\n\ninterface StyledSystemProps\n extends BorderRadiusProps,\n BorderStyleProps,\n BorderWidthProps,\n BorderLeftProps,\n BorderRightProps,\n BorderTopProps,\n BorderBottomProps,\n FlexboxProps,\n LayoutProps,\n OverflowProps,\n PositionProps,\n ZIndexProps,\n LeftProps,\n RightProps,\n TopProps,\n BottomProps {}\n\nconst shadows = {\n box: \"var(--swui-shadow-box)\",\n popover: \"var(--swui-shadow-popover)\",\n modal: \"var(--swui-shadow-modal)\",\n bottom: \"var(--swui-shadow-bottom)\",\n};\n\ntype ShadowType = keyof typeof shadows;\n\nexport interface BoxProps extends StyledSystemProps, DivProps {\n /**\n * If true, children are placed in a row.\n */\n row?: ResponsiveValue<boolean>;\n\n /**\n * Adds spacing over and under content.\n */\n spacing?: ResponsiveValue<boolean | TLengthStyledSystem>;\n\n /**\n * Adds spacing left and right of content.\n */\n indent?: ResponsiveValue<boolean | TLengthStyledSystem>;\n\n /**\n * Adds spacing between children.\n */\n gap?: ResponsiveValue<boolean | TLengthStyledSystem>;\n\n /**\n * Adds a shadow around the box.\n */\n shadow?: ResponsiveValue<Property.BoxShadow | ShadowType>;\n\n /**\n * Sets the background of the box.\n */\n background?: ResponsiveValue<Property.Background<TLengthStyledSystem>>;\n\n /**\n * Sets the border of the box.\n */\n border?: ResponsiveValue<Property.Border<TLengthStyledSystem>>;\n\n /**\n * Sets the border color of the box.\n */\n borderColor?: ResponsiveValue<Property.BorderColor>;\n\n /**\n * Sets the background of the box when hovering with mouse.\n */\n hoverBackground?: Property.Background<TLengthStyledSystem>;\n\n /**\n * Sets the border of the box when hovering with mouse.\n */\n hoverBorder?: Property.Border<TLengthStyledSystem>;\n\n /**\n * Sets the background of the box when the box is in focus.\n */\n focusBackground?: Property.Background<TLengthStyledSystem>;\n\n /**\n * Sets the border of the box when the box is in focus.\n */\n focusBorder?: Property.Border<TLengthStyledSystem>;\n\n /**\n * Sets the background of the box when focus is within the box.\n */\n focusWithinBackground?: Property.Background<TLengthStyledSystem>;\n\n /**\n * Sets the border of the box when focus is within the box.\n */\n focusWithinBorder?: Property.Border<TLengthStyledSystem>;\n}\n\nconst excludedProps = [\n \"spacing\",\n \"indent\",\n \"gap\",\n \"width\",\n \"height\",\n \"overflow\",\n \"display\",\n];\n\nconst isExcludedWebUiProp = (propName: string) =>\n excludedProps.includes(propName);\n\nconst box = system({\n row: {\n property: \"flexDirection\",\n transform: (row: boolean) => (row ? \"row\" : \"column\"),\n },\n indent: {\n // @ts-ignore\n property: \"--current-indent\",\n transform: booleanOrNumberToNumber,\n },\n spacing: {\n // @ts-ignore\n property: \"--current-spacing\",\n transform: booleanOrNumberToNumber,\n },\n gap: {\n // @ts-ignore\n property: \"--current-gap\",\n transform: booleanOrNumberToNumber,\n },\n shadow: {\n property: \"boxShadow\",\n transform: (value) => shadows[value] ?? value,\n },\n});\n\ntype InnerProps = BoxProps & BoxShadowProps & BackgroundProps;\n\nexport const Box = styled(\"div\", {\n shouldForwardProp: (propName) =>\n typeof propName === \"string\"\n ? isExcludedWebUiProp(propName)\n ? false\n : isPropValid(propName)\n : false,\n})<InnerProps>`\n --current-spacing: 0;\n --current-indent: 0;\n --current-gap: 0;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n ${box};\n ${background};\n ${border};\n ${borderRight};\n ${borderLeft};\n ${borderTop};\n ${borderBottom};\n ${borderColor};\n ${borderRadius};\n ${borderStyle};\n ${borderWidth};\n ${boxShadow};\n ${flexbox};\n ${overflow};\n ${position};\n ${layout};\n ${zIndex};\n ${left};\n ${right};\n ${top};\n ${bottom};\n\n gap: calc(var(--current-gap) * var(--swui-metrics-space));\n\n padding: calc(var(--current-spacing) * var(--swui-metrics-spacing))\n calc(var(--current-indent) * var(--swui-metrics-indent));\n :hover {\n ${({ hoverBackground }) =>\n hoverBackground ? `background: ${hoverBackground};` : \"\"}\n ${({ hoverBorder }) => (hoverBorder ? `border: ${hoverBorder};` : \"\")}\n }\n :focus {\n ${({ focusBackground }) =>\n focusBackground ? `background: ${focusBackground};` : \"\"}\n ${({ focusBorder }) => (focusBorder ? `border: ${focusBorder};` : \"\")}\n }\n :focus-within {\n ${({ focusWithinBackground }) =>\n focusWithinBackground ? `background: ${focusWithinBackground};` : \"\"}\n ${({ focusWithinBorder }) =>\n focusWithinBorder ? `border: ${focusWithinBorder};` : \"\"}\n }\n`;\n","import * as React from \"react\";\nimport { forwardRef } from \"react\";\nimport { Box, BoxProps } from \"../box/Box\";\n\nexport const Column = forwardRef<HTMLDivElement, BoxProps>(function Column(\n props,\n ref\n) {\n return <Box ref={ref} {...props} />;\n});\n","import { RefObject, useCallback, useLayoutEffect, useState } from \"react\";\n\nexport interface ElementDimensions {\n width: number;\n height: number;\n top: number;\n left: number;\n x: number;\n y: number;\n right: number;\n bottom: number;\n}\n\nexport const getDimensionObject = (node: HTMLElement): ElementDimensions => {\n const { x, y, width, height, bottom, top, left, right } =\n node.getBoundingClientRect();\n\n return {\n width,\n height,\n top,\n left,\n x,\n y,\n right,\n bottom,\n };\n};\n\nconst isEqualDimensions = (\n a: ElementDimensions,\n b: ElementDimensions\n): boolean =>\n a.x === b.x &&\n a.y === b.y &&\n a.width === b.width &&\n a.height === b.height &&\n a.bottom === b.bottom &&\n a.top === b.top &&\n a.left === b.left &&\n a.right === b.right;\n\nexport const useElementDimensions = (\n ref: RefObject<HTMLElement>,\n onResizeElement?: (dimensions: ElementDimensions) => void\n) => {\n const [dimensions, setDimensions] = useState<ElementDimensions | undefined>();\n\n const updateDimensions = useCallback(() => {\n window.requestAnimationFrame(() => {\n if (ref.current) {\n const newDimensions = getDimensionObject(ref.current);\n if (!dimensions || !isEqualDimensions(dimensions, newDimensions)) {\n if (onResizeElement) {\n onResizeElement(newDimensions);\n }\n }\n setDimensions(newDimensions);\n }\n });\n }, [ref, dimensions, setDimensions, onResizeElement]);\n\n useLayoutEffect(() => {\n updateDimensions();\n }, [updateDimensions]);\n\n return {\n dimensions,\n };\n};\n","import * as React from \"react\";\nimport { forwardRef, RefObject, useRef } from \"react\";\nimport { Box, BoxProps } from \"./Box\";\nimport {\n ElementDimensions,\n useElementDimensions,\n} from \"../../../hooks/UseElementDimensions\";\n\nexport interface ResizeAwareBoxProps extends BoxProps {\n onResize?: (dimensions: ElementDimensions) => void;\n}\n\nexport const ResizeAwareBox = forwardRef<HTMLDivElement, ResizeAwareBoxProps>(\n function ResizeAwareBox({ onResize, ...boxProps }, ref) {\n const localRef = useRef<HTMLDivElement>(null);\n const currentRef = (ref as RefObject<HTMLDivElement>) ?? localRef;\n useElementDimensions(currentRef, onResize);\n\n return <Box {...boxProps} ref={ref} />;\n }\n);\n","import * as React from \"react\";\nimport { forwardRef } from \"react\";\nimport { Box, BoxProps } from \"../box/Box\";\n\nexport const Row = forwardRef<HTMLDivElement, BoxProps>(function Row(\n props,\n ref\n) {\n return <Box row ref={ref} {...props} />;\n});\n","import * as React from \"react\";\nimport { forwardRef } from \"react\";\nimport { Box, BoxProps } from \"../box/Box\";\nimport { ResponsiveValue, TLengthStyledSystem } from \"styled-system\";\n\nexport interface IndentProps extends BoxProps {\n num?: ResponsiveValue<boolean | TLengthStyledSystem>;\n}\n\nexport const Indent = forwardRef<HTMLDivElement, IndentProps>(function Indent(\n { num = 1, ...props },\n ref\n) {\n return <Box indent={num} ref={ref} {...props} />;\n});\n","import * as React from \"react\";\nimport { forwardRef } from \"react\";\nimport { Box, BoxProps } from \"../box/Box\";\nimport { ResponsiveValue, TLengthStyledSystem } from \"styled-system\";\n\nexport interface SpacingProps extends BoxProps {\n num?: ResponsiveValue<boolean | TLengthStyledSystem>;\n}\n\nexport const Spacing = forwardRef<HTMLDivElement, SpacingProps>(\n function Spacing({ num = 1, ...props }, ref) {\n return <Box spacing={num} ref={ref} {...props} />;\n }\n);\n","import styled from \"@emotion/styled\";\nimport * as React from \"react\";\n\nexport interface SpaceProps {\n half?: boolean;\n horizontal?: boolean;\n num?: number;\n vertical?: boolean;\n}\n\nconst InnerSpace = styled.div`\n --current-size: 1;\n flex: none;\n width: calc(var(--current-size) * var(--swui-metrics-space));\n height: calc(var(--current-size) * var(--swui-metrics-space));\n`;\n\nexport const Space: React.VFC<SpaceProps> = ({\n half = false,\n horizontal = false,\n num = 1,\n vertical = false,\n}) => {\n const size = num * (half ? 0.5 : 1);\n\n return (\n <InnerSpace\n style={{\n [\"--current-size\" as string]: size,\n height: horizontal ? 1 : undefined,\n width: vertical ? 1 : undefined,\n }}\n />\n );\n};\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\n\ninterface Props {\n nest?: boolean;\n render: (children: ReactNode) => ReactNode;\n children?: ReactNode;\n}\n\nexport const Nest: React.FC<Props> = ({ children, nest, render }) => {\n if (nest) {\n return <>{render(children)}</>;\n }\n return <>{children}</>;\n};\n","import * as React from \"react\";\nimport cx from \"classnames\";\nimport styles from \"./Text.module.css\";\nimport { SpanProps } from \"../../types/ElementProps\";\nimport { Property } from \"csstype\";\nimport { forwardRef } from \"react\";\n\nexport interface TextProps extends SpanProps {\n variant?: TextVariant;\n size?: TextSize;\n userSelect?: Property.UserSelect;\n whiteSpace?: Property.WhiteSpace;\n wordBreak?: Property.WordBreak;\n color?: string;\n}\n\nexport type TextVariant = \"standard\" | \"caption\" | \"overline\" | \"bold\";\nexport type TextSize = \"large\" | \"medium\" | \"small\" | \"smaller\";\n\nexport const Text = forwardRef<HTMLSpanElement, TextProps>(\n (\n {\n children,\n variant = \"standard\",\n size = \"medium\",\n className,\n color,\n userSelect,\n whiteSpace,\n wordBreak,\n style,\n ...spanProps\n },\n ref\n ) => {\n return (\n <span\n className={cx(styles.text, styles[variant], styles[size], className)}\n ref={ref}\n style={{ color, userSelect, whiteSpace, wordBreak, ...style }}\n {...spanProps}\n >\n {children}\n </span>\n );\n }\n);\n\nexport const Txt = Text;\n","import * as React from \"react\";\nimport { Text, TextProps } from \"../text/Text\";\n\n/**\n * @deprecated Please use `Text` instead.\n */\nexport const SmallText: React.FC<Omit<TextProps, \"size\">> = (props) => {\n return <Text size={\"small\"} {...props} />;\n};\n","import * as React from \"react\";\nimport { Text, TextProps } from \"../text/Text\";\n\n/**\n * @deprecated Please use `Text` instead.\n */\nexport const SmallerText: React.FC<Omit<TextProps, \"size\">> = (props) => {\n return <Text size={\"smaller\"} {...props} />;\n};\n","import * as React from \"react\";\nimport { Text, TextProps } from \"../text/Text\";\n\n/**\n * @deprecated Please use `Text` instead.\n */\nexport const StandardText: React.FC<Omit<TextProps, \"size\">> = (props) => {\n return <Text size={\"medium\"} {...props} />;\n};\n","import * as React from \"react\";\nimport { Text, TextProps } from \"../text/Text\";\n\n/**\n * @deprecated Please use `Text` instead.\n */\nexport const LargeText: React.FC<Omit<TextProps, \"size\">> = (props) => {\n return <Text size={\"large\"} {...props} />;\n};\n","import cx from \"classnames\";\nimport { Property } from \"csstype\";\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nimport { H1Props } from \"../../types/ElementProps\";\nimport styles from \"./Heading.module.css\";\n\nexport interface HeadingProps extends H1Props {\n variant?: HeadingVariant;\n whiteSpace?: Property.WhiteSpace;\n wordBreak?: Property.WordBreak;\n as?: HeadingVariant;\n}\n\nexport type HeadingVariant = \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\";\n\nexport const Heading = forwardRef<HTMLHeadingElement, HeadingProps>(\n (\n {\n variant = \"h3\",\n className,\n color,\n whiteSpace,\n wordBreak,\n style,\n children,\n as,\n ...hProps\n },\n ref\n ) => {\n const Element = as ?? variant;\n return (\n <Element\n className={cx(styles.heading, styles[variant], className)}\n style={{ color, whiteSpace, wordBreak, ...style }}\n ref={ref}\n {...hProps}\n >\n {children}\n </Element>\n );\n }\n);\n","import * as React from \"react\";\nimport { Heading, HeadingProps } from \"../heading/Heading\";\n\n/**\n * @deprecated Please use `Heading` instead.\n */\nexport const HeaderText: React.FC<Omit<HeadingProps, \"variant\">> = (props) => {\n return <Heading variant={\"h2\"} {...props} />;\n};\n","import { useCallback } from \"react\";\n\ntype ArrayItemEqualsComparator<T> = (a: T, b: T) => boolean;\n\nconst defaultComparator = <T>(a: T, b: T) => a === b;\n\nexport const useArraySet = <T>(\n list: Array<T>,\n setList: (list: Array<T>) => void,\n comparator: ArrayItemEqualsComparator<T> = defaultComparator\n) => {\n const add = useCallback(\n (item: T) => {\n if (!list.some((l) => comparator(l, item))) {\n setList([...list, item]);\n }\n },\n [list, setList, comparator]\n );\n\n const addMultiple = useCallback(\n (items: Array<T>) => {\n setList(\n items.reduce((list, item) => {\n if (!list.some((l) => comparator(l, item))) {\n return [...list, item];\n }\n return list;\n }, list)\n );\n },\n [list, setList, comparator]\n );\n\n const remove = useCallback(\n (item: T) => {\n const index = list.findIndex((l) => comparator(l, item));\n if (index >= 0) {\n setList(list.filter((_, i) => i !== index));\n }\n },\n [list, setList, comparator]\n );\n\n const removeMultiple = useCallback(\n (items: Array<T>) => {\n setList(list.filter((item) => !items.some((l) => comparator(l, item))));\n },\n [list, setList, comparator]\n );\n\n const toggle = useCallback(\n (item: T) => {\n const found = list.some((l) => comparator(l, item));\n if (found) {\n remove(item);\n } else {\n add(item);\n }\n },\n [list, add, remove, comparator]\n );\n\n return {\n add,\n addMultiple,\n remove,\n removeMultiple,\n toggle,\n };\n};\n","import { useCallback, useState } from \"react\";\n\ntype Value = boolean;\ntype SetTrue = () => void;\ntype SetFalse = () => void;\ntype ToggleValue = () => void;\ntype BooleanHook = [Value, SetTrue, SetFalse, ToggleValue];\n\nexport const useBoolean = (initialValue: Value): BooleanHook => {\n const [value, setValue] = useState(initialValue);\n\n const setTrue = useCallback(() => {\n setValue(true);\n }, [setValue]);\n\n const setFalse = useCallback(() => {\n setValue(false);\n }, [setValue]);\n\n const toggle = useCallback(() => {\n setValue((v) => !v);\n }, [setValue]);\n\n return [value, setTrue, setFalse, toggle];\n};\n","import { useEffect, useState } from \"react\";\n\nexport const useDebounce = <T>(value: T, delay: number): T => {\n // State and setters for debounced value\n const [debouncedValue, setDebouncedValue] = useState<T>(value);\n\n useEffect(() => {\n // Update debounced value after delay\n const handler = setTimeout(() => {\n setDebouncedValue(value);\n }, delay);\n\n // Cancel the timeout if value changes (also on delay change or unmount)\n // This is how we prevent debounced value from updating if value is changed ...\n // .. within the delay period. Timeout gets cleared and restarted.\n return () => {\n clearTimeout(handler);\n };\n }, [value, delay]); // Only re-call effect if value or delay changes\n\n return debouncedValue;\n};\n","import { useEffect, useState } from \"react\";\n\nexport const useDelayedFalse = (value: boolean, delay: number) => {\n const [debouncedValue, setDebouncedValue] = useState<boolean>(value);\n\n useEffect(() => {\n if (value) {\n setDebouncedValue(true);\n }\n\n const handler = setTimeout(() => {\n if (!value) {\n setDebouncedValue(value);\n }\n }, delay);\n\n return () => {\n clearTimeout(handler);\n };\n }, [value, delay]);\n\n return debouncedValue;\n};\n","import { useEffect, useState } from \"react\";\n\nlet id = 0;\nconst genId = (componentName?: string) =>\n `webui-${componentName ? componentName + \"-\" : \"\"}${++id}`;\n\n/** @deprecated use useId-hook from React 18 */\nexport const useDomId = (componentName?: string): string => {\n const [id, setId] = useState<string | null>(() => genId(componentName));\n useEffect(() => setId(genId(componentName)), [componentName]);\n return id!;\n};\n","import { RefObject, useEffect, useRef } from \"react\";\n\ntype EventHandler<TEventName extends keyof HTMLElementEventMap> = (\n event: HTMLElementEventMap[TEventName]\n) => void;\n\nexport const useEventListener = <TEventName extends keyof HTMLElementEventMap>(\n ref: RefObject<HTMLElement>,\n eventName: TEventName,\n handler: EventHandler<TEventName>\n) => {\n // Create a ref that stores handler\n const savedHandler = useRef<EventHandler<TEventName>>();\n\n // Update ref.current value if handler changes.\n // This allows our effect below to always get latest handler ...\n // ... without us needing to pass it in effect deps array ...\n // ... and potentially cause effect to re-run every render.\n useEffect(() => {\n savedHandler.current = handler;\n }, [handler]);\n\n useEffect(() => {\n // Make sure element supports addEventListener\n const isSupported = ref.current && ref.current.addEventListener;\n if (!isSupported) return;\n\n // Create event listener that calls handler function stored in ref\n const eventListener: EventHandler<TEventName> = (event) => {\n if (savedHandler.current) {\n return savedHandler.current(event);\n }\n };\n\n // Add event listener\n if (!ref.current) {\n return;\n }\n\n const element = ref.current;\n element.addEventListener(eventName, eventListener);\n\n // Remove event listener on cleanup\n return () => {\n if (element) {\n element.removeEventListener(eventName, eventListener);\n }\n };\n }, [eventName, ref]); // Re-run if eventName or element changes\n};\n","import { RefObject, useCallback, useEffect } from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { useBoolean } from \"./UseBoolean\";\nimport { useEventListener } from \"./UseEventListener\";\n\nexport const useElementFocus = <TElement extends HTMLElement>(\n ref: RefObject<TElement>\n) => {\n const [isInFocus, setIsInFocus, setIsNotInFocus] = useBoolean(false);\n\n useEffect(() => {\n if (document.activeElement === ReactDOM.findDOMNode(ref.current)) {\n setIsInFocus();\n } else {\n setIsNotInFocus();\n }\n }, [ref, setIsNotInFocus, setIsInFocus]);\n\n useEventListener(ref, \"focus\", setIsInFocus);\n useEventListener(ref, \"blur\", setIsNotInFocus);\n\n const focus = useCallback(() => {\n if (ref.current) {\n ref.current.focus();\n }\n }, [ref]);\n\n const blur = useCallback(() => {\n if (ref.current) {\n ref.current.blur();\n }\n }, [ref]);\n\n return { isInFocus, focus, blur };\n};\n","import { RefObject } from \"react\";\nimport { useBoolean } from \"./UseBoolean\";\nimport { useEventListener } from \"./UseEventListener\";\n\nexport const useMouseIsOver = <TElement extends HTMLElement>(\n ref: RefObject<TElement>\n) => {\n const [mouseIsOver, setMouseIsOver, setMouseIsNotOver] = useBoolean(false);\n\n useEventListener(ref, \"mouseover\", setMouseIsOver);\n useEventListener(ref, \"mouseout\", setMouseIsNotOver);\n\n return mouseIsOver;\n};\n","import { RefObject } from \"react\";\nimport { useBoolean } from \"./UseBoolean\";\nimport { useEventListener } from \"./UseEventListener\";\n\nexport const useMouseIsEntered = <TElement extends HTMLElement>(\n ref: RefObject<TElement>\n) => {\n const [mouseIsEntered, setMouseIsEntered, setMouseIsNotEntered] =\n useBoolean(false);\n\n useEventListener(ref, \"mouseenter\", setMouseIsEntered);\n useEventListener(ref, \"mouseleave\", setMouseIsNotEntered);\n\n return mouseIsEntered;\n};\n","import * as React from \"react\";\nimport { useEffect, useRef } from \"react\";\n\nexport const useMultiOnClickOutside = (\n refs: Array<React.RefObject<any>>,\n handler: (event: TouchEvent | MouseEvent) => void\n) => {\n const eventHandler = useRef<(event: TouchEvent | MouseEvent) => void>(() => {\n return;\n });\n\n useEffect(() => {\n eventHandler.current = handler;\n }, [handler]);\n\n useEffect(() => {\n const listener = (event: TouchEvent | MouseEvent) => {\n // Do nothing if clicking ref's element or descendent elements\n\n const allNotContains = refs\n .filter((ref) => ref.current)\n .every((ref) => {\n return ref.current && !ref.current.contains(event.target);\n });\n\n if (!allNotContains) {\n return;\n }\n\n eventHandler.current(event);\n };\n\n document.addEventListener(\"mousedown\", listener);\n document.addEventListener(\"touchstart\", listener);\n\n return () => {\n document.removeEventListener(\"mousedown\", listener);\n document.removeEventListener(\"touchstart\", listener);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [...refs]);\n};\n","import * as React from \"react\";\nimport { useEffect, useRef } from \"react\";\n\nexport const useOnClickOutside = (\n ref: React.RefObject<any>,\n handler: (event: TouchEvent | MouseEvent) => void,\n options?: AddEventListenerOptions\n) => {\n const eventHandler = useRef<(event: TouchEvent | MouseEvent) => void>(() => {\n return;\n });\n\n useEffect(() => {\n eventHandler.current = handler;\n }, [handler]);\n\n useEffect(() => {\n const listener = (event: TouchEvent | MouseEvent) => {\n // Do nothing if clicking ref's element or descendent elements\n if (!ref.current || ref.current.contains(event.target)) {\n return;\n }\n\n eventHandler.current(event);\n };\n\n document.addEventListener(\"mousedown\", listener, options);\n document.addEventListener(\"touchstart\", listener, options);\n\n return () => {\n document.removeEventListener(\"mousedown\", listener, options);\n document.removeEventListener(\"touchstart\", listener, options);\n };\n }, [ref, options]);\n};\n","import { debounce } from \"lodash\";\nimport { useEffect, useRef } from \"react\";\n\nconst events = [\"mousemove\", \"mousedown\", \"keydown\", \"touchstart\", \"scroll\"];\n\nexport const useOnNoMouseMovement = (callback: () => void, delay: number) => {\n const eventHandler = useRef<(event: Event) => void>(() => {\n return;\n });\n\n useEffect(() => {\n eventHandler.current = callback;\n }, [callback]);\n\n useEffect(() => {\n const onIdleChange = debounce(eventHandler.current, delay);\n events.forEach((event) => window.addEventListener(event, onIdleChange));\n\n return () => {\n events.forEach((event) =>\n window.removeEventListener(event, onIdleChange)\n );\n };\n }, [delay]);\n};\n","import { RefObject, useEffect, useMemo, useState } from \"react\";\n\nexport const useOnScreen = (\n ref: RefObject<Element>,\n options?: IntersectionObserverInit\n) => {\n const [isVisible, setIsVisible] = useState(false);\n\n const { rootMargin, root, threshold } = options || {};\n\n const observer = useMemo(() => {\n return new IntersectionObserver(\n ([entry]) => setIsVisible(entry.isIntersecting),\n {\n rootMargin,\n root,\n threshold,\n }\n );\n }, [setIsVisible, rootMargin, root, threshold]);\n\n useEffect(() => {\n if (ref.current) {\n observer.observe(ref.current);\n }\n return () => {\n observer.disconnect();\n };\n }, [observer, ref]);\n\n return isVisible;\n};\n","import {\n MutableRefObject,\n RefCallback,\n RefObject,\n useEffect,\n useRef,\n} from \"react\";\n\nexport const useForwardedRef = <T>(\n ref: RefCallback<T> | MutableRefObject<T> | null\n): RefObject<NonNullable<T>> => {\n const innerRef = useRef<T>(null) as MutableRefObject<NonNullable<T>>;\n\n useEffect(() => {\n if (!ref) return;\n if (typeof ref === \"function\") {\n ref(innerRef.current);\n } else {\n ref.current = innerRef.current;\n }\n });\n\n return innerRef;\n};\n","import { useCallback, useEffect, useRef, useState } from \"react\";\n\nexport const useTimeoutState = <S>(\n initialValue: S,\n defaultTimeout: number,\n clearTimeoutOnSetValue = true\n): [S, (v: S) => void] => {\n const [value, setValue] = useState<S>(initialValue);\n const timeoutRef = useRef<NodeJS.Timeout>();\n\n const wrappedSetter = useCallback(\n (newValue: S, timeout = defaultTimeout) => {\n setValue(newValue);\n if (clearTimeoutOnSetValue) {\n clearTimeout(timeoutRef.current!);\n }\n timeoutRef.current = setTimeout(() => setValue(initialValue), timeout);\n },\n [defaultTimeout, clearTimeoutOnSetValue, initialValue]\n );\n\n useEffect(() => {\n return () => {\n clearTimeout(timeoutRef.current!);\n };\n }, []);\n\n return [value, wrappedSetter];\n};\n","export const exhaustSwitchCaseElseThrow = (arg: never) => {\n throw new Error(`Switch unhandled case: ${arg}`);\n};\n\nexport const exhaustSwitchCase = <T>(_arg: never, fallback: T) => {\n return fallback;\n};\n","export const truthyKeysAsList = (r: Record<string, boolean>): Array<string> =>\n Object.keys(r).filter((key) => r[key]);\n","import { pickBy } from \"lodash\";\n\nexport const getDataProps = <T extends Record<string, unknown>>(\n props: Record<string, unknown> | {}\n): T => pickBy(props, isDataPropMapper) as T;\n\nconst isDataPropMapper = (_: unknown, key: string): boolean => isDataProp(key);\n\nconst isDataProp = <TProp extends string>(propName: TProp): boolean =>\n propName.startsWith(\"data-\") || propName.startsWith(\"aria-\");\n","export const parseFloatElseUndefined = (s: string): number | undefined => {\n try {\n const f = parseFloat(s);\n if (isNaN(f)) {\n return undefined;\n }\n if (f == null) {\n return undefined;\n }\n return f;\n } catch (e) {}\n return undefined;\n};\n\nexport const parseIntElseUndefined = (s: string): number | undefined => {\n try {\n const f = parseInt(s, 10);\n if (isNaN(f)) {\n return undefined;\n }\n if (f == null) {\n return undefined;\n }\n return f;\n } catch (e) {}\n return undefined;\n};\n"],"names":["SeparatorLineComponent","styled","props","SeparatorLine","forwardRef","color","cssColor","size","width","vertical","ref","jsx","ClickableElement","background","pointer","hoverBackground","disableOpacityOnClick","disableFocusHighlight","focusBackground","height","borderRadius","Clickable","onClick","onDblClick","tooltip","disablePointer","opacityOnHover","disabled","children","type","restProps","booleanOrNumberToNumber","num","shadows","excludedProps","isExcludedWebUiProp","propName","box","system","row","value","_a","Box","isPropValid","border","borderRight","borderLeft","borderTop","borderBottom","borderColor","borderStyle","borderWidth","boxShadow","flexbox","overflow","position","layout","zIndex","left","right","top","bottom","hoverBorder","focusBorder","focusWithinBackground","focusWithinBorder","Column","getDimensionObject","node","x","y","isEqualDimensions","a","b","useElementDimensions","onResizeElement","dimensions","setDimensions","useState","updateDimensions","useCallback","newDimensions","useLayoutEffect","ResizeAwareBox","onResize","boxProps","localRef","useRef","currentRef","Row","Indent","Spacing","InnerSpace","Space","half","horizontal","Nest","nest","render","Fragment","Text","variant","className","userSelect","whiteSpace","wordBreak","style","spanProps","cx","styles","Txt","SmallText","SmallerText","StandardText","LargeText","Heading","as","hProps","Element","HeaderText","defaultComparator","useArraySet","list","setList","comparator","add","item","l","addMultiple","items","remove","index","_","i","removeMultiple","toggle","useBoolean","initialValue","setValue","setTrue","setFalse","v","useDebounce","delay","debouncedValue","setDebouncedValue","useEffect","handler","useDelayedFalse","id","genId","componentName","useDomId","setId","useEventListener","eventName","savedHandler","eventListener","event","element","useElementFocus","isInFocus","setIsInFocus","setIsNotInFocus","ReactDOM","focus","blur","useMouseIsOver","mouseIsOver","setMouseIsOver","setMouseIsNotOver","useMouseIsEntered","mouseIsEntered","setMouseIsEntered","setMouseIsNotEntered","useMultiOnClickOutside","refs","eventHandler","listener","useOnClickOutside","options","events","useOnNoMouseMovement","callback","onIdleChange","debounce","useOnScreen","isVisible","setIsVisible","rootMargin","root","threshold","observer","useMemo","entry","useForwardedRef","innerRef","useTimeoutState","defaultTimeout","clearTimeoutOnSetValue","timeoutRef","wrappedSetter","newValue","timeout","exhaustSwitchCaseElseThrow","arg","exhaustSwitchCase","_arg","fallback","truthyKeysAsList","r","key","getDataProps","pickBy","isDataPropMapper","isDataProp","parseFloatElseUndefined","s","f","parseIntElseUndefined"],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  (function(){"use strict";try{var i=document.createElement("style");i.appendChild(document.createTextNode("._text_1iisw_1{--swui-text-color: var(--swui-text-primary-color);--swui-text-color-caption: var(--lhds-color-ui-600);--swui-text-color-overline: var(--lhds-color-ui-600);--swui-text-font-family: var(--swui-font-primary);--swui-text-font-weight: var(--swui-font-weight-text);--current-color: var(--swui-text-color);--current-font-size: var(--swui-font-size-medium);--current-line-height: var(--swui-line-height-medium);--current-font-weight: var(--swui-text-font-weight);--current-letter-spacing: var(--swui-text-letter-spacing);font-size:var(--current-font-size);line-height:var(--current-line-height);color:var(--current-color);letter-spacing:var(--current-letter-spacing);font-family:var(--swui-text-font-family);font-weight:var(--current-font-weight)}._text_1iisw_1._bold_1iisw_27{--current-font-weight: var(--swui-font-weight-text-bold)}._text_1iisw_1._caption_1iisw_31{--current-font-size: var(--swui-font-size-small);--current-line-height: var(--swui-line-height-small);--current-color: var(--swui-text-color-caption);--current-letter-spacing: 0;font-style:italic}._text_1iisw_1._overline_1iisw_39{--current-font-size: var(--swui-font-size-smaller);--current-line-height: var(--swui-line-height-smaller);--current-color: var(--swui-text-color-overline);--current-font-weight: var(--swui-font-weight-text-bold);--current-letter-spacing: .1rem;text-transform:uppercase}._text_1iisw_1._large_1iisw_48{--current-font-size: var(--swui-font-size-large);--current-line-height: var(--swui-line-height-large)}._text_1iisw_1._medium_1iisw_53{--current-font-size: var(--swui-font-size-medium);--current-line-height: var(--swui-line-height-medium)}._text_1iisw_1._small_1iisw_58{--current-font-size: var(--swui-font-size-small);--current-line-height: var(--swui-line-height-small)}._text_1iisw_1._smaller_1iisw_63{--current-font-size: var(--swui-font-size-smaller);--current-line-height: var(--swui-line-height-smaller)}._heading_xn9xj_1{--swui-heading-text-color: var(--swui-text-primary-color);--swui-heading-font-family: var(--swui-font-primary);--swui-heading-font-weight: var(--swui-font-weight-text-bold);--swui-heading-line-height: var(--swui-line-height);font-size:var(--swui-heading-font-size);color:var(--swui-heading-text-color);letter-spacing:0;margin:0;line-height:var(--swui-heading-line-height);font-family:var(--swui-heading-font-family);font-weight:var(--swui-heading-font-weight)}._heading_xn9xj_1._h1_xn9xj_15{--swui-heading-font-size: 2.8rem}._heading_xn9xj_1._h2_xn9xj_19{--swui-heading-font-size: 2.4rem}._heading_xn9xj_1._h3_xn9xj_23{--swui-heading-font-size: 2rem}._heading_xn9xj_1._h4_xn9xj_27{--swui-heading-font-size: 1.8rem}._heading_xn9xj_1._h5_xn9xj_31{--swui-heading-font-size: 1.6rem}._heading_xn9xj_1._h6_xn9xj_35{--swui-heading-font-size: 1.4rem}")),document.head.appendChild(i)}catch(e){console.error("vite-plugin-css-injected-by-js",e)}})();
2
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require("@stenajs-webui/theme");const l=require("react/jsx-runtime"),L=require("@emotion/styled"),r=require("react"),F=require("@emotion/is-prop-valid"),a=require("styled-system"),z=require("classnames"),N=require("react-dom"),j=require("lodash"),$=e=>e&&typeof e=="object"&&"default"in e?e:{default:e};function P(e){if(e&&e.__esModule)return e;const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const s=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,s.get?s:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const g=$(L),q=$(F),C=$(z),H=P(N),A=g.default.hr`
2
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const L=require("@stenajs-webui/theme"),l=require("react/jsx-runtime"),F=require("@emotion/styled"),r=require("react"),z=require("@emotion/is-prop-valid"),a=require("styled-system"),N=require("classnames"),P=require("react-dom"),j=require("lodash"),$=e=>e&&typeof e=="object"&&"default"in e?e:{default:e};function q(e){if(e&&e.__esModule)return e;const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const s=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,s.get?s:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const g=$(F),H=$(z),C=$(N),A=q(P),V=g.default.hr`
3
3
  display: flex;
4
4
  border: 0;
5
5
  margin: 0;
@@ -7,7 +7,7 @@
7
7
  background-color: ${e=>e.color};
8
8
  height: ${e=>e.vertical?e.size||"100%":e.width||"1px"};
9
9
  width: ${e=>e.vertical?e.width||"1px":e.size||"100%"};
10
- `,V=r.forwardRef(({color:e="var(--lhds-color-ui-300)",size:t="100%",width:n="1px",vertical:s=!1},o)=>l.jsx(A,{color:e,size:t,width:n,vertical:s,ref:o})),U=g.default.button`
10
+ `,U=r.forwardRef(({color:e=L.cssColor("--lhds-color-ui-300"),size:t="100%",width:n="1px",vertical:s=!1},o)=>l.jsx(V,{color:e,size:t,width:n,vertical:s,ref:o})),B=g.default.button`
11
11
  display: inline-block;
12
12
  user-select: none;
13
13
  border: 0;
@@ -30,14 +30,14 @@
30
30
  ${({width:e})=>e?`width: ${e};`:""}
31
31
  ${({height:e})=>e?`height: ${e};`:""}
32
32
  ${({borderRadius:e})=>e?`border-radius: ${e};`:""}
33
- `,B=r.forwardRef(({disableFocusHighlight:e,onClick:t,onDblClick:n,tooltip:s,disableOpacityOnClick:o,disablePointer:u,opacityOnHover:c,disabled:d,children:i,background:f="transparent",hoverBackground:m,focusBackground:w,type:T="button",...k},D)=>{const M=!!(t||n);return l.jsx(U,{opacityOnHover:c,title:s,disabled:d,disableOpacityOnClick:o,onClick:t,onDoubleClick:n,disableFocusHighlight:e,pointer:M&&!u,ref:D,background:f,hoverBackground:m,focusBackground:w,type:T,...k,children:i})}),p=e=>e==null?0:typeof e=="boolean"?e?1:0:e,K={box:"var(--swui-shadow-box)",popover:"var(--swui-shadow-popover)",modal:"var(--swui-shadow-modal)",bottom:"var(--swui-shadow-bottom)"},W=["spacing","indent","gap","width","height","overflow","display"],G=e=>W.includes(e),J=a.system({row:{property:"flexDirection",transform:e=>e?"row":"column"},indent:{property:"--current-indent",transform:p},spacing:{property:"--current-spacing",transform:p},gap:{property:"--current-gap",transform:p},shadow:{property:"boxShadow",transform:e=>{var t;return(t=K[e])!=null?t:e}}}),b=g.default("div",{shouldForwardProp:e=>typeof e=="string"?G(e)?!1:q.default(e):!1})`
33
+ `,K=r.forwardRef(({disableFocusHighlight:e,onClick:t,onDblClick:n,tooltip:s,disableOpacityOnClick:o,disablePointer:u,opacityOnHover:c,disabled:d,children:i,background:f="transparent",hoverBackground:m,focusBackground:w,type:T="button",...k},D)=>{const M=!!(t||n);return l.jsx(B,{opacityOnHover:c,title:s,disabled:d,disableOpacityOnClick:o,onClick:t,onDoubleClick:n,disableFocusHighlight:e,pointer:M&&!u,ref:D,background:f,hoverBackground:m,focusBackground:w,type:T,...k,children:i})}),p=e=>e==null?0:typeof e=="boolean"?e?1:0:e,W={box:"var(--swui-shadow-box)",popover:"var(--swui-shadow-popover)",modal:"var(--swui-shadow-modal)",bottom:"var(--swui-shadow-bottom)"},G=["spacing","indent","gap","width","height","overflow","display"],J=e=>G.includes(e),Q=a.system({row:{property:"flexDirection",transform:e=>e?"row":"column"},indent:{property:"--current-indent",transform:p},spacing:{property:"--current-spacing",transform:p},gap:{property:"--current-gap",transform:p},shadow:{property:"boxShadow",transform:e=>{var t;return(t=W[e])!=null?t:e}}}),b=g.default("div",{shouldForwardProp:e=>typeof e=="string"?J(e)?!1:H.default(e):!1})`
34
34
  --current-spacing: 0;
35
35
  --current-indent: 0;
36
36
  --current-gap: 0;
37
37
  box-sizing: border-box;
38
38
  display: flex;
39
39
  flex-direction: column;
40
- ${J};
40
+ ${Q};
41
41
  ${a.background};
42
42
  ${a.border};
43
43
  ${a.borderRight};
@@ -75,10 +75,10 @@
75
75
  ${({focusWithinBackground:e})=>e?`background: ${e};`:""}
76
76
  ${({focusWithinBorder:e})=>e?`border: ${e};`:""}
77
77
  }
78
- `,Q=r.forwardRef(function(t,n){return l.jsx(b,{ref:n,...t})}),I=e=>{const{x:t,y:n,width:s,height:o,bottom:u,top:c,left:d,right:i}=e.getBoundingClientRect();return{width:s,height:o,top:c,left:d,x:t,y:n,right:i,bottom:u}},X=(e,t)=>e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height&&e.bottom===t.bottom&&e.top===t.top&&e.left===t.left&&e.right===t.right,O=(e,t)=>{const[n,s]=r.useState(),o=r.useCallback(()=>{window.requestAnimationFrame(()=>{if(e.current){const u=I(e.current);(!n||!X(n,u))&&t&&t(u),s(u)}})},[e,n,s,t]);return r.useLayoutEffect(()=>{o()},[o]),{dimensions:n}},Y=r.forwardRef(function({onResize:t,...n},s){const o=r.useRef(null),u=s!=null?s:o;return O(u,t),l.jsx(b,{...n,ref:s})}),Z=r.forwardRef(function(t,n){return l.jsx(b,{row:!0,ref:n,...t})}),ee=r.forwardRef(function({num:t=1,...n},s){return l.jsx(b,{indent:t,ref:s,...n})}),te=r.forwardRef(function({num:t=1,...n},s){return l.jsx(b,{spacing:t,ref:s,...n})}),ne=g.default.div`
78
+ `,X=r.forwardRef(function(t,n){return l.jsx(b,{ref:n,...t})}),I=e=>{const{x:t,y:n,width:s,height:o,bottom:u,top:c,left:d,right:i}=e.getBoundingClientRect();return{width:s,height:o,top:c,left:d,x:t,y:n,right:i,bottom:u}},Y=(e,t)=>e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height&&e.bottom===t.bottom&&e.top===t.top&&e.left===t.left&&e.right===t.right,O=(e,t)=>{const[n,s]=r.useState(),o=r.useCallback(()=>{window.requestAnimationFrame(()=>{if(e.current){const u=I(e.current);(!n||!Y(n,u))&&t&&t(u),s(u)}})},[e,n,s,t]);return r.useLayoutEffect(()=>{o()},[o]),{dimensions:n}},Z=r.forwardRef(function({onResize:t,...n},s){const o=r.useRef(null),u=s!=null?s:o;return O(u,t),l.jsx(b,{...n,ref:s})}),ee=r.forwardRef(function(t,n){return l.jsx(b,{row:!0,ref:n,...t})}),te=r.forwardRef(function({num:t=1,...n},s){return l.jsx(b,{indent:t,ref:s,...n})}),ne=r.forwardRef(function({num:t=1,...n},s){return l.jsx(b,{spacing:t,ref:s,...n})}),se=g.default.div`
79
79
  --current-size: 1;
80
80
  flex: none;
81
81
  width: calc(var(--current-size) * var(--swui-metrics-space));
82
82
  height: calc(var(--current-size) * var(--swui-metrics-space));
83
- `,se=({half:e=!1,horizontal:t=!1,num:n=1,vertical:s=!1})=>{const o=n*(e?.5:1);return l.jsx(ne,{style:{["--current-size"]:o,height:t?1:void 0,width:s?1:void 0}})},re=({children:e,nest:t,render:n})=>t?l.jsx(l.Fragment,{children:n(e)}):l.jsx(l.Fragment,{children:e}),oe="_text_1iisw_1",ue="_standard_1iisw_24",ce="_bold_1iisw_27",ie="_caption_1iisw_31",ae="_overline_1iisw_39",de="_large_1iisw_48",le="_medium_1iisw_53",fe="_small_1iisw_58",me="_smaller_1iisw_63",_={text:oe,standard:ue,bold:ce,caption:ie,overline:ae,large:de,medium:le,small:fe,smaller:me},x=r.forwardRef(({children:e,variant:t="standard",size:n="medium",className:s,color:o,userSelect:u,whiteSpace:c,wordBreak:d,style:i,...f},m)=>l.jsx("span",{className:C.default(_.text,_[t],_[n],s),ref:m,style:{color:o,userSelect:u,whiteSpace:c,wordBreak:d,...i},...f,children:e})),he=x,be=e=>l.jsx(x,{size:"small",...e}),xe=e=>l.jsx(x,{size:"smaller",...e}),we=e=>l.jsx(x,{size:"medium",...e}),pe=e=>l.jsx(x,{size:"large",...e}),ge="_heading_xn9xj_1",ve="_h1_xn9xj_15",_e="_h2_xn9xj_19",$e="_h3_xn9xj_23",Ee="_h4_xn9xj_27",ye="_h5_xn9xj_31",Se="_h6_xn9xj_35",E={heading:ge,h1:ve,h2:_e,h3:$e,h4:Ee,h5:ye,h6:Se},R=r.forwardRef(({variant:e="h3",className:t,color:n,whiteSpace:s,wordBreak:o,style:u,children:c,as:d,...i},f)=>{const m=d!=null?d:e;return l.jsx(m,{className:C.default(E.heading,E[e],t),style:{color:n,whiteSpace:s,wordBreak:o,...u},ref:f,...i,children:c})}),je=e=>l.jsx(R,{variant:"h2",...e}),Ce=(e,t)=>e===t,Ie=(e,t,n=Ce)=>{const s=r.useCallback(i=>{e.some(f=>n(f,i))||t([...e,i])},[e,t,n]),o=r.useCallback(i=>{t(i.reduce((f,m)=>f.some(w=>n(w,m))?f:[...f,m],e))},[e,t,n]),u=r.useCallback(i=>{const f=e.findIndex(m=>n(m,i));f>=0&&t(e.filter((m,w)=>w!==f))},[e,t,n]),c=r.useCallback(i=>{t(e.filter(f=>!i.some(m=>n(m,f))))},[e,t,n]),d=r.useCallback(i=>{e.some(m=>n(m,i))?u(i):s(i)},[e,s,u,n]);return{add:s,addMultiple:o,remove:u,removeMultiple:c,toggle:d}},v=e=>{const[t,n]=r.useState(e),s=r.useCallback(()=>{n(!0)},[n]),o=r.useCallback(()=>{n(!1)},[n]),u=r.useCallback(()=>{n(c=>!c)},[n]);return[t,s,o,u]},Oe=(e,t)=>{const[n,s]=r.useState(e);return r.useEffect(()=>{const o=setTimeout(()=>{s(e)},t);return()=>{clearTimeout(o)}},[e,t]),n},Re=(e,t)=>{const[n,s]=r.useState(e);return r.useEffect(()=>{e&&s(!0);const o=setTimeout(()=>{e||s(e)},t);return()=>{clearTimeout(o)}},[e,t]),n};let Te=0;const y=e=>`webui-${e?e+"-":""}${++Te}`,ke=e=>{const[t,n]=r.useState(()=>y(e));return r.useEffect(()=>n(y(e)),[e]),t},h=(e,t,n)=>{const s=r.useRef();r.useEffect(()=>{s.current=n},[n]),r.useEffect(()=>{if(!(e.current&&e.current.addEventListener))return;const u=d=>{if(s.current)return s.current(d)};if(!e.current)return;const c=e.current;return c.addEventListener(t,u),()=>{c&&c.removeEventListener(t,u)}},[t,e])},De=e=>{const[t,n,s]=v(!1);r.useEffect(()=>{document.activeElement===H.findDOMNode(e.current)?n():s()},[e,s,n]),h(e,"focus",n),h(e,"blur",s);const o=r.useCallback(()=>{e.current&&e.current.focus()},[e]),u=r.useCallback(()=>{e.current&&e.current.blur()},[e]);return{isInFocus:t,focus:o,blur:u}},Me=e=>{const[t,n,s]=v(!1);return h(e,"mouseover",n),h(e,"mouseout",s),t},Le=e=>{const[t,n,s]=v(!1);return h(e,"mouseenter",n),h(e,"mouseleave",s),t},Fe=(e,t)=>{const n=r.useRef(()=>{});r.useEffect(()=>{n.current=t},[t]),r.useEffect(()=>{const s=o=>{!e.filter(c=>c.current).every(c=>c.current&&!c.current.contains(o.target))||n.current(o)};return document.addEventListener("mousedown",s),document.addEventListener("touchstart",s),()=>{document.removeEventListener("mousedown",s),document.removeEventListener("touchstart",s)}},[...e])},ze=(e,t,n)=>{const s=r.useRef(()=>{});r.useEffect(()=>{s.current=t},[t]),r.useEffect(()=>{const o=u=>{!e.current||e.current.contains(u.target)||s.current(u)};return document.addEventListener("mousedown",o,n),document.addEventListener("touchstart",o,n),()=>{document.removeEventListener("mousedown",o,n),document.removeEventListener("touchstart",o,n)}},[e,n])},S=["mousemove","mousedown","keydown","touchstart","scroll"],Ne=(e,t)=>{const n=r.useRef(()=>{});r.useEffect(()=>{n.current=e},[e]),r.useEffect(()=>{const s=j.debounce(n.current,t);return S.forEach(o=>window.addEventListener(o,s)),()=>{S.forEach(o=>window.removeEventListener(o,s))}},[t])},Pe=(e,t)=>{const[n,s]=r.useState(!1),{rootMargin:o,root:u,threshold:c}=t||{},d=r.useMemo(()=>new IntersectionObserver(([i])=>s(i.isIntersecting),{rootMargin:o,root:u,threshold:c}),[s,o,u,c]);return r.useEffect(()=>(e.current&&d.observe(e.current),()=>{d.disconnect()}),[d,e]),n},qe=e=>{const t=r.useRef(null);return r.useEffect(()=>{!e||(typeof e=="function"?e(t.current):e.current=t.current)}),t},He=(e,t,n=!0)=>{const[s,o]=r.useState(e),u=r.useRef(),c=r.useCallback((d,i=t)=>{o(d),n&&clearTimeout(u.current),u.current=setTimeout(()=>o(e),i)},[t,n,e]);return r.useEffect(()=>()=>{clearTimeout(u.current)},[]),[s,c]},Ae=e=>{throw new Error(`Switch unhandled case: ${e}`)},Ve=(e,t)=>t,Ue=e=>Object.keys(e).filter(t=>e[t]),Be=e=>j.pickBy(e,Ke),Ke=(e,t)=>We(t),We=e=>e.startsWith("data-")||e.startsWith("aria-"),Ge=e=>{try{const t=parseFloat(e);return isNaN(t)||t==null?void 0:t}catch{}},Je=e=>{try{const t=parseInt(e,10);return isNaN(t)||t==null?void 0:t}catch{}};exports.Box=b;exports.Clickable=B;exports.Column=Q;exports.HeaderText=je;exports.Heading=R;exports.Indent=ee;exports.LargeText=pe;exports.Nest=re;exports.ResizeAwareBox=Y;exports.Row=Z;exports.SeparatorLine=V;exports.SmallText=be;exports.SmallerText=xe;exports.Space=se;exports.Spacing=te;exports.StandardText=we;exports.Text=x;exports.Txt=he;exports.booleanOrNumberToNumber=p;exports.exhaustSwitchCase=Ve;exports.exhaustSwitchCaseElseThrow=Ae;exports.getDataProps=Be;exports.getDimensionObject=I;exports.parseFloatElseUndefined=Ge;exports.parseIntElseUndefined=Je;exports.truthyKeysAsList=Ue;exports.useArraySet=Ie;exports.useBoolean=v;exports.useDebounce=Oe;exports.useDelayedFalse=Re;exports.useDomId=ke;exports.useElementDimensions=O;exports.useElementFocus=De;exports.useEventListener=h;exports.useForwardedRef=qe;exports.useMouseIsEntered=Le;exports.useMouseIsOver=Me;exports.useMultiOnClickOutside=Fe;exports.useOnClickOutside=ze;exports.useOnNoMouseMovement=Ne;exports.useOnScreen=Pe;exports.useTimeoutState=He;
83
+ `,re=({half:e=!1,horizontal:t=!1,num:n=1,vertical:s=!1})=>{const o=n*(e?.5:1);return l.jsx(se,{style:{["--current-size"]:o,height:t?1:void 0,width:s?1:void 0}})},oe=({children:e,nest:t,render:n})=>t?l.jsx(l.Fragment,{children:n(e)}):l.jsx(l.Fragment,{children:e}),ue="_text_1iisw_1",ce="_standard_1iisw_24",ie="_bold_1iisw_27",ae="_caption_1iisw_31",de="_overline_1iisw_39",le="_large_1iisw_48",fe="_medium_1iisw_53",me="_small_1iisw_58",he="_smaller_1iisw_63",_={text:ue,standard:ce,bold:ie,caption:ae,overline:de,large:le,medium:fe,small:me,smaller:he},x=r.forwardRef(({children:e,variant:t="standard",size:n="medium",className:s,color:o,userSelect:u,whiteSpace:c,wordBreak:d,style:i,...f},m)=>l.jsx("span",{className:C.default(_.text,_[t],_[n],s),ref:m,style:{color:o,userSelect:u,whiteSpace:c,wordBreak:d,...i},...f,children:e})),be=x,xe=e=>l.jsx(x,{size:"small",...e}),we=e=>l.jsx(x,{size:"smaller",...e}),pe=e=>l.jsx(x,{size:"medium",...e}),ge=e=>l.jsx(x,{size:"large",...e}),ve="_heading_xn9xj_1",_e="_h1_xn9xj_15",$e="_h2_xn9xj_19",Ee="_h3_xn9xj_23",ye="_h4_xn9xj_27",Se="_h5_xn9xj_31",je="_h6_xn9xj_35",E={heading:ve,h1:_e,h2:$e,h3:Ee,h4:ye,h5:Se,h6:je},R=r.forwardRef(({variant:e="h3",className:t,color:n,whiteSpace:s,wordBreak:o,style:u,children:c,as:d,...i},f)=>{const m=d!=null?d:e;return l.jsx(m,{className:C.default(E.heading,E[e],t),style:{color:n,whiteSpace:s,wordBreak:o,...u},ref:f,...i,children:c})}),Ce=e=>l.jsx(R,{variant:"h2",...e}),Ie=(e,t)=>e===t,Oe=(e,t,n=Ie)=>{const s=r.useCallback(i=>{e.some(f=>n(f,i))||t([...e,i])},[e,t,n]),o=r.useCallback(i=>{t(i.reduce((f,m)=>f.some(w=>n(w,m))?f:[...f,m],e))},[e,t,n]),u=r.useCallback(i=>{const f=e.findIndex(m=>n(m,i));f>=0&&t(e.filter((m,w)=>w!==f))},[e,t,n]),c=r.useCallback(i=>{t(e.filter(f=>!i.some(m=>n(m,f))))},[e,t,n]),d=r.useCallback(i=>{e.some(m=>n(m,i))?u(i):s(i)},[e,s,u,n]);return{add:s,addMultiple:o,remove:u,removeMultiple:c,toggle:d}},v=e=>{const[t,n]=r.useState(e),s=r.useCallback(()=>{n(!0)},[n]),o=r.useCallback(()=>{n(!1)},[n]),u=r.useCallback(()=>{n(c=>!c)},[n]);return[t,s,o,u]},Re=(e,t)=>{const[n,s]=r.useState(e);return r.useEffect(()=>{const o=setTimeout(()=>{s(e)},t);return()=>{clearTimeout(o)}},[e,t]),n},Te=(e,t)=>{const[n,s]=r.useState(e);return r.useEffect(()=>{e&&s(!0);const o=setTimeout(()=>{e||s(e)},t);return()=>{clearTimeout(o)}},[e,t]),n};let ke=0;const y=e=>`webui-${e?e+"-":""}${++ke}`,De=e=>{const[t,n]=r.useState(()=>y(e));return r.useEffect(()=>n(y(e)),[e]),t},h=(e,t,n)=>{const s=r.useRef();r.useEffect(()=>{s.current=n},[n]),r.useEffect(()=>{if(!(e.current&&e.current.addEventListener))return;const u=d=>{if(s.current)return s.current(d)};if(!e.current)return;const c=e.current;return c.addEventListener(t,u),()=>{c&&c.removeEventListener(t,u)}},[t,e])},Me=e=>{const[t,n,s]=v(!1);r.useEffect(()=>{document.activeElement===A.findDOMNode(e.current)?n():s()},[e,s,n]),h(e,"focus",n),h(e,"blur",s);const o=r.useCallback(()=>{e.current&&e.current.focus()},[e]),u=r.useCallback(()=>{e.current&&e.current.blur()},[e]);return{isInFocus:t,focus:o,blur:u}},Le=e=>{const[t,n,s]=v(!1);return h(e,"mouseover",n),h(e,"mouseout",s),t},Fe=e=>{const[t,n,s]=v(!1);return h(e,"mouseenter",n),h(e,"mouseleave",s),t},ze=(e,t)=>{const n=r.useRef(()=>{});r.useEffect(()=>{n.current=t},[t]),r.useEffect(()=>{const s=o=>{!e.filter(c=>c.current).every(c=>c.current&&!c.current.contains(o.target))||n.current(o)};return document.addEventListener("mousedown",s),document.addEventListener("touchstart",s),()=>{document.removeEventListener("mousedown",s),document.removeEventListener("touchstart",s)}},[...e])},Ne=(e,t,n)=>{const s=r.useRef(()=>{});r.useEffect(()=>{s.current=t},[t]),r.useEffect(()=>{const o=u=>{!e.current||e.current.contains(u.target)||s.current(u)};return document.addEventListener("mousedown",o,n),document.addEventListener("touchstart",o,n),()=>{document.removeEventListener("mousedown",o,n),document.removeEventListener("touchstart",o,n)}},[e,n])},S=["mousemove","mousedown","keydown","touchstart","scroll"],Pe=(e,t)=>{const n=r.useRef(()=>{});r.useEffect(()=>{n.current=e},[e]),r.useEffect(()=>{const s=j.debounce(n.current,t);return S.forEach(o=>window.addEventListener(o,s)),()=>{S.forEach(o=>window.removeEventListener(o,s))}},[t])},qe=(e,t)=>{const[n,s]=r.useState(!1),{rootMargin:o,root:u,threshold:c}=t||{},d=r.useMemo(()=>new IntersectionObserver(([i])=>s(i.isIntersecting),{rootMargin:o,root:u,threshold:c}),[s,o,u,c]);return r.useEffect(()=>(e.current&&d.observe(e.current),()=>{d.disconnect()}),[d,e]),n},He=e=>{const t=r.useRef(null);return r.useEffect(()=>{!e||(typeof e=="function"?e(t.current):e.current=t.current)}),t},Ae=(e,t,n=!0)=>{const[s,o]=r.useState(e),u=r.useRef(),c=r.useCallback((d,i=t)=>{o(d),n&&clearTimeout(u.current),u.current=setTimeout(()=>o(e),i)},[t,n,e]);return r.useEffect(()=>()=>{clearTimeout(u.current)},[]),[s,c]},Ve=e=>{throw new Error(`Switch unhandled case: ${e}`)},Ue=(e,t)=>t,Be=e=>Object.keys(e).filter(t=>e[t]),Ke=e=>j.pickBy(e,We),We=(e,t)=>Ge(t),Ge=e=>e.startsWith("data-")||e.startsWith("aria-"),Je=e=>{try{const t=parseFloat(e);return isNaN(t)||t==null?void 0:t}catch{}},Qe=e=>{try{const t=parseInt(e,10);return isNaN(t)||t==null?void 0:t}catch{}};exports.Box=b;exports.Clickable=K;exports.Column=X;exports.HeaderText=Ce;exports.Heading=R;exports.Indent=te;exports.LargeText=ge;exports.Nest=oe;exports.ResizeAwareBox=Z;exports.Row=ee;exports.SeparatorLine=U;exports.SmallText=xe;exports.SmallerText=we;exports.Space=re;exports.Spacing=ne;exports.StandardText=pe;exports.Text=x;exports.Txt=be;exports.booleanOrNumberToNumber=p;exports.exhaustSwitchCase=Ue;exports.exhaustSwitchCaseElseThrow=Ve;exports.getDataProps=Ke;exports.getDimensionObject=I;exports.parseFloatElseUndefined=Je;exports.parseIntElseUndefined=Qe;exports.truthyKeysAsList=Be;exports.useArraySet=Oe;exports.useBoolean=v;exports.useDebounce=Re;exports.useDelayedFalse=Te;exports.useDomId=De;exports.useElementDimensions=O;exports.useElementFocus=Me;exports.useEventListener=h;exports.useForwardedRef=He;exports.useMouseIsEntered=Fe;exports.useMouseIsOver=Le;exports.useMultiOnClickOutside=ze;exports.useOnClickOutside=Ne;exports.useOnNoMouseMovement=Pe;exports.useOnScreen=qe;exports.useTimeoutState=Ae;
84
84
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/components/decorators/separatorline/SeparatorLine.tsx","../src/components/interaction/Clickable.tsx","../src/utils/BooleanOrNumberToNumber.ts","../src/components/layout/box/Box.tsx","../src/components/layout/column/Column.tsx","../src/hooks/UseElementDimensions.ts","../src/components/layout/box/ResizeAwareBox.tsx","../src/components/layout/row/Row.tsx","../src/components/layout/indent/Indent.tsx","../src/components/layout/spacing/Spacing.tsx","../src/components/layout/space/Space.tsx","../src/components/util/Nest.tsx","../src/components/text/Text.tsx","../src/components/deprecated-text/SmallText.tsx","../src/components/deprecated-text/SmallerText.tsx","../src/components/deprecated-text/StandardText.tsx","../src/components/deprecated-text/LargeText.tsx","../src/components/heading/Heading.tsx","../src/components/deprecated-text/HeaderText.tsx","../src/hooks/UseArraySet.ts","../src/hooks/UseBoolean.ts","../src/hooks/UseDebounce.ts","../src/hooks/UseDelayedFalse.ts","../src/hooks/UseDomId.ts","../src/hooks/UseEventListener.ts","../src/hooks/UseElementFocus.ts","../src/hooks/UseMouseIsOver.ts","../src/hooks/UseMouseIsEntered.ts","../src/hooks/UseMultiOnClickOutside.ts","../src/hooks/UseOnClickOutside.ts","../src/hooks/UseOnNoMouseInput.ts","../src/hooks/UseOnScreen.ts","../src/hooks/UseForwardedRef.ts","../src/hooks/UseTimeoutState.ts","../src/utils/SwitchCaseExhauster.ts","../src/utils/TruthyKeysAsList.ts","../src/utils/PropsForwarder.ts","../src/utils/parsers/NumberParser.ts"],"sourcesContent":["import styled from \"@emotion/styled\";\nimport { Property } from \"csstype\";\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\n\nexport interface SeparatorLineProps {\n color?: Property.Color;\n vertical?: boolean;\n size?: string;\n width?: string;\n}\n\ninterface SeparatorLineComponentProps {\n color: string;\n vertical?: boolean;\n size?: string;\n width?: string;\n}\n\nconst SeparatorLineComponent = styled.hr<SeparatorLineComponentProps>`\n display: flex;\n border: 0;\n margin: 0;\n flex: none;\n background-color: ${(props) => props.color};\n height: ${(props) =>\n props.vertical ? props.size || \"100%\" : props.width || \"1px\"};\n width: ${(props) =>\n props.vertical ? props.width || \"1px\" : props.size || \"100%\"};\n`;\n\nexport const SeparatorLine = forwardRef<HTMLHRElement, SeparatorLineProps>(\n (\n {\n color = \"var(--lhds-color-ui-300)\",\n size = \"100%\",\n width = \"1px\",\n vertical = false,\n },\n ref\n ) => {\n return (\n <SeparatorLineComponent\n color={color}\n size={size}\n width={width}\n vertical={vertical}\n ref={ref}\n />\n );\n }\n);\n","import styled from \"@emotion/styled\";\nimport * as React from \"react\";\nimport { CSSProperties, forwardRef, MouseEventHandler } from \"react\";\nimport { ButtonElementProps } from \"../../types/ElementProps\";\n\nexport interface ClickableProps extends ButtonElementProps {\n /** Callback function called when clicking on click area. */\n onClick?: MouseEventHandler<HTMLButtonElement>;\n /** Callback function called when double clicking on click area. */\n onDblClick?: MouseEventHandler<HTMLButtonElement>;\n /** Adds a title to the click area. */\n tooltip?: string;\n /** If set, there is no opacity applies when clicking on the click area. */\n disableOpacityOnClick?: boolean;\n /** Mouse does not turn into pointer when hovering over click area. */\n disablePointer?: boolean;\n /** When set, click area receives opacity when mouse hovers over it. */\n opacityOnHover?: boolean;\n /** Custom style on div with click event. */\n style?: CSSProperties;\n /** Disables shadow when element is focused. */\n disableFocusHighlight?: boolean;\n /** Disables the HTML button element. */\n disabled?: boolean;\n /**\n * Sets the background of the box.\n */\n background?: string;\n /**\n * Sets the background of the box when the box is in focus.\n */\n focusBackground?: string;\n /**\n * Sets the background of the box when hovering with mouse.\n */\n hoverBackground?: string;\n /**\n * The width.\n */\n width?: string;\n /**\n * The height.\n */\n height?: string;\n /**\n * Border radius\n */\n borderRadius?: string;\n}\n\ninterface ClickableElementProps {\n disableOpacityOnClick?: boolean;\n opacityOnHover?: boolean;\n disableFocusHighlight?: boolean;\n pointer?: boolean;\n background?: string;\n focusBackground?: string;\n hoverBackground?: string;\n width?: string;\n height?: string;\n borderRadius?: string;\n}\n\nconst ClickableElement = styled.button<ClickableElementProps>`\n display: inline-block;\n user-select: none;\n border: 0;\n padding: 0;\n background: ${({ background }) => background};\n ${({ pointer }) => (pointer ? \"cursor: pointer;\" : \"\")}\n\n :hover {\n ${(props) => (props.opacityOnHover ? \"opacity: 0.7;\" : \"\")};\n ${({ hoverBackground }) => `background: ${hoverBackground};`}\n }\n :active {\n ${({ disableOpacityOnClick }) =>\n !disableOpacityOnClick ? \"opacity: 0.5;\" : \"\"}\n }\n :focus {\n outline: 0;\n ${({ disableFocusHighlight }) =>\n disableFocusHighlight\n ? \"\"\n : \"box-shadow: 0 0 3pt 2pt rgba(0, 0, 100, 0.3);\"}\n ${({ focusBackground }) => `background: ${focusBackground};`}\n }\n ${({ width }) => (width ? `width: ${width};` : \"\")}\n ${({ height }) => (height ? `height: ${height};` : \"\")}\n ${({ borderRadius }) =>\n borderRadius ? `border-radius: ${borderRadius};` : \"\"}\n`;\n\nexport const Clickable = forwardRef<HTMLButtonElement, ClickableProps>(\n (\n {\n disableFocusHighlight,\n onClick,\n onDblClick,\n tooltip,\n disableOpacityOnClick,\n disablePointer,\n opacityOnHover,\n disabled,\n children,\n background = \"transparent\",\n hoverBackground,\n focusBackground,\n type = \"button\",\n ...restProps\n },\n ref\n ) => {\n const hasClickHandler = !!(onClick || onDblClick);\n\n return (\n <ClickableElement\n opacityOnHover={opacityOnHover}\n title={tooltip}\n disabled={disabled}\n disableOpacityOnClick={disableOpacityOnClick}\n onClick={onClick}\n onDoubleClick={onDblClick}\n disableFocusHighlight={disableFocusHighlight}\n pointer={hasClickHandler && !disablePointer}\n ref={ref}\n background={background}\n hoverBackground={hoverBackground}\n focusBackground={focusBackground}\n type={type}\n {...restProps}\n >\n {children}\n </ClickableElement>\n );\n }\n);\n","export const booleanOrNumberToNumber = (\n num: number | boolean | undefined\n): number => {\n if (num == null) {\n return 0;\n }\n if (typeof num === \"boolean\") {\n return num ? 1 : 0;\n }\n return num;\n};\n","import isPropValid from \"@emotion/is-prop-valid\";\nimport styled from \"@emotion/styled\";\nimport { Property } from \"csstype\";\n\nimport {\n background,\n BackgroundProps,\n border,\n borderBottom,\n BorderBottomProps,\n borderColor,\n borderLeft,\n BorderLeftProps,\n borderRadius,\n BorderRadiusProps,\n borderRight,\n BorderRightProps,\n borderStyle,\n BorderStyleProps,\n borderTop,\n BorderTopProps,\n borderWidth,\n BorderWidthProps,\n bottom,\n BottomProps,\n boxShadow,\n BoxShadowProps,\n flexbox,\n FlexboxProps,\n layout,\n LayoutProps,\n left,\n LeftProps,\n overflow,\n OverflowProps,\n position,\n PositionProps,\n ResponsiveValue,\n right,\n RightProps,\n system,\n TLengthStyledSystem,\n top,\n TopProps,\n zIndex,\n ZIndexProps,\n} from \"styled-system\";\nimport { DivProps } from \"../../../types/ElementProps\";\nimport { booleanOrNumberToNumber } from \"../../../utils/BooleanOrNumberToNumber\";\n\ninterface StyledSystemProps\n extends BorderRadiusProps,\n BorderStyleProps,\n BorderWidthProps,\n BorderLeftProps,\n BorderRightProps,\n BorderTopProps,\n BorderBottomProps,\n FlexboxProps,\n LayoutProps,\n OverflowProps,\n PositionProps,\n ZIndexProps,\n LeftProps,\n RightProps,\n TopProps,\n BottomProps {}\n\nconst shadows = {\n box: \"var(--swui-shadow-box)\",\n popover: \"var(--swui-shadow-popover)\",\n modal: \"var(--swui-shadow-modal)\",\n bottom: \"var(--swui-shadow-bottom)\",\n};\n\ntype ShadowType = keyof typeof shadows;\n\nexport interface BoxProps extends StyledSystemProps, DivProps {\n /**\n * If true, children are placed in a row.\n */\n row?: ResponsiveValue<boolean>;\n\n /**\n * Adds spacing over and under content.\n */\n spacing?: ResponsiveValue<boolean | TLengthStyledSystem>;\n\n /**\n * Adds spacing left and right of content.\n */\n indent?: ResponsiveValue<boolean | TLengthStyledSystem>;\n\n /**\n * Adds spacing between children.\n */\n gap?: ResponsiveValue<boolean | TLengthStyledSystem>;\n\n /**\n * Adds a shadow around the box.\n */\n shadow?: ResponsiveValue<Property.BoxShadow | ShadowType>;\n\n /**\n * Sets the background of the box.\n */\n background?: ResponsiveValue<Property.Background<TLengthStyledSystem>>;\n\n /**\n * Sets the border of the box.\n */\n border?: ResponsiveValue<Property.Border<TLengthStyledSystem>>;\n\n /**\n * Sets the border color of the box.\n */\n borderColor?: ResponsiveValue<Property.BorderColor>;\n\n /**\n * Sets the background of the box when hovering with mouse.\n */\n hoverBackground?: Property.Background<TLengthStyledSystem>;\n\n /**\n * Sets the border of the box when hovering with mouse.\n */\n hoverBorder?: Property.Border<TLengthStyledSystem>;\n\n /**\n * Sets the background of the box when the box is in focus.\n */\n focusBackground?: Property.Background<TLengthStyledSystem>;\n\n /**\n * Sets the border of the box when the box is in focus.\n */\n focusBorder?: Property.Border<TLengthStyledSystem>;\n\n /**\n * Sets the background of the box when focus is within the box.\n */\n focusWithinBackground?: Property.Background<TLengthStyledSystem>;\n\n /**\n * Sets the border of the box when focus is within the box.\n */\n focusWithinBorder?: Property.Border<TLengthStyledSystem>;\n}\n\nconst excludedProps = [\n \"spacing\",\n \"indent\",\n \"gap\",\n \"width\",\n \"height\",\n \"overflow\",\n \"display\",\n];\n\nconst isExcludedWebUiProp = (propName: string) =>\n excludedProps.includes(propName);\n\nconst box = system({\n row: {\n property: \"flexDirection\",\n transform: (row: boolean) => (row ? \"row\" : \"column\"),\n },\n indent: {\n // @ts-ignore\n property: \"--current-indent\",\n transform: booleanOrNumberToNumber,\n },\n spacing: {\n // @ts-ignore\n property: \"--current-spacing\",\n transform: booleanOrNumberToNumber,\n },\n gap: {\n // @ts-ignore\n property: \"--current-gap\",\n transform: booleanOrNumberToNumber,\n },\n shadow: {\n property: \"boxShadow\",\n transform: (value) => shadows[value] ?? value,\n },\n});\n\ntype InnerProps = BoxProps & BoxShadowProps & BackgroundProps;\n\nexport const Box = styled(\"div\", {\n shouldForwardProp: (propName) =>\n typeof propName === \"string\"\n ? isExcludedWebUiProp(propName)\n ? false\n : isPropValid(propName)\n : false,\n})<InnerProps>`\n --current-spacing: 0;\n --current-indent: 0;\n --current-gap: 0;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n ${box};\n ${background};\n ${border};\n ${borderRight};\n ${borderLeft};\n ${borderTop};\n ${borderBottom};\n ${borderColor};\n ${borderRadius};\n ${borderStyle};\n ${borderWidth};\n ${boxShadow};\n ${flexbox};\n ${overflow};\n ${position};\n ${layout};\n ${zIndex};\n ${left};\n ${right};\n ${top};\n ${bottom};\n\n gap: calc(var(--current-gap) * var(--swui-metrics-space));\n\n padding: calc(var(--current-spacing) * var(--swui-metrics-spacing))\n calc(var(--current-indent) * var(--swui-metrics-indent));\n :hover {\n ${({ hoverBackground }) =>\n hoverBackground ? `background: ${hoverBackground};` : \"\"}\n ${({ hoverBorder }) => (hoverBorder ? `border: ${hoverBorder};` : \"\")}\n }\n :focus {\n ${({ focusBackground }) =>\n focusBackground ? `background: ${focusBackground};` : \"\"}\n ${({ focusBorder }) => (focusBorder ? `border: ${focusBorder};` : \"\")}\n }\n :focus-within {\n ${({ focusWithinBackground }) =>\n focusWithinBackground ? `background: ${focusWithinBackground};` : \"\"}\n ${({ focusWithinBorder }) =>\n focusWithinBorder ? `border: ${focusWithinBorder};` : \"\"}\n }\n`;\n","import * as React from \"react\";\nimport { forwardRef } from \"react\";\nimport { Box, BoxProps } from \"../box/Box\";\n\nexport const Column = forwardRef<HTMLDivElement, BoxProps>(function Column(\n props,\n ref\n) {\n return <Box ref={ref} {...props} />;\n});\n","import { RefObject, useCallback, useLayoutEffect, useState } from \"react\";\n\nexport interface ElementDimensions {\n width: number;\n height: number;\n top: number;\n left: number;\n x: number;\n y: number;\n right: number;\n bottom: number;\n}\n\nexport const getDimensionObject = (node: HTMLElement): ElementDimensions => {\n const { x, y, width, height, bottom, top, left, right } =\n node.getBoundingClientRect();\n\n return {\n width,\n height,\n top,\n left,\n x,\n y,\n right,\n bottom,\n };\n};\n\nconst isEqualDimensions = (\n a: ElementDimensions,\n b: ElementDimensions\n): boolean =>\n a.x === b.x &&\n a.y === b.y &&\n a.width === b.width &&\n a.height === b.height &&\n a.bottom === b.bottom &&\n a.top === b.top &&\n a.left === b.left &&\n a.right === b.right;\n\nexport const useElementDimensions = (\n ref: RefObject<HTMLElement>,\n onResizeElement?: (dimensions: ElementDimensions) => void\n) => {\n const [dimensions, setDimensions] = useState<ElementDimensions | undefined>();\n\n const updateDimensions = useCallback(() => {\n window.requestAnimationFrame(() => {\n if (ref.current) {\n const newDimensions = getDimensionObject(ref.current);\n if (!dimensions || !isEqualDimensions(dimensions, newDimensions)) {\n if (onResizeElement) {\n onResizeElement(newDimensions);\n }\n }\n setDimensions(newDimensions);\n }\n });\n }, [ref, dimensions, setDimensions, onResizeElement]);\n\n useLayoutEffect(() => {\n updateDimensions();\n }, [updateDimensions]);\n\n return {\n dimensions,\n };\n};\n","import * as React from \"react\";\nimport { forwardRef, RefObject, useRef } from \"react\";\nimport { Box, BoxProps } from \"./Box\";\nimport {\n ElementDimensions,\n useElementDimensions,\n} from \"../../../hooks/UseElementDimensions\";\n\nexport interface ResizeAwareBoxProps extends BoxProps {\n onResize?: (dimensions: ElementDimensions) => void;\n}\n\nexport const ResizeAwareBox = forwardRef<HTMLDivElement, ResizeAwareBoxProps>(\n function ResizeAwareBox({ onResize, ...boxProps }, ref) {\n const localRef = useRef<HTMLDivElement>(null);\n const currentRef = (ref as RefObject<HTMLDivElement>) ?? localRef;\n useElementDimensions(currentRef, onResize);\n\n return <Box {...boxProps} ref={ref} />;\n }\n);\n","import * as React from \"react\";\nimport { forwardRef } from \"react\";\nimport { Box, BoxProps } from \"../box/Box\";\n\nexport const Row = forwardRef<HTMLDivElement, BoxProps>(function Row(\n props,\n ref\n) {\n return <Box row ref={ref} {...props} />;\n});\n","import * as React from \"react\";\nimport { forwardRef } from \"react\";\nimport { Box, BoxProps } from \"../box/Box\";\nimport { ResponsiveValue, TLengthStyledSystem } from \"styled-system\";\n\nexport interface IndentProps extends BoxProps {\n num?: ResponsiveValue<boolean | TLengthStyledSystem>;\n}\n\nexport const Indent = forwardRef<HTMLDivElement, IndentProps>(function Indent(\n { num = 1, ...props },\n ref\n) {\n return <Box indent={num} ref={ref} {...props} />;\n});\n","import * as React from \"react\";\nimport { forwardRef } from \"react\";\nimport { Box, BoxProps } from \"../box/Box\";\nimport { ResponsiveValue, TLengthStyledSystem } from \"styled-system\";\n\nexport interface SpacingProps extends BoxProps {\n num?: ResponsiveValue<boolean | TLengthStyledSystem>;\n}\n\nexport const Spacing = forwardRef<HTMLDivElement, SpacingProps>(\n function Spacing({ num = 1, ...props }, ref) {\n return <Box spacing={num} ref={ref} {...props} />;\n }\n);\n","import styled from \"@emotion/styled\";\nimport * as React from \"react\";\n\nexport interface SpaceProps {\n half?: boolean;\n horizontal?: boolean;\n num?: number;\n vertical?: boolean;\n}\n\nconst InnerSpace = styled.div`\n --current-size: 1;\n flex: none;\n width: calc(var(--current-size) * var(--swui-metrics-space));\n height: calc(var(--current-size) * var(--swui-metrics-space));\n`;\n\nexport const Space: React.VFC<SpaceProps> = ({\n half = false,\n horizontal = false,\n num = 1,\n vertical = false,\n}) => {\n const size = num * (half ? 0.5 : 1);\n\n return (\n <InnerSpace\n style={{\n [\"--current-size\" as string]: size,\n height: horizontal ? 1 : undefined,\n width: vertical ? 1 : undefined,\n }}\n />\n );\n};\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\n\ninterface Props {\n nest?: boolean;\n render: (children: ReactNode) => ReactNode;\n children?: ReactNode;\n}\n\nexport const Nest: React.FC<Props> = ({ children, nest, render }) => {\n if (nest) {\n return <>{render(children)}</>;\n }\n return <>{children}</>;\n};\n","import * as React from \"react\";\nimport cx from \"classnames\";\nimport styles from \"./Text.module.css\";\nimport { SpanProps } from \"../../types/ElementProps\";\nimport { Property } from \"csstype\";\nimport { forwardRef } from \"react\";\n\nexport interface TextProps extends SpanProps {\n variant?: TextVariant;\n size?: TextSize;\n userSelect?: Property.UserSelect;\n whiteSpace?: Property.WhiteSpace;\n wordBreak?: Property.WordBreak;\n color?: string;\n}\n\nexport type TextVariant = \"standard\" | \"caption\" | \"overline\" | \"bold\";\nexport type TextSize = \"large\" | \"medium\" | \"small\" | \"smaller\";\n\nexport const Text = forwardRef<HTMLSpanElement, TextProps>(\n (\n {\n children,\n variant = \"standard\",\n size = \"medium\",\n className,\n color,\n userSelect,\n whiteSpace,\n wordBreak,\n style,\n ...spanProps\n },\n ref\n ) => {\n return (\n <span\n className={cx(styles.text, styles[variant], styles[size], className)}\n ref={ref}\n style={{ color, userSelect, whiteSpace, wordBreak, ...style }}\n {...spanProps}\n >\n {children}\n </span>\n );\n }\n);\n\nexport const Txt = Text;\n","import * as React from \"react\";\nimport { Text, TextProps } from \"../text/Text\";\n\n/**\n * @deprecated Please use `Text` instead.\n */\nexport const SmallText: React.FC<Omit<TextProps, \"size\">> = (props) => {\n return <Text size={\"small\"} {...props} />;\n};\n","import * as React from \"react\";\nimport { Text, TextProps } from \"../text/Text\";\n\n/**\n * @deprecated Please use `Text` instead.\n */\nexport const SmallerText: React.FC<Omit<TextProps, \"size\">> = (props) => {\n return <Text size={\"smaller\"} {...props} />;\n};\n","import * as React from \"react\";\nimport { Text, TextProps } from \"../text/Text\";\n\n/**\n * @deprecated Please use `Text` instead.\n */\nexport const StandardText: React.FC<Omit<TextProps, \"size\">> = (props) => {\n return <Text size={\"medium\"} {...props} />;\n};\n","import * as React from \"react\";\nimport { Text, TextProps } from \"../text/Text\";\n\n/**\n * @deprecated Please use `Text` instead.\n */\nexport const LargeText: React.FC<Omit<TextProps, \"size\">> = (props) => {\n return <Text size={\"large\"} {...props} />;\n};\n","import cx from \"classnames\";\nimport { Property } from \"csstype\";\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nimport { H1Props } from \"../../types/ElementProps\";\nimport styles from \"./Heading.module.css\";\n\nexport interface HeadingProps extends H1Props {\n variant?: HeadingVariant;\n whiteSpace?: Property.WhiteSpace;\n wordBreak?: Property.WordBreak;\n as?: HeadingVariant;\n}\n\nexport type HeadingVariant = \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\";\n\nexport const Heading = forwardRef<HTMLHeadingElement, HeadingProps>(\n (\n {\n variant = \"h3\",\n className,\n color,\n whiteSpace,\n wordBreak,\n style,\n children,\n as,\n ...hProps\n },\n ref\n ) => {\n const Element = as ?? variant;\n return (\n <Element\n className={cx(styles.heading, styles[variant], className)}\n style={{ color, whiteSpace, wordBreak, ...style }}\n ref={ref}\n {...hProps}\n >\n {children}\n </Element>\n );\n }\n);\n","import * as React from \"react\";\nimport { Heading, HeadingProps } from \"../heading/Heading\";\n\n/**\n * @deprecated Please use `Heading` instead.\n */\nexport const HeaderText: React.FC<Omit<HeadingProps, \"variant\">> = (props) => {\n return <Heading variant={\"h2\"} {...props} />;\n};\n","import { useCallback } from \"react\";\n\ntype ArrayItemEqualsComparator<T> = (a: T, b: T) => boolean;\n\nconst defaultComparator = <T>(a: T, b: T) => a === b;\n\nexport const useArraySet = <T>(\n list: Array<T>,\n setList: (list: Array<T>) => void,\n comparator: ArrayItemEqualsComparator<T> = defaultComparator\n) => {\n const add = useCallback(\n (item: T) => {\n if (!list.some((l) => comparator(l, item))) {\n setList([...list, item]);\n }\n },\n [list, setList, comparator]\n );\n\n const addMultiple = useCallback(\n (items: Array<T>) => {\n setList(\n items.reduce((list, item) => {\n if (!list.some((l) => comparator(l, item))) {\n return [...list, item];\n }\n return list;\n }, list)\n );\n },\n [list, setList, comparator]\n );\n\n const remove = useCallback(\n (item: T) => {\n const index = list.findIndex((l) => comparator(l, item));\n if (index >= 0) {\n setList(list.filter((_, i) => i !== index));\n }\n },\n [list, setList, comparator]\n );\n\n const removeMultiple = useCallback(\n (items: Array<T>) => {\n setList(list.filter((item) => !items.some((l) => comparator(l, item))));\n },\n [list, setList, comparator]\n );\n\n const toggle = useCallback(\n (item: T) => {\n const found = list.some((l) => comparator(l, item));\n if (found) {\n remove(item);\n } else {\n add(item);\n }\n },\n [list, add, remove, comparator]\n );\n\n return {\n add,\n addMultiple,\n remove,\n removeMultiple,\n toggle,\n };\n};\n","import { useCallback, useState } from \"react\";\n\ntype Value = boolean;\ntype SetTrue = () => void;\ntype SetFalse = () => void;\ntype ToggleValue = () => void;\ntype BooleanHook = [Value, SetTrue, SetFalse, ToggleValue];\n\nexport const useBoolean = (initialValue: Value): BooleanHook => {\n const [value, setValue] = useState(initialValue);\n\n const setTrue = useCallback(() => {\n setValue(true);\n }, [setValue]);\n\n const setFalse = useCallback(() => {\n setValue(false);\n }, [setValue]);\n\n const toggle = useCallback(() => {\n setValue((v) => !v);\n }, [setValue]);\n\n return [value, setTrue, setFalse, toggle];\n};\n","import { useEffect, useState } from \"react\";\n\nexport const useDebounce = <T>(value: T, delay: number): T => {\n // State and setters for debounced value\n const [debouncedValue, setDebouncedValue] = useState<T>(value);\n\n useEffect(() => {\n // Update debounced value after delay\n const handler = setTimeout(() => {\n setDebouncedValue(value);\n }, delay);\n\n // Cancel the timeout if value changes (also on delay change or unmount)\n // This is how we prevent debounced value from updating if value is changed ...\n // .. within the delay period. Timeout gets cleared and restarted.\n return () => {\n clearTimeout(handler);\n };\n }, [value, delay]); // Only re-call effect if value or delay changes\n\n return debouncedValue;\n};\n","import { useEffect, useState } from \"react\";\n\nexport const useDelayedFalse = (value: boolean, delay: number) => {\n const [debouncedValue, setDebouncedValue] = useState<boolean>(value);\n\n useEffect(() => {\n if (value) {\n setDebouncedValue(true);\n }\n\n const handler = setTimeout(() => {\n if (!value) {\n setDebouncedValue(value);\n }\n }, delay);\n\n return () => {\n clearTimeout(handler);\n };\n }, [value, delay]);\n\n return debouncedValue;\n};\n","import { useEffect, useState } from \"react\";\n\nlet id = 0;\nconst genId = (componentName?: string) =>\n `webui-${componentName ? componentName + \"-\" : \"\"}${++id}`;\n\n/** @deprecated use useId-hook from React 18 */\nexport const useDomId = (componentName?: string): string => {\n const [id, setId] = useState<string | null>(() => genId(componentName));\n useEffect(() => setId(genId(componentName)), [componentName]);\n return id!;\n};\n","import { RefObject, useEffect, useRef } from \"react\";\n\ntype EventHandler<TEventName extends keyof HTMLElementEventMap> = (\n event: HTMLElementEventMap[TEventName]\n) => void;\n\nexport const useEventListener = <TEventName extends keyof HTMLElementEventMap>(\n ref: RefObject<HTMLElement>,\n eventName: TEventName,\n handler: EventHandler<TEventName>\n) => {\n // Create a ref that stores handler\n const savedHandler = useRef<EventHandler<TEventName>>();\n\n // Update ref.current value if handler changes.\n // This allows our effect below to always get latest handler ...\n // ... without us needing to pass it in effect deps array ...\n // ... and potentially cause effect to re-run every render.\n useEffect(() => {\n savedHandler.current = handler;\n }, [handler]);\n\n useEffect(() => {\n // Make sure element supports addEventListener\n const isSupported = ref.current && ref.current.addEventListener;\n if (!isSupported) return;\n\n // Create event listener that calls handler function stored in ref\n const eventListener: EventHandler<TEventName> = (event) => {\n if (savedHandler.current) {\n return savedHandler.current(event);\n }\n };\n\n // Add event listener\n if (!ref.current) {\n return;\n }\n\n const element = ref.current;\n element.addEventListener(eventName, eventListener);\n\n // Remove event listener on cleanup\n return () => {\n if (element) {\n element.removeEventListener(eventName, eventListener);\n }\n };\n }, [eventName, ref]); // Re-run if eventName or element changes\n};\n","import { RefObject, useCallback, useEffect } from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { useBoolean } from \"./UseBoolean\";\nimport { useEventListener } from \"./UseEventListener\";\n\nexport const useElementFocus = <TElement extends HTMLElement>(\n ref: RefObject<TElement>\n) => {\n const [isInFocus, setIsInFocus, setIsNotInFocus] = useBoolean(false);\n\n useEffect(() => {\n if (document.activeElement === ReactDOM.findDOMNode(ref.current)) {\n setIsInFocus();\n } else {\n setIsNotInFocus();\n }\n }, [ref, setIsNotInFocus, setIsInFocus]);\n\n useEventListener(ref, \"focus\", setIsInFocus);\n useEventListener(ref, \"blur\", setIsNotInFocus);\n\n const focus = useCallback(() => {\n if (ref.current) {\n ref.current.focus();\n }\n }, [ref]);\n\n const blur = useCallback(() => {\n if (ref.current) {\n ref.current.blur();\n }\n }, [ref]);\n\n return { isInFocus, focus, blur };\n};\n","import { RefObject } from \"react\";\nimport { useBoolean } from \"./UseBoolean\";\nimport { useEventListener } from \"./UseEventListener\";\n\nexport const useMouseIsOver = <TElement extends HTMLElement>(\n ref: RefObject<TElement>\n) => {\n const [mouseIsOver, setMouseIsOver, setMouseIsNotOver] = useBoolean(false);\n\n useEventListener(ref, \"mouseover\", setMouseIsOver);\n useEventListener(ref, \"mouseout\", setMouseIsNotOver);\n\n return mouseIsOver;\n};\n","import { RefObject } from \"react\";\nimport { useBoolean } from \"./UseBoolean\";\nimport { useEventListener } from \"./UseEventListener\";\n\nexport const useMouseIsEntered = <TElement extends HTMLElement>(\n ref: RefObject<TElement>\n) => {\n const [mouseIsEntered, setMouseIsEntered, setMouseIsNotEntered] =\n useBoolean(false);\n\n useEventListener(ref, \"mouseenter\", setMouseIsEntered);\n useEventListener(ref, \"mouseleave\", setMouseIsNotEntered);\n\n return mouseIsEntered;\n};\n","import * as React from \"react\";\nimport { useEffect, useRef } from \"react\";\n\nexport const useMultiOnClickOutside = (\n refs: Array<React.RefObject<any>>,\n handler: (event: TouchEvent | MouseEvent) => void\n) => {\n const eventHandler = useRef<(event: TouchEvent | MouseEvent) => void>(() => {\n return;\n });\n\n useEffect(() => {\n eventHandler.current = handler;\n }, [handler]);\n\n useEffect(() => {\n const listener = (event: TouchEvent | MouseEvent) => {\n // Do nothing if clicking ref's element or descendent elements\n\n const allNotContains = refs\n .filter((ref) => ref.current)\n .every((ref) => {\n return ref.current && !ref.current.contains(event.target);\n });\n\n if (!allNotContains) {\n return;\n }\n\n eventHandler.current(event);\n };\n\n document.addEventListener(\"mousedown\", listener);\n document.addEventListener(\"touchstart\", listener);\n\n return () => {\n document.removeEventListener(\"mousedown\", listener);\n document.removeEventListener(\"touchstart\", listener);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [...refs]);\n};\n","import * as React from \"react\";\nimport { useEffect, useRef } from \"react\";\n\nexport const useOnClickOutside = (\n ref: React.RefObject<any>,\n handler: (event: TouchEvent | MouseEvent) => void,\n options?: AddEventListenerOptions\n) => {\n const eventHandler = useRef<(event: TouchEvent | MouseEvent) => void>(() => {\n return;\n });\n\n useEffect(() => {\n eventHandler.current = handler;\n }, [handler]);\n\n useEffect(() => {\n const listener = (event: TouchEvent | MouseEvent) => {\n // Do nothing if clicking ref's element or descendent elements\n if (!ref.current || ref.current.contains(event.target)) {\n return;\n }\n\n eventHandler.current(event);\n };\n\n document.addEventListener(\"mousedown\", listener, options);\n document.addEventListener(\"touchstart\", listener, options);\n\n return () => {\n document.removeEventListener(\"mousedown\", listener, options);\n document.removeEventListener(\"touchstart\", listener, options);\n };\n }, [ref, options]);\n};\n","import { debounce } from \"lodash\";\nimport { useEffect, useRef } from \"react\";\n\nconst events = [\"mousemove\", \"mousedown\", \"keydown\", \"touchstart\", \"scroll\"];\n\nexport const useOnNoMouseMovement = (callback: () => void, delay: number) => {\n const eventHandler = useRef<(event: Event) => void>(() => {\n return;\n });\n\n useEffect(() => {\n eventHandler.current = callback;\n }, [callback]);\n\n useEffect(() => {\n const onIdleChange = debounce(eventHandler.current, delay);\n events.forEach((event) => window.addEventListener(event, onIdleChange));\n\n return () => {\n events.forEach((event) =>\n window.removeEventListener(event, onIdleChange)\n );\n };\n }, [delay]);\n};\n","import { RefObject, useEffect, useMemo, useState } from \"react\";\n\nexport const useOnScreen = (\n ref: RefObject<Element>,\n options?: IntersectionObserverInit\n) => {\n const [isVisible, setIsVisible] = useState(false);\n\n const { rootMargin, root, threshold } = options || {};\n\n const observer = useMemo(() => {\n return new IntersectionObserver(\n ([entry]) => setIsVisible(entry.isIntersecting),\n {\n rootMargin,\n root,\n threshold,\n }\n );\n }, [setIsVisible, rootMargin, root, threshold]);\n\n useEffect(() => {\n if (ref.current) {\n observer.observe(ref.current);\n }\n return () => {\n observer.disconnect();\n };\n }, [observer, ref]);\n\n return isVisible;\n};\n","import {\n MutableRefObject,\n RefCallback,\n RefObject,\n useEffect,\n useRef,\n} from \"react\";\n\nexport const useForwardedRef = <T>(\n ref: RefCallback<T> | MutableRefObject<T> | null\n): RefObject<NonNullable<T>> => {\n const innerRef = useRef<T>(null) as MutableRefObject<NonNullable<T>>;\n\n useEffect(() => {\n if (!ref) return;\n if (typeof ref === \"function\") {\n ref(innerRef.current);\n } else {\n ref.current = innerRef.current;\n }\n });\n\n return innerRef;\n};\n","import { useCallback, useEffect, useRef, useState } from \"react\";\n\nexport const useTimeoutState = <S>(\n initialValue: S,\n defaultTimeout: number,\n clearTimeoutOnSetValue = true\n): [S, (v: S) => void] => {\n const [value, setValue] = useState<S>(initialValue);\n const timeoutRef = useRef<NodeJS.Timeout>();\n\n const wrappedSetter = useCallback(\n (newValue: S, timeout = defaultTimeout) => {\n setValue(newValue);\n if (clearTimeoutOnSetValue) {\n clearTimeout(timeoutRef.current!);\n }\n timeoutRef.current = setTimeout(() => setValue(initialValue), timeout);\n },\n [defaultTimeout, clearTimeoutOnSetValue, initialValue]\n );\n\n useEffect(() => {\n return () => {\n clearTimeout(timeoutRef.current!);\n };\n }, []);\n\n return [value, wrappedSetter];\n};\n","export const exhaustSwitchCaseElseThrow = (arg: never) => {\n throw new Error(`Switch unhandled case: ${arg}`);\n};\n\nexport const exhaustSwitchCase = <T>(_arg: never, fallback: T) => {\n return fallback;\n};\n","export const truthyKeysAsList = (r: Record<string, boolean>): Array<string> =>\n Object.keys(r).filter((key) => r[key]);\n","import { pickBy } from \"lodash\";\n\nexport const getDataProps = <T extends Record<string, unknown>>(\n props: Record<string, unknown> | {}\n): T => pickBy(props, isDataPropMapper) as T;\n\nconst isDataPropMapper = (_: unknown, key: string): boolean => isDataProp(key);\n\nconst isDataProp = <TProp extends string>(propName: TProp): boolean =>\n propName.startsWith(\"data-\") || propName.startsWith(\"aria-\");\n","export const parseFloatElseUndefined = (s: string): number | undefined => {\n try {\n const f = parseFloat(s);\n if (isNaN(f)) {\n return undefined;\n }\n if (f == null) {\n return undefined;\n }\n return f;\n } catch (e) {}\n return undefined;\n};\n\nexport const parseIntElseUndefined = (s: string): number | undefined => {\n try {\n const f = parseInt(s, 10);\n if (isNaN(f)) {\n return undefined;\n }\n if (f == null) {\n return undefined;\n }\n return f;\n } catch (e) {}\n return undefined;\n};\n"],"names":["SeparatorLineComponent","styled","props","SeparatorLine","forwardRef","color","size","width","vertical","ref","jsx","ClickableElement","background","pointer","hoverBackground","disableOpacityOnClick","disableFocusHighlight","focusBackground","height","borderRadius","Clickable","onClick","onDblClick","tooltip","disablePointer","opacityOnHover","disabled","children","type","restProps","hasClickHandler","booleanOrNumberToNumber","num","shadows","excludedProps","isExcludedWebUiProp","propName","box","system","row","value","_a","Box","isPropValid","border","borderRight","borderLeft","borderTop","borderBottom","borderColor","borderStyle","borderWidth","boxShadow","flexbox","overflow","position","layout","zIndex","left","right","top","bottom","hoverBorder","focusBorder","focusWithinBackground","focusWithinBorder","Column","getDimensionObject","node","x","y","isEqualDimensions","a","b","useElementDimensions","onResizeElement","dimensions","setDimensions","useState","updateDimensions","useCallback","newDimensions","useLayoutEffect","ResizeAwareBox","onResize","boxProps","localRef","useRef","currentRef","Row","Indent","Spacing","InnerSpace","Space","half","horizontal","Nest","nest","render","Fragment","Text","variant","className","userSelect","whiteSpace","wordBreak","style","spanProps","cx","styles","Txt","SmallText","SmallerText","StandardText","LargeText","Heading","as","hProps","Element","HeaderText","defaultComparator","useArraySet","list","setList","comparator","add","item","l","addMultiple","items","remove","index","_","i","removeMultiple","toggle","useBoolean","initialValue","setValue","setTrue","setFalse","v","useDebounce","delay","debouncedValue","setDebouncedValue","useEffect","handler","useDelayedFalse","id","genId","componentName","useDomId","setId","useEventListener","eventName","savedHandler","eventListener","event","element","useElementFocus","isInFocus","setIsInFocus","setIsNotInFocus","ReactDOM","focus","blur","useMouseIsOver","mouseIsOver","setMouseIsOver","setMouseIsNotOver","useMouseIsEntered","mouseIsEntered","setMouseIsEntered","setMouseIsNotEntered","useMultiOnClickOutside","refs","eventHandler","listener","useOnClickOutside","options","events","useOnNoMouseMovement","callback","onIdleChange","debounce","useOnScreen","isVisible","setIsVisible","rootMargin","root","threshold","observer","useMemo","entry","useForwardedRef","innerRef","useTimeoutState","defaultTimeout","clearTimeoutOnSetValue","timeoutRef","wrappedSetter","newValue","timeout","exhaustSwitchCaseElseThrow","arg","exhaustSwitchCase","_arg","fallback","truthyKeysAsList","r","key","getDataProps","pickBy","isDataPropMapper","isDataProp","parseFloatElseUndefined","s","f","parseIntElseUndefined"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/components/decorators/separatorline/SeparatorLine.tsx","../src/components/interaction/Clickable.tsx","../src/utils/BooleanOrNumberToNumber.ts","../src/components/layout/box/Box.tsx","../src/components/layout/column/Column.tsx","../src/hooks/UseElementDimensions.ts","../src/components/layout/box/ResizeAwareBox.tsx","../src/components/layout/row/Row.tsx","../src/components/layout/indent/Indent.tsx","../src/components/layout/spacing/Spacing.tsx","../src/components/layout/space/Space.tsx","../src/components/util/Nest.tsx","../src/components/text/Text.tsx","../src/components/deprecated-text/SmallText.tsx","../src/components/deprecated-text/SmallerText.tsx","../src/components/deprecated-text/StandardText.tsx","../src/components/deprecated-text/LargeText.tsx","../src/components/heading/Heading.tsx","../src/components/deprecated-text/HeaderText.tsx","../src/hooks/UseArraySet.ts","../src/hooks/UseBoolean.ts","../src/hooks/UseDebounce.ts","../src/hooks/UseDelayedFalse.ts","../src/hooks/UseDomId.ts","../src/hooks/UseEventListener.ts","../src/hooks/UseElementFocus.ts","../src/hooks/UseMouseIsOver.ts","../src/hooks/UseMouseIsEntered.ts","../src/hooks/UseMultiOnClickOutside.ts","../src/hooks/UseOnClickOutside.ts","../src/hooks/UseOnNoMouseInput.ts","../src/hooks/UseOnScreen.ts","../src/hooks/UseForwardedRef.ts","../src/hooks/UseTimeoutState.ts","../src/utils/SwitchCaseExhauster.ts","../src/utils/TruthyKeysAsList.ts","../src/utils/PropsForwarder.ts","../src/utils/parsers/NumberParser.ts"],"sourcesContent":["import styled from \"@emotion/styled\";\nimport { Property } from \"csstype\";\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nimport { cssColor } from \"@stenajs-webui/theme\";\n\nexport interface SeparatorLineProps {\n color?: Property.Color;\n vertical?: boolean;\n size?: string;\n width?: string;\n}\n\ninterface SeparatorLineComponentProps {\n color: string;\n vertical?: boolean;\n size?: string;\n width?: string;\n}\n\nconst SeparatorLineComponent = styled.hr<SeparatorLineComponentProps>`\n display: flex;\n border: 0;\n margin: 0;\n flex: none;\n background-color: ${(props) => props.color};\n height: ${(props) =>\n props.vertical ? props.size || \"100%\" : props.width || \"1px\"};\n width: ${(props) =>\n props.vertical ? props.width || \"1px\" : props.size || \"100%\"};\n`;\n\nexport const SeparatorLine = forwardRef<HTMLHRElement, SeparatorLineProps>(\n (\n {\n color = cssColor(\"--lhds-color-ui-300\"),\n size = \"100%\",\n width = \"1px\",\n vertical = false,\n },\n ref\n ) => {\n return (\n <SeparatorLineComponent\n color={color}\n size={size}\n width={width}\n vertical={vertical}\n ref={ref}\n />\n );\n }\n);\n","import styled from \"@emotion/styled\";\nimport * as React from \"react\";\nimport { CSSProperties, forwardRef, MouseEventHandler } from \"react\";\nimport { ButtonElementProps } from \"../../types/ElementProps\";\n\nexport interface ClickableProps extends ButtonElementProps {\n /** Callback function called when clicking on click area. */\n onClick?: MouseEventHandler<HTMLButtonElement>;\n /** Callback function called when double clicking on click area. */\n onDblClick?: MouseEventHandler<HTMLButtonElement>;\n /** Adds a title to the click area. */\n tooltip?: string;\n /** If set, there is no opacity applies when clicking on the click area. */\n disableOpacityOnClick?: boolean;\n /** Mouse does not turn into pointer when hovering over click area. */\n disablePointer?: boolean;\n /** When set, click area receives opacity when mouse hovers over it. */\n opacityOnHover?: boolean;\n /** Custom style on div with click event. */\n style?: CSSProperties;\n /** Disables shadow when element is focused. */\n disableFocusHighlight?: boolean;\n /** Disables the HTML button element. */\n disabled?: boolean;\n /**\n * Sets the background of the box.\n */\n background?: string;\n /**\n * Sets the background of the box when the box is in focus.\n */\n focusBackground?: string;\n /**\n * Sets the background of the box when hovering with mouse.\n */\n hoverBackground?: string;\n /**\n * The width.\n */\n width?: string;\n /**\n * The height.\n */\n height?: string;\n /**\n * Border radius\n */\n borderRadius?: string;\n}\n\ninterface ClickableElementProps {\n disableOpacityOnClick?: boolean;\n opacityOnHover?: boolean;\n disableFocusHighlight?: boolean;\n pointer?: boolean;\n background?: string;\n focusBackground?: string;\n hoverBackground?: string;\n width?: string;\n height?: string;\n borderRadius?: string;\n}\n\nconst ClickableElement = styled.button<ClickableElementProps>`\n display: inline-block;\n user-select: none;\n border: 0;\n padding: 0;\n background: ${({ background }) => background};\n ${({ pointer }) => (pointer ? \"cursor: pointer;\" : \"\")}\n\n :hover {\n ${(props) => (props.opacityOnHover ? \"opacity: 0.7;\" : \"\")};\n ${({ hoverBackground }) => `background: ${hoverBackground};`}\n }\n :active {\n ${({ disableOpacityOnClick }) =>\n !disableOpacityOnClick ? \"opacity: 0.5;\" : \"\"}\n }\n :focus {\n outline: 0;\n ${({ disableFocusHighlight }) =>\n disableFocusHighlight\n ? \"\"\n : \"box-shadow: 0 0 3pt 2pt rgba(0, 0, 100, 0.3);\"}\n ${({ focusBackground }) => `background: ${focusBackground};`}\n }\n ${({ width }) => (width ? `width: ${width};` : \"\")}\n ${({ height }) => (height ? `height: ${height};` : \"\")}\n ${({ borderRadius }) =>\n borderRadius ? `border-radius: ${borderRadius};` : \"\"}\n`;\n\nexport const Clickable = forwardRef<HTMLButtonElement, ClickableProps>(\n (\n {\n disableFocusHighlight,\n onClick,\n onDblClick,\n tooltip,\n disableOpacityOnClick,\n disablePointer,\n opacityOnHover,\n disabled,\n children,\n background = \"transparent\",\n hoverBackground,\n focusBackground,\n type = \"button\",\n ...restProps\n },\n ref\n ) => {\n const hasClickHandler = !!(onClick || onDblClick);\n\n return (\n <ClickableElement\n opacityOnHover={opacityOnHover}\n title={tooltip}\n disabled={disabled}\n disableOpacityOnClick={disableOpacityOnClick}\n onClick={onClick}\n onDoubleClick={onDblClick}\n disableFocusHighlight={disableFocusHighlight}\n pointer={hasClickHandler && !disablePointer}\n ref={ref}\n background={background}\n hoverBackground={hoverBackground}\n focusBackground={focusBackground}\n type={type}\n {...restProps}\n >\n {children}\n </ClickableElement>\n );\n }\n);\n","export const booleanOrNumberToNumber = (\n num: number | boolean | undefined\n): number => {\n if (num == null) {\n return 0;\n }\n if (typeof num === \"boolean\") {\n return num ? 1 : 0;\n }\n return num;\n};\n","import isPropValid from \"@emotion/is-prop-valid\";\nimport styled from \"@emotion/styled\";\nimport { Property } from \"csstype\";\n\nimport {\n background,\n BackgroundProps,\n border,\n borderBottom,\n BorderBottomProps,\n borderColor,\n borderLeft,\n BorderLeftProps,\n borderRadius,\n BorderRadiusProps,\n borderRight,\n BorderRightProps,\n borderStyle,\n BorderStyleProps,\n borderTop,\n BorderTopProps,\n borderWidth,\n BorderWidthProps,\n bottom,\n BottomProps,\n boxShadow,\n BoxShadowProps,\n flexbox,\n FlexboxProps,\n layout,\n LayoutProps,\n left,\n LeftProps,\n overflow,\n OverflowProps,\n position,\n PositionProps,\n ResponsiveValue,\n right,\n RightProps,\n system,\n TLengthStyledSystem,\n top,\n TopProps,\n zIndex,\n ZIndexProps,\n} from \"styled-system\";\nimport { DivProps } from \"../../../types/ElementProps\";\nimport { booleanOrNumberToNumber } from \"../../../utils/BooleanOrNumberToNumber\";\n\ninterface StyledSystemProps\n extends BorderRadiusProps,\n BorderStyleProps,\n BorderWidthProps,\n BorderLeftProps,\n BorderRightProps,\n BorderTopProps,\n BorderBottomProps,\n FlexboxProps,\n LayoutProps,\n OverflowProps,\n PositionProps,\n ZIndexProps,\n LeftProps,\n RightProps,\n TopProps,\n BottomProps {}\n\nconst shadows = {\n box: \"var(--swui-shadow-box)\",\n popover: \"var(--swui-shadow-popover)\",\n modal: \"var(--swui-shadow-modal)\",\n bottom: \"var(--swui-shadow-bottom)\",\n};\n\ntype ShadowType = keyof typeof shadows;\n\nexport interface BoxProps extends StyledSystemProps, DivProps {\n /**\n * If true, children are placed in a row.\n */\n row?: ResponsiveValue<boolean>;\n\n /**\n * Adds spacing over and under content.\n */\n spacing?: ResponsiveValue<boolean | TLengthStyledSystem>;\n\n /**\n * Adds spacing left and right of content.\n */\n indent?: ResponsiveValue<boolean | TLengthStyledSystem>;\n\n /**\n * Adds spacing between children.\n */\n gap?: ResponsiveValue<boolean | TLengthStyledSystem>;\n\n /**\n * Adds a shadow around the box.\n */\n shadow?: ResponsiveValue<Property.BoxShadow | ShadowType>;\n\n /**\n * Sets the background of the box.\n */\n background?: ResponsiveValue<Property.Background<TLengthStyledSystem>>;\n\n /**\n * Sets the border of the box.\n */\n border?: ResponsiveValue<Property.Border<TLengthStyledSystem>>;\n\n /**\n * Sets the border color of the box.\n */\n borderColor?: ResponsiveValue<Property.BorderColor>;\n\n /**\n * Sets the background of the box when hovering with mouse.\n */\n hoverBackground?: Property.Background<TLengthStyledSystem>;\n\n /**\n * Sets the border of the box when hovering with mouse.\n */\n hoverBorder?: Property.Border<TLengthStyledSystem>;\n\n /**\n * Sets the background of the box when the box is in focus.\n */\n focusBackground?: Property.Background<TLengthStyledSystem>;\n\n /**\n * Sets the border of the box when the box is in focus.\n */\n focusBorder?: Property.Border<TLengthStyledSystem>;\n\n /**\n * Sets the background of the box when focus is within the box.\n */\n focusWithinBackground?: Property.Background<TLengthStyledSystem>;\n\n /**\n * Sets the border of the box when focus is within the box.\n */\n focusWithinBorder?: Property.Border<TLengthStyledSystem>;\n}\n\nconst excludedProps = [\n \"spacing\",\n \"indent\",\n \"gap\",\n \"width\",\n \"height\",\n \"overflow\",\n \"display\",\n];\n\nconst isExcludedWebUiProp = (propName: string) =>\n excludedProps.includes(propName);\n\nconst box = system({\n row: {\n property: \"flexDirection\",\n transform: (row: boolean) => (row ? \"row\" : \"column\"),\n },\n indent: {\n // @ts-ignore\n property: \"--current-indent\",\n transform: booleanOrNumberToNumber,\n },\n spacing: {\n // @ts-ignore\n property: \"--current-spacing\",\n transform: booleanOrNumberToNumber,\n },\n gap: {\n // @ts-ignore\n property: \"--current-gap\",\n transform: booleanOrNumberToNumber,\n },\n shadow: {\n property: \"boxShadow\",\n transform: (value) => shadows[value] ?? value,\n },\n});\n\ntype InnerProps = BoxProps & BoxShadowProps & BackgroundProps;\n\nexport const Box = styled(\"div\", {\n shouldForwardProp: (propName) =>\n typeof propName === \"string\"\n ? isExcludedWebUiProp(propName)\n ? false\n : isPropValid(propName)\n : false,\n})<InnerProps>`\n --current-spacing: 0;\n --current-indent: 0;\n --current-gap: 0;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n ${box};\n ${background};\n ${border};\n ${borderRight};\n ${borderLeft};\n ${borderTop};\n ${borderBottom};\n ${borderColor};\n ${borderRadius};\n ${borderStyle};\n ${borderWidth};\n ${boxShadow};\n ${flexbox};\n ${overflow};\n ${position};\n ${layout};\n ${zIndex};\n ${left};\n ${right};\n ${top};\n ${bottom};\n\n gap: calc(var(--current-gap) * var(--swui-metrics-space));\n\n padding: calc(var(--current-spacing) * var(--swui-metrics-spacing))\n calc(var(--current-indent) * var(--swui-metrics-indent));\n :hover {\n ${({ hoverBackground }) =>\n hoverBackground ? `background: ${hoverBackground};` : \"\"}\n ${({ hoverBorder }) => (hoverBorder ? `border: ${hoverBorder};` : \"\")}\n }\n :focus {\n ${({ focusBackground }) =>\n focusBackground ? `background: ${focusBackground};` : \"\"}\n ${({ focusBorder }) => (focusBorder ? `border: ${focusBorder};` : \"\")}\n }\n :focus-within {\n ${({ focusWithinBackground }) =>\n focusWithinBackground ? `background: ${focusWithinBackground};` : \"\"}\n ${({ focusWithinBorder }) =>\n focusWithinBorder ? `border: ${focusWithinBorder};` : \"\"}\n }\n`;\n","import * as React from \"react\";\nimport { forwardRef } from \"react\";\nimport { Box, BoxProps } from \"../box/Box\";\n\nexport const Column = forwardRef<HTMLDivElement, BoxProps>(function Column(\n props,\n ref\n) {\n return <Box ref={ref} {...props} />;\n});\n","import { RefObject, useCallback, useLayoutEffect, useState } from \"react\";\n\nexport interface ElementDimensions {\n width: number;\n height: number;\n top: number;\n left: number;\n x: number;\n y: number;\n right: number;\n bottom: number;\n}\n\nexport const getDimensionObject = (node: HTMLElement): ElementDimensions => {\n const { x, y, width, height, bottom, top, left, right } =\n node.getBoundingClientRect();\n\n return {\n width,\n height,\n top,\n left,\n x,\n y,\n right,\n bottom,\n };\n};\n\nconst isEqualDimensions = (\n a: ElementDimensions,\n b: ElementDimensions\n): boolean =>\n a.x === b.x &&\n a.y === b.y &&\n a.width === b.width &&\n a.height === b.height &&\n a.bottom === b.bottom &&\n a.top === b.top &&\n a.left === b.left &&\n a.right === b.right;\n\nexport const useElementDimensions = (\n ref: RefObject<HTMLElement>,\n onResizeElement?: (dimensions: ElementDimensions) => void\n) => {\n const [dimensions, setDimensions] = useState<ElementDimensions | undefined>();\n\n const updateDimensions = useCallback(() => {\n window.requestAnimationFrame(() => {\n if (ref.current) {\n const newDimensions = getDimensionObject(ref.current);\n if (!dimensions || !isEqualDimensions(dimensions, newDimensions)) {\n if (onResizeElement) {\n onResizeElement(newDimensions);\n }\n }\n setDimensions(newDimensions);\n }\n });\n }, [ref, dimensions, setDimensions, onResizeElement]);\n\n useLayoutEffect(() => {\n updateDimensions();\n }, [updateDimensions]);\n\n return {\n dimensions,\n };\n};\n","import * as React from \"react\";\nimport { forwardRef, RefObject, useRef } from \"react\";\nimport { Box, BoxProps } from \"./Box\";\nimport {\n ElementDimensions,\n useElementDimensions,\n} from \"../../../hooks/UseElementDimensions\";\n\nexport interface ResizeAwareBoxProps extends BoxProps {\n onResize?: (dimensions: ElementDimensions) => void;\n}\n\nexport const ResizeAwareBox = forwardRef<HTMLDivElement, ResizeAwareBoxProps>(\n function ResizeAwareBox({ onResize, ...boxProps }, ref) {\n const localRef = useRef<HTMLDivElement>(null);\n const currentRef = (ref as RefObject<HTMLDivElement>) ?? localRef;\n useElementDimensions(currentRef, onResize);\n\n return <Box {...boxProps} ref={ref} />;\n }\n);\n","import * as React from \"react\";\nimport { forwardRef } from \"react\";\nimport { Box, BoxProps } from \"../box/Box\";\n\nexport const Row = forwardRef<HTMLDivElement, BoxProps>(function Row(\n props,\n ref\n) {\n return <Box row ref={ref} {...props} />;\n});\n","import * as React from \"react\";\nimport { forwardRef } from \"react\";\nimport { Box, BoxProps } from \"../box/Box\";\nimport { ResponsiveValue, TLengthStyledSystem } from \"styled-system\";\n\nexport interface IndentProps extends BoxProps {\n num?: ResponsiveValue<boolean | TLengthStyledSystem>;\n}\n\nexport const Indent = forwardRef<HTMLDivElement, IndentProps>(function Indent(\n { num = 1, ...props },\n ref\n) {\n return <Box indent={num} ref={ref} {...props} />;\n});\n","import * as React from \"react\";\nimport { forwardRef } from \"react\";\nimport { Box, BoxProps } from \"../box/Box\";\nimport { ResponsiveValue, TLengthStyledSystem } from \"styled-system\";\n\nexport interface SpacingProps extends BoxProps {\n num?: ResponsiveValue<boolean | TLengthStyledSystem>;\n}\n\nexport const Spacing = forwardRef<HTMLDivElement, SpacingProps>(\n function Spacing({ num = 1, ...props }, ref) {\n return <Box spacing={num} ref={ref} {...props} />;\n }\n);\n","import styled from \"@emotion/styled\";\nimport * as React from \"react\";\n\nexport interface SpaceProps {\n half?: boolean;\n horizontal?: boolean;\n num?: number;\n vertical?: boolean;\n}\n\nconst InnerSpace = styled.div`\n --current-size: 1;\n flex: none;\n width: calc(var(--current-size) * var(--swui-metrics-space));\n height: calc(var(--current-size) * var(--swui-metrics-space));\n`;\n\nexport const Space: React.VFC<SpaceProps> = ({\n half = false,\n horizontal = false,\n num = 1,\n vertical = false,\n}) => {\n const size = num * (half ? 0.5 : 1);\n\n return (\n <InnerSpace\n style={{\n [\"--current-size\" as string]: size,\n height: horizontal ? 1 : undefined,\n width: vertical ? 1 : undefined,\n }}\n />\n );\n};\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\n\ninterface Props {\n nest?: boolean;\n render: (children: ReactNode) => ReactNode;\n children?: ReactNode;\n}\n\nexport const Nest: React.FC<Props> = ({ children, nest, render }) => {\n if (nest) {\n return <>{render(children)}</>;\n }\n return <>{children}</>;\n};\n","import * as React from \"react\";\nimport cx from \"classnames\";\nimport styles from \"./Text.module.css\";\nimport { SpanProps } from \"../../types/ElementProps\";\nimport { Property } from \"csstype\";\nimport { forwardRef } from \"react\";\n\nexport interface TextProps extends SpanProps {\n variant?: TextVariant;\n size?: TextSize;\n userSelect?: Property.UserSelect;\n whiteSpace?: Property.WhiteSpace;\n wordBreak?: Property.WordBreak;\n color?: string;\n}\n\nexport type TextVariant = \"standard\" | \"caption\" | \"overline\" | \"bold\";\nexport type TextSize = \"large\" | \"medium\" | \"small\" | \"smaller\";\n\nexport const Text = forwardRef<HTMLSpanElement, TextProps>(\n (\n {\n children,\n variant = \"standard\",\n size = \"medium\",\n className,\n color,\n userSelect,\n whiteSpace,\n wordBreak,\n style,\n ...spanProps\n },\n ref\n ) => {\n return (\n <span\n className={cx(styles.text, styles[variant], styles[size], className)}\n ref={ref}\n style={{ color, userSelect, whiteSpace, wordBreak, ...style }}\n {...spanProps}\n >\n {children}\n </span>\n );\n }\n);\n\nexport const Txt = Text;\n","import * as React from \"react\";\nimport { Text, TextProps } from \"../text/Text\";\n\n/**\n * @deprecated Please use `Text` instead.\n */\nexport const SmallText: React.FC<Omit<TextProps, \"size\">> = (props) => {\n return <Text size={\"small\"} {...props} />;\n};\n","import * as React from \"react\";\nimport { Text, TextProps } from \"../text/Text\";\n\n/**\n * @deprecated Please use `Text` instead.\n */\nexport const SmallerText: React.FC<Omit<TextProps, \"size\">> = (props) => {\n return <Text size={\"smaller\"} {...props} />;\n};\n","import * as React from \"react\";\nimport { Text, TextProps } from \"../text/Text\";\n\n/**\n * @deprecated Please use `Text` instead.\n */\nexport const StandardText: React.FC<Omit<TextProps, \"size\">> = (props) => {\n return <Text size={\"medium\"} {...props} />;\n};\n","import * as React from \"react\";\nimport { Text, TextProps } from \"../text/Text\";\n\n/**\n * @deprecated Please use `Text` instead.\n */\nexport const LargeText: React.FC<Omit<TextProps, \"size\">> = (props) => {\n return <Text size={\"large\"} {...props} />;\n};\n","import cx from \"classnames\";\nimport { Property } from \"csstype\";\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nimport { H1Props } from \"../../types/ElementProps\";\nimport styles from \"./Heading.module.css\";\n\nexport interface HeadingProps extends H1Props {\n variant?: HeadingVariant;\n whiteSpace?: Property.WhiteSpace;\n wordBreak?: Property.WordBreak;\n as?: HeadingVariant;\n}\n\nexport type HeadingVariant = \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\";\n\nexport const Heading = forwardRef<HTMLHeadingElement, HeadingProps>(\n (\n {\n variant = \"h3\",\n className,\n color,\n whiteSpace,\n wordBreak,\n style,\n children,\n as,\n ...hProps\n },\n ref\n ) => {\n const Element = as ?? variant;\n return (\n <Element\n className={cx(styles.heading, styles[variant], className)}\n style={{ color, whiteSpace, wordBreak, ...style }}\n ref={ref}\n {...hProps}\n >\n {children}\n </Element>\n );\n }\n);\n","import * as React from \"react\";\nimport { Heading, HeadingProps } from \"../heading/Heading\";\n\n/**\n * @deprecated Please use `Heading` instead.\n */\nexport const HeaderText: React.FC<Omit<HeadingProps, \"variant\">> = (props) => {\n return <Heading variant={\"h2\"} {...props} />;\n};\n","import { useCallback } from \"react\";\n\ntype ArrayItemEqualsComparator<T> = (a: T, b: T) => boolean;\n\nconst defaultComparator = <T>(a: T, b: T) => a === b;\n\nexport const useArraySet = <T>(\n list: Array<T>,\n setList: (list: Array<T>) => void,\n comparator: ArrayItemEqualsComparator<T> = defaultComparator\n) => {\n const add = useCallback(\n (item: T) => {\n if (!list.some((l) => comparator(l, item))) {\n setList([...list, item]);\n }\n },\n [list, setList, comparator]\n );\n\n const addMultiple = useCallback(\n (items: Array<T>) => {\n setList(\n items.reduce((list, item) => {\n if (!list.some((l) => comparator(l, item))) {\n return [...list, item];\n }\n return list;\n }, list)\n );\n },\n [list, setList, comparator]\n );\n\n const remove = useCallback(\n (item: T) => {\n const index = list.findIndex((l) => comparator(l, item));\n if (index >= 0) {\n setList(list.filter((_, i) => i !== index));\n }\n },\n [list, setList, comparator]\n );\n\n const removeMultiple = useCallback(\n (items: Array<T>) => {\n setList(list.filter((item) => !items.some((l) => comparator(l, item))));\n },\n [list, setList, comparator]\n );\n\n const toggle = useCallback(\n (item: T) => {\n const found = list.some((l) => comparator(l, item));\n if (found) {\n remove(item);\n } else {\n add(item);\n }\n },\n [list, add, remove, comparator]\n );\n\n return {\n add,\n addMultiple,\n remove,\n removeMultiple,\n toggle,\n };\n};\n","import { useCallback, useState } from \"react\";\n\ntype Value = boolean;\ntype SetTrue = () => void;\ntype SetFalse = () => void;\ntype ToggleValue = () => void;\ntype BooleanHook = [Value, SetTrue, SetFalse, ToggleValue];\n\nexport const useBoolean = (initialValue: Value): BooleanHook => {\n const [value, setValue] = useState(initialValue);\n\n const setTrue = useCallback(() => {\n setValue(true);\n }, [setValue]);\n\n const setFalse = useCallback(() => {\n setValue(false);\n }, [setValue]);\n\n const toggle = useCallback(() => {\n setValue((v) => !v);\n }, [setValue]);\n\n return [value, setTrue, setFalse, toggle];\n};\n","import { useEffect, useState } from \"react\";\n\nexport const useDebounce = <T>(value: T, delay: number): T => {\n // State and setters for debounced value\n const [debouncedValue, setDebouncedValue] = useState<T>(value);\n\n useEffect(() => {\n // Update debounced value after delay\n const handler = setTimeout(() => {\n setDebouncedValue(value);\n }, delay);\n\n // Cancel the timeout if value changes (also on delay change or unmount)\n // This is how we prevent debounced value from updating if value is changed ...\n // .. within the delay period. Timeout gets cleared and restarted.\n return () => {\n clearTimeout(handler);\n };\n }, [value, delay]); // Only re-call effect if value or delay changes\n\n return debouncedValue;\n};\n","import { useEffect, useState } from \"react\";\n\nexport const useDelayedFalse = (value: boolean, delay: number) => {\n const [debouncedValue, setDebouncedValue] = useState<boolean>(value);\n\n useEffect(() => {\n if (value) {\n setDebouncedValue(true);\n }\n\n const handler = setTimeout(() => {\n if (!value) {\n setDebouncedValue(value);\n }\n }, delay);\n\n return () => {\n clearTimeout(handler);\n };\n }, [value, delay]);\n\n return debouncedValue;\n};\n","import { useEffect, useState } from \"react\";\n\nlet id = 0;\nconst genId = (componentName?: string) =>\n `webui-${componentName ? componentName + \"-\" : \"\"}${++id}`;\n\n/** @deprecated use useId-hook from React 18 */\nexport const useDomId = (componentName?: string): string => {\n const [id, setId] = useState<string | null>(() => genId(componentName));\n useEffect(() => setId(genId(componentName)), [componentName]);\n return id!;\n};\n","import { RefObject, useEffect, useRef } from \"react\";\n\ntype EventHandler<TEventName extends keyof HTMLElementEventMap> = (\n event: HTMLElementEventMap[TEventName]\n) => void;\n\nexport const useEventListener = <TEventName extends keyof HTMLElementEventMap>(\n ref: RefObject<HTMLElement>,\n eventName: TEventName,\n handler: EventHandler<TEventName>\n) => {\n // Create a ref that stores handler\n const savedHandler = useRef<EventHandler<TEventName>>();\n\n // Update ref.current value if handler changes.\n // This allows our effect below to always get latest handler ...\n // ... without us needing to pass it in effect deps array ...\n // ... and potentially cause effect to re-run every render.\n useEffect(() => {\n savedHandler.current = handler;\n }, [handler]);\n\n useEffect(() => {\n // Make sure element supports addEventListener\n const isSupported = ref.current && ref.current.addEventListener;\n if (!isSupported) return;\n\n // Create event listener that calls handler function stored in ref\n const eventListener: EventHandler<TEventName> = (event) => {\n if (savedHandler.current) {\n return savedHandler.current(event);\n }\n };\n\n // Add event listener\n if (!ref.current) {\n return;\n }\n\n const element = ref.current;\n element.addEventListener(eventName, eventListener);\n\n // Remove event listener on cleanup\n return () => {\n if (element) {\n element.removeEventListener(eventName, eventListener);\n }\n };\n }, [eventName, ref]); // Re-run if eventName or element changes\n};\n","import { RefObject, useCallback, useEffect } from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { useBoolean } from \"./UseBoolean\";\nimport { useEventListener } from \"./UseEventListener\";\n\nexport const useElementFocus = <TElement extends HTMLElement>(\n ref: RefObject<TElement>\n) => {\n const [isInFocus, setIsInFocus, setIsNotInFocus] = useBoolean(false);\n\n useEffect(() => {\n if (document.activeElement === ReactDOM.findDOMNode(ref.current)) {\n setIsInFocus();\n } else {\n setIsNotInFocus();\n }\n }, [ref, setIsNotInFocus, setIsInFocus]);\n\n useEventListener(ref, \"focus\", setIsInFocus);\n useEventListener(ref, \"blur\", setIsNotInFocus);\n\n const focus = useCallback(() => {\n if (ref.current) {\n ref.current.focus();\n }\n }, [ref]);\n\n const blur = useCallback(() => {\n if (ref.current) {\n ref.current.blur();\n }\n }, [ref]);\n\n return { isInFocus, focus, blur };\n};\n","import { RefObject } from \"react\";\nimport { useBoolean } from \"./UseBoolean\";\nimport { useEventListener } from \"./UseEventListener\";\n\nexport const useMouseIsOver = <TElement extends HTMLElement>(\n ref: RefObject<TElement>\n) => {\n const [mouseIsOver, setMouseIsOver, setMouseIsNotOver] = useBoolean(false);\n\n useEventListener(ref, \"mouseover\", setMouseIsOver);\n useEventListener(ref, \"mouseout\", setMouseIsNotOver);\n\n return mouseIsOver;\n};\n","import { RefObject } from \"react\";\nimport { useBoolean } from \"./UseBoolean\";\nimport { useEventListener } from \"./UseEventListener\";\n\nexport const useMouseIsEntered = <TElement extends HTMLElement>(\n ref: RefObject<TElement>\n) => {\n const [mouseIsEntered, setMouseIsEntered, setMouseIsNotEntered] =\n useBoolean(false);\n\n useEventListener(ref, \"mouseenter\", setMouseIsEntered);\n useEventListener(ref, \"mouseleave\", setMouseIsNotEntered);\n\n return mouseIsEntered;\n};\n","import * as React from \"react\";\nimport { useEffect, useRef } from \"react\";\n\nexport const useMultiOnClickOutside = (\n refs: Array<React.RefObject<any>>,\n handler: (event: TouchEvent | MouseEvent) => void\n) => {\n const eventHandler = useRef<(event: TouchEvent | MouseEvent) => void>(() => {\n return;\n });\n\n useEffect(() => {\n eventHandler.current = handler;\n }, [handler]);\n\n useEffect(() => {\n const listener = (event: TouchEvent | MouseEvent) => {\n // Do nothing if clicking ref's element or descendent elements\n\n const allNotContains = refs\n .filter((ref) => ref.current)\n .every((ref) => {\n return ref.current && !ref.current.contains(event.target);\n });\n\n if (!allNotContains) {\n return;\n }\n\n eventHandler.current(event);\n };\n\n document.addEventListener(\"mousedown\", listener);\n document.addEventListener(\"touchstart\", listener);\n\n return () => {\n document.removeEventListener(\"mousedown\", listener);\n document.removeEventListener(\"touchstart\", listener);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [...refs]);\n};\n","import * as React from \"react\";\nimport { useEffect, useRef } from \"react\";\n\nexport const useOnClickOutside = (\n ref: React.RefObject<any>,\n handler: (event: TouchEvent | MouseEvent) => void,\n options?: AddEventListenerOptions\n) => {\n const eventHandler = useRef<(event: TouchEvent | MouseEvent) => void>(() => {\n return;\n });\n\n useEffect(() => {\n eventHandler.current = handler;\n }, [handler]);\n\n useEffect(() => {\n const listener = (event: TouchEvent | MouseEvent) => {\n // Do nothing if clicking ref's element or descendent elements\n if (!ref.current || ref.current.contains(event.target)) {\n return;\n }\n\n eventHandler.current(event);\n };\n\n document.addEventListener(\"mousedown\", listener, options);\n document.addEventListener(\"touchstart\", listener, options);\n\n return () => {\n document.removeEventListener(\"mousedown\", listener, options);\n document.removeEventListener(\"touchstart\", listener, options);\n };\n }, [ref, options]);\n};\n","import { debounce } from \"lodash\";\nimport { useEffect, useRef } from \"react\";\n\nconst events = [\"mousemove\", \"mousedown\", \"keydown\", \"touchstart\", \"scroll\"];\n\nexport const useOnNoMouseMovement = (callback: () => void, delay: number) => {\n const eventHandler = useRef<(event: Event) => void>(() => {\n return;\n });\n\n useEffect(() => {\n eventHandler.current = callback;\n }, [callback]);\n\n useEffect(() => {\n const onIdleChange = debounce(eventHandler.current, delay);\n events.forEach((event) => window.addEventListener(event, onIdleChange));\n\n return () => {\n events.forEach((event) =>\n window.removeEventListener(event, onIdleChange)\n );\n };\n }, [delay]);\n};\n","import { RefObject, useEffect, useMemo, useState } from \"react\";\n\nexport const useOnScreen = (\n ref: RefObject<Element>,\n options?: IntersectionObserverInit\n) => {\n const [isVisible, setIsVisible] = useState(false);\n\n const { rootMargin, root, threshold } = options || {};\n\n const observer = useMemo(() => {\n return new IntersectionObserver(\n ([entry]) => setIsVisible(entry.isIntersecting),\n {\n rootMargin,\n root,\n threshold,\n }\n );\n }, [setIsVisible, rootMargin, root, threshold]);\n\n useEffect(() => {\n if (ref.current) {\n observer.observe(ref.current);\n }\n return () => {\n observer.disconnect();\n };\n }, [observer, ref]);\n\n return isVisible;\n};\n","import {\n MutableRefObject,\n RefCallback,\n RefObject,\n useEffect,\n useRef,\n} from \"react\";\n\nexport const useForwardedRef = <T>(\n ref: RefCallback<T> | MutableRefObject<T> | null\n): RefObject<NonNullable<T>> => {\n const innerRef = useRef<T>(null) as MutableRefObject<NonNullable<T>>;\n\n useEffect(() => {\n if (!ref) return;\n if (typeof ref === \"function\") {\n ref(innerRef.current);\n } else {\n ref.current = innerRef.current;\n }\n });\n\n return innerRef;\n};\n","import { useCallback, useEffect, useRef, useState } from \"react\";\n\nexport const useTimeoutState = <S>(\n initialValue: S,\n defaultTimeout: number,\n clearTimeoutOnSetValue = true\n): [S, (v: S) => void] => {\n const [value, setValue] = useState<S>(initialValue);\n const timeoutRef = useRef<NodeJS.Timeout>();\n\n const wrappedSetter = useCallback(\n (newValue: S, timeout = defaultTimeout) => {\n setValue(newValue);\n if (clearTimeoutOnSetValue) {\n clearTimeout(timeoutRef.current!);\n }\n timeoutRef.current = setTimeout(() => setValue(initialValue), timeout);\n },\n [defaultTimeout, clearTimeoutOnSetValue, initialValue]\n );\n\n useEffect(() => {\n return () => {\n clearTimeout(timeoutRef.current!);\n };\n }, []);\n\n return [value, wrappedSetter];\n};\n","export const exhaustSwitchCaseElseThrow = (arg: never) => {\n throw new Error(`Switch unhandled case: ${arg}`);\n};\n\nexport const exhaustSwitchCase = <T>(_arg: never, fallback: T) => {\n return fallback;\n};\n","export const truthyKeysAsList = (r: Record<string, boolean>): Array<string> =>\n Object.keys(r).filter((key) => r[key]);\n","import { pickBy } from \"lodash\";\n\nexport const getDataProps = <T extends Record<string, unknown>>(\n props: Record<string, unknown> | {}\n): T => pickBy(props, isDataPropMapper) as T;\n\nconst isDataPropMapper = (_: unknown, key: string): boolean => isDataProp(key);\n\nconst isDataProp = <TProp extends string>(propName: TProp): boolean =>\n propName.startsWith(\"data-\") || propName.startsWith(\"aria-\");\n","export const parseFloatElseUndefined = (s: string): number | undefined => {\n try {\n const f = parseFloat(s);\n if (isNaN(f)) {\n return undefined;\n }\n if (f == null) {\n return undefined;\n }\n return f;\n } catch (e) {}\n return undefined;\n};\n\nexport const parseIntElseUndefined = (s: string): number | undefined => {\n try {\n const f = parseInt(s, 10);\n if (isNaN(f)) {\n return undefined;\n }\n if (f == null) {\n return undefined;\n }\n return f;\n } catch (e) {}\n return undefined;\n};\n"],"names":["SeparatorLineComponent","styled","props","SeparatorLine","forwardRef","color","cssColor","size","width","vertical","ref","jsx","ClickableElement","background","pointer","hoverBackground","disableOpacityOnClick","disableFocusHighlight","focusBackground","height","borderRadius","Clickable","onClick","onDblClick","tooltip","disablePointer","opacityOnHover","disabled","children","type","restProps","hasClickHandler","booleanOrNumberToNumber","num","shadows","excludedProps","isExcludedWebUiProp","propName","box","system","row","value","_a","Box","isPropValid","border","borderRight","borderLeft","borderTop","borderBottom","borderColor","borderStyle","borderWidth","boxShadow","flexbox","overflow","position","layout","zIndex","left","right","top","bottom","hoverBorder","focusBorder","focusWithinBackground","focusWithinBorder","Column","getDimensionObject","node","x","y","isEqualDimensions","a","b","useElementDimensions","onResizeElement","dimensions","setDimensions","useState","updateDimensions","useCallback","newDimensions","useLayoutEffect","ResizeAwareBox","onResize","boxProps","localRef","useRef","currentRef","Row","Indent","Spacing","InnerSpace","Space","half","horizontal","Nest","nest","render","Fragment","Text","variant","className","userSelect","whiteSpace","wordBreak","style","spanProps","cx","styles","Txt","SmallText","SmallerText","StandardText","LargeText","Heading","as","hProps","Element","HeaderText","defaultComparator","useArraySet","list","setList","comparator","add","item","l","addMultiple","items","remove","index","_","i","removeMultiple","toggle","useBoolean","initialValue","setValue","setTrue","setFalse","v","useDebounce","delay","debouncedValue","setDebouncedValue","useEffect","handler","useDelayedFalse","id","genId","componentName","useDomId","setId","useEventListener","eventName","savedHandler","eventListener","event","element","useElementFocus","isInFocus","setIsInFocus","setIsNotInFocus","ReactDOM","focus","blur","useMouseIsOver","mouseIsOver","setMouseIsOver","setMouseIsNotOver","useMouseIsEntered","mouseIsEntered","setMouseIsEntered","setMouseIsNotEntered","useMultiOnClickOutside","refs","eventHandler","listener","useOnClickOutside","options","events","useOnNoMouseMovement","callback","onIdleChange","debounce","useOnScreen","isVisible","setIsVisible","rootMargin","root","threshold","observer","useMemo","entry","useForwardedRef","innerRef","useTimeoutState","defaultTimeout","clearTimeoutOnSetValue","timeoutRef","wrappedSetter","newValue","timeout","exhaustSwitchCaseElseThrow","arg","exhaustSwitchCase","_arg","fallback","truthyKeysAsList","r","key","getDataProps","pickBy","isDataPropMapper","isDataProp","parseFloatElseUndefined","s","f","parseIntElseUndefined"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stenajs-webui/core",
3
- "version": "19.0.0-next.21",
3
+ "version": "19.0.0-next.23",
4
4
  "description": "",
5
5
  "author": "mattias800",
6
6
  "license": "MIT",
@@ -57,10 +57,10 @@
57
57
  "files": [
58
58
  "dist"
59
59
  ],
60
- "gitHead": "38e86363bdefa9bba943daec0b56a3706b226ae3",
60
+ "gitHead": "720df92b7728f542f8a5c4eb92530b8c259dc25b",
61
61
  "dependencies": {
62
62
  "@emotion/is-prop-valid": "^1.1.0",
63
- "@stenajs-webui/theme": "19.0.0-next.21",
63
+ "@stenajs-webui/theme": "19.0.0-next.23",
64
64
  "classnames": "^2.3.1"
65
65
  }
66
66
  }