@umami/react-zen 0.220.0 → 0.221.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/index.mjs CHANGED
@@ -32521,10 +32521,55 @@ function Container({
32521
32521
  }
32522
32522
 
32523
32523
  // src/components/DataCard.tsx
32524
- import { Fragment as Fragment6 } from "react";
32524
+ import { Fragment as Fragment7 } from "react";
32525
32525
 
32526
32526
  // src/components/Grid.tsx
32527
- import { jsx as jsx26 } from "react/jsx-runtime";
32527
+ import { useId as useId2 } from "react";
32528
+ import { Fragment as Fragment6, jsx as jsx26, jsxs as jsxs12 } from "react/jsx-runtime";
32529
+ var PRESET_VALUES = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "none", "subgrid"];
32530
+ var BREAKPOINT_QUERIES = {
32531
+ base: "",
32532
+ sm: "@media (min-width: 640px)",
32533
+ md: "@media (min-width: 768px)",
32534
+ lg: "@media (min-width: 1024px)",
32535
+ xl: "@media (min-width: 1280px)",
32536
+ "2xl": "@media (min-width: 1536px)"
32537
+ };
32538
+ function isPresetValue(value) {
32539
+ return PRESET_VALUES.includes(value);
32540
+ }
32541
+ function isResponsiveObject(value) {
32542
+ return value !== void 0 && typeof value !== "string" && typeof value === "object";
32543
+ }
32544
+ function hasCustomResponsiveValues(value) {
32545
+ if (!isResponsiveObject(value)) return false;
32546
+ return Object.values(value).some((v) => typeof v === "string" && !isPresetValue(v));
32547
+ }
32548
+ function generateResponsiveStyles(id, columns, rows) {
32549
+ const styles = [];
32550
+ const breakpoints2 = ["base", "sm", "md", "lg", "xl", "2xl"];
32551
+ for (const bp of breakpoints2) {
32552
+ const rules = [];
32553
+ if (isResponsiveObject(columns)) {
32554
+ const colValue = columns[bp];
32555
+ if (colValue && !isPresetValue(colValue)) {
32556
+ rules.push(`grid-template-columns: ${colValue}`);
32557
+ }
32558
+ }
32559
+ if (isResponsiveObject(rows)) {
32560
+ const rowValue = rows[bp];
32561
+ if (rowValue && !isPresetValue(rowValue)) {
32562
+ rules.push(`grid-template-rows: ${rowValue}`);
32563
+ }
32564
+ }
32565
+ if (rules.length > 0) {
32566
+ const query = BREAKPOINT_QUERIES[bp];
32567
+ const ruleBlock = `.${id} { ${rules.join("; ")}; }`;
32568
+ styles.push(query ? `${query} { ${ruleBlock} }` : ruleBlock);
32569
+ }
32570
+ }
32571
+ return styles.join(" ");
32572
+ }
32528
32573
  function Grid({
32529
32574
  display = "grid",
32530
32575
  justifyContent,
@@ -32543,12 +32588,13 @@ function Grid({
32543
32588
  children,
32544
32589
  ...props
32545
32590
  }) {
32546
- const isCustomColumns = typeof columns === "string" && !["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "none", "subgrid"].includes(
32547
- columns
32548
- );
32549
- const isCustomRows = typeof rows === "string" && !["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "none", "subgrid"].includes(
32550
- rows
32551
- );
32591
+ const reactId = useId2();
32592
+ const id = `zen-grid-${reactId.replace(/:/g, "")}`;
32593
+ const isCustomColumns = typeof columns === "string" && !isPresetValue(columns);
32594
+ const isCustomRows = typeof rows === "string" && !isPresetValue(rows);
32595
+ const hasResponsiveCustomColumns = hasCustomResponsiveValues(columns);
32596
+ const hasResponsiveCustomRows = hasCustomResponsiveValues(rows);
32597
+ const needsStyleTag = hasResponsiveCustomColumns || hasResponsiveCustomRows;
32552
32598
  const classes = cn(
32553
32599
  mapDisplay(display),
32554
32600
  mapJustifyContent(justifyContent),
@@ -32559,8 +32605,9 @@ function Grid({
32559
32605
  mapGap(gapX, "x"),
32560
32606
  mapGap(gapY, "y"),
32561
32607
  mapGridAutoFlow(autoFlow),
32562
- !isCustomColumns && mapGridColumns(columns),
32563
- !isCustomRows && mapGridRows(rows),
32608
+ !isCustomColumns && !hasResponsiveCustomColumns && mapGridColumns(columns),
32609
+ !isCustomRows && !hasResponsiveCustomRows && mapGridRows(rows),
32610
+ needsStyleTag && id,
32564
32611
  className
32565
32612
  );
32566
32613
  const inlineStyles = {
@@ -32570,7 +32617,10 @@ function Grid({
32570
32617
  ...areas && { gridTemplateAreas: areas }
32571
32618
  };
32572
32619
  const hasInlineStyles = isCustomColumns || isCustomRows || areas || style && Object.keys(style).length > 0;
32573
- return /* @__PURE__ */ jsx26(Box, { ...props, className: classes, style: hasInlineStyles ? inlineStyles : void 0, children });
32620
+ return /* @__PURE__ */ jsxs12(Fragment6, { children: [
32621
+ needsStyleTag && /* @__PURE__ */ jsx26("style", { children: generateResponsiveStyles(id, columns, rows) }),
32622
+ /* @__PURE__ */ jsx26(Box, { ...props, className: classes, style: hasInlineStyles ? inlineStyles : void 0, children })
32623
+ ] });
32574
32624
  }
32575
32625
 
32576
32626
  // src/lib/utils.ts
@@ -32588,7 +32638,7 @@ function mapIdProperty(data) {
32588
32638
  }
32589
32639
 
32590
32640
  // src/components/DataCard.tsx
32591
- import { jsx as jsx27, jsxs as jsxs12 } from "react/jsx-runtime";
32641
+ import { jsx as jsx27, jsxs as jsxs13 } from "react/jsx-runtime";
32592
32642
  function DataCard({ data = [], labelWidth = "auto", ...props }) {
32593
32643
  const rows = mapIdProperty(data);
32594
32644
  return /* @__PURE__ */ jsx27(
@@ -32601,7 +32651,7 @@ function DataCard({ data = [], labelWidth = "auto", ...props }) {
32601
32651
  padding: "6",
32602
32652
  ...props,
32603
32653
  children: rows.map((row, index) => {
32604
- return /* @__PURE__ */ jsxs12(Fragment6, { children: [
32654
+ return /* @__PURE__ */ jsxs13(Fragment7, { children: [
32605
32655
  /* @__PURE__ */ jsx27(Row, { paddingY: "3", border: "bottom", borderColor: "muted", paddingRight: "6", children: /* @__PURE__ */ jsx27(Text, { weight: "bold", children: row?.label }) }),
32606
32656
  /* @__PURE__ */ jsx27(Row, { paddingY: "3", border: "bottom", children: /* @__PURE__ */ jsx27(Text, { children: row?.value }) })
32607
32657
  ] }, index);
@@ -32697,7 +32747,7 @@ function TableCell({ children, className, align, ...props }) {
32697
32747
  }
32698
32748
 
32699
32749
  // src/components/DataTable.tsx
32700
- import { jsx as jsx29, jsxs as jsxs13 } from "react/jsx-runtime";
32750
+ import { jsx as jsx29, jsxs as jsxs14 } from "react/jsx-runtime";
32701
32751
  import { createElement as createElement5 } from "react";
32702
32752
  function DataTable({
32703
32753
  data = [],
@@ -32725,7 +32775,7 @@ function DataTable({
32725
32775
  return /* @__PURE__ */ jsx29(DataCard, { data: items }, `${row.id}-${index}`);
32726
32776
  }) });
32727
32777
  }
32728
- return /* @__PURE__ */ jsxs13(Table2, { ...props, className: cn("relative text-base", className), children: [
32778
+ return /* @__PURE__ */ jsxs14(Table2, { ...props, className: cn("relative text-base", className), children: [
32729
32779
  /* @__PURE__ */ jsx29(TableHeader, { style: { gridTemplateColumns: gridTemplateColumns2 }, children: columns?.map(({ id, label, as, hidden, width, ...columnProps }) => {
32730
32780
  if (hidden) {
32731
32781
  return null;
@@ -32756,7 +32806,7 @@ function DataColumn(props) {
32756
32806
  }
32757
32807
 
32758
32808
  // src/components/Dots.tsx
32759
- import { jsx as jsx30, jsxs as jsxs14 } from "react/jsx-runtime";
32809
+ import { jsx as jsx30, jsxs as jsxs15 } from "react/jsx-runtime";
32760
32810
  var sizeMap2 = {
32761
32811
  sm: "w-1.5 h-1.5",
32762
32812
  md: "w-2 h-2",
@@ -32771,7 +32821,7 @@ var gapMap2 = {
32771
32821
  lg: "2"
32772
32822
  };
32773
32823
  function Dots({ size = "md", className, color: _color, ...props }) {
32774
- return /* @__PURE__ */ jsxs14(Row, { ...props, alignItems: "center", gap: gapMap2[size], className, children: [
32824
+ return /* @__PURE__ */ jsxs15(Row, { ...props, alignItems: "center", gap: gapMap2[size], className, children: [
32775
32825
  /* @__PURE__ */ jsx30(Dot, { size }),
32776
32826
  /* @__PURE__ */ jsx30(Dot, { size }),
32777
32827
  /* @__PURE__ */ jsx30(Dot, { size })
@@ -32782,9 +32832,9 @@ function Dots({ size = "md", className, color: _color, ...props }) {
32782
32832
  import { useEffect as useEffect2, useState as useState5 } from "react";
32783
32833
 
32784
32834
  // src/components/Tooltip.tsx
32785
- import { jsx as jsx31, jsxs as jsxs15 } from "react/jsx-runtime";
32835
+ import { jsx as jsx31, jsxs as jsxs16 } from "react/jsx-runtime";
32786
32836
  function Tooltip2({ children, className, showArrow, ...props }) {
32787
- return /* @__PURE__ */ jsxs15($4e3b923658d69c60$export$28c660c63b792dea, { ...props, className: cn("group", tooltip(), className), children: [
32837
+ return /* @__PURE__ */ jsxs16($4e3b923658d69c60$export$28c660c63b792dea, { ...props, className: cn("group", tooltip(), className), children: [
32788
32838
  showArrow && /* @__PURE__ */ jsx31($44f671af83e7d9e0$export$746d02f47f4d381, { className: "w-2 h-2", children: /* @__PURE__ */ jsx31(
32789
32839
  "svg",
32790
32840
  {
@@ -34866,7 +34916,7 @@ function useForm(props = {}) {
34866
34916
  }
34867
34917
 
34868
34918
  // src/components/forms/Form.tsx
34869
- import { jsx as jsx33, jsxs as jsxs16 } from "react/jsx-runtime";
34919
+ import { jsx as jsx33, jsxs as jsxs17 } from "react/jsx-runtime";
34870
34920
  function Form({
34871
34921
  autoComplete,
34872
34922
  onSubmit,
@@ -34920,7 +34970,7 @@ function Form({
34920
34970
  formValues.reset(void 0, { keepDirty: true, keepValues: true });
34921
34971
  }
34922
34972
  }, [error, formValues]);
34923
- return /* @__PURE__ */ jsxs16(FormProvider, { ...formValues, children: [
34973
+ return /* @__PURE__ */ jsxs17(FormProvider, { ...formValues, children: [
34924
34974
  error && /* @__PURE__ */ jsx33(
34925
34975
  AlertBanner,
34926
34976
  {
@@ -34957,7 +35007,7 @@ function FormController({ children, ...props }) {
34957
35007
 
34958
35008
  // src/components/forms/FormField.tsx
34959
35009
  import { Children as Children2, cloneElement as cloneElement2 } from "react";
34960
- import { jsx as jsx36, jsxs as jsxs17 } from "react/jsx-runtime";
35010
+ import { jsx as jsx36, jsxs as jsxs18 } from "react/jsx-runtime";
34961
35011
  function FormField({
34962
35012
  id,
34963
35013
  name,
@@ -34973,7 +35023,7 @@ function FormField({
34973
35023
  const context = useFormContext();
34974
35024
  const { control } = context;
34975
35025
  const { invalid, error } = context.getFieldState(name);
34976
- return /* @__PURE__ */ jsxs17(Column, { ...props, gap: "1", className, children: [
35026
+ return /* @__PURE__ */ jsxs18(Column, { ...props, gap: "1", className, children: [
34977
35027
  label && /* @__PURE__ */ jsx36(Label2, { htmlFor: fieldId, children: label }),
34978
35028
  /* @__PURE__ */ jsx36(FormController, { name, control, rules, children: ({ field }) => {
34979
35029
  return Children2.map(
@@ -34992,7 +35042,7 @@ function FormField({
34992
35042
  }
34993
35043
 
34994
35044
  // src/components/forms/FormFieldArray.tsx
34995
- import { jsx as jsx37, jsxs as jsxs18 } from "react/jsx-runtime";
35045
+ import { jsx as jsx37, jsxs as jsxs19 } from "react/jsx-runtime";
34996
35046
  function FormFieldArray({
34997
35047
  id,
34998
35048
  name,
@@ -35014,7 +35064,7 @@ function FormFieldArray({
35014
35064
  register(name, rules);
35015
35065
  const errors = formState?.errors || {};
35016
35066
  const errorMessage = errors[name]?.message;
35017
- return /* @__PURE__ */ jsxs18(Column, { ...props, gap: "1", className, children: [
35067
+ return /* @__PURE__ */ jsxs19(Column, { ...props, gap: "1", className, children: [
35018
35068
  label && /* @__PURE__ */ jsx37(Label2, { htmlFor: fieldId, children: label }),
35019
35069
  description && /* @__PURE__ */ jsx37(Text, { color: "muted", children: description }),
35020
35070
  errorMessage && /* @__PURE__ */ jsx37(Text, { className: "text-red-500", children: errorMessage }),
@@ -35034,7 +35084,7 @@ function FormResetButton({ values = {}, children, onPress, ...props }) {
35034
35084
  }
35035
35085
 
35036
35086
  // src/components/Spinner.tsx
35037
- import { jsx as jsx39, jsxs as jsxs19 } from "react/jsx-runtime";
35087
+ import { jsx as jsx39, jsxs as jsxs20 } from "react/jsx-runtime";
35038
35088
  var sizeMap3 = {
35039
35089
  sm: "w-4 h-4",
35040
35090
  md: "w-7 h-7",
@@ -35047,7 +35097,7 @@ function Spinner(props) {
35047
35097
  {
35048
35098
  ...domProps,
35049
35099
  className: cn("relative inline-flex justify-center items-center", sizeMap3[size], className),
35050
- children: /* @__PURE__ */ jsxs19("svg", { viewBox: "25 25 50 50", className: "zen-spinner-svg w-full h-full", children: [
35100
+ children: /* @__PURE__ */ jsxs20("svg", { viewBox: "25 25 50 50", className: "zen-spinner-svg w-full h-full", children: [
35051
35101
  !quiet && /* @__PURE__ */ jsx39("circle", { className: "zen-spinner-track stroke-track", cx: "50", cy: "50", r: "20" }),
35052
35102
  /* @__PURE__ */ jsx39(
35053
35103
  "circle",
@@ -35067,7 +35117,7 @@ function Spinner(props) {
35067
35117
  }
35068
35118
 
35069
35119
  // src/components/LoadingButton.tsx
35070
- import { jsx as jsx40, jsxs as jsxs20 } from "react/jsx-runtime";
35120
+ import { jsx as jsx40, jsxs as jsxs21 } from "react/jsx-runtime";
35071
35121
  function LoadingButton({
35072
35122
  isLoading,
35073
35123
  isDisabled,
@@ -35075,7 +35125,7 @@ function LoadingButton({
35075
35125
  children,
35076
35126
  ...props
35077
35127
  }) {
35078
- return /* @__PURE__ */ jsxs20(Button2, { ...props, isDisabled, children: [
35128
+ return /* @__PURE__ */ jsxs21(Button2, { ...props, isDisabled, children: [
35079
35129
  isLoading && /* @__PURE__ */ jsx40(Icon2, { size: "sm", children: /* @__PURE__ */ jsx40(Spinner, { isDisabled }) }),
35080
35130
  showText && children
35081
35131
  ] });
@@ -35108,7 +35158,7 @@ function FormSubmitButton({
35108
35158
 
35109
35159
  // src/components/HoverTrigger.tsx
35110
35160
  import { useEffect as useEffect4, useRef as useRef2, useState as useState6 } from "react";
35111
- import { Fragment as Fragment7, jsx as jsx42, jsxs as jsxs21 } from "react/jsx-runtime";
35161
+ import { Fragment as Fragment8, jsx as jsx42, jsxs as jsxs22 } from "react/jsx-runtime";
35112
35162
  var CLOSE_DELAY = 500;
35113
35163
  function HoverTrigger({
35114
35164
  isOpen,
@@ -35159,7 +35209,7 @@ function HoverTrigger({
35159
35209
  }
35160
35210
  }, closeDelay);
35161
35211
  };
35162
- return /* @__PURE__ */ jsxs21(Fragment7, { children: [
35212
+ return /* @__PURE__ */ jsxs22(Fragment8, { children: [
35163
35213
  /* @__PURE__ */ jsx42("span", { ref: triggerRef, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, children: triggerElement }),
35164
35214
  /* @__PURE__ */ jsx42(Popover2, { isOpen: open, isNonModal: true, triggerRef, children: /* @__PURE__ */ jsx42("div", { onMouseEnter: handleMenuEnter, onMouseLeave: handleMenuLeave, children: popupElement }) })
35165
35215
  ] });
@@ -38917,7 +38967,7 @@ var animated = host.animated;
38917
38967
  import { useEffect as useEffect10, useState as useState11 } from "react";
38918
38968
 
38919
38969
  // src/components/toast/Toast.tsx
38920
- import { jsx as jsx43, jsxs as jsxs22 } from "react/jsx-runtime";
38970
+ import { jsx as jsx43, jsxs as jsxs23 } from "react/jsx-runtime";
38921
38971
  var TOAST_CLOSE_ACTION = "close";
38922
38972
  function Toast({
38923
38973
  id,
@@ -38933,8 +38983,8 @@ function Toast({
38933
38983
  ...props
38934
38984
  }) {
38935
38985
  const hasActions = actions?.length > 0;
38936
- return /* @__PURE__ */ jsxs22(Row, { ...props, className: cn(toast({ variant }), className), children: [
38937
- /* @__PURE__ */ jsxs22(Column, { flexGrow: 1, gap: "1", children: [
38986
+ return /* @__PURE__ */ jsxs23(Row, { ...props, className: cn(toast({ variant }), className), children: [
38987
+ /* @__PURE__ */ jsxs23(Column, { flexGrow: 1, gap: "1", children: [
38938
38988
  title && /* @__PURE__ */ jsx43(Text, { weight: "semibold", children: title }),
38939
38989
  message && /* @__PURE__ */ jsx43(Text, { color: "muted", children: message })
38940
38990
  ] }),
@@ -39015,10 +39065,10 @@ function Toaster({ duration = 0, position = "bottom-right" }) {
39015
39065
  }
39016
39066
 
39017
39067
  // src/components/toast/ToastProvider.tsx
39018
- import { jsx as jsx45, jsxs as jsxs23 } from "react/jsx-runtime";
39068
+ import { jsx as jsx45, jsxs as jsxs24 } from "react/jsx-runtime";
39019
39069
  var ToastContext = createContext2({});
39020
39070
  function ToastProvider({ children, ...props }) {
39021
- return /* @__PURE__ */ jsxs23(ToastContext.Provider, { value: props, children: [
39071
+ return /* @__PURE__ */ jsxs24(ToastContext.Provider, { value: props, children: [
39022
39072
  children,
39023
39073
  /* @__PURE__ */ jsx45(Toaster, { ...props })
39024
39074
  ] });
@@ -39055,7 +39105,7 @@ function useToast() {
39055
39105
  }
39056
39106
 
39057
39107
  // src/components/IconLabel.tsx
39058
- import { jsx as jsx46, jsxs as jsxs24 } from "react/jsx-runtime";
39108
+ import { jsx as jsx46, jsxs as jsxs25 } from "react/jsx-runtime";
39059
39109
  function IconLabel({
39060
39110
  icon,
39061
39111
  label,
@@ -39065,7 +39115,7 @@ function IconLabel({
39065
39115
  children,
39066
39116
  ...props
39067
39117
  }) {
39068
- return /* @__PURE__ */ jsxs24(Row, { alignItems: "center", gap: true, ...props, children: [
39118
+ return /* @__PURE__ */ jsxs25(Row, { alignItems: "center", gap: true, ...props, children: [
39069
39119
  icon && /* @__PURE__ */ jsx46(Icon2, { ...iconProps, children: icon }),
39070
39120
  showLabel && label && /* @__PURE__ */ jsx46(Text, { ...labelProps, children: label }),
39071
39121
  showLabel && children
@@ -39104,7 +39154,7 @@ function Image({
39104
39154
  }
39105
39155
 
39106
39156
  // src/components/Loading.tsx
39107
- import { jsx as jsx48, jsxs as jsxs25 } from "react/jsx-runtime";
39157
+ import { jsx as jsx48, jsxs as jsxs26 } from "react/jsx-runtime";
39108
39158
  var placementClasses = {
39109
39159
  absolute: "absolute inset-0 m-auto",
39110
39160
  center: "m-auto",
@@ -39117,7 +39167,7 @@ function Loading({
39117
39167
  className,
39118
39168
  ...props
39119
39169
  }) {
39120
- return /* @__PURE__ */ jsxs25(
39170
+ return /* @__PURE__ */ jsxs26(
39121
39171
  Box,
39122
39172
  {
39123
39173
  ...props,
@@ -39135,7 +39185,7 @@ function Loading({
39135
39185
  }
39136
39186
 
39137
39187
  // src/components/Menu.tsx
39138
- import { Fragment as Fragment9, jsx as jsx49, jsxs as jsxs26 } from "react/jsx-runtime";
39188
+ import { Fragment as Fragment10, jsx as jsx49, jsxs as jsxs27 } from "react/jsx-runtime";
39139
39189
  function Menu2({ className, children, ...props }) {
39140
39190
  return /* @__PURE__ */ jsx49(
39141
39191
  $3674c52c6b3c5bce$export$d9b273488cd8ce6f,
@@ -39170,7 +39220,7 @@ function MenuItem2({
39170
39220
  "data-[selected]:font-semibold",
39171
39221
  className
39172
39222
  ),
39173
- children: ({ isSelected }) => /* @__PURE__ */ jsxs26(Fragment9, { children: [
39223
+ children: ({ isSelected }) => /* @__PURE__ */ jsxs27(Fragment10, { children: [
39174
39224
  /* @__PURE__ */ jsx49(IconLabel, { icon, label, children }),
39175
39225
  showChecked && isSelected && /* @__PURE__ */ jsx49(Icon2, { "aria-hidden": "true", children: /* @__PURE__ */ jsx49(Check, {}) }),
39176
39226
  showSubMenuIcon && /* @__PURE__ */ jsx49(Icon2, { "aria-hidden": "true", children: /* @__PURE__ */ jsx49(ChevronRight, {}) })
@@ -39193,7 +39243,7 @@ function MenuSection({
39193
39243
  maxHeight,
39194
39244
  overflow: maxHeight ? "auto" : void 0
39195
39245
  };
39196
- return /* @__PURE__ */ jsxs26(Fragment9, { children: [
39246
+ return /* @__PURE__ */ jsxs27(Fragment10, { children: [
39197
39247
  title && /* @__PURE__ */ jsx49($72a5793c14baf454$export$8b251419efc915eb, { className: "text-base font-bold px-2 py-1.5", children: title }),
39198
39248
  /* @__PURE__ */ jsx49(
39199
39249
  $3674c52c6b3c5bce$export$4b1545b4f2016d26,
@@ -39249,7 +39299,7 @@ import {
39249
39299
  useContext as useContext5,
39250
39300
  useState as useState12
39251
39301
  } from "react";
39252
- import { jsx as jsx51, jsxs as jsxs27 } from "react/jsx-runtime";
39302
+ import { jsx as jsx51, jsxs as jsxs28 } from "react/jsx-runtime";
39253
39303
  var NavbarContext = createContext3(void 0);
39254
39304
  var useNavigationContext = () => {
39255
39305
  const context = useContext5(NavbarContext);
@@ -39277,8 +39327,8 @@ function NavbarItem({
39277
39327
  }) {
39278
39328
  const { activeMenu, setActiveMenu } = useNavigationContext();
39279
39329
  if (label) {
39280
- return /* @__PURE__ */ jsxs27(HoverTrigger, { isOpen: activeMenu === label, onHoverStart: () => setActiveMenu(label), children: [
39281
- /* @__PURE__ */ jsxs27(
39330
+ return /* @__PURE__ */ jsxs28(HoverTrigger, { isOpen: activeMenu === label, onHoverStart: () => setActiveMenu(label), children: [
39331
+ /* @__PURE__ */ jsxs28(
39282
39332
  Row,
39283
39333
  {
39284
39334
  ...props,
@@ -39314,7 +39364,7 @@ function NavbarItem({
39314
39364
 
39315
39365
  // src/components/NavMenu.tsx
39316
39366
  import { createContext as createContext4, useContext as useContext6, useState as useState13 } from "react";
39317
- import { jsx as jsx52, jsxs as jsxs28 } from "react/jsx-runtime";
39367
+ import { jsx as jsx52, jsxs as jsxs29 } from "react/jsx-runtime";
39318
39368
  var NavMenuContext = createContext4(null);
39319
39369
  function NavMenu({ muteItems, onItemClick, className, children, ...props }) {
39320
39370
  return /* @__PURE__ */ jsx52(NavMenuContext.Provider, { value: { onItemClick }, children: /* @__PURE__ */ jsx52(Column, { ...props, color: muteItems ? "muted" : void 0, className, children }) });
@@ -39333,7 +39383,7 @@ function NavMenuGroup({
39333
39383
  setMinimized((state2) => !state2);
39334
39384
  }
39335
39385
  };
39336
- return /* @__PURE__ */ jsxs28(
39386
+ return /* @__PURE__ */ jsxs29(
39337
39387
  Column,
39338
39388
  {
39339
39389
  ...props,
@@ -39343,7 +39393,7 @@ function NavMenuGroup({
39343
39393
  allowMinimize && minimized && "[&_.navmenu-children]:hidden"
39344
39394
  ),
39345
39395
  children: [
39346
- /* @__PURE__ */ jsxs28(
39396
+ /* @__PURE__ */ jsxs29(
39347
39397
  Row,
39348
39398
  {
39349
39399
  paddingY: "2",
@@ -39387,8 +39437,8 @@ function NavMenuItem({ isSelected, className, children, ...props }) {
39387
39437
  import { useState as useState14 } from "react";
39388
39438
 
39389
39439
  // src/components/svg/EyeSlash.tsx
39390
- import { jsx as jsx53, jsxs as jsxs29 } from "react/jsx-runtime";
39391
- var SvgEyeSlash = (props) => /* @__PURE__ */ jsxs29("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 256 256", ...props, children: [
39440
+ import { jsx as jsx53, jsxs as jsxs30 } from "react/jsx-runtime";
39441
+ var SvgEyeSlash = (props) => /* @__PURE__ */ jsxs30("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 256 256", ...props, children: [
39392
39442
  /* @__PURE__ */ jsx53("path", { fill: "none", d: "M0 0h256v256H0z" }),
39393
39443
  /* @__PURE__ */ jsx53(
39394
39444
  "path",
@@ -39416,8 +39466,8 @@ var SvgEyeSlash = (props) => /* @__PURE__ */ jsxs29("svg", { xmlns: "http://www.
39416
39466
  var EyeSlash_default = SvgEyeSlash;
39417
39467
 
39418
39468
  // src/components/svg/Eye.tsx
39419
- import { jsx as jsx54, jsxs as jsxs30 } from "react/jsx-runtime";
39420
- var SvgEye = (props) => /* @__PURE__ */ jsxs30("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 256 256", ...props, children: [
39469
+ import { jsx as jsx54, jsxs as jsxs31 } from "react/jsx-runtime";
39470
+ var SvgEye = (props) => /* @__PURE__ */ jsxs31("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 256 256", ...props, children: [
39421
39471
  /* @__PURE__ */ jsx54("path", { fill: "none", d: "M0 0h256v256H0z" }),
39422
39472
  /* @__PURE__ */ jsx54(
39423
39473
  "path",
@@ -39450,17 +39500,17 @@ var Eye_default = SvgEye;
39450
39500
  import { jsx as jsx55 } from "react/jsx-runtime";
39451
39501
 
39452
39502
  // src/components/svg/Logo.tsx
39453
- import { jsx as jsx56, jsxs as jsxs31 } from "react/jsx-runtime";
39503
+ import { jsx as jsx56, jsxs as jsxs32 } from "react/jsx-runtime";
39454
39504
 
39455
39505
  // src/components/PasswordField.tsx
39456
- import { Fragment as Fragment10, jsx as jsx57, jsxs as jsxs32 } from "react/jsx-runtime";
39506
+ import { Fragment as Fragment11, jsx as jsx57, jsxs as jsxs33 } from "react/jsx-runtime";
39457
39507
  function PasswordField({ label, className, ...props }) {
39458
39508
  const [show, setShow] = useState14(false);
39459
39509
  const type = show ? "text" : "password";
39460
39510
  const handleShowPassword = () => setShow((state2) => !state2);
39461
- return /* @__PURE__ */ jsxs32(Fragment10, { children: [
39511
+ return /* @__PURE__ */ jsxs33(Fragment11, { children: [
39462
39512
  label && /* @__PURE__ */ jsx57(Label2, { children: label }),
39463
- /* @__PURE__ */ jsxs32(
39513
+ /* @__PURE__ */ jsxs33(
39464
39514
  $bcdf0525bf22703d$export$2c73285ae9390cec,
39465
39515
  {
39466
39516
  "aria-label": "Password",
@@ -39482,7 +39532,7 @@ function PasswordField({ label, className, ...props }) {
39482
39532
  }
39483
39533
 
39484
39534
  // src/components/ProgressBar.tsx
39485
- import { Fragment as Fragment11, jsx as jsx58, jsxs as jsxs33 } from "react/jsx-runtime";
39535
+ import { Fragment as Fragment12, jsx as jsx58, jsxs as jsxs34 } from "react/jsx-runtime";
39486
39536
  function Track({ children }) {
39487
39537
  return /* @__PURE__ */ jsx58(Box, { position: "relative", borderRadius: "full", overflow: "hidden", className: "w-full h-2 bg-track", children });
39488
39538
  }
@@ -39502,7 +39552,7 @@ function Fill({ percentage }) {
39502
39552
  }
39503
39553
  function ProgressBar2({ className, showPercentage, ...props }) {
39504
39554
  return /* @__PURE__ */ jsx58($0393f8ab869a0f1a$export$c17561cb55d4db30, { ...props, className: cn("flex items-center gap-3 w-full", className), children: ({ percentage = 0, valueText }) => {
39505
- return /* @__PURE__ */ jsxs33(Fragment11, { children: [
39555
+ return /* @__PURE__ */ jsxs34(Fragment12, { children: [
39506
39556
  /* @__PURE__ */ jsx58(Track, { children: /* @__PURE__ */ jsx58(Fill, { percentage }) }),
39507
39557
  showPercentage && /* @__PURE__ */ jsx58(Text, { className: "tabular-nums", children: valueText })
39508
39558
  ] });
@@ -39510,14 +39560,14 @@ function ProgressBar2({ className, showPercentage, ...props }) {
39510
39560
  }
39511
39561
 
39512
39562
  // src/components/ProgressCircle.tsx
39513
- import { Fragment as Fragment12, jsx as jsx59, jsxs as jsxs34 } from "react/jsx-runtime";
39563
+ import { Fragment as Fragment13, jsx as jsx59, jsxs as jsxs35 } from "react/jsx-runtime";
39514
39564
  function ProgressCircle({ className, showPercentage, ...props }) {
39515
39565
  return /* @__PURE__ */ jsx59($0393f8ab869a0f1a$export$c17561cb55d4db30, { ...props, className: cn("relative flex justify-center items-center", className), children: ({ percentage = 0, valueText }) => {
39516
39566
  const radius = 45;
39517
39567
  const circumference = radius * 2 * Math.PI;
39518
39568
  const offset = circumference - percentage / 100 * circumference;
39519
- return /* @__PURE__ */ jsxs34(Fragment12, { children: [
39520
- /* @__PURE__ */ jsxs34(
39569
+ return /* @__PURE__ */ jsxs35(Fragment13, { children: [
39570
+ /* @__PURE__ */ jsxs35(
39521
39571
  "svg",
39522
39572
  {
39523
39573
  viewBox: "0 0 100 100",
@@ -39545,9 +39595,9 @@ function ProgressCircle({ className, showPercentage, ...props }) {
39545
39595
  }
39546
39596
 
39547
39597
  // src/components/RadioGroup.tsx
39548
- import { jsx as jsx60, jsxs as jsxs35 } from "react/jsx-runtime";
39598
+ import { jsx as jsx60, jsxs as jsxs36 } from "react/jsx-runtime";
39549
39599
  function RadioGroup2({ label, children, className, ...props }) {
39550
- return /* @__PURE__ */ jsxs35(
39600
+ return /* @__PURE__ */ jsxs36(
39551
39601
  $b6c3ddc6086f204d$export$a98f0dcb43a68a25,
39552
39602
  {
39553
39603
  "aria-label": "RadioGroup",
@@ -39581,7 +39631,7 @@ function Radio2({ children, className, ...props }) {
39581
39631
 
39582
39632
  // src/components/SearchField.tsx
39583
39633
  import { useEffect as useEffect11, useState as useState15 } from "react";
39584
- import { Fragment as Fragment13, jsx as jsx61, jsxs as jsxs36 } from "react/jsx-runtime";
39634
+ import { Fragment as Fragment14, jsx as jsx61, jsxs as jsxs37 } from "react/jsx-runtime";
39585
39635
  function SearchField2({
39586
39636
  label,
39587
39637
  placeholder,
@@ -39612,7 +39662,7 @@ function SearchField2({
39612
39662
  onSearch?.(searchValue);
39613
39663
  }
39614
39664
  }, [searchValue, delay]);
39615
- return /* @__PURE__ */ jsxs36(Fragment13, { children: [
39665
+ return /* @__PURE__ */ jsxs37(Fragment14, { children: [
39616
39666
  label && /* @__PURE__ */ jsx61(Label2, { children: label }),
39617
39667
  /* @__PURE__ */ jsx61(
39618
39668
  $440f4836bcb56932$export$b94867ecbd698f21,
@@ -39621,7 +39671,7 @@ function SearchField2({
39621
39671
  ...props,
39622
39672
  className: cn("relative", className),
39623
39673
  onChange: handleChange,
39624
- children: /* @__PURE__ */ jsxs36(
39674
+ children: /* @__PURE__ */ jsxs37(
39625
39675
  $a049562f99e7db0e$export$eb2fcfdbd7ba97d4,
39626
39676
  {
39627
39677
  className: cn(
@@ -39649,7 +39699,7 @@ function SearchField2({
39649
39699
 
39650
39700
  // src/components/Select.tsx
39651
39701
  import { useState as useState16 } from "react";
39652
- import { jsx as jsx62, jsxs as jsxs37 } from "react/jsx-runtime";
39702
+ import { jsx as jsx62, jsxs as jsxs38 } from "react/jsx-runtime";
39653
39703
  function Select2({
39654
39704
  items = [],
39655
39705
  value,
@@ -39682,7 +39732,7 @@ function Select2({
39682
39732
  setSearch("");
39683
39733
  onSearch?.("");
39684
39734
  };
39685
- return /* @__PURE__ */ jsxs37(
39735
+ return /* @__PURE__ */ jsxs38(
39686
39736
  $82d7e5349645de74$export$ef9b1a59e592288f,
39687
39737
  {
39688
39738
  "aria-label": "Select",
@@ -39693,11 +39743,11 @@ function Select2({
39693
39743
  onChange: handleChange,
39694
39744
  children: [
39695
39745
  label && /* @__PURE__ */ jsx62(Label2, { children: label }),
39696
- /* @__PURE__ */ jsx62(Button2, { variant: "outline", ...buttonProps, className: cn("w-full", buttonProps?.className), children: /* @__PURE__ */ jsxs37(Row, { flexGrow: 1, alignItems: "center", justifyContent: "space-between", children: [
39746
+ /* @__PURE__ */ jsx62(Button2, { variant: "outline", ...buttonProps, className: cn("w-full", buttonProps?.className), children: /* @__PURE__ */ jsxs38(Row, { flexGrow: 1, alignItems: "center", justifyContent: "space-between", children: [
39697
39747
  /* @__PURE__ */ jsx62($82d7e5349645de74$export$e288731fd71264f0, { children: renderValue }),
39698
39748
  /* @__PURE__ */ jsx62(Icon2, { rotate: 90, "aria-hidden": "true", size: "sm", children: /* @__PURE__ */ jsx62(ChevronRight, {}) })
39699
39749
  ] }) }),
39700
- /* @__PURE__ */ jsx62(Popover2, { ...popoverProps, onOpenChange: handleOpenChange, isFullscreen, children: /* @__PURE__ */ jsxs37(
39750
+ /* @__PURE__ */ jsx62(Popover2, { ...popoverProps, onOpenChange: handleOpenChange, isFullscreen, children: /* @__PURE__ */ jsxs38(
39701
39751
  Column,
39702
39752
  {
39703
39753
  gap: "2",
@@ -39744,7 +39794,7 @@ function Select2({
39744
39794
 
39745
39795
  // src/components/Sidebar.tsx
39746
39796
  import { createContext as createContext5, useContext as useContext7 } from "react";
39747
- import { jsx as jsx63, jsxs as jsxs38 } from "react/jsx-runtime";
39797
+ import { jsx as jsx63, jsxs as jsxs39 } from "react/jsx-runtime";
39748
39798
  var SidebarContext = createContext5(null);
39749
39799
  function Sidebar({ isCollapsed, muteItems, className, children, ...props }) {
39750
39800
  return /* @__PURE__ */ jsx63(SidebarContext.Provider, { value: { isCollapsed }, children: /* @__PURE__ */ jsx63(
@@ -39768,7 +39818,7 @@ function SidebarSection({
39768
39818
  children,
39769
39819
  ...props
39770
39820
  }) {
39771
- return /* @__PURE__ */ jsxs38(Column, { ...props, paddingY: "2", className, children: [
39821
+ return /* @__PURE__ */ jsxs39(Column, { ...props, paddingY: "2", className, children: [
39772
39822
  title && /* @__PURE__ */ jsx63(Box, { paddingX: "4", paddingY: "2", children: /* @__PURE__ */ jsx63(Text, { size: "xs", weight: "semibold", transform: "uppercase", color: "muted", children: title }) }),
39773
39823
  /* @__PURE__ */ jsx63(Column, { children })
39774
39824
  ] });
@@ -39780,7 +39830,7 @@ function SidebarHeader({
39780
39830
  children,
39781
39831
  ...props
39782
39832
  }) {
39783
- return /* @__PURE__ */ jsxs38(Row, { ...props, paddingX: "4", paddingY: "3", gap: "3", alignItems: "center", className, children: [
39833
+ return /* @__PURE__ */ jsxs39(Row, { ...props, paddingX: "4", paddingY: "3", gap: "3", alignItems: "center", className, children: [
39784
39834
  icon && /* @__PURE__ */ jsx63(Icon2, { size: "sm", children: icon }),
39785
39835
  label && /* @__PURE__ */ jsx63(Text, { weight: "semibold", children: label }),
39786
39836
  children
@@ -39795,8 +39845,8 @@ function SidebarItem({
39795
39845
  ...props
39796
39846
  }) {
39797
39847
  const { isCollapsed } = useContext7(SidebarContext);
39798
- return /* @__PURE__ */ jsxs38($4e3b923658d69c60$export$8c610744efcf8a1d, { delay: 0, closeDelay: 0, isDisabled: !isCollapsed, children: [
39799
- /* @__PURE__ */ jsx63($f645667febf57a63$export$35a3bebf7ef2d934, { children: /* @__PURE__ */ jsxs38(
39848
+ return /* @__PURE__ */ jsxs39($4e3b923658d69c60$export$8c610744efcf8a1d, { delay: 0, closeDelay: 0, isDisabled: !isCollapsed, children: [
39849
+ /* @__PURE__ */ jsx63($f645667febf57a63$export$35a3bebf7ef2d934, { children: /* @__PURE__ */ jsxs39(
39800
39850
  Row,
39801
39851
  {
39802
39852
  ...props,
@@ -39824,7 +39874,7 @@ function SidebarItem({
39824
39874
  }
39825
39875
 
39826
39876
  // src/components/Slider.tsx
39827
- import { Fragment as Fragment14, jsx as jsx64, jsxs as jsxs39 } from "react/jsx-runtime";
39877
+ import { Fragment as Fragment15, jsx as jsx64, jsxs as jsxs40 } from "react/jsx-runtime";
39828
39878
  function Fill2({ percentage }) {
39829
39879
  const width = `calc(10px + ${percentage}% - ${percentage * 0.2}px)`;
39830
39880
  return /* @__PURE__ */ jsx64("div", { className: "absolute inset-y-0 left-0 rounded-full bg-track-fill", style: { width } });
@@ -39843,14 +39893,14 @@ function Thumb({ percentage }) {
39843
39893
  );
39844
39894
  }
39845
39895
  function Slider2({ className, showValue = true, label, ...props }) {
39846
- return /* @__PURE__ */ jsxs39($6f909507e6374d18$export$472062a354075cee, { ...props, className: cn("flex flex-col gap-2 w-full", className), children: [
39847
- /* @__PURE__ */ jsxs39(Row, { justifyContent: "space-between", alignItems: "center", children: [
39896
+ return /* @__PURE__ */ jsxs40($6f909507e6374d18$export$472062a354075cee, { ...props, className: cn("flex flex-col gap-2 w-full", className), children: [
39897
+ /* @__PURE__ */ jsxs40(Row, { justifyContent: "space-between", alignItems: "center", children: [
39848
39898
  label && /* @__PURE__ */ jsx64(Label2, { children: label }),
39849
39899
  showValue && /* @__PURE__ */ jsx64($6f909507e6374d18$export$a590f758a961cb5b, { className: "text-base tabular-nums" })
39850
39900
  ] }),
39851
39901
  /* @__PURE__ */ jsx64($6f909507e6374d18$export$105594979f116971, { className: "relative h-5 w-full", children: ({ state: state2 }) => {
39852
39902
  const percentage = state2.getThumbPercent(0) * 100;
39853
- return /* @__PURE__ */ jsxs39(Fragment14, { children: [
39903
+ return /* @__PURE__ */ jsxs40(Fragment15, { children: [
39854
39904
  /* @__PURE__ */ jsx64("div", { className: "absolute inset-x-0 top-1/2 -translate-y-1/2 h-1 rounded-full bg-track overflow-hidden", children: /* @__PURE__ */ jsx64(Fill2, { percentage }) }),
39855
39905
  /* @__PURE__ */ jsx64(Thumb, { percentage })
39856
39906
  ] });
@@ -39859,7 +39909,7 @@ function Slider2({ className, showValue = true, label, ...props }) {
39859
39909
  }
39860
39910
 
39861
39911
  // src/components/StatusLight.tsx
39862
- import { jsx as jsx65, jsxs as jsxs40 } from "react/jsx-runtime";
39912
+ import { jsx as jsx65, jsxs as jsxs41 } from "react/jsx-runtime";
39863
39913
  var variantColors = {
39864
39914
  success: "bg-green-500",
39865
39915
  warning: "bg-yellow-500",
@@ -39880,19 +39930,19 @@ function StatusDot({ color, variant }) {
39880
39930
  }
39881
39931
  function StatusLight(props) {
39882
39932
  const { color, variant = "inactive", children, className, ...domProps } = props;
39883
- return /* @__PURE__ */ jsxs40(Row, { ...domProps, alignItems: "center", gap: "2", className, children: [
39933
+ return /* @__PURE__ */ jsxs41(Row, { ...domProps, alignItems: "center", gap: "2", className, children: [
39884
39934
  /* @__PURE__ */ jsx65(StatusDot, { color, variant }),
39885
39935
  children
39886
39936
  ] });
39887
39937
  }
39888
39938
 
39889
39939
  // src/components/Switch.tsx
39890
- import { jsx as jsx66, jsxs as jsxs41 } from "react/jsx-runtime";
39940
+ import { jsx as jsx66, jsxs as jsxs42 } from "react/jsx-runtime";
39891
39941
  function Switch2({ label, children, className, ...props }) {
39892
39942
  const styles = switchVariant();
39893
- return /* @__PURE__ */ jsxs41(Column, { children: [
39943
+ return /* @__PURE__ */ jsxs42(Column, { children: [
39894
39944
  label && /* @__PURE__ */ jsx66(Label2, { children: label }),
39895
- /* @__PURE__ */ jsxs41($8e59e948500a8fe1$export$b5d5cf8927ab7262, { ...props, className: cn(styles.root(), className), children: [
39945
+ /* @__PURE__ */ jsxs42($8e59e948500a8fe1$export$b5d5cf8927ab7262, { ...props, className: cn(styles.root(), className), children: [
39896
39946
  /* @__PURE__ */ jsx66(Box, { className: styles.track(), children: /* @__PURE__ */ jsx66(Box, { className: styles.thumb() }) }),
39897
39947
  children
39898
39948
  ] })
@@ -39940,7 +39990,7 @@ function TabPanel2({ children, className, ...props }) {
39940
39990
 
39941
39991
  // src/components/ThemeButton.tsx
39942
39992
  import { useEffect as useEffect12, useRef as useRef7, useState as useState17 } from "react";
39943
- import { jsx as jsx68, jsxs as jsxs42 } from "react/jsx-runtime";
39993
+ import { jsx as jsx68, jsxs as jsxs43 } from "react/jsx-runtime";
39944
39994
  function getElement(target) {
39945
39995
  return "current" in target ? target.current : target;
39946
39996
  }
@@ -39999,7 +40049,7 @@ function ThemeButton({
39999
40049
  }
40000
40050
  onPress?.(e);
40001
40051
  }
40002
- return /* @__PURE__ */ jsxs42(
40052
+ return /* @__PURE__ */ jsxs43(
40003
40053
  Button2,
40004
40054
  {
40005
40055
  ...props,
@@ -40021,10 +40071,10 @@ function ThemeButton({
40021
40071
  }
40022
40072
 
40023
40073
  // src/components/Toggle.tsx
40024
- import { Fragment as Fragment15, jsx as jsx69, jsxs as jsxs43 } from "react/jsx-runtime";
40074
+ import { Fragment as Fragment16, jsx as jsx69, jsxs as jsxs44 } from "react/jsx-runtime";
40025
40075
  function Toggle({ label, children, className, ...props }) {
40026
40076
  const isSelected = typeof props.value !== "undefined" ? !!props.value : void 0;
40027
- return /* @__PURE__ */ jsxs43(Fragment15, { children: [
40077
+ return /* @__PURE__ */ jsxs44(Fragment16, { children: [
40028
40078
  label && /* @__PURE__ */ jsx69(Label2, { children: label }),
40029
40079
  /* @__PURE__ */ jsx69(
40030
40080
  $efde0372d7a700fe$export$d2b052e7b4be1756,
@@ -40045,7 +40095,7 @@ function Toggle({ label, children, className, ...props }) {
40045
40095
  }
40046
40096
 
40047
40097
  // src/components/ToggleGroup.tsx
40048
- import { jsx as jsx70, jsxs as jsxs44 } from "react/jsx-runtime";
40098
+ import { jsx as jsx70, jsxs as jsxs45 } from "react/jsx-runtime";
40049
40099
  function ToggleGroup({
40050
40100
  label,
40051
40101
  value,
@@ -40064,7 +40114,7 @@ function ToggleGroup({
40064
40114
  onSelectionChange?.(keys);
40065
40115
  onChange?.(Array.from(keys).map((k) => k.toString()));
40066
40116
  };
40067
- return /* @__PURE__ */ jsxs44(
40117
+ return /* @__PURE__ */ jsxs45(
40068
40118
  $eaf9e70818b436db$export$67ea30858aaf75e3,
40069
40119
  {
40070
40120
  ...props,