@geomak/ui 6.13.0 → 6.15.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/{chunk-GKXP6OJJ.js → chunk-I2P4JJDB.js} +10 -5
- package/dist/chunk-I2P4JJDB.js.map +1 -0
- package/dist/{chunk-255PCZIW.cjs → chunk-OAV4TA4B.cjs} +10 -5
- package/dist/chunk-OAV4TA4B.cjs.map +1 -0
- package/dist/{index-CvyV3YPI.d.cts → index-5FQ64bx1.d.cts} +3 -0
- package/dist/{index-CvyV3YPI.d.ts → index-5FQ64bx1.d.ts} +3 -0
- package/dist/index.cjs +310 -263
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +11 -18
- package/dist/index.d.ts +11 -18
- package/dist/index.js +107 -60
- package/dist/index.js.map +1 -1
- package/dist/styles.css +14 -0
- package/dist/tokens/index.cjs +4 -4
- package/dist/tokens/index.d.cts +1 -1
- package/dist/tokens/index.d.ts +1 -1
- package/dist/tokens/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-255PCZIW.cjs.map +0 -1
- package/dist/chunk-GKXP6OJJ.js.map +0 -1
package/dist/index.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { C as COLORS, S as SemanticColorKey, a as SemanticSharedKey, V as VarColorKey, b as VarDensityKey, c as VarMotionKey, d as VarRadiusKey, e as VarShadowKey, f as VarTypoKey, g as VarZIndexKey, P as palette, s as semanticTokens, v as vars } from './index-
|
|
1
|
+
export { C as COLORS, S as SemanticColorKey, a as SemanticSharedKey, V as VarColorKey, b as VarDensityKey, c as VarMotionKey, d as VarRadiusKey, e as VarShadowKey, f as VarTypoKey, g as VarZIndexKey, P as palette, s as semanticTokens, v as vars } from './index-5FQ64bx1.cjs';
|
|
2
2
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
3
3
|
import * as React$1 from 'react';
|
|
4
4
|
import React__default from 'react';
|
|
@@ -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
|
-
/**
|
|
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
|
|
1280
|
-
* An async `onConfirm` keeps the confirm button in a loading state
|
|
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="
|
|
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
|
|
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
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { C as COLORS, S as SemanticColorKey, a as SemanticSharedKey, V as VarColorKey, b as VarDensityKey, c as VarMotionKey, d as VarRadiusKey, e as VarShadowKey, f as VarTypoKey, g as VarZIndexKey, P as palette, s as semanticTokens, v as vars } from './index-
|
|
1
|
+
export { C as COLORS, S as SemanticColorKey, a as SemanticSharedKey, V as VarColorKey, b as VarDensityKey, c as VarMotionKey, d as VarRadiusKey, e as VarShadowKey, f as VarTypoKey, g as VarZIndexKey, P as palette, s as semanticTokens, v as vars } from './index-5FQ64bx1.js';
|
|
2
2
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
3
3
|
import * as React$1 from 'react';
|
|
4
4
|
import React__default from 'react';
|
|
@@ -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
|
-
/**
|
|
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
|
|
1280
|
-
* An async `onConfirm` keeps the confirm button in a loading state
|
|
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="
|
|
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
|
|
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
|
-
import { colors_default } from './chunk-
|
|
2
|
-
export { colors_default as COLORS, PALETTE as palette, semanticTokens, vars } from './chunk-
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
1
|
+
import { colors_default } from './chunk-I2P4JJDB.js';
|
|
2
|
+
export { colors_default as COLORS, PALETTE as palette, semanticTokens, vars } from './chunk-I2P4JJDB.js';
|
|
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
|
-
|
|
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,
|
|
@@ -743,7 +768,7 @@ function Modal({
|
|
|
743
768
|
/* @__PURE__ */ jsx(AnimatePresence, { children: isOpen && /* @__PURE__ */ jsx(Dialog.Overlay, { asChild: true, children: /* @__PURE__ */ jsx(
|
|
744
769
|
motion.div,
|
|
745
770
|
{
|
|
746
|
-
className: "fixed inset-0 bg-
|
|
771
|
+
className: "fixed inset-0 bg-backdrop z-overlay",
|
|
747
772
|
initial: { opacity: 0 },
|
|
748
773
|
animate: { opacity: 1 },
|
|
749
774
|
exit: { opacity: 0 },
|
|
@@ -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
|
-
|
|
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
|
-
|
|
819
|
+
Button_default,
|
|
795
820
|
{
|
|
796
821
|
style: { width: 90 },
|
|
797
822
|
content: okText,
|
|
@@ -827,7 +852,7 @@ function Drawer({
|
|
|
827
852
|
/* @__PURE__ */ jsx(AnimatePresence, { children: isOpen && /* @__PURE__ */ jsx(Dialog.Overlay, { asChild: true, children: /* @__PURE__ */ jsx(
|
|
828
853
|
motion.div,
|
|
829
854
|
{
|
|
830
|
-
className: "fixed inset-0 bg-
|
|
855
|
+
className: "fixed inset-0 bg-backdrop z-overlay",
|
|
831
856
|
initial: { opacity: 0 },
|
|
832
857
|
animate: { opacity: 1 },
|
|
833
858
|
exit: { opacity: 0 },
|
|
@@ -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(
|
|
869
|
-
/* @__PURE__ */ jsx(
|
|
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(
|
|
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 =
|
|
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(
|
|
1977
|
-
|
|
1978
|
-
|
|
1979
|
-
|
|
1980
|
-
|
|
1981
|
-
|
|
1982
|
-
|
|
1983
|
-
|
|
1984
|
-
|
|
1985
|
-
|
|
1986
|
-
|
|
1987
|
-
|
|
1988
|
-
|
|
1989
|
-
|
|
1990
|
-
|
|
1991
|
-
|
|
1992
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 =
|
|
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(
|
|
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) =>
|
|
4345
|
-
(c) =>
|
|
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 =
|
|
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 (!
|
|
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 =
|
|
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(
|
|
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(
|
|
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
|