asheeui 0.6.8 → 0.6.10

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.
Files changed (116) hide show
  1. package/dist/components/autocomplete/Autocomplete.d.ts +34 -17
  2. package/dist/components/autocomplete/Autocomplete.d.ts.map +1 -1
  3. package/dist/components/autocomplete/Autocomplete.js +86 -102
  4. package/dist/components/autocomplete/autocomplete-config.d.ts +4 -22
  5. package/dist/components/autocomplete/autocomplete-config.d.ts.map +1 -1
  6. package/dist/components/autocomplete/autocomplete-config.js +8 -11
  7. package/dist/components/button/Button.d.ts +31 -5
  8. package/dist/components/button/Button.d.ts.map +1 -1
  9. package/dist/components/button/Button.js +68 -64
  10. package/dist/components/card/Card.d.ts +58 -54
  11. package/dist/components/card/Card.d.ts.map +1 -1
  12. package/dist/components/card/Card.js +152 -158
  13. package/dist/components/card/card-config.d.ts +66 -33
  14. package/dist/components/card/card-config.d.ts.map +1 -1
  15. package/dist/components/card/card-config.js +9 -9
  16. package/dist/components/date-picker/Calendar.d.ts +57 -0
  17. package/dist/components/date-picker/Calendar.d.ts.map +1 -0
  18. package/dist/components/date-picker/Calendar.js +224 -0
  19. package/dist/components/date-picker/DatePicker.d.ts +68 -155
  20. package/dist/components/date-picker/DatePicker.d.ts.map +1 -1
  21. package/dist/components/date-picker/DatePicker.js +194 -466
  22. package/dist/components/date-picker/TimeSpinner.d.ts +46 -0
  23. package/dist/components/date-picker/TimeSpinner.d.ts.map +1 -0
  24. package/dist/components/date-picker/TimeSpinner.js +84 -0
  25. package/dist/components/date-picker/date-picker-config.d.ts +24 -3
  26. package/dist/components/date-picker/date-picker-config.d.ts.map +1 -1
  27. package/dist/components/date-picker/date-picker-config.js +9 -12
  28. package/dist/components/date-picker/date-picker-styles.d.ts.map +1 -1
  29. package/dist/components/date-picker/date-picker-styles.js +4 -11
  30. package/dist/components/date-picker/date-picker.helpers.d.ts +111 -0
  31. package/dist/components/date-picker/date-picker.helpers.d.ts.map +1 -0
  32. package/dist/components/date-picker/date-picker.helpers.js +110 -0
  33. package/dist/components/date-picker/index.js +3 -0
  34. package/dist/components/input/Input.d.ts +13 -7
  35. package/dist/components/input/Input.d.ts.map +1 -1
  36. package/dist/components/input/Input.js +96 -91
  37. package/dist/components/keyboard/KeyboardContext.d.ts +130 -0
  38. package/dist/components/keyboard/KeyboardContext.d.ts.map +1 -0
  39. package/dist/components/keyboard/KeyboardContext.js +13 -0
  40. package/dist/components/keyboard/KeyboardProvider.d.ts +78 -0
  41. package/dist/components/keyboard/KeyboardProvider.d.ts.map +1 -0
  42. package/dist/components/keyboard/KeyboardProvider.js +183 -0
  43. package/dist/components/keyboard/OnScreenKeyboard.d.ts +65 -43
  44. package/dist/components/keyboard/OnScreenKeyboard.d.ts.map +1 -1
  45. package/dist/components/keyboard/OnScreenKeyboard.js +119 -113
  46. package/dist/components/keyboard/index.d.ts +2 -1
  47. package/dist/components/keyboard/index.d.ts.map +1 -1
  48. package/dist/components/keyboard/index.js +2 -1
  49. package/dist/components/keyboard/keyboard-config.d.ts +40 -36
  50. package/dist/components/keyboard/keyboard-config.d.ts.map +1 -1
  51. package/dist/components/keyboard/keyboard-config.js +15 -10
  52. package/dist/components/keyboard/use-keyboard-field.d.ts +6 -4
  53. package/dist/components/keyboard/use-keyboard-field.d.ts.map +1 -1
  54. package/dist/components/keyboard/use-keyboard-field.js +12 -12
  55. package/dist/components/multi-select/MultiSelect.d.ts +75 -40
  56. package/dist/components/multi-select/MultiSelect.d.ts.map +1 -1
  57. package/dist/components/multi-select/MultiSelect.js +188 -187
  58. package/dist/components/multi-select/multi-select-config.d.ts +4 -22
  59. package/dist/components/multi-select/multi-select-config.d.ts.map +1 -1
  60. package/dist/components/multi-select/multi-select-config.js +11 -14
  61. package/dist/components/radio/radio-config.d.ts +3 -2
  62. package/dist/components/radio/radio-config.d.ts.map +1 -1
  63. package/dist/components/radio/radio-config.js +9 -8
  64. package/dist/components/select/Select.d.ts +60 -45
  65. package/dist/components/select/Select.d.ts.map +1 -1
  66. package/dist/components/select/Select.js +147 -159
  67. package/dist/components/select/select-config.d.ts +5 -33
  68. package/dist/components/select/select-config.d.ts.map +1 -1
  69. package/dist/components/select/select-config.js +6 -13
  70. package/dist/components/select/select-styles.js +1 -6
  71. package/dist/components/select-menu/SelectMenu.d.ts +45 -30
  72. package/dist/components/select-menu/SelectMenu.d.ts.map +1 -1
  73. package/dist/components/select-menu/SelectMenu.js +125 -124
  74. package/dist/components/select-menu/select-menu-config.d.ts +25 -2
  75. package/dist/components/select-menu/select-menu-config.d.ts.map +1 -1
  76. package/dist/components/select-menu/select-menu-config.js +4 -3
  77. package/dist/components/switch/Switch.d.ts +9 -33
  78. package/dist/components/switch/Switch.d.ts.map +1 -1
  79. package/dist/components/switch/Switch.js +68 -74
  80. package/dist/components/switch/switch-config.d.ts +3 -2
  81. package/dist/components/switch/switch-config.d.ts.map +1 -1
  82. package/dist/components/switch/switch-config.js +6 -5
  83. package/dist/components/switch/switch-styles.d.ts +1 -6
  84. package/dist/components/switch/switch-styles.d.ts.map +1 -1
  85. package/dist/components/switch/switch-styles.js +6 -12
  86. package/dist/components/textarea/Textarea.d.ts +19 -1
  87. package/dist/components/textarea/Textarea.d.ts.map +1 -1
  88. package/dist/components/textarea/Textarea.js +95 -90
  89. package/dist/components/toast/ToastContext.d.ts +122 -0
  90. package/dist/components/toast/ToastContext.d.ts.map +1 -0
  91. package/dist/components/toast/ToastContext.js +28 -0
  92. package/dist/components/toast/ToastProvider.d.ts +98 -0
  93. package/dist/components/toast/ToastProvider.d.ts.map +1 -0
  94. package/dist/components/toast/ToastProvider.js +192 -0
  95. package/dist/components/toast/index.d.ts +2 -1
  96. package/dist/components/toast/index.d.ts.map +1 -1
  97. package/dist/components/toast/index.js +2 -1
  98. package/dist/components/toast/toast-config.d.ts +36 -0
  99. package/dist/components/toast/toast-config.d.ts.map +1 -1
  100. package/dist/components/toast/toast-styles.d.ts +8 -0
  101. package/dist/components/toast/toast-styles.d.ts.map +1 -1
  102. package/dist/components/toast/toast-styles.js +11 -3
  103. package/dist/icons/ChevronUpIcon.d.ts +3 -0
  104. package/dist/icons/ChevronUpIcon.d.ts.map +1 -0
  105. package/dist/icons/ChevronUpIcon.js +21 -0
  106. package/dist/icons/index.d.ts +2 -0
  107. package/dist/icons/index.d.ts.map +1 -1
  108. package/dist/index.js +62 -59
  109. package/dist/theme/color.js +2 -2
  110. package/package.json +1 -1
  111. package/dist/components/keyboard/keyboard-context.d.ts +0 -118
  112. package/dist/components/keyboard/keyboard-context.d.ts.map +0 -1
  113. package/dist/components/keyboard/keyboard-context.js +0 -90
  114. package/dist/components/toast/toast-context.d.ts +0 -163
  115. package/dist/components/toast/toast-context.d.ts.map +0 -1
  116. package/dist/components/toast/toast-context.js +0 -177
@@ -1,250 +1,251 @@
1
1
  "use client";
2
- import { jsx as l, jsxs as S } from "react/jsx-runtime";
3
- import { useClick as Ue, useDismiss as Ve, useRole as je, useInteractions as Be } from "@floating-ui/react";
4
- import { forwardRef as Ge, useId as He, useState as P, useMemo as R, useCallback as L } from "react";
5
- import { ChevronDownIcon as Qe } from "../../icons/ChevronDownIcon.js";
6
- import { CloseIcon as $e } from "../../icons/CloseIcon.js";
7
- import { useAsheeConfig as qe } from "../../libs/context.js";
8
- import { resolveCascade as c, resolveRadiusKey as U, resolveClassKey as g } from "../../utils/resolve-token.js";
9
- import { Button as Je } from "../button/Button.js";
2
+ import { jsx as l, jsxs as S, Fragment as Pe } from "react/jsx-runtime";
3
+ import { useClick as Re, useDismiss as Ue, useRole as je, useInteractions as Ve } from "@floating-ui/react";
4
+ import { forwardRef as $e, useId as Be, useState as B, useMemo as A, useCallback as z } from "react";
5
+ import { ChevronDownIcon as Ge } from "../../icons/ChevronDownIcon.js";
6
+ import { CloseIcon as He } from "../../icons/CloseIcon.js";
7
+ import { useAsheeConfig as Qe } from "../../libs/context.js";
8
+ import { resolveCascade as m, resolveRadiusKey as G, resolveClassKey as N } from "../../utils/resolve-token.js";
9
+ import { Button as he } from "../button/Button.js";
10
10
  import { Chip as We } from "../chip/Chip.js";
11
- import { FieldShell as Xe } from "../field/FieldShell.js";
12
- import { SelectMenu as Ye } from "../select-menu/SelectMenu.js";
11
+ import { FieldShell as qe } from "../field/FieldShell.js";
12
+ import { SelectMenu as Je } from "../select-menu/SelectMenu.js";
13
13
  import { FALLBACK_MULTI_SELECT_CONFIG as s } from "./multi-select-config.js";
14
- import { MULTI_SELECT_HEIGHT_CLASS as Ze, MULTI_SELECT_PADDING_CLASS as he, MULTI_SELECT_FONT_CLASS as Ce, STATUS_BORDER_CLASS as er } from "./multi-select-styles.js";
15
- import { RADIUS_CLASS as rr } from "../../shared/radius.js";
16
- import { useSelectFloating as sr } from "../select-menu/use-select-floating.js";
17
- import { cn as T } from "../../utils/cn.js";
18
- const tr = Ge(
14
+ import { MULTI_SELECT_HEIGHT_CLASS as Xe, MULTI_SELECT_PADDING_CLASS as Ye, MULTI_SELECT_FONT_CLASS as Ze, STATUS_BORDER_CLASS as Ce } from "./multi-select-styles.js";
15
+ import { RADIUS_CLASS as er } from "../../shared/radius.js";
16
+ import { useSelectFloating as rr } from "../select-menu/use-select-floating.js";
17
+ import { cn as v } from "../../utils/cn.js";
18
+ const sr = $e(
19
19
  ({
20
- options: I = [],
21
- value: o,
22
- onChange: m,
23
- InputLabel: V = "Select Options...",
24
- isSearch: j = !0,
25
- searchPlaceholder: B = "Search...",
26
- searchInputName: G = "multiselect-search",
27
- belowList: H,
28
- chipOptions: N,
29
- handleRemoveChip: n,
20
+ options: _ = [],
21
+ value: n,
22
+ onChange: u,
23
+ InputLabel: T = "Select Options...",
24
+ isSearch: H = !0,
25
+ searchPlaceholder: Q = "Search...",
26
+ searchInputName: h = "multiselect-search",
27
+ belowList: W,
28
+ chipOptions: L,
29
+ handleRemoveChip: i,
30
30
  handleAddChip: f,
31
- chipLabel: _,
32
- disableChipDisplay: Q = !1,
33
- variant: $,
34
- color: q,
35
- size: J,
36
- radius: W,
37
- status: X,
38
- label: Y,
39
- labelAlign: Z,
40
- description: h,
41
- message: C,
42
- required: ee,
43
- isLoading: re,
44
- disabled: u,
45
- containerClassName: se,
46
- dropdownClassName: te,
31
+ chipLabel: E,
32
+ disableChipDisplay: q = !1,
33
+ variant: J,
34
+ color: X,
35
+ size: Y,
36
+ radius: Z,
37
+ status: C,
38
+ label: ee,
39
+ labelAlign: re,
40
+ description: w,
41
+ message: k,
42
+ required: se,
43
+ isLoading: M,
44
+ disabled: c,
45
+ containerClassName: te,
47
46
  id: le,
48
- className: ae,
49
- menu: oe,
47
+ className: oe,
48
+ menu: ae,
50
49
  chip: a,
51
- portal: ne,
52
- portalTarget: ie,
53
- style: ce,
54
- ...ue
55
- }, p) => {
56
- var M, D, K, F;
57
- const v = qe(), e = (M = v.components) == null ? void 0 : M.multiSelect, me = He(), de = le ?? me, [x, fe] = P(!1), [Se, pe] = P(""), y = c(
58
- J,
50
+ style: ne,
51
+ startContent: ie,
52
+ endContent: ce
53
+ }, x) => {
54
+ var R, U, j, V;
55
+ const p = Qe(), e = (R = p.components) == null ? void 0 : R.multiSelect, ue = Be(), y = le ?? ue, [b, de] = B(!1), [me, fe] = B(""), g = m(
56
+ Y,
59
57
  e == null ? void 0 : e.size,
60
58
  void 0,
61
59
  s.size
62
- ), ve = c(
63
- $,
60
+ ), Se = m(
61
+ J,
64
62
  e == null ? void 0 : e.variant,
65
- v.defaultVariant,
63
+ p.defaultVariant,
66
64
  s.variant
67
- ), w = c(
68
- q,
65
+ ), D = m(
66
+ X,
69
67
  e == null ? void 0 : e.color,
70
- v.defaultColor,
68
+ p.defaultColor,
71
69
  s.color
72
- ), A = U(
73
- W,
70
+ ), F = G(
71
+ Z,
74
72
  e == null ? void 0 : e.radius,
75
- v.defaultRadius,
73
+ p.defaultRadius,
76
74
  s.radius
77
- ), xe = c(
75
+ ), ve = m(
78
76
  a == null ? void 0 : a.color,
79
- (D = e == null ? void 0 : e.chip) == null ? void 0 : D.color,
80
- w,
77
+ (U = e == null ? void 0 : e.chip) == null ? void 0 : U.color,
78
+ D,
81
79
  s.chip.color
82
- ), ye = c(
80
+ ), xe = m(
83
81
  a == null ? void 0 : a.size,
84
- (K = e == null ? void 0 : e.chip) == null ? void 0 : K.size,
82
+ (j = e == null ? void 0 : e.chip) == null ? void 0 : j.size,
85
83
  void 0,
86
84
  s.chip.size
87
- ), be = U(
85
+ ), pe = G(
88
86
  a == null ? void 0 : a.radius,
89
- (F = e == null ? void 0 : e.chip) == null ? void 0 : F.radius,
90
- A,
87
+ (V = e == null ? void 0 : e.chip) == null ? void 0 : V.radius,
88
+ F,
91
89
  s.chip.radius
92
- ), d = X ?? "default", ge = d === "error" ? "danger" : d === "success" ? "success" : d === "warning" ? "warning" : w, Te = c(
93
- Z,
90
+ ), d = C ?? s.status, ye = d === "error" ? "danger" : d === "success" ? "success" : d === "warning" ? "warning" : D, be = m(
91
+ re,
94
92
  e == null ? void 0 : e.labelAlign,
95
93
  void 0,
96
94
  s.labelAlign
97
- ), Ie = c(
98
- ne,
99
- e == null ? void 0 : e.portal,
100
- void 0,
101
- s.portal
102
- ), Ne = c(
103
- ie,
104
- e == null ? void 0 : e.portalTarget,
105
- void 0,
106
- s.portalTarget
107
- ), Le = g(
108
- y,
109
- Ze,
95
+ ), ge = N(
96
+ g,
97
+ Xe,
110
98
  s.size
111
- ), _e = g(
112
- y,
113
- he,
99
+ ), Ie = N(
100
+ g,
101
+ Ye,
114
102
  s.size
115
- ), we = g(
116
- y,
117
- Ce,
103
+ ), Ne = N(
104
+ g,
105
+ Ze,
118
106
  s.size
119
- ), Ae = g(
120
- be,
121
- rr,
107
+ ), _e = N(
108
+ pe,
109
+ er,
122
110
  s.chip.radius
123
- ), { refs: z, floatingStyles: ze, context: b } = sr({
124
- isOpen: x,
125
- onOpenChange: fe,
126
- disabled: u
127
- }), Ee = Ue(b, { enabled: !u }), ke = Ve(b), Me = je(b, { role: "listbox" }), { getReferenceProps: De, getFloatingProps: Ke } = Be([
128
- Ee,
129
- ke,
130
- Me
131
- ]), i = R(() => N !== void 0 ? N : Array.isArray(o) ? I.filter((r) => o.includes(r.value)) : [], [N, o, I]), E = L(
132
- (r) => i.some((t) => t.value === r),
133
- [i]
134
- ), Fe = L(
111
+ ), { refs: K, floatingStyles: Le, context: I } = rr({
112
+ isOpen: b,
113
+ onOpenChange: de,
114
+ disabled: c
115
+ }), we = Re(I, { enabled: !c }), Ae = Ue(I), ze = je(I, { role: "listbox" }), { getReferenceProps: Te, getFloatingProps: Ee } = Ve([
116
+ we,
117
+ Ae,
118
+ ze
119
+ ]), o = A(() => L !== void 0 ? L : Array.isArray(n) ? _.filter((r) => n.includes(r.value)) : [], [L, n, _]), O = z(
120
+ (r) => o.some((t) => t.value === r),
121
+ [o]
122
+ ), ke = z(
135
123
  (r) => {
136
- const t = E(r.value);
137
- if (f || n)
138
- t ? n == null || n(r.value) : f == null || f(r);
139
- else if (m) {
140
- const O = o ?? [], Pe = t ? O.filter((Re) => Re !== r.value) : [...O, r.value];
141
- m(Pe);
124
+ const t = O(r.value);
125
+ if (f || i)
126
+ t ? i == null || i(r.value) : f == null || f(r);
127
+ else if (u) {
128
+ const $ = n ?? [], Ke = t ? $.filter((Oe) => Oe !== r.value) : [...$, r.value];
129
+ u(Ke);
142
130
  }
143
131
  },
144
- [E, f, n, m, o]
145
- ), k = L(
132
+ [O, f, i, u, n]
133
+ ), P = z(
146
134
  (r) => {
147
- n ? n(r) : m && Array.isArray(o) && m(o.filter((t) => t !== r));
135
+ i ? i(r) : u && Array.isArray(n) && u(n.filter((t) => t !== r));
148
136
  },
149
- [n, m, o]
150
- ), Oe = R(
151
- () => i.map((r) => r.value),
152
- [i]
153
- );
137
+ [i, u, n]
138
+ ), Me = A(
139
+ () => o.map((r) => r.value),
140
+ [o]
141
+ ), De = A(() => o.length > 0 ? `${o.length} selected` : T, [o.length, T]), Fe = Te();
154
142
  return /* @__PURE__ */ l(
155
- Xe,
143
+ qe,
156
144
  {
157
- id: de,
158
- label: Y,
159
- labelAlign: Te,
160
- description: h,
161
- message: C,
145
+ id: y,
146
+ label: ee,
147
+ labelAlign: be,
148
+ description: w,
149
+ descriptionId: w ? `${y}-description` : void 0,
150
+ message: k,
151
+ messageId: k ? `${y}-message` : void 0,
162
152
  status: d,
163
- required: ee,
164
- isLoading: re,
153
+ required: se,
154
+ isLoading: M,
165
155
  children: /* @__PURE__ */ S(
166
156
  "div",
167
157
  {
168
- className: T("w-full flex flex-col gap-3", se),
169
- style: ce,
170
- ...ue,
158
+ className: v("w-full flex flex-col gap-3", te),
159
+ style: ne,
171
160
  children: [
172
161
  /* @__PURE__ */ S("div", { className: "relative w-full", children: [
173
- /* @__PURE__ */ S(
174
- Je,
162
+ /* @__PURE__ */ l(
163
+ he,
175
164
  {
176
165
  ref: (r) => {
177
- z.setReference(r), typeof p == "function" ? p(r) : p && (p.current = r);
166
+ K.setReference(r), typeof x == "function" ? x(r) : x && (x.current = r);
178
167
  },
179
- variant: ve,
180
- color: ge,
181
- radius: A,
168
+ type: "button",
169
+ variant: Se,
170
+ color: ye,
171
+ size: g,
172
+ radius: F,
173
+ isDisabled: c,
174
+ isLoading: M,
175
+ fullWidth: !0,
182
176
  animate: !1,
183
- size: y,
184
- isDisabled: u,
185
- "aria-expanded": x,
177
+ "aria-expanded": b,
186
178
  "aria-haspopup": "listbox",
187
179
  "aria-invalid": d === "error",
188
- className: T(
189
- "w-full flex items-center justify-between font-normal text-left transition-all duration-200 outline-none select-none",
190
- er[d],
191
- Le,
192
- _e,
193
- we,
194
- ae
180
+ "aria-describedby": [w ? `${y}-description` : void 0].filter(Boolean).join(" ") || void 0,
181
+ className: v(
182
+ "font-normal text-left justify-between",
183
+ Ce[d],
184
+ ge,
185
+ Ie,
186
+ Ne,
187
+ oe
195
188
  ),
196
- ...De(),
197
- children: [
198
- /* @__PURE__ */ l("span", { children: i.length > 0 ? `${i.length} selected` : V }),
189
+ startContent: ie,
190
+ endContent: /* @__PURE__ */ S(Pe, { children: [
191
+ ce,
199
192
  /* @__PURE__ */ l(
200
- Qe,
193
+ Ge,
201
194
  {
202
- className: T(
203
- "ml-2 shrink-0 transition-transform duration-200",
204
- x && "rotate-180"
195
+ className: v(
196
+ "shrink-0 text-foreground/70 transition-transform duration-200",
197
+ b && "rotate-180"
205
198
  )
206
199
  }
207
200
  )
208
- ]
201
+ ] }),
202
+ ...Fe,
203
+ children: /* @__PURE__ */ l(
204
+ "span",
205
+ {
206
+ className: v(
207
+ "truncate",
208
+ o.length > 0 ? "text-foreground" : "text-foreground/70"
209
+ ),
210
+ children: De
211
+ }
212
+ )
209
213
  }
210
214
  ),
211
215
  /* @__PURE__ */ l(
212
- Ye,
216
+ Je,
213
217
  {
214
- isOpen: x,
215
- context: b,
216
- floatingStyles: ze,
217
- getFloatingProps: Ke,
218
- setFloatingRef: z.setFloating,
219
- options: I,
220
- selectedValues: Oe,
221
- onSelectMenuOption: Fe,
222
- isSearch: j,
223
- searchPlaceholder: B,
224
- searchInputName: G,
225
- searchQuery: Se,
226
- onSearchChange: pe,
227
- belowList: H,
228
- dropdownClassName: te,
229
- menuProps: oe,
230
- menuConfig: e == null ? void 0 : e.menu,
231
- portal: Ie,
232
- portalTarget: Ne
218
+ isOpen: b,
219
+ context: I,
220
+ floatingStyles: Le,
221
+ getFloatingProps: Ee,
222
+ setFloatingRef: K.setFloating,
223
+ options: _,
224
+ selectedValues: Me,
225
+ onSelectMenuOption: ke,
226
+ isSearch: H,
227
+ searchPlaceholder: Q,
228
+ searchInputName: h,
229
+ searchQuery: me,
230
+ onSearchChange: fe,
231
+ belowList: W,
232
+ menuProps: ae,
233
+ menuConfig: e == null ? void 0 : e.menu
233
234
  }
234
235
  )
235
236
  ] }),
236
- !Q && /* @__PURE__ */ S("div", { className: "flex flex-col gap-1.5", children: [
237
- _ && /* @__PURE__ */ l("span", { className: "text-xs font-medium text-foreground/70", children: _ }),
238
- /* @__PURE__ */ l("div", { className: "flex flex-wrap gap-1.5 p-2 min-h-12 bg-secondary/20 border border-dashed border-border rounded-lg items-center", children: i.length === 0 ? /* @__PURE__ */ l("span", { className: "text-xs text-foreground/70 px-2 py-1", children: "No selections made" }) : i.map((r) => /* @__PURE__ */ S(
237
+ !q && /* @__PURE__ */ S("div", { className: "flex flex-col gap-1.5", children: [
238
+ E && /* @__PURE__ */ l("span", { className: "text-xs font-medium text-foreground/70", children: E }),
239
+ /* @__PURE__ */ l("div", { className: "flex flex-wrap gap-1.5 p-2 min-h-12 bg-secondary/20 border border-dashed border-border rounded-lg items-center", children: o.length === 0 ? /* @__PURE__ */ l("span", { className: "text-xs text-foreground/70 px-2 py-1", children: "No selections made" }) : o.map((r) => /* @__PURE__ */ S(
239
240
  We,
240
241
  {
241
242
  variant: "bordered",
242
- color: xe,
243
- size: ye,
244
- isDisabled: u,
245
- className: T(
243
+ color: ve,
244
+ size: xe,
245
+ isDisabled: c,
246
+ className: v(
246
247
  "inline-flex items-center gap-1.5 font-medium shadow-xs",
247
- Ae
248
+ _e
248
249
  ),
249
250
  children: [
250
251
  /* @__PURE__ */ l("span", { children: r.label }),
@@ -252,16 +253,16 @@ const tr = Ge(
252
253
  "button",
253
254
  {
254
255
  type: "button",
255
- tabIndex: u ? -1 : 0,
256
+ tabIndex: c ? -1 : 0,
256
257
  onClick: (t) => {
257
- t.stopPropagation(), u || k(r.value);
258
+ t.stopPropagation(), c || P(r.value);
258
259
  },
259
260
  onKeyDown: (t) => {
260
- (t.key === "Enter" || t.key === " ") && !u && (t.stopPropagation(), k(r.value));
261
+ (t.key === "Enter" || t.key === " ") && !c && (t.stopPropagation(), P(r.value));
261
262
  },
262
263
  "aria-label": `Remove ${r.label}`,
263
264
  className: "inline-flex items-center justify-center h-3.5 w-3.5 rounded-full hover:bg-black/20 dark:hover:bg-white/20 transition-colors cursor-pointer shrink-0",
264
- children: /* @__PURE__ */ l($e, { className: "w-3 h-3" })
265
+ children: /* @__PURE__ */ l(He, { className: "w-3 h-3" })
265
266
  }
266
267
  )
267
268
  ]
@@ -276,7 +277,7 @@ const tr = Ge(
276
277
  );
277
278
  }
278
279
  );
279
- tr.displayName = "MultiSelect";
280
+ sr.displayName = "MultiSelect";
280
281
  export {
281
- tr as MultiSelect
282
+ sr as MultiSelect
282
283
  };
@@ -1,18 +1,18 @@
1
1
  import { Color, Radius, Size, Variant } from '../../shared';
2
- import { FieldConfig } from '../field/field-config';
3
- import { SelectMenuConfig } from '../select-menu';
2
+ import { InputConfig } from '../input';
3
+ import { MenuConfig } from '../select-menu';
4
4
  /**
5
5
  * Theme configuration options for the MultiSelect component.
6
6
  *
7
7
  * Set under `components.multiSelect` in the AsheeUI config. Values feed the
8
8
  * component-level fallback tier of the theme cascade.
9
9
  */
10
- export interface MultiSelectConfig extends FieldConfig {
10
+ export interface MultiSelectConfig extends InputConfig {
11
11
  /**
12
12
  * Configuration for the dropdown menu.
13
13
  * Controls the menu's visual appearance and behavior.
14
14
  */
15
- menu?: SelectMenuConfig;
15
+ menu?: MenuConfig;
16
16
  /**
17
17
  * Configuration for selected value chips.
18
18
  * Controls the appearance of chips in the selected values section.
@@ -35,22 +35,6 @@ export interface MultiSelectConfig extends FieldConfig {
35
35
  */
36
36
  size?: Size;
37
37
  };
38
- /**
39
- * Whether to render the dropdown menu in a React portal.
40
- * When true, the menu is rendered at the document body level,
41
- * escaping any parent DOM hierarchy. This prevents CSS containment
42
- * and stacking context issues. Defaults to true because dropdowns
43
- * should always appear above other content.
44
- *
45
- * @default true
46
- */
47
- portal?: boolean;
48
- /**
49
- * Custom portal target element for the dropdown menu.
50
- * When portal is enabled, the menu is rendered into this element.
51
- * Defaults to document.body.
52
- */
53
- portalTarget?: HTMLElement | null;
54
38
  }
55
39
  /**
56
40
  * Default config values registered for the MultiSelect component.
@@ -69,8 +53,6 @@ export declare const FALLBACK_MULTI_SELECT_CONFIG: {
69
53
  readonly radius: "sm";
70
54
  readonly variant: "solid";
71
55
  };
72
- readonly portal: true;
73
- readonly portalTarget: null;
74
56
  readonly size: import('../field').FieldSizeKey;
75
57
  readonly radius: Radius;
76
58
  readonly variant: Variant;
@@ -1 +1 @@
1
- {"version":3,"file":"multi-select-config.d.ts","sourceRoot":"","sources":["../../../src/components/multi-select/multi-select-config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAGL,KAAK,WAAW,EACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD;;;;;GAKG;AACH,MAAM,WAAW,iBAAkB,SAAQ,WAAW;IACpD;;;OAGG;IACH,IAAI,CAAC,EAAE,gBAAgB,CAAC;IAExB;;;OAGG;IACH,IAAI,CAAC,EAAE;QACL;;WAEG;QACH,OAAO,CAAC,EAAE,OAAO,CAAC;QAElB;;WAEG;QACH,KAAK,CAAC,EAAE,KAAK,CAAC;QAEd;;WAEG;QACH,MAAM,CAAC,EAAE,MAAM,CAAC;QAEhB;;WAEG;QACH,IAAI,CAAC,EAAE,IAAI,CAAC;KACb,CAAC;IAEF;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;;;OAIG;IACH,YAAY,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CACnC;AAED;;;GAGG;AACH,eAAO,MAAM,wBAAwB,EAAE,iBAOtC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;CAU/B,CAAC;AAEX,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,2BAA2B;QACnC,WAAW,EAAE,iBAAiB,CAAC;KAChC;CACF"}
1
+ {"version":3,"file":"multi-select-config.d.ts","sourceRoot":"","sources":["../../../src/components/multi-select/multi-select-config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEjE,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD;;;;;GAKG;AACH,MAAM,WAAW,iBAAkB,SAAQ,WAAW;IACpD;;;OAGG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAElB;;;OAGG;IACH,IAAI,CAAC,EAAE;QACL;;WAEG;QACH,OAAO,CAAC,EAAE,OAAO,CAAC;QAElB;;WAEG;QACH,KAAK,CAAC,EAAE,KAAK,CAAC;QAEd;;WAEG;QACH,MAAM,CAAC,EAAE,MAAM,CAAC;QAEhB;;WAEG;QACH,IAAI,CAAC,EAAE,IAAI,CAAC;KACb,CAAC;CACH;AAED;;;GAGG;AACH,eAAO,MAAM,wBAAwB,EAAE,iBAKtC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;CAQ/B,CAAC;AAEX,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,2BAA2B;QACnC,WAAW,EAAE,iBAAiB,CAAC;KAChC;CACF"}
@@ -1,26 +1,23 @@
1
1
  "use client";
2
2
  import { registerComponentDefaults as t } from "../../libs/registry.js";
3
- import { FALLBACK_FIELD_CONFIG as e, defaultFieldConfig as r } from "../field/field-config.js";
4
- const l = {
5
- ...r,
3
+ import { FALLBACK_FIELD_CONFIG as i } from "../field/field-config.js";
4
+ import { defaultInputConfig as o } from "../input/input-config.js";
5
+ const e = {
6
+ ...o,
6
7
  chip: {
7
8
  size: "sm"
8
- },
9
- portal: !0,
10
- portalTarget: null
11
- }, a = {
12
- ...e,
9
+ }
10
+ }, l = {
11
+ ...i,
13
12
  chip: {
14
13
  size: "sm",
15
14
  color: "primary",
16
15
  radius: "sm",
17
16
  variant: "solid"
18
- },
19
- portal: !0,
20
- portalTarget: null
17
+ }
21
18
  };
22
- t("multiSelect", l);
19
+ t("multiSelect", e);
23
20
  export {
24
- a as FALLBACK_MULTI_SELECT_CONFIG,
25
- l as defaultMultiSelectConfig
21
+ l as FALLBACK_MULTI_SELECT_CONFIG,
22
+ e as defaultMultiSelectConfig
26
23
  };
@@ -1,4 +1,5 @@
1
- import { FieldConfig, FieldSizeKey } from '../field/field-config';
1
+ import { FieldSizeKey } from '../field/field-config';
2
+ import { InputConfig } from '../input';
2
3
  /**
3
4
  * Size key for radio components.
4
5
  * Maps to the FieldSizeKey type: "sm", "md", or "lg".
@@ -16,7 +17,7 @@ export type RadioVariant = "default" | "card";
16
17
  * Set under `components.radio` in the AsheeUI config. Values feed the
17
18
  * component-level fallback tier of the theme cascade.
18
19
  */
19
- export interface RadioConfig extends Omit<FieldConfig, "variant"> {
20
+ export interface RadioConfig extends Omit<InputConfig, "variant"> {
20
21
  /**
21
22
  * Visual style variant.
22
23
  * Controls whether the radio appears as a standard button or a card.
@@ -1 +1 @@
1
- {"version":3,"file":"radio-config.d.ts","sourceRoot":"","sources":["../../../src/components/radio/radio-config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,YAAY,EAClB,MAAM,uBAAuB,CAAC;AAE/B;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,YAAY,CAAC;AAExC;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,MAAM,CAAC;AAE9C;;;;;GAKG;AACH,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC;IAC/D;;;;;OAKG;IACH,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,WAIhC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;CAIxB,CAAC;AAEX,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,2BAA2B;QACnC,KAAK,EAAE,WAAW,CAAC;KACpB;CACF"}
1
+ {"version":3,"file":"radio-config.d.ts","sourceRoot":"","sources":["../../../src/components/radio/radio-config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAEL,KAAK,YAAY,EAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAEhE;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,YAAY,CAAC;AAExC;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,MAAM,CAAC;AAE9C;;;;;GAKG;AACH,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC;IAC/D;;;;;OAKG;IACH,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,WAIhC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;CAIxB,CAAC;AAEX,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,2BAA2B;QACnC,KAAK,EAAE,WAAW,CAAC;KACpB;CACF"}
@@ -1,17 +1,18 @@
1
1
  "use client";
2
2
  import { registerComponentDefaults as t } from "../../libs/registry.js";
3
- import { FALLBACK_FIELD_CONFIG as a, defaultFieldConfig as i } from "../field/field-config.js";
4
- const o = {
5
- ...i,
3
+ import { FALLBACK_FIELD_CONFIG as o } from "../field/field-config.js";
4
+ import { defaultInputConfig as r } from "../input/input-config.js";
5
+ const a = {
6
+ ...r,
6
7
  radius: "full",
7
8
  variant: "default"
8
- }, f = {
9
- ...a,
9
+ }, u = {
10
+ ...o,
10
11
  radius: "full",
11
12
  variant: "default"
12
13
  };
13
- t("radio", o);
14
+ t("radio", a);
14
15
  export {
15
- f as FALLBACK_RADIO_CONFIG,
16
- o as defaultRadioConfig
16
+ u as FALLBACK_RADIO_CONFIG,
17
+ a as defaultRadioConfig
17
18
  };