asma-ui-core 3.58.5 → 3.59.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,19 +1,19 @@
1
1
  import { cn as f } from "../../../helpers/cn.js";
2
- import { resolveSx as ue } from "../../../helpers/sx.js";
2
+ import { resolveSx as fe } from "../../../helpers/sx.js";
3
3
  import { ChevronDownIcon as pe } from "../../icons/chevron-down-icon/ChevronDownIcon.js";
4
4
  import { CloseIcon as me } from "../../icons/close-icon/CloseIcon.js";
5
5
  import { ErrorOutlineIcon as xe } from "../../icons/error-outline-icon/ErrorOutlineIcon.js";
6
- import { TOP_LAYER_PROPS as ge, TOP_LAYER_RESET_STYLE as ye, getOpenModalDialogAncestor as be, useTopLayerRef as he } from "../../../hooks/useTopLayer.hook.js";
6
+ import { TOP_LAYER_PROPS as ye, TOP_LAYER_RESET_STYLE as ge, getOpenModalDialogAncestor as be, useTopLayerRef as he } from "../../../hooks/useTopLayer.hook.js";
7
7
  import { outlineClass as we } from "../field-styles.js";
8
8
  import { useFormControlContext as Ae } from "../../miscellaneous/FormControlContext.js";
9
9
  import { StyledFormHelperText as ve } from "../../miscellaneous/StyledFormHelperText.js";
10
- import { Children as S, cloneElement as Re, isValidElement as E, useEffect as I, useMemo as ke, useRef as De, useState as C } from "react";
11
- import { jsx as n, jsxs as y } from "react/jsx-runtime";
12
- import { FloatingPortal as Fe, autoUpdate as Se, flip as Ee, offset as Ce, shift as Ne, size as _e, useClick as Pe, useDismiss as Te, useFloating as je, useInteractions as qe, useMergeRefs as K, useRole as Ue } from "@floating-ui/react";
13
- var Ge = ({ dataTest: N, value: _, defaultValue: L, onChange: P, error: M, errorText: H, allowClear: T, disabled: O, readOnly: i, name: u, placeholder: b, displayEmpty: h, multiple: c, renderValue: j, fullWidth: Y, className: z, style: W, sx: $, variant: G, children: w, MenuProps: J, onFocus: Q, onBlur: X, labelId: p }) => {
14
- const a = Ae(), q = `${N}-listbox`, A = G === "standard", U = M ?? a?.error ?? !1, o = O ?? a?.disabled ?? !1, [s, m] = C(!1), [v, R] = C(!1), [Z, V] = C(L), k = _ !== void 0, r = k ? _ : Z, l = Array.isArray(r) ? r.length > 0 : r !== void 0 && r !== "" && r !== null, x = De(null), { refs: d, floatingStyles: ee, context: D } = je({
15
- open: s,
16
- onOpenChange: m,
10
+ import { Children as S, cloneElement as Re, isValidElement as E, useEffect as C, useMemo as ke, useRef as De, useState as N } from "react";
11
+ import { jsx as n, jsxs as g } from "react/jsx-runtime";
12
+ import { FloatingPortal as Fe, autoUpdate as Se, flip as Ee, offset as Ce, shift as Ne, size as _e, useClick as qe, useDismiss as Pe, useFloating as Te, useInteractions as Ve, useMergeRefs as K, useRole as je } from "@floating-ui/react";
13
+ var Ge = ({ dataTest: _, value: q, defaultValue: L, onChange: P, error: M, errorText: H, allowClear: T, disabled: O, readOnly: c, name: p, placeholder: b, displayEmpty: h, multiple: d, renderValue: V, fullWidth: Y, className: z, style: W, sx: $, variant: G, children: w, MenuProps: J, onFocus: Q, onBlur: X, labelId: m }) => {
14
+ const a = Ae(), j = `${_}-listbox`, A = G === "standard", I = M ?? a?.error ?? !1, s = O ?? a?.disabled ?? !1, [o, x] = N(!1), [v, R] = N(!1), [Z, U] = N(L), k = q !== void 0, r = k ? q : Z, l = Array.isArray(r) ? r.length > 0 : r !== void 0 && r !== "" && r !== null, i = De(null), { refs: u, floatingStyles: ee, context: D } = Te({
15
+ open: o,
16
+ onOpenChange: x,
17
17
  placement: "bottom-start",
18
18
  strategy: "fixed",
19
19
  whileElementsMounted: Se,
@@ -25,79 +25,87 @@ var Ge = ({ dataTest: N, value: _, defaultValue: L, onChange: P, error: M, error
25
25
  t.floating.style.minWidth = `${e.reference.width + 20}px`;
26
26
  } })
27
27
  ]
28
- }), { getReferenceProps: te, getFloatingProps: re } = qe([
29
- Pe(D, { enabled: !o && !i }),
30
- Te(D),
31
- Ue(D, { role: "listbox" })
32
- ]), oe = K([d.setReference]), se = K([he(d.setFloating), x]), ne = ke(() => s ? be(d.reference.current) : void 0, [s, d]);
33
- I(() => a?.setFocused(s || v), [
34
- s,
28
+ }), { getReferenceProps: te, getFloatingProps: re } = Ve([
29
+ qe(D, { enabled: !s && !c }),
30
+ Pe(D),
31
+ je(D, { role: "listbox" })
32
+ ]), oe = K([u.setReference]), se = K([he(u.setFloating), i]), ne = ke(() => o ? be(u.reference.current) : void 0, [o, u]);
33
+ C(() => a?.setFocused(o || v), [
34
+ o,
35
35
  v,
36
36
  a
37
- ]), I(() => a?.setFilled(l || !!b || !!h), [
37
+ ]), C(() => a?.setFilled(l || !!b || !!h), [
38
38
  l,
39
39
  b,
40
40
  h,
41
41
  a
42
- ]);
42
+ ]), C(() => {
43
+ if (!o) return;
44
+ const e = requestAnimationFrame(() => {
45
+ const t = i.current?.querySelector('[role="option"][aria-selected="true"]');
46
+ t && (t.scrollIntoView({ block: "nearest" }), t.focus());
47
+ });
48
+ return () => cancelAnimationFrame(e);
49
+ }, [o]);
43
50
  const le = (e, t) => {
44
- const g = c ? Array.isArray(r) && r.includes(e) ? r.filter((F) => F !== e) : [...Array.isArray(r) ? r : [], e] : e;
45
- k || V(g), P?.({ target: {
46
- value: g,
47
- name: u
48
- } }, t), c || (m(!1), requestAnimationFrame(() => d.domReference.current?.focus()));
51
+ const y = d ? Array.isArray(r) && r.includes(e) ? r.filter((F) => F !== e) : [...Array.isArray(r) ? r : [], e] : e;
52
+ k || U(y), P?.({ target: {
53
+ value: y,
54
+ name: p
55
+ } }, t), d || (x(!1), requestAnimationFrame(() => u.domReference.current?.focus()));
49
56
  }, B = () => {
50
- const e = c ? [] : "";
51
- k || V(e), P?.({ target: {
57
+ const e = d ? [] : "";
58
+ k || U(e), P?.({ target: {
52
59
  value: e,
53
- name: u
54
- } }, null), m(!1), R(!1);
60
+ name: p
61
+ } }, null), x(!1), R(!1);
55
62
  }, ae = S.map(w, (e) => {
56
63
  if (!E(e)) return e;
57
64
  const t = e.props.value;
58
65
  return Re(e, {
59
- selected: c ? Array.isArray(r) && r.includes(t) : t === r,
66
+ selected: d ? Array.isArray(r) && r.includes(t) : t === r,
60
67
  onClick: () => le(t, e.props.children)
61
68
  });
62
- }), ie = S.toArray(w).find((e) => E(e) && e.props.value === r), ce = j ? j(r) : c && Array.isArray(r) ? S.toArray(w).filter((e) => E(e) && r.includes(e.props.value)).map((e) => {
69
+ }), ie = S.toArray(w).find((e) => E(e) && e.props.value === r), ce = V ? V(r) : d && Array.isArray(r) ? S.toArray(w).filter((e) => E(e) && r.includes(e.props.value)).map((e) => {
63
70
  const t = e.props.children;
64
71
  return typeof t == "string" || typeof t == "number" ? String(t) : "";
65
72
  }).join(", ") : ie?.props.children, de = (e) => {
66
- if ((e.key === "Backspace" || e.key === "Delete") && T && l && !o && !i) {
73
+ if ((e.key === "Backspace" || e.key === "Delete") && T && l && !s && !c) {
67
74
  e.preventDefault(), B();
68
75
  return;
69
76
  }
70
- e.key !== "ArrowDown" && e.key !== "ArrowUp" || o || i || (e.preventDefault(), m(!0), requestAnimationFrame(() => {
71
- const t = x.current?.querySelectorAll('[role="option"]:not([aria-disabled="true"])');
77
+ e.key !== "ArrowDown" && e.key !== "ArrowUp" || s || c || (e.preventDefault(), x(!0), requestAnimationFrame(() => {
78
+ if (i.current?.querySelector('[role="option"][aria-selected="true"]')) return;
79
+ const t = i.current?.querySelectorAll('[role="option"]:not([aria-disabled="true"])');
72
80
  t?.length && t[e.key === "ArrowUp" ? t.length - 1 : 0]?.focus();
73
81
  }));
74
- }, fe = (e) => {
75
- const t = x.current ? Array.from(x.current.querySelectorAll('[role="option"]:not([aria-disabled="true"])')) : [];
82
+ }, ue = (e) => {
83
+ const t = i.current ? Array.from(i.current.querySelectorAll('[role="option"]:not([aria-disabled="true"])')) : [];
76
84
  if (t.length === 0) return;
77
- const g = t.findIndex((F) => F === document.activeElement);
78
- e.key === "ArrowDown" || e.key === "ArrowUp" ? (e.preventDefault(), t[(g + (e.key === "ArrowDown" ? 1 : -1) + t.length) % t.length]?.focus()) : (e.key === "Enter" || e.key === " ") && (e.preventDefault(), document.activeElement?.click());
85
+ const y = t.findIndex((F) => F === document.activeElement);
86
+ e.key === "ArrowDown" || e.key === "ArrowUp" ? (e.preventDefault(), t[(y + (e.key === "ArrowDown" ? 1 : -1) + t.length) % t.length]?.focus()) : (e.key === "Enter" || e.key === " ") && (e.preventDefault(), document.activeElement?.click());
79
87
  };
80
- return /* @__PURE__ */ y("div", {
88
+ return /* @__PURE__ */ g("div", {
81
89
  className: f("group relative inline-flex flex-col", Y && "w-full", z),
82
90
  style: {
83
91
  fontFamily: "Roboto, Helvetica, Arial, sans-serif",
84
- ...ue($),
92
+ ...fe($),
85
93
  ...W
86
94
  },
87
95
  children: [
88
- /* @__PURE__ */ y("button", {
96
+ /* @__PURE__ */ g("button", {
89
97
  ref: oe,
90
98
  type: "button",
91
- "data-testid": N,
99
+ "data-testid": _,
92
100
  ...te({ onKeyDown: de }),
93
101
  role: "combobox",
94
102
  "aria-haspopup": "listbox",
95
- "aria-expanded": s,
96
- "aria-controls": q,
97
- "aria-labelledby": p,
98
- "aria-label": p ? void 0 : u,
99
- "aria-disabled": o ? !0 : void 0,
100
- disabled: o,
103
+ "aria-expanded": o,
104
+ "aria-controls": j,
105
+ "aria-labelledby": m,
106
+ "aria-label": m ? void 0 : p,
107
+ "aria-disabled": s ? !0 : void 0,
108
+ disabled: s,
101
109
  onFocus: (e) => {
102
110
  R(!0), Q?.(e);
103
111
  },
@@ -105,15 +113,15 @@ var Ge = ({ dataTest: N, value: _, defaultValue: L, onChange: P, error: M, error
105
113
  R(!1), X?.(e);
106
114
  },
107
115
  style: { minWidth: l && !A ? 105 : void 0 },
108
- className: f("relative flex w-full items-center justify-between bg-transparent text-left text-delta-800 outline-none", A ? "h-10 min-w-0 border-0 px-0 text-base" : "h-10 rounded-lg border-0 px-3 text-base", o && "cursor-not-allowed text-delta-300", i && "pointer-events-none"),
116
+ className: f("relative flex w-full items-center justify-between bg-transparent text-left text-delta-800 outline-none", A ? "h-10 min-w-0 border-0 px-0 text-base" : "h-10 rounded-lg border-0 px-3 text-base", s && "cursor-not-allowed text-delta-300", c && "pointer-events-none"),
109
117
  children: [
110
118
  /* @__PURE__ */ n("span", {
111
119
  className: f("min-w-0 flex-1 truncate", !l && "text-delta-500"),
112
120
  children: l || h ? ce : b
113
121
  }),
114
- /* @__PURE__ */ y("span", {
122
+ /* @__PURE__ */ g("span", {
115
123
  className: "flex items-center gap-1",
116
- children: [T && l && !o && /* @__PURE__ */ n("span", {
124
+ children: [T && l && !s && /* @__PURE__ */ n("span", {
117
125
  "aria-hidden": "true",
118
126
  "data-testid": "select-clear-button",
119
127
  className: "flex items-center justify-center rounded-full p-[2px] hover:bg-gama-100",
@@ -127,38 +135,38 @@ var Ge = ({ dataTest: N, value: _, defaultValue: L, onChange: P, error: M, error
127
135
  }), /* @__PURE__ */ n(pe, {
128
136
  width: 24,
129
137
  height: 24,
130
- className: f("shrink-0 transition-transform", o ? "text-delta-300" : "text-delta-700", s && "rotate-180")
138
+ className: f("shrink-0 transition-transform", s ? "text-delta-300" : "text-delta-700", o && "rotate-180")
131
139
  })]
132
140
  }),
133
141
  !A && /* @__PURE__ */ n("div", { className: we({
134
- focused: s || v,
135
- error: U,
136
- disabled: o,
137
- readOnly: i
142
+ focused: o || v,
143
+ error: I,
144
+ disabled: s,
145
+ readOnly: c
138
146
  }) })
139
147
  ]
140
148
  }),
141
- s && /* @__PURE__ */ n(Fe, {
149
+ o && /* @__PURE__ */ n(Fe, {
142
150
  root: ne,
143
151
  children: /* @__PURE__ */ n("ul", {
144
152
  ref: se,
145
- id: q,
153
+ id: j,
146
154
  role: "listbox",
147
- "aria-labelledby": p,
148
- "aria-label": p ? void 0 : u,
149
- ...ge,
155
+ "aria-labelledby": m,
156
+ "aria-label": m ? void 0 : p,
157
+ ...ye,
150
158
  style: {
151
- ...ye,
159
+ ...ge,
152
160
  ...ee,
153
161
  fontFamily: "Roboto, Helvetica, Arial, sans-serif"
154
162
  },
155
163
  ...re(),
156
- onKeyDown: fe,
164
+ onKeyDown: ue,
157
165
  className: f("z-[1300] m-0 max-h-72 list-none overflow-auto rounded-lg border border-solid border-delta-300 bg-white px-0 py-1 shadow-[0px_2px_4px_0px_rgba(34,33,51,0.15)]", J?.className),
158
166
  children: ae
159
167
  })
160
168
  }),
161
- U && /* @__PURE__ */ y(ve, {
169
+ I && /* @__PURE__ */ g(ve, {
162
170
  className: "m-0 flex items-center gap-1 pt-1 text-sm text-error-500",
163
171
  children: [/* @__PURE__ */ n(xe, {
164
172
  width: 20,
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "3.58.5",
6
+ "version": "3.59.0",
7
7
  "type": "module",
8
8
  "sideEffects": [
9
9
  "**/*.css",