asheeui 0.6.9 → 0.6.12
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/components/accordion/Accordion.js +7 -7
- package/dist/components/autocomplete/Autocomplete.d.ts +5 -5
- package/dist/components/autocomplete/Autocomplete.d.ts.map +1 -1
- package/dist/components/autocomplete/Autocomplete.js +41 -40
- package/dist/components/autocomplete/autocomplete-config.d.ts +2 -2
- package/dist/components/autocomplete/autocomplete-config.d.ts.map +1 -1
- package/dist/components/autocomplete/autocomplete-config.js +7 -6
- package/dist/components/carousel/Carousel.js +43 -43
- package/dist/components/chip/Chip.js +8 -8
- package/dist/components/date-picker/DatePicker.d.ts +6 -5
- package/dist/components/date-picker/DatePicker.d.ts.map +1 -1
- package/dist/components/date-picker/DatePicker.js +87 -87
- package/dist/components/date-picker/date-picker-config.d.ts +3 -2
- package/dist/components/date-picker/date-picker-config.d.ts.map +1 -1
- package/dist/components/date-picker/date-picker-config.js +7 -6
- package/dist/components/marquee/Marquee.js +22 -22
- package/dist/components/multi-select/MultiSelect.d.ts +5 -5
- package/dist/components/multi-select/MultiSelect.d.ts.map +1 -1
- package/dist/components/multi-select/MultiSelect.js +45 -43
- package/dist/components/multi-select/multi-select-config.d.ts +2 -2
- package/dist/components/multi-select/multi-select-config.d.ts.map +1 -1
- package/dist/components/multi-select/multi-select-config.js +8 -7
- package/dist/components/radio/radio-config.d.ts +3 -2
- package/dist/components/radio/radio-config.d.ts.map +1 -1
- package/dist/components/radio/radio-config.js +9 -8
- package/dist/components/select/Select.d.ts +5 -5
- package/dist/components/select/Select.d.ts.map +1 -1
- package/dist/components/select/Select.js +53 -52
- package/dist/components/select/select-config.d.ts +3 -5
- package/dist/components/select/select-config.d.ts.map +1 -1
- package/dist/components/select/select-config.js +7 -6
- package/dist/components/select-menu/SelectMenu.d.ts +15 -3
- package/dist/components/select-menu/SelectMenu.d.ts.map +1 -1
- package/dist/components/select-menu/SelectMenu.js +144 -116
- package/dist/components/select-menu/use-select-floating.d.ts +5 -2
- package/dist/components/select-menu/use-select-floating.d.ts.map +1 -1
- package/dist/components/select-menu/use-select-floating.js +14 -7
- package/dist/components/switch/switch-config.d.ts +3 -2
- package/dist/components/switch/switch-config.d.ts.map +1 -1
- package/dist/components/switch/switch-config.js +6 -5
- package/dist/components/toast/ToastItem.js +30 -30
- package/dist/components/toast/ToastProvider.d.ts +5 -5
- package/dist/components/toast/ToastProvider.d.ts.map +1 -1
- package/dist/components/toast/ToastProvider.js +121 -117
- package/dist/components/toast/toast-styles.d.ts +8 -0
- package/dist/components/toast/toast-styles.d.ts.map +1 -1
- package/dist/components/toast/toast-styles.js +11 -3
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/package.json +3 -20
|
@@ -35,6 +35,17 @@ export interface SelectMenuProps {
|
|
|
35
35
|
* Ref setter for the floating element.
|
|
36
36
|
*/
|
|
37
37
|
setFloatingRef: (node: HTMLElement | null) => void;
|
|
38
|
+
/**
|
|
39
|
+
* Whether the floating element has completed its first position update.
|
|
40
|
+
* When false, the menu stays in the DOM (so Floating UI can measure it)
|
|
41
|
+
* but is hidden (`invisible opacity-0 pointer-events-none`), preventing a
|
|
42
|
+
* visible flash at its initial (0, 0) coordinate. The enter animation
|
|
43
|
+
* classes are only applied once this is true so the reveal and animation
|
|
44
|
+
* start together.
|
|
45
|
+
*
|
|
46
|
+
* @default true
|
|
47
|
+
*/
|
|
48
|
+
isPositioned?: boolean;
|
|
38
49
|
/**
|
|
39
50
|
* Available options to display in the menu.
|
|
40
51
|
*/
|
|
@@ -111,8 +122,8 @@ export interface SelectMenuProps {
|
|
|
111
122
|
* supports custom option rendering, search filtering, and configurable
|
|
112
123
|
* item styles through the cascade resolution system.
|
|
113
124
|
*
|
|
114
|
-
* By default, the menu uses
|
|
115
|
-
* body level. This ensures the menu escapes CSS containment, overflow
|
|
125
|
+
* By default, the menu uses Floating UI's FloatingPortal to render at the
|
|
126
|
+
* document body level. This ensures the menu escapes CSS containment, overflow
|
|
116
127
|
* clipping, and stacking context issues. The portal can be disabled via
|
|
117
128
|
* the `menuProps.portal` prop if the menu needs to stay within a specific
|
|
118
129
|
* parent container. This is typically controlled by the parent component.
|
|
@@ -123,6 +134,7 @@ export interface SelectMenuProps {
|
|
|
123
134
|
* @param props.floatingStyles - CSS styles for positioning.
|
|
124
135
|
* @param props.getFloatingProps - Props getter for the floating element.
|
|
125
136
|
* @param props.setFloatingRef - Ref setter for the floating element.
|
|
137
|
+
* @param props.isPositioned - Whether the floating element has been positioned by Floating UI. Defaults to true.
|
|
126
138
|
* @param props.options - Available options to display.
|
|
127
139
|
* @param props.selectedValues - Currently selected values.
|
|
128
140
|
* @param props.onSelectMenuOption - Callback fired when an option is selected.
|
|
@@ -179,7 +191,7 @@ export interface SelectMenuProps {
|
|
|
179
191
|
* @see Button - The button component used for menu items.
|
|
180
192
|
*/
|
|
181
193
|
export declare const SelectMenu: {
|
|
182
|
-
({ isOpen, context, floatingStyles, getFloatingProps, setFloatingRef, options, selectedValues, onSelectMenuOption, isSearch, searchPlaceholder, searchInputName, searchQuery, onSearchChange, belowList, menuConfig, menuProps, renderOption, initialFocus, returnFocus, }: SelectMenuProps): import("react").JSX.Element | null;
|
|
194
|
+
({ isOpen, context, floatingStyles, getFloatingProps, setFloatingRef, isPositioned, options, selectedValues, onSelectMenuOption, isSearch, searchPlaceholder, searchInputName, searchQuery, onSearchChange, belowList, menuConfig, menuProps, renderOption, initialFocus, returnFocus, }: SelectMenuProps): import("react").JSX.Element | null;
|
|
183
195
|
displayName: string;
|
|
184
196
|
};
|
|
185
197
|
//# sourceMappingURL=SelectMenu.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectMenu.d.ts","sourceRoot":"","sources":["../../../src/components/select-menu/SelectMenu.tsx"],"names":[],"mappings":"AAUA,OAAO,
|
|
1
|
+
{"version":3,"file":"SelectMenu.d.ts","sourceRoot":"","sources":["../../../src/components/select-menu/SelectMenu.tsx"],"names":[],"mappings":"AAUA,OAAO,EACL,KAAK,eAAe,EAGrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAGL,KAAK,SAAS,EAIf,MAAM,OAAO,CAAC;AASf,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,gBAAgB,EACtB,MAAM,sBAAsB,CAAC;AAE9B;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG;IACnC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,OAAO,EAAE,eAAe,CAAC;IAEzB;;OAEG;IACH,cAAc,EAAE,KAAK,CAAC,aAAa,CAAC;IAEpC;;OAEG;IACH,gBAAgB,EAAE,CAChB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAChC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE7B;;OAEG;IACH,cAAc,EAAE,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;IAEnD;;;;;;;;;OASG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAE5B;;;OAGG;IACH,cAAc,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAErC;;;OAGG;IACH,kBAAkB,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAEvD;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAEzC;;OAEG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB;;OAEG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IAExB;;;OAGG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,OAAO,KAAK,SAAS,CAAC;IAE5E;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAErD;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAkFD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8EG;AACH,eAAO,MAAM,UAAU;8RAqBpB,eAAe;;CAwMjB,CAAC"}
|
|
@@ -1,161 +1,189 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsx as
|
|
3
|
-
import { FloatingFocusManager as X } from "@floating-ui/react";
|
|
4
|
-
import { useState as
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
2
|
+
import { jsx as l, jsxs as Q, Fragment as J } from "react/jsx-runtime";
|
|
3
|
+
import { FloatingFocusManager as X, FloatingPortal as Y } from "@floating-ui/react";
|
|
4
|
+
import { useState as Z, useEffect as $, useMemo as u, memo as m } from "react";
|
|
5
|
+
import { CheckIcon as p } from "../../icons/CheckIcon.js";
|
|
6
|
+
import { SearchIcon as C } from "../../icons/SearchIcon.js";
|
|
7
|
+
import { useAsheeConfig as g } from "../../libs/context.js";
|
|
8
|
+
import { resolveCascade as o, resolveRadiusKey as P } from "../../utils/resolve-token.js";
|
|
9
|
+
import { Button as tt } from "../button/Button.js";
|
|
10
|
+
import { Input as et } from "../input/Input.js";
|
|
11
|
+
import { FALLBACK_SELECT_MENU_CONFIG as c } from "./select-menu-config.js";
|
|
12
|
+
import { cn as lt } from "../../utils/cn.js";
|
|
13
|
+
const rt = m(function({
|
|
14
|
+
filteredOptions: y,
|
|
15
|
+
selectedValues: w,
|
|
16
|
+
onSelectMenuOption: I,
|
|
17
|
+
renderOption: b,
|
|
18
|
+
itemVariant: N,
|
|
19
|
+
itemColor: i,
|
|
20
|
+
activeItemVariant: S,
|
|
21
|
+
activeItemColor: V,
|
|
22
|
+
radius: s,
|
|
23
|
+
size: f
|
|
24
|
+
}) {
|
|
25
|
+
const k = (r) => w.includes(r);
|
|
26
|
+
return y.length === 0 ? /* @__PURE__ */ l("div", { className: "px-3 py-4 text-xs text-foreground/70 text-center", children: "No options found" }) : /* @__PURE__ */ l(J, { children: y.map((r) => {
|
|
27
|
+
const d = k(r.value);
|
|
28
|
+
return b ? b(r, d) : /* @__PURE__ */ Q(
|
|
29
|
+
tt,
|
|
30
|
+
{
|
|
31
|
+
variant: d ? S : N,
|
|
32
|
+
color: d ? V : i,
|
|
33
|
+
radius: s,
|
|
34
|
+
size: f,
|
|
35
|
+
isDisabled: r.disabled,
|
|
36
|
+
onClick: () => I(r),
|
|
37
|
+
className: "w-full justify-between font-normal text-left transition-colors truncate",
|
|
38
|
+
children: [
|
|
39
|
+
/* @__PURE__ */ l("span", { children: r.label }),
|
|
40
|
+
d && /* @__PURE__ */ l(p, { className: "w-3.5 h-3.5 shrink-0 ml-2" })
|
|
41
|
+
]
|
|
42
|
+
},
|
|
43
|
+
String(r.value)
|
|
44
|
+
);
|
|
45
|
+
}) });
|
|
46
|
+
}), at = ({
|
|
47
|
+
isOpen: v,
|
|
48
|
+
context: y,
|
|
49
|
+
floatingStyles: w,
|
|
50
|
+
getFloatingProps: I,
|
|
51
|
+
setFloatingRef: b,
|
|
52
|
+
isPositioned: N = !0,
|
|
53
|
+
options: i = [],
|
|
54
|
+
selectedValues: S = [],
|
|
55
|
+
onSelectMenuOption: V,
|
|
56
|
+
isSearch: s = !0,
|
|
57
|
+
searchPlaceholder: f = "Search...",
|
|
58
|
+
searchInputName: k = "select-menu-search",
|
|
59
|
+
searchQuery: r,
|
|
60
|
+
onSearchChange: d,
|
|
61
|
+
belowList: z,
|
|
62
|
+
menuConfig: e,
|
|
30
63
|
menuProps: t = {},
|
|
31
|
-
renderOption:
|
|
32
|
-
initialFocus:
|
|
33
|
-
returnFocus:
|
|
64
|
+
renderOption: T,
|
|
65
|
+
initialFocus: j,
|
|
66
|
+
returnFocus: K
|
|
34
67
|
}) => {
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
},
|
|
68
|
+
const h = g(), [R, _] = Z(""), x = r ?? R, n = (a) => {
|
|
69
|
+
d ? d(a) : _(a);
|
|
70
|
+
}, F = o(
|
|
38
71
|
t == null ? void 0 : t.lockScroll,
|
|
39
|
-
|
|
72
|
+
e == null ? void 0 : e.lockScroll,
|
|
40
73
|
void 0,
|
|
41
|
-
|
|
42
|
-
),
|
|
74
|
+
c.lockScroll
|
|
75
|
+
), B = o(
|
|
43
76
|
t == null ? void 0 : t.portal,
|
|
44
|
-
|
|
77
|
+
e == null ? void 0 : e.portal,
|
|
45
78
|
void 0,
|
|
46
|
-
|
|
47
|
-
),
|
|
79
|
+
c.portal
|
|
80
|
+
), O = o(
|
|
48
81
|
t == null ? void 0 : t.portalTarget,
|
|
49
|
-
|
|
82
|
+
e == null ? void 0 : e.portalTarget,
|
|
50
83
|
void 0,
|
|
51
84
|
typeof document < "u" ? document.body : null
|
|
52
85
|
);
|
|
53
|
-
|
|
54
|
-
if (!
|
|
55
|
-
const
|
|
86
|
+
$(() => {
|
|
87
|
+
if (!v || !F) return;
|
|
88
|
+
const a = document.body.style.overflow, q = document.body.style.position, H = document.body.style.width;
|
|
56
89
|
return document.body.style.overflow = "hidden", document.body.style.position = "fixed", document.body.style.width = "100%", () => {
|
|
57
|
-
document.body.style.overflow =
|
|
90
|
+
document.body.style.overflow = a, document.body.style.position = q, document.body.style.width = H;
|
|
58
91
|
};
|
|
59
|
-
}, [
|
|
60
|
-
const
|
|
61
|
-
(
|
|
62
|
-
), [
|
|
92
|
+
}, [v, F]);
|
|
93
|
+
const D = u(() => !s || !x.trim() ? i : i.filter(
|
|
94
|
+
(a) => a.label.toLowerCase().includes(x.toLowerCase())
|
|
95
|
+
), [i, s, x]), G = o(
|
|
63
96
|
t == null ? void 0 : t.itemVariant,
|
|
64
|
-
|
|
97
|
+
e == null ? void 0 : e.itemVariant,
|
|
65
98
|
void 0,
|
|
66
|
-
|
|
67
|
-
),
|
|
99
|
+
c.itemVariant
|
|
100
|
+
), L = o(
|
|
68
101
|
t == null ? void 0 : t.itemColor,
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
),
|
|
102
|
+
e == null ? void 0 : e.itemColor,
|
|
103
|
+
h.defaultColor,
|
|
104
|
+
c.itemColor
|
|
105
|
+
), U = o(
|
|
73
106
|
t == null ? void 0 : t.activeItemVariant,
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
),
|
|
107
|
+
e == null ? void 0 : e.activeItemVariant,
|
|
108
|
+
h.defaultVariant,
|
|
109
|
+
c.activeItemVariant
|
|
110
|
+
), W = o(
|
|
78
111
|
t == null ? void 0 : t.activeItemColor,
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
),
|
|
112
|
+
e == null ? void 0 : e.activeItemColor,
|
|
113
|
+
h.defaultColor,
|
|
114
|
+
c.activeItemColor
|
|
115
|
+
), M = P(
|
|
83
116
|
t == null ? void 0 : t.radius,
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
),
|
|
117
|
+
e == null ? void 0 : e.radius,
|
|
118
|
+
h.defaultRadius,
|
|
119
|
+
c.radius
|
|
120
|
+
), A = o(
|
|
88
121
|
t == null ? void 0 : t.size,
|
|
89
|
-
|
|
122
|
+
e == null ? void 0 : e.size,
|
|
90
123
|
void 0,
|
|
91
|
-
|
|
124
|
+
c.size
|
|
92
125
|
);
|
|
93
|
-
if (!
|
|
94
|
-
const
|
|
126
|
+
if (!v) return null;
|
|
127
|
+
const E = /* @__PURE__ */ l(
|
|
95
128
|
X,
|
|
96
129
|
{
|
|
97
|
-
context:
|
|
130
|
+
context: y,
|
|
98
131
|
modal: !1,
|
|
99
|
-
initialFocus:
|
|
100
|
-
returnFocus:
|
|
101
|
-
children: /* @__PURE__ */
|
|
132
|
+
initialFocus: j,
|
|
133
|
+
returnFocus: K,
|
|
134
|
+
children: /* @__PURE__ */ Q(
|
|
102
135
|
"div",
|
|
103
136
|
{
|
|
104
|
-
ref:
|
|
105
|
-
style: { ...
|
|
106
|
-
className:
|
|
107
|
-
"z-
|
|
108
|
-
"animate-in fade-in-0 zoom-in-95 slide-in-from-top-1 duration-150 ease-out",
|
|
137
|
+
ref: b,
|
|
138
|
+
style: { ...w },
|
|
139
|
+
className: lt(
|
|
140
|
+
"z-30 w-full outline-none max-h-60 shadow-xl bg-background border border-border p-1 flex flex-col gap-0.5 overflow-y-auto scrollable-hidden",
|
|
141
|
+
N ? "animate-in fade-in-0 zoom-in-95 slide-in-from-top-1 duration-150 ease-out" : "invisible opacity-0 pointer-events-none",
|
|
109
142
|
t == null ? void 0 : t.className
|
|
110
143
|
),
|
|
111
|
-
...
|
|
144
|
+
...I(),
|
|
112
145
|
children: [
|
|
113
|
-
|
|
114
|
-
|
|
146
|
+
s && /* @__PURE__ */ l("div", { className: "w-full p-1 mb-1 sticky top-0 z-10 border-b border-border", children: /* @__PURE__ */ l(
|
|
147
|
+
et,
|
|
115
148
|
{
|
|
116
|
-
name:
|
|
149
|
+
name: k,
|
|
117
150
|
type: "text",
|
|
118
151
|
variant: "bordered",
|
|
119
|
-
radius:
|
|
120
|
-
color:
|
|
121
|
-
size:
|
|
122
|
-
value:
|
|
123
|
-
onChange: (
|
|
124
|
-
startContent: /* @__PURE__ */
|
|
125
|
-
placeholder:
|
|
152
|
+
radius: M,
|
|
153
|
+
color: L,
|
|
154
|
+
size: A,
|
|
155
|
+
value: x,
|
|
156
|
+
onChange: (a) => n(a.target.value),
|
|
157
|
+
startContent: /* @__PURE__ */ l(C, { className: "w-3.5 h-3.5 text-foreground/70" }),
|
|
158
|
+
placeholder: f,
|
|
126
159
|
autoFocus: !0,
|
|
127
160
|
className: "w-full pl-8 h-8 text-xs bg-secondary/30 border-none focus-visible:ring-0"
|
|
128
161
|
}
|
|
129
162
|
) }),
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
},
|
|
147
|
-
String(e.value)
|
|
148
|
-
);
|
|
149
|
-
}),
|
|
150
|
-
h && /* @__PURE__ */ a("div", { className: "border-t border-border pt-1 mt-1", children: h })
|
|
163
|
+
/* @__PURE__ */ l(
|
|
164
|
+
rt,
|
|
165
|
+
{
|
|
166
|
+
filteredOptions: D,
|
|
167
|
+
selectedValues: S,
|
|
168
|
+
onSelectMenuOption: V,
|
|
169
|
+
renderOption: T,
|
|
170
|
+
itemVariant: G,
|
|
171
|
+
itemColor: L,
|
|
172
|
+
activeItemVariant: U,
|
|
173
|
+
activeItemColor: W,
|
|
174
|
+
radius: M,
|
|
175
|
+
size: A
|
|
176
|
+
}
|
|
177
|
+
),
|
|
178
|
+
z && /* @__PURE__ */ l("div", { className: "border-t border-border pt-1 mt-1", children: z })
|
|
151
179
|
]
|
|
152
180
|
}
|
|
153
181
|
)
|
|
154
182
|
}
|
|
155
183
|
);
|
|
156
|
-
return
|
|
184
|
+
return B ? /* @__PURE__ */ l(Y, { root: O, children: E }) : E;
|
|
157
185
|
};
|
|
158
|
-
|
|
186
|
+
at.displayName = "SelectMenu";
|
|
159
187
|
export {
|
|
160
|
-
|
|
188
|
+
at as SelectMenu
|
|
161
189
|
};
|
|
@@ -56,7 +56,9 @@ export interface UseSelectFloatingProps {
|
|
|
56
56
|
* This hook configures Floating UI with sensible defaults for dropdown
|
|
57
57
|
* components. It handles automatic position updates, viewport edge detection
|
|
58
58
|
* via flip and shift middleware, and optional width matching of the
|
|
59
|
-
* reference element.
|
|
59
|
+
* reference element. Positioning uses `strategy: "fixed"` with Floating
|
|
60
|
+
* UI's event-driven `autoUpdate` tracking so portaled menus stay aligned
|
|
61
|
+
* while the page scrolls without paying per-frame re-render cost.
|
|
60
62
|
*
|
|
61
63
|
* @param props - Configuration options for the floating element.
|
|
62
64
|
* @param props.isOpen - Whether the floating element is open.
|
|
@@ -66,7 +68,8 @@ export interface UseSelectFloatingProps {
|
|
|
66
68
|
* @param props.offsetDistance - Distance from reference in pixels. Defaults to 4.
|
|
67
69
|
* @param props.padding - Viewport padding for shift middleware. Defaults to 8.
|
|
68
70
|
* @param props.matchReferenceWidth - Whether to match reference width. Defaults to true.
|
|
69
|
-
* @returns The Floating UI context including refs, styles, and
|
|
71
|
+
* @returns The Floating UI context including refs, styles, middleware, and
|
|
72
|
+
* the `isPositioned` flag for gating initial-render visibility.
|
|
70
73
|
*
|
|
71
74
|
* @example
|
|
72
75
|
* ```tsx
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-select-floating.d.ts","sourceRoot":"","sources":["../../../src/components/select-menu/use-select-floating.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"use-select-floating.d.ts","sourceRoot":"","sources":["../../../src/components/select-menu/use-select-floating.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,EAKL,KAAK,SAAS,EAEd,KAAK,iBAAiB,EAEvB,MAAM,oBAAoB,CAAC;AAE5B;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,MAAM,EAAE,OAAO,CAAC;IAEhB;;;OAGG;IACH,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAEtC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,EAAE,EACrE,MAAM,EACN,YAAY,EACZ,QAAgB,EAChB,SAA0B,EAC1B,cAAkB,EAClB,OAAW,EACX,mBAA0B,GAC3B,EAAE,sBAAsB,GAAG,iBAAiB,CAAC,CAAC,CAAC,CA6B/C"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { useFloating as
|
|
2
|
+
import { useFloating as f, autoUpdate as p, offset as g, flip as u, shift as d, size as c } from "@floating-ui/react";
|
|
3
3
|
function m({
|
|
4
4
|
isOpen: i,
|
|
5
5
|
onOpenChange: n,
|
|
@@ -7,22 +7,29 @@ function m({
|
|
|
7
7
|
placement: a = "bottom-start",
|
|
8
8
|
offsetDistance: l = 4,
|
|
9
9
|
padding: s = 8,
|
|
10
|
-
matchReferenceWidth:
|
|
10
|
+
matchReferenceWidth: r = !0
|
|
11
11
|
}) {
|
|
12
|
-
return
|
|
12
|
+
return f({
|
|
13
13
|
open: i,
|
|
14
14
|
onOpenChange: (e) => !o && n(e),
|
|
15
15
|
placement: a,
|
|
16
|
-
|
|
16
|
+
strategy: "fixed",
|
|
17
|
+
// Event-driven tracking (ancestorScroll + ancestorResize, both on by
|
|
18
|
+
// default) is sufficient to keep a fixed-strategy floating element
|
|
19
|
+
// aligned during scroll, and far cheaper than polling every animation
|
|
20
|
+
// frame. animationFrame:true doesn't fix scroll lag on its own — the
|
|
21
|
+
// actual cost was re-rendering the option list on every tick; see
|
|
22
|
+
// SelectMenuOptionsList in SelectMenu.tsx.
|
|
23
|
+
whileElementsMounted: p,
|
|
17
24
|
middleware: [
|
|
18
|
-
|
|
19
|
-
|
|
25
|
+
g(l),
|
|
26
|
+
u(),
|
|
20
27
|
d({ padding: s }),
|
|
21
28
|
c({
|
|
22
29
|
apply({ availableHeight: e, elements: t }) {
|
|
23
30
|
Object.assign(t.floating.style, {
|
|
24
31
|
maxHeight: `${e}px`,
|
|
25
|
-
...
|
|
32
|
+
...r && {
|
|
26
33
|
width: `${t.reference.getBoundingClientRect().width}px`
|
|
27
34
|
}
|
|
28
35
|
});
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FieldSizeKey } from '../field/field-config';
|
|
2
|
+
import { InputConfig } from '../input';
|
|
2
3
|
/**
|
|
3
4
|
* Size key for the switch component.
|
|
4
5
|
* Maps to the FieldSizeKey type: "sm", "md", or "lg".
|
|
@@ -10,7 +11,7 @@ export type SwitchSizeKey = FieldSizeKey;
|
|
|
10
11
|
* Set under `components.switch` in the AsheeUI config. Values feed the
|
|
11
12
|
* component-level fallback tier of the theme cascade.
|
|
12
13
|
*/
|
|
13
|
-
export interface SwitchConfig extends
|
|
14
|
+
export interface SwitchConfig extends InputConfig {
|
|
14
15
|
}
|
|
15
16
|
/**
|
|
16
17
|
* Default config values registered for the Switch component.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"switch-config.d.ts","sourceRoot":"","sources":["../../../src/components/switch/switch-config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,
|
|
1
|
+
{"version":3,"file":"switch-config.d.ts","sourceRoot":"","sources":["../../../src/components/switch/switch-config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAEL,KAAK,YAAY,EAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAEhE;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,YAAY,CAAC;AAEzC;;;;;GAKG;AACH,MAAM,WAAW,YAAa,SAAQ,WAAW;CAAG;AAEpD;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,YAGjC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,YAAY,CACnC,CAAC;AAExB,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,2BAA2B;QACnC,MAAM,EAAE,YAAY,CAAC;KACtB;CACF"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { registerComponentDefaults as t } from "../../libs/registry.js";
|
|
3
|
-
import { FALLBACK_FIELD_CONFIG as o
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
import { FALLBACK_FIELD_CONFIG as o } from "../field/field-config.js";
|
|
4
|
+
import { defaultInputConfig as i } from "../input/input-config.js";
|
|
5
|
+
const r = {
|
|
6
|
+
...i,
|
|
6
7
|
radius: "full"
|
|
7
8
|
}, C = o;
|
|
8
|
-
t("switch",
|
|
9
|
+
t("switch", r);
|
|
9
10
|
export {
|
|
10
11
|
C as FALLBACK_SWITCH_CONFIG,
|
|
11
|
-
|
|
12
|
+
r as defaultSwitchConfig
|
|
12
13
|
};
|
|
@@ -12,7 +12,7 @@ import { FALLBACK_TOAST_CONFIG as n } from "./toast-config.js";
|
|
|
12
12
|
import { TOAST_WIDTH_CLASS as V, TOAST_PADDING_CLASS as q, TOAST_FONT_CLASS as J, TOAST_TITLE_FONT_CLASS as Q, TOAST_ANIMATION_STATE as X } from "./toast-styles.js";
|
|
13
13
|
import { usePausableTimeout as Y } from "./use-pausable-timeout.js";
|
|
14
14
|
import { RADIUS_CLASS as Z } from "../../shared/radius.js";
|
|
15
|
-
import { cn as
|
|
15
|
+
import { cn as t } from "../../utils/cn.js";
|
|
16
16
|
import { resolveVariantClass as $ } from "../../shared/variant.js";
|
|
17
17
|
function ee(r = "info") {
|
|
18
18
|
switch (r) {
|
|
@@ -28,47 +28,47 @@ function ee(r = "info") {
|
|
|
28
28
|
return "secondary";
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
|
-
function re(r = "info",
|
|
32
|
-
const o =
|
|
31
|
+
function re(r = "info", s = !1) {
|
|
32
|
+
const o = t("w-5 h-5", s && "text-current");
|
|
33
33
|
switch (r) {
|
|
34
34
|
case "success":
|
|
35
|
-
return /* @__PURE__ */ e(P, { className:
|
|
35
|
+
return /* @__PURE__ */ e(P, { className: t(o, !s && "text-success") });
|
|
36
36
|
case "error":
|
|
37
|
-
return /* @__PURE__ */ e(z, { className:
|
|
37
|
+
return /* @__PURE__ */ e(z, { className: t(o, !s && "text-danger") });
|
|
38
38
|
case "warning":
|
|
39
|
-
return /* @__PURE__ */ e(H, { className:
|
|
39
|
+
return /* @__PURE__ */ e(H, { className: t(o, !s && "text-warning") });
|
|
40
40
|
default:
|
|
41
|
-
return /* @__PURE__ */ e(B, { className:
|
|
41
|
+
return /* @__PURE__ */ e(B, { className: t(o, !s && "text-primary") });
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
|
-
function
|
|
44
|
+
function se({
|
|
45
45
|
id: r,
|
|
46
|
-
title:
|
|
46
|
+
title: s,
|
|
47
47
|
message: o,
|
|
48
48
|
type: u = "info",
|
|
49
49
|
timeout: v = 3500,
|
|
50
50
|
icon: A,
|
|
51
|
-
action:
|
|
51
|
+
action: d,
|
|
52
52
|
dismissible: N = !0,
|
|
53
53
|
onDismiss: c,
|
|
54
54
|
placement: x,
|
|
55
55
|
size: i,
|
|
56
|
-
variant:
|
|
57
|
-
color:
|
|
58
|
-
radius:
|
|
59
|
-
animated:
|
|
56
|
+
variant: f,
|
|
57
|
+
color: b,
|
|
58
|
+
radius: I,
|
|
59
|
+
animated: p
|
|
60
60
|
}) {
|
|
61
61
|
var h;
|
|
62
|
-
const l = (h = R().components) == null ? void 0 : h.toast, [m,
|
|
63
|
-
|
|
62
|
+
const l = (h = R().components) == null ? void 0 : h.toast, [m, S] = G(!1), g = U(
|
|
63
|
+
p,
|
|
64
64
|
l == null ? void 0 : l.animated,
|
|
65
65
|
void 0,
|
|
66
66
|
n.animated
|
|
67
67
|
), w = K(() => {
|
|
68
|
-
g && !m ? (
|
|
68
|
+
g && !m ? (S(!0), setTimeout(() => {
|
|
69
69
|
c(r);
|
|
70
70
|
}, 150)) : c(r);
|
|
71
|
-
}, [g, m, c, r]), { pause: _, resume: k } = Y(w, v), O =
|
|
71
|
+
}, [g, m, c, r]), { pause: _, resume: k } = Y(w, v), O = b ?? ee(u), y = f === "solid", L = a(
|
|
72
72
|
i,
|
|
73
73
|
V,
|
|
74
74
|
n.size
|
|
@@ -85,48 +85,48 @@ function te({
|
|
|
85
85
|
Q,
|
|
86
86
|
n.size
|
|
87
87
|
), M = a(
|
|
88
|
-
|
|
88
|
+
I,
|
|
89
89
|
Z,
|
|
90
90
|
n.radius
|
|
91
|
-
), T = X[x], j =
|
|
91
|
+
), T = X[x], j = p ? m ? T.exit : T.enter : "";
|
|
92
92
|
return /* @__PURE__ */ C(
|
|
93
93
|
"div",
|
|
94
94
|
{
|
|
95
95
|
onMouseEnter: _,
|
|
96
96
|
onMouseLeave: k,
|
|
97
|
-
className:
|
|
98
|
-
"pointer-events-auto relative flex gap-3 items-start shadow-lg border backdrop-blur-md select-none overflow-
|
|
97
|
+
className: t(
|
|
98
|
+
"pointer-events-auto relative flex gap-3 items-start shadow-lg border backdrop-blur-md select-none scrollbar-hide overflow-hidden transition-all duration-200 active:scale-[0.99]",
|
|
99
99
|
"bg-background",
|
|
100
100
|
L,
|
|
101
101
|
E,
|
|
102
102
|
M,
|
|
103
103
|
j,
|
|
104
|
-
$(
|
|
104
|
+
$(f, O)
|
|
105
105
|
),
|
|
106
106
|
children: [
|
|
107
107
|
/* @__PURE__ */ e("div", { className: "shrink-0 pt-0.5 ps-1", children: A ?? re(u, y) }),
|
|
108
108
|
/* @__PURE__ */ C("div", { className: "flex-1 min-w-0 flex flex-col gap-0.5", children: [
|
|
109
|
-
|
|
109
|
+
s && /* @__PURE__ */ e(
|
|
110
110
|
"span",
|
|
111
111
|
{
|
|
112
|
-
className:
|
|
112
|
+
className: t(
|
|
113
113
|
"leading-tight truncate text-current",
|
|
114
114
|
D
|
|
115
115
|
),
|
|
116
|
-
children:
|
|
116
|
+
children: s
|
|
117
117
|
}
|
|
118
118
|
),
|
|
119
119
|
/* @__PURE__ */ e(
|
|
120
120
|
"div",
|
|
121
121
|
{
|
|
122
|
-
className:
|
|
122
|
+
className: t(
|
|
123
123
|
"leading-snug wrap-break-word opacity-90 text-current",
|
|
124
124
|
F
|
|
125
125
|
),
|
|
126
126
|
children: o
|
|
127
127
|
}
|
|
128
128
|
),
|
|
129
|
-
|
|
129
|
+
d && /* @__PURE__ */ e("div", { className: "mt-2 flex items-center gap-2", children: d })
|
|
130
130
|
] }),
|
|
131
131
|
N && /* @__PURE__ */ e(
|
|
132
132
|
"button",
|
|
@@ -142,7 +142,7 @@ function te({
|
|
|
142
142
|
}
|
|
143
143
|
);
|
|
144
144
|
}
|
|
145
|
-
|
|
145
|
+
se.displayName = "ToastItem";
|
|
146
146
|
export {
|
|
147
|
-
|
|
147
|
+
se as ToastItem
|
|
148
148
|
};
|
|
@@ -29,11 +29,11 @@ export interface ToastProviderProps extends ToastConfig {
|
|
|
29
29
|
* own size, placement, variant, radius, and animation settings via the
|
|
30
30
|
* toast options.
|
|
31
31
|
*
|
|
32
|
-
* The provider uses
|
|
33
|
-
* body level by default. This ensures toasts escape CSS containment,
|
|
34
|
-
* stacking context, and overflow issues. Portaling can be disabled via
|
|
35
|
-
*
|
|
36
|
-
*
|
|
32
|
+
* The provider uses Floating UI's FloatingPortal to render toasts at the
|
|
33
|
+
* document body level by default. This ensures toasts escape CSS containment,
|
|
34
|
+
* stacking context, and overflow issues. Portaling can be disabled via the
|
|
35
|
+
* `portal` config option if the toasts need to stay within a specific parent
|
|
36
|
+
* container.
|
|
37
37
|
*
|
|
38
38
|
* @param props - ToastProvider configuration options.
|
|
39
39
|
* @param props.children - Child components.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToastProvider.d.ts","sourceRoot":"","sources":["../../../src/components/toast/ToastProvider.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ToastProvider.d.ts","sourceRoot":"","sources":["../../../src/components/toast/ToastProvider.tsx"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,SAAS,EAAkC,MAAM,OAAO,CAAC;AAOvE,OAAO,EAEL,KAAK,WAAW,EAIjB,MAAM,gBAAgB,CAAC;AAKxB;;;GAGG;AACH,MAAM,WAAW,kBAAmB,SAAQ,WAAW;IACrD;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IAEpB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;OAIG;IACH,YAAY,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CACnC;AAID;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyEG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,IAAI,EACJ,SAAS,EACT,OAAO,EACP,MAAM,EACN,cAAc,EACd,SAAS,EACT,QAAQ,EACR,MAAM,EAAE,UAAU,EAClB,YAAY,EAAE,gBAAgB,EAC9B,SAAS,GACV,EAAE,kBAAkB,+BA+QpB"}
|