@datatechsolutions/ui 2.7.128 → 2.7.130
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-IMLJ5FAZ.js → chunk-5NRV2PE4.js} +389 -1414
- package/dist/chunk-5NRV2PE4.js.map +1 -0
- package/dist/{chunk-RLFPACTM.mjs → chunk-7WR44JRN.mjs} +3 -3
- package/dist/{chunk-RLFPACTM.mjs.map → chunk-7WR44JRN.mjs.map} +1 -1
- package/dist/{chunk-RWNHZ7FV.mjs → chunk-7ZO5L4QH.mjs} +360 -1360
- package/dist/chunk-7ZO5L4QH.mjs.map +1 -0
- package/dist/{chunk-ZRFEZ3RD.js → chunk-M6KOYLMA.js} +52 -52
- package/dist/{chunk-ZRFEZ3RD.js.map → chunk-M6KOYLMA.js.map} +1 -1
- package/dist/index.d.mts +89 -302
- package/dist/index.d.ts +89 -302
- package/dist/index.js +335 -435
- package/dist/index.mjs +1 -1
- package/dist/workflow/index.js +119 -119
- package/dist/workflow/index.mjs +3 -3
- package/dist/workflow/workflow-canvas.js +3 -3
- package/dist/workflow/workflow-canvas.mjs +2 -2
- package/package.json +1 -1
- package/dist/chunk-IMLJ5FAZ.js.map +0 -1
- package/dist/chunk-RWNHZ7FV.mjs.map +0 -1
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { triggerHaptic } from './chunk-D2JF6C3E.mjs';
|
|
3
|
-
import * as
|
|
3
|
+
import * as Headless6 from '@headlessui/react';
|
|
4
4
|
import { Button as Button$1, Transition, Dialog, TransitionChild, DialogPanel, DialogTitle, DialogBackdrop, Menu, MenuButton, MenuItems, MenuItem } from '@headlessui/react';
|
|
5
5
|
import clsx, { clsx as clsx$1 } from 'clsx';
|
|
6
6
|
import * as React11 from 'react';
|
|
7
|
-
import React11__default, { forwardRef, useId, useState, useCallback, createContext, memo,
|
|
7
|
+
import React11__default, { forwardRef, useId, useState, useCallback, createContext, memo, useRef, useEffect, Fragment as Fragment$1, useMemo, useContext, Suspense } from 'react';
|
|
8
8
|
import { AnimatePresence, motion, useMotionValue, useTransform, animate, useInView, useSpring } from 'framer-motion';
|
|
9
9
|
import NextLink from 'next/link';
|
|
10
10
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
11
11
|
import { useTranslations, useLocale } from 'next-intl';
|
|
12
|
-
import { ChevronDownIcon, CheckCircleIcon, EyeSlashIcon
|
|
12
|
+
import { ChevronDownIcon, CheckCircleIcon, EyeSlashIcon, EyeIcon, XMarkIcon, CheckIcon, ChevronLeftIcon, ChevronRightIcon, EllipsisVerticalIcon, ClipboardDocumentIcon as ClipboardDocumentIcon$1, ArrowDownTrayIcon } from '@heroicons/react/20/solid';
|
|
13
13
|
import * as HeroIcons from '@heroicons/react/24/outline';
|
|
14
|
-
import { PlusIcon, MinusIcon,
|
|
14
|
+
import { PlusIcon, MinusIcon, MapIcon, XMarkIcon as XMarkIcon$1, ClockIcon, BuildingStorefrontIcon, MagnifyingGlassIcon, InformationCircleIcon, ArrowTrendingUpIcon, ArrowTrendingDownIcon, ChevronUpIcon, ChevronDownIcon as ChevronDownIcon$1, ChevronUpDownIcon, DocumentMagnifyingGlassIcon, ShieldExclamationIcon, ServerStackIcon, WifiIcon, ExclamationTriangleIcon, ArrowPathIcon, FolderOpenIcon, BellIcon, TrashIcon, ExclamationCircleIcon, CheckCircleIcon as CheckCircleIcon$1, CheckIcon as CheckIcon$1, ClipboardDocumentCheckIcon, ClipboardDocumentIcon, CalendarDaysIcon, ChevronLeftIcon as ChevronLeftIcon$1, ChevronRightIcon as ChevronRightIcon$1, FunnelIcon, BeakerIcon, WrenchScrewdriverIcon, EyeDropperIcon, MoonIcon as MoonIcon$1, SunIcon as SunIcon$1, UserCircleIcon, ArrowRightOnRectangleIcon, LanguageIcon, Squares2X2Icon, PlusCircleIcon, GlobeAltIcon, XCircleIcon, LockClosedIcon, UserIcon } from '@heroicons/react/24/outline';
|
|
15
15
|
import * as Popover from '@radix-ui/react-popover';
|
|
16
16
|
import { createPortal } from 'react-dom';
|
|
17
17
|
import { startOfDay, startOfMonth, endOfMonth, eachDayOfInterval, getDay, subMonths, addMonths, isAfter, format, isSameDay, isSameMonth, parse } from 'date-fns';
|
|
@@ -23,12 +23,12 @@ import Image from 'next/image';
|
|
|
23
23
|
import { CalendarIcon, ChevronLeftIcon as ChevronLeftIcon$2, ChevronRightIcon as ChevronRightIcon$2 } from 'lucide-react';
|
|
24
24
|
import { geoAlbersUsa, geoMercator, geoPath } from 'd3-geo';
|
|
25
25
|
export { LOCALE_FLAGS } from '@datatechsolutions/shared-domain/i18n';
|
|
26
|
-
import * as ProgressPrimitive from '@radix-ui/react-progress';
|
|
27
26
|
import * as TabsPrimitive from '@radix-ui/react-tabs';
|
|
27
|
+
import * as ProgressPrimitive from '@radix-ui/react-progress';
|
|
28
28
|
import { create } from 'zustand';
|
|
29
29
|
|
|
30
30
|
var Link = forwardRef(function Link2(props, ref) {
|
|
31
|
-
return /* @__PURE__ */ jsx(
|
|
31
|
+
return /* @__PURE__ */ jsx(Headless6.DataInteractive, { children: /* @__PURE__ */ jsx(NextLink, { ...props, ref }) });
|
|
32
32
|
});
|
|
33
33
|
|
|
34
34
|
// src/lib/animations.ts
|
|
@@ -996,7 +996,7 @@ var Input = forwardRef(
|
|
|
996
996
|
onClick: togglePassword,
|
|
997
997
|
className: "p-1 rounded-full text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors",
|
|
998
998
|
"aria-label": showPassword ? t("hidePassword") : t("showPassword"),
|
|
999
|
-
children: showPassword ? /* @__PURE__ */ jsx(EyeSlashIcon
|
|
999
|
+
children: showPassword ? /* @__PURE__ */ jsx(EyeSlashIcon, { className: "h-5 w-5" }) : /* @__PURE__ */ jsx(EyeIcon, { className: "h-5 w-5" })
|
|
1000
1000
|
}
|
|
1001
1001
|
) }),
|
|
1002
1002
|
/* @__PURE__ */ jsx(AnimatePresence, { children: showClearButton && /* @__PURE__ */ jsx(
|
|
@@ -2906,10 +2906,10 @@ function TagBadge({
|
|
|
2906
2906
|
value,
|
|
2907
2907
|
size = "sm",
|
|
2908
2908
|
className = "",
|
|
2909
|
-
styles:
|
|
2909
|
+
styles: styles2 = {},
|
|
2910
2910
|
fallbackStyle = DEFAULT_FALLBACK_STYLE
|
|
2911
2911
|
}) {
|
|
2912
|
-
const style =
|
|
2912
|
+
const style = styles2[value] ?? fallbackStyle;
|
|
2913
2913
|
const sizeClass = SIZE_CLASSES[size];
|
|
2914
2914
|
return /* @__PURE__ */ jsx(
|
|
2915
2915
|
"span",
|
|
@@ -2987,7 +2987,7 @@ function SegmentedControl({
|
|
|
2987
2987
|
(seg) => typeof seg === "string" ? { value: seg, label: seg } : seg
|
|
2988
2988
|
);
|
|
2989
2989
|
const selectedIndex = normalizedSegments.findIndex((seg) => seg.value === value);
|
|
2990
|
-
const
|
|
2990
|
+
const styles2 = sizeStyles2[size];
|
|
2991
2991
|
useEffect(() => {
|
|
2992
2992
|
if (containerRef.current && selectedIndex >= 0) {
|
|
2993
2993
|
const container = containerRef.current;
|
|
@@ -3015,7 +3015,7 @@ function SegmentedControl({
|
|
|
3015
3015
|
className: `
|
|
3016
3016
|
relative inline-flex items-center rounded-xl
|
|
3017
3017
|
bg-gray-100 dark:bg-gray-800
|
|
3018
|
-
${
|
|
3018
|
+
${styles2.container}
|
|
3019
3019
|
${fullWidth ? "w-full" : ""}
|
|
3020
3020
|
${disabled ? "opacity-50 pointer-events-none" : ""}
|
|
3021
3021
|
`,
|
|
@@ -3042,7 +3042,7 @@ function SegmentedControl({
|
|
|
3042
3042
|
className: `
|
|
3043
3043
|
relative z-10 flex items-center justify-center gap-1.5
|
|
3044
3044
|
font-medium rounded-lg transition-colors duration-150
|
|
3045
|
-
${
|
|
3045
|
+
${styles2.segment}
|
|
3046
3046
|
${fullWidth ? "flex-1" : ""}
|
|
3047
3047
|
${isSelected ? "text-gray-900 dark:text-white" : "text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-300"}
|
|
3048
3048
|
`,
|
|
@@ -4881,7 +4881,7 @@ function DynamicIslandNotification({
|
|
|
4881
4881
|
position = "right"
|
|
4882
4882
|
}) {
|
|
4883
4883
|
const [state, setState] = useState("idle");
|
|
4884
|
-
const
|
|
4884
|
+
const styles2 = variantStyles[variant];
|
|
4885
4885
|
useEffect(() => {
|
|
4886
4886
|
if (show) {
|
|
4887
4887
|
setState("expanded");
|
|
@@ -4906,12 +4906,12 @@ function DynamicIslandNotification({
|
|
|
4906
4906
|
position,
|
|
4907
4907
|
idleContent: (
|
|
4908
4908
|
// Idle: Colored icon pill
|
|
4909
|
-
/* @__PURE__ */ jsx("div", { className: "flex items-center justify-center", children: icon && /* @__PURE__ */ jsx("div", { className: `h-6 w-6 rounded-full ${
|
|
4909
|
+
/* @__PURE__ */ jsx("div", { className: "flex items-center justify-center", children: icon && /* @__PURE__ */ jsx("div", { className: `h-6 w-6 rounded-full ${styles2.iconBg} flex items-center justify-center`, children: /* @__PURE__ */ jsx("div", { className: "h-4 w-4 text-white", children: icon }) }) })
|
|
4910
4910
|
),
|
|
4911
4911
|
compactContent: (
|
|
4912
4912
|
// Compact: Colored icon + title + message preview
|
|
4913
4913
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 px-4 w-full", children: [
|
|
4914
|
-
icon && /* @__PURE__ */ jsx("div", { className: `h-8 w-8 rounded-full ${
|
|
4914
|
+
icon && /* @__PURE__ */ jsx("div", { className: `h-8 w-8 rounded-full ${styles2.iconBg} flex items-center justify-center shrink-0`, children: /* @__PURE__ */ jsx("div", { className: "h-5 w-5 text-white", children: icon }) }),
|
|
4915
4915
|
/* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0", children: [
|
|
4916
4916
|
/* @__PURE__ */ jsx("p", { className: "text-sm font-semibold truncate", children: title }),
|
|
4917
4917
|
message && /* @__PURE__ */ jsx("p", { className: "text-xs text-gray-400 truncate", children: message })
|
|
@@ -4921,9 +4921,9 @@ function DynamicIslandNotification({
|
|
|
4921
4921
|
expandedContent: (
|
|
4922
4922
|
// Expanded: Full notification with colored icon background
|
|
4923
4923
|
/* @__PURE__ */ jsxs("div", { className: `flex items-center gap-4 px-5 w-full h-full`, children: [
|
|
4924
|
-
icon && /* @__PURE__ */ jsx("div", { className: `h-14 w-14 rounded-2xl ${
|
|
4924
|
+
icon && /* @__PURE__ */ jsx("div", { className: `h-14 w-14 rounded-2xl ${styles2.iconBg} flex items-center justify-center shrink-0 ${styles2.glow}`, children: /* @__PURE__ */ jsx("div", { className: "h-8 w-8 text-white", children: icon }) }),
|
|
4925
4925
|
/* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0", children: [
|
|
4926
|
-
appName && /* @__PURE__ */ jsx("p", { className: `text-[11px] uppercase tracking-wide font-medium ${
|
|
4926
|
+
appName && /* @__PURE__ */ jsx("p", { className: `text-[11px] uppercase tracking-wide font-medium ${styles2.accentColor}`, children: appName }),
|
|
4927
4927
|
/* @__PURE__ */ jsx("p", { className: "text-[15px] font-semibold leading-tight", children: title }),
|
|
4928
4928
|
message && /* @__PURE__ */ jsx("p", { className: "text-[13px] text-gray-400 mt-0.5 truncate", children: message })
|
|
4929
4929
|
] })
|
|
@@ -5444,16 +5444,16 @@ function Dialog4({
|
|
|
5444
5444
|
children,
|
|
5445
5445
|
...props
|
|
5446
5446
|
}) {
|
|
5447
|
-
return /* @__PURE__ */ jsxs(
|
|
5447
|
+
return /* @__PURE__ */ jsxs(Headless6.Dialog, { ...props, children: [
|
|
5448
5448
|
/* @__PURE__ */ jsx(
|
|
5449
|
-
|
|
5449
|
+
Headless6.DialogBackdrop,
|
|
5450
5450
|
{
|
|
5451
5451
|
transition: true,
|
|
5452
5452
|
className: "fixed inset-0 flex w-screen justify-center overflow-y-auto bg-zinc-950/25 px-2 py-2 transition duration-100 focus:outline-0 data-closed:opacity-0 data-enter:ease-out data-leave:ease-in sm:px-6 sm:py-8 lg:px-8 lg:py-16 dark:bg-zinc-950/50"
|
|
5453
5453
|
}
|
|
5454
5454
|
),
|
|
5455
5455
|
/* @__PURE__ */ jsx("div", { className: "fixed inset-0 w-screen overflow-y-auto pt-6 sm:pt-0", children: /* @__PURE__ */ jsx("div", { className: "grid min-h-full grid-rows-[1fr_auto] justify-items-center sm:grid-rows-[1fr_auto_3fr] sm:p-4", children: /* @__PURE__ */ jsx(
|
|
5456
|
-
|
|
5456
|
+
Headless6.DialogPanel,
|
|
5457
5457
|
{
|
|
5458
5458
|
transition: true,
|
|
5459
5459
|
className: clsx(
|
|
@@ -5472,7 +5472,7 @@ function DialogTitle3({
|
|
|
5472
5472
|
...props
|
|
5473
5473
|
}) {
|
|
5474
5474
|
return /* @__PURE__ */ jsx(
|
|
5475
|
-
|
|
5475
|
+
Headless6.DialogTitle,
|
|
5476
5476
|
{
|
|
5477
5477
|
...props,
|
|
5478
5478
|
className: clsx(
|
|
@@ -5487,7 +5487,7 @@ function DialogDescription({
|
|
|
5487
5487
|
...props
|
|
5488
5488
|
}) {
|
|
5489
5489
|
return /* @__PURE__ */ jsx(
|
|
5490
|
-
|
|
5490
|
+
Headless6.Description,
|
|
5491
5491
|
{
|
|
5492
5492
|
as: Text,
|
|
5493
5493
|
...props,
|
|
@@ -8557,7 +8557,7 @@ var AvatarButton = forwardRef(function AvatarButton2({
|
|
|
8557
8557
|
if (typeof props.href === "string") {
|
|
8558
8558
|
return /* @__PURE__ */ jsx(Link, { ...props, className: classes, ref, children: /* @__PURE__ */ jsx(TouchTarget, { children: /* @__PURE__ */ jsx(Avatar, { src, square, initials, alt }) }) });
|
|
8559
8559
|
}
|
|
8560
|
-
return /* @__PURE__ */ jsx(
|
|
8560
|
+
return /* @__PURE__ */ jsx(Headless6.Button, { ...props, className: classes, ref, children: /* @__PURE__ */ jsx(TouchTarget, { children: /* @__PURE__ */ jsx(Avatar, { src, square, initials, alt }) }) });
|
|
8561
8561
|
});
|
|
8562
8562
|
var colors = {
|
|
8563
8563
|
red: "bg-red-500/15 text-red-700 group-data-hover:bg-red-500/25 dark:bg-red-500/10 dark:text-red-400 dark:group-data-hover:bg-red-500/20",
|
|
@@ -8605,7 +8605,7 @@ forwardRef(function BadgeButton2({
|
|
|
8605
8605
|
if (typeof props.href === "string") {
|
|
8606
8606
|
return /* @__PURE__ */ jsx(Link, { ...props, className: classes, ref, children: /* @__PURE__ */ jsx(TouchTarget, { children: /* @__PURE__ */ jsx(Badge, { color, children }) }) });
|
|
8607
8607
|
}
|
|
8608
|
-
return /* @__PURE__ */ jsx(
|
|
8608
|
+
return /* @__PURE__ */ jsx(Headless6.Button, { ...props, className: classes, ref, children: /* @__PURE__ */ jsx(TouchTarget, { children: /* @__PURE__ */ jsx(Badge, { color, children }) }) });
|
|
8609
8609
|
});
|
|
8610
8610
|
function Breadcrumb({ pages, actions, centerContent, dashboardPath = "/dashboard" }) {
|
|
8611
8611
|
const t = useTranslations("common");
|
|
@@ -8777,7 +8777,7 @@ function Divider({
|
|
|
8777
8777
|
);
|
|
8778
8778
|
}
|
|
8779
8779
|
function Dropdown(props) {
|
|
8780
|
-
return /* @__PURE__ */ jsx(
|
|
8780
|
+
return /* @__PURE__ */ jsx(Headless6.Menu, { ...props });
|
|
8781
8781
|
}
|
|
8782
8782
|
function DynamicIslandConfirm({
|
|
8783
8783
|
open,
|
|
@@ -9818,7 +9818,7 @@ function Fieldset2({
|
|
|
9818
9818
|
...props
|
|
9819
9819
|
}) {
|
|
9820
9820
|
return /* @__PURE__ */ jsx(
|
|
9821
|
-
|
|
9821
|
+
Headless6.Fieldset,
|
|
9822
9822
|
{
|
|
9823
9823
|
...props,
|
|
9824
9824
|
className: clsx(
|
|
@@ -9833,7 +9833,7 @@ function Legend2({
|
|
|
9833
9833
|
...props
|
|
9834
9834
|
}) {
|
|
9835
9835
|
return /* @__PURE__ */ jsx(
|
|
9836
|
-
|
|
9836
|
+
Headless6.Legend,
|
|
9837
9837
|
{
|
|
9838
9838
|
"data-slot": "legend",
|
|
9839
9839
|
...props,
|
|
@@ -9862,7 +9862,7 @@ function Field2({
|
|
|
9862
9862
|
...props
|
|
9863
9863
|
}) {
|
|
9864
9864
|
return /* @__PURE__ */ jsx(
|
|
9865
|
-
|
|
9865
|
+
Headless6.Field,
|
|
9866
9866
|
{
|
|
9867
9867
|
...props,
|
|
9868
9868
|
className: clsx(
|
|
@@ -9882,7 +9882,7 @@ function Label2({
|
|
|
9882
9882
|
...props
|
|
9883
9883
|
}) {
|
|
9884
9884
|
return /* @__PURE__ */ jsx(
|
|
9885
|
-
|
|
9885
|
+
Headless6.Label,
|
|
9886
9886
|
{
|
|
9887
9887
|
"data-slot": "label",
|
|
9888
9888
|
...props,
|
|
@@ -9898,7 +9898,7 @@ function Description4({
|
|
|
9898
9898
|
...props
|
|
9899
9899
|
}) {
|
|
9900
9900
|
return /* @__PURE__ */ jsx(
|
|
9901
|
-
|
|
9901
|
+
Headless6.Description,
|
|
9902
9902
|
{
|
|
9903
9903
|
"data-slot": "description",
|
|
9904
9904
|
...props,
|
|
@@ -9914,7 +9914,7 @@ function ErrorMessage({
|
|
|
9914
9914
|
...props
|
|
9915
9915
|
}) {
|
|
9916
9916
|
return /* @__PURE__ */ jsx(
|
|
9917
|
-
|
|
9917
|
+
Headless6.Description,
|
|
9918
9918
|
{
|
|
9919
9919
|
"data-slot": "error",
|
|
9920
9920
|
...props,
|
|
@@ -12543,435 +12543,374 @@ var getUsGradient = (state, direction) => getSubdivisionGradient("US", state, di
|
|
|
12543
12543
|
var getUsColors = (state) => getSubdivisionColors("US", state);
|
|
12544
12544
|
var getUsAccent = (state) => getSubdivisionAccent("US", state);
|
|
12545
12545
|
var isValidUsState = (state) => isValidSubdivision("US", state);
|
|
12546
|
-
|
|
12547
|
-
|
|
12548
|
-
|
|
12549
|
-
|
|
12550
|
-
|
|
12551
|
-
|
|
12552
|
-
|
|
12553
|
-
|
|
12554
|
-
|
|
12555
|
-
|
|
12556
|
-
|
|
12557
|
-
|
|
12558
|
-
|
|
12559
|
-
|
|
12560
|
-
|
|
12561
|
-
|
|
12562
|
-
|
|
12563
|
-
|
|
12564
|
-
|
|
12565
|
-
|
|
12566
|
-
|
|
12567
|
-
|
|
12568
|
-
|
|
12569
|
-
|
|
12570
|
-
|
|
12571
|
-
|
|
12572
|
-
|
|
12573
|
-
|
|
12574
|
-
|
|
12575
|
-
|
|
12576
|
-
|
|
12577
|
-
|
|
12578
|
-
|
|
12579
|
-
"
|
|
12580
|
-
|
|
12581
|
-
|
|
12582
|
-
"bg-slate-600/80 text-white backdrop-blur-xl border border-white/10 hover:bg-slate-700/80"
|
|
12583
|
-
],
|
|
12584
|
-
indigo: [
|
|
12585
|
-
"bg-indigo-500/80 text-white backdrop-blur-xl border border-indigo-400/30 hover:bg-indigo-600/80"
|
|
12586
|
-
],
|
|
12587
|
-
cyan: [
|
|
12588
|
-
"bg-cyan-300/80 text-cyan-950 backdrop-blur-xl border border-cyan-200/30 hover:bg-cyan-400/80"
|
|
12589
|
-
],
|
|
12590
|
-
red: [
|
|
12591
|
-
"bg-red-600/80 text-white backdrop-blur-xl border border-red-500/30 hover:bg-red-700/80"
|
|
12592
|
-
],
|
|
12593
|
-
orange: [
|
|
12594
|
-
"bg-orange-500/80 text-white backdrop-blur-xl border border-orange-400/30 hover:bg-orange-600/80"
|
|
12595
|
-
],
|
|
12596
|
-
amber: [
|
|
12597
|
-
"bg-amber-400/80 text-amber-950 backdrop-blur-xl border border-amber-300/30 hover:bg-amber-500/80"
|
|
12598
|
-
],
|
|
12599
|
-
yellow: [
|
|
12600
|
-
"bg-yellow-300/80 text-yellow-950 backdrop-blur-xl border border-yellow-200/30 hover:bg-yellow-400/80"
|
|
12601
|
-
],
|
|
12602
|
-
lime: [
|
|
12603
|
-
"bg-lime-300/80 text-lime-950 backdrop-blur-xl border border-lime-200/30 hover:bg-lime-400/80"
|
|
12604
|
-
],
|
|
12605
|
-
green: [
|
|
12606
|
-
"bg-green-600/80 text-white backdrop-blur-xl border border-green-500/30 hover:bg-green-700/80"
|
|
12607
|
-
],
|
|
12608
|
-
emerald: [
|
|
12609
|
-
"bg-emerald-600/80 text-white backdrop-blur-xl border border-emerald-500/30 hover:bg-emerald-700/80"
|
|
12610
|
-
],
|
|
12611
|
-
teal: [
|
|
12612
|
-
"bg-teal-600/80 text-white backdrop-blur-xl border border-teal-500/30 hover:bg-teal-700/80"
|
|
12613
|
-
],
|
|
12614
|
-
sky: [
|
|
12615
|
-
"bg-sky-500/80 text-white backdrop-blur-xl border border-sky-400/30 hover:bg-sky-600/80"
|
|
12616
|
-
],
|
|
12617
|
-
blue: [
|
|
12618
|
-
"bg-blue-600/80 text-white backdrop-blur-xl border border-blue-500/30 hover:bg-blue-700/80"
|
|
12619
|
-
],
|
|
12620
|
-
brand: [
|
|
12621
|
-
"bg-brand-600/80 text-white backdrop-blur-xl border border-brand-500/30 hover:bg-brand-700/80"
|
|
12622
|
-
],
|
|
12623
|
-
accent: [
|
|
12624
|
-
"bg-accent/80 text-accent-foreground backdrop-blur-xl border border-accent/30 hover:bg-accent/70"
|
|
12625
|
-
],
|
|
12626
|
-
violet: [
|
|
12627
|
-
"bg-violet-500/80 text-white backdrop-blur-xl border border-violet-400/30 hover:bg-violet-600/80"
|
|
12628
|
-
],
|
|
12629
|
-
purple: [
|
|
12630
|
-
"bg-purple-500/80 text-white backdrop-blur-xl border border-purple-400/30 hover:bg-purple-600/80"
|
|
12631
|
-
],
|
|
12632
|
-
fuchsia: [
|
|
12633
|
-
"bg-fuchsia-500/80 text-white backdrop-blur-xl border border-fuchsia-400/30 hover:bg-fuchsia-600/80"
|
|
12634
|
-
],
|
|
12635
|
-
pink: [
|
|
12636
|
-
"bg-pink-500/80 text-white backdrop-blur-xl border border-pink-400/30 hover:bg-pink-600/80"
|
|
12637
|
-
],
|
|
12638
|
-
rose: [
|
|
12639
|
-
"bg-rose-500/80 text-white backdrop-blur-xl border border-rose-400/30 hover:bg-rose-600/80"
|
|
12640
|
-
]
|
|
12641
|
-
}
|
|
12642
|
-
};
|
|
12643
|
-
var Button6 = forwardRef(function Button7({
|
|
12644
|
-
color,
|
|
12645
|
-
outline,
|
|
12646
|
-
plain,
|
|
12647
|
-
className,
|
|
12648
|
-
children,
|
|
12649
|
-
loading,
|
|
12650
|
-
"aria-label": ariaLabel,
|
|
12651
|
-
"aria-describedby": ariaDescribedBy,
|
|
12652
|
-
"aria-busy": ariaBusy,
|
|
12653
|
-
...props
|
|
12654
|
-
}, ref) {
|
|
12655
|
-
const classes = clsx(
|
|
12656
|
-
className,
|
|
12657
|
-
styles2.base,
|
|
12658
|
-
outline ? styles2.outline : plain ? styles2.plain : clsx(styles2.solid, styles2.colors[color ?? "brand"])
|
|
12659
|
-
);
|
|
12660
|
-
const accessibilityProps = {
|
|
12661
|
-
"aria-label": ariaLabel,
|
|
12662
|
-
"aria-describedby": ariaDescribedBy,
|
|
12663
|
-
"aria-busy": ariaBusy || loading,
|
|
12664
|
-
...loading && { disabled: true }
|
|
12665
|
-
};
|
|
12666
|
-
return "href" in props ? /* @__PURE__ */ jsx(
|
|
12667
|
-
Link4,
|
|
12668
|
-
{
|
|
12669
|
-
...props,
|
|
12670
|
-
...accessibilityProps,
|
|
12671
|
-
className: classes,
|
|
12672
|
-
ref,
|
|
12673
|
-
children: /* @__PURE__ */ jsxs(TouchTarget2, { children: [
|
|
12674
|
-
loading && /* @__PURE__ */ jsx(
|
|
12675
|
-
"span",
|
|
12546
|
+
function DataPagination({
|
|
12547
|
+
pagination,
|
|
12548
|
+
onUpdate,
|
|
12549
|
+
loading = false,
|
|
12550
|
+
showPageSize = false,
|
|
12551
|
+
pageSizeOptions = [10, 20, 50],
|
|
12552
|
+
params
|
|
12553
|
+
}) {
|
|
12554
|
+
const effectivePageSize = pagination.pageSize ?? pagination.limit ?? 10;
|
|
12555
|
+
const from = (pagination.page - 1) * effectivePageSize + 1;
|
|
12556
|
+
const to = Math.min(pagination.page * effectivePageSize, pagination.total);
|
|
12557
|
+
const handlePageChange = (page) => onUpdate({ page });
|
|
12558
|
+
const handlePageSizeChange = (value) => onUpdate({ limit: parseInt(value), page: 1 });
|
|
12559
|
+
if (pagination.totalPages <= 1 && !showPageSize) return null;
|
|
12560
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center justify-between gap-3 rounded-2xl liquid-surface px-4 py-3", children: [
|
|
12561
|
+
/* @__PURE__ */ jsxs("p", { className: "text-sm tabular-nums text-slate-600 dark:text-slate-400", children: [
|
|
12562
|
+
from,
|
|
12563
|
+
"\u2013",
|
|
12564
|
+
to,
|
|
12565
|
+
" / ",
|
|
12566
|
+
pagination.total
|
|
12567
|
+
] }),
|
|
12568
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
12569
|
+
showPageSize && /* @__PURE__ */ jsx(
|
|
12570
|
+
"select",
|
|
12571
|
+
{
|
|
12572
|
+
value: params?.limit ?? effectivePageSize,
|
|
12573
|
+
onChange: (event) => handlePageSizeChange(event.target.value),
|
|
12574
|
+
disabled: loading,
|
|
12575
|
+
className: "rounded-xl liquid-surface px-2 py-1.5 text-xs font-medium text-slate-700 outline-none dark:text-slate-300",
|
|
12576
|
+
children: pageSizeOptions.map((size) => /* @__PURE__ */ jsx("option", { value: size, children: size }, size))
|
|
12577
|
+
}
|
|
12578
|
+
),
|
|
12579
|
+
pagination.totalPages > 1 && /* @__PURE__ */ jsxs("nav", { className: "flex items-center gap-1", "aria-label": "Pagination", children: [
|
|
12580
|
+
/* @__PURE__ */ jsx(
|
|
12581
|
+
"button",
|
|
12676
12582
|
{
|
|
12677
|
-
|
|
12678
|
-
|
|
12583
|
+
type: "button",
|
|
12584
|
+
disabled: pagination.page <= 1 || loading,
|
|
12585
|
+
onClick: () => handlePageChange(pagination.page - 1),
|
|
12586
|
+
className: "inline-flex h-9 w-9 items-center justify-center rounded-xl text-slate-500 transition hover:bg-white/40 disabled:opacity-30 dark:text-slate-400 dark:hover:bg-white/[0.08]",
|
|
12587
|
+
children: /* @__PURE__ */ jsx(ChevronLeftIcon, { className: "h-5 w-5" })
|
|
12679
12588
|
}
|
|
12680
12589
|
),
|
|
12681
|
-
|
|
12682
|
-
|
|
12683
|
-
|
|
12684
|
-
|
|
12685
|
-
|
|
12686
|
-
|
|
12687
|
-
|
|
12688
|
-
|
|
12689
|
-
|
|
12690
|
-
|
|
12691
|
-
|
|
12692
|
-
|
|
12693
|
-
|
|
12590
|
+
getPageNumbers(pagination.page, pagination.totalPages).map(
|
|
12591
|
+
(page, index) => page === "..." ? /* @__PURE__ */ jsx(
|
|
12592
|
+
"span",
|
|
12593
|
+
{
|
|
12594
|
+
className: "inline-flex h-9 w-6 items-center justify-center text-xs text-slate-400",
|
|
12595
|
+
children: "\u2026"
|
|
12596
|
+
},
|
|
12597
|
+
`ellipsis-${index}`
|
|
12598
|
+
) : /* @__PURE__ */ jsx(
|
|
12599
|
+
"button",
|
|
12600
|
+
{
|
|
12601
|
+
type: "button",
|
|
12602
|
+
disabled: loading,
|
|
12603
|
+
onClick: () => handlePageChange(page),
|
|
12604
|
+
"aria-current": page === pagination.page ? "page" : void 0,
|
|
12605
|
+
className: `inline-flex h-9 min-w-9 items-center justify-center rounded-xl px-2 text-sm font-medium transition ${page === pagination.page ? "liquid-surface liquid-surface-active text-slate-900 dark:text-white" : "text-slate-500 hover:bg-white/40 dark:text-slate-400 dark:hover:bg-white/[0.08]"}`,
|
|
12606
|
+
children: page
|
|
12607
|
+
},
|
|
12608
|
+
`page-${page}`
|
|
12609
|
+
)
|
|
12610
|
+
),
|
|
12611
|
+
/* @__PURE__ */ jsx(
|
|
12612
|
+
"button",
|
|
12694
12613
|
{
|
|
12695
|
-
|
|
12696
|
-
|
|
12614
|
+
type: "button",
|
|
12615
|
+
disabled: pagination.page >= pagination.totalPages || loading,
|
|
12616
|
+
onClick: () => handlePageChange(pagination.page + 1),
|
|
12617
|
+
className: "inline-flex h-9 w-9 items-center justify-center rounded-xl text-slate-500 transition hover:bg-white/40 disabled:opacity-30 dark:text-slate-400 dark:hover:bg-white/[0.08]",
|
|
12618
|
+
children: /* @__PURE__ */ jsx(ChevronRightIcon, { className: "h-5 w-5" })
|
|
12697
12619
|
}
|
|
12698
|
-
)
|
|
12699
|
-
children
|
|
12620
|
+
)
|
|
12700
12621
|
] })
|
|
12701
|
-
}
|
|
12702
|
-
);
|
|
12703
|
-
});
|
|
12704
|
-
function TouchTarget2({ children }) {
|
|
12705
|
-
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
12706
|
-
/* @__PURE__ */ jsx(
|
|
12707
|
-
"span",
|
|
12708
|
-
{
|
|
12709
|
-
className: "absolute top-1/2 left-1/2 size-[max(100%,2.75rem)] -translate-x-1/2 -translate-y-1/2 pointer-fine:hidden",
|
|
12710
|
-
"aria-hidden": "true"
|
|
12711
|
-
}
|
|
12712
|
-
),
|
|
12713
|
-
children
|
|
12622
|
+
] })
|
|
12714
12623
|
] });
|
|
12715
12624
|
}
|
|
12716
|
-
function
|
|
12717
|
-
|
|
12718
|
-
})
|
|
12719
|
-
|
|
12720
|
-
|
|
12721
|
-
|
|
12722
|
-
|
|
12723
|
-
|
|
12724
|
-
|
|
12725
|
-
|
|
12726
|
-
"*:data-[slot=icon]:pointer-events-none *:data-[slot=icon]:absolute *:data-[slot=icon]:top-3 *:data-[slot=icon]:z-10 *:data-[slot=icon]:size-5 sm:*:data-[slot=icon]:top-2.5 sm:*:data-[slot=icon]:size-4",
|
|
12727
|
-
"[&>[data-slot=icon]:first-child]:left-3 sm:[&>[data-slot=icon]:first-child]:left-2.5 [&>[data-slot=icon]:last-child]:right-3 sm:[&>[data-slot=icon]:last-child]:right-2.5",
|
|
12728
|
-
"*:data-[slot=icon]:text-slate-500"
|
|
12729
|
-
),
|
|
12730
|
-
children
|
|
12625
|
+
function getPageNumbers(currentPage, totalPages) {
|
|
12626
|
+
if (totalPages <= 7) {
|
|
12627
|
+
return Array.from({ length: totalPages }, (_, i) => i + 1);
|
|
12628
|
+
}
|
|
12629
|
+
const pages = [1];
|
|
12630
|
+
if (currentPage <= 4) {
|
|
12631
|
+
for (let i = 2; i <= Math.min(5, totalPages); i++) pages.push(i);
|
|
12632
|
+
if (totalPages > 5) {
|
|
12633
|
+
pages.push("...");
|
|
12634
|
+
pages.push(totalPages);
|
|
12731
12635
|
}
|
|
12732
|
-
)
|
|
12636
|
+
} else if (currentPage >= totalPages - 3) {
|
|
12637
|
+
pages.push("...");
|
|
12638
|
+
for (let i = Math.max(totalPages - 4, 2); i <= totalPages; i++)
|
|
12639
|
+
pages.push(i);
|
|
12640
|
+
} else {
|
|
12641
|
+
pages.push("...");
|
|
12642
|
+
for (let i = currentPage - 1; i <= currentPage + 1; i++) pages.push(i);
|
|
12643
|
+
pages.push("...");
|
|
12644
|
+
pages.push(totalPages);
|
|
12645
|
+
}
|
|
12646
|
+
return pages;
|
|
12733
12647
|
}
|
|
12734
|
-
var
|
|
12735
|
-
|
|
12736
|
-
|
|
12737
|
-
"
|
|
12738
|
-
|
|
12739
|
-
"aria-invalid": ariaInvalid,
|
|
12740
|
-
"aria-required": ariaRequired,
|
|
12741
|
-
required,
|
|
12742
|
-
invalid,
|
|
12743
|
-
...props
|
|
12744
|
-
}, ref) {
|
|
12745
|
-
return /* @__PURE__ */ jsx(
|
|
12746
|
-
"span",
|
|
12747
|
-
{
|
|
12748
|
-
"data-slot": "control",
|
|
12749
|
-
className: clsx([
|
|
12750
|
-
className,
|
|
12751
|
-
// Basic layout
|
|
12752
|
-
"relative block w-full",
|
|
12753
|
-
// Focus ring
|
|
12754
|
-
"after:pointer-events-none after:absolute after:inset-0 after:rounded-xl after:ring-transparent after:ring-inset sm:focus-within:after:ring-2 sm:focus-within:after:ring-indigo-500",
|
|
12755
|
-
// Disabled state
|
|
12756
|
-
"has-data-disabled:opacity-50"
|
|
12757
|
-
]),
|
|
12758
|
-
children: /* @__PURE__ */ jsx(
|
|
12759
|
-
Headless11.Input,
|
|
12760
|
-
{
|
|
12761
|
-
ref,
|
|
12762
|
-
...props,
|
|
12763
|
-
"aria-label": ariaLabel,
|
|
12764
|
-
"aria-describedby": ariaDescribedBy,
|
|
12765
|
-
"aria-invalid": ariaInvalid || invalid,
|
|
12766
|
-
"aria-required": ariaRequired || required,
|
|
12767
|
-
style: {
|
|
12768
|
-
...props.style,
|
|
12769
|
-
// Override autofill with CSS custom properties
|
|
12770
|
-
"--autofill-bg": "white",
|
|
12771
|
-
"--autofill-color": "black"
|
|
12772
|
-
},
|
|
12773
|
-
className: clsx([
|
|
12774
|
-
// Date classes
|
|
12775
|
-
props.type && dateTypes.includes(props.type) && [
|
|
12776
|
-
"[&::-webkit-datetime-edit-fields-wrapper]:p-0",
|
|
12777
|
-
"[&::-webkit-date-and-time-value]:min-h-[1.5em]",
|
|
12778
|
-
"[&::-webkit-datetime-edit]:inline-flex",
|
|
12779
|
-
"[&::-webkit-datetime-edit]:p-0",
|
|
12780
|
-
"[&::-webkit-datetime-edit-year-field]:p-0",
|
|
12781
|
-
"[&::-webkit-datetime-edit-month-field]:p-0",
|
|
12782
|
-
"[&::-webkit-datetime-edit-day-field]:p-0",
|
|
12783
|
-
"[&::-webkit-datetime-edit-hour-field]:p-0",
|
|
12784
|
-
"[&::-webkit-datetime-edit-minute-field]:p-0",
|
|
12785
|
-
"[&::-webkit-datetime-edit-second-field]:p-0",
|
|
12786
|
-
"[&::-webkit-datetime-edit-millisecond-field]:p-0",
|
|
12787
|
-
"[&::-webkit-datetime-edit-meridiem-field]:p-0"
|
|
12788
|
-
],
|
|
12789
|
-
// Basic layout
|
|
12790
|
-
"relative block w-full appearance-none rounded-xl px-3 py-2.5",
|
|
12791
|
-
// Typography
|
|
12792
|
-
"text-sm text-slate-900 dark:text-white placeholder:text-slate-400 dark:placeholder:text-slate-500",
|
|
12793
|
-
// Border
|
|
12794
|
-
"border border-white/50 data-hover:border-white/70 dark:border-white/10 dark:data-hover:border-white/20",
|
|
12795
|
-
// Background color — glass surface
|
|
12796
|
-
"liquid-surface",
|
|
12797
|
-
// Hide default focus styles
|
|
12798
|
-
"focus:outline-none",
|
|
12799
|
-
// Invalid state
|
|
12800
|
-
"data-invalid:border-red-500 data-invalid:data-hover:border-red-500 dark:data-invalid:border-red-500 dark:data-invalid:data-hover:border-red-500",
|
|
12801
|
-
// Disabled state
|
|
12802
|
-
"data-disabled:border-white/30 dark:data-disabled:border-white/15 dark:data-disabled:bg-white/2.5 dark:data-hover:data-disabled:border-white/15",
|
|
12803
|
-
// System icons
|
|
12804
|
-
"dark:scheme-dark",
|
|
12805
|
-
// Autofill override styles
|
|
12806
|
-
"[&:-webkit-autofill]:!shadow-[inset_0_0_0_1000px_white] [&:-webkit-autofill]:!text-black",
|
|
12807
|
-
"[&:-webkit-autofill:hover]:!shadow-[inset_0_0_0_1000px_white] [&:-webkit-autofill:hover]:!text-black",
|
|
12808
|
-
"[&:-webkit-autofill:focus]:!shadow-[inset_0_0_0_1000px_white] [&:-webkit-autofill:focus]:!text-black",
|
|
12809
|
-
"[&:-webkit-autofill:active]:!shadow-[inset_0_0_0_1000px_white] [&:-webkit-autofill:active]:!text-black",
|
|
12810
|
-
"dark:[&:-webkit-autofill]:!shadow-[inset_0_0_0_1000px_rgb(15,23,42)] dark:[&:-webkit-autofill]:!text-slate-200",
|
|
12811
|
-
"dark:[&:-webkit-autofill:hover]:!shadow-[inset_0_0_0_1000px_rgb(15,23,42)] dark:[&:-webkit-autofill:hover]:!text-slate-200",
|
|
12812
|
-
"dark:[&:-webkit-autofill:focus]:!shadow-[inset_0_0_0_1000px_rgb(15,23,42)] dark:[&:-webkit-autofill:focus]:!text-slate-200",
|
|
12813
|
-
"dark:[&:-webkit-autofill:active]:!shadow-[inset_0_0_0_1000px_rgb(15,23,42)] dark:[&:-webkit-autofill:active]:!text-slate-200"
|
|
12814
|
-
])
|
|
12815
|
-
}
|
|
12816
|
-
)
|
|
12817
|
-
}
|
|
12818
|
-
);
|
|
12819
|
-
});
|
|
12820
|
-
var SelectContent = ({ children }) => /* @__PURE__ */ jsx(Fragment, { children });
|
|
12821
|
-
var SelectItem = ({
|
|
12822
|
-
children,
|
|
12823
|
-
value
|
|
12824
|
-
}) => /* @__PURE__ */ jsx("option", { value, children });
|
|
12825
|
-
var SelectTrigger = ({
|
|
12826
|
-
children,
|
|
12827
|
-
className
|
|
12828
|
-
}) => /* @__PURE__ */ jsx("div", { className, children });
|
|
12829
|
-
var SelectValue = ({ placeholder }) => /* @__PURE__ */ jsx("span", { children: placeholder });
|
|
12830
|
-
forwardRef(function Select4({
|
|
12648
|
+
var PageHeader = memo(function PageHeader2({
|
|
12649
|
+
title,
|
|
12650
|
+
subtitle,
|
|
12651
|
+
size = "default",
|
|
12652
|
+
actions,
|
|
12831
12653
|
className,
|
|
12832
|
-
|
|
12833
|
-
|
|
12834
|
-
|
|
12835
|
-
|
|
12836
|
-
|
|
12837
|
-
{
|
|
12838
|
-
"data-slot": "control",
|
|
12839
|
-
className: clsx([
|
|
12840
|
-
className,
|
|
12841
|
-
// Basic layout
|
|
12842
|
-
"group relative block w-full",
|
|
12843
|
-
// Background color + shadow applied to inset pseudo element, so shadow blends with border in light mode
|
|
12844
|
-
"before:absolute before:inset-px before:rounded-lg before:bg-white before:shadow-sm",
|
|
12845
|
-
// Background color is moved to control and shadow is removed in dark mode so hide `before` pseudo
|
|
12846
|
-
"dark:before:hidden",
|
|
12847
|
-
// Focus ring
|
|
12848
|
-
"after:pointer-events-none after:absolute after:inset-0 after:rounded-lg after:ring-transparent after:ring-inset has-data-focus:after:ring-2 has-data-focus:after:ring-blue-500",
|
|
12849
|
-
// Disabled state
|
|
12850
|
-
"has-data-disabled:opacity-50 has-data-disabled:before:bg-zinc-950/5 has-data-disabled:before:shadow-none"
|
|
12851
|
-
]),
|
|
12852
|
-
children: [
|
|
12654
|
+
children
|
|
12655
|
+
}) {
|
|
12656
|
+
return /* @__PURE__ */ jsxs("div", { className: clsx("mb-6 sm:mb-8", className), children: [
|
|
12657
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4", children: [
|
|
12658
|
+
/* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
12853
12659
|
/* @__PURE__ */ jsx(
|
|
12854
|
-
|
|
12660
|
+
"h1",
|
|
12855
12661
|
{
|
|
12856
|
-
|
|
12857
|
-
|
|
12858
|
-
|
|
12859
|
-
|
|
12860
|
-
|
|
12861
|
-
"relative block w-full appearance-none rounded-lg py-2.5 sm:py-1.5",
|
|
12862
|
-
// Horizontal padding
|
|
12863
|
-
multiple ? "px-3.5 sm:px-3" : "pr-10 pl-3.5 sm:pr-9 sm:pl-3",
|
|
12864
|
-
// Options (multi-select)
|
|
12865
|
-
"[&_optgroup]:font-semibold",
|
|
12866
|
-
// Typography
|
|
12867
|
-
"text-base/6 text-zinc-950 dark:text-zinc-100 placeholder:text-zinc-500 dark:placeholder:text-zinc-400 sm:text-sm/6",
|
|
12868
|
-
// Border
|
|
12869
|
-
"border border-zinc-950/10 data-hover:border-zinc-950/20 dark:border-white/10 dark:data-hover:border-white/20",
|
|
12870
|
-
// Background color
|
|
12871
|
-
"bg-transparent dark:bg-white/5 dark:*:bg-zinc-800",
|
|
12872
|
-
// Hide default focus styles
|
|
12873
|
-
"focus:outline-none",
|
|
12874
|
-
// Invalid state
|
|
12875
|
-
"data-invalid:border-red-500 data-invalid:data-hover:border-red-500 dark:data-invalid:border-red-600 dark:data-invalid:data-hover:border-red-600",
|
|
12876
|
-
// Disabled state
|
|
12877
|
-
"data-disabled:border-zinc-950/20 data-disabled:opacity-100 dark:data-disabled:border-white/15 dark:data-disabled:bg-white/2.5 dark:data-hover:data-disabled:border-white/15"
|
|
12878
|
-
])
|
|
12662
|
+
className: clsx(
|
|
12663
|
+
"font-bold text-slate-900 dark:text-slate-100 truncate",
|
|
12664
|
+
size === "large" ? "text-3xl" : "text-2xl"
|
|
12665
|
+
),
|
|
12666
|
+
children: title
|
|
12879
12667
|
}
|
|
12880
12668
|
),
|
|
12881
|
-
|
|
12882
|
-
|
|
12883
|
-
|
|
12884
|
-
|
|
12885
|
-
|
|
12886
|
-
|
|
12887
|
-
fill: "none",
|
|
12888
|
-
children: [
|
|
12889
|
-
/* @__PURE__ */ jsx(
|
|
12890
|
-
"path",
|
|
12891
|
-
{
|
|
12892
|
-
d: "M5.75 10.75L8 13L10.25 10.75",
|
|
12893
|
-
strokeWidth: 1.5,
|
|
12894
|
-
strokeLinecap: "round",
|
|
12895
|
-
strokeLinejoin: "round"
|
|
12896
|
-
}
|
|
12897
|
-
),
|
|
12898
|
-
/* @__PURE__ */ jsx(
|
|
12899
|
-
"path",
|
|
12900
|
-
{
|
|
12901
|
-
d: "M10.25 5.25L8 3L5.75 5.25",
|
|
12902
|
-
strokeWidth: 1.5,
|
|
12903
|
-
strokeLinecap: "round",
|
|
12904
|
-
strokeLinejoin: "round"
|
|
12905
|
-
}
|
|
12906
|
-
)
|
|
12907
|
-
]
|
|
12908
|
-
}
|
|
12909
|
-
) })
|
|
12910
|
-
]
|
|
12911
|
-
}
|
|
12912
|
-
);
|
|
12669
|
+
subtitle && /* @__PURE__ */ jsx("p", { className: "mt-2 text-sm text-slate-600 dark:text-slate-400 line-clamp-2", children: subtitle })
|
|
12670
|
+
] }),
|
|
12671
|
+
actions && /* @__PURE__ */ jsx("div", { className: "flex-shrink-0 flex items-center gap-2 flex-wrap", children: actions })
|
|
12672
|
+
] }),
|
|
12673
|
+
children && /* @__PURE__ */ jsx("div", { className: "mt-4", children })
|
|
12674
|
+
] });
|
|
12913
12675
|
});
|
|
12914
|
-
var
|
|
12915
|
-
|
|
12916
|
-
|
|
12917
|
-
|
|
12676
|
+
var PageSectionHeader = memo(function PageSectionHeader2({
|
|
12677
|
+
title,
|
|
12678
|
+
subtitle,
|
|
12679
|
+
actions,
|
|
12680
|
+
className,
|
|
12681
|
+
children
|
|
12682
|
+
}) {
|
|
12683
|
+
return /* @__PURE__ */ jsxs("div", { className: clsx("mb-4", className), children: [
|
|
12684
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-col sm:flex-row sm:items-center sm:justify-between gap-3", children: [
|
|
12685
|
+
/* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
12686
|
+
/* @__PURE__ */ jsx("h2", { className: "text-lg sm:text-xl font-semibold text-slate-900 dark:text-slate-100", children: title }),
|
|
12687
|
+
subtitle && /* @__PURE__ */ jsx("p", { className: "mt-1 text-sm text-slate-600 dark:text-slate-400 line-clamp-2", children: subtitle })
|
|
12688
|
+
] }),
|
|
12689
|
+
actions && /* @__PURE__ */ jsx("div", { className: "flex-shrink-0 flex items-center gap-2 flex-wrap", children: actions })
|
|
12690
|
+
] }),
|
|
12691
|
+
children && /* @__PURE__ */ jsx("div", { className: "mt-3", children })
|
|
12692
|
+
] });
|
|
12693
|
+
});
|
|
12694
|
+
var CardSectionHeader = memo(function CardSectionHeader2({
|
|
12695
|
+
title,
|
|
12696
|
+
subtitle,
|
|
12697
|
+
actions,
|
|
12698
|
+
className,
|
|
12699
|
+
children
|
|
12700
|
+
}) {
|
|
12701
|
+
return /* @__PURE__ */ jsxs("div", { className: clsx("mb-3", className), children: [
|
|
12702
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-col sm:flex-row sm:items-center sm:justify-between gap-2", children: [
|
|
12703
|
+
/* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
12704
|
+
/* @__PURE__ */ jsx("h3", { className: "text-base sm:text-lg font-medium text-slate-900 dark:text-slate-100", children: title }),
|
|
12705
|
+
subtitle && /* @__PURE__ */ jsx("p", { className: "mt-1 text-xs sm:text-sm text-slate-600 dark:text-slate-400 line-clamp-1", children: subtitle })
|
|
12706
|
+
] }),
|
|
12707
|
+
actions && /* @__PURE__ */ jsx("div", { className: "flex-shrink-0 flex items-center gap-1 flex-wrap", children: actions })
|
|
12708
|
+
] }),
|
|
12709
|
+
children && /* @__PURE__ */ jsx("div", { className: "mt-2", children })
|
|
12710
|
+
] });
|
|
12711
|
+
});
|
|
12712
|
+
var Tabs = TabsPrimitive.Root;
|
|
12713
|
+
var TabsList = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
12714
|
+
TabsPrimitive.List,
|
|
12715
|
+
{
|
|
12716
|
+
ref,
|
|
12717
|
+
className: clsx(
|
|
12718
|
+
"inline-flex h-9 items-center justify-center rounded-lg bg-muted/50 p-0.5 text-muted-foreground",
|
|
12719
|
+
className
|
|
12720
|
+
),
|
|
12721
|
+
...props
|
|
12722
|
+
}
|
|
12723
|
+
));
|
|
12724
|
+
TabsList.displayName = TabsPrimitive.List.displayName;
|
|
12725
|
+
var TabsTrigger = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
12726
|
+
TabsPrimitive.Trigger,
|
|
12727
|
+
{
|
|
12728
|
+
ref,
|
|
12729
|
+
className: clsx(
|
|
12730
|
+
"inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
|
|
12731
|
+
className
|
|
12732
|
+
),
|
|
12733
|
+
...props
|
|
12734
|
+
}
|
|
12735
|
+
));
|
|
12736
|
+
TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
|
|
12737
|
+
var TabsContent = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
12738
|
+
TabsPrimitive.Content,
|
|
12739
|
+
{
|
|
12740
|
+
ref,
|
|
12741
|
+
className: clsx(
|
|
12742
|
+
"mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
|
|
12743
|
+
className
|
|
12744
|
+
),
|
|
12745
|
+
...props
|
|
12746
|
+
}
|
|
12747
|
+
));
|
|
12748
|
+
TabsContent.displayName = TabsPrimitive.Content.displayName;
|
|
12749
|
+
var ContactCard = React11__default.memo(function ContactCard2({
|
|
12750
|
+
type,
|
|
12751
|
+
email,
|
|
12752
|
+
phone
|
|
12753
|
+
}) {
|
|
12754
|
+
const t = useTranslations("contact");
|
|
12755
|
+
return /* @__PURE__ */ jsxs("div", { className: "rounded-2xl bg-gray-50 p-10", children: [
|
|
12756
|
+
/* @__PURE__ */ jsx("h3", { className: "text-base/7 font-semibold text-gray-900", children: t(type) }),
|
|
12757
|
+
/* @__PURE__ */ jsxs("dl", { className: "mt-3 space-y-1 text-sm/6 text-gray-600", children: [
|
|
12758
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
12759
|
+
/* @__PURE__ */ jsx("dt", { className: "sr-only", children: "Email" }),
|
|
12760
|
+
/* @__PURE__ */ jsx("dd", { children: /* @__PURE__ */ jsx("a", { href: `mailto:${email}`, className: "font-semibold text-blue-600", children: email }) })
|
|
12761
|
+
] }),
|
|
12762
|
+
/* @__PURE__ */ jsxs("div", { className: "mt-1", children: [
|
|
12763
|
+
/* @__PURE__ */ jsx("dt", { className: "sr-only", children: "Telefone" }),
|
|
12764
|
+
/* @__PURE__ */ jsx("dd", { children: phone })
|
|
12765
|
+
] })
|
|
12766
|
+
] })
|
|
12767
|
+
] });
|
|
12768
|
+
});
|
|
12769
|
+
var OfficeCard = React11__default.memo(function OfficeCard2({
|
|
12770
|
+
city,
|
|
12771
|
+
address,
|
|
12772
|
+
postalCode
|
|
12773
|
+
}) {
|
|
12774
|
+
return /* @__PURE__ */ jsxs("div", { className: "rounded-2xl bg-gray-50 p-10", children: [
|
|
12775
|
+
/* @__PURE__ */ jsx("h3", { className: "text-base/7 font-semibold text-gray-900", children: city }),
|
|
12776
|
+
/* @__PURE__ */ jsxs("address", { className: "mt-3 space-y-1 text-sm/6 text-gray-600 not-italic", children: [
|
|
12777
|
+
/* @__PURE__ */ jsx("p", { children: address }),
|
|
12778
|
+
/* @__PURE__ */ jsx("p", { children: postalCode })
|
|
12779
|
+
] })
|
|
12780
|
+
] });
|
|
12781
|
+
});
|
|
12782
|
+
var ContactSection = React11__default.memo(
|
|
12783
|
+
function ContactSection2({ title, subtitle, children }) {
|
|
12784
|
+
return /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 gap-10 py-16 lg:grid-cols-3", children: [
|
|
12785
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
12786
|
+
/* @__PURE__ */ jsx("h2", { className: "text-4xl font-semibold tracking-tight text-pretty text-gray-900", children: title }),
|
|
12787
|
+
/* @__PURE__ */ jsx("p", { className: "mt-4 text-base/7 text-gray-600", children: subtitle })
|
|
12788
|
+
] }),
|
|
12789
|
+
/* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 gap-6 sm:grid-cols-2 lg:col-span-2 lg:gap-8", children })
|
|
12790
|
+
] });
|
|
12791
|
+
}
|
|
12792
|
+
);
|
|
12793
|
+
var Progress = React11.forwardRef(({ className, value, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
12794
|
+
ProgressPrimitive.Root,
|
|
12795
|
+
{
|
|
12796
|
+
ref,
|
|
12797
|
+
className: clsx(
|
|
12798
|
+
"relative h-4 w-full overflow-hidden rounded-full bg-secondary",
|
|
12799
|
+
className
|
|
12800
|
+
),
|
|
12801
|
+
...props,
|
|
12802
|
+
children: /* @__PURE__ */ jsx(
|
|
12803
|
+
ProgressPrimitive.Indicator,
|
|
12918
12804
|
{
|
|
12919
|
-
|
|
12920
|
-
|
|
12921
|
-
...props,
|
|
12922
|
-
children: [
|
|
12923
|
-
children,
|
|
12924
|
-
required && /* @__PURE__ */ jsx("span", { className: "text-red-500 ml-1", children: "*" })
|
|
12925
|
-
]
|
|
12805
|
+
className: "h-full w-full flex-1 bg-primary transition-all",
|
|
12806
|
+
style: { transform: `translateX(-${100 - (value || 0)}%)` }
|
|
12926
12807
|
}
|
|
12927
|
-
)
|
|
12808
|
+
)
|
|
12928
12809
|
}
|
|
12929
|
-
);
|
|
12930
|
-
|
|
12931
|
-
function
|
|
12810
|
+
));
|
|
12811
|
+
Progress.displayName = ProgressPrimitive.Root.displayName;
|
|
12812
|
+
function DropdownButton({
|
|
12813
|
+
as = Button,
|
|
12814
|
+
...props
|
|
12815
|
+
}) {
|
|
12816
|
+
return /* @__PURE__ */ jsx(Headless6.MenuButton, { as, ...props });
|
|
12817
|
+
}
|
|
12818
|
+
function DropdownMenu({
|
|
12819
|
+
anchor = "bottom",
|
|
12932
12820
|
className,
|
|
12933
12821
|
...props
|
|
12934
12822
|
}) {
|
|
12935
12823
|
return /* @__PURE__ */ jsx(
|
|
12936
|
-
|
|
12824
|
+
Headless6.MenuItems,
|
|
12937
12825
|
{
|
|
12938
|
-
"data-slot": "control",
|
|
12939
12826
|
...props,
|
|
12827
|
+
transition: true,
|
|
12828
|
+
anchor,
|
|
12940
12829
|
className: clsx(
|
|
12941
12830
|
className,
|
|
12942
|
-
//
|
|
12943
|
-
"
|
|
12944
|
-
//
|
|
12945
|
-
"
|
|
12831
|
+
// Anchor positioning
|
|
12832
|
+
"[--anchor-gap:--spacing(2)] [--anchor-padding:--spacing(1)] data-[anchor~=end]:[--anchor-offset:6px] data-[anchor~=start]:[--anchor-offset:-6px] sm:data-[anchor~=end]:[--anchor-offset:4px] sm:data-[anchor~=start]:[--anchor-offset:-4px]",
|
|
12833
|
+
// Base styles
|
|
12834
|
+
"isolate w-max rounded-xl p-1",
|
|
12835
|
+
// Invisible border that is only visible in `forced-colors` mode for accessibility purposes
|
|
12836
|
+
"outline outline-transparent focus:outline-hidden",
|
|
12837
|
+
// Handle scrolling when menu won't fit in viewport
|
|
12838
|
+
"overflow-y-auto",
|
|
12839
|
+
// Popover background
|
|
12840
|
+
"bg-white/75 backdrop-blur-xl dark:bg-zinc-800/75",
|
|
12841
|
+
// Shadows
|
|
12842
|
+
"shadow-lg ring-1 ring-zinc-950/10 dark:ring-white/10 dark:ring-inset",
|
|
12843
|
+
// Define grid at the menu level if subgrid is supported
|
|
12844
|
+
"supports-[grid-template-columns:subgrid]:grid supports-[grid-template-columns:subgrid]:grid-cols-[auto_1fr_1.5rem_0.5rem_auto]",
|
|
12845
|
+
// Transitions
|
|
12846
|
+
"transition data-leave:duration-100 data-leave:ease-in data-closed:data-leave:opacity-0"
|
|
12946
12847
|
)
|
|
12947
12848
|
}
|
|
12948
12849
|
);
|
|
12949
12850
|
}
|
|
12950
|
-
function
|
|
12851
|
+
function DropdownItem({
|
|
12852
|
+
className,
|
|
12853
|
+
...props
|
|
12854
|
+
}) {
|
|
12855
|
+
const classes = clsx(
|
|
12856
|
+
className,
|
|
12857
|
+
// Base styles
|
|
12858
|
+
"group cursor-default rounded-lg px-3.5 py-2.5 focus:outline-hidden sm:px-3 sm:py-1.5",
|
|
12859
|
+
// Text styles
|
|
12860
|
+
"text-left text-base/6 text-zinc-950 sm:text-sm/6 dark:text-white forced-colors:text-[CanvasText]",
|
|
12861
|
+
// Focus
|
|
12862
|
+
"data-focus:bg-blue-500 data-focus:text-white",
|
|
12863
|
+
// Disabled state
|
|
12864
|
+
"data-disabled:opacity-50",
|
|
12865
|
+
// Forced colors mode
|
|
12866
|
+
"forced-color-adjust-none forced-colors:data-focus:bg-[Highlight] forced-colors:data-focus:text-[HighlightText] forced-colors:data-focus:*:data-[slot=icon]:text-[HighlightText]",
|
|
12867
|
+
// Use subgrid when available but fallback to an explicit grid layout if not
|
|
12868
|
+
"col-span-full grid grid-cols-[auto_1fr_1.5rem_0.5rem_auto] items-center supports-[grid-template-columns:subgrid]:grid-cols-subgrid",
|
|
12869
|
+
// Icons
|
|
12870
|
+
"*:data-[slot=icon]:col-start-1 *:data-[slot=icon]:row-start-1 *:data-[slot=icon]:mr-2.5 *:data-[slot=icon]:-ml-0.5 *:data-[slot=icon]:size-5 sm:*:data-[slot=icon]:mr-2 sm:*:data-[slot=icon]:size-4",
|
|
12871
|
+
"*:data-[slot=icon]:text-zinc-500 data-focus:*:data-[slot=icon]:text-white dark:*:data-[slot=icon]:text-zinc-400 dark:data-focus:*:data-[slot=icon]:text-white",
|
|
12872
|
+
// Avatar
|
|
12873
|
+
"*:data-[slot=avatar]:mr-2.5 *:data-[slot=avatar]:-ml-1 *:data-[slot=avatar]:size-6 sm:*:data-[slot=avatar]:mr-2 sm:*:data-[slot=avatar]:size-5"
|
|
12874
|
+
);
|
|
12875
|
+
return "href" in props ? /* @__PURE__ */ jsx(Headless6.MenuItem, { as: Link, ...props, className: classes }) : /* @__PURE__ */ jsx(
|
|
12876
|
+
Headless6.MenuItem,
|
|
12877
|
+
{
|
|
12878
|
+
as: "button",
|
|
12879
|
+
type: "button",
|
|
12880
|
+
...props,
|
|
12881
|
+
className: classes
|
|
12882
|
+
}
|
|
12883
|
+
);
|
|
12884
|
+
}
|
|
12885
|
+
function DropdownDivider({
|
|
12951
12886
|
className,
|
|
12952
12887
|
...props
|
|
12953
12888
|
}) {
|
|
12954
12889
|
return /* @__PURE__ */ jsx(
|
|
12955
|
-
|
|
12890
|
+
Headless6.MenuSeparator,
|
|
12956
12891
|
{
|
|
12957
|
-
"data-slot": "field",
|
|
12958
12892
|
...props,
|
|
12959
12893
|
className: clsx(
|
|
12960
12894
|
className,
|
|
12961
|
-
|
|
12962
|
-
"grid grid-cols-[1fr_auto] gap-x-8 gap-y-1 sm:grid-cols-[1fr_auto]",
|
|
12963
|
-
// Control layout
|
|
12964
|
-
"*:data-[slot=control]:col-start-2 *:data-[slot=control]:self-start sm:*:data-[slot=control]:mt-0.5",
|
|
12965
|
-
// Label layout
|
|
12966
|
-
"*:data-[slot=label]:col-start-1 *:data-[slot=label]:row-start-1",
|
|
12967
|
-
// Description layout
|
|
12968
|
-
"*:data-[slot=description]:col-start-1 *:data-[slot=description]:row-start-2",
|
|
12969
|
-
// With description
|
|
12970
|
-
"has-data-[slot=description]:**:data-[slot=label]:font-medium"
|
|
12895
|
+
"col-span-full mx-3.5 my-1 h-px border-0 bg-zinc-950/5 sm:mx-3 dark:bg-white/10 forced-colors:bg-[CanvasText]"
|
|
12971
12896
|
)
|
|
12972
12897
|
}
|
|
12973
12898
|
);
|
|
12974
12899
|
}
|
|
12900
|
+
function DropdownLabel({
|
|
12901
|
+
className,
|
|
12902
|
+
...props
|
|
12903
|
+
}) {
|
|
12904
|
+
return /* @__PURE__ */ jsx(
|
|
12905
|
+
"div",
|
|
12906
|
+
{
|
|
12907
|
+
...props,
|
|
12908
|
+
"data-slot": "label",
|
|
12909
|
+
className: clsx(className, "col-start-2 row-start-1"),
|
|
12910
|
+
...props
|
|
12911
|
+
}
|
|
12912
|
+
);
|
|
12913
|
+
}
|
|
12975
12914
|
var colors2 = {
|
|
12976
12915
|
"dark/zinc": [
|
|
12977
12916
|
"[--switch-bg-ring:var(--color-zinc-950)]/90 [--switch-bg:var(--color-zinc-900)] dark:[--switch-bg-ring:transparent] dark:[--switch-bg:var(--color-white)]/25",
|
|
@@ -13068,7 +13007,7 @@ function Switch2({
|
|
|
13068
13007
|
...props
|
|
13069
13008
|
}) {
|
|
13070
13009
|
return /* @__PURE__ */ jsx(
|
|
13071
|
-
|
|
13010
|
+
Headless6.Switch,
|
|
13072
13011
|
{
|
|
13073
13012
|
"data-slot": "control",
|
|
13074
13013
|
...props,
|
|
@@ -13119,945 +13058,6 @@ function Switch2({
|
|
|
13119
13058
|
}
|
|
13120
13059
|
);
|
|
13121
13060
|
}
|
|
13122
|
-
function DropdownButton({
|
|
13123
|
-
as = Button6,
|
|
13124
|
-
...props
|
|
13125
|
-
}) {
|
|
13126
|
-
return /* @__PURE__ */ jsx(Headless11.MenuButton, { as, ...props });
|
|
13127
|
-
}
|
|
13128
|
-
function DropdownMenu({
|
|
13129
|
-
anchor = "bottom",
|
|
13130
|
-
className,
|
|
13131
|
-
...props
|
|
13132
|
-
}) {
|
|
13133
|
-
return /* @__PURE__ */ jsx(
|
|
13134
|
-
Headless11.MenuItems,
|
|
13135
|
-
{
|
|
13136
|
-
...props,
|
|
13137
|
-
transition: true,
|
|
13138
|
-
anchor,
|
|
13139
|
-
className: clsx(
|
|
13140
|
-
className,
|
|
13141
|
-
// Anchor positioning
|
|
13142
|
-
"[--anchor-gap:--spacing(2)] [--anchor-padding:--spacing(1)] data-[anchor~=end]:[--anchor-offset:6px] data-[anchor~=start]:[--anchor-offset:-6px] sm:data-[anchor~=end]:[--anchor-offset:4px] sm:data-[anchor~=start]:[--anchor-offset:-4px]",
|
|
13143
|
-
// Base styles
|
|
13144
|
-
"isolate w-max rounded-xl p-1",
|
|
13145
|
-
// Invisible border that is only visible in `forced-colors` mode for accessibility purposes
|
|
13146
|
-
"outline outline-transparent focus:outline-hidden",
|
|
13147
|
-
// Handle scrolling when menu won't fit in viewport
|
|
13148
|
-
"overflow-y-auto",
|
|
13149
|
-
// Popover background
|
|
13150
|
-
"bg-white/75 backdrop-blur-xl dark:bg-zinc-800/75",
|
|
13151
|
-
// Shadows
|
|
13152
|
-
"shadow-lg ring-1 ring-zinc-950/10 dark:ring-white/10 dark:ring-inset",
|
|
13153
|
-
// Define grid at the menu level if subgrid is supported
|
|
13154
|
-
"supports-[grid-template-columns:subgrid]:grid supports-[grid-template-columns:subgrid]:grid-cols-[auto_1fr_1.5rem_0.5rem_auto]",
|
|
13155
|
-
// Transitions
|
|
13156
|
-
"transition data-leave:duration-100 data-leave:ease-in data-closed:data-leave:opacity-0"
|
|
13157
|
-
)
|
|
13158
|
-
}
|
|
13159
|
-
);
|
|
13160
|
-
}
|
|
13161
|
-
function DropdownItem({
|
|
13162
|
-
className,
|
|
13163
|
-
...props
|
|
13164
|
-
}) {
|
|
13165
|
-
const classes = clsx(
|
|
13166
|
-
className,
|
|
13167
|
-
// Base styles
|
|
13168
|
-
"group cursor-default rounded-lg px-3.5 py-2.5 focus:outline-hidden sm:px-3 sm:py-1.5",
|
|
13169
|
-
// Text styles
|
|
13170
|
-
"text-left text-base/6 text-zinc-950 sm:text-sm/6 dark:text-white forced-colors:text-[CanvasText]",
|
|
13171
|
-
// Focus
|
|
13172
|
-
"data-focus:bg-blue-500 data-focus:text-white",
|
|
13173
|
-
// Disabled state
|
|
13174
|
-
"data-disabled:opacity-50",
|
|
13175
|
-
// Forced colors mode
|
|
13176
|
-
"forced-color-adjust-none forced-colors:data-focus:bg-[Highlight] forced-colors:data-focus:text-[HighlightText] forced-colors:data-focus:*:data-[slot=icon]:text-[HighlightText]",
|
|
13177
|
-
// Use subgrid when available but fallback to an explicit grid layout if not
|
|
13178
|
-
"col-span-full grid grid-cols-[auto_1fr_1.5rem_0.5rem_auto] items-center supports-[grid-template-columns:subgrid]:grid-cols-subgrid",
|
|
13179
|
-
// Icons
|
|
13180
|
-
"*:data-[slot=icon]:col-start-1 *:data-[slot=icon]:row-start-1 *:data-[slot=icon]:mr-2.5 *:data-[slot=icon]:-ml-0.5 *:data-[slot=icon]:size-5 sm:*:data-[slot=icon]:mr-2 sm:*:data-[slot=icon]:size-4",
|
|
13181
|
-
"*:data-[slot=icon]:text-zinc-500 data-focus:*:data-[slot=icon]:text-white dark:*:data-[slot=icon]:text-zinc-400 dark:data-focus:*:data-[slot=icon]:text-white",
|
|
13182
|
-
// Avatar
|
|
13183
|
-
"*:data-[slot=avatar]:mr-2.5 *:data-[slot=avatar]:-ml-1 *:data-[slot=avatar]:size-6 sm:*:data-[slot=avatar]:mr-2 sm:*:data-[slot=avatar]:size-5"
|
|
13184
|
-
);
|
|
13185
|
-
return "href" in props ? /* @__PURE__ */ jsx(Headless11.MenuItem, { as: Link4, ...props, className: classes }) : /* @__PURE__ */ jsx(
|
|
13186
|
-
Headless11.MenuItem,
|
|
13187
|
-
{
|
|
13188
|
-
as: "button",
|
|
13189
|
-
type: "button",
|
|
13190
|
-
...props,
|
|
13191
|
-
className: classes
|
|
13192
|
-
}
|
|
13193
|
-
);
|
|
13194
|
-
}
|
|
13195
|
-
function DropdownHeader({
|
|
13196
|
-
className,
|
|
13197
|
-
...props
|
|
13198
|
-
}) {
|
|
13199
|
-
return /* @__PURE__ */ jsx(
|
|
13200
|
-
"div",
|
|
13201
|
-
{
|
|
13202
|
-
...props,
|
|
13203
|
-
className: clsx(className, "col-span-5 px-3.5 pt-2.5 pb-1 sm:px-3")
|
|
13204
|
-
}
|
|
13205
|
-
);
|
|
13206
|
-
}
|
|
13207
|
-
function DropdownSection({
|
|
13208
|
-
className,
|
|
13209
|
-
...props
|
|
13210
|
-
}) {
|
|
13211
|
-
return /* @__PURE__ */ jsx(
|
|
13212
|
-
Headless11.MenuSection,
|
|
13213
|
-
{
|
|
13214
|
-
...props,
|
|
13215
|
-
className: clsx(
|
|
13216
|
-
className,
|
|
13217
|
-
// Define grid at the section level instead of the item level if subgrid is supported
|
|
13218
|
-
"col-span-full supports-[grid-template-columns:subgrid]:grid supports-[grid-template-columns:subgrid]:grid-cols-[auto_1fr_1.5rem_0.5rem_auto]"
|
|
13219
|
-
)
|
|
13220
|
-
}
|
|
13221
|
-
);
|
|
13222
|
-
}
|
|
13223
|
-
function DropdownHeading({
|
|
13224
|
-
className,
|
|
13225
|
-
...props
|
|
13226
|
-
}) {
|
|
13227
|
-
return /* @__PURE__ */ jsx(
|
|
13228
|
-
Headless11.MenuHeading,
|
|
13229
|
-
{
|
|
13230
|
-
...props,
|
|
13231
|
-
className: clsx(
|
|
13232
|
-
className,
|
|
13233
|
-
"col-span-full grid grid-cols-[1fr_auto] gap-x-12 px-3.5 pt-2 pb-1 text-sm/5 font-medium text-zinc-500 sm:px-3 sm:text-xs/5 dark:text-zinc-400"
|
|
13234
|
-
)
|
|
13235
|
-
}
|
|
13236
|
-
);
|
|
13237
|
-
}
|
|
13238
|
-
function DropdownDivider({
|
|
13239
|
-
className,
|
|
13240
|
-
...props
|
|
13241
|
-
}) {
|
|
13242
|
-
return /* @__PURE__ */ jsx(
|
|
13243
|
-
Headless11.MenuSeparator,
|
|
13244
|
-
{
|
|
13245
|
-
...props,
|
|
13246
|
-
className: clsx(
|
|
13247
|
-
className,
|
|
13248
|
-
"col-span-full mx-3.5 my-1 h-px border-0 bg-zinc-950/5 sm:mx-3 dark:bg-white/10 forced-colors:bg-[CanvasText]"
|
|
13249
|
-
)
|
|
13250
|
-
}
|
|
13251
|
-
);
|
|
13252
|
-
}
|
|
13253
|
-
function DropdownLabel({
|
|
13254
|
-
className,
|
|
13255
|
-
...props
|
|
13256
|
-
}) {
|
|
13257
|
-
return /* @__PURE__ */ jsx(
|
|
13258
|
-
"div",
|
|
13259
|
-
{
|
|
13260
|
-
...props,
|
|
13261
|
-
"data-slot": "label",
|
|
13262
|
-
className: clsx(className, "col-start-2 row-start-1"),
|
|
13263
|
-
...props
|
|
13264
|
-
}
|
|
13265
|
-
);
|
|
13266
|
-
}
|
|
13267
|
-
function DropdownDescription({
|
|
13268
|
-
className,
|
|
13269
|
-
...props
|
|
13270
|
-
}) {
|
|
13271
|
-
return /* @__PURE__ */ jsx(
|
|
13272
|
-
Headless11.Description,
|
|
13273
|
-
{
|
|
13274
|
-
"data-slot": "description",
|
|
13275
|
-
...props,
|
|
13276
|
-
className: clsx(
|
|
13277
|
-
className,
|
|
13278
|
-
"col-span-2 col-start-2 row-start-2 text-sm/5 text-zinc-500 group-data-focus:text-white sm:text-xs/5 dark:text-zinc-400 forced-colors:group-data-focus:text-[HighlightText]"
|
|
13279
|
-
)
|
|
13280
|
-
}
|
|
13281
|
-
);
|
|
13282
|
-
}
|
|
13283
|
-
function DropdownShortcut({
|
|
13284
|
-
keys,
|
|
13285
|
-
className,
|
|
13286
|
-
...props
|
|
13287
|
-
}) {
|
|
13288
|
-
return /* @__PURE__ */ jsx(
|
|
13289
|
-
Headless11.Description,
|
|
13290
|
-
{
|
|
13291
|
-
as: "kbd",
|
|
13292
|
-
...props,
|
|
13293
|
-
className: clsx(
|
|
13294
|
-
className,
|
|
13295
|
-
"col-start-5 row-start-1 flex justify-self-end"
|
|
13296
|
-
),
|
|
13297
|
-
children: (Array.isArray(keys) ? keys : keys.split("")).map((char, index) => /* @__PURE__ */ jsx(
|
|
13298
|
-
"kbd",
|
|
13299
|
-
{
|
|
13300
|
-
className: clsx([
|
|
13301
|
-
"min-w-[2ch] text-center font-sans text-zinc-400 capitalize group-data-focus:text-white forced-colors:group-data-focus:text-[HighlightText]",
|
|
13302
|
-
// Make sure key names that are longer than one character (like "Tab") have extra space
|
|
13303
|
-
index > 0 && char.length > 1 && "pl-1"
|
|
13304
|
-
]),
|
|
13305
|
-
children: char
|
|
13306
|
-
},
|
|
13307
|
-
index
|
|
13308
|
-
))
|
|
13309
|
-
}
|
|
13310
|
-
);
|
|
13311
|
-
}
|
|
13312
|
-
var Card2 = memo(function Card3({
|
|
13313
|
-
children,
|
|
13314
|
-
className,
|
|
13315
|
-
padding = "md",
|
|
13316
|
-
variant = "default",
|
|
13317
|
-
hover = false,
|
|
13318
|
-
loading = false,
|
|
13319
|
-
onClick
|
|
13320
|
-
}) {
|
|
13321
|
-
const paddingClasses = {
|
|
13322
|
-
none: "",
|
|
13323
|
-
sm: "p-3 sm:p-4",
|
|
13324
|
-
md: "p-4 sm:p-6",
|
|
13325
|
-
lg: "p-6 sm:p-8"
|
|
13326
|
-
};
|
|
13327
|
-
const variantClasses2 = {
|
|
13328
|
-
default: "liquid-surface border border-white/30 dark:border-white/10",
|
|
13329
|
-
elevated: "liquid-surface-strong border border-white/30 dark:border-white/10",
|
|
13330
|
-
outlined: "bg-transparent border-2 border-white/30 dark:border-white/10 backdrop-blur-sm",
|
|
13331
|
-
flat: "liquid-surface"
|
|
13332
|
-
};
|
|
13333
|
-
const hoverClasses = hover || onClick ? "hover:shadow-md transition-shadow duration-200" : "";
|
|
13334
|
-
const clickableClasses = onClick ? "cursor-pointer" : "";
|
|
13335
|
-
const loadingClasses = loading ? "opacity-75 pointer-events-none" : "";
|
|
13336
|
-
return /* @__PURE__ */ jsx(
|
|
13337
|
-
"div",
|
|
13338
|
-
{
|
|
13339
|
-
role: onClick ? "button" : void 0,
|
|
13340
|
-
tabIndex: onClick ? 0 : void 0,
|
|
13341
|
-
className: clsx(
|
|
13342
|
-
"rounded-2xl",
|
|
13343
|
-
variantClasses2[variant],
|
|
13344
|
-
paddingClasses[padding],
|
|
13345
|
-
hoverClasses,
|
|
13346
|
-
clickableClasses,
|
|
13347
|
-
loadingClasses,
|
|
13348
|
-
className
|
|
13349
|
-
),
|
|
13350
|
-
onClick,
|
|
13351
|
-
onKeyDown: onClick ? (e) => {
|
|
13352
|
-
if (e.key === "Enter" || e.key === " ") {
|
|
13353
|
-
e.preventDefault();
|
|
13354
|
-
onClick();
|
|
13355
|
-
}
|
|
13356
|
-
} : void 0,
|
|
13357
|
-
children
|
|
13358
|
-
}
|
|
13359
|
-
);
|
|
13360
|
-
});
|
|
13361
|
-
var CardHeader2 = memo(function CardHeader3({
|
|
13362
|
-
title,
|
|
13363
|
-
subtitle,
|
|
13364
|
-
actions,
|
|
13365
|
-
className,
|
|
13366
|
-
children
|
|
13367
|
-
}) {
|
|
13368
|
-
return /* @__PURE__ */ jsxs("div", { className: clsx("mb-4", className), children: [
|
|
13369
|
-
/* @__PURE__ */ jsxs("div", { className: "flex flex-col sm:flex-row sm:items-center sm:justify-between gap-2", children: [
|
|
13370
|
-
/* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
13371
|
-
/* @__PURE__ */ jsx("h3", { className: "text-lg font-semibold text-slate-900 dark:text-slate-100 truncate", children: title }),
|
|
13372
|
-
subtitle && /* @__PURE__ */ jsx("p", { className: "mt-1 text-sm text-slate-600 dark:text-slate-400 line-clamp-2", children: subtitle })
|
|
13373
|
-
] }),
|
|
13374
|
-
actions && /* @__PURE__ */ jsx("div", { className: "flex-shrink-0 flex items-center gap-2", children: actions })
|
|
13375
|
-
] }),
|
|
13376
|
-
children && /* @__PURE__ */ jsx("div", { className: "mt-3", children })
|
|
13377
|
-
] });
|
|
13378
|
-
});
|
|
13379
|
-
var CardTitle2 = memo(function CardTitle3({
|
|
13380
|
-
children,
|
|
13381
|
-
className
|
|
13382
|
-
}) {
|
|
13383
|
-
return /* @__PURE__ */ jsx(
|
|
13384
|
-
"h3",
|
|
13385
|
-
{
|
|
13386
|
-
className: clsx(
|
|
13387
|
-
"text-lg font-semibold text-slate-900 dark:text-slate-100",
|
|
13388
|
-
className
|
|
13389
|
-
),
|
|
13390
|
-
children
|
|
13391
|
-
}
|
|
13392
|
-
);
|
|
13393
|
-
});
|
|
13394
|
-
var CardDescription2 = memo(function CardDescription3({
|
|
13395
|
-
children,
|
|
13396
|
-
className
|
|
13397
|
-
}) {
|
|
13398
|
-
return /* @__PURE__ */ jsx("p", { className: clsx("text-sm text-slate-600 dark:text-slate-400", className), children });
|
|
13399
|
-
});
|
|
13400
|
-
var CardContent2 = memo(function CardContent3({
|
|
13401
|
-
children,
|
|
13402
|
-
className
|
|
13403
|
-
}) {
|
|
13404
|
-
return /* @__PURE__ */ jsx("div", { className: clsx("text-slate-600 dark:text-slate-400", className), children });
|
|
13405
|
-
});
|
|
13406
|
-
var CardFooter2 = memo(function CardFooter3({
|
|
13407
|
-
children,
|
|
13408
|
-
className,
|
|
13409
|
-
justify = "end"
|
|
13410
|
-
}) {
|
|
13411
|
-
const justifyClasses = {
|
|
13412
|
-
start: "justify-start",
|
|
13413
|
-
center: "justify-center",
|
|
13414
|
-
end: "justify-end",
|
|
13415
|
-
between: "justify-between"
|
|
13416
|
-
};
|
|
13417
|
-
return /* @__PURE__ */ jsx(
|
|
13418
|
-
"div",
|
|
13419
|
-
{
|
|
13420
|
-
className: clsx(
|
|
13421
|
-
"mt-4 pt-4 border-t border-white/30 dark:border-white/10 flex items-center gap-2",
|
|
13422
|
-
justifyClasses[justify],
|
|
13423
|
-
className
|
|
13424
|
-
),
|
|
13425
|
-
children
|
|
13426
|
-
}
|
|
13427
|
-
);
|
|
13428
|
-
});
|
|
13429
|
-
var StatCard2 = memo(function StatCard3({
|
|
13430
|
-
title,
|
|
13431
|
-
value,
|
|
13432
|
-
subtitle,
|
|
13433
|
-
icon,
|
|
13434
|
-
trend,
|
|
13435
|
-
loading = false,
|
|
13436
|
-
className
|
|
13437
|
-
}) {
|
|
13438
|
-
const trendColors = {
|
|
13439
|
-
up: "text-green-600 dark:text-green-400",
|
|
13440
|
-
down: "text-red-600 dark:text-red-400",
|
|
13441
|
-
neutral: "text-slate-600 dark:text-slate-400"
|
|
13442
|
-
};
|
|
13443
|
-
return /* @__PURE__ */ jsx(Card2, { variant: "elevated", hover: true, className, loading, children: /* @__PURE__ */ jsxs("div", { className: "flex items-start", children: [
|
|
13444
|
-
icon && /* @__PURE__ */ jsx("div", { className: "flex-shrink-0 mr-4", children: /* @__PURE__ */ jsx("div", { className: "w-12 h-12 rounded-lg bg-white/20 dark:bg-white/[0.08] flex items-center justify-center", children: icon }) }),
|
|
13445
|
-
/* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0", children: [
|
|
13446
|
-
/* @__PURE__ */ jsx("p", { className: "text-sm font-medium text-slate-600 dark:text-slate-400 truncate", children: title }),
|
|
13447
|
-
/* @__PURE__ */ jsxs("div", { className: "mt-1 flex items-baseline", children: [
|
|
13448
|
-
/* @__PURE__ */ jsx("p", { className: "text-2xl font-bold text-slate-900 dark:text-slate-100", children: loading ? "..." : value }),
|
|
13449
|
-
trend && !loading && /* @__PURE__ */ jsxs(
|
|
13450
|
-
"div",
|
|
13451
|
-
{
|
|
13452
|
-
className: clsx(
|
|
13453
|
-
"ml-2 flex items-center text-sm",
|
|
13454
|
-
trendColors[trend.direction]
|
|
13455
|
-
),
|
|
13456
|
-
children: [
|
|
13457
|
-
/* @__PURE__ */ jsx("span", { children: trend.direction === "up" ? "\u2197" : trend.direction === "down" ? "\u2198" : "\u2192" }),
|
|
13458
|
-
/* @__PURE__ */ jsxs("span", { className: "ml-1", children: [
|
|
13459
|
-
trend.value,
|
|
13460
|
-
"%"
|
|
13461
|
-
] })
|
|
13462
|
-
]
|
|
13463
|
-
}
|
|
13464
|
-
)
|
|
13465
|
-
] }),
|
|
13466
|
-
subtitle && /* @__PURE__ */ jsx("p", { className: "mt-1 text-sm text-slate-600 dark:text-slate-400", children: subtitle }),
|
|
13467
|
-
trend && !loading && /* @__PURE__ */ jsx("p", { className: "mt-1 text-xs text-slate-500 dark:text-slate-500", children: trend.label })
|
|
13468
|
-
] })
|
|
13469
|
-
] }) });
|
|
13470
|
-
});
|
|
13471
|
-
var Progress = React11.forwardRef(({ className, value, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
13472
|
-
ProgressPrimitive.Root,
|
|
13473
|
-
{
|
|
13474
|
-
ref,
|
|
13475
|
-
className: clsx(
|
|
13476
|
-
"relative h-4 w-full overflow-hidden rounded-full bg-secondary",
|
|
13477
|
-
className
|
|
13478
|
-
),
|
|
13479
|
-
...props,
|
|
13480
|
-
children: /* @__PURE__ */ jsx(
|
|
13481
|
-
ProgressPrimitive.Indicator,
|
|
13482
|
-
{
|
|
13483
|
-
className: "h-full w-full flex-1 bg-primary transition-all",
|
|
13484
|
-
style: { transform: `translateX(-${100 - (value || 0)}%)` }
|
|
13485
|
-
}
|
|
13486
|
-
)
|
|
13487
|
-
}
|
|
13488
|
-
));
|
|
13489
|
-
Progress.displayName = ProgressPrimitive.Root.displayName;
|
|
13490
|
-
function validatePasswordStrength(password) {
|
|
13491
|
-
return {
|
|
13492
|
-
minLength: password.length >= 8,
|
|
13493
|
-
hasUppercase: /[A-Z]/.test(password),
|
|
13494
|
-
hasLowercase: /[a-z]/.test(password),
|
|
13495
|
-
hasNumber: /\d/.test(password),
|
|
13496
|
-
hasSpecial: /[!@#$%^&*()_+\-=]/.test(password)
|
|
13497
|
-
};
|
|
13498
|
-
}
|
|
13499
|
-
function RequirementCheck({
|
|
13500
|
-
met,
|
|
13501
|
-
label
|
|
13502
|
-
}) {
|
|
13503
|
-
return /* @__PURE__ */ jsxs("li", { className: "flex items-center gap-1.5 text-xs", children: [
|
|
13504
|
-
/* @__PURE__ */ jsx(
|
|
13505
|
-
"span",
|
|
13506
|
-
{
|
|
13507
|
-
className: `flex-shrink-0 w-3.5 h-3.5 rounded-full flex items-center justify-center text-[10px] font-bold ${met ? "bg-emerald-500 text-white" : "bg-slate-200 dark:bg-slate-700 text-slate-400 dark:text-slate-500"}`,
|
|
13508
|
-
children: met ? "\u2713" : ""
|
|
13509
|
-
}
|
|
13510
|
-
),
|
|
13511
|
-
/* @__PURE__ */ jsx(
|
|
13512
|
-
"span",
|
|
13513
|
-
{
|
|
13514
|
-
className: met ? "text-emerald-600 dark:text-emerald-400" : "text-slate-500 dark:text-slate-400",
|
|
13515
|
-
children: label
|
|
13516
|
-
}
|
|
13517
|
-
)
|
|
13518
|
-
] });
|
|
13519
|
-
}
|
|
13520
|
-
var PasswordInput2 = forwardRef(
|
|
13521
|
-
function PasswordInput3({ className = "", variant = "default", showStrength = false, onChange, ...props }, ref) {
|
|
13522
|
-
const [showPassword, setShowPassword] = useState(false);
|
|
13523
|
-
const [internalValue, setInternalValue] = useState("");
|
|
13524
|
-
const t = useTranslations();
|
|
13525
|
-
const handleChange = (e) => {
|
|
13526
|
-
setInternalValue(e.target.value);
|
|
13527
|
-
onChange?.(e);
|
|
13528
|
-
};
|
|
13529
|
-
const strength = useMemo(
|
|
13530
|
-
() => validatePasswordStrength(internalValue),
|
|
13531
|
-
[internalValue]
|
|
13532
|
-
);
|
|
13533
|
-
const metCount = useMemo(() => {
|
|
13534
|
-
const checks = Object.values(strength);
|
|
13535
|
-
return checks.filter(Boolean).length;
|
|
13536
|
-
}, [strength]);
|
|
13537
|
-
const strengthLevel = useMemo(() => {
|
|
13538
|
-
if (metCount <= 2) return "weak";
|
|
13539
|
-
if (metCount <= 4) return "medium";
|
|
13540
|
-
return "strong";
|
|
13541
|
-
}, [metCount]);
|
|
13542
|
-
const strengthBarColor = {
|
|
13543
|
-
weak: "bg-red-500",
|
|
13544
|
-
medium: "bg-amber-500",
|
|
13545
|
-
strong: "bg-emerald-500"
|
|
13546
|
-
}[strengthLevel];
|
|
13547
|
-
const strengthBarWidth = {
|
|
13548
|
-
weak: "w-1/3",
|
|
13549
|
-
medium: "w-2/3",
|
|
13550
|
-
strong: "w-full"
|
|
13551
|
-
}[strengthLevel];
|
|
13552
|
-
const baseInputClasses = variant === "apple" ? "w-full px-4 py-3 pr-12 text-[17px] bg-white/60 dark:bg-white/10 backdrop-blur-xl border border-white/30 dark:border-white/20 text-slate-900 dark:text-white placeholder-slate-400 dark:placeholder-slate-500 rounded-xl focus:outline-none focus:ring-2 focus:ring-indigo-500 transition-all" : "w-full px-4 py-3.5 pr-12 text-base rounded-xl border transition-all duration-300 bg-white/60 dark:bg-white/10 backdrop-blur-xl border-white/30 dark:border-white/20 text-slate-900 dark:text-white placeholder-slate-400 dark:placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:border-transparent";
|
|
13553
|
-
const buttonClasses = variant === "apple" ? "absolute top-1/2 -translate-y-1/2 right-3 p-1.5 hover:bg-white/30 dark:hover:bg-white/[0.08] rounded-lg transition-colors" : "absolute top-1/2 -translate-y-1/2 right-3 p-2 hover:bg-white/30 dark:hover:bg-white/[0.08] rounded-lg transition-all duration-200";
|
|
13554
|
-
const iconClasses = variant === "apple" ? "h-5 w-5 text-slate-400 dark:text-slate-400" : "h-5 w-5 text-slate-500 hover:text-slate-700 dark:text-slate-400 dark:hover:text-slate-200";
|
|
13555
|
-
return /* @__PURE__ */ jsxs("div", { children: [
|
|
13556
|
-
/* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
13557
|
-
/* @__PURE__ */ jsx(
|
|
13558
|
-
"input",
|
|
13559
|
-
{
|
|
13560
|
-
ref,
|
|
13561
|
-
type: showPassword ? "text" : "password",
|
|
13562
|
-
className: `${baseInputClasses} ${className}`,
|
|
13563
|
-
onChange: handleChange,
|
|
13564
|
-
...props
|
|
13565
|
-
}
|
|
13566
|
-
),
|
|
13567
|
-
/* @__PURE__ */ jsx(
|
|
13568
|
-
"button",
|
|
13569
|
-
{
|
|
13570
|
-
type: "button",
|
|
13571
|
-
onClick: () => setShowPassword(!showPassword),
|
|
13572
|
-
className: buttonClasses,
|
|
13573
|
-
"aria-label": showPassword ? t("aria.hidePassword") : t("aria.showPassword"),
|
|
13574
|
-
children: showPassword ? /* @__PURE__ */ jsx(EyeSlashIcon, { className: iconClasses }) : /* @__PURE__ */ jsx(EyeIcon, { className: iconClasses })
|
|
13575
|
-
}
|
|
13576
|
-
)
|
|
13577
|
-
] }),
|
|
13578
|
-
showStrength && internalValue.length > 0 && /* @__PURE__ */ jsxs("div", { className: "mt-2 space-y-2", children: [
|
|
13579
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
13580
|
-
/* @__PURE__ */ jsx("div", { className: "flex-1 h-1.5 bg-slate-200 dark:bg-slate-700 rounded-full overflow-hidden", children: /* @__PURE__ */ jsx(
|
|
13581
|
-
"div",
|
|
13582
|
-
{
|
|
13583
|
-
className: `h-full rounded-full transition-all duration-300 ${strengthBarColor} ${strengthBarWidth}`
|
|
13584
|
-
}
|
|
13585
|
-
) }),
|
|
13586
|
-
/* @__PURE__ */ jsx(
|
|
13587
|
-
"span",
|
|
13588
|
-
{
|
|
13589
|
-
className: `text-xs font-medium ${strengthLevel === "weak" ? "text-red-500" : strengthLevel === "medium" ? "text-amber-500" : "text-emerald-500"}`,
|
|
13590
|
-
children: t(`login.passwordStrength.${strengthLevel}`)
|
|
13591
|
-
}
|
|
13592
|
-
)
|
|
13593
|
-
] }),
|
|
13594
|
-
/* @__PURE__ */ jsxs("ul", { className: "space-y-1", children: [
|
|
13595
|
-
/* @__PURE__ */ jsx(
|
|
13596
|
-
RequirementCheck,
|
|
13597
|
-
{
|
|
13598
|
-
met: strength.minLength,
|
|
13599
|
-
label: t("login.passwordRequirements.minLength")
|
|
13600
|
-
}
|
|
13601
|
-
),
|
|
13602
|
-
/* @__PURE__ */ jsx(
|
|
13603
|
-
RequirementCheck,
|
|
13604
|
-
{
|
|
13605
|
-
met: strength.hasUppercase,
|
|
13606
|
-
label: t("login.passwordRequirements.uppercase")
|
|
13607
|
-
}
|
|
13608
|
-
),
|
|
13609
|
-
/* @__PURE__ */ jsx(
|
|
13610
|
-
RequirementCheck,
|
|
13611
|
-
{
|
|
13612
|
-
met: strength.hasLowercase,
|
|
13613
|
-
label: t("login.passwordRequirements.lowercase")
|
|
13614
|
-
}
|
|
13615
|
-
),
|
|
13616
|
-
/* @__PURE__ */ jsx(
|
|
13617
|
-
RequirementCheck,
|
|
13618
|
-
{
|
|
13619
|
-
met: strength.hasNumber,
|
|
13620
|
-
label: t("login.passwordRequirements.number")
|
|
13621
|
-
}
|
|
13622
|
-
),
|
|
13623
|
-
/* @__PURE__ */ jsx(
|
|
13624
|
-
RequirementCheck,
|
|
13625
|
-
{
|
|
13626
|
-
met: strength.hasSpecial,
|
|
13627
|
-
label: t("login.passwordRequirements.special")
|
|
13628
|
-
}
|
|
13629
|
-
)
|
|
13630
|
-
] })
|
|
13631
|
-
] })
|
|
13632
|
-
] });
|
|
13633
|
-
}
|
|
13634
|
-
);
|
|
13635
|
-
var Tabs = TabsPrimitive.Root;
|
|
13636
|
-
var TabsList = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
13637
|
-
TabsPrimitive.List,
|
|
13638
|
-
{
|
|
13639
|
-
ref,
|
|
13640
|
-
className: clsx(
|
|
13641
|
-
"inline-flex h-9 items-center justify-center rounded-lg bg-muted/50 p-0.5 text-muted-foreground",
|
|
13642
|
-
className
|
|
13643
|
-
),
|
|
13644
|
-
...props
|
|
13645
|
-
}
|
|
13646
|
-
));
|
|
13647
|
-
TabsList.displayName = TabsPrimitive.List.displayName;
|
|
13648
|
-
var TabsTrigger = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
13649
|
-
TabsPrimitive.Trigger,
|
|
13650
|
-
{
|
|
13651
|
-
ref,
|
|
13652
|
-
className: clsx(
|
|
13653
|
-
"inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
|
|
13654
|
-
className
|
|
13655
|
-
),
|
|
13656
|
-
...props
|
|
13657
|
-
}
|
|
13658
|
-
));
|
|
13659
|
-
TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
|
|
13660
|
-
var TabsContent = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
13661
|
-
TabsPrimitive.Content,
|
|
13662
|
-
{
|
|
13663
|
-
ref,
|
|
13664
|
-
className: clsx(
|
|
13665
|
-
"mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
|
|
13666
|
-
className
|
|
13667
|
-
),
|
|
13668
|
-
...props
|
|
13669
|
-
}
|
|
13670
|
-
));
|
|
13671
|
-
TabsContent.displayName = TabsPrimitive.Content.displayName;
|
|
13672
|
-
var SliderInput = ({
|
|
13673
|
-
id,
|
|
13674
|
-
label,
|
|
13675
|
-
value,
|
|
13676
|
-
onChange,
|
|
13677
|
-
min,
|
|
13678
|
-
max,
|
|
13679
|
-
step,
|
|
13680
|
-
suffix = "",
|
|
13681
|
-
tooltip,
|
|
13682
|
-
formatDisplay,
|
|
13683
|
-
showValue = true
|
|
13684
|
-
}) => {
|
|
13685
|
-
const tAria = useTranslations("aria");
|
|
13686
|
-
const tCommon = useTranslations("common");
|
|
13687
|
-
const [showTooltip, setShowTooltip] = useState(false);
|
|
13688
|
-
const safeValue = typeof value === "number" && !isNaN(value) ? value : min;
|
|
13689
|
-
const percentage = (safeValue - min) / (max - min) * 100;
|
|
13690
|
-
const displayValue = formatDisplay ? formatDisplay(safeValue) : safeValue.toFixed(step < 1 ? 2 : 0);
|
|
13691
|
-
return /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
|
|
13692
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
|
|
13693
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
13694
|
-
/* @__PURE__ */ jsx(
|
|
13695
|
-
"label",
|
|
13696
|
-
{
|
|
13697
|
-
htmlFor: id,
|
|
13698
|
-
className: "text-sm font-medium text-zinc-700 dark:text-zinc-300",
|
|
13699
|
-
children: label
|
|
13700
|
-
}
|
|
13701
|
-
),
|
|
13702
|
-
tooltip && /* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
13703
|
-
/* @__PURE__ */ jsx(
|
|
13704
|
-
"button",
|
|
13705
|
-
{
|
|
13706
|
-
type: "button",
|
|
13707
|
-
onMouseEnter: () => setShowTooltip(true),
|
|
13708
|
-
onMouseLeave: () => setShowTooltip(false),
|
|
13709
|
-
className: "w-4 h-4 rounded-full bg-zinc-200 dark:bg-zinc-700 text-zinc-600 dark:text-zinc-400 text-xs flex items-center justify-center hover:bg-zinc-300 dark:hover:bg-zinc-600 transition-colors",
|
|
13710
|
-
"aria-label": tAria("info"),
|
|
13711
|
-
children: "?"
|
|
13712
|
-
}
|
|
13713
|
-
),
|
|
13714
|
-
showTooltip && /* @__PURE__ */ jsxs("div", { className: "absolute left-6 top-0 z-10 w-64 p-3 bg-zinc-900 dark:bg-zinc-100 text-white dark:text-zinc-900 text-xs rounded-lg shadow-lg", children: [
|
|
13715
|
-
tooltip,
|
|
13716
|
-
/* @__PURE__ */ jsx("div", { className: "absolute left-0 top-2 -translate-x-1 w-2 h-2 bg-zinc-900 dark:bg-zinc-100 rotate-45" })
|
|
13717
|
-
] })
|
|
13718
|
-
] })
|
|
13719
|
-
] }),
|
|
13720
|
-
showValue && /* @__PURE__ */ jsxs("span", { className: "text-sm font-semibold text-zinc-900 dark:text-zinc-100", children: [
|
|
13721
|
-
displayValue,
|
|
13722
|
-
suffix
|
|
13723
|
-
] })
|
|
13724
|
-
] }),
|
|
13725
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
|
|
13726
|
-
/* @__PURE__ */ jsx("div", { className: "flex-1 relative", children: /* @__PURE__ */ jsx(
|
|
13727
|
-
"input",
|
|
13728
|
-
{
|
|
13729
|
-
id,
|
|
13730
|
-
type: "range",
|
|
13731
|
-
min,
|
|
13732
|
-
max,
|
|
13733
|
-
step,
|
|
13734
|
-
value: safeValue,
|
|
13735
|
-
onChange: (e) => onChange(Number(e.target.value)),
|
|
13736
|
-
className: "w-full h-2 bg-zinc-200 dark:bg-zinc-700 rounded-lg appearance-none cursor-pointer slider-thumb",
|
|
13737
|
-
"aria-label": label,
|
|
13738
|
-
style: {
|
|
13739
|
-
background: `linear-gradient(to right, rgb(59 130 246) 0%, rgb(59 130 246) ${percentage}%, rgb(228 228 231) ${percentage}%, rgb(228 228 231) 100%)`
|
|
13740
|
-
}
|
|
13741
|
-
}
|
|
13742
|
-
) }),
|
|
13743
|
-
/* @__PURE__ */ jsx(
|
|
13744
|
-
"input",
|
|
13745
|
-
{
|
|
13746
|
-
type: "number",
|
|
13747
|
-
min,
|
|
13748
|
-
max,
|
|
13749
|
-
step,
|
|
13750
|
-
value: safeValue,
|
|
13751
|
-
onChange: (e) => onChange(Number(e.target.value)),
|
|
13752
|
-
className: "w-24 px-3 py-1.5 text-sm border border-zinc-300 dark:border-zinc-600 rounded-md bg-white dark:bg-zinc-800 text-zinc-900 dark:text-zinc-100 focus:ring-2 focus:ring-blue-500 focus:border-transparent",
|
|
13753
|
-
"aria-label": `${label} (${tCommon("number")})`
|
|
13754
|
-
}
|
|
13755
|
-
)
|
|
13756
|
-
] }),
|
|
13757
|
-
/* @__PURE__ */ jsx("style", { children: `
|
|
13758
|
-
.slider-thumb::-webkit-slider-thumb {
|
|
13759
|
-
appearance: none;
|
|
13760
|
-
width: 18px;
|
|
13761
|
-
height: 18px;
|
|
13762
|
-
border-radius: 50%;
|
|
13763
|
-
background: rgb(59 130 246);
|
|
13764
|
-
cursor: pointer;
|
|
13765
|
-
border: 2px solid white;
|
|
13766
|
-
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
|
|
13767
|
-
}
|
|
13768
|
-
|
|
13769
|
-
.slider-thumb::-moz-range-thumb {
|
|
13770
|
-
width: 18px;
|
|
13771
|
-
height: 18px;
|
|
13772
|
-
border-radius: 50%;
|
|
13773
|
-
background: rgb(59 130 246);
|
|
13774
|
-
cursor: pointer;
|
|
13775
|
-
border: 2px solid white;
|
|
13776
|
-
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
|
|
13777
|
-
}
|
|
13778
|
-
|
|
13779
|
-
.slider-thumb::-webkit-slider-thumb:hover {
|
|
13780
|
-
background: rgb(37 99 235);
|
|
13781
|
-
}
|
|
13782
|
-
|
|
13783
|
-
.slider-thumb::-moz-range-thumb:hover {
|
|
13784
|
-
background: rgb(37 99 235);
|
|
13785
|
-
}
|
|
13786
|
-
` })
|
|
13787
|
-
] });
|
|
13788
|
-
};
|
|
13789
|
-
function DataPagination({
|
|
13790
|
-
pagination,
|
|
13791
|
-
onUpdate,
|
|
13792
|
-
loading = false,
|
|
13793
|
-
showPageSize = false,
|
|
13794
|
-
pageSizeOptions = [10, 20, 50],
|
|
13795
|
-
params
|
|
13796
|
-
}) {
|
|
13797
|
-
const effectivePageSize = pagination.pageSize ?? pagination.limit ?? 10;
|
|
13798
|
-
const from = (pagination.page - 1) * effectivePageSize + 1;
|
|
13799
|
-
const to = Math.min(pagination.page * effectivePageSize, pagination.total);
|
|
13800
|
-
const handlePageChange = (page) => onUpdate({ page });
|
|
13801
|
-
const handlePageSizeChange = (value) => onUpdate({ limit: parseInt(value), page: 1 });
|
|
13802
|
-
if (pagination.totalPages <= 1 && !showPageSize) return null;
|
|
13803
|
-
return /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center justify-between gap-3 rounded-2xl liquid-surface px-4 py-3", children: [
|
|
13804
|
-
/* @__PURE__ */ jsxs("p", { className: "text-sm tabular-nums text-slate-600 dark:text-slate-400", children: [
|
|
13805
|
-
from,
|
|
13806
|
-
"\u2013",
|
|
13807
|
-
to,
|
|
13808
|
-
" / ",
|
|
13809
|
-
pagination.total
|
|
13810
|
-
] }),
|
|
13811
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
13812
|
-
showPageSize && /* @__PURE__ */ jsx(
|
|
13813
|
-
"select",
|
|
13814
|
-
{
|
|
13815
|
-
value: params?.limit ?? effectivePageSize,
|
|
13816
|
-
onChange: (event) => handlePageSizeChange(event.target.value),
|
|
13817
|
-
disabled: loading,
|
|
13818
|
-
className: "rounded-xl liquid-surface px-2 py-1.5 text-xs font-medium text-slate-700 outline-none dark:text-slate-300",
|
|
13819
|
-
children: pageSizeOptions.map((size) => /* @__PURE__ */ jsx("option", { value: size, children: size }, size))
|
|
13820
|
-
}
|
|
13821
|
-
),
|
|
13822
|
-
pagination.totalPages > 1 && /* @__PURE__ */ jsxs("nav", { className: "flex items-center gap-1", "aria-label": "Pagination", children: [
|
|
13823
|
-
/* @__PURE__ */ jsx(
|
|
13824
|
-
"button",
|
|
13825
|
-
{
|
|
13826
|
-
type: "button",
|
|
13827
|
-
disabled: pagination.page <= 1 || loading,
|
|
13828
|
-
onClick: () => handlePageChange(pagination.page - 1),
|
|
13829
|
-
className: "inline-flex h-9 w-9 items-center justify-center rounded-xl text-slate-500 transition hover:bg-white/40 disabled:opacity-30 dark:text-slate-400 dark:hover:bg-white/[0.08]",
|
|
13830
|
-
children: /* @__PURE__ */ jsx(ChevronLeftIcon, { className: "h-5 w-5" })
|
|
13831
|
-
}
|
|
13832
|
-
),
|
|
13833
|
-
getPageNumbers(pagination.page, pagination.totalPages).map(
|
|
13834
|
-
(page, index) => page === "..." ? /* @__PURE__ */ jsx(
|
|
13835
|
-
"span",
|
|
13836
|
-
{
|
|
13837
|
-
className: "inline-flex h-9 w-6 items-center justify-center text-xs text-slate-400",
|
|
13838
|
-
children: "\u2026"
|
|
13839
|
-
},
|
|
13840
|
-
`ellipsis-${index}`
|
|
13841
|
-
) : /* @__PURE__ */ jsx(
|
|
13842
|
-
"button",
|
|
13843
|
-
{
|
|
13844
|
-
type: "button",
|
|
13845
|
-
disabled: loading,
|
|
13846
|
-
onClick: () => handlePageChange(page),
|
|
13847
|
-
"aria-current": page === pagination.page ? "page" : void 0,
|
|
13848
|
-
className: `inline-flex h-9 min-w-9 items-center justify-center rounded-xl px-2 text-sm font-medium transition ${page === pagination.page ? "liquid-surface liquid-surface-active text-slate-900 dark:text-white" : "text-slate-500 hover:bg-white/40 dark:text-slate-400 dark:hover:bg-white/[0.08]"}`,
|
|
13849
|
-
children: page
|
|
13850
|
-
},
|
|
13851
|
-
`page-${page}`
|
|
13852
|
-
)
|
|
13853
|
-
),
|
|
13854
|
-
/* @__PURE__ */ jsx(
|
|
13855
|
-
"button",
|
|
13856
|
-
{
|
|
13857
|
-
type: "button",
|
|
13858
|
-
disabled: pagination.page >= pagination.totalPages || loading,
|
|
13859
|
-
onClick: () => handlePageChange(pagination.page + 1),
|
|
13860
|
-
className: "inline-flex h-9 w-9 items-center justify-center rounded-xl text-slate-500 transition hover:bg-white/40 disabled:opacity-30 dark:text-slate-400 dark:hover:bg-white/[0.08]",
|
|
13861
|
-
children: /* @__PURE__ */ jsx(ChevronRightIcon, { className: "h-5 w-5" })
|
|
13862
|
-
}
|
|
13863
|
-
)
|
|
13864
|
-
] })
|
|
13865
|
-
] })
|
|
13866
|
-
] });
|
|
13867
|
-
}
|
|
13868
|
-
function getPageNumbers(currentPage, totalPages) {
|
|
13869
|
-
if (totalPages <= 7) {
|
|
13870
|
-
return Array.from({ length: totalPages }, (_, i) => i + 1);
|
|
13871
|
-
}
|
|
13872
|
-
const pages = [1];
|
|
13873
|
-
if (currentPage <= 4) {
|
|
13874
|
-
for (let i = 2; i <= Math.min(5, totalPages); i++) pages.push(i);
|
|
13875
|
-
if (totalPages > 5) {
|
|
13876
|
-
pages.push("...");
|
|
13877
|
-
pages.push(totalPages);
|
|
13878
|
-
}
|
|
13879
|
-
} else if (currentPage >= totalPages - 3) {
|
|
13880
|
-
pages.push("...");
|
|
13881
|
-
for (let i = Math.max(totalPages - 4, 2); i <= totalPages; i++)
|
|
13882
|
-
pages.push(i);
|
|
13883
|
-
} else {
|
|
13884
|
-
pages.push("...");
|
|
13885
|
-
for (let i = currentPage - 1; i <= currentPage + 1; i++) pages.push(i);
|
|
13886
|
-
pages.push("...");
|
|
13887
|
-
pages.push(totalPages);
|
|
13888
|
-
}
|
|
13889
|
-
return pages;
|
|
13890
|
-
}
|
|
13891
|
-
var ContactCard = React11__default.memo(function ContactCard2({
|
|
13892
|
-
type,
|
|
13893
|
-
email,
|
|
13894
|
-
phone
|
|
13895
|
-
}) {
|
|
13896
|
-
const t = useTranslations("contact");
|
|
13897
|
-
return /* @__PURE__ */ jsxs("div", { className: "rounded-2xl bg-gray-50 p-10", children: [
|
|
13898
|
-
/* @__PURE__ */ jsx("h3", { className: "text-base/7 font-semibold text-gray-900", children: t(type) }),
|
|
13899
|
-
/* @__PURE__ */ jsxs("dl", { className: "mt-3 space-y-1 text-sm/6 text-gray-600", children: [
|
|
13900
|
-
/* @__PURE__ */ jsxs("div", { children: [
|
|
13901
|
-
/* @__PURE__ */ jsx("dt", { className: "sr-only", children: "Email" }),
|
|
13902
|
-
/* @__PURE__ */ jsx("dd", { children: /* @__PURE__ */ jsx("a", { href: `mailto:${email}`, className: "font-semibold text-blue-600", children: email }) })
|
|
13903
|
-
] }),
|
|
13904
|
-
/* @__PURE__ */ jsxs("div", { className: "mt-1", children: [
|
|
13905
|
-
/* @__PURE__ */ jsx("dt", { className: "sr-only", children: "Telefone" }),
|
|
13906
|
-
/* @__PURE__ */ jsx("dd", { children: phone })
|
|
13907
|
-
] })
|
|
13908
|
-
] })
|
|
13909
|
-
] });
|
|
13910
|
-
});
|
|
13911
|
-
var OfficeCard = React11__default.memo(function OfficeCard2({
|
|
13912
|
-
city,
|
|
13913
|
-
address,
|
|
13914
|
-
postalCode
|
|
13915
|
-
}) {
|
|
13916
|
-
return /* @__PURE__ */ jsxs("div", { className: "rounded-2xl bg-gray-50 p-10", children: [
|
|
13917
|
-
/* @__PURE__ */ jsx("h3", { className: "text-base/7 font-semibold text-gray-900", children: city }),
|
|
13918
|
-
/* @__PURE__ */ jsxs("address", { className: "mt-3 space-y-1 text-sm/6 text-gray-600 not-italic", children: [
|
|
13919
|
-
/* @__PURE__ */ jsx("p", { children: address }),
|
|
13920
|
-
/* @__PURE__ */ jsx("p", { children: postalCode })
|
|
13921
|
-
] })
|
|
13922
|
-
] });
|
|
13923
|
-
});
|
|
13924
|
-
var ContactSection = React11__default.memo(
|
|
13925
|
-
function ContactSection2({ title, subtitle, children }) {
|
|
13926
|
-
return /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 gap-10 py-16 lg:grid-cols-3", children: [
|
|
13927
|
-
/* @__PURE__ */ jsxs("div", { children: [
|
|
13928
|
-
/* @__PURE__ */ jsx("h2", { className: "text-4xl font-semibold tracking-tight text-pretty text-gray-900", children: title }),
|
|
13929
|
-
/* @__PURE__ */ jsx("p", { className: "mt-4 text-base/7 text-gray-600", children: subtitle })
|
|
13930
|
-
] }),
|
|
13931
|
-
/* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 gap-6 sm:grid-cols-2 lg:col-span-2 lg:gap-8", children })
|
|
13932
|
-
] });
|
|
13933
|
-
}
|
|
13934
|
-
);
|
|
13935
|
-
var PageHeader = memo(function PageHeader2({
|
|
13936
|
-
title,
|
|
13937
|
-
subtitle,
|
|
13938
|
-
size = "default",
|
|
13939
|
-
actions,
|
|
13940
|
-
className,
|
|
13941
|
-
children
|
|
13942
|
-
}) {
|
|
13943
|
-
return /* @__PURE__ */ jsxs("div", { className: clsx("mb-6 sm:mb-8", className), children: [
|
|
13944
|
-
/* @__PURE__ */ jsxs("div", { className: "flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4", children: [
|
|
13945
|
-
/* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
13946
|
-
/* @__PURE__ */ jsx(
|
|
13947
|
-
"h1",
|
|
13948
|
-
{
|
|
13949
|
-
className: clsx(
|
|
13950
|
-
"font-bold text-slate-900 dark:text-slate-100 truncate",
|
|
13951
|
-
size === "large" ? "text-3xl" : "text-2xl"
|
|
13952
|
-
),
|
|
13953
|
-
children: title
|
|
13954
|
-
}
|
|
13955
|
-
),
|
|
13956
|
-
subtitle && /* @__PURE__ */ jsx("p", { className: "mt-2 text-sm text-slate-600 dark:text-slate-400 line-clamp-2", children: subtitle })
|
|
13957
|
-
] }),
|
|
13958
|
-
actions && /* @__PURE__ */ jsx("div", { className: "flex-shrink-0 flex items-center gap-2 flex-wrap", children: actions })
|
|
13959
|
-
] }),
|
|
13960
|
-
children && /* @__PURE__ */ jsx("div", { className: "mt-4", children })
|
|
13961
|
-
] });
|
|
13962
|
-
});
|
|
13963
|
-
var PageSectionHeader = memo(function PageSectionHeader2({
|
|
13964
|
-
title,
|
|
13965
|
-
subtitle,
|
|
13966
|
-
actions,
|
|
13967
|
-
className,
|
|
13968
|
-
children
|
|
13969
|
-
}) {
|
|
13970
|
-
return /* @__PURE__ */ jsxs("div", { className: clsx("mb-4", className), children: [
|
|
13971
|
-
/* @__PURE__ */ jsxs("div", { className: "flex flex-col sm:flex-row sm:items-center sm:justify-between gap-3", children: [
|
|
13972
|
-
/* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
13973
|
-
/* @__PURE__ */ jsx("h2", { className: "text-lg sm:text-xl font-semibold text-slate-900 dark:text-slate-100", children: title }),
|
|
13974
|
-
subtitle && /* @__PURE__ */ jsx("p", { className: "mt-1 text-sm text-slate-600 dark:text-slate-400 line-clamp-2", children: subtitle })
|
|
13975
|
-
] }),
|
|
13976
|
-
actions && /* @__PURE__ */ jsx("div", { className: "flex-shrink-0 flex items-center gap-2 flex-wrap", children: actions })
|
|
13977
|
-
] }),
|
|
13978
|
-
children && /* @__PURE__ */ jsx("div", { className: "mt-3", children })
|
|
13979
|
-
] });
|
|
13980
|
-
});
|
|
13981
|
-
var CardSectionHeader = memo(function CardSectionHeader2({
|
|
13982
|
-
title,
|
|
13983
|
-
subtitle,
|
|
13984
|
-
actions,
|
|
13985
|
-
className,
|
|
13986
|
-
children
|
|
13987
|
-
}) {
|
|
13988
|
-
return /* @__PURE__ */ jsxs("div", { className: clsx("mb-3", className), children: [
|
|
13989
|
-
/* @__PURE__ */ jsxs("div", { className: "flex flex-col sm:flex-row sm:items-center sm:justify-between gap-2", children: [
|
|
13990
|
-
/* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
13991
|
-
/* @__PURE__ */ jsx("h3", { className: "text-base sm:text-lg font-medium text-slate-900 dark:text-slate-100", children: title }),
|
|
13992
|
-
subtitle && /* @__PURE__ */ jsx("p", { className: "mt-1 text-xs sm:text-sm text-slate-600 dark:text-slate-400 line-clamp-1", children: subtitle })
|
|
13993
|
-
] }),
|
|
13994
|
-
actions && /* @__PURE__ */ jsx("div", { className: "flex-shrink-0 flex items-center gap-1 flex-wrap", children: actions })
|
|
13995
|
-
] }),
|
|
13996
|
-
children && /* @__PURE__ */ jsx("div", { className: "mt-2", children })
|
|
13997
|
-
] });
|
|
13998
|
-
});
|
|
13999
|
-
var MetricCard2 = ({
|
|
14000
|
-
title,
|
|
14001
|
-
value,
|
|
14002
|
-
subtitle,
|
|
14003
|
-
tooltip,
|
|
14004
|
-
className = "",
|
|
14005
|
-
children
|
|
14006
|
-
}) => {
|
|
14007
|
-
const [showTooltip, setShowTooltip] = useState(false);
|
|
14008
|
-
return /* @__PURE__ */ jsxs(
|
|
14009
|
-
"div",
|
|
14010
|
-
{
|
|
14011
|
-
className: `liquid-surface rounded-2xl border border-white/30 dark:border-white/10 p-5 hover:bg-white/40 dark:hover:bg-white/[0.08] transition-colors ${className}`,
|
|
14012
|
-
children: [
|
|
14013
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between mb-3", children: [
|
|
14014
|
-
/* @__PURE__ */ jsx("p", { className: "text-xs font-medium text-slate-500 dark:text-slate-400", children: title }),
|
|
14015
|
-
tooltip && /* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
14016
|
-
/* @__PURE__ */ jsx(
|
|
14017
|
-
"button",
|
|
14018
|
-
{
|
|
14019
|
-
type: "button",
|
|
14020
|
-
onMouseEnter: () => setShowTooltip(true),
|
|
14021
|
-
onMouseLeave: () => setShowTooltip(false),
|
|
14022
|
-
className: "w-4 h-4 rounded-full bg-white/30 dark:bg-white/10 text-slate-600 dark:text-slate-400 text-xs flex items-center justify-center hover:bg-white/40 dark:hover:bg-white/[0.08] transition-colors",
|
|
14023
|
-
"aria-label": "Info",
|
|
14024
|
-
children: "?"
|
|
14025
|
-
}
|
|
14026
|
-
),
|
|
14027
|
-
showTooltip && /* @__PURE__ */ jsxs("div", { className: "absolute right-0 top-6 z-10 w-64 p-3 liquid-surface-strong text-slate-900 dark:text-slate-100 text-xs rounded-lg", children: [
|
|
14028
|
-
tooltip,
|
|
14029
|
-
/* @__PURE__ */ jsx("div", { className: "absolute right-2 top-0 -translate-y-1 w-2 h-2 bg-white/60 dark:bg-white/20 rotate-45" })
|
|
14030
|
-
] })
|
|
14031
|
-
] })
|
|
14032
|
-
] }),
|
|
14033
|
-
children ? children : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
14034
|
-
/* @__PURE__ */ jsx("div", { className: "text-2xl font-semibold text-slate-900 dark:text-slate-100 mb-1", children: value }),
|
|
14035
|
-
subtitle && /* @__PURE__ */ jsx("div", { className: "text-xs text-slate-500 dark:text-slate-400", children: subtitle })
|
|
14036
|
-
] })
|
|
14037
|
-
]
|
|
14038
|
-
}
|
|
14039
|
-
);
|
|
14040
|
-
};
|
|
14041
|
-
var MetricTooltip = ({ text }) => {
|
|
14042
|
-
const [show, setShow] = useState(false);
|
|
14043
|
-
return /* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
14044
|
-
/* @__PURE__ */ jsx(
|
|
14045
|
-
"button",
|
|
14046
|
-
{
|
|
14047
|
-
type: "button",
|
|
14048
|
-
onMouseEnter: () => setShow(true),
|
|
14049
|
-
onMouseLeave: () => setShow(false),
|
|
14050
|
-
className: "w-4 h-4 rounded-full bg-white/30 dark:bg-white/10 text-slate-600 dark:text-slate-400 text-xs flex items-center justify-center hover:bg-white/40 dark:hover:bg-white/[0.08] transition-colors",
|
|
14051
|
-
"aria-label": "Info",
|
|
14052
|
-
children: "?"
|
|
14053
|
-
}
|
|
14054
|
-
),
|
|
14055
|
-
show && /* @__PURE__ */ jsxs("div", { className: "absolute right-0 top-6 z-10 w-64 p-3 liquid-surface-strong text-slate-900 dark:text-slate-100 text-xs rounded-lg", children: [
|
|
14056
|
-
text,
|
|
14057
|
-
/* @__PURE__ */ jsx("div", { className: "absolute right-2 top-0 -translate-y-1 w-2 h-2 bg-white/60 dark:bg-white/20 rotate-45" })
|
|
14058
|
-
] })
|
|
14059
|
-
] });
|
|
14060
|
-
};
|
|
14061
13061
|
|
|
14062
13062
|
// src/lib/navigation.ts
|
|
14063
13063
|
function buildDockActions(items, pathname, handlers, options = {}) {
|
|
@@ -14792,6 +13792,6 @@ function PlatformShell({
|
|
|
14792
13792
|
] });
|
|
14793
13793
|
}
|
|
14794
13794
|
|
|
14795
|
-
export { ActionMenu, ActionSheet, ActiveFilterChips, AnalysisSkeleton, AnimatedNumber, AnimatedTableRow, AppLogo, AppNavigation, AppShell, ArchiveSwipeAction, AuthLayout, Avatar, AvatarButton, BRAZIL_ACCENT_MAP, BRAZIL_MACRO_REGIONS, BRAZIL_MAP_CENTER, BRAZIL_STATE_COORDINATES, BRAZIL_STATE_PALETTES, BR_THEME_CONFIG, BackupCodeGrid, BadRequestPage, Badge, BaseForm, BentoCard, BooleanFlagsPicker, BottomSafeArea, BrandFilterSkeleton, BrandedLoader, Breadcrumb, Button, Card,
|
|
14796
|
-
//# sourceMappingURL=chunk-
|
|
14797
|
-
//# sourceMappingURL=chunk-
|
|
13795
|
+
export { ActionMenu, ActionSheet, ActiveFilterChips, AnalysisSkeleton, AnimatedNumber, AnimatedTableRow, AppLogo, AppNavigation, AppShell, ArchiveSwipeAction, AuthLayout, Avatar, AvatarButton, BRAZIL_ACCENT_MAP, BRAZIL_MACRO_REGIONS, BRAZIL_MAP_CENTER, BRAZIL_STATE_COORDINATES, BRAZIL_STATE_PALETTES, BR_THEME_CONFIG, BackupCodeGrid, BadRequestPage, Badge, BaseForm, BentoCard, BooleanFlagsPicker, BottomSafeArea, BrandFilterSkeleton, BrandedLoader, Breadcrumb, Button, Card, CardActionMenu, CardContent, CardDescription, CardDivider, CardFooter, CardGridSkeleton, CardHeader, CardSectionHeader, CardTitle, CategoryBadge, CategoryTab, CategoryTabs, ChipPicker, CircularRefreshIndicator, Code, CollapsibleGroupedList, CompactSegmentedControl, ContactCard, ContactSection, Container, ContextMenu, CookieConsent, CopyableId, CountPill, CreateActionButton, DashboardProgressShell, DataPagination, DatePicker, DeleteSwipeAction, Description4 as Description, DetailsPopover, DevModeBanner, Dialog4 as Dialog, DialogActions, DialogBody, DialogDescription, DialogTitle3 as DialogTitle, Divider, Dock, DockContainer, DockSkeleton, DotRefreshIndicator, Dropdown, DropdownButton, DropdownDivider, DropdownItem, DropdownLabel, DropdownMenu, DropdownSelect, DynamicIsland, DynamicIslandConfirm, DynamicIslandNotification, EdgeSwipeIndicator, EdgeSwipeProvider, EditSwipeAction, EmptyState, EntityCard, EntityDrawer, ErrorMessage, ErrorState, ExpandableHistoryList, ExpandingPageIndicator, FUEL_PRICE_LOADER, FavoriteSwipeAction, FeatureCard, FeedItemCard, Field2 as Field, FieldGroup, Fieldset2 as Fieldset, FilterBadge, FilterPill, FilterSectionHeader, FilterTileButton, FloatingActionButton, FlyoutMenu, FlyoutNavGrid, FlyoutQuickActions, ForceTouchMenu, Form, FormActions, FormActionsRow, FormCheckbox, FormField, FormGrid, FormInput, FormModal, FormPriceInput, FormSection, FormSelect, FormTextarea, FormToggle, GeoMapCanvas, GeoMapLegend, GlassModal, Gradient, GradientBackground, GrowthIndicator, Heading, HeroPanel, HeroSection, IconButton, InfoPopover, InlineForm, InlineSpinner, Input, InteractiveGeoMap, ItemSummary, KORI_ERP_LOADER, Label2 as Label, LabeledToggle, LanguageSwitcher, LaunchpadGrid, Lead, Legend2 as Legend, LiquidFilterInput, ListCard, ListCardItem, ListItem, LoadingOverlay, ManagementPageLayout, ManagementSurface, MapZoomControls, MetricCard, MonthPicker, MultiColumnPicker, NavigationProgress, NoDataState, NoResultsState, NotFoundPage, NotificationBadge, NotificationBellButton, NotificationProvider, OfficeCard, OfflineState, OptionGrid, OtpInput, PageEmptyState, PageHeader, PageHeading, PageIndicator, PageLoadingState, PageSectionHeader, Pagination, PasswordInput, PasswordStrengthMeter, Pill, PlatformShell, PlusGrid, PlusGridItem, PlusGridRow, PreferenceSection, PriceChangeBadge, ProfileIdentityCard, Progress, ProgressIndicator, PullToRefreshContainer, PullToRefreshIndicator, RadiantHeading, RadiantStatCard, RadiantSubheading, RegionFilterSkeleton, RoleBadge, SafeArea, SafeAreaSpacer, SafeAreaView, SearchBar, SearchFilterToolbar, SearchInput, SectionCard, SectionHeader, SectionHeaderSkeleton, SegmentedControl, Select, SelectableChipPicker, SelectableListPicker, SelectableOptionsGrid, SelectableTableRow, SelectionCard, ServerErrorPage, SettingsDialog, SettingsModal, Sheet, SocialLoginButtons, SortableTableHeader, Spinner, Stat, StatCard, StatCardSkeleton, StatusBadge, StatusToggle, StepFormPage, StepNavigationButtons, StepTimeline, Strong, Subheading, SwipeableRow, Switch2 as Switch, Table, TableBody, TableCell, TableEmptyState, TableHead, TableHeader, TableRow, TableSkeleton, TableSkeletonRow, Tabs, TabsContent, TabsList, TabsTrigger, TagBadge, Text, TextLink, Textarea, ThemeSwitch, ThemeToggle, ThemeToggleCompact, TimePicker, ToggleSwitch, TouchTarget, US_ACCENT_MAP, US_MACRO_REGIONS, US_MAP_CENTER, US_STATE_COORDINATES, US_STATE_PALETTES, US_THEME_CONFIG, UserAvatar, UserMobileInfo, WINDSOCK_LOADER, WIRE_LOADER, WheelPicker, WindsockIcon, buildDockActions, buildFlyoutNavItems, buildLaunchpadItems, buttonPress, buttonPressReduced, buttonTap, cardHover, cardHoverReduced, cardPress, createMotionProps, durations, durationsReduced, easings, fadeOnly, fadeScale, filterByPermission, formatCurrency, formatDate, formatPercentage, getBrazilAccent, getBrazilColors, getBrazilFlagUrl, getBrazilGradient, getBrazilHexColor, getBrazilPalette, getStatusColor, getSubdivisionAccent, getSubdivisionColors, getSubdivisionFlagUrl, getSubdivisionGradient, getSubdivisionHexColor, getSubdivisionPalette, getTransition, getUsAccent, getUsColors, getUsFlagUrl, getUsGradient, getUsHexColor, getUsPalette, getVariants, iosColors, isValidBrazilState, isValidSubdivision, isValidUsState, listItem, listItemReduced, notificationBanner, notificationBannerReduced, pageControlDot, prefersReducedMotion, registerSubdivisionTheme, resolveGlassAccentRgb, selectIsAuthenticated, selectShowShellChrome, selectUserInitial, selectUserName, shimmerClass, shimmerWhiteClass, slideDown, slideRight, slideUp, springPresets, springPresetsReduced, staggerContainer, swipeActionThreshold, swipeConstraints, useGeoMapState, useNotifications, usePlatformShellStore, usePullToRefresh };
|
|
13796
|
+
//# sourceMappingURL=chunk-7ZO5L4QH.mjs.map
|
|
13797
|
+
//# sourceMappingURL=chunk-7ZO5L4QH.mjs.map
|