@stenajs-webui/core 19.0.0-next.2 → 19.0.0-next.20

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