@astroapps/aria-base 1.5.0 → 1.6.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,4 +1,9 @@
1
- {"kind":"O","text":"Invoking: rimraf ./lib/ && microbundle -f cjs --no-compress --jsx React.createElement --jsxFragment React.Fragment \n"}
1
+ {"kind":"O","text":"Invoking: rimraf ./lib/ && microbundle -f modern,cjs --no-compress --jsx React.createElement --jsxFragment React.Fragment \n"}
2
+ {"kind":"E","text":"Browserslist: browsers data (caniuse-lite) is 10 months old. Please run:\n"}
3
+ {"kind":"E","text":" npx update-browserslist-db@latest\n"}
4
+ {"kind":"E","text":" Why you should do it regularly: https://github.com/browserslist/update-db#readme\n"}
2
5
  {"kind":"O","text":"Build \"@astroapps/aria-base\" to lib:\n"}
3
- {"kind":"O","text":" 4.24 kB: index.js.gz\n"}
4
- {"kind":"O","text":" 3.74 kB: index.js.br\n"}
6
+ {"kind":"O","text":" 4.08 kB: index.cjs.gz\n"}
7
+ {"kind":"O","text":" 3.6 kB: index.cjs.br\n"}
8
+ {"kind":"O","text":" 3.72 kB: index.js.gz\n"}
9
+ {"kind":"O","text":" 3.29 kB: index.js.br\n"}
@@ -1,4 +1,4 @@
1
1
  {"kind":"O","text":"Invoking: microbundle -f cjs --no-compress --jsx React.createElement --jsxFragment React.Fragment \n"}
2
2
  {"kind":"O","text":"Build \"@astroapps/aria-base\" to lib:\n"}
3
- {"kind":"O","text":" 1.96 kB: index.js.gz\n"}
4
- {"kind":"O","text":" 1.74 kB: index.js.br\n"}
3
+ {"kind":"O","text":" 4.08 kB: index.js.gz\n"}
4
+ {"kind":"O","text":" 3.6 kB: index.js.br\n"}
@@ -1,13 +1,17 @@
1
1
  {
2
2
  "files": {
3
3
  "aria-base/.gitignore": "156241724887e3ef040825a232e1bd515038746d",
4
- "aria-base/.rush/temp/shrinkwrap-deps.json": "da3a72516bb7a8d346da0fffd5a66f25e01f458c",
5
- "aria-base/package.json": "ae5216f1dbd65782310dd27f24405a913b5905c4",
6
- "aria-base/src/Button.tsx": "fa6888b7d637d1e623e776fef7d6bcdac5ace6dd",
4
+ "aria-base/.rush/temp/shrinkwrap-deps.json": "de940888bab536594bc6469db26c195eab3ae304",
5
+ "aria-base/package.json": "f71bf273fd4397bbc147077343856c4e47776cc9",
6
+ "aria-base/src/Button.tsx": "0341d7116b892b6366e466bc21b88da321b6ca8b",
7
7
  "aria-base/src/Dialog.tsx": "1137029c353257392001d44d234a5bd9518695f9",
8
- "aria-base/src/Modal.tsx": "fcebffb554ca5a5e215f72f9c6899c68a58adda1",
9
- "aria-base/src/Popover.tsx": "e33bc23ad4dded95d11c34e5fbab5843b5c328ba",
10
- "aria-base/src/index.ts": "25a609cbf39360a6635c1eae5e8c3076a73b78de",
8
+ "aria-base/src/Field.tsx": "48663537b8fd8e30d3ea0f203d93b38e74be82d7",
9
+ "aria-base/src/ListBox.tsx": "ed2bc6d470fc3053a77690c3e5efd2e22484610a",
10
+ "aria-base/src/Modal.tsx": "feacf94320c48175d0f13df98bf6599ec064f40d",
11
+ "aria-base/src/Popover.tsx": "7cac43d55839e833144ccbc4829d0ae4596db5b5",
12
+ "aria-base/src/Select.tsx": "ef4a0eaf3d7b960d81308f5d50013f9e6ae9a859",
13
+ "aria-base/src/index.ts": "b00ace17a1bce7d3895cb24b85c317ec5352152e",
14
+ "aria-base/src/utils.ts": "864a06553f2e5e633f151376cc2b31491c96d418",
11
15
  "aria-base/tsconfig.json": "e53823dd1b33dedc094924b79b714fa8ce5fc9cb"
12
16
  },
13
17
  "arguments": "microbundle -f cjs --no-compress --jsx React.createElement --jsxFragment React.Fragment "
@@ -5,7 +5,6 @@
5
5
  "/@babel/compat-data/7.28.0": "sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==",
6
6
  "/@babel/core/7.28.0": "sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==",
7
7
  "/@babel/generator/7.28.3": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==",
8
- "/@babel/helper-annotate-as-pure/7.25.9": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==",
9
8
  "/@babel/helper-annotate-as-pure/7.27.3": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==",
10
9
  "/@babel/helper-builder-binary-assignment-operator-visitor/7.25.9": "sha512-C47lC7LIDCnz0h4vai/tpNOI95tCd5ZT3iBt/DBH5lXKHZsyNQv18yf1wIIg2ntiQNgmAvA+DgZ82iW8Qdym8g==",
11
10
  "/@babel/helper-compilation-targets/7.27.2": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==",
@@ -14,11 +13,9 @@
14
13
  "/@babel/helper-create-regexp-features-plugin/7.25.9_@babel+core@7.28.0": "sha512-ORPNZ3h6ZRkOyAa/SaHU+XsLZr0UQzRwuDQ0cczIA17nAzZ+85G5cVkOJIj7QavLZGSe8QXUmNFxSZzjcZF9bw==",
15
14
  "/@babel/helper-define-polyfill-provider/0.6.2_@babel+core@7.28.0": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==",
16
15
  "/@babel/helper-globals/7.28.0": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==",
17
- "/@babel/helper-member-expression-to-functions/7.25.9": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==",
18
16
  "/@babel/helper-member-expression-to-functions/7.27.1": "sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==",
19
17
  "/@babel/helper-module-imports/7.27.1": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==",
20
18
  "/@babel/helper-module-transforms/7.27.3_@babel+core@7.28.0": "sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==",
21
- "/@babel/helper-optimise-call-expression/7.25.9": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==",
22
19
  "/@babel/helper-optimise-call-expression/7.27.1": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==",
23
20
  "/@babel/helper-plugin-utils/7.27.1": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==",
24
21
  "/@babel/helper-remap-async-to-generator/7.25.9_@babel+core@7.28.0": "sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==",
package/lib/Field.d.ts CHANGED
@@ -48,7 +48,7 @@ export declare const fieldGroupStyles: import("tailwind-variants").TVReturnType<
48
48
  isDisabled: {
49
49
  true: string;
50
50
  };
51
- }, undefined, "group flex items-center h-9 box-border bg-white dark:bg-neutral-900 forced-colors:bg-[Field] border rounded-lg overflow-hidden transition", {
51
+ }, undefined, "group flex items-center h-9 box-border bg-white forced-colors:bg-[Field] border rounded-lg overflow-hidden transition", {
52
52
  isFocusVisible: {
53
53
  false: string;
54
54
  true: string;
@@ -58,7 +58,7 @@ export declare const fieldGroupStyles: import("tailwind-variants").TVReturnType<
58
58
  false: string;
59
59
  true: string;
60
60
  };
61
- }, undefined, "outline outline-secondary-600 dark:outline-secondary-500 forced-colors:outline-[Highlight] outline-offset-2", {
61
+ }, undefined, "outline outline-secondary-600 forced-colors:outline-[Highlight] outline-offset-2", {
62
62
  isFocusVisible: {
63
63
  false: string;
64
64
  true: string;
@@ -68,6 +68,6 @@ export declare const fieldGroupStyles: import("tailwind-variants").TVReturnType<
68
68
  false: string;
69
69
  true: string;
70
70
  };
71
- }, undefined, "outline outline-secondary-600 dark:outline-secondary-500 forced-colors:outline-[Highlight] outline-offset-2", unknown, unknown, undefined>>>;
71
+ }, undefined, "outline outline-secondary-600 forced-colors:outline-[Highlight] outline-offset-2", unknown, unknown, undefined>>>;
72
72
  export declare function FieldGroup(props: GroupProps): React.JSX.Element;
73
73
  export declare function Input(props: InputProps): React.JSX.Element;
package/lib/ListBox.d.ts CHANGED
@@ -21,7 +21,7 @@ export declare const itemStyles: import("tailwind-variants").TVReturnType<{
21
21
  false: string;
22
22
  true: string;
23
23
  };
24
- }, undefined, "outline outline-secondary-600 dark:outline-secondary-500 forced-colors:outline-[Highlight] outline-offset-2", {
24
+ }, undefined, "outline outline-secondary-600 forced-colors:outline-[Highlight] outline-offset-2", {
25
25
  isFocusVisible: {
26
26
  false: string;
27
27
  true: string;
@@ -31,7 +31,7 @@ export declare const itemStyles: import("tailwind-variants").TVReturnType<{
31
31
  false: string;
32
32
  true: string;
33
33
  };
34
- }, undefined, "outline outline-secondary-600 dark:outline-secondary-500 forced-colors:outline-[Highlight] outline-offset-2", unknown, unknown, undefined>>>;
34
+ }, undefined, "outline outline-secondary-600 forced-colors:outline-[Highlight] outline-offset-2", unknown, unknown, undefined>>>;
35
35
  export declare function ListBoxItem(props: ListBoxItemProps): React.JSX.Element;
36
36
  export declare const dropdownItemStyles: import("tailwind-variants").TVReturnType<{
37
37
  isDisabled: {
package/lib/index.cjs ADDED
@@ -0,0 +1,387 @@
1
+ var reactAriaComponents = require('react-aria-components');
2
+ var React = require('react');
3
+ var reactAria = require('react-aria');
4
+ var tailwindVariants = require('tailwind-variants');
5
+ var reactStately = require('react-stately');
6
+ var tailwindMerge = require('tailwind-merge');
7
+
8
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
9
+
10
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
11
+
12
+ function _extends() {
13
+ return _extends = Object.assign ? Object.assign.bind() : function (n) {
14
+ for (var e = 1; e < arguments.length; e++) {
15
+ var t = arguments[e];
16
+ for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
17
+ }
18
+ return n;
19
+ }, _extends.apply(null, arguments);
20
+ }
21
+ function _objectWithoutPropertiesLoose(r, e) {
22
+ if (null == r) return {};
23
+ var t = {};
24
+ for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
25
+ if (-1 !== e.indexOf(n)) continue;
26
+ t[n] = r[n];
27
+ }
28
+ return t;
29
+ }
30
+
31
+ var _excluded$4 = ["children", "className"];
32
+ function Button(_ref) {
33
+ var children = _ref.children,
34
+ className = _ref.className,
35
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$4);
36
+ return /*#__PURE__*/React__default["default"].createElement(reactAriaComponents.Button, _extends({}, props, {
37
+ className: className
38
+ }), reactAriaComponents.composeRenderProps(children, function (children, _ref2) {
39
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, children);
40
+ }));
41
+ }
42
+
43
+ var _excluded$3 = ["title", "children"];
44
+ var DefaultDialogClasses = {};
45
+ function Dialog(_ref) {
46
+ var title = _ref.title,
47
+ children = _ref.children,
48
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$3);
49
+ var ref = React.useRef(null);
50
+ var _DefaultDialogClasses = _extends({}, DefaultDialogClasses, props),
51
+ className = _DefaultDialogClasses.className,
52
+ titleClass = _DefaultDialogClasses.titleClass;
53
+ var _useDialog = reactAria.useDialog(props, ref),
54
+ dialogProps = _useDialog.dialogProps,
55
+ titleProps = _useDialog.titleProps;
56
+ return /*#__PURE__*/React__default["default"].createElement("div", _extends({}, dialogProps, {
57
+ ref: ref,
58
+ className: className
59
+ }), title && /*#__PURE__*/React__default["default"].createElement("h3", _extends({}, titleProps, {
60
+ className: titleClass
61
+ }), title), children);
62
+ }
63
+
64
+ var _excluded$2 = ["children", "showArrow", "className"];
65
+ var styles$1 = tailwindVariants.tv({
66
+ base: "font-sans bg-white forced-colors:bg-[Canvas] shadow-2xl rounded-xl bg-clip-padding border border-black/10 text-neutral-700 outline-0",
67
+ variants: {
68
+ isEntering: {
69
+ "true": "animate-in fade-in placement-bottom:slide-in-from-top-1 placement-top:slide-in-from-bottom-1 placement-left:slide-in-from-right-1 placement-right:slide-in-from-left-1 ease-out duration-200"
70
+ },
71
+ isExiting: {
72
+ "true": "animate-out fade-out placement-bottom:slide-out-to-top-1 placement-top:slide-out-to-bottom-1 placement-left:slide-out-to-right-1 placement-right:slide-out-to-left-1 ease-in duration-150"
73
+ }
74
+ }
75
+ });
76
+ function Popover(_ref) {
77
+ var children = _ref.children,
78
+ showArrow = _ref.showArrow,
79
+ className = _ref.className,
80
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$2);
81
+ var offset = showArrow ? 12 : 8;
82
+ return /*#__PURE__*/React__default["default"].createElement(reactAriaComponents.Popover, _extends({
83
+ offset: offset
84
+ }, props, {
85
+ className: reactAriaComponents.composeRenderProps(className, function (className, renderProps) {
86
+ return styles$1(_extends({}, renderProps, {
87
+ className: className
88
+ }));
89
+ })
90
+ }), showArrow && /*#__PURE__*/React__default["default"].createElement(reactAriaComponents.OverlayArrow, {
91
+ className: "group"
92
+ }, /*#__PURE__*/React__default["default"].createElement("svg", {
93
+ width: 12,
94
+ height: 12,
95
+ viewBox: "0 0 12 12",
96
+ className: "block fill-white forced-colors:fill-[Canvas] stroke-1 stroke-black/10 forced-colors:stroke-[ButtonBorder] group-placement-bottom:rotate-180 group-placement-left:-rotate-90 group-placement-right:rotate-90"
97
+ }, /*#__PURE__*/React__default["default"].createElement("path", {
98
+ d: "M0 0 L6 6 L12 0"
99
+ }))), children);
100
+ }
101
+ var DefaultPopoverClasses = {
102
+ underlayClass: "fixed inset-0",
103
+ popoverClass: "bg-white"
104
+ };
105
+ function createOverlayState(ref) {
106
+ return {
107
+ isOpen: ref.value,
108
+ setOpen: function setOpen(o) {
109
+ return ref.value = o;
110
+ },
111
+ open: function open() {
112
+ return ref.value = true;
113
+ },
114
+ close: function close() {
115
+ return ref.value = false;
116
+ },
117
+ toggle: function toggle() {
118
+ return ref.value = !ref.value;
119
+ }
120
+ };
121
+ }
122
+
123
+ var _excluded$1 = ["state", "children", "isDismissable", "isKeyboardDismissDisabled", "shouldCloseOnInteractOutside", "portalContainer"],
124
+ _excluded2 = ["trigger", "children"],
125
+ _excluded3 = ["onPress"],
126
+ _excluded4 = ["children", "footer", "defaultOpen", "isDismissable", "titleClass"];
127
+ var DefaultModalDialogClasses = {
128
+ underlayClass: "fixed z-[100] inset-0 bg-black bg-opacity-50 flex items-center justify-center backdrop-blur-[2px]",
129
+ containerClass: "relative m-4 p-4 w-3/5 min-w-[400px] max-w-[80%] rounded-lg bg-white shadow-sm"
130
+ };
131
+ function Modal(_ref) {
132
+ var state = _ref.state,
133
+ children = _ref.children,
134
+ isDismissable = _ref.isDismissable,
135
+ isKeyboardDismissDisabled = _ref.isKeyboardDismissDisabled,
136
+ shouldCloseOnInteractOutside = _ref.shouldCloseOnInteractOutside,
137
+ portalContainer = _ref.portalContainer,
138
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$1);
139
+ var ref = React__default["default"].useRef(null);
140
+ var _useModalOverlay = reactAria.useModalOverlay({
141
+ isDismissable: isDismissable,
142
+ isKeyboardDismissDisabled: isKeyboardDismissDisabled,
143
+ shouldCloseOnInteractOutside: shouldCloseOnInteractOutside
144
+ }, state, ref),
145
+ modalProps = _useModalOverlay.modalProps,
146
+ underlayProps = _useModalOverlay.underlayProps;
147
+ var _DefaultModalDialogCl = _extends({}, DefaultModalDialogClasses, props),
148
+ underlayClass = _DefaultModalDialogCl.underlayClass,
149
+ containerClass = _DefaultModalDialogCl.containerClass;
150
+ return /*#__PURE__*/React__default["default"].createElement(reactAria.Overlay, {
151
+ portalContainer: portalContainer
152
+ }, /*#__PURE__*/React__default["default"].createElement("div", _extends({
153
+ className: underlayClass
154
+ }, underlayProps), /*#__PURE__*/React__default["default"].createElement("div", _extends({}, modalProps, {
155
+ ref: ref,
156
+ className: containerClass
157
+ }), children)));
158
+ }
159
+ function ModalTrigger(_ref2) {
160
+ var trigger = _ref2.trigger,
161
+ children = _ref2.children,
162
+ props = _objectWithoutPropertiesLoose(_ref2, _excluded2);
163
+ var state = reactStately.useOverlayTriggerState(_extends({}, props));
164
+ var _useOverlayTrigger = reactAria.useOverlayTrigger({
165
+ type: "dialog"
166
+ }, state),
167
+ triggerProps = _useOverlayTrigger.triggerProps,
168
+ overlayProps = _useOverlayTrigger.overlayProps;
169
+ var onPress = triggerProps.onPress,
170
+ otherTriggerProps = _objectWithoutPropertiesLoose(triggerProps, _excluded3);
171
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, "// TODO: react-19", React__default["default"].cloneElement(trigger, _extends({}, otherTriggerProps, {
172
+ onClick: onPress
173
+ })), state.isOpen && /*#__PURE__*/React__default["default"].createElement(Modal, _extends({
174
+ state: state
175
+ }, props), React__default["default"].cloneElement(children, overlayProps)));
176
+ }
177
+ function ModalDialog(_ref3) {
178
+ var children = _ref3.children,
179
+ footer = _ref3.footer,
180
+ _ref3$defaultOpen = _ref3.defaultOpen,
181
+ defaultOpen = _ref3$defaultOpen === void 0 ? false : _ref3$defaultOpen,
182
+ _ref3$isDismissable = _ref3.isDismissable,
183
+ isDismissable = _ref3$isDismissable === void 0 ? true : _ref3$isDismissable,
184
+ props = _objectWithoutPropertiesLoose(_ref3, _excluded4);
185
+ var _DefaultModalDialogCl2 = _extends({}, DefaultModalDialogClasses, props),
186
+ className = _DefaultModalDialogCl2.className;
187
+ return /*#__PURE__*/React__default["default"].createElement(ModalTrigger, _extends({
188
+ defaultOpen: defaultOpen,
189
+ isDismissable: isDismissable
190
+ }, props), /*#__PURE__*/React__default["default"].createElement(Dialog, _extends({
191
+ className: className
192
+ }, props), children, footer));
193
+ }
194
+
195
+ var focusRing = tailwindVariants.tv({
196
+ base: "outline outline-secondary-600 forced-colors:outline-[Highlight] outline-offset-2",
197
+ variants: {
198
+ isFocusVisible: {
199
+ "false": "outline-0",
200
+ "true": "outline-2"
201
+ }
202
+ }
203
+ });
204
+ function composeTailwindRenderProps(className, tw) {
205
+ return reactAriaComponents.composeRenderProps(className, function (className) {
206
+ return tailwindMerge.twMerge(tw, className);
207
+ });
208
+ }
209
+
210
+ function Label(props) {
211
+ return /*#__PURE__*/React__default["default"].createElement(reactAriaComponents.Label, _extends({}, props, {
212
+ className: tailwindMerge.twMerge("font-sans text-sm text-neutral-600 font-medium cursor-default w-fit", props.className)
213
+ }));
214
+ }
215
+ function Description(props) {
216
+ return /*#__PURE__*/React__default["default"].createElement(reactAriaComponents.Text, _extends({}, props, {
217
+ slot: "description",
218
+ className: tailwindMerge.twMerge("text-sm text-neutral-600", props.className)
219
+ }));
220
+ }
221
+ function FieldError(props) {
222
+ return /*#__PURE__*/React__default["default"].createElement(reactAriaComponents.FieldError, _extends({}, props, {
223
+ className: composeTailwindRenderProps(props.className, "text-sm text-red-600 forced-colors:text-[Mark]")
224
+ }));
225
+ }
226
+ var fieldBorderStyles = tailwindVariants.tv({
227
+ base: "transition",
228
+ variants: {
229
+ isFocusWithin: {
230
+ "false": "border-neutral-300 hover:border-neutral-400 forced-colors:border-[ButtonBorder]",
231
+ "true": "border-neutral-600 forced-colors:border-[Highlight]"
232
+ },
233
+ isInvalid: {
234
+ "true": "border-red-600 forced-colors:border-[Mark]"
235
+ },
236
+ isDisabled: {
237
+ "true": "border-neutral-200 forced-colors:border-[GrayText]"
238
+ }
239
+ }
240
+ });
241
+ var fieldGroupStyles = tailwindVariants.tv({
242
+ extend: focusRing,
243
+ base: "group flex items-center h-9 box-border bg-white forced-colors:bg-[Field] border rounded-lg overflow-hidden transition",
244
+ variants: fieldBorderStyles.variants
245
+ });
246
+ function FieldGroup(props) {
247
+ return /*#__PURE__*/React__default["default"].createElement(reactAriaComponents.Group, _extends({}, props, {
248
+ className: reactAriaComponents.composeRenderProps(props.className, function (className, renderProps) {
249
+ return fieldGroupStyles(_extends({}, renderProps, {
250
+ className: className
251
+ }));
252
+ })
253
+ }));
254
+ }
255
+ function Input(props) {
256
+ return /*#__PURE__*/React__default["default"].createElement(reactAriaComponents.Input, _extends({}, props, {
257
+ className: composeTailwindRenderProps(props.className, "px-3 py-0 min-h-9 flex-1 min-w-0 border-0 outline outline-0 bg-white font-sans text-sm text-neutral-800 placeholder:text-neutral-600 disabled:text-neutral-200 disabled:placeholder:text-neutral-200 [-webkit-tap-highlight-color:transparent]")
258
+ }));
259
+ }
260
+
261
+ tailwindVariants.tv({
262
+ extend: focusRing,
263
+ base: "group relative flex items-center gap-8 cursor-default select-none py-1.5 px-2.5 rounded-md will-change-transform text-sm forced-color-adjust-none",
264
+ variants: {
265
+ isSelected: {
266
+ "false": "text-neutral-700 hover:bg-neutral-100 pressed:bg-neutral-100 -outline-offset-2",
267
+ "true": "bg-secondary-600 text-white forced-colors:bg-[Highlight] forced-colors:text-[HighlightText] [&:has(+[data-selected])]:rounded-b-none [&+[data-selected]]:rounded-t-none -outline-offset-4 outline-white forced-colors:outline-[HighlightText]"
268
+ },
269
+ isDisabled: {
270
+ "true": "text-neutral-300 forced-colors:text-[GrayText]"
271
+ }
272
+ }
273
+ });
274
+ var dropdownItemStyles = tailwindVariants.tv({
275
+ base: "group flex items-center gap-4 cursor-default select-none py-2 pl-3 pr-3 selected:pr-1 rounded-lg outline outline-0 text-sm forced-color-adjust-none no-underline [&[href]]:cursor-pointer [-webkit-tap-highlight-color:transparent]",
276
+ variants: {
277
+ isDisabled: {
278
+ "false": "text-neutral-900",
279
+ "true": "text-neutral-300 forced-colors:text-[GrayText]"
280
+ },
281
+ isPressed: {
282
+ "true": "bg-neutral-100"
283
+ },
284
+ isFocused: {
285
+ "true": "bg-secondary-600 text-white forced-colors:bg-[Highlight] forced-colors:text-[HighlightText]"
286
+ }
287
+ },
288
+ compoundVariants: [{
289
+ isFocused: false,
290
+ isOpen: true,
291
+ className: "bg-neutral-100"
292
+ }]
293
+ });
294
+ function DropdownItem(props) {
295
+ var textValue = props.textValue || (typeof props.children === "string" ? props.children : undefined);
296
+ return /*#__PURE__*/React__default["default"].createElement(reactAriaComponents.ListBoxItem, _extends({}, props, {
297
+ textValue: textValue,
298
+ className: dropdownItemStyles
299
+ }), reactAriaComponents.composeRenderProps(props.children, function (children, _ref2) {
300
+ var isSelected = _ref2.isSelected;
301
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("span", {
302
+ className: "flex items-center flex-1 gap-2 font-normal truncate group-selected:font-semibold"
303
+ }, children), /*#__PURE__*/React__default["default"].createElement("span", {
304
+ className: "flex items-center w-5"
305
+ }, isSelected && /*#__PURE__*/React__default["default"].createElement("i", {
306
+ className: "w-4 h-4 fa fa-check"
307
+ })));
308
+ }));
309
+ }
310
+ function DropdownSection(props) {
311
+ return /*#__PURE__*/React__default["default"].createElement(reactAriaComponents.ListBoxSection, {
312
+ className: "first:-mt-[5px] after:content-[''] after:block after:h-[5px] last:after:hidden"
313
+ }, /*#__PURE__*/React__default["default"].createElement(reactAriaComponents.Header, {
314
+ className: "text-sm font-semibold text-neutral-500 px-4 py-1 truncate sticky -top-[5px] -mt-px -mx-1 z-10 bg-neutral-100/60 backdrop-blur-md supports-[-moz-appearance:none]:bg-neutral-100 border-y border-y-neutral-200 [&+*]:mt-1"
315
+ }, props.title), /*#__PURE__*/React__default["default"].createElement(reactAriaComponents.Collection, {
316
+ items: props.items
317
+ }, props.children));
318
+ }
319
+
320
+ var _excluded = ["label", "description", "errorMessage", "children", "items"];
321
+ var styles = tailwindVariants.tv({
322
+ extend: focusRing,
323
+ base: "flex items-center text-start gap-4 w-full font-sans border border-black/10 cursor-default rounded-lg pl-3 pr-2 h-9 min-w-[72px] transition bg-neutral-50 [-webkit-tap-highlight-color:transparent]",
324
+ variants: {
325
+ isDisabled: {
326
+ "false": "text-neutral-800 hover:bg-neutral-100 pressed:bg-neutral-200 group-invalid:outline group-invalid:outline-red-600 forced-colors:group-invalid:outline-[Mark]",
327
+ "true": "border-transparent text-neutral-200 forced-colors:text-[GrayText] bg-neutral-100"
328
+ }
329
+ }
330
+ });
331
+ function Select(_ref) {
332
+ var label = _ref.label,
333
+ description = _ref.description,
334
+ errorMessage = _ref.errorMessage,
335
+ children = _ref.children,
336
+ items = _ref.items,
337
+ props = _objectWithoutPropertiesLoose(_ref, _excluded);
338
+ return /*#__PURE__*/React__default["default"].createElement(reactAriaComponents.Select, _extends({}, props, {
339
+ className: composeTailwindRenderProps(props.className, "group flex flex-col gap-1 relative font-sans")
340
+ }), label && /*#__PURE__*/React__default["default"].createElement(Label, null, label), /*#__PURE__*/React__default["default"].createElement(reactAriaComponents.Button, {
341
+ className: styles
342
+ }, /*#__PURE__*/React__default["default"].createElement(reactAriaComponents.SelectValue, {
343
+ className: "flex-1 text-sm text-nowrap"
344
+ }, function (_ref2) {
345
+ var selectedText = _ref2.selectedText,
346
+ defaultChildren = _ref2.defaultChildren;
347
+ return selectedText || defaultChildren;
348
+ }), /*#__PURE__*/React__default["default"].createElement("i", {
349
+ "aria-hidden": true,
350
+ className: "w-4 h-4 fa fa-chevron-down text-neutral-600 forced-colors:text-[ButtonText] group-disabled:text-neutral-200 forced-colors:group-disabled:text-[GrayText]"
351
+ })), description && /*#__PURE__*/React__default["default"].createElement(Description, null, description), /*#__PURE__*/React__default["default"].createElement(FieldError, null, errorMessage), /*#__PURE__*/React__default["default"].createElement(Popover, {
352
+ className: "min-w-(--trigger-width)"
353
+ }, /*#__PURE__*/React__default["default"].createElement(reactAriaComponents.ListBox, {
354
+ items: items,
355
+ className: "outline-hidden box-border p-1 max-h-[inherit] overflow-auto [clip-path:inset(0_0_0_0_round_.75rem)]"
356
+ }, children)));
357
+ }
358
+ function SelectItem(props) {
359
+ return /*#__PURE__*/React__default["default"].createElement(DropdownItem, props);
360
+ }
361
+ function SelectSection(props) {
362
+ return /*#__PURE__*/React__default["default"].createElement(DropdownSection, props);
363
+ }
364
+
365
+ exports.Button = Button;
366
+ exports.DefaultDialogClasses = DefaultDialogClasses;
367
+ exports.DefaultModalDialogClasses = DefaultModalDialogClasses;
368
+ exports.DefaultPopoverClasses = DefaultPopoverClasses;
369
+ exports.Description = Description;
370
+ exports.Dialog = Dialog;
371
+ exports.FieldError = FieldError;
372
+ exports.FieldGroup = FieldGroup;
373
+ exports.Input = Input;
374
+ exports.Label = Label;
375
+ exports.Modal = Modal;
376
+ exports.ModalDialog = ModalDialog;
377
+ exports.ModalTrigger = ModalTrigger;
378
+ exports.Popover = Popover;
379
+ exports.Select = Select;
380
+ exports.SelectItem = SelectItem;
381
+ exports.SelectSection = SelectSection;
382
+ exports.composeTailwindRenderProps = composeTailwindRenderProps;
383
+ exports.createOverlayState = createOverlayState;
384
+ exports.fieldBorderStyles = fieldBorderStyles;
385
+ exports.fieldGroupStyles = fieldGroupStyles;
386
+ exports.focusRing = focusRing;
387
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../src/Button.tsx","../src/Dialog.tsx","../src/Popover.tsx","../src/Modal.tsx","../src/utils.ts","../src/Field.tsx","../src/ListBox.tsx","../src/Select.tsx"],"sourcesContent":["import {\n composeRenderProps,\n Button as RACButton,\n ButtonProps as RACButtonProps,\n} from \"react-aria-components\";\nimport React from \"react\";\n\nexport function Button({\n children,\n className,\n ...props\n}: RACButtonProps & { className?: string }) {\n return (\n <RACButton {...props} className={className}>\n {composeRenderProps(children, (children, { isPending }) => (\n <>{children}</>\n ))}\n </RACButton>\n );\n}\n","import type { AriaDialogProps } from \"react-aria\";\nimport { useDialog } from \"react-aria\";\nimport React, { useRef } from \"react\";\n\nexport interface DialogClasses {\n className?: string;\n titleClass?: string;\n}\nexport interface DialogProps extends AriaDialogProps, DialogClasses {\n title?: React.ReactNode;\n children: React.ReactNode;\n}\n\nexport const DefaultDialogClasses: DialogClasses = {};\nexport function Dialog({ title, children, ...props }: DialogProps) {\n let ref = useRef(null);\n const { className, titleClass } = {\n ...DefaultDialogClasses,\n ...props,\n };\n let { dialogProps, titleProps } = useDialog(props, ref);\n\n return (\n <div {...dialogProps} ref={ref} className={className}>\n {title && (\n <h3 {...titleProps} className={titleClass}>\n {title}\n </h3>\n )}\n {children}\n </div>\n );\n}\n","import {\n OverlayArrow,\n Popover as AriaPopover,\n PopoverProps as AriaPopoverProps,\n composeRenderProps,\n} from \"react-aria-components\";\nimport React from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { OverlayTriggerState } from \"react-stately\";\n\nexport interface PopoverProps extends Omit<AriaPopoverProps, \"children\"> {\n showArrow?: boolean;\n children: React.ReactNode;\n}\n\nconst styles = tv({\n base: \"font-sans bg-white forced-colors:bg-[Canvas] shadow-2xl rounded-xl bg-clip-padding border border-black/10 text-neutral-700 outline-0\",\n variants: {\n isEntering: {\n true: \"animate-in fade-in placement-bottom:slide-in-from-top-1 placement-top:slide-in-from-bottom-1 placement-left:slide-in-from-right-1 placement-right:slide-in-from-left-1 ease-out duration-200\",\n },\n isExiting: {\n true: \"animate-out fade-out placement-bottom:slide-out-to-top-1 placement-top:slide-out-to-bottom-1 placement-left:slide-out-to-right-1 placement-right:slide-out-to-left-1 ease-in duration-150\",\n },\n },\n});\n\nexport function Popover({\n children,\n showArrow,\n className,\n ...props\n}: PopoverProps) {\n let offset = showArrow ? 12 : 8;\n return (\n <AriaPopover\n offset={offset}\n {...props}\n className={composeRenderProps(className, (className, renderProps) =>\n styles({ ...renderProps, className }),\n )}\n >\n {showArrow && (\n <OverlayArrow className=\"group\">\n <svg\n width={12}\n height={12}\n viewBox=\"0 0 12 12\"\n className=\"block fill-white forced-colors:fill-[Canvas] stroke-1 stroke-black/10 forced-colors:stroke-[ButtonBorder] group-placement-bottom:rotate-180 group-placement-left:-rotate-90 group-placement-right:rotate-90\"\n >\n <path d=\"M0 0 L6 6 L12 0\" />\n </svg>\n </OverlayArrow>\n )}\n {children}\n </AriaPopover>\n );\n}\n\nexport interface PopoverClasses {\n underlayClass?: string;\n popoverClass?: string;\n}\n\nexport const DefaultPopoverClasses = {\n underlayClass: \"fixed inset-0\",\n popoverClass: \"bg-white\",\n};\n\nexport function createOverlayState(ref: {\n value: boolean;\n}): OverlayTriggerState {\n return {\n isOpen: ref.value,\n setOpen: (o) => (ref.value = o),\n open: () => (ref.value = true),\n close: () => (ref.value = false),\n toggle: () => (ref.value = !ref.value),\n };\n}\n","import React from \"react\";\nimport {\n AriaModalOverlayProps,\n Overlay,\n useModalOverlay,\n useOverlayTrigger,\n} from \"react-aria\";\nimport {\n OverlayTriggerProps,\n OverlayTriggerState,\n useOverlayTriggerState,\n} from \"react-stately\";\nimport { Dialog, DialogProps, DialogClasses } from \"./Dialog\";\n\nexport interface ModalClasses {\n underlayClass?: string;\n containerClass?: string;\n}\n\nexport interface ModalDialogClasses extends DialogClasses, ModalClasses {}\n\nexport const DefaultModalDialogClasses: ModalDialogClasses = {\n underlayClass:\n \"fixed z-[100] inset-0 bg-black bg-opacity-50 flex items-center justify-center backdrop-blur-[2px]\",\n containerClass:\n \"relative m-4 p-4 w-3/5 min-w-[400px] max-w-[80%] rounded-lg bg-white shadow-sm\",\n};\n\nexport interface ModalProps extends AriaModalOverlayProps, ModalClasses {\n state: OverlayTriggerState;\n children: React.ReactElement;\n portalContainer?: Element;\n}\n\nexport interface ModalDialogTriggerProps\n extends OverlayTriggerProps,\n AriaModalOverlayProps {\n trigger: React.ReactElement;\n children: React.ReactElement;\n}\n\nexport interface ModalDialogProps\n extends ModalDialogTriggerProps,\n Omit<DialogProps, \"children\">,\n ModalDialogClasses {\n footer?: React.ReactNode;\n}\n\nexport function Modal({\n state,\n children,\n isDismissable,\n isKeyboardDismissDisabled,\n shouldCloseOnInteractOutside,\n portalContainer,\n ...props\n}: ModalProps) {\n let ref = React.useRef(null);\n let { modalProps, underlayProps } = useModalOverlay(\n { isDismissable, isKeyboardDismissDisabled, shouldCloseOnInteractOutside },\n state,\n ref,\n );\n\n const { underlayClass, containerClass } = {\n ...DefaultModalDialogClasses,\n ...props,\n };\n\n return (\n <Overlay portalContainer={portalContainer}>\n <div className={underlayClass} {...underlayProps}>\n <div {...modalProps} ref={ref} className={containerClass}>\n {children}\n </div>\n </div>\n </Overlay>\n );\n}\n\nexport function ModalTrigger({\n trigger,\n children,\n ...props\n}: ModalDialogTriggerProps) {\n let state = useOverlayTriggerState({ ...props });\n let { triggerProps, overlayProps } = useOverlayTrigger(\n { type: \"dialog\" },\n state,\n );\n\n const { onPress, ...otherTriggerProps } = triggerProps;\n return (\n <>\n // TODO: react-19\n {React.cloneElement(trigger, {\n ...otherTriggerProps,\n onClick: onPress,\n } as any)}\n {state.isOpen && (\n <Modal state={state} {...props}>\n {React.cloneElement(children, overlayProps)}\n </Modal>\n )}\n </>\n );\n}\n\nexport function ModalDialog({\n children,\n footer,\n defaultOpen = false,\n isDismissable = true,\n titleClass = \"text-2xl font-bold\",\n ...props\n}: ModalDialogProps) {\n const { className } = {\n ...DefaultModalDialogClasses,\n ...props,\n };\n\n return (\n <ModalTrigger\n defaultOpen={defaultOpen}\n isDismissable={isDismissable}\n {...props}\n >\n <Dialog className={className} {...props}>\n {children}\n {footer}\n </Dialog>\n </ModalTrigger>\n );\n}\n","import { composeRenderProps } from \"react-aria-components\";\nimport { twMerge } from \"tailwind-merge\";\nimport { tv } from \"tailwind-variants\";\n\nexport const focusRing = tv({\n base: \"outline outline-secondary-600 forced-colors:outline-[Highlight] outline-offset-2\",\n variants: {\n isFocusVisible: {\n false: \"outline-0\",\n true: \"outline-2\",\n },\n },\n});\n\nexport function composeTailwindRenderProps<T>(\n className: string | ((v: T) => string) | undefined,\n tw: string,\n): string | ((v: T) => string) {\n return composeRenderProps(className, (className) => twMerge(tw, className));\n}\n","import React from \"react\";\nimport {\n FieldErrorProps,\n Group,\n GroupProps,\n InputProps,\n LabelProps,\n FieldError as RACFieldError,\n Input as RACInput,\n Label as RACLabel,\n Text,\n TextProps,\n composeRenderProps,\n} from \"react-aria-components\";\nimport { twMerge } from \"tailwind-merge\";\nimport { tv } from \"tailwind-variants\";\nimport { composeTailwindRenderProps, focusRing } from \"./utils\";\n\nexport function Label(props: LabelProps) {\n return (\n <RACLabel\n {...props}\n className={twMerge(\n \"font-sans text-sm text-neutral-600 font-medium cursor-default w-fit\",\n props.className,\n )}\n />\n );\n}\n\nexport function Description(props: TextProps) {\n return (\n <Text\n {...props}\n slot=\"description\"\n className={twMerge(\"text-sm text-neutral-600\", props.className)}\n />\n );\n}\n\nexport function FieldError(props: FieldErrorProps) {\n return (\n <RACFieldError\n {...props}\n className={composeTailwindRenderProps(\n props.className,\n \"text-sm text-red-600 forced-colors:text-[Mark]\",\n )}\n />\n );\n}\n\nexport const fieldBorderStyles = tv({\n base: \"transition\",\n variants: {\n isFocusWithin: {\n false:\n \"border-neutral-300 hover:border-neutral-400 forced-colors:border-[ButtonBorder]\",\n true: \"border-neutral-600 forced-colors:border-[Highlight]\",\n },\n isInvalid: {\n true: \"border-red-600 forced-colors:border-[Mark]\",\n },\n isDisabled: {\n true: \"border-neutral-200 forced-colors:border-[GrayText]\",\n },\n },\n});\n\nexport const fieldGroupStyles = tv({\n extend: focusRing,\n base: \"group flex items-center h-9 box-border bg-white forced-colors:bg-[Field] border rounded-lg overflow-hidden transition\",\n variants: fieldBorderStyles.variants,\n});\n\nexport function FieldGroup(props: GroupProps) {\n return (\n <Group\n {...props}\n className={composeRenderProps(props.className, (className, renderProps) =>\n fieldGroupStyles({ ...renderProps, className }),\n )}\n />\n );\n}\n\nexport function Input(props: InputProps) {\n return (\n <RACInput\n {...props}\n className={composeTailwindRenderProps(\n props.className,\n \"px-3 py-0 min-h-9 flex-1 min-w-0 border-0 outline outline-0 bg-white font-sans text-sm text-neutral-800 placeholder:text-neutral-600 disabled:text-neutral-200 disabled:placeholder:text-neutral-200 [-webkit-tap-highlight-color:transparent]\",\n )}\n />\n );\n}\n","import React from \"react\";\nimport {\n ListBox as AriaListBox,\n ListBoxItem as AriaListBoxItem,\n ListBoxProps as AriaListBoxProps,\n Collection,\n Header,\n ListBoxItemProps,\n ListBoxSection,\n SectionProps,\n composeRenderProps,\n} from \"react-aria-components\";\nimport { tv } from \"tailwind-variants\";\nimport { composeTailwindRenderProps, focusRing } from \"./utils\";\n\ninterface ListBoxProps<T>\n extends Omit<AriaListBoxProps<T>, \"layout\" | \"orientation\"> {}\n\nexport function ListBox<T extends object>({\n children,\n ...props\n}: ListBoxProps<T>) {\n return (\n <AriaListBox\n {...props}\n className={composeTailwindRenderProps(\n props.className,\n \"outline-0 p-1 w-[200px] bg-white border border-neutral-300 rounded-lg font-sans\",\n )}\n >\n {children}\n </AriaListBox>\n );\n}\n\nexport const itemStyles = tv({\n extend: focusRing,\n base: \"group relative flex items-center gap-8 cursor-default select-none py-1.5 px-2.5 rounded-md will-change-transform text-sm forced-color-adjust-none\",\n variants: {\n isSelected: {\n false:\n \"text-neutral-700 hover:bg-neutral-100 pressed:bg-neutral-100 -outline-offset-2\",\n true: \"bg-secondary-600 text-white forced-colors:bg-[Highlight] forced-colors:text-[HighlightText] [&:has(+[data-selected])]:rounded-b-none [&+[data-selected]]:rounded-t-none -outline-offset-4 outline-white forced-colors:outline-[HighlightText]\",\n },\n isDisabled: {\n true: \"text-neutral-300 forced-colors:text-[GrayText]\",\n },\n },\n});\n\nexport function ListBoxItem(props: ListBoxItemProps) {\n let textValue =\n props.textValue ||\n (typeof props.children === \"string\" ? props.children : undefined);\n return (\n <AriaListBoxItem {...props} textValue={textValue} className={itemStyles}>\n {composeRenderProps(props.children, (children) => (\n <>\n {children}\n <div className=\"absolute left-4 right-4 bottom-0 h-px bg-white/20 forced-colors:bg-[HighlightText] hidden [.group[data-selected]:has(+[data-selected])_&]:block\" />\n </>\n ))}\n </AriaListBoxItem>\n );\n}\n\nexport const dropdownItemStyles = tv({\n base: \"group flex items-center gap-4 cursor-default select-none py-2 pl-3 pr-3 selected:pr-1 rounded-lg outline outline-0 text-sm forced-color-adjust-none no-underline [&[href]]:cursor-pointer [-webkit-tap-highlight-color:transparent]\",\n variants: {\n isDisabled: {\n false: \"text-neutral-900\",\n true: \"text-neutral-300 forced-colors:text-[GrayText]\",\n },\n isPressed: {\n true: \"bg-neutral-100\",\n },\n isFocused: {\n true: \"bg-secondary-600 text-white forced-colors:bg-[Highlight] forced-colors:text-[HighlightText]\",\n },\n },\n compoundVariants: [\n {\n isFocused: false,\n isOpen: true,\n className: \"bg-neutral-100\",\n },\n ],\n});\n\nexport function DropdownItem(props: ListBoxItemProps) {\n let textValue =\n props.textValue ||\n (typeof props.children === \"string\" ? props.children : undefined);\n return (\n <AriaListBoxItem\n {...props}\n textValue={textValue}\n className={dropdownItemStyles}\n >\n {composeRenderProps(props.children, (children, { isSelected }) => (\n <>\n <span className=\"flex items-center flex-1 gap-2 font-normal truncate group-selected:font-semibold\">\n {children}\n </span>\n <span className=\"flex items-center w-5\">\n {isSelected && <i className=\"w-4 h-4 fa fa-check\" />}\n </span>\n </>\n ))}\n </AriaListBoxItem>\n );\n}\n\nexport interface DropdownSectionProps<T> extends SectionProps<T> {\n title?: string;\n items?: any;\n}\n\nexport function DropdownSection<T extends object>(\n props: DropdownSectionProps<T>,\n) {\n return (\n <ListBoxSection className=\"first:-mt-[5px] after:content-[''] after:block after:h-[5px] last:after:hidden\">\n <Header className=\"text-sm font-semibold text-neutral-500 px-4 py-1 truncate sticky -top-[5px] -mt-px -mx-1 z-10 bg-neutral-100/60 backdrop-blur-md supports-[-moz-appearance:none]:bg-neutral-100 border-y border-y-neutral-200 [&+*]:mt-1\">\n {props.title}\n </Header>\n <Collection items={props.items}>{props.children}</Collection>\n </ListBoxSection>\n );\n}\n","import React from \"react\";\nimport {\n Select as AriaSelect,\n SelectProps as AriaSelectProps,\n Button,\n ListBox,\n ListBoxItemProps,\n SelectValue,\n ValidationResult,\n} from \"react-aria-components\";\nimport { tv } from \"tailwind-variants\";\nimport { Description, FieldError, Label } from \"./Field\";\nimport { DropdownItem, DropdownSection, DropdownSectionProps } from \"./ListBox\";\nimport { Popover } from \"./Popover\";\nimport { composeTailwindRenderProps, focusRing } from \"./utils\";\n\nconst styles = tv({\n extend: focusRing,\n base: \"flex items-center text-start gap-4 w-full font-sans border border-black/10 cursor-default rounded-lg pl-3 pr-2 h-9 min-w-[72px] transition bg-neutral-50 [-webkit-tap-highlight-color:transparent]\",\n variants: {\n isDisabled: {\n false:\n \"text-neutral-800 hover:bg-neutral-100 pressed:bg-neutral-200 group-invalid:outline group-invalid:outline-red-600 forced-colors:group-invalid:outline-[Mark]\",\n true: \"border-transparent text-neutral-200 forced-colors:text-[GrayText] bg-neutral-100\",\n },\n },\n});\n\nexport interface SelectProps<T extends object>\n extends Omit<AriaSelectProps<T>, \"children\"> {\n label?: string;\n description?: string;\n errorMessage?: string | ((validation: ValidationResult) => string);\n items?: Iterable<T>;\n children: React.ReactNode | ((item: T) => React.ReactNode);\n}\n\nexport function Select<T extends object>({\n label,\n description,\n errorMessage,\n children,\n items,\n ...props\n}: SelectProps<T>) {\n return (\n <AriaSelect\n {...props}\n className={composeTailwindRenderProps(\n props.className,\n \"group flex flex-col gap-1 relative font-sans\",\n )}\n >\n {label && <Label>{label}</Label>}\n <Button className={styles}>\n <SelectValue className=\"flex-1 text-sm text-nowrap\">\n {({ selectedText, defaultChildren }) =>\n selectedText || defaultChildren\n }\n </SelectValue>\n <i\n aria-hidden\n className={\n \"w-4 h-4 fa fa-chevron-down text-neutral-600 forced-colors:text-[ButtonText] group-disabled:text-neutral-200 forced-colors:group-disabled:text-[GrayText]\"\n }\n />\n </Button>\n {description && <Description>{description}</Description>}\n <FieldError>{errorMessage}</FieldError>\n <Popover className=\"min-w-(--trigger-width)\">\n <ListBox\n items={items}\n className=\"outline-hidden box-border p-1 max-h-[inherit] overflow-auto [clip-path:inset(0_0_0_0_round_.75rem)]\"\n >\n {children}\n </ListBox>\n </Popover>\n </AriaSelect>\n );\n}\n\nexport function SelectItem(props: ListBoxItemProps) {\n return <DropdownItem {...props} />;\n}\n\nexport function SelectSection<T extends object>(\n props: DropdownSectionProps<T>,\n) {\n return <DropdownSection {...props} />;\n}\n"],"names":["Button","_ref","children","className","props","_objectWithoutPropertiesLoose","_excluded","React","createElement","RACButton","_extends","composeRenderProps","_ref2","Fragment","DefaultDialogClasses","Dialog","title","ref","useRef","_DefaultDialogClasses","titleClass","_useDialog","useDialog","dialogProps","titleProps","styles","tv","base","variants","isEntering","isExiting","Popover","showArrow","offset","AriaPopover","renderProps","OverlayArrow","width","height","viewBox","d","DefaultPopoverClasses","underlayClass","popoverClass","createOverlayState","isOpen","value","setOpen","o","open","close","toggle","DefaultModalDialogClasses","containerClass","Modal","state","isDismissable","isKeyboardDismissDisabled","shouldCloseOnInteractOutside","portalContainer","_useModalOverlay","useModalOverlay","modalProps","underlayProps","_DefaultModalDialogCl","Overlay","ModalTrigger","trigger","_excluded2","useOverlayTriggerState","_useOverlayTrigger","useOverlayTrigger","type","triggerProps","overlayProps","onPress","otherTriggerProps","_excluded3","cloneElement","onClick","ModalDialog","_ref3","footer","_ref3$defaultOpen","defaultOpen","_ref3$isDismissable","_excluded4","_DefaultModalDialogCl2","focusRing","isFocusVisible","composeTailwindRenderProps","tw","twMerge","Label","RACLabel","Description","Text","slot","FieldError","RACFieldError","fieldBorderStyles","isFocusWithin","isInvalid","isDisabled","fieldGroupStyles","extend","FieldGroup","Group","Input","RACInput","isSelected","dropdownItemStyles","isPressed","isFocused","compoundVariants","DropdownItem","textValue","undefined","AriaListBoxItem","DropdownSection","ListBoxSection","Header","Collection","items","Select","label","description","errorMessage","AriaSelect","SelectValue","selectedText","defaultChildren","ListBox","SelectItem","SelectSection"],"mappings":"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"}