@datatechsolutions/ui 2.7.133 → 2.7.135

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.
@@ -5877,92 +5877,134 @@ function FilterBadge({ count }) {
5877
5877
  function FeedItemCard({ children, className = "" }) {
5878
5878
  return /* @__PURE__ */ jsxRuntime.jsx("li", { className: `overflow-hidden rounded-2xl border shadow-sm transition-shadow hover:shadow-md ${className}`, children });
5879
5879
  }
5880
- var MAX_WIDTH_CLASSES = {
5881
- sm: "max-w-full sm:max-w-sm",
5882
- md: "max-w-full sm:max-w-md",
5883
- lg: "max-w-full sm:max-w-lg",
5884
- xl: "max-w-full sm:max-w-xl",
5885
- "2xl": "max-w-full sm:max-w-2xl",
5886
- "3xl": "max-w-full sm:max-w-3xl",
5887
- "4xl": "max-w-full sm:max-w-4xl",
5888
- "5xl": "max-w-full sm:max-w-5xl"
5880
+ var SIZE_CLASSES2 = {
5881
+ sm: "max-w-sm",
5882
+ md: "max-w-md",
5883
+ lg: "max-w-lg",
5884
+ xl: "max-w-xl",
5885
+ "2xl": "max-w-2xl",
5886
+ "3xl": "max-w-3xl",
5887
+ "4xl": "max-w-4xl",
5888
+ "5xl": "max-w-5xl",
5889
+ "6xl": "max-w-6xl",
5890
+ full: "max-w-[90vw]"
5889
5891
  };
5890
- function FormModal({
5892
+ function GlassModalShell({
5891
5893
  open,
5892
5894
  onClose,
5895
+ gradient,
5896
+ icon,
5897
+ label,
5893
5898
  title,
5894
5899
  subtitle,
5895
- icon,
5900
+ headerActions,
5896
5901
  children,
5897
- maxWidth = "4xl",
5898
- onSubmit,
5899
5902
  footer,
5900
- showFooter = true,
5901
- cancelLabel,
5902
- submitLabel,
5903
- isLoading = false,
5904
- submitDisabled = false
5903
+ onSubmit,
5904
+ maxWidth = "4xl",
5905
+ closeLabel = "Close",
5906
+ className = ""
5905
5907
  }) {
5906
- const handleSubmit = (e) => {
5907
- e.preventDefault();
5908
- onSubmit?.(e);
5908
+ const handleSubmit = (event) => {
5909
+ event.preventDefault();
5910
+ onSubmit?.(event);
5909
5911
  };
5910
- const content = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
5911
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "liquid-surface shrink-0 border-b border-white/30 dark:border-white/10 rounded-t-2xl", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "px-4 sm:px-6 py-3 sm:py-4 flex items-center justify-between", children: [
5912
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
5913
- icon && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-shrink-0", children: icon }),
5914
- /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
5915
- /* @__PURE__ */ jsxRuntime.jsx(Headless6.DialogTitle, { className: "text-base sm:text-lg font-semibold text-slate-900 dark:text-white", children: title }),
5916
- subtitle && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs sm:text-sm text-slate-500 dark:text-slate-400 mt-0.5", children: subtitle })
5917
- ] })
5918
- ] }),
5919
- /* @__PURE__ */ jsxRuntime.jsx(
5920
- IconButton,
5921
- {
5922
- icon: /* @__PURE__ */ jsxRuntime.jsx(HeroIcons.XMarkIcon, { className: "w-5 h-5" }),
5923
- label: "Close",
5924
- onClick: onClose,
5925
- variant: "ghost"
5926
- }
5927
- )
5928
- ] }) }),
5929
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1 overflow-y-auto", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-4 sm:px-6 py-4 sm:py-6", children }) }),
5930
- showFooter && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "liquid-surface shrink-0 border-t border-white/30 dark:border-white/10 rounded-b-2xl", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-4 sm:px-6 py-3 sm:py-4 flex flex-col sm:flex-row justify-end gap-2 sm:gap-3", children: footer || /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
5912
+ const inner = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
5913
+ gradient && /* @__PURE__ */ jsxRuntime.jsx("div", { className: `h-1.5 w-full bg-gradient-to-r ${gradient}` }),
5914
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative px-5 pb-4 pt-5 sm:px-8 sm:pt-6", children: [
5931
5915
  /* @__PURE__ */ jsxRuntime.jsx(
5932
- Button,
5916
+ "button",
5933
5917
  {
5934
5918
  type: "button",
5935
5919
  onClick: onClose,
5936
- disabled: isLoading,
5937
- outline: true,
5938
- className: "w-full sm:w-auto",
5939
- children: cancelLabel
5920
+ "aria-label": closeLabel,
5921
+ className: "absolute right-4 top-4 inline-flex h-9 w-9 items-center justify-center rounded-xl text-slate-400 transition hover:bg-white/40 hover:text-slate-700 dark:hover:bg-white/[0.08] dark:hover:text-white",
5922
+ children: /* @__PURE__ */ jsxRuntime.jsx(HeroIcons.XMarkIcon, { className: "h-5 w-5" })
5940
5923
  }
5941
5924
  ),
5942
- /* @__PURE__ */ jsxRuntime.jsx(
5943
- Button,
5944
- {
5945
- type: "submit",
5946
- disabled: submitDisabled,
5947
- loading: isLoading,
5948
- loadingText: submitLabel,
5949
- color: "ios-glass-blue",
5950
- className: "w-full sm:w-auto",
5951
- children: submitLabel
5952
- }
5953
- )
5954
- ] }) }) })
5925
+ (icon || label) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-2 flex items-center gap-2 text-slate-600 dark:text-white/70", children: [
5926
+ icon,
5927
+ label && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-medium", children: label })
5928
+ ] }),
5929
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-start justify-between gap-3 pr-10", children: [
5930
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
5931
+ /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-xl font-bold text-slate-900 dark:text-white sm:text-2xl", children: title }),
5932
+ subtitle && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-sm text-slate-500 dark:text-slate-400", children: subtitle })
5933
+ ] }),
5934
+ headerActions && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-2", children: headerActions })
5935
+ ] })
5936
+ ] }),
5937
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-h-[72vh] overflow-y-auto px-5 pb-5 sm:px-8 sm:pb-8", children }),
5938
+ footer && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "border-t border-white/20 px-5 py-4 dark:border-white/10 sm:px-8", children: footer })
5955
5939
  ] });
5956
- return /* @__PURE__ */ jsxRuntime.jsxs(Headless6.Dialog, { open, onClose, className: "relative z-50", children: [
5957
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "fixed inset-0 bg-black/50 backdrop-blur-sm" }),
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
- Headless6.DialogPanel,
5940
+ return /* @__PURE__ */ jsxRuntime.jsx(
5941
+ GlassModal,
5942
+ {
5943
+ open,
5944
+ onClose,
5945
+ contentClassName: "fixed inset-0 overflow-y-auto p-3 sm:p-6",
5946
+ panelClassName: `liquid-surface-strong w-full overflow-hidden rounded-2xl mx-auto mt-[4vh] sm:mt-[8vh] ${SIZE_CLASSES2[maxWidth]} ${className}`,
5947
+ children: onSubmit ? /* @__PURE__ */ jsxRuntime.jsx("form", { onSubmit: handleSubmit, children: inner }) : inner
5948
+ }
5949
+ );
5950
+ }
5951
+ function FormModal({
5952
+ open,
5953
+ onClose,
5954
+ title,
5955
+ subtitle,
5956
+ icon,
5957
+ children,
5958
+ maxWidth = "4xl",
5959
+ onSubmit,
5960
+ footer,
5961
+ showFooter = true,
5962
+ cancelLabel,
5963
+ submitLabel,
5964
+ isLoading = false,
5965
+ submitDisabled = false,
5966
+ gradient
5967
+ }) {
5968
+ const defaultFooter = showFooter ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col sm:flex-row justify-end gap-2 sm:gap-3", children: footer || /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
5969
+ /* @__PURE__ */ jsxRuntime.jsx(
5970
+ Button,
5971
+ {
5972
+ type: "button",
5973
+ onClick: onClose,
5974
+ disabled: isLoading,
5975
+ outline: true,
5976
+ className: "w-full sm:w-auto",
5977
+ children: cancelLabel
5978
+ }
5979
+ ),
5980
+ /* @__PURE__ */ jsxRuntime.jsx(
5981
+ Button,
5960
5982
  {
5961
- className: `liquid-surface-strong w-full h-full ${MAX_WIDTH_CLASSES[maxWidth]} flex flex-col rounded-2xl overflow-hidden`,
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 })
5983
+ type: "submit",
5984
+ disabled: submitDisabled,
5985
+ loading: isLoading,
5986
+ loadingText: submitLabel,
5987
+ color: "ios-glass-blue",
5988
+ className: "w-full sm:w-auto",
5989
+ children: submitLabel
5963
5990
  }
5964
- ) })
5965
- ] });
5991
+ )
5992
+ ] }) }) : void 0;
5993
+ return /* @__PURE__ */ jsxRuntime.jsx(
5994
+ GlassModalShell,
5995
+ {
5996
+ open,
5997
+ onClose,
5998
+ title,
5999
+ subtitle,
6000
+ icon,
6001
+ gradient,
6002
+ maxWidth,
6003
+ onSubmit,
6004
+ footer: defaultFooter,
6005
+ children
6006
+ }
6007
+ );
5966
6008
  }
5967
6009
  function ContextMenu({
5968
6010
  position,
@@ -13962,6 +14004,7 @@ exports.FormToggle = FormToggle;
13962
14004
  exports.GeoMapCanvas = GeoMapCanvas;
13963
14005
  exports.GeoMapLegend = GeoMapLegend;
13964
14006
  exports.GlassModal = GlassModal;
14007
+ exports.GlassModalShell = GlassModalShell;
13965
14008
  exports.Gradient = Gradient;
13966
14009
  exports.GradientBackground = GradientBackground;
13967
14010
  exports.GrowthIndicator = GrowthIndicator;
@@ -14170,5 +14213,5 @@ exports.useGeoMapState = useGeoMapState;
14170
14213
  exports.useNotifications = useNotifications;
14171
14214
  exports.usePlatformShellStore = usePlatformShellStore;
14172
14215
  exports.usePullToRefresh = usePullToRefresh;
14173
- //# sourceMappingURL=chunk-W224TQQY.js.map
14174
- //# sourceMappingURL=chunk-W224TQQY.js.map
14216
+ //# sourceMappingURL=chunk-JJTJLDBQ.js.map
14217
+ //# sourceMappingURL=chunk-JJTJLDBQ.js.map