@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
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
4
|
var chunkUZ3CMNUJ_js = require('./chunk-UZ3CMNUJ.js');
|
|
5
|
-
var
|
|
5
|
+
var Headless6 = require('@headlessui/react');
|
|
6
6
|
var clsx = require('clsx');
|
|
7
7
|
var React11 = require('react');
|
|
8
8
|
var framerMotion = require('framer-motion');
|
|
@@ -22,8 +22,8 @@ var Image = require('next/image');
|
|
|
22
22
|
var lucideReact = require('lucide-react');
|
|
23
23
|
var d3Geo = require('d3-geo');
|
|
24
24
|
var i18n = require('@datatechsolutions/shared-domain/i18n');
|
|
25
|
-
var ProgressPrimitive = require('@radix-ui/react-progress');
|
|
26
25
|
var TabsPrimitive = require('@radix-ui/react-tabs');
|
|
26
|
+
var ProgressPrimitive = require('@radix-ui/react-progress');
|
|
27
27
|
var zustand = require('zustand');
|
|
28
28
|
|
|
29
29
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
@@ -46,18 +46,18 @@ function _interopNamespace(e) {
|
|
|
46
46
|
return Object.freeze(n);
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
var
|
|
49
|
+
var Headless6__namespace = /*#__PURE__*/_interopNamespace(Headless6);
|
|
50
50
|
var clsx__default = /*#__PURE__*/_interopDefault(clsx);
|
|
51
51
|
var React11__namespace = /*#__PURE__*/_interopNamespace(React11);
|
|
52
52
|
var NextLink__default = /*#__PURE__*/_interopDefault(NextLink);
|
|
53
53
|
var HeroIcons__namespace = /*#__PURE__*/_interopNamespace(HeroIcons);
|
|
54
54
|
var Popover__namespace = /*#__PURE__*/_interopNamespace(Popover);
|
|
55
55
|
var Image__default = /*#__PURE__*/_interopDefault(Image);
|
|
56
|
-
var ProgressPrimitive__namespace = /*#__PURE__*/_interopNamespace(ProgressPrimitive);
|
|
57
56
|
var TabsPrimitive__namespace = /*#__PURE__*/_interopNamespace(TabsPrimitive);
|
|
57
|
+
var ProgressPrimitive__namespace = /*#__PURE__*/_interopNamespace(ProgressPrimitive);
|
|
58
58
|
|
|
59
59
|
var Link = React11.forwardRef(function Link2(props, ref) {
|
|
60
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
60
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Headless6__namespace.DataInteractive, { children: /* @__PURE__ */ jsxRuntime.jsx(NextLink__default.default, { ...props, ref }) });
|
|
61
61
|
});
|
|
62
62
|
|
|
63
63
|
// src/lib/animations.ts
|
|
@@ -628,7 +628,7 @@ var Button = React11.forwardRef(function Button2({
|
|
|
628
628
|
onTapStart: handleTapStart,
|
|
629
629
|
className: clsx__default.default("inline-flex", fullWidth && "w-full"),
|
|
630
630
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
631
|
-
|
|
631
|
+
Headless6.Button,
|
|
632
632
|
{
|
|
633
633
|
...buttonProps,
|
|
634
634
|
disabled: isDisabled,
|
|
@@ -1227,9 +1227,9 @@ function Sheet({
|
|
|
1227
1227
|
}, [open, motionValue]);
|
|
1228
1228
|
const maxHeight = snapPoints[snapPoints.length - 1];
|
|
1229
1229
|
const rightSizeClass = size === "xl" ? "max-w-xl" : size === "lg" ? "max-w-lg" : "max-w-md";
|
|
1230
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1230
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Headless6.Transition, { show: open, as: React11.Fragment, children: /* @__PURE__ */ jsxRuntime.jsxs(Headless6.Dialog, { as: "div", className: "relative z-50", onClose, children: [
|
|
1231
1231
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1232
|
-
|
|
1232
|
+
Headless6.TransitionChild,
|
|
1233
1233
|
{
|
|
1234
1234
|
as: React11.Fragment,
|
|
1235
1235
|
enter: "ease-out duration-300",
|
|
@@ -1252,7 +1252,7 @@ function Sheet({
|
|
|
1252
1252
|
{
|
|
1253
1253
|
className: isRight ? "pointer-events-none fixed inset-y-0 right-0 flex w-screen max-w-full justify-end" : "pointer-events-none fixed inset-x-0 bottom-0 flex justify-center",
|
|
1254
1254
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1255
|
-
|
|
1255
|
+
Headless6.TransitionChild,
|
|
1256
1256
|
{
|
|
1257
1257
|
as: React11.Fragment,
|
|
1258
1258
|
enter: "transform transition ease-out duration-300",
|
|
@@ -1262,7 +1262,7 @@ function Sheet({
|
|
|
1262
1262
|
leaveFrom: isRight ? "translate-x-0" : "translate-y-0",
|
|
1263
1263
|
leaveTo: isRight ? "translate-x-full" : "translate-y-full",
|
|
1264
1264
|
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1265
|
-
|
|
1265
|
+
Headless6.DialogPanel,
|
|
1266
1266
|
{
|
|
1267
1267
|
as: framerMotion.motion.div,
|
|
1268
1268
|
ref: sheetRef,
|
|
@@ -1275,7 +1275,7 @@ function Sheet({
|
|
|
1275
1275
|
...!isRight ? { initial: { height: maxHeight } } : {},
|
|
1276
1276
|
children: [
|
|
1277
1277
|
showHandle && !isRight && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex justify-center pt-3 pb-2 cursor-grab active:cursor-grabbing", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-1 w-10 rounded-full bg-gray-400/50 dark:bg-gray-500/50" }) }),
|
|
1278
|
-
title && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1278
|
+
title && /* @__PURE__ */ jsxRuntime.jsx(Headless6.DialogTitle, { className: "px-6 py-3 text-lg font-semibold text-gray-900 dark:text-white border-b border-gray-200/50 dark:border-white/10", children: title }),
|
|
1279
1279
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1280
1280
|
"div",
|
|
1281
1281
|
{
|
|
@@ -2935,10 +2935,10 @@ function TagBadge({
|
|
|
2935
2935
|
value,
|
|
2936
2936
|
size = "sm",
|
|
2937
2937
|
className = "",
|
|
2938
|
-
styles:
|
|
2938
|
+
styles: styles2 = {},
|
|
2939
2939
|
fallbackStyle = DEFAULT_FALLBACK_STYLE
|
|
2940
2940
|
}) {
|
|
2941
|
-
const style =
|
|
2941
|
+
const style = styles2[value] ?? fallbackStyle;
|
|
2942
2942
|
const sizeClass = SIZE_CLASSES[size];
|
|
2943
2943
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2944
2944
|
"span",
|
|
@@ -3016,7 +3016,7 @@ function SegmentedControl({
|
|
|
3016
3016
|
(seg) => typeof seg === "string" ? { value: seg, label: seg } : seg
|
|
3017
3017
|
);
|
|
3018
3018
|
const selectedIndex = normalizedSegments.findIndex((seg) => seg.value === value);
|
|
3019
|
-
const
|
|
3019
|
+
const styles2 = sizeStyles2[size];
|
|
3020
3020
|
React11.useEffect(() => {
|
|
3021
3021
|
if (containerRef.current && selectedIndex >= 0) {
|
|
3022
3022
|
const container = containerRef.current;
|
|
@@ -3044,7 +3044,7 @@ function SegmentedControl({
|
|
|
3044
3044
|
className: `
|
|
3045
3045
|
relative inline-flex items-center rounded-xl
|
|
3046
3046
|
bg-gray-100 dark:bg-gray-800
|
|
3047
|
-
${
|
|
3047
|
+
${styles2.container}
|
|
3048
3048
|
${fullWidth ? "w-full" : ""}
|
|
3049
3049
|
${disabled ? "opacity-50 pointer-events-none" : ""}
|
|
3050
3050
|
`,
|
|
@@ -3071,7 +3071,7 @@ function SegmentedControl({
|
|
|
3071
3071
|
className: `
|
|
3072
3072
|
relative z-10 flex items-center justify-center gap-1.5
|
|
3073
3073
|
font-medium rounded-lg transition-colors duration-150
|
|
3074
|
-
${
|
|
3074
|
+
${styles2.segment}
|
|
3075
3075
|
${fullWidth ? "flex-1" : ""}
|
|
3076
3076
|
${isSelected ? "text-gray-900 dark:text-white" : "text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-300"}
|
|
3077
3077
|
`,
|
|
@@ -4910,7 +4910,7 @@ function DynamicIslandNotification({
|
|
|
4910
4910
|
position = "right"
|
|
4911
4911
|
}) {
|
|
4912
4912
|
const [state, setState] = React11.useState("idle");
|
|
4913
|
-
const
|
|
4913
|
+
const styles2 = variantStyles[variant];
|
|
4914
4914
|
React11.useEffect(() => {
|
|
4915
4915
|
if (show) {
|
|
4916
4916
|
setState("expanded");
|
|
@@ -4935,12 +4935,12 @@ function DynamicIslandNotification({
|
|
|
4935
4935
|
position,
|
|
4936
4936
|
idleContent: (
|
|
4937
4937
|
// Idle: Colored icon pill
|
|
4938
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-center", children: icon && /* @__PURE__ */ jsxRuntime.jsx("div", { className: `h-6 w-6 rounded-full ${
|
|
4938
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-center", children: icon && /* @__PURE__ */ jsxRuntime.jsx("div", { className: `h-6 w-6 rounded-full ${styles2.iconBg} flex items-center justify-center`, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-4 w-4 text-white", children: icon }) }) })
|
|
4939
4939
|
),
|
|
4940
4940
|
compactContent: (
|
|
4941
4941
|
// Compact: Colored icon + title + message preview
|
|
4942
4942
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3 px-4 w-full", children: [
|
|
4943
|
-
icon && /* @__PURE__ */ jsxRuntime.jsx("div", { className: `h-8 w-8 rounded-full ${
|
|
4943
|
+
icon && /* @__PURE__ */ jsxRuntime.jsx("div", { className: `h-8 w-8 rounded-full ${styles2.iconBg} flex items-center justify-center shrink-0`, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-5 w-5 text-white", children: icon }) }),
|
|
4944
4944
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 min-w-0", children: [
|
|
4945
4945
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm font-semibold truncate", children: title }),
|
|
4946
4946
|
message && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-gray-400 truncate", children: message })
|
|
@@ -4950,9 +4950,9 @@ function DynamicIslandNotification({
|
|
|
4950
4950
|
expandedContent: (
|
|
4951
4951
|
// Expanded: Full notification with colored icon background
|
|
4952
4952
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: `flex items-center gap-4 px-5 w-full h-full`, children: [
|
|
4953
|
-
icon && /* @__PURE__ */ jsxRuntime.jsx("div", { className: `h-14 w-14 rounded-2xl ${
|
|
4953
|
+
icon && /* @__PURE__ */ jsxRuntime.jsx("div", { className: `h-14 w-14 rounded-2xl ${styles2.iconBg} flex items-center justify-center shrink-0 ${styles2.glow}`, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-8 w-8 text-white", children: icon }) }),
|
|
4954
4954
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 min-w-0", children: [
|
|
4955
|
-
appName && /* @__PURE__ */ jsxRuntime.jsx("p", { className: `text-[11px] uppercase tracking-wide font-medium ${
|
|
4955
|
+
appName && /* @__PURE__ */ jsxRuntime.jsx("p", { className: `text-[11px] uppercase tracking-wide font-medium ${styles2.accentColor}`, children: appName }),
|
|
4956
4956
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[15px] font-semibold leading-tight", children: title }),
|
|
4957
4957
|
message && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[13px] text-gray-400 mt-0.5 truncate", children: message })
|
|
4958
4958
|
] })
|
|
@@ -5414,9 +5414,9 @@ function GlassModal({
|
|
|
5414
5414
|
panelClassName = "rounded-[2rem]",
|
|
5415
5415
|
contentClassName = "fixed inset-0 flex items-center justify-center overflow-y-auto p-3 sm:p-5 lg:p-6"
|
|
5416
5416
|
}) {
|
|
5417
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
5418
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5419
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: contentClassName, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
5417
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(Headless6.Dialog, { open, onClose, className: "relative z-50", children: [
|
|
5418
|
+
/* @__PURE__ */ jsxRuntime.jsx(Headless6.DialogBackdrop, { className: "fixed inset-0 bg-slate-900/40 backdrop-blur-md dark:bg-black/50" }),
|
|
5419
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: contentClassName, children: /* @__PURE__ */ jsxRuntime.jsx(Headless6.DialogPanel, { className: panelClassName, children }) })
|
|
5420
5420
|
] });
|
|
5421
5421
|
}
|
|
5422
5422
|
function Text({ className, ...props }) {
|
|
@@ -5473,16 +5473,16 @@ function Dialog4({
|
|
|
5473
5473
|
children,
|
|
5474
5474
|
...props
|
|
5475
5475
|
}) {
|
|
5476
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
5476
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(Headless6__namespace.Dialog, { ...props, children: [
|
|
5477
5477
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5478
|
-
|
|
5478
|
+
Headless6__namespace.DialogBackdrop,
|
|
5479
5479
|
{
|
|
5480
5480
|
transition: true,
|
|
5481
5481
|
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"
|
|
5482
5482
|
}
|
|
5483
5483
|
),
|
|
5484
5484
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "fixed inset-0 w-screen overflow-y-auto pt-6 sm:pt-0", children: /* @__PURE__ */ jsxRuntime.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__ */ jsxRuntime.jsx(
|
|
5485
|
-
|
|
5485
|
+
Headless6__namespace.DialogPanel,
|
|
5486
5486
|
{
|
|
5487
5487
|
transition: true,
|
|
5488
5488
|
className: clsx__default.default(
|
|
@@ -5501,7 +5501,7 @@ function DialogTitle3({
|
|
|
5501
5501
|
...props
|
|
5502
5502
|
}) {
|
|
5503
5503
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
5504
|
-
|
|
5504
|
+
Headless6__namespace.DialogTitle,
|
|
5505
5505
|
{
|
|
5506
5506
|
...props,
|
|
5507
5507
|
className: clsx__default.default(
|
|
@@ -5516,7 +5516,7 @@ function DialogDescription({
|
|
|
5516
5516
|
...props
|
|
5517
5517
|
}) {
|
|
5518
5518
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
5519
|
-
|
|
5519
|
+
Headless6__namespace.Description,
|
|
5520
5520
|
{
|
|
5521
5521
|
as: Text,
|
|
5522
5522
|
...props,
|
|
@@ -5853,9 +5853,9 @@ function CopyableId({ id, copyValue, label, className }) {
|
|
|
5853
5853
|
);
|
|
5854
5854
|
}
|
|
5855
5855
|
function CardActionMenu({ items }) {
|
|
5856
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
5857
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5858
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5856
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(Headless6.Menu, { as: "div", className: "relative", children: [
|
|
5857
|
+
/* @__PURE__ */ jsxRuntime.jsx(Headless6.MenuButton, { className: "flex items-center rounded-full p-1 text-gray-400 transition-colors hover:text-gray-600 dark:hover:text-white", children: /* @__PURE__ */ jsxRuntime.jsx(solid.EllipsisVerticalIcon, { className: "h-5 w-5" }) }),
|
|
5858
|
+
/* @__PURE__ */ jsxRuntime.jsx(Headless6.MenuItems, { className: "absolute right-0 z-10 mt-2 w-40 origin-top-right rounded-lg bg-white shadow-lg ring-1 ring-black/5 focus:outline-hidden dark:bg-gray-800 dark:ring-white/10", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "py-1", children: items.map((item) => /* @__PURE__ */ jsxRuntime.jsx(Headless6.MenuItem, { children: ({ active }) => {
|
|
5859
5859
|
const toneClass = item.tone === "danger" ? active ? "bg-gray-100 text-red-600 dark:bg-gray-700 dark:text-red-400" : "text-gray-700 dark:text-gray-200" : active ? "bg-gray-100 text-gray-900 dark:bg-gray-700 dark:text-white" : "text-gray-700 dark:text-gray-200";
|
|
5860
5860
|
return /* @__PURE__ */ jsxRuntime.jsxs("button", { onClick: item.onSelect, className: `flex w-full items-center px-4 py-2 text-sm ${toneClass}`, children: [
|
|
5861
5861
|
item.icon ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "mr-3", children: item.icon }) : null,
|
|
@@ -5912,7 +5912,7 @@ function FormModal({
|
|
|
5912
5912
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
|
|
5913
5913
|
icon && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-shrink-0", children: icon }),
|
|
5914
5914
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
5915
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5915
|
+
/* @__PURE__ */ jsxRuntime.jsx(Headless6.DialogTitle, { className: "text-base sm:text-lg font-semibold text-gray-900 dark:text-white", children: title }),
|
|
5916
5916
|
subtitle && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs sm:text-sm text-gray-500 dark:text-gray-400 mt-0.5", children: subtitle })
|
|
5917
5917
|
] })
|
|
5918
5918
|
] }),
|
|
@@ -5953,10 +5953,10 @@ function FormModal({
|
|
|
5953
5953
|
)
|
|
5954
5954
|
] }) }) })
|
|
5955
5955
|
] });
|
|
5956
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
5956
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(Headless6.Dialog, { open, onClose, className: "relative z-50", children: [
|
|
5957
5957
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "fixed inset-0 bg-black/50 backdrop-blur-sm" }),
|
|
5958
5958
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "fixed inset-4 sm:inset-6 lg:inset-10 flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
5959
|
-
|
|
5959
|
+
Headless6.DialogPanel,
|
|
5960
5960
|
{
|
|
5961
5961
|
className: `liquid-surface-strong w-full h-full ${MAX_WIDTH_CLASSES[maxWidth]} flex flex-col rounded-2xl overflow-hidden`,
|
|
5962
5962
|
children: onSubmit ? /* @__PURE__ */ jsxRuntime.jsx("form", { onSubmit: handleSubmit, className: "flex-1 flex flex-col overflow-hidden", children: content }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1 flex flex-col overflow-hidden", children: content })
|
|
@@ -7310,9 +7310,9 @@ function SearchFilterToolbar({
|
|
|
7310
7310
|
),
|
|
7311
7311
|
actions
|
|
7312
7312
|
] }),
|
|
7313
|
-
!!children && onCloseFilters && /* @__PURE__ */ jsxRuntime.jsx(
|
|
7313
|
+
!!children && onCloseFilters && /* @__PURE__ */ jsxRuntime.jsx(Headless6.Transition, { show: filtersOpen, as: React11.Fragment, children: /* @__PURE__ */ jsxRuntime.jsxs(Headless6.Dialog, { as: "div", className: "relative z-50", onClose: onCloseFilters, children: [
|
|
7314
7314
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7315
|
-
|
|
7315
|
+
Headless6.TransitionChild,
|
|
7316
7316
|
{
|
|
7317
7317
|
as: React11.Fragment,
|
|
7318
7318
|
enter: "ease-out duration-200",
|
|
@@ -7321,11 +7321,11 @@ function SearchFilterToolbar({
|
|
|
7321
7321
|
leave: "ease-in duration-150",
|
|
7322
7322
|
leaveFrom: "opacity-100",
|
|
7323
7323
|
leaveTo: "opacity-0",
|
|
7324
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
7324
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(Headless6.DialogBackdrop, { className: "fixed inset-0 bg-slate-900/35 backdrop-blur-md" })
|
|
7325
7325
|
}
|
|
7326
7326
|
),
|
|
7327
7327
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "fixed inset-0 overflow-y-auto p-3 sm:p-6", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mx-auto flex min-h-full max-w-2xl items-start justify-center pt-[8vh]", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
7328
|
-
|
|
7328
|
+
Headless6.TransitionChild,
|
|
7329
7329
|
{
|
|
7330
7330
|
as: React11.Fragment,
|
|
7331
7331
|
enter: "ease-out duration-250",
|
|
@@ -7334,7 +7334,7 @@ function SearchFilterToolbar({
|
|
|
7334
7334
|
leave: "ease-in duration-180",
|
|
7335
7335
|
leaveFrom: "opacity-100 scale-100",
|
|
7336
7336
|
leaveTo: "opacity-0 scale-95",
|
|
7337
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
7337
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(Headless6.DialogPanel, { className: "liquid-surface-strong w-full overflow-hidden rounded-2xl", children: [
|
|
7338
7338
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "border-b border-white/30 px-5 py-4 dark:border-white/10", children: [
|
|
7339
7339
|
resolvedFiltersContext ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-2 flex items-center gap-2 text-slate-600 dark:text-white/70", children: [
|
|
7340
7340
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: resolvedFiltersContext.icon }),
|
|
@@ -8586,7 +8586,7 @@ var AvatarButton = React11.forwardRef(function AvatarButton2({
|
|
|
8586
8586
|
if (typeof props.href === "string") {
|
|
8587
8587
|
return /* @__PURE__ */ jsxRuntime.jsx(Link, { ...props, className: classes, ref, children: /* @__PURE__ */ jsxRuntime.jsx(TouchTarget, { children: /* @__PURE__ */ jsxRuntime.jsx(Avatar, { src, square, initials, alt }) }) });
|
|
8588
8588
|
}
|
|
8589
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
8589
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Headless6__namespace.Button, { ...props, className: classes, ref, children: /* @__PURE__ */ jsxRuntime.jsx(TouchTarget, { children: /* @__PURE__ */ jsxRuntime.jsx(Avatar, { src, square, initials, alt }) }) });
|
|
8590
8590
|
});
|
|
8591
8591
|
var colors = {
|
|
8592
8592
|
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",
|
|
@@ -8634,7 +8634,7 @@ React11.forwardRef(function BadgeButton2({
|
|
|
8634
8634
|
if (typeof props.href === "string") {
|
|
8635
8635
|
return /* @__PURE__ */ jsxRuntime.jsx(Link, { ...props, className: classes, ref, children: /* @__PURE__ */ jsxRuntime.jsx(TouchTarget, { children: /* @__PURE__ */ jsxRuntime.jsx(Badge, { color, children }) }) });
|
|
8636
8636
|
}
|
|
8637
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
8637
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Headless6__namespace.Button, { ...props, className: classes, ref, children: /* @__PURE__ */ jsxRuntime.jsx(TouchTarget, { children: /* @__PURE__ */ jsxRuntime.jsx(Badge, { color, children }) }) });
|
|
8638
8638
|
});
|
|
8639
8639
|
function Breadcrumb({ pages, actions, centerContent, dashboardPath = "/dashboard" }) {
|
|
8640
8640
|
const t = nextIntl.useTranslations("common");
|
|
@@ -8806,7 +8806,7 @@ function Divider({
|
|
|
8806
8806
|
);
|
|
8807
8807
|
}
|
|
8808
8808
|
function Dropdown(props) {
|
|
8809
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
8809
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Headless6__namespace.Menu, { ...props });
|
|
8810
8810
|
}
|
|
8811
8811
|
function DynamicIslandConfirm({
|
|
8812
8812
|
open,
|
|
@@ -8826,9 +8826,9 @@ function DynamicIslandConfirm({
|
|
|
8826
8826
|
chunkUZ3CMNUJ_js.triggerHaptic("warning");
|
|
8827
8827
|
}
|
|
8828
8828
|
}, [open]);
|
|
8829
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
8829
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(Headless6.Dialog, { open, onClose, className: "relative z-[120]", children: [
|
|
8830
8830
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "fixed inset-0 bg-black/10 backdrop-blur-[2px]" }),
|
|
8831
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "fixed inset-0 flex items-start justify-center pt-3 px-4", children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
8831
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "fixed inset-0 flex items-start justify-center pt-3 px-4", children: /* @__PURE__ */ jsxRuntime.jsxs(Headless6.DialogPanel, { className: "w-full max-w-sm rounded-[28px] bg-black/95 p-3 text-white shadow-2xl", children: [
|
|
8832
8832
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3 px-2 py-1", children: [
|
|
8833
8833
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: `h-9 w-9 shrink-0 rounded-xl ${iconBackground} flex items-center justify-center`, children: icon ?? /* @__PURE__ */ jsxRuntime.jsx(HeroIcons.TrashIcon, { className: "h-5 w-5 text-white" }) }),
|
|
8834
8834
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0", children: [
|
|
@@ -8868,9 +8868,9 @@ function FlyoutMenu({
|
|
|
8868
8868
|
maxWidthClassName = "max-w-4xl",
|
|
8869
8869
|
panelClassName
|
|
8870
8870
|
}) {
|
|
8871
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
8872
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
8873
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "fixed inset-0 flex items-start justify-center p-2 pt-[max(2.75rem,env(safe-area-inset-top))] sm:p-4 sm:pt-20", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
8871
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(Headless6.Dialog, { open, onClose, className: "relative z-50", children: [
|
|
8872
|
+
/* @__PURE__ */ jsxRuntime.jsx(Headless6.DialogBackdrop, { className: "fixed inset-0 bg-slate-900/35 backdrop-blur-sm dark:bg-black/45" }),
|
|
8873
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "fixed inset-0 flex items-start justify-center p-2 pt-[max(2.75rem,env(safe-area-inset-top))] sm:p-4 sm:pt-20", children: /* @__PURE__ */ jsxRuntime.jsx(Headless6.DialogPanel, { className: `w-screen ${maxWidthClassName} ${panelClassName ?? defaultPanelClassName}`, children: title ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "p-4", children: [
|
|
8874
8874
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-3 flex items-center justify-center", children: title }),
|
|
8875
8875
|
children
|
|
8876
8876
|
] }) : children }) })
|
|
@@ -9077,9 +9077,9 @@ function LanguageSwitcher({
|
|
|
9077
9077
|
]
|
|
9078
9078
|
}
|
|
9079
9079
|
),
|
|
9080
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
9081
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
9082
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "fixed inset-0 z-50 grid place-items-center p-4", children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
9080
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Headless6.Dialog, { className: "relative z-50", open, onClose: setOpen, children: [
|
|
9081
|
+
/* @__PURE__ */ jsxRuntime.jsx(Headless6.DialogBackdrop, { className: "fixed inset-0 bg-slate-900/35 backdrop-blur-sm" }),
|
|
9082
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "fixed inset-0 z-50 grid place-items-center p-4", children: /* @__PURE__ */ jsxRuntime.jsxs(Headless6.DialogPanel, { className: "w-full max-w-md liquid-surface rounded-2xl border border-white/45 p-4 dark:border-white/12", children: [
|
|
9083
9083
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mb-3 text-sm font-semibold uppercase tracking-wide text-slate-600 dark:text-slate-300", children: changeLanguageLabel }),
|
|
9084
9084
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-4 gap-2", children: languages.map((language) => {
|
|
9085
9085
|
const selected = currentLocale === language.code;
|
|
@@ -9847,7 +9847,7 @@ function Fieldset2({
|
|
|
9847
9847
|
...props
|
|
9848
9848
|
}) {
|
|
9849
9849
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
9850
|
-
|
|
9850
|
+
Headless6__namespace.Fieldset,
|
|
9851
9851
|
{
|
|
9852
9852
|
...props,
|
|
9853
9853
|
className: clsx__default.default(
|
|
@@ -9862,7 +9862,7 @@ function Legend2({
|
|
|
9862
9862
|
...props
|
|
9863
9863
|
}) {
|
|
9864
9864
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
9865
|
-
|
|
9865
|
+
Headless6__namespace.Legend,
|
|
9866
9866
|
{
|
|
9867
9867
|
"data-slot": "legend",
|
|
9868
9868
|
...props,
|
|
@@ -9891,7 +9891,7 @@ function Field2({
|
|
|
9891
9891
|
...props
|
|
9892
9892
|
}) {
|
|
9893
9893
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
9894
|
-
|
|
9894
|
+
Headless6__namespace.Field,
|
|
9895
9895
|
{
|
|
9896
9896
|
...props,
|
|
9897
9897
|
className: clsx__default.default(
|
|
@@ -9911,7 +9911,7 @@ function Label2({
|
|
|
9911
9911
|
...props
|
|
9912
9912
|
}) {
|
|
9913
9913
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
9914
|
-
|
|
9914
|
+
Headless6__namespace.Label,
|
|
9915
9915
|
{
|
|
9916
9916
|
"data-slot": "label",
|
|
9917
9917
|
...props,
|
|
@@ -9927,7 +9927,7 @@ function Description4({
|
|
|
9927
9927
|
...props
|
|
9928
9928
|
}) {
|
|
9929
9929
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
9930
|
-
|
|
9930
|
+
Headless6__namespace.Description,
|
|
9931
9931
|
{
|
|
9932
9932
|
"data-slot": "description",
|
|
9933
9933
|
...props,
|
|
@@ -9943,7 +9943,7 @@ function ErrorMessage({
|
|
|
9943
9943
|
...props
|
|
9944
9944
|
}) {
|
|
9945
9945
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
9946
|
-
|
|
9946
|
+
Headless6__namespace.Description,
|
|
9947
9947
|
{
|
|
9948
9948
|
"data-slot": "error",
|
|
9949
9949
|
...props,
|
|
@@ -11488,14 +11488,14 @@ function UserAvatar({
|
|
|
11488
11488
|
const initial = user?.name?.[0]?.toUpperCase() || defaultUser[0];
|
|
11489
11489
|
const displayName = user?.name || defaultUser;
|
|
11490
11490
|
const email = user?.email || defaultEmail;
|
|
11491
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
11492
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
11491
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(Headless6.Menu, { as: "div", className: `relative ${className}`, children: [
|
|
11492
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Headless6.MenuButton, { className: "relative flex max-w-xs items-center rounded-full focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-white", children: [
|
|
11493
11493
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute -inset-1.5" }),
|
|
11494
11494
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: openMenu }),
|
|
11495
11495
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "size-8 rounded-full bg-indigo-500 flex items-center justify-center text-white font-medium", children: initial })
|
|
11496
11496
|
] }),
|
|
11497
11497
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
11498
|
-
|
|
11498
|
+
Headless6.MenuItems,
|
|
11499
11499
|
{
|
|
11500
11500
|
transition: true,
|
|
11501
11501
|
className: "absolute right-0 z-10 mt-2 w-48 origin-top-right rounded-md bg-white py-1 shadow-lg outline-1 outline-black/5 transition data-[closed]:scale-95 data-[closed]:opacity-0 data-[enter]:duration-100 data-[enter]:ease-out data-[leave]:duration-75 data-[leave]:ease-in dark:bg-gray-800 dark:shadow-none dark:-outline-offset-1 dark:outline-white/10",
|
|
@@ -11504,7 +11504,7 @@ function UserAvatar({
|
|
|
11504
11504
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm font-medium text-gray-900 dark:text-white truncate", children: displayName }),
|
|
11505
11505
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-gray-500 dark:text-gray-400 truncate", children: email })
|
|
11506
11506
|
] }),
|
|
11507
|
-
menuItems.map((item) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
11507
|
+
menuItems.map((item) => /* @__PURE__ */ jsxRuntime.jsx(Headless6.MenuItem, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
11508
11508
|
"a",
|
|
11509
11509
|
{
|
|
11510
11510
|
href: item.href,
|
|
@@ -12572,435 +12572,374 @@ var getUsGradient = (state, direction) => getSubdivisionGradient("US", state, di
|
|
|
12572
12572
|
var getUsColors = (state) => getSubdivisionColors("US", state);
|
|
12573
12573
|
var getUsAccent = (state) => getSubdivisionAccent("US", state);
|
|
12574
12574
|
var isValidUsState = (state) => isValidSubdivision("US", state);
|
|
12575
|
-
|
|
12576
|
-
|
|
12577
|
-
|
|
12578
|
-
|
|
12579
|
-
|
|
12580
|
-
|
|
12581
|
-
|
|
12582
|
-
|
|
12583
|
-
|
|
12584
|
-
|
|
12585
|
-
|
|
12586
|
-
|
|
12587
|
-
|
|
12588
|
-
|
|
12589
|
-
|
|
12590
|
-
|
|
12591
|
-
|
|
12592
|
-
|
|
12593
|
-
|
|
12594
|
-
|
|
12595
|
-
|
|
12596
|
-
|
|
12597
|
-
|
|
12598
|
-
|
|
12599
|
-
|
|
12600
|
-
|
|
12601
|
-
|
|
12602
|
-
|
|
12603
|
-
|
|
12604
|
-
|
|
12605
|
-
|
|
12606
|
-
|
|
12607
|
-
|
|
12608
|
-
"
|
|
12609
|
-
|
|
12610
|
-
|
|
12611
|
-
"bg-slate-600/80 text-white backdrop-blur-xl border border-white/10 hover:bg-slate-700/80"
|
|
12612
|
-
],
|
|
12613
|
-
indigo: [
|
|
12614
|
-
"bg-indigo-500/80 text-white backdrop-blur-xl border border-indigo-400/30 hover:bg-indigo-600/80"
|
|
12615
|
-
],
|
|
12616
|
-
cyan: [
|
|
12617
|
-
"bg-cyan-300/80 text-cyan-950 backdrop-blur-xl border border-cyan-200/30 hover:bg-cyan-400/80"
|
|
12618
|
-
],
|
|
12619
|
-
red: [
|
|
12620
|
-
"bg-red-600/80 text-white backdrop-blur-xl border border-red-500/30 hover:bg-red-700/80"
|
|
12621
|
-
],
|
|
12622
|
-
orange: [
|
|
12623
|
-
"bg-orange-500/80 text-white backdrop-blur-xl border border-orange-400/30 hover:bg-orange-600/80"
|
|
12624
|
-
],
|
|
12625
|
-
amber: [
|
|
12626
|
-
"bg-amber-400/80 text-amber-950 backdrop-blur-xl border border-amber-300/30 hover:bg-amber-500/80"
|
|
12627
|
-
],
|
|
12628
|
-
yellow: [
|
|
12629
|
-
"bg-yellow-300/80 text-yellow-950 backdrop-blur-xl border border-yellow-200/30 hover:bg-yellow-400/80"
|
|
12630
|
-
],
|
|
12631
|
-
lime: [
|
|
12632
|
-
"bg-lime-300/80 text-lime-950 backdrop-blur-xl border border-lime-200/30 hover:bg-lime-400/80"
|
|
12633
|
-
],
|
|
12634
|
-
green: [
|
|
12635
|
-
"bg-green-600/80 text-white backdrop-blur-xl border border-green-500/30 hover:bg-green-700/80"
|
|
12636
|
-
],
|
|
12637
|
-
emerald: [
|
|
12638
|
-
"bg-emerald-600/80 text-white backdrop-blur-xl border border-emerald-500/30 hover:bg-emerald-700/80"
|
|
12639
|
-
],
|
|
12640
|
-
teal: [
|
|
12641
|
-
"bg-teal-600/80 text-white backdrop-blur-xl border border-teal-500/30 hover:bg-teal-700/80"
|
|
12642
|
-
],
|
|
12643
|
-
sky: [
|
|
12644
|
-
"bg-sky-500/80 text-white backdrop-blur-xl border border-sky-400/30 hover:bg-sky-600/80"
|
|
12645
|
-
],
|
|
12646
|
-
blue: [
|
|
12647
|
-
"bg-blue-600/80 text-white backdrop-blur-xl border border-blue-500/30 hover:bg-blue-700/80"
|
|
12648
|
-
],
|
|
12649
|
-
brand: [
|
|
12650
|
-
"bg-brand-600/80 text-white backdrop-blur-xl border border-brand-500/30 hover:bg-brand-700/80"
|
|
12651
|
-
],
|
|
12652
|
-
accent: [
|
|
12653
|
-
"bg-accent/80 text-accent-foreground backdrop-blur-xl border border-accent/30 hover:bg-accent/70"
|
|
12654
|
-
],
|
|
12655
|
-
violet: [
|
|
12656
|
-
"bg-violet-500/80 text-white backdrop-blur-xl border border-violet-400/30 hover:bg-violet-600/80"
|
|
12657
|
-
],
|
|
12658
|
-
purple: [
|
|
12659
|
-
"bg-purple-500/80 text-white backdrop-blur-xl border border-purple-400/30 hover:bg-purple-600/80"
|
|
12660
|
-
],
|
|
12661
|
-
fuchsia: [
|
|
12662
|
-
"bg-fuchsia-500/80 text-white backdrop-blur-xl border border-fuchsia-400/30 hover:bg-fuchsia-600/80"
|
|
12663
|
-
],
|
|
12664
|
-
pink: [
|
|
12665
|
-
"bg-pink-500/80 text-white backdrop-blur-xl border border-pink-400/30 hover:bg-pink-600/80"
|
|
12666
|
-
],
|
|
12667
|
-
rose: [
|
|
12668
|
-
"bg-rose-500/80 text-white backdrop-blur-xl border border-rose-400/30 hover:bg-rose-600/80"
|
|
12669
|
-
]
|
|
12670
|
-
}
|
|
12671
|
-
};
|
|
12672
|
-
var Button6 = React11.forwardRef(function Button7({
|
|
12673
|
-
color,
|
|
12674
|
-
outline,
|
|
12675
|
-
plain,
|
|
12676
|
-
className,
|
|
12677
|
-
children,
|
|
12678
|
-
loading,
|
|
12679
|
-
"aria-label": ariaLabel,
|
|
12680
|
-
"aria-describedby": ariaDescribedBy,
|
|
12681
|
-
"aria-busy": ariaBusy,
|
|
12682
|
-
...props
|
|
12683
|
-
}, ref) {
|
|
12684
|
-
const classes = clsx__default.default(
|
|
12685
|
-
className,
|
|
12686
|
-
styles2.base,
|
|
12687
|
-
outline ? styles2.outline : plain ? styles2.plain : clsx__default.default(styles2.solid, styles2.colors[color ?? "brand"])
|
|
12688
|
-
);
|
|
12689
|
-
const accessibilityProps = {
|
|
12690
|
-
"aria-label": ariaLabel,
|
|
12691
|
-
"aria-describedby": ariaDescribedBy,
|
|
12692
|
-
"aria-busy": ariaBusy || loading,
|
|
12693
|
-
...loading && { disabled: true }
|
|
12694
|
-
};
|
|
12695
|
-
return "href" in props ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
12696
|
-
Link4,
|
|
12697
|
-
{
|
|
12698
|
-
...props,
|
|
12699
|
-
...accessibilityProps,
|
|
12700
|
-
className: classes,
|
|
12701
|
-
ref,
|
|
12702
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs(TouchTarget2, { children: [
|
|
12703
|
-
loading && /* @__PURE__ */ jsxRuntime.jsx(
|
|
12704
|
-
"span",
|
|
12575
|
+
function DataPagination({
|
|
12576
|
+
pagination,
|
|
12577
|
+
onUpdate,
|
|
12578
|
+
loading = false,
|
|
12579
|
+
showPageSize = false,
|
|
12580
|
+
pageSizeOptions = [10, 20, 50],
|
|
12581
|
+
params
|
|
12582
|
+
}) {
|
|
12583
|
+
const effectivePageSize = pagination.pageSize ?? pagination.limit ?? 10;
|
|
12584
|
+
const from = (pagination.page - 1) * effectivePageSize + 1;
|
|
12585
|
+
const to = Math.min(pagination.page * effectivePageSize, pagination.total);
|
|
12586
|
+
const handlePageChange = (page) => onUpdate({ page });
|
|
12587
|
+
const handlePageSizeChange = (value) => onUpdate({ limit: parseInt(value), page: 1 });
|
|
12588
|
+
if (pagination.totalPages <= 1 && !showPageSize) return null;
|
|
12589
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center justify-between gap-3 rounded-2xl liquid-surface px-4 py-3", children: [
|
|
12590
|
+
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-sm tabular-nums text-slate-600 dark:text-slate-400", children: [
|
|
12591
|
+
from,
|
|
12592
|
+
"\u2013",
|
|
12593
|
+
to,
|
|
12594
|
+
" / ",
|
|
12595
|
+
pagination.total
|
|
12596
|
+
] }),
|
|
12597
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
12598
|
+
showPageSize && /* @__PURE__ */ jsxRuntime.jsx(
|
|
12599
|
+
"select",
|
|
12600
|
+
{
|
|
12601
|
+
value: params?.limit ?? effectivePageSize,
|
|
12602
|
+
onChange: (event) => handlePageSizeChange(event.target.value),
|
|
12603
|
+
disabled: loading,
|
|
12604
|
+
className: "rounded-xl liquid-surface px-2 py-1.5 text-xs font-medium text-slate-700 outline-none dark:text-slate-300",
|
|
12605
|
+
children: pageSizeOptions.map((size) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: size, children: size }, size))
|
|
12606
|
+
}
|
|
12607
|
+
),
|
|
12608
|
+
pagination.totalPages > 1 && /* @__PURE__ */ jsxRuntime.jsxs("nav", { className: "flex items-center gap-1", "aria-label": "Pagination", children: [
|
|
12609
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
12610
|
+
"button",
|
|
12705
12611
|
{
|
|
12706
|
-
|
|
12707
|
-
|
|
12612
|
+
type: "button",
|
|
12613
|
+
disabled: pagination.page <= 1 || loading,
|
|
12614
|
+
onClick: () => handlePageChange(pagination.page - 1),
|
|
12615
|
+
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]",
|
|
12616
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(solid.ChevronLeftIcon, { className: "h-5 w-5" })
|
|
12708
12617
|
}
|
|
12709
12618
|
),
|
|
12710
|
-
|
|
12711
|
-
|
|
12712
|
-
|
|
12713
|
-
|
|
12714
|
-
|
|
12715
|
-
|
|
12716
|
-
|
|
12717
|
-
|
|
12718
|
-
|
|
12719
|
-
|
|
12720
|
-
|
|
12721
|
-
|
|
12722
|
-
|
|
12619
|
+
getPageNumbers(pagination.page, pagination.totalPages).map(
|
|
12620
|
+
(page, index) => page === "..." ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
12621
|
+
"span",
|
|
12622
|
+
{
|
|
12623
|
+
className: "inline-flex h-9 w-6 items-center justify-center text-xs text-slate-400",
|
|
12624
|
+
children: "\u2026"
|
|
12625
|
+
},
|
|
12626
|
+
`ellipsis-${index}`
|
|
12627
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
12628
|
+
"button",
|
|
12629
|
+
{
|
|
12630
|
+
type: "button",
|
|
12631
|
+
disabled: loading,
|
|
12632
|
+
onClick: () => handlePageChange(page),
|
|
12633
|
+
"aria-current": page === pagination.page ? "page" : void 0,
|
|
12634
|
+
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]"}`,
|
|
12635
|
+
children: page
|
|
12636
|
+
},
|
|
12637
|
+
`page-${page}`
|
|
12638
|
+
)
|
|
12639
|
+
),
|
|
12640
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
12641
|
+
"button",
|
|
12723
12642
|
{
|
|
12724
|
-
|
|
12725
|
-
|
|
12643
|
+
type: "button",
|
|
12644
|
+
disabled: pagination.page >= pagination.totalPages || loading,
|
|
12645
|
+
onClick: () => handlePageChange(pagination.page + 1),
|
|
12646
|
+
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]",
|
|
12647
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(solid.ChevronRightIcon, { className: "h-5 w-5" })
|
|
12726
12648
|
}
|
|
12727
|
-
)
|
|
12728
|
-
children
|
|
12649
|
+
)
|
|
12729
12650
|
] })
|
|
12730
|
-
}
|
|
12731
|
-
);
|
|
12732
|
-
});
|
|
12733
|
-
function TouchTarget2({ children }) {
|
|
12734
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
12735
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
12736
|
-
"span",
|
|
12737
|
-
{
|
|
12738
|
-
className: "absolute top-1/2 left-1/2 size-[max(100%,2.75rem)] -translate-x-1/2 -translate-y-1/2 pointer-fine:hidden",
|
|
12739
|
-
"aria-hidden": "true"
|
|
12740
|
-
}
|
|
12741
|
-
),
|
|
12742
|
-
children
|
|
12651
|
+
] })
|
|
12743
12652
|
] });
|
|
12744
12653
|
}
|
|
12745
|
-
function
|
|
12746
|
-
|
|
12747
|
-
})
|
|
12748
|
-
|
|
12749
|
-
|
|
12750
|
-
|
|
12751
|
-
|
|
12752
|
-
|
|
12753
|
-
|
|
12754
|
-
|
|
12755
|
-
"*: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",
|
|
12756
|
-
"[&>[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",
|
|
12757
|
-
"*:data-[slot=icon]:text-slate-500"
|
|
12758
|
-
),
|
|
12759
|
-
children
|
|
12654
|
+
function getPageNumbers(currentPage, totalPages) {
|
|
12655
|
+
if (totalPages <= 7) {
|
|
12656
|
+
return Array.from({ length: totalPages }, (_, i) => i + 1);
|
|
12657
|
+
}
|
|
12658
|
+
const pages = [1];
|
|
12659
|
+
if (currentPage <= 4) {
|
|
12660
|
+
for (let i = 2; i <= Math.min(5, totalPages); i++) pages.push(i);
|
|
12661
|
+
if (totalPages > 5) {
|
|
12662
|
+
pages.push("...");
|
|
12663
|
+
pages.push(totalPages);
|
|
12760
12664
|
}
|
|
12761
|
-
)
|
|
12665
|
+
} else if (currentPage >= totalPages - 3) {
|
|
12666
|
+
pages.push("...");
|
|
12667
|
+
for (let i = Math.max(totalPages - 4, 2); i <= totalPages; i++)
|
|
12668
|
+
pages.push(i);
|
|
12669
|
+
} else {
|
|
12670
|
+
pages.push("...");
|
|
12671
|
+
for (let i = currentPage - 1; i <= currentPage + 1; i++) pages.push(i);
|
|
12672
|
+
pages.push("...");
|
|
12673
|
+
pages.push(totalPages);
|
|
12674
|
+
}
|
|
12675
|
+
return pages;
|
|
12762
12676
|
}
|
|
12763
|
-
var
|
|
12764
|
-
|
|
12765
|
-
|
|
12766
|
-
"
|
|
12767
|
-
|
|
12768
|
-
"aria-invalid": ariaInvalid,
|
|
12769
|
-
"aria-required": ariaRequired,
|
|
12770
|
-
required,
|
|
12771
|
-
invalid,
|
|
12772
|
-
...props
|
|
12773
|
-
}, ref) {
|
|
12774
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
12775
|
-
"span",
|
|
12776
|
-
{
|
|
12777
|
-
"data-slot": "control",
|
|
12778
|
-
className: clsx__default.default([
|
|
12779
|
-
className,
|
|
12780
|
-
// Basic layout
|
|
12781
|
-
"relative block w-full",
|
|
12782
|
-
// Focus ring
|
|
12783
|
-
"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",
|
|
12784
|
-
// Disabled state
|
|
12785
|
-
"has-data-disabled:opacity-50"
|
|
12786
|
-
]),
|
|
12787
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
12788
|
-
Headless11__namespace.Input,
|
|
12789
|
-
{
|
|
12790
|
-
ref,
|
|
12791
|
-
...props,
|
|
12792
|
-
"aria-label": ariaLabel,
|
|
12793
|
-
"aria-describedby": ariaDescribedBy,
|
|
12794
|
-
"aria-invalid": ariaInvalid || invalid,
|
|
12795
|
-
"aria-required": ariaRequired || required,
|
|
12796
|
-
style: {
|
|
12797
|
-
...props.style,
|
|
12798
|
-
// Override autofill with CSS custom properties
|
|
12799
|
-
"--autofill-bg": "white",
|
|
12800
|
-
"--autofill-color": "black"
|
|
12801
|
-
},
|
|
12802
|
-
className: clsx__default.default([
|
|
12803
|
-
// Date classes
|
|
12804
|
-
props.type && dateTypes.includes(props.type) && [
|
|
12805
|
-
"[&::-webkit-datetime-edit-fields-wrapper]:p-0",
|
|
12806
|
-
"[&::-webkit-date-and-time-value]:min-h-[1.5em]",
|
|
12807
|
-
"[&::-webkit-datetime-edit]:inline-flex",
|
|
12808
|
-
"[&::-webkit-datetime-edit]:p-0",
|
|
12809
|
-
"[&::-webkit-datetime-edit-year-field]:p-0",
|
|
12810
|
-
"[&::-webkit-datetime-edit-month-field]:p-0",
|
|
12811
|
-
"[&::-webkit-datetime-edit-day-field]:p-0",
|
|
12812
|
-
"[&::-webkit-datetime-edit-hour-field]:p-0",
|
|
12813
|
-
"[&::-webkit-datetime-edit-minute-field]:p-0",
|
|
12814
|
-
"[&::-webkit-datetime-edit-second-field]:p-0",
|
|
12815
|
-
"[&::-webkit-datetime-edit-millisecond-field]:p-0",
|
|
12816
|
-
"[&::-webkit-datetime-edit-meridiem-field]:p-0"
|
|
12817
|
-
],
|
|
12818
|
-
// Basic layout
|
|
12819
|
-
"relative block w-full appearance-none rounded-xl px-3 py-2.5",
|
|
12820
|
-
// Typography
|
|
12821
|
-
"text-sm text-slate-900 dark:text-white placeholder:text-slate-400 dark:placeholder:text-slate-500",
|
|
12822
|
-
// Border
|
|
12823
|
-
"border border-white/50 data-hover:border-white/70 dark:border-white/10 dark:data-hover:border-white/20",
|
|
12824
|
-
// Background color — glass surface
|
|
12825
|
-
"liquid-surface",
|
|
12826
|
-
// Hide default focus styles
|
|
12827
|
-
"focus:outline-none",
|
|
12828
|
-
// Invalid state
|
|
12829
|
-
"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",
|
|
12830
|
-
// Disabled state
|
|
12831
|
-
"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",
|
|
12832
|
-
// System icons
|
|
12833
|
-
"dark:scheme-dark",
|
|
12834
|
-
// Autofill override styles
|
|
12835
|
-
"[&:-webkit-autofill]:!shadow-[inset_0_0_0_1000px_white] [&:-webkit-autofill]:!text-black",
|
|
12836
|
-
"[&:-webkit-autofill:hover]:!shadow-[inset_0_0_0_1000px_white] [&:-webkit-autofill:hover]:!text-black",
|
|
12837
|
-
"[&:-webkit-autofill:focus]:!shadow-[inset_0_0_0_1000px_white] [&:-webkit-autofill:focus]:!text-black",
|
|
12838
|
-
"[&:-webkit-autofill:active]:!shadow-[inset_0_0_0_1000px_white] [&:-webkit-autofill:active]:!text-black",
|
|
12839
|
-
"dark:[&:-webkit-autofill]:!shadow-[inset_0_0_0_1000px_rgb(15,23,42)] dark:[&:-webkit-autofill]:!text-slate-200",
|
|
12840
|
-
"dark:[&:-webkit-autofill:hover]:!shadow-[inset_0_0_0_1000px_rgb(15,23,42)] dark:[&:-webkit-autofill:hover]:!text-slate-200",
|
|
12841
|
-
"dark:[&:-webkit-autofill:focus]:!shadow-[inset_0_0_0_1000px_rgb(15,23,42)] dark:[&:-webkit-autofill:focus]:!text-slate-200",
|
|
12842
|
-
"dark:[&:-webkit-autofill:active]:!shadow-[inset_0_0_0_1000px_rgb(15,23,42)] dark:[&:-webkit-autofill:active]:!text-slate-200"
|
|
12843
|
-
])
|
|
12844
|
-
}
|
|
12845
|
-
)
|
|
12846
|
-
}
|
|
12847
|
-
);
|
|
12848
|
-
});
|
|
12849
|
-
var SelectContent = ({ children }) => /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children });
|
|
12850
|
-
var SelectItem = ({
|
|
12851
|
-
children,
|
|
12852
|
-
value
|
|
12853
|
-
}) => /* @__PURE__ */ jsxRuntime.jsx("option", { value, children });
|
|
12854
|
-
var SelectTrigger = ({
|
|
12855
|
-
children,
|
|
12856
|
-
className
|
|
12857
|
-
}) => /* @__PURE__ */ jsxRuntime.jsx("div", { className, children });
|
|
12858
|
-
var SelectValue = ({ placeholder }) => /* @__PURE__ */ jsxRuntime.jsx("span", { children: placeholder });
|
|
12859
|
-
React11.forwardRef(function Select4({
|
|
12677
|
+
var PageHeader = React11.memo(function PageHeader2({
|
|
12678
|
+
title,
|
|
12679
|
+
subtitle,
|
|
12680
|
+
size = "default",
|
|
12681
|
+
actions,
|
|
12860
12682
|
className,
|
|
12861
|
-
|
|
12862
|
-
|
|
12863
|
-
|
|
12864
|
-
|
|
12865
|
-
|
|
12866
|
-
{
|
|
12867
|
-
"data-slot": "control",
|
|
12868
|
-
className: clsx__default.default([
|
|
12869
|
-
className,
|
|
12870
|
-
// Basic layout
|
|
12871
|
-
"group relative block w-full",
|
|
12872
|
-
// Background color + shadow applied to inset pseudo element, so shadow blends with border in light mode
|
|
12873
|
-
"before:absolute before:inset-px before:rounded-lg before:bg-white before:shadow-sm",
|
|
12874
|
-
// Background color is moved to control and shadow is removed in dark mode so hide `before` pseudo
|
|
12875
|
-
"dark:before:hidden",
|
|
12876
|
-
// Focus ring
|
|
12877
|
-
"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",
|
|
12878
|
-
// Disabled state
|
|
12879
|
-
"has-data-disabled:opacity-50 has-data-disabled:before:bg-zinc-950/5 has-data-disabled:before:shadow-none"
|
|
12880
|
-
]),
|
|
12881
|
-
children: [
|
|
12683
|
+
children
|
|
12684
|
+
}) {
|
|
12685
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx__default.default("mb-6 sm:mb-8", className), children: [
|
|
12686
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4", children: [
|
|
12687
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
12882
12688
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
12883
|
-
|
|
12689
|
+
"h1",
|
|
12884
12690
|
{
|
|
12885
|
-
|
|
12886
|
-
|
|
12887
|
-
|
|
12888
|
-
|
|
12889
|
-
|
|
12890
|
-
"relative block w-full appearance-none rounded-lg py-2.5 sm:py-1.5",
|
|
12891
|
-
// Horizontal padding
|
|
12892
|
-
multiple ? "px-3.5 sm:px-3" : "pr-10 pl-3.5 sm:pr-9 sm:pl-3",
|
|
12893
|
-
// Options (multi-select)
|
|
12894
|
-
"[&_optgroup]:font-semibold",
|
|
12895
|
-
// Typography
|
|
12896
|
-
"text-base/6 text-zinc-950 dark:text-zinc-100 placeholder:text-zinc-500 dark:placeholder:text-zinc-400 sm:text-sm/6",
|
|
12897
|
-
// Border
|
|
12898
|
-
"border border-zinc-950/10 data-hover:border-zinc-950/20 dark:border-white/10 dark:data-hover:border-white/20",
|
|
12899
|
-
// Background color
|
|
12900
|
-
"bg-transparent dark:bg-white/5 dark:*:bg-zinc-800",
|
|
12901
|
-
// Hide default focus styles
|
|
12902
|
-
"focus:outline-none",
|
|
12903
|
-
// Invalid state
|
|
12904
|
-
"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",
|
|
12905
|
-
// Disabled state
|
|
12906
|
-
"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"
|
|
12907
|
-
])
|
|
12691
|
+
className: clsx__default.default(
|
|
12692
|
+
"font-bold text-slate-900 dark:text-slate-100 truncate",
|
|
12693
|
+
size === "large" ? "text-3xl" : "text-2xl"
|
|
12694
|
+
),
|
|
12695
|
+
children: title
|
|
12908
12696
|
}
|
|
12909
12697
|
),
|
|
12910
|
-
|
|
12911
|
-
|
|
12912
|
-
|
|
12913
|
-
|
|
12914
|
-
|
|
12915
|
-
|
|
12916
|
-
fill: "none",
|
|
12917
|
-
children: [
|
|
12918
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
12919
|
-
"path",
|
|
12920
|
-
{
|
|
12921
|
-
d: "M5.75 10.75L8 13L10.25 10.75",
|
|
12922
|
-
strokeWidth: 1.5,
|
|
12923
|
-
strokeLinecap: "round",
|
|
12924
|
-
strokeLinejoin: "round"
|
|
12925
|
-
}
|
|
12926
|
-
),
|
|
12927
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
12928
|
-
"path",
|
|
12929
|
-
{
|
|
12930
|
-
d: "M10.25 5.25L8 3L5.75 5.25",
|
|
12931
|
-
strokeWidth: 1.5,
|
|
12932
|
-
strokeLinecap: "round",
|
|
12933
|
-
strokeLinejoin: "round"
|
|
12934
|
-
}
|
|
12935
|
-
)
|
|
12936
|
-
]
|
|
12937
|
-
}
|
|
12938
|
-
) })
|
|
12939
|
-
]
|
|
12940
|
-
}
|
|
12941
|
-
);
|
|
12698
|
+
subtitle && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-sm text-slate-600 dark:text-slate-400 line-clamp-2", children: subtitle })
|
|
12699
|
+
] }),
|
|
12700
|
+
actions && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-shrink-0 flex items-center gap-2 flex-wrap", children: actions })
|
|
12701
|
+
] }),
|
|
12702
|
+
children && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-4", children })
|
|
12703
|
+
] });
|
|
12942
12704
|
});
|
|
12943
|
-
var
|
|
12944
|
-
|
|
12945
|
-
|
|
12946
|
-
|
|
12705
|
+
var PageSectionHeader = React11.memo(function PageSectionHeader2({
|
|
12706
|
+
title,
|
|
12707
|
+
subtitle,
|
|
12708
|
+
actions,
|
|
12709
|
+
className,
|
|
12710
|
+
children
|
|
12711
|
+
}) {
|
|
12712
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx__default.default("mb-4", className), children: [
|
|
12713
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col sm:flex-row sm:items-center sm:justify-between gap-3", children: [
|
|
12714
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
12715
|
+
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-lg sm:text-xl font-semibold text-slate-900 dark:text-slate-100", children: title }),
|
|
12716
|
+
subtitle && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-sm text-slate-600 dark:text-slate-400 line-clamp-2", children: subtitle })
|
|
12717
|
+
] }),
|
|
12718
|
+
actions && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-shrink-0 flex items-center gap-2 flex-wrap", children: actions })
|
|
12719
|
+
] }),
|
|
12720
|
+
children && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-3", children })
|
|
12721
|
+
] });
|
|
12722
|
+
});
|
|
12723
|
+
var CardSectionHeader = React11.memo(function CardSectionHeader2({
|
|
12724
|
+
title,
|
|
12725
|
+
subtitle,
|
|
12726
|
+
actions,
|
|
12727
|
+
className,
|
|
12728
|
+
children
|
|
12729
|
+
}) {
|
|
12730
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx__default.default("mb-3", className), children: [
|
|
12731
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col sm:flex-row sm:items-center sm:justify-between gap-2", children: [
|
|
12732
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
12733
|
+
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-base sm:text-lg font-medium text-slate-900 dark:text-slate-100", children: title }),
|
|
12734
|
+
subtitle && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-xs sm:text-sm text-slate-600 dark:text-slate-400 line-clamp-1", children: subtitle })
|
|
12735
|
+
] }),
|
|
12736
|
+
actions && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-shrink-0 flex items-center gap-1 flex-wrap", children: actions })
|
|
12737
|
+
] }),
|
|
12738
|
+
children && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-2", children })
|
|
12739
|
+
] });
|
|
12740
|
+
});
|
|
12741
|
+
var Tabs = TabsPrimitive__namespace.Root;
|
|
12742
|
+
var TabsList = React11__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
12743
|
+
TabsPrimitive__namespace.List,
|
|
12744
|
+
{
|
|
12745
|
+
ref,
|
|
12746
|
+
className: clsx__default.default(
|
|
12747
|
+
"inline-flex h-9 items-center justify-center rounded-lg bg-muted/50 p-0.5 text-muted-foreground",
|
|
12748
|
+
className
|
|
12749
|
+
),
|
|
12750
|
+
...props
|
|
12751
|
+
}
|
|
12752
|
+
));
|
|
12753
|
+
TabsList.displayName = TabsPrimitive__namespace.List.displayName;
|
|
12754
|
+
var TabsTrigger = React11__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
12755
|
+
TabsPrimitive__namespace.Trigger,
|
|
12756
|
+
{
|
|
12757
|
+
ref,
|
|
12758
|
+
className: clsx__default.default(
|
|
12759
|
+
"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",
|
|
12760
|
+
className
|
|
12761
|
+
),
|
|
12762
|
+
...props
|
|
12763
|
+
}
|
|
12764
|
+
));
|
|
12765
|
+
TabsTrigger.displayName = TabsPrimitive__namespace.Trigger.displayName;
|
|
12766
|
+
var TabsContent = React11__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
12767
|
+
TabsPrimitive__namespace.Content,
|
|
12768
|
+
{
|
|
12769
|
+
ref,
|
|
12770
|
+
className: clsx__default.default(
|
|
12771
|
+
"mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
|
|
12772
|
+
className
|
|
12773
|
+
),
|
|
12774
|
+
...props
|
|
12775
|
+
}
|
|
12776
|
+
));
|
|
12777
|
+
TabsContent.displayName = TabsPrimitive__namespace.Content.displayName;
|
|
12778
|
+
var ContactCard = React11__namespace.default.memo(function ContactCard2({
|
|
12779
|
+
type,
|
|
12780
|
+
email,
|
|
12781
|
+
phone
|
|
12782
|
+
}) {
|
|
12783
|
+
const t = nextIntl.useTranslations("contact");
|
|
12784
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-2xl bg-gray-50 p-10", children: [
|
|
12785
|
+
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-base/7 font-semibold text-gray-900", children: t(type) }),
|
|
12786
|
+
/* @__PURE__ */ jsxRuntime.jsxs("dl", { className: "mt-3 space-y-1 text-sm/6 text-gray-600", children: [
|
|
12787
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
12788
|
+
/* @__PURE__ */ jsxRuntime.jsx("dt", { className: "sr-only", children: "Email" }),
|
|
12789
|
+
/* @__PURE__ */ jsxRuntime.jsx("dd", { children: /* @__PURE__ */ jsxRuntime.jsx("a", { href: `mailto:${email}`, className: "font-semibold text-blue-600", children: email }) })
|
|
12790
|
+
] }),
|
|
12791
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-1", children: [
|
|
12792
|
+
/* @__PURE__ */ jsxRuntime.jsx("dt", { className: "sr-only", children: "Telefone" }),
|
|
12793
|
+
/* @__PURE__ */ jsxRuntime.jsx("dd", { children: phone })
|
|
12794
|
+
] })
|
|
12795
|
+
] })
|
|
12796
|
+
] });
|
|
12797
|
+
});
|
|
12798
|
+
var OfficeCard = React11__namespace.default.memo(function OfficeCard2({
|
|
12799
|
+
city,
|
|
12800
|
+
address,
|
|
12801
|
+
postalCode
|
|
12802
|
+
}) {
|
|
12803
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-2xl bg-gray-50 p-10", children: [
|
|
12804
|
+
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-base/7 font-semibold text-gray-900", children: city }),
|
|
12805
|
+
/* @__PURE__ */ jsxRuntime.jsxs("address", { className: "mt-3 space-y-1 text-sm/6 text-gray-600 not-italic", children: [
|
|
12806
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { children: address }),
|
|
12807
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { children: postalCode })
|
|
12808
|
+
] })
|
|
12809
|
+
] });
|
|
12810
|
+
});
|
|
12811
|
+
var ContactSection = React11__namespace.default.memo(
|
|
12812
|
+
function ContactSection2({ title, subtitle, children }) {
|
|
12813
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-10 py-16 lg:grid-cols-3", children: [
|
|
12814
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
12815
|
+
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-4xl font-semibold tracking-tight text-pretty text-gray-900", children: title }),
|
|
12816
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-4 text-base/7 text-gray-600", children: subtitle })
|
|
12817
|
+
] }),
|
|
12818
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-1 gap-6 sm:grid-cols-2 lg:col-span-2 lg:gap-8", children })
|
|
12819
|
+
] });
|
|
12820
|
+
}
|
|
12821
|
+
);
|
|
12822
|
+
var Progress = React11__namespace.forwardRef(({ className, value, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
12823
|
+
ProgressPrimitive__namespace.Root,
|
|
12824
|
+
{
|
|
12825
|
+
ref,
|
|
12826
|
+
className: clsx__default.default(
|
|
12827
|
+
"relative h-4 w-full overflow-hidden rounded-full bg-secondary",
|
|
12828
|
+
className
|
|
12829
|
+
),
|
|
12830
|
+
...props,
|
|
12831
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
12832
|
+
ProgressPrimitive__namespace.Indicator,
|
|
12947
12833
|
{
|
|
12948
|
-
|
|
12949
|
-
|
|
12950
|
-
...props,
|
|
12951
|
-
children: [
|
|
12952
|
-
children,
|
|
12953
|
-
required && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-red-500 ml-1", children: "*" })
|
|
12954
|
-
]
|
|
12834
|
+
className: "h-full w-full flex-1 bg-primary transition-all",
|
|
12835
|
+
style: { transform: `translateX(-${100 - (value || 0)}%)` }
|
|
12955
12836
|
}
|
|
12956
|
-
)
|
|
12837
|
+
)
|
|
12957
12838
|
}
|
|
12958
|
-
);
|
|
12959
|
-
|
|
12960
|
-
function
|
|
12839
|
+
));
|
|
12840
|
+
Progress.displayName = ProgressPrimitive__namespace.Root.displayName;
|
|
12841
|
+
function DropdownButton({
|
|
12842
|
+
as = Button,
|
|
12843
|
+
...props
|
|
12844
|
+
}) {
|
|
12845
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Headless6__namespace.MenuButton, { as, ...props });
|
|
12846
|
+
}
|
|
12847
|
+
function DropdownMenu({
|
|
12848
|
+
anchor = "bottom",
|
|
12961
12849
|
className,
|
|
12962
12850
|
...props
|
|
12963
12851
|
}) {
|
|
12964
12852
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
12965
|
-
|
|
12853
|
+
Headless6__namespace.MenuItems,
|
|
12966
12854
|
{
|
|
12967
|
-
"data-slot": "control",
|
|
12968
12855
|
...props,
|
|
12856
|
+
transition: true,
|
|
12857
|
+
anchor,
|
|
12969
12858
|
className: clsx__default.default(
|
|
12970
12859
|
className,
|
|
12971
|
-
//
|
|
12972
|
-
"
|
|
12973
|
-
//
|
|
12974
|
-
"
|
|
12860
|
+
// Anchor positioning
|
|
12861
|
+
"[--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]",
|
|
12862
|
+
// Base styles
|
|
12863
|
+
"isolate w-max rounded-xl p-1",
|
|
12864
|
+
// Invisible border that is only visible in `forced-colors` mode for accessibility purposes
|
|
12865
|
+
"outline outline-transparent focus:outline-hidden",
|
|
12866
|
+
// Handle scrolling when menu won't fit in viewport
|
|
12867
|
+
"overflow-y-auto",
|
|
12868
|
+
// Popover background
|
|
12869
|
+
"bg-white/75 backdrop-blur-xl dark:bg-zinc-800/75",
|
|
12870
|
+
// Shadows
|
|
12871
|
+
"shadow-lg ring-1 ring-zinc-950/10 dark:ring-white/10 dark:ring-inset",
|
|
12872
|
+
// Define grid at the menu level if subgrid is supported
|
|
12873
|
+
"supports-[grid-template-columns:subgrid]:grid supports-[grid-template-columns:subgrid]:grid-cols-[auto_1fr_1.5rem_0.5rem_auto]",
|
|
12874
|
+
// Transitions
|
|
12875
|
+
"transition data-leave:duration-100 data-leave:ease-in data-closed:data-leave:opacity-0"
|
|
12975
12876
|
)
|
|
12976
12877
|
}
|
|
12977
12878
|
);
|
|
12978
12879
|
}
|
|
12979
|
-
function
|
|
12880
|
+
function DropdownItem({
|
|
12881
|
+
className,
|
|
12882
|
+
...props
|
|
12883
|
+
}) {
|
|
12884
|
+
const classes = clsx__default.default(
|
|
12885
|
+
className,
|
|
12886
|
+
// Base styles
|
|
12887
|
+
"group cursor-default rounded-lg px-3.5 py-2.5 focus:outline-hidden sm:px-3 sm:py-1.5",
|
|
12888
|
+
// Text styles
|
|
12889
|
+
"text-left text-base/6 text-zinc-950 sm:text-sm/6 dark:text-white forced-colors:text-[CanvasText]",
|
|
12890
|
+
// Focus
|
|
12891
|
+
"data-focus:bg-blue-500 data-focus:text-white",
|
|
12892
|
+
// Disabled state
|
|
12893
|
+
"data-disabled:opacity-50",
|
|
12894
|
+
// Forced colors mode
|
|
12895
|
+
"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]",
|
|
12896
|
+
// Use subgrid when available but fallback to an explicit grid layout if not
|
|
12897
|
+
"col-span-full grid grid-cols-[auto_1fr_1.5rem_0.5rem_auto] items-center supports-[grid-template-columns:subgrid]:grid-cols-subgrid",
|
|
12898
|
+
// Icons
|
|
12899
|
+
"*: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",
|
|
12900
|
+
"*: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",
|
|
12901
|
+
// Avatar
|
|
12902
|
+
"*: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"
|
|
12903
|
+
);
|
|
12904
|
+
return "href" in props ? /* @__PURE__ */ jsxRuntime.jsx(Headless6__namespace.MenuItem, { as: Link, ...props, className: classes }) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
12905
|
+
Headless6__namespace.MenuItem,
|
|
12906
|
+
{
|
|
12907
|
+
as: "button",
|
|
12908
|
+
type: "button",
|
|
12909
|
+
...props,
|
|
12910
|
+
className: classes
|
|
12911
|
+
}
|
|
12912
|
+
);
|
|
12913
|
+
}
|
|
12914
|
+
function DropdownDivider({
|
|
12980
12915
|
className,
|
|
12981
12916
|
...props
|
|
12982
12917
|
}) {
|
|
12983
12918
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
12984
|
-
|
|
12919
|
+
Headless6__namespace.MenuSeparator,
|
|
12985
12920
|
{
|
|
12986
|
-
"data-slot": "field",
|
|
12987
12921
|
...props,
|
|
12988
12922
|
className: clsx__default.default(
|
|
12989
12923
|
className,
|
|
12990
|
-
|
|
12991
|
-
"grid grid-cols-[1fr_auto] gap-x-8 gap-y-1 sm:grid-cols-[1fr_auto]",
|
|
12992
|
-
// Control layout
|
|
12993
|
-
"*:data-[slot=control]:col-start-2 *:data-[slot=control]:self-start sm:*:data-[slot=control]:mt-0.5",
|
|
12994
|
-
// Label layout
|
|
12995
|
-
"*:data-[slot=label]:col-start-1 *:data-[slot=label]:row-start-1",
|
|
12996
|
-
// Description layout
|
|
12997
|
-
"*:data-[slot=description]:col-start-1 *:data-[slot=description]:row-start-2",
|
|
12998
|
-
// With description
|
|
12999
|
-
"has-data-[slot=description]:**:data-[slot=label]:font-medium"
|
|
12924
|
+
"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]"
|
|
13000
12925
|
)
|
|
13001
12926
|
}
|
|
13002
12927
|
);
|
|
13003
12928
|
}
|
|
12929
|
+
function DropdownLabel({
|
|
12930
|
+
className,
|
|
12931
|
+
...props
|
|
12932
|
+
}) {
|
|
12933
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
12934
|
+
"div",
|
|
12935
|
+
{
|
|
12936
|
+
...props,
|
|
12937
|
+
"data-slot": "label",
|
|
12938
|
+
className: clsx__default.default(className, "col-start-2 row-start-1"),
|
|
12939
|
+
...props
|
|
12940
|
+
}
|
|
12941
|
+
);
|
|
12942
|
+
}
|
|
13004
12943
|
var colors2 = {
|
|
13005
12944
|
"dark/zinc": [
|
|
13006
12945
|
"[--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",
|
|
@@ -13097,7 +13036,7 @@ function Switch2({
|
|
|
13097
13036
|
...props
|
|
13098
13037
|
}) {
|
|
13099
13038
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
13100
|
-
|
|
13039
|
+
Headless6__namespace.Switch,
|
|
13101
13040
|
{
|
|
13102
13041
|
"data-slot": "control",
|
|
13103
13042
|
...props,
|
|
@@ -13148,945 +13087,6 @@ function Switch2({
|
|
|
13148
13087
|
}
|
|
13149
13088
|
);
|
|
13150
13089
|
}
|
|
13151
|
-
function DropdownButton({
|
|
13152
|
-
as = Button6,
|
|
13153
|
-
...props
|
|
13154
|
-
}) {
|
|
13155
|
-
return /* @__PURE__ */ jsxRuntime.jsx(Headless11__namespace.MenuButton, { as, ...props });
|
|
13156
|
-
}
|
|
13157
|
-
function DropdownMenu({
|
|
13158
|
-
anchor = "bottom",
|
|
13159
|
-
className,
|
|
13160
|
-
...props
|
|
13161
|
-
}) {
|
|
13162
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
13163
|
-
Headless11__namespace.MenuItems,
|
|
13164
|
-
{
|
|
13165
|
-
...props,
|
|
13166
|
-
transition: true,
|
|
13167
|
-
anchor,
|
|
13168
|
-
className: clsx__default.default(
|
|
13169
|
-
className,
|
|
13170
|
-
// Anchor positioning
|
|
13171
|
-
"[--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]",
|
|
13172
|
-
// Base styles
|
|
13173
|
-
"isolate w-max rounded-xl p-1",
|
|
13174
|
-
// Invisible border that is only visible in `forced-colors` mode for accessibility purposes
|
|
13175
|
-
"outline outline-transparent focus:outline-hidden",
|
|
13176
|
-
// Handle scrolling when menu won't fit in viewport
|
|
13177
|
-
"overflow-y-auto",
|
|
13178
|
-
// Popover background
|
|
13179
|
-
"bg-white/75 backdrop-blur-xl dark:bg-zinc-800/75",
|
|
13180
|
-
// Shadows
|
|
13181
|
-
"shadow-lg ring-1 ring-zinc-950/10 dark:ring-white/10 dark:ring-inset",
|
|
13182
|
-
// Define grid at the menu level if subgrid is supported
|
|
13183
|
-
"supports-[grid-template-columns:subgrid]:grid supports-[grid-template-columns:subgrid]:grid-cols-[auto_1fr_1.5rem_0.5rem_auto]",
|
|
13184
|
-
// Transitions
|
|
13185
|
-
"transition data-leave:duration-100 data-leave:ease-in data-closed:data-leave:opacity-0"
|
|
13186
|
-
)
|
|
13187
|
-
}
|
|
13188
|
-
);
|
|
13189
|
-
}
|
|
13190
|
-
function DropdownItem({
|
|
13191
|
-
className,
|
|
13192
|
-
...props
|
|
13193
|
-
}) {
|
|
13194
|
-
const classes = clsx__default.default(
|
|
13195
|
-
className,
|
|
13196
|
-
// Base styles
|
|
13197
|
-
"group cursor-default rounded-lg px-3.5 py-2.5 focus:outline-hidden sm:px-3 sm:py-1.5",
|
|
13198
|
-
// Text styles
|
|
13199
|
-
"text-left text-base/6 text-zinc-950 sm:text-sm/6 dark:text-white forced-colors:text-[CanvasText]",
|
|
13200
|
-
// Focus
|
|
13201
|
-
"data-focus:bg-blue-500 data-focus:text-white",
|
|
13202
|
-
// Disabled state
|
|
13203
|
-
"data-disabled:opacity-50",
|
|
13204
|
-
// Forced colors mode
|
|
13205
|
-
"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]",
|
|
13206
|
-
// Use subgrid when available but fallback to an explicit grid layout if not
|
|
13207
|
-
"col-span-full grid grid-cols-[auto_1fr_1.5rem_0.5rem_auto] items-center supports-[grid-template-columns:subgrid]:grid-cols-subgrid",
|
|
13208
|
-
// Icons
|
|
13209
|
-
"*: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",
|
|
13210
|
-
"*: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",
|
|
13211
|
-
// Avatar
|
|
13212
|
-
"*: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"
|
|
13213
|
-
);
|
|
13214
|
-
return "href" in props ? /* @__PURE__ */ jsxRuntime.jsx(Headless11__namespace.MenuItem, { as: Link4, ...props, className: classes }) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
13215
|
-
Headless11__namespace.MenuItem,
|
|
13216
|
-
{
|
|
13217
|
-
as: "button",
|
|
13218
|
-
type: "button",
|
|
13219
|
-
...props,
|
|
13220
|
-
className: classes
|
|
13221
|
-
}
|
|
13222
|
-
);
|
|
13223
|
-
}
|
|
13224
|
-
function DropdownHeader({
|
|
13225
|
-
className,
|
|
13226
|
-
...props
|
|
13227
|
-
}) {
|
|
13228
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
13229
|
-
"div",
|
|
13230
|
-
{
|
|
13231
|
-
...props,
|
|
13232
|
-
className: clsx__default.default(className, "col-span-5 px-3.5 pt-2.5 pb-1 sm:px-3")
|
|
13233
|
-
}
|
|
13234
|
-
);
|
|
13235
|
-
}
|
|
13236
|
-
function DropdownSection({
|
|
13237
|
-
className,
|
|
13238
|
-
...props
|
|
13239
|
-
}) {
|
|
13240
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
13241
|
-
Headless11__namespace.MenuSection,
|
|
13242
|
-
{
|
|
13243
|
-
...props,
|
|
13244
|
-
className: clsx__default.default(
|
|
13245
|
-
className,
|
|
13246
|
-
// Define grid at the section level instead of the item level if subgrid is supported
|
|
13247
|
-
"col-span-full supports-[grid-template-columns:subgrid]:grid supports-[grid-template-columns:subgrid]:grid-cols-[auto_1fr_1.5rem_0.5rem_auto]"
|
|
13248
|
-
)
|
|
13249
|
-
}
|
|
13250
|
-
);
|
|
13251
|
-
}
|
|
13252
|
-
function DropdownHeading({
|
|
13253
|
-
className,
|
|
13254
|
-
...props
|
|
13255
|
-
}) {
|
|
13256
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
13257
|
-
Headless11__namespace.MenuHeading,
|
|
13258
|
-
{
|
|
13259
|
-
...props,
|
|
13260
|
-
className: clsx__default.default(
|
|
13261
|
-
className,
|
|
13262
|
-
"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"
|
|
13263
|
-
)
|
|
13264
|
-
}
|
|
13265
|
-
);
|
|
13266
|
-
}
|
|
13267
|
-
function DropdownDivider({
|
|
13268
|
-
className,
|
|
13269
|
-
...props
|
|
13270
|
-
}) {
|
|
13271
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
13272
|
-
Headless11__namespace.MenuSeparator,
|
|
13273
|
-
{
|
|
13274
|
-
...props,
|
|
13275
|
-
className: clsx__default.default(
|
|
13276
|
-
className,
|
|
13277
|
-
"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]"
|
|
13278
|
-
)
|
|
13279
|
-
}
|
|
13280
|
-
);
|
|
13281
|
-
}
|
|
13282
|
-
function DropdownLabel({
|
|
13283
|
-
className,
|
|
13284
|
-
...props
|
|
13285
|
-
}) {
|
|
13286
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
13287
|
-
"div",
|
|
13288
|
-
{
|
|
13289
|
-
...props,
|
|
13290
|
-
"data-slot": "label",
|
|
13291
|
-
className: clsx__default.default(className, "col-start-2 row-start-1"),
|
|
13292
|
-
...props
|
|
13293
|
-
}
|
|
13294
|
-
);
|
|
13295
|
-
}
|
|
13296
|
-
function DropdownDescription({
|
|
13297
|
-
className,
|
|
13298
|
-
...props
|
|
13299
|
-
}) {
|
|
13300
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
13301
|
-
Headless11__namespace.Description,
|
|
13302
|
-
{
|
|
13303
|
-
"data-slot": "description",
|
|
13304
|
-
...props,
|
|
13305
|
-
className: clsx__default.default(
|
|
13306
|
-
className,
|
|
13307
|
-
"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]"
|
|
13308
|
-
)
|
|
13309
|
-
}
|
|
13310
|
-
);
|
|
13311
|
-
}
|
|
13312
|
-
function DropdownShortcut({
|
|
13313
|
-
keys,
|
|
13314
|
-
className,
|
|
13315
|
-
...props
|
|
13316
|
-
}) {
|
|
13317
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
13318
|
-
Headless11__namespace.Description,
|
|
13319
|
-
{
|
|
13320
|
-
as: "kbd",
|
|
13321
|
-
...props,
|
|
13322
|
-
className: clsx__default.default(
|
|
13323
|
-
className,
|
|
13324
|
-
"col-start-5 row-start-1 flex justify-self-end"
|
|
13325
|
-
),
|
|
13326
|
-
children: (Array.isArray(keys) ? keys : keys.split("")).map((char, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
13327
|
-
"kbd",
|
|
13328
|
-
{
|
|
13329
|
-
className: clsx__default.default([
|
|
13330
|
-
"min-w-[2ch] text-center font-sans text-zinc-400 capitalize group-data-focus:text-white forced-colors:group-data-focus:text-[HighlightText]",
|
|
13331
|
-
// Make sure key names that are longer than one character (like "Tab") have extra space
|
|
13332
|
-
index > 0 && char.length > 1 && "pl-1"
|
|
13333
|
-
]),
|
|
13334
|
-
children: char
|
|
13335
|
-
},
|
|
13336
|
-
index
|
|
13337
|
-
))
|
|
13338
|
-
}
|
|
13339
|
-
);
|
|
13340
|
-
}
|
|
13341
|
-
var Card2 = React11.memo(function Card3({
|
|
13342
|
-
children,
|
|
13343
|
-
className,
|
|
13344
|
-
padding = "md",
|
|
13345
|
-
variant = "default",
|
|
13346
|
-
hover = false,
|
|
13347
|
-
loading = false,
|
|
13348
|
-
onClick
|
|
13349
|
-
}) {
|
|
13350
|
-
const paddingClasses = {
|
|
13351
|
-
none: "",
|
|
13352
|
-
sm: "p-3 sm:p-4",
|
|
13353
|
-
md: "p-4 sm:p-6",
|
|
13354
|
-
lg: "p-6 sm:p-8"
|
|
13355
|
-
};
|
|
13356
|
-
const variantClasses2 = {
|
|
13357
|
-
default: "liquid-surface border border-white/30 dark:border-white/10",
|
|
13358
|
-
elevated: "liquid-surface-strong border border-white/30 dark:border-white/10",
|
|
13359
|
-
outlined: "bg-transparent border-2 border-white/30 dark:border-white/10 backdrop-blur-sm",
|
|
13360
|
-
flat: "liquid-surface"
|
|
13361
|
-
};
|
|
13362
|
-
const hoverClasses = hover || onClick ? "hover:shadow-md transition-shadow duration-200" : "";
|
|
13363
|
-
const clickableClasses = onClick ? "cursor-pointer" : "";
|
|
13364
|
-
const loadingClasses = loading ? "opacity-75 pointer-events-none" : "";
|
|
13365
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
13366
|
-
"div",
|
|
13367
|
-
{
|
|
13368
|
-
role: onClick ? "button" : void 0,
|
|
13369
|
-
tabIndex: onClick ? 0 : void 0,
|
|
13370
|
-
className: clsx__default.default(
|
|
13371
|
-
"rounded-2xl",
|
|
13372
|
-
variantClasses2[variant],
|
|
13373
|
-
paddingClasses[padding],
|
|
13374
|
-
hoverClasses,
|
|
13375
|
-
clickableClasses,
|
|
13376
|
-
loadingClasses,
|
|
13377
|
-
className
|
|
13378
|
-
),
|
|
13379
|
-
onClick,
|
|
13380
|
-
onKeyDown: onClick ? (e) => {
|
|
13381
|
-
if (e.key === "Enter" || e.key === " ") {
|
|
13382
|
-
e.preventDefault();
|
|
13383
|
-
onClick();
|
|
13384
|
-
}
|
|
13385
|
-
} : void 0,
|
|
13386
|
-
children
|
|
13387
|
-
}
|
|
13388
|
-
);
|
|
13389
|
-
});
|
|
13390
|
-
var CardHeader2 = React11.memo(function CardHeader3({
|
|
13391
|
-
title,
|
|
13392
|
-
subtitle,
|
|
13393
|
-
actions,
|
|
13394
|
-
className,
|
|
13395
|
-
children
|
|
13396
|
-
}) {
|
|
13397
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx__default.default("mb-4", className), children: [
|
|
13398
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col sm:flex-row sm:items-center sm:justify-between gap-2", children: [
|
|
13399
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
13400
|
-
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-lg font-semibold text-slate-900 dark:text-slate-100 truncate", children: title }),
|
|
13401
|
-
subtitle && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-sm text-slate-600 dark:text-slate-400 line-clamp-2", children: subtitle })
|
|
13402
|
-
] }),
|
|
13403
|
-
actions && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-shrink-0 flex items-center gap-2", children: actions })
|
|
13404
|
-
] }),
|
|
13405
|
-
children && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-3", children })
|
|
13406
|
-
] });
|
|
13407
|
-
});
|
|
13408
|
-
var CardTitle2 = React11.memo(function CardTitle3({
|
|
13409
|
-
children,
|
|
13410
|
-
className
|
|
13411
|
-
}) {
|
|
13412
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
13413
|
-
"h3",
|
|
13414
|
-
{
|
|
13415
|
-
className: clsx__default.default(
|
|
13416
|
-
"text-lg font-semibold text-slate-900 dark:text-slate-100",
|
|
13417
|
-
className
|
|
13418
|
-
),
|
|
13419
|
-
children
|
|
13420
|
-
}
|
|
13421
|
-
);
|
|
13422
|
-
});
|
|
13423
|
-
var CardDescription2 = React11.memo(function CardDescription3({
|
|
13424
|
-
children,
|
|
13425
|
-
className
|
|
13426
|
-
}) {
|
|
13427
|
-
return /* @__PURE__ */ jsxRuntime.jsx("p", { className: clsx__default.default("text-sm text-slate-600 dark:text-slate-400", className), children });
|
|
13428
|
-
});
|
|
13429
|
-
var CardContent2 = React11.memo(function CardContent3({
|
|
13430
|
-
children,
|
|
13431
|
-
className
|
|
13432
|
-
}) {
|
|
13433
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx__default.default("text-slate-600 dark:text-slate-400", className), children });
|
|
13434
|
-
});
|
|
13435
|
-
var CardFooter2 = React11.memo(function CardFooter3({
|
|
13436
|
-
children,
|
|
13437
|
-
className,
|
|
13438
|
-
justify = "end"
|
|
13439
|
-
}) {
|
|
13440
|
-
const justifyClasses = {
|
|
13441
|
-
start: "justify-start",
|
|
13442
|
-
center: "justify-center",
|
|
13443
|
-
end: "justify-end",
|
|
13444
|
-
between: "justify-between"
|
|
13445
|
-
};
|
|
13446
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
13447
|
-
"div",
|
|
13448
|
-
{
|
|
13449
|
-
className: clsx__default.default(
|
|
13450
|
-
"mt-4 pt-4 border-t border-white/30 dark:border-white/10 flex items-center gap-2",
|
|
13451
|
-
justifyClasses[justify],
|
|
13452
|
-
className
|
|
13453
|
-
),
|
|
13454
|
-
children
|
|
13455
|
-
}
|
|
13456
|
-
);
|
|
13457
|
-
});
|
|
13458
|
-
var StatCard2 = React11.memo(function StatCard3({
|
|
13459
|
-
title,
|
|
13460
|
-
value,
|
|
13461
|
-
subtitle,
|
|
13462
|
-
icon,
|
|
13463
|
-
trend,
|
|
13464
|
-
loading = false,
|
|
13465
|
-
className
|
|
13466
|
-
}) {
|
|
13467
|
-
const trendColors = {
|
|
13468
|
-
up: "text-green-600 dark:text-green-400",
|
|
13469
|
-
down: "text-red-600 dark:text-red-400",
|
|
13470
|
-
neutral: "text-slate-600 dark:text-slate-400"
|
|
13471
|
-
};
|
|
13472
|
-
return /* @__PURE__ */ jsxRuntime.jsx(Card2, { variant: "elevated", hover: true, className, loading, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start", children: [
|
|
13473
|
-
icon && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-shrink-0 mr-4", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-12 h-12 rounded-lg bg-white/20 dark:bg-white/[0.08] flex items-center justify-center", children: icon }) }),
|
|
13474
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 min-w-0", children: [
|
|
13475
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm font-medium text-slate-600 dark:text-slate-400 truncate", children: title }),
|
|
13476
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-1 flex items-baseline", children: [
|
|
13477
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-2xl font-bold text-slate-900 dark:text-slate-100", children: loading ? "..." : value }),
|
|
13478
|
-
trend && !loading && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
13479
|
-
"div",
|
|
13480
|
-
{
|
|
13481
|
-
className: clsx__default.default(
|
|
13482
|
-
"ml-2 flex items-center text-sm",
|
|
13483
|
-
trendColors[trend.direction]
|
|
13484
|
-
),
|
|
13485
|
-
children: [
|
|
13486
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { children: trend.direction === "up" ? "\u2197" : trend.direction === "down" ? "\u2198" : "\u2192" }),
|
|
13487
|
-
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "ml-1", children: [
|
|
13488
|
-
trend.value,
|
|
13489
|
-
"%"
|
|
13490
|
-
] })
|
|
13491
|
-
]
|
|
13492
|
-
}
|
|
13493
|
-
)
|
|
13494
|
-
] }),
|
|
13495
|
-
subtitle && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-sm text-slate-600 dark:text-slate-400", children: subtitle }),
|
|
13496
|
-
trend && !loading && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-xs text-slate-500 dark:text-slate-500", children: trend.label })
|
|
13497
|
-
] })
|
|
13498
|
-
] }) });
|
|
13499
|
-
});
|
|
13500
|
-
var Progress = React11__namespace.forwardRef(({ className, value, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
13501
|
-
ProgressPrimitive__namespace.Root,
|
|
13502
|
-
{
|
|
13503
|
-
ref,
|
|
13504
|
-
className: clsx__default.default(
|
|
13505
|
-
"relative h-4 w-full overflow-hidden rounded-full bg-secondary",
|
|
13506
|
-
className
|
|
13507
|
-
),
|
|
13508
|
-
...props,
|
|
13509
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
13510
|
-
ProgressPrimitive__namespace.Indicator,
|
|
13511
|
-
{
|
|
13512
|
-
className: "h-full w-full flex-1 bg-primary transition-all",
|
|
13513
|
-
style: { transform: `translateX(-${100 - (value || 0)}%)` }
|
|
13514
|
-
}
|
|
13515
|
-
)
|
|
13516
|
-
}
|
|
13517
|
-
));
|
|
13518
|
-
Progress.displayName = ProgressPrimitive__namespace.Root.displayName;
|
|
13519
|
-
function validatePasswordStrength(password) {
|
|
13520
|
-
return {
|
|
13521
|
-
minLength: password.length >= 8,
|
|
13522
|
-
hasUppercase: /[A-Z]/.test(password),
|
|
13523
|
-
hasLowercase: /[a-z]/.test(password),
|
|
13524
|
-
hasNumber: /\d/.test(password),
|
|
13525
|
-
hasSpecial: /[!@#$%^&*()_+\-=]/.test(password)
|
|
13526
|
-
};
|
|
13527
|
-
}
|
|
13528
|
-
function RequirementCheck({
|
|
13529
|
-
met,
|
|
13530
|
-
label
|
|
13531
|
-
}) {
|
|
13532
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("li", { className: "flex items-center gap-1.5 text-xs", children: [
|
|
13533
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
13534
|
-
"span",
|
|
13535
|
-
{
|
|
13536
|
-
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"}`,
|
|
13537
|
-
children: met ? "\u2713" : ""
|
|
13538
|
-
}
|
|
13539
|
-
),
|
|
13540
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
13541
|
-
"span",
|
|
13542
|
-
{
|
|
13543
|
-
className: met ? "text-emerald-600 dark:text-emerald-400" : "text-slate-500 dark:text-slate-400",
|
|
13544
|
-
children: label
|
|
13545
|
-
}
|
|
13546
|
-
)
|
|
13547
|
-
] });
|
|
13548
|
-
}
|
|
13549
|
-
var PasswordInput2 = React11.forwardRef(
|
|
13550
|
-
function PasswordInput3({ className = "", variant = "default", showStrength = false, onChange, ...props }, ref) {
|
|
13551
|
-
const [showPassword, setShowPassword] = React11.useState(false);
|
|
13552
|
-
const [internalValue, setInternalValue] = React11.useState("");
|
|
13553
|
-
const t = nextIntl.useTranslations();
|
|
13554
|
-
const handleChange = (e) => {
|
|
13555
|
-
setInternalValue(e.target.value);
|
|
13556
|
-
onChange?.(e);
|
|
13557
|
-
};
|
|
13558
|
-
const strength = React11.useMemo(
|
|
13559
|
-
() => validatePasswordStrength(internalValue),
|
|
13560
|
-
[internalValue]
|
|
13561
|
-
);
|
|
13562
|
-
const metCount = React11.useMemo(() => {
|
|
13563
|
-
const checks = Object.values(strength);
|
|
13564
|
-
return checks.filter(Boolean).length;
|
|
13565
|
-
}, [strength]);
|
|
13566
|
-
const strengthLevel = React11.useMemo(() => {
|
|
13567
|
-
if (metCount <= 2) return "weak";
|
|
13568
|
-
if (metCount <= 4) return "medium";
|
|
13569
|
-
return "strong";
|
|
13570
|
-
}, [metCount]);
|
|
13571
|
-
const strengthBarColor = {
|
|
13572
|
-
weak: "bg-red-500",
|
|
13573
|
-
medium: "bg-amber-500",
|
|
13574
|
-
strong: "bg-emerald-500"
|
|
13575
|
-
}[strengthLevel];
|
|
13576
|
-
const strengthBarWidth = {
|
|
13577
|
-
weak: "w-1/3",
|
|
13578
|
-
medium: "w-2/3",
|
|
13579
|
-
strong: "w-full"
|
|
13580
|
-
}[strengthLevel];
|
|
13581
|
-
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";
|
|
13582
|
-
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";
|
|
13583
|
-
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";
|
|
13584
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
13585
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
|
|
13586
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
13587
|
-
"input",
|
|
13588
|
-
{
|
|
13589
|
-
ref,
|
|
13590
|
-
type: showPassword ? "text" : "password",
|
|
13591
|
-
className: `${baseInputClasses} ${className}`,
|
|
13592
|
-
onChange: handleChange,
|
|
13593
|
-
...props
|
|
13594
|
-
}
|
|
13595
|
-
),
|
|
13596
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
13597
|
-
"button",
|
|
13598
|
-
{
|
|
13599
|
-
type: "button",
|
|
13600
|
-
onClick: () => setShowPassword(!showPassword),
|
|
13601
|
-
className: buttonClasses,
|
|
13602
|
-
"aria-label": showPassword ? t("aria.hidePassword") : t("aria.showPassword"),
|
|
13603
|
-
children: showPassword ? /* @__PURE__ */ jsxRuntime.jsx(HeroIcons.EyeSlashIcon, { className: iconClasses }) : /* @__PURE__ */ jsxRuntime.jsx(HeroIcons.EyeIcon, { className: iconClasses })
|
|
13604
|
-
}
|
|
13605
|
-
)
|
|
13606
|
-
] }),
|
|
13607
|
-
showStrength && internalValue.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-2 space-y-2", children: [
|
|
13608
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
13609
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1 h-1.5 bg-slate-200 dark:bg-slate-700 rounded-full overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
13610
|
-
"div",
|
|
13611
|
-
{
|
|
13612
|
-
className: `h-full rounded-full transition-all duration-300 ${strengthBarColor} ${strengthBarWidth}`
|
|
13613
|
-
}
|
|
13614
|
-
) }),
|
|
13615
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
13616
|
-
"span",
|
|
13617
|
-
{
|
|
13618
|
-
className: `text-xs font-medium ${strengthLevel === "weak" ? "text-red-500" : strengthLevel === "medium" ? "text-amber-500" : "text-emerald-500"}`,
|
|
13619
|
-
children: t(`login.passwordStrength.${strengthLevel}`)
|
|
13620
|
-
}
|
|
13621
|
-
)
|
|
13622
|
-
] }),
|
|
13623
|
-
/* @__PURE__ */ jsxRuntime.jsxs("ul", { className: "space-y-1", children: [
|
|
13624
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
13625
|
-
RequirementCheck,
|
|
13626
|
-
{
|
|
13627
|
-
met: strength.minLength,
|
|
13628
|
-
label: t("login.passwordRequirements.minLength")
|
|
13629
|
-
}
|
|
13630
|
-
),
|
|
13631
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
13632
|
-
RequirementCheck,
|
|
13633
|
-
{
|
|
13634
|
-
met: strength.hasUppercase,
|
|
13635
|
-
label: t("login.passwordRequirements.uppercase")
|
|
13636
|
-
}
|
|
13637
|
-
),
|
|
13638
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
13639
|
-
RequirementCheck,
|
|
13640
|
-
{
|
|
13641
|
-
met: strength.hasLowercase,
|
|
13642
|
-
label: t("login.passwordRequirements.lowercase")
|
|
13643
|
-
}
|
|
13644
|
-
),
|
|
13645
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
13646
|
-
RequirementCheck,
|
|
13647
|
-
{
|
|
13648
|
-
met: strength.hasNumber,
|
|
13649
|
-
label: t("login.passwordRequirements.number")
|
|
13650
|
-
}
|
|
13651
|
-
),
|
|
13652
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
13653
|
-
RequirementCheck,
|
|
13654
|
-
{
|
|
13655
|
-
met: strength.hasSpecial,
|
|
13656
|
-
label: t("login.passwordRequirements.special")
|
|
13657
|
-
}
|
|
13658
|
-
)
|
|
13659
|
-
] })
|
|
13660
|
-
] })
|
|
13661
|
-
] });
|
|
13662
|
-
}
|
|
13663
|
-
);
|
|
13664
|
-
var Tabs = TabsPrimitive__namespace.Root;
|
|
13665
|
-
var TabsList = React11__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
13666
|
-
TabsPrimitive__namespace.List,
|
|
13667
|
-
{
|
|
13668
|
-
ref,
|
|
13669
|
-
className: clsx__default.default(
|
|
13670
|
-
"inline-flex h-9 items-center justify-center rounded-lg bg-muted/50 p-0.5 text-muted-foreground",
|
|
13671
|
-
className
|
|
13672
|
-
),
|
|
13673
|
-
...props
|
|
13674
|
-
}
|
|
13675
|
-
));
|
|
13676
|
-
TabsList.displayName = TabsPrimitive__namespace.List.displayName;
|
|
13677
|
-
var TabsTrigger = React11__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
13678
|
-
TabsPrimitive__namespace.Trigger,
|
|
13679
|
-
{
|
|
13680
|
-
ref,
|
|
13681
|
-
className: clsx__default.default(
|
|
13682
|
-
"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",
|
|
13683
|
-
className
|
|
13684
|
-
),
|
|
13685
|
-
...props
|
|
13686
|
-
}
|
|
13687
|
-
));
|
|
13688
|
-
TabsTrigger.displayName = TabsPrimitive__namespace.Trigger.displayName;
|
|
13689
|
-
var TabsContent = React11__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
13690
|
-
TabsPrimitive__namespace.Content,
|
|
13691
|
-
{
|
|
13692
|
-
ref,
|
|
13693
|
-
className: clsx__default.default(
|
|
13694
|
-
"mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
|
|
13695
|
-
className
|
|
13696
|
-
),
|
|
13697
|
-
...props
|
|
13698
|
-
}
|
|
13699
|
-
));
|
|
13700
|
-
TabsContent.displayName = TabsPrimitive__namespace.Content.displayName;
|
|
13701
|
-
var SliderInput = ({
|
|
13702
|
-
id,
|
|
13703
|
-
label,
|
|
13704
|
-
value,
|
|
13705
|
-
onChange,
|
|
13706
|
-
min,
|
|
13707
|
-
max,
|
|
13708
|
-
step,
|
|
13709
|
-
suffix = "",
|
|
13710
|
-
tooltip,
|
|
13711
|
-
formatDisplay,
|
|
13712
|
-
showValue = true
|
|
13713
|
-
}) => {
|
|
13714
|
-
const tAria = nextIntl.useTranslations("aria");
|
|
13715
|
-
const tCommon = nextIntl.useTranslations("common");
|
|
13716
|
-
const [showTooltip, setShowTooltip] = React11.useState(false);
|
|
13717
|
-
const safeValue = typeof value === "number" && !isNaN(value) ? value : min;
|
|
13718
|
-
const percentage = (safeValue - min) / (max - min) * 100;
|
|
13719
|
-
const displayValue = formatDisplay ? formatDisplay(safeValue) : safeValue.toFixed(step < 1 ? 2 : 0);
|
|
13720
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
|
|
13721
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
|
|
13722
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
13723
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
13724
|
-
"label",
|
|
13725
|
-
{
|
|
13726
|
-
htmlFor: id,
|
|
13727
|
-
className: "text-sm font-medium text-zinc-700 dark:text-zinc-300",
|
|
13728
|
-
children: label
|
|
13729
|
-
}
|
|
13730
|
-
),
|
|
13731
|
-
tooltip && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
|
|
13732
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
13733
|
-
"button",
|
|
13734
|
-
{
|
|
13735
|
-
type: "button",
|
|
13736
|
-
onMouseEnter: () => setShowTooltip(true),
|
|
13737
|
-
onMouseLeave: () => setShowTooltip(false),
|
|
13738
|
-
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",
|
|
13739
|
-
"aria-label": tAria("info"),
|
|
13740
|
-
children: "?"
|
|
13741
|
-
}
|
|
13742
|
-
),
|
|
13743
|
-
showTooltip && /* @__PURE__ */ jsxRuntime.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: [
|
|
13744
|
-
tooltip,
|
|
13745
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute left-0 top-2 -translate-x-1 w-2 h-2 bg-zinc-900 dark:bg-zinc-100 rotate-45" })
|
|
13746
|
-
] })
|
|
13747
|
-
] })
|
|
13748
|
-
] }),
|
|
13749
|
-
showValue && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-sm font-semibold text-zinc-900 dark:text-zinc-100", children: [
|
|
13750
|
-
displayValue,
|
|
13751
|
-
suffix
|
|
13752
|
-
] })
|
|
13753
|
-
] }),
|
|
13754
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
|
|
13755
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1 relative", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
13756
|
-
"input",
|
|
13757
|
-
{
|
|
13758
|
-
id,
|
|
13759
|
-
type: "range",
|
|
13760
|
-
min,
|
|
13761
|
-
max,
|
|
13762
|
-
step,
|
|
13763
|
-
value: safeValue,
|
|
13764
|
-
onChange: (e) => onChange(Number(e.target.value)),
|
|
13765
|
-
className: "w-full h-2 bg-zinc-200 dark:bg-zinc-700 rounded-lg appearance-none cursor-pointer slider-thumb",
|
|
13766
|
-
"aria-label": label,
|
|
13767
|
-
style: {
|
|
13768
|
-
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%)`
|
|
13769
|
-
}
|
|
13770
|
-
}
|
|
13771
|
-
) }),
|
|
13772
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
13773
|
-
"input",
|
|
13774
|
-
{
|
|
13775
|
-
type: "number",
|
|
13776
|
-
min,
|
|
13777
|
-
max,
|
|
13778
|
-
step,
|
|
13779
|
-
value: safeValue,
|
|
13780
|
-
onChange: (e) => onChange(Number(e.target.value)),
|
|
13781
|
-
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",
|
|
13782
|
-
"aria-label": `${label} (${tCommon("number")})`
|
|
13783
|
-
}
|
|
13784
|
-
)
|
|
13785
|
-
] }),
|
|
13786
|
-
/* @__PURE__ */ jsxRuntime.jsx("style", { children: `
|
|
13787
|
-
.slider-thumb::-webkit-slider-thumb {
|
|
13788
|
-
appearance: none;
|
|
13789
|
-
width: 18px;
|
|
13790
|
-
height: 18px;
|
|
13791
|
-
border-radius: 50%;
|
|
13792
|
-
background: rgb(59 130 246);
|
|
13793
|
-
cursor: pointer;
|
|
13794
|
-
border: 2px solid white;
|
|
13795
|
-
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
|
|
13796
|
-
}
|
|
13797
|
-
|
|
13798
|
-
.slider-thumb::-moz-range-thumb {
|
|
13799
|
-
width: 18px;
|
|
13800
|
-
height: 18px;
|
|
13801
|
-
border-radius: 50%;
|
|
13802
|
-
background: rgb(59 130 246);
|
|
13803
|
-
cursor: pointer;
|
|
13804
|
-
border: 2px solid white;
|
|
13805
|
-
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
|
|
13806
|
-
}
|
|
13807
|
-
|
|
13808
|
-
.slider-thumb::-webkit-slider-thumb:hover {
|
|
13809
|
-
background: rgb(37 99 235);
|
|
13810
|
-
}
|
|
13811
|
-
|
|
13812
|
-
.slider-thumb::-moz-range-thumb:hover {
|
|
13813
|
-
background: rgb(37 99 235);
|
|
13814
|
-
}
|
|
13815
|
-
` })
|
|
13816
|
-
] });
|
|
13817
|
-
};
|
|
13818
|
-
function DataPagination({
|
|
13819
|
-
pagination,
|
|
13820
|
-
onUpdate,
|
|
13821
|
-
loading = false,
|
|
13822
|
-
showPageSize = false,
|
|
13823
|
-
pageSizeOptions = [10, 20, 50],
|
|
13824
|
-
params
|
|
13825
|
-
}) {
|
|
13826
|
-
const effectivePageSize = pagination.pageSize ?? pagination.limit ?? 10;
|
|
13827
|
-
const from = (pagination.page - 1) * effectivePageSize + 1;
|
|
13828
|
-
const to = Math.min(pagination.page * effectivePageSize, pagination.total);
|
|
13829
|
-
const handlePageChange = (page) => onUpdate({ page });
|
|
13830
|
-
const handlePageSizeChange = (value) => onUpdate({ limit: parseInt(value), page: 1 });
|
|
13831
|
-
if (pagination.totalPages <= 1 && !showPageSize) return null;
|
|
13832
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center justify-between gap-3 rounded-2xl liquid-surface px-4 py-3", children: [
|
|
13833
|
-
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-sm tabular-nums text-slate-600 dark:text-slate-400", children: [
|
|
13834
|
-
from,
|
|
13835
|
-
"\u2013",
|
|
13836
|
-
to,
|
|
13837
|
-
" / ",
|
|
13838
|
-
pagination.total
|
|
13839
|
-
] }),
|
|
13840
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
13841
|
-
showPageSize && /* @__PURE__ */ jsxRuntime.jsx(
|
|
13842
|
-
"select",
|
|
13843
|
-
{
|
|
13844
|
-
value: params?.limit ?? effectivePageSize,
|
|
13845
|
-
onChange: (event) => handlePageSizeChange(event.target.value),
|
|
13846
|
-
disabled: loading,
|
|
13847
|
-
className: "rounded-xl liquid-surface px-2 py-1.5 text-xs font-medium text-slate-700 outline-none dark:text-slate-300",
|
|
13848
|
-
children: pageSizeOptions.map((size) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: size, children: size }, size))
|
|
13849
|
-
}
|
|
13850
|
-
),
|
|
13851
|
-
pagination.totalPages > 1 && /* @__PURE__ */ jsxRuntime.jsxs("nav", { className: "flex items-center gap-1", "aria-label": "Pagination", children: [
|
|
13852
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
13853
|
-
"button",
|
|
13854
|
-
{
|
|
13855
|
-
type: "button",
|
|
13856
|
-
disabled: pagination.page <= 1 || loading,
|
|
13857
|
-
onClick: () => handlePageChange(pagination.page - 1),
|
|
13858
|
-
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]",
|
|
13859
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(solid.ChevronLeftIcon, { className: "h-5 w-5" })
|
|
13860
|
-
}
|
|
13861
|
-
),
|
|
13862
|
-
getPageNumbers(pagination.page, pagination.totalPages).map(
|
|
13863
|
-
(page, index) => page === "..." ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
13864
|
-
"span",
|
|
13865
|
-
{
|
|
13866
|
-
className: "inline-flex h-9 w-6 items-center justify-center text-xs text-slate-400",
|
|
13867
|
-
children: "\u2026"
|
|
13868
|
-
},
|
|
13869
|
-
`ellipsis-${index}`
|
|
13870
|
-
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
13871
|
-
"button",
|
|
13872
|
-
{
|
|
13873
|
-
type: "button",
|
|
13874
|
-
disabled: loading,
|
|
13875
|
-
onClick: () => handlePageChange(page),
|
|
13876
|
-
"aria-current": page === pagination.page ? "page" : void 0,
|
|
13877
|
-
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]"}`,
|
|
13878
|
-
children: page
|
|
13879
|
-
},
|
|
13880
|
-
`page-${page}`
|
|
13881
|
-
)
|
|
13882
|
-
),
|
|
13883
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
13884
|
-
"button",
|
|
13885
|
-
{
|
|
13886
|
-
type: "button",
|
|
13887
|
-
disabled: pagination.page >= pagination.totalPages || loading,
|
|
13888
|
-
onClick: () => handlePageChange(pagination.page + 1),
|
|
13889
|
-
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]",
|
|
13890
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(solid.ChevronRightIcon, { className: "h-5 w-5" })
|
|
13891
|
-
}
|
|
13892
|
-
)
|
|
13893
|
-
] })
|
|
13894
|
-
] })
|
|
13895
|
-
] });
|
|
13896
|
-
}
|
|
13897
|
-
function getPageNumbers(currentPage, totalPages) {
|
|
13898
|
-
if (totalPages <= 7) {
|
|
13899
|
-
return Array.from({ length: totalPages }, (_, i) => i + 1);
|
|
13900
|
-
}
|
|
13901
|
-
const pages = [1];
|
|
13902
|
-
if (currentPage <= 4) {
|
|
13903
|
-
for (let i = 2; i <= Math.min(5, totalPages); i++) pages.push(i);
|
|
13904
|
-
if (totalPages > 5) {
|
|
13905
|
-
pages.push("...");
|
|
13906
|
-
pages.push(totalPages);
|
|
13907
|
-
}
|
|
13908
|
-
} else if (currentPage >= totalPages - 3) {
|
|
13909
|
-
pages.push("...");
|
|
13910
|
-
for (let i = Math.max(totalPages - 4, 2); i <= totalPages; i++)
|
|
13911
|
-
pages.push(i);
|
|
13912
|
-
} else {
|
|
13913
|
-
pages.push("...");
|
|
13914
|
-
for (let i = currentPage - 1; i <= currentPage + 1; i++) pages.push(i);
|
|
13915
|
-
pages.push("...");
|
|
13916
|
-
pages.push(totalPages);
|
|
13917
|
-
}
|
|
13918
|
-
return pages;
|
|
13919
|
-
}
|
|
13920
|
-
var ContactCard = React11__namespace.default.memo(function ContactCard2({
|
|
13921
|
-
type,
|
|
13922
|
-
email,
|
|
13923
|
-
phone
|
|
13924
|
-
}) {
|
|
13925
|
-
const t = nextIntl.useTranslations("contact");
|
|
13926
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-2xl bg-gray-50 p-10", children: [
|
|
13927
|
-
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-base/7 font-semibold text-gray-900", children: t(type) }),
|
|
13928
|
-
/* @__PURE__ */ jsxRuntime.jsxs("dl", { className: "mt-3 space-y-1 text-sm/6 text-gray-600", children: [
|
|
13929
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
13930
|
-
/* @__PURE__ */ jsxRuntime.jsx("dt", { className: "sr-only", children: "Email" }),
|
|
13931
|
-
/* @__PURE__ */ jsxRuntime.jsx("dd", { children: /* @__PURE__ */ jsxRuntime.jsx("a", { href: `mailto:${email}`, className: "font-semibold text-blue-600", children: email }) })
|
|
13932
|
-
] }),
|
|
13933
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-1", children: [
|
|
13934
|
-
/* @__PURE__ */ jsxRuntime.jsx("dt", { className: "sr-only", children: "Telefone" }),
|
|
13935
|
-
/* @__PURE__ */ jsxRuntime.jsx("dd", { children: phone })
|
|
13936
|
-
] })
|
|
13937
|
-
] })
|
|
13938
|
-
] });
|
|
13939
|
-
});
|
|
13940
|
-
var OfficeCard = React11__namespace.default.memo(function OfficeCard2({
|
|
13941
|
-
city,
|
|
13942
|
-
address,
|
|
13943
|
-
postalCode
|
|
13944
|
-
}) {
|
|
13945
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-2xl bg-gray-50 p-10", children: [
|
|
13946
|
-
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-base/7 font-semibold text-gray-900", children: city }),
|
|
13947
|
-
/* @__PURE__ */ jsxRuntime.jsxs("address", { className: "mt-3 space-y-1 text-sm/6 text-gray-600 not-italic", children: [
|
|
13948
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { children: address }),
|
|
13949
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { children: postalCode })
|
|
13950
|
-
] })
|
|
13951
|
-
] });
|
|
13952
|
-
});
|
|
13953
|
-
var ContactSection = React11__namespace.default.memo(
|
|
13954
|
-
function ContactSection2({ title, subtitle, children }) {
|
|
13955
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-10 py-16 lg:grid-cols-3", children: [
|
|
13956
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
13957
|
-
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-4xl font-semibold tracking-tight text-pretty text-gray-900", children: title }),
|
|
13958
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-4 text-base/7 text-gray-600", children: subtitle })
|
|
13959
|
-
] }),
|
|
13960
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-1 gap-6 sm:grid-cols-2 lg:col-span-2 lg:gap-8", children })
|
|
13961
|
-
] });
|
|
13962
|
-
}
|
|
13963
|
-
);
|
|
13964
|
-
var PageHeader = React11.memo(function PageHeader2({
|
|
13965
|
-
title,
|
|
13966
|
-
subtitle,
|
|
13967
|
-
size = "default",
|
|
13968
|
-
actions,
|
|
13969
|
-
className,
|
|
13970
|
-
children
|
|
13971
|
-
}) {
|
|
13972
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx__default.default("mb-6 sm:mb-8", className), children: [
|
|
13973
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4", children: [
|
|
13974
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
13975
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
13976
|
-
"h1",
|
|
13977
|
-
{
|
|
13978
|
-
className: clsx__default.default(
|
|
13979
|
-
"font-bold text-slate-900 dark:text-slate-100 truncate",
|
|
13980
|
-
size === "large" ? "text-3xl" : "text-2xl"
|
|
13981
|
-
),
|
|
13982
|
-
children: title
|
|
13983
|
-
}
|
|
13984
|
-
),
|
|
13985
|
-
subtitle && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-sm text-slate-600 dark:text-slate-400 line-clamp-2", children: subtitle })
|
|
13986
|
-
] }),
|
|
13987
|
-
actions && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-shrink-0 flex items-center gap-2 flex-wrap", children: actions })
|
|
13988
|
-
] }),
|
|
13989
|
-
children && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-4", children })
|
|
13990
|
-
] });
|
|
13991
|
-
});
|
|
13992
|
-
var PageSectionHeader = React11.memo(function PageSectionHeader2({
|
|
13993
|
-
title,
|
|
13994
|
-
subtitle,
|
|
13995
|
-
actions,
|
|
13996
|
-
className,
|
|
13997
|
-
children
|
|
13998
|
-
}) {
|
|
13999
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx__default.default("mb-4", className), children: [
|
|
14000
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col sm:flex-row sm:items-center sm:justify-between gap-3", children: [
|
|
14001
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
14002
|
-
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-lg sm:text-xl font-semibold text-slate-900 dark:text-slate-100", children: title }),
|
|
14003
|
-
subtitle && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-sm text-slate-600 dark:text-slate-400 line-clamp-2", children: subtitle })
|
|
14004
|
-
] }),
|
|
14005
|
-
actions && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-shrink-0 flex items-center gap-2 flex-wrap", children: actions })
|
|
14006
|
-
] }),
|
|
14007
|
-
children && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-3", children })
|
|
14008
|
-
] });
|
|
14009
|
-
});
|
|
14010
|
-
var CardSectionHeader = React11.memo(function CardSectionHeader2({
|
|
14011
|
-
title,
|
|
14012
|
-
subtitle,
|
|
14013
|
-
actions,
|
|
14014
|
-
className,
|
|
14015
|
-
children
|
|
14016
|
-
}) {
|
|
14017
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx__default.default("mb-3", className), children: [
|
|
14018
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col sm:flex-row sm:items-center sm:justify-between gap-2", children: [
|
|
14019
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
14020
|
-
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-base sm:text-lg font-medium text-slate-900 dark:text-slate-100", children: title }),
|
|
14021
|
-
subtitle && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-xs sm:text-sm text-slate-600 dark:text-slate-400 line-clamp-1", children: subtitle })
|
|
14022
|
-
] }),
|
|
14023
|
-
actions && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-shrink-0 flex items-center gap-1 flex-wrap", children: actions })
|
|
14024
|
-
] }),
|
|
14025
|
-
children && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-2", children })
|
|
14026
|
-
] });
|
|
14027
|
-
});
|
|
14028
|
-
var MetricCard2 = ({
|
|
14029
|
-
title,
|
|
14030
|
-
value,
|
|
14031
|
-
subtitle,
|
|
14032
|
-
tooltip,
|
|
14033
|
-
className = "",
|
|
14034
|
-
children
|
|
14035
|
-
}) => {
|
|
14036
|
-
const [showTooltip, setShowTooltip] = React11.useState(false);
|
|
14037
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
14038
|
-
"div",
|
|
14039
|
-
{
|
|
14040
|
-
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}`,
|
|
14041
|
-
children: [
|
|
14042
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start justify-between mb-3", children: [
|
|
14043
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs font-medium text-slate-500 dark:text-slate-400", children: title }),
|
|
14044
|
-
tooltip && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
|
|
14045
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
14046
|
-
"button",
|
|
14047
|
-
{
|
|
14048
|
-
type: "button",
|
|
14049
|
-
onMouseEnter: () => setShowTooltip(true),
|
|
14050
|
-
onMouseLeave: () => setShowTooltip(false),
|
|
14051
|
-
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",
|
|
14052
|
-
"aria-label": "Info",
|
|
14053
|
-
children: "?"
|
|
14054
|
-
}
|
|
14055
|
-
),
|
|
14056
|
-
showTooltip && /* @__PURE__ */ jsxRuntime.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: [
|
|
14057
|
-
tooltip,
|
|
14058
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute right-2 top-0 -translate-y-1 w-2 h-2 bg-white/60 dark:bg-white/20 rotate-45" })
|
|
14059
|
-
] })
|
|
14060
|
-
] })
|
|
14061
|
-
] }),
|
|
14062
|
-
children ? children : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
14063
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-2xl font-semibold text-slate-900 dark:text-slate-100 mb-1", children: value }),
|
|
14064
|
-
subtitle && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-xs text-slate-500 dark:text-slate-400", children: subtitle })
|
|
14065
|
-
] })
|
|
14066
|
-
]
|
|
14067
|
-
}
|
|
14068
|
-
);
|
|
14069
|
-
};
|
|
14070
|
-
var MetricTooltip = ({ text }) => {
|
|
14071
|
-
const [show, setShow] = React11.useState(false);
|
|
14072
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
|
|
14073
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
14074
|
-
"button",
|
|
14075
|
-
{
|
|
14076
|
-
type: "button",
|
|
14077
|
-
onMouseEnter: () => setShow(true),
|
|
14078
|
-
onMouseLeave: () => setShow(false),
|
|
14079
|
-
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",
|
|
14080
|
-
"aria-label": "Info",
|
|
14081
|
-
children: "?"
|
|
14082
|
-
}
|
|
14083
|
-
),
|
|
14084
|
-
show && /* @__PURE__ */ jsxRuntime.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: [
|
|
14085
|
-
text,
|
|
14086
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute right-2 top-0 -translate-y-1 w-2 h-2 bg-white/60 dark:bg-white/20 rotate-45" })
|
|
14087
|
-
] })
|
|
14088
|
-
] });
|
|
14089
|
-
};
|
|
14090
13090
|
|
|
14091
13091
|
// src/lib/navigation.ts
|
|
14092
13092
|
function buildDockActions(items, pathname, handlers, options = {}) {
|
|
@@ -14856,21 +13856,15 @@ exports.BrandedLoader = BrandedLoader;
|
|
|
14856
13856
|
exports.Breadcrumb = Breadcrumb;
|
|
14857
13857
|
exports.Button = Button;
|
|
14858
13858
|
exports.Card = Card;
|
|
14859
|
-
exports.Card2 = Card2;
|
|
14860
13859
|
exports.CardActionMenu = CardActionMenu;
|
|
14861
13860
|
exports.CardContent = CardContent;
|
|
14862
|
-
exports.CardContent2 = CardContent2;
|
|
14863
13861
|
exports.CardDescription = CardDescription;
|
|
14864
|
-
exports.CardDescription2 = CardDescription2;
|
|
14865
13862
|
exports.CardDivider = CardDivider;
|
|
14866
13863
|
exports.CardFooter = CardFooter;
|
|
14867
|
-
exports.CardFooter2 = CardFooter2;
|
|
14868
13864
|
exports.CardGridSkeleton = CardGridSkeleton;
|
|
14869
13865
|
exports.CardHeader = CardHeader;
|
|
14870
|
-
exports.CardHeader2 = CardHeader2;
|
|
14871
13866
|
exports.CardSectionHeader = CardSectionHeader;
|
|
14872
13867
|
exports.CardTitle = CardTitle;
|
|
14873
|
-
exports.CardTitle2 = CardTitle2;
|
|
14874
13868
|
exports.CategoryBadge = CategoryBadge;
|
|
14875
13869
|
exports.CategoryTab = CategoryTab;
|
|
14876
13870
|
exports.CategoryTabs = CategoryTabs;
|
|
@@ -14906,16 +13900,11 @@ exports.DockSkeleton = DockSkeleton;
|
|
|
14906
13900
|
exports.DotRefreshIndicator = DotRefreshIndicator;
|
|
14907
13901
|
exports.Dropdown = Dropdown;
|
|
14908
13902
|
exports.DropdownButton = DropdownButton;
|
|
14909
|
-
exports.DropdownDescription = DropdownDescription;
|
|
14910
13903
|
exports.DropdownDivider = DropdownDivider;
|
|
14911
|
-
exports.DropdownHeader = DropdownHeader;
|
|
14912
|
-
exports.DropdownHeading = DropdownHeading;
|
|
14913
13904
|
exports.DropdownItem = DropdownItem;
|
|
14914
13905
|
exports.DropdownLabel = DropdownLabel;
|
|
14915
13906
|
exports.DropdownMenu = DropdownMenu;
|
|
14916
|
-
exports.DropdownSection = DropdownSection;
|
|
14917
13907
|
exports.DropdownSelect = DropdownSelect;
|
|
14918
|
-
exports.DropdownShortcut = DropdownShortcut;
|
|
14919
13908
|
exports.DynamicIsland = DynamicIsland;
|
|
14920
13909
|
exports.DynamicIslandConfirm = DynamicIslandConfirm;
|
|
14921
13910
|
exports.DynamicIslandNotification = DynamicIslandNotification;
|
|
@@ -14972,18 +13961,15 @@ exports.InfoPopover = InfoPopover;
|
|
|
14972
13961
|
exports.InlineForm = InlineForm;
|
|
14973
13962
|
exports.InlineSpinner = InlineSpinner;
|
|
14974
13963
|
exports.Input = Input;
|
|
14975
|
-
exports.InputGroup = InputGroup;
|
|
14976
13964
|
exports.InteractiveGeoMap = InteractiveGeoMap;
|
|
14977
13965
|
exports.ItemSummary = ItemSummary;
|
|
14978
13966
|
exports.KORI_ERP_LOADER = KORI_ERP_LOADER;
|
|
14979
13967
|
exports.Label = Label2;
|
|
14980
|
-
exports.Label2 = Label3;
|
|
14981
13968
|
exports.LabeledToggle = LabeledToggle;
|
|
14982
13969
|
exports.LanguageSwitcher = LanguageSwitcher;
|
|
14983
13970
|
exports.LaunchpadGrid = LaunchpadGrid;
|
|
14984
13971
|
exports.Lead = Lead;
|
|
14985
13972
|
exports.Legend = Legend2;
|
|
14986
|
-
exports.Link = Link4;
|
|
14987
13973
|
exports.LiquidFilterInput = LiquidFilterInput;
|
|
14988
13974
|
exports.ListCard = ListCard;
|
|
14989
13975
|
exports.ListCardItem = ListCardItem;
|
|
@@ -14993,8 +13979,6 @@ exports.ManagementPageLayout = ManagementPageLayout;
|
|
|
14993
13979
|
exports.ManagementSurface = ManagementSurface;
|
|
14994
13980
|
exports.MapZoomControls = MapZoomControls;
|
|
14995
13981
|
exports.MetricCard = MetricCard;
|
|
14996
|
-
exports.MetricCard2 = MetricCard2;
|
|
14997
|
-
exports.MetricTooltip = MetricTooltip;
|
|
14998
13982
|
exports.MonthPicker = MonthPicker;
|
|
14999
13983
|
exports.MultiColumnPicker = MultiColumnPicker;
|
|
15000
13984
|
exports.NavigationProgress = NavigationProgress;
|
|
@@ -15016,7 +14000,6 @@ exports.PageLoadingState = PageLoadingState;
|
|
|
15016
14000
|
exports.PageSectionHeader = PageSectionHeader;
|
|
15017
14001
|
exports.Pagination = Pagination;
|
|
15018
14002
|
exports.PasswordInput = PasswordInput;
|
|
15019
|
-
exports.PasswordInput2 = PasswordInput2;
|
|
15020
14003
|
exports.PasswordStrengthMeter = PasswordStrengthMeter;
|
|
15021
14004
|
exports.Pill = Pill;
|
|
15022
14005
|
exports.PlatformShell = PlatformShell;
|
|
@@ -15046,10 +14029,6 @@ exports.SectionHeader = SectionHeader;
|
|
|
15046
14029
|
exports.SectionHeaderSkeleton = SectionHeaderSkeleton;
|
|
15047
14030
|
exports.SegmentedControl = SegmentedControl;
|
|
15048
14031
|
exports.Select = Select;
|
|
15049
|
-
exports.SelectContent = SelectContent;
|
|
15050
|
-
exports.SelectItem = SelectItem;
|
|
15051
|
-
exports.SelectTrigger = SelectTrigger;
|
|
15052
|
-
exports.SelectValue = SelectValue;
|
|
15053
14032
|
exports.SelectableChipPicker = SelectableChipPicker;
|
|
15054
14033
|
exports.SelectableListPicker = SelectableListPicker;
|
|
15055
14034
|
exports.SelectableOptionsGrid = SelectableOptionsGrid;
|
|
@@ -15059,13 +14038,11 @@ exports.ServerErrorPage = ServerErrorPage;
|
|
|
15059
14038
|
exports.SettingsDialog = SettingsDialog;
|
|
15060
14039
|
exports.SettingsModal = SettingsModal;
|
|
15061
14040
|
exports.Sheet = Sheet;
|
|
15062
|
-
exports.SliderInput = SliderInput;
|
|
15063
14041
|
exports.SocialLoginButtons = SocialLoginButtons;
|
|
15064
14042
|
exports.SortableTableHeader = SortableTableHeader;
|
|
15065
14043
|
exports.Spinner = Spinner;
|
|
15066
14044
|
exports.Stat = Stat;
|
|
15067
14045
|
exports.StatCard = StatCard;
|
|
15068
|
-
exports.StatCard2 = StatCard2;
|
|
15069
14046
|
exports.StatCardSkeleton = StatCardSkeleton;
|
|
15070
14047
|
exports.StatusBadge = StatusBadge;
|
|
15071
14048
|
exports.StatusToggle = StatusToggle;
|
|
@@ -15076,8 +14053,6 @@ exports.Strong = Strong;
|
|
|
15076
14053
|
exports.Subheading = Subheading;
|
|
15077
14054
|
exports.SwipeableRow = SwipeableRow;
|
|
15078
14055
|
exports.Switch = Switch2;
|
|
15079
|
-
exports.SwitchField = SwitchField;
|
|
15080
|
-
exports.SwitchGroup = SwitchGroup;
|
|
15081
14056
|
exports.Table = Table;
|
|
15082
14057
|
exports.TableBody = TableBody;
|
|
15083
14058
|
exports.TableCell = TableCell;
|
|
@@ -15183,5 +14158,5 @@ exports.useGeoMapState = useGeoMapState;
|
|
|
15183
14158
|
exports.useNotifications = useNotifications;
|
|
15184
14159
|
exports.usePlatformShellStore = usePlatformShellStore;
|
|
15185
14160
|
exports.usePullToRefresh = usePullToRefresh;
|
|
15186
|
-
//# sourceMappingURL=chunk-
|
|
15187
|
-
//# sourceMappingURL=chunk-
|
|
14161
|
+
//# sourceMappingURL=chunk-5NRV2PE4.js.map
|
|
14162
|
+
//# sourceMappingURL=chunk-5NRV2PE4.js.map
|