@datatechsolutions/ui 2.9.0 → 2.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
+ var chunkS7KHTUHA_js = require('./chunk-S7KHTUHA.js');
4
5
  var chunkUZ3CMNUJ_js = require('./chunk-UZ3CMNUJ.js');
5
6
  var chunkYXN2K77G_js = require('./chunk-YXN2K77G.js');
6
- var chunkS7KHTUHA_js = require('./chunk-S7KHTUHA.js');
7
7
  var Headless6 = require('@headlessui/react');
8
8
  var clsx = require('clsx');
9
9
  var React12 = require('react');
@@ -9790,6 +9790,118 @@ function PageEmptyState({ title, message, iconName, customIcon }) {
9790
9790
  }
9791
9791
  );
9792
9792
  }
9793
+ function PageErrorState({
9794
+ statusCode = 500,
9795
+ title,
9796
+ message,
9797
+ onRetry,
9798
+ retryLabel = "Retry",
9799
+ customIcon
9800
+ }) {
9801
+ const prefersReducedMotion2 = framerMotion.useReducedMotion();
9802
+ const noMotion = { opacity: 1, scale: 1, y: 0 };
9803
+ const noTransition = { duration: 0 };
9804
+ return /* @__PURE__ */ jsxRuntime.jsx(
9805
+ "div",
9806
+ {
9807
+ role: "alert",
9808
+ "aria-label": title,
9809
+ "data-testid": "error-state",
9810
+ className: "flex items-center justify-center py-20",
9811
+ children: /* @__PURE__ */ jsxRuntime.jsxs(
9812
+ framerMotion.motion.div,
9813
+ {
9814
+ initial: prefersReducedMotion2 ? false : { opacity: 0, scale: 0.95 },
9815
+ animate: prefersReducedMotion2 ? noMotion : { opacity: 1, scale: 1 },
9816
+ transition: prefersReducedMotion2 ? noTransition : springPresets.gentle,
9817
+ className: "liquid-surface w-full max-w-lg rounded-2xl px-8 py-14 text-center",
9818
+ children: [
9819
+ /* @__PURE__ */ jsxRuntime.jsx(
9820
+ framerMotion.motion.div,
9821
+ {
9822
+ initial: prefersReducedMotion2 ? false : { scale: 0.6, opacity: 0 },
9823
+ animate: prefersReducedMotion2 ? noMotion : { scale: 1, opacity: 1 },
9824
+ transition: prefersReducedMotion2 ? noTransition : springPresets.bouncy,
9825
+ className: "mx-auto mb-6",
9826
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "inline-flex h-20 w-20 items-center justify-center rounded-full backdrop-blur-md border bg-red-50/80 dark:bg-red-900/30 border-red-100/50 dark:border-red-800/30", children: customIcon ?? /* @__PURE__ */ jsxRuntime.jsx(HeroIcons.ExclamationTriangleIcon, { className: "h-10 w-10 text-red-500 dark:text-red-400" }) })
9827
+ }
9828
+ ),
9829
+ /* @__PURE__ */ jsxRuntime.jsx(
9830
+ framerMotion.motion.p,
9831
+ {
9832
+ initial: prefersReducedMotion2 ? false : { y: 12, opacity: 0 },
9833
+ animate: prefersReducedMotion2 ? noMotion : { y: 0, opacity: 1 },
9834
+ transition: prefersReducedMotion2 ? noTransition : { ...springPresets.default, delay: 0.05 },
9835
+ className: "mb-1 text-sm font-semibold tracking-widest text-red-500 dark:text-red-400",
9836
+ children: statusCode
9837
+ }
9838
+ ),
9839
+ /* @__PURE__ */ jsxRuntime.jsx(
9840
+ framerMotion.motion.h3,
9841
+ {
9842
+ "data-testid": "error-state-title",
9843
+ initial: prefersReducedMotion2 ? false : { y: 12, opacity: 0 },
9844
+ animate: prefersReducedMotion2 ? noMotion : { y: 0, opacity: 1 },
9845
+ transition: prefersReducedMotion2 ? noTransition : { ...springPresets.default, delay: 0.1 },
9846
+ className: "text-xl font-semibold text-gray-900 dark:text-white",
9847
+ children: title
9848
+ }
9849
+ ),
9850
+ /* @__PURE__ */ jsxRuntime.jsx(
9851
+ framerMotion.motion.p,
9852
+ {
9853
+ "data-testid": "error-state-message",
9854
+ initial: prefersReducedMotion2 ? false : { y: 12, opacity: 0 },
9855
+ animate: prefersReducedMotion2 ? noMotion : { y: 0, opacity: 1 },
9856
+ transition: prefersReducedMotion2 ? noTransition : { ...springPresets.default, delay: 0.15 },
9857
+ className: "mt-3 text-sm text-gray-500 dark:text-gray-400 max-w-sm mx-auto leading-relaxed",
9858
+ children: message
9859
+ }
9860
+ ),
9861
+ onRetry && /* @__PURE__ */ jsxRuntime.jsx(
9862
+ framerMotion.motion.div,
9863
+ {
9864
+ initial: prefersReducedMotion2 ? false : { y: 12, opacity: 0 },
9865
+ animate: prefersReducedMotion2 ? noMotion : { y: 0, opacity: 1 },
9866
+ transition: prefersReducedMotion2 ? noTransition : { ...springPresets.default, delay: 0.25 },
9867
+ className: "mt-8",
9868
+ children: /* @__PURE__ */ jsxRuntime.jsx(
9869
+ "button",
9870
+ {
9871
+ type: "button",
9872
+ onClick: onRetry,
9873
+ "data-testid": "error-state-retry",
9874
+ className: "rounded-xl bg-red-600 px-6 py-2.5 text-sm font-semibold text-white shadow-lg shadow-red-500/20 transition-all hover:bg-red-700 hover:shadow-red-500/30 active:scale-[0.97] dark:bg-red-500 dark:hover:bg-red-600 dark:shadow-red-500/10",
9875
+ children: retryLabel
9876
+ }
9877
+ )
9878
+ }
9879
+ ),
9880
+ !onRetry && /* @__PURE__ */ jsxRuntime.jsx(
9881
+ framerMotion.motion.div,
9882
+ {
9883
+ initial: prefersReducedMotion2 ? false : { opacity: 0 },
9884
+ animate: prefersReducedMotion2 ? noMotion : { opacity: 1 },
9885
+ transition: prefersReducedMotion2 ? noTransition : { delay: 0.3 },
9886
+ className: "mt-8 flex items-center justify-center gap-1.5",
9887
+ children: [0, 1, 2].map((i3) => /* @__PURE__ */ jsxRuntime.jsx(
9888
+ framerMotion.motion.div,
9889
+ {
9890
+ initial: prefersReducedMotion2 ? false : { scale: 0 },
9891
+ animate: prefersReducedMotion2 ? noMotion : { scale: 1 },
9892
+ transition: prefersReducedMotion2 ? noTransition : { ...springPresets.bouncy, delay: 0.35 + i3 * 0.08 },
9893
+ className: "h-1.5 w-1.5 rounded-full bg-red-300 dark:bg-red-700"
9894
+ },
9895
+ i3
9896
+ ))
9897
+ }
9898
+ )
9899
+ ]
9900
+ }
9901
+ )
9902
+ }
9903
+ );
9904
+ }
9793
9905
  var WINDSOCK_LOADER = { gradient: "from-emerald-500 to-teal-600", accentRing: "ring-emerald-500/30" };
9794
9906
  var FUEL_PRICE_LOADER = { gradient: "from-blue-500 to-indigo-600", accentRing: "ring-blue-500/30" };
9795
9907
  var KORI_ERP_LOADER = { gradient: "from-purple-500 to-violet-600", accentRing: "ring-purple-500/30" };
@@ -12109,7 +12221,7 @@ function GeoMapCanvasInner({
12109
12221
  const r3 = parseInt(hexColor.slice(1, 3), 16);
12110
12222
  const g3 = parseInt(hexColor.slice(3, 5), 16);
12111
12223
  const b2 = parseInt(hexColor.slice(5, 7), 16);
12112
- return `rgba(${r3}, ${g3}, ${b2}, 0.25)`;
12224
+ return `rgba(${r3}, ${g3}, ${b2}, 0.35)`;
12113
12225
  };
12114
12226
  const lighterColors = React12.useMemo(() => {
12115
12227
  const colors3 = /* @__PURE__ */ new Map();
@@ -12203,15 +12315,8 @@ function GeoMapCanvasInner({
12203
12315
  onRegionClick(regionCode);
12204
12316
  }
12205
12317
  },
12206
- fill: hasItems ? isHovered ? regionColor : isActive ? regionColor : lighterColors.get(regionCode) || getLighterColor(regionColor) : (() => {
12207
- const c2 = regionColorMap.get(regionCode);
12208
- if (!c2 || !c2.startsWith("#") || c2.length < 7) return MAP_DEFAULT_STATE_COLOR;
12209
- const r3 = parseInt(c2.slice(1, 3), 16);
12210
- const g3 = parseInt(c2.slice(3, 5), 16);
12211
- const b2 = parseInt(c2.slice(5, 7), 16);
12212
- return `rgba(${r3}, ${g3}, ${b2}, 0.10)`;
12213
- })(),
12214
- stroke: isActive ? "#fff" : isDimmed ? "rgba(148, 163, 184, 0.2)" : "rgba(255, 255, 255, 0.4)",
12318
+ fill: hasItems ? isHovered ? regionColor : isActive ? regionColor : lighterColors.get(regionCode) || getLighterColor(regionColor) : MAP_DEFAULT_STATE_COLOR,
12319
+ stroke: isActive ? "#fff" : isDimmed ? "rgba(148, 163, 184, 0.15)" : "rgba(255, 255, 255, 0.5)",
12215
12320
  strokeWidth: (isActive ? 2.5 : 0.5) / zoom,
12216
12321
  filter: isActive ? "url(#glow-active)" : isDimmed ? "url(#inactive-dim)" : void 0,
12217
12322
  opacity: isDimmed ? 0.45 : 1,
@@ -23359,6 +23464,7 @@ exports.PORTUGAL_MACRO_REGIONS = PORTUGAL_MACRO_REGIONS;
23359
23464
  exports.PORTUGAL_MAP_CENTER = PORTUGAL_MAP_CENTER;
23360
23465
  exports.PT_THEME_CONFIG = PT_THEME_CONFIG;
23361
23466
  exports.PageEmptyState = PageEmptyState;
23467
+ exports.PageErrorState = PageErrorState;
23362
23468
  exports.PageHeader = PageHeader;
23363
23469
  exports.PageHeading = PageHeading;
23364
23470
  exports.PageIndicator = PageIndicator;
@@ -23765,5 +23871,5 @@ exports.useGeoMapState = useGeoMapState;
23765
23871
  exports.useNotifications = useNotifications;
23766
23872
  exports.usePlatformShellStore = usePlatformShellStore;
23767
23873
  exports.usePullToRefresh = usePullToRefresh;
23768
- //# sourceMappingURL=chunk-HSANA5YY.js.map
23769
- //# sourceMappingURL=chunk-HSANA5YY.js.map
23874
+ //# sourceMappingURL=chunk-JFE7Y7RJ.js.map
23875
+ //# sourceMappingURL=chunk-JFE7Y7RJ.js.map