@datatechsolutions/ui 3.11.2 → 3.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/astrlabe/index.js +108 -108
- package/dist/astrlabe/index.mjs +4 -4
- package/dist/astrlabe/workflow-canvas.js +4 -4
- package/dist/astrlabe/workflow-canvas.mjs +3 -3
- package/dist/{chunk-HLIMHIRH.js → chunk-2ECLDHAT.js} +12 -12
- package/dist/{chunk-HLIMHIRH.js.map → chunk-2ECLDHAT.js.map} +1 -1
- package/dist/{chunk-RUWUH7DW.mjs → chunk-4VHFGW7I.mjs} +4 -4
- package/dist/{chunk-RUWUH7DW.mjs.map → chunk-4VHFGW7I.mjs.map} +1 -1
- package/dist/{chunk-6R5Z2IQ5.js → chunk-5ETT54QS.js} +120 -77
- package/dist/chunk-5ETT54QS.js.map +1 -0
- package/dist/{chunk-OZEOBZOW.mjs → chunk-6KDTVSZT.mjs} +7 -7
- package/dist/{chunk-OZEOBZOW.mjs.map → chunk-6KDTVSZT.mjs.map} +1 -1
- package/dist/{chunk-V32NUE5U.js → chunk-6YTYD4P5.js} +66 -66
- package/dist/{chunk-V32NUE5U.js.map → chunk-6YTYD4P5.js.map} +1 -1
- package/dist/{chunk-LBCUQ4FY.mjs → chunk-7TYNV6SY.mjs} +4 -4
- package/dist/{chunk-LBCUQ4FY.mjs.map → chunk-7TYNV6SY.mjs.map} +1 -1
- package/dist/{chunk-NDGYIHJ3.mjs → chunk-AHNH2PMI.mjs} +4 -4
- package/dist/{chunk-NDGYIHJ3.mjs.map → chunk-AHNH2PMI.mjs.map} +1 -1
- package/dist/{chunk-4PUVECVF.mjs → chunk-AKWCT53S.mjs} +4 -4
- package/dist/{chunk-4PUVECVF.mjs.map → chunk-AKWCT53S.mjs.map} +1 -1
- package/dist/{chunk-TXI3QDYE.js → chunk-AMCFAGK3.js} +34 -34
- package/dist/{chunk-TXI3QDYE.js.map → chunk-AMCFAGK3.js.map} +1 -1
- package/dist/{chunk-JXROBMRU.mjs → chunk-ANFSQJNI.mjs} +4 -4
- package/dist/{chunk-JXROBMRU.mjs.map → chunk-ANFSQJNI.mjs.map} +1 -1
- package/dist/{chunk-N7T4X6A7.mjs → chunk-CSOMZ5UM.mjs} +4 -4
- package/dist/{chunk-N7T4X6A7.mjs.map → chunk-CSOMZ5UM.mjs.map} +1 -1
- package/dist/{chunk-3BFQ3SVG.js → chunk-D5OTZGA2.js} +126 -127
- package/dist/chunk-D5OTZGA2.js.map +1 -0
- package/dist/{chunk-GDVB7QDZ.js → chunk-IIRS5XZY.js} +104 -40
- package/dist/chunk-IIRS5XZY.js.map +1 -0
- package/dist/{chunk-N5FWIT7N.js → chunk-K5567JM5.js} +13 -13
- package/dist/{chunk-N5FWIT7N.js.map → chunk-K5567JM5.js.map} +1 -1
- package/dist/{chunk-KGC5CRS7.mjs → chunk-KWH7JIRP.mjs} +3 -3
- package/dist/{chunk-KGC5CRS7.mjs.map → chunk-KWH7JIRP.mjs.map} +1 -1
- package/dist/{chunk-Y4YIGEX6.js → chunk-MQDCUBVW.js} +150 -150
- package/dist/{chunk-Y4YIGEX6.js.map → chunk-MQDCUBVW.js.map} +1 -1
- package/dist/{chunk-D5FL3ZHC.mjs → chunk-MSKKNPRE.mjs} +86 -43
- package/dist/chunk-MSKKNPRE.mjs.map +1 -0
- package/dist/{chunk-5JS3UFBF.js → chunk-N4YT3QA5.js} +15 -15
- package/dist/{chunk-5JS3UFBF.js.map → chunk-N4YT3QA5.js.map} +1 -1
- package/dist/{chunk-LW2LFJZ7.js → chunk-NF5DDM5V.js} +40 -40
- package/dist/{chunk-LW2LFJZ7.js.map → chunk-NF5DDM5V.js.map} +1 -1
- package/dist/{chunk-AVLOGVVA.mjs → chunk-OC4AOYU5.mjs} +4 -4
- package/dist/{chunk-AVLOGVVA.mjs.map → chunk-OC4AOYU5.mjs.map} +1 -1
- package/dist/{chunk-BGLYJ7GR.js → chunk-OY5HUZSD.js} +44 -44
- package/dist/{chunk-BGLYJ7GR.js.map → chunk-OY5HUZSD.js.map} +1 -1
- package/dist/{chunk-5Y67PZWC.js → chunk-PPIUMCUZ.js} +6 -6
- package/dist/{chunk-5Y67PZWC.js.map → chunk-PPIUMCUZ.js.map} +1 -1
- package/dist/{chunk-M64U336M.mjs → chunk-QGRTV35L.mjs} +7 -7
- package/dist/{chunk-M64U336M.mjs.map → chunk-QGRTV35L.mjs.map} +1 -1
- package/dist/{chunk-3J4E2THD.js → chunk-SDYKXLCU.js} +56 -56
- package/dist/{chunk-3J4E2THD.js.map → chunk-SDYKXLCU.js.map} +1 -1
- package/dist/{chunk-5TJR3VJ6.mjs → chunk-UPYACFZJ.mjs} +5 -5
- package/dist/{chunk-5TJR3VJ6.mjs.map → chunk-UPYACFZJ.mjs.map} +1 -1
- package/dist/{chunk-JBXNEOFB.mjs → chunk-UXHJS2SH.mjs} +4 -5
- package/dist/chunk-UXHJS2SH.mjs.map +1 -0
- package/dist/{chunk-MCHTZ63Q.js → chunk-VI4IUTMX.js} +4 -4
- package/dist/{chunk-MCHTZ63Q.js.map → chunk-VI4IUTMX.js.map} +1 -1
- package/dist/{chunk-TZA5T4MJ.mjs → chunk-VIB42VMZ.mjs} +81 -17
- package/dist/chunk-VIB42VMZ.mjs.map +1 -0
- package/dist/{chunk-5NKGJV72.js → chunk-WOTKBKS6.js} +31 -31
- package/dist/{chunk-5NKGJV72.js.map → chunk-WOTKBKS6.js.map} +1 -1
- package/dist/{chunk-YXN2K77G.js → chunk-Y5VN4SPH.js} +26 -3
- package/dist/chunk-Y5VN4SPH.js.map +1 -0
- package/dist/{chunk-7VJ7CMMT.mjs → chunk-ZEFNBGYI.mjs} +26 -3
- package/dist/chunk-ZEFNBGYI.mjs.map +1 -0
- package/dist/{chunk-WSXP645I.mjs → chunk-ZRCXDKBE.mjs} +3 -3
- package/dist/{chunk-WSXP645I.mjs.map → chunk-ZRCXDKBE.mjs.map} +1 -1
- package/dist/index.d.mts +13 -4
- package/dist/index.d.ts +13 -4
- package/dist/index.js +668 -668
- package/dist/index.mjs +2 -2
- package/dist/lib/i18n-context.d.mts +12 -4
- package/dist/lib/i18n-context.d.ts +12 -4
- package/dist/lib/i18n-context.js +6 -6
- package/dist/lib/i18n-context.mjs +1 -1
- package/dist/platform/admin/index.js +10 -10
- package/dist/platform/admin/index.mjs +4 -4
- package/dist/platform/agents-workspace.js +7 -7
- package/dist/platform/agents-workspace.mjs +6 -6
- package/dist/platform/app-shell.js +4 -4
- package/dist/platform/app-shell.mjs +3 -3
- package/dist/platform/auth/index.js +22 -22
- package/dist/platform/auth/index.mjs +4 -4
- package/dist/platform/billing/index.js +4 -4
- package/dist/platform/billing/index.mjs +3 -3
- package/dist/platform/impersonation/index.js +4 -4
- package/dist/platform/impersonation/index.mjs +3 -3
- package/dist/platform/index.js +85 -85
- package/dist/platform/index.mjs +18 -18
- package/dist/platform/pages/index.d.mts +75 -16
- package/dist/platform/pages/index.d.ts +75 -16
- package/dist/platform/pages/index.js +1089 -505
- package/dist/platform/pages/index.js.map +1 -1
- package/dist/platform/pages/index.mjs +789 -205
- package/dist/platform/pages/index.mjs.map +1 -1
- package/dist/platform/settings/index.js +7 -7
- package/dist/platform/settings/index.mjs +6 -6
- package/dist/platform/workflow-canvas-shell.js +5 -5
- package/dist/platform/workflow-canvas-shell.mjs +4 -4
- package/package.json +2 -1
- package/dist/chunk-3BFQ3SVG.js.map +0 -1
- package/dist/chunk-6R5Z2IQ5.js.map +0 -1
- package/dist/chunk-7VJ7CMMT.mjs.map +0 -1
- package/dist/chunk-D5FL3ZHC.mjs.map +0 -1
- package/dist/chunk-GDVB7QDZ.js.map +0 -1
- package/dist/chunk-JBXNEOFB.mjs.map +0 -1
- package/dist/chunk-TZA5T4MJ.mjs.map +0 -1
- package/dist/chunk-YXN2K77G.js.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var chunkY5VN4SPH_js = require('./chunk-Y5VN4SPH.js');
|
|
5
5
|
var chunk22XPYFHJ_js = require('./chunk-22XPYFHJ.js');
|
|
6
6
|
var chunkBHOT22QL_js = require('./chunk-BHOT22QL.js');
|
|
7
7
|
var chunkUZ3CMNUJ_js = require('./chunk-UZ3CMNUJ.js');
|
|
@@ -371,7 +371,7 @@ var Input = React9.forwardRef(
|
|
|
371
371
|
variant = "default",
|
|
372
372
|
...props
|
|
373
373
|
}, ref) => {
|
|
374
|
-
const t =
|
|
374
|
+
const t = chunkY5VN4SPH_js.useTranslations("auth");
|
|
375
375
|
const autoId = React9.useId();
|
|
376
376
|
const inputId = props.id || autoId;
|
|
377
377
|
const errorId = `${inputId}-error`;
|
|
@@ -1667,7 +1667,7 @@ function getTestIdFromTitle(title) {
|
|
|
1667
1667
|
return "entity-card";
|
|
1668
1668
|
}
|
|
1669
1669
|
function StatusBadgeInternal({ status }) {
|
|
1670
|
-
const tCommon =
|
|
1670
|
+
const tCommon = chunkY5VN4SPH_js.useTranslations("common");
|
|
1671
1671
|
if (typeof status !== "boolean") {
|
|
1672
1672
|
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: status });
|
|
1673
1673
|
}
|
|
@@ -3018,7 +3018,7 @@ function SearchBar({
|
|
|
3018
3018
|
filterChipStyleConfig,
|
|
3019
3019
|
filtersModal
|
|
3020
3020
|
}) {
|
|
3021
|
-
const t =
|
|
3021
|
+
const t = chunkY5VN4SPH_js.useTranslations("common");
|
|
3022
3022
|
const [isFocused, setIsFocused] = React9.useState(false);
|
|
3023
3023
|
const inputRef = React9.useRef(null);
|
|
3024
3024
|
const hasFilters = activeFilters.length > 0 || searchTerm.length > 0;
|
|
@@ -3044,7 +3044,7 @@ function SearchBar({
|
|
|
3044
3044
|
inputRef.current?.blur();
|
|
3045
3045
|
onCancel?.();
|
|
3046
3046
|
}, [onSearchChange, onCancel]);
|
|
3047
|
-
const containerClasses = noBorder ? "flex flex-wrap items-center gap-2
|
|
3047
|
+
const containerClasses = noBorder ? "flex flex-wrap items-center gap-2 px-2 py-1 bg-transparent" : `liquid-surface flex flex-wrap items-center gap-2 px-2 py-1 rounded-2xl
|
|
3048
3048
|
transition-all duration-200
|
|
3049
3049
|
${isFocused ? "ring-2 ring-indigo-500/70 ring-offset-1" : ""}`;
|
|
3050
3050
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
@@ -3084,7 +3084,7 @@ function SearchBar({
|
|
|
3084
3084
|
onFocus: handleFocus,
|
|
3085
3085
|
onBlur: handleBlur,
|
|
3086
3086
|
"data-testid": "search-input",
|
|
3087
|
-
className: "w-full h-
|
|
3087
|
+
className: "w-full h-10 pl-10 pr-10 text-base bg-transparent\n text-slate-900 dark:text-white\n placeholder:text-slate-400 dark:placeholder:text-slate-500\n focus:outline-none"
|
|
3088
3088
|
}
|
|
3089
3089
|
),
|
|
3090
3090
|
/* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { children: searchTerm && /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -3122,7 +3122,7 @@ function SearchBar({
|
|
|
3122
3122
|
type: "button",
|
|
3123
3123
|
onClick: filtersModal.onOpen,
|
|
3124
3124
|
outline: true,
|
|
3125
|
-
className: "h-
|
|
3125
|
+
className: "h-10",
|
|
3126
3126
|
children: [
|
|
3127
3127
|
/* @__PURE__ */ jsxRuntime.jsx(HeroIcons.FunnelIcon, { className: "h-4 w-4" }),
|
|
3128
3128
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: resolvedFiltersTitle }),
|
|
@@ -3286,7 +3286,7 @@ function StatCard({
|
|
|
3286
3286
|
onClick,
|
|
3287
3287
|
className = ""
|
|
3288
3288
|
}) {
|
|
3289
|
-
const t =
|
|
3289
|
+
const t = chunkY5VN4SPH_js.useTranslations("common");
|
|
3290
3290
|
const colorConfig = colorClasses[color];
|
|
3291
3291
|
const isClickable = !!onClick;
|
|
3292
3292
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -3463,7 +3463,7 @@ function PriceChangeBadge({
|
|
|
3463
3463
|
showIcon = false,
|
|
3464
3464
|
className = ""
|
|
3465
3465
|
}) {
|
|
3466
|
-
const locale =
|
|
3466
|
+
const locale = chunkY5VN4SPH_js.useLocale();
|
|
3467
3467
|
if (value === null) return null;
|
|
3468
3468
|
const isPositive = value >= 0;
|
|
3469
3469
|
const toneClasses = isPositive ? "border-emerald-500/30 bg-emerald-500/20 text-emerald-700 dark:text-emerald-300" : "border-red-500/30 bg-red-500/20 text-red-700 dark:text-red-300";
|
|
@@ -3491,8 +3491,8 @@ function Pagination({
|
|
|
3491
3491
|
onPageChange,
|
|
3492
3492
|
className = ""
|
|
3493
3493
|
}) {
|
|
3494
|
-
const t =
|
|
3495
|
-
const tCommon =
|
|
3494
|
+
const t = chunkY5VN4SPH_js.useTranslations("approvals");
|
|
3495
|
+
const tCommon = chunkY5VN4SPH_js.useTranslations("common");
|
|
3496
3496
|
const from = (currentPage - 1) * pageSize + 1;
|
|
3497
3497
|
const to = Math.min(currentPage * pageSize, totalItems);
|
|
3498
3498
|
const getPageNumbers2 = () => {
|
|
@@ -3731,7 +3731,7 @@ function Spinner({
|
|
|
3731
3731
|
className,
|
|
3732
3732
|
label
|
|
3733
3733
|
}) {
|
|
3734
|
-
const t =
|
|
3734
|
+
const t = chunkY5VN4SPH_js.useTranslations("common");
|
|
3735
3735
|
const ariaLabel = label || t("loading");
|
|
3736
3736
|
const SpinnerComponent = {
|
|
3737
3737
|
circle: CircleSpinner,
|
|
@@ -3756,21 +3756,33 @@ function Spinner({
|
|
|
3756
3756
|
}
|
|
3757
3757
|
function LoadingOverlay({ show, message, blur = true }) {
|
|
3758
3758
|
if (!show) return null;
|
|
3759
|
-
return /* @__PURE__ */ jsxRuntime.
|
|
3759
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3760
3760
|
framerMotion.motion.div,
|
|
3761
3761
|
{
|
|
3762
|
+
role: "status",
|
|
3763
|
+
"aria-live": "polite",
|
|
3762
3764
|
initial: { opacity: 0 },
|
|
3763
3765
|
animate: { opacity: 1 },
|
|
3764
3766
|
exit: { opacity: 0 },
|
|
3765
3767
|
className: clsx4.clsx(
|
|
3766
3768
|
"fixed inset-0 z-50 flex flex-col items-center justify-center",
|
|
3767
|
-
"bg-
|
|
3768
|
-
blur && "backdrop-blur-
|
|
3769
|
+
"bg-slate-900/25 dark:bg-slate-950/45",
|
|
3770
|
+
blur && "backdrop-blur-md"
|
|
3769
3771
|
),
|
|
3770
|
-
children:
|
|
3771
|
-
|
|
3772
|
-
|
|
3773
|
-
|
|
3772
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3773
|
+
framerMotion.motion.div,
|
|
3774
|
+
{
|
|
3775
|
+
initial: { opacity: 0, scale: 0.92, y: 8 },
|
|
3776
|
+
animate: { opacity: 1, scale: 1, y: 0 },
|
|
3777
|
+
exit: { opacity: 0, scale: 0.92, y: 8 },
|
|
3778
|
+
transition: { type: "spring", stiffness: 320, damping: 28 },
|
|
3779
|
+
className: "liquid-surface-strong flex flex-col items-center gap-3 rounded-2xl px-7 py-6 min-w-[160px]",
|
|
3780
|
+
children: [
|
|
3781
|
+
/* @__PURE__ */ jsxRuntime.jsx(Spinner, { size: "lg", color: "blue", variant: "circle" }),
|
|
3782
|
+
message && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm font-medium text-slate-700 dark:text-slate-200", children: message })
|
|
3783
|
+
]
|
|
3784
|
+
}
|
|
3785
|
+
)
|
|
3774
3786
|
}
|
|
3775
3787
|
);
|
|
3776
3788
|
}
|
|
@@ -4024,7 +4036,7 @@ function PageIndicator({
|
|
|
4024
4036
|
size = "md",
|
|
4025
4037
|
variant = "default"
|
|
4026
4038
|
}) {
|
|
4027
|
-
const t =
|
|
4039
|
+
const t = chunkY5VN4SPH_js.useTranslations("common");
|
|
4028
4040
|
const { dot, gap } = sizeConfig2[size];
|
|
4029
4041
|
const colors2 = variantConfig[variant];
|
|
4030
4042
|
const handleClick = (index) => {
|
|
@@ -4083,7 +4095,7 @@ function ExpandingPageIndicator({
|
|
|
4083
4095
|
variant = "default",
|
|
4084
4096
|
activeWidth = 24
|
|
4085
4097
|
}) {
|
|
4086
|
-
const t =
|
|
4098
|
+
const t = chunkY5VN4SPH_js.useTranslations("common");
|
|
4087
4099
|
const colors2 = variantConfig[variant];
|
|
4088
4100
|
const handleClick = (index) => {
|
|
4089
4101
|
if (onChange && index !== active) {
|
|
@@ -5304,7 +5316,7 @@ function ErrorState({
|
|
|
5304
5316
|
details,
|
|
5305
5317
|
variant = "default"
|
|
5306
5318
|
}) {
|
|
5307
|
-
const t =
|
|
5319
|
+
const t = chunkY5VN4SPH_js.useTranslations("common.errorState");
|
|
5308
5320
|
const [isRetrying, setIsRetrying] = React9.useState(false);
|
|
5309
5321
|
const [showErrorDetails, setShowErrorDetails] = React9.useState(false);
|
|
5310
5322
|
const config = errorTypeConfig[type];
|
|
@@ -5439,7 +5451,7 @@ function OfflineState({
|
|
|
5439
5451
|
onRetry,
|
|
5440
5452
|
message
|
|
5441
5453
|
}) {
|
|
5442
|
-
const t =
|
|
5454
|
+
const t = chunkY5VN4SPH_js.useTranslations("common.errorState");
|
|
5443
5455
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
5444
5456
|
ErrorState,
|
|
5445
5457
|
{
|
|
@@ -5457,7 +5469,7 @@ function NoResultsState({
|
|
|
5457
5469
|
onClearFilters,
|
|
5458
5470
|
suggestions
|
|
5459
5471
|
}) {
|
|
5460
|
-
const t =
|
|
5472
|
+
const t = chunkY5VN4SPH_js.useTranslations("common.emptyState");
|
|
5461
5473
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "liquid-surface rounded-xl px-6 py-12 text-center", children: [
|
|
5462
5474
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5463
5475
|
framerMotion.motion.div,
|
|
@@ -5521,7 +5533,7 @@ function NoDataState({
|
|
|
5521
5533
|
onAction,
|
|
5522
5534
|
icon: CustomIcon
|
|
5523
5535
|
}) {
|
|
5524
|
-
const t =
|
|
5536
|
+
const t = chunkY5VN4SPH_js.useTranslations("common.emptyState");
|
|
5525
5537
|
const Icon = CustomIcon || HeroIcons.FolderOpenIcon;
|
|
5526
5538
|
const resolvedTitle = title || t("noDataTitle");
|
|
5527
5539
|
const resolvedMessage = message || t("noDataMessage");
|
|
@@ -5828,7 +5840,7 @@ function NotificationProvider({ children, appName = "Datatech" }) {
|
|
|
5828
5840
|
] });
|
|
5829
5841
|
}
|
|
5830
5842
|
function NotificationBellButton() {
|
|
5831
|
-
const t =
|
|
5843
|
+
const t = chunkY5VN4SPH_js.useTranslations("notifications");
|
|
5832
5844
|
const { history, historyOpen, openHistory } = useNotifications();
|
|
5833
5845
|
const totalCount = history.length;
|
|
5834
5846
|
if (historyOpen) return null;
|
|
@@ -5871,7 +5883,7 @@ function NotificationDrawer({
|
|
|
5871
5883
|
onRemove,
|
|
5872
5884
|
onClear
|
|
5873
5885
|
}) {
|
|
5874
|
-
const t =
|
|
5886
|
+
const t = chunkY5VN4SPH_js.useTranslations("notifications");
|
|
5875
5887
|
return /* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { children: open ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
5876
5888
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5877
5889
|
framerMotion.motion.div,
|
|
@@ -6695,11 +6707,11 @@ function ChipPicker({
|
|
|
6695
6707
|
}
|
|
6696
6708
|
}, [draft, commitDraft, items, removeUserCreated]);
|
|
6697
6709
|
if (isLoading) {
|
|
6698
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "p-4 text-center text-sm text-
|
|
6710
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "p-4 text-center text-sm text-slate-500 dark:text-slate-400", children: loadingLabel });
|
|
6699
6711
|
}
|
|
6700
6712
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
|
|
6701
6713
|
showActions && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
|
|
6702
|
-
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-xs text-
|
|
6714
|
+
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-xs text-slate-500 dark:text-slate-400", children: [
|
|
6703
6715
|
selectedIds.length,
|
|
6704
6716
|
" ",
|
|
6705
6717
|
selectedLabel
|
|
@@ -6714,13 +6726,13 @@ function ChipPicker({
|
|
|
6714
6726
|
children: selectAllLabel
|
|
6715
6727
|
}
|
|
6716
6728
|
),
|
|
6717
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-
|
|
6729
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-slate-400 dark:text-slate-500", children: "|" }),
|
|
6718
6730
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6719
6731
|
"button",
|
|
6720
6732
|
{
|
|
6721
6733
|
type: "button",
|
|
6722
6734
|
onClick: clearAll,
|
|
6723
|
-
className: "text-xs text-
|
|
6735
|
+
className: "text-xs text-slate-500 dark:text-slate-400 hover:text-slate-700 dark:hover:text-slate-200 focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:rounded",
|
|
6724
6736
|
children: clearLabel
|
|
6725
6737
|
}
|
|
6726
6738
|
)
|
|
@@ -6739,7 +6751,15 @@ function ChipPicker({
|
|
|
6739
6751
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
6740
6752
|
"span",
|
|
6741
6753
|
{
|
|
6742
|
-
|
|
6754
|
+
style: {
|
|
6755
|
+
// Crystal chrome — same recipe as Badge / StatusBadge /
|
|
6756
|
+
// ActiveFilterChips. Keeps every chip-shaped primitive
|
|
6757
|
+
// visually identical (translucent jewel, not flat tile).
|
|
6758
|
+
backdropFilter: "blur(12px) saturate(1.5)",
|
|
6759
|
+
WebkitBackdropFilter: "blur(12px) saturate(1.5)",
|
|
6760
|
+
boxShadow: "inset 0 1px 1.5px rgba(255,255,255,0.45), 0 1px 3px -1px rgba(15,23,42,0.12)"
|
|
6761
|
+
},
|
|
6762
|
+
className: `inline-flex items-center gap-1.5 rounded-full border text-xs font-medium transition ${isSelected ? `${style.bg} ${style.text} border-current/30 ring-2 ring-offset-1 ring-current` : "liquid-surface text-slate-700 hover:bg-white/55 dark:text-slate-200 dark:hover:bg-white/[0.10]"}`,
|
|
6743
6763
|
children: [
|
|
6744
6764
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
6745
6765
|
"label",
|
|
@@ -6776,7 +6796,7 @@ function ChipPicker({
|
|
|
6776
6796
|
item.id
|
|
6777
6797
|
);
|
|
6778
6798
|
}),
|
|
6779
|
-
allowCustom && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "inline-flex items-center gap-1 rounded-full border border-dashed border-slate-
|
|
6799
|
+
allowCustom && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "inline-flex items-center gap-1 rounded-full border border-dashed border-slate-400/50 bg-white/45 px-2 py-1 text-xs backdrop-blur-md dark:border-white/20 dark:bg-white/[0.06]", children: [
|
|
6780
6800
|
/* @__PURE__ */ jsxRuntime.jsx(HeroIcons.PlusIcon, { className: "h-3 w-3 text-slate-500 dark:text-slate-400", "aria-hidden": "true" }),
|
|
6781
6801
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6782
6802
|
"input",
|
|
@@ -6796,12 +6816,12 @@ function ChipPicker({
|
|
|
6796
6816
|
]
|
|
6797
6817
|
}
|
|
6798
6818
|
),
|
|
6799
|
-
items.length === 0 && !allowCustom && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "p-6 text-center text-sm text-
|
|
6819
|
+
items.length === 0 && !allowCustom && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "p-6 text-center text-sm text-slate-500 dark:text-slate-400", children: emptyLabel })
|
|
6800
6820
|
] });
|
|
6801
6821
|
}
|
|
6802
6822
|
var DEFAULT_COPYABLE_CLASSNAME = "liquid-surface-strong text-gray-500 dark:text-gray-400";
|
|
6803
6823
|
function CopyableId({ id, copyValue, label, className }) {
|
|
6804
|
-
const t =
|
|
6824
|
+
const t = chunkY5VN4SPH_js.useTranslations();
|
|
6805
6825
|
const [copied, setCopied] = React9.useState(false);
|
|
6806
6826
|
const valueToCopy = copyValue ?? id;
|
|
6807
6827
|
const handleCopy = async (e) => {
|
|
@@ -6927,8 +6947,8 @@ function DatePicker({
|
|
|
6927
6947
|
disableFuture = false,
|
|
6928
6948
|
className = ""
|
|
6929
6949
|
}) {
|
|
6930
|
-
const appLocale =
|
|
6931
|
-
const t =
|
|
6950
|
+
const appLocale = chunkY5VN4SPH_js.useLocale();
|
|
6951
|
+
const t = chunkY5VN4SPH_js.useTranslations("datePicker");
|
|
6932
6952
|
const dateFnsLocale = dateFnsLocales[appLocale] ?? locale.ptBR;
|
|
6933
6953
|
const [open, setOpen] = React9.useState(false);
|
|
6934
6954
|
const [viewMode, setViewMode] = React9.useState("days");
|
|
@@ -7194,7 +7214,7 @@ function TimePicker({
|
|
|
7194
7214
|
placeholder,
|
|
7195
7215
|
className = ""
|
|
7196
7216
|
}) {
|
|
7197
|
-
const t =
|
|
7217
|
+
const t = chunkY5VN4SPH_js.useTranslations("timePicker");
|
|
7198
7218
|
const [open, setOpen] = React9.useState(false);
|
|
7199
7219
|
const [draftHours, setDraftHours] = React9.useState(value ? value.hours : 0);
|
|
7200
7220
|
const [draftMinutes, setDraftMinutes] = React9.useState(value ? value.minutes : 0);
|
|
@@ -7394,7 +7414,7 @@ function PageHeading({
|
|
|
7394
7414
|
meta,
|
|
7395
7415
|
actions
|
|
7396
7416
|
}) {
|
|
7397
|
-
const t =
|
|
7417
|
+
const t = chunkY5VN4SPH_js.useTranslations("common");
|
|
7398
7418
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-6 lg:flex lg:items-start lg:justify-between", children: [
|
|
7399
7419
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
7400
7420
|
breadcrumbs?.length ? /* @__PURE__ */ jsxRuntime.jsx("nav", { "aria-label": t("breadcrumb"), className: "mb-2", children: /* @__PURE__ */ jsxRuntime.jsx("ol", { className: "flex items-center gap-2 text-xs text-gray-500 dark:text-gray-400", children: breadcrumbs.map((crumb, index) => /* @__PURE__ */ jsxRuntime.jsxs("li", { className: "flex items-center gap-2", children: [
|
|
@@ -8001,7 +8021,7 @@ function StepFormPage({
|
|
|
8001
8021
|
headerRight,
|
|
8002
8022
|
children
|
|
8003
8023
|
}) {
|
|
8004
|
-
const translation =
|
|
8024
|
+
const translation = chunkY5VN4SPH_js.useTranslations("forms");
|
|
8005
8025
|
const isLastStep = currentStep === steps.length - 1;
|
|
8006
8026
|
const isFirstStep = currentStep === 0;
|
|
8007
8027
|
const handleBack = () => {
|
|
@@ -8603,7 +8623,7 @@ function CardGridSkeleton({ count = 8, columns = 4 }) {
|
|
|
8603
8623
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: `grid ${gridCols[columns]} gap-3`, role: "status", "aria-label": "Loading content", children: Array.from({ length: count }).map((_, i) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
8604
8624
|
"div",
|
|
8605
8625
|
{
|
|
8606
|
-
className: "rounded-xl
|
|
8626
|
+
className: "liquid-surface rounded-xl p-4",
|
|
8607
8627
|
children: [
|
|
8608
8628
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3 mb-3", children: [
|
|
8609
8629
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "shimmer h-8 w-12 rounded" }),
|
|
@@ -8616,7 +8636,7 @@ function CardGridSkeleton({ count = 8, columns = 4 }) {
|
|
|
8616
8636
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "shimmer h-5 w-5 rounded-full" }),
|
|
8617
8637
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "shimmer h-4 w-20 rounded" })
|
|
8618
8638
|
] }),
|
|
8619
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "pt-3 border-t
|
|
8639
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "pt-3 border-t liquid-divider", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shimmer h-3 w-32 rounded" }) })
|
|
8620
8640
|
]
|
|
8621
8641
|
},
|
|
8622
8642
|
i
|
|
@@ -8626,7 +8646,7 @@ function RegionFilterSkeleton({ count = 9 }) {
|
|
|
8626
8646
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-4 sm:grid-cols-6 lg:grid-cols-9 gap-2", children: Array.from({ length: count }).map((_, i) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
8627
8647
|
"div",
|
|
8628
8648
|
{
|
|
8629
|
-
className: "rounded-lg
|
|
8649
|
+
className: "liquid-surface rounded-lg p-2 flex flex-col items-center gap-1",
|
|
8630
8650
|
children: [
|
|
8631
8651
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "shimmer h-6 w-9 rounded" }),
|
|
8632
8652
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "shimmer h-4 w-6 rounded" }),
|
|
@@ -8640,7 +8660,7 @@ function BrandFilterSkeleton({ count = 4 }) {
|
|
|
8640
8660
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid gap-3 grid-cols-2 sm:grid-cols-3 lg:grid-cols-4", children: Array.from({ length: count }).map((_, i) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
8641
8661
|
"div",
|
|
8642
8662
|
{
|
|
8643
|
-
className: "rounded-xl
|
|
8663
|
+
className: "liquid-surface rounded-xl p-3 flex items-center gap-3",
|
|
8644
8664
|
children: [
|
|
8645
8665
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "shimmer h-10 w-10 rounded-lg" }),
|
|
8646
8666
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 space-y-2", children: [
|
|
@@ -8658,9 +8678,9 @@ function AnalysisSkeleton() {
|
|
|
8658
8678
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "shimmer h-7 w-48 rounded" }),
|
|
8659
8679
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "shimmer h-4 w-96 rounded" })
|
|
8660
8680
|
] }),
|
|
8661
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-xl
|
|
8681
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "liquid-surface rounded-xl p-6 space-y-4", children: [
|
|
8662
8682
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-2", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shimmer h-10 w-32 rounded-lg" }) }),
|
|
8663
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-3", children: Array.from({ length: 3 }).map((_, i) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rounded-lg border border-
|
|
8683
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-3", children: Array.from({ length: 3 }).map((_, i) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rounded-lg border border-white/30 dark:border-white/10 p-4 bg-white/40 dark:bg-white/[0.04] backdrop-blur-sm", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
|
|
8664
8684
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "shimmer h-8 w-8 rounded-lg" }),
|
|
8665
8685
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 space-y-2", children: [
|
|
8666
8686
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "shimmer h-4 w-24 rounded" }),
|
|
@@ -8676,8 +8696,8 @@ function AnalysisSkeleton() {
|
|
|
8676
8696
|
}
|
|
8677
8697
|
|
|
8678
8698
|
// src/components/skeletons/shimmer.tsx
|
|
8679
|
-
var shimmerClass = "bg-gradient-to-r from-
|
|
8680
|
-
var shimmerWhiteClass = "bg-white/
|
|
8699
|
+
var shimmerClass = "bg-gradient-to-r from-slate-500/12 via-slate-500/24 to-slate-500/12 dark:from-white/8 dark:via-white/14 dark:to-white/8 animate-shimmer motion-reduce:animate-none bg-[length:200%_100%]";
|
|
8700
|
+
var shimmerWhiteClass = "bg-white/25 dark:bg-white/15 animate-pulse motion-reduce:animate-none backdrop-blur-sm";
|
|
8681
8701
|
function SectionHeaderSkeleton() {
|
|
8682
8702
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
|
|
8683
8703
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: `h-10 w-10 rounded-lg ${shimmerClass}` }),
|
|
@@ -8693,7 +8713,7 @@ function CookieConsent({
|
|
|
8693
8713
|
onAccept,
|
|
8694
8714
|
onReject
|
|
8695
8715
|
} = {}) {
|
|
8696
|
-
const t =
|
|
8716
|
+
const t = chunkY5VN4SPH_js.useTranslations("common.cookieConsent");
|
|
8697
8717
|
const [visible, setVisible] = React9.useState(false);
|
|
8698
8718
|
React9.useEffect(() => {
|
|
8699
8719
|
const consent = localStorage.getItem(storageKey);
|
|
@@ -9140,7 +9160,7 @@ function NavigationProgress() {
|
|
|
9140
9160
|
return /* @__PURE__ */ jsxRuntime.jsx(reactTransitionProgress.ProgressBar, { className: "fixed h-1 top-0 z-[200] bg-gradient-to-r from-indigo-500 via-purple-500 to-pink-500 shadow-lg shadow-purple-500/20" });
|
|
9141
9161
|
}
|
|
9142
9162
|
function PageLoadingState({ label, compact = false }) {
|
|
9143
|
-
const t =
|
|
9163
|
+
const t = chunkY5VN4SPH_js.useTranslations("common");
|
|
9144
9164
|
const resolvedLabel = label || t("loading");
|
|
9145
9165
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
9146
9166
|
"div",
|
|
@@ -9363,7 +9383,7 @@ function ImageUpload({
|
|
|
9363
9383
|
] });
|
|
9364
9384
|
}
|
|
9365
9385
|
function Breadcrumb({ pages, actions, centerContent, dashboardPath = "/dashboard" }) {
|
|
9366
|
-
const t =
|
|
9386
|
+
const t = chunkY5VN4SPH_js.useTranslations("common");
|
|
9367
9387
|
const currentPage = pages.find((page) => page.current) || pages[pages.length - 1];
|
|
9368
9388
|
const parentPage = pages.length > 1 ? pages[pages.length - 2] : null;
|
|
9369
9389
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -9433,16 +9453,28 @@ var APP_COLORS = {
|
|
|
9433
9453
|
astrlabe: "bg-sky-500/30 text-sky-100 ring-sky-400/30",
|
|
9434
9454
|
windsock: "bg-indigo-500/30 text-indigo-100 ring-indigo-400/30"
|
|
9435
9455
|
};
|
|
9456
|
+
function readEnv(key) {
|
|
9457
|
+
try {
|
|
9458
|
+
const viteEnv = undefined;
|
|
9459
|
+
if (viteEnv && viteEnv[key]) return viteEnv[key];
|
|
9460
|
+
} catch {
|
|
9461
|
+
}
|
|
9462
|
+
if (typeof process !== "undefined" && process.env) {
|
|
9463
|
+
return process.env[key];
|
|
9464
|
+
}
|
|
9465
|
+
return void 0;
|
|
9466
|
+
}
|
|
9436
9467
|
function detectApp() {
|
|
9437
|
-
const appName =
|
|
9468
|
+
const appName = readEnv("VITE_APP_NAME") ?? readEnv("NEXT_PUBLIC_APP_NAME") ?? readEnv("NEXT_PUBLIC_AUTH_CLIENT_ID") ?? "unknown";
|
|
9438
9469
|
const port = typeof window !== "undefined" ? window.location.port : "";
|
|
9439
|
-
const gateway =
|
|
9470
|
+
const gateway = readEnv("VITE_API_URL") ?? readEnv("NEXT_PUBLIC_API_GATEWAY_URL") ?? readEnv("NEXT_PUBLIC_LAMBDA_CLIENT_BASE") ?? "";
|
|
9440
9471
|
return { name: appName, port, gateway };
|
|
9441
9472
|
}
|
|
9442
9473
|
function DevModeBanner({
|
|
9443
9474
|
user,
|
|
9444
9475
|
devModeLabel = "DEV",
|
|
9445
|
-
devModeMessage = "Local development mode"
|
|
9476
|
+
devModeMessage = "Local development mode",
|
|
9477
|
+
forceShow = false
|
|
9446
9478
|
}) {
|
|
9447
9479
|
const [glassTest, setGlassTest] = React9.useState(false);
|
|
9448
9480
|
const toggleGlassTest = React9.useCallback(() => {
|
|
@@ -9451,7 +9483,7 @@ function DevModeBanner({
|
|
|
9451
9483
|
html.classList.toggle("glass-test", next);
|
|
9452
9484
|
setGlassTest(next);
|
|
9453
9485
|
}, [glassTest]);
|
|
9454
|
-
if (
|
|
9486
|
+
if (!forceShow && readEnv("VITE_DEV_MODE") !== "true" && readEnv("NEXT_PUBLIC_DEV_MODE") !== "true") {
|
|
9455
9487
|
return null;
|
|
9456
9488
|
}
|
|
9457
9489
|
const app = detectApp();
|
|
@@ -9634,30 +9666,31 @@ function FlyoutQuickActions({
|
|
|
9634
9666
|
onSignOut,
|
|
9635
9667
|
onClose
|
|
9636
9668
|
}) {
|
|
9637
|
-
const t =
|
|
9669
|
+
const t = chunkY5VN4SPH_js.useTranslations("common");
|
|
9638
9670
|
const isDark = resolvedTheme === "dark";
|
|
9639
9671
|
const handleAction = (action) => {
|
|
9640
9672
|
onClose?.();
|
|
9641
9673
|
action();
|
|
9642
9674
|
};
|
|
9675
|
+
const tileBase = "liquid-surface m-1 flex items-center justify-center gap-x-2 rounded-xl p-2.5 text-xs font-semibold sm:gap-x-2.5 sm:p-3 sm:text-sm text-slate-900 dark:text-white transition-all duration-200 hover:-translate-y-0.5 hover:shadow-md active:scale-[0.985] focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1";
|
|
9643
9676
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
9644
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mx-3 my-3 h-px bg-gradient-to-r from-transparent via-
|
|
9677
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mx-3 my-3 h-px bg-gradient-to-r from-transparent via-slate-200/80 to-transparent dark:via-white/10" }),
|
|
9645
9678
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-2 gap-1.5 sm:gap-2 px-1", children: [
|
|
9646
9679
|
onNotifications ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
9647
9680
|
"button",
|
|
9648
9681
|
{
|
|
9649
9682
|
type: "button",
|
|
9650
9683
|
onClick: () => handleAction(onNotifications),
|
|
9651
|
-
className:
|
|
9684
|
+
className: tileBase,
|
|
9652
9685
|
children: [
|
|
9653
|
-
/* @__PURE__ */ jsxRuntime.jsx(HeroIcons.BellIcon, { className: "size-5 flex-none text-slate-
|
|
9686
|
+
/* @__PURE__ */ jsxRuntime.jsx(HeroIcons.BellIcon, { className: "size-5 flex-none text-slate-500 dark:text-slate-300" }),
|
|
9654
9687
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate", children: t("notifications") }),
|
|
9655
9688
|
notificationCount > 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-flex min-w-[18px] items-center justify-center rounded-full bg-red-500 px-1 text-[10px] font-semibold text-white", children: notificationCount > 99 ? "99+" : notificationCount })
|
|
9656
9689
|
]
|
|
9657
9690
|
}
|
|
9658
9691
|
) : null,
|
|
9659
9692
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "liquid-surface m-1 flex items-center justify-center gap-x-2 rounded-xl p-2.5 text-xs font-semibold sm:gap-x-2.5 sm:p-3 sm:text-sm text-slate-900 dark:text-white", children: [
|
|
9660
|
-
isDark ? /* @__PURE__ */ jsxRuntime.jsx(HeroIcons.MoonIcon, { className: "size-5 flex-none text-slate-
|
|
9693
|
+
isDark ? /* @__PURE__ */ jsxRuntime.jsx(HeroIcons.MoonIcon, { className: "size-5 flex-none text-slate-500 dark:text-slate-300" }) : /* @__PURE__ */ jsxRuntime.jsx(HeroIcons.SunIcon, { className: "size-5 flex-none text-slate-500 dark:text-slate-300" }),
|
|
9661
9694
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate", children: t("theme") }),
|
|
9662
9695
|
/* @__PURE__ */ jsxRuntime.jsx(ThemeSwitch, { checked: isDark, onChange: onToggleTheme, label: t("theme") })
|
|
9663
9696
|
] }),
|
|
@@ -9666,9 +9699,9 @@ function FlyoutQuickActions({
|
|
|
9666
9699
|
{
|
|
9667
9700
|
type: "button",
|
|
9668
9701
|
onClick: () => handleAction(onProfile),
|
|
9669
|
-
className:
|
|
9702
|
+
className: tileBase,
|
|
9670
9703
|
children: [
|
|
9671
|
-
userInitial ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-flex h-5 w-5 items-center justify-center rounded-full bg-slate-
|
|
9704
|
+
userInitial ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-flex h-5 w-5 items-center justify-center rounded-full bg-slate-500/15 text-[10px] font-semibold text-slate-700 dark:bg-white/15 dark:text-slate-100", children: userInitial }) : /* @__PURE__ */ jsxRuntime.jsx(HeroIcons.UserCircleIcon, { className: "size-5 flex-none text-slate-500 dark:text-slate-300" }),
|
|
9672
9705
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate", children: userName || t("profile") })
|
|
9673
9706
|
]
|
|
9674
9707
|
}
|
|
@@ -9678,9 +9711,9 @@ function FlyoutQuickActions({
|
|
|
9678
9711
|
{
|
|
9679
9712
|
type: "button",
|
|
9680
9713
|
onClick: () => handleAction(onSignOut),
|
|
9681
|
-
className: "liquid-button liquid-button-red m-1 flex items-center justify-center gap-x-2 rounded-xl p-2.5 text-xs font-semibold sm:gap-x-2.5 sm:p-3 sm:text-sm text-red-
|
|
9714
|
+
className: "liquid-button liquid-button-red m-1 flex items-center justify-center gap-x-2 rounded-xl p-2.5 text-xs font-semibold sm:gap-x-2.5 sm:p-3 sm:text-sm text-red-700 dark:text-red-300 transition-all duration-200 hover:-translate-y-0.5 hover:shadow-md active:scale-[0.985] focus:outline-none focus-visible:ring-2 focus-visible:ring-red-500/70 focus-visible:ring-offset-1",
|
|
9682
9715
|
children: [
|
|
9683
|
-
/* @__PURE__ */ jsxRuntime.jsx(HeroIcons.ArrowRightOnRectangleIcon, { className: "size-5 flex-none text-
|
|
9716
|
+
/* @__PURE__ */ jsxRuntime.jsx(HeroIcons.ArrowRightOnRectangleIcon, { className: "size-5 flex-none text-red-600/70 dark:text-red-300/80" }),
|
|
9684
9717
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate", children: t("signOut") })
|
|
9685
9718
|
]
|
|
9686
9719
|
}
|
|
@@ -9696,7 +9729,7 @@ function FlyoutNavGrid({
|
|
|
9696
9729
|
getAccentRgb,
|
|
9697
9730
|
searchFocusRingClass = "focus-ring-indigo"
|
|
9698
9731
|
}) {
|
|
9699
|
-
const t =
|
|
9732
|
+
const t = chunkY5VN4SPH_js.useTranslations("common");
|
|
9700
9733
|
const [query, setQuery] = React9.useState("");
|
|
9701
9734
|
const isCurrentPath = (href) => href === "/dashboard" ? currentPath === "/dashboard" : currentPath.startsWith(href);
|
|
9702
9735
|
const normalizedQuery = query.trim().toLowerCase();
|
|
@@ -9727,7 +9760,7 @@ function FlyoutNavGrid({
|
|
|
9727
9760
|
{
|
|
9728
9761
|
type: "button",
|
|
9729
9762
|
onClick: () => item.onClick ? item.onClick() : onNavigate(item.href),
|
|
9730
|
-
className: `group relative flex w-full items-start gap-x-3 sm:gap-x-4 rounded-xl sm:rounded-2xl p-2.5 sm:p-3 text-left transition ${isSelected ? "selected liquid-surface liquid-surface-active" : `liquid-surface hover:shadow-md ${item.hoverClass ?? ""}`}`,
|
|
9763
|
+
className: `group relative flex w-full items-start gap-x-3 sm:gap-x-4 rounded-xl sm:rounded-2xl p-2.5 sm:p-3 text-left transition-all duration-200 focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1 active:scale-[0.985] ${isSelected ? "selected liquid-surface liquid-surface-active shadow-md" : `liquid-surface hover:-translate-y-0.5 hover:shadow-md ${item.hoverClass ?? ""}`}`,
|
|
9731
9764
|
style: isSelected && getAccentRgb ? { "--glass-accent": getAccentRgb(item.href) } : void 0,
|
|
9732
9765
|
children: [
|
|
9733
9766
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative mt-0.5 flex h-11 w-11 sm:h-14 sm:w-14 flex-none items-center justify-center overflow-hidden rounded-xl sm:rounded-2xl border border-white/40 bg-white/35 shadow-[inset_0_1px_0_rgba(255,255,255,0.85),0_12px_20px_-14px_rgba(15,23,42,0.55)] dark:border-white/14 dark:bg-white/10 dark:shadow-[inset_0_1px_0_rgba(255,255,255,0.2),0_12px_22px_-16px_rgba(0,0,0,0.8)]", children: [
|
|
@@ -9885,8 +9918,8 @@ function MonthPicker({
|
|
|
9885
9918
|
side = "bottom",
|
|
9886
9919
|
avoidCollisions = true
|
|
9887
9920
|
}) {
|
|
9888
|
-
const locale$1 =
|
|
9889
|
-
const t =
|
|
9921
|
+
const locale$1 = chunkY5VN4SPH_js.useLocale();
|
|
9922
|
+
const t = chunkY5VN4SPH_js.useTranslations("common");
|
|
9890
9923
|
const dateFnsLocale = dateFnsLocales2[locale$1] || locale.ptBR;
|
|
9891
9924
|
const months = React9__namespace.useMemo(() => getLocalizedMonths(dateFnsLocale), [dateFnsLocale]);
|
|
9892
9925
|
const defaultPlaceholder = t("selectMonth");
|
|
@@ -10765,7 +10798,7 @@ function StatusToggle({
|
|
|
10765
10798
|
onIcon,
|
|
10766
10799
|
className
|
|
10767
10800
|
}) {
|
|
10768
|
-
const translation =
|
|
10801
|
+
const translation = chunkY5VN4SPH_js.useTranslations("common");
|
|
10769
10802
|
const resolvedOffLabel = offLabel ?? translation("inactive");
|
|
10770
10803
|
const resolvedOnLabel = onLabel ?? translation("active");
|
|
10771
10804
|
const resolvedOffIcon = offIcon ?? /* @__PURE__ */ jsxRuntime.jsx(HeroIcons.XCircleIcon, { className: "h-4 w-4" });
|
|
@@ -11206,7 +11239,7 @@ function OtpInput({
|
|
|
11206
11239
|
autoFocus = false,
|
|
11207
11240
|
inputMode = "numeric"
|
|
11208
11241
|
}) {
|
|
11209
|
-
const t =
|
|
11242
|
+
const t = chunkY5VN4SPH_js.useTranslations("auth");
|
|
11210
11243
|
const groupId = React9.useId();
|
|
11211
11244
|
const inputsRef = React9.useRef([]);
|
|
11212
11245
|
const digits = value.split("").concat(Array(length).fill("")).slice(0, length);
|
|
@@ -11381,7 +11414,7 @@ function PasswordStrengthMeter({
|
|
|
11381
11414
|
policy = DEFAULT_POLICY,
|
|
11382
11415
|
showRequirements = false
|
|
11383
11416
|
}) {
|
|
11384
|
-
const t =
|
|
11417
|
+
const t = chunkY5VN4SPH_js.useTranslations("auth");
|
|
11385
11418
|
const requirements = React9.useMemo(
|
|
11386
11419
|
() => evaluateRequirements(password, policy),
|
|
11387
11420
|
[password, policy]
|
|
@@ -11434,7 +11467,7 @@ function BackupCodeGrid({
|
|
|
11434
11467
|
revealed = true,
|
|
11435
11468
|
onReveal
|
|
11436
11469
|
}) {
|
|
11437
|
-
const t =
|
|
11470
|
+
const t = chunkY5VN4SPH_js.useTranslations("auth");
|
|
11438
11471
|
const handleCopyAll = React9.useCallback(async () => {
|
|
11439
11472
|
const text = codes.join("\n");
|
|
11440
11473
|
await navigator.clipboard.writeText(text);
|
|
@@ -11519,7 +11552,7 @@ function SocialLoginButtons({
|
|
|
11519
11552
|
loading = null,
|
|
11520
11553
|
disabled = false
|
|
11521
11554
|
}) {
|
|
11522
|
-
const t =
|
|
11555
|
+
const t = chunkY5VN4SPH_js.useTranslations("auth");
|
|
11523
11556
|
const isColumn = layout === "column";
|
|
11524
11557
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: `flex ${isColumn ? "flex-col" : "flex-row"} gap-2`, children: providers.map((provider) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
11525
11558
|
chunkBHOT22QL_js.Button,
|
|
@@ -19545,7 +19578,11 @@ var usePlatformShellStore = zustand.create((set, get) => ({
|
|
|
19545
19578
|
locale: "en",
|
|
19546
19579
|
theme: "system",
|
|
19547
19580
|
resolvedTheme: "dark",
|
|
19548
|
-
|
|
19581
|
+
// Canonical default — floating iOS-style dock at the bottom of
|
|
19582
|
+
// the viewport for non-launchpad / "standard content" pages.
|
|
19583
|
+
// User preference (`Settings → Preferences → Dock position`)
|
|
19584
|
+
// overrides per-user once set.
|
|
19585
|
+
dockPosition: "bottom",
|
|
19549
19586
|
dockAutoHide: false,
|
|
19550
19587
|
dockEnabled: true
|
|
19551
19588
|
},
|
|
@@ -19613,7 +19650,13 @@ function PlatformShell({
|
|
|
19613
19650
|
user,
|
|
19614
19651
|
authStatus,
|
|
19615
19652
|
onSignOut,
|
|
19616
|
-
|
|
19653
|
+
// `bottom` is the canonical default for "standard content" pages
|
|
19654
|
+
// (every non-launchpad route) — the dock floats at the bottom of
|
|
19655
|
+
// the viewport like an iOS home dock. User preference (`Settings →
|
|
19656
|
+
// Preferences → Dock position`) can override per-user; the
|
|
19657
|
+
// PlatformShell store also defaults to `bottom` to keep first-time
|
|
19658
|
+
// users on the canonical layout.
|
|
19659
|
+
dockPosition = "bottom",
|
|
19617
19660
|
dockAutoHide = false,
|
|
19618
19661
|
dockEnabled = true,
|
|
19619
19662
|
resolvedTheme,
|
|
@@ -20759,5 +20802,5 @@ exports.useSocialProviders = useSocialProviders;
|
|
|
20759
20802
|
exports.validateDashboardSpec = validateDashboardSpec;
|
|
20760
20803
|
exports.xScale = xScale;
|
|
20761
20804
|
exports.yScale = yScale;
|
|
20762
|
-
//# sourceMappingURL=chunk-
|
|
20763
|
-
//# sourceMappingURL=chunk-
|
|
20805
|
+
//# sourceMappingURL=chunk-5ETT54QS.js.map
|
|
20806
|
+
//# sourceMappingURL=chunk-5ETT54QS.js.map
|