@geomak/ui 6.13.0 → 6.14.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.d.cts CHANGED
@@ -1247,7 +1247,7 @@ interface FABProps {
1247
1247
  */
1248
1248
  declare function FAB({ icon, label, onClick, actions, position, size, tone, fixed, className, style, }: FABProps): react_jsx_runtime.JSX.Element;
1249
1249
 
1250
- type PopConfirmTone = 'default' | 'danger';
1250
+ type PopConfirmTone = 'default' | 'info' | 'warning' | 'error' | 'danger' | 'success';
1251
1251
  interface PopConfirmProps {
1252
1252
  /** The trigger element. Cloned as the popover anchor (rendered `asChild`). */
1253
1253
  children: React__default.ReactElement;
@@ -1263,7 +1263,7 @@ interface PopConfirmProps {
1263
1263
  confirmText?: React__default.ReactNode;
1264
1264
  /** Cancel button label. Default `'Cancel'`. */
1265
1265
  cancelText?: React__default.ReactNode;
1266
- /** `'danger'` colours the confirm button red. Default `'default'`. */
1266
+ /** Visual + semantic tone of the confirmation prompt. Default `'default'`. */
1267
1267
  tone?: PopConfirmTone;
1268
1268
  /** Leading icon shown beside the title. */
1269
1269
  icon?: React__default.ReactNode;
@@ -1276,13 +1276,13 @@ interface PopConfirmProps {
1276
1276
  }
1277
1277
  /**
1278
1278
  * A lightweight confirm prompt anchored to its trigger, on Radix Popover. Use it
1279
- * for in-place "are you sure?" gates (delete, archive) instead of a full Modal.
1280
- * An async `onConfirm` keeps the confirm button in a loading state until it
1281
- * resolves, then closes.
1279
+ * for in-place "are you sure?" gates (delete, archive, publish, etc.) instead of
1280
+ * a full Modal. An async `onConfirm` keeps the confirm button in a loading state
1281
+ * until it resolves, then closes.
1282
1282
  *
1283
1283
  * @example
1284
1284
  * ```tsx
1285
- * <PopConfirm title="Delete this vessel?" tone="danger" confirmText="Delete" onConfirm={remove}>
1285
+ * <PopConfirm title="Delete this vessel?" tone="error" confirmText="Delete" onConfirm={remove}>
1286
1286
  * <Button content="Delete" variant="danger" />
1287
1287
  * </PopConfirm>
1288
1288
  * ```
@@ -2524,27 +2524,19 @@ interface SkeletonCardProps extends SkeletonBaseProps {
2524
2524
  */
2525
2525
  declare function SkeletonCard({ hasAvatar, lines, className, style }: SkeletonCardProps): react_jsx_runtime.JSX.Element;
2526
2526
 
2527
- interface ButtonProps {
2527
+ interface ButtonProps extends Omit<React__default.ButtonHTMLAttributes<HTMLButtonElement>, 'type' | 'content'> {
2528
2528
  /** Button content (text or nodes). */
2529
2529
  content?: React__default.ReactNode;
2530
2530
  /** Visual style variant */
2531
- variant?: 'primary' | 'secondary' | 'ghost' | 'danger';
2531
+ variant?: 'primary' | 'secondary' | 'ghost' | 'danger' | 'warning' | 'success' | 'info';
2532
2532
  /** Size — controls height, padding, and font size */
2533
2533
  size?: 'sm' | 'md' | 'lg';
2534
2534
  /** HTML button type */
2535
2535
  buttonType?: 'button' | 'submit' | 'reset';
2536
2536
  /** Show a loading spinner and disable the control. */
2537
2537
  loading?: boolean;
2538
- /** Disable interaction and dim the control. */
2539
- disabled?: boolean;
2540
- /** Inline style overrides (width, etc.). Margins/layout belong in the parent. */
2541
- style?: React__default.CSSProperties;
2542
- /** Extra classes appended to the button (override variant/size styles). */
2543
- className?: string;
2544
2538
  /** Leading icon — rendered before content */
2545
2539
  icon?: React__default.ReactNode;
2546
- /** Click handler. */
2547
- onClick?: React__default.MouseEventHandler<HTMLButtonElement>;
2548
2540
  /**
2549
2541
  * @deprecated Pass `variant` instead. Kept for API compat — currently no-op.
2550
2542
  * Will be removed in the next major version.
@@ -2555,6 +2547,7 @@ interface ButtonProps {
2555
2547
  * Primary action button with variant + size system.
2556
2548
  *
2557
2549
  * Width is never hardcoded — set `style={{ width }}` or let the parent grid/flex control it.
2550
+ * Uses `React.forwardRef` so it works as a Radix `asChild` trigger (Popover, Tooltip, etc.).
2558
2551
  *
2559
2552
  * @example
2560
2553
  * <Button content="Save" onClick={handleSave} />
@@ -2562,7 +2555,7 @@ interface ButtonProps {
2562
2555
  * <Button content="Cancel" variant="secondary" />
2563
2556
  * <Button content="Loading…" loading buttonType="submit" />
2564
2557
  */
2565
- declare function Button({ content, variant, size, buttonType, loading, disabled, style, icon, onClick, className, }: ButtonProps): react_jsx_runtime.JSX.Element;
2558
+ declare const Button: React__default.ForwardRefExoticComponent<ButtonProps & React__default.RefAttributes<HTMLButtonElement>>;
2566
2559
 
2567
2560
  /**
2568
2561
  * Shared field foundation for all oxygen-ui inputs.
package/dist/index.d.ts CHANGED
@@ -1247,7 +1247,7 @@ interface FABProps {
1247
1247
  */
1248
1248
  declare function FAB({ icon, label, onClick, actions, position, size, tone, fixed, className, style, }: FABProps): react_jsx_runtime.JSX.Element;
1249
1249
 
1250
- type PopConfirmTone = 'default' | 'danger';
1250
+ type PopConfirmTone = 'default' | 'info' | 'warning' | 'error' | 'danger' | 'success';
1251
1251
  interface PopConfirmProps {
1252
1252
  /** The trigger element. Cloned as the popover anchor (rendered `asChild`). */
1253
1253
  children: React__default.ReactElement;
@@ -1263,7 +1263,7 @@ interface PopConfirmProps {
1263
1263
  confirmText?: React__default.ReactNode;
1264
1264
  /** Cancel button label. Default `'Cancel'`. */
1265
1265
  cancelText?: React__default.ReactNode;
1266
- /** `'danger'` colours the confirm button red. Default `'default'`. */
1266
+ /** Visual + semantic tone of the confirmation prompt. Default `'default'`. */
1267
1267
  tone?: PopConfirmTone;
1268
1268
  /** Leading icon shown beside the title. */
1269
1269
  icon?: React__default.ReactNode;
@@ -1276,13 +1276,13 @@ interface PopConfirmProps {
1276
1276
  }
1277
1277
  /**
1278
1278
  * A lightweight confirm prompt anchored to its trigger, on Radix Popover. Use it
1279
- * for in-place "are you sure?" gates (delete, archive) instead of a full Modal.
1280
- * An async `onConfirm` keeps the confirm button in a loading state until it
1281
- * resolves, then closes.
1279
+ * for in-place "are you sure?" gates (delete, archive, publish, etc.) instead of
1280
+ * a full Modal. An async `onConfirm` keeps the confirm button in a loading state
1281
+ * until it resolves, then closes.
1282
1282
  *
1283
1283
  * @example
1284
1284
  * ```tsx
1285
- * <PopConfirm title="Delete this vessel?" tone="danger" confirmText="Delete" onConfirm={remove}>
1285
+ * <PopConfirm title="Delete this vessel?" tone="error" confirmText="Delete" onConfirm={remove}>
1286
1286
  * <Button content="Delete" variant="danger" />
1287
1287
  * </PopConfirm>
1288
1288
  * ```
@@ -2524,27 +2524,19 @@ interface SkeletonCardProps extends SkeletonBaseProps {
2524
2524
  */
2525
2525
  declare function SkeletonCard({ hasAvatar, lines, className, style }: SkeletonCardProps): react_jsx_runtime.JSX.Element;
2526
2526
 
2527
- interface ButtonProps {
2527
+ interface ButtonProps extends Omit<React__default.ButtonHTMLAttributes<HTMLButtonElement>, 'type' | 'content'> {
2528
2528
  /** Button content (text or nodes). */
2529
2529
  content?: React__default.ReactNode;
2530
2530
  /** Visual style variant */
2531
- variant?: 'primary' | 'secondary' | 'ghost' | 'danger';
2531
+ variant?: 'primary' | 'secondary' | 'ghost' | 'danger' | 'warning' | 'success' | 'info';
2532
2532
  /** Size — controls height, padding, and font size */
2533
2533
  size?: 'sm' | 'md' | 'lg';
2534
2534
  /** HTML button type */
2535
2535
  buttonType?: 'button' | 'submit' | 'reset';
2536
2536
  /** Show a loading spinner and disable the control. */
2537
2537
  loading?: boolean;
2538
- /** Disable interaction and dim the control. */
2539
- disabled?: boolean;
2540
- /** Inline style overrides (width, etc.). Margins/layout belong in the parent. */
2541
- style?: React__default.CSSProperties;
2542
- /** Extra classes appended to the button (override variant/size styles). */
2543
- className?: string;
2544
2538
  /** Leading icon — rendered before content */
2545
2539
  icon?: React__default.ReactNode;
2546
- /** Click handler. */
2547
- onClick?: React__default.MouseEventHandler<HTMLButtonElement>;
2548
2540
  /**
2549
2541
  * @deprecated Pass `variant` instead. Kept for API compat — currently no-op.
2550
2542
  * Will be removed in the next major version.
@@ -2555,6 +2547,7 @@ interface ButtonProps {
2555
2547
  * Primary action button with variant + size system.
2556
2548
  *
2557
2549
  * Width is never hardcoded — set `style={{ width }}` or let the parent grid/flex control it.
2550
+ * Uses `React.forwardRef` so it works as a Radix `asChild` trigger (Popover, Tooltip, etc.).
2558
2551
  *
2559
2552
  * @example
2560
2553
  * <Button content="Save" onClick={handleSave} />
@@ -2562,7 +2555,7 @@ interface ButtonProps {
2562
2555
  * <Button content="Cancel" variant="secondary" />
2563
2556
  * <Button content="Loading…" loading buttonType="submit" />
2564
2557
  */
2565
- declare function Button({ content, variant, size, buttonType, loading, disabled, style, icon, onClick, className, }: ButtonProps): react_jsx_runtime.JSX.Element;
2558
+ declare const Button: React__default.ForwardRefExoticComponent<ButtonProps & React__default.RefAttributes<HTMLButtonElement>>;
2566
2559
 
2567
2560
  /**
2568
2561
  * Shared field foundation for all oxygen-ui inputs.
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { colors_default } from './chunk-GKXP6OJJ.js';
2
2
  export { colors_default as COLORS, PALETTE as palette, semanticTokens, vars } from './chunk-GKXP6OJJ.js';
3
- import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
4
- import React19, { createContext, useState, useEffect, useMemo, useId, useCallback, useRef, useContext, useLayoutEffect, useSyncExternalStore } from 'react';
3
+ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
4
+ import React20, { createContext, useState, useEffect, useMemo, useId, useCallback, useRef, useContext, useLayoutEffect, useSyncExternalStore } from 'react';
5
5
  import { createPortal } from 'react-dom';
6
6
  import * as AvatarPrimitive from '@radix-ui/react-avatar';
7
7
  import * as Dialog from '@radix-ui/react-dialog';
@@ -649,8 +649,6 @@ var VARIANT_CLASSES = {
649
649
  "focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2"
650
650
  ].join(" "),
651
651
  ghost: [
652
- // Semantic tokens handle both light and dark modes — no `dark:`
653
- // variants needed.
654
652
  "bg-transparent text-foreground-secondary",
655
653
  "hover:bg-surface-raised hover:text-foreground",
656
654
  "active:bg-surface",
@@ -663,6 +661,27 @@ var VARIANT_CLASSES = {
663
661
  "active:opacity-100",
664
662
  "disabled:opacity-50 disabled:cursor-not-allowed",
665
663
  "focus-visible:ring-2 focus-visible:ring-status-error focus-visible:ring-offset-2"
664
+ ].join(" "),
665
+ warning: [
666
+ "bg-status-warning text-white",
667
+ "hover:opacity-90",
668
+ "active:opacity-100",
669
+ "disabled:opacity-50 disabled:cursor-not-allowed",
670
+ "focus-visible:ring-2 focus-visible:ring-status-warning focus-visible:ring-offset-2"
671
+ ].join(" "),
672
+ success: [
673
+ "bg-status-success text-white",
674
+ "hover:opacity-90",
675
+ "active:opacity-100",
676
+ "disabled:opacity-50 disabled:cursor-not-allowed",
677
+ "focus-visible:ring-2 focus-visible:ring-status-success focus-visible:ring-offset-2"
678
+ ].join(" "),
679
+ info: [
680
+ "bg-status-info text-white",
681
+ "hover:opacity-90",
682
+ "active:opacity-100",
683
+ "disabled:opacity-50 disabled:cursor-not-allowed",
684
+ "focus-visible:ring-2 focus-visible:ring-status-info focus-visible:ring-offset-2"
666
685
  ].join(" ")
667
686
  };
668
687
  var SIZE_CLASSES = {
@@ -670,7 +689,7 @@ var SIZE_CLASSES = {
670
689
  md: "h-9 px-4 text-sm gap-1.5 rounded-lg",
671
690
  lg: "h-11 px-5 text-sm gap-2 rounded-xl"
672
691
  };
673
- function Button({
692
+ var Button = React20.forwardRef(function Button2({
674
693
  content,
675
694
  variant = "primary",
676
695
  size = "md",
@@ -680,17 +699,21 @@ function Button({
680
699
  style,
681
700
  icon,
682
701
  onClick,
683
- className = ""
684
- }) {
702
+ className = "",
703
+ type: _deprecated,
704
+ // consume deprecated prop — do not spread to DOM
705
+ ...rest
706
+ }, ref) {
685
707
  return /* @__PURE__ */ jsxs(
686
708
  "button",
687
709
  {
710
+ ...rest,
711
+ ref,
688
712
  onClick,
689
713
  disabled: disabled || loading,
690
714
  type: buttonType,
691
715
  style,
692
716
  className: [
693
- // Base — layout, transitions, focus reset
694
717
  "inline-flex items-center justify-center font-medium",
695
718
  "outline-none transition-colors duration-150 select-none",
696
719
  "whitespace-nowrap",
@@ -720,7 +743,9 @@ function Button({
720
743
  ]
721
744
  }
722
745
  );
723
- }
746
+ });
747
+ Button.displayName = "Button";
748
+ var Button_default = Button;
724
749
  function Modal({
725
750
  width,
726
751
  size,
@@ -783,7 +808,7 @@ function Modal({
783
808
  /* @__PURE__ */ jsx("div", { className: `flex-1 overflow-y-auto p-5 ${hasFooter ? "" : "pb-5"}`, children }),
784
809
  hasFooter && /* @__PURE__ */ jsxs("div", { className: "flex flex-shrink-0 items-center justify-end gap-3 border-t border-border px-5 py-3", children: [
785
810
  /* @__PURE__ */ jsx(
786
- Button,
811
+ Button_default,
787
812
  {
788
813
  style: { width: 90 },
789
814
  content: cancelText,
@@ -791,7 +816,7 @@ function Modal({
791
816
  }
792
817
  ),
793
818
  /* @__PURE__ */ jsx(
794
- Button,
819
+ Button_default,
795
820
  {
796
821
  style: { width: 90 },
797
822
  content: okText,
@@ -865,8 +890,8 @@ function Drawer({
865
890
  ] }),
866
891
  /* @__PURE__ */ jsx("div", { className: "flex-1 overflow-y-auto p-5", children }),
867
892
  hasFooter && /* @__PURE__ */ jsxs("div", { className: `flex flex-shrink-0 items-center gap-3 border-t border-border px-5 py-3 ${isRight ? "justify-start" : "justify-end"}`, children: [
868
- /* @__PURE__ */ jsx(Button, { style: { width: 90 }, content: cancelText, onClick: onCancel }),
869
- /* @__PURE__ */ jsx(Button, { style: { width: 90 }, content: okText, onClick: onOk })
893
+ /* @__PURE__ */ jsx(Button_default, { style: { width: 90 }, content: cancelText, onClick: onCancel }),
894
+ /* @__PURE__ */ jsx(Button_default, { style: { width: 90 }, content: okText, onClick: onOk })
870
895
  ] })
871
896
  ]
872
897
  }
@@ -1630,7 +1655,7 @@ function Kbd({
1630
1655
  style
1631
1656
  }) {
1632
1657
  if (keys && keys.length > 0) {
1633
- return /* @__PURE__ */ jsx("span", { className: ["inline-flex items-center gap-1", className].filter(Boolean).join(" "), style, children: keys.map((k, i) => /* @__PURE__ */ jsxs(React19.Fragment, { children: [
1658
+ return /* @__PURE__ */ jsx("span", { className: ["inline-flex items-center gap-1", className].filter(Boolean).join(" "), style, children: keys.map((k, i) => /* @__PURE__ */ jsxs(React20.Fragment, { children: [
1634
1659
  i > 0 && /* @__PURE__ */ jsx("span", { className: "text-foreground-muted text-xs select-none", children: separator }),
1635
1660
  /* @__PURE__ */ jsx("kbd", { className: [cap, SIZE3[size]].join(" "), children: k })
1636
1661
  ] }, `${k}-${i}`)) });
@@ -1704,7 +1729,7 @@ function CardCarousel({
1704
1729
  style
1705
1730
  }) {
1706
1731
  const scrollerRef = useRef(null);
1707
- const slides = React19.Children.toArray(children);
1732
+ const slides = React20.Children.toArray(children);
1708
1733
  const [active, setActive] = useState(0);
1709
1734
  const [atStart, setAtStart] = useState(true);
1710
1735
  const [atEnd, setAtEnd] = useState(false);
@@ -1923,6 +1948,22 @@ function FAB({
1923
1948
  }
1924
1949
  );
1925
1950
  }
1951
+ var ICON_COLOR = {
1952
+ default: "text-foreground-muted",
1953
+ info: "text-status-info",
1954
+ warning: "text-status-warning",
1955
+ error: "text-status-error",
1956
+ danger: "text-status-error",
1957
+ success: "text-status-success"
1958
+ };
1959
+ var CONFIRM_VARIANT = {
1960
+ default: "primary",
1961
+ info: "info",
1962
+ warning: "warning",
1963
+ error: "danger",
1964
+ danger: "danger",
1965
+ success: "success"
1966
+ };
1926
1967
  function PopConfirm({
1927
1968
  children,
1928
1969
  title,
@@ -1966,33 +2007,39 @@ function PopConfirm({
1966
2007
  side,
1967
2008
  sideOffset: 8,
1968
2009
  collisionPadding: 12,
1969
- className: [
1970
- "z-[400] w-64 rounded-lg border border-border bg-surface p-3.5 shadow-lg",
1971
- "data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
1972
- "data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",
1973
- className
1974
- ].filter(Boolean).join(" "),
2010
+ className: ["z-[400] focus:outline-none", className].filter(Boolean).join(" "),
1975
2011
  children: [
1976
- /* @__PURE__ */ jsxs("div", { className: "flex gap-2.5", children: [
1977
- icon && /* @__PURE__ */ jsx("span", { className: `mt-0.5 flex h-5 w-5 flex-shrink-0 items-center justify-center ${tone === "danger" ? "text-status-error" : "text-status-warning"}`, children: icon }),
1978
- /* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
1979
- /* @__PURE__ */ jsx("div", { className: "text-sm font-medium text-foreground", children: title }),
1980
- description && /* @__PURE__ */ jsx("div", { className: "mt-1 text-xs text-foreground-secondary leading-snug", children: description })
1981
- ] })
1982
- ] }),
1983
- /* @__PURE__ */ jsxs("div", { className: "mt-3 flex justify-end gap-2", children: [
1984
- /* @__PURE__ */ jsx(Button, { content: cancelText, size: "sm", variant: "ghost", onClick: handleCancel }),
1985
- /* @__PURE__ */ jsx(
1986
- Button,
1987
- {
1988
- content: confirmText,
1989
- size: "sm",
1990
- variant: tone === "danger" ? "danger" : "primary",
1991
- loading,
1992
- onClick: handleConfirm
1993
- }
1994
- )
1995
- ] }),
2012
+ /* @__PURE__ */ jsxs(
2013
+ motion.div,
2014
+ {
2015
+ initial: { opacity: 0, scale: 0.95 },
2016
+ animate: { opacity: 1, scale: 1 },
2017
+ transition: { duration: 0.12, ease: [0.16, 1, 0.3, 1] },
2018
+ className: "w-64 rounded-lg border border-border bg-surface p-3.5 shadow-lg",
2019
+ children: [
2020
+ /* @__PURE__ */ jsxs("div", { className: "flex gap-2.5", children: [
2021
+ icon && /* @__PURE__ */ jsx("span", { className: `mt-0.5 flex h-5 w-5 flex-shrink-0 items-center justify-center ${ICON_COLOR[tone]}`, children: icon }),
2022
+ /* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
2023
+ /* @__PURE__ */ jsx("div", { className: "text-sm font-medium text-foreground", children: title }),
2024
+ description && /* @__PURE__ */ jsx("div", { className: "mt-1 text-xs text-foreground-secondary leading-snug", children: description })
2025
+ ] })
2026
+ ] }),
2027
+ /* @__PURE__ */ jsxs("div", { className: "mt-3 flex justify-end gap-2", children: [
2028
+ /* @__PURE__ */ jsx(Button_default, { content: cancelText, size: "sm", variant: "ghost", onClick: handleCancel }),
2029
+ /* @__PURE__ */ jsx(
2030
+ Button_default,
2031
+ {
2032
+ content: confirmText,
2033
+ size: "sm",
2034
+ variant: CONFIRM_VARIANT[tone],
2035
+ loading,
2036
+ onClick: handleConfirm
2037
+ }
2038
+ )
2039
+ ] })
2040
+ ]
2041
+ }
2042
+ ),
1996
2043
  /* @__PURE__ */ jsx(Popover.Arrow, { className: "fill-surface" })
1997
2044
  ]
1998
2045
  }
@@ -2681,7 +2728,7 @@ function GridCard({ item, buttonText = "Open Application", onOpen, className = "
2681
2728
  /* @__PURE__ */ jsx("div", { className: "h-1/4 flex items-center justify-center", children: typeof item.cover === "string" ? /* @__PURE__ */ jsx("img", { src: item.cover, alt: "Grid Card Cover" }) : item.cover }),
2682
2729
  /* @__PURE__ */ jsx("div", { className: "text-prussian-blue text-sm dark:text-white text-center h-1/4", children: /* @__PURE__ */ jsx("p", { children: item.description }) }),
2683
2730
  /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
2684
- Button,
2731
+ Button_default,
2685
2732
  {
2686
2733
  disabled: !item.enabled,
2687
2734
  style: { width: "max-content", padding: "0 8px", margin: "0" },
@@ -2719,7 +2766,7 @@ function OpaqueGridCard({
2719
2766
  }
2720
2767
  ),
2721
2768
  /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
2722
- Button,
2769
+ Button_default,
2723
2770
  {
2724
2771
  style: {
2725
2772
  width: "max-content",
@@ -3133,7 +3180,7 @@ function Wizard({
3133
3180
  ] }),
3134
3181
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
3135
3182
  dismissible && !isLast && /* @__PURE__ */ jsx(
3136
- Button,
3183
+ Button_default,
3137
3184
  {
3138
3185
  variant: "ghost",
3139
3186
  size: "sm",
@@ -3142,7 +3189,7 @@ function Wizard({
3142
3189
  }
3143
3190
  ),
3144
3191
  activeIndex > 0 && /* @__PURE__ */ jsx(
3145
- Button,
3192
+ Button_default,
3146
3193
  {
3147
3194
  variant: "secondary",
3148
3195
  size: "sm",
@@ -3151,7 +3198,7 @@ function Wizard({
3151
3198
  }
3152
3199
  ),
3153
3200
  /* @__PURE__ */ jsx(
3154
- Button,
3201
+ Button_default,
3155
3202
  {
3156
3203
  size: "sm",
3157
3204
  content: isLast ? "Done" : "Next",
@@ -3296,7 +3343,7 @@ function Field({
3296
3343
  );
3297
3344
  }
3298
3345
  var SearchIcon = /* @__PURE__ */ jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", className: "w-4 h-4", "aria-hidden": "true", children: /* @__PURE__ */ jsx("path", { fillRule: "evenodd", d: "M10.5 3.75a6.75 6.75 0 100 13.5 6.75 6.75 0 000-13.5zM2.25 10.5a8.25 8.25 0 1114.59 5.28l4.69 4.69a.75.75 0 11-1.06 1.06l-4.69-4.69A8.25 8.25 0 012.25 10.5z", clipRule: "evenodd" }) });
3299
- var SearchInput = React19.forwardRef(function SearchInput2({ value, onChange, disabled, label, htmlFor, placeholder, name, inputStyle, style, layout = "vertical", size = "md", icon, helperText, className }, ref) {
3346
+ var SearchInput = React20.forwardRef(function SearchInput2({ value, onChange, disabled, label, htmlFor, placeholder, name, inputStyle, style, layout = "vertical", size = "md", icon, helperText, className }, ref) {
3300
3347
  return /* @__PURE__ */ jsx(Field, { className, label, htmlFor, layout, helperText, children: /* @__PURE__ */ jsxs(
3301
3348
  "div",
3302
3349
  {
@@ -3797,7 +3844,7 @@ function TableBody({
3797
3844
  return /* @__PURE__ */ jsx("tbody", { children: rows.map((row, i) => {
3798
3845
  const rowKey = getRowKey(row, i);
3799
3846
  const isExpanded = expanded.has(rowKey);
3800
- return /* @__PURE__ */ jsxs(React19.Fragment, { children: [
3847
+ return /* @__PURE__ */ jsxs(React20.Fragment, { children: [
3801
3848
  /* @__PURE__ */ jsxs(
3802
3849
  "tr",
3803
3850
  {
@@ -4341,8 +4388,8 @@ function MegaMenuLink({ href, icon, description, active, onClick, children, clas
4341
4388
  function MegaMenuFeatured({ children, className = "" }) {
4342
4389
  return /* @__PURE__ */ jsx("div", { className: ["min-w-0 rounded-lg bg-surface-raised border border-border p-4 flex flex-col", className].filter(Boolean).join(" "), children });
4343
4390
  }
4344
- var elementsOfType = (children, type) => React19.Children.toArray(children).filter(
4345
- (c) => React19.isValidElement(c) && c.type === type
4391
+ var elementsOfType = (children, type) => React20.Children.toArray(children).filter(
4392
+ (c) => React20.isValidElement(c) && c.type === type
4346
4393
  );
4347
4394
  var MOBILE_CHEVRON = /* @__PURE__ */ jsx(
4348
4395
  "svg",
@@ -4379,9 +4426,9 @@ function MobileLinkRow({ link, onNavigate }) {
4379
4426
  );
4380
4427
  }
4381
4428
  function MobilePanel({ panel, onNavigate }) {
4382
- const nodes = React19.Children.toArray(panel.props.children);
4429
+ const nodes = React20.Children.toArray(panel.props.children);
4383
4430
  return /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-4 px-2 pb-3 pt-1", children: nodes.map((node, i) => {
4384
- if (!React19.isValidElement(node)) return null;
4431
+ if (!React20.isValidElement(node)) return null;
4385
4432
  const el = node;
4386
4433
  if (el.type === MegaMenuSection) {
4387
4434
  const { title, children } = el.props;
@@ -4674,7 +4721,7 @@ function ThemeProvider({
4674
4721
  className = "",
4675
4722
  style
4676
4723
  }) {
4677
- const id = React19.useId().replace(/:/g, "");
4724
+ const id = React20.useId().replace(/:/g, "");
4678
4725
  const scopeClass = `geo-th-${id}`;
4679
4726
  const divRef = useRef(null);
4680
4727
  useEffect(() => {
@@ -6678,7 +6725,7 @@ function OtpInput({
6678
6725
  emit(valid.join(""));
6679
6726
  focusBox(valid.length);
6680
6727
  };
6681
- return /* @__PURE__ */ jsx(Field, { className, label, htmlFor, errorId, errorMessage, required, layout, helperText, children: /* @__PURE__ */ jsx("div", { className: "flex items-center gap-2", role: "group", "aria-label": typeof label === "string" ? label : "One-time code", children: chars.map((char, idx) => /* @__PURE__ */ jsxs(React19.Fragment, { children: [
6728
+ return /* @__PURE__ */ jsx(Field, { className, label, htmlFor, errorId, errorMessage, required, layout, helperText, children: /* @__PURE__ */ jsx("div", { className: "flex items-center gap-2", role: "group", "aria-label": typeof label === "string" ? label : "One-time code", children: chars.map((char, idx) => /* @__PURE__ */ jsxs(React20.Fragment, { children: [
6682
6729
  /* @__PURE__ */ jsx(
6683
6730
  "input",
6684
6731
  {
@@ -7886,12 +7933,12 @@ function CreditCardForm({
7886
7933
  }
7887
7934
  ) })
7888
7935
  ] }),
7889
- !hideSubmit && /* @__PURE__ */ jsx(Button, { content: submitLabel, buttonType: "submit", variant: "primary", disabled })
7936
+ !hideSubmit && /* @__PURE__ */ jsx(Button_default, { content: submitLabel, buttonType: "submit", variant: "primary", disabled })
7890
7937
  ]
7891
7938
  }
7892
7939
  );
7893
7940
  }
7894
7941
 
7895
- export { Accordion_default as Accordion, AppShell, AutoComplete, Avatar, Badge, Box, Breadcrumbs, Button, CARD_BRANDS, Calendar2 as Calendar, Card_default as Card, CardCarousel, Cart, Catalog, CatalogCarousel, CatalogGrid, Checkbox, ColorPicker, ContextMenu, CreditCardForm, DateRangePicker, Drawer, Dropdown, FAB, FadingBase, Field, FieldHelpIcon, FieldLabel, FileInput, Flex, Form, FormContext, FormField, FormStore, Grid2 as Grid, GridCard, icons_default as Icon, IconButton, Kbd, List2 as List, LoadingSpinner, MegaMenu_default as MegaMenu, Modal, NotificationProvider, NumberInput, OpaqueGridCard, OtpInput, Password, PopConfirm, Portal, RadioGroup, Rating, ScalableContainer, SearchInput_default as SearchInput, SegmentedControl, Sidebar, SkeletonBox, SkeletonCard, SkeletonCircle, SkeletonText, Slider, Statistic, Switch, Table, Tabs_default as Tabs, TagsInput, DatePicker as Temporal, TextArea, TextInput, ThemeProvider, ThemeSwitch, TimePicker, Tooltip, TooltipProvider, TopBar, Tree, TreeSelect, Typography, Wizard, cardNumberError, cvvError, detectBrand, expiryError, fieldShell, formatCardNumber, formatExpiry, isRequired, luhnValid, onlyDigits, patterns, runFieldRules, useFieldArray, useForm, useFormField, useFormStore, useNotification };
7942
+ export { Accordion_default as Accordion, AppShell, AutoComplete, Avatar, Badge, Box, Breadcrumbs, Button_default as Button, CARD_BRANDS, Calendar2 as Calendar, Card_default as Card, CardCarousel, Cart, Catalog, CatalogCarousel, CatalogGrid, Checkbox, ColorPicker, ContextMenu, CreditCardForm, DateRangePicker, Drawer, Dropdown, FAB, FadingBase, Field, FieldHelpIcon, FieldLabel, FileInput, Flex, Form, FormContext, FormField, FormStore, Grid2 as Grid, GridCard, icons_default as Icon, IconButton, Kbd, List2 as List, LoadingSpinner, MegaMenu_default as MegaMenu, Modal, NotificationProvider, NumberInput, OpaqueGridCard, OtpInput, Password, PopConfirm, Portal, RadioGroup, Rating, ScalableContainer, SearchInput_default as SearchInput, SegmentedControl, Sidebar, SkeletonBox, SkeletonCard, SkeletonCircle, SkeletonText, Slider, Statistic, Switch, Table, Tabs_default as Tabs, TagsInput, DatePicker as Temporal, TextArea, TextInput, ThemeProvider, ThemeSwitch, TimePicker, Tooltip, TooltipProvider, TopBar, Tree, TreeSelect, Typography, Wizard, cardNumberError, cvvError, detectBrand, expiryError, fieldShell, formatCardNumber, formatExpiry, isRequired, luhnValid, onlyDigits, patterns, runFieldRules, useFieldArray, useForm, useFormField, useFormStore, useNotification };
7896
7943
  //# sourceMappingURL=index.js.map
7897
7944
  //# sourceMappingURL=index.js.map