shadcn-ui-react 0.7.9 → 0.7.11
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/README.md +1 -1
- package/bin/shadcn-ui-react.mjs +1 -1
- package/dist/index.cjs +1662 -1012
- package/dist/index.d.cts +104 -26
- package/dist/index.d.ts +104 -26
- package/dist/index.js +1626 -989
- package/dist/style.css +217 -163
- package/package.json +31 -19
package/dist/index.js
CHANGED
|
@@ -2850,16 +2850,16 @@ var DateLib = class _DateLib {
|
|
|
2850
2850
|
* @param overrides Custom overrides for the date library functions.
|
|
2851
2851
|
*/
|
|
2852
2852
|
constructor(options, overrides) {
|
|
2853
|
-
this.Date = Date;
|
|
2854
2853
|
this.today = () => {
|
|
2855
|
-
var _a;
|
|
2854
|
+
var _a, _b;
|
|
2856
2855
|
if ((_a = this.overrides) == null ? void 0 : _a.today) {
|
|
2857
2856
|
return this.overrides.today();
|
|
2858
2857
|
}
|
|
2859
2858
|
if (this.options.timeZone) {
|
|
2860
2859
|
return TZDate.tz(this.options.timeZone);
|
|
2861
2860
|
}
|
|
2862
|
-
|
|
2861
|
+
const DateCtor = (_b = this.options.Date) != null ? _b : Date;
|
|
2862
|
+
return new DateCtor();
|
|
2863
2863
|
};
|
|
2864
2864
|
this.newDate = (year, monthIndex, date) => {
|
|
2865
2865
|
var _a;
|
|
@@ -3162,7 +3162,6 @@ var CalendarWeek = class {
|
|
|
3162
3162
|
// node_modules/react-day-picker/dist/esm/components/custom-components.js
|
|
3163
3163
|
var custom_components_exports = {};
|
|
3164
3164
|
__export(custom_components_exports, {
|
|
3165
|
-
Button: () => Button2,
|
|
3166
3165
|
CaptionLabel: () => CaptionLabel,
|
|
3167
3166
|
Chevron: () => Chevron,
|
|
3168
3167
|
Day: () => Day,
|
|
@@ -3190,57 +3189,48 @@ __export(custom_components_exports, {
|
|
|
3190
3189
|
YearsDropdown: () => YearsDropdown
|
|
3191
3190
|
});
|
|
3192
3191
|
|
|
3193
|
-
// node_modules/react-day-picker/dist/esm/components/Button.js
|
|
3194
|
-
import React8 from "react";
|
|
3195
|
-
function Button2(props) {
|
|
3196
|
-
return React8.createElement("button", __spreadValues({}, props));
|
|
3197
|
-
}
|
|
3198
|
-
|
|
3199
3192
|
// node_modules/react-day-picker/dist/esm/components/CaptionLabel.js
|
|
3200
|
-
import
|
|
3193
|
+
import React8 from "react";
|
|
3201
3194
|
function CaptionLabel(props) {
|
|
3202
|
-
return
|
|
3195
|
+
return React8.createElement("span", __spreadValues({}, props));
|
|
3203
3196
|
}
|
|
3204
3197
|
|
|
3205
3198
|
// node_modules/react-day-picker/dist/esm/components/Chevron.js
|
|
3206
|
-
import
|
|
3199
|
+
import React9 from "react";
|
|
3207
3200
|
function Chevron(props) {
|
|
3208
3201
|
const { size = 24, orientation = "left", className } = props;
|
|
3209
|
-
return (
|
|
3210
|
-
|
|
3211
|
-
|
|
3212
|
-
|
|
3213
|
-
|
|
3214
|
-
|
|
3215
|
-
|
|
3216
|
-
orientation === "left" && React10.createElement("polygon", { points: "16 18.112 9.81111111 12 16 5.87733333 14.0888889 4 6 12 14.0888889 20" }),
|
|
3217
|
-
orientation === "right" && React10.createElement("polygon", { points: "8 18.112 14.18888889 12 8 5.87733333 9.91111111 4 18 12 9.91111111 20" })
|
|
3218
|
-
)
|
|
3202
|
+
return React9.createElement(
|
|
3203
|
+
"svg",
|
|
3204
|
+
{ className, width: size, height: size, viewBox: "0 0 24 24" },
|
|
3205
|
+
orientation === "up" && React9.createElement("polygon", { points: "6.77 17 12.5 11.43 18.24 17 20 15.28 12.5 8 5 15.28" }),
|
|
3206
|
+
orientation === "down" && React9.createElement("polygon", { points: "6.77 8 12.5 13.57 18.24 8 20 9.72 12.5 17 5 9.72" }),
|
|
3207
|
+
orientation === "left" && React9.createElement("polygon", { points: "16 18.112 9.81111111 12 16 5.87733333 14.0888889 4 6 12 14.0888889 20" }),
|
|
3208
|
+
orientation === "right" && React9.createElement("polygon", { points: "8 18.112 14.18888889 12 8 5.87733333 9.91111111 4 18 12 9.91111111 20" })
|
|
3219
3209
|
);
|
|
3220
3210
|
}
|
|
3221
3211
|
|
|
3222
3212
|
// node_modules/react-day-picker/dist/esm/components/Day.js
|
|
3223
|
-
import
|
|
3213
|
+
import React10 from "react";
|
|
3224
3214
|
function Day(props) {
|
|
3225
3215
|
const _a = props, { day, modifiers } = _a, tdProps = __objRest(_a, ["day", "modifiers"]);
|
|
3226
|
-
return
|
|
3216
|
+
return React10.createElement("td", __spreadValues({}, tdProps));
|
|
3227
3217
|
}
|
|
3228
3218
|
|
|
3229
3219
|
// node_modules/react-day-picker/dist/esm/components/DayButton.js
|
|
3230
|
-
import
|
|
3220
|
+
import React11 from "react";
|
|
3231
3221
|
function DayButton(props) {
|
|
3232
3222
|
const _a = props, { day, modifiers } = _a, buttonProps = __objRest(_a, ["day", "modifiers"]);
|
|
3233
|
-
const ref =
|
|
3234
|
-
|
|
3223
|
+
const ref = React11.useRef(null);
|
|
3224
|
+
React11.useEffect(() => {
|
|
3235
3225
|
var _a2;
|
|
3236
3226
|
if (modifiers.focused)
|
|
3237
3227
|
(_a2 = ref.current) == null ? void 0 : _a2.focus();
|
|
3238
3228
|
}, [modifiers.focused]);
|
|
3239
|
-
return
|
|
3229
|
+
return React11.createElement("button", __spreadValues({ ref }, buttonProps));
|
|
3240
3230
|
}
|
|
3241
3231
|
|
|
3242
3232
|
// node_modules/react-day-picker/dist/esm/components/Dropdown.js
|
|
3243
|
-
import
|
|
3233
|
+
import React12 from "react";
|
|
3244
3234
|
|
|
3245
3235
|
// node_modules/react-day-picker/dist/esm/UI.js
|
|
3246
3236
|
var UI;
|
|
@@ -3297,84 +3287,83 @@ var Animation;
|
|
|
3297
3287
|
Animation2["caption_before_exit"] = "caption_before_exit";
|
|
3298
3288
|
})(Animation || (Animation = {}));
|
|
3299
3289
|
|
|
3290
|
+
// node_modules/react-day-picker/dist/esm/useDayPicker.js
|
|
3291
|
+
import { createContext, useContext } from "react";
|
|
3292
|
+
var dayPickerContext = createContext(void 0);
|
|
3293
|
+
function useDayPicker() {
|
|
3294
|
+
const context = useContext(dayPickerContext);
|
|
3295
|
+
if (context === void 0) {
|
|
3296
|
+
throw new Error("useDayPicker() must be used within a custom component.");
|
|
3297
|
+
}
|
|
3298
|
+
return context;
|
|
3299
|
+
}
|
|
3300
|
+
|
|
3300
3301
|
// node_modules/react-day-picker/dist/esm/components/Dropdown.js
|
|
3301
3302
|
function Dropdown(props) {
|
|
3302
|
-
const _a = props, { options, className
|
|
3303
|
+
const _a = props, { options, className } = _a, selectProps = __objRest(_a, ["options", "className"]);
|
|
3304
|
+
const { classNames, components } = useDayPicker();
|
|
3303
3305
|
const cssClassSelect = [classNames[UI.Dropdown], className].join(" ");
|
|
3304
3306
|
const selectedOption = options == null ? void 0 : options.find(({ value }) => value === selectProps.value);
|
|
3305
|
-
return
|
|
3307
|
+
return React12.createElement(
|
|
3306
3308
|
"span",
|
|
3307
3309
|
{ "data-disabled": selectProps.disabled, className: classNames[UI.DropdownRoot] },
|
|
3308
|
-
|
|
3309
|
-
|
|
3310
|
+
React12.createElement(components.Select, __spreadValues({ className: cssClassSelect }, selectProps), options == null ? void 0 : options.map(({ value, label, disabled }) => React12.createElement(components.Option, { key: value, value, disabled }, label))),
|
|
3311
|
+
React12.createElement(
|
|
3310
3312
|
"span",
|
|
3311
3313
|
{ className: classNames[UI.CaptionLabel], "aria-hidden": true },
|
|
3312
3314
|
selectedOption == null ? void 0 : selectedOption.label,
|
|
3313
|
-
|
|
3315
|
+
React12.createElement(components.Chevron, { orientation: "down", size: 18, className: classNames[UI.Chevron] })
|
|
3314
3316
|
)
|
|
3315
3317
|
);
|
|
3316
3318
|
}
|
|
3317
3319
|
|
|
3318
3320
|
// node_modules/react-day-picker/dist/esm/components/DropdownNav.js
|
|
3319
|
-
import
|
|
3321
|
+
import React13 from "react";
|
|
3320
3322
|
function DropdownNav(props) {
|
|
3321
|
-
return
|
|
3323
|
+
return React13.createElement("div", __spreadValues({}, props));
|
|
3322
3324
|
}
|
|
3323
3325
|
|
|
3324
3326
|
// node_modules/react-day-picker/dist/esm/components/Footer.js
|
|
3325
|
-
import
|
|
3327
|
+
import React14 from "react";
|
|
3326
3328
|
function Footer(props) {
|
|
3327
|
-
return
|
|
3329
|
+
return React14.createElement("div", __spreadValues({}, props));
|
|
3328
3330
|
}
|
|
3329
3331
|
|
|
3330
3332
|
// node_modules/react-day-picker/dist/esm/components/Month.js
|
|
3331
|
-
import
|
|
3333
|
+
import React15 from "react";
|
|
3332
3334
|
function Month(props) {
|
|
3333
3335
|
const _a = props, { calendarMonth, displayIndex } = _a, divProps = __objRest(_a, ["calendarMonth", "displayIndex"]);
|
|
3334
|
-
return
|
|
3336
|
+
return React15.createElement("div", __spreadValues({}, divProps), props.children);
|
|
3335
3337
|
}
|
|
3336
3338
|
|
|
3337
3339
|
// node_modules/react-day-picker/dist/esm/components/MonthCaption.js
|
|
3338
|
-
import
|
|
3340
|
+
import React16 from "react";
|
|
3339
3341
|
function MonthCaption(props) {
|
|
3340
3342
|
const _a = props, { calendarMonth, displayIndex } = _a, divProps = __objRest(_a, ["calendarMonth", "displayIndex"]);
|
|
3341
|
-
return
|
|
3343
|
+
return React16.createElement("div", __spreadValues({}, divProps));
|
|
3342
3344
|
}
|
|
3343
3345
|
|
|
3344
3346
|
// node_modules/react-day-picker/dist/esm/components/MonthGrid.js
|
|
3345
|
-
import
|
|
3347
|
+
import React17 from "react";
|
|
3346
3348
|
function MonthGrid(props) {
|
|
3347
|
-
return
|
|
3349
|
+
return React17.createElement("table", __spreadValues({}, props));
|
|
3348
3350
|
}
|
|
3349
3351
|
|
|
3350
3352
|
// node_modules/react-day-picker/dist/esm/components/Months.js
|
|
3351
|
-
import
|
|
3353
|
+
import React18 from "react";
|
|
3352
3354
|
function Months(props) {
|
|
3353
|
-
return
|
|
3354
|
-
}
|
|
3355
|
-
|
|
3356
|
-
// node_modules/react-day-picker/dist/esm/components/MonthsDropdown.js
|
|
3357
|
-
import React20 from "react";
|
|
3358
|
-
|
|
3359
|
-
// node_modules/react-day-picker/dist/esm/useDayPicker.js
|
|
3360
|
-
import { createContext, useContext } from "react";
|
|
3361
|
-
var dayPickerContext = createContext(void 0);
|
|
3362
|
-
function useDayPicker() {
|
|
3363
|
-
const context = useContext(dayPickerContext);
|
|
3364
|
-
if (context === void 0) {
|
|
3365
|
-
throw new Error("useDayPicker() must be used within a custom component.");
|
|
3366
|
-
}
|
|
3367
|
-
return context;
|
|
3355
|
+
return React18.createElement("div", __spreadValues({}, props));
|
|
3368
3356
|
}
|
|
3369
3357
|
|
|
3370
3358
|
// node_modules/react-day-picker/dist/esm/components/MonthsDropdown.js
|
|
3359
|
+
import React19 from "react";
|
|
3371
3360
|
function MonthsDropdown(props) {
|
|
3372
3361
|
const { components } = useDayPicker();
|
|
3373
|
-
return
|
|
3362
|
+
return React19.createElement(components.Dropdown, __spreadValues({}, props));
|
|
3374
3363
|
}
|
|
3375
3364
|
|
|
3376
3365
|
// node_modules/react-day-picker/dist/esm/components/Nav.js
|
|
3377
|
-
import
|
|
3366
|
+
import React20, { useCallback } from "react";
|
|
3378
3367
|
function Nav(props) {
|
|
3379
3368
|
const _a = props, { onPreviousClick, onNextClick, previousMonth, nextMonth } = _a, navProps = __objRest(_a, ["onPreviousClick", "onNextClick", "previousMonth", "nextMonth"]);
|
|
3380
3369
|
const { components, classNames, labels: { labelPrevious: labelPrevious2, labelNext: labelNext2 } } = useDayPicker();
|
|
@@ -3388,106 +3377,104 @@ function Nav(props) {
|
|
|
3388
3377
|
onPreviousClick == null ? void 0 : onPreviousClick(e);
|
|
3389
3378
|
}
|
|
3390
3379
|
}, [previousMonth, onPreviousClick]);
|
|
3391
|
-
return
|
|
3380
|
+
return React20.createElement(
|
|
3392
3381
|
"nav",
|
|
3393
3382
|
__spreadValues({}, navProps),
|
|
3394
|
-
|
|
3383
|
+
React20.createElement(
|
|
3395
3384
|
components.PreviousMonthButton,
|
|
3396
3385
|
{ type: "button", className: classNames[UI.PreviousMonthButton], tabIndex: previousMonth ? void 0 : -1, "aria-disabled": previousMonth ? void 0 : true, "aria-label": labelPrevious2(previousMonth), onClick: handlePreviousClick },
|
|
3397
|
-
|
|
3386
|
+
React20.createElement(components.Chevron, { disabled: previousMonth ? void 0 : true, className: classNames[UI.Chevron], orientation: "left" })
|
|
3398
3387
|
),
|
|
3399
|
-
|
|
3388
|
+
React20.createElement(
|
|
3400
3389
|
components.NextMonthButton,
|
|
3401
3390
|
{ type: "button", className: classNames[UI.NextMonthButton], tabIndex: nextMonth ? void 0 : -1, "aria-disabled": nextMonth ? void 0 : true, "aria-label": labelNext2(nextMonth), onClick: handleNextClick },
|
|
3402
|
-
|
|
3391
|
+
React20.createElement(components.Chevron, { disabled: nextMonth ? void 0 : true, orientation: "right", className: classNames[UI.Chevron] })
|
|
3403
3392
|
)
|
|
3404
3393
|
);
|
|
3405
3394
|
}
|
|
3406
3395
|
|
|
3407
3396
|
// node_modules/react-day-picker/dist/esm/components/NextMonthButton.js
|
|
3408
|
-
import
|
|
3397
|
+
import React21 from "react";
|
|
3409
3398
|
function NextMonthButton(props) {
|
|
3410
|
-
|
|
3411
|
-
return React22.createElement(components.Button, __spreadValues({}, props));
|
|
3399
|
+
return React21.createElement("button", __spreadValues({}, props));
|
|
3412
3400
|
}
|
|
3413
3401
|
|
|
3414
3402
|
// node_modules/react-day-picker/dist/esm/components/Option.js
|
|
3415
|
-
import
|
|
3403
|
+
import React22 from "react";
|
|
3416
3404
|
function Option(props) {
|
|
3417
|
-
return
|
|
3405
|
+
return React22.createElement("option", __spreadValues({}, props));
|
|
3418
3406
|
}
|
|
3419
3407
|
|
|
3420
3408
|
// node_modules/react-day-picker/dist/esm/components/PreviousMonthButton.js
|
|
3421
|
-
import
|
|
3409
|
+
import React23 from "react";
|
|
3422
3410
|
function PreviousMonthButton(props) {
|
|
3423
|
-
|
|
3424
|
-
return React24.createElement(components.Button, __spreadValues({}, props));
|
|
3411
|
+
return React23.createElement("button", __spreadValues({}, props));
|
|
3425
3412
|
}
|
|
3426
3413
|
|
|
3427
3414
|
// node_modules/react-day-picker/dist/esm/components/Root.js
|
|
3428
|
-
import
|
|
3415
|
+
import React24 from "react";
|
|
3429
3416
|
function Root5(props) {
|
|
3430
3417
|
const _a = props, { rootRef } = _a, rest = __objRest(_a, ["rootRef"]);
|
|
3431
|
-
return
|
|
3418
|
+
return React24.createElement("div", __spreadProps(__spreadValues({}, rest), { ref: rootRef }));
|
|
3432
3419
|
}
|
|
3433
3420
|
|
|
3434
3421
|
// node_modules/react-day-picker/dist/esm/components/Select.js
|
|
3435
|
-
import
|
|
3422
|
+
import React25 from "react";
|
|
3436
3423
|
function Select(props) {
|
|
3437
|
-
return
|
|
3424
|
+
return React25.createElement("select", __spreadValues({}, props));
|
|
3438
3425
|
}
|
|
3439
3426
|
|
|
3440
3427
|
// node_modules/react-day-picker/dist/esm/components/Week.js
|
|
3441
|
-
import
|
|
3428
|
+
import React26 from "react";
|
|
3442
3429
|
function Week(props) {
|
|
3443
3430
|
const _a = props, { week } = _a, trProps = __objRest(_a, ["week"]);
|
|
3444
|
-
return
|
|
3431
|
+
return React26.createElement("tr", __spreadValues({}, trProps));
|
|
3445
3432
|
}
|
|
3446
3433
|
|
|
3447
3434
|
// node_modules/react-day-picker/dist/esm/components/Weekday.js
|
|
3448
|
-
import
|
|
3435
|
+
import React27 from "react";
|
|
3449
3436
|
function Weekday(props) {
|
|
3450
|
-
return
|
|
3437
|
+
return React27.createElement("th", __spreadValues({}, props));
|
|
3451
3438
|
}
|
|
3452
3439
|
|
|
3453
3440
|
// node_modules/react-day-picker/dist/esm/components/Weekdays.js
|
|
3454
|
-
import
|
|
3441
|
+
import React28 from "react";
|
|
3455
3442
|
function Weekdays(props) {
|
|
3456
|
-
return
|
|
3443
|
+
return React28.createElement(
|
|
3457
3444
|
"thead",
|
|
3458
3445
|
{ "aria-hidden": true },
|
|
3459
|
-
|
|
3446
|
+
React28.createElement("tr", __spreadValues({}, props))
|
|
3460
3447
|
);
|
|
3461
3448
|
}
|
|
3462
3449
|
|
|
3463
3450
|
// node_modules/react-day-picker/dist/esm/components/WeekNumber.js
|
|
3464
|
-
import
|
|
3451
|
+
import React29 from "react";
|
|
3465
3452
|
function WeekNumber(props) {
|
|
3466
3453
|
const _a = props, { week } = _a, thProps = __objRest(_a, ["week"]);
|
|
3467
|
-
return
|
|
3454
|
+
return React29.createElement("th", __spreadValues({}, thProps));
|
|
3468
3455
|
}
|
|
3469
3456
|
|
|
3470
3457
|
// node_modules/react-day-picker/dist/esm/components/WeekNumberHeader.js
|
|
3471
|
-
import
|
|
3458
|
+
import React30 from "react";
|
|
3472
3459
|
function WeekNumberHeader(props) {
|
|
3473
|
-
return
|
|
3460
|
+
return React30.createElement("th", __spreadValues({}, props));
|
|
3474
3461
|
}
|
|
3475
3462
|
|
|
3476
3463
|
// node_modules/react-day-picker/dist/esm/components/Weeks.js
|
|
3477
|
-
import
|
|
3464
|
+
import React31 from "react";
|
|
3478
3465
|
function Weeks(props) {
|
|
3479
|
-
return
|
|
3466
|
+
return React31.createElement("tbody", __spreadValues({}, props));
|
|
3480
3467
|
}
|
|
3481
3468
|
|
|
3482
3469
|
// node_modules/react-day-picker/dist/esm/components/YearsDropdown.js
|
|
3483
|
-
import
|
|
3470
|
+
import React32 from "react";
|
|
3484
3471
|
function YearsDropdown(props) {
|
|
3485
3472
|
const { components } = useDayPicker();
|
|
3486
|
-
return
|
|
3473
|
+
return React32.createElement(components.Dropdown, __spreadValues({}, props));
|
|
3487
3474
|
}
|
|
3488
3475
|
|
|
3489
3476
|
// node_modules/react-day-picker/dist/esm/DayPicker.js
|
|
3490
|
-
import
|
|
3477
|
+
import React33, { useCallback as useCallback2, useMemo as useMemo2, useRef as useRef2 } from "react";
|
|
3491
3478
|
|
|
3492
3479
|
// node_modules/react-day-picker/dist/esm/utils/rangeIncludesDate.js
|
|
3493
3480
|
function rangeIncludesDate(range, date, excludeEnds = false, dateLib = defaultDateLib) {
|
|
@@ -3705,12 +3692,10 @@ var formatters_exports = {};
|
|
|
3705
3692
|
__export(formatters_exports, {
|
|
3706
3693
|
formatCaption: () => formatCaption,
|
|
3707
3694
|
formatDay: () => formatDay,
|
|
3708
|
-
formatMonthCaption: () => formatMonthCaption,
|
|
3709
3695
|
formatMonthDropdown: () => formatMonthDropdown,
|
|
3710
3696
|
formatWeekNumber: () => formatWeekNumber,
|
|
3711
3697
|
formatWeekNumberHeader: () => formatWeekNumberHeader,
|
|
3712
3698
|
formatWeekdayName: () => formatWeekdayName,
|
|
3713
|
-
formatYearCaption: () => formatYearCaption,
|
|
3714
3699
|
formatYearDropdown: () => formatYearDropdown
|
|
3715
3700
|
});
|
|
3716
3701
|
|
|
@@ -3719,7 +3704,6 @@ function formatCaption(month, options, dateLib) {
|
|
|
3719
3704
|
const lib = dateLib != null ? dateLib : new DateLib(options);
|
|
3720
3705
|
return lib.formatMonthYear(month);
|
|
3721
3706
|
}
|
|
3722
|
-
var formatMonthCaption = formatCaption;
|
|
3723
3707
|
|
|
3724
3708
|
// node_modules/react-day-picker/dist/esm/formatters/formatDay.js
|
|
3725
3709
|
function formatDay(date, options, dateLib) {
|
|
@@ -3753,24 +3737,15 @@ function formatWeekNumberHeader() {
|
|
|
3753
3737
|
function formatYearDropdown(year, dateLib = defaultDateLib) {
|
|
3754
3738
|
return dateLib.format(year, "yyyy");
|
|
3755
3739
|
}
|
|
3756
|
-
var formatYearCaption = formatYearDropdown;
|
|
3757
3740
|
|
|
3758
3741
|
// node_modules/react-day-picker/dist/esm/helpers/getFormatters.js
|
|
3759
3742
|
function getFormatters(customFormatters) {
|
|
3760
|
-
if ((customFormatters == null ? void 0 : customFormatters.formatMonthCaption) && !customFormatters.formatCaption) {
|
|
3761
|
-
customFormatters.formatCaption = customFormatters.formatMonthCaption;
|
|
3762
|
-
}
|
|
3763
|
-
if ((customFormatters == null ? void 0 : customFormatters.formatYearCaption) && !customFormatters.formatYearDropdown) {
|
|
3764
|
-
customFormatters.formatYearDropdown = customFormatters.formatYearCaption;
|
|
3765
|
-
}
|
|
3766
3743
|
return __spreadValues(__spreadValues({}, formatters_exports), customFormatters);
|
|
3767
3744
|
}
|
|
3768
3745
|
|
|
3769
3746
|
// node_modules/react-day-picker/dist/esm/labels/index.js
|
|
3770
3747
|
var labels_exports = {};
|
|
3771
3748
|
__export(labels_exports, {
|
|
3772
|
-
labelCaption: () => labelCaption,
|
|
3773
|
-
labelDay: () => labelDay,
|
|
3774
3749
|
labelDayButton: () => labelDayButton,
|
|
3775
3750
|
labelGrid: () => labelGrid,
|
|
3776
3751
|
labelGridcell: () => labelGridcell,
|
|
@@ -3793,14 +3768,12 @@ function labelDayButton(date, modifiers, options, dateLib) {
|
|
|
3793
3768
|
label = `${label}, selected`;
|
|
3794
3769
|
return label;
|
|
3795
3770
|
}
|
|
3796
|
-
var labelDay = labelDayButton;
|
|
3797
3771
|
|
|
3798
3772
|
// node_modules/react-day-picker/dist/esm/labels/labelGrid.js
|
|
3799
3773
|
function labelGrid(date, options, dateLib) {
|
|
3800
3774
|
const lib = dateLib != null ? dateLib : new DateLib(options);
|
|
3801
3775
|
return lib.formatMonthYear(date);
|
|
3802
3776
|
}
|
|
3803
|
-
var labelCaption = labelGrid;
|
|
3804
3777
|
|
|
3805
3778
|
// node_modules/react-day-picker/dist/esm/labels/labelGridcell.js
|
|
3806
3779
|
function labelGridcell(date, modifiers, options, dateLib) {
|
|
@@ -4144,7 +4117,7 @@ function useAnimation(rootElRef, enabled, { classNames, months, focused, dateLib
|
|
|
4144
4117
|
}
|
|
4145
4118
|
const previousMonthEls = previousRootElSnapshot instanceof HTMLElement ? queryMonthEls(previousRootElSnapshot) : [];
|
|
4146
4119
|
const currentMonthEls = queryMonthEls(rootElRef.current);
|
|
4147
|
-
if ((currentMonthEls == null ? void 0 : currentMonthEls.every((el) => el instanceof HTMLElement)) && previousMonthEls
|
|
4120
|
+
if ((currentMonthEls == null ? void 0 : currentMonthEls.every((el) => el instanceof HTMLElement)) && (previousMonthEls == null ? void 0 : previousMonthEls.every((el) => el instanceof HTMLElement))) {
|
|
4148
4121
|
animatingRef.current = true;
|
|
4149
4122
|
const cleanUpFunctions = [];
|
|
4150
4123
|
rootElRef.current.style.isolation = "isolate";
|
|
@@ -4326,32 +4299,15 @@ function getMonths(displayMonths, dates, props, dateLib) {
|
|
|
4326
4299
|
function getNavMonths(props, dateLib) {
|
|
4327
4300
|
var _a, _b;
|
|
4328
4301
|
let { startMonth, endMonth } = props;
|
|
4329
|
-
const { startOfYear: startOfYear2, startOfDay: startOfDay2, startOfMonth: startOfMonth2, endOfMonth: endOfMonth2, addYears: addYears2, endOfYear: endOfYear2,
|
|
4330
|
-
const { fromYear, toYear, fromMonth, toMonth } = props;
|
|
4331
|
-
if (!startMonth && fromMonth) {
|
|
4332
|
-
startMonth = fromMonth;
|
|
4333
|
-
}
|
|
4334
|
-
if (!startMonth && fromYear) {
|
|
4335
|
-
startMonth = dateLib.newDate(fromYear, 0, 1);
|
|
4336
|
-
}
|
|
4337
|
-
if (!endMonth && toMonth) {
|
|
4338
|
-
endMonth = toMonth;
|
|
4339
|
-
}
|
|
4340
|
-
if (!endMonth && toYear) {
|
|
4341
|
-
endMonth = newDate(toYear, 11, 31);
|
|
4342
|
-
}
|
|
4302
|
+
const { startOfYear: startOfYear2, startOfDay: startOfDay2, startOfMonth: startOfMonth2, endOfMonth: endOfMonth2, addYears: addYears2, endOfYear: endOfYear2, today } = dateLib;
|
|
4343
4303
|
const hasYearDropdown = props.captionLayout === "dropdown" || props.captionLayout === "dropdown-years";
|
|
4344
4304
|
if (startMonth) {
|
|
4345
4305
|
startMonth = startOfMonth2(startMonth);
|
|
4346
|
-
} else if (fromYear) {
|
|
4347
|
-
startMonth = newDate(fromYear, 0, 1);
|
|
4348
4306
|
} else if (!startMonth && hasYearDropdown) {
|
|
4349
4307
|
startMonth = startOfYear2(addYears2((_a = props.today) != null ? _a : today(), -100));
|
|
4350
4308
|
}
|
|
4351
4309
|
if (endMonth) {
|
|
4352
4310
|
endMonth = endOfMonth2(endMonth);
|
|
4353
|
-
} else if (toYear) {
|
|
4354
|
-
endMonth = newDate(toYear, 11, 31);
|
|
4355
4311
|
} else if (!endMonth && hasYearDropdown) {
|
|
4356
4312
|
endMonth = endOfYear2((_b = props.today) != null ? _b : today());
|
|
4357
4313
|
}
|
|
@@ -5104,15 +5060,15 @@ function DayPicker(initialProps) {
|
|
|
5104
5060
|
const handleDayMouseLeave = useCallback2((day, modifiers) => (e) => {
|
|
5105
5061
|
onDayMouseLeave == null ? void 0 : onDayMouseLeave(day.date, modifiers, e);
|
|
5106
5062
|
}, [onDayMouseLeave]);
|
|
5107
|
-
const handleMonthChange = useCallback2((date) => (e) => {
|
|
5063
|
+
const handleMonthChange = useCallback2((date, monthOffset) => (e) => {
|
|
5108
5064
|
const selectedMonth = Number(e.target.value);
|
|
5109
5065
|
const month = dateLib.setMonth(dateLib.startOfMonth(date), selectedMonth);
|
|
5110
|
-
goToMonth(month);
|
|
5066
|
+
goToMonth(dateLib.addMonths(month, -monthOffset));
|
|
5111
5067
|
}, [dateLib, goToMonth]);
|
|
5112
|
-
const handleYearChange = useCallback2((date) => (e) => {
|
|
5068
|
+
const handleYearChange = useCallback2((date, monthOffset) => (e) => {
|
|
5113
5069
|
const selectedYear = Number(e.target.value);
|
|
5114
5070
|
const month = dateLib.setYear(dateLib.startOfMonth(date), selectedYear);
|
|
5115
|
-
goToMonth(month);
|
|
5071
|
+
goToMonth(dateLib.addMonths(month, -monthOffset));
|
|
5116
5072
|
}, [dateLib, goToMonth]);
|
|
5117
5073
|
const { className, style } = useMemo2(() => ({
|
|
5118
5074
|
className: [classNames[UI.Root], props.className].filter(Boolean).join(" "),
|
|
@@ -5142,18 +5098,19 @@ function DayPicker(initialProps) {
|
|
|
5142
5098
|
labels,
|
|
5143
5099
|
formatters: formatters2
|
|
5144
5100
|
};
|
|
5145
|
-
return
|
|
5101
|
+
return React33.createElement(
|
|
5146
5102
|
dayPickerContext.Provider,
|
|
5147
5103
|
{ value: contextValue },
|
|
5148
|
-
|
|
5104
|
+
React33.createElement(
|
|
5149
5105
|
components.Root,
|
|
5150
5106
|
__spreadValues({ rootRef: props.animate ? rootElRef : void 0, className, style, dir: props.dir, id: props.id, lang: (_c = props.lang) != null ? _c : locale.code, nonce: props.nonce, title: props.title, role: props.role, "aria-label": props["aria-label"], "aria-labelledby": props["aria-labelledby"] }, dataAttributes),
|
|
5151
|
-
|
|
5107
|
+
React33.createElement(
|
|
5152
5108
|
components.Months,
|
|
5153
5109
|
{ className: classNames[UI.Months], style: styles == null ? void 0 : styles[UI.Months] },
|
|
5154
|
-
!props.hideNavigation && !navLayout &&
|
|
5110
|
+
!props.hideNavigation && !navLayout && React33.createElement(components.Nav, { "data-animated-nav": props.animate ? "true" : void 0, className: classNames[UI.Nav], style: styles == null ? void 0 : styles[UI.Nav], "aria-label": labelNav2(), onPreviousClick: handlePreviousClick, onNextClick: handleNextClick, previousMonth, nextMonth }),
|
|
5155
5111
|
months.map((calendarMonth, displayIndex) => {
|
|
5156
|
-
|
|
5112
|
+
const monthOffset = props.reverseMonths ? months.length - 1 - displayIndex : displayIndex;
|
|
5113
|
+
return React33.createElement(
|
|
5157
5114
|
components.Month,
|
|
5158
5115
|
{
|
|
5159
5116
|
"data-animated-month": props.animate ? "true" : void 0,
|
|
@@ -5164,21 +5121,21 @@ function DayPicker(initialProps) {
|
|
|
5164
5121
|
displayIndex,
|
|
5165
5122
|
calendarMonth
|
|
5166
5123
|
},
|
|
5167
|
-
navLayout === "around" && !props.hideNavigation && displayIndex === 0 &&
|
|
5124
|
+
navLayout === "around" && !props.hideNavigation && displayIndex === 0 && React33.createElement(
|
|
5168
5125
|
components.PreviousMonthButton,
|
|
5169
5126
|
{ type: "button", className: classNames[UI.PreviousMonthButton], tabIndex: previousMonth ? void 0 : -1, "aria-disabled": previousMonth ? void 0 : true, "aria-label": labelPrevious2(previousMonth), onClick: handlePreviousClick, "data-animated-button": props.animate ? "true" : void 0 },
|
|
5170
|
-
|
|
5127
|
+
React33.createElement(components.Chevron, { disabled: previousMonth ? void 0 : true, className: classNames[UI.Chevron], orientation: props.dir === "rtl" ? "right" : "left" })
|
|
5171
5128
|
),
|
|
5172
|
-
|
|
5129
|
+
React33.createElement(components.MonthCaption, { "data-animated-caption": props.animate ? "true" : void 0, className: classNames[UI.MonthCaption], style: styles == null ? void 0 : styles[UI.MonthCaption], calendarMonth, displayIndex }, (captionLayout == null ? void 0 : captionLayout.startsWith("dropdown")) ? React33.createElement(
|
|
5173
5130
|
components.DropdownNav,
|
|
5174
5131
|
{ className: classNames[UI.Dropdowns], style: styles == null ? void 0 : styles[UI.Dropdowns] },
|
|
5175
5132
|
(() => {
|
|
5176
|
-
const monthControl = captionLayout === "dropdown" || captionLayout === "dropdown-months" ?
|
|
5177
|
-
const yearControl = captionLayout === "dropdown" || captionLayout === "dropdown-years" ?
|
|
5133
|
+
const monthControl = captionLayout === "dropdown" || captionLayout === "dropdown-months" ? React33.createElement(components.MonthsDropdown, { key: "month", className: classNames[UI.MonthsDropdown], "aria-label": labelMonthDropdown2(), disabled: Boolean(props.disableNavigation), onChange: handleMonthChange(calendarMonth.date, monthOffset), options: getMonthOptions(calendarMonth.date, navStart, navEnd, formatters2, dateLib), style: styles == null ? void 0 : styles[UI.Dropdown], value: dateLib.getMonth(calendarMonth.date) }) : React33.createElement("span", { key: "month" }, formatMonthDropdown2(calendarMonth.date, dateLib));
|
|
5134
|
+
const yearControl = captionLayout === "dropdown" || captionLayout === "dropdown-years" ? React33.createElement(components.YearsDropdown, { key: "year", className: classNames[UI.YearsDropdown], "aria-label": labelYearDropdown2(dateLib.options), disabled: Boolean(props.disableNavigation), onChange: handleYearChange(calendarMonth.date, monthOffset), options: getYearOptions(navStart, navEnd, formatters2, dateLib, Boolean(props.reverseYears)), style: styles == null ? void 0 : styles[UI.Dropdown], value: dateLib.getYear(calendarMonth.date) }) : React33.createElement("span", { key: "year" }, formatYearDropdown2(calendarMonth.date, dateLib));
|
|
5178
5135
|
const controls = dateLib.getMonthYearOrder() === "year-first" ? [yearControl, monthControl] : [monthControl, yearControl];
|
|
5179
5136
|
return controls;
|
|
5180
5137
|
})(),
|
|
5181
|
-
|
|
5138
|
+
React33.createElement("span", { role: "status", "aria-live": "polite", style: {
|
|
5182
5139
|
border: 0,
|
|
5183
5140
|
clip: "rect(0 0 0 0)",
|
|
5184
5141
|
height: "1px",
|
|
@@ -5190,27 +5147,27 @@ function DayPicker(initialProps) {
|
|
|
5190
5147
|
whiteSpace: "nowrap",
|
|
5191
5148
|
wordWrap: "normal"
|
|
5192
5149
|
} }, formatCaption2(calendarMonth.date, dateLib.options, dateLib))
|
|
5193
|
-
) :
|
|
5194
|
-
navLayout === "around" && !props.hideNavigation && displayIndex === numberOfMonths - 1 &&
|
|
5150
|
+
) : React33.createElement(components.CaptionLabel, { className: classNames[UI.CaptionLabel], role: "status", "aria-live": "polite" }, formatCaption2(calendarMonth.date, dateLib.options, dateLib))),
|
|
5151
|
+
navLayout === "around" && !props.hideNavigation && displayIndex === numberOfMonths - 1 && React33.createElement(
|
|
5195
5152
|
components.NextMonthButton,
|
|
5196
5153
|
{ type: "button", className: classNames[UI.NextMonthButton], tabIndex: nextMonth ? void 0 : -1, "aria-disabled": nextMonth ? void 0 : true, "aria-label": labelNext2(nextMonth), onClick: handleNextClick, "data-animated-button": props.animate ? "true" : void 0 },
|
|
5197
|
-
|
|
5154
|
+
React33.createElement(components.Chevron, { disabled: nextMonth ? void 0 : true, className: classNames[UI.Chevron], orientation: props.dir === "rtl" ? "left" : "right" })
|
|
5198
5155
|
),
|
|
5199
|
-
displayIndex === numberOfMonths - 1 && navLayout === "after" && !props.hideNavigation &&
|
|
5200
|
-
|
|
5156
|
+
displayIndex === numberOfMonths - 1 && navLayout === "after" && !props.hideNavigation && React33.createElement(components.Nav, { "data-animated-nav": props.animate ? "true" : void 0, className: classNames[UI.Nav], style: styles == null ? void 0 : styles[UI.Nav], "aria-label": labelNav2(), onPreviousClick: handlePreviousClick, onNextClick: handleNextClick, previousMonth, nextMonth }),
|
|
5157
|
+
React33.createElement(
|
|
5201
5158
|
components.MonthGrid,
|
|
5202
5159
|
{ role: "grid", "aria-multiselectable": mode === "multiple" || mode === "range", "aria-label": labelGrid2(calendarMonth.date, dateLib.options, dateLib) || void 0, className: classNames[UI.MonthGrid], style: styles == null ? void 0 : styles[UI.MonthGrid] },
|
|
5203
|
-
!props.hideWeekdays &&
|
|
5160
|
+
!props.hideWeekdays && React33.createElement(
|
|
5204
5161
|
components.Weekdays,
|
|
5205
5162
|
{ "data-animated-weekdays": props.animate ? "true" : void 0, className: classNames[UI.Weekdays], style: styles == null ? void 0 : styles[UI.Weekdays] },
|
|
5206
|
-
showWeekNumber &&
|
|
5207
|
-
weekdays.map((weekday) =>
|
|
5163
|
+
showWeekNumber && React33.createElement(components.WeekNumberHeader, { "aria-label": labelWeekNumberHeader2(dateLib.options), className: classNames[UI.WeekNumberHeader], style: styles == null ? void 0 : styles[UI.WeekNumberHeader], scope: "col" }, formatWeekNumberHeader2()),
|
|
5164
|
+
weekdays.map((weekday) => React33.createElement(components.Weekday, { "aria-label": labelWeekday2(weekday, dateLib.options, dateLib), className: classNames[UI.Weekday], key: String(weekday), style: styles == null ? void 0 : styles[UI.Weekday], scope: "col" }, formatWeekdayName2(weekday, dateLib.options, dateLib)))
|
|
5208
5165
|
),
|
|
5209
|
-
|
|
5210
|
-
return
|
|
5166
|
+
React33.createElement(components.Weeks, { "data-animated-weeks": props.animate ? "true" : void 0, className: classNames[UI.Weeks], style: styles == null ? void 0 : styles[UI.Weeks] }, calendarMonth.weeks.map((week) => {
|
|
5167
|
+
return React33.createElement(
|
|
5211
5168
|
components.Week,
|
|
5212
5169
|
{ className: classNames[UI.Week], key: week.weekNumber, style: styles == null ? void 0 : styles[UI.Week], week },
|
|
5213
|
-
showWeekNumber &&
|
|
5170
|
+
showWeekNumber && React33.createElement(components.WeekNumber, { week, style: styles == null ? void 0 : styles[UI.WeekNumber], "aria-label": labelWeekNumber2(week.weekNumber, {
|
|
5214
5171
|
locale
|
|
5215
5172
|
}), className: classNames[UI.WeekNumber], scope: "row", role: "rowheader" }, formatWeekNumber2(week.weekNumber, dateLib)),
|
|
5216
5173
|
week.days.map((day) => {
|
|
@@ -5227,7 +5184,7 @@ function DayPicker(initialProps) {
|
|
|
5227
5184
|
const style2 = getStyleForModifiers(modifiers, styles, props.modifiersStyles);
|
|
5228
5185
|
const className2 = getClassNamesForModifiers(modifiers, classNames, props.modifiersClassNames);
|
|
5229
5186
|
const ariaLabel = !isInteractive && !modifiers.hidden ? labelGridcell2(date, modifiers, dateLib.options, dateLib) : void 0;
|
|
5230
|
-
return
|
|
5187
|
+
return React33.createElement(components.Day, { key: `${day.isoDate}_${day.displayMonthId}`, day, modifiers, className: className2.join(" "), style: style2, role: "gridcell", "aria-selected": modifiers.selected || void 0, "aria-label": ariaLabel, "data-day": day.isoDate, "data-month": day.outside ? day.dateMonthId : void 0, "data-selected": modifiers.selected || void 0, "data-disabled": modifiers.disabled || void 0, "data-hidden": modifiers.hidden || void 0, "data-outside": day.outside || void 0, "data-focused": modifiers.focused || void 0, "data-today": modifiers.today || void 0 }, !modifiers.hidden && isInteractive ? React33.createElement(components.DayButton, { className: classNames[UI.DayButton], style: styles == null ? void 0 : styles[UI.DayButton], type: "button", day, modifiers, disabled: !modifiers.focused && modifiers.disabled || void 0, "aria-disabled": modifiers.focused && modifiers.disabled || void 0, tabIndex: isFocusTarget(day) ? 0 : -1, "aria-label": labelDayButton2(date, modifiers, dateLib.options, dateLib), onClick: handleDayClick(day, modifiers), onBlur: handleDayBlur(day, modifiers), onFocus: handleDayFocus(day, modifiers), onKeyDown: handleDayKeyDown(day, modifiers), onMouseEnter: handleDayMouseEnter(day, modifiers), onMouseLeave: handleDayMouseLeave(day, modifiers) }, formatDay2(date, dateLib.options, dateLib)) : !modifiers.hidden && formatDay2(day.date, dateLib.options, dateLib));
|
|
5231
5188
|
})
|
|
5232
5189
|
);
|
|
5233
5190
|
}))
|
|
@@ -5235,7 +5192,7 @@ function DayPicker(initialProps) {
|
|
|
5235
5192
|
);
|
|
5236
5193
|
})
|
|
5237
5194
|
),
|
|
5238
|
-
props.footer &&
|
|
5195
|
+
props.footer && React33.createElement(components.Footer, { className: classNames[UI.Footer], style: styles == null ? void 0 : styles[UI.Footer], role: "status", "aria-live": "polite" }, props.footer)
|
|
5239
5196
|
)
|
|
5240
5197
|
);
|
|
5241
5198
|
}
|
|
@@ -5258,37 +5215,40 @@ function Calendar(_a) {
|
|
|
5258
5215
|
showOutsideDays,
|
|
5259
5216
|
className: cn("p-3", className),
|
|
5260
5217
|
classNames: __spreadValues({
|
|
5261
|
-
months: "flex flex-col sm:flex-row
|
|
5218
|
+
months: "flex flex-col gap-4 sm:flex-row sm:gap-x-4 sm:gap-y-0",
|
|
5262
5219
|
month: "space-y-4",
|
|
5263
|
-
|
|
5220
|
+
month_caption: "relative flex items-center justify-center pt-1",
|
|
5264
5221
|
caption_label: "text-sm font-medium",
|
|
5265
|
-
nav: "
|
|
5266
|
-
|
|
5222
|
+
nav: "flex items-center gap-1",
|
|
5223
|
+
button_previous: cn(
|
|
5267
5224
|
buttonVariants({ variant: "outline" }),
|
|
5268
|
-
"h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100"
|
|
5225
|
+
"absolute left-1 h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100"
|
|
5269
5226
|
),
|
|
5270
|
-
|
|
5271
|
-
|
|
5272
|
-
|
|
5273
|
-
head_row: "flex",
|
|
5274
|
-
head_cell: "text-muted-foreground rounded-md w-8 font-normal text-[0.8rem]",
|
|
5275
|
-
row: "flex w-full mt-2",
|
|
5276
|
-
cell: cn(
|
|
5277
|
-
"relative p-0 text-center text-sm focus-within:relative focus-within:z-20 [&:has([aria-selected])]:bg-accent [&:has([aria-selected].day-outside)]:bg-accent/50 [&:has([aria-selected].day-range-end)]:rounded-r-md",
|
|
5278
|
-
props.mode === "range" ? "[&:has(>.day-range-end)]:rounded-r-md [&:has(>.day-range-start)]:rounded-l-md first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md" : "[&:has([aria-selected])]:rounded-md"
|
|
5227
|
+
button_next: cn(
|
|
5228
|
+
buttonVariants({ variant: "outline" }),
|
|
5229
|
+
"absolute right-1 h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100"
|
|
5279
5230
|
),
|
|
5231
|
+
month_grid: "w-full border-collapse space-y-1",
|
|
5232
|
+
weekdays: "flex",
|
|
5233
|
+
weekday: "w-8 rounded-md text-[0.8rem] font-normal text-muted-foreground",
|
|
5234
|
+
weeks: "space-y-1",
|
|
5235
|
+
week: "mt-2 flex w-full",
|
|
5280
5236
|
day: cn(
|
|
5237
|
+
"relative h-8 w-8 p-0 text-center text-sm focus-within:relative focus-within:z-20",
|
|
5238
|
+
props.mode === "range" ? "first:rounded-l-md last:rounded-r-md" : "rounded-md"
|
|
5239
|
+
),
|
|
5240
|
+
day_button: cn(
|
|
5281
5241
|
buttonVariants({ variant: "ghost" }),
|
|
5282
|
-
"h-8 w-8 p-0 font-normal
|
|
5242
|
+
"h-8 w-8 p-0 font-normal"
|
|
5283
5243
|
),
|
|
5284
|
-
|
|
5285
|
-
|
|
5286
|
-
|
|
5287
|
-
|
|
5288
|
-
|
|
5289
|
-
|
|
5290
|
-
|
|
5291
|
-
|
|
5244
|
+
selected: "[&>button]:bg-primary [&>button]:text-primary-foreground [&>button:hover]:bg-primary [&>button:hover]:text-primary-foreground [&>button:focus]:bg-primary [&>button:focus]:text-primary-foreground",
|
|
5245
|
+
today: "[&>button]:bg-accent [&>button]:text-accent-foreground",
|
|
5246
|
+
outside: "text-muted-foreground opacity-50 [&>button]:text-muted-foreground",
|
|
5247
|
+
disabled: "text-muted-foreground opacity-50 [&>button]:cursor-not-allowed",
|
|
5248
|
+
range_start: "rounded-l-md [&>button]:rounded-l-md [&>button]:bg-primary [&>button]:text-primary-foreground",
|
|
5249
|
+
range_middle: "[&>button]:bg-accent [&>button]:text-accent-foreground [&>button]:rounded-none",
|
|
5250
|
+
range_end: "rounded-r-md [&>button]:rounded-r-md [&>button]:bg-primary [&>button]:text-primary-foreground",
|
|
5251
|
+
hidden: "invisible"
|
|
5292
5252
|
}, classNames)
|
|
5293
5253
|
}, props)
|
|
5294
5254
|
);
|
|
@@ -5296,9 +5256,9 @@ function Calendar(_a) {
|
|
|
5296
5256
|
Calendar.displayName = "Calendar";
|
|
5297
5257
|
|
|
5298
5258
|
// src/components/card.tsx
|
|
5299
|
-
import * as
|
|
5259
|
+
import * as React34 from "react";
|
|
5300
5260
|
import { jsx as jsx10 } from "react/jsx-runtime";
|
|
5301
|
-
var Card =
|
|
5261
|
+
var Card = React34.forwardRef((_a, ref) => {
|
|
5302
5262
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5303
5263
|
return /* @__PURE__ */ jsx10(
|
|
5304
5264
|
"div",
|
|
@@ -5312,7 +5272,7 @@ var Card = React35.forwardRef((_a, ref) => {
|
|
|
5312
5272
|
);
|
|
5313
5273
|
});
|
|
5314
5274
|
Card.displayName = "Card";
|
|
5315
|
-
var CardHeader =
|
|
5275
|
+
var CardHeader = React34.forwardRef((_a, ref) => {
|
|
5316
5276
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5317
5277
|
return /* @__PURE__ */ jsx10(
|
|
5318
5278
|
"div",
|
|
@@ -5323,7 +5283,7 @@ var CardHeader = React35.forwardRef((_a, ref) => {
|
|
|
5323
5283
|
);
|
|
5324
5284
|
});
|
|
5325
5285
|
CardHeader.displayName = "CardHeader";
|
|
5326
|
-
var CardTitle =
|
|
5286
|
+
var CardTitle = React34.forwardRef((_a, ref) => {
|
|
5327
5287
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5328
5288
|
return /* @__PURE__ */ jsx10(
|
|
5329
5289
|
"h3",
|
|
@@ -5334,7 +5294,7 @@ var CardTitle = React35.forwardRef((_a, ref) => {
|
|
|
5334
5294
|
);
|
|
5335
5295
|
});
|
|
5336
5296
|
CardTitle.displayName = "CardTitle";
|
|
5337
|
-
var CardDescription =
|
|
5297
|
+
var CardDescription = React34.forwardRef((_a, ref) => {
|
|
5338
5298
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5339
5299
|
return /* @__PURE__ */ jsx10(
|
|
5340
5300
|
"p",
|
|
@@ -5345,12 +5305,12 @@ var CardDescription = React35.forwardRef((_a, ref) => {
|
|
|
5345
5305
|
);
|
|
5346
5306
|
});
|
|
5347
5307
|
CardDescription.displayName = "CardDescription";
|
|
5348
|
-
var CardContent =
|
|
5308
|
+
var CardContent = React34.forwardRef((_a, ref) => {
|
|
5349
5309
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5350
5310
|
return /* @__PURE__ */ jsx10("div", __spreadValues({ ref, className: cn("p-6 pt-0", className) }, props));
|
|
5351
5311
|
});
|
|
5352
5312
|
CardContent.displayName = "CardContent";
|
|
5353
|
-
var CardFooter =
|
|
5313
|
+
var CardFooter = React34.forwardRef((_a, ref) => {
|
|
5354
5314
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5355
5315
|
return /* @__PURE__ */ jsx10(
|
|
5356
5316
|
"div",
|
|
@@ -5365,17 +5325,17 @@ CardFooter.displayName = "CardFooter";
|
|
|
5365
5325
|
// src/components/carousel.tsx
|
|
5366
5326
|
import { ArrowLeftIcon, ArrowRightIcon } from "@radix-ui/react-icons";
|
|
5367
5327
|
import useEmblaCarousel from "embla-carousel-react";
|
|
5368
|
-
import * as
|
|
5328
|
+
import * as React35 from "react";
|
|
5369
5329
|
import { jsx as jsx11, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
5370
|
-
var CarouselContext =
|
|
5330
|
+
var CarouselContext = React35.createContext(null);
|
|
5371
5331
|
function useCarousel() {
|
|
5372
|
-
const context =
|
|
5332
|
+
const context = React35.useContext(CarouselContext);
|
|
5373
5333
|
if (!context) {
|
|
5374
5334
|
throw new Error("useCarousel must be used within a <Carousel />");
|
|
5375
5335
|
}
|
|
5376
5336
|
return context;
|
|
5377
5337
|
}
|
|
5378
|
-
var Carousel =
|
|
5338
|
+
var Carousel = React35.forwardRef(
|
|
5379
5339
|
(_a, ref) => {
|
|
5380
5340
|
var _b = _a, {
|
|
5381
5341
|
orientation = "horizontal",
|
|
@@ -5398,22 +5358,22 @@ var Carousel = React36.forwardRef(
|
|
|
5398
5358
|
}),
|
|
5399
5359
|
plugins
|
|
5400
5360
|
);
|
|
5401
|
-
const [canScrollPrev, setCanScrollPrev] =
|
|
5402
|
-
const [canScrollNext, setCanScrollNext] =
|
|
5403
|
-
const onSelect =
|
|
5361
|
+
const [canScrollPrev, setCanScrollPrev] = React35.useState(false);
|
|
5362
|
+
const [canScrollNext, setCanScrollNext] = React35.useState(false);
|
|
5363
|
+
const onSelect = React35.useCallback((api2) => {
|
|
5404
5364
|
if (!api2) {
|
|
5405
5365
|
return;
|
|
5406
5366
|
}
|
|
5407
5367
|
setCanScrollPrev(api2.canScrollPrev());
|
|
5408
5368
|
setCanScrollNext(api2.canScrollNext());
|
|
5409
5369
|
}, []);
|
|
5410
|
-
const scrollPrev =
|
|
5370
|
+
const scrollPrev = React35.useCallback(() => {
|
|
5411
5371
|
api == null ? void 0 : api.scrollPrev();
|
|
5412
5372
|
}, [api]);
|
|
5413
|
-
const scrollNext =
|
|
5373
|
+
const scrollNext = React35.useCallback(() => {
|
|
5414
5374
|
api == null ? void 0 : api.scrollNext();
|
|
5415
5375
|
}, [api]);
|
|
5416
|
-
const handleKeyDown =
|
|
5376
|
+
const handleKeyDown = React35.useCallback(
|
|
5417
5377
|
(event) => {
|
|
5418
5378
|
if (event.key === "ArrowLeft") {
|
|
5419
5379
|
event.preventDefault();
|
|
@@ -5425,13 +5385,13 @@ var Carousel = React36.forwardRef(
|
|
|
5425
5385
|
},
|
|
5426
5386
|
[scrollPrev, scrollNext]
|
|
5427
5387
|
);
|
|
5428
|
-
|
|
5388
|
+
React35.useEffect(() => {
|
|
5429
5389
|
if (!api || !setApi) {
|
|
5430
5390
|
return;
|
|
5431
5391
|
}
|
|
5432
5392
|
setApi(api);
|
|
5433
5393
|
}, [api, setApi]);
|
|
5434
|
-
|
|
5394
|
+
React35.useEffect(() => {
|
|
5435
5395
|
if (!api) {
|
|
5436
5396
|
return;
|
|
5437
5397
|
}
|
|
@@ -5472,7 +5432,7 @@ var Carousel = React36.forwardRef(
|
|
|
5472
5432
|
}
|
|
5473
5433
|
);
|
|
5474
5434
|
Carousel.displayName = "Carousel";
|
|
5475
|
-
var CarouselContent =
|
|
5435
|
+
var CarouselContent = React35.forwardRef((_a, ref) => {
|
|
5476
5436
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5477
5437
|
const { carouselRef, orientation } = useCarousel();
|
|
5478
5438
|
return /* @__PURE__ */ jsx11("div", { ref: carouselRef, className: "overflow-hidden", children: /* @__PURE__ */ jsx11(
|
|
@@ -5488,7 +5448,7 @@ var CarouselContent = React36.forwardRef((_a, ref) => {
|
|
|
5488
5448
|
) });
|
|
5489
5449
|
});
|
|
5490
5450
|
CarouselContent.displayName = "CarouselContent";
|
|
5491
|
-
var CarouselItem =
|
|
5451
|
+
var CarouselItem = React35.forwardRef((_a, ref) => {
|
|
5492
5452
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5493
5453
|
const { orientation } = useCarousel();
|
|
5494
5454
|
return /* @__PURE__ */ jsx11(
|
|
@@ -5506,7 +5466,7 @@ var CarouselItem = React36.forwardRef((_a, ref) => {
|
|
|
5506
5466
|
);
|
|
5507
5467
|
});
|
|
5508
5468
|
CarouselItem.displayName = "CarouselItem";
|
|
5509
|
-
var CarouselPrevious =
|
|
5469
|
+
var CarouselPrevious = React35.forwardRef((_a, ref) => {
|
|
5510
5470
|
var _b = _a, { className, variant = "outline", size = "icon" } = _b, props = __objRest(_b, ["className", "variant", "size"]);
|
|
5511
5471
|
const { orientation, scrollPrev, canScrollPrev } = useCarousel();
|
|
5512
5472
|
return /* @__PURE__ */ jsxs5(
|
|
@@ -5531,7 +5491,7 @@ var CarouselPrevious = React36.forwardRef((_a, ref) => {
|
|
|
5531
5491
|
);
|
|
5532
5492
|
});
|
|
5533
5493
|
CarouselPrevious.displayName = "CarouselPrevious";
|
|
5534
|
-
var CarouselNext =
|
|
5494
|
+
var CarouselNext = React35.forwardRef((_a, ref) => {
|
|
5535
5495
|
var _b = _a, { className, variant = "outline", size = "icon" } = _b, props = __objRest(_b, ["className", "variant", "size"]);
|
|
5536
5496
|
const { orientation, scrollNext, canScrollNext } = useCarousel();
|
|
5537
5497
|
return /* @__PURE__ */ jsxs5(
|
|
@@ -5560,7 +5520,7 @@ CarouselNext.displayName = "CarouselNext";
|
|
|
5560
5520
|
// src/components/checkbox.tsx
|
|
5561
5521
|
import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
|
|
5562
5522
|
import { CheckIcon } from "@radix-ui/react-icons";
|
|
5563
|
-
import * as
|
|
5523
|
+
import * as React36 from "react";
|
|
5564
5524
|
import { jsx as jsx12 } from "react/jsx-runtime";
|
|
5565
5525
|
var checkboxSizes = {
|
|
5566
5526
|
sm: "h-4 w-4 rounded",
|
|
@@ -5579,7 +5539,7 @@ var checkboxVariants = {
|
|
|
5579
5539
|
success: "border-input bg-background data-[state=checked]:border-emerald-500 data-[state=checked]:bg-emerald-500 data-[state=checked]:text-white",
|
|
5580
5540
|
destructive: "border-input bg-background data-[state=checked]:border-destructive data-[state=checked]:bg-destructive data-[state=checked]:text-destructive-foreground"
|
|
5581
5541
|
};
|
|
5582
|
-
var Checkbox =
|
|
5542
|
+
var Checkbox = React36.forwardRef(
|
|
5583
5543
|
(_a, ref) => {
|
|
5584
5544
|
var _b = _a, {
|
|
5585
5545
|
className,
|
|
@@ -5646,18 +5606,18 @@ var CollapsibleContent2 = CollapsiblePrimitive.CollapsibleContent;
|
|
|
5646
5606
|
// src/components/command.tsx
|
|
5647
5607
|
import { MagnifyingGlassIcon } from "@radix-ui/react-icons";
|
|
5648
5608
|
import { Command as CommandPrimitive } from "cmdk";
|
|
5649
|
-
import * as
|
|
5609
|
+
import * as React38 from "react";
|
|
5650
5610
|
|
|
5651
5611
|
// src/components/dialog.tsx
|
|
5652
5612
|
import * as DialogPrimitive from "@radix-ui/react-dialog";
|
|
5653
5613
|
import { Cross2Icon } from "@radix-ui/react-icons";
|
|
5654
|
-
import * as
|
|
5614
|
+
import * as React37 from "react";
|
|
5655
5615
|
import { jsx as jsx13, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
5656
5616
|
var Dialog = DialogPrimitive.Root;
|
|
5657
5617
|
var DialogTrigger = DialogPrimitive.Trigger;
|
|
5658
5618
|
var DialogPortal = DialogPrimitive.Portal;
|
|
5659
5619
|
var DialogClose = DialogPrimitive.Close;
|
|
5660
|
-
var DialogOverlay =
|
|
5620
|
+
var DialogOverlay = React37.forwardRef((_a, ref) => {
|
|
5661
5621
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5662
5622
|
return /* @__PURE__ */ jsx13(
|
|
5663
5623
|
DialogPrimitive.Overlay,
|
|
@@ -5671,7 +5631,7 @@ var DialogOverlay = React38.forwardRef((_a, ref) => {
|
|
|
5671
5631
|
);
|
|
5672
5632
|
});
|
|
5673
5633
|
DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
|
|
5674
|
-
var DialogContent =
|
|
5634
|
+
var DialogContent = React37.forwardRef((_a, ref) => {
|
|
5675
5635
|
var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
|
|
5676
5636
|
return /* @__PURE__ */ jsxs6(DialogPortal, { children: [
|
|
5677
5637
|
/* @__PURE__ */ jsx13(DialogOverlay, {}),
|
|
@@ -5730,7 +5690,7 @@ var DialogFooter = (_a) => {
|
|
|
5730
5690
|
);
|
|
5731
5691
|
};
|
|
5732
5692
|
DialogFooter.displayName = "DialogFooter";
|
|
5733
|
-
var DialogTitle =
|
|
5693
|
+
var DialogTitle = React37.forwardRef((_a, ref) => {
|
|
5734
5694
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5735
5695
|
return /* @__PURE__ */ jsx13(
|
|
5736
5696
|
DialogPrimitive.Title,
|
|
@@ -5744,7 +5704,7 @@ var DialogTitle = React38.forwardRef((_a, ref) => {
|
|
|
5744
5704
|
);
|
|
5745
5705
|
});
|
|
5746
5706
|
DialogTitle.displayName = DialogPrimitive.Title.displayName;
|
|
5747
|
-
var DialogDescription =
|
|
5707
|
+
var DialogDescription = React37.forwardRef((_a, ref) => {
|
|
5748
5708
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5749
5709
|
return /* @__PURE__ */ jsx13(
|
|
5750
5710
|
DialogPrimitive.Description,
|
|
@@ -5758,7 +5718,7 @@ DialogDescription.displayName = DialogPrimitive.Description.displayName;
|
|
|
5758
5718
|
|
|
5759
5719
|
// src/components/command.tsx
|
|
5760
5720
|
import { jsx as jsx14, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
5761
|
-
var Command =
|
|
5721
|
+
var Command = React38.forwardRef((_a, ref) => {
|
|
5762
5722
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5763
5723
|
return /* @__PURE__ */ jsx14(
|
|
5764
5724
|
CommandPrimitive,
|
|
@@ -5776,7 +5736,7 @@ var CommandDialog = (_a) => {
|
|
|
5776
5736
|
var _b = _a, { children } = _b, props = __objRest(_b, ["children"]);
|
|
5777
5737
|
return /* @__PURE__ */ jsx14(Dialog, __spreadProps(__spreadValues({}, props), { children: /* @__PURE__ */ jsx14(DialogContent, { className: "overflow-hidden p-0", children: /* @__PURE__ */ jsx14(Command, { className: "[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5", children }) }) }));
|
|
5778
5738
|
};
|
|
5779
|
-
var CommandInput =
|
|
5739
|
+
var CommandInput = React38.forwardRef((_a, ref) => {
|
|
5780
5740
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5781
5741
|
return /* @__PURE__ */ jsxs7("div", { className: "flex items-center border-b px-3", "cmdk-input-wrapper": "", children: [
|
|
5782
5742
|
/* @__PURE__ */ jsx14(MagnifyingGlassIcon, { className: "mr-2 h-4 w-4 shrink-0 opacity-50" }),
|
|
@@ -5793,7 +5753,7 @@ var CommandInput = React39.forwardRef((_a, ref) => {
|
|
|
5793
5753
|
] });
|
|
5794
5754
|
});
|
|
5795
5755
|
CommandInput.displayName = CommandPrimitive.Input.displayName;
|
|
5796
|
-
var CommandList =
|
|
5756
|
+
var CommandList = React38.forwardRef((_a, ref) => {
|
|
5797
5757
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5798
5758
|
return /* @__PURE__ */ jsx14(
|
|
5799
5759
|
CommandPrimitive.List,
|
|
@@ -5804,7 +5764,7 @@ var CommandList = React39.forwardRef((_a, ref) => {
|
|
|
5804
5764
|
);
|
|
5805
5765
|
});
|
|
5806
5766
|
CommandList.displayName = CommandPrimitive.List.displayName;
|
|
5807
|
-
var CommandEmpty =
|
|
5767
|
+
var CommandEmpty = React38.forwardRef((props, ref) => /* @__PURE__ */ jsx14(
|
|
5808
5768
|
CommandPrimitive.Empty,
|
|
5809
5769
|
__spreadValues({
|
|
5810
5770
|
ref,
|
|
@@ -5812,7 +5772,7 @@ var CommandEmpty = React39.forwardRef((props, ref) => /* @__PURE__ */ jsx14(
|
|
|
5812
5772
|
}, props)
|
|
5813
5773
|
));
|
|
5814
5774
|
CommandEmpty.displayName = CommandPrimitive.Empty.displayName;
|
|
5815
|
-
var CommandGroup =
|
|
5775
|
+
var CommandGroup = React38.forwardRef((_a, ref) => {
|
|
5816
5776
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5817
5777
|
return /* @__PURE__ */ jsx14(
|
|
5818
5778
|
CommandPrimitive.Group,
|
|
@@ -5826,7 +5786,7 @@ var CommandGroup = React39.forwardRef((_a, ref) => {
|
|
|
5826
5786
|
);
|
|
5827
5787
|
});
|
|
5828
5788
|
CommandGroup.displayName = CommandPrimitive.Group.displayName;
|
|
5829
|
-
var CommandSeparator =
|
|
5789
|
+
var CommandSeparator = React38.forwardRef((_a, ref) => {
|
|
5830
5790
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5831
5791
|
return /* @__PURE__ */ jsx14(
|
|
5832
5792
|
CommandPrimitive.Separator,
|
|
@@ -5837,7 +5797,7 @@ var CommandSeparator = React39.forwardRef((_a, ref) => {
|
|
|
5837
5797
|
);
|
|
5838
5798
|
});
|
|
5839
5799
|
CommandSeparator.displayName = CommandPrimitive.Separator.displayName;
|
|
5840
|
-
var CommandItem =
|
|
5800
|
+
var CommandItem = React38.forwardRef((_a, ref) => {
|
|
5841
5801
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5842
5802
|
return /* @__PURE__ */ jsx14(
|
|
5843
5803
|
CommandPrimitive.Item,
|
|
@@ -5876,7 +5836,7 @@ import {
|
|
|
5876
5836
|
ChevronRightIcon as ChevronRightIcon2,
|
|
5877
5837
|
DotFilledIcon
|
|
5878
5838
|
} from "@radix-ui/react-icons";
|
|
5879
|
-
import * as
|
|
5839
|
+
import * as React39 from "react";
|
|
5880
5840
|
import { jsx as jsx15, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
5881
5841
|
var ContextMenu = ContextMenuPrimitive.Root;
|
|
5882
5842
|
var ContextMenuTrigger = ContextMenuPrimitive.Trigger;
|
|
@@ -5884,7 +5844,7 @@ var ContextMenuGroup = ContextMenuPrimitive.Group;
|
|
|
5884
5844
|
var ContextMenuPortal = ContextMenuPrimitive.Portal;
|
|
5885
5845
|
var ContextMenuSub = ContextMenuPrimitive.Sub;
|
|
5886
5846
|
var ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;
|
|
5887
|
-
var ContextMenuSubTrigger =
|
|
5847
|
+
var ContextMenuSubTrigger = React39.forwardRef((_a, ref) => {
|
|
5888
5848
|
var _b = _a, { className, inset, children } = _b, props = __objRest(_b, ["className", "inset", "children"]);
|
|
5889
5849
|
return /* @__PURE__ */ jsxs8(
|
|
5890
5850
|
ContextMenuPrimitive.SubTrigger,
|
|
@@ -5904,7 +5864,7 @@ var ContextMenuSubTrigger = React40.forwardRef((_a, ref) => {
|
|
|
5904
5864
|
);
|
|
5905
5865
|
});
|
|
5906
5866
|
ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
|
|
5907
|
-
var ContextMenuSubContent =
|
|
5867
|
+
var ContextMenuSubContent = React39.forwardRef((_a, ref) => {
|
|
5908
5868
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5909
5869
|
return /* @__PURE__ */ jsx15(
|
|
5910
5870
|
ContextMenuPrimitive.SubContent,
|
|
@@ -5918,7 +5878,7 @@ var ContextMenuSubContent = React40.forwardRef((_a, ref) => {
|
|
|
5918
5878
|
);
|
|
5919
5879
|
});
|
|
5920
5880
|
ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;
|
|
5921
|
-
var ContextMenuContent =
|
|
5881
|
+
var ContextMenuContent = React39.forwardRef((_a, ref) => {
|
|
5922
5882
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5923
5883
|
return /* @__PURE__ */ jsx15(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx15(
|
|
5924
5884
|
ContextMenuPrimitive.Content,
|
|
@@ -5932,7 +5892,7 @@ var ContextMenuContent = React40.forwardRef((_a, ref) => {
|
|
|
5932
5892
|
) });
|
|
5933
5893
|
});
|
|
5934
5894
|
ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
|
|
5935
|
-
var ContextMenuItem =
|
|
5895
|
+
var ContextMenuItem = React39.forwardRef((_a, ref) => {
|
|
5936
5896
|
var _b = _a, { className, inset } = _b, props = __objRest(_b, ["className", "inset"]);
|
|
5937
5897
|
return /* @__PURE__ */ jsx15(
|
|
5938
5898
|
ContextMenuPrimitive.Item,
|
|
@@ -5947,7 +5907,7 @@ var ContextMenuItem = React40.forwardRef((_a, ref) => {
|
|
|
5947
5907
|
);
|
|
5948
5908
|
});
|
|
5949
5909
|
ContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;
|
|
5950
|
-
var ContextMenuCheckboxItem =
|
|
5910
|
+
var ContextMenuCheckboxItem = React39.forwardRef((_a, ref) => {
|
|
5951
5911
|
var _b = _a, { className, children, checked } = _b, props = __objRest(_b, ["className", "children", "checked"]);
|
|
5952
5912
|
return /* @__PURE__ */ jsxs8(
|
|
5953
5913
|
ContextMenuPrimitive.CheckboxItem,
|
|
@@ -5967,7 +5927,7 @@ var ContextMenuCheckboxItem = React40.forwardRef((_a, ref) => {
|
|
|
5967
5927
|
);
|
|
5968
5928
|
});
|
|
5969
5929
|
ContextMenuCheckboxItem.displayName = ContextMenuPrimitive.CheckboxItem.displayName;
|
|
5970
|
-
var ContextMenuRadioItem =
|
|
5930
|
+
var ContextMenuRadioItem = React39.forwardRef((_a, ref) => {
|
|
5971
5931
|
var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
|
|
5972
5932
|
return /* @__PURE__ */ jsxs8(
|
|
5973
5933
|
ContextMenuPrimitive.RadioItem,
|
|
@@ -5986,7 +5946,7 @@ var ContextMenuRadioItem = React40.forwardRef((_a, ref) => {
|
|
|
5986
5946
|
);
|
|
5987
5947
|
});
|
|
5988
5948
|
ContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;
|
|
5989
|
-
var ContextMenuLabel =
|
|
5949
|
+
var ContextMenuLabel = React39.forwardRef((_a, ref) => {
|
|
5990
5950
|
var _b = _a, { className, inset } = _b, props = __objRest(_b, ["className", "inset"]);
|
|
5991
5951
|
return /* @__PURE__ */ jsx15(
|
|
5992
5952
|
ContextMenuPrimitive.Label,
|
|
@@ -6001,7 +5961,7 @@ var ContextMenuLabel = React40.forwardRef((_a, ref) => {
|
|
|
6001
5961
|
);
|
|
6002
5962
|
});
|
|
6003
5963
|
ContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;
|
|
6004
|
-
var ContextMenuSeparator =
|
|
5964
|
+
var ContextMenuSeparator = React39.forwardRef((_a, ref) => {
|
|
6005
5965
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
6006
5966
|
return /* @__PURE__ */ jsx15(
|
|
6007
5967
|
ContextMenuPrimitive.Separator,
|
|
@@ -6031,7 +5991,7 @@ var ContextMenuShortcut = (_a) => {
|
|
|
6031
5991
|
ContextMenuShortcut.displayName = "ContextMenuShortcut";
|
|
6032
5992
|
|
|
6033
5993
|
// src/components/drawer.tsx
|
|
6034
|
-
import * as
|
|
5994
|
+
import * as React40 from "react";
|
|
6035
5995
|
import { Drawer as DrawerPrimitive } from "vaul";
|
|
6036
5996
|
import { jsx as jsx16, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
6037
5997
|
var Drawer = (_a) => {
|
|
@@ -6051,7 +6011,7 @@ Drawer.displayName = "Drawer";
|
|
|
6051
6011
|
var DrawerTrigger = DrawerPrimitive.Trigger;
|
|
6052
6012
|
var DrawerPortal = DrawerPrimitive.Portal;
|
|
6053
6013
|
var DrawerClose = DrawerPrimitive.Close;
|
|
6054
|
-
var DrawerOverlay =
|
|
6014
|
+
var DrawerOverlay = React40.forwardRef((_a, ref) => {
|
|
6055
6015
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
6056
6016
|
return /* @__PURE__ */ jsx16(
|
|
6057
6017
|
DrawerPrimitive.Overlay,
|
|
@@ -6062,7 +6022,7 @@ var DrawerOverlay = React41.forwardRef((_a, ref) => {
|
|
|
6062
6022
|
);
|
|
6063
6023
|
});
|
|
6064
6024
|
DrawerOverlay.displayName = DrawerPrimitive.Overlay.displayName;
|
|
6065
|
-
var DrawerContent =
|
|
6025
|
+
var DrawerContent = React40.forwardRef((_a, ref) => {
|
|
6066
6026
|
var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
|
|
6067
6027
|
return /* @__PURE__ */ jsxs9(DrawerPortal, { children: [
|
|
6068
6028
|
/* @__PURE__ */ jsx16(DrawerOverlay, {}),
|
|
@@ -6112,7 +6072,7 @@ var DrawerFooter = (_a) => {
|
|
|
6112
6072
|
);
|
|
6113
6073
|
};
|
|
6114
6074
|
DrawerFooter.displayName = "DrawerFooter";
|
|
6115
|
-
var DrawerTitle =
|
|
6075
|
+
var DrawerTitle = React40.forwardRef((_a, ref) => {
|
|
6116
6076
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
6117
6077
|
return /* @__PURE__ */ jsx16(
|
|
6118
6078
|
DrawerPrimitive.Title,
|
|
@@ -6126,7 +6086,7 @@ var DrawerTitle = React41.forwardRef((_a, ref) => {
|
|
|
6126
6086
|
);
|
|
6127
6087
|
});
|
|
6128
6088
|
DrawerTitle.displayName = DrawerPrimitive.Title.displayName;
|
|
6129
|
-
var DrawerDescription =
|
|
6089
|
+
var DrawerDescription = React40.forwardRef((_a, ref) => {
|
|
6130
6090
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
6131
6091
|
return /* @__PURE__ */ jsx16(
|
|
6132
6092
|
DrawerPrimitive.Description,
|
|
@@ -6145,7 +6105,7 @@ import {
|
|
|
6145
6105
|
ChevronRightIcon as ChevronRightIcon3,
|
|
6146
6106
|
DotFilledIcon as DotFilledIcon2
|
|
6147
6107
|
} from "@radix-ui/react-icons";
|
|
6148
|
-
import * as
|
|
6108
|
+
import * as React41 from "react";
|
|
6149
6109
|
import { jsx as jsx17, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
6150
6110
|
var DropdownMenu = DropdownMenuPrimitive.Root;
|
|
6151
6111
|
var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
|
|
@@ -6153,7 +6113,7 @@ var DropdownMenuGroup = DropdownMenuPrimitive.Group;
|
|
|
6153
6113
|
var DropdownMenuPortal = DropdownMenuPrimitive.Portal;
|
|
6154
6114
|
var DropdownMenuSub = DropdownMenuPrimitive.Sub;
|
|
6155
6115
|
var DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
|
|
6156
|
-
var DropdownMenuSubTrigger =
|
|
6116
|
+
var DropdownMenuSubTrigger = React41.forwardRef((_a, ref) => {
|
|
6157
6117
|
var _b = _a, { className, inset, children } = _b, props = __objRest(_b, ["className", "inset", "children"]);
|
|
6158
6118
|
return /* @__PURE__ */ jsxs10(
|
|
6159
6119
|
DropdownMenuPrimitive.SubTrigger,
|
|
@@ -6173,7 +6133,7 @@ var DropdownMenuSubTrigger = React42.forwardRef((_a, ref) => {
|
|
|
6173
6133
|
);
|
|
6174
6134
|
});
|
|
6175
6135
|
DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
|
|
6176
|
-
var DropdownMenuSubContent =
|
|
6136
|
+
var DropdownMenuSubContent = React41.forwardRef((_a, ref) => {
|
|
6177
6137
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
6178
6138
|
return /* @__PURE__ */ jsx17(
|
|
6179
6139
|
DropdownMenuPrimitive.SubContent,
|
|
@@ -6187,7 +6147,7 @@ var DropdownMenuSubContent = React42.forwardRef((_a, ref) => {
|
|
|
6187
6147
|
);
|
|
6188
6148
|
});
|
|
6189
6149
|
DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
|
|
6190
|
-
var DropdownMenuContent =
|
|
6150
|
+
var DropdownMenuContent = React41.forwardRef((_a, ref) => {
|
|
6191
6151
|
var _b = _a, { className, sideOffset = 4 } = _b, props = __objRest(_b, ["className", "sideOffset"]);
|
|
6192
6152
|
return /* @__PURE__ */ jsx17(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx17(
|
|
6193
6153
|
DropdownMenuPrimitive.Content,
|
|
@@ -6203,7 +6163,7 @@ var DropdownMenuContent = React42.forwardRef((_a, ref) => {
|
|
|
6203
6163
|
) });
|
|
6204
6164
|
});
|
|
6205
6165
|
DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
|
|
6206
|
-
var DropdownMenuItem =
|
|
6166
|
+
var DropdownMenuItem = React41.forwardRef((_a, ref) => {
|
|
6207
6167
|
var _b = _a, { className, inset } = _b, props = __objRest(_b, ["className", "inset"]);
|
|
6208
6168
|
return /* @__PURE__ */ jsx17(
|
|
6209
6169
|
DropdownMenuPrimitive.Item,
|
|
@@ -6218,7 +6178,7 @@ var DropdownMenuItem = React42.forwardRef((_a, ref) => {
|
|
|
6218
6178
|
);
|
|
6219
6179
|
});
|
|
6220
6180
|
DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
|
|
6221
|
-
var DropdownMenuCheckboxItem =
|
|
6181
|
+
var DropdownMenuCheckboxItem = React41.forwardRef((_a, ref) => {
|
|
6222
6182
|
var _b = _a, { className, children, checked } = _b, props = __objRest(_b, ["className", "children", "checked"]);
|
|
6223
6183
|
return /* @__PURE__ */ jsxs10(
|
|
6224
6184
|
DropdownMenuPrimitive.CheckboxItem,
|
|
@@ -6238,7 +6198,7 @@ var DropdownMenuCheckboxItem = React42.forwardRef((_a, ref) => {
|
|
|
6238
6198
|
);
|
|
6239
6199
|
});
|
|
6240
6200
|
DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
|
|
6241
|
-
var DropdownMenuRadioItem =
|
|
6201
|
+
var DropdownMenuRadioItem = React41.forwardRef((_a, ref) => {
|
|
6242
6202
|
var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
|
|
6243
6203
|
return /* @__PURE__ */ jsxs10(
|
|
6244
6204
|
DropdownMenuPrimitive.RadioItem,
|
|
@@ -6257,7 +6217,7 @@ var DropdownMenuRadioItem = React42.forwardRef((_a, ref) => {
|
|
|
6257
6217
|
);
|
|
6258
6218
|
});
|
|
6259
6219
|
DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
|
|
6260
|
-
var DropdownMenuLabel =
|
|
6220
|
+
var DropdownMenuLabel = React41.forwardRef((_a, ref) => {
|
|
6261
6221
|
var _b = _a, { className, inset } = _b, props = __objRest(_b, ["className", "inset"]);
|
|
6262
6222
|
return /* @__PURE__ */ jsx17(
|
|
6263
6223
|
DropdownMenuPrimitive.Label,
|
|
@@ -6272,7 +6232,7 @@ var DropdownMenuLabel = React42.forwardRef((_a, ref) => {
|
|
|
6272
6232
|
);
|
|
6273
6233
|
});
|
|
6274
6234
|
DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
|
|
6275
|
-
var DropdownMenuSeparator =
|
|
6235
|
+
var DropdownMenuSeparator = React41.forwardRef((_a, ref) => {
|
|
6276
6236
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
6277
6237
|
return /* @__PURE__ */ jsx17(
|
|
6278
6238
|
DropdownMenuPrimitive.Separator,
|
|
@@ -6299,7 +6259,7 @@ var DropdownMenuShortcut = (_a) => {
|
|
|
6299
6259
|
DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
|
|
6300
6260
|
|
|
6301
6261
|
// src/components/Form/form-component.tsx
|
|
6302
|
-
import * as
|
|
6262
|
+
import * as React43 from "react";
|
|
6303
6263
|
import { Slot as Slot4 } from "@radix-ui/react-slot";
|
|
6304
6264
|
import {
|
|
6305
6265
|
useFormContext
|
|
@@ -6308,12 +6268,12 @@ import {
|
|
|
6308
6268
|
// src/components/Label/label.tsx
|
|
6309
6269
|
import * as LabelPrimitive from "@radix-ui/react-label";
|
|
6310
6270
|
import { cva as cva5 } from "class-variance-authority";
|
|
6311
|
-
import * as
|
|
6271
|
+
import * as React42 from "react";
|
|
6312
6272
|
import { jsx as jsx18 } from "react/jsx-runtime";
|
|
6313
6273
|
var labelVariants = cva5(
|
|
6314
6274
|
"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 text-label"
|
|
6315
6275
|
);
|
|
6316
|
-
var Label3 =
|
|
6276
|
+
var Label3 = React42.forwardRef((_a, ref) => {
|
|
6317
6277
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
6318
6278
|
return /* @__PURE__ */ jsx18(
|
|
6319
6279
|
LabelPrimitive.Root,
|
|
@@ -6327,7 +6287,7 @@ Label3.displayName = LabelPrimitive.Root.displayName;
|
|
|
6327
6287
|
|
|
6328
6288
|
// src/components/Form/form-component.tsx
|
|
6329
6289
|
import { jsx as jsx19 } from "react/jsx-runtime";
|
|
6330
|
-
var FormFieldContext =
|
|
6290
|
+
var FormFieldContext = React43.createContext(
|
|
6331
6291
|
null
|
|
6332
6292
|
);
|
|
6333
6293
|
function getErrorMessage(error) {
|
|
@@ -6363,18 +6323,18 @@ function getNextEnabledIndex(options, currentIndex, direction) {
|
|
|
6363
6323
|
}
|
|
6364
6324
|
return -1;
|
|
6365
6325
|
}
|
|
6366
|
-
var FormItemContext =
|
|
6367
|
-
var FormItem =
|
|
6326
|
+
var FormItemContext = React43.createContext(null);
|
|
6327
|
+
var FormItem = React43.forwardRef((_a, ref) => {
|
|
6368
6328
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
6369
|
-
const id =
|
|
6329
|
+
const id = React43.useId();
|
|
6370
6330
|
return /* @__PURE__ */ jsx19(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ jsx19("div", __spreadValues({ ref, className: cn("space-y-2", className) }, props)) });
|
|
6371
6331
|
});
|
|
6372
6332
|
FormItem.displayName = "FormItem";
|
|
6373
6333
|
var useFormField = () => {
|
|
6374
6334
|
var _a;
|
|
6375
|
-
const generatedId =
|
|
6376
|
-
const fieldContext =
|
|
6377
|
-
const itemContext =
|
|
6335
|
+
const generatedId = React43.useId();
|
|
6336
|
+
const fieldContext = React43.useContext(FormFieldContext);
|
|
6337
|
+
const itemContext = React43.useContext(FormItemContext);
|
|
6378
6338
|
const formContext = useFormContext();
|
|
6379
6339
|
const id = (_a = itemContext == null ? void 0 : itemContext.id) != null ? _a : generatedId;
|
|
6380
6340
|
if (!fieldContext || !formContext) {
|
|
@@ -6398,7 +6358,7 @@ var useFormField = () => {
|
|
|
6398
6358
|
formMessageId: `${id}-form-item-message`
|
|
6399
6359
|
}, fieldState);
|
|
6400
6360
|
};
|
|
6401
|
-
var FormLabel =
|
|
6361
|
+
var FormLabel = React43.forwardRef((_a, ref) => {
|
|
6402
6362
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
6403
6363
|
const { error, formItemId } = useFormField();
|
|
6404
6364
|
return /* @__PURE__ */ jsx19(
|
|
@@ -6411,7 +6371,7 @@ var FormLabel = React44.forwardRef((_a, ref) => {
|
|
|
6411
6371
|
);
|
|
6412
6372
|
});
|
|
6413
6373
|
FormLabel.displayName = "FormLabel";
|
|
6414
|
-
var FormControl =
|
|
6374
|
+
var FormControl = React43.forwardRef((_a, ref) => {
|
|
6415
6375
|
var props = __objRest(_a, []);
|
|
6416
6376
|
const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
|
|
6417
6377
|
return /* @__PURE__ */ jsx19(
|
|
@@ -6425,7 +6385,7 @@ var FormControl = React44.forwardRef((_a, ref) => {
|
|
|
6425
6385
|
);
|
|
6426
6386
|
});
|
|
6427
6387
|
FormControl.displayName = "FormControl";
|
|
6428
|
-
var FormMessage =
|
|
6388
|
+
var FormMessage = React43.forwardRef((_a, ref) => {
|
|
6429
6389
|
var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
|
|
6430
6390
|
const { error, formMessageId } = useFormField();
|
|
6431
6391
|
const body = error ? getErrorMessage(error) : children;
|
|
@@ -6442,7 +6402,7 @@ var FormMessage = React44.forwardRef((_a, ref) => {
|
|
|
6442
6402
|
);
|
|
6443
6403
|
});
|
|
6444
6404
|
FormMessage.displayName = "FormMessage";
|
|
6445
|
-
var FormDescription =
|
|
6405
|
+
var FormDescription = React43.forwardRef((_a, ref) => {
|
|
6446
6406
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
6447
6407
|
const { formDescriptionId } = useFormField();
|
|
6448
6408
|
return /* @__PURE__ */ jsx19(
|
|
@@ -6473,7 +6433,7 @@ function Form({
|
|
|
6473
6433
|
}
|
|
6474
6434
|
|
|
6475
6435
|
// src/components/Form/form-checkbox.tsx
|
|
6476
|
-
import * as
|
|
6436
|
+
import * as React44 from "react";
|
|
6477
6437
|
import { Asterisk } from "lucide-react";
|
|
6478
6438
|
import {
|
|
6479
6439
|
Controller,
|
|
@@ -6517,7 +6477,7 @@ var FormCheckbox = (_a) => {
|
|
|
6517
6477
|
"onChange"
|
|
6518
6478
|
]);
|
|
6519
6479
|
var _a2;
|
|
6520
|
-
const generatedId =
|
|
6480
|
+
const generatedId = React44.useId();
|
|
6521
6481
|
const form = useFormContext2();
|
|
6522
6482
|
const controllerControl = control != null ? control : form == null ? void 0 : form.control;
|
|
6523
6483
|
const checkboxId = (_a2 = checkboxProps.id) != null ? _a2 : `${generatedId}-checkbox`;
|
|
@@ -6632,9 +6592,9 @@ import {
|
|
|
6632
6592
|
} from "react-hook-form";
|
|
6633
6593
|
|
|
6634
6594
|
// src/components/input.tsx
|
|
6635
|
-
import * as
|
|
6595
|
+
import * as React45 from "react";
|
|
6636
6596
|
|
|
6637
|
-
// src/
|
|
6597
|
+
// src/utils/form-utils.ts
|
|
6638
6598
|
var formInputVariants = {
|
|
6639
6599
|
outline: "rounded-md border border-input bg-input backdrop-blur-sm shadow-sm hover:border-primary/60 focus:border-primary focus:ring-2 focus:ring-primary/20",
|
|
6640
6600
|
soft: "rounded-md border border-transparent bg-muted/60 shadow-sm hover:bg-muted focus:bg-input/80 focus:ring-2 focus:ring-primary/20",
|
|
@@ -6644,6 +6604,15 @@ var formInputVariants = {
|
|
|
6644
6604
|
unstyled: "border-0 shadow-none focus:ring-0",
|
|
6645
6605
|
link: "h-auto border-0 bg-transparent p-0 text-primary shadow-none underline-offset-4 focus:underline focus:ring-0"
|
|
6646
6606
|
};
|
|
6607
|
+
var formCompositeVariants = {
|
|
6608
|
+
outline: "rounded-md border border-input bg-input backdrop-blur-sm shadow-sm hover:border-primary/60 focus-within:border-primary focus-within:ring-2 focus-within:ring-primary/20",
|
|
6609
|
+
soft: "rounded-md border border-transparent bg-muted/60 shadow-sm hover:bg-muted focus-within:bg-input/80 focus-within:ring-2 focus-within:ring-primary/20",
|
|
6610
|
+
ghost: "rounded-md border border-transparent bg-transparent hover:bg-muted/50 focus-within:ring-2 focus-within:ring-ring",
|
|
6611
|
+
filled: "rounded-md border border-input bg-muted/70 shadow-inner hover:bg-muted focus-within:bg-input/70 focus-within:ring-2 focus-within:ring-primary/20",
|
|
6612
|
+
flushed: "rounded-none border-0 border-b border-input px-0 shadow-none focus-within:border-b-2 focus-within:border-primary focus-within:ring-0",
|
|
6613
|
+
unstyled: "border-0 shadow-none focus-within:ring-0",
|
|
6614
|
+
link: "h-auto border-0 bg-transparent p-0 text-primary shadow-none underline-offset-4 focus-within:underline focus-within:ring-0"
|
|
6615
|
+
};
|
|
6647
6616
|
var variants = formInputVariants;
|
|
6648
6617
|
var formSizeVariants = {
|
|
6649
6618
|
"2xs": {
|
|
@@ -6724,13 +6693,22 @@ var formSizeVariants = {
|
|
|
6724
6693
|
message: "text-base"
|
|
6725
6694
|
}
|
|
6726
6695
|
};
|
|
6696
|
+
var formControlBase = "relative inline-flex w-full items-center justify-between gap-2 text-foreground outline-none transition data-[placeholder]:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50";
|
|
6697
|
+
var formCompositeControlBase = "relative flex w-full items-center gap-2 text-foreground outline-none transition";
|
|
6698
|
+
var formControlErrorClass = "border-destructive focus:border-destructive focus:ring-destructive/20";
|
|
6699
|
+
var formCompositeControlErrorClass = "border-destructive focus-within:border-destructive focus-within:ring-destructive/20";
|
|
6727
6700
|
function getFormSizeClasses(size = "md", customSize) {
|
|
6728
6701
|
return __spreadValues(__spreadValues({}, formSizeVariants[size]), customSize);
|
|
6729
6702
|
}
|
|
6703
|
+
function getFormControlSizeClass(variant, sizeClasses) {
|
|
6704
|
+
if (variant === "flushed") return sizeClasses.flushedControl;
|
|
6705
|
+
if (variant === "link") return sizeClasses.linkControl;
|
|
6706
|
+
return sizeClasses.control;
|
|
6707
|
+
}
|
|
6730
6708
|
|
|
6731
6709
|
// src/components/input.tsx
|
|
6732
6710
|
import { jsx as jsx22, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
6733
|
-
var Input =
|
|
6711
|
+
var Input = React45.forwardRef(
|
|
6734
6712
|
(_a, ref) => {
|
|
6735
6713
|
var _b = _a, {
|
|
6736
6714
|
className,
|
|
@@ -6938,163 +6916,1112 @@ import {
|
|
|
6938
6916
|
} from "react-hook-form";
|
|
6939
6917
|
|
|
6940
6918
|
// src/components/select.tsx
|
|
6941
|
-
import {
|
|
6942
|
-
|
|
6943
|
-
|
|
6944
|
-
ChevronDownIcon as ChevronDownIcon2,
|
|
6945
|
-
ChevronUpIcon
|
|
6946
|
-
} from "@radix-ui/react-icons";
|
|
6947
|
-
import * as SelectPrimitive from "@radix-ui/react-select";
|
|
6948
|
-
import * as React47 from "react";
|
|
6919
|
+
import { CaretSortIcon, CheckIcon as CheckIcon4 } from "@radix-ui/react-icons";
|
|
6920
|
+
import * as React46 from "react";
|
|
6921
|
+
import { createPortal } from "react-dom";
|
|
6949
6922
|
import { jsx as jsx24, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
6950
|
-
var
|
|
6951
|
-
|
|
6952
|
-
|
|
6953
|
-
|
|
6954
|
-
|
|
6955
|
-
|
|
6956
|
-
|
|
6957
|
-
|
|
6958
|
-
|
|
6959
|
-
|
|
6960
|
-
|
|
6961
|
-
|
|
6962
|
-
|
|
6963
|
-
|
|
6964
|
-
|
|
6965
|
-
|
|
6966
|
-
|
|
6967
|
-
|
|
6968
|
-
|
|
6969
|
-
|
|
6970
|
-
}
|
|
6971
|
-
|
|
6972
|
-
|
|
6973
|
-
|
|
6974
|
-
return /* @__PURE__ */ jsx24(
|
|
6975
|
-
SelectPrimitive.ScrollUpButton,
|
|
6976
|
-
__spreadProps(__spreadValues({
|
|
6977
|
-
ref,
|
|
6978
|
-
className: cn(
|
|
6979
|
-
"flex cursor-default items-center justify-center py-1",
|
|
6980
|
-
className
|
|
6981
|
-
)
|
|
6982
|
-
}, props), {
|
|
6983
|
-
children: /* @__PURE__ */ jsx24(ChevronUpIcon, {})
|
|
6984
|
-
})
|
|
6923
|
+
var SelectContext = React46.createContext(null);
|
|
6924
|
+
function useSelectContext(componentName) {
|
|
6925
|
+
const context = React46.useContext(SelectContext);
|
|
6926
|
+
if (!context) {
|
|
6927
|
+
throw new Error(`${componentName} must be used within <Select />`);
|
|
6928
|
+
}
|
|
6929
|
+
return context;
|
|
6930
|
+
}
|
|
6931
|
+
function useControllableState({
|
|
6932
|
+
value,
|
|
6933
|
+
defaultValue,
|
|
6934
|
+
onChange
|
|
6935
|
+
}) {
|
|
6936
|
+
const [internalValue, setInternalValue] = React46.useState(defaultValue);
|
|
6937
|
+
const isControlled = value !== void 0;
|
|
6938
|
+
const currentValue = isControlled ? value : internalValue;
|
|
6939
|
+
const setValue = React46.useCallback(
|
|
6940
|
+
(nextValue) => {
|
|
6941
|
+
if (!isControlled) {
|
|
6942
|
+
setInternalValue(nextValue);
|
|
6943
|
+
}
|
|
6944
|
+
onChange == null ? void 0 : onChange(nextValue);
|
|
6945
|
+
},
|
|
6946
|
+
[isControlled, onChange]
|
|
6985
6947
|
);
|
|
6986
|
-
|
|
6987
|
-
|
|
6988
|
-
|
|
6989
|
-
|
|
6990
|
-
|
|
6991
|
-
|
|
6992
|
-
|
|
6993
|
-
|
|
6994
|
-
|
|
6995
|
-
|
|
6996
|
-
|
|
6997
|
-
|
|
6998
|
-
|
|
6999
|
-
|
|
7000
|
-
|
|
6948
|
+
return [currentValue, setValue];
|
|
6949
|
+
}
|
|
6950
|
+
function composeRefs(...refs) {
|
|
6951
|
+
return (node) => {
|
|
6952
|
+
refs.forEach((ref) => {
|
|
6953
|
+
if (!ref) return;
|
|
6954
|
+
if (typeof ref === "function") {
|
|
6955
|
+
ref(node);
|
|
6956
|
+
return;
|
|
6957
|
+
}
|
|
6958
|
+
ref.current = node;
|
|
6959
|
+
});
|
|
6960
|
+
};
|
|
6961
|
+
}
|
|
6962
|
+
function getNodeText(node) {
|
|
6963
|
+
if (node === null || node === void 0 || typeof node === "boolean") {
|
|
6964
|
+
return "";
|
|
6965
|
+
}
|
|
6966
|
+
if (typeof node === "string" || typeof node === "number") {
|
|
6967
|
+
return String(node);
|
|
6968
|
+
}
|
|
6969
|
+
if (Array.isArray(node)) {
|
|
6970
|
+
return node.map(getNodeText).join("");
|
|
6971
|
+
}
|
|
6972
|
+
if (React46.isValidElement(node)) {
|
|
6973
|
+
return getNodeText(node.props.children);
|
|
6974
|
+
}
|
|
6975
|
+
return "";
|
|
6976
|
+
}
|
|
6977
|
+
function getEnabledItems(items) {
|
|
6978
|
+
return items.filter((item) => !item.disabled);
|
|
6979
|
+
}
|
|
6980
|
+
function getNextItemValue(items, currentValue, direction) {
|
|
6981
|
+
var _a, _b, _c;
|
|
6982
|
+
const enabledItems = getEnabledItems(items);
|
|
6983
|
+
if (!enabledItems.length) return void 0;
|
|
6984
|
+
const currentIndex = enabledItems.findIndex(
|
|
6985
|
+
(item) => item.value === currentValue
|
|
7001
6986
|
);
|
|
7002
|
-
|
|
7003
|
-
|
|
7004
|
-
|
|
7005
|
-
|
|
7006
|
-
return
|
|
7007
|
-
|
|
7008
|
-
|
|
7009
|
-
|
|
7010
|
-
|
|
7011
|
-
|
|
7012
|
-
|
|
7013
|
-
|
|
7014
|
-
|
|
7015
|
-
|
|
7016
|
-
|
|
7017
|
-
|
|
7018
|
-
|
|
7019
|
-
|
|
7020
|
-
|
|
7021
|
-
|
|
7022
|
-
|
|
7023
|
-
|
|
7024
|
-
|
|
7025
|
-
|
|
7026
|
-
|
|
7027
|
-
|
|
7028
|
-
|
|
7029
|
-
|
|
7030
|
-
|
|
7031
|
-
|
|
7032
|
-
|
|
7033
|
-
|
|
7034
|
-
|
|
7035
|
-
|
|
7036
|
-
|
|
7037
|
-
|
|
7038
|
-
|
|
7039
|
-
|
|
7040
|
-
|
|
7041
|
-
|
|
7042
|
-
|
|
6987
|
+
if (currentIndex === -1) {
|
|
6988
|
+
return direction === "next" ? (_a = enabledItems[0]) == null ? void 0 : _a.value : (_b = enabledItems[enabledItems.length - 1]) == null ? void 0 : _b.value;
|
|
6989
|
+
}
|
|
6990
|
+
const nextIndex = direction === "next" ? (currentIndex + 1) % enabledItems.length : (currentIndex - 1 + enabledItems.length) % enabledItems.length;
|
|
6991
|
+
return (_c = enabledItems[nextIndex]) == null ? void 0 : _c.value;
|
|
6992
|
+
}
|
|
6993
|
+
function Select2({
|
|
6994
|
+
value,
|
|
6995
|
+
defaultValue = "",
|
|
6996
|
+
onValueChange,
|
|
6997
|
+
open,
|
|
6998
|
+
defaultOpen = false,
|
|
6999
|
+
onOpenChange,
|
|
7000
|
+
disabled = false,
|
|
7001
|
+
name,
|
|
7002
|
+
required,
|
|
7003
|
+
variant = "outline",
|
|
7004
|
+
size = "sm",
|
|
7005
|
+
customSize,
|
|
7006
|
+
invalid = false,
|
|
7007
|
+
children
|
|
7008
|
+
}) {
|
|
7009
|
+
const triggerRef = React46.useRef(null);
|
|
7010
|
+
const contentRef = React46.useRef(null);
|
|
7011
|
+
const [currentValue, setCurrentValue] = useControllableState({
|
|
7012
|
+
value,
|
|
7013
|
+
defaultValue,
|
|
7014
|
+
onChange: onValueChange
|
|
7015
|
+
});
|
|
7016
|
+
const [isOpen, setIsOpen] = useControllableState({
|
|
7017
|
+
value: open,
|
|
7018
|
+
defaultValue: defaultOpen,
|
|
7019
|
+
onChange: onOpenChange
|
|
7020
|
+
});
|
|
7021
|
+
const itemsRef = React46.useRef(/* @__PURE__ */ new Map());
|
|
7022
|
+
const [itemsVersion, forceItemsUpdate] = React46.useReducer(
|
|
7023
|
+
(version) => version + 1,
|
|
7024
|
+
0
|
|
7025
|
+
);
|
|
7026
|
+
const [activeValue, setActiveValue] = React46.useState();
|
|
7027
|
+
const items = React46.useMemo(
|
|
7028
|
+
() => Array.from(itemsRef.current.values()),
|
|
7029
|
+
[itemsVersion]
|
|
7030
|
+
);
|
|
7031
|
+
const selectedItem = items.find((item) => item.value === currentValue);
|
|
7032
|
+
const registerItem = React46.useCallback((item) => {
|
|
7033
|
+
itemsRef.current.set(item.value, item);
|
|
7034
|
+
forceItemsUpdate();
|
|
7035
|
+
}, []);
|
|
7036
|
+
const unregisterItem = React46.useCallback((value2, id) => {
|
|
7037
|
+
const currentItem = itemsRef.current.get(value2);
|
|
7038
|
+
if (!currentItem || currentItem.id !== id) return;
|
|
7039
|
+
itemsRef.current.set(value2, __spreadProps(__spreadValues({}, currentItem), {
|
|
7040
|
+
ref: null
|
|
7041
|
+
}));
|
|
7042
|
+
forceItemsUpdate();
|
|
7043
|
+
}, []);
|
|
7044
|
+
const updateItemRef = React46.useCallback(
|
|
7045
|
+
(value2, id, node) => {
|
|
7046
|
+
const currentItem = itemsRef.current.get(value2);
|
|
7047
|
+
if (!currentItem || currentItem.id !== id) return;
|
|
7048
|
+
if (currentItem.ref === node) return;
|
|
7049
|
+
itemsRef.current.set(value2, __spreadProps(__spreadValues({}, currentItem), {
|
|
7050
|
+
ref: node
|
|
7051
|
+
}));
|
|
7052
|
+
forceItemsUpdate();
|
|
7053
|
+
},
|
|
7054
|
+
[]
|
|
7043
7055
|
);
|
|
7044
|
-
|
|
7045
|
-
|
|
7046
|
-
|
|
7047
|
-
|
|
7048
|
-
|
|
7049
|
-
|
|
7050
|
-
__spreadProps(__spreadValues({
|
|
7051
|
-
ref,
|
|
7052
|
-
className: cn(
|
|
7053
|
-
"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
|
|
7054
|
-
className
|
|
7055
|
-
)
|
|
7056
|
-
}, props), {
|
|
7057
|
-
children: [
|
|
7058
|
-
/* @__PURE__ */ jsx24("span", { className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx24(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx24(CheckIcon4, { className: "h-4 w-4" }) }) }),
|
|
7059
|
-
/* @__PURE__ */ jsx24(SelectPrimitive.ItemText, { children })
|
|
7060
|
-
]
|
|
7061
|
-
})
|
|
7056
|
+
const handleOpenChange = React46.useCallback(
|
|
7057
|
+
(nextOpen) => {
|
|
7058
|
+
if (disabled) return;
|
|
7059
|
+
setIsOpen(nextOpen);
|
|
7060
|
+
},
|
|
7061
|
+
[disabled, setIsOpen]
|
|
7062
7062
|
);
|
|
7063
|
-
|
|
7064
|
-
|
|
7065
|
-
|
|
7066
|
-
|
|
7067
|
-
|
|
7068
|
-
|
|
7069
|
-
|
|
7070
|
-
|
|
7071
|
-
|
|
7072
|
-
},
|
|
7063
|
+
const handleValueChange = React46.useCallback(
|
|
7064
|
+
(nextValue) => {
|
|
7065
|
+
if (disabled) return;
|
|
7066
|
+
setCurrentValue(nextValue);
|
|
7067
|
+
setIsOpen(false);
|
|
7068
|
+
requestAnimationFrame(() => {
|
|
7069
|
+
var _a;
|
|
7070
|
+
(_a = triggerRef.current) == null ? void 0 : _a.focus();
|
|
7071
|
+
});
|
|
7072
|
+
},
|
|
7073
|
+
[disabled, setCurrentValue, setIsOpen]
|
|
7073
7074
|
);
|
|
7074
|
-
|
|
7075
|
-
|
|
7076
|
-
|
|
7077
|
-
|
|
7078
|
-
|
|
7079
|
-
|
|
7080
|
-
|
|
7081
|
-
|
|
7082
|
-
|
|
7083
|
-
|
|
7084
|
-
|
|
7085
|
-
|
|
7086
|
-
|
|
7087
|
-
|
|
7088
|
-
|
|
7089
|
-
|
|
7090
|
-
|
|
7091
|
-
|
|
7092
|
-
|
|
7093
|
-
|
|
7094
|
-
|
|
7095
|
-
|
|
7096
|
-
|
|
7097
|
-
|
|
7075
|
+
React46.useEffect(() => {
|
|
7076
|
+
var _a;
|
|
7077
|
+
if (!isOpen) return;
|
|
7078
|
+
const selectedEnabledItem = items.find(
|
|
7079
|
+
(item) => item.value === currentValue && !item.disabled
|
|
7080
|
+
);
|
|
7081
|
+
const firstEnabledItem = getEnabledItems(items)[0];
|
|
7082
|
+
setActiveValue((_a = selectedEnabledItem == null ? void 0 : selectedEnabledItem.value) != null ? _a : firstEnabledItem == null ? void 0 : firstEnabledItem.value);
|
|
7083
|
+
}, [currentValue, isOpen, items]);
|
|
7084
|
+
React46.useEffect(() => {
|
|
7085
|
+
if (!isOpen) return;
|
|
7086
|
+
const handlePointerDown = (event) => {
|
|
7087
|
+
var _a, _b;
|
|
7088
|
+
const target = event.target;
|
|
7089
|
+
if (((_a = triggerRef.current) == null ? void 0 : _a.contains(target)) || ((_b = contentRef.current) == null ? void 0 : _b.contains(target))) {
|
|
7090
|
+
return;
|
|
7091
|
+
}
|
|
7092
|
+
setIsOpen(false);
|
|
7093
|
+
};
|
|
7094
|
+
document.addEventListener("pointerdown", handlePointerDown);
|
|
7095
|
+
return () => {
|
|
7096
|
+
document.removeEventListener("pointerdown", handlePointerDown);
|
|
7097
|
+
};
|
|
7098
|
+
}, [isOpen, setIsOpen]);
|
|
7099
|
+
const contextValue = React46.useMemo(
|
|
7100
|
+
() => ({
|
|
7101
|
+
value: currentValue,
|
|
7102
|
+
open: isOpen,
|
|
7103
|
+
disabled,
|
|
7104
|
+
invalid,
|
|
7105
|
+
variant,
|
|
7106
|
+
size,
|
|
7107
|
+
customSize,
|
|
7108
|
+
selectedItem,
|
|
7109
|
+
activeValue,
|
|
7110
|
+
items,
|
|
7111
|
+
triggerRef,
|
|
7112
|
+
contentRef,
|
|
7113
|
+
setOpen: handleOpenChange,
|
|
7114
|
+
setValue: handleValueChange,
|
|
7115
|
+
setActiveValue,
|
|
7116
|
+
registerItem,
|
|
7117
|
+
unregisterItem,
|
|
7118
|
+
updateItemRef
|
|
7119
|
+
}),
|
|
7120
|
+
[
|
|
7121
|
+
currentValue,
|
|
7122
|
+
isOpen,
|
|
7123
|
+
disabled,
|
|
7124
|
+
invalid,
|
|
7125
|
+
variant,
|
|
7126
|
+
size,
|
|
7127
|
+
customSize,
|
|
7128
|
+
selectedItem,
|
|
7129
|
+
activeValue,
|
|
7130
|
+
items,
|
|
7131
|
+
handleOpenChange,
|
|
7132
|
+
handleValueChange,
|
|
7133
|
+
registerItem,
|
|
7134
|
+
unregisterItem,
|
|
7135
|
+
updateItemRef
|
|
7136
|
+
]
|
|
7137
|
+
);
|
|
7138
|
+
return /* @__PURE__ */ jsxs14(SelectContext.Provider, { value: contextValue, children: [
|
|
7139
|
+
children,
|
|
7140
|
+
name ? /* @__PURE__ */ jsx24(
|
|
7141
|
+
"input",
|
|
7142
|
+
{
|
|
7143
|
+
type: "hidden",
|
|
7144
|
+
name,
|
|
7145
|
+
value: currentValue,
|
|
7146
|
+
required
|
|
7147
|
+
}
|
|
7148
|
+
) : null
|
|
7149
|
+
] });
|
|
7150
|
+
}
|
|
7151
|
+
var SelectTrigger = React46.forwardRef(
|
|
7152
|
+
(_a, ref) => {
|
|
7153
|
+
var _b = _a, {
|
|
7154
|
+
className,
|
|
7155
|
+
children,
|
|
7156
|
+
variant,
|
|
7157
|
+
size,
|
|
7158
|
+
customSize,
|
|
7159
|
+
invalid,
|
|
7160
|
+
disabled,
|
|
7161
|
+
onClick,
|
|
7162
|
+
onKeyDown
|
|
7163
|
+
} = _b, props = __objRest(_b, [
|
|
7164
|
+
"className",
|
|
7165
|
+
"children",
|
|
7166
|
+
"variant",
|
|
7167
|
+
"size",
|
|
7168
|
+
"customSize",
|
|
7169
|
+
"invalid",
|
|
7170
|
+
"disabled",
|
|
7171
|
+
"onClick",
|
|
7172
|
+
"onKeyDown"
|
|
7173
|
+
]);
|
|
7174
|
+
const context = useSelectContext("SelectTrigger");
|
|
7175
|
+
const resolvedVariant = variant != null ? variant : context.variant;
|
|
7176
|
+
const resolvedSize = size != null ? size : context.size;
|
|
7177
|
+
const resolvedCustomSize = customSize != null ? customSize : context.customSize;
|
|
7178
|
+
const resolvedInvalid = invalid != null ? invalid : context.invalid;
|
|
7179
|
+
const resolvedDisabled = disabled != null ? disabled : context.disabled;
|
|
7180
|
+
const sizeClasses = getFormSizeClasses(resolvedSize, resolvedCustomSize);
|
|
7181
|
+
const controlSizeClass = getFormControlSizeClass(
|
|
7182
|
+
resolvedVariant,
|
|
7183
|
+
sizeClasses
|
|
7184
|
+
);
|
|
7185
|
+
const typeaheadRef = React46.useRef("");
|
|
7186
|
+
const typeaheadTimeoutRef = React46.useRef(null);
|
|
7187
|
+
const moveActiveItem = React46.useCallback(
|
|
7188
|
+
(direction) => {
|
|
7189
|
+
var _a2;
|
|
7190
|
+
const nextValue = getNextItemValue(
|
|
7191
|
+
context.items,
|
|
7192
|
+
(_a2 = context.activeValue) != null ? _a2 : context.value,
|
|
7193
|
+
direction
|
|
7194
|
+
);
|
|
7195
|
+
if (nextValue) {
|
|
7196
|
+
context.setActiveValue(nextValue);
|
|
7197
|
+
}
|
|
7198
|
+
},
|
|
7199
|
+
[context]
|
|
7200
|
+
);
|
|
7201
|
+
const handleTypeahead = React46.useCallback(
|
|
7202
|
+
(key) => {
|
|
7203
|
+
typeaheadRef.current += key.toLowerCase();
|
|
7204
|
+
if (typeaheadTimeoutRef.current) {
|
|
7205
|
+
window.clearTimeout(typeaheadTimeoutRef.current);
|
|
7206
|
+
}
|
|
7207
|
+
typeaheadTimeoutRef.current = window.setTimeout(() => {
|
|
7208
|
+
typeaheadRef.current = "";
|
|
7209
|
+
}, 500);
|
|
7210
|
+
const enabledItems = getEnabledItems(context.items);
|
|
7211
|
+
const match2 = enabledItems.find(
|
|
7212
|
+
(item) => item.textValue.toLowerCase().startsWith(typeaheadRef.current)
|
|
7213
|
+
);
|
|
7214
|
+
if (!match2) return;
|
|
7215
|
+
if (!context.open) {
|
|
7216
|
+
context.setOpen(true);
|
|
7217
|
+
}
|
|
7218
|
+
context.setActiveValue(match2.value);
|
|
7219
|
+
},
|
|
7220
|
+
[context]
|
|
7221
|
+
);
|
|
7222
|
+
React46.useEffect(() => {
|
|
7223
|
+
return () => {
|
|
7224
|
+
if (typeaheadTimeoutRef.current) {
|
|
7225
|
+
window.clearTimeout(typeaheadTimeoutRef.current);
|
|
7226
|
+
}
|
|
7227
|
+
};
|
|
7228
|
+
}, []);
|
|
7229
|
+
const handleKeyDown = (event) => {
|
|
7230
|
+
onKeyDown == null ? void 0 : onKeyDown(event);
|
|
7231
|
+
if (event.defaultPrevented || resolvedDisabled) return;
|
|
7232
|
+
if (event.key === "ArrowDown") {
|
|
7233
|
+
event.preventDefault();
|
|
7234
|
+
if (!context.open) {
|
|
7235
|
+
context.setOpen(true);
|
|
7236
|
+
return;
|
|
7237
|
+
}
|
|
7238
|
+
moveActiveItem("next");
|
|
7239
|
+
return;
|
|
7240
|
+
}
|
|
7241
|
+
if (event.key === "ArrowUp") {
|
|
7242
|
+
event.preventDefault();
|
|
7243
|
+
if (!context.open) {
|
|
7244
|
+
context.setOpen(true);
|
|
7245
|
+
return;
|
|
7246
|
+
}
|
|
7247
|
+
moveActiveItem("previous");
|
|
7248
|
+
return;
|
|
7249
|
+
}
|
|
7250
|
+
if (event.key === "Enter" || event.key === " ") {
|
|
7251
|
+
event.preventDefault();
|
|
7252
|
+
if (!context.open) {
|
|
7253
|
+
context.setOpen(true);
|
|
7254
|
+
return;
|
|
7255
|
+
}
|
|
7256
|
+
if (context.activeValue) {
|
|
7257
|
+
context.setValue(context.activeValue);
|
|
7258
|
+
}
|
|
7259
|
+
return;
|
|
7260
|
+
}
|
|
7261
|
+
if (event.key === "Escape") {
|
|
7262
|
+
event.preventDefault();
|
|
7263
|
+
context.setOpen(false);
|
|
7264
|
+
return;
|
|
7265
|
+
}
|
|
7266
|
+
if (event.key === "Home") {
|
|
7267
|
+
event.preventDefault();
|
|
7268
|
+
const firstEnabledItem = getEnabledItems(context.items)[0];
|
|
7269
|
+
if (firstEnabledItem) {
|
|
7270
|
+
context.setActiveValue(firstEnabledItem.value);
|
|
7271
|
+
}
|
|
7272
|
+
return;
|
|
7273
|
+
}
|
|
7274
|
+
if (event.key === "End") {
|
|
7275
|
+
event.preventDefault();
|
|
7276
|
+
const enabledItems = getEnabledItems(context.items);
|
|
7277
|
+
const lastEnabledItem = enabledItems[enabledItems.length - 1];
|
|
7278
|
+
if (lastEnabledItem) {
|
|
7279
|
+
context.setActiveValue(lastEnabledItem.value);
|
|
7280
|
+
}
|
|
7281
|
+
return;
|
|
7282
|
+
}
|
|
7283
|
+
if (event.key.length === 1 && !event.ctrlKey && !event.metaKey && !event.altKey) {
|
|
7284
|
+
handleTypeahead(event.key);
|
|
7285
|
+
}
|
|
7286
|
+
};
|
|
7287
|
+
return /* @__PURE__ */ jsxs14(
|
|
7288
|
+
"button",
|
|
7289
|
+
__spreadProps(__spreadValues({
|
|
7290
|
+
ref: composeRefs(ref, context.triggerRef),
|
|
7291
|
+
type: "button",
|
|
7292
|
+
"aria-haspopup": "listbox",
|
|
7293
|
+
"aria-expanded": context.open,
|
|
7294
|
+
"data-placeholder": !context.value ? "" : void 0,
|
|
7295
|
+
disabled: resolvedDisabled,
|
|
7296
|
+
className: cn(
|
|
7297
|
+
formControlBase,
|
|
7298
|
+
"whitespace-nowrap ring-offset-background [&>span]:line-clamp-1",
|
|
7299
|
+
formInputVariants[resolvedVariant],
|
|
7300
|
+
controlSizeClass,
|
|
7301
|
+
resolvedInvalid && formControlErrorClass,
|
|
7302
|
+
className
|
|
7303
|
+
),
|
|
7304
|
+
onClick: (event) => {
|
|
7305
|
+
onClick == null ? void 0 : onClick(event);
|
|
7306
|
+
if (!event.defaultPrevented && !resolvedDisabled) {
|
|
7307
|
+
context.setOpen(!context.open);
|
|
7308
|
+
}
|
|
7309
|
+
},
|
|
7310
|
+
onKeyDown: handleKeyDown
|
|
7311
|
+
}, props), {
|
|
7312
|
+
children: [
|
|
7313
|
+
children,
|
|
7314
|
+
/* @__PURE__ */ jsx24(CaretSortIcon, { className: "h-4 w-4 shrink-0 opacity-50" })
|
|
7315
|
+
]
|
|
7316
|
+
})
|
|
7317
|
+
);
|
|
7318
|
+
}
|
|
7319
|
+
);
|
|
7320
|
+
SelectTrigger.displayName = "SelectTrigger";
|
|
7321
|
+
var SelectValue = React46.forwardRef(
|
|
7322
|
+
(_a, ref) => {
|
|
7323
|
+
var _b = _a, { className, placeholder, children } = _b, props = __objRest(_b, ["className", "placeholder", "children"]);
|
|
7324
|
+
var _a2, _b2;
|
|
7325
|
+
const context = useSelectContext("SelectValue");
|
|
7326
|
+
return /* @__PURE__ */ jsx24("span", __spreadProps(__spreadValues({ ref, className: cn("truncate", className) }, props), { children: (_b2 = children != null ? children : (_a2 = context.selectedItem) == null ? void 0 : _a2.label) != null ? _b2 : placeholder }));
|
|
7327
|
+
}
|
|
7328
|
+
);
|
|
7329
|
+
SelectValue.displayName = "SelectValue";
|
|
7330
|
+
var SelectContent = React46.forwardRef(
|
|
7331
|
+
(_a, ref) => {
|
|
7332
|
+
var _b = _a, {
|
|
7333
|
+
className,
|
|
7334
|
+
children,
|
|
7335
|
+
sideOffset = 4,
|
|
7336
|
+
align = "start",
|
|
7337
|
+
position: _position,
|
|
7338
|
+
style
|
|
7339
|
+
} = _b, props = __objRest(_b, [
|
|
7340
|
+
"className",
|
|
7341
|
+
"children",
|
|
7342
|
+
"sideOffset",
|
|
7343
|
+
"align",
|
|
7344
|
+
"position",
|
|
7345
|
+
"style"
|
|
7346
|
+
]);
|
|
7347
|
+
const context = useSelectContext("SelectContent");
|
|
7348
|
+
const scrollRef = React46.useRef(null);
|
|
7349
|
+
const rafRef = React46.useRef(null);
|
|
7350
|
+
const [mounted, setMounted] = React46.useState(false);
|
|
7351
|
+
const [side, setSide] = React46.useState("bottom");
|
|
7352
|
+
const [contentStyle, setContentStyle] = React46.useState();
|
|
7353
|
+
React46.useEffect(() => {
|
|
7354
|
+
setMounted(true);
|
|
7355
|
+
}, []);
|
|
7356
|
+
const updatePosition = React46.useCallback(() => {
|
|
7357
|
+
const trigger = context.triggerRef.current;
|
|
7358
|
+
if (!trigger) return;
|
|
7359
|
+
const rect = trigger.getBoundingClientRect();
|
|
7360
|
+
const viewportPadding = 8;
|
|
7361
|
+
const preferredMaxHeight = 260;
|
|
7362
|
+
const minUsefulHeight = 140;
|
|
7363
|
+
const availableBelow = window.innerHeight - rect.bottom - viewportPadding - sideOffset;
|
|
7364
|
+
const availableAbove = rect.top - viewportPadding - sideOffset;
|
|
7365
|
+
const nextSide = availableBelow >= Math.min(preferredMaxHeight, minUsefulHeight) || availableBelow >= availableAbove ? "bottom" : "top";
|
|
7366
|
+
const availableHeight = nextSide === "bottom" ? availableBelow : availableAbove;
|
|
7367
|
+
const contentMaxHeight = Math.max(
|
|
7368
|
+
80,
|
|
7369
|
+
Math.min(preferredMaxHeight, availableHeight)
|
|
7370
|
+
);
|
|
7371
|
+
const baseStyle = {
|
|
7372
|
+
position: "fixed",
|
|
7373
|
+
zIndex: 9999,
|
|
7374
|
+
width: rect.width,
|
|
7375
|
+
minWidth: rect.width,
|
|
7376
|
+
maxWidth: "calc(100vw - 16px)",
|
|
7377
|
+
maxHeight: contentMaxHeight
|
|
7378
|
+
};
|
|
7379
|
+
if (align === "start") {
|
|
7380
|
+
baseStyle.left = rect.left;
|
|
7381
|
+
baseStyle.transform = void 0;
|
|
7382
|
+
}
|
|
7383
|
+
if (align === "center") {
|
|
7384
|
+
baseStyle.left = rect.left + rect.width / 2;
|
|
7385
|
+
baseStyle.transform = "translateX(-50%)";
|
|
7386
|
+
}
|
|
7387
|
+
if (align === "end") {
|
|
7388
|
+
baseStyle.left = rect.right;
|
|
7389
|
+
baseStyle.transform = "translateX(-100%)";
|
|
7390
|
+
}
|
|
7391
|
+
if (nextSide === "bottom") {
|
|
7392
|
+
baseStyle.top = rect.bottom + sideOffset;
|
|
7393
|
+
baseStyle.bottom = void 0;
|
|
7394
|
+
} else {
|
|
7395
|
+
baseStyle.bottom = window.innerHeight - rect.top + sideOffset;
|
|
7396
|
+
baseStyle.top = void 0;
|
|
7397
|
+
}
|
|
7398
|
+
setSide(nextSide);
|
|
7399
|
+
setContentStyle(baseStyle);
|
|
7400
|
+
}, [align, context.triggerRef, sideOffset]);
|
|
7401
|
+
const scheduleUpdatePosition = React46.useCallback(() => {
|
|
7402
|
+
if (rafRef.current) {
|
|
7403
|
+
cancelAnimationFrame(rafRef.current);
|
|
7404
|
+
}
|
|
7405
|
+
rafRef.current = requestAnimationFrame(() => {
|
|
7406
|
+
updatePosition();
|
|
7407
|
+
});
|
|
7408
|
+
}, [updatePosition]);
|
|
7409
|
+
React46.useLayoutEffect(() => {
|
|
7410
|
+
var _a2, _b2;
|
|
7411
|
+
if (!context.open) return;
|
|
7412
|
+
updatePosition();
|
|
7413
|
+
scheduleUpdatePosition();
|
|
7414
|
+
const handleResize = () => {
|
|
7415
|
+
scheduleUpdatePosition();
|
|
7416
|
+
};
|
|
7417
|
+
const handlePageScroll = (event) => {
|
|
7418
|
+
var _a3;
|
|
7419
|
+
const target = event.target;
|
|
7420
|
+
if (target && ((_a3 = scrollRef.current) == null ? void 0 : _a3.contains(target))) {
|
|
7421
|
+
return;
|
|
7422
|
+
}
|
|
7423
|
+
scheduleUpdatePosition();
|
|
7424
|
+
};
|
|
7425
|
+
window.addEventListener("resize", handleResize);
|
|
7426
|
+
window.addEventListener("scroll", handlePageScroll, true);
|
|
7427
|
+
(_a2 = window.visualViewport) == null ? void 0 : _a2.addEventListener("resize", handleResize);
|
|
7428
|
+
(_b2 = window.visualViewport) == null ? void 0 : _b2.addEventListener("scroll", handleResize);
|
|
7429
|
+
return () => {
|
|
7430
|
+
var _a3, _b3;
|
|
7431
|
+
window.removeEventListener("resize", handleResize);
|
|
7432
|
+
window.removeEventListener("scroll", handlePageScroll, true);
|
|
7433
|
+
(_a3 = window.visualViewport) == null ? void 0 : _a3.removeEventListener("resize", handleResize);
|
|
7434
|
+
(_b3 = window.visualViewport) == null ? void 0 : _b3.removeEventListener("scroll", handleResize);
|
|
7435
|
+
if (rafRef.current) {
|
|
7436
|
+
cancelAnimationFrame(rafRef.current);
|
|
7437
|
+
rafRef.current = null;
|
|
7438
|
+
}
|
|
7439
|
+
};
|
|
7440
|
+
}, [context.open, scheduleUpdatePosition, updatePosition]);
|
|
7441
|
+
React46.useLayoutEffect(() => {
|
|
7442
|
+
if (!context.open) return;
|
|
7443
|
+
const frame = requestAnimationFrame(() => {
|
|
7444
|
+
var _a2;
|
|
7445
|
+
const activeItem = context.items.find(
|
|
7446
|
+
(item) => item.value === context.activeValue
|
|
7447
|
+
);
|
|
7448
|
+
(_a2 = activeItem == null ? void 0 : activeItem.ref) == null ? void 0 : _a2.scrollIntoView({
|
|
7449
|
+
block: "nearest"
|
|
7450
|
+
});
|
|
7451
|
+
});
|
|
7452
|
+
return () => {
|
|
7453
|
+
cancelAnimationFrame(frame);
|
|
7454
|
+
};
|
|
7455
|
+
}, [context.activeValue, context.items, context.open]);
|
|
7456
|
+
if (!context.open) {
|
|
7457
|
+
return /* @__PURE__ */ jsx24("div", { hidden: true, "aria-hidden": "true", style: { display: "none" }, children });
|
|
7458
|
+
}
|
|
7459
|
+
if (!mounted || !contentStyle) return null;
|
|
7460
|
+
return createPortal(
|
|
7461
|
+
/* @__PURE__ */ jsx24(
|
|
7462
|
+
"div",
|
|
7463
|
+
__spreadProps(__spreadValues({}, props), {
|
|
7464
|
+
ref: composeRefs(ref, context.contentRef),
|
|
7465
|
+
role: "listbox",
|
|
7466
|
+
"data-side": side,
|
|
7467
|
+
className: cn(
|
|
7468
|
+
"min-w-32 rounded-md border border-border bg-popover text-popover-foreground shadow-md",
|
|
7469
|
+
"overflow-hidden",
|
|
7470
|
+
className
|
|
7471
|
+
),
|
|
7472
|
+
style: __spreadValues(__spreadValues({}, contentStyle), style),
|
|
7473
|
+
children: /* @__PURE__ */ jsx24(
|
|
7474
|
+
"div",
|
|
7475
|
+
{
|
|
7476
|
+
ref: scrollRef,
|
|
7477
|
+
"data-select-scroll-content": true,
|
|
7478
|
+
className: cn(
|
|
7479
|
+
"max-h-full px-1 py-1",
|
|
7480
|
+
"!overflow-x-hidden !overflow-y-scroll overscroll-contain",
|
|
7481
|
+
"[scrollbar-gutter:stable]",
|
|
7482
|
+
"[scrollbar-width:thin]",
|
|
7483
|
+
"[&::-webkit-scrollbar]:!block",
|
|
7484
|
+
"[&::-webkit-scrollbar]:!w-2",
|
|
7485
|
+
"[&::-webkit-scrollbar-track]:!bg-transparent",
|
|
7486
|
+
"[&::-webkit-scrollbar-thumb]:!rounded-full",
|
|
7487
|
+
"[&::-webkit-scrollbar-thumb]:!bg-border"
|
|
7488
|
+
),
|
|
7489
|
+
style: {
|
|
7490
|
+
maxHeight: contentStyle.maxHeight,
|
|
7491
|
+
overflowX: "hidden",
|
|
7492
|
+
overflowY: "scroll",
|
|
7493
|
+
overscrollBehavior: "contain",
|
|
7494
|
+
scrollbarGutter: "stable",
|
|
7495
|
+
WebkitOverflowScrolling: "touch"
|
|
7496
|
+
},
|
|
7497
|
+
onWheel: (event) => {
|
|
7498
|
+
event.stopPropagation();
|
|
7499
|
+
},
|
|
7500
|
+
children
|
|
7501
|
+
}
|
|
7502
|
+
)
|
|
7503
|
+
})
|
|
7504
|
+
),
|
|
7505
|
+
document.body
|
|
7506
|
+
);
|
|
7507
|
+
}
|
|
7508
|
+
);
|
|
7509
|
+
SelectContent.displayName = "SelectContent";
|
|
7510
|
+
var SelectGroup = React46.forwardRef(
|
|
7511
|
+
(_a, ref) => {
|
|
7512
|
+
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
7513
|
+
return /* @__PURE__ */ jsx24("div", __spreadValues({ ref, role: "group", className }, props));
|
|
7514
|
+
}
|
|
7515
|
+
);
|
|
7516
|
+
SelectGroup.displayName = "SelectGroup";
|
|
7517
|
+
var SelectLabel = React46.forwardRef(
|
|
7518
|
+
(_a, ref) => {
|
|
7519
|
+
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
7520
|
+
return /* @__PURE__ */ jsx24(
|
|
7521
|
+
"div",
|
|
7522
|
+
__spreadValues({
|
|
7523
|
+
ref,
|
|
7524
|
+
className: cn("px-2 py-1.5 text-sm font-semibold", className)
|
|
7525
|
+
}, props)
|
|
7526
|
+
);
|
|
7527
|
+
}
|
|
7528
|
+
);
|
|
7529
|
+
SelectLabel.displayName = "SelectLabel";
|
|
7530
|
+
var SelectItem = React46.forwardRef(
|
|
7531
|
+
(_a, ref) => {
|
|
7532
|
+
var _b = _a, {
|
|
7533
|
+
className,
|
|
7534
|
+
children,
|
|
7535
|
+
value,
|
|
7536
|
+
disabled = false,
|
|
7537
|
+
textValue,
|
|
7538
|
+
size,
|
|
7539
|
+
customSize,
|
|
7540
|
+
onClick,
|
|
7541
|
+
onMouseMove,
|
|
7542
|
+
onMouseDown
|
|
7543
|
+
} = _b, props = __objRest(_b, [
|
|
7544
|
+
"className",
|
|
7545
|
+
"children",
|
|
7546
|
+
"value",
|
|
7547
|
+
"disabled",
|
|
7548
|
+
"textValue",
|
|
7549
|
+
"size",
|
|
7550
|
+
"customSize",
|
|
7551
|
+
"onClick",
|
|
7552
|
+
"onMouseMove",
|
|
7553
|
+
"onMouseDown"
|
|
7554
|
+
]);
|
|
7555
|
+
const context = useSelectContext("SelectItem");
|
|
7556
|
+
const {
|
|
7557
|
+
registerItem,
|
|
7558
|
+
unregisterItem,
|
|
7559
|
+
updateItemRef,
|
|
7560
|
+
setActiveValue,
|
|
7561
|
+
setValue,
|
|
7562
|
+
value: selectedValue,
|
|
7563
|
+
activeValue,
|
|
7564
|
+
size: contextSize,
|
|
7565
|
+
customSize: contextCustomSize
|
|
7566
|
+
} = context;
|
|
7567
|
+
const itemId = React46.useId();
|
|
7568
|
+
const localRef = React46.useRef(null);
|
|
7569
|
+
const resolvedSize = size != null ? size : contextSize;
|
|
7570
|
+
const resolvedCustomSize = customSize != null ? customSize : contextCustomSize;
|
|
7571
|
+
const sizeClasses = getFormSizeClasses(resolvedSize, resolvedCustomSize);
|
|
7572
|
+
const labelText = textValue != null ? textValue : getNodeText(children);
|
|
7573
|
+
const isSelected = selectedValue === value;
|
|
7574
|
+
const isActive = activeValue === value;
|
|
7575
|
+
React46.useEffect(() => {
|
|
7576
|
+
registerItem({
|
|
7577
|
+
id: itemId,
|
|
7578
|
+
value,
|
|
7579
|
+
label: children,
|
|
7580
|
+
textValue: labelText,
|
|
7581
|
+
disabled,
|
|
7582
|
+
ref: localRef.current
|
|
7583
|
+
});
|
|
7584
|
+
return () => {
|
|
7585
|
+
unregisterItem(value, itemId);
|
|
7586
|
+
};
|
|
7587
|
+
}, [
|
|
7588
|
+
registerItem,
|
|
7589
|
+
unregisterItem,
|
|
7590
|
+
itemId,
|
|
7591
|
+
value,
|
|
7592
|
+
children,
|
|
7593
|
+
labelText,
|
|
7594
|
+
disabled
|
|
7595
|
+
]);
|
|
7596
|
+
const handleItemRef = React46.useCallback(
|
|
7597
|
+
(node) => {
|
|
7598
|
+
localRef.current = node;
|
|
7599
|
+
updateItemRef(value, itemId, node);
|
|
7600
|
+
},
|
|
7601
|
+
[updateItemRef, value, itemId]
|
|
7602
|
+
);
|
|
7603
|
+
const setRefs = React46.useMemo(
|
|
7604
|
+
() => composeRefs(ref, handleItemRef),
|
|
7605
|
+
[ref, handleItemRef]
|
|
7606
|
+
);
|
|
7607
|
+
return /* @__PURE__ */ jsxs14(
|
|
7608
|
+
"div",
|
|
7609
|
+
__spreadProps(__spreadValues({
|
|
7610
|
+
ref: setRefs,
|
|
7611
|
+
id: itemId,
|
|
7612
|
+
role: "option",
|
|
7613
|
+
"aria-selected": isSelected,
|
|
7614
|
+
"aria-disabled": disabled,
|
|
7615
|
+
"data-highlighted": isActive ? "" : void 0,
|
|
7616
|
+
"data-disabled": disabled ? "" : void 0,
|
|
7617
|
+
className: cn(
|
|
7618
|
+
"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 outline-none transition-colors",
|
|
7619
|
+
sizeClasses.selectItem,
|
|
7620
|
+
!disabled && "data-highlighted:bg-accent data-highlighted:text-accent-foreground",
|
|
7621
|
+
disabled && "pointer-events-none opacity-50",
|
|
7622
|
+
className
|
|
7623
|
+
),
|
|
7624
|
+
onMouseDown: (event) => {
|
|
7625
|
+
event.preventDefault();
|
|
7626
|
+
onMouseDown == null ? void 0 : onMouseDown(event);
|
|
7627
|
+
},
|
|
7628
|
+
onMouseMove: (event) => {
|
|
7629
|
+
onMouseMove == null ? void 0 : onMouseMove(event);
|
|
7630
|
+
if (!disabled) {
|
|
7631
|
+
setActiveValue(value);
|
|
7632
|
+
}
|
|
7633
|
+
},
|
|
7634
|
+
onClick: (event) => {
|
|
7635
|
+
onClick == null ? void 0 : onClick(event);
|
|
7636
|
+
if (!event.defaultPrevented && !disabled) {
|
|
7637
|
+
setValue(value);
|
|
7638
|
+
}
|
|
7639
|
+
}
|
|
7640
|
+
}, props), {
|
|
7641
|
+
children: [
|
|
7642
|
+
/* @__PURE__ */ jsx24("span", { className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center", children: isSelected ? /* @__PURE__ */ jsx24(CheckIcon4, { className: "h-4 w-4" }) : null }),
|
|
7643
|
+
/* @__PURE__ */ jsx24("span", { className: "truncate", children })
|
|
7644
|
+
]
|
|
7645
|
+
})
|
|
7646
|
+
);
|
|
7647
|
+
}
|
|
7648
|
+
);
|
|
7649
|
+
SelectItem.displayName = "SelectItem";
|
|
7650
|
+
var SelectSeparator = React46.forwardRef(
|
|
7651
|
+
(_a, ref) => {
|
|
7652
|
+
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
7653
|
+
return /* @__PURE__ */ jsx24(
|
|
7654
|
+
"div",
|
|
7655
|
+
__spreadValues({
|
|
7656
|
+
ref,
|
|
7657
|
+
role: "separator",
|
|
7658
|
+
className: cn("-mx-1 my-1 h-px bg-muted", className)
|
|
7659
|
+
}, props)
|
|
7660
|
+
);
|
|
7661
|
+
}
|
|
7662
|
+
);
|
|
7663
|
+
SelectSeparator.displayName = "SelectSeparator";
|
|
7664
|
+
|
|
7665
|
+
// src/components/searchable-select.tsx
|
|
7666
|
+
import * as React47 from "react";
|
|
7667
|
+
import { CaretSortIcon as CaretSortIcon2, CheckIcon as CheckIcon5, Cross2Icon as Cross2Icon2 } from "@radix-ui/react-icons";
|
|
7668
|
+
import { jsx as jsx25, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
7669
|
+
function normalizeText(value) {
|
|
7670
|
+
return String(value != null ? value : "").normalize("NFD").replace(new RegExp("\\p{Diacritic}", "gu"), "").toLowerCase().trim();
|
|
7671
|
+
}
|
|
7672
|
+
function getLabelText(value) {
|
|
7673
|
+
if (typeof value === "string" || typeof value === "number") {
|
|
7674
|
+
return String(value);
|
|
7675
|
+
}
|
|
7676
|
+
return "";
|
|
7677
|
+
}
|
|
7678
|
+
function getOptionText(item) {
|
|
7679
|
+
if (!item) return "";
|
|
7680
|
+
return getLabelText(item.label) || item.value;
|
|
7681
|
+
}
|
|
7682
|
+
function getNextEnabledIndex2(items, currentIndex, direction) {
|
|
7683
|
+
var _a;
|
|
7684
|
+
if (!items.length) return -1;
|
|
7685
|
+
let nextIndex = currentIndex;
|
|
7686
|
+
for (let index = 0; index < items.length; index += 1) {
|
|
7687
|
+
nextIndex = (nextIndex + direction + items.length) % items.length;
|
|
7688
|
+
if (!((_a = items[nextIndex]) == null ? void 0 : _a.disabled)) {
|
|
7689
|
+
return nextIndex;
|
|
7690
|
+
}
|
|
7691
|
+
}
|
|
7692
|
+
return -1;
|
|
7693
|
+
}
|
|
7694
|
+
function SearchableSelectBase({
|
|
7695
|
+
items,
|
|
7696
|
+
value,
|
|
7697
|
+
defaultValue,
|
|
7698
|
+
onValueChange,
|
|
7699
|
+
placeholder = "Select an option",
|
|
7700
|
+
searchPlaceholder = "Search\u2026",
|
|
7701
|
+
emptyText = "No results found",
|
|
7702
|
+
disabled,
|
|
7703
|
+
name,
|
|
7704
|
+
required,
|
|
7705
|
+
invalid = false,
|
|
7706
|
+
size = "md",
|
|
7707
|
+
customSize,
|
|
7708
|
+
variant = "outline",
|
|
7709
|
+
classNameDefault = true,
|
|
7710
|
+
triggerClassName,
|
|
7711
|
+
contentClassName,
|
|
7712
|
+
itemClassName,
|
|
7713
|
+
searchInputClassName
|
|
7714
|
+
}) {
|
|
7715
|
+
const rootRef = React47.useRef(null);
|
|
7716
|
+
const inputRef = React47.useRef(null);
|
|
7717
|
+
const listboxId = React47.useId();
|
|
7718
|
+
const sizeClasses = getFormSizeClasses(size, customSize);
|
|
7719
|
+
const triggerSizeClass = getFormControlSizeClass(variant, sizeClasses);
|
|
7720
|
+
const isControlled = value !== void 0;
|
|
7721
|
+
const [internalValue, setInternalValue] = React47.useState(defaultValue != null ? defaultValue : "");
|
|
7722
|
+
const currentValue = isControlled ? value != null ? value : "" : internalValue;
|
|
7723
|
+
const selectedItem = React47.useMemo(() => {
|
|
7724
|
+
return items.find((item) => item.value === currentValue);
|
|
7725
|
+
}, [currentValue, items]);
|
|
7726
|
+
const selectedText = React47.useMemo(() => {
|
|
7727
|
+
return getOptionText(selectedItem);
|
|
7728
|
+
}, [selectedItem]);
|
|
7729
|
+
const [open, setOpen] = React47.useState(false);
|
|
7730
|
+
const [inputValue, setInputValue] = React47.useState(selectedText);
|
|
7731
|
+
const [activeIndex, setActiveIndex] = React47.useState(-1);
|
|
7732
|
+
React47.useEffect(() => {
|
|
7733
|
+
if (!open) {
|
|
7734
|
+
setInputValue(selectedText);
|
|
7735
|
+
}
|
|
7736
|
+
}, [open, selectedText]);
|
|
7737
|
+
const filteredItems = React47.useMemo(() => {
|
|
7738
|
+
const query = normalizeText(inputValue);
|
|
7739
|
+
if (!query) return items;
|
|
7740
|
+
return items.filter((item) => {
|
|
7741
|
+
var _a;
|
|
7742
|
+
const haystack = normalizeText(
|
|
7743
|
+
`${getLabelText(item.label)} ${item.value} ${(_a = item.keywords) != null ? _a : ""}`
|
|
7744
|
+
);
|
|
7745
|
+
return haystack.includes(query);
|
|
7746
|
+
});
|
|
7747
|
+
}, [inputValue, items]);
|
|
7748
|
+
React47.useEffect(() => {
|
|
7749
|
+
if (!open) return;
|
|
7750
|
+
const firstEnabledIndex = filteredItems.findIndex((item) => !item.disabled);
|
|
7751
|
+
setActiveIndex(firstEnabledIndex);
|
|
7752
|
+
}, [filteredItems, open]);
|
|
7753
|
+
React47.useEffect(() => {
|
|
7754
|
+
if (!open) return;
|
|
7755
|
+
const handlePointerDown = (event) => {
|
|
7756
|
+
var _a;
|
|
7757
|
+
const target = event.target;
|
|
7758
|
+
if (target && ((_a = rootRef.current) == null ? void 0 : _a.contains(target))) {
|
|
7759
|
+
return;
|
|
7760
|
+
}
|
|
7761
|
+
setOpen(false);
|
|
7762
|
+
};
|
|
7763
|
+
document.addEventListener("pointerdown", handlePointerDown, true);
|
|
7764
|
+
return () => {
|
|
7765
|
+
document.removeEventListener("pointerdown", handlePointerDown, true);
|
|
7766
|
+
};
|
|
7767
|
+
}, [open]);
|
|
7768
|
+
const selectItem = React47.useCallback(
|
|
7769
|
+
(item) => {
|
|
7770
|
+
if (item.disabled) return;
|
|
7771
|
+
if (!isControlled) {
|
|
7772
|
+
setInternalValue(item.value);
|
|
7773
|
+
}
|
|
7774
|
+
setInputValue(getOptionText(item));
|
|
7775
|
+
setOpen(false);
|
|
7776
|
+
onValueChange == null ? void 0 : onValueChange(item.value, item);
|
|
7777
|
+
requestAnimationFrame(() => {
|
|
7778
|
+
var _a;
|
|
7779
|
+
(_a = inputRef.current) == null ? void 0 : _a.blur();
|
|
7780
|
+
});
|
|
7781
|
+
},
|
|
7782
|
+
[isControlled, onValueChange]
|
|
7783
|
+
);
|
|
7784
|
+
return /* @__PURE__ */ jsxs15("div", { ref: rootRef, className: "relative w-full", children: [
|
|
7785
|
+
name ? /* @__PURE__ */ jsx25(
|
|
7786
|
+
"input",
|
|
7787
|
+
{
|
|
7788
|
+
type: "hidden",
|
|
7789
|
+
name,
|
|
7790
|
+
value: currentValue,
|
|
7791
|
+
required,
|
|
7792
|
+
disabled
|
|
7793
|
+
}
|
|
7794
|
+
) : null,
|
|
7795
|
+
/* @__PURE__ */ jsxs15(
|
|
7796
|
+
"div",
|
|
7797
|
+
{
|
|
7798
|
+
className: classNameDefault ? cn(
|
|
7799
|
+
formCompositeControlBase,
|
|
7800
|
+
formCompositeVariants[variant],
|
|
7801
|
+
triggerSizeClass,
|
|
7802
|
+
invalid && formCompositeControlErrorClass,
|
|
7803
|
+
disabled && "cursor-not-allowed opacity-50",
|
|
7804
|
+
triggerClassName
|
|
7805
|
+
) : triggerClassName,
|
|
7806
|
+
onPointerDown: () => {
|
|
7807
|
+
if (disabled) return;
|
|
7808
|
+
setOpen(true);
|
|
7809
|
+
requestAnimationFrame(() => {
|
|
7810
|
+
var _a;
|
|
7811
|
+
(_a = inputRef.current) == null ? void 0 : _a.focus({ preventScroll: true });
|
|
7812
|
+
});
|
|
7813
|
+
},
|
|
7814
|
+
children: [
|
|
7815
|
+
/* @__PURE__ */ jsx25(
|
|
7816
|
+
"input",
|
|
7817
|
+
{
|
|
7818
|
+
ref: inputRef,
|
|
7819
|
+
value: inputValue,
|
|
7820
|
+
role: "combobox",
|
|
7821
|
+
"aria-autocomplete": "list",
|
|
7822
|
+
"aria-expanded": open,
|
|
7823
|
+
"aria-controls": listboxId,
|
|
7824
|
+
"aria-invalid": invalid || void 0,
|
|
7825
|
+
"aria-activedescendant": activeIndex >= 0 ? `${listboxId}-option-${activeIndex}` : void 0,
|
|
7826
|
+
placeholder: open ? searchPlaceholder : placeholder,
|
|
7827
|
+
autoComplete: "off",
|
|
7828
|
+
spellCheck: false,
|
|
7829
|
+
disabled,
|
|
7830
|
+
onFocus: () => {
|
|
7831
|
+
setOpen(true);
|
|
7832
|
+
requestAnimationFrame(() => {
|
|
7833
|
+
var _a;
|
|
7834
|
+
(_a = inputRef.current) == null ? void 0 : _a.select();
|
|
7835
|
+
});
|
|
7836
|
+
},
|
|
7837
|
+
onChange: (event) => {
|
|
7838
|
+
setInputValue(event.target.value);
|
|
7839
|
+
setOpen(true);
|
|
7840
|
+
},
|
|
7841
|
+
onKeyDown: (event) => {
|
|
7842
|
+
var _a;
|
|
7843
|
+
if (event.key === "ArrowDown") {
|
|
7844
|
+
event.preventDefault();
|
|
7845
|
+
setOpen(true);
|
|
7846
|
+
setActiveIndex(
|
|
7847
|
+
(currentIndex) => getNextEnabledIndex2(filteredItems, currentIndex, 1)
|
|
7848
|
+
);
|
|
7849
|
+
return;
|
|
7850
|
+
}
|
|
7851
|
+
if (event.key === "ArrowUp") {
|
|
7852
|
+
event.preventDefault();
|
|
7853
|
+
setOpen(true);
|
|
7854
|
+
setActiveIndex(
|
|
7855
|
+
(currentIndex) => getNextEnabledIndex2(filteredItems, currentIndex, -1)
|
|
7856
|
+
);
|
|
7857
|
+
return;
|
|
7858
|
+
}
|
|
7859
|
+
if (event.key === "Enter") {
|
|
7860
|
+
if (!open) return;
|
|
7861
|
+
event.preventDefault();
|
|
7862
|
+
const activeItem = filteredItems[activeIndex];
|
|
7863
|
+
if (activeItem) {
|
|
7864
|
+
selectItem(activeItem);
|
|
7865
|
+
}
|
|
7866
|
+
return;
|
|
7867
|
+
}
|
|
7868
|
+
if (event.key === "Escape") {
|
|
7869
|
+
event.preventDefault();
|
|
7870
|
+
setOpen(false);
|
|
7871
|
+
setInputValue(selectedText);
|
|
7872
|
+
(_a = inputRef.current) == null ? void 0 : _a.blur();
|
|
7873
|
+
}
|
|
7874
|
+
},
|
|
7875
|
+
className: cn(
|
|
7876
|
+
"h-full min-w-0 flex-1 border-0 bg-transparent p-0 outline-none",
|
|
7877
|
+
"placeholder:text-muted-foreground disabled:cursor-not-allowed",
|
|
7878
|
+
searchInputClassName
|
|
7879
|
+
)
|
|
7880
|
+
}
|
|
7881
|
+
),
|
|
7882
|
+
inputValue && open ? /* @__PURE__ */ jsx25(
|
|
7883
|
+
"button",
|
|
7884
|
+
{
|
|
7885
|
+
type: "button",
|
|
7886
|
+
"aria-label": "Limpiar b\xFAsqueda",
|
|
7887
|
+
tabIndex: -1,
|
|
7888
|
+
onPointerDown: (event) => {
|
|
7889
|
+
event.preventDefault();
|
|
7890
|
+
event.stopPropagation();
|
|
7891
|
+
},
|
|
7892
|
+
onClick: (event) => {
|
|
7893
|
+
event.preventDefault();
|
|
7894
|
+
event.stopPropagation();
|
|
7895
|
+
setInputValue("");
|
|
7896
|
+
requestAnimationFrame(() => {
|
|
7897
|
+
var _a;
|
|
7898
|
+
(_a = inputRef.current) == null ? void 0 : _a.focus({ preventScroll: true });
|
|
7899
|
+
});
|
|
7900
|
+
},
|
|
7901
|
+
className: "inline-flex h-6 w-6 shrink-0 items-center justify-center rounded-md text-muted-foreground transition hover:bg-muted hover:text-foreground",
|
|
7902
|
+
children: /* @__PURE__ */ jsx25(Cross2Icon2, { "aria-hidden": "true", className: "h-3.5 w-3.5" })
|
|
7903
|
+
}
|
|
7904
|
+
) : null,
|
|
7905
|
+
/* @__PURE__ */ jsx25(
|
|
7906
|
+
CaretSortIcon2,
|
|
7907
|
+
{
|
|
7908
|
+
"aria-hidden": "true",
|
|
7909
|
+
className: cn(
|
|
7910
|
+
"h-4 w-4 shrink-0 opacity-50 transition-transform",
|
|
7911
|
+
open && "rotate-180"
|
|
7912
|
+
)
|
|
7913
|
+
}
|
|
7914
|
+
)
|
|
7915
|
+
]
|
|
7916
|
+
}
|
|
7917
|
+
),
|
|
7918
|
+
/* @__PURE__ */ jsx25(
|
|
7919
|
+
"div",
|
|
7920
|
+
{
|
|
7921
|
+
className: cn(
|
|
7922
|
+
"absolute left-0 top-full z-50 mt-1 w-full overflow-hidden rounded-xl border border-border bg-popover text-popover-foreground shadow-xl transition",
|
|
7923
|
+
!open && "pointer-events-none invisible opacity-0",
|
|
7924
|
+
open && "visible opacity-100",
|
|
7925
|
+
contentClassName
|
|
7926
|
+
),
|
|
7927
|
+
children: /* @__PURE__ */ jsx25(
|
|
7928
|
+
"div",
|
|
7929
|
+
{
|
|
7930
|
+
id: listboxId,
|
|
7931
|
+
role: "listbox",
|
|
7932
|
+
className: "max-h-72 overflow-y-auto overscroll-contain p-1 [scrollbar-gutter:stable]",
|
|
7933
|
+
onWheelCapture: (event) => {
|
|
7934
|
+
event.stopPropagation();
|
|
7935
|
+
},
|
|
7936
|
+
onTouchMoveCapture: (event) => {
|
|
7937
|
+
event.stopPropagation();
|
|
7938
|
+
},
|
|
7939
|
+
children: filteredItems.length === 0 ? /* @__PURE__ */ jsx25(
|
|
7940
|
+
"div",
|
|
7941
|
+
{
|
|
7942
|
+
className: cn(
|
|
7943
|
+
"px-3 py-6 text-center text-muted-foreground",
|
|
7944
|
+
sizeClasses.message
|
|
7945
|
+
),
|
|
7946
|
+
children: emptyText
|
|
7947
|
+
}
|
|
7948
|
+
) : filteredItems.map((item, index) => {
|
|
7949
|
+
const isSelected = item.value === currentValue;
|
|
7950
|
+
const isActive = index === activeIndex;
|
|
7951
|
+
return /* @__PURE__ */ jsxs15(
|
|
7952
|
+
"div",
|
|
7953
|
+
{
|
|
7954
|
+
id: `${listboxId}-option-${index}`,
|
|
7955
|
+
role: "option",
|
|
7956
|
+
"aria-selected": isSelected,
|
|
7957
|
+
"aria-disabled": item.disabled,
|
|
7958
|
+
tabIndex: -1,
|
|
7959
|
+
onMouseMove: () => {
|
|
7960
|
+
if (!item.disabled) {
|
|
7961
|
+
setActiveIndex(index);
|
|
7962
|
+
}
|
|
7963
|
+
},
|
|
7964
|
+
onPointerDown: (event) => {
|
|
7965
|
+
event.preventDefault();
|
|
7966
|
+
event.stopPropagation();
|
|
7967
|
+
if (!item.disabled) {
|
|
7968
|
+
selectItem(item);
|
|
7969
|
+
}
|
|
7970
|
+
},
|
|
7971
|
+
className: cn(
|
|
7972
|
+
"relative flex w-full select-none items-center gap-2 rounded-lg px-3 text-left outline-none transition",
|
|
7973
|
+
sizeClasses.selectItem,
|
|
7974
|
+
item.disabled ? "pointer-events-none opacity-50" : "cursor-pointer",
|
|
7975
|
+
isActive && !item.disabled && "bg-accent text-accent-foreground",
|
|
7976
|
+
!isActive && !item.disabled && "hover:bg-accent/70 hover:text-accent-foreground",
|
|
7977
|
+
isSelected && "font-medium",
|
|
7978
|
+
itemClassName
|
|
7979
|
+
),
|
|
7980
|
+
children: [
|
|
7981
|
+
/* @__PURE__ */ jsx25("span", { className: "min-w-0 flex-1 truncate", children: item.label }),
|
|
7982
|
+
isSelected ? /* @__PURE__ */ jsx25(
|
|
7983
|
+
CheckIcon5,
|
|
7984
|
+
{
|
|
7985
|
+
"aria-hidden": "true",
|
|
7986
|
+
className: "h-4 w-4 shrink-0 text-primary"
|
|
7987
|
+
}
|
|
7988
|
+
) : null
|
|
7989
|
+
]
|
|
7990
|
+
},
|
|
7991
|
+
item.value
|
|
7992
|
+
);
|
|
7993
|
+
})
|
|
7994
|
+
}
|
|
7995
|
+
)
|
|
7996
|
+
}
|
|
7997
|
+
)
|
|
7998
|
+
] });
|
|
7999
|
+
}
|
|
8000
|
+
var SearchableSelect = React47.memo(
|
|
8001
|
+
SearchableSelectBase
|
|
8002
|
+
);
|
|
8003
|
+
|
|
8004
|
+
// src/components/Form/form-select.tsx
|
|
8005
|
+
import { jsx as jsx26, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
8006
|
+
var FormSelect = ({
|
|
8007
|
+
name,
|
|
8008
|
+
control,
|
|
8009
|
+
rules,
|
|
8010
|
+
shouldUnregister,
|
|
8011
|
+
defaultValue,
|
|
8012
|
+
placeholder = "Seleccionar opci\xF3n",
|
|
8013
|
+
label,
|
|
8014
|
+
requiredLabel,
|
|
8015
|
+
className,
|
|
8016
|
+
itemClassName,
|
|
8017
|
+
contentClassName,
|
|
8018
|
+
searchInputClassName,
|
|
8019
|
+
labelClassName,
|
|
8020
|
+
messageClassName,
|
|
8021
|
+
requiredLabelClassName,
|
|
8022
|
+
options,
|
|
8023
|
+
items,
|
|
8024
|
+
getOptionValue = getDefaultOptionValue,
|
|
7098
8025
|
getOptionLabel = getDefaultOptionLabel,
|
|
7099
8026
|
getOptionDisabled,
|
|
7100
8027
|
getOptionData,
|
|
@@ -7109,13 +8036,13 @@ var FormSelect = ({
|
|
|
7109
8036
|
searchable = false,
|
|
7110
8037
|
searchPlaceholder = "Buscar\u2026",
|
|
7111
8038
|
emptyText = "No hay resultados",
|
|
7112
|
-
|
|
8039
|
+
classNameDefault = true,
|
|
8040
|
+
position
|
|
7113
8041
|
}) => {
|
|
7114
8042
|
const form = useFormContext4();
|
|
7115
8043
|
const controllerControl = control != null ? control : form == null ? void 0 : form.control;
|
|
7116
8044
|
const sizeClasses = getFormSizeClasses(size, customSize);
|
|
7117
|
-
const
|
|
7118
|
-
const triggerSizeClass = variant === "flushed" ? sizeClasses.flushedControl : variant === "link" ? sizeClasses.linkControl : sizeClasses.control;
|
|
8045
|
+
const triggerSizeClass = getFormControlSizeClass(variant, sizeClasses);
|
|
7119
8046
|
const contentBase = "z-50 rounded-xl border border-border bg-popover text-popover-foreground shadow-xl outline-none";
|
|
7120
8047
|
const contentViewport = "[&_[data-radix-select-viewport]]:max-h-72 [&_[data-radix-select-viewport]]:overflow-y-auto [&_[data-radix-select-viewport]]:overscroll-contain [&_[data-radix-select-viewport]]:[scrollbar-gutter:stable]";
|
|
7121
8048
|
const normalizedOptions = React48.useMemo(() => {
|
|
@@ -7137,7 +8064,7 @@ var FormSelect = ({
|
|
|
7137
8064
|
items,
|
|
7138
8065
|
options
|
|
7139
8066
|
]);
|
|
7140
|
-
return /* @__PURE__ */
|
|
8067
|
+
return /* @__PURE__ */ jsx26(FormFieldContext.Provider, { value: { name }, children: /* @__PURE__ */ jsx26(
|
|
7141
8068
|
Controller3,
|
|
7142
8069
|
{
|
|
7143
8070
|
control: controllerControl,
|
|
@@ -7146,7 +8073,7 @@ var FormSelect = ({
|
|
|
7146
8073
|
shouldUnregister,
|
|
7147
8074
|
defaultValue,
|
|
7148
8075
|
render: ({ field, fieldState }) => {
|
|
7149
|
-
var _a;
|
|
8076
|
+
var _a, _b;
|
|
7150
8077
|
const fieldError = getErrorMessage(fieldState.error);
|
|
7151
8078
|
const hasError = Boolean(invalid || fieldError);
|
|
7152
8079
|
const handleValueChange = (value) => {
|
|
@@ -7158,8 +8085,8 @@ var FormSelect = ({
|
|
|
7158
8085
|
onChange == null ? void 0 : onChange(value);
|
|
7159
8086
|
onChangeItem == null ? void 0 : onChangeItem((_a2 = nextOption == null ? void 0 : nextOption.data) != null ? _a2 : null);
|
|
7160
8087
|
};
|
|
7161
|
-
return /* @__PURE__ */
|
|
7162
|
-
label ? /* @__PURE__ */
|
|
8088
|
+
return /* @__PURE__ */ jsxs16(FormItem, { children: [
|
|
8089
|
+
label ? /* @__PURE__ */ jsxs16(
|
|
7163
8090
|
FormLabel,
|
|
7164
8091
|
{
|
|
7165
8092
|
className: cn(
|
|
@@ -7168,8 +8095,8 @@ var FormSelect = ({
|
|
|
7168
8095
|
labelClassName
|
|
7169
8096
|
),
|
|
7170
8097
|
children: [
|
|
7171
|
-
/* @__PURE__ */
|
|
7172
|
-
requiredLabel ? /* @__PURE__ */
|
|
8098
|
+
/* @__PURE__ */ jsx26("span", { children: label }),
|
|
8099
|
+
requiredLabel ? /* @__PURE__ */ jsx26(
|
|
7173
8100
|
Asterisk3,
|
|
7174
8101
|
{
|
|
7175
8102
|
"aria-hidden": "true",
|
|
@@ -7182,20 +8109,37 @@ var FormSelect = ({
|
|
|
7182
8109
|
]
|
|
7183
8110
|
}
|
|
7184
8111
|
) : null,
|
|
7185
|
-
searchable ? /* @__PURE__ */
|
|
7186
|
-
|
|
8112
|
+
searchable ? /* @__PURE__ */ jsx26(
|
|
8113
|
+
SearchableSelect,
|
|
7187
8114
|
{
|
|
7188
|
-
|
|
7189
|
-
|
|
7190
|
-
|
|
7191
|
-
|
|
7192
|
-
|
|
7193
|
-
|
|
8115
|
+
items: normalizedOptions,
|
|
8116
|
+
value: (_a = field.value) != null ? _a : "",
|
|
8117
|
+
name: field.name,
|
|
8118
|
+
placeholder,
|
|
8119
|
+
searchPlaceholder,
|
|
8120
|
+
emptyText,
|
|
8121
|
+
disabled,
|
|
8122
|
+
invalid: hasError,
|
|
8123
|
+
size,
|
|
8124
|
+
customSize,
|
|
8125
|
+
variant,
|
|
8126
|
+
classNameDefault,
|
|
8127
|
+
triggerClassName: className,
|
|
8128
|
+
contentClassName,
|
|
8129
|
+
itemClassName,
|
|
8130
|
+
searchInputClassName,
|
|
8131
|
+
onValueChange: (value, option) => {
|
|
8132
|
+
var _a2;
|
|
8133
|
+
field.onChange(value);
|
|
8134
|
+
onChange == null ? void 0 : onChange(value);
|
|
8135
|
+
onChangeItem == null ? void 0 : onChangeItem((_a2 = option == null ? void 0 : option.data) != null ? _a2 : null);
|
|
8136
|
+
field.onBlur();
|
|
8137
|
+
}
|
|
7194
8138
|
}
|
|
7195
|
-
) : /* @__PURE__ */
|
|
8139
|
+
) : /* @__PURE__ */ jsxs16(
|
|
7196
8140
|
Select2,
|
|
7197
8141
|
{
|
|
7198
|
-
value: (
|
|
8142
|
+
value: (_b = field.value) != null ? _b : "",
|
|
7199
8143
|
onValueChange: handleValueChange,
|
|
7200
8144
|
onOpenChange: (nextOpen) => {
|
|
7201
8145
|
if (!nextOpen) {
|
|
@@ -7204,20 +8148,20 @@ var FormSelect = ({
|
|
|
7204
8148
|
},
|
|
7205
8149
|
disabled,
|
|
7206
8150
|
children: [
|
|
7207
|
-
/* @__PURE__ */
|
|
8151
|
+
/* @__PURE__ */ jsx26(FormControl, { children: /* @__PURE__ */ jsx26(
|
|
7208
8152
|
SelectTrigger,
|
|
7209
8153
|
{
|
|
7210
|
-
className: cn(
|
|
7211
|
-
|
|
7212
|
-
|
|
8154
|
+
className: classNameDefault ? cn(
|
|
8155
|
+
formControlBase,
|
|
8156
|
+
formInputVariants[variant],
|
|
7213
8157
|
triggerSizeClass,
|
|
7214
|
-
hasError &&
|
|
8158
|
+
hasError && formControlErrorClass,
|
|
7215
8159
|
className
|
|
7216
|
-
),
|
|
7217
|
-
children: /* @__PURE__ */
|
|
8160
|
+
) : className,
|
|
8161
|
+
children: /* @__PURE__ */ jsx26(SelectValue, { placeholder })
|
|
7218
8162
|
}
|
|
7219
8163
|
) }),
|
|
7220
|
-
/* @__PURE__ */
|
|
8164
|
+
/* @__PURE__ */ jsx26(
|
|
7221
8165
|
SelectContent,
|
|
7222
8166
|
{
|
|
7223
8167
|
position,
|
|
@@ -7234,7 +8178,7 @@ var FormSelect = ({
|
|
|
7234
8178
|
onTouchMoveCapture: (event) => {
|
|
7235
8179
|
event.stopPropagation();
|
|
7236
8180
|
},
|
|
7237
|
-
children: children ? children : normalizedOptions.length > 0 ? normalizedOptions.map((option) => /* @__PURE__ */
|
|
8181
|
+
children: children ? children : normalizedOptions.length > 0 ? normalizedOptions.map((option) => /* @__PURE__ */ jsx26(
|
|
7238
8182
|
SelectItem,
|
|
7239
8183
|
{
|
|
7240
8184
|
value: option.value,
|
|
@@ -7243,7 +8187,7 @@ var FormSelect = ({
|
|
|
7243
8187
|
children: option.label
|
|
7244
8188
|
},
|
|
7245
8189
|
option.value
|
|
7246
|
-
)) : /* @__PURE__ */
|
|
8190
|
+
)) : /* @__PURE__ */ jsx26(
|
|
7247
8191
|
"div",
|
|
7248
8192
|
{
|
|
7249
8193
|
className: cn(
|
|
@@ -7258,7 +8202,7 @@ var FormSelect = ({
|
|
|
7258
8202
|
]
|
|
7259
8203
|
}
|
|
7260
8204
|
),
|
|
7261
|
-
fieldError ? /* @__PURE__ */
|
|
8205
|
+
fieldError ? /* @__PURE__ */ jsx26(
|
|
7262
8206
|
FormMessage,
|
|
7263
8207
|
{
|
|
7264
8208
|
className: cn(sizeClasses.message, messageClassName),
|
|
@@ -7275,12 +8219,12 @@ FormSelect.displayName = "FormSelect";
|
|
|
7275
8219
|
// src/components/hover-card.tsx
|
|
7276
8220
|
import * as HoverCardPrimitive from "@radix-ui/react-hover-card";
|
|
7277
8221
|
import * as React49 from "react";
|
|
7278
|
-
import { jsx as
|
|
8222
|
+
import { jsx as jsx27 } from "react/jsx-runtime";
|
|
7279
8223
|
var HoverCard = HoverCardPrimitive.Root;
|
|
7280
8224
|
var HoverCardTrigger = HoverCardPrimitive.Trigger;
|
|
7281
8225
|
var HoverCardContent = React49.forwardRef((_a, ref) => {
|
|
7282
8226
|
var _b = _a, { className, align = "center", sideOffset = 4 } = _b, props = __objRest(_b, ["className", "align", "sideOffset"]);
|
|
7283
|
-
return /* @__PURE__ */
|
|
8227
|
+
return /* @__PURE__ */ jsx27(
|
|
7284
8228
|
HoverCardPrimitive.Content,
|
|
7285
8229
|
__spreadValues({
|
|
7286
8230
|
ref,
|
|
@@ -7360,10 +8304,10 @@ var Icons = IconsApp;
|
|
|
7360
8304
|
import { DashIcon } from "@radix-ui/react-icons";
|
|
7361
8305
|
import { OTPInput, OTPInputContext } from "input-otp";
|
|
7362
8306
|
import * as React50 from "react";
|
|
7363
|
-
import { jsx as
|
|
8307
|
+
import { jsx as jsx28, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
7364
8308
|
var InputOTP = React50.forwardRef((_a, ref) => {
|
|
7365
8309
|
var _b = _a, { className, containerClassName } = _b, props = __objRest(_b, ["className", "containerClassName"]);
|
|
7366
|
-
return /* @__PURE__ */
|
|
8310
|
+
return /* @__PURE__ */ jsx28(
|
|
7367
8311
|
OTPInput,
|
|
7368
8312
|
__spreadValues({
|
|
7369
8313
|
ref,
|
|
@@ -7378,14 +8322,14 @@ var InputOTP = React50.forwardRef((_a, ref) => {
|
|
|
7378
8322
|
InputOTP.displayName = "InputOTP";
|
|
7379
8323
|
var InputOTPGroup = React50.forwardRef((_a, ref) => {
|
|
7380
8324
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
7381
|
-
return /* @__PURE__ */
|
|
8325
|
+
return /* @__PURE__ */ jsx28("div", __spreadValues({ ref, className: cn("flex items-center", className) }, props));
|
|
7382
8326
|
});
|
|
7383
8327
|
InputOTPGroup.displayName = "InputOTPGroup";
|
|
7384
8328
|
var InputOTPSlot = React50.forwardRef((_a, ref) => {
|
|
7385
8329
|
var _b = _a, { index, className } = _b, props = __objRest(_b, ["index", "className"]);
|
|
7386
8330
|
const inputOTPContext = React50.useContext(OTPInputContext);
|
|
7387
8331
|
const { char, hasFakeCaret, isActive } = inputOTPContext.slots[index];
|
|
7388
|
-
return /* @__PURE__ */
|
|
8332
|
+
return /* @__PURE__ */ jsxs17(
|
|
7389
8333
|
"div",
|
|
7390
8334
|
__spreadProps(__spreadValues({
|
|
7391
8335
|
ref,
|
|
@@ -7398,7 +8342,7 @@ var InputOTPSlot = React50.forwardRef((_a, ref) => {
|
|
|
7398
8342
|
}, props), {
|
|
7399
8343
|
children: [
|
|
7400
8344
|
char,
|
|
7401
|
-
hasFakeCaret && /* @__PURE__ */
|
|
8345
|
+
hasFakeCaret && /* @__PURE__ */ jsx28("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsx28("div", { className: "animate-caret-blink h-4 w-px bg-foreground duration-1000" }) })
|
|
7402
8346
|
]
|
|
7403
8347
|
})
|
|
7404
8348
|
);
|
|
@@ -7406,19 +8350,19 @@ var InputOTPSlot = React50.forwardRef((_a, ref) => {
|
|
|
7406
8350
|
InputOTPSlot.displayName = "InputOTPSlot";
|
|
7407
8351
|
var InputOTPSeparator = React50.forwardRef((_a, ref) => {
|
|
7408
8352
|
var props = __objRest(_a, []);
|
|
7409
|
-
return /* @__PURE__ */
|
|
8353
|
+
return /* @__PURE__ */ jsx28("div", __spreadProps(__spreadValues({ ref, role: "separator" }, props), { children: /* @__PURE__ */ jsx28(DashIcon, {}) }));
|
|
7410
8354
|
});
|
|
7411
8355
|
InputOTPSeparator.displayName = "InputOTPSeparator";
|
|
7412
8356
|
|
|
7413
8357
|
// src/components/menubar.tsx
|
|
7414
8358
|
import {
|
|
7415
|
-
CheckIcon as
|
|
8359
|
+
CheckIcon as CheckIcon6,
|
|
7416
8360
|
ChevronRightIcon as ChevronRightIcon4,
|
|
7417
8361
|
DotFilledIcon as DotFilledIcon3
|
|
7418
8362
|
} from "@radix-ui/react-icons";
|
|
7419
8363
|
import * as MenubarPrimitive from "@radix-ui/react-menubar";
|
|
7420
8364
|
import * as React51 from "react";
|
|
7421
|
-
import { jsx as
|
|
8365
|
+
import { jsx as jsx29, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
7422
8366
|
var MenubarMenu = MenubarPrimitive.Menu;
|
|
7423
8367
|
var MenubarGroup = MenubarPrimitive.Group;
|
|
7424
8368
|
var MenubarPortal = MenubarPrimitive.Portal;
|
|
@@ -7426,7 +8370,7 @@ var MenubarSub = MenubarPrimitive.Sub;
|
|
|
7426
8370
|
var MenubarRadioGroup = MenubarPrimitive.RadioGroup;
|
|
7427
8371
|
var Menubar = React51.forwardRef((_a, ref) => {
|
|
7428
8372
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
7429
|
-
return /* @__PURE__ */
|
|
8373
|
+
return /* @__PURE__ */ jsx29(
|
|
7430
8374
|
MenubarPrimitive.Root,
|
|
7431
8375
|
__spreadValues({
|
|
7432
8376
|
ref,
|
|
@@ -7440,7 +8384,7 @@ var Menubar = React51.forwardRef((_a, ref) => {
|
|
|
7440
8384
|
Menubar.displayName = MenubarPrimitive.Root.displayName;
|
|
7441
8385
|
var MenubarTrigger = React51.forwardRef((_a, ref) => {
|
|
7442
8386
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
7443
|
-
return /* @__PURE__ */
|
|
8387
|
+
return /* @__PURE__ */ jsx29(
|
|
7444
8388
|
MenubarPrimitive.Trigger,
|
|
7445
8389
|
__spreadValues({
|
|
7446
8390
|
ref,
|
|
@@ -7454,7 +8398,7 @@ var MenubarTrigger = React51.forwardRef((_a, ref) => {
|
|
|
7454
8398
|
MenubarTrigger.displayName = MenubarPrimitive.Trigger.displayName;
|
|
7455
8399
|
var MenubarSubTrigger = React51.forwardRef((_a, ref) => {
|
|
7456
8400
|
var _b = _a, { className, inset, children } = _b, props = __objRest(_b, ["className", "inset", "children"]);
|
|
7457
|
-
return /* @__PURE__ */
|
|
8401
|
+
return /* @__PURE__ */ jsxs18(
|
|
7458
8402
|
MenubarPrimitive.SubTrigger,
|
|
7459
8403
|
__spreadProps(__spreadValues({
|
|
7460
8404
|
ref,
|
|
@@ -7466,7 +8410,7 @@ var MenubarSubTrigger = React51.forwardRef((_a, ref) => {
|
|
|
7466
8410
|
}, props), {
|
|
7467
8411
|
children: [
|
|
7468
8412
|
children,
|
|
7469
|
-
/* @__PURE__ */
|
|
8413
|
+
/* @__PURE__ */ jsx29(ChevronRightIcon4, { className: "ml-auto h-4 w-4" })
|
|
7470
8414
|
]
|
|
7471
8415
|
})
|
|
7472
8416
|
);
|
|
@@ -7474,7 +8418,7 @@ var MenubarSubTrigger = React51.forwardRef((_a, ref) => {
|
|
|
7474
8418
|
MenubarSubTrigger.displayName = MenubarPrimitive.SubTrigger.displayName;
|
|
7475
8419
|
var MenubarSubContent = React51.forwardRef((_a, ref) => {
|
|
7476
8420
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
7477
|
-
return /* @__PURE__ */
|
|
8421
|
+
return /* @__PURE__ */ jsx29(
|
|
7478
8422
|
MenubarPrimitive.SubContent,
|
|
7479
8423
|
__spreadValues({
|
|
7480
8424
|
ref,
|
|
@@ -7489,7 +8433,7 @@ MenubarSubContent.displayName = MenubarPrimitive.SubContent.displayName;
|
|
|
7489
8433
|
var MenubarContent = React51.forwardRef(
|
|
7490
8434
|
(_a, ref) => {
|
|
7491
8435
|
var _b = _a, { className, align = "start", alignOffset = -4, sideOffset = 8 } = _b, props = __objRest(_b, ["className", "align", "alignOffset", "sideOffset"]);
|
|
7492
|
-
return /* @__PURE__ */
|
|
8436
|
+
return /* @__PURE__ */ jsx29(MenubarPrimitive.Portal, { children: /* @__PURE__ */ jsx29(
|
|
7493
8437
|
MenubarPrimitive.Content,
|
|
7494
8438
|
__spreadValues({
|
|
7495
8439
|
ref,
|
|
@@ -7507,7 +8451,7 @@ var MenubarContent = React51.forwardRef(
|
|
|
7507
8451
|
MenubarContent.displayName = MenubarPrimitive.Content.displayName;
|
|
7508
8452
|
var MenubarItem = React51.forwardRef((_a, ref) => {
|
|
7509
8453
|
var _b = _a, { className, inset } = _b, props = __objRest(_b, ["className", "inset"]);
|
|
7510
|
-
return /* @__PURE__ */
|
|
8454
|
+
return /* @__PURE__ */ jsx29(
|
|
7511
8455
|
MenubarPrimitive.Item,
|
|
7512
8456
|
__spreadValues({
|
|
7513
8457
|
ref,
|
|
@@ -7522,7 +8466,7 @@ var MenubarItem = React51.forwardRef((_a, ref) => {
|
|
|
7522
8466
|
MenubarItem.displayName = MenubarPrimitive.Item.displayName;
|
|
7523
8467
|
var MenubarCheckboxItem = React51.forwardRef((_a, ref) => {
|
|
7524
8468
|
var _b = _a, { className, children, checked } = _b, props = __objRest(_b, ["className", "children", "checked"]);
|
|
7525
|
-
return /* @__PURE__ */
|
|
8469
|
+
return /* @__PURE__ */ jsxs18(
|
|
7526
8470
|
MenubarPrimitive.CheckboxItem,
|
|
7527
8471
|
__spreadProps(__spreadValues({
|
|
7528
8472
|
ref,
|
|
@@ -7533,7 +8477,7 @@ var MenubarCheckboxItem = React51.forwardRef((_a, ref) => {
|
|
|
7533
8477
|
checked
|
|
7534
8478
|
}, props), {
|
|
7535
8479
|
children: [
|
|
7536
|
-
/* @__PURE__ */
|
|
8480
|
+
/* @__PURE__ */ jsx29("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx29(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx29(CheckIcon6, { className: "h-4 w-4" }) }) }),
|
|
7537
8481
|
children
|
|
7538
8482
|
]
|
|
7539
8483
|
})
|
|
@@ -7542,7 +8486,7 @@ var MenubarCheckboxItem = React51.forwardRef((_a, ref) => {
|
|
|
7542
8486
|
MenubarCheckboxItem.displayName = MenubarPrimitive.CheckboxItem.displayName;
|
|
7543
8487
|
var MenubarRadioItem = React51.forwardRef((_a, ref) => {
|
|
7544
8488
|
var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
|
|
7545
|
-
return /* @__PURE__ */
|
|
8489
|
+
return /* @__PURE__ */ jsxs18(
|
|
7546
8490
|
MenubarPrimitive.RadioItem,
|
|
7547
8491
|
__spreadProps(__spreadValues({
|
|
7548
8492
|
ref,
|
|
@@ -7552,7 +8496,7 @@ var MenubarRadioItem = React51.forwardRef((_a, ref) => {
|
|
|
7552
8496
|
)
|
|
7553
8497
|
}, props), {
|
|
7554
8498
|
children: [
|
|
7555
|
-
/* @__PURE__ */
|
|
8499
|
+
/* @__PURE__ */ jsx29("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx29(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx29(DotFilledIcon3, { className: "h-4 w-4 fill-current" }) }) }),
|
|
7556
8500
|
children
|
|
7557
8501
|
]
|
|
7558
8502
|
})
|
|
@@ -7561,7 +8505,7 @@ var MenubarRadioItem = React51.forwardRef((_a, ref) => {
|
|
|
7561
8505
|
MenubarRadioItem.displayName = MenubarPrimitive.RadioItem.displayName;
|
|
7562
8506
|
var MenubarLabel = React51.forwardRef((_a, ref) => {
|
|
7563
8507
|
var _b = _a, { className, inset } = _b, props = __objRest(_b, ["className", "inset"]);
|
|
7564
|
-
return /* @__PURE__ */
|
|
8508
|
+
return /* @__PURE__ */ jsx29(
|
|
7565
8509
|
MenubarPrimitive.Label,
|
|
7566
8510
|
__spreadValues({
|
|
7567
8511
|
ref,
|
|
@@ -7576,7 +8520,7 @@ var MenubarLabel = React51.forwardRef((_a, ref) => {
|
|
|
7576
8520
|
MenubarLabel.displayName = MenubarPrimitive.Label.displayName;
|
|
7577
8521
|
var MenubarSeparator = React51.forwardRef((_a, ref) => {
|
|
7578
8522
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
7579
|
-
return /* @__PURE__ */
|
|
8523
|
+
return /* @__PURE__ */ jsx29(
|
|
7580
8524
|
MenubarPrimitive.Separator,
|
|
7581
8525
|
__spreadValues({
|
|
7582
8526
|
ref,
|
|
@@ -7591,7 +8535,7 @@ var MenubarShortcut = (_a) => {
|
|
|
7591
8535
|
} = _b, props = __objRest(_b, [
|
|
7592
8536
|
"className"
|
|
7593
8537
|
]);
|
|
7594
|
-
return /* @__PURE__ */
|
|
8538
|
+
return /* @__PURE__ */ jsx29(
|
|
7595
8539
|
"span",
|
|
7596
8540
|
__spreadValues({
|
|
7597
8541
|
className: cn(
|
|
@@ -7604,7 +8548,7 @@ var MenubarShortcut = (_a) => {
|
|
|
7604
8548
|
MenubarShortcut.displayname = "MenubarShortcut";
|
|
7605
8549
|
|
|
7606
8550
|
// src/components/modal.tsx
|
|
7607
|
-
import { jsx as
|
|
8551
|
+
import { jsx as jsx30, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
7608
8552
|
var Modal = ({
|
|
7609
8553
|
title,
|
|
7610
8554
|
description,
|
|
@@ -7618,24 +8562,24 @@ var Modal = ({
|
|
|
7618
8562
|
onClose();
|
|
7619
8563
|
}
|
|
7620
8564
|
};
|
|
7621
|
-
return /* @__PURE__ */
|
|
7622
|
-
/* @__PURE__ */
|
|
7623
|
-
/* @__PURE__ */
|
|
7624
|
-
/* @__PURE__ */
|
|
8565
|
+
return /* @__PURE__ */ jsx30(Dialog, { open: isOpen, onOpenChange: onChange, children: /* @__PURE__ */ jsxs19(DialogContent, { className, children: [
|
|
8566
|
+
/* @__PURE__ */ jsxs19(DialogHeader, { children: [
|
|
8567
|
+
/* @__PURE__ */ jsx30(DialogTitle, { children: title }),
|
|
8568
|
+
/* @__PURE__ */ jsx30(DialogDescription, { children: description })
|
|
7625
8569
|
] }),
|
|
7626
|
-
/* @__PURE__ */
|
|
8570
|
+
/* @__PURE__ */ jsx30("div", { children })
|
|
7627
8571
|
] }) });
|
|
7628
8572
|
};
|
|
7629
8573
|
|
|
7630
8574
|
// src/components/navigation-menu.tsx
|
|
7631
|
-
import { ChevronDownIcon as
|
|
8575
|
+
import { ChevronDownIcon as ChevronDownIcon2 } from "@radix-ui/react-icons";
|
|
7632
8576
|
import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu";
|
|
7633
8577
|
import { cva as cva6 } from "class-variance-authority";
|
|
7634
8578
|
import * as React52 from "react";
|
|
7635
|
-
import { jsx as
|
|
8579
|
+
import { jsx as jsx31, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
7636
8580
|
var NavigationMenu = React52.forwardRef((_a, ref) => {
|
|
7637
8581
|
var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
|
|
7638
|
-
return /* @__PURE__ */
|
|
8582
|
+
return /* @__PURE__ */ jsxs20(
|
|
7639
8583
|
NavigationMenuPrimitive.Root,
|
|
7640
8584
|
__spreadProps(__spreadValues({
|
|
7641
8585
|
ref,
|
|
@@ -7646,7 +8590,7 @@ var NavigationMenu = React52.forwardRef((_a, ref) => {
|
|
|
7646
8590
|
}, props), {
|
|
7647
8591
|
children: [
|
|
7648
8592
|
children,
|
|
7649
|
-
/* @__PURE__ */
|
|
8593
|
+
/* @__PURE__ */ jsx31(NavigationMenuViewport, {})
|
|
7650
8594
|
]
|
|
7651
8595
|
})
|
|
7652
8596
|
);
|
|
@@ -7654,7 +8598,7 @@ var NavigationMenu = React52.forwardRef((_a, ref) => {
|
|
|
7654
8598
|
NavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName;
|
|
7655
8599
|
var NavigationMenuList = React52.forwardRef((_a, ref) => {
|
|
7656
8600
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
7657
|
-
return /* @__PURE__ */
|
|
8601
|
+
return /* @__PURE__ */ jsx31(
|
|
7658
8602
|
NavigationMenuPrimitive.List,
|
|
7659
8603
|
__spreadValues({
|
|
7660
8604
|
ref,
|
|
@@ -7672,7 +8616,7 @@ var navigationMenuTriggerStyle = cva6(
|
|
|
7672
8616
|
);
|
|
7673
8617
|
var NavigationMenuTrigger = React52.forwardRef((_a, ref) => {
|
|
7674
8618
|
var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
|
|
7675
|
-
return /* @__PURE__ */
|
|
8619
|
+
return /* @__PURE__ */ jsxs20(
|
|
7676
8620
|
NavigationMenuPrimitive.Trigger,
|
|
7677
8621
|
__spreadProps(__spreadValues({
|
|
7678
8622
|
ref,
|
|
@@ -7681,8 +8625,8 @@ var NavigationMenuTrigger = React52.forwardRef((_a, ref) => {
|
|
|
7681
8625
|
children: [
|
|
7682
8626
|
children,
|
|
7683
8627
|
" ",
|
|
7684
|
-
/* @__PURE__ */
|
|
7685
|
-
|
|
8628
|
+
/* @__PURE__ */ jsx31(
|
|
8629
|
+
ChevronDownIcon2,
|
|
7686
8630
|
{
|
|
7687
8631
|
className: "relative top-[1px] ml-1 h-3 w-3 transition duration-300 group-data-[state=open]:rotate-180",
|
|
7688
8632
|
"aria-hidden": "true"
|
|
@@ -7695,7 +8639,7 @@ var NavigationMenuTrigger = React52.forwardRef((_a, ref) => {
|
|
|
7695
8639
|
NavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName;
|
|
7696
8640
|
var NavigationMenuContent = React52.forwardRef((_a, ref) => {
|
|
7697
8641
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
7698
|
-
return /* @__PURE__ */
|
|
8642
|
+
return /* @__PURE__ */ jsx31(
|
|
7699
8643
|
NavigationMenuPrimitive.Content,
|
|
7700
8644
|
__spreadValues({
|
|
7701
8645
|
ref,
|
|
@@ -7710,7 +8654,7 @@ NavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName;
|
|
|
7710
8654
|
var NavigationMenuLink = NavigationMenuPrimitive.Link;
|
|
7711
8655
|
var NavigationMenuViewport = React52.forwardRef((_a, ref) => {
|
|
7712
8656
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
7713
|
-
return /* @__PURE__ */
|
|
8657
|
+
return /* @__PURE__ */ jsx31("div", { className: cn("absolute left-0 top-full flex justify-center"), children: /* @__PURE__ */ jsx31(
|
|
7714
8658
|
NavigationMenuPrimitive.Viewport,
|
|
7715
8659
|
__spreadValues({
|
|
7716
8660
|
className: cn(
|
|
@@ -7724,7 +8668,7 @@ var NavigationMenuViewport = React52.forwardRef((_a, ref) => {
|
|
|
7724
8668
|
NavigationMenuViewport.displayName = NavigationMenuPrimitive.Viewport.displayName;
|
|
7725
8669
|
var NavigationMenuIndicator = React52.forwardRef((_a, ref) => {
|
|
7726
8670
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
7727
|
-
return /* @__PURE__ */
|
|
8671
|
+
return /* @__PURE__ */ jsx31(
|
|
7728
8672
|
NavigationMenuPrimitive.Indicator,
|
|
7729
8673
|
__spreadProps(__spreadValues({
|
|
7730
8674
|
ref,
|
|
@@ -7733,7 +8677,7 @@ var NavigationMenuIndicator = React52.forwardRef((_a, ref) => {
|
|
|
7733
8677
|
className
|
|
7734
8678
|
)
|
|
7735
8679
|
}, props), {
|
|
7736
|
-
children: /* @__PURE__ */
|
|
8680
|
+
children: /* @__PURE__ */ jsx31("div", { className: "relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-border shadow-md" })
|
|
7737
8681
|
})
|
|
7738
8682
|
);
|
|
7739
8683
|
});
|
|
@@ -7747,10 +8691,10 @@ import {
|
|
|
7747
8691
|
} from "@radix-ui/react-icons";
|
|
7748
8692
|
import * as React53 from "react";
|
|
7749
8693
|
import { ChevronLeft as ChevronLeft2, ChevronRight as ChevronRight2 } from "lucide-react";
|
|
7750
|
-
import { jsx as
|
|
8694
|
+
import { jsx as jsx32, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
7751
8695
|
var Pagination = (_a) => {
|
|
7752
8696
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
7753
|
-
return /* @__PURE__ */
|
|
8697
|
+
return /* @__PURE__ */ jsx32(
|
|
7754
8698
|
"nav",
|
|
7755
8699
|
__spreadValues({
|
|
7756
8700
|
role: "navigation",
|
|
@@ -7762,7 +8706,7 @@ var Pagination = (_a) => {
|
|
|
7762
8706
|
Pagination.displayName = "Pagination";
|
|
7763
8707
|
var PaginationContent = React53.forwardRef((_a, ref) => {
|
|
7764
8708
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
7765
|
-
return /* @__PURE__ */
|
|
8709
|
+
return /* @__PURE__ */ jsx32(
|
|
7766
8710
|
"ul",
|
|
7767
8711
|
__spreadValues({
|
|
7768
8712
|
ref,
|
|
@@ -7773,7 +8717,7 @@ var PaginationContent = React53.forwardRef((_a, ref) => {
|
|
|
7773
8717
|
PaginationContent.displayName = "PaginationContent";
|
|
7774
8718
|
var PaginationItem = React53.forwardRef((_a, ref) => {
|
|
7775
8719
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
7776
|
-
return /* @__PURE__ */
|
|
8720
|
+
return /* @__PURE__ */ jsx32("li", __spreadValues({ ref, className: cn("", className) }, props));
|
|
7777
8721
|
});
|
|
7778
8722
|
PaginationItem.displayName = "PaginationItem";
|
|
7779
8723
|
var PaginationLink = (_a) => {
|
|
@@ -7786,7 +8730,7 @@ var PaginationLink = (_a) => {
|
|
|
7786
8730
|
"isActive",
|
|
7787
8731
|
"size"
|
|
7788
8732
|
]);
|
|
7789
|
-
return /* @__PURE__ */
|
|
8733
|
+
return /* @__PURE__ */ jsx32(
|
|
7790
8734
|
"a",
|
|
7791
8735
|
__spreadValues({
|
|
7792
8736
|
"aria-current": isActive ? "page" : void 0,
|
|
@@ -7807,7 +8751,7 @@ var PaginationPreviousLast = (_a) => {
|
|
|
7807
8751
|
} = _b, props = __objRest(_b, [
|
|
7808
8752
|
"className"
|
|
7809
8753
|
]);
|
|
7810
|
-
return /* @__PURE__ */
|
|
8754
|
+
return /* @__PURE__ */ jsxs21(
|
|
7811
8755
|
PaginationLink,
|
|
7812
8756
|
__spreadProps(__spreadValues({
|
|
7813
8757
|
"aria-label": "Go to previous page",
|
|
@@ -7815,8 +8759,8 @@ var PaginationPreviousLast = (_a) => {
|
|
|
7815
8759
|
className: cn("gap-1 pl-2.5", className)
|
|
7816
8760
|
}, props), {
|
|
7817
8761
|
children: [
|
|
7818
|
-
/* @__PURE__ */
|
|
7819
|
-
/* @__PURE__ */
|
|
8762
|
+
/* @__PURE__ */ jsx32(ChevronLeft2, { className: "h-4 w-4" }),
|
|
8763
|
+
/* @__PURE__ */ jsx32("span", { className: "sr-only", children: "Previous Last" })
|
|
7820
8764
|
]
|
|
7821
8765
|
})
|
|
7822
8766
|
);
|
|
@@ -7828,7 +8772,7 @@ var PaginationPrevious = (_a) => {
|
|
|
7828
8772
|
} = _b, props = __objRest(_b, [
|
|
7829
8773
|
"className"
|
|
7830
8774
|
]);
|
|
7831
|
-
return /* @__PURE__ */
|
|
8775
|
+
return /* @__PURE__ */ jsxs21(
|
|
7832
8776
|
PaginationLink,
|
|
7833
8777
|
__spreadProps(__spreadValues({
|
|
7834
8778
|
"aria-label": "Go to previous page",
|
|
@@ -7836,8 +8780,8 @@ var PaginationPrevious = (_a) => {
|
|
|
7836
8780
|
className: cn("gap-1 pl-2.5", className)
|
|
7837
8781
|
}, props), {
|
|
7838
8782
|
children: [
|
|
7839
|
-
/* @__PURE__ */
|
|
7840
|
-
/* @__PURE__ */
|
|
8783
|
+
/* @__PURE__ */ jsx32(ChevronLeftIcon, { className: "h-4 w-4" }),
|
|
8784
|
+
/* @__PURE__ */ jsx32("span", { children: "Previous" })
|
|
7841
8785
|
]
|
|
7842
8786
|
})
|
|
7843
8787
|
);
|
|
@@ -7849,7 +8793,7 @@ var PaginationNext = (_a) => {
|
|
|
7849
8793
|
} = _b, props = __objRest(_b, [
|
|
7850
8794
|
"className"
|
|
7851
8795
|
]);
|
|
7852
|
-
return /* @__PURE__ */
|
|
8796
|
+
return /* @__PURE__ */ jsxs21(
|
|
7853
8797
|
PaginationLink,
|
|
7854
8798
|
__spreadProps(__spreadValues({
|
|
7855
8799
|
"aria-label": "Go to next page",
|
|
@@ -7857,8 +8801,8 @@ var PaginationNext = (_a) => {
|
|
|
7857
8801
|
className: cn("gap-1 pr-2.5", className)
|
|
7858
8802
|
}, props), {
|
|
7859
8803
|
children: [
|
|
7860
|
-
/* @__PURE__ */
|
|
7861
|
-
/* @__PURE__ */
|
|
8804
|
+
/* @__PURE__ */ jsx32("span", { children: "Next" }),
|
|
8805
|
+
/* @__PURE__ */ jsx32(ChevronRightIcon5, { className: "h-4 w-4" })
|
|
7862
8806
|
]
|
|
7863
8807
|
})
|
|
7864
8808
|
);
|
|
@@ -7870,7 +8814,7 @@ var PaginationNextLast = (_a) => {
|
|
|
7870
8814
|
} = _b, props = __objRest(_b, [
|
|
7871
8815
|
"className"
|
|
7872
8816
|
]);
|
|
7873
|
-
return /* @__PURE__ */
|
|
8817
|
+
return /* @__PURE__ */ jsxs21(
|
|
7874
8818
|
PaginationLink,
|
|
7875
8819
|
__spreadProps(__spreadValues({
|
|
7876
8820
|
"aria-label": "Go to next page",
|
|
@@ -7878,8 +8822,8 @@ var PaginationNextLast = (_a) => {
|
|
|
7878
8822
|
className: cn("gap-1 pr-2.5", className)
|
|
7879
8823
|
}, props), {
|
|
7880
8824
|
children: [
|
|
7881
|
-
/* @__PURE__ */
|
|
7882
|
-
/* @__PURE__ */
|
|
8825
|
+
/* @__PURE__ */ jsx32("span", { className: "sr-only", children: "Next Last" }),
|
|
8826
|
+
/* @__PURE__ */ jsx32(ChevronRight2, { className: "h-4 w-4" })
|
|
7883
8827
|
]
|
|
7884
8828
|
})
|
|
7885
8829
|
);
|
|
@@ -7891,15 +8835,15 @@ var PaginationEllipsis = (_a) => {
|
|
|
7891
8835
|
} = _b, props = __objRest(_b, [
|
|
7892
8836
|
"className"
|
|
7893
8837
|
]);
|
|
7894
|
-
return /* @__PURE__ */
|
|
8838
|
+
return /* @__PURE__ */ jsxs21(
|
|
7895
8839
|
"span",
|
|
7896
8840
|
__spreadProps(__spreadValues({
|
|
7897
8841
|
"aria-hidden": true,
|
|
7898
8842
|
className: cn("flex h-9 w-9 items-center justify-center", className)
|
|
7899
8843
|
}, props), {
|
|
7900
8844
|
children: [
|
|
7901
|
-
/* @__PURE__ */
|
|
7902
|
-
/* @__PURE__ */
|
|
8845
|
+
/* @__PURE__ */ jsx32(DotsHorizontalIcon2, { className: "h-4 w-4" }),
|
|
8846
|
+
/* @__PURE__ */ jsx32("span", { className: "sr-only", children: "More pages" })
|
|
7903
8847
|
]
|
|
7904
8848
|
})
|
|
7905
8849
|
);
|
|
@@ -7909,13 +8853,13 @@ PaginationEllipsis.displayName = "PaginationEllipsis";
|
|
|
7909
8853
|
// src/components/popover.tsx
|
|
7910
8854
|
import * as PopoverPrimitive from "@radix-ui/react-popover";
|
|
7911
8855
|
import * as React54 from "react";
|
|
7912
|
-
import { jsx as
|
|
8856
|
+
import { jsx as jsx33 } from "react/jsx-runtime";
|
|
7913
8857
|
var Popover = PopoverPrimitive.Root;
|
|
7914
8858
|
var PopoverTrigger = PopoverPrimitive.Trigger;
|
|
7915
8859
|
var PopoverAnchor = PopoverPrimitive.Anchor;
|
|
7916
8860
|
var PopoverContent = React54.forwardRef((_a, ref) => {
|
|
7917
8861
|
var _b = _a, { className, align = "center", sideOffset = 4 } = _b, props = __objRest(_b, ["className", "align", "sideOffset"]);
|
|
7918
|
-
return /* @__PURE__ */
|
|
8862
|
+
return /* @__PURE__ */ jsx33(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx33(
|
|
7919
8863
|
PopoverPrimitive.Content,
|
|
7920
8864
|
__spreadValues({
|
|
7921
8865
|
ref,
|
|
@@ -7933,10 +8877,10 @@ PopoverContent.displayName = PopoverPrimitive.Content.displayName;
|
|
|
7933
8877
|
// src/components/progress.tsx
|
|
7934
8878
|
import * as ProgressPrimitive from "@radix-ui/react-progress";
|
|
7935
8879
|
import * as React55 from "react";
|
|
7936
|
-
import { jsx as
|
|
8880
|
+
import { jsx as jsx34 } from "react/jsx-runtime";
|
|
7937
8881
|
var Progress = React55.forwardRef((_a, ref) => {
|
|
7938
8882
|
var _b = _a, { className, value } = _b, props = __objRest(_b, ["className", "value"]);
|
|
7939
|
-
return /* @__PURE__ */
|
|
8883
|
+
return /* @__PURE__ */ jsx34(
|
|
7940
8884
|
ProgressPrimitive.Root,
|
|
7941
8885
|
__spreadProps(__spreadValues({
|
|
7942
8886
|
ref,
|
|
@@ -7945,7 +8889,7 @@ var Progress = React55.forwardRef((_a, ref) => {
|
|
|
7945
8889
|
className
|
|
7946
8890
|
)
|
|
7947
8891
|
}, props), {
|
|
7948
|
-
children: /* @__PURE__ */
|
|
8892
|
+
children: /* @__PURE__ */ jsx34(
|
|
7949
8893
|
ProgressPrimitive.Indicator,
|
|
7950
8894
|
{
|
|
7951
8895
|
className: "h-full w-full flex-1 bg-primary transition-all",
|
|
@@ -7958,13 +8902,13 @@ var Progress = React55.forwardRef((_a, ref) => {
|
|
|
7958
8902
|
Progress.displayName = ProgressPrimitive.Root.displayName;
|
|
7959
8903
|
|
|
7960
8904
|
// src/components/radio-group.tsx
|
|
7961
|
-
import { CheckIcon as
|
|
8905
|
+
import { CheckIcon as CheckIcon7 } from "@radix-ui/react-icons";
|
|
7962
8906
|
import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
|
|
7963
8907
|
import * as React56 from "react";
|
|
7964
|
-
import { jsx as
|
|
8908
|
+
import { jsx as jsx35 } from "react/jsx-runtime";
|
|
7965
8909
|
var RadioGroup4 = React56.forwardRef((_a, ref) => {
|
|
7966
8910
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
7967
|
-
return /* @__PURE__ */
|
|
8911
|
+
return /* @__PURE__ */ jsx35(
|
|
7968
8912
|
RadioGroupPrimitive.Root,
|
|
7969
8913
|
__spreadProps(__spreadValues({
|
|
7970
8914
|
className: cn("grid gap-2", className)
|
|
@@ -7976,7 +8920,7 @@ var RadioGroup4 = React56.forwardRef((_a, ref) => {
|
|
|
7976
8920
|
RadioGroup4.displayName = RadioGroupPrimitive.Root.displayName;
|
|
7977
8921
|
var RadioGroupItem = React56.forwardRef((_a, ref) => {
|
|
7978
8922
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
7979
|
-
return /* @__PURE__ */
|
|
8923
|
+
return /* @__PURE__ */ jsx35(
|
|
7980
8924
|
RadioGroupPrimitive.Item,
|
|
7981
8925
|
__spreadProps(__spreadValues({
|
|
7982
8926
|
ref,
|
|
@@ -7985,7 +8929,7 @@ var RadioGroupItem = React56.forwardRef((_a, ref) => {
|
|
|
7985
8929
|
className
|
|
7986
8930
|
)
|
|
7987
8931
|
}, props), {
|
|
7988
|
-
children: /* @__PURE__ */
|
|
8932
|
+
children: /* @__PURE__ */ jsx35(RadioGroupPrimitive.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ jsx35(CheckIcon7, { className: "h-3.5 w-3.5 fill-primary" }) })
|
|
7989
8933
|
})
|
|
7990
8934
|
);
|
|
7991
8935
|
});
|
|
@@ -7994,14 +8938,14 @@ RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
|
|
|
7994
8938
|
// src/components/resizable.tsx
|
|
7995
8939
|
import { DragHandleDots2Icon } from "@radix-ui/react-icons";
|
|
7996
8940
|
import * as ResizablePrimitive from "react-resizable-panels";
|
|
7997
|
-
import { jsx as
|
|
8941
|
+
import { jsx as jsx36 } from "react/jsx-runtime";
|
|
7998
8942
|
var ResizablePanelGroup = (_a) => {
|
|
7999
8943
|
var _b = _a, {
|
|
8000
8944
|
className
|
|
8001
8945
|
} = _b, props = __objRest(_b, [
|
|
8002
8946
|
"className"
|
|
8003
8947
|
]);
|
|
8004
|
-
return /* @__PURE__ */
|
|
8948
|
+
return /* @__PURE__ */ jsx36(
|
|
8005
8949
|
ResizablePrimitive.Group,
|
|
8006
8950
|
__spreadValues({
|
|
8007
8951
|
className: cn("flex h-full w-full aria-[orientation=vertical]:flex-col", className)
|
|
@@ -8017,7 +8961,7 @@ var ResizableHandle = (_a) => {
|
|
|
8017
8961
|
"withHandle",
|
|
8018
8962
|
"className"
|
|
8019
8963
|
]);
|
|
8020
|
-
return /* @__PURE__ */
|
|
8964
|
+
return /* @__PURE__ */ jsx36(
|
|
8021
8965
|
ResizablePrimitive.Separator,
|
|
8022
8966
|
__spreadProps(__spreadValues({
|
|
8023
8967
|
className: cn(
|
|
@@ -8025,7 +8969,7 @@ var ResizableHandle = (_a) => {
|
|
|
8025
8969
|
className
|
|
8026
8970
|
)
|
|
8027
8971
|
}, props), {
|
|
8028
|
-
children: withHandle && /* @__PURE__ */
|
|
8972
|
+
children: withHandle && /* @__PURE__ */ jsx36("div", { className: "z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border", children: /* @__PURE__ */ jsx36(DragHandleDots2Icon, { className: "h-2.5 w-2.5" }) })
|
|
8029
8973
|
})
|
|
8030
8974
|
);
|
|
8031
8975
|
};
|
|
@@ -8033,19 +8977,19 @@ var ResizableHandle = (_a) => {
|
|
|
8033
8977
|
// src/components/scroll-area.tsx
|
|
8034
8978
|
import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
|
|
8035
8979
|
import * as React57 from "react";
|
|
8036
|
-
import { jsx as
|
|
8980
|
+
import { jsx as jsx37, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
8037
8981
|
var ScrollArea = React57.forwardRef((_a, ref) => {
|
|
8038
8982
|
var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
|
|
8039
|
-
return /* @__PURE__ */
|
|
8983
|
+
return /* @__PURE__ */ jsxs22(
|
|
8040
8984
|
ScrollAreaPrimitive.Root,
|
|
8041
8985
|
__spreadProps(__spreadValues({
|
|
8042
8986
|
ref,
|
|
8043
8987
|
className: cn("relative overflow-hidden", className)
|
|
8044
8988
|
}, props), {
|
|
8045
8989
|
children: [
|
|
8046
|
-
/* @__PURE__ */
|
|
8047
|
-
/* @__PURE__ */
|
|
8048
|
-
/* @__PURE__ */
|
|
8990
|
+
/* @__PURE__ */ jsx37(ScrollAreaPrimitive.Viewport, { className: "h-full w-full rounded-[inherit]", children }),
|
|
8991
|
+
/* @__PURE__ */ jsx37(ScrollBar, {}),
|
|
8992
|
+
/* @__PURE__ */ jsx37(ScrollAreaPrimitive.Corner, {})
|
|
8049
8993
|
]
|
|
8050
8994
|
})
|
|
8051
8995
|
);
|
|
@@ -8053,7 +8997,7 @@ var ScrollArea = React57.forwardRef((_a, ref) => {
|
|
|
8053
8997
|
ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
|
|
8054
8998
|
var ScrollBar = React57.forwardRef((_a, ref) => {
|
|
8055
8999
|
var _b = _a, { className, orientation = "vertical" } = _b, props = __objRest(_b, ["className", "orientation"]);
|
|
8056
|
-
return /* @__PURE__ */
|
|
9000
|
+
return /* @__PURE__ */ jsx37(
|
|
8057
9001
|
ScrollAreaPrimitive.ScrollAreaScrollbar,
|
|
8058
9002
|
__spreadProps(__spreadValues({
|
|
8059
9003
|
ref,
|
|
@@ -8065,7 +9009,7 @@ var ScrollBar = React57.forwardRef((_a, ref) => {
|
|
|
8065
9009
|
className
|
|
8066
9010
|
)
|
|
8067
9011
|
}, props), {
|
|
8068
|
-
children: /* @__PURE__ */
|
|
9012
|
+
children: /* @__PURE__ */ jsx37(ScrollAreaPrimitive.ScrollAreaThumb, { className: "relative flex-1 rounded-full bg-border" })
|
|
8069
9013
|
})
|
|
8070
9014
|
);
|
|
8071
9015
|
});
|
|
@@ -8074,7 +9018,7 @@ ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
|
|
|
8074
9018
|
// src/components/search-input.tsx
|
|
8075
9019
|
import * as React58 from "react";
|
|
8076
9020
|
import { useDebouncedCallback } from "use-debounce";
|
|
8077
|
-
import { jsx as
|
|
9021
|
+
import { jsx as jsx38 } from "react/jsx-runtime";
|
|
8078
9022
|
function setForwardedRef(ref, value) {
|
|
8079
9023
|
if (typeof ref === "function") {
|
|
8080
9024
|
ref(value);
|
|
@@ -8155,7 +9099,7 @@ var SearchInput = React58.forwardRef(
|
|
|
8155
9099
|
focusInput();
|
|
8156
9100
|
});
|
|
8157
9101
|
};
|
|
8158
|
-
return /* @__PURE__ */
|
|
9102
|
+
return /* @__PURE__ */ jsx38(
|
|
8159
9103
|
Input,
|
|
8160
9104
|
__spreadValues({
|
|
8161
9105
|
ref: composedRef,
|
|
@@ -8164,363 +9108,44 @@ var SearchInput = React58.forwardRef(
|
|
|
8164
9108
|
placeholder,
|
|
8165
9109
|
onChange: handleChange,
|
|
8166
9110
|
className: cn("w-full", className),
|
|
8167
|
-
classNameDefault,
|
|
8168
|
-
autoComplete: "off",
|
|
8169
|
-
onKeyDown: (event) => {
|
|
8170
|
-
if (event.key !== "Escape") {
|
|
8171
|
-
event.stopPropagation();
|
|
8172
|
-
}
|
|
8173
|
-
onKeyDown == null ? void 0 : onKeyDown(event);
|
|
8174
|
-
},
|
|
8175
|
-
onPointerDown: (event) => {
|
|
8176
|
-
event.stopPropagation();
|
|
8177
|
-
onPointerDown == null ? void 0 : onPointerDown(event);
|
|
8178
|
-
},
|
|
8179
|
-
onMouseDown: (event) => {
|
|
8180
|
-
event.stopPropagation();
|
|
8181
|
-
onMouseDown == null ? void 0 : onMouseDown(event);
|
|
8182
|
-
},
|
|
8183
|
-
onClick: (event) => {
|
|
8184
|
-
event.stopPropagation();
|
|
8185
|
-
requestAnimationFrame(() => {
|
|
8186
|
-
focusInput();
|
|
8187
|
-
});
|
|
8188
|
-
onClick == null ? void 0 : onClick(event);
|
|
8189
|
-
},
|
|
8190
|
-
onFocus: (event) => {
|
|
8191
|
-
event.stopPropagation();
|
|
8192
|
-
onFocus == null ? void 0 : onFocus(event);
|
|
8193
|
-
}
|
|
8194
|
-
}, props)
|
|
8195
|
-
);
|
|
8196
|
-
}
|
|
8197
|
-
);
|
|
8198
|
-
SearchInput.displayName = "SearchInput";
|
|
8199
|
-
|
|
8200
|
-
// src/components/searchable-select.tsx
|
|
8201
|
-
import * as React59 from "react";
|
|
8202
|
-
import { CaretSortIcon as CaretSortIcon2, CheckIcon as CheckIcon7, Cross2Icon as Cross2Icon2 } from "@radix-ui/react-icons";
|
|
8203
|
-
import { jsx as jsx38, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
8204
|
-
function normalizeText(value) {
|
|
8205
|
-
return String(value != null ? value : "").normalize("NFD").replace(new RegExp("\\p{Diacritic}", "gu"), "").toLowerCase().trim();
|
|
8206
|
-
}
|
|
8207
|
-
function getLabelText(value) {
|
|
8208
|
-
if (typeof value === "string" || typeof value === "number") {
|
|
8209
|
-
return String(value);
|
|
8210
|
-
}
|
|
8211
|
-
return "";
|
|
8212
|
-
}
|
|
8213
|
-
function getOptionText(item) {
|
|
8214
|
-
if (!item) return "";
|
|
8215
|
-
return getLabelText(item.label) || item.value;
|
|
8216
|
-
}
|
|
8217
|
-
function getNextEnabledIndex2(items, currentIndex, direction) {
|
|
8218
|
-
var _a;
|
|
8219
|
-
if (!items.length) return -1;
|
|
8220
|
-
let nextIndex = currentIndex;
|
|
8221
|
-
for (let index = 0; index < items.length; index += 1) {
|
|
8222
|
-
nextIndex = (nextIndex + direction + items.length) % items.length;
|
|
8223
|
-
if (!((_a = items[nextIndex]) == null ? void 0 : _a.disabled)) {
|
|
8224
|
-
return nextIndex;
|
|
8225
|
-
}
|
|
8226
|
-
}
|
|
8227
|
-
return -1;
|
|
8228
|
-
}
|
|
8229
|
-
function SearchableSelectBase({
|
|
8230
|
-
items,
|
|
8231
|
-
value,
|
|
8232
|
-
defaultValue,
|
|
8233
|
-
onValueChange,
|
|
8234
|
-
placeholder = "Seleccionar opci\xF3n",
|
|
8235
|
-
searchPlaceholder = "Buscar\u2026",
|
|
8236
|
-
emptyText = "No hay resultados",
|
|
8237
|
-
disabled,
|
|
8238
|
-
name,
|
|
8239
|
-
required,
|
|
8240
|
-
triggerClassName,
|
|
8241
|
-
contentClassName,
|
|
8242
|
-
itemClassName,
|
|
8243
|
-
searchInputClassName
|
|
8244
|
-
}) {
|
|
8245
|
-
const rootRef = React59.useRef(null);
|
|
8246
|
-
const inputRef = React59.useRef(null);
|
|
8247
|
-
const listboxId = React59.useId();
|
|
8248
|
-
const isControlled = value !== void 0;
|
|
8249
|
-
const [internalValue, setInternalValue] = React59.useState(defaultValue != null ? defaultValue : "");
|
|
8250
|
-
const currentValue = isControlled ? value != null ? value : "" : internalValue;
|
|
8251
|
-
const selectedItem = React59.useMemo(() => {
|
|
8252
|
-
return items.find((item) => item.value === currentValue);
|
|
8253
|
-
}, [currentValue, items]);
|
|
8254
|
-
const selectedText = React59.useMemo(() => {
|
|
8255
|
-
return getOptionText(selectedItem);
|
|
8256
|
-
}, [selectedItem]);
|
|
8257
|
-
const [open, setOpen] = React59.useState(false);
|
|
8258
|
-
const [inputValue, setInputValue] = React59.useState(selectedText);
|
|
8259
|
-
const [activeIndex, setActiveIndex] = React59.useState(-1);
|
|
8260
|
-
React59.useEffect(() => {
|
|
8261
|
-
if (!open) {
|
|
8262
|
-
setInputValue(selectedText);
|
|
8263
|
-
}
|
|
8264
|
-
}, [open, selectedText]);
|
|
8265
|
-
const filteredItems = React59.useMemo(() => {
|
|
8266
|
-
const query = normalizeText(inputValue);
|
|
8267
|
-
if (!query) return items;
|
|
8268
|
-
return items.filter((item) => {
|
|
8269
|
-
var _a;
|
|
8270
|
-
const haystack = normalizeText(
|
|
8271
|
-
`${getLabelText(item.label)} ${item.value} ${(_a = item.keywords) != null ? _a : ""}`
|
|
8272
|
-
);
|
|
8273
|
-
return haystack.includes(query);
|
|
8274
|
-
});
|
|
8275
|
-
}, [inputValue, items]);
|
|
8276
|
-
React59.useEffect(() => {
|
|
8277
|
-
if (!open) return;
|
|
8278
|
-
const firstEnabledIndex = filteredItems.findIndex((item) => !item.disabled);
|
|
8279
|
-
setActiveIndex(firstEnabledIndex);
|
|
8280
|
-
}, [filteredItems, open]);
|
|
8281
|
-
React59.useEffect(() => {
|
|
8282
|
-
if (!open) return;
|
|
8283
|
-
const handlePointerDown = (event) => {
|
|
8284
|
-
var _a;
|
|
8285
|
-
const target = event.target;
|
|
8286
|
-
if (target && ((_a = rootRef.current) == null ? void 0 : _a.contains(target))) {
|
|
8287
|
-
return;
|
|
8288
|
-
}
|
|
8289
|
-
setOpen(false);
|
|
8290
|
-
};
|
|
8291
|
-
document.addEventListener("pointerdown", handlePointerDown, true);
|
|
8292
|
-
return () => {
|
|
8293
|
-
document.removeEventListener("pointerdown", handlePointerDown, true);
|
|
8294
|
-
};
|
|
8295
|
-
}, [open]);
|
|
8296
|
-
const selectItem = React59.useCallback(
|
|
8297
|
-
(item) => {
|
|
8298
|
-
if (item.disabled) return;
|
|
8299
|
-
if (!isControlled) {
|
|
8300
|
-
setInternalValue(item.value);
|
|
8301
|
-
}
|
|
8302
|
-
setInputValue(getOptionText(item));
|
|
8303
|
-
setOpen(false);
|
|
8304
|
-
onValueChange == null ? void 0 : onValueChange(item.value, item);
|
|
8305
|
-
requestAnimationFrame(() => {
|
|
8306
|
-
var _a;
|
|
8307
|
-
(_a = inputRef.current) == null ? void 0 : _a.blur();
|
|
8308
|
-
});
|
|
8309
|
-
},
|
|
8310
|
-
[isControlled, onValueChange]
|
|
8311
|
-
);
|
|
8312
|
-
return /* @__PURE__ */ jsxs22("div", { ref: rootRef, className: "relative w-full", children: [
|
|
8313
|
-
name ? /* @__PURE__ */ jsx38(
|
|
8314
|
-
"input",
|
|
8315
|
-
{
|
|
8316
|
-
type: "hidden",
|
|
8317
|
-
name,
|
|
8318
|
-
value: currentValue,
|
|
8319
|
-
required,
|
|
8320
|
-
disabled
|
|
8321
|
-
}
|
|
8322
|
-
) : null,
|
|
8323
|
-
/* @__PURE__ */ jsxs22(
|
|
8324
|
-
"div",
|
|
8325
|
-
{
|
|
8326
|
-
className: cn(
|
|
8327
|
-
"relative flex h-9 w-full items-center gap-2 rounded-md border border-input bg-background px-3 text-sm shadow-sm transition",
|
|
8328
|
-
"focus-within:border-primary/60 focus-within:ring-2 focus-within:ring-primary/20",
|
|
8329
|
-
disabled && "cursor-not-allowed opacity-50",
|
|
8330
|
-
triggerClassName
|
|
8331
|
-
),
|
|
8332
|
-
onPointerDown: () => {
|
|
8333
|
-
if (disabled) return;
|
|
8334
|
-
setOpen(true);
|
|
9111
|
+
classNameDefault,
|
|
9112
|
+
autoComplete: "off",
|
|
9113
|
+
onKeyDown: (event) => {
|
|
9114
|
+
if (event.key !== "Escape") {
|
|
9115
|
+
event.stopPropagation();
|
|
9116
|
+
}
|
|
9117
|
+
onKeyDown == null ? void 0 : onKeyDown(event);
|
|
9118
|
+
},
|
|
9119
|
+
onPointerDown: (event) => {
|
|
9120
|
+
event.stopPropagation();
|
|
9121
|
+
onPointerDown == null ? void 0 : onPointerDown(event);
|
|
9122
|
+
},
|
|
9123
|
+
onMouseDown: (event) => {
|
|
9124
|
+
event.stopPropagation();
|
|
9125
|
+
onMouseDown == null ? void 0 : onMouseDown(event);
|
|
9126
|
+
},
|
|
9127
|
+
onClick: (event) => {
|
|
9128
|
+
event.stopPropagation();
|
|
8335
9129
|
requestAnimationFrame(() => {
|
|
8336
|
-
|
|
8337
|
-
(_a = inputRef.current) == null ? void 0 : _a.focus({ preventScroll: true });
|
|
9130
|
+
focusInput();
|
|
8338
9131
|
});
|
|
9132
|
+
onClick == null ? void 0 : onClick(event);
|
|
8339
9133
|
},
|
|
8340
|
-
|
|
8341
|
-
|
|
8342
|
-
|
|
8343
|
-
|
|
8344
|
-
|
|
8345
|
-
|
|
8346
|
-
|
|
8347
|
-
"aria-autocomplete": "list",
|
|
8348
|
-
"aria-expanded": open,
|
|
8349
|
-
"aria-controls": listboxId,
|
|
8350
|
-
"aria-activedescendant": activeIndex >= 0 ? `${listboxId}-option-${activeIndex}` : void 0,
|
|
8351
|
-
placeholder: open ? searchPlaceholder : placeholder,
|
|
8352
|
-
autoComplete: "off",
|
|
8353
|
-
spellCheck: false,
|
|
8354
|
-
disabled,
|
|
8355
|
-
onFocus: () => {
|
|
8356
|
-
setOpen(true);
|
|
8357
|
-
requestAnimationFrame(() => {
|
|
8358
|
-
var _a;
|
|
8359
|
-
(_a = inputRef.current) == null ? void 0 : _a.select();
|
|
8360
|
-
});
|
|
8361
|
-
},
|
|
8362
|
-
onChange: (event) => {
|
|
8363
|
-
setInputValue(event.target.value);
|
|
8364
|
-
setOpen(true);
|
|
8365
|
-
},
|
|
8366
|
-
onKeyDown: (event) => {
|
|
8367
|
-
var _a;
|
|
8368
|
-
if (event.key === "ArrowDown") {
|
|
8369
|
-
event.preventDefault();
|
|
8370
|
-
setOpen(true);
|
|
8371
|
-
setActiveIndex(
|
|
8372
|
-
(currentIndex) => getNextEnabledIndex2(filteredItems, currentIndex, 1)
|
|
8373
|
-
);
|
|
8374
|
-
return;
|
|
8375
|
-
}
|
|
8376
|
-
if (event.key === "ArrowUp") {
|
|
8377
|
-
event.preventDefault();
|
|
8378
|
-
setOpen(true);
|
|
8379
|
-
setActiveIndex(
|
|
8380
|
-
(currentIndex) => getNextEnabledIndex2(filteredItems, currentIndex, -1)
|
|
8381
|
-
);
|
|
8382
|
-
return;
|
|
8383
|
-
}
|
|
8384
|
-
if (event.key === "Enter") {
|
|
8385
|
-
if (!open) return;
|
|
8386
|
-
event.preventDefault();
|
|
8387
|
-
const activeItem = filteredItems[activeIndex];
|
|
8388
|
-
if (activeItem) {
|
|
8389
|
-
selectItem(activeItem);
|
|
8390
|
-
}
|
|
8391
|
-
return;
|
|
8392
|
-
}
|
|
8393
|
-
if (event.key === "Escape") {
|
|
8394
|
-
event.preventDefault();
|
|
8395
|
-
setOpen(false);
|
|
8396
|
-
setInputValue(selectedText);
|
|
8397
|
-
(_a = inputRef.current) == null ? void 0 : _a.blur();
|
|
8398
|
-
}
|
|
8399
|
-
},
|
|
8400
|
-
className: cn(
|
|
8401
|
-
"h-full min-w-0 flex-1 border-0 bg-transparent p-0 text-sm outline-none",
|
|
8402
|
-
"placeholder:text-muted-foreground disabled:cursor-not-allowed",
|
|
8403
|
-
searchInputClassName
|
|
8404
|
-
)
|
|
8405
|
-
}
|
|
8406
|
-
),
|
|
8407
|
-
inputValue && open ? /* @__PURE__ */ jsx38(
|
|
8408
|
-
"button",
|
|
8409
|
-
{
|
|
8410
|
-
type: "button",
|
|
8411
|
-
"aria-label": "Limpiar b\xFAsqueda",
|
|
8412
|
-
tabIndex: -1,
|
|
8413
|
-
onPointerDown: (event) => {
|
|
8414
|
-
event.preventDefault();
|
|
8415
|
-
event.stopPropagation();
|
|
8416
|
-
},
|
|
8417
|
-
onClick: (event) => {
|
|
8418
|
-
event.preventDefault();
|
|
8419
|
-
event.stopPropagation();
|
|
8420
|
-
setInputValue("");
|
|
8421
|
-
requestAnimationFrame(() => {
|
|
8422
|
-
var _a;
|
|
8423
|
-
(_a = inputRef.current) == null ? void 0 : _a.focus({ preventScroll: true });
|
|
8424
|
-
});
|
|
8425
|
-
},
|
|
8426
|
-
className: "inline-flex h-6 w-6 shrink-0 items-center justify-center rounded-md text-muted-foreground transition hover:bg-muted hover:text-foreground",
|
|
8427
|
-
children: /* @__PURE__ */ jsx38(Cross2Icon2, { "aria-hidden": "true", className: "h-3.5 w-3.5" })
|
|
8428
|
-
}
|
|
8429
|
-
) : null,
|
|
8430
|
-
/* @__PURE__ */ jsx38(
|
|
8431
|
-
CaretSortIcon2,
|
|
8432
|
-
{
|
|
8433
|
-
"aria-hidden": "true",
|
|
8434
|
-
className: cn(
|
|
8435
|
-
"h-4 w-4 shrink-0 opacity-50 transition-transform",
|
|
8436
|
-
open && "rotate-180"
|
|
8437
|
-
)
|
|
8438
|
-
}
|
|
8439
|
-
)
|
|
8440
|
-
]
|
|
8441
|
-
}
|
|
8442
|
-
),
|
|
8443
|
-
/* @__PURE__ */ jsx38(
|
|
8444
|
-
"div",
|
|
8445
|
-
{
|
|
8446
|
-
className: cn(
|
|
8447
|
-
"absolute left-0 top-full z-50 mt-1 w-full overflow-hidden rounded-xl border border-border bg-popover text-popover-foreground shadow-xl transition",
|
|
8448
|
-
!open && "pointer-events-none invisible opacity-0",
|
|
8449
|
-
open && "visible opacity-100",
|
|
8450
|
-
contentClassName
|
|
8451
|
-
),
|
|
8452
|
-
children: /* @__PURE__ */ jsx38(
|
|
8453
|
-
"div",
|
|
8454
|
-
{
|
|
8455
|
-
id: listboxId,
|
|
8456
|
-
role: "listbox",
|
|
8457
|
-
className: "max-h-72 overflow-y-auto overscroll-contain p-1 [scrollbar-gutter:stable]",
|
|
8458
|
-
onWheelCapture: (event) => {
|
|
8459
|
-
event.stopPropagation();
|
|
8460
|
-
},
|
|
8461
|
-
onTouchMoveCapture: (event) => {
|
|
8462
|
-
event.stopPropagation();
|
|
8463
|
-
},
|
|
8464
|
-
children: filteredItems.length === 0 ? /* @__PURE__ */ jsx38("div", { className: "px-3 py-6 text-center text-sm text-muted-foreground", children: emptyText }) : filteredItems.map((item, index) => {
|
|
8465
|
-
const isSelected = item.value === currentValue;
|
|
8466
|
-
const isActive = index === activeIndex;
|
|
8467
|
-
return /* @__PURE__ */ jsxs22(
|
|
8468
|
-
"div",
|
|
8469
|
-
{
|
|
8470
|
-
id: `${listboxId}-option-${index}`,
|
|
8471
|
-
role: "option",
|
|
8472
|
-
"aria-selected": isSelected,
|
|
8473
|
-
"aria-disabled": item.disabled,
|
|
8474
|
-
tabIndex: -1,
|
|
8475
|
-
onMouseMove: () => {
|
|
8476
|
-
if (!item.disabled) {
|
|
8477
|
-
setActiveIndex(index);
|
|
8478
|
-
}
|
|
8479
|
-
},
|
|
8480
|
-
onPointerDown: (event) => {
|
|
8481
|
-
event.preventDefault();
|
|
8482
|
-
event.stopPropagation();
|
|
8483
|
-
if (!item.disabled) {
|
|
8484
|
-
selectItem(item);
|
|
8485
|
-
}
|
|
8486
|
-
},
|
|
8487
|
-
className: cn(
|
|
8488
|
-
"relative flex w-full select-none items-center gap-2 rounded-lg px-3 py-2 text-left text-sm outline-none transition",
|
|
8489
|
-
item.disabled ? "pointer-events-none opacity-50" : "cursor-pointer",
|
|
8490
|
-
isActive && !item.disabled && "bg-accent text-accent-foreground",
|
|
8491
|
-
!isActive && !item.disabled && "hover:bg-accent/70 hover:text-accent-foreground",
|
|
8492
|
-
isSelected && "font-medium",
|
|
8493
|
-
itemClassName
|
|
8494
|
-
),
|
|
8495
|
-
children: [
|
|
8496
|
-
/* @__PURE__ */ jsx38("span", { className: "min-w-0 flex-1 truncate", children: item.label }),
|
|
8497
|
-
isSelected ? /* @__PURE__ */ jsx38(
|
|
8498
|
-
CheckIcon7,
|
|
8499
|
-
{
|
|
8500
|
-
"aria-hidden": "true",
|
|
8501
|
-
className: "h-4 w-4 shrink-0 text-primary"
|
|
8502
|
-
}
|
|
8503
|
-
) : null
|
|
8504
|
-
]
|
|
8505
|
-
},
|
|
8506
|
-
item.value
|
|
8507
|
-
);
|
|
8508
|
-
})
|
|
8509
|
-
}
|
|
8510
|
-
)
|
|
8511
|
-
}
|
|
8512
|
-
)
|
|
8513
|
-
] });
|
|
8514
|
-
}
|
|
8515
|
-
var SearchableSelect = React59.memo(
|
|
8516
|
-
SearchableSelectBase
|
|
9134
|
+
onFocus: (event) => {
|
|
9135
|
+
event.stopPropagation();
|
|
9136
|
+
onFocus == null ? void 0 : onFocus(event);
|
|
9137
|
+
}
|
|
9138
|
+
}, props)
|
|
9139
|
+
);
|
|
9140
|
+
}
|
|
8517
9141
|
);
|
|
9142
|
+
SearchInput.displayName = "SearchInput";
|
|
8518
9143
|
|
|
8519
9144
|
// src/components/separator.tsx
|
|
8520
9145
|
import * as SeparatorPrimitive from "@radix-ui/react-separator";
|
|
8521
|
-
import * as
|
|
9146
|
+
import * as React59 from "react";
|
|
8522
9147
|
import { jsx as jsx39 } from "react/jsx-runtime";
|
|
8523
|
-
var
|
|
9148
|
+
var Separator5 = React59.forwardRef(
|
|
8524
9149
|
(_a, ref) => {
|
|
8525
9150
|
var _b = _a, { className, orientation = "horizontal", decorative = true } = _b, props = __objRest(_b, ["className", "orientation", "decorative"]);
|
|
8526
9151
|
return /* @__PURE__ */ jsx39(
|
|
@@ -8538,19 +9163,19 @@ var Separator6 = React60.forwardRef(
|
|
|
8538
9163
|
);
|
|
8539
9164
|
}
|
|
8540
9165
|
);
|
|
8541
|
-
|
|
9166
|
+
Separator5.displayName = SeparatorPrimitive.Root.displayName;
|
|
8542
9167
|
|
|
8543
9168
|
// src/components/sheet.tsx
|
|
8544
9169
|
import * as SheetPrimitive from "@radix-ui/react-dialog";
|
|
8545
9170
|
import { Cross2Icon as Cross2Icon3 } from "@radix-ui/react-icons";
|
|
8546
9171
|
import { cva as cva7 } from "class-variance-authority";
|
|
8547
|
-
import * as
|
|
9172
|
+
import * as React60 from "react";
|
|
8548
9173
|
import { jsx as jsx40, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
8549
9174
|
var Sheet = SheetPrimitive.Root;
|
|
8550
9175
|
var SheetTrigger = SheetPrimitive.Trigger;
|
|
8551
9176
|
var SheetClose = SheetPrimitive.Close;
|
|
8552
9177
|
var SheetPortal = SheetPrimitive.Portal;
|
|
8553
|
-
var SheetOverlay =
|
|
9178
|
+
var SheetOverlay = React60.forwardRef((_a, ref) => {
|
|
8554
9179
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
8555
9180
|
return /* @__PURE__ */ jsx40(
|
|
8556
9181
|
SheetPrimitive.Overlay,
|
|
@@ -8581,7 +9206,7 @@ var sheetVariants = cva7(
|
|
|
8581
9206
|
}
|
|
8582
9207
|
}
|
|
8583
9208
|
);
|
|
8584
|
-
var SheetContent =
|
|
9209
|
+
var SheetContent = React60.forwardRef((_a, ref) => {
|
|
8585
9210
|
var _b = _a, { side = "right", className, children } = _b, props = __objRest(_b, ["side", "className", "children"]);
|
|
8586
9211
|
return /* @__PURE__ */ jsxs23(SheetPortal, { children: [
|
|
8587
9212
|
/* @__PURE__ */ jsx40(SheetOverlay, {}),
|
|
@@ -8637,7 +9262,7 @@ var SheetFooter = (_a) => {
|
|
|
8637
9262
|
);
|
|
8638
9263
|
};
|
|
8639
9264
|
SheetFooter.displayName = "SheetFooter";
|
|
8640
|
-
var SheetTitle =
|
|
9265
|
+
var SheetTitle = React60.forwardRef((_a, ref) => {
|
|
8641
9266
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
8642
9267
|
return /* @__PURE__ */ jsx40(
|
|
8643
9268
|
SheetPrimitive.Title,
|
|
@@ -8648,7 +9273,7 @@ var SheetTitle = React61.forwardRef((_a, ref) => {
|
|
|
8648
9273
|
);
|
|
8649
9274
|
});
|
|
8650
9275
|
SheetTitle.displayName = SheetPrimitive.Title.displayName;
|
|
8651
|
-
var SheetDescription =
|
|
9276
|
+
var SheetDescription = React60.forwardRef((_a, ref) => {
|
|
8652
9277
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
8653
9278
|
return /* @__PURE__ */ jsx40(
|
|
8654
9279
|
SheetPrimitive.Description,
|
|
@@ -8678,9 +9303,9 @@ function Skeleton(_a) {
|
|
|
8678
9303
|
|
|
8679
9304
|
// src/components/slider.tsx
|
|
8680
9305
|
import * as SliderPrimitive from "@radix-ui/react-slider";
|
|
8681
|
-
import * as
|
|
9306
|
+
import * as React61 from "react";
|
|
8682
9307
|
import { jsx as jsx42, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
8683
|
-
var Slider =
|
|
9308
|
+
var Slider = React61.forwardRef((_a, ref) => {
|
|
8684
9309
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
8685
9310
|
return /* @__PURE__ */ jsxs24(
|
|
8686
9311
|
SliderPrimitive.Root,
|
|
@@ -8726,9 +9351,9 @@ var ToasterSonner = (_a) => {
|
|
|
8726
9351
|
|
|
8727
9352
|
// src/components/switch.tsx
|
|
8728
9353
|
import * as SwitchPrimitives from "@radix-ui/react-switch";
|
|
8729
|
-
import * as
|
|
9354
|
+
import * as React62 from "react";
|
|
8730
9355
|
import { jsx as jsx44 } from "react/jsx-runtime";
|
|
8731
|
-
var Switch =
|
|
9356
|
+
var Switch = React62.forwardRef((_a, ref) => {
|
|
8732
9357
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
8733
9358
|
return /* @__PURE__ */ jsx44(
|
|
8734
9359
|
SwitchPrimitives.Root,
|
|
@@ -8753,9 +9378,9 @@ var Switch = React63.forwardRef((_a, ref) => {
|
|
|
8753
9378
|
Switch.displayName = SwitchPrimitives.Root.displayName;
|
|
8754
9379
|
|
|
8755
9380
|
// src/components/table.tsx
|
|
8756
|
-
import * as
|
|
9381
|
+
import * as React63 from "react";
|
|
8757
9382
|
import { jsx as jsx45 } from "react/jsx-runtime";
|
|
8758
|
-
var Table =
|
|
9383
|
+
var Table = React63.forwardRef(
|
|
8759
9384
|
(_a, ref) => {
|
|
8760
9385
|
var _b = _a, { className, containerClassName } = _b, props = __objRest(_b, ["className", "containerClassName"]);
|
|
8761
9386
|
return /* @__PURE__ */ jsx45("div", { className: cn("relative w-full overflow-visible", containerClassName), children: /* @__PURE__ */ jsx45(
|
|
@@ -8768,12 +9393,12 @@ var Table = React64.forwardRef(
|
|
|
8768
9393
|
}
|
|
8769
9394
|
);
|
|
8770
9395
|
Table.displayName = "Table";
|
|
8771
|
-
var TableHeader =
|
|
9396
|
+
var TableHeader = React63.forwardRef((_a, ref) => {
|
|
8772
9397
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
8773
9398
|
return /* @__PURE__ */ jsx45("thead", __spreadValues({ ref, className: cn("[&_tr]:border-b", className) }, props));
|
|
8774
9399
|
});
|
|
8775
9400
|
TableHeader.displayName = "TableHeader";
|
|
8776
|
-
var TableBody =
|
|
9401
|
+
var TableBody = React63.forwardRef((_a, ref) => {
|
|
8777
9402
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
8778
9403
|
return /* @__PURE__ */ jsx45(
|
|
8779
9404
|
"tbody",
|
|
@@ -8784,7 +9409,7 @@ var TableBody = React64.forwardRef((_a, ref) => {
|
|
|
8784
9409
|
);
|
|
8785
9410
|
});
|
|
8786
9411
|
TableBody.displayName = "TableBody";
|
|
8787
|
-
var TableFooter =
|
|
9412
|
+
var TableFooter = React63.forwardRef((_a, ref) => {
|
|
8788
9413
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
8789
9414
|
return /* @__PURE__ */ jsx45(
|
|
8790
9415
|
"tfoot",
|
|
@@ -8798,7 +9423,7 @@ var TableFooter = React64.forwardRef((_a, ref) => {
|
|
|
8798
9423
|
);
|
|
8799
9424
|
});
|
|
8800
9425
|
TableFooter.displayName = "TableFooter";
|
|
8801
|
-
var TableRow =
|
|
9426
|
+
var TableRow = React63.forwardRef((_a, ref) => {
|
|
8802
9427
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
8803
9428
|
return /* @__PURE__ */ jsx45(
|
|
8804
9429
|
"tr",
|
|
@@ -8812,7 +9437,7 @@ var TableRow = React64.forwardRef((_a, ref) => {
|
|
|
8812
9437
|
);
|
|
8813
9438
|
});
|
|
8814
9439
|
TableRow.displayName = "TableRow";
|
|
8815
|
-
var TableHead =
|
|
9440
|
+
var TableHead = React63.forwardRef((_a, ref) => {
|
|
8816
9441
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
8817
9442
|
return /* @__PURE__ */ jsx45(
|
|
8818
9443
|
"th",
|
|
@@ -8826,7 +9451,7 @@ var TableHead = React64.forwardRef((_a, ref) => {
|
|
|
8826
9451
|
);
|
|
8827
9452
|
});
|
|
8828
9453
|
TableHead.displayName = "TableHead";
|
|
8829
|
-
var TableCell =
|
|
9454
|
+
var TableCell = React63.forwardRef((_a, ref) => {
|
|
8830
9455
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
8831
9456
|
return /* @__PURE__ */ jsx45(
|
|
8832
9457
|
"td",
|
|
@@ -8840,7 +9465,7 @@ var TableCell = React64.forwardRef((_a, ref) => {
|
|
|
8840
9465
|
);
|
|
8841
9466
|
});
|
|
8842
9467
|
TableCell.displayName = "TableCell";
|
|
8843
|
-
var TableCaption =
|
|
9468
|
+
var TableCaption = React63.forwardRef((_a, ref) => {
|
|
8844
9469
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
8845
9470
|
return /* @__PURE__ */ jsx45(
|
|
8846
9471
|
"caption",
|
|
@@ -8854,10 +9479,10 @@ TableCaption.displayName = "TableCaption";
|
|
|
8854
9479
|
|
|
8855
9480
|
// src/components/tabs.tsx
|
|
8856
9481
|
import * as TabsPrimitive from "@radix-ui/react-tabs";
|
|
8857
|
-
import * as
|
|
9482
|
+
import * as React64 from "react";
|
|
8858
9483
|
import { jsx as jsx46 } from "react/jsx-runtime";
|
|
8859
9484
|
var Tabs = TabsPrimitive.Root;
|
|
8860
|
-
var TabsList =
|
|
9485
|
+
var TabsList = React64.forwardRef((_a, ref) => {
|
|
8861
9486
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
8862
9487
|
return /* @__PURE__ */ jsx46(
|
|
8863
9488
|
TabsPrimitive.List,
|
|
@@ -8871,7 +9496,7 @@ var TabsList = React65.forwardRef((_a, ref) => {
|
|
|
8871
9496
|
);
|
|
8872
9497
|
});
|
|
8873
9498
|
TabsList.displayName = TabsPrimitive.List.displayName;
|
|
8874
|
-
var TabsTrigger =
|
|
9499
|
+
var TabsTrigger = React64.forwardRef((_a, ref) => {
|
|
8875
9500
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
8876
9501
|
return /* @__PURE__ */ jsx46(
|
|
8877
9502
|
TabsPrimitive.Trigger,
|
|
@@ -8885,7 +9510,7 @@ var TabsTrigger = React65.forwardRef((_a, ref) => {
|
|
|
8885
9510
|
);
|
|
8886
9511
|
});
|
|
8887
9512
|
TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
|
|
8888
|
-
var TabsContent =
|
|
9513
|
+
var TabsContent = React64.forwardRef((_a, ref) => {
|
|
8889
9514
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
8890
9515
|
return /* @__PURE__ */ jsx46(
|
|
8891
9516
|
TabsPrimitive.Content,
|
|
@@ -8901,9 +9526,9 @@ var TabsContent = React65.forwardRef((_a, ref) => {
|
|
|
8901
9526
|
TabsContent.displayName = TabsPrimitive.Content.displayName;
|
|
8902
9527
|
|
|
8903
9528
|
// src/components/textarea.tsx
|
|
8904
|
-
import * as
|
|
9529
|
+
import * as React65 from "react";
|
|
8905
9530
|
import { jsx as jsx47 } from "react/jsx-runtime";
|
|
8906
|
-
var Textarea =
|
|
9531
|
+
var Textarea = React65.forwardRef(
|
|
8907
9532
|
(_a, ref) => {
|
|
8908
9533
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
8909
9534
|
return /* @__PURE__ */ jsx47(
|
|
@@ -8924,10 +9549,10 @@ Textarea.displayName = "Textarea";
|
|
|
8924
9549
|
import { Cross2Icon as Cross2Icon4 } from "@radix-ui/react-icons";
|
|
8925
9550
|
import * as ToastPrimitives from "@radix-ui/react-toast";
|
|
8926
9551
|
import { cva as cva8 } from "class-variance-authority";
|
|
8927
|
-
import * as
|
|
9552
|
+
import * as React66 from "react";
|
|
8928
9553
|
import { jsx as jsx48 } from "react/jsx-runtime";
|
|
8929
9554
|
var ToastProvider = ToastPrimitives.Provider;
|
|
8930
|
-
var ToastViewport =
|
|
9555
|
+
var ToastViewport = React66.forwardRef((_a, ref) => {
|
|
8931
9556
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
8932
9557
|
return /* @__PURE__ */ jsx48(
|
|
8933
9558
|
ToastPrimitives.Viewport,
|
|
@@ -8955,7 +9580,7 @@ var toastVariants = cva8(
|
|
|
8955
9580
|
}
|
|
8956
9581
|
}
|
|
8957
9582
|
);
|
|
8958
|
-
var Toast =
|
|
9583
|
+
var Toast = React66.forwardRef((_a, ref) => {
|
|
8959
9584
|
var _b = _a, { className, variant } = _b, props = __objRest(_b, ["className", "variant"]);
|
|
8960
9585
|
return /* @__PURE__ */ jsx48(
|
|
8961
9586
|
ToastPrimitives.Root,
|
|
@@ -8966,7 +9591,7 @@ var Toast = React67.forwardRef((_a, ref) => {
|
|
|
8966
9591
|
);
|
|
8967
9592
|
});
|
|
8968
9593
|
Toast.displayName = ToastPrimitives.Root.displayName;
|
|
8969
|
-
var ToastAction =
|
|
9594
|
+
var ToastAction = React66.forwardRef((_a, ref) => {
|
|
8970
9595
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
8971
9596
|
return /* @__PURE__ */ jsx48(
|
|
8972
9597
|
ToastPrimitives.Action,
|
|
@@ -8980,7 +9605,7 @@ var ToastAction = React67.forwardRef((_a, ref) => {
|
|
|
8980
9605
|
);
|
|
8981
9606
|
});
|
|
8982
9607
|
ToastAction.displayName = ToastPrimitives.Action.displayName;
|
|
8983
|
-
var ToastClose =
|
|
9608
|
+
var ToastClose = React66.forwardRef((_a, ref) => {
|
|
8984
9609
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
8985
9610
|
return /* @__PURE__ */ jsx48(
|
|
8986
9611
|
ToastPrimitives.Close,
|
|
@@ -8997,7 +9622,7 @@ var ToastClose = React67.forwardRef((_a, ref) => {
|
|
|
8997
9622
|
);
|
|
8998
9623
|
});
|
|
8999
9624
|
ToastClose.displayName = ToastPrimitives.Close.displayName;
|
|
9000
|
-
var ToastTitle =
|
|
9625
|
+
var ToastTitle = React66.forwardRef((_a, ref) => {
|
|
9001
9626
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
9002
9627
|
return /* @__PURE__ */ jsx48(
|
|
9003
9628
|
ToastPrimitives.Title,
|
|
@@ -9008,7 +9633,7 @@ var ToastTitle = React67.forwardRef((_a, ref) => {
|
|
|
9008
9633
|
);
|
|
9009
9634
|
});
|
|
9010
9635
|
ToastTitle.displayName = ToastPrimitives.Title.displayName;
|
|
9011
|
-
var ToastDescription =
|
|
9636
|
+
var ToastDescription = React66.forwardRef((_a, ref) => {
|
|
9012
9637
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
9013
9638
|
return /* @__PURE__ */ jsx48(
|
|
9014
9639
|
ToastPrimitives.Description,
|
|
@@ -9021,7 +9646,7 @@ var ToastDescription = React67.forwardRef((_a, ref) => {
|
|
|
9021
9646
|
ToastDescription.displayName = ToastPrimitives.Description.displayName;
|
|
9022
9647
|
|
|
9023
9648
|
// src/components/use-toast.ts
|
|
9024
|
-
import * as
|
|
9649
|
+
import * as React67 from "react";
|
|
9025
9650
|
var TOAST_LIMIT = 1;
|
|
9026
9651
|
var TOAST_REMOVE_DELAY = 1e6;
|
|
9027
9652
|
var count = 0;
|
|
@@ -9116,8 +9741,8 @@ function toast(_a) {
|
|
|
9116
9741
|
};
|
|
9117
9742
|
}
|
|
9118
9743
|
function useToast() {
|
|
9119
|
-
const [state, setState] =
|
|
9120
|
-
|
|
9744
|
+
const [state, setState] = React67.useState(memoryState);
|
|
9745
|
+
React67.useEffect(() => {
|
|
9121
9746
|
listeners.push(setState);
|
|
9122
9747
|
return () => {
|
|
9123
9748
|
const index = listeners.indexOf(setState);
|
|
@@ -9155,7 +9780,7 @@ function Toaster() {
|
|
|
9155
9780
|
// src/components/toggle.tsx
|
|
9156
9781
|
import * as TogglePrimitive from "@radix-ui/react-toggle";
|
|
9157
9782
|
import { cva as cva9 } from "class-variance-authority";
|
|
9158
|
-
import * as
|
|
9783
|
+
import * as React68 from "react";
|
|
9159
9784
|
import { jsx as jsx50 } from "react/jsx-runtime";
|
|
9160
9785
|
var toggleVariants = cva9(
|
|
9161
9786
|
"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground",
|
|
@@ -9177,7 +9802,7 @@ var toggleVariants = cva9(
|
|
|
9177
9802
|
}
|
|
9178
9803
|
}
|
|
9179
9804
|
);
|
|
9180
|
-
var Toggle =
|
|
9805
|
+
var Toggle = React68.forwardRef((_a, ref) => {
|
|
9181
9806
|
var _b = _a, { className, variant, size } = _b, props = __objRest(_b, ["className", "variant", "size"]);
|
|
9182
9807
|
return /* @__PURE__ */ jsx50(
|
|
9183
9808
|
TogglePrimitive.Root,
|
|
@@ -9191,13 +9816,13 @@ Toggle.displayName = TogglePrimitive.Root.displayName;
|
|
|
9191
9816
|
|
|
9192
9817
|
// src/components/toggle-group.tsx
|
|
9193
9818
|
import * as ToggleGroupPrimitive from "@radix-ui/react-toggle-group";
|
|
9194
|
-
import * as
|
|
9819
|
+
import * as React69 from "react";
|
|
9195
9820
|
import { jsx as jsx51 } from "react/jsx-runtime";
|
|
9196
|
-
var ToggleGroupContext =
|
|
9821
|
+
var ToggleGroupContext = React69.createContext({
|
|
9197
9822
|
size: "default",
|
|
9198
9823
|
variant: "default"
|
|
9199
9824
|
});
|
|
9200
|
-
var ToggleGroup =
|
|
9825
|
+
var ToggleGroup = React69.forwardRef((_a, ref) => {
|
|
9201
9826
|
var _b = _a, { className, variant, size, children } = _b, props = __objRest(_b, ["className", "variant", "size", "children"]);
|
|
9202
9827
|
return /* @__PURE__ */ jsx51(
|
|
9203
9828
|
ToggleGroupPrimitive.Root,
|
|
@@ -9210,9 +9835,9 @@ var ToggleGroup = React70.forwardRef((_a, ref) => {
|
|
|
9210
9835
|
);
|
|
9211
9836
|
});
|
|
9212
9837
|
ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;
|
|
9213
|
-
var ToggleGroupItem =
|
|
9838
|
+
var ToggleGroupItem = React69.forwardRef((_a, ref) => {
|
|
9214
9839
|
var _b = _a, { className, children, variant, size } = _b, props = __objRest(_b, ["className", "children", "variant", "size"]);
|
|
9215
|
-
const context =
|
|
9840
|
+
const context = React69.useContext(ToggleGroupContext);
|
|
9216
9841
|
return /* @__PURE__ */ jsx51(
|
|
9217
9842
|
ToggleGroupPrimitive.Item,
|
|
9218
9843
|
__spreadProps(__spreadValues({
|
|
@@ -9233,12 +9858,12 @@ ToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName;
|
|
|
9233
9858
|
|
|
9234
9859
|
// src/components/tooltip.tsx
|
|
9235
9860
|
import * as TooltipPrimitive from "@radix-ui/react-tooltip";
|
|
9236
|
-
import * as
|
|
9861
|
+
import * as React70 from "react";
|
|
9237
9862
|
import { jsx as jsx52 } from "react/jsx-runtime";
|
|
9238
9863
|
var TooltipProvider = TooltipPrimitive.Provider;
|
|
9239
9864
|
var Tooltip = TooltipPrimitive.Root;
|
|
9240
9865
|
var TooltipTrigger = TooltipPrimitive.Trigger;
|
|
9241
|
-
var TooltipContent =
|
|
9866
|
+
var TooltipContent = React70.forwardRef((_a, ref) => {
|
|
9242
9867
|
var _b = _a, { className, sideOffset = 4 } = _b, props = __objRest(_b, ["className", "sideOffset"]);
|
|
9243
9868
|
return /* @__PURE__ */ jsx52(
|
|
9244
9869
|
TooltipPrimitive.Content,
|
|
@@ -9255,10 +9880,10 @@ var TooltipContent = React71.forwardRef((_a, ref) => {
|
|
|
9255
9880
|
TooltipContent.displayName = TooltipPrimitive.Content.displayName;
|
|
9256
9881
|
|
|
9257
9882
|
// src/components/ui/input.tsx
|
|
9258
|
-
import * as
|
|
9883
|
+
import * as React71 from "react";
|
|
9259
9884
|
import { Asterisk as Asterisk4 } from "lucide-react";
|
|
9260
9885
|
import { jsx as jsx53, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
9261
|
-
var UiInput =
|
|
9886
|
+
var UiInput = React71.forwardRef(
|
|
9262
9887
|
(_a, ref) => {
|
|
9263
9888
|
var _b = _a, {
|
|
9264
9889
|
label,
|
|
@@ -9283,7 +9908,7 @@ var UiInput = React72.forwardRef(
|
|
|
9283
9908
|
"invalid",
|
|
9284
9909
|
"className"
|
|
9285
9910
|
]);
|
|
9286
|
-
const generatedId =
|
|
9911
|
+
const generatedId = React71.useId();
|
|
9287
9912
|
const inputId = htmlFormItemId != null ? htmlFormItemId : generatedId;
|
|
9288
9913
|
const messageId = `${inputId}-message`;
|
|
9289
9914
|
const hasError = Boolean(errorMessage || invalid);
|
|
@@ -9337,22 +9962,8 @@ var UiInput = React72.forwardRef(
|
|
|
9337
9962
|
UiInput.displayName = "UiInput";
|
|
9338
9963
|
|
|
9339
9964
|
// src/components/ui/select.tsx
|
|
9340
|
-
import * as
|
|
9965
|
+
import * as React72 from "react";
|
|
9341
9966
|
import { Asterisk as Asterisk5 } from "lucide-react";
|
|
9342
|
-
|
|
9343
|
-
// src/types/select.ts
|
|
9344
|
-
var selectVariants = {
|
|
9345
|
-
outline: "rounded-md border border-input bg-input backdrop-blur-sm shadow-sm hover:border-primary/60 focus:border-primary focus:ring-2 focus:ring-primary/20",
|
|
9346
|
-
soft: "rounded-md border border-transparent bg-muted/60 shadow-sm hover:bg-muted focus:bg-input/80 focus:ring-2 focus:ring-primary/20",
|
|
9347
|
-
ghost: "rounded-md border border-transparent bg-transparent hover:bg-muted/50 focus:ring-2 focus:ring-ring",
|
|
9348
|
-
filled: "rounded-md border border-input bg-muted/70 shadow-inner hover:bg-muted focus:bg-input/70 focus:ring-2 focus:ring-primary/20",
|
|
9349
|
-
flushed: "rounded-none border-0 border-b border-input px-0 shadow-none focus:border-b-2 focus:border-primary focus:ring-0",
|
|
9350
|
-
unstyled: "border-0 shadow-none focus:ring-0",
|
|
9351
|
-
link: "h-auto border-0 bg-transparent p-0 text-primary shadow-none underline-offset-4 focus:underline focus:ring-0"
|
|
9352
|
-
};
|
|
9353
|
-
var variants2 = selectVariants;
|
|
9354
|
-
|
|
9355
|
-
// src/components/ui/select.tsx
|
|
9356
9967
|
import { jsx as jsx54, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
9357
9968
|
function UiSelect({
|
|
9358
9969
|
label,
|
|
@@ -9372,33 +9983,28 @@ function UiSelect({
|
|
|
9372
9983
|
messageClassName,
|
|
9373
9984
|
requiredLabelClassName,
|
|
9374
9985
|
size = "md",
|
|
9986
|
+
customSize,
|
|
9375
9987
|
variant = "outline",
|
|
9988
|
+
classNameDefault = true,
|
|
9376
9989
|
errorMessage,
|
|
9377
|
-
htmlFormItemId
|
|
9990
|
+
htmlFormItemId,
|
|
9991
|
+
position
|
|
9378
9992
|
}) {
|
|
9379
|
-
const generatedId =
|
|
9993
|
+
const generatedId = React72.useId();
|
|
9380
9994
|
const triggerId = htmlFormItemId != null ? htmlFormItemId : generatedId;
|
|
9381
9995
|
const messageId = `${triggerId}-message`;
|
|
9382
9996
|
const hasError = Boolean(errorMessage);
|
|
9383
|
-
const
|
|
9384
|
-
const
|
|
9385
|
-
|
|
9386
|
-
|
|
9387
|
-
|
|
9388
|
-
};
|
|
9389
|
-
const itemSize = {
|
|
9390
|
-
sm: "h-8 text-sm",
|
|
9391
|
-
md: "h-9 text-sm",
|
|
9392
|
-
lg: "h-10 text-base"
|
|
9393
|
-
};
|
|
9394
|
-
const specialFlushed = variant === "flushed" ? size === "sm" ? "h-9 text-sm" : size === "lg" ? "h-11 text-base" : "h-10 text-sm" : "";
|
|
9395
|
-
const specialLink = variant === "link" ? "text-sm" : "";
|
|
9396
|
-
return /* @__PURE__ */ jsxs27("div", { className: cn("w-full space-y-1.5", selectClassName), children: [
|
|
9997
|
+
const sizeClasses = getFormSizeClasses(size, customSize);
|
|
9998
|
+
const triggerSizeClass = getFormControlSizeClass(variant, sizeClasses);
|
|
9999
|
+
const contentBase = "z-50 rounded-xl border border-border bg-popover text-popover-foreground shadow-xl outline-none";
|
|
10000
|
+
const contentViewport = "[&_[data-radix-select-viewport]]:max-h-72 [&_[data-radix-select-viewport]]:overflow-y-auto [&_[data-radix-select-viewport]]:overscroll-contain [&_[data-radix-select-viewport]]:[scrollbar-gutter:stable]";
|
|
10001
|
+
return /* @__PURE__ */ jsxs27("div", { className: cn("w-full space-y-2", selectClassName), children: [
|
|
9397
10002
|
label ? /* @__PURE__ */ jsxs27(
|
|
9398
10003
|
Label3,
|
|
9399
10004
|
{
|
|
9400
10005
|
className: cn(
|
|
9401
|
-
"inline-flex items-start gap-0.5
|
|
10006
|
+
"inline-flex items-start gap-0.5 font-medium",
|
|
10007
|
+
sizeClasses.label,
|
|
9402
10008
|
hasError && "text-destructive",
|
|
9403
10009
|
labelClassName
|
|
9404
10010
|
),
|
|
@@ -9410,7 +10016,7 @@ function UiSelect({
|
|
|
9410
10016
|
{
|
|
9411
10017
|
"aria-hidden": "true",
|
|
9412
10018
|
className: cn(
|
|
9413
|
-
"
|
|
10019
|
+
"h-3 w-3 shrink-0 text-red-500",
|
|
9414
10020
|
requiredLabelClassName
|
|
9415
10021
|
)
|
|
9416
10022
|
}
|
|
@@ -9432,26 +10038,45 @@ function UiSelect({
|
|
|
9432
10038
|
id: triggerId,
|
|
9433
10039
|
"aria-invalid": hasError || void 0,
|
|
9434
10040
|
"aria-describedby": errorMessage ? messageId : void 0,
|
|
9435
|
-
className: cn(
|
|
9436
|
-
|
|
9437
|
-
|
|
9438
|
-
|
|
9439
|
-
hasError &&
|
|
10041
|
+
className: classNameDefault ? cn(
|
|
10042
|
+
formControlBase,
|
|
10043
|
+
formInputVariants[variant],
|
|
10044
|
+
triggerSizeClass,
|
|
10045
|
+
hasError && formControlErrorClass,
|
|
9440
10046
|
className
|
|
9441
|
-
),
|
|
10047
|
+
) : className,
|
|
9442
10048
|
children: /* @__PURE__ */ jsx54(SelectValue, { placeholder })
|
|
9443
10049
|
}
|
|
9444
10050
|
),
|
|
9445
|
-
/* @__PURE__ */ jsx54(
|
|
9446
|
-
|
|
10051
|
+
/* @__PURE__ */ jsx54(
|
|
10052
|
+
SelectContent,
|
|
9447
10053
|
{
|
|
9448
|
-
|
|
9449
|
-
|
|
9450
|
-
className: cn(
|
|
9451
|
-
|
|
9452
|
-
|
|
9453
|
-
|
|
9454
|
-
|
|
10054
|
+
position,
|
|
10055
|
+
sideOffset: 6,
|
|
10056
|
+
className: cn(
|
|
10057
|
+
contentBase,
|
|
10058
|
+
contentViewport,
|
|
10059
|
+
"w-(--radix-select-trigger-width) min-w-(--radix-select-trigger-width) overflow-hidden!",
|
|
10060
|
+
contentClassName
|
|
10061
|
+
),
|
|
10062
|
+
onWheelCapture: (event) => {
|
|
10063
|
+
event.stopPropagation();
|
|
10064
|
+
},
|
|
10065
|
+
onTouchMoveCapture: (event) => {
|
|
10066
|
+
event.stopPropagation();
|
|
10067
|
+
},
|
|
10068
|
+
children: children != null ? children : items == null ? void 0 : items.map((item) => /* @__PURE__ */ jsx54(
|
|
10069
|
+
SelectItem,
|
|
10070
|
+
{
|
|
10071
|
+
value: item.value,
|
|
10072
|
+
disabled: item.disabled,
|
|
10073
|
+
className: cn(sizeClasses.selectItem, itemClassName),
|
|
10074
|
+
children: item.label
|
|
10075
|
+
},
|
|
10076
|
+
item.value
|
|
10077
|
+
))
|
|
10078
|
+
}
|
|
10079
|
+
)
|
|
9455
10080
|
]
|
|
9456
10081
|
}
|
|
9457
10082
|
),
|
|
@@ -9459,7 +10084,11 @@ function UiSelect({
|
|
|
9459
10084
|
"p",
|
|
9460
10085
|
{
|
|
9461
10086
|
id: messageId,
|
|
9462
|
-
className: cn(
|
|
10087
|
+
className: cn(
|
|
10088
|
+
"font-medium text-destructive",
|
|
10089
|
+
sizeClasses.message,
|
|
10090
|
+
messageClassName
|
|
10091
|
+
),
|
|
9463
10092
|
children: errorMessage
|
|
9464
10093
|
}
|
|
9465
10094
|
) : null
|
|
@@ -9467,10 +10096,10 @@ function UiSelect({
|
|
|
9467
10096
|
}
|
|
9468
10097
|
|
|
9469
10098
|
// src/components/ui/ui-checkbox.tsx
|
|
9470
|
-
import * as
|
|
10099
|
+
import * as React73 from "react";
|
|
9471
10100
|
import { Asterisk as Asterisk6 } from "lucide-react";
|
|
9472
10101
|
import { jsx as jsx55, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
9473
|
-
var UiCheckbox =
|
|
10102
|
+
var UiCheckbox = React73.forwardRef(
|
|
9474
10103
|
(_a, ref) => {
|
|
9475
10104
|
var _b = _a, {
|
|
9476
10105
|
label,
|
|
@@ -9575,18 +10204,18 @@ var UiCheckbox = React74.forwardRef(
|
|
|
9575
10204
|
UiCheckbox.displayName = "UiCheckbox";
|
|
9576
10205
|
|
|
9577
10206
|
// src/hooks/use-sidebar.tsx
|
|
9578
|
-
import { createContext as
|
|
10207
|
+
import { createContext as createContext6, useContext as useContext7, useState as useState8 } from "react";
|
|
9579
10208
|
import { jsx as jsx56 } from "react/jsx-runtime";
|
|
9580
|
-
var SidebarContext =
|
|
10209
|
+
var SidebarContext = createContext6({
|
|
9581
10210
|
isMinimized: false,
|
|
9582
10211
|
toggle: () => {
|
|
9583
10212
|
}
|
|
9584
10213
|
});
|
|
9585
|
-
var useSidebar = () =>
|
|
10214
|
+
var useSidebar = () => useContext7(SidebarContext);
|
|
9586
10215
|
var SidebarProvider = ({
|
|
9587
10216
|
children
|
|
9588
10217
|
}) => {
|
|
9589
|
-
const [isMinimized, setIsMinimized] =
|
|
10218
|
+
const [isMinimized, setIsMinimized] = useState8(false);
|
|
9590
10219
|
const toggle = () => {
|
|
9591
10220
|
setIsMinimized(!isMinimized);
|
|
9592
10221
|
};
|
|
@@ -9653,7 +10282,7 @@ function Breadcrumbs({
|
|
|
9653
10282
|
}
|
|
9654
10283
|
|
|
9655
10284
|
// src/shared/data-table.tsx
|
|
9656
|
-
import { useMemo as
|
|
10285
|
+
import { useMemo as useMemo6 } from "react";
|
|
9657
10286
|
import { AnimatePresence, motion } from "framer-motion";
|
|
9658
10287
|
import {
|
|
9659
10288
|
DoubleArrowLeftIcon,
|
|
@@ -9903,7 +10532,7 @@ function DataTable({
|
|
|
9903
10532
|
const safePageCount = Math.max(pageCount != null ? pageCount : 1, 1);
|
|
9904
10533
|
const pageIndex = Math.min(Math.max(page - 1, 0), safePageCount - 1);
|
|
9905
10534
|
const pageSize = Math.max(perPage, 1);
|
|
9906
|
-
const paginationState =
|
|
10535
|
+
const paginationState = useMemo6(
|
|
9907
10536
|
() => ({ pageIndex, pageSize }),
|
|
9908
10537
|
[pageIndex, pageSize]
|
|
9909
10538
|
);
|
|
@@ -9920,7 +10549,7 @@ function DataTable({
|
|
|
9920
10549
|
autoResetPageIndex: false
|
|
9921
10550
|
});
|
|
9922
10551
|
const clickable = !!onClick;
|
|
9923
|
-
const pageKey =
|
|
10552
|
+
const pageKey = useMemo6(
|
|
9924
10553
|
() => `${pageIndex}-${pageSize}-${data.length}`,
|
|
9925
10554
|
[pageIndex, pageSize, data.length]
|
|
9926
10555
|
);
|
|
@@ -9935,7 +10564,7 @@ function DataTable({
|
|
|
9935
10564
|
onPageSizeChange == null ? void 0 : onPageSizeChange(size);
|
|
9936
10565
|
onPageChange == null ? void 0 : onPageChange(1);
|
|
9937
10566
|
};
|
|
9938
|
-
const ui =
|
|
10567
|
+
const ui = useMemo6(() => {
|
|
9939
10568
|
var _a;
|
|
9940
10569
|
const builtIn = (_a = DATA_TABLE_TEMPLATES[template]) != null ? _a : DATA_TABLE_TEMPLATES.neo;
|
|
9941
10570
|
return mergeSlots(DATA_TABLE_TEMPLATES.neo, builtIn, classNames);
|
|
@@ -10068,7 +10697,7 @@ function DataTable({
|
|
|
10068
10697
|
children: /* @__PURE__ */ jsx59(SelectValue, { placeholder: `${pageSize}` })
|
|
10069
10698
|
}
|
|
10070
10699
|
),
|
|
10071
|
-
/* @__PURE__ */ jsx59(SelectContent, {
|
|
10700
|
+
/* @__PURE__ */ jsx59(SelectContent, { children: pageSizeOptions.map((size) => /* @__PURE__ */ jsx59(SelectItem, { value: `${size}`, children: size }, size)) })
|
|
10072
10701
|
]
|
|
10073
10702
|
}
|
|
10074
10703
|
)
|
|
@@ -10239,7 +10868,7 @@ function Dropzone({
|
|
|
10239
10868
|
// src/shared/fileupload.tsx
|
|
10240
10869
|
import { AvatarIcon } from "@radix-ui/react-icons";
|
|
10241
10870
|
import { CameraIcon } from "lucide-react";
|
|
10242
|
-
import { useEffect as
|
|
10871
|
+
import { useEffect as useEffect7, useState as useState9 } from "react";
|
|
10243
10872
|
import { useDropzone as useDropzone2 } from "react-dropzone";
|
|
10244
10873
|
import { jsx as jsx62, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
10245
10874
|
function FileUpload({
|
|
@@ -10276,8 +10905,8 @@ function FileUpload({
|
|
|
10276
10905
|
) });
|
|
10277
10906
|
}
|
|
10278
10907
|
function ImagePreview({ file }) {
|
|
10279
|
-
const [objectUrl, setObjectUrl] =
|
|
10280
|
-
|
|
10908
|
+
const [objectUrl, setObjectUrl] = useState9(null);
|
|
10909
|
+
useEffect7(() => {
|
|
10281
10910
|
const url = URL.createObjectURL(file);
|
|
10282
10911
|
setObjectUrl(url);
|
|
10283
10912
|
return () => {
|
|
@@ -10592,12 +11221,10 @@ export {
|
|
|
10592
11221
|
SelectGroup,
|
|
10593
11222
|
SelectItem,
|
|
10594
11223
|
SelectLabel,
|
|
10595
|
-
SelectScrollDownButton,
|
|
10596
|
-
SelectScrollUpButton,
|
|
10597
11224
|
SelectSeparator,
|
|
10598
11225
|
SelectTrigger,
|
|
10599
11226
|
SelectValue,
|
|
10600
|
-
|
|
11227
|
+
Separator5 as Separator,
|
|
10601
11228
|
Sheet,
|
|
10602
11229
|
SheetClose,
|
|
10603
11230
|
SheetContent,
|
|
@@ -10648,9 +11275,18 @@ export {
|
|
|
10648
11275
|
badgeVariants,
|
|
10649
11276
|
buttonVariants,
|
|
10650
11277
|
cn,
|
|
11278
|
+
formCompositeControlBase,
|
|
11279
|
+
formCompositeControlErrorClass,
|
|
11280
|
+
formCompositeVariants,
|
|
11281
|
+
formControlBase,
|
|
11282
|
+
formControlErrorClass,
|
|
11283
|
+
formInputVariants,
|
|
11284
|
+
formSizeVariants,
|
|
10651
11285
|
getDefaultOptionLabel,
|
|
10652
11286
|
getDefaultOptionValue,
|
|
10653
11287
|
getErrorMessage,
|
|
11288
|
+
getFormControlSizeClass,
|
|
11289
|
+
getFormSizeClasses,
|
|
10654
11290
|
getNextEnabledIndex,
|
|
10655
11291
|
iconButtonVariants,
|
|
10656
11292
|
navigationMenuTriggerStyle,
|
|
@@ -10660,5 +11296,6 @@ export {
|
|
|
10660
11296
|
toggleVariants,
|
|
10661
11297
|
useFormField,
|
|
10662
11298
|
useSidebar,
|
|
10663
|
-
useToast
|
|
11299
|
+
useToast,
|
|
11300
|
+
variants
|
|
10664
11301
|
};
|