@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.
@@ -2,7 +2,7 @@
2
2
  'use strict';
3
3
 
4
4
  var chunkUZ3CMNUJ_js = require('./chunk-UZ3CMNUJ.js');
5
- var Headless11 = require('@headlessui/react');
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 Headless11__namespace = /*#__PURE__*/_interopNamespace(Headless11);
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(Headless11__namespace.DataInteractive, { children: /* @__PURE__ */ jsxRuntime.jsx(NextLink__default.default, { ...props, ref }) });
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
- Headless11.Button,
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(Headless11.Transition, { show: open, as: React11.Fragment, children: /* @__PURE__ */ jsxRuntime.jsxs(Headless11.Dialog, { as: "div", className: "relative z-50", onClose, children: [
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
- Headless11.TransitionChild,
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
- Headless11.TransitionChild,
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
- Headless11.DialogPanel,
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(Headless11.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 }),
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: styles3 = {},
2938
+ styles: styles2 = {},
2939
2939
  fallbackStyle = DEFAULT_FALLBACK_STYLE
2940
2940
  }) {
2941
- const style = styles3[value] ?? fallbackStyle;
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 styles3 = sizeStyles2[size];
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
- ${styles3.container}
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
- ${styles3.segment}
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 styles3 = variantStyles[variant];
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 ${styles3.iconBg} flex items-center justify-center`, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-4 w-4 text-white", children: icon }) }) })
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 ${styles3.iconBg} flex items-center justify-center shrink-0`, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-5 w-5 text-white", children: icon }) }),
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 ${styles3.iconBg} flex items-center justify-center shrink-0 ${styles3.glow}`, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-8 w-8 text-white", children: icon }) }),
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 ${styles3.accentColor}`, children: appName }),
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(Headless11.Dialog, { open, onClose, className: "relative z-50", children: [
5418
- /* @__PURE__ */ jsxRuntime.jsx(Headless11.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(Headless11.DialogPanel, { className: panelClassName, children }) })
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(Headless11__namespace.Dialog, { ...props, children: [
5476
+ return /* @__PURE__ */ jsxRuntime.jsxs(Headless6__namespace.Dialog, { ...props, children: [
5477
5477
  /* @__PURE__ */ jsxRuntime.jsx(
5478
- Headless11__namespace.DialogBackdrop,
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
- Headless11__namespace.DialogPanel,
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
- Headless11__namespace.DialogTitle,
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
- Headless11__namespace.Description,
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(Headless11.Menu, { as: "div", className: "relative", children: [
5857
- /* @__PURE__ */ jsxRuntime.jsx(Headless11.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(Headless11.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(Headless11.MenuItem, { children: ({ active }) => {
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(Headless11.DialogTitle, { className: "text-base sm:text-lg font-semibold text-gray-900 dark:text-white", children: title }),
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(Headless11.Dialog, { open, onClose, className: "relative z-50", children: [
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
- Headless11.DialogPanel,
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(Headless11.Transition, { show: filtersOpen, as: React11.Fragment, children: /* @__PURE__ */ jsxRuntime.jsxs(Headless11.Dialog, { as: "div", className: "relative z-50", onClose: onCloseFilters, children: [
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
- Headless11.TransitionChild,
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(Headless11.DialogBackdrop, { className: "fixed inset-0 bg-slate-900/35 backdrop-blur-md" })
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
- Headless11.TransitionChild,
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(Headless11.DialogPanel, { className: "liquid-surface-strong w-full overflow-hidden rounded-2xl", children: [
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(Headless11__namespace.Button, { ...props, className: classes, ref, children: /* @__PURE__ */ jsxRuntime.jsx(TouchTarget, { children: /* @__PURE__ */ jsxRuntime.jsx(Avatar, { src, square, initials, alt }) }) });
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(Headless11__namespace.Button, { ...props, className: classes, ref, children: /* @__PURE__ */ jsxRuntime.jsx(TouchTarget, { children: /* @__PURE__ */ jsxRuntime.jsx(Badge, { color, children }) }) });
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(Headless11__namespace.Menu, { ...props });
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(Headless11.Dialog, { open, onClose, className: "relative z-[120]", children: [
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(Headless11.DialogPanel, { className: "w-full max-w-sm rounded-[28px] bg-black/95 p-3 text-white shadow-2xl", children: [
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(Headless11.Dialog, { open, onClose, className: "relative z-50", children: [
8872
- /* @__PURE__ */ jsxRuntime.jsx(Headless11.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(Headless11.DialogPanel, { className: `w-screen ${maxWidthClassName} ${panelClassName ?? defaultPanelClassName}`, children: title ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "p-4", children: [
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(Headless11.Dialog, { className: "relative z-50", open, onClose: setOpen, children: [
9081
- /* @__PURE__ */ jsxRuntime.jsx(Headless11.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(Headless11.DialogPanel, { className: "w-full max-w-md liquid-surface rounded-2xl border border-white/45 p-4 dark:border-white/12", children: [
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
- Headless11__namespace.Fieldset,
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
- Headless11__namespace.Legend,
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
- Headless11__namespace.Field,
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
- Headless11__namespace.Label,
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
- Headless11__namespace.Description,
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
- Headless11__namespace.Description,
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(Headless11.Menu, { as: "div", className: `relative ${className}`, children: [
11492
- /* @__PURE__ */ jsxRuntime.jsxs(Headless11.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: [
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
- Headless11.MenuItems,
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(Headless11.MenuItem, { children: /* @__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
- var Link4 = React11.forwardRef(function Link5(props, ref) {
12576
- return /* @__PURE__ */ jsxRuntime.jsx(NextLink__default.default, { ref, ...props });
12577
- });
12578
- var styles2 = {
12579
- base: [
12580
- "relative inline-flex items-center justify-center gap-x-2 rounded-xl text-sm font-semibold",
12581
- "px-3.5 py-2.5 transition-all duration-200",
12582
- "focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 dark:focus:ring-indigo-400 dark:focus:ring-offset-slate-900",
12583
- "disabled:opacity-50 disabled:pointer-events-none",
12584
- "[&>svg]:size-4 [&>svg]:shrink-0"
12585
- ],
12586
- solid: ["liquid-button-primary rounded-xl"],
12587
- outline: [
12588
- "liquid-button rounded-xl"
12589
- ],
12590
- plain: [
12591
- "border-transparent text-slate-700 hover:bg-white/30 dark:hover:bg-white/[0.08]",
12592
- "dark:text-slate-300"
12593
- ],
12594
- colors: {
12595
- "dark/zinc": [
12596
- "bg-slate-900/80 text-white backdrop-blur-xl border border-white/10 hover:bg-slate-800/80"
12597
- ],
12598
- light: [
12599
- "bg-white/60 text-slate-900 backdrop-blur-xl border border-white/30 hover:bg-white/80 dark:bg-white/10 dark:text-white dark:border-white/20 dark:hover:bg-white/20"
12600
- ],
12601
- "dark/white": [
12602
- "bg-slate-900/80 text-white backdrop-blur-xl border border-white/10 hover:bg-slate-800/80 dark:bg-white/90 dark:text-slate-900 dark:border-white/30 dark:hover:bg-white/80"
12603
- ],
12604
- dark: [
12605
- "bg-slate-900/80 text-white backdrop-blur-xl border border-white/10 hover:bg-slate-800/80"
12606
- ],
12607
- white: [
12608
- "bg-white/60 text-slate-900 backdrop-blur-xl border border-white/30 hover:bg-white/80"
12609
- ],
12610
- zinc: [
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
- className: "animate-spin inline-block size-4 border-2 border-current border-t-transparent rounded-full mr-2",
12707
- "aria-hidden": "true"
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
- children
12711
- ] })
12712
- }
12713
- ) : /* @__PURE__ */ jsxRuntime.jsx(
12714
- Headless11__namespace.Button,
12715
- {
12716
- ...props,
12717
- ...accessibilityProps,
12718
- className: classes,
12719
- ref,
12720
- children: /* @__PURE__ */ jsxRuntime.jsxs(TouchTarget2, { children: [
12721
- loading && /* @__PURE__ */ jsxRuntime.jsx(
12722
- "span",
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
- className: "animate-spin inline-block size-4 border-2 border-current border-t-transparent rounded-full mr-2",
12725
- "aria-hidden": "true"
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 InputGroup({
12746
- children
12747
- }) {
12748
- return /* @__PURE__ */ jsxRuntime.jsx(
12749
- "span",
12750
- {
12751
- "data-slot": "control",
12752
- className: clsx__default.default(
12753
- "relative isolate block",
12754
- "has-[[data-slot=icon]:first-child]:[&_input]:pl-10 has-[[data-slot=icon]:last-child]:[&_input]:pr-10 sm:has-[[data-slot=icon]:first-child]:[&_input]:pl-8 sm:has-[[data-slot=icon]:last-child]:[&_input]:pr-8",
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 dateTypes = ["date", "datetime-local", "month", "time", "week"];
12764
- React11.forwardRef(function Input4({
12765
- className,
12766
- "aria-label": ariaLabel,
12767
- "aria-describedby": ariaDescribedBy,
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
- multiple,
12862
- ...props
12863
- }, ref) {
12864
- return /* @__PURE__ */ jsxRuntime.jsxs(
12865
- "span",
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
- Headless11__namespace.Select,
12689
+ "h1",
12884
12690
  {
12885
- ref,
12886
- multiple,
12887
- ...props,
12888
- className: clsx__default.default([
12889
- // Basic layout
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
- !multiple && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "pointer-events-none absolute inset-y-0 right-0 flex items-center pr-2", children: /* @__PURE__ */ jsxRuntime.jsxs(
12911
- "svg",
12912
- {
12913
- className: "size-5 stroke-zinc-500 group-has-data-disabled:stroke-zinc-600 sm:size-4 dark:stroke-zinc-400 forced-colors:stroke-[CanvasText]",
12914
- viewBox: "0 0 16 16",
12915
- "aria-hidden": "true",
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 Label3 = React11__namespace.default.forwardRef(
12944
- ({ children, className = "", required = false, ...props }, ref) => {
12945
- return /* @__PURE__ */ jsxRuntime.jsxs(
12946
- "label",
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
- ref,
12949
- className: `block text-sm font-medium text-slate-800 dark:text-slate-200 ${className}`,
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
- Label3.displayName = "Label";
12960
- function SwitchGroup({
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
- "div",
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
- // Basic groups
12972
- "space-y-3 **:data-[slot=label]:font-normal",
12973
- // With descriptions
12974
- "has-data-[slot=description]:space-y-6 has-data-[slot=description]:**:data-[slot=label]:font-medium"
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 SwitchField({
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
- Headless11__namespace.Field,
12919
+ Headless6__namespace.MenuSeparator,
12985
12920
  {
12986
- "data-slot": "field",
12987
12921
  ...props,
12988
12922
  className: clsx__default.default(
12989
12923
  className,
12990
- // Base layout
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
- Headless11__namespace.Switch,
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-IMLJ5FAZ.js.map
15187
- //# sourceMappingURL=chunk-IMLJ5FAZ.js.map
14161
+ //# sourceMappingURL=chunk-5NRV2PE4.js.map
14162
+ //# sourceMappingURL=chunk-5NRV2PE4.js.map