@g4rcez/components 0.0.19 → 0.0.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,11 +1,11 @@
1
1
  import { Locales } from "the-mask-input";
2
- type CalendarProps = {
2
+ export type CalendarProps = {
3
+ disabledDate?: (date: Date) => boolean;
3
4
  date?: Date;
4
5
  locale?: Locales;
5
6
  markToday?: boolean;
6
7
  autoFocusToday?: boolean;
7
8
  onChange?: (d: Date) => void;
8
9
  };
9
- export declare const Calendar: ({ locale, markToday, autoFocusToday, date, onChange }: CalendarProps) => import("react/jsx-runtime").JSX.Element;
10
- export {};
10
+ export declare const Calendar: ({ locale, disabledDate, markToday, autoFocusToday, date, onChange }: CalendarProps) => import("react/jsx-runtime").JSX.Element;
11
11
  //# sourceMappingURL=calendar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../../../src/components/display/calendar.tsx"],"names":[],"mappings":"AAsBA,OAAqB,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAmBvD,KAAK,aAAa,GAAG;IACjB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,IAAI,CAAC;CAChC,CAAC;AAmDF,eAAO,MAAM,QAAQ,0DAAyE,aAAa,4CA0L1G,CAAC"}
1
+ {"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../../../src/components/display/calendar.tsx"],"names":[],"mappings":"AAsBA,OAAqB,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAmBvD,MAAM,MAAM,aAAa,GAAG;IACxB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC;IACvC,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,IAAI,CAAC;CAChC,CAAC;AAmDF,eAAO,MAAM,QAAQ,wEAAuF,aAAa,4CAmMxH,CAAC"}
@@ -9,7 +9,7 @@ import TheMaskInput from "the-mask-input";
9
9
  import { useReducer } from "use-typed-reducer";
10
10
  import { useDebounce } from "../../hooks/use-debounce";
11
11
  import { Resizable } from "../core/resizable";
12
- const transition = { type: "tween", bounce: 0.15, duration: 0.3 };
12
+ const transition = { type: "spring", bounce: 0.1, duration: 0.3 };
13
13
  const dir = (mod) => (n = 1) => ({ x: `${100 * mod * n}%`, opacity: 0.5 });
14
14
  const variants = {
15
15
  middle: { x: "0%", opacity: 1 },
@@ -61,7 +61,7 @@ const focusDate = (next, delay = 0) => {
61
61
  setTimeout(select, delay);
62
62
  };
63
63
  const formatYear = (now) => now.getFullYear().toString().padStart(4, "0");
64
- export const Calendar = ({ locale, markToday = true, autoFocusToday = true, date, onChange }) => {
64
+ export const Calendar = ({ locale, disabledDate, markToday = true, autoFocusToday = true, date, onChange }) => {
65
65
  const now = date || new Date();
66
66
  const [state, dispatch] = useReducer({
67
67
  date: now,
@@ -143,12 +143,14 @@ export const Calendar = ({ locale, markToday = true, autoFocusToday = true, date
143
143
  dispatch.onChangeYear(value);
144
144
  defer(value);
145
145
  };
146
- return (_jsx(MotionConfig, { transition: transition, children: _jsxs("div", { className: "relative overflow-hidden", children: [_jsx("div", { className: "flex flex-col justify-center rounded text-center", children: _jsx(Resizable, { children: _jsx(AnimatePresence, { mode: "popLayout", initial: false, custom: state.direction, onExitComplete: dispatch.onExitComplete, children: _jsxs(motion.div, { initial: "enter", animate: "middle", exit: "exit", children: [_jsxs("header", { className: "relative flex justify-between", children: [_jsx(motion.button, { onClick: dispatch.previousMonth, variants: removeImmediately, className: "z-calendar rounded-full p-1.5 hover:bg-primary-subtle", children: _jsx(ChevronLeftIcon, { className: "h-4 w-4" }) }), _jsx(motion.span, { variants: variants, custom: state.direction, className: "absolute z-normal isolate inset-0 flex items-center justify-center font-semibold", children: _jsxs("span", { className: "w-fit flex items-center justify-center gap-0.5 py-1", children: [_jsx("select", { style: { width: `${monthString.length}ch` }, value: monthString, onChange: dispatch.onChangeMonth, className: "appearance-none capitalize bg-transparent proportional-nums hover:text-primary cursor-pointer w-fit", children: state.months }), _jsx(TheMaskInput, { mask: "int", value: state.year, maxLength: 4, placeholder: "YYYY", onChange: onChangeYear, style: { width: `${state.year.length}ch` }, className: "w-16 bg-transparent appearance-none hover:text-primary cursor-pointer" })] }) }), _jsx(motion.button, { variants: removeImmediately, className: "z-calendar rounded-full p-1.5 hover:bg-primary-subtle", onClick: dispatch.nextMonth, children: _jsx(ChevronRightIcon, { className: "h-4 w-4" }) }), _jsx("div", { className: "absolute inset-0", style: {
146
+ return (_jsx(MotionConfig, { transition: transition, children: _jsxs("div", { className: "relative overflow-hidden", children: [_jsx("div", { className: "flex flex-col justify-center rounded text-center", children: _jsx(Resizable, { children: _jsx(AnimatePresence, { presenceAffectsLayout: true, mode: "popLayout", initial: false, custom: state.direction, onExitComplete: dispatch.onExitComplete, children: _jsxs(motion.div, { initial: "enter", animate: "middle", exit: "exit", children: [_jsxs("header", { className: "relative flex justify-between", children: [_jsx(motion.button, { onClick: dispatch.previousMonth, variants: removeImmediately, className: "z-calendar rounded-full p-1.5 hover:bg-primary-subtle", children: _jsx(ChevronLeftIcon, { className: "h-4 w-4" }) }), _jsx(motion.span, { variants: variants, custom: state.direction, className: "absolute z-normal isolate inset-0 flex items-center justify-center font-semibold", children: _jsxs("span", { className: "w-fit flex items-center justify-center gap-0.5 py-1", children: [_jsx("select", { style: { width: `${monthString.length}ch` }, value: monthString, onChange: dispatch.onChangeMonth, className: "appearance-none capitalize bg-transparent proportional-nums hover:text-primary cursor-pointer w-fit", children: state.months }), _jsx(TheMaskInput, { mask: "int", value: state.year, maxLength: 4, placeholder: "YYYY", onChange: onChangeYear, style: { width: `${state.year.length}ch` }, className: "w-16 bg-transparent appearance-none hover:text-primary cursor-pointer" })] }) }), _jsx(motion.button, { variants: removeImmediately, className: "z-calendar rounded-full p-1.5 hover:bg-primary-subtle", onClick: dispatch.nextMonth, children: _jsx(ChevronRightIcon, { className: "h-4 w-4" }) }), _jsx("div", { className: "absolute inset-0", style: {
147
147
  backgroundImage: "linear-gradient(to right, hsla(var(--card-background)) 15%, transparent 30%, transparent 70%, hsla(var(--card-background)) 85%)",
148
148
  } })] }), _jsx("div", { className: "mt-4 grid grid-cols-7 gap-y-4", children: state.week.map((dayOfWeek) => (_jsx("span", { className: "font-medium capitalize text-sm", children: dayOfWeek.toLocaleDateString(locale, { weekday: "short" }) }, dayOfWeek.toString()))) }), _jsx(motion.ul, { onKeyDown: dispatch.onKeyDown, variants: variants, custom: state.direction, className: "mt-4 pb-2 grid grid-cols-7 gap-y-4", children: days.map((day) => {
149
149
  const key = day.toISOString();
150
150
  const isSelected = key === currentAsString;
151
151
  const today = isToday(day) && markToday;
152
- return (_jsx("li", { className: "w-full flex items-center justify-center", children: _jsx("button", { type: "button", "data-date": key, onClick: dispatch.onSelectDate, "data-view": state.date.getMonth().toString(), className: `size-8 rounded-full font-semibold flex items-center justify-center proportional-nums ${today ? "text-primary" : ""} ${isSameMonth(day, state.date) ? "" : "text-disabled"} ${isSelected ? "bg-primary text-primary-foreground" : ""}`, children: day.getDate() }) }, key));
153
- }) })] }, monthString) }) }) }), _jsx("footer", { className: "text-center text-primary mt-2", children: _jsx("button", { type: "button", onClick: dispatch.setToday, children: "Today" }) })] }) }));
152
+ const disabledByFn = (disabledDate === null || disabledDate === void 0 ? void 0 : disabledDate(day)) || false;
153
+ const disableDate = !isSameMonth(day, state.date) || disabledByFn;
154
+ return (_jsx("li", { className: "w-full flex items-center justify-center", children: _jsx("button", { type: "button", "data-date": key, disabled: disabledByFn, onClick: dispatch.onSelectDate, "data-view": state.date.getMonth().toString(), className: `size-8 disabled:cursor-not-allowed rounded-full font-semibold flex items-center justify-center proportional-nums ${today ? "text-primary" : ""} ${disableDate ? "text-disabled" : ""} ${isSelected ? "bg-primary text-primary-foreground" : ""}`, children: day.getDate() }) }, key));
155
+ }) })] }, monthString) }) }) }), _jsx("footer", { className: "text-center text-primary mt-2", children: _jsx("button", { className: "hover:scale-105 transition-transform duration-300", type: "button", onClick: dispatch.setToday, children: "Today" }) })] }) }));
154
156
  };
@@ -6,6 +6,7 @@ export type DrawerProps = {
6
6
  footer?: Label;
7
7
  resizer?: boolean;
8
8
  asChild?: boolean;
9
+ closable?: boolean;
9
10
  type?: "dialog" | "drawer";
10
11
  position?: "left" | "right";
11
12
  trigger: Label | React.FC<any>;
@@ -1 +1 @@
1
- {"version":3,"file":"modal.d.ts","sourceRoot":"","sources":["../../../src/components/floating/modal.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,EAAY,iBAAiB,EAAS,MAAM,OAAO,CAAC;AAClE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AA6CpC,MAAM,MAAM,WAAW,GAAG;IACtB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,KAAK,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5B,OAAO,EAAE,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAC/B,QAAQ,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;CAC1C,CAAC;AAiCF,eAAO,MAAM,KAAK,gCAAmD,iBAAiB,CAAC,WAAW,CAAC,4CA+DlG,CAAC"}
1
+ {"version":3,"file":"modal.d.ts","sourceRoot":"","sources":["../../../src/components/floating/modal.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,EAAY,iBAAiB,EAAS,MAAM,OAAO,CAAC;AAClE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AA+CpC,MAAM,MAAM,WAAW,GAAG;IACtB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,KAAK,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5B,OAAO,EAAE,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAC/B,QAAQ,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;CAC1C,CAAC;AAiCF,eAAO,MAAM,KAAK,gCAAmD,iBAAiB,CAAC,WAAW,CAAC,4CA4ElG,CAAC"}
@@ -5,27 +5,29 @@ import { FloatingFocusManager, FloatingOverlay, FloatingPortal, useClick, useDis
5
5
  import { Slot } from "@radix-ui/react-slot";
6
6
  import { cva } from "class-variance-authority";
7
7
  import { AnimatePresence, motion, useMotionValue } from "framer-motion";
8
+ import { XIcon } from "lucide-react";
8
9
  import { Fragment, useId } from "react";
10
+ const animationDuration = '600ms';
9
11
  const createDrawerAnimation = (side) => ({
10
- initial: { [side]: "-60%", opacity: 0.8 },
11
- enter: { [side]: 0, opacity: 1 },
12
- exit: { [side]: "-60%", opacity: 0.8 },
12
+ initial: { [side]: "-60%", opacity: 0.8, animationDuration },
13
+ enter: { [side]: 0, opacity: 1, animationDuration },
14
+ exit: { [side]: ["-50%", "-90%"], opacity: 0, animationDuration },
13
15
  });
14
16
  const drawerLeft = createDrawerAnimation("left");
15
17
  const drawerRight = createDrawerAnimation("right");
16
18
  const animations = {
17
19
  drawer: (type) => (type === "left" ? drawerLeft : drawerRight),
18
20
  dialog: {
19
- initial: { opacity: 0, scale: 0.9 },
20
- enter: { opacity: 1, scale: [1.125, 1] },
21
- exit: { opacity: 0, scale: 0.9 },
21
+ initial: { opacity: 0, scale: 0.95, animationDuration },
22
+ enter: { opacity: 1, scale: [1.05, 1], animationDuration },
23
+ exit: { opacity: 0, scale: 0.97, animationDuration },
22
24
  },
23
25
  };
24
- const variants = cva("isolate ring-0 outline-0 appearance-none container flex flex-col gap-4 flex-nowrap min-w-xs bg-floating-background", {
26
+ const variants = cva("isolate ring-0 outline-0 appearance-none flex flex-col gap-4 flex-nowrap min-w-xs bg-floating-background", {
25
27
  variants: {
26
28
  type: {
27
- drawer: "max-h-screen h-screen min-h-0",
28
- dialog: "max-h-[calc(100lvh-10%)] h-[inherit] relative rounded-lg py-8",
29
+ drawer: "max-h-screen max-w-[90%] w-auto h-screen min-h-0",
30
+ dialog: "max-h-[calc(100lvh-10%)] container h-[inherit] rounded-lg py-8",
29
31
  },
30
32
  position: {
31
33
  none: "",
@@ -61,5 +63,5 @@ export const Modal = (_a) => {
61
63
  const { getReferenceProps, getFloatingProps } = useInteractions([click, role, dismiss]);
62
64
  const Trigger = props.trigger;
63
65
  const value = useMotionValue(undefined);
64
- return (_jsxs(Fragment, { children: [props.asChild ? (_jsx(Slot, Object.assign({ ref: refs.setReference }, getReferenceProps(), { children: Trigger }))) : (_jsx("button", Object.assign({ ref: refs.setReference }, getReferenceProps(), { type: "button", children: Trigger }))), _jsx(FloatingPortal, { children: _jsx(AnimatePresence, { presenceAffectsLayout: true, children: props.open && (_jsx(FloatingOverlay, { lockScroll: true, className: `relative !overflow-clip h-[100dvh] z-floating bg-floating-overlay/70 ${type === "drawer" ? "" : "grid items-baseline p-8"}`, children: _jsx(FloatingFocusManager, { modal: true, closeOnFocusOut: true, context: context, children: _jsxs(motion.div, Object.assign({ animate: "enter", "aria-describedby": descriptionId, "aria-labelledby": headingId, className: variants({ position, type }), exit: "exit", initial: "initial", ref: refs.setFloating, variants: animation, style: { width: value } }, getFloatingProps(), { children: [!isDialog && resizer ? _jsx(Draggable, { value: value, parent: refs.floating, type: position }) : null, props.title ? (_jsx("header", { className: "w-full", children: _jsx("h2", { className: "px-8 pb-4 border-b border-floating-border text-3xl font-medium leading-relaxed", children: props.title }) })) : null, _jsx("div", { className: "flex-1 px-8 overflow-y-auto", children: props.children }), props.footer ? (_jsx("footer", { className: "px-8 border-t border-floating-border pt-4 w-full", children: props.footer })) : null] })) }) })) }) })] }));
66
+ return (_jsxs(Fragment, { children: [props.asChild ? (_jsx(Slot, Object.assign({ ref: refs.setReference }, getReferenceProps(), { children: Trigger }))) : (_jsx("button", Object.assign({ ref: refs.setReference }, getReferenceProps(), { type: "button", children: Trigger }))), _jsx(FloatingPortal, { children: _jsx(AnimatePresence, { presenceAffectsLayout: true, children: props.open && (_jsx(FloatingOverlay, { lockScroll: true, className: `relative !overflow-clip h-[100dvh] z-floating bg-floating-overlay/70 ${type === "drawer" ? "" : "grid justify-center p-8"}`, children: _jsx(FloatingFocusManager, { modal: true, closeOnFocusOut: true, context: context, children: _jsxs(motion.div, Object.assign({ animate: "enter", "aria-describedby": descriptionId, "aria-labelledby": headingId, className: variants({ position, type }), exit: "exit", initial: "initial", ref: refs.setFloating, variants: animation, style: { width: value } }, getFloatingProps(), { children: [!isDialog && resizer ? _jsx(Draggable, { value: value, parent: refs.floating, type: position }) : null, props.title || props.closable ? (_jsxs("header", { className: "w-full relative", children: [props.title ? (_jsx("h2", { className: "px-8 pb-4 border-b border-floating-border text-3xl font-medium leading-relaxed", children: props.title })) : null, props.closable !== false ? (_jsx("nav", { className: "absolute -top-1 right-8", children: _jsx("button", { type: "button", onClick: () => { var _a; return (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, false); }, className: "p-1 transition-colors hover:text-danger focus:text-danger", children: _jsx(XIcon, {}) }) })) : null] })) : null, _jsx("div", { className: "flex-1 px-8 overflow-y-auto", children: props.children }), props.footer ? (_jsx("footer", { className: "px-8 border-t border-floating-border pt-4 w-full", children: props.footer })) : null] })) }) })) }) })] }));
65
67
  };
@@ -1,11 +1,7 @@
1
- import { Locales } from "the-mask-input";
2
1
  import { Override } from "../../types";
2
+ import { CalendarProps } from "../display/calendar";
3
3
  import { InputProps } from "./input";
4
- type DatePickerProps = Override<InputProps, {
5
- date?: Date;
6
- locale?: Locales;
7
- onChange?: (date: Date) => void;
8
- }>;
9
- export declare const DatePicker: (props: DatePickerProps) => import("react/jsx-runtime").JSX.Element;
4
+ type DatePickerProps = Override<InputProps, CalendarProps & {}>;
5
+ export declare const DatePicker: ({ date, locale, disabledDate, autoFocusToday, onChange, markToday, ...props }: DatePickerProps) => import("react/jsx-runtime").JSX.Element;
10
6
  export {};
11
7
  //# sourceMappingURL=date-picker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"date-picker.d.ts","sourceRoot":"","sources":["../../../src/components/form/date-picker.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,OAAO,EAAS,UAAU,EAAE,MAAM,SAAS,CAAC;AAE5C,KAAK,eAAe,GAAG,QAAQ,CAC3B,UAAU,EACV;IACI,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;CACnC,CACJ,CAAC;AAyBF,eAAO,MAAM,UAAU,UAAW,eAAe,4CAyDhD,CAAC"}
1
+ {"version":3,"file":"date-picker.d.ts","sourceRoot":"","sources":["../../../src/components/form/date-picker.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAY,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAE9D,OAAO,EAAS,UAAU,EAAE,MAAM,SAAS,CAAC;AAE5C,KAAK,eAAe,GAAG,QAAQ,CAAC,UAAU,EAAE,aAAa,GAAG,EAAE,CAAC,CAAC;AAyBhE,eAAO,MAAM,UAAU,kFAAmF,eAAe,4CAuExH,CAAC"}
@@ -1,7 +1,8 @@
1
+ import { __rest } from "tslib";
1
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
3
  import { format, parse, startOfDay } from "date-fns";
3
4
  import { CalendarIcon } from "lucide-react";
4
- import { Fragment, useState } from "react";
5
+ import { Fragment, useMemo, useState } from "react";
5
6
  import { Is } from "sidekicker";
6
7
  import { Calendar } from "../display/calendar";
7
8
  import { Dropdown } from "../floating/dropdown";
@@ -25,18 +26,22 @@ const partValues = {
25
26
  day: (date) => date.getDate().toString().padStart(2, "0"),
26
27
  month: (date) => (date.getMonth() + 1).toString().padStart(2, "0"),
27
28
  };
28
- export const DatePicker = (props) => {
29
- var _a;
30
- const locale = new Intl.DateTimeFormat(props.locale);
31
- const [date, setDate] = useState(props.date || undefined);
29
+ export const DatePicker = (_a) => {
30
+ var _b;
31
+ var { date, locale, disabledDate, autoFocusToday, onChange, markToday } = _a, props = __rest(_a, ["date", "locale", "disabledDate", "autoFocusToday", "onChange", "markToday"]);
32
+ const datetimeFormat = useMemo(() => new Intl.DateTimeFormat(locale), [locale]);
33
+ const [innerDate, setInnerDate] = useState(date || undefined);
32
34
  const [open, setOpen] = useState(false);
33
- const mask = locale.formatToParts(fixedDate).flatMap((x) => (Is.keyof(parts, x.type) ? parts[x.type](x.value) : []));
34
- const placeholder = locale
35
+ const mask = datetimeFormat.formatToParts(fixedDate).flatMap((x) => (Is.keyof(parts, x.type) ? parts[x.type](x.value) : []));
36
+ const placeholder = datetimeFormat
35
37
  .formatToParts(fixedDate)
36
38
  .reduce((acc, x) => acc + (Is.keyof(placeholders, x.type) ? placeholders[x.type](x.value) : ""), "");
37
- const [value, setValue] = useState(!date ? "" : locale.formatToParts(date).reduce((acc, x) => acc + (Is.keyof(parts, x.type) ? partValues[x.type](date, x.value) : ""), ""));
38
- const onChange = (e) => {
39
- var _a;
39
+ const [value, setValue] = useState(!innerDate
40
+ ? ""
41
+ : datetimeFormat
42
+ .formatToParts(innerDate)
43
+ .reduce((acc, x) => acc + (Is.keyof(parts, x.type) ? partValues[x.type](innerDate, x.value) : ""), ""));
44
+ const onChangeDateInput = (e) => {
40
45
  const v = e.target.value;
41
46
  setValue(v);
42
47
  if (mask.length === v.length) {
@@ -46,16 +51,15 @@ export const DatePicker = (props) => {
46
51
  });
47
52
  if (matches) {
48
53
  const d = startOfDay(parse(v, placeholder, new Date()));
49
- setDate(d);
50
- (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, d);
54
+ setInnerDate(d);
55
+ onChange === null || onChange === void 0 ? void 0 : onChange(d);
51
56
  }
52
57
  }
53
58
  };
54
59
  const onChangeDate = (d) => {
55
- var _a;
56
- setDate(d);
57
- (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, d);
60
+ setInnerDate(d);
61
+ onChange === null || onChange === void 0 ? void 0 : onChange(d);
58
62
  setValue(format(d, placeholder));
59
63
  };
60
- return (_jsx(Input, Object.assign({}, props, { mask: mask, value: value, onChange: onChange, className: "uppercase", formNoValidate: !open, placeholder: placeholder, required: (_a = props.required) !== null && _a !== void 0 ? _a : true, error: open ? undefined : props.error, name: props.name ? `${props.name}-picker` : props.name, right: _jsxs(Fragment, { children: [_jsx("input", { defaultValue: date === null || date === void 0 ? void 0 : date.toISOString(), hidden: true, type: "date", name: props.name }), _jsx(Dropdown, { trigger: _jsx(CalendarIcon, {}), onChange: setOpen, open: open, children: _jsx(Calendar, { date: date, onChange: onChangeDate, locale: props.locale }) })] }) })));
64
+ return (_jsx(Input, Object.assign({}, props, { mask: mask, value: value, onChange: onChangeDateInput, className: "uppercase", formNoValidate: !open, placeholder: placeholder, required: (_b = props.required) !== null && _b !== void 0 ? _b : true, error: open ? undefined : props.error, name: props.name ? `${props.name}-picker` : props.name, right: _jsxs(Fragment, { children: [_jsx("input", { defaultValue: innerDate === null || innerDate === void 0 ? void 0 : innerDate.toISOString(), hidden: true, type: "date", name: props.name }), _jsx(Dropdown, { trigger: _jsx(CalendarIcon, {}), onChange: setOpen, open: open, children: _jsx(Calendar, Object.assign({}, props, { locale: locale, date: innerDate, onChange: onChangeDate, markToday: markToday, disabledDate: disabledDate, autoFocusToday: autoFocusToday })) })] }) })));
61
65
  };
@@ -20,5 +20,5 @@ export * from "./floating/dropdown";
20
20
  export * from "./floating/tooltip";
21
21
  export * from "./floating/modal";
22
22
  export * from "./table/index";
23
- export { createColumns, createOptionCols, ColType, useTablePreferences } from "./table/table-lib";
23
+ export { createColumns, createOptionCols, type ColType, useTablePreferences, type TablePagination } from "./table/table-lib";
24
24
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,KAAK,OAAO,EAAE,mBAAmB,EAAE,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
@@ -20,4 +20,4 @@ export * from "./floating/dropdown";
20
20
  export * from "./floating/tooltip";
21
21
  export * from "./floating/modal";
22
22
  export * from "./table/index";
23
- export { createColumns, createOptionCols, ColType, useTablePreferences } from "./table/table-lib";
23
+ export { createColumns, createOptionCols, useTablePreferences } from "./table/table-lib";
@@ -5,6 +5,7 @@ import { GroupItem } from "./group";
5
5
  import { Sorter } from "./sort";
6
6
  import { Col, TableOperationProps } from "./table-lib";
7
7
  type InnerTableProps<T extends {}> = HTMLAttributes<HTMLTableElement> & TableOperationProps<T> & {
8
+ useControl?: boolean;
8
9
  loading?: boolean;
9
10
  group?: GroupItem<T>;
10
11
  groups?: GroupItem<T>[];
@@ -20,6 +21,7 @@ type InnerTableProps<T extends {}> = HTMLAttributes<HTMLTableElement> & TableOpe
20
21
  loadingMore?: boolean;
21
22
  };
22
23
  export type TableProps<T extends {}> = Pick<InnerTableProps<T>, "cols" | "rows" | "loadingMore"> & {
24
+ useControl?: boolean;
23
25
  name: string;
24
26
  operations?: boolean;
25
27
  onScrollEnd?: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/table/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAY,cAAc,EAAwC,MAAM,OAAO,CAAC;AAM9F,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,OAAO,EAAa,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAoB,GAAG,EAA+B,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAGtG,KAAK,eAAe,CAAC,CAAC,SAAS,EAAE,IAAI,cAAc,CAAC,gBAAgB,CAAC,GACjE,mBAAmB,CAAC,CAAC,CAAC,GAAG;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IACxB,UAAU,EAAE,WAAW,EAAE,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5B,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAChE,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AA2IN,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,aAAa,CAAC,GAAG;IAC/F,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;CAC5B,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AAO/E,eAAO,MAAM,KAAK,GAAI,CAAC,SAAS,EAAE,SAAS,UAAU,CAAC,CAAC,CAAC,4CA6FvD,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/table/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAY,cAAc,EAAwC,MAAM,OAAO,CAAC;AAM9F,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,OAAO,EAAa,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAoB,GAAG,EAA+B,mBAAmB,EAAmB,MAAM,aAAa,CAAC;AAMvH,KAAK,eAAe,CAAC,CAAC,SAAS,EAAE,IAAI,cAAc,CAAC,gBAAgB,CAAC,GACjE,mBAAmB,CAAC,CAAC,CAAC,GAAG;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IACxB,UAAU,EAAE,WAAW,EAAE,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5B,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAChE,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAiMN,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,aAAa,CAAC,GAAG;IAC/F,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;CAC5B,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AAO/E,eAAO,MAAM,KAAK,GAAI,CAAC,SAAS,EAAE,SAAS,UAAU,CAAC,CAAC,CAAC,4CAgGvD,CAAC"}
@@ -5,7 +5,7 @@ import { AnimatePresence, motion } from "framer-motion";
5
5
  import Linq from "linq-arrays";
6
6
  import React, { Fragment, useEffect, useMemo, useRef, useState } from "react";
7
7
  import { TableVirtuoso } from "react-virtuoso";
8
- import { Is } from "sidekicker";
8
+ import { clamp, Is } from "sidekicker";
9
9
  import { useReducer } from "use-typed-reducer";
10
10
  import { useCallbackRef } from "../../hooks/use-callback-ref";
11
11
  import { path } from "../../lib/fns";
@@ -48,8 +48,37 @@ const ItemContent = (index, row, context) => {
48
48
  }) }));
49
49
  };
50
50
  const Frag = () => _jsx(Fragment, {});
51
+ const Pagination = (pagination) => {
52
+ const Render = pagination.asLink || "button";
53
+ const last = Math.ceil(pagination.totalItems / pagination.size);
54
+ const pageNavigation = useMemo(() => {
55
+ const afterFirst = clamp(1, pagination.current - 2, last);
56
+ const beforeLast = clamp(1, pagination.current + 2, last);
57
+ const pages = [
58
+ 1,
59
+ afterFirst - 1 === 1 || afterFirst === 1 ? null : -1,
60
+ afterFirst,
61
+ clamp(1, pagination.current - 1, last),
62
+ pagination.current,
63
+ clamp(1, pagination.current + 1, last),
64
+ beforeLast,
65
+ beforeLast + 1 === last || beforeLast === last ? null : -last,
66
+ last
67
+ ];
68
+ return Array.from(new Set(pages));
69
+ }, []);
70
+ return _jsxs("footer", { className: "flex px-1 py-2 items-center justify-between flex-nowrap", children: [_jsxs("p", { children: ["Page ", pagination.current, " of ", pagination.pages, ". Total: ", pagination.totalItems, " items"] }), _jsx("nav", { children: _jsxs("ul", { className: "flex items-center", children: [pagination.hasPrevious ? _jsx("li", { children: _jsx(Render, { href: "previous", className: "", children: "Previous" }) }) : null, pageNavigation.map(x => {
71
+ if (x === null)
72
+ return null;
73
+ return _jsx(Fragment, { children: x === -1 ?
74
+ _jsx("li", { children: "..." }) :
75
+ x === -last ?
76
+ _jsx("li", { children: "..." }) :
77
+ _jsx("li", { className: `cursor-pointer px-3 py-1 transition-colors border-b-2 hover:text-primary-subtle hover:border-primary-subtle proportional-nums ${x === pagination.current ? "text-primary border-primary" : "border-transparent"}`, children: _jsx(Render, { href: x, className: "", children: x }) }, `pagination-${x}`) });
78
+ }), pagination.hasNext ? _jsx("li", { children: _jsx(Render, { href: "next", className: "", children: "Next" }) }) : null] }) })] });
79
+ };
51
80
  const InnerTable = (_a) => {
52
- var { filters, onScrollEnd, setCols, setFilters, sorters, cols, setSorters } = _a, props = __rest(_a, ["filters", "onScrollEnd", "setCols", "setFilters", "sorters", "cols", "setSorters"]);
81
+ var { filters, pagination = null, onScrollEnd, useControl = false, setCols, setFilters, sorters, cols, setSorters } = _a, props = __rest(_a, ["filters", "pagination", "onScrollEnd", "useControl", "setCols", "setFilters", "sorters", "cols", "setSorters"]);
53
82
  const ref = useRef(null);
54
83
  const [showLoadingFooter, setShowLoadingFooter] = useState(false);
55
84
  const onScrollEndRef = useCallbackRef(onScrollEnd);
@@ -57,6 +86,8 @@ const InnerTable = (_a) => {
57
86
  const rows = useMemo(() => {
58
87
  if (props.loading)
59
88
  return loadingArray;
89
+ if (useControl)
90
+ return props.rows;
60
91
  const linq = new Linq(props.rows);
61
92
  if (filters.length > 0) {
62
93
  filters.forEach((x) => (x.value === "" || Number.isNaN(x.value) ? undefined : linq.Where(x.name, x.operation.symbol, x.value)));
@@ -84,11 +115,11 @@ const InnerTable = (_a) => {
84
115
  observer.observe(div);
85
116
  return () => observer.disconnect();
86
117
  }, []);
87
- return (_jsxs("div", { className: "group border border-table-border rounded-lg px-1 min-w-full", children: [_jsx(TableVirtuoso, { data: rows, useWindowScroll: true, components: components, totalCount: rows.length, itemContent: ItemContent, context: { loading: props.loading, loadingMore: props.loadingMore, cols: cols }, fixedFooterContent: showLoadingFooter ? Frag : null, fixedHeaderContent: () => (_jsx(TableHeader, { sorters: sorters, setSorters: setSorters, filters: filters, setFilters: setFilters, headers: cols, setCols: setCols })) }), _jsx("div", { "aria-hidden": "true", ref: ref, className: "h-0.5 w-full" })] }));
118
+ return (_jsxs("div", { className: "min-w-full", children: [_jsxs("div", { className: "group border border-table-border rounded-lg px-1", children: [_jsx(TableVirtuoso, { data: rows, useWindowScroll: true, components: components, totalCount: rows.length, itemContent: ItemContent, context: { loading: props.loading, loadingMore: props.loadingMore, cols: cols }, fixedFooterContent: showLoadingFooter ? Frag : null, fixedHeaderContent: () => (_jsx(TableHeader, { sorters: sorters, setSorters: setSorters, filters: filters, setFilters: setFilters, headers: cols, setCols: setCols })) }), _jsx("div", { "aria-hidden": "true", ref: ref, className: "h-0.5 w-full" })] }), pagination !== null ? _jsx(Pagination, Object.assign({}, pagination)) : null] }));
88
119
  };
89
120
  const dispatcherFun = (prev, setter) => typeof setter === "function" ? setter(prev) : setter;
90
121
  export const Table = (props) => {
91
- var _a, _b, _c, _d;
122
+ var _a, _b, _c, _d, _e, _f;
92
123
  const operations = (_a = props.operations) !== null && _a !== void 0 ? _a : true;
93
124
  const optionCols = useMemo(() => createOptionCols(props.cols), [props.cols]);
94
125
  const [state, dispatch] = useReducer({
@@ -116,5 +147,5 @@ export const Table = (props) => {
116
147
  },
117
148
  ],
118
149
  });
119
- return (_jsxs("div", { className: "relative min-w-full", children: [operations ? (_jsx(Metadata, { setCols: dispatch.cols, rows: props.rows, cols: state.cols, filters: state.filters, groups: state.groups, options: optionCols, setFilters: dispatch.filters, setGroups: dispatch.groups, setSorters: dispatch.sorters, sorters: state.sorters })) : null, state.groups.length === 0 ? (_jsx(InnerTable, Object.assign({}, props, { onScrollEnd: props.onScrollEnd, cols: state.cols, filters: state.filters, groups: state.groups, index: 0, optionCols: optionCols, options: optionCols, setCols: dispatch.cols, setFilters: dispatch.filters, setGroups: dispatch.groups, setSorters: dispatch.sorters, sorters: state.sorters }))) : (_jsx("div", { className: "flex flex-wrap gap-4", children: state.groups.map((group, index) => (_jsx(motion.div, { className: "min-w-full", children: _jsx(InnerTable, Object.assign({}, props, { onScrollEnd: props.onScrollEnd, cols: state.cols, filters: state.filters, group: group, groups: state.groups, index: index, optionCols: optionCols, options: optionCols, rows: group.rows, setCols: dispatch.cols, setFilters: dispatch.filters, setGroups: dispatch.groups, setSorters: dispatch.sorters, sorters: state.sorters })) }, `group-${group.groupId}`))) }))] }));
150
+ return (_jsxs("div", { className: "relative min-w-full", children: [operations ? (_jsx(Metadata, { setCols: dispatch.cols, rows: props.rows, cols: state.cols, filters: state.filters, groups: state.groups, options: optionCols, setFilters: dispatch.filters, setGroups: dispatch.groups, setSorters: dispatch.sorters, sorters: state.sorters, pagination: (_e = props.pagination) !== null && _e !== void 0 ? _e : null })) : null, state.groups.length === 0 ? (_jsx(InnerTable, Object.assign({}, props, { onScrollEnd: props.onScrollEnd, cols: state.cols, filters: state.filters, groups: state.groups, index: 0, optionCols: optionCols, options: optionCols, setCols: dispatch.cols, setFilters: dispatch.filters, setGroups: dispatch.groups, setSorters: dispatch.sorters, sorters: state.sorters, pagination: (_f = props.pagination) !== null && _f !== void 0 ? _f : null }))) : (_jsx("div", { className: "flex flex-wrap gap-4", children: state.groups.map((group, index) => (_jsx(motion.div, { className: "min-w-full", children: _jsx(InnerTable, Object.assign({}, props, { pagination: null, onScrollEnd: props.onScrollEnd, cols: state.cols, filters: state.filters, group: group, groups: state.groups, index: index, optionCols: optionCols, options: optionCols, rows: group.rows, setCols: dispatch.cols, setFilters: dispatch.filters, setGroups: dispatch.groups, setSorters: dispatch.sorters, sorters: state.sorters })) }, `group-${group.groupId}`))) }))] }));
120
151
  };
@@ -20,10 +20,7 @@ export declare enum ColType {
20
20
  export declare const valueFromType: (input: HTMLInputElement) => string | number;
21
21
  type THead = React.ReactElement | React.ReactNode;
22
22
  export type ColMatrix = `${number},${number}`;
23
- type ParsePath<path, output extends string[] = [], currentChunk extends string = ""> = path extends number ? [`${path}`] : path extends `${infer first}${infer rest}` ? first extends "." | "[" | "]" ? ParsePath<rest, [
24
- ...output,
25
- ...(currentChunk extends "" ? [] : [currentChunk])
26
- ], ""> : ParsePath<rest, output, `${currentChunk}${first}`> : [...output, ...(currentChunk extends "" ? [] : [currentChunk])];
23
+ type ParsePath<path, output extends string[] = [], currentChunk extends string = ""> = path extends number ? [`${path}`] : path extends `${infer first}${infer rest}` ? first extends "." | "[" | "]" ? ParsePath<rest, [...output, ...(currentChunk extends "" ? [] : [currentChunk])], ""> : ParsePath<rest, output, `${currentChunk}${first}`> : [...output, ...(currentChunk extends "" ? [] : [currentChunk])];
27
24
  type RecursiveGet<Obj, pathList> = Obj extends any ? pathList extends [infer first, ...infer rest] ? first extends keyof Obj ? RecursiveGet<Obj[first], rest> : [first, Obj] extends [`${number}` | "number", readonly any[]] ? RecursiveGet<Extract<Obj, any[]>[number], rest> : undefined : Obj : never;
28
25
  type GetFromPath<Obj, path> = RecursiveGet<Obj, ParsePath<path>>;
29
26
  export type CellPropsElement<T extends POJO, K extends AllPaths<T>> = {
@@ -59,12 +56,25 @@ declare const cols: <T extends POJO>() => <K extends AllPaths<T>>(id: K, thead:
59
56
  Element?: ((props: CellPropsElement<T, K>) => React.ReactNode) | undefined;
60
57
  };
61
58
  export type Col<T extends POJO> = ReturnType<ReturnType<typeof cols<T>>>;
59
+ export type TablePagination = {
60
+ size: number;
61
+ pages: number;
62
+ current: number;
63
+ hasNext: boolean;
64
+ totalItems: number;
65
+ hasPrevious: boolean;
66
+ asLink?: React.FC<React.PropsWithChildren<{
67
+ href: number | "previous" | "next";
68
+ className: string;
69
+ }>>;
70
+ };
62
71
  type TableGetters<T extends POJO> = {
63
72
  rows: T[];
64
73
  cols: Col<T>[];
65
- groups: GroupItem<T>[];
66
74
  sorters: Sorter<T>[];
75
+ groups: GroupItem<T>[];
67
76
  filters: FilterConfig<T>[];
77
+ pagination: TablePagination | null;
68
78
  };
69
79
  type TableSetters<T extends POJO> = {
70
80
  setCols: SetState<Col<T>[]>;
@@ -101,6 +111,7 @@ export declare const useTablePreferences: <T extends POJO>(name: string, options
101
111
  groups: GroupItem<T>[];
102
112
  sorters: Sorter<T>[];
103
113
  filters: FilterConfig<T>[];
114
+ pagination: TablePagination | null;
104
115
  };
105
116
  export {};
106
117
  //# sourceMappingURL=table-lib.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"table-lib.d.ts","sourceRoot":"","sources":["../../../src/components/table/table-lib.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"table-lib.d.ts","sourceRoot":"","sources":["../../../src/components/table/table-lib.ts"],"names":[],"mappings":"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"}
package/dist/index.css CHANGED
@@ -1 +1 @@
1
- /*! tailwindcss v3.4.4 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.form-checkbox,.form-radio{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;-webkit-print-color-adjust:exact;print-color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-shrink:0;height:1rem;width:1rem;color:#2563eb;background-color:#fff;border-color:#6b7280;border-width:1px;--tw-shadow:0 0 #0000}.form-checkbox{border-radius:0}.form-checkbox:focus,.form-radio:focus{outline:2px solid #0000;outline-offset:2px;--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:2px;--tw-ring-offset-color:#fff;--tw-ring-color:#2563eb;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.form-checkbox:checked,.form-radio:checked{border-color:#0000;background-color:currentColor;background-size:100% 100%;background-position:50%;background-repeat:no-repeat}.form-checkbox:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 16 16'%3E%3Cpath d='M12.207 4.793a1 1 0 0 1 0 1.414l-5 5a1 1 0 0 1-1.414 0l-2-2a1 1 0 0 1 1.414-1.414L6.5 9.086l4.293-4.293a1 1 0 0 1 1.414 0z'/%3E%3C/svg%3E")}@media (forced-colors:active) {.form-checkbox:checked{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}.form-checkbox:checked:focus,.form-checkbox:checked:hover,.form-checkbox:indeterminate,.form-radio:checked:focus,.form-radio:checked:hover{border-color:#0000;background-color:currentColor}.form-checkbox:indeterminate{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3E%3Cpath stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3E%3C/svg%3E");background-size:100% 100%;background-position:50%;background-repeat:no-repeat}@media (forced-colors:active) {.form-checkbox:indeterminate{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}.form-checkbox:indeterminate:focus,.form-checkbox:indeterminate:hover{border-color:#0000;background-color:currentColor}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.invisible{visibility:hidden}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.bottom-0{bottom:0}.left-0{left:0}.left-2{left:.5rem}.right-0{right:0}.right-5{right:1.25rem}.top-0{top:0}.top-1\/2{top:50%}.isolate{isolation:isolate}.z-calendar{z-index:2}.z-floating{z-index:10}.z-normal{z-index:1}.z-tooltip{z-index:11}.m-0{margin:0}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-4{margin-top:1rem;margin-bottom:1rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.ml-3{margin-left:.75rem}.mr-2{margin-right:.5rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.table-row{display:table-row}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1/1}.size-10{width:2.5rem;height:2.5rem}.size-3{width:.75rem;height:.75rem}.size-5{width:1.25rem;height:1.25rem}.size-8{width:2rem;height:2rem}.h-0{height:0}.h-0\.5{height:.125rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-2{height:.5rem}.h-3{height:.75rem}.h-4{height:1rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-\[100dvh\]{height:100dvh}.h-\[inherit\]{height:inherit}.h-screen{height:100vh}.max-h-\[calc\(100lvh-10\%\)\]{max-height:calc(100lvh - 10%)}.max-h-screen{max-height:100vh}.min-h-0{min-height:0}.w-11{width:2.75rem}.w-16{width:4rem}.w-2{width:.5rem}.w-28{width:7rem}.w-3{width:.75rem}.w-4{width:1rem}.w-64{width:16rem}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-min{width:-moz-min-content;width:min-content}.min-w-64{min-width:16rem}.min-w-96{min-width:24rem}.min-w-\[1ch\]{min-width:1ch}.min-w-full{min-width:100%}.min-w-xs{min-width:20rem}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.table-auto{table-layout:auto}.origin-\[top_center\]{transform-origin:top center}.translate-x-0{--tw-translate-x:0px}.transform,.translate-x-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.cursor-grab{cursor:grab}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.list-none{list-style-type:none}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.items-start{align-items:flex-start}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-8{gap:2rem}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-y-1{row-gap:.25rem}.gap-y-4{row-gap:1rem}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.divide-x>:not([hidden])~:not([hidden]){--tw-divide-x-reverse:0;border-right-width:calc(1px*var(--tw-divide-x-reverse));border-left-width:calc(1px*(1 - var(--tw-divide-x-reverse)))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px*var(--tw-divide-y-reverse))}.divide-card-border>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:hsla(var(--card-border),var(--tw-divide-opacity))}.divide-table-border>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:hsla(var(--table-border),var(--tw-divide-opacity))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.\!overflow-clip{overflow:clip!important}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.text-balance{text-wrap:balance}.break-keep{word-break:keep-all}.rounded{border-radius:.25rem}.rounded-card{border-radius:var(--card)}.rounded-full{border-radius:var(--full)}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-none{border-radius:0}.rounded-pill{border-radius:var(--pill)}.rounded-sm{border-radius:.125rem}.rounded-xl{border-radius:.75rem}.rounded-b-lg{border-bottom-right-radius:.5rem}.rounded-b-lg,.rounded-l-lg{border-bottom-left-radius:.5rem}.rounded-l-lg{border-top-left-radius:.5rem}.rounded-r-lg{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-r-2{border-right-width:2px}.border-t{border-top-width:1px}.border-none{border-style:none}.border-card-border{--tw-border-opacity:1;border-color:hsla(var(--card-border),var(--tw-border-opacity))}.border-floating-border{--tw-border-opacity:1;border-color:hsla(var(--floating-border),var(--tw-border-opacity))}.border-input-border{--tw-border-opacity:1;border-color:hsla(var(--input-border),var(--tw-border-opacity))}.border-table-border{--tw-border-opacity:1;border-color:hsla(var(--table-border),var(--tw-border-opacity))}.border-tooltip-border{--tw-border-opacity:1;border-color:hsla(var(--tooltip-border),var(--tw-border-opacity))}.border-transparent{border-color:#0000}.bg-background{--tw-bg-opacity:1;background-color:hsla(var(--background),var(--tw-bg-opacity))}.bg-card-background{--tw-bg-opacity:1;background-color:hsla(var(--card-background),var(--tw-bg-opacity))}.bg-danger{--tw-bg-opacity:1;background-color:hsla(var(--danger-DEFAULT),var(--tw-bg-opacity))}.bg-danger-subtle{--tw-bg-opacity:1;background-color:hsla(var(--danger-subtle),var(--tw-bg-opacity))}.bg-disabled{--tw-bg-opacity:1;background-color:hsla(var(--disabled),var(--tw-bg-opacity))}.bg-floating-background{--tw-bg-opacity:1;background-color:hsla(var(--floating-background),var(--tw-bg-opacity))}.bg-floating-border{--tw-bg-opacity:1;background-color:hsla(var(--floating-border),var(--tw-bg-opacity))}.bg-floating-overlay\/70{background-color:hsla(var(--floating-overlay),.7)}.bg-foreground{--tw-bg-opacity:1;background-color:hsla(var(--foreground),var(--tw-bg-opacity))}.bg-info{--tw-bg-opacity:1;background-color:hsla(var(--info-DEFAULT),var(--tw-bg-opacity))}.bg-info-subtle{--tw-bg-opacity:1;background-color:hsla(var(--info-subtle),var(--tw-bg-opacity))}.bg-primary{--tw-bg-opacity:1;background-color:hsla(var(--primary-DEFAULT),var(--tw-bg-opacity))}.bg-primary-subtle{--tw-bg-opacity:1;background-color:hsla(var(--primary-subtle),var(--tw-bg-opacity))}.bg-secondary{--tw-bg-opacity:1;background-color:hsla(var(--secondary-DEFAULT),var(--tw-bg-opacity))}.bg-secondary-subtle{--tw-bg-opacity:1;background-color:hsla(var(--secondary-subtle),var(--tw-bg-opacity))}.bg-success{--tw-bg-opacity:1;background-color:hsla(var(--success-DEFAULT),var(--tw-bg-opacity))}.bg-success-subtle{--tw-bg-opacity:1;background-color:hsla(var(--success-subtle),var(--tw-bg-opacity))}.bg-table-background{--tw-bg-opacity:1;background-color:hsla(var(--table-background),var(--tw-bg-opacity))}.bg-table-border{--tw-bg-opacity:1;background-color:hsla(var(--table-border),var(--tw-bg-opacity))}.bg-tooltip-background{--tw-bg-opacity:1;background-color:hsla(var(--tooltip-background),var(--tw-bg-opacity))}.bg-transparent{background-color:initial}.bg-warn{--tw-bg-opacity:1;background-color:hsla(var(--warn-DEFAULT),var(--tw-bg-opacity))}.bg-warn-subtle{--tw-bg-opacity:1;background-color:hsla(var(--warn-subtle),var(--tw-bg-opacity))}.bg-origin-border{background-origin:border-box}.fill-floating-background{fill:hsla(var(--floating-background),1)}.fill-tooltip-background{fill:hsla(var(--tooltip-background),1)}.stroke-floating-border{stroke:hsla(var(--floating-border),1)}.stroke-tooltip-border{stroke:hsla(var(--tooltip-border),1)}.p-0{padding:0}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pb-8{padding-bottom:2rem}.pe-12{padding-inline-end:3rem}.pe-4{padding-inline-end:1rem}.pl-2{padding-left:.5rem}.pr-1{padding-right:.25rem}.ps-4{padding-inline-start:1rem}.ps-8{padding-inline-start:2rem}.pt-0{padding-top:0}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.align-middle{vertical-align:middle}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.proportional-nums{--tw-numeric-spacing:proportional-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.tracking-wide{letter-spacing:.025em}.text-danger{--tw-text-opacity:1;color:hsla(var(--danger-DEFAULT),var(--tw-text-opacity))}.text-danger-foreground{--tw-text-opacity:1;color:hsla(var(--danger-foreground),var(--tw-text-opacity))}.text-danger-hover{--tw-text-opacity:1;color:hsla(var(--danger-hover),var(--tw-text-opacity))}.text-disabled{--tw-text-opacity:1;color:hsla(var(--disabled),var(--tw-text-opacity))}.text-foreground{--tw-text-opacity:1;color:hsla(var(--foreground),var(--tw-text-opacity))}.text-info-foreground{--tw-text-opacity:1;color:hsla(var(--info-foreground),var(--tw-text-opacity))}.text-info-hover{--tw-text-opacity:1;color:hsla(var(--info-hover),var(--tw-text-opacity))}.text-primary{--tw-text-opacity:1;color:hsla(var(--primary-DEFAULT),var(--tw-text-opacity))}.text-primary-foreground{--tw-text-opacity:1;color:hsla(var(--primary-foreground),var(--tw-text-opacity))}.text-primary-hover{--tw-text-opacity:1;color:hsla(var(--primary-hover),var(--tw-text-opacity))}.text-secondary{--tw-text-opacity:1;color:hsla(var(--secondary-DEFAULT),var(--tw-text-opacity))}.text-secondary-foreground{--tw-text-opacity:1;color:hsla(var(--secondary-foreground),var(--tw-text-opacity))}.text-secondary-hover{--tw-text-opacity:1;color:hsla(var(--secondary-hover),var(--tw-text-opacity))}.text-success-foreground{--tw-text-opacity:1;color:hsla(var(--success-foreground),var(--tw-text-opacity))}.text-success-hover{--tw-text-opacity:1;color:hsla(var(--success-hover),var(--tw-text-opacity))}.text-tooltip-foreground{--tw-text-opacity:1;color:hsla(var(--tooltip-foreground),var(--tw-text-opacity))}.text-warn-foreground{--tw-text-opacity:1;color:hsla(var(--warn-foreground),var(--tw-text-opacity))}.text-warn-hover{--tw-text-opacity:1;color:hsla(var(--warn-hover),var(--tw-text-opacity))}.text-opacity-70{--tw-text-opacity:0.7}.underline{text-decoration-line:underline}.placeholder-input-placeholder::-moz-placeholder{--tw-placeholder-opacity:1;color:hsla(var(--input-placeholder),var(--tw-placeholder-opacity))}.placeholder-input-placeholder::placeholder{--tw-placeholder-opacity:1;color:hsla(var(--input-placeholder),var(--tw-placeholder-opacity))}.placeholder-primary\/70::-moz-placeholder{color:hsla(var(--primary-DEFAULT),.7)}.placeholder-primary\/70::placeholder{color:hsla(var(--primary-DEFAULT),.7)}.opacity-0{opacity:0}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-2xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px #00000040;--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.shadow-floating{--tw-shadow:#0f0f0f1a 0px 0px 0px 1px,#0f0f0f33 0px 3px 6px,#0f0f0f66 0px 9px 24px;--tw-shadow-colored:0px 0px 0px 1px var(--tw-shadow-color),0px 3px 6px var(--tw-shadow-color),0px 9px 24px var(--tw-shadow-color)}.shadow-floating,.shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.outline-none{outline:2px solid #0000;outline-offset:2px}.outline-0{outline-width:0}.ring-0{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.blur{--tw-blur:blur(8px)}.blur,.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(1,.43,.36,.67);transition-duration:375ms}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(1,.43,.36,.67);transition-duration:375ms}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(1,.43,.36,.67);transition-duration:375ms}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(1,.43,.36,.67);transition-duration:375ms}.\[appearance\:textfield\]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}select.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-repeat:no-repeat;padding-right:2.5rem}input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,select:focus,textarea{font-size:1rem;line-height:1.5rem}.first\:table-cell:first-child{display:table-cell}.last\:border-r-0:last-child{border-right-width:0}.empty\:hidden:empty{display:none}.after\:empty\:text-primary\/70:empty:after{content:var(--tw-content);color:hsla(var(--primary-DEFAULT),.7)}.hover\:bg-danger-hover:hover{--tw-bg-opacity:1;background-color:hsla(var(--danger-hover),var(--tw-bg-opacity))}.hover\:bg-info-hover:hover{--tw-bg-opacity:1;background-color:hsla(var(--info-hover),var(--tw-bg-opacity))}.hover\:bg-primary-hover:hover{--tw-bg-opacity:1;background-color:hsla(var(--primary-hover),var(--tw-bg-opacity))}.hover\:bg-primary-subtle:hover{--tw-bg-opacity:1;background-color:hsla(var(--primary-subtle),var(--tw-bg-opacity))}.hover\:bg-secondary-hover:hover{--tw-bg-opacity:1;background-color:hsla(var(--secondary-hover),var(--tw-bg-opacity))}.hover\:bg-success-hover:hover{--tw-bg-opacity:1;background-color:hsla(var(--success-hover),var(--tw-bg-opacity))}.hover\:bg-warn-hover:hover{--tw-bg-opacity:1;background-color:hsla(var(--warn-hover),var(--tw-bg-opacity))}.hover\:text-primary:hover{--tw-text-opacity:1;color:hsla(var(--primary-DEFAULT),var(--tw-text-opacity))}.focus\:outline-none:focus{outline:2px solid #0000;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-primary:focus{--tw-ring-opacity:1;--tw-ring-color:hsla(var(--primary-DEFAULT),var(--tw-ring-opacity))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.focus-visible\:outline-none:focus-visible{outline:2px solid #0000;outline-offset:2px}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus-visible\:ring-2:focus-visible,.focus-visible\:ring-4:focus-visible{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-4:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-opacity-30:disabled{--tw-bg-opacity:0.3}.disabled\:bg-opacity-50:disabled{--tw-bg-opacity:0.5}.disabled\:text-opacity-60:disabled{--tw-text-opacity:0.6}.disabled\:text-opacity-80:disabled{--tw-text-opacity:0.8}.group:focus-within .group-focus-within\:border-primary{--tw-border-opacity:1;border-color:hsla(var(--primary-DEFAULT),var(--tw-border-opacity))}.group:focus-within .group-focus-within\:text-primary{--tw-text-opacity:1;color:hsla(var(--primary-DEFAULT),var(--tw-text-opacity))}.group:hover .group-hover\:border-primary{--tw-border-opacity:1;border-color:hsla(var(--primary-DEFAULT),var(--tw-border-opacity))}.group:hover .group-hover\:text-primary{--tw-text-opacity:1;color:hsla(var(--primary-DEFAULT),var(--tw-text-opacity))}.data-\[checked\=true\]\:translate-x-5[data-checked=true]{--tw-translate-x:1.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.data-\[loading\=true\]\:animate-pulse[data-loading=true]{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.data-\[active\=true\]\:border-solid[data-active=true]{border-style:solid}.data-\[active\=false\]\:border-dashed[data-active=false]{border-style:dashed}.data-\[active\=true\]\:bg-card-background[data-active=true]{--tw-bg-opacity:1;background-color:hsla(var(--card-background),var(--tw-bg-opacity))}.data-\[checked\=false\]\:bg-disabled[data-checked=false]{--tw-bg-opacity:1;background-color:hsla(var(--disabled),var(--tw-bg-opacity))}.data-\[checked\=false\]\:bg-input-switch-bg[data-checked=false]{--tw-bg-opacity:1;background-color:hsla(var(--input-switch-bg),var(--tw-bg-opacity))}.data-\[checked\=true\]\:bg-input-switch[data-checked=true]{--tw-bg-opacity:1;background-color:hsla(var(--input-switch),var(--tw-bg-opacity))}.data-\[checked\=true\]\:bg-primary[data-checked=true]{--tw-bg-opacity:1;background-color:hsla(var(--primary-DEFAULT),var(--tw-bg-opacity))}.data-\[active\=true\]\:text-primary[data-active=true]{--tw-text-opacity:1;color:hsla(var(--primary-DEFAULT),var(--tw-text-opacity))}.data-\[selected\=false\]\:text-input-placeholder[data-selected=false]{--tw-text-opacity:1;color:hsla(var(--input-placeholder),var(--tw-text-opacity))}.data-\[loading\=true\]\:opacity-40[data-loading=true]{opacity:.4}.link\:text-danger:active,.link\:text-danger:hover{--tw-text-opacity:1;color:hsla(var(--danger-DEFAULT),var(--tw-text-opacity))}.group:valid:has(.input:valid:not(:-moz-placeholder-shown)) .group-assert\:block{display:block}.group:valid:has(.input:valid:not(:placeholder-shown)) .group-assert\:block{display:block}.group:valid:has(.input:valid:not(:-moz-placeholder-shown)) .group-assert\:text-success{--tw-text-opacity:1;color:hsla(var(--success-DEFAULT),var(--tw-text-opacity))}.group:valid:has(.input:valid:not(:placeholder-shown)) .group-assert\:text-success{--tw-text-opacity:1;color:hsla(var(--success-DEFAULT),var(--tw-text-opacity))}.group:valid:has(.input:valid:not(:-moz-placeholder-shown)) .group-assert\:opacity-100{opacity:1}.group:valid:has(.input:valid:not(:placeholder-shown)) .group-assert\:opacity-100{opacity:1}.group:invalid:has(.input:not(:focus):invalid[data-initialized=true]) .group-error\:block{display:block}.group:invalid:has(.input:not(:focus):invalid[data-initialized=true]) .group-error\:border-danger{--tw-border-opacity:1;border-color:hsla(var(--danger-DEFAULT),var(--tw-border-opacity))}.group:invalid:has(.input:not(:focus):invalid[data-initialized=true]) .group-error\:text-danger{--tw-text-opacity:1;color:hsla(var(--danger-DEFAULT),var(--tw-text-opacity))}.group:invalid:has(.input:not(:focus):invalid[data-initialized=true]) .group-error\:placeholder-input-mask-error::-moz-placeholder{--tw-placeholder-opacity:1;color:hsla(var(--input-mask-error),var(--tw-placeholder-opacity))}.group:invalid:has(.input:not(:focus):invalid[data-initialized=true]) .group-error\:placeholder-input-mask-error::placeholder{--tw-placeholder-opacity:1;color:hsla(var(--input-mask-error),var(--tw-placeholder-opacity))}.group:invalid:has(.input:not(:focus):invalid[data-initialized=true]) .group-error\:opacity-100{opacity:1}.group[data-error=true][data-interactive=true]:has(.input[data-initialized=true]) .group-error\:block{display:block}.group[data-error=true][data-interactive=true]:has(.input[data-initialized=true]) .group-error\:border-danger{--tw-border-opacity:1;border-color:hsla(var(--danger-DEFAULT),var(--tw-border-opacity))}.group[data-error=true][data-interactive=true]:has(.input[data-initialized=true]) .group-error\:text-danger{--tw-text-opacity:1;color:hsla(var(--danger-DEFAULT),var(--tw-text-opacity))}.group[data-error=true][data-interactive=true]:has(.input[data-initialized=true]) .group-error\:placeholder-input-mask-error::-moz-placeholder{--tw-placeholder-opacity:1;color:hsla(var(--input-mask-error),var(--tw-placeholder-opacity))}.group[data-error=true][data-interactive=true]:has(.input[data-initialized=true]) .group-error\:placeholder-input-mask-error::placeholder{--tw-placeholder-opacity:1;color:hsla(var(--input-mask-error),var(--tw-placeholder-opacity))}.group[data-error=true][data-interactive=true]:has(.input[data-initialized=true]) .group-error\:opacity-100{opacity:1}.group[data-error=true][data-interactive=true]:has(.input) .group-error\:block{display:block}.group[data-error=true][data-interactive=true]:has(.input) .group-error\:border-danger{--tw-border-opacity:1;border-color:hsla(var(--danger-DEFAULT),var(--tw-border-opacity))}.group[data-error=true][data-interactive=true]:has(.input) .group-error\:text-danger{--tw-text-opacity:1;color:hsla(var(--danger-DEFAULT),var(--tw-text-opacity))}.group[data-error=true][data-interactive=true]:has(.input) .group-error\:placeholder-input-mask-error::-moz-placeholder{--tw-placeholder-opacity:1;color:hsla(var(--input-mask-error),var(--tw-placeholder-opacity))}.group[data-error=true][data-interactive=true]:has(.input) .group-error\:placeholder-input-mask-error::placeholder{--tw-placeholder-opacity:1;color:hsla(var(--input-mask-error),var(--tw-placeholder-opacity))}.group[data-error=true][data-interactive=true]:has(.input) .group-error\:opacity-100{opacity:1}.group[data-error=true]:has(.input[data-initialized=true]) .group-error\:block{display:block}.group[data-error=true]:has(.input[data-initialized=true]) .group-error\:border-danger{--tw-border-opacity:1;border-color:hsla(var(--danger-DEFAULT),var(--tw-border-opacity))}.group[data-error=true]:has(.input[data-initialized=true]) .group-error\:text-danger{--tw-text-opacity:1;color:hsla(var(--danger-DEFAULT),var(--tw-text-opacity))}.group[data-error=true]:has(.input[data-initialized=true]) .group-error\:placeholder-input-mask-error::-moz-placeholder{--tw-placeholder-opacity:1;color:hsla(var(--input-mask-error),var(--tw-placeholder-opacity))}.group[data-error=true]:has(.input[data-initialized=true]) .group-error\:placeholder-input-mask-error::placeholder{--tw-placeholder-opacity:1;color:hsla(var(--input-mask-error),var(--tw-placeholder-opacity))}.group[data-error=true]:has(.input[data-initialized=true]) .group-error\:opacity-100{opacity:1}@media (min-width:768px){.md\:block{display:block}.md\:table-cell{display:table-cell}.md\:w-auto{width:auto}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:justify-start{justify-content:flex-start}.md\:justify-end{justify-content:flex-end}}.\[\&\:\:-webkit-inner-spin-button\]\:appearance-none::-webkit-inner-spin-button,.\[\&\:\:-webkit-outer-spin-button\]\:appearance-none::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none}
1
+ /*! tailwindcss v3.4.4 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.form-checkbox,.form-radio{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;-webkit-print-color-adjust:exact;print-color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-shrink:0;height:1rem;width:1rem;color:#2563eb;background-color:#fff;border-color:#6b7280;border-width:1px;--tw-shadow:0 0 #0000}.form-checkbox{border-radius:0}.form-checkbox:focus,.form-radio:focus{outline:2px solid #0000;outline-offset:2px;--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:2px;--tw-ring-offset-color:#fff;--tw-ring-color:#2563eb;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.form-checkbox:checked,.form-radio:checked{border-color:#0000;background-color:currentColor;background-size:100% 100%;background-position:50%;background-repeat:no-repeat}.form-checkbox:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 16 16'%3E%3Cpath d='M12.207 4.793a1 1 0 0 1 0 1.414l-5 5a1 1 0 0 1-1.414 0l-2-2a1 1 0 0 1 1.414-1.414L6.5 9.086l4.293-4.293a1 1 0 0 1 1.414 0z'/%3E%3C/svg%3E")}@media (forced-colors:active) {.form-checkbox:checked{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}.form-checkbox:checked:focus,.form-checkbox:checked:hover,.form-checkbox:indeterminate,.form-radio:checked:focus,.form-radio:checked:hover{border-color:#0000;background-color:currentColor}.form-checkbox:indeterminate{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3E%3Cpath stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3E%3C/svg%3E");background-size:100% 100%;background-position:50%;background-repeat:no-repeat}@media (forced-colors:active) {.form-checkbox:indeterminate{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}.form-checkbox:indeterminate:focus,.form-checkbox:indeterminate:hover{border-color:#0000;background-color:currentColor}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.invisible{visibility:hidden}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.-top-1{top:-.25rem}.bottom-0{bottom:0}.left-0{left:0}.left-2{left:.5rem}.right-0{right:0}.right-5{right:1.25rem}.right-8{right:2rem}.top-0{top:0}.top-1\/2{top:50%}.isolate{isolation:isolate}.z-calendar{z-index:2}.z-floating{z-index:10}.z-normal{z-index:1}.z-tooltip{z-index:11}.m-0{margin:0}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-4{margin-top:1rem;margin-bottom:1rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.ml-3{margin-left:.75rem}.mr-2{margin-right:.5rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.table-row{display:table-row}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1/1}.size-10{width:2.5rem;height:2.5rem}.size-3{width:.75rem;height:.75rem}.size-5{width:1.25rem;height:1.25rem}.size-8{width:2rem;height:2rem}.h-0{height:0}.h-0\.5{height:.125rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-2{height:.5rem}.h-3{height:.75rem}.h-4{height:1rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-\[100dvh\]{height:100dvh}.h-\[inherit\]{height:inherit}.h-screen{height:100vh}.max-h-\[calc\(100lvh-10\%\)\]{max-height:calc(100lvh - 10%)}.max-h-screen{max-height:100vh}.min-h-0{min-height:0}.w-11{width:2.75rem}.w-16{width:4rem}.w-2{width:.5rem}.w-28{width:7rem}.w-3{width:.75rem}.w-4{width:1rem}.w-64{width:16rem}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-min{width:-moz-min-content;width:min-content}.min-w-64{min-width:16rem}.min-w-96{min-width:24rem}.min-w-\[1ch\]{min-width:1ch}.min-w-full{min-width:100%}.min-w-xs{min-width:20rem}.max-w-\[90\%\]{max-width:90%}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.table-auto{table-layout:auto}.origin-\[top_center\]{transform-origin:top center}.translate-x-0{--tw-translate-x:0px}.transform,.translate-x-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.cursor-grab{cursor:grab}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.list-none{list-style-type:none}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-8{gap:2rem}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-y-1{row-gap:.25rem}.gap-y-4{row-gap:1rem}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.divide-x>:not([hidden])~:not([hidden]){--tw-divide-x-reverse:0;border-right-width:calc(1px*var(--tw-divide-x-reverse));border-left-width:calc(1px*(1 - var(--tw-divide-x-reverse)))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px*var(--tw-divide-y-reverse))}.divide-card-border>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:hsla(var(--card-border),var(--tw-divide-opacity))}.divide-table-border>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:hsla(var(--table-border),var(--tw-divide-opacity))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.\!overflow-clip{overflow:clip!important}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.text-balance{text-wrap:balance}.break-keep{word-break:keep-all}.rounded{border-radius:.25rem}.rounded-card{border-radius:var(--card)}.rounded-full{border-radius:var(--full)}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-none{border-radius:0}.rounded-pill{border-radius:var(--pill)}.rounded-sm{border-radius:.125rem}.rounded-xl{border-radius:.75rem}.rounded-b-lg{border-bottom-right-radius:.5rem}.rounded-b-lg,.rounded-l-lg{border-bottom-left-radius:.5rem}.rounded-l-lg{border-top-left-radius:.5rem}.rounded-r-lg{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-r-2{border-right-width:2px}.border-t{border-top-width:1px}.border-none{border-style:none}.border-card-border{--tw-border-opacity:1;border-color:hsla(var(--card-border),var(--tw-border-opacity))}.border-floating-border{--tw-border-opacity:1;border-color:hsla(var(--floating-border),var(--tw-border-opacity))}.border-input-border{--tw-border-opacity:1;border-color:hsla(var(--input-border),var(--tw-border-opacity))}.border-primary{--tw-border-opacity:1;border-color:hsla(var(--primary-DEFAULT),var(--tw-border-opacity))}.border-table-border{--tw-border-opacity:1;border-color:hsla(var(--table-border),var(--tw-border-opacity))}.border-tooltip-border{--tw-border-opacity:1;border-color:hsla(var(--tooltip-border),var(--tw-border-opacity))}.border-transparent{border-color:#0000}.bg-background{--tw-bg-opacity:1;background-color:hsla(var(--background),var(--tw-bg-opacity))}.bg-card-background{--tw-bg-opacity:1;background-color:hsla(var(--card-background),var(--tw-bg-opacity))}.bg-danger{--tw-bg-opacity:1;background-color:hsla(var(--danger-DEFAULT),var(--tw-bg-opacity))}.bg-danger-subtle{--tw-bg-opacity:1;background-color:hsla(var(--danger-subtle),var(--tw-bg-opacity))}.bg-disabled{--tw-bg-opacity:1;background-color:hsla(var(--disabled),var(--tw-bg-opacity))}.bg-floating-background{--tw-bg-opacity:1;background-color:hsla(var(--floating-background),var(--tw-bg-opacity))}.bg-floating-border{--tw-bg-opacity:1;background-color:hsla(var(--floating-border),var(--tw-bg-opacity))}.bg-floating-overlay\/70{background-color:hsla(var(--floating-overlay),.7)}.bg-foreground{--tw-bg-opacity:1;background-color:hsla(var(--foreground),var(--tw-bg-opacity))}.bg-info{--tw-bg-opacity:1;background-color:hsla(var(--info-DEFAULT),var(--tw-bg-opacity))}.bg-info-subtle{--tw-bg-opacity:1;background-color:hsla(var(--info-subtle),var(--tw-bg-opacity))}.bg-primary{--tw-bg-opacity:1;background-color:hsla(var(--primary-DEFAULT),var(--tw-bg-opacity))}.bg-primary-subtle{--tw-bg-opacity:1;background-color:hsla(var(--primary-subtle),var(--tw-bg-opacity))}.bg-secondary{--tw-bg-opacity:1;background-color:hsla(var(--secondary-DEFAULT),var(--tw-bg-opacity))}.bg-secondary-subtle{--tw-bg-opacity:1;background-color:hsla(var(--secondary-subtle),var(--tw-bg-opacity))}.bg-success{--tw-bg-opacity:1;background-color:hsla(var(--success-DEFAULT),var(--tw-bg-opacity))}.bg-success-subtle{--tw-bg-opacity:1;background-color:hsla(var(--success-subtle),var(--tw-bg-opacity))}.bg-table-background{--tw-bg-opacity:1;background-color:hsla(var(--table-background),var(--tw-bg-opacity))}.bg-table-border{--tw-bg-opacity:1;background-color:hsla(var(--table-border),var(--tw-bg-opacity))}.bg-tooltip-background{--tw-bg-opacity:1;background-color:hsla(var(--tooltip-background),var(--tw-bg-opacity))}.bg-transparent{background-color:initial}.bg-warn{--tw-bg-opacity:1;background-color:hsla(var(--warn-DEFAULT),var(--tw-bg-opacity))}.bg-warn-subtle{--tw-bg-opacity:1;background-color:hsla(var(--warn-subtle),var(--tw-bg-opacity))}.bg-origin-border{background-origin:border-box}.fill-floating-background{fill:hsla(var(--floating-background),1)}.fill-tooltip-background{fill:hsla(var(--tooltip-background),1)}.stroke-floating-border{stroke:hsla(var(--floating-border),1)}.stroke-tooltip-border{stroke:hsla(var(--tooltip-border),1)}.p-0{padding:0}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pb-8{padding-bottom:2rem}.pe-12{padding-inline-end:3rem}.pe-4{padding-inline-end:1rem}.pl-2{padding-left:.5rem}.pr-1{padding-right:.25rem}.ps-4{padding-inline-start:1rem}.ps-8{padding-inline-start:2rem}.pt-0{padding-top:0}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.align-middle{vertical-align:middle}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.proportional-nums{--tw-numeric-spacing:proportional-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.tracking-wide{letter-spacing:.025em}.text-danger{--tw-text-opacity:1;color:hsla(var(--danger-DEFAULT),var(--tw-text-opacity))}.text-danger-foreground{--tw-text-opacity:1;color:hsla(var(--danger-foreground),var(--tw-text-opacity))}.text-danger-hover{--tw-text-opacity:1;color:hsla(var(--danger-hover),var(--tw-text-opacity))}.text-disabled{--tw-text-opacity:1;color:hsla(var(--disabled),var(--tw-text-opacity))}.text-foreground{--tw-text-opacity:1;color:hsla(var(--foreground),var(--tw-text-opacity))}.text-info-foreground{--tw-text-opacity:1;color:hsla(var(--info-foreground),var(--tw-text-opacity))}.text-info-hover{--tw-text-opacity:1;color:hsla(var(--info-hover),var(--tw-text-opacity))}.text-primary{--tw-text-opacity:1;color:hsla(var(--primary-DEFAULT),var(--tw-text-opacity))}.text-primary-foreground{--tw-text-opacity:1;color:hsla(var(--primary-foreground),var(--tw-text-opacity))}.text-primary-hover{--tw-text-opacity:1;color:hsla(var(--primary-hover),var(--tw-text-opacity))}.text-secondary{--tw-text-opacity:1;color:hsla(var(--secondary-DEFAULT),var(--tw-text-opacity))}.text-secondary-foreground{--tw-text-opacity:1;color:hsla(var(--secondary-foreground),var(--tw-text-opacity))}.text-secondary-hover{--tw-text-opacity:1;color:hsla(var(--secondary-hover),var(--tw-text-opacity))}.text-success-foreground{--tw-text-opacity:1;color:hsla(var(--success-foreground),var(--tw-text-opacity))}.text-success-hover{--tw-text-opacity:1;color:hsla(var(--success-hover),var(--tw-text-opacity))}.text-tooltip-foreground{--tw-text-opacity:1;color:hsla(var(--tooltip-foreground),var(--tw-text-opacity))}.text-warn-foreground{--tw-text-opacity:1;color:hsla(var(--warn-foreground),var(--tw-text-opacity))}.text-warn-hover{--tw-text-opacity:1;color:hsla(var(--warn-hover),var(--tw-text-opacity))}.text-opacity-70{--tw-text-opacity:0.7}.underline{text-decoration-line:underline}.placeholder-input-placeholder::-moz-placeholder{--tw-placeholder-opacity:1;color:hsla(var(--input-placeholder),var(--tw-placeholder-opacity))}.placeholder-input-placeholder::placeholder{--tw-placeholder-opacity:1;color:hsla(var(--input-placeholder),var(--tw-placeholder-opacity))}.placeholder-primary\/70::-moz-placeholder{color:hsla(var(--primary-DEFAULT),.7)}.placeholder-primary\/70::placeholder{color:hsla(var(--primary-DEFAULT),.7)}.opacity-0{opacity:0}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-2xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px #00000040;--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.shadow-floating{--tw-shadow:#0f0f0f1a 0px 0px 0px 1px,#0f0f0f1a 0px 3px 6px,#0f0f0f33 0px 5px 12px;--tw-shadow-colored:0px 0px 0px 1px var(--tw-shadow-color),0px 3px 6px var(--tw-shadow-color),0px 5px 12px var(--tw-shadow-color)}.shadow-floating,.shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.outline-none{outline:2px solid #0000;outline-offset:2px}.outline-0{outline-width:0}.ring-0{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.blur{--tw-blur:blur(8px)}.blur,.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(1,.43,.36,.67);transition-duration:375ms}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(1,.43,.36,.67);transition-duration:375ms}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(1,.43,.36,.67);transition-duration:375ms}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(1,.43,.36,.67);transition-duration:375ms}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(1,.43,.36,.67);transition-duration:375ms}.\[appearance\:textfield\]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}select.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-repeat:no-repeat;padding-right:2.5rem}input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,select:focus,textarea{font-size:1rem;line-height:1.5rem}.first\:table-cell:first-child{display:table-cell}.last\:border-r-0:last-child{border-right-width:0}.empty\:hidden:empty{display:none}.after\:empty\:text-primary\/70:empty:after{content:var(--tw-content);color:hsla(var(--primary-DEFAULT),.7)}.hover\:scale-105:hover{--tw-scale-x:1.05;--tw-scale-y:1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-primary-subtle:hover{--tw-border-opacity:1;border-color:hsla(var(--primary-subtle),var(--tw-border-opacity))}.hover\:bg-danger-hover:hover{--tw-bg-opacity:1;background-color:hsla(var(--danger-hover),var(--tw-bg-opacity))}.hover\:bg-info-hover:hover{--tw-bg-opacity:1;background-color:hsla(var(--info-hover),var(--tw-bg-opacity))}.hover\:bg-primary-hover:hover{--tw-bg-opacity:1;background-color:hsla(var(--primary-hover),var(--tw-bg-opacity))}.hover\:bg-primary-subtle:hover{--tw-bg-opacity:1;background-color:hsla(var(--primary-subtle),var(--tw-bg-opacity))}.hover\:bg-secondary-hover:hover{--tw-bg-opacity:1;background-color:hsla(var(--secondary-hover),var(--tw-bg-opacity))}.hover\:bg-success-hover:hover{--tw-bg-opacity:1;background-color:hsla(var(--success-hover),var(--tw-bg-opacity))}.hover\:bg-warn-hover:hover{--tw-bg-opacity:1;background-color:hsla(var(--warn-hover),var(--tw-bg-opacity))}.hover\:text-danger:hover{--tw-text-opacity:1;color:hsla(var(--danger-DEFAULT),var(--tw-text-opacity))}.hover\:text-primary:hover{--tw-text-opacity:1;color:hsla(var(--primary-DEFAULT),var(--tw-text-opacity))}.hover\:text-primary-subtle:hover{--tw-text-opacity:1;color:hsla(var(--primary-subtle),var(--tw-text-opacity))}.focus\:text-danger:focus{--tw-text-opacity:1;color:hsla(var(--danger-DEFAULT),var(--tw-text-opacity))}.focus\:outline-none:focus{outline:2px solid #0000;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-primary:focus{--tw-ring-opacity:1;--tw-ring-color:hsla(var(--primary-DEFAULT),var(--tw-ring-opacity))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.focus-visible\:outline-none:focus-visible{outline:2px solid #0000;outline-offset:2px}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus-visible\:ring-2:focus-visible,.focus-visible\:ring-4:focus-visible{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-4:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-opacity-30:disabled{--tw-bg-opacity:0.3}.disabled\:bg-opacity-50:disabled{--tw-bg-opacity:0.5}.disabled\:text-opacity-60:disabled{--tw-text-opacity:0.6}.disabled\:text-opacity-80:disabled{--tw-text-opacity:0.8}.group:focus-within .group-focus-within\:border-primary{--tw-border-opacity:1;border-color:hsla(var(--primary-DEFAULT),var(--tw-border-opacity))}.group:focus-within .group-focus-within\:text-primary{--tw-text-opacity:1;color:hsla(var(--primary-DEFAULT),var(--tw-text-opacity))}.group:hover .group-hover\:border-primary{--tw-border-opacity:1;border-color:hsla(var(--primary-DEFAULT),var(--tw-border-opacity))}.group:hover .group-hover\:text-primary{--tw-text-opacity:1;color:hsla(var(--primary-DEFAULT),var(--tw-text-opacity))}.data-\[checked\=true\]\:translate-x-5[data-checked=true]{--tw-translate-x:1.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.data-\[loading\=true\]\:animate-pulse[data-loading=true]{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.data-\[active\=true\]\:border-solid[data-active=true]{border-style:solid}.data-\[active\=false\]\:border-dashed[data-active=false]{border-style:dashed}.data-\[active\=true\]\:bg-card-background[data-active=true]{--tw-bg-opacity:1;background-color:hsla(var(--card-background),var(--tw-bg-opacity))}.data-\[checked\=false\]\:bg-disabled[data-checked=false]{--tw-bg-opacity:1;background-color:hsla(var(--disabled),var(--tw-bg-opacity))}.data-\[checked\=false\]\:bg-input-switch-bg[data-checked=false]{--tw-bg-opacity:1;background-color:hsla(var(--input-switch-bg),var(--tw-bg-opacity))}.data-\[checked\=true\]\:bg-input-switch[data-checked=true]{--tw-bg-opacity:1;background-color:hsla(var(--input-switch),var(--tw-bg-opacity))}.data-\[checked\=true\]\:bg-primary[data-checked=true]{--tw-bg-opacity:1;background-color:hsla(var(--primary-DEFAULT),var(--tw-bg-opacity))}.data-\[active\=true\]\:text-primary[data-active=true]{--tw-text-opacity:1;color:hsla(var(--primary-DEFAULT),var(--tw-text-opacity))}.data-\[selected\=false\]\:text-input-placeholder[data-selected=false]{--tw-text-opacity:1;color:hsla(var(--input-placeholder),var(--tw-text-opacity))}.data-\[loading\=true\]\:opacity-40[data-loading=true]{opacity:.4}.link\:text-danger:active,.link\:text-danger:hover{--tw-text-opacity:1;color:hsla(var(--danger-DEFAULT),var(--tw-text-opacity))}.group:valid:has(.input:valid:not(:-moz-placeholder-shown)) .group-assert\:block{display:block}.group:valid:has(.input:valid:not(:placeholder-shown)) .group-assert\:block{display:block}.group:valid:has(.input:valid:not(:-moz-placeholder-shown)) .group-assert\:text-success{--tw-text-opacity:1;color:hsla(var(--success-DEFAULT),var(--tw-text-opacity))}.group:valid:has(.input:valid:not(:placeholder-shown)) .group-assert\:text-success{--tw-text-opacity:1;color:hsla(var(--success-DEFAULT),var(--tw-text-opacity))}.group:valid:has(.input:valid:not(:-moz-placeholder-shown)) .group-assert\:opacity-100{opacity:1}.group:valid:has(.input:valid:not(:placeholder-shown)) .group-assert\:opacity-100{opacity:1}.group:invalid:has(.input:not(:focus):invalid[data-initialized=true]) .group-error\:block{display:block}.group:invalid:has(.input:not(:focus):invalid[data-initialized=true]) .group-error\:border-danger{--tw-border-opacity:1;border-color:hsla(var(--danger-DEFAULT),var(--tw-border-opacity))}.group:invalid:has(.input:not(:focus):invalid[data-initialized=true]) .group-error\:text-danger{--tw-text-opacity:1;color:hsla(var(--danger-DEFAULT),var(--tw-text-opacity))}.group:invalid:has(.input:not(:focus):invalid[data-initialized=true]) .group-error\:placeholder-input-mask-error::-moz-placeholder{--tw-placeholder-opacity:1;color:hsla(var(--input-mask-error),var(--tw-placeholder-opacity))}.group:invalid:has(.input:not(:focus):invalid[data-initialized=true]) .group-error\:placeholder-input-mask-error::placeholder{--tw-placeholder-opacity:1;color:hsla(var(--input-mask-error),var(--tw-placeholder-opacity))}.group:invalid:has(.input:not(:focus):invalid[data-initialized=true]) .group-error\:opacity-100{opacity:1}.group[data-error=true][data-interactive=true]:has(.input[data-initialized=true]) .group-error\:block{display:block}.group[data-error=true][data-interactive=true]:has(.input[data-initialized=true]) .group-error\:border-danger{--tw-border-opacity:1;border-color:hsla(var(--danger-DEFAULT),var(--tw-border-opacity))}.group[data-error=true][data-interactive=true]:has(.input[data-initialized=true]) .group-error\:text-danger{--tw-text-opacity:1;color:hsla(var(--danger-DEFAULT),var(--tw-text-opacity))}.group[data-error=true][data-interactive=true]:has(.input[data-initialized=true]) .group-error\:placeholder-input-mask-error::-moz-placeholder{--tw-placeholder-opacity:1;color:hsla(var(--input-mask-error),var(--tw-placeholder-opacity))}.group[data-error=true][data-interactive=true]:has(.input[data-initialized=true]) .group-error\:placeholder-input-mask-error::placeholder{--tw-placeholder-opacity:1;color:hsla(var(--input-mask-error),var(--tw-placeholder-opacity))}.group[data-error=true][data-interactive=true]:has(.input[data-initialized=true]) .group-error\:opacity-100{opacity:1}.group[data-error=true][data-interactive=true]:has(.input) .group-error\:block{display:block}.group[data-error=true][data-interactive=true]:has(.input) .group-error\:border-danger{--tw-border-opacity:1;border-color:hsla(var(--danger-DEFAULT),var(--tw-border-opacity))}.group[data-error=true][data-interactive=true]:has(.input) .group-error\:text-danger{--tw-text-opacity:1;color:hsla(var(--danger-DEFAULT),var(--tw-text-opacity))}.group[data-error=true][data-interactive=true]:has(.input) .group-error\:placeholder-input-mask-error::-moz-placeholder{--tw-placeholder-opacity:1;color:hsla(var(--input-mask-error),var(--tw-placeholder-opacity))}.group[data-error=true][data-interactive=true]:has(.input) .group-error\:placeholder-input-mask-error::placeholder{--tw-placeholder-opacity:1;color:hsla(var(--input-mask-error),var(--tw-placeholder-opacity))}.group[data-error=true][data-interactive=true]:has(.input) .group-error\:opacity-100{opacity:1}.group[data-error=true]:has(.input[data-initialized=true]) .group-error\:block{display:block}.group[data-error=true]:has(.input[data-initialized=true]) .group-error\:border-danger{--tw-border-opacity:1;border-color:hsla(var(--danger-DEFAULT),var(--tw-border-opacity))}.group[data-error=true]:has(.input[data-initialized=true]) .group-error\:text-danger{--tw-text-opacity:1;color:hsla(var(--danger-DEFAULT),var(--tw-text-opacity))}.group[data-error=true]:has(.input[data-initialized=true]) .group-error\:placeholder-input-mask-error::-moz-placeholder{--tw-placeholder-opacity:1;color:hsla(var(--input-mask-error),var(--tw-placeholder-opacity))}.group[data-error=true]:has(.input[data-initialized=true]) .group-error\:placeholder-input-mask-error::placeholder{--tw-placeholder-opacity:1;color:hsla(var(--input-mask-error),var(--tw-placeholder-opacity))}.group[data-error=true]:has(.input[data-initialized=true]) .group-error\:opacity-100{opacity:1}@media (min-width:768px){.md\:block{display:block}.md\:table-cell{display:table-cell}.md\:w-auto{width:auto}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:justify-start{justify-content:flex-start}.md\:justify-end{justify-content:flex-end}}.\[\&\:\:-webkit-inner-spin-button\]\:appearance-none::-webkit-inner-spin-button,.\[\&\:\:-webkit-outer-spin-button\]\:appearance-none::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none}