@stenajs-webui/core 21.29.12 → 21.29.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/hooks/UseEventCallback.d.ts +3 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.es.js +70 -61
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/dist/index.d.ts
CHANGED
|
@@ -30,6 +30,7 @@ export * from "./hooks/UseDomId";
|
|
|
30
30
|
export * from "./hooks/UseElementDimensions";
|
|
31
31
|
export * from "./hooks/UseElementFocus";
|
|
32
32
|
export * from "./hooks/UseEventListener";
|
|
33
|
+
export * from "./hooks/UseEventCallback";
|
|
33
34
|
export * from "./hooks/UseLatest";
|
|
34
35
|
export * from "./hooks/UseMouseIsOver";
|
|
35
36
|
export * from "./hooks/UseMouseIsEntered";
|
package/dist/index.es.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
(function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode("._separatorLine_nzfcz_1{display:flex;border:0;margin:0;flex:none}._visuallyHidden_1gevf_1{border:0;clip:rect(0 0 0 0);height:1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}._text_1iisw_1{--swui-text-color: var(--swui-text-primary-color);--swui-text-color-caption: var(--lhds-color-ui-600);--swui-text-color-overline: var(--lhds-color-ui-600);--swui-text-font-family: var(--swui-font-primary);--swui-text-font-weight: var(--swui-font-weight-text);--current-color: var(--swui-text-color);--current-font-size: var(--swui-font-size-medium);--current-line-height: var(--swui-line-height-medium);--current-font-weight: var(--swui-text-font-weight);--current-letter-spacing: var(--swui-text-letter-spacing);font-size:var(--current-font-size);line-height:var(--current-line-height);color:var(--current-color);letter-spacing:var(--current-letter-spacing);font-family:var(--swui-text-font-family);font-weight:var(--current-font-weight)}._text_1iisw_1._bold_1iisw_27{--current-font-weight: var(--swui-font-weight-text-bold)}._text_1iisw_1._caption_1iisw_31{--current-font-size: var(--swui-font-size-small);--current-line-height: var(--swui-line-height-small);--current-color: var(--swui-text-color-caption);--current-letter-spacing: 0;font-style:italic}._text_1iisw_1._overline_1iisw_39{--current-font-size: var(--swui-font-size-smaller);--current-line-height: var(--swui-line-height-smaller);--current-color: var(--swui-text-color-overline);--current-font-weight: var(--swui-font-weight-text-bold);--current-letter-spacing: .1rem;text-transform:uppercase}._text_1iisw_1._large_1iisw_48{--current-font-size: var(--swui-font-size-large);--current-line-height: var(--swui-line-height-large)}._text_1iisw_1._medium_1iisw_53{--current-font-size: var(--swui-font-size-medium);--current-line-height: var(--swui-line-height-medium)}._text_1iisw_1._small_1iisw_58{--current-font-size: var(--swui-font-size-small);--current-line-height: var(--swui-line-height-small)}._text_1iisw_1._smaller_1iisw_63{--current-font-size: var(--swui-font-size-smaller);--current-line-height: var(--swui-line-height-smaller)}._heading_1cnsg_1{font-size:2rem;color:var(--swui-text-primary-color);letter-spacing:0;margin:0;line-height:var(--swui-line-height);font-family:var(--swui-font-primary);font-weight:var(--swui-font-weight-text-bold)}._heading_1cnsg_1._h1_1cnsg_10{font-size:2.8rem}._heading_1cnsg_1._h2_1cnsg_14{font-size:2.4rem}._heading_1cnsg_1._h3_1cnsg_18{font-size:2rem}._heading_1cnsg_1._h4_1cnsg_22{font-size:1.8rem}._heading_1cnsg_1._h5_1cnsg_26{font-size:1.6rem}._heading_1cnsg_1._h6_1cnsg_30{font-size:1.4rem}")),document.head.appendChild(e)}}catch(i){console.error("vite-plugin-css-injected-by-js",i)}})();
|
|
2
|
-
import { cssColor as
|
|
2
|
+
import { cssColor as D } from "@stenajs-webui/theme";
|
|
3
3
|
import { jsx as a, Fragment as S } from "react/jsx-runtime";
|
|
4
|
-
import
|
|
4
|
+
import H, { forwardRef as h, useState as y, useCallback as m, useLayoutEffect as R, useRef as f, useEffect as d, useMemo as L } from "react";
|
|
5
5
|
import _ from "@emotion/styled";
|
|
6
6
|
import { system as z, background as F, border as N, borderRight as U, borderLeft as V, borderTop as q, borderBottom as j, borderColor as B, borderRadius as W, borderStyle as X, borderWidth as G, boxShadow as Y, flexbox as K, overflow as Z, position as J, layout as Q, zIndex as ee, left as te, right as re, top as ue, bottom as ne } from "styled-system";
|
|
7
7
|
import { memoize as oe, pickBy as se, debounce as ie } from "lodash-es";
|
|
8
|
-
import
|
|
8
|
+
import M from "classnames";
|
|
9
9
|
const ae = "_separatorLine_nzfcz_1", ce = {
|
|
10
10
|
separatorLine: ae
|
|
11
11
|
}, rt = h(
|
|
12
12
|
({
|
|
13
|
-
color: e =
|
|
13
|
+
color: e = D("--lhds-color-ui-300"),
|
|
14
14
|
size: t = "100%",
|
|
15
15
|
width: r = "1px",
|
|
16
16
|
vertical: u = !1
|
|
@@ -64,10 +64,10 @@ const ae = "_separatorLine_nzfcz_1", ce = {
|
|
|
64
64
|
children: i,
|
|
65
65
|
background: l = "transparent",
|
|
66
66
|
hoverBackground: p,
|
|
67
|
-
focusBackground:
|
|
68
|
-
type:
|
|
69
|
-
...
|
|
70
|
-
},
|
|
67
|
+
focusBackground: g,
|
|
68
|
+
type: O = "button",
|
|
69
|
+
...A
|
|
70
|
+
}, P) => /* @__PURE__ */ a(
|
|
71
71
|
le,
|
|
72
72
|
{
|
|
73
73
|
opacityOnHover: s,
|
|
@@ -78,12 +78,12 @@ const ae = "_separatorLine_nzfcz_1", ce = {
|
|
|
78
78
|
onDoubleClick: r,
|
|
79
79
|
disableFocusHighlight: e,
|
|
80
80
|
pointer: !!(t || r) && !o,
|
|
81
|
-
ref:
|
|
81
|
+
ref: P,
|
|
82
82
|
background: l,
|
|
83
83
|
hoverBackground: p,
|
|
84
|
-
focusBackground:
|
|
85
|
-
type:
|
|
86
|
-
...
|
|
84
|
+
focusBackground: g,
|
|
85
|
+
type: O,
|
|
86
|
+
...A,
|
|
87
87
|
children: i
|
|
88
88
|
}
|
|
89
89
|
)
|
|
@@ -693,7 +693,7 @@ const ae = "_separatorLine_nzfcz_1", ce = {
|
|
|
693
693
|
bottom: o
|
|
694
694
|
};
|
|
695
695
|
}, xe = (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, ke = (e, t) => {
|
|
696
|
-
const [r, u] =
|
|
696
|
+
const [r, u] = y(), n = m(() => {
|
|
697
697
|
window.requestAnimationFrame(() => {
|
|
698
698
|
if (e.current) {
|
|
699
699
|
const o = we(e.current);
|
|
@@ -701,14 +701,14 @@ const ae = "_separatorLine_nzfcz_1", ce = {
|
|
|
701
701
|
}
|
|
702
702
|
});
|
|
703
703
|
}, [e, r, u, t]);
|
|
704
|
-
return
|
|
704
|
+
return R(() => {
|
|
705
705
|
n();
|
|
706
706
|
}, [n]), {
|
|
707
707
|
dimensions: r
|
|
708
708
|
};
|
|
709
709
|
}, ot = h(
|
|
710
710
|
function({ onResize: t, ...r }, u) {
|
|
711
|
-
const n =
|
|
711
|
+
const n = f(null);
|
|
712
712
|
return ke(u ?? n, t), /* @__PURE__ */ a(b, { ...r, ref: u });
|
|
713
713
|
}
|
|
714
714
|
), st = h(
|
|
@@ -771,11 +771,11 @@ const ae = "_separatorLine_nzfcz_1", ce = {
|
|
|
771
771
|
textAlign: i,
|
|
772
772
|
style: l,
|
|
773
773
|
...p
|
|
774
|
-
},
|
|
774
|
+
}, g) => /* @__PURE__ */ a(
|
|
775
775
|
"span",
|
|
776
776
|
{
|
|
777
|
-
className:
|
|
778
|
-
ref:
|
|
777
|
+
className: M(k.text, k[t], k[r], u),
|
|
778
|
+
ref: g,
|
|
779
779
|
style: {
|
|
780
780
|
color: n,
|
|
781
781
|
userSelect: o,
|
|
@@ -810,7 +810,7 @@ const ae = "_separatorLine_nzfcz_1", ce = {
|
|
|
810
810
|
}, l) => /* @__PURE__ */ a(
|
|
811
811
|
c ?? e,
|
|
812
812
|
{
|
|
813
|
-
className:
|
|
813
|
+
className: M(T.heading, T[e], t),
|
|
814
814
|
style: { color: r, whiteSpace: u, wordBreak: n, ...o },
|
|
815
815
|
ref: l,
|
|
816
816
|
...i,
|
|
@@ -826,14 +826,14 @@ const ae = "_separatorLine_nzfcz_1", ce = {
|
|
|
826
826
|
), n = m(
|
|
827
827
|
(i) => {
|
|
828
828
|
t(
|
|
829
|
-
i.reduce((l, p) => l.some((
|
|
829
|
+
i.reduce((l, p) => l.some((g) => r(g, p)) ? l : [...l, p], e)
|
|
830
830
|
);
|
|
831
831
|
},
|
|
832
832
|
[e, t, r]
|
|
833
833
|
), o = m(
|
|
834
834
|
(i) => {
|
|
835
835
|
const l = e.findIndex((p) => r(p, i));
|
|
836
|
-
l >= 0 && t(e.filter((p,
|
|
836
|
+
l >= 0 && t(e.filter((p, g) => g !== l));
|
|
837
837
|
},
|
|
838
838
|
[e, t, r]
|
|
839
839
|
), s = m(
|
|
@@ -855,7 +855,7 @@ const ae = "_separatorLine_nzfcz_1", ce = {
|
|
|
855
855
|
toggle: c
|
|
856
856
|
};
|
|
857
857
|
}, $ = (e) => {
|
|
858
|
-
const [t, r] =
|
|
858
|
+
const [t, r] = y(e), u = m(() => {
|
|
859
859
|
r(!0);
|
|
860
860
|
}, [r]), n = m(() => {
|
|
861
861
|
r(!1);
|
|
@@ -864,7 +864,7 @@ const ae = "_separatorLine_nzfcz_1", ce = {
|
|
|
864
864
|
}, [r]);
|
|
865
865
|
return [t, u, n, o];
|
|
866
866
|
}, bt = (e, t) => {
|
|
867
|
-
const [r, u] =
|
|
867
|
+
const [r, u] = y(e);
|
|
868
868
|
return d(() => {
|
|
869
869
|
const n = setTimeout(() => {
|
|
870
870
|
u(e);
|
|
@@ -874,7 +874,7 @@ const ae = "_separatorLine_nzfcz_1", ce = {
|
|
|
874
874
|
};
|
|
875
875
|
}, [e, t]), r;
|
|
876
876
|
}, wt = (e, t) => {
|
|
877
|
-
const [r, u] =
|
|
877
|
+
const [r, u] = y(e);
|
|
878
878
|
return d(() => {
|
|
879
879
|
e && u(!0);
|
|
880
880
|
const n = setTimeout(() => {
|
|
@@ -887,10 +887,10 @@ const ae = "_separatorLine_nzfcz_1", ce = {
|
|
|
887
887
|
};
|
|
888
888
|
let Xe = 0;
|
|
889
889
|
const C = (e) => `webui-${e ? e + "-" : ""}${++Xe}`, xt = (e) => {
|
|
890
|
-
const [t, r] =
|
|
890
|
+
const [t, r] = y(() => C(e));
|
|
891
891
|
return d(() => r(C(e)), [e]), t;
|
|
892
892
|
}, v = (e, t, r) => {
|
|
893
|
-
const u =
|
|
893
|
+
const u = f(null);
|
|
894
894
|
d(() => {
|
|
895
895
|
u.current = r;
|
|
896
896
|
}, [r]), d(() => {
|
|
@@ -918,16 +918,24 @@ const C = (e) => `webui-${e ? e + "-" : ""}${++Xe}`, xt = (e) => {
|
|
|
918
918
|
}, [e]);
|
|
919
919
|
return { isInFocus: t, focus: n, blur: o };
|
|
920
920
|
}, _t = (e) => {
|
|
921
|
-
const t =
|
|
922
|
-
return
|
|
921
|
+
const t = f(e);
|
|
922
|
+
return R(() => {
|
|
923
|
+
t.current = e;
|
|
924
|
+
}), m((...r) => {
|
|
925
|
+
const { current: u } = t;
|
|
926
|
+
return u(...r);
|
|
927
|
+
}, []);
|
|
923
928
|
}, $t = (e) => {
|
|
929
|
+
const t = H.useRef(e);
|
|
930
|
+
return t.current = e, t;
|
|
931
|
+
}, St = (e) => {
|
|
924
932
|
const [t, r, u] = $(!1);
|
|
925
933
|
return v(e, "mouseover", r), v(e, "mouseout", u), t;
|
|
926
|
-
},
|
|
934
|
+
}, Et = (e) => {
|
|
927
935
|
const [t, r, u] = $(!1);
|
|
928
936
|
return v(e, "mouseenter", r), v(e, "mouseleave", u), t;
|
|
929
|
-
},
|
|
930
|
-
const r =
|
|
937
|
+
}, Tt = (e, t) => {
|
|
938
|
+
const r = f(() => {
|
|
931
939
|
});
|
|
932
940
|
d(() => {
|
|
933
941
|
r.current = t;
|
|
@@ -939,8 +947,8 @@ const C = (e) => `webui-${e ? e + "-" : ""}${++Xe}`, xt = (e) => {
|
|
|
939
947
|
document.removeEventListener("mousedown", u), document.removeEventListener("touchstart", u);
|
|
940
948
|
};
|
|
941
949
|
}, [...e]);
|
|
942
|
-
},
|
|
943
|
-
const u =
|
|
950
|
+
}, Ct = (e, t, r) => {
|
|
951
|
+
const u = f(() => {
|
|
944
952
|
});
|
|
945
953
|
d(() => {
|
|
946
954
|
u.current = t;
|
|
@@ -952,8 +960,8 @@ const C = (e) => `webui-${e ? e + "-" : ""}${++Xe}`, xt = (e) => {
|
|
|
952
960
|
document.removeEventListener("mousedown", n, r), document.removeEventListener("touchstart", n, r);
|
|
953
961
|
};
|
|
954
962
|
}, [e, r]);
|
|
955
|
-
}, I = ["mousemove", "mousedown", "keydown", "touchstart", "scroll"],
|
|
956
|
-
const r =
|
|
963
|
+
}, I = ["mousemove", "mousedown", "keydown", "touchstart", "scroll"], It = (e, t) => {
|
|
964
|
+
const r = f(() => {
|
|
957
965
|
});
|
|
958
966
|
d(() => {
|
|
959
967
|
r.current = e;
|
|
@@ -965,8 +973,8 @@ const C = (e) => `webui-${e ? e + "-" : ""}${++Xe}`, xt = (e) => {
|
|
|
965
973
|
);
|
|
966
974
|
};
|
|
967
975
|
}, [t]);
|
|
968
|
-
},
|
|
969
|
-
const [r, u] =
|
|
976
|
+
}, Rt = (e, t) => {
|
|
977
|
+
const [r, u] = y(!1), { rootMargin: n, root: o, threshold: s } = t || {}, c = L(() => new IntersectionObserver(
|
|
970
978
|
([i]) => u(i.isIntersecting),
|
|
971
979
|
{
|
|
972
980
|
rootMargin: n,
|
|
@@ -977,13 +985,13 @@ const C = (e) => `webui-${e ? e + "-" : ""}${++Xe}`, xt = (e) => {
|
|
|
977
985
|
return d(() => (e.current && c.observe(e.current), () => {
|
|
978
986
|
c.disconnect();
|
|
979
987
|
}), [c, e]), r;
|
|
980
|
-
},
|
|
981
|
-
const t =
|
|
988
|
+
}, Lt = (e) => {
|
|
989
|
+
const t = f(null);
|
|
982
990
|
return d(() => {
|
|
983
991
|
e && (typeof e == "function" ? e(t.current) : e.current = t.current);
|
|
984
992
|
}), t;
|
|
985
|
-
},
|
|
986
|
-
const [u, n] =
|
|
993
|
+
}, Mt = (e, t, r = !0) => {
|
|
994
|
+
const [u, n] = y(e), o = f(null), s = m(
|
|
987
995
|
(c, i = t) => {
|
|
988
996
|
n(c), r && clearTimeout(o.current), o.current = setTimeout(() => n(e), i);
|
|
989
997
|
},
|
|
@@ -992,22 +1000,22 @@ const C = (e) => `webui-${e ? e + "-" : ""}${++Xe}`, xt = (e) => {
|
|
|
992
1000
|
return d(() => () => {
|
|
993
1001
|
clearTimeout(o.current);
|
|
994
1002
|
}, []), [u, s];
|
|
995
|
-
},
|
|
1003
|
+
}, Ot = () => L(() => /* @__PURE__ */ new Date(), []), At = (e) => {
|
|
996
1004
|
throw new Error(`Switch unhandled case: ${e}`);
|
|
997
|
-
},
|
|
1005
|
+
}, Pt = (e, t) => t, Dt = (e) => Object.keys(e).filter((t) => e[t]), Ht = (e) => {
|
|
998
1006
|
try {
|
|
999
1007
|
const t = parseFloat(e);
|
|
1000
1008
|
return isNaN(t) || t == null ? void 0 : t;
|
|
1001
1009
|
} catch {
|
|
1002
1010
|
}
|
|
1003
|
-
},
|
|
1011
|
+
}, zt = (e) => {
|
|
1004
1012
|
try {
|
|
1005
1013
|
const t = parseInt(e, 10);
|
|
1006
1014
|
return isNaN(t) || t == null ? void 0 : t;
|
|
1007
1015
|
} catch {
|
|
1008
1016
|
}
|
|
1009
1017
|
};
|
|
1010
|
-
function
|
|
1018
|
+
function Ft(e, t) {
|
|
1011
1019
|
if (e == null)
|
|
1012
1020
|
throw new Error("Invariant error: " + t);
|
|
1013
1021
|
}
|
|
@@ -1032,14 +1040,14 @@ export {
|
|
|
1032
1040
|
w as Text,
|
|
1033
1041
|
pt as Txt,
|
|
1034
1042
|
x as booleanOrNumberToNumber,
|
|
1035
|
-
|
|
1036
|
-
|
|
1043
|
+
Pt as exhaustSwitchCase,
|
|
1044
|
+
At as exhaustSwitchCaseElseThrow,
|
|
1037
1045
|
Ee as getDataProps,
|
|
1038
1046
|
we as getDimensionObject,
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1047
|
+
Ft as invariant,
|
|
1048
|
+
Ht as parseFloatElseUndefined,
|
|
1049
|
+
zt as parseIntElseUndefined,
|
|
1050
|
+
Dt as truthyKeysAsList,
|
|
1043
1051
|
vt as useArraySet,
|
|
1044
1052
|
$ as useBoolean,
|
|
1045
1053
|
bt as useDebounce,
|
|
@@ -1047,16 +1055,17 @@ export {
|
|
|
1047
1055
|
xt as useDomId,
|
|
1048
1056
|
ke as useElementDimensions,
|
|
1049
1057
|
kt as useElementFocus,
|
|
1058
|
+
_t as useEventCallback,
|
|
1050
1059
|
v as useEventListener,
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1060
|
+
Lt as useForwardedRef,
|
|
1061
|
+
$t as useLatest,
|
|
1062
|
+
Et as useMouseIsEntered,
|
|
1063
|
+
St as useMouseIsOver,
|
|
1064
|
+
Tt as useMultiOnClickOutside,
|
|
1065
|
+
Ct as useOnClickOutside,
|
|
1066
|
+
It as useOnNoMouseMovement,
|
|
1067
|
+
Rt as useOnScreen,
|
|
1068
|
+
Mt as useTimeoutState,
|
|
1069
|
+
Ot as useToday
|
|
1061
1070
|
};
|
|
1062
1071
|
//# sourceMappingURL=index.es.js.map
|
package/dist/index.es.js.map
CHANGED
|
@@ -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/util/IsPropValid.ts","../src/components/layout/box/Box.tsx","../src/components/layout/column/Column.tsx","../src/hooks/UseElementDimensions.ts","../src/components/layout/box/ResizeAwareBox.tsx","../src/components/layout/row/Row.tsx","../src/components/layout/indent/Indent.tsx","../src/components/layout/spacing/Spacing.tsx","../src/components/layout/space/Space.tsx","../src/components/util/Nest.tsx","../src/utils/PropsForwarder.ts","../src/components/accessibility/ScreenReaderOnlyText.tsx","../src/components/text/Text.tsx","../src/components/deprecated-text/SmallText.tsx","../src/components/deprecated-text/SmallerText.tsx","../src/components/deprecated-text/StandardText.tsx","../src/components/deprecated-text/LargeText.tsx","../src/components/heading/Heading.tsx","../src/components/deprecated-text/HeaderText.tsx","../src/hooks/UseArraySet.ts","../src/hooks/UseBoolean.ts","../src/hooks/UseDebounce.ts","../src/hooks/UseDelayedFalse.ts","../src/hooks/UseDomId.ts","../src/hooks/UseEventListener.ts","../src/hooks/UseElementFocus.ts","../src/hooks/UseLatest.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/hooks/UseToday.ts","../src/utils/SwitchCaseExhauster.ts","../src/utils/TruthyKeysAsList.ts","../src/utils/parsers/NumberParser.ts","../src/utils/Invariant.ts"],"sourcesContent":["import { Property } from \"csstype\";\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nimport { cssColor } from \"@stenajs-webui/theme\";\nimport styles from \"./SeparatorLine.module.css\";\n\nexport interface SeparatorLineProps {\n color?: Property.Color;\n vertical?: boolean;\n size?: string;\n width?: string;\n}\n\nexport const SeparatorLine = forwardRef<HTMLHRElement, SeparatorLineProps>(\n (\n {\n color = cssColor(\"--lhds-color-ui-300\"),\n size = \"100%\",\n width = \"1px\",\n vertical = false,\n },\n ref,\n ) => {\n return (\n <hr\n className={styles.separatorLine}\n aria-hidden={true}\n color={color}\n style={{\n backgroundColor: color,\n height: vertical ? size || \"100%\" : width || \"1px\",\n width: vertical ? width || \"1px\" : size || \"100%\",\n }}\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\nexport const numberToMetricCalc = (num: number): string | undefined => {\n if (num === 0) {\n return undefined;\n }\n return `calc(${num} * var(--swui-metrics-space))`;\n};\n\nexport const booleanOrNumberToMetricCalc = (\n num: number | boolean | undefined,\n): string | undefined => numberToMetricCalc(booleanOrNumberToNumber(num));\n","import { memoize } from \"lodash-es\";\n\nconst validPropsRecord = {\n // react props\n // https://github.com/facebook/react/blob/5495a7f24aef85ba6937truetrue1ce962673ca9f5fde6/src/renderers/dom/shared/hooks/ReactDOMUnknownPropertyHook.js\n children: true,\n dangerouslySetInnerHTML: true,\n key: true,\n ref: true,\n autoFocus: true,\n defaultValue: true,\n defaultChecked: true,\n innerHTML: true,\n suppressContentEditableWarning: true,\n suppressHydrationWarning: true,\n // deprecated react prop\n valueLink: true,\n\n // https://github.com/facebook/react/blob/d7157651f7b72d9888ctrue123e191f9b88cd8f41e9/src/renderers/dom/shared/HTMLDOMPropertyConfig.js\n /**\n * Standard Properties\n */\n\n abbr: true,\n accept: true,\n acceptCharset: true,\n accessKey: true,\n action: true,\n allow: true,\n allowUserMedia: true,\n allowPaymentRequest: true,\n allowFullScreen: true,\n allowTransparency: true,\n alt: true,\n // specifies target context for links with `preload` type\n // as: true,\n async: true,\n autoComplete: true,\n // autoFocus is polyfilled/normalized by AutoFocusUtils\n // autoFocus: true,\n autoPlay: true,\n capture: true,\n cellPadding: true,\n cellSpacing: true,\n // keygen prop\n challenge: true,\n charSet: true,\n checked: true,\n cite: true,\n classID: true,\n className: true,\n cols: true,\n colSpan: true,\n content: true,\n contentEditable: true,\n contextMenu: true,\n controls: true,\n controlsList: true,\n coords: true,\n crossOrigin: true,\n data: true, // For `<object />` acts as `src`.\n dateTime: true,\n decoding: true,\n default: true,\n defer: true,\n dir: true,\n disabled: true,\n disablePictureInPicture: true,\n disableRemotePlayback: true,\n download: true,\n draggable: true,\n encType: true,\n enterKeyHint: true,\n form: true,\n formAction: true,\n formEncType: true,\n formMethod: true,\n formNoValidate: true,\n formTarget: true,\n frameBorder: true,\n headers: true,\n height: true,\n hidden: true,\n high: true,\n href: true,\n hrefLang: true,\n htmlFor: true,\n httpEquiv: true,\n id: true,\n inputMode: true,\n integrity: true,\n is: true,\n keyParams: true,\n keyType: true,\n kind: true,\n label: true,\n lang: true,\n list: true,\n loading: true,\n loop: true,\n low: true,\n // manifest: true,\n marginHeight: true,\n marginWidth: true,\n max: true,\n maxLength: true,\n media: true,\n mediaGroup: true,\n method: true,\n min: true,\n minLength: true,\n // Caution; `option.selected` is not updated if `select.multiple` is\n // disabled with `removeAttribute`.\n multiple: true,\n muted: true,\n name: true,\n nonce: true,\n noValidate: true,\n open: true,\n optimum: true,\n pattern: true,\n placeholder: true,\n playsInline: true,\n poster: true,\n preload: true,\n profile: true,\n radioGroup: true,\n readOnly: true,\n referrerPolicy: true,\n rel: true,\n required: true,\n reversed: true,\n role: true,\n rows: true,\n rowSpan: true,\n sandbox: true,\n scope: true,\n scoped: true,\n scrolling: true,\n seamless: true,\n selected: true,\n shape: true,\n size: true,\n sizes: true,\n // support for projecting regular DOM Elements via V1 named slots ( shadow dom )\n slot: true,\n span: true,\n spellCheck: true,\n src: true,\n srcDoc: true,\n srcLang: true,\n srcSet: true,\n start: true,\n step: true,\n style: true,\n summary: true,\n tabIndex: true,\n target: true,\n title: true,\n translate: true,\n // Setting .type throws on non-<input> tags\n type: true,\n useMap: true,\n value: true,\n width: true,\n wmode: true,\n wrap: true,\n\n /**\n * RDFa Properties\n */\n about: true,\n datatype: true,\n inlist: true,\n prefix: true,\n // property is also supported for OpenGraph in meta tags.\n property: true,\n resource: true,\n typeof: true,\n vocab: true,\n\n /**\n * Non-standard Properties\n */\n // autoCapitalize and autoCorrect are supported in Mobile Safari for\n // keyboard hints.\n autoCapitalize: true,\n autoCorrect: true,\n // autoSave allows WebKit/Blink to persist values of input fields on page reloads\n autoSave: true,\n // color is for Safari mask-icon link\n color: true,\n // https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/search#incremental_This_API_has_not_been_standardized\n incremental: true,\n // used in amp html for indicating the fallback behavior\n // https://amp.dev/documentation/guides-and-tutorials/develop/style_and_layout/placeholders/\n fallback: true,\n // https://html.spec.whatwg.org/multipage/interaction.html#inert\n inert: true,\n // itemProp, itemScope, itemType are for\n // Microdata support. See http://schema.org/docs/gs.html\n itemProp: true,\n itemScope: true,\n itemType: true,\n // itemID and itemRef are for Microdata support as well but\n // only specified in the WHATWG spec document. See\n // https://html.spec.whatwg.org/multipage/microdata.html#microdata-dom-api\n itemID: true,\n itemRef: true,\n // used in amp html for eventing purposes\n // https://amp.dev/documentation/guides-and-tutorials/learn/common_attributes/\n on: true,\n // used in amp html for indicating that the option is selectable\n // https://amp.dev/documentation/components/amp-selector/\n option: true,\n // results show looking glass icon and recent searches on input\n // search fields in WebKit/Blink\n results: true,\n // IE-only attribute that specifies security restrictions on an iframe\n // as an alternative to the sandbox attribute on IE<1true\n security: true,\n // IE-only attribute that controls focus behavior\n unselectable: true,\n //\n // SVG properties: https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute\n // The following \"onX\" events have been omitted:\n //\n // onabort\n // onactivate\n // onbegin\n // onclick\n // onend\n // onerror\n // onfocusin\n // onfocusout\n // onload\n // onmousedown\n // onmousemove\n // onmouseout\n // onmouseover\n // onmouseup\n // onrepeat\n // onresize\n // onscroll\n // onunload\n accentHeight: true,\n accumulate: true,\n additive: true,\n alignmentBaseline: true,\n allowReorder: true,\n alphabetic: true,\n amplitude: true,\n arabicForm: true,\n ascent: true,\n attributeName: true,\n attributeType: true,\n autoReverse: true,\n azimuth: true,\n baseFrequency: true,\n baselineShift: true,\n baseProfile: true,\n bbox: true,\n begin: true,\n bias: true,\n by: true,\n calcMode: true,\n capHeight: true,\n clip: true,\n clipPathUnits: true,\n clipPath: true,\n clipRule: true,\n colorInterpolation: true,\n colorInterpolationFilters: true,\n colorProfile: true,\n colorRendering: true,\n contentScriptType: true,\n contentStyleType: true,\n cursor: true,\n cx: true,\n cy: true,\n d: true,\n decelerate: true,\n descent: true,\n diffuseConstant: true,\n direction: true,\n display: true,\n divisor: true,\n dominantBaseline: true,\n dur: true,\n dx: true,\n dy: true,\n edgeMode: true,\n elevation: true,\n enableBackground: true,\n end: true,\n exponent: true,\n externalResourcesRequired: true,\n fill: true,\n fillOpacity: true,\n fillRule: true,\n filter: true,\n filterRes: true,\n filterUnits: true,\n floodColor: true,\n floodOpacity: true,\n focusable: true,\n fontFamily: true,\n fontSize: true,\n fontSizeAdjust: true,\n fontStretch: true,\n fontStyle: true,\n fontVariant: true,\n fontWeight: true,\n format: true,\n from: true,\n fr: true, // valid SVG element but React will ask for removal\n fx: true,\n fy: true,\n g1: true,\n g2: true,\n glyphName: true,\n glyphOrientationHorizontal: true,\n glyphOrientationVertical: true,\n glyphRef: true,\n gradientTransform: true,\n gradientUnits: true,\n hanging: true,\n horizAdvX: true,\n horizOriginX: true,\n ideographic: true,\n imageRendering: true,\n in: true,\n in2: true,\n intercept: true,\n k: true,\n k1: true,\n k2: true,\n k3: true,\n k4: true,\n kernelMatrix: true,\n kernelUnitLength: true,\n kerning: true,\n keyPoints: true,\n keySplines: true,\n keyTimes: true,\n lengthAdjust: true,\n letterSpacing: true,\n lightingColor: true,\n limitingConeAngle: true,\n local: true,\n markerEnd: true,\n markerMid: true,\n markerStart: true,\n markerHeight: true,\n markerUnits: true,\n markerWidth: true,\n mask: true,\n maskContentUnits: true,\n maskUnits: true,\n mathematical: true,\n mode: true,\n numOctaves: true,\n offset: true,\n opacity: true,\n operator: true,\n order: true,\n orient: true,\n orientation: true,\n origin: true,\n overflow: true,\n overlinePosition: true,\n overlineThickness: true,\n panose1: true,\n paintOrder: true,\n pathLength: true,\n patternContentUnits: true,\n patternTransform: true,\n patternUnits: true,\n pointerEvents: true,\n points: true,\n pointsAtX: true,\n pointsAtY: true,\n pointsAtZ: true,\n preserveAlpha: true,\n preserveAspectRatio: true,\n primitiveUnits: true,\n r: true,\n radius: true,\n refX: true,\n refY: true,\n renderingIntent: true,\n repeatCount: true,\n repeatDur: true,\n requiredExtensions: true,\n requiredFeatures: true,\n restart: true,\n result: true,\n rotate: true,\n rx: true,\n ry: true,\n scale: true,\n seed: true,\n shapeRendering: true,\n slope: true,\n spacing: true,\n specularConstant: true,\n specularExponent: true,\n speed: true,\n spreadMethod: true,\n startOffset: true,\n stdDeviation: true,\n stemh: true,\n stemv: true,\n stitchTiles: true,\n stopColor: true,\n stopOpacity: true,\n strikethroughPosition: true,\n strikethroughThickness: true,\n string: true,\n stroke: true,\n strokeDasharray: true,\n strokeDashoffset: true,\n strokeLinecap: true,\n strokeLinejoin: true,\n strokeMiterlimit: true,\n strokeOpacity: true,\n strokeWidth: true,\n surfaceScale: true,\n systemLanguage: true,\n tableValues: true,\n targetX: true,\n targetY: true,\n textAnchor: true,\n textDecoration: true,\n textRendering: true,\n textLength: true,\n to: true,\n transform: true,\n u1: true,\n u2: true,\n underlinePosition: true,\n underlineThickness: true,\n unicode: true,\n unicodeBidi: true,\n unicodeRange: true,\n unitsPerEm: true,\n vAlphabetic: true,\n vHanging: true,\n vIdeographic: true,\n vMathematical: true,\n values: true,\n vectorEffect: true,\n version: true,\n vertAdvY: true,\n vertOriginX: true,\n vertOriginY: true,\n viewBox: true,\n viewTarget: true,\n visibility: true,\n widths: true,\n wordSpacing: true,\n writingMode: true,\n x: true,\n xHeight: true,\n x1: true,\n x2: true,\n xChannelSelector: true,\n xlinkActuate: true,\n xlinkArcrole: true,\n xlinkHref: true,\n xlinkRole: true,\n xlinkShow: true,\n xlinkTitle: true,\n xlinkType: true,\n xmlBase: true,\n xmlns: true,\n xmlnsXlink: true,\n xmlLang: true,\n xmlSpace: true,\n y: true,\n y1: true,\n y2: true,\n yChannelSelector: true,\n z: true,\n zoomAndPan: true,\n\n // For preact. We have this code here even though Emotion doesn't support\n // Preact, since @emotion/is-prop-valid is used by some libraries outside of\n // the context of Emotion.\n for: true,\n class: true,\n autofocus: true,\n};\n\nconst validProps = `^((${Object.keys(validPropsRecord).join(\n \"|\",\n)})|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$`;\n\nconst r = new RegExp(validProps);\n\nexport const isPropValid: (prop: string) => boolean = memoize(\n (prop: string) =>\n r.test(prop) ||\n (prop.charCodeAt(0) === 111 /* o */ &&\n prop.charCodeAt(1) === 110 /* n */ &&\n prop.charCodeAt(2) < 91) /* Z+1 */,\n);\n","import 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 {\n booleanOrNumberToMetricCalc,\n booleanOrNumberToNumber,\n} from \"../../../utils/BooleanOrNumberToNumber\";\nimport { isPropValid } from \"../../util/IsPropValid\";\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 gap between columns.\n */\n columnGap?: ResponsiveValue<boolean | TLengthStyledSystem>;\n\n /**\n * Adds gap between rows.\n */\n rowGap?: 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-expect-error Sets a CSS property.\n property: \"--current-indent\",\n transform: booleanOrNumberToNumber,\n },\n spacing: {\n // @ts-expect-error Sets a CSS property.\n property: \"--current-spacing\",\n transform: booleanOrNumberToNumber,\n },\n gap: {\n // @ts-expect-error Sets a CSS property.\n property: \"--current-gap\",\n transform: booleanOrNumberToNumber,\n },\n columnGap: {\n property: \"columnGap\",\n transform: booleanOrNumberToMetricCalc,\n },\n rowGap: {\n property: \"rowGap\",\n transform: booleanOrNumberToMetricCalc,\n },\n shadow: {\n property: \"boxShadow\",\n transform: (value: ShadowType) => 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\n :hover {\n ${({ hoverBackground }) =>\n hoverBackground ? `background: ${hoverBackground};` : \"\"}\n ${({ hoverBorder }) => (hoverBorder ? `border: ${hoverBorder};` : \"\")}\n }\n\n :focus {\n ${({ focusBackground }) =>\n focusBackground ? `background: ${focusBackground};` : \"\"}\n ${({ focusBorder }) => (focusBorder ? `border: ${focusBorder};` : \"\")}\n }\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>(\n function Column(props, ref) {\n return <Box ref={ref} {...props} />;\n },\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 | null>,\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 Omit<BoxProps, \"onResize\"> {\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>(\n function Row(props, ref) {\n return <Box row ref={ref} {...props} />;\n },\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.FC<SpaceProps> = ({\n half = false,\n horizontal = false,\n num = 1,\n vertical = false,\n}) => {\n const size = num * (half ? 0.5 : 1);\n\n return (\n <InnerSpace\n style={{\n [\"--current-size\" as string]: size,\n height: horizontal ? 1 : undefined,\n width: vertical ? 1 : undefined,\n }}\n />\n );\n};\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\n\ninterface Props {\n nest?: boolean;\n render: (children: ReactNode) => ReactNode;\n children?: ReactNode;\n}\n\nexport const Nest: React.FC<Props> = ({ children, nest, render }) => {\n if (nest) {\n return <>{render(children)}</>;\n }\n return <>{children}</>;\n};\n","import { pickBy } from \"lodash-es\";\n\nexport const getDataProps = <T extends Record<string, unknown>>(\n props: Record<string, unknown> | object,\n): T => pickBy(props, isDataPropMapper) as T;\n\nconst isDataPropMapper = (_: unknown, key: string): boolean => isDataProp(key);\n\nconst isDataProp = <TProp extends string>(propName: TProp): boolean =>\n propName.startsWith(\"data-\") || propName.startsWith(\"aria-\");\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport styles from \"./ScreenReaderOnlyText.module.css\";\nimport { getDataProps } from \"../../utils/PropsForwarder\";\n\nexport interface ScreenReaderOnlyTextProps {\n children?: ReactNode;\n}\n\nexport const ScreenReaderOnlyText: React.FC<ScreenReaderOnlyTextProps> = ({\n children,\n ...props\n}) => {\n return (\n <span className={styles.visuallyHidden} {...getDataProps(props)}>\n {children}\n </span>\n );\n};\n","import * as React from \"react\";\nimport cx from \"classnames\";\nimport styles from \"./Text.module.css\";\nimport { SpanProps } from \"../../types/ElementProps\";\nimport { Property } from \"csstype\";\nimport { forwardRef } from \"react\";\n\nexport interface TextProps extends SpanProps {\n variant?: TextVariant;\n size?: TextSize;\n userSelect?: Property.UserSelect;\n whiteSpace?: Property.WhiteSpace;\n wordBreak?: Property.WordBreak;\n textAlign?: Property.TextAlign;\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 textAlign,\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={{\n color,\n userSelect,\n whiteSpace,\n wordBreak,\n textAlign,\n ...style,\n }}\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 | null>,\n eventName: TEventName,\n handler: EventHandler<TEventName>,\n) => {\n // Create a ref that stores handler\n const savedHandler = useRef<EventHandler<TEventName>>(null);\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 { 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 === 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 React, { MutableRefObject } from \"react\";\n\nexport const useLatest = <T>(value: T): MutableRefObject<T> => {\n const ref = React.useRef(value);\n ref.current = value;\n return ref;\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 // eslint-disable-next-line @typescript-eslint/no-explicit-any\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 // eslint-disable-next-line @typescript-eslint/no-explicit-any\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-es\";\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 | null>,\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>(null);\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","import { useMemo } from \"react\";\n\nexport const useToday = () => {\n return useMemo(() => new Date(), []);\n};\n","export const exhaustSwitchCaseElseThrow = (arg: never) => {\n throw new Error(`Switch unhandled case: ${arg}`);\n};\n\nexport const exhaustSwitchCase = <T>(_arg: never, fallback: T) => {\n return fallback;\n};\n","export const truthyKeysAsList = (r: Record<string, boolean>): Array<string> =>\n Object.keys(r).filter((key) => r[key]);\n","export const parseFloatElseUndefined = (s: string): number | undefined => {\n try {\n const f = parseFloat(s);\n if (isNaN(f)) {\n return undefined;\n }\n if (f == null) {\n return undefined;\n }\n return f;\n } catch {\n /* empty */\n }\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 {\n /* empty */\n }\n return undefined;\n};\n","export function invariant<T>(\n val: T | null | undefined,\n message: string,\n): asserts val is T {\n if (val == null) {\n throw new Error(\"Invariant error: \" + message);\n }\n}\n"],"names":["SeparatorLine","forwardRef","color","cssColor","size","width","vertical","ref","jsx","styles","ClickableElement","styled","background","pointer","props","hoverBackground","disableOpacityOnClick","disableFocusHighlight","focusBackground","height","borderRadius","Clickable","onClick","onDblClick","tooltip","disablePointer","opacityOnHover","disabled","children","type","restProps","booleanOrNumberToNumber","num","numberToMetricCalc","booleanOrNumberToMetricCalc","validPropsRecord","validProps","r","isPropValid","memoize","prop","shadows","excludedProps","isExcludedWebUiProp","propName","box","system","row","value","Box","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","Row","Indent","Spacing","InnerSpace","Space","half","horizontal","Nest","nest","render","Fragment","getDataProps","pickBy","isDataPropMapper","_","key","isDataProp","ScreenReaderOnlyText","Text","variant","className","userSelect","whiteSpace","wordBreak","textAlign","style","spanProps","cx","Txt","SmallText","SmallerText","StandardText","LargeText","Heading","as","hProps","HeaderText","defaultComparator","useArraySet","list","setList","comparator","add","item","addMultiple","items","l","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","focus","blur","useLatest","React","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","useToday","exhaustSwitchCaseElseThrow","arg","exhaustSwitchCase","_arg","fallback","truthyKeysAsList","parseFloatElseUndefined","s","f","parseIntElseUndefined","invariant","val","message"],"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/util/IsPropValid.ts","../src/components/layout/box/Box.tsx","../src/components/layout/column/Column.tsx","../src/hooks/UseElementDimensions.ts","../src/components/layout/box/ResizeAwareBox.tsx","../src/components/layout/row/Row.tsx","../src/components/layout/indent/Indent.tsx","../src/components/layout/spacing/Spacing.tsx","../src/components/layout/space/Space.tsx","../src/components/util/Nest.tsx","../src/utils/PropsForwarder.ts","../src/components/accessibility/ScreenReaderOnlyText.tsx","../src/components/text/Text.tsx","../src/components/deprecated-text/SmallText.tsx","../src/components/deprecated-text/SmallerText.tsx","../src/components/deprecated-text/StandardText.tsx","../src/components/deprecated-text/LargeText.tsx","../src/components/heading/Heading.tsx","../src/components/deprecated-text/HeaderText.tsx","../src/hooks/UseArraySet.ts","../src/hooks/UseBoolean.ts","../src/hooks/UseDebounce.ts","../src/hooks/UseDelayedFalse.ts","../src/hooks/UseDomId.ts","../src/hooks/UseEventListener.ts","../src/hooks/UseElementFocus.ts","../src/hooks/UseEventCallback.tsx","../src/hooks/UseLatest.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/hooks/UseToday.ts","../src/utils/SwitchCaseExhauster.ts","../src/utils/TruthyKeysAsList.ts","../src/utils/parsers/NumberParser.ts","../src/utils/Invariant.ts"],"sourcesContent":["import { Property } from \"csstype\";\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nimport { cssColor } from \"@stenajs-webui/theme\";\nimport styles from \"./SeparatorLine.module.css\";\n\nexport interface SeparatorLineProps {\n color?: Property.Color;\n vertical?: boolean;\n size?: string;\n width?: string;\n}\n\nexport const SeparatorLine = forwardRef<HTMLHRElement, SeparatorLineProps>(\n (\n {\n color = cssColor(\"--lhds-color-ui-300\"),\n size = \"100%\",\n width = \"1px\",\n vertical = false,\n },\n ref,\n ) => {\n return (\n <hr\n className={styles.separatorLine}\n aria-hidden={true}\n color={color}\n style={{\n backgroundColor: color,\n height: vertical ? size || \"100%\" : width || \"1px\",\n width: vertical ? width || \"1px\" : size || \"100%\",\n }}\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\nexport const numberToMetricCalc = (num: number): string | undefined => {\n if (num === 0) {\n return undefined;\n }\n return `calc(${num} * var(--swui-metrics-space))`;\n};\n\nexport const booleanOrNumberToMetricCalc = (\n num: number | boolean | undefined,\n): string | undefined => numberToMetricCalc(booleanOrNumberToNumber(num));\n","import { memoize } from \"lodash-es\";\n\nconst validPropsRecord = {\n // react props\n // https://github.com/facebook/react/blob/5495a7f24aef85ba6937truetrue1ce962673ca9f5fde6/src/renderers/dom/shared/hooks/ReactDOMUnknownPropertyHook.js\n children: true,\n dangerouslySetInnerHTML: true,\n key: true,\n ref: true,\n autoFocus: true,\n defaultValue: true,\n defaultChecked: true,\n innerHTML: true,\n suppressContentEditableWarning: true,\n suppressHydrationWarning: true,\n // deprecated react prop\n valueLink: true,\n\n // https://github.com/facebook/react/blob/d7157651f7b72d9888ctrue123e191f9b88cd8f41e9/src/renderers/dom/shared/HTMLDOMPropertyConfig.js\n /**\n * Standard Properties\n */\n\n abbr: true,\n accept: true,\n acceptCharset: true,\n accessKey: true,\n action: true,\n allow: true,\n allowUserMedia: true,\n allowPaymentRequest: true,\n allowFullScreen: true,\n allowTransparency: true,\n alt: true,\n // specifies target context for links with `preload` type\n // as: true,\n async: true,\n autoComplete: true,\n // autoFocus is polyfilled/normalized by AutoFocusUtils\n // autoFocus: true,\n autoPlay: true,\n capture: true,\n cellPadding: true,\n cellSpacing: true,\n // keygen prop\n challenge: true,\n charSet: true,\n checked: true,\n cite: true,\n classID: true,\n className: true,\n cols: true,\n colSpan: true,\n content: true,\n contentEditable: true,\n contextMenu: true,\n controls: true,\n controlsList: true,\n coords: true,\n crossOrigin: true,\n data: true, // For `<object />` acts as `src`.\n dateTime: true,\n decoding: true,\n default: true,\n defer: true,\n dir: true,\n disabled: true,\n disablePictureInPicture: true,\n disableRemotePlayback: true,\n download: true,\n draggable: true,\n encType: true,\n enterKeyHint: true,\n form: true,\n formAction: true,\n formEncType: true,\n formMethod: true,\n formNoValidate: true,\n formTarget: true,\n frameBorder: true,\n headers: true,\n height: true,\n hidden: true,\n high: true,\n href: true,\n hrefLang: true,\n htmlFor: true,\n httpEquiv: true,\n id: true,\n inputMode: true,\n integrity: true,\n is: true,\n keyParams: true,\n keyType: true,\n kind: true,\n label: true,\n lang: true,\n list: true,\n loading: true,\n loop: true,\n low: true,\n // manifest: true,\n marginHeight: true,\n marginWidth: true,\n max: true,\n maxLength: true,\n media: true,\n mediaGroup: true,\n method: true,\n min: true,\n minLength: true,\n // Caution; `option.selected` is not updated if `select.multiple` is\n // disabled with `removeAttribute`.\n multiple: true,\n muted: true,\n name: true,\n nonce: true,\n noValidate: true,\n open: true,\n optimum: true,\n pattern: true,\n placeholder: true,\n playsInline: true,\n poster: true,\n preload: true,\n profile: true,\n radioGroup: true,\n readOnly: true,\n referrerPolicy: true,\n rel: true,\n required: true,\n reversed: true,\n role: true,\n rows: true,\n rowSpan: true,\n sandbox: true,\n scope: true,\n scoped: true,\n scrolling: true,\n seamless: true,\n selected: true,\n shape: true,\n size: true,\n sizes: true,\n // support for projecting regular DOM Elements via V1 named slots ( shadow dom )\n slot: true,\n span: true,\n spellCheck: true,\n src: true,\n srcDoc: true,\n srcLang: true,\n srcSet: true,\n start: true,\n step: true,\n style: true,\n summary: true,\n tabIndex: true,\n target: true,\n title: true,\n translate: true,\n // Setting .type throws on non-<input> tags\n type: true,\n useMap: true,\n value: true,\n width: true,\n wmode: true,\n wrap: true,\n\n /**\n * RDFa Properties\n */\n about: true,\n datatype: true,\n inlist: true,\n prefix: true,\n // property is also supported for OpenGraph in meta tags.\n property: true,\n resource: true,\n typeof: true,\n vocab: true,\n\n /**\n * Non-standard Properties\n */\n // autoCapitalize and autoCorrect are supported in Mobile Safari for\n // keyboard hints.\n autoCapitalize: true,\n autoCorrect: true,\n // autoSave allows WebKit/Blink to persist values of input fields on page reloads\n autoSave: true,\n // color is for Safari mask-icon link\n color: true,\n // https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/search#incremental_This_API_has_not_been_standardized\n incremental: true,\n // used in amp html for indicating the fallback behavior\n // https://amp.dev/documentation/guides-and-tutorials/develop/style_and_layout/placeholders/\n fallback: true,\n // https://html.spec.whatwg.org/multipage/interaction.html#inert\n inert: true,\n // itemProp, itemScope, itemType are for\n // Microdata support. See http://schema.org/docs/gs.html\n itemProp: true,\n itemScope: true,\n itemType: true,\n // itemID and itemRef are for Microdata support as well but\n // only specified in the WHATWG spec document. See\n // https://html.spec.whatwg.org/multipage/microdata.html#microdata-dom-api\n itemID: true,\n itemRef: true,\n // used in amp html for eventing purposes\n // https://amp.dev/documentation/guides-and-tutorials/learn/common_attributes/\n on: true,\n // used in amp html for indicating that the option is selectable\n // https://amp.dev/documentation/components/amp-selector/\n option: true,\n // results show looking glass icon and recent searches on input\n // search fields in WebKit/Blink\n results: true,\n // IE-only attribute that specifies security restrictions on an iframe\n // as an alternative to the sandbox attribute on IE<1true\n security: true,\n // IE-only attribute that controls focus behavior\n unselectable: true,\n //\n // SVG properties: https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute\n // The following \"onX\" events have been omitted:\n //\n // onabort\n // onactivate\n // onbegin\n // onclick\n // onend\n // onerror\n // onfocusin\n // onfocusout\n // onload\n // onmousedown\n // onmousemove\n // onmouseout\n // onmouseover\n // onmouseup\n // onrepeat\n // onresize\n // onscroll\n // onunload\n accentHeight: true,\n accumulate: true,\n additive: true,\n alignmentBaseline: true,\n allowReorder: true,\n alphabetic: true,\n amplitude: true,\n arabicForm: true,\n ascent: true,\n attributeName: true,\n attributeType: true,\n autoReverse: true,\n azimuth: true,\n baseFrequency: true,\n baselineShift: true,\n baseProfile: true,\n bbox: true,\n begin: true,\n bias: true,\n by: true,\n calcMode: true,\n capHeight: true,\n clip: true,\n clipPathUnits: true,\n clipPath: true,\n clipRule: true,\n colorInterpolation: true,\n colorInterpolationFilters: true,\n colorProfile: true,\n colorRendering: true,\n contentScriptType: true,\n contentStyleType: true,\n cursor: true,\n cx: true,\n cy: true,\n d: true,\n decelerate: true,\n descent: true,\n diffuseConstant: true,\n direction: true,\n display: true,\n divisor: true,\n dominantBaseline: true,\n dur: true,\n dx: true,\n dy: true,\n edgeMode: true,\n elevation: true,\n enableBackground: true,\n end: true,\n exponent: true,\n externalResourcesRequired: true,\n fill: true,\n fillOpacity: true,\n fillRule: true,\n filter: true,\n filterRes: true,\n filterUnits: true,\n floodColor: true,\n floodOpacity: true,\n focusable: true,\n fontFamily: true,\n fontSize: true,\n fontSizeAdjust: true,\n fontStretch: true,\n fontStyle: true,\n fontVariant: true,\n fontWeight: true,\n format: true,\n from: true,\n fr: true, // valid SVG element but React will ask for removal\n fx: true,\n fy: true,\n g1: true,\n g2: true,\n glyphName: true,\n glyphOrientationHorizontal: true,\n glyphOrientationVertical: true,\n glyphRef: true,\n gradientTransform: true,\n gradientUnits: true,\n hanging: true,\n horizAdvX: true,\n horizOriginX: true,\n ideographic: true,\n imageRendering: true,\n in: true,\n in2: true,\n intercept: true,\n k: true,\n k1: true,\n k2: true,\n k3: true,\n k4: true,\n kernelMatrix: true,\n kernelUnitLength: true,\n kerning: true,\n keyPoints: true,\n keySplines: true,\n keyTimes: true,\n lengthAdjust: true,\n letterSpacing: true,\n lightingColor: true,\n limitingConeAngle: true,\n local: true,\n markerEnd: true,\n markerMid: true,\n markerStart: true,\n markerHeight: true,\n markerUnits: true,\n markerWidth: true,\n mask: true,\n maskContentUnits: true,\n maskUnits: true,\n mathematical: true,\n mode: true,\n numOctaves: true,\n offset: true,\n opacity: true,\n operator: true,\n order: true,\n orient: true,\n orientation: true,\n origin: true,\n overflow: true,\n overlinePosition: true,\n overlineThickness: true,\n panose1: true,\n paintOrder: true,\n pathLength: true,\n patternContentUnits: true,\n patternTransform: true,\n patternUnits: true,\n pointerEvents: true,\n points: true,\n pointsAtX: true,\n pointsAtY: true,\n pointsAtZ: true,\n preserveAlpha: true,\n preserveAspectRatio: true,\n primitiveUnits: true,\n r: true,\n radius: true,\n refX: true,\n refY: true,\n renderingIntent: true,\n repeatCount: true,\n repeatDur: true,\n requiredExtensions: true,\n requiredFeatures: true,\n restart: true,\n result: true,\n rotate: true,\n rx: true,\n ry: true,\n scale: true,\n seed: true,\n shapeRendering: true,\n slope: true,\n spacing: true,\n specularConstant: true,\n specularExponent: true,\n speed: true,\n spreadMethod: true,\n startOffset: true,\n stdDeviation: true,\n stemh: true,\n stemv: true,\n stitchTiles: true,\n stopColor: true,\n stopOpacity: true,\n strikethroughPosition: true,\n strikethroughThickness: true,\n string: true,\n stroke: true,\n strokeDasharray: true,\n strokeDashoffset: true,\n strokeLinecap: true,\n strokeLinejoin: true,\n strokeMiterlimit: true,\n strokeOpacity: true,\n strokeWidth: true,\n surfaceScale: true,\n systemLanguage: true,\n tableValues: true,\n targetX: true,\n targetY: true,\n textAnchor: true,\n textDecoration: true,\n textRendering: true,\n textLength: true,\n to: true,\n transform: true,\n u1: true,\n u2: true,\n underlinePosition: true,\n underlineThickness: true,\n unicode: true,\n unicodeBidi: true,\n unicodeRange: true,\n unitsPerEm: true,\n vAlphabetic: true,\n vHanging: true,\n vIdeographic: true,\n vMathematical: true,\n values: true,\n vectorEffect: true,\n version: true,\n vertAdvY: true,\n vertOriginX: true,\n vertOriginY: true,\n viewBox: true,\n viewTarget: true,\n visibility: true,\n widths: true,\n wordSpacing: true,\n writingMode: true,\n x: true,\n xHeight: true,\n x1: true,\n x2: true,\n xChannelSelector: true,\n xlinkActuate: true,\n xlinkArcrole: true,\n xlinkHref: true,\n xlinkRole: true,\n xlinkShow: true,\n xlinkTitle: true,\n xlinkType: true,\n xmlBase: true,\n xmlns: true,\n xmlnsXlink: true,\n xmlLang: true,\n xmlSpace: true,\n y: true,\n y1: true,\n y2: true,\n yChannelSelector: true,\n z: true,\n zoomAndPan: true,\n\n // For preact. We have this code here even though Emotion doesn't support\n // Preact, since @emotion/is-prop-valid is used by some libraries outside of\n // the context of Emotion.\n for: true,\n class: true,\n autofocus: true,\n};\n\nconst validProps = `^((${Object.keys(validPropsRecord).join(\n \"|\",\n)})|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$`;\n\nconst r = new RegExp(validProps);\n\nexport const isPropValid: (prop: string) => boolean = memoize(\n (prop: string) =>\n r.test(prop) ||\n (prop.charCodeAt(0) === 111 /* o */ &&\n prop.charCodeAt(1) === 110 /* n */ &&\n prop.charCodeAt(2) < 91) /* Z+1 */,\n);\n","import 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 {\n booleanOrNumberToMetricCalc,\n booleanOrNumberToNumber,\n} from \"../../../utils/BooleanOrNumberToNumber\";\nimport { isPropValid } from \"../../util/IsPropValid\";\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 gap between columns.\n */\n columnGap?: ResponsiveValue<boolean | TLengthStyledSystem>;\n\n /**\n * Adds gap between rows.\n */\n rowGap?: 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-expect-error Sets a CSS property.\n property: \"--current-indent\",\n transform: booleanOrNumberToNumber,\n },\n spacing: {\n // @ts-expect-error Sets a CSS property.\n property: \"--current-spacing\",\n transform: booleanOrNumberToNumber,\n },\n gap: {\n // @ts-expect-error Sets a CSS property.\n property: \"--current-gap\",\n transform: booleanOrNumberToNumber,\n },\n columnGap: {\n property: \"columnGap\",\n transform: booleanOrNumberToMetricCalc,\n },\n rowGap: {\n property: \"rowGap\",\n transform: booleanOrNumberToMetricCalc,\n },\n shadow: {\n property: \"boxShadow\",\n transform: (value: ShadowType) => 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\n :hover {\n ${({ hoverBackground }) =>\n hoverBackground ? `background: ${hoverBackground};` : \"\"}\n ${({ hoverBorder }) => (hoverBorder ? `border: ${hoverBorder};` : \"\")}\n }\n\n :focus {\n ${({ focusBackground }) =>\n focusBackground ? `background: ${focusBackground};` : \"\"}\n ${({ focusBorder }) => (focusBorder ? `border: ${focusBorder};` : \"\")}\n }\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>(\n function Column(props, ref) {\n return <Box ref={ref} {...props} />;\n },\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 | null>,\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 Omit<BoxProps, \"onResize\"> {\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>(\n function Row(props, ref) {\n return <Box row ref={ref} {...props} />;\n },\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.FC<SpaceProps> = ({\n half = false,\n horizontal = false,\n num = 1,\n vertical = false,\n}) => {\n const size = num * (half ? 0.5 : 1);\n\n return (\n <InnerSpace\n style={{\n [\"--current-size\" as string]: size,\n height: horizontal ? 1 : undefined,\n width: vertical ? 1 : undefined,\n }}\n />\n );\n};\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\n\ninterface Props {\n nest?: boolean;\n render: (children: ReactNode) => ReactNode;\n children?: ReactNode;\n}\n\nexport const Nest: React.FC<Props> = ({ children, nest, render }) => {\n if (nest) {\n return <>{render(children)}</>;\n }\n return <>{children}</>;\n};\n","import { pickBy } from \"lodash-es\";\n\nexport const getDataProps = <T extends Record<string, unknown>>(\n props: Record<string, unknown> | object,\n): T => pickBy(props, isDataPropMapper) as T;\n\nconst isDataPropMapper = (_: unknown, key: string): boolean => isDataProp(key);\n\nconst isDataProp = <TProp extends string>(propName: TProp): boolean =>\n propName.startsWith(\"data-\") || propName.startsWith(\"aria-\");\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport styles from \"./ScreenReaderOnlyText.module.css\";\nimport { getDataProps } from \"../../utils/PropsForwarder\";\n\nexport interface ScreenReaderOnlyTextProps {\n children?: ReactNode;\n}\n\nexport const ScreenReaderOnlyText: React.FC<ScreenReaderOnlyTextProps> = ({\n children,\n ...props\n}) => {\n return (\n <span className={styles.visuallyHidden} {...getDataProps(props)}>\n {children}\n </span>\n );\n};\n","import * as React from \"react\";\nimport cx from \"classnames\";\nimport styles from \"./Text.module.css\";\nimport { SpanProps } from \"../../types/ElementProps\";\nimport { Property } from \"csstype\";\nimport { forwardRef } from \"react\";\n\nexport interface TextProps extends SpanProps {\n variant?: TextVariant;\n size?: TextSize;\n userSelect?: Property.UserSelect;\n whiteSpace?: Property.WhiteSpace;\n wordBreak?: Property.WordBreak;\n textAlign?: Property.TextAlign;\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 textAlign,\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={{\n color,\n userSelect,\n whiteSpace,\n wordBreak,\n textAlign,\n ...style,\n }}\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 | null>,\n eventName: TEventName,\n handler: EventHandler<TEventName>,\n) => {\n // Create a ref that stores handler\n const savedHandler = useRef<EventHandler<TEventName>>(null);\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 { 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 === 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 { useCallback, useLayoutEffect, useRef } from \"react\";\n\ntype Fn<ARGS extends unknown[], R> = (...args: ARGS) => R;\n\nexport const useEventCallback = <A extends unknown[], R>(\n fn: Fn<A, R>,\n): Fn<A, R> => {\n const ref = useRef<Fn<A, R>>(fn);\n useLayoutEffect(() => {\n ref.current = fn;\n });\n return useCallback((...args: A): R => {\n const { current } = ref;\n return current(...args);\n }, []);\n};\n","import React, { MutableRefObject } from \"react\";\n\nexport const useLatest = <T>(value: T): MutableRefObject<T> => {\n const ref = React.useRef(value);\n ref.current = value;\n return ref;\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 // eslint-disable-next-line @typescript-eslint/no-explicit-any\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 // eslint-disable-next-line @typescript-eslint/no-explicit-any\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-es\";\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 | null>,\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>(null);\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","import { useMemo } from \"react\";\n\nexport const useToday = () => {\n return useMemo(() => new Date(), []);\n};\n","export const exhaustSwitchCaseElseThrow = (arg: never) => {\n throw new Error(`Switch unhandled case: ${arg}`);\n};\n\nexport const exhaustSwitchCase = <T>(_arg: never, fallback: T) => {\n return fallback;\n};\n","export const truthyKeysAsList = (r: Record<string, boolean>): Array<string> =>\n Object.keys(r).filter((key) => r[key]);\n","export const parseFloatElseUndefined = (s: string): number | undefined => {\n try {\n const f = parseFloat(s);\n if (isNaN(f)) {\n return undefined;\n }\n if (f == null) {\n return undefined;\n }\n return f;\n } catch {\n /* empty */\n }\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 {\n /* empty */\n }\n return undefined;\n};\n","export function invariant<T>(\n val: T | null | undefined,\n message: string,\n): asserts val is T {\n if (val == null) {\n throw new Error(\"Invariant error: \" + message);\n }\n}\n"],"names":["SeparatorLine","forwardRef","color","cssColor","size","width","vertical","ref","jsx","styles","ClickableElement","styled","background","pointer","props","hoverBackground","disableOpacityOnClick","disableFocusHighlight","focusBackground","height","borderRadius","Clickable","onClick","onDblClick","tooltip","disablePointer","opacityOnHover","disabled","children","type","restProps","booleanOrNumberToNumber","num","numberToMetricCalc","booleanOrNumberToMetricCalc","validPropsRecord","validProps","r","isPropValid","memoize","prop","shadows","excludedProps","isExcludedWebUiProp","propName","box","system","row","value","Box","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","Row","Indent","Spacing","InnerSpace","Space","half","horizontal","Nest","nest","render","Fragment","getDataProps","pickBy","isDataPropMapper","_","key","isDataProp","ScreenReaderOnlyText","Text","variant","className","userSelect","whiteSpace","wordBreak","textAlign","style","spanProps","cx","Txt","SmallText","SmallerText","StandardText","LargeText","Heading","as","hProps","HeaderText","defaultComparator","useArraySet","list","setList","comparator","add","item","addMultiple","items","l","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","focus","blur","useEventCallback","fn","args","current","useLatest","React","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","useToday","exhaustSwitchCaseElseThrow","arg","exhaustSwitchCase","_arg","fallback","truthyKeysAsList","parseFloatElseUndefined","s","f","parseIntElseUndefined","invariant","val","message"],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
${({width:e})=>e?`width: ${e};`:""}
|
|
23
23
|
${({height:e})=>e?`height: ${e};`:""}
|
|
24
24
|
${({borderRadius:e})=>e?`border-radius: ${e};`:""}
|
|
25
|
-
`,N=n.forwardRef(({disableFocusHighlight:e,onClick:t,onDblClick:r,tooltip:u,disableOpacityOnClick:s,disablePointer:o,opacityOnHover:
|
|
25
|
+
`,N=n.forwardRef(({disableFocusHighlight:e,onClick:t,onDblClick:r,tooltip:u,disableOpacityOnClick:s,disablePointer:o,opacityOnHover:a,disabled:d,children:i,background:f="transparent",hoverBackground:p,focusBackground:m,type:L="button",...M},A)=>{const D=!!(t||r);return l.jsx(F,{opacityOnHover:a,title:u,disabled:d,disableOpacityOnClick:s,onClick:t,onDoubleClick:r,disableFocusHighlight:e,pointer:D&&!o,ref:A,background:f,hoverBackground:p,focusBackground:m,type:L,...M,children:i})}),y=e=>e==null?0:typeof e=="boolean"?e?1:0:e,q=e=>{if(e!==0)return`calc(${e} * var(--swui-metrics-space))`},E=e=>q(y(e)),U={children:!0,dangerouslySetInnerHTML:!0,key:!0,ref:!0,autoFocus:!0,defaultValue:!0,defaultChecked:!0,innerHTML:!0,suppressContentEditableWarning:!0,suppressHydrationWarning:!0,valueLink:!0,abbr:!0,accept:!0,acceptCharset:!0,accessKey:!0,action:!0,allow:!0,allowUserMedia:!0,allowPaymentRequest:!0,allowFullScreen:!0,allowTransparency:!0,alt:!0,async:!0,autoComplete:!0,autoPlay:!0,capture:!0,cellPadding:!0,cellSpacing:!0,challenge:!0,charSet:!0,checked:!0,cite:!0,classID:!0,className:!0,cols:!0,colSpan:!0,content:!0,contentEditable:!0,contextMenu:!0,controls:!0,controlsList:!0,coords:!0,crossOrigin:!0,data:!0,dateTime:!0,decoding:!0,default:!0,defer:!0,dir:!0,disabled:!0,disablePictureInPicture:!0,disableRemotePlayback:!0,download:!0,draggable:!0,encType:!0,enterKeyHint:!0,form:!0,formAction:!0,formEncType:!0,formMethod:!0,formNoValidate:!0,formTarget:!0,frameBorder:!0,headers:!0,height:!0,hidden:!0,high:!0,href:!0,hrefLang:!0,htmlFor:!0,httpEquiv:!0,id:!0,inputMode:!0,integrity:!0,is:!0,keyParams:!0,keyType:!0,kind:!0,label:!0,lang:!0,list:!0,loading:!0,loop:!0,low:!0,marginHeight:!0,marginWidth:!0,max:!0,maxLength:!0,media:!0,mediaGroup:!0,method:!0,min:!0,minLength:!0,multiple:!0,muted:!0,name:!0,nonce:!0,noValidate:!0,open:!0,optimum:!0,pattern:!0,placeholder:!0,playsInline:!0,poster:!0,preload:!0,profile:!0,radioGroup:!0,readOnly:!0,referrerPolicy:!0,rel:!0,required:!0,reversed:!0,role:!0,rows:!0,rowSpan:!0,sandbox:!0,scope:!0,scoped:!0,scrolling:!0,seamless:!0,selected:!0,shape:!0,size:!0,sizes:!0,slot:!0,span:!0,spellCheck:!0,src:!0,srcDoc:!0,srcLang:!0,srcSet:!0,start:!0,step:!0,style:!0,summary:!0,tabIndex:!0,target:!0,title:!0,translate:!0,type:!0,useMap:!0,value:!0,width:!0,wmode:!0,wrap:!0,about:!0,datatype:!0,inlist:!0,prefix:!0,property:!0,resource:!0,typeof:!0,vocab:!0,autoCapitalize:!0,autoCorrect:!0,autoSave:!0,color:!0,incremental:!0,fallback:!0,inert:!0,itemProp:!0,itemScope:!0,itemType:!0,itemID:!0,itemRef:!0,on:!0,option:!0,results:!0,security:!0,unselectable:!0,accentHeight:!0,accumulate:!0,additive:!0,alignmentBaseline:!0,allowReorder:!0,alphabetic:!0,amplitude:!0,arabicForm:!0,ascent:!0,attributeName:!0,attributeType:!0,autoReverse:!0,azimuth:!0,baseFrequency:!0,baselineShift:!0,baseProfile:!0,bbox:!0,begin:!0,bias:!0,by:!0,calcMode:!0,capHeight:!0,clip:!0,clipPathUnits:!0,clipPath:!0,clipRule:!0,colorInterpolation:!0,colorInterpolationFilters:!0,colorProfile:!0,colorRendering:!0,contentScriptType:!0,contentStyleType:!0,cursor:!0,cx:!0,cy:!0,d:!0,decelerate:!0,descent:!0,diffuseConstant:!0,direction:!0,display:!0,divisor:!0,dominantBaseline:!0,dur:!0,dx:!0,dy:!0,edgeMode:!0,elevation:!0,enableBackground:!0,end:!0,exponent:!0,externalResourcesRequired:!0,fill:!0,fillOpacity:!0,fillRule:!0,filter:!0,filterRes:!0,filterUnits:!0,floodColor:!0,floodOpacity:!0,focusable:!0,fontFamily:!0,fontSize:!0,fontSizeAdjust:!0,fontStretch:!0,fontStyle:!0,fontVariant:!0,fontWeight:!0,format:!0,from:!0,fr:!0,fx:!0,fy:!0,g1:!0,g2:!0,glyphName:!0,glyphOrientationHorizontal:!0,glyphOrientationVertical:!0,glyphRef:!0,gradientTransform:!0,gradientUnits:!0,hanging:!0,horizAdvX:!0,horizOriginX:!0,ideographic:!0,imageRendering:!0,in:!0,in2:!0,intercept:!0,k:!0,k1:!0,k2:!0,k3:!0,k4:!0,kernelMatrix:!0,kernelUnitLength:!0,kerning:!0,keyPoints:!0,keySplines:!0,keyTimes:!0,lengthAdjust:!0,letterSpacing:!0,lightingColor:!0,limitingConeAngle:!0,local:!0,markerEnd:!0,markerMid:!0,markerStart:!0,markerHeight:!0,markerUnits:!0,markerWidth:!0,mask:!0,maskContentUnits:!0,maskUnits:!0,mathematical:!0,mode:!0,numOctaves:!0,offset:!0,opacity:!0,operator:!0,order:!0,orient:!0,orientation:!0,origin:!0,overflow:!0,overlinePosition:!0,overlineThickness:!0,panose1:!0,paintOrder:!0,pathLength:!0,patternContentUnits:!0,patternTransform:!0,patternUnits:!0,pointerEvents:!0,points:!0,pointsAtX:!0,pointsAtY:!0,pointsAtZ:!0,preserveAlpha:!0,preserveAspectRatio:!0,primitiveUnits:!0,r:!0,radius:!0,refX:!0,refY:!0,renderingIntent:!0,repeatCount:!0,repeatDur:!0,requiredExtensions:!0,requiredFeatures:!0,restart:!0,result:!0,rotate:!0,rx:!0,ry:!0,scale:!0,seed:!0,shapeRendering:!0,slope:!0,spacing:!0,specularConstant:!0,specularExponent:!0,speed:!0,spreadMethod:!0,startOffset:!0,stdDeviation:!0,stemh:!0,stemv:!0,stitchTiles:!0,stopColor:!0,stopOpacity:!0,strikethroughPosition:!0,strikethroughThickness:!0,string:!0,stroke:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeLinecap:!0,strokeLinejoin:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0,surfaceScale:!0,systemLanguage:!0,tableValues:!0,targetX:!0,targetY:!0,textAnchor:!0,textDecoration:!0,textRendering:!0,textLength:!0,to:!0,transform:!0,u1:!0,u2:!0,underlinePosition:!0,underlineThickness:!0,unicode:!0,unicodeBidi:!0,unicodeRange:!0,unitsPerEm:!0,vAlphabetic:!0,vHanging:!0,vIdeographic:!0,vMathematical:!0,values:!0,vectorEffect:!0,version:!0,vertAdvY:!0,vertOriginX:!0,vertOriginY:!0,viewBox:!0,viewTarget:!0,visibility:!0,widths:!0,wordSpacing:!0,writingMode:!0,x:!0,xHeight:!0,x1:!0,x2:!0,xChannelSelector:!0,xlinkActuate:!0,xlinkArcrole:!0,xlinkHref:!0,xlinkRole:!0,xlinkShow:!0,xlinkTitle:!0,xlinkType:!0,xmlBase:!0,xmlns:!0,xmlnsXlink:!0,xmlLang:!0,xmlSpace:!0,y:!0,y1:!0,y2:!0,yChannelSelector:!0,z:!0,zoomAndPan:!0,for:!0,class:!0,autofocus:!0},V=`^((${Object.keys(U).join("|")})|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$`,B=new RegExp(V),W=k.memoize(e=>B.test(e)||e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)<91),X={box:"var(--swui-shadow-box)",popover:"var(--swui-shadow-popover)",modal:"var(--swui-shadow-modal)",bottom:"var(--swui-shadow-bottom)"},G=["spacing","indent","gap","width","height","overflow","display"],Y=e=>G.includes(e),K=c.system({row:{property:"flexDirection",transform:e=>e?"row":"column"},indent:{property:"--current-indent",transform:y},spacing:{property:"--current-spacing",transform:y},gap:{property:"--current-gap",transform:y},columnGap:{property:"columnGap",transform:E},rowGap:{property:"rowGap",transform:E},shadow:{property:"boxShadow",transform:e=>X[e]??e}}),g=w("div",{shouldForwardProp:e=>typeof e=="string"?Y(e)?!1:W(e):!1})`
|
|
26
26
|
--current-spacing: 0;
|
|
27
27
|
--current-indent: 0;
|
|
28
28
|
--current-gap: 0;
|
|
@@ -70,10 +70,10 @@
|
|
|
70
70
|
${({focusWithinBackground:e})=>e?`background: ${e};`:""}
|
|
71
71
|
${({focusWithinBorder:e})=>e?`border: ${e};`:""}
|
|
72
72
|
}
|
|
73
|
-
`,Z=n.forwardRef(function(t,r){return l.jsx(g,{ref:r,...t})}),$=e=>{const{x:t,y:r,width:u,height:s,bottom:o,top:
|
|
73
|
+
`,Z=n.forwardRef(function(t,r){return l.jsx(g,{ref:r,...t})}),$=e=>{const{x:t,y:r,width:u,height:s,bottom:o,top:a,left:d,right:i}=e.getBoundingClientRect();return{width:u,height:s,top:a,left:d,x:t,y:r,right:i,bottom:o}},J=(e,t)=>e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height&&e.bottom===t.bottom&&e.top===t.top&&e.left===t.left&&e.right===t.right,R=(e,t)=>{const[r,u]=n.useState(),s=n.useCallback(()=>{window.requestAnimationFrame(()=>{if(e.current){const o=$(e.current);(!r||!J(r,o))&&t&&t(o),u(o)}})},[e,r,u,t]);return n.useLayoutEffect(()=>{s()},[s]),{dimensions:r}},Q=n.forwardRef(function({onResize:t,...r},u){const s=n.useRef(null);return R(u??s,t),l.jsx(g,{...r,ref:u})}),ee=n.forwardRef(function(t,r){return l.jsx(g,{row:!0,ref:r,...t})}),te=n.forwardRef(function({num:t=1,...r},u){return l.jsx(g,{indent:t,ref:u,...r})}),re=n.forwardRef(function({num:t=1,...r},u){return l.jsx(g,{spacing:t,ref:u,...r})}),ue=w.div`
|
|
74
74
|
--current-size: 1;
|
|
75
75
|
flex: none;
|
|
76
76
|
width: calc(var(--current-size) * var(--swui-metrics-space));
|
|
77
77
|
height: calc(var(--current-size) * var(--swui-metrics-space));
|
|
78
|
-
`,ne=({half:e=!1,horizontal:t=!1,num:r=1,vertical:u=!1})=>{const s=r*(e?.5:1);return l.jsx(ue,{style:{"--current-size":s,height:t?1:void 0,width:u?1:void 0}})},se=({children:e,nest:t,render:r})=>t?l.jsx(l.Fragment,{children:r(e)}):l.jsx(l.Fragment,{children:e}),oe="_visuallyHidden_1gevf_1",
|
|
78
|
+
`,ne=({half:e=!1,horizontal:t=!1,num:r=1,vertical:u=!1})=>{const s=r*(e?.5:1);return l.jsx(ue,{style:{"--current-size":s,height:t?1:void 0,width:u?1:void 0}})},se=({children:e,nest:t,render:r})=>t?l.jsx(l.Fragment,{children:r(e)}):l.jsx(l.Fragment,{children:e}),oe="_visuallyHidden_1gevf_1",ae={visuallyHidden:oe},I=e=>k.pickBy(e,ie),ie=(e,t)=>ce(t),ce=e=>e.startsWith("data-")||e.startsWith("aria-"),le=({children:e,...t})=>l.jsx("span",{className:ae.visuallyHidden,...I(t),children:e}),de="_text_1iisw_1",fe="_standard_1iisw_24",pe="_bold_1iisw_27",me="_caption_1iisw_31",he="_overline_1iisw_39",ge="_large_1iisw_48",be="_medium_1iisw_53",ye="_small_1iisw_58",xe="_smaller_1iisw_63",v={text:de,standard:fe,bold:pe,caption:me,overline:he,large:ge,medium:be,small:ye,smaller:xe},b=n.forwardRef(({children:e,variant:t="standard",size:r="medium",className:u,color:s,userSelect:o,whiteSpace:a,wordBreak:d,textAlign:i,style:f,...p},m)=>l.jsx("span",{className:_(v.text,v[t],v[r],u),ref:m,style:{color:s,userSelect:o,whiteSpace:a,wordBreak:d,textAlign:i,...f},...p,children:e})),ve=b,we=e=>l.jsx(b,{size:"small",...e}),ke=e=>l.jsx(b,{size:"smaller",...e}),Ee=e=>l.jsx(b,{size:"medium",...e}),Se=e=>l.jsx(b,{size:"large",...e}),Ce="_heading_1cnsg_1",Te="_h1_1cnsg_10",_e="_h2_1cnsg_14",$e="_h3_1cnsg_18",Re="_h4_1cnsg_22",Ie="_h5_1cnsg_26",Oe="_h6_1cnsg_30",S={heading:Ce,h1:Te,h2:_e,h3:$e,h4:Re,h5:Ie,h6:Oe},O=n.forwardRef(({variant:e="h3",className:t,color:r,whiteSpace:u,wordBreak:s,style:o,children:a,as:d,...i},f)=>{const p=d??e;return l.jsx(p,{className:_(S.heading,S[e],t),style:{color:r,whiteSpace:u,wordBreak:s,...o},ref:f,...i,children:a})}),Le=e=>l.jsx(O,{variant:"h2",...e}),Me=(e,t)=>e===t,Ae=(e,t,r=Me)=>{const u=n.useCallback(i=>{e.some(f=>r(f,i))||t([...e,i])},[e,t,r]),s=n.useCallback(i=>{t(i.reduce((f,p)=>f.some(m=>r(m,p))?f:[...f,p],e))},[e,t,r]),o=n.useCallback(i=>{const f=e.findIndex(p=>r(p,i));f>=0&&t(e.filter((p,m)=>m!==f))},[e,t,r]),a=n.useCallback(i=>{t(e.filter(f=>!i.some(p=>r(p,f))))},[e,t,r]),d=n.useCallback(i=>{e.some(p=>r(p,i))?o(i):u(i)},[e,u,o,r]);return{add:u,addMultiple:s,remove:o,removeMultiple:a,toggle:d}},x=e=>{const[t,r]=n.useState(e),u=n.useCallback(()=>{r(!0)},[r]),s=n.useCallback(()=>{r(!1)},[r]),o=n.useCallback(()=>{r(a=>!a)},[r]);return[t,u,s,o]},De=(e,t)=>{const[r,u]=n.useState(e);return n.useEffect(()=>{const s=setTimeout(()=>{u(e)},t);return()=>{clearTimeout(s)}},[e,t]),r},Pe=(e,t)=>{const[r,u]=n.useState(e);return n.useEffect(()=>{e&&u(!0);const s=setTimeout(()=>{e||u(e)},t);return()=>{clearTimeout(s)}},[e,t]),r};let je=0;const C=e=>`webui-${e?e+"-":""}${++je}`,He=e=>{const[t,r]=n.useState(()=>C(e));return n.useEffect(()=>r(C(e)),[e]),t},h=(e,t,r)=>{const u=n.useRef(null);n.useEffect(()=>{u.current=r},[r]),n.useEffect(()=>{if(!(e.current&&e.current.addEventListener))return;const o=d=>{if(u.current)return u.current(d)};if(!e.current)return;const a=e.current;return a.addEventListener(t,o),()=>{a&&a.removeEventListener(t,o)}},[t,e])},ze=e=>{const[t,r,u]=x(!1);n.useEffect(()=>{document.activeElement===e.current?r():u()},[e,u,r]),h(e,"focus",r),h(e,"blur",u);const s=n.useCallback(()=>{e.current&&e.current.focus()},[e]),o=n.useCallback(()=>{e.current&&e.current.blur()},[e]);return{isInFocus:t,focus:s,blur:o}},Fe=e=>{const t=n.useRef(e);return n.useLayoutEffect(()=>{t.current=e}),n.useCallback((...r)=>{const{current:u}=t;return u(...r)},[])},Ne=e=>{const t=n.useRef(e);return t.current=e,t},qe=e=>{const[t,r,u]=x(!1);return h(e,"mouseover",r),h(e,"mouseout",u),t},Ue=e=>{const[t,r,u]=x(!1);return h(e,"mouseenter",r),h(e,"mouseleave",u),t},Ve=(e,t)=>{const r=n.useRef(()=>{});n.useEffect(()=>{r.current=t},[t]),n.useEffect(()=>{const u=s=>{e.filter(a=>a.current).every(a=>a.current&&!a.current.contains(s.target))&&r.current(s)};return document.addEventListener("mousedown",u),document.addEventListener("touchstart",u),()=>{document.removeEventListener("mousedown",u),document.removeEventListener("touchstart",u)}},[...e])},Be=(e,t,r)=>{const u=n.useRef(()=>{});n.useEffect(()=>{u.current=t},[t]),n.useEffect(()=>{const s=o=>{!e.current||e.current.contains(o.target)||u.current(o)};return document.addEventListener("mousedown",s,r),document.addEventListener("touchstart",s,r),()=>{document.removeEventListener("mousedown",s,r),document.removeEventListener("touchstart",s,r)}},[e,r])},T=["mousemove","mousedown","keydown","touchstart","scroll"],We=(e,t)=>{const r=n.useRef(()=>{});n.useEffect(()=>{r.current=e},[e]),n.useEffect(()=>{const u=k.debounce(r.current,t);return T.forEach(s=>window.addEventListener(s,u)),()=>{T.forEach(s=>window.removeEventListener(s,u))}},[t])},Xe=(e,t)=>{const[r,u]=n.useState(!1),{rootMargin:s,root:o,threshold:a}=t||{},d=n.useMemo(()=>new IntersectionObserver(([i])=>u(i.isIntersecting),{rootMargin:s,root:o,threshold:a}),[u,s,o,a]);return n.useEffect(()=>(e.current&&d.observe(e.current),()=>{d.disconnect()}),[d,e]),r},Ge=e=>{const t=n.useRef(null);return n.useEffect(()=>{e&&(typeof e=="function"?e(t.current):e.current=t.current)}),t},Ye=(e,t,r=!0)=>{const[u,s]=n.useState(e),o=n.useRef(null),a=n.useCallback((d,i=t)=>{s(d),r&&clearTimeout(o.current),o.current=setTimeout(()=>s(e),i)},[t,r,e]);return n.useEffect(()=>()=>{clearTimeout(o.current)},[]),[u,a]},Ke=()=>n.useMemo(()=>new Date,[]),Ze=e=>{throw new Error(`Switch unhandled case: ${e}`)},Je=(e,t)=>t,Qe=e=>Object.keys(e).filter(t=>e[t]),et=e=>{try{const t=parseFloat(e);return isNaN(t)||t==null?void 0:t}catch{}},tt=e=>{try{const t=parseInt(e,10);return isNaN(t)||t==null?void 0:t}catch{}};function rt(e,t){if(e==null)throw new Error("Invariant error: "+t)}exports.Box=g;exports.Clickable=N;exports.Column=Z;exports.HeaderText=Le;exports.Heading=O;exports.Indent=te;exports.LargeText=Se;exports.Nest=se;exports.ResizeAwareBox=Q;exports.Row=ee;exports.ScreenReaderOnlyText=le;exports.SeparatorLine=z;exports.SmallText=we;exports.SmallerText=ke;exports.Space=ne;exports.Spacing=re;exports.StandardText=Ee;exports.Text=b;exports.Txt=ve;exports.booleanOrNumberToNumber=y;exports.exhaustSwitchCase=Je;exports.exhaustSwitchCaseElseThrow=Ze;exports.getDataProps=I;exports.getDimensionObject=$;exports.invariant=rt;exports.parseFloatElseUndefined=et;exports.parseIntElseUndefined=tt;exports.truthyKeysAsList=Qe;exports.useArraySet=Ae;exports.useBoolean=x;exports.useDebounce=De;exports.useDelayedFalse=Pe;exports.useDomId=He;exports.useElementDimensions=R;exports.useElementFocus=ze;exports.useEventCallback=Fe;exports.useEventListener=h;exports.useForwardedRef=Ge;exports.useLatest=Ne;exports.useMouseIsEntered=Ue;exports.useMouseIsOver=qe;exports.useMultiOnClickOutside=Ve;exports.useOnClickOutside=Be;exports.useOnNoMouseMovement=We;exports.useOnScreen=Xe;exports.useTimeoutState=Ye;exports.useToday=Ke;
|
|
79
79
|
//# 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/util/IsPropValid.ts","../src/components/layout/box/Box.tsx","../src/components/layout/column/Column.tsx","../src/hooks/UseElementDimensions.ts","../src/components/layout/box/ResizeAwareBox.tsx","../src/components/layout/row/Row.tsx","../src/components/layout/indent/Indent.tsx","../src/components/layout/spacing/Spacing.tsx","../src/components/layout/space/Space.tsx","../src/components/util/Nest.tsx","../src/utils/PropsForwarder.ts","../src/components/accessibility/ScreenReaderOnlyText.tsx","../src/components/text/Text.tsx","../src/components/deprecated-text/SmallText.tsx","../src/components/deprecated-text/SmallerText.tsx","../src/components/deprecated-text/StandardText.tsx","../src/components/deprecated-text/LargeText.tsx","../src/components/heading/Heading.tsx","../src/components/deprecated-text/HeaderText.tsx","../src/hooks/UseArraySet.ts","../src/hooks/UseBoolean.ts","../src/hooks/UseDebounce.ts","../src/hooks/UseDelayedFalse.ts","../src/hooks/UseDomId.ts","../src/hooks/UseEventListener.ts","../src/hooks/UseElementFocus.ts","../src/hooks/UseLatest.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/hooks/UseToday.ts","../src/utils/SwitchCaseExhauster.ts","../src/utils/TruthyKeysAsList.ts","../src/utils/parsers/NumberParser.ts","../src/utils/Invariant.ts"],"sourcesContent":["import { Property } from \"csstype\";\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nimport { cssColor } from \"@stenajs-webui/theme\";\nimport styles from \"./SeparatorLine.module.css\";\n\nexport interface SeparatorLineProps {\n color?: Property.Color;\n vertical?: boolean;\n size?: string;\n width?: string;\n}\n\nexport const SeparatorLine = forwardRef<HTMLHRElement, SeparatorLineProps>(\n (\n {\n color = cssColor(\"--lhds-color-ui-300\"),\n size = \"100%\",\n width = \"1px\",\n vertical = false,\n },\n ref,\n ) => {\n return (\n <hr\n className={styles.separatorLine}\n aria-hidden={true}\n color={color}\n style={{\n backgroundColor: color,\n height: vertical ? size || \"100%\" : width || \"1px\",\n width: vertical ? width || \"1px\" : size || \"100%\",\n }}\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\nexport const numberToMetricCalc = (num: number): string | undefined => {\n if (num === 0) {\n return undefined;\n }\n return `calc(${num} * var(--swui-metrics-space))`;\n};\n\nexport const booleanOrNumberToMetricCalc = (\n num: number | boolean | undefined,\n): string | undefined => numberToMetricCalc(booleanOrNumberToNumber(num));\n","import { memoize } from \"lodash-es\";\n\nconst validPropsRecord = {\n // react props\n // https://github.com/facebook/react/blob/5495a7f24aef85ba6937truetrue1ce962673ca9f5fde6/src/renderers/dom/shared/hooks/ReactDOMUnknownPropertyHook.js\n children: true,\n dangerouslySetInnerHTML: true,\n key: true,\n ref: true,\n autoFocus: true,\n defaultValue: true,\n defaultChecked: true,\n innerHTML: true,\n suppressContentEditableWarning: true,\n suppressHydrationWarning: true,\n // deprecated react prop\n valueLink: true,\n\n // https://github.com/facebook/react/blob/d7157651f7b72d9888ctrue123e191f9b88cd8f41e9/src/renderers/dom/shared/HTMLDOMPropertyConfig.js\n /**\n * Standard Properties\n */\n\n abbr: true,\n accept: true,\n acceptCharset: true,\n accessKey: true,\n action: true,\n allow: true,\n allowUserMedia: true,\n allowPaymentRequest: true,\n allowFullScreen: true,\n allowTransparency: true,\n alt: true,\n // specifies target context for links with `preload` type\n // as: true,\n async: true,\n autoComplete: true,\n // autoFocus is polyfilled/normalized by AutoFocusUtils\n // autoFocus: true,\n autoPlay: true,\n capture: true,\n cellPadding: true,\n cellSpacing: true,\n // keygen prop\n challenge: true,\n charSet: true,\n checked: true,\n cite: true,\n classID: true,\n className: true,\n cols: true,\n colSpan: true,\n content: true,\n contentEditable: true,\n contextMenu: true,\n controls: true,\n controlsList: true,\n coords: true,\n crossOrigin: true,\n data: true, // For `<object />` acts as `src`.\n dateTime: true,\n decoding: true,\n default: true,\n defer: true,\n dir: true,\n disabled: true,\n disablePictureInPicture: true,\n disableRemotePlayback: true,\n download: true,\n draggable: true,\n encType: true,\n enterKeyHint: true,\n form: true,\n formAction: true,\n formEncType: true,\n formMethod: true,\n formNoValidate: true,\n formTarget: true,\n frameBorder: true,\n headers: true,\n height: true,\n hidden: true,\n high: true,\n href: true,\n hrefLang: true,\n htmlFor: true,\n httpEquiv: true,\n id: true,\n inputMode: true,\n integrity: true,\n is: true,\n keyParams: true,\n keyType: true,\n kind: true,\n label: true,\n lang: true,\n list: true,\n loading: true,\n loop: true,\n low: true,\n // manifest: true,\n marginHeight: true,\n marginWidth: true,\n max: true,\n maxLength: true,\n media: true,\n mediaGroup: true,\n method: true,\n min: true,\n minLength: true,\n // Caution; `option.selected` is not updated if `select.multiple` is\n // disabled with `removeAttribute`.\n multiple: true,\n muted: true,\n name: true,\n nonce: true,\n noValidate: true,\n open: true,\n optimum: true,\n pattern: true,\n placeholder: true,\n playsInline: true,\n poster: true,\n preload: true,\n profile: true,\n radioGroup: true,\n readOnly: true,\n referrerPolicy: true,\n rel: true,\n required: true,\n reversed: true,\n role: true,\n rows: true,\n rowSpan: true,\n sandbox: true,\n scope: true,\n scoped: true,\n scrolling: true,\n seamless: true,\n selected: true,\n shape: true,\n size: true,\n sizes: true,\n // support for projecting regular DOM Elements via V1 named slots ( shadow dom )\n slot: true,\n span: true,\n spellCheck: true,\n src: true,\n srcDoc: true,\n srcLang: true,\n srcSet: true,\n start: true,\n step: true,\n style: true,\n summary: true,\n tabIndex: true,\n target: true,\n title: true,\n translate: true,\n // Setting .type throws on non-<input> tags\n type: true,\n useMap: true,\n value: true,\n width: true,\n wmode: true,\n wrap: true,\n\n /**\n * RDFa Properties\n */\n about: true,\n datatype: true,\n inlist: true,\n prefix: true,\n // property is also supported for OpenGraph in meta tags.\n property: true,\n resource: true,\n typeof: true,\n vocab: true,\n\n /**\n * Non-standard Properties\n */\n // autoCapitalize and autoCorrect are supported in Mobile Safari for\n // keyboard hints.\n autoCapitalize: true,\n autoCorrect: true,\n // autoSave allows WebKit/Blink to persist values of input fields on page reloads\n autoSave: true,\n // color is for Safari mask-icon link\n color: true,\n // https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/search#incremental_This_API_has_not_been_standardized\n incremental: true,\n // used in amp html for indicating the fallback behavior\n // https://amp.dev/documentation/guides-and-tutorials/develop/style_and_layout/placeholders/\n fallback: true,\n // https://html.spec.whatwg.org/multipage/interaction.html#inert\n inert: true,\n // itemProp, itemScope, itemType are for\n // Microdata support. See http://schema.org/docs/gs.html\n itemProp: true,\n itemScope: true,\n itemType: true,\n // itemID and itemRef are for Microdata support as well but\n // only specified in the WHATWG spec document. See\n // https://html.spec.whatwg.org/multipage/microdata.html#microdata-dom-api\n itemID: true,\n itemRef: true,\n // used in amp html for eventing purposes\n // https://amp.dev/documentation/guides-and-tutorials/learn/common_attributes/\n on: true,\n // used in amp html for indicating that the option is selectable\n // https://amp.dev/documentation/components/amp-selector/\n option: true,\n // results show looking glass icon and recent searches on input\n // search fields in WebKit/Blink\n results: true,\n // IE-only attribute that specifies security restrictions on an iframe\n // as an alternative to the sandbox attribute on IE<1true\n security: true,\n // IE-only attribute that controls focus behavior\n unselectable: true,\n //\n // SVG properties: https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute\n // The following \"onX\" events have been omitted:\n //\n // onabort\n // onactivate\n // onbegin\n // onclick\n // onend\n // onerror\n // onfocusin\n // onfocusout\n // onload\n // onmousedown\n // onmousemove\n // onmouseout\n // onmouseover\n // onmouseup\n // onrepeat\n // onresize\n // onscroll\n // onunload\n accentHeight: true,\n accumulate: true,\n additive: true,\n alignmentBaseline: true,\n allowReorder: true,\n alphabetic: true,\n amplitude: true,\n arabicForm: true,\n ascent: true,\n attributeName: true,\n attributeType: true,\n autoReverse: true,\n azimuth: true,\n baseFrequency: true,\n baselineShift: true,\n baseProfile: true,\n bbox: true,\n begin: true,\n bias: true,\n by: true,\n calcMode: true,\n capHeight: true,\n clip: true,\n clipPathUnits: true,\n clipPath: true,\n clipRule: true,\n colorInterpolation: true,\n colorInterpolationFilters: true,\n colorProfile: true,\n colorRendering: true,\n contentScriptType: true,\n contentStyleType: true,\n cursor: true,\n cx: true,\n cy: true,\n d: true,\n decelerate: true,\n descent: true,\n diffuseConstant: true,\n direction: true,\n display: true,\n divisor: true,\n dominantBaseline: true,\n dur: true,\n dx: true,\n dy: true,\n edgeMode: true,\n elevation: true,\n enableBackground: true,\n end: true,\n exponent: true,\n externalResourcesRequired: true,\n fill: true,\n fillOpacity: true,\n fillRule: true,\n filter: true,\n filterRes: true,\n filterUnits: true,\n floodColor: true,\n floodOpacity: true,\n focusable: true,\n fontFamily: true,\n fontSize: true,\n fontSizeAdjust: true,\n fontStretch: true,\n fontStyle: true,\n fontVariant: true,\n fontWeight: true,\n format: true,\n from: true,\n fr: true, // valid SVG element but React will ask for removal\n fx: true,\n fy: true,\n g1: true,\n g2: true,\n glyphName: true,\n glyphOrientationHorizontal: true,\n glyphOrientationVertical: true,\n glyphRef: true,\n gradientTransform: true,\n gradientUnits: true,\n hanging: true,\n horizAdvX: true,\n horizOriginX: true,\n ideographic: true,\n imageRendering: true,\n in: true,\n in2: true,\n intercept: true,\n k: true,\n k1: true,\n k2: true,\n k3: true,\n k4: true,\n kernelMatrix: true,\n kernelUnitLength: true,\n kerning: true,\n keyPoints: true,\n keySplines: true,\n keyTimes: true,\n lengthAdjust: true,\n letterSpacing: true,\n lightingColor: true,\n limitingConeAngle: true,\n local: true,\n markerEnd: true,\n markerMid: true,\n markerStart: true,\n markerHeight: true,\n markerUnits: true,\n markerWidth: true,\n mask: true,\n maskContentUnits: true,\n maskUnits: true,\n mathematical: true,\n mode: true,\n numOctaves: true,\n offset: true,\n opacity: true,\n operator: true,\n order: true,\n orient: true,\n orientation: true,\n origin: true,\n overflow: true,\n overlinePosition: true,\n overlineThickness: true,\n panose1: true,\n paintOrder: true,\n pathLength: true,\n patternContentUnits: true,\n patternTransform: true,\n patternUnits: true,\n pointerEvents: true,\n points: true,\n pointsAtX: true,\n pointsAtY: true,\n pointsAtZ: true,\n preserveAlpha: true,\n preserveAspectRatio: true,\n primitiveUnits: true,\n r: true,\n radius: true,\n refX: true,\n refY: true,\n renderingIntent: true,\n repeatCount: true,\n repeatDur: true,\n requiredExtensions: true,\n requiredFeatures: true,\n restart: true,\n result: true,\n rotate: true,\n rx: true,\n ry: true,\n scale: true,\n seed: true,\n shapeRendering: true,\n slope: true,\n spacing: true,\n specularConstant: true,\n specularExponent: true,\n speed: true,\n spreadMethod: true,\n startOffset: true,\n stdDeviation: true,\n stemh: true,\n stemv: true,\n stitchTiles: true,\n stopColor: true,\n stopOpacity: true,\n strikethroughPosition: true,\n strikethroughThickness: true,\n string: true,\n stroke: true,\n strokeDasharray: true,\n strokeDashoffset: true,\n strokeLinecap: true,\n strokeLinejoin: true,\n strokeMiterlimit: true,\n strokeOpacity: true,\n strokeWidth: true,\n surfaceScale: true,\n systemLanguage: true,\n tableValues: true,\n targetX: true,\n targetY: true,\n textAnchor: true,\n textDecoration: true,\n textRendering: true,\n textLength: true,\n to: true,\n transform: true,\n u1: true,\n u2: true,\n underlinePosition: true,\n underlineThickness: true,\n unicode: true,\n unicodeBidi: true,\n unicodeRange: true,\n unitsPerEm: true,\n vAlphabetic: true,\n vHanging: true,\n vIdeographic: true,\n vMathematical: true,\n values: true,\n vectorEffect: true,\n version: true,\n vertAdvY: true,\n vertOriginX: true,\n vertOriginY: true,\n viewBox: true,\n viewTarget: true,\n visibility: true,\n widths: true,\n wordSpacing: true,\n writingMode: true,\n x: true,\n xHeight: true,\n x1: true,\n x2: true,\n xChannelSelector: true,\n xlinkActuate: true,\n xlinkArcrole: true,\n xlinkHref: true,\n xlinkRole: true,\n xlinkShow: true,\n xlinkTitle: true,\n xlinkType: true,\n xmlBase: true,\n xmlns: true,\n xmlnsXlink: true,\n xmlLang: true,\n xmlSpace: true,\n y: true,\n y1: true,\n y2: true,\n yChannelSelector: true,\n z: true,\n zoomAndPan: true,\n\n // For preact. We have this code here even though Emotion doesn't support\n // Preact, since @emotion/is-prop-valid is used by some libraries outside of\n // the context of Emotion.\n for: true,\n class: true,\n autofocus: true,\n};\n\nconst validProps = `^((${Object.keys(validPropsRecord).join(\n \"|\",\n)})|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$`;\n\nconst r = new RegExp(validProps);\n\nexport const isPropValid: (prop: string) => boolean = memoize(\n (prop: string) =>\n r.test(prop) ||\n (prop.charCodeAt(0) === 111 /* o */ &&\n prop.charCodeAt(1) === 110 /* n */ &&\n prop.charCodeAt(2) < 91) /* Z+1 */,\n);\n","import 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 {\n booleanOrNumberToMetricCalc,\n booleanOrNumberToNumber,\n} from \"../../../utils/BooleanOrNumberToNumber\";\nimport { isPropValid } from \"../../util/IsPropValid\";\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 gap between columns.\n */\n columnGap?: ResponsiveValue<boolean | TLengthStyledSystem>;\n\n /**\n * Adds gap between rows.\n */\n rowGap?: 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-expect-error Sets a CSS property.\n property: \"--current-indent\",\n transform: booleanOrNumberToNumber,\n },\n spacing: {\n // @ts-expect-error Sets a CSS property.\n property: \"--current-spacing\",\n transform: booleanOrNumberToNumber,\n },\n gap: {\n // @ts-expect-error Sets a CSS property.\n property: \"--current-gap\",\n transform: booleanOrNumberToNumber,\n },\n columnGap: {\n property: \"columnGap\",\n transform: booleanOrNumberToMetricCalc,\n },\n rowGap: {\n property: \"rowGap\",\n transform: booleanOrNumberToMetricCalc,\n },\n shadow: {\n property: \"boxShadow\",\n transform: (value: ShadowType) => 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\n :hover {\n ${({ hoverBackground }) =>\n hoverBackground ? `background: ${hoverBackground};` : \"\"}\n ${({ hoverBorder }) => (hoverBorder ? `border: ${hoverBorder};` : \"\")}\n }\n\n :focus {\n ${({ focusBackground }) =>\n focusBackground ? `background: ${focusBackground};` : \"\"}\n ${({ focusBorder }) => (focusBorder ? `border: ${focusBorder};` : \"\")}\n }\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>(\n function Column(props, ref) {\n return <Box ref={ref} {...props} />;\n },\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 | null>,\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 Omit<BoxProps, \"onResize\"> {\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>(\n function Row(props, ref) {\n return <Box row ref={ref} {...props} />;\n },\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.FC<SpaceProps> = ({\n half = false,\n horizontal = false,\n num = 1,\n vertical = false,\n}) => {\n const size = num * (half ? 0.5 : 1);\n\n return (\n <InnerSpace\n style={{\n [\"--current-size\" as string]: size,\n height: horizontal ? 1 : undefined,\n width: vertical ? 1 : undefined,\n }}\n />\n );\n};\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\n\ninterface Props {\n nest?: boolean;\n render: (children: ReactNode) => ReactNode;\n children?: ReactNode;\n}\n\nexport const Nest: React.FC<Props> = ({ children, nest, render }) => {\n if (nest) {\n return <>{render(children)}</>;\n }\n return <>{children}</>;\n};\n","import { pickBy } from \"lodash-es\";\n\nexport const getDataProps = <T extends Record<string, unknown>>(\n props: Record<string, unknown> | object,\n): T => pickBy(props, isDataPropMapper) as T;\n\nconst isDataPropMapper = (_: unknown, key: string): boolean => isDataProp(key);\n\nconst isDataProp = <TProp extends string>(propName: TProp): boolean =>\n propName.startsWith(\"data-\") || propName.startsWith(\"aria-\");\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport styles from \"./ScreenReaderOnlyText.module.css\";\nimport { getDataProps } from \"../../utils/PropsForwarder\";\n\nexport interface ScreenReaderOnlyTextProps {\n children?: ReactNode;\n}\n\nexport const ScreenReaderOnlyText: React.FC<ScreenReaderOnlyTextProps> = ({\n children,\n ...props\n}) => {\n return (\n <span className={styles.visuallyHidden} {...getDataProps(props)}>\n {children}\n </span>\n );\n};\n","import * as React from \"react\";\nimport cx from \"classnames\";\nimport styles from \"./Text.module.css\";\nimport { SpanProps } from \"../../types/ElementProps\";\nimport { Property } from \"csstype\";\nimport { forwardRef } from \"react\";\n\nexport interface TextProps extends SpanProps {\n variant?: TextVariant;\n size?: TextSize;\n userSelect?: Property.UserSelect;\n whiteSpace?: Property.WhiteSpace;\n wordBreak?: Property.WordBreak;\n textAlign?: Property.TextAlign;\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 textAlign,\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={{\n color,\n userSelect,\n whiteSpace,\n wordBreak,\n textAlign,\n ...style,\n }}\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 | null>,\n eventName: TEventName,\n handler: EventHandler<TEventName>,\n) => {\n // Create a ref that stores handler\n const savedHandler = useRef<EventHandler<TEventName>>(null);\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 { 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 === 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 React, { MutableRefObject } from \"react\";\n\nexport const useLatest = <T>(value: T): MutableRefObject<T> => {\n const ref = React.useRef(value);\n ref.current = value;\n return ref;\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 // eslint-disable-next-line @typescript-eslint/no-explicit-any\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 // eslint-disable-next-line @typescript-eslint/no-explicit-any\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-es\";\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 | null>,\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>(null);\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","import { useMemo } from \"react\";\n\nexport const useToday = () => {\n return useMemo(() => new Date(), []);\n};\n","export const exhaustSwitchCaseElseThrow = (arg: never) => {\n throw new Error(`Switch unhandled case: ${arg}`);\n};\n\nexport const exhaustSwitchCase = <T>(_arg: never, fallback: T) => {\n return fallback;\n};\n","export const truthyKeysAsList = (r: Record<string, boolean>): Array<string> =>\n Object.keys(r).filter((key) => r[key]);\n","export const parseFloatElseUndefined = (s: string): number | undefined => {\n try {\n const f = parseFloat(s);\n if (isNaN(f)) {\n return undefined;\n }\n if (f == null) {\n return undefined;\n }\n return f;\n } catch {\n /* empty */\n }\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 {\n /* empty */\n }\n return undefined;\n};\n","export function invariant<T>(\n val: T | null | undefined,\n message: string,\n): asserts val is T {\n if (val == null) {\n throw new Error(\"Invariant error: \" + message);\n }\n}\n"],"names":["SeparatorLine","forwardRef","color","cssColor","size","width","vertical","ref","jsx","styles","ClickableElement","styled","background","pointer","props","hoverBackground","disableOpacityOnClick","disableFocusHighlight","focusBackground","height","borderRadius","Clickable","onClick","onDblClick","tooltip","disablePointer","opacityOnHover","disabled","children","type","restProps","hasClickHandler","booleanOrNumberToNumber","num","numberToMetricCalc","booleanOrNumberToMetricCalc","validPropsRecord","validProps","r","isPropValid","memoize","prop","shadows","excludedProps","isExcludedWebUiProp","propName","box","system","row","value","Box","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","Row","Indent","Spacing","InnerSpace","Space","half","horizontal","Nest","nest","render","Fragment","getDataProps","pickBy","isDataPropMapper","_","key","isDataProp","ScreenReaderOnlyText","Text","variant","className","userSelect","whiteSpace","wordBreak","textAlign","style","spanProps","cx","Txt","SmallText","SmallerText","StandardText","LargeText","Heading","as","hProps","Element","HeaderText","defaultComparator","useArraySet","list","setList","comparator","add","item","l","addMultiple","items","remove","index","i","removeMultiple","toggle","useBoolean","initialValue","setValue","setTrue","setFalse","v","useDebounce","delay","debouncedValue","setDebouncedValue","useEffect","handler","useDelayedFalse","id","genId","componentName","useDomId","setId","useEventListener","eventName","savedHandler","eventListener","event","element","useElementFocus","isInFocus","setIsInFocus","setIsNotInFocus","focus","blur","useLatest","React","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","useToday","exhaustSwitchCaseElseThrow","arg","exhaustSwitchCase","_arg","fallback","truthyKeysAsList","parseFloatElseUndefined","s","f","parseIntElseUndefined","invariant","val","message"],"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/util/IsPropValid.ts","../src/components/layout/box/Box.tsx","../src/components/layout/column/Column.tsx","../src/hooks/UseElementDimensions.ts","../src/components/layout/box/ResizeAwareBox.tsx","../src/components/layout/row/Row.tsx","../src/components/layout/indent/Indent.tsx","../src/components/layout/spacing/Spacing.tsx","../src/components/layout/space/Space.tsx","../src/components/util/Nest.tsx","../src/utils/PropsForwarder.ts","../src/components/accessibility/ScreenReaderOnlyText.tsx","../src/components/text/Text.tsx","../src/components/deprecated-text/SmallText.tsx","../src/components/deprecated-text/SmallerText.tsx","../src/components/deprecated-text/StandardText.tsx","../src/components/deprecated-text/LargeText.tsx","../src/components/heading/Heading.tsx","../src/components/deprecated-text/HeaderText.tsx","../src/hooks/UseArraySet.ts","../src/hooks/UseBoolean.ts","../src/hooks/UseDebounce.ts","../src/hooks/UseDelayedFalse.ts","../src/hooks/UseDomId.ts","../src/hooks/UseEventListener.ts","../src/hooks/UseElementFocus.ts","../src/hooks/UseEventCallback.tsx","../src/hooks/UseLatest.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/hooks/UseToday.ts","../src/utils/SwitchCaseExhauster.ts","../src/utils/TruthyKeysAsList.ts","../src/utils/parsers/NumberParser.ts","../src/utils/Invariant.ts"],"sourcesContent":["import { Property } from \"csstype\";\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nimport { cssColor } from \"@stenajs-webui/theme\";\nimport styles from \"./SeparatorLine.module.css\";\n\nexport interface SeparatorLineProps {\n color?: Property.Color;\n vertical?: boolean;\n size?: string;\n width?: string;\n}\n\nexport const SeparatorLine = forwardRef<HTMLHRElement, SeparatorLineProps>(\n (\n {\n color = cssColor(\"--lhds-color-ui-300\"),\n size = \"100%\",\n width = \"1px\",\n vertical = false,\n },\n ref,\n ) => {\n return (\n <hr\n className={styles.separatorLine}\n aria-hidden={true}\n color={color}\n style={{\n backgroundColor: color,\n height: vertical ? size || \"100%\" : width || \"1px\",\n width: vertical ? width || \"1px\" : size || \"100%\",\n }}\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\nexport const numberToMetricCalc = (num: number): string | undefined => {\n if (num === 0) {\n return undefined;\n }\n return `calc(${num} * var(--swui-metrics-space))`;\n};\n\nexport const booleanOrNumberToMetricCalc = (\n num: number | boolean | undefined,\n): string | undefined => numberToMetricCalc(booleanOrNumberToNumber(num));\n","import { memoize } from \"lodash-es\";\n\nconst validPropsRecord = {\n // react props\n // https://github.com/facebook/react/blob/5495a7f24aef85ba6937truetrue1ce962673ca9f5fde6/src/renderers/dom/shared/hooks/ReactDOMUnknownPropertyHook.js\n children: true,\n dangerouslySetInnerHTML: true,\n key: true,\n ref: true,\n autoFocus: true,\n defaultValue: true,\n defaultChecked: true,\n innerHTML: true,\n suppressContentEditableWarning: true,\n suppressHydrationWarning: true,\n // deprecated react prop\n valueLink: true,\n\n // https://github.com/facebook/react/blob/d7157651f7b72d9888ctrue123e191f9b88cd8f41e9/src/renderers/dom/shared/HTMLDOMPropertyConfig.js\n /**\n * Standard Properties\n */\n\n abbr: true,\n accept: true,\n acceptCharset: true,\n accessKey: true,\n action: true,\n allow: true,\n allowUserMedia: true,\n allowPaymentRequest: true,\n allowFullScreen: true,\n allowTransparency: true,\n alt: true,\n // specifies target context for links with `preload` type\n // as: true,\n async: true,\n autoComplete: true,\n // autoFocus is polyfilled/normalized by AutoFocusUtils\n // autoFocus: true,\n autoPlay: true,\n capture: true,\n cellPadding: true,\n cellSpacing: true,\n // keygen prop\n challenge: true,\n charSet: true,\n checked: true,\n cite: true,\n classID: true,\n className: true,\n cols: true,\n colSpan: true,\n content: true,\n contentEditable: true,\n contextMenu: true,\n controls: true,\n controlsList: true,\n coords: true,\n crossOrigin: true,\n data: true, // For `<object />` acts as `src`.\n dateTime: true,\n decoding: true,\n default: true,\n defer: true,\n dir: true,\n disabled: true,\n disablePictureInPicture: true,\n disableRemotePlayback: true,\n download: true,\n draggable: true,\n encType: true,\n enterKeyHint: true,\n form: true,\n formAction: true,\n formEncType: true,\n formMethod: true,\n formNoValidate: true,\n formTarget: true,\n frameBorder: true,\n headers: true,\n height: true,\n hidden: true,\n high: true,\n href: true,\n hrefLang: true,\n htmlFor: true,\n httpEquiv: true,\n id: true,\n inputMode: true,\n integrity: true,\n is: true,\n keyParams: true,\n keyType: true,\n kind: true,\n label: true,\n lang: true,\n list: true,\n loading: true,\n loop: true,\n low: true,\n // manifest: true,\n marginHeight: true,\n marginWidth: true,\n max: true,\n maxLength: true,\n media: true,\n mediaGroup: true,\n method: true,\n min: true,\n minLength: true,\n // Caution; `option.selected` is not updated if `select.multiple` is\n // disabled with `removeAttribute`.\n multiple: true,\n muted: true,\n name: true,\n nonce: true,\n noValidate: true,\n open: true,\n optimum: true,\n pattern: true,\n placeholder: true,\n playsInline: true,\n poster: true,\n preload: true,\n profile: true,\n radioGroup: true,\n readOnly: true,\n referrerPolicy: true,\n rel: true,\n required: true,\n reversed: true,\n role: true,\n rows: true,\n rowSpan: true,\n sandbox: true,\n scope: true,\n scoped: true,\n scrolling: true,\n seamless: true,\n selected: true,\n shape: true,\n size: true,\n sizes: true,\n // support for projecting regular DOM Elements via V1 named slots ( shadow dom )\n slot: true,\n span: true,\n spellCheck: true,\n src: true,\n srcDoc: true,\n srcLang: true,\n srcSet: true,\n start: true,\n step: true,\n style: true,\n summary: true,\n tabIndex: true,\n target: true,\n title: true,\n translate: true,\n // Setting .type throws on non-<input> tags\n type: true,\n useMap: true,\n value: true,\n width: true,\n wmode: true,\n wrap: true,\n\n /**\n * RDFa Properties\n */\n about: true,\n datatype: true,\n inlist: true,\n prefix: true,\n // property is also supported for OpenGraph in meta tags.\n property: true,\n resource: true,\n typeof: true,\n vocab: true,\n\n /**\n * Non-standard Properties\n */\n // autoCapitalize and autoCorrect are supported in Mobile Safari for\n // keyboard hints.\n autoCapitalize: true,\n autoCorrect: true,\n // autoSave allows WebKit/Blink to persist values of input fields on page reloads\n autoSave: true,\n // color is for Safari mask-icon link\n color: true,\n // https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/search#incremental_This_API_has_not_been_standardized\n incremental: true,\n // used in amp html for indicating the fallback behavior\n // https://amp.dev/documentation/guides-and-tutorials/develop/style_and_layout/placeholders/\n fallback: true,\n // https://html.spec.whatwg.org/multipage/interaction.html#inert\n inert: true,\n // itemProp, itemScope, itemType are for\n // Microdata support. See http://schema.org/docs/gs.html\n itemProp: true,\n itemScope: true,\n itemType: true,\n // itemID and itemRef are for Microdata support as well but\n // only specified in the WHATWG spec document. See\n // https://html.spec.whatwg.org/multipage/microdata.html#microdata-dom-api\n itemID: true,\n itemRef: true,\n // used in amp html for eventing purposes\n // https://amp.dev/documentation/guides-and-tutorials/learn/common_attributes/\n on: true,\n // used in amp html for indicating that the option is selectable\n // https://amp.dev/documentation/components/amp-selector/\n option: true,\n // results show looking glass icon and recent searches on input\n // search fields in WebKit/Blink\n results: true,\n // IE-only attribute that specifies security restrictions on an iframe\n // as an alternative to the sandbox attribute on IE<1true\n security: true,\n // IE-only attribute that controls focus behavior\n unselectable: true,\n //\n // SVG properties: https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute\n // The following \"onX\" events have been omitted:\n //\n // onabort\n // onactivate\n // onbegin\n // onclick\n // onend\n // onerror\n // onfocusin\n // onfocusout\n // onload\n // onmousedown\n // onmousemove\n // onmouseout\n // onmouseover\n // onmouseup\n // onrepeat\n // onresize\n // onscroll\n // onunload\n accentHeight: true,\n accumulate: true,\n additive: true,\n alignmentBaseline: true,\n allowReorder: true,\n alphabetic: true,\n amplitude: true,\n arabicForm: true,\n ascent: true,\n attributeName: true,\n attributeType: true,\n autoReverse: true,\n azimuth: true,\n baseFrequency: true,\n baselineShift: true,\n baseProfile: true,\n bbox: true,\n begin: true,\n bias: true,\n by: true,\n calcMode: true,\n capHeight: true,\n clip: true,\n clipPathUnits: true,\n clipPath: true,\n clipRule: true,\n colorInterpolation: true,\n colorInterpolationFilters: true,\n colorProfile: true,\n colorRendering: true,\n contentScriptType: true,\n contentStyleType: true,\n cursor: true,\n cx: true,\n cy: true,\n d: true,\n decelerate: true,\n descent: true,\n diffuseConstant: true,\n direction: true,\n display: true,\n divisor: true,\n dominantBaseline: true,\n dur: true,\n dx: true,\n dy: true,\n edgeMode: true,\n elevation: true,\n enableBackground: true,\n end: true,\n exponent: true,\n externalResourcesRequired: true,\n fill: true,\n fillOpacity: true,\n fillRule: true,\n filter: true,\n filterRes: true,\n filterUnits: true,\n floodColor: true,\n floodOpacity: true,\n focusable: true,\n fontFamily: true,\n fontSize: true,\n fontSizeAdjust: true,\n fontStretch: true,\n fontStyle: true,\n fontVariant: true,\n fontWeight: true,\n format: true,\n from: true,\n fr: true, // valid SVG element but React will ask for removal\n fx: true,\n fy: true,\n g1: true,\n g2: true,\n glyphName: true,\n glyphOrientationHorizontal: true,\n glyphOrientationVertical: true,\n glyphRef: true,\n gradientTransform: true,\n gradientUnits: true,\n hanging: true,\n horizAdvX: true,\n horizOriginX: true,\n ideographic: true,\n imageRendering: true,\n in: true,\n in2: true,\n intercept: true,\n k: true,\n k1: true,\n k2: true,\n k3: true,\n k4: true,\n kernelMatrix: true,\n kernelUnitLength: true,\n kerning: true,\n keyPoints: true,\n keySplines: true,\n keyTimes: true,\n lengthAdjust: true,\n letterSpacing: true,\n lightingColor: true,\n limitingConeAngle: true,\n local: true,\n markerEnd: true,\n markerMid: true,\n markerStart: true,\n markerHeight: true,\n markerUnits: true,\n markerWidth: true,\n mask: true,\n maskContentUnits: true,\n maskUnits: true,\n mathematical: true,\n mode: true,\n numOctaves: true,\n offset: true,\n opacity: true,\n operator: true,\n order: true,\n orient: true,\n orientation: true,\n origin: true,\n overflow: true,\n overlinePosition: true,\n overlineThickness: true,\n panose1: true,\n paintOrder: true,\n pathLength: true,\n patternContentUnits: true,\n patternTransform: true,\n patternUnits: true,\n pointerEvents: true,\n points: true,\n pointsAtX: true,\n pointsAtY: true,\n pointsAtZ: true,\n preserveAlpha: true,\n preserveAspectRatio: true,\n primitiveUnits: true,\n r: true,\n radius: true,\n refX: true,\n refY: true,\n renderingIntent: true,\n repeatCount: true,\n repeatDur: true,\n requiredExtensions: true,\n requiredFeatures: true,\n restart: true,\n result: true,\n rotate: true,\n rx: true,\n ry: true,\n scale: true,\n seed: true,\n shapeRendering: true,\n slope: true,\n spacing: true,\n specularConstant: true,\n specularExponent: true,\n speed: true,\n spreadMethod: true,\n startOffset: true,\n stdDeviation: true,\n stemh: true,\n stemv: true,\n stitchTiles: true,\n stopColor: true,\n stopOpacity: true,\n strikethroughPosition: true,\n strikethroughThickness: true,\n string: true,\n stroke: true,\n strokeDasharray: true,\n strokeDashoffset: true,\n strokeLinecap: true,\n strokeLinejoin: true,\n strokeMiterlimit: true,\n strokeOpacity: true,\n strokeWidth: true,\n surfaceScale: true,\n systemLanguage: true,\n tableValues: true,\n targetX: true,\n targetY: true,\n textAnchor: true,\n textDecoration: true,\n textRendering: true,\n textLength: true,\n to: true,\n transform: true,\n u1: true,\n u2: true,\n underlinePosition: true,\n underlineThickness: true,\n unicode: true,\n unicodeBidi: true,\n unicodeRange: true,\n unitsPerEm: true,\n vAlphabetic: true,\n vHanging: true,\n vIdeographic: true,\n vMathematical: true,\n values: true,\n vectorEffect: true,\n version: true,\n vertAdvY: true,\n vertOriginX: true,\n vertOriginY: true,\n viewBox: true,\n viewTarget: true,\n visibility: true,\n widths: true,\n wordSpacing: true,\n writingMode: true,\n x: true,\n xHeight: true,\n x1: true,\n x2: true,\n xChannelSelector: true,\n xlinkActuate: true,\n xlinkArcrole: true,\n xlinkHref: true,\n xlinkRole: true,\n xlinkShow: true,\n xlinkTitle: true,\n xlinkType: true,\n xmlBase: true,\n xmlns: true,\n xmlnsXlink: true,\n xmlLang: true,\n xmlSpace: true,\n y: true,\n y1: true,\n y2: true,\n yChannelSelector: true,\n z: true,\n zoomAndPan: true,\n\n // For preact. We have this code here even though Emotion doesn't support\n // Preact, since @emotion/is-prop-valid is used by some libraries outside of\n // the context of Emotion.\n for: true,\n class: true,\n autofocus: true,\n};\n\nconst validProps = `^((${Object.keys(validPropsRecord).join(\n \"|\",\n)})|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$`;\n\nconst r = new RegExp(validProps);\n\nexport const isPropValid: (prop: string) => boolean = memoize(\n (prop: string) =>\n r.test(prop) ||\n (prop.charCodeAt(0) === 111 /* o */ &&\n prop.charCodeAt(1) === 110 /* n */ &&\n prop.charCodeAt(2) < 91) /* Z+1 */,\n);\n","import 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 {\n booleanOrNumberToMetricCalc,\n booleanOrNumberToNumber,\n} from \"../../../utils/BooleanOrNumberToNumber\";\nimport { isPropValid } from \"../../util/IsPropValid\";\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 gap between columns.\n */\n columnGap?: ResponsiveValue<boolean | TLengthStyledSystem>;\n\n /**\n * Adds gap between rows.\n */\n rowGap?: 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-expect-error Sets a CSS property.\n property: \"--current-indent\",\n transform: booleanOrNumberToNumber,\n },\n spacing: {\n // @ts-expect-error Sets a CSS property.\n property: \"--current-spacing\",\n transform: booleanOrNumberToNumber,\n },\n gap: {\n // @ts-expect-error Sets a CSS property.\n property: \"--current-gap\",\n transform: booleanOrNumberToNumber,\n },\n columnGap: {\n property: \"columnGap\",\n transform: booleanOrNumberToMetricCalc,\n },\n rowGap: {\n property: \"rowGap\",\n transform: booleanOrNumberToMetricCalc,\n },\n shadow: {\n property: \"boxShadow\",\n transform: (value: ShadowType) => 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\n :hover {\n ${({ hoverBackground }) =>\n hoverBackground ? `background: ${hoverBackground};` : \"\"}\n ${({ hoverBorder }) => (hoverBorder ? `border: ${hoverBorder};` : \"\")}\n }\n\n :focus {\n ${({ focusBackground }) =>\n focusBackground ? `background: ${focusBackground};` : \"\"}\n ${({ focusBorder }) => (focusBorder ? `border: ${focusBorder};` : \"\")}\n }\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>(\n function Column(props, ref) {\n return <Box ref={ref} {...props} />;\n },\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 | null>,\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 Omit<BoxProps, \"onResize\"> {\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>(\n function Row(props, ref) {\n return <Box row ref={ref} {...props} />;\n },\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.FC<SpaceProps> = ({\n half = false,\n horizontal = false,\n num = 1,\n vertical = false,\n}) => {\n const size = num * (half ? 0.5 : 1);\n\n return (\n <InnerSpace\n style={{\n [\"--current-size\" as string]: size,\n height: horizontal ? 1 : undefined,\n width: vertical ? 1 : undefined,\n }}\n />\n );\n};\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\n\ninterface Props {\n nest?: boolean;\n render: (children: ReactNode) => ReactNode;\n children?: ReactNode;\n}\n\nexport const Nest: React.FC<Props> = ({ children, nest, render }) => {\n if (nest) {\n return <>{render(children)}</>;\n }\n return <>{children}</>;\n};\n","import { pickBy } from \"lodash-es\";\n\nexport const getDataProps = <T extends Record<string, unknown>>(\n props: Record<string, unknown> | object,\n): T => pickBy(props, isDataPropMapper) as T;\n\nconst isDataPropMapper = (_: unknown, key: string): boolean => isDataProp(key);\n\nconst isDataProp = <TProp extends string>(propName: TProp): boolean =>\n propName.startsWith(\"data-\") || propName.startsWith(\"aria-\");\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport styles from \"./ScreenReaderOnlyText.module.css\";\nimport { getDataProps } from \"../../utils/PropsForwarder\";\n\nexport interface ScreenReaderOnlyTextProps {\n children?: ReactNode;\n}\n\nexport const ScreenReaderOnlyText: React.FC<ScreenReaderOnlyTextProps> = ({\n children,\n ...props\n}) => {\n return (\n <span className={styles.visuallyHidden} {...getDataProps(props)}>\n {children}\n </span>\n );\n};\n","import * as React from \"react\";\nimport cx from \"classnames\";\nimport styles from \"./Text.module.css\";\nimport { SpanProps } from \"../../types/ElementProps\";\nimport { Property } from \"csstype\";\nimport { forwardRef } from \"react\";\n\nexport interface TextProps extends SpanProps {\n variant?: TextVariant;\n size?: TextSize;\n userSelect?: Property.UserSelect;\n whiteSpace?: Property.WhiteSpace;\n wordBreak?: Property.WordBreak;\n textAlign?: Property.TextAlign;\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 textAlign,\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={{\n color,\n userSelect,\n whiteSpace,\n wordBreak,\n textAlign,\n ...style,\n }}\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 | null>,\n eventName: TEventName,\n handler: EventHandler<TEventName>,\n) => {\n // Create a ref that stores handler\n const savedHandler = useRef<EventHandler<TEventName>>(null);\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 { 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 === 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 { useCallback, useLayoutEffect, useRef } from \"react\";\n\ntype Fn<ARGS extends unknown[], R> = (...args: ARGS) => R;\n\nexport const useEventCallback = <A extends unknown[], R>(\n fn: Fn<A, R>,\n): Fn<A, R> => {\n const ref = useRef<Fn<A, R>>(fn);\n useLayoutEffect(() => {\n ref.current = fn;\n });\n return useCallback((...args: A): R => {\n const { current } = ref;\n return current(...args);\n }, []);\n};\n","import React, { MutableRefObject } from \"react\";\n\nexport const useLatest = <T>(value: T): MutableRefObject<T> => {\n const ref = React.useRef(value);\n ref.current = value;\n return ref;\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 // eslint-disable-next-line @typescript-eslint/no-explicit-any\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 // eslint-disable-next-line @typescript-eslint/no-explicit-any\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-es\";\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 | null>,\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>(null);\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","import { useMemo } from \"react\";\n\nexport const useToday = () => {\n return useMemo(() => new Date(), []);\n};\n","export const exhaustSwitchCaseElseThrow = (arg: never) => {\n throw new Error(`Switch unhandled case: ${arg}`);\n};\n\nexport const exhaustSwitchCase = <T>(_arg: never, fallback: T) => {\n return fallback;\n};\n","export const truthyKeysAsList = (r: Record<string, boolean>): Array<string> =>\n Object.keys(r).filter((key) => r[key]);\n","export const parseFloatElseUndefined = (s: string): number | undefined => {\n try {\n const f = parseFloat(s);\n if (isNaN(f)) {\n return undefined;\n }\n if (f == null) {\n return undefined;\n }\n return f;\n } catch {\n /* empty */\n }\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 {\n /* empty */\n }\n return undefined;\n};\n","export function invariant<T>(\n val: T | null | undefined,\n message: string,\n): asserts val is T {\n if (val == null) {\n throw new Error(\"Invariant error: \" + message);\n }\n}\n"],"names":["SeparatorLine","forwardRef","color","cssColor","size","width","vertical","ref","jsx","styles","ClickableElement","styled","background","pointer","props","hoverBackground","disableOpacityOnClick","disableFocusHighlight","focusBackground","height","borderRadius","Clickable","onClick","onDblClick","tooltip","disablePointer","opacityOnHover","disabled","children","type","restProps","hasClickHandler","booleanOrNumberToNumber","num","numberToMetricCalc","booleanOrNumberToMetricCalc","validPropsRecord","validProps","r","isPropValid","memoize","prop","shadows","excludedProps","isExcludedWebUiProp","propName","box","system","row","value","Box","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","Row","Indent","Spacing","InnerSpace","Space","half","horizontal","Nest","nest","render","Fragment","getDataProps","pickBy","isDataPropMapper","_","key","isDataProp","ScreenReaderOnlyText","Text","variant","className","userSelect","whiteSpace","wordBreak","textAlign","style","spanProps","cx","Txt","SmallText","SmallerText","StandardText","LargeText","Heading","as","hProps","Element","HeaderText","defaultComparator","useArraySet","list","setList","comparator","add","item","l","addMultiple","items","remove","index","i","removeMultiple","toggle","useBoolean","initialValue","setValue","setTrue","setFalse","v","useDebounce","delay","debouncedValue","setDebouncedValue","useEffect","handler","useDelayedFalse","id","genId","componentName","useDomId","setId","useEventListener","eventName","savedHandler","eventListener","event","element","useElementFocus","isInFocus","setIsInFocus","setIsNotInFocus","focus","blur","useEventCallback","fn","args","current","useLatest","React","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","useToday","exhaustSwitchCaseElseThrow","arg","exhaustSwitchCase","_arg","fallback","truthyKeysAsList","parseFloatElseUndefined","s","f","parseIntElseUndefined","invariant","val","message"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stenajs-webui/core",
|
|
3
|
-
"version": "21.29.
|
|
3
|
+
"version": "21.29.14",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "",
|
|
6
6
|
"author": "mattias800",
|
|
@@ -61,9 +61,9 @@
|
|
|
61
61
|
"files": [
|
|
62
62
|
"dist"
|
|
63
63
|
],
|
|
64
|
-
"gitHead": "
|
|
64
|
+
"gitHead": "35e649ddbdfbe577b0c27604e1969bd9be170d2b",
|
|
65
65
|
"dependencies": {
|
|
66
|
-
"@stenajs-webui/theme": "21.29.
|
|
66
|
+
"@stenajs-webui/theme": "21.29.14",
|
|
67
67
|
"classnames": "^2.5.1",
|
|
68
68
|
"lodash-es": "^4.17.21"
|
|
69
69
|
}
|