@stenajs-webui/core 19.0.0-next.34 → 19.0.0-next.35

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.
@@ -0,0 +1,6 @@
1
+ import * as React from "react";
2
+ import { ReactNode } from "react";
3
+ export interface ScreenReaderOnlyTextProps {
4
+ children?: ReactNode;
5
+ }
6
+ export declare const ScreenReaderOnlyText: React.FC<ScreenReaderOnlyTextProps>;
package/dist/index.d.ts CHANGED
@@ -9,6 +9,7 @@ export * from "./components/layout/indent/Indent";
9
9
  export * from "./components/layout/spacing/Spacing";
10
10
  export * from "./components/layout/space/Space";
11
11
  export * from "./components/util/Nest";
12
+ export * from "./components/accessibility/ScreenReaderOnlyText";
12
13
  export * from "./components/text/Text";
13
14
  export * from "./components/deprecated-text/SmallText";
14
15
  export * from "./components/deprecated-text/SmallerText";
package/dist/index.es.js CHANGED
@@ -1,13 +1,13 @@
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)}})();
1
+ (function(){"use strict";try{var i=document.createElement("style");i.appendChild(document.createTextNode("._visuallyHidden_1gevf_1{border:0;clip:rect(0 0 0 0);height:1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}._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
2
  import { cssColor as L } from "@stenajs-webui/theme";
3
- import { jsx as a, Fragment as I } from "react/jsx-runtime";
3
+ import { jsx as d, 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 z, useRef as w, useEffect as m, useMemo as F } from "react";
5
+ import { forwardRef as f, useState as p, useCallback as h, useLayoutEffect as z, useRef as v, useEffect as m, useMemo as H } from "react";
6
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
- import T from "classnames";
9
- import * as oe from "react-dom";
10
- import { debounce as se, pickBy as ce } from "lodash";
7
+ import { system as F, background as j, 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
+ import { pickBy as oe, debounce as se } from "lodash";
9
+ import D from "classnames";
10
+ import * as ce from "react-dom";
11
11
  const ue = $.hr`
12
12
  display: flex;
13
13
  border: 0;
@@ -16,15 +16,16 @@ const ue = $.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
- `, Ke = f(
19
+ `, Qe = f(
20
20
  ({
21
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__ */ a(
25
+ }, o) => /* @__PURE__ */ d(
26
26
  ue,
27
27
  {
28
+ "aria-hidden": !0,
28
29
  color: e,
29
30
  size: t,
30
31
  width: n,
@@ -55,7 +56,7 @@ const ue = $.hr`
55
56
  ${({ width: e }) => e ? `width: ${e};` : ""}
56
57
  ${({ height: e }) => e ? `height: ${e};` : ""}
57
58
  ${({ borderRadius: e }) => e ? `border-radius: ${e};` : ""}
58
- `, Ge = f(
59
+ `, Xe = f(
59
60
  ({
60
61
  disableFocusHighlight: e,
61
62
  onClick: t,
@@ -66,12 +67,12 @@ const ue = $.hr`
66
67
  opacityOnHover: c,
67
68
  disabled: i,
68
69
  children: u,
69
- background: d = "transparent",
70
+ background: a = "transparent",
70
71
  hoverBackground: l,
71
72
  focusBackground: g,
72
- type: M = "button",
73
- ...O
74
- }, k) => /* @__PURE__ */ a(
73
+ type: O = "button",
74
+ ...M
75
+ }, k) => /* @__PURE__ */ d(
75
76
  ie,
76
77
  {
77
78
  opacityOnHover: c,
@@ -83,11 +84,11 @@ const ue = $.hr`
83
84
  disableFocusHighlight: e,
84
85
  pointer: !!(t || n) && !s,
85
86
  ref: k,
86
- background: d,
87
+ background: a,
87
88
  hoverBackground: l,
88
89
  focusBackground: g,
89
- type: M,
90
- ...O,
90
+ type: O,
91
+ ...M,
91
92
  children: u
92
93
  }
93
94
  )
@@ -104,7 +105,7 @@ const ue = $.hr`
104
105
  "height",
105
106
  "overflow",
106
107
  "display"
107
- ], le = (e) => ae.includes(e), me = j({
108
+ ], le = (e) => ae.includes(e), me = F({
108
109
  row: {
109
110
  property: "flexDirection",
110
111
  transform: (e) => e ? "row" : "column"
@@ -138,7 +139,7 @@ const ue = $.hr`
138
139
  display: flex;
139
140
  flex-direction: column;
140
141
  ${me};
141
- ${H};
142
+ ${j};
142
143
  ${N};
143
144
  ${P};
144
145
  ${V};
@@ -175,8 +176,8 @@ const ue = $.hr`
175
176
  ${({ focusWithinBackground: e }) => e ? `background: ${e};` : ""}
176
177
  ${({ focusWithinBorder: e }) => e ? `border: ${e};` : ""}
177
178
  }
178
- `, Je = f(function(t, n) {
179
- return /* @__PURE__ */ a(b, { ref: n, ...t });
179
+ `, Ye = f(function(t, n) {
180
+ return /* @__PURE__ */ d(b, { ref: n, ...t });
180
181
  }), he = (e) => {
181
182
  const { x: t, y: n, width: r, height: o, bottom: s, top: c, left: i, right: u } = e.getBoundingClientRect();
182
183
  return {
@@ -203,33 +204,33 @@ const ue = $.hr`
203
204
  }, [o]), {
204
205
  dimensions: n
205
206
  };
206
- }, Qe = f(
207
+ }, Ze = f(
207
208
  function({ onResize: t, ...n }, r) {
208
- const o = w(null), s = r != null ? r : o;
209
- return pe(s, t), /* @__PURE__ */ a(b, { ...n, ref: r });
209
+ const o = v(null), s = r != null ? r : o;
210
+ return pe(s, t), /* @__PURE__ */ d(b, { ...n, ref: r });
210
211
  }
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(
212
+ ), et = f(function(t, n) {
213
+ return /* @__PURE__ */ d(b, { row: !0, ref: n, ...t });
214
+ }), tt = f(function({ num: t = 1, ...n }, r) {
215
+ return /* @__PURE__ */ d(b, { indent: t, ref: r, ...n });
216
+ }), nt = f(
216
217
  function({ num: t = 1, ...n }, r) {
217
- return /* @__PURE__ */ a(b, { spacing: t, ref: r, ...n });
218
+ return /* @__PURE__ */ d(b, { spacing: t, ref: r, ...n });
218
219
  }
219
- ), we = $.div`
220
+ ), ve = $.div`
220
221
  --current-size: 1;
221
222
  flex: none;
222
223
  width: calc(var(--current-size) * var(--swui-metrics-space));
223
224
  height: calc(var(--current-size) * var(--swui-metrics-space));
224
- `, et = ({
225
+ `, rt = ({
225
226
  half: e = !1,
226
227
  horizontal: t = !1,
227
228
  num: n = 1,
228
229
  vertical: r = !1
229
230
  }) => {
230
231
  const o = n * (e ? 0.5 : 1);
231
- return /* @__PURE__ */ a(
232
- we,
232
+ return /* @__PURE__ */ d(
233
+ ve,
233
234
  {
234
235
  style: {
235
236
  ["--current-size"]: o,
@@ -238,16 +239,21 @@ const ue = $.hr`
238
239
  }
239
240
  }
240
241
  );
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
242
+ }, ot = ({ children: e, nest: t, render: n }) => t ? /* @__PURE__ */ d(I, { children: n(e) }) : /* @__PURE__ */ d(I, { children: e }), we = "_visuallyHidden_1gevf_1", ge = {
243
+ visuallyHidden: we
244
+ }, be = (e) => oe(e, xe), xe = (e, t) => $e(t), $e = (e) => e.startsWith("data-") || e.startsWith("aria-"), st = ({
245
+ children: e,
246
+ ...t
247
+ }) => /* @__PURE__ */ d("span", { className: ge.visuallyHidden, ...be(t), children: e }), _e = "_text_1iisw_1", ye = "_standard_1iisw_24", Ee = "_bold_1iisw_27", Ie = "_caption_1iisw_31", Se = "_overline_1iisw_39", Ce = "_large_1iisw_48", Te = "_medium_1iisw_53", De = "_small_1iisw_58", Oe = "_smaller_1iisw_63", y = {
248
+ text: _e,
249
+ standard: ye,
250
+ bold: Ee,
251
+ caption: Ie,
252
+ overline: Se,
253
+ large: Ce,
254
+ medium: Te,
255
+ small: De,
256
+ smaller: Oe
251
257
  }, x = f(
252
258
  ({
253
259
  children: e,
@@ -259,26 +265,26 @@ const ue = $.hr`
259
265
  whiteSpace: c,
260
266
  wordBreak: i,
261
267
  style: u,
262
- ...d
263
- }, l) => /* @__PURE__ */ a(
268
+ ...a
269
+ }, l) => /* @__PURE__ */ d(
264
270
  "span",
265
271
  {
266
- className: T(y.text, y[t], y[n], r),
272
+ className: D(y.text, y[t], y[n], r),
267
273
  ref: l,
268
274
  style: { color: o, userSelect: s, whiteSpace: c, wordBreak: i, ...u },
269
- ...d,
275
+ ...a,
270
276
  children: e
271
277
  }
272
278
  )
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(
279
+ ), ct = x, ut = (e) => /* @__PURE__ */ d(x, { size: "small", ...e }), it = (e) => /* @__PURE__ */ d(x, { size: "smaller", ...e }), dt = (e) => /* @__PURE__ */ d(x, { size: "medium", ...e }), at = (e) => /* @__PURE__ */ d(x, { size: "large", ...e }), Me = "_heading_xn9xj_1", ke = "_h1_xn9xj_15", Le = "_h2_xn9xj_19", ze = "_h3_xn9xj_23", He = "_h4_xn9xj_27", Re = "_h5_xn9xj_31", Fe = "_h6_xn9xj_35", S = {
280
+ heading: Me,
281
+ h1: ke,
282
+ h2: Le,
283
+ h3: ze,
284
+ h4: He,
285
+ h5: Re,
286
+ h6: Fe
287
+ }, je = f(
282
288
  ({
283
289
  variant: e = "h3",
284
290
  className: t,
@@ -289,41 +295,41 @@ const ue = $.hr`
289
295
  children: c,
290
296
  as: i,
291
297
  ...u
292
- }, d) => {
298
+ }, a) => {
293
299
  const l = i != null ? i : e;
294
- return /* @__PURE__ */ a(
300
+ return /* @__PURE__ */ d(
295
301
  l,
296
302
  {
297
- className: T(S.heading, S[e], t),
303
+ className: D(S.heading, S[e], t),
298
304
  style: { color: n, whiteSpace: r, wordBreak: o, ...s },
299
- ref: d,
305
+ ref: a,
300
306
  ...u,
301
307
  children: c
302
308
  }
303
309
  );
304
310
  }
305
- ), ut = (e) => /* @__PURE__ */ a(Le, { variant: "h2", ...e }), ze = (e, t) => e === t, it = (e, t, n = ze) => {
311
+ ), lt = (e) => /* @__PURE__ */ d(je, { variant: "h2", ...e }), Ne = (e, t) => e === t, mt = (e, t, n = Ne) => {
306
312
  const r = h(
307
313
  (u) => {
308
- e.some((d) => n(d, u)) || t([...e, u]);
314
+ e.some((a) => n(a, u)) || t([...e, u]);
309
315
  },
310
316
  [e, t, n]
311
317
  ), o = h(
312
318
  (u) => {
313
319
  t(
314
- u.reduce((d, l) => d.some((g) => n(g, l)) ? d : [...d, l], e)
320
+ u.reduce((a, l) => a.some((g) => n(g, l)) ? a : [...a, l], e)
315
321
  );
316
322
  },
317
323
  [e, t, n]
318
324
  ), s = h(
319
325
  (u) => {
320
- const d = e.findIndex((l) => n(l, u));
321
- d >= 0 && t(e.filter((l, g) => g !== d));
326
+ const a = e.findIndex((l) => n(l, u));
327
+ a >= 0 && t(e.filter((l, g) => g !== a));
322
328
  },
323
329
  [e, t, n]
324
330
  ), c = h(
325
331
  (u) => {
326
- t(e.filter((d) => !u.some((l) => n(l, d))));
332
+ t(e.filter((a) => !u.some((l) => n(l, a))));
327
333
  },
328
334
  [e, t, n]
329
335
  ), i = h(
@@ -348,7 +354,7 @@ const ue = $.hr`
348
354
  n((c) => !c);
349
355
  }, [n]);
350
356
  return [t, r, o, s];
351
- }, dt = (e, t) => {
357
+ }, ht = (e, t) => {
352
358
  const [n, r] = p(e);
353
359
  return m(() => {
354
360
  const o = setTimeout(() => {
@@ -358,7 +364,7 @@ const ue = $.hr`
358
364
  clearTimeout(o);
359
365
  };
360
366
  }, [e, t]), n;
361
- }, at = (e, t) => {
367
+ }, ft = (e, t) => {
362
368
  const [n, r] = p(e);
363
369
  return m(() => {
364
370
  e && r(!0);
@@ -370,12 +376,12 @@ const ue = $.hr`
370
376
  };
371
377
  }, [e, t]), n;
372
378
  };
373
- let Fe = 0;
374
- const C = (e) => `webui-${e ? e + "-" : ""}${++Fe}`, lt = (e) => {
379
+ let Pe = 0;
380
+ const C = (e) => `webui-${e ? e + "-" : ""}${++Pe}`, pt = (e) => {
375
381
  const [t, n] = p(() => C(e));
376
382
  return m(() => n(C(e)), [e]), t;
377
- }, v = (e, t, n) => {
378
- const r = w();
383
+ }, w = (e, t, n) => {
384
+ const r = v();
379
385
  m(() => {
380
386
  r.current = n;
381
387
  }, [n]), m(() => {
@@ -392,25 +398,25 @@ const C = (e) => `webui-${e ? e + "-" : ""}${++Fe}`, lt = (e) => {
392
398
  c && c.removeEventListener(t, s);
393
399
  };
394
400
  }, [t, e]);
395
- }, mt = (e) => {
401
+ }, vt = (e) => {
396
402
  const [t, n, r] = E(!1);
397
403
  m(() => {
398
- document.activeElement === oe.findDOMNode(e.current) ? n() : r();
399
- }, [e, r, n]), v(e, "focus", n), v(e, "blur", r);
404
+ document.activeElement === ce.findDOMNode(e.current) ? n() : r();
405
+ }, [e, r, n]), w(e, "focus", n), w(e, "blur", r);
400
406
  const o = h(() => {
401
407
  e.current && e.current.focus();
402
408
  }, [e]), s = h(() => {
403
409
  e.current && e.current.blur();
404
410
  }, [e]);
405
411
  return { isInFocus: t, focus: o, blur: s };
406
- }, ht = (e) => {
412
+ }, wt = (e) => {
407
413
  const [t, n, r] = E(!1);
408
- return v(e, "mouseover", n), v(e, "mouseout", r), t;
409
- }, ft = (e) => {
414
+ return w(e, "mouseover", n), w(e, "mouseout", r), t;
415
+ }, gt = (e) => {
410
416
  const [t, n, r] = E(!1);
411
- return v(e, "mouseenter", n), v(e, "mouseleave", r), t;
412
- }, pt = (e, t) => {
413
- const n = w(() => {
417
+ return w(e, "mouseenter", n), w(e, "mouseleave", r), t;
418
+ }, bt = (e, t) => {
419
+ const n = v(() => {
414
420
  });
415
421
  m(() => {
416
422
  n.current = t;
@@ -422,8 +428,8 @@ const C = (e) => `webui-${e ? e + "-" : ""}${++Fe}`, lt = (e) => {
422
428
  document.removeEventListener("mousedown", r), document.removeEventListener("touchstart", r);
423
429
  };
424
430
  }, [...e]);
425
- }, wt = (e, t, n) => {
426
- const r = w(() => {
431
+ }, xt = (e, t, n) => {
432
+ const r = v(() => {
427
433
  });
428
434
  m(() => {
429
435
  r.current = t;
@@ -435,21 +441,21 @@ const C = (e) => `webui-${e ? e + "-" : ""}${++Fe}`, lt = (e) => {
435
441
  document.removeEventListener("mousedown", o, n), document.removeEventListener("touchstart", o, n);
436
442
  };
437
443
  }, [e, n]);
438
- }, D = ["mousemove", "mousedown", "keydown", "touchstart", "scroll"], vt = (e, t) => {
439
- const n = w(() => {
444
+ }, T = ["mousemove", "mousedown", "keydown", "touchstart", "scroll"], $t = (e, t) => {
445
+ const n = v(() => {
440
446
  });
441
447
  m(() => {
442
448
  n.current = e;
443
449
  }, [e]), m(() => {
444
450
  const r = se(n.current, t);
445
- return D.forEach((o) => window.addEventListener(o, r)), () => {
446
- D.forEach(
451
+ return T.forEach((o) => window.addEventListener(o, r)), () => {
452
+ T.forEach(
447
453
  (o) => window.removeEventListener(o, r)
448
454
  );
449
455
  };
450
456
  }, [t]);
451
- }, gt = (e, t) => {
452
- const [n, r] = p(!1), { rootMargin: o, root: s, threshold: c } = t || {}, i = F(() => new IntersectionObserver(
457
+ }, _t = (e, t) => {
458
+ const [n, r] = p(!1), { rootMargin: o, root: s, threshold: c } = t || {}, i = H(() => new IntersectionObserver(
453
459
  ([u]) => r(u.isIntersecting),
454
460
  {
455
461
  rootMargin: o,
@@ -460,13 +466,13 @@ const C = (e) => `webui-${e ? e + "-" : ""}${++Fe}`, lt = (e) => {
460
466
  return m(() => (e.current && i.observe(e.current), () => {
461
467
  i.disconnect();
462
468
  }), [i, e]), n;
463
- }, bt = (e) => {
464
- const t = w(null);
469
+ }, yt = (e) => {
470
+ const t = v(null);
465
471
  return m(() => {
466
472
  !e || (typeof e == "function" ? e(t.current) : e.current = t.current);
467
473
  }), t;
468
- }, xt = (e, t, n = !0) => {
469
- const [r, o] = p(e), s = w(), c = h(
474
+ }, Et = (e, t, n = !0) => {
475
+ const [r, o] = p(e), s = v(), c = h(
470
476
  (i, u = t) => {
471
477
  o(i), n && clearTimeout(s.current), s.current = setTimeout(() => o(e), u);
472
478
  },
@@ -475,15 +481,15 @@ const C = (e) => `webui-${e ? e + "-" : ""}${++Fe}`, lt = (e) => {
475
481
  return m(() => () => {
476
482
  clearTimeout(s.current);
477
483
  }, []), [r, c];
478
- }, $t = (e) => {
484
+ }, It = (e) => {
479
485
  throw new Error(`Switch unhandled case: ${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) => {
486
+ }, St = (e, t) => t, Ct = (e) => Object.keys(e).filter((t) => e[t]), Tt = (e) => {
481
487
  try {
482
488
  const t = parseFloat(e);
483
489
  return isNaN(t) || t == null ? void 0 : t;
484
490
  } catch {
485
491
  }
486
- }, St = (e) => {
492
+ }, Dt = (e) => {
487
493
  try {
488
494
  const t = parseInt(e, 10);
489
495
  return isNaN(t) || t == null ? void 0 : t;
@@ -492,46 +498,47 @@ const C = (e) => `webui-${e ? e + "-" : ""}${++Fe}`, lt = (e) => {
492
498
  };
493
499
  export {
494
500
  b as Box,
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,
501
+ Xe as Clickable,
502
+ Ye as Column,
503
+ lt as HeaderText,
504
+ je as Heading,
505
+ tt as Indent,
506
+ at as LargeText,
507
+ ot as Nest,
508
+ Ze as ResizeAwareBox,
509
+ et as Row,
510
+ st as ScreenReaderOnlyText,
511
+ Qe as SeparatorLine,
512
+ ut as SmallText,
513
+ it as SmallerText,
514
+ rt as Space,
515
+ nt as Spacing,
516
+ dt as StandardText,
510
517
  x as Text,
511
- nt as Txt,
518
+ ct as Txt,
512
519
  _ as booleanOrNumberToNumber,
513
- _t as exhaustSwitchCase,
514
- $t as exhaustSwitchCaseElseThrow,
515
- Et as getDataProps,
520
+ St as exhaustSwitchCase,
521
+ It as exhaustSwitchCaseElseThrow,
522
+ be as getDataProps,
516
523
  he as getDimensionObject,
517
- It as parseFloatElseUndefined,
518
- St as parseIntElseUndefined,
519
- yt as truthyKeysAsList,
520
- it as useArraySet,
524
+ Tt as parseFloatElseUndefined,
525
+ Dt as parseIntElseUndefined,
526
+ Ct as truthyKeysAsList,
527
+ mt as useArraySet,
521
528
  E as useBoolean,
522
- dt as useDebounce,
523
- at as useDelayedFalse,
524
- lt as useDomId,
529
+ ht as useDebounce,
530
+ ft as useDelayedFalse,
531
+ pt as useDomId,
525
532
  pe as useElementDimensions,
526
- mt as useElementFocus,
527
- v as useEventListener,
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
533
+ vt as useElementFocus,
534
+ w as useEventListener,
535
+ yt as useForwardedRef,
536
+ gt as useMouseIsEntered,
537
+ wt as useMouseIsOver,
538
+ bt as useMultiOnClickOutside,
539
+ xt as useOnClickOutside,
540
+ $t as useOnNoMouseMovement,
541
+ _t as useOnScreen,
542
+ Et as useTimeoutState
536
543
  };
537
544
  //# 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\";\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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"}
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/utils/PropsForwarder.ts","../src/components/accessibility/ScreenReaderOnlyText.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/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 aria-hidden={true}\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 { 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","import * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport styles from \"./ScreenReaderOnlyText.module.css\";\nimport { getDataProps } from \"../../utils/PropsForwarder\";\n\nexport interface ScreenReaderOnlyTextProps {\n children?: ReactNode;\n}\n\nexport const ScreenReaderOnlyText: React.FC<ScreenReaderOnlyTextProps> = ({\n children,\n ...props\n}) => {\n return (\n <span className={styles.visuallyHidden} {...getDataProps(props)}>\n {children}\n </span>\n );\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","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","getDataProps","pickBy","isDataPropMapper","_","key","isDataProp","ScreenReaderOnlyText","styles","Text","variant","className","userSelect","whiteSpace","wordBreak","style","spanProps","cx","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","parseFloatElseUndefined","s","f","parseIntElseUndefined"],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
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"}});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`
1
+ (function(){"use strict";try{var i=document.createElement("style");i.appendChild(document.createTextNode("._visuallyHidden_1gevf_1{border:0;clip:rect(0 0 0 0);height:1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}._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"}});const F=require("@stenajs-webui/theme"),d=require("react/jsx-runtime"),z=require("@emotion/styled"),r=require("react"),H=require("@emotion/is-prop-valid"),a=require("styled-system"),j=require("lodash"),N=require("classnames"),P=require("react-dom"),y=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=y(z),A=y(H),C=y(N),V=q(P),U=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
- `,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`
10
+ `,B=r.forwardRef(({color:e=F.cssColor("--lhds-color-ui-300"),size:t="100%",width:n="1px",vertical:s=!1},o)=>d.jsx(U,{"aria-hidden":!0,color:e,size:t,width:n,vertical:s,ref:o})),K=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
- `,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})`
33
+ `,W=r.forwardRef(({disableFocusHighlight:e,onClick:t,onDblClick:n,tooltip:s,disableOpacityOnClick:o,disablePointer:u,opacityOnHover:c,disabled:l,children:i,background:f="transparent",hoverBackground:m,focusBackground:w,type:k="button",...D},M)=>{const L=!!(t||n);return d.jsx(K,{opacityOnHover:c,title:s,disabled:l,disableOpacityOnClick:o,onClick:t,onDoubleClick:n,disableFocusHighlight:e,pointer:L&&!u,ref:M,background:f,hoverBackground:m,focusBackground:w,type:k,...D,children:i})}),p=e=>e==null?0:typeof e=="boolean"?e?1:0:e,G={box:"var(--swui-shadow-box)",popover:"var(--swui-shadow-popover)",modal:"var(--swui-shadow-modal)",bottom:"var(--swui-shadow-bottom)"},J=["spacing","indent","gap","width","height","overflow","display"],Q=e=>J.includes(e),X=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=G[e])!=null?t:e}}}),x=g.default("div",{shouldForwardProp:e=>typeof e=="string"?Q(e)?!1:A.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
- ${Q};
40
+ ${X};
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
- `,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`
78
+ `,Y=r.forwardRef(function(t,n){return d.jsx(x,{ref:n,...t})}),O=e=>{const{x:t,y:n,width:s,height:o,bottom:u,top:c,left:l,right:i}=e.getBoundingClientRect();return{width:s,height:o,top:c,left:l,x:t,y:n,right:i,bottom:u}},Z=(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,R=(e,t)=>{const[n,s]=r.useState(),o=r.useCallback(()=>{window.requestAnimationFrame(()=>{if(e.current){const u=O(e.current);(!n||!Z(n,u))&&t&&t(u),s(u)}})},[e,n,s,t]);return r.useLayoutEffect(()=>{o()},[o]),{dimensions:n}},ee=r.forwardRef(function({onResize:t,...n},s){const o=r.useRef(null),u=s!=null?s:o;return R(u,t),d.jsx(x,{...n,ref:s})}),te=r.forwardRef(function(t,n){return d.jsx(x,{row:!0,ref:n,...t})}),ne=r.forwardRef(function({num:t=1,...n},s){return d.jsx(x,{indent:t,ref:s,...n})}),se=r.forwardRef(function({num:t=1,...n},s){return d.jsx(x,{spacing:t,ref:s,...n})}),re=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
- `,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;
83
+ `,oe=({half:e=!1,horizontal:t=!1,num:n=1,vertical:s=!1})=>{const o=n*(e?.5:1);return d.jsx(re,{style:{["--current-size"]:o,height:t?1:void 0,width:s?1:void 0}})},ue=({children:e,nest:t,render:n})=>t?d.jsx(d.Fragment,{children:n(e)}):d.jsx(d.Fragment,{children:e}),ce="_visuallyHidden_1gevf_1",ie={visuallyHidden:ce},I=e=>j.pickBy(e,ae),ae=(e,t)=>de(t),de=e=>e.startsWith("data-")||e.startsWith("aria-"),le=({children:e,...t})=>d.jsx("span",{className:ie.visuallyHidden,...I(t),children:e}),fe="_text_1iisw_1",me="_standard_1iisw_24",he="_bold_1iisw_27",xe="_caption_1iisw_31",be="_overline_1iisw_39",we="_large_1iisw_48",pe="_medium_1iisw_53",ge="_small_1iisw_58",ve="_smaller_1iisw_63",_={text:fe,standard:me,bold:he,caption:xe,overline:be,large:we,medium:pe,small:ge,smaller:ve},b=r.forwardRef(({children:e,variant:t="standard",size:n="medium",className:s,color:o,userSelect:u,whiteSpace:c,wordBreak:l,style:i,...f},m)=>d.jsx("span",{className:C.default(_.text,_[t],_[n],s),ref:m,style:{color:o,userSelect:u,whiteSpace:c,wordBreak:l,...i},...f,children:e})),_e=b,ye=e=>d.jsx(b,{size:"small",...e}),$e=e=>d.jsx(b,{size:"smaller",...e}),Ee=e=>d.jsx(b,{size:"medium",...e}),Se=e=>d.jsx(b,{size:"large",...e}),je="_heading_xn9xj_1",Ce="_h1_xn9xj_15",Oe="_h2_xn9xj_19",Re="_h3_xn9xj_23",Ie="_h4_xn9xj_27",Te="_h5_xn9xj_31",ke="_h6_xn9xj_35",$={heading:je,h1:Ce,h2:Oe,h3:Re,h4:Ie,h5:Te,h6:ke},T=r.forwardRef(({variant:e="h3",className:t,color:n,whiteSpace:s,wordBreak:o,style:u,children:c,as:l,...i},f)=>{const m=l!=null?l:e;return d.jsx(m,{className:C.default($.heading,$[e],t),style:{color:n,whiteSpace:s,wordBreak:o,...u},ref:f,...i,children:c})}),De=e=>d.jsx(T,{variant:"h2",...e}),Me=(e,t)=>e===t,Le=(e,t,n=Me)=>{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]),l=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:l}},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]},Fe=(e,t)=>{const[n,s]=r.useState(e);return r.useEffect(()=>{const o=setTimeout(()=>{s(e)},t);return()=>{clearTimeout(o)}},[e,t]),n},ze=(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 He=0;const E=e=>`webui-${e?e+"-":""}${++He}`,Ne=e=>{const[t,n]=r.useState(()=>E(e));return r.useEffect(()=>n(E(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=l=>{if(s.current)return s.current(l)};if(!e.current)return;const c=e.current;return c.addEventListener(t,u),()=>{c&&c.removeEventListener(t,u)}},[t,e])},Pe=e=>{const[t,n,s]=v(!1);r.useEffect(()=>{document.activeElement===V.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}},qe=e=>{const[t,n,s]=v(!1);return h(e,"mouseover",n),h(e,"mouseout",s),t},Ae=e=>{const[t,n,s]=v(!1);return h(e,"mouseenter",n),h(e,"mouseleave",s),t},Ve=(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])},Ue=(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"],Be=(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])},Ke=(e,t)=>{const[n,s]=r.useState(!1),{rootMargin:o,root:u,threshold:c}=t||{},l=r.useMemo(()=>new IntersectionObserver(([i])=>s(i.isIntersecting),{rootMargin:o,root:u,threshold:c}),[s,o,u,c]);return r.useEffect(()=>(e.current&&l.observe(e.current),()=>{l.disconnect()}),[l,e]),n},We=e=>{const t=r.useRef(null);return r.useEffect(()=>{!e||(typeof e=="function"?e(t.current):e.current=t.current)}),t},Ge=(e,t,n=!0)=>{const[s,o]=r.useState(e),u=r.useRef(),c=r.useCallback((l,i=t)=>{o(l),n&&clearTimeout(u.current),u.current=setTimeout(()=>o(e),i)},[t,n,e]);return r.useEffect(()=>()=>{clearTimeout(u.current)},[]),[s,c]},Je=e=>{throw new Error(`Switch unhandled case: ${e}`)},Qe=(e,t)=>t,Xe=e=>Object.keys(e).filter(t=>e[t]),Ye=e=>{try{const t=parseFloat(e);return isNaN(t)||t==null?void 0:t}catch{}},Ze=e=>{try{const t=parseInt(e,10);return isNaN(t)||t==null?void 0:t}catch{}};exports.Box=x;exports.Clickable=W;exports.Column=Y;exports.HeaderText=De;exports.Heading=T;exports.Indent=ne;exports.LargeText=Se;exports.Nest=ue;exports.ResizeAwareBox=ee;exports.Row=te;exports.ScreenReaderOnlyText=le;exports.SeparatorLine=B;exports.SmallText=ye;exports.SmallerText=$e;exports.Space=oe;exports.Spacing=se;exports.StandardText=Ee;exports.Text=b;exports.Txt=_e;exports.booleanOrNumberToNumber=p;exports.exhaustSwitchCase=Qe;exports.exhaustSwitchCaseElseThrow=Je;exports.getDataProps=I;exports.getDimensionObject=O;exports.parseFloatElseUndefined=Ye;exports.parseIntElseUndefined=Ze;exports.truthyKeysAsList=Xe;exports.useArraySet=Le;exports.useBoolean=v;exports.useDebounce=Fe;exports.useDelayedFalse=ze;exports.useDomId=Ne;exports.useElementDimensions=R;exports.useElementFocus=Pe;exports.useEventListener=h;exports.useForwardedRef=We;exports.useMouseIsEntered=Ae;exports.useMouseIsOver=qe;exports.useMultiOnClickOutside=Ve;exports.useOnClickOutside=Ue;exports.useOnNoMouseMovement=Be;exports.useOnScreen=Ke;exports.useTimeoutState=Ge;
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\";\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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"}
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/utils/PropsForwarder.ts","../src/components/accessibility/ScreenReaderOnlyText.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/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 aria-hidden={true}\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 { 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","import * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport styles from \"./ScreenReaderOnlyText.module.css\";\nimport { getDataProps } from \"../../utils/PropsForwarder\";\n\nexport interface ScreenReaderOnlyTextProps {\n children?: ReactNode;\n}\n\nexport const ScreenReaderOnlyText: React.FC<ScreenReaderOnlyTextProps> = ({\n children,\n ...props\n}) => {\n return (\n <span className={styles.visuallyHidden} {...getDataProps(props)}>\n {children}\n </span>\n );\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","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","getDataProps","pickBy","isDataPropMapper","_","key","isDataProp","ScreenReaderOnlyText","styles","Text","variant","className","userSelect","whiteSpace","wordBreak","style","spanProps","cx","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","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.34",
3
+ "version": "19.0.0-next.35",
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": "a272a4864d08818ad883fb9138cabc0e19bc4cc8",
60
+ "gitHead": "8abf6b3bcca848a774f1163a4723524c23a7f2f6",
61
61
  "dependencies": {
62
62
  "@emotion/is-prop-valid": "^1.1.0",
63
- "@stenajs-webui/theme": "19.0.0-next.34",
63
+ "@stenajs-webui/theme": "19.0.0-next.35",
64
64
  "classnames": "^2.3.1"
65
65
  }
66
66
  }