@geomak/ui 7.5.1 → 7.5.3
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.cjs +385 -366
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +8 -5
- package/dist/index.d.ts +8 -5
- package/dist/index.js +93 -74
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -370,29 +370,32 @@ declare function Typography({ variant, as, color, weight, align, truncate, muted
|
|
|
370
370
|
|
|
371
371
|
type IconButtonVariant = 'primary' | 'bordered' | 'ghost';
|
|
372
372
|
interface IconButtonProps {
|
|
373
|
-
icon?:
|
|
374
|
-
onClick?:
|
|
373
|
+
icon?: react__default.ReactNode;
|
|
374
|
+
onClick?: react__default.MouseEventHandler<HTMLButtonElement>;
|
|
375
375
|
/** Visual style. Defaults to `'primary'`. */
|
|
376
376
|
type?: IconButtonVariant;
|
|
377
377
|
buttonType?: 'button' | 'submit' | 'reset';
|
|
378
378
|
disabled?: boolean;
|
|
379
379
|
size?: 'sm' | 'md' | 'lg';
|
|
380
380
|
loading?: boolean;
|
|
381
|
-
loadingIcon?:
|
|
381
|
+
loadingIcon?: react__default.ReactNode;
|
|
382
382
|
title?: string;
|
|
383
383
|
/** Extra classes appended to the button. */
|
|
384
384
|
className?: string;
|
|
385
385
|
/** Inline style on the button. */
|
|
386
|
-
style?:
|
|
386
|
+
style?: react__default.CSSProperties;
|
|
387
387
|
}
|
|
388
388
|
/**
|
|
389
389
|
* Square icon-only button.
|
|
390
390
|
*
|
|
391
|
+
* Uses `React.forwardRef` so it works as a Radix `asChild` trigger (Popover,
|
|
392
|
+
* PopConfirm, Tooltip, etc.) — those need a DOM ref to anchor floating content.
|
|
393
|
+
*
|
|
391
394
|
* @example
|
|
392
395
|
* <IconButton icon={<Icon.Search />} onClick={doSearch} />
|
|
393
396
|
* <IconButton type="bordered" icon={<Icon.Edit />} />
|
|
394
397
|
*/
|
|
395
|
-
declare
|
|
398
|
+
declare const IconButton: react__default.ForwardRefExoticComponent<IconButtonProps & react__default.RefAttributes<HTMLButtonElement>>;
|
|
396
399
|
|
|
397
400
|
interface ButtonProps extends Omit<react__default.ButtonHTMLAttributes<HTMLButtonElement>, 'type' | 'content'> {
|
|
398
401
|
/** Button content (text or nodes). */
|
package/dist/index.d.ts
CHANGED
|
@@ -370,29 +370,32 @@ declare function Typography({ variant, as, color, weight, align, truncate, muted
|
|
|
370
370
|
|
|
371
371
|
type IconButtonVariant = 'primary' | 'bordered' | 'ghost';
|
|
372
372
|
interface IconButtonProps {
|
|
373
|
-
icon?:
|
|
374
|
-
onClick?:
|
|
373
|
+
icon?: react__default.ReactNode;
|
|
374
|
+
onClick?: react__default.MouseEventHandler<HTMLButtonElement>;
|
|
375
375
|
/** Visual style. Defaults to `'primary'`. */
|
|
376
376
|
type?: IconButtonVariant;
|
|
377
377
|
buttonType?: 'button' | 'submit' | 'reset';
|
|
378
378
|
disabled?: boolean;
|
|
379
379
|
size?: 'sm' | 'md' | 'lg';
|
|
380
380
|
loading?: boolean;
|
|
381
|
-
loadingIcon?:
|
|
381
|
+
loadingIcon?: react__default.ReactNode;
|
|
382
382
|
title?: string;
|
|
383
383
|
/** Extra classes appended to the button. */
|
|
384
384
|
className?: string;
|
|
385
385
|
/** Inline style on the button. */
|
|
386
|
-
style?:
|
|
386
|
+
style?: react__default.CSSProperties;
|
|
387
387
|
}
|
|
388
388
|
/**
|
|
389
389
|
* Square icon-only button.
|
|
390
390
|
*
|
|
391
|
+
* Uses `React.forwardRef` so it works as a Radix `asChild` trigger (Popover,
|
|
392
|
+
* PopConfirm, Tooltip, etc.) — those need a DOM ref to anchor floating content.
|
|
393
|
+
*
|
|
391
394
|
* @example
|
|
392
395
|
* <IconButton icon={<Icon.Search />} onClick={doSearch} />
|
|
393
396
|
* <IconButton type="bordered" icon={<Icon.Edit />} />
|
|
394
397
|
*/
|
|
395
|
-
declare
|
|
398
|
+
declare const IconButton: react__default.ForwardRefExoticComponent<IconButtonProps & react__default.RefAttributes<HTMLButtonElement>>;
|
|
396
399
|
|
|
397
400
|
interface ButtonProps extends Omit<react__default.ButtonHTMLAttributes<HTMLButtonElement>, 'type' | 'content'> {
|
|
398
401
|
/** Button content (text or nodes). */
|
package/dist/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export { icons_default as Icon, createIcon } from './chunk-KAFJJO5O.js';
|
|
2
2
|
import { colors_default } from './chunk-DXOWXLKK.js';
|
|
3
3
|
export { colors_default as COLORS, PALETTE as palette, semanticTokens, vars } from './chunk-DXOWXLKK.js';
|
|
4
|
-
import
|
|
4
|
+
import React31, { useMemo, createContext, useState, useEffect, useId, useCallback, useRef, useContext, useSyncExternalStore, useLayoutEffect } from 'react';
|
|
5
5
|
import { createPortal } from 'react-dom';
|
|
6
|
-
import {
|
|
6
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
7
7
|
import * as AvatarPrimitive from '@radix-ui/react-avatar';
|
|
8
8
|
import * as DropdownMenu2 from '@radix-ui/react-dropdown-menu';
|
|
9
9
|
import * as Dialog from '@radix-ui/react-dialog';
|
|
@@ -452,7 +452,7 @@ function Typography({
|
|
|
452
452
|
}
|
|
453
453
|
);
|
|
454
454
|
}
|
|
455
|
-
|
|
455
|
+
var IconButton = React31.forwardRef(function IconButton2({
|
|
456
456
|
icon,
|
|
457
457
|
onClick,
|
|
458
458
|
type = "primary",
|
|
@@ -464,7 +464,7 @@ function IconButton({
|
|
|
464
464
|
title,
|
|
465
465
|
className = "",
|
|
466
466
|
style
|
|
467
|
-
}) {
|
|
467
|
+
}, ref) {
|
|
468
468
|
const colorScheme = useMemo(() => {
|
|
469
469
|
if (type === "primary") {
|
|
470
470
|
return "bg-accent text-accent-fg hover:bg-accent-hover";
|
|
@@ -480,6 +480,7 @@ function IconButton({
|
|
|
480
480
|
return /* @__PURE__ */ jsx(
|
|
481
481
|
"button",
|
|
482
482
|
{
|
|
483
|
+
ref,
|
|
483
484
|
type: buttonType,
|
|
484
485
|
disabled: disabled || loading,
|
|
485
486
|
onClick,
|
|
@@ -490,7 +491,9 @@ function IconButton({
|
|
|
490
491
|
children: loading ? loadingIcon : icon
|
|
491
492
|
}
|
|
492
493
|
);
|
|
493
|
-
}
|
|
494
|
+
});
|
|
495
|
+
IconButton.displayName = "IconButton";
|
|
496
|
+
var IconButton_default = IconButton;
|
|
494
497
|
var VARIANT_CLASSES = {
|
|
495
498
|
primary: [
|
|
496
499
|
"bg-accent text-accent-fg",
|
|
@@ -558,7 +561,7 @@ var SIZE_CLASSES = {
|
|
|
558
561
|
md: "h-9 px-4 text-sm gap-1.5 rounded-lg",
|
|
559
562
|
lg: "h-11 px-5 text-sm gap-2 rounded-xl"
|
|
560
563
|
};
|
|
561
|
-
var Button =
|
|
564
|
+
var Button = React31.forwardRef(function Button2({
|
|
562
565
|
content,
|
|
563
566
|
variant = "primary",
|
|
564
567
|
size = "md",
|
|
@@ -666,7 +669,7 @@ function MenuButton({
|
|
|
666
669
|
"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
|
|
667
670
|
"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95"
|
|
668
671
|
].join(" "),
|
|
669
|
-
children: items.map((item) => /* @__PURE__ */ jsxs(
|
|
672
|
+
children: items.map((item) => /* @__PURE__ */ jsxs(React31.Fragment, { children: [
|
|
670
673
|
item.separatorBefore && /* @__PURE__ */ jsx(DropdownMenu2.Separator, { className: "my-1 h-px bg-border" }),
|
|
671
674
|
/* @__PURE__ */ jsxs(
|
|
672
675
|
DropdownMenu2.Item,
|
|
@@ -1754,7 +1757,7 @@ function Kbd({
|
|
|
1754
1757
|
style
|
|
1755
1758
|
}) {
|
|
1756
1759
|
if (keys && keys.length > 0) {
|
|
1757
|
-
return /* @__PURE__ */ jsx("span", { className: cx("inline-flex items-center gap-1", className), style, children: keys.map((k, i) => /* @__PURE__ */ jsxs(
|
|
1760
|
+
return /* @__PURE__ */ jsx("span", { className: cx("inline-flex items-center gap-1", className), style, children: keys.map((k, i) => /* @__PURE__ */ jsxs(React31.Fragment, { children: [
|
|
1758
1761
|
i > 0 && /* @__PURE__ */ jsx("span", { className: "text-foreground-muted text-xs select-none", children: separator }),
|
|
1759
1762
|
/* @__PURE__ */ jsx("kbd", { className: [cap, SIZE3[size]].join(" "), children: k })
|
|
1760
1763
|
] }, `${k}-${i}`)) });
|
|
@@ -1846,7 +1849,7 @@ function FlatCarousel({
|
|
|
1846
1849
|
style
|
|
1847
1850
|
}) {
|
|
1848
1851
|
const scrollerRef = useRef(null);
|
|
1849
|
-
const slides =
|
|
1852
|
+
const slides = React31.Children.toArray(children);
|
|
1850
1853
|
const [active, setActive] = useState(0);
|
|
1851
1854
|
const [atStart, setAtStart] = useState(true);
|
|
1852
1855
|
const [atEnd, setAtEnd] = useState(false);
|
|
@@ -1901,7 +1904,7 @@ function RotatingCarousel({
|
|
|
1901
1904
|
className = "",
|
|
1902
1905
|
style
|
|
1903
1906
|
}) {
|
|
1904
|
-
const slides =
|
|
1907
|
+
const slides = React31.Children.toArray(children);
|
|
1905
1908
|
const count = slides.length;
|
|
1906
1909
|
const [active, setActive] = useState(0);
|
|
1907
1910
|
const reduced = useReducedMotion();
|
|
@@ -2260,7 +2263,7 @@ function Chat({
|
|
|
2260
2263
|
}
|
|
2261
2264
|
),
|
|
2262
2265
|
/* @__PURE__ */ jsx(
|
|
2263
|
-
|
|
2266
|
+
IconButton_default,
|
|
2264
2267
|
{
|
|
2265
2268
|
type: "primary",
|
|
2266
2269
|
icon: /* @__PURE__ */ jsx(SendIcon, {}),
|
|
@@ -2475,52 +2478,68 @@ function PopConfirm({
|
|
|
2475
2478
|
onCancel?.();
|
|
2476
2479
|
setOpen(false);
|
|
2477
2480
|
};
|
|
2478
|
-
return /* @__PURE__ */ jsxs(
|
|
2479
|
-
|
|
2480
|
-
|
|
2481
|
-
|
|
2482
|
-
{
|
|
2483
|
-
|
|
2484
|
-
|
|
2485
|
-
|
|
2486
|
-
|
|
2487
|
-
|
|
2488
|
-
|
|
2489
|
-
|
|
2490
|
-
|
|
2491
|
-
|
|
2492
|
-
|
|
2493
|
-
|
|
2494
|
-
|
|
2495
|
-
|
|
2496
|
-
|
|
2497
|
-
|
|
2498
|
-
|
|
2499
|
-
|
|
2500
|
-
|
|
2501
|
-
|
|
2502
|
-
|
|
2503
|
-
|
|
2504
|
-
|
|
2505
|
-
|
|
2506
|
-
|
|
2507
|
-
|
|
2508
|
-
|
|
2509
|
-
|
|
2510
|
-
|
|
2511
|
-
|
|
2512
|
-
|
|
2513
|
-
|
|
2514
|
-
|
|
2515
|
-
|
|
2516
|
-
|
|
2517
|
-
|
|
2518
|
-
|
|
2519
|
-
|
|
2520
|
-
|
|
2521
|
-
|
|
2522
|
-
|
|
2523
|
-
|
|
2481
|
+
return /* @__PURE__ */ jsxs(
|
|
2482
|
+
Popover.Root,
|
|
2483
|
+
{
|
|
2484
|
+
open: isOpen,
|
|
2485
|
+
onOpenChange: (o) => {
|
|
2486
|
+
if (o) setOpen(true);
|
|
2487
|
+
else if (!loading) handleCancel();
|
|
2488
|
+
},
|
|
2489
|
+
children: [
|
|
2490
|
+
/* @__PURE__ */ jsx(Popover.Trigger, { asChild: true, children }),
|
|
2491
|
+
/* @__PURE__ */ jsx(Popover.Portal, { children: /* @__PURE__ */ jsxs(
|
|
2492
|
+
Popover.Content,
|
|
2493
|
+
{
|
|
2494
|
+
side,
|
|
2495
|
+
sideOffset: 8,
|
|
2496
|
+
collisionPadding: 12,
|
|
2497
|
+
className: cx("z-[400] focus:outline-none", className),
|
|
2498
|
+
onEscapeKeyDown: (e) => {
|
|
2499
|
+
if (loading) e.preventDefault();
|
|
2500
|
+
},
|
|
2501
|
+
onInteractOutside: (e) => {
|
|
2502
|
+
if (loading) e.preventDefault();
|
|
2503
|
+
},
|
|
2504
|
+
children: [
|
|
2505
|
+
/* @__PURE__ */ jsxs(
|
|
2506
|
+
motion.div,
|
|
2507
|
+
{
|
|
2508
|
+
initial: { opacity: 0, scale: 0.95 },
|
|
2509
|
+
animate: { opacity: 1, scale: 1 },
|
|
2510
|
+
transition: { duration: 0.12, ease: [0.16, 1, 0.3, 1] },
|
|
2511
|
+
className: "w-64 rounded-lg border border-border bg-surface p-3.5 shadow-lg",
|
|
2512
|
+
children: [
|
|
2513
|
+
/* @__PURE__ */ jsxs("div", { className: "flex gap-2.5", children: [
|
|
2514
|
+
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 }),
|
|
2515
|
+
/* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
|
|
2516
|
+
/* @__PURE__ */ jsx("div", { className: "text-sm font-medium text-foreground", children: title }),
|
|
2517
|
+
description && /* @__PURE__ */ jsx("div", { className: "mt-1 text-xs text-foreground-secondary leading-snug", children: description })
|
|
2518
|
+
] })
|
|
2519
|
+
] }),
|
|
2520
|
+
/* @__PURE__ */ jsxs("div", { className: "mt-3 flex justify-end gap-2", children: [
|
|
2521
|
+
/* @__PURE__ */ jsx(Button_default, { content: cancelText, size: "sm", variant: "ghost", disabled: loading, onClick: handleCancel }),
|
|
2522
|
+
/* @__PURE__ */ jsx(
|
|
2523
|
+
Button_default,
|
|
2524
|
+
{
|
|
2525
|
+
content: confirmText,
|
|
2526
|
+
size: "sm",
|
|
2527
|
+
variant: CONFIRM_VARIANT[tone],
|
|
2528
|
+
loading,
|
|
2529
|
+
onClick: handleConfirm
|
|
2530
|
+
}
|
|
2531
|
+
)
|
|
2532
|
+
] })
|
|
2533
|
+
]
|
|
2534
|
+
}
|
|
2535
|
+
),
|
|
2536
|
+
/* @__PURE__ */ jsx(Popover.Arrow, { className: "fill-surface" })
|
|
2537
|
+
]
|
|
2538
|
+
}
|
|
2539
|
+
) })
|
|
2540
|
+
]
|
|
2541
|
+
}
|
|
2542
|
+
);
|
|
2524
2543
|
}
|
|
2525
2544
|
var DEFAULT_EVENTS = ["mousemove", "mousedown", "keydown", "touchstart", "scroll", "wheel"];
|
|
2526
2545
|
var formatTime = (ms) => {
|
|
@@ -2881,8 +2900,8 @@ function Scheduler({
|
|
|
2881
2900
|
children: [
|
|
2882
2901
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center justify-between gap-3 border-b border-border px-4 py-3", children: [
|
|
2883
2902
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
2884
|
-
/* @__PURE__ */ jsx(
|
|
2885
|
-
/* @__PURE__ */ jsx(
|
|
2903
|
+
/* @__PURE__ */ jsx(IconButton_default, { type: "bordered", size: "sm", icon: /* @__PURE__ */ jsx(Chevron4, { dir: "left" }), title: "Previous", onClick: () => go(-1) }),
|
|
2904
|
+
/* @__PURE__ */ jsx(IconButton_default, { type: "bordered", size: "sm", icon: /* @__PURE__ */ jsx(Chevron4, { dir: "right" }), title: "Next", onClick: () => go(1) }),
|
|
2886
2905
|
/* @__PURE__ */ jsx(Button_default, { variant: "ghost", size: "sm", content: "Today", onClick: goToday }),
|
|
2887
2906
|
/* @__PURE__ */ jsx(
|
|
2888
2907
|
MonthYearPicker,
|
|
@@ -3006,9 +3025,9 @@ function MonthYearPicker({ label, cursor, onPick }) {
|
|
|
3006
3025
|
].join(" "),
|
|
3007
3026
|
children: [
|
|
3008
3027
|
/* @__PURE__ */ jsxs("div", { className: "mb-2 flex items-center justify-between", children: [
|
|
3009
|
-
/* @__PURE__ */ jsx(
|
|
3028
|
+
/* @__PURE__ */ jsx(IconButton_default, { size: "sm", type: "bordered", icon: /* @__PURE__ */ jsx(Chevron4, { dir: "left" }), title: "Previous year", onClick: () => setViewYear((y) => y - 1) }),
|
|
3010
3029
|
/* @__PURE__ */ jsx("span", { className: "text-sm font-semibold tabular-nums text-foreground", children: viewYear }),
|
|
3011
|
-
/* @__PURE__ */ jsx(
|
|
3030
|
+
/* @__PURE__ */ jsx(IconButton_default, { size: "sm", type: "bordered", icon: /* @__PURE__ */ jsx(Chevron4, { dir: "right" }), title: "Next year", onClick: () => setViewYear((y) => y + 1) })
|
|
3012
3031
|
] }),
|
|
3013
3032
|
/* @__PURE__ */ jsx("div", { className: "grid grid-cols-3 gap-1", children: MONTHS_SHORT.map((m, i) => {
|
|
3014
3033
|
const current = i === cursor.getMonth() && viewYear === cursor.getFullYear();
|
|
@@ -3392,7 +3411,7 @@ function CartButton({
|
|
|
3392
3411
|
const { getItemCount } = useCart();
|
|
3393
3412
|
const count = getItemCount();
|
|
3394
3413
|
return /* @__PURE__ */ jsx(Badge, { count, max, tone: badgeTone, className, children: /* @__PURE__ */ jsx(
|
|
3395
|
-
|
|
3414
|
+
IconButton_default,
|
|
3396
3415
|
{
|
|
3397
3416
|
type: variant,
|
|
3398
3417
|
icon,
|
|
@@ -5221,7 +5240,7 @@ function Wizard({
|
|
|
5221
5240
|
] });
|
|
5222
5241
|
}
|
|
5223
5242
|
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" }) });
|
|
5224
|
-
var SearchInput =
|
|
5243
|
+
var SearchInput = React31.forwardRef(function SearchInput2({ value, onChange, disabled, label, htmlFor, placeholder, name, inputStyle, style, layout = "vertical", size = "md", icon, helperText, className }, ref) {
|
|
5225
5244
|
return /* @__PURE__ */ jsx(Field, { className, label, htmlFor, layout, helperText, children: /* @__PURE__ */ jsxs(
|
|
5226
5245
|
"div",
|
|
5227
5246
|
{
|
|
@@ -5519,7 +5538,7 @@ function TableBody({
|
|
|
5519
5538
|
return /* @__PURE__ */ jsx("tbody", { children: rows.map((row, i) => {
|
|
5520
5539
|
const rowKey = getRowKey(row, i);
|
|
5521
5540
|
const isExpanded = expanded.has(rowKey);
|
|
5522
|
-
return /* @__PURE__ */ jsxs(
|
|
5541
|
+
return /* @__PURE__ */ jsxs(React31.Fragment, { children: [
|
|
5523
5542
|
/* @__PURE__ */ jsxs(
|
|
5524
5543
|
"tr",
|
|
5525
5544
|
{
|
|
@@ -5970,7 +5989,7 @@ function FlyoutItems({ items }) {
|
|
|
5970
5989
|
}
|
|
5971
5990
|
function CollapsedFlyout({ item, trigger }) {
|
|
5972
5991
|
const [open, setOpen] = useState(false);
|
|
5973
|
-
const closeTimer =
|
|
5992
|
+
const closeTimer = React31.useRef(void 0);
|
|
5974
5993
|
const openNow = () => {
|
|
5975
5994
|
window.clearTimeout(closeTimer.current);
|
|
5976
5995
|
setOpen(true);
|
|
@@ -5979,7 +5998,7 @@ function CollapsedFlyout({ item, trigger }) {
|
|
|
5979
5998
|
window.clearTimeout(closeTimer.current);
|
|
5980
5999
|
closeTimer.current = window.setTimeout(() => setOpen(false), 150);
|
|
5981
6000
|
};
|
|
5982
|
-
|
|
6001
|
+
React31.useEffect(() => () => window.clearTimeout(closeTimer.current), []);
|
|
5983
6002
|
return /* @__PURE__ */ jsxs(DropdownMenu2.Root, { open, onOpenChange: setOpen, modal: false, children: [
|
|
5984
6003
|
/* @__PURE__ */ jsx(
|
|
5985
6004
|
DropdownMenu2.Trigger,
|
|
@@ -6271,8 +6290,8 @@ function MegaMenuLink({ href, icon, description, active, onClick, children, clas
|
|
|
6271
6290
|
function MegaMenuFeatured({ children, className = "" }) {
|
|
6272
6291
|
return /* @__PURE__ */ jsx("div", { className: cx("min-w-0 rounded-lg bg-surface-raised border border-border p-4 flex flex-col", className), children });
|
|
6273
6292
|
}
|
|
6274
|
-
var elementsOfType = (children, type) =>
|
|
6275
|
-
(c) =>
|
|
6293
|
+
var elementsOfType = (children, type) => React31.Children.toArray(children).filter(
|
|
6294
|
+
(c) => React31.isValidElement(c) && c.type === type
|
|
6276
6295
|
);
|
|
6277
6296
|
var MOBILE_CHEVRON = /* @__PURE__ */ jsx(
|
|
6278
6297
|
"svg",
|
|
@@ -6309,9 +6328,9 @@ function MobileLinkRow({ link, onNavigate }) {
|
|
|
6309
6328
|
);
|
|
6310
6329
|
}
|
|
6311
6330
|
function MobilePanel({ panel, onNavigate }) {
|
|
6312
|
-
const nodes =
|
|
6331
|
+
const nodes = React31.Children.toArray(panel.props.children);
|
|
6313
6332
|
return /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-4 px-2 pb-3 pt-1", children: nodes.map((node, i) => {
|
|
6314
|
-
if (!
|
|
6333
|
+
if (!React31.isValidElement(node)) return null;
|
|
6315
6334
|
const el = node;
|
|
6316
6335
|
if (el.type === MegaMenuSection) {
|
|
6317
6336
|
const { title, children } = el.props;
|
|
@@ -6720,7 +6739,7 @@ function ThemeProvider({
|
|
|
6720
6739
|
className = "",
|
|
6721
6740
|
style
|
|
6722
6741
|
}) {
|
|
6723
|
-
const id =
|
|
6742
|
+
const id = React31.useId().replace(/:/g, "");
|
|
6724
6743
|
const scopeClass = `geo-th-${id}`;
|
|
6725
6744
|
const divRef = useRef(null);
|
|
6726
6745
|
useEffect(() => {
|
|
@@ -9028,7 +9047,7 @@ function OtpInput({
|
|
|
9028
9047
|
emit(valid.join(""));
|
|
9029
9048
|
focusBox(valid.length);
|
|
9030
9049
|
};
|
|
9031
|
-
return /* @__PURE__ */ jsx(Field, { className, label, htmlFor, errorId, errorMessage, required, layout, helperText, children: /* @__PURE__ */ jsx("div", { className: "flex flex-wrap items-center gap-2", role: "group", "aria-label": typeof label === "string" ? label : "One-time code", children: chars.map((char, idx) => /* @__PURE__ */ jsxs(
|
|
9050
|
+
return /* @__PURE__ */ jsx(Field, { className, label, htmlFor, errorId, errorMessage, required, layout, helperText, children: /* @__PURE__ */ jsx("div", { className: "flex flex-wrap items-center gap-2", role: "group", "aria-label": typeof label === "string" ? label : "One-time code", children: chars.map((char, idx) => /* @__PURE__ */ jsxs(React31.Fragment, { children: [
|
|
9032
9051
|
/* @__PURE__ */ jsx(
|
|
9033
9052
|
"input",
|
|
9034
9053
|
{
|
|
@@ -10087,7 +10106,7 @@ function Blog({
|
|
|
10087
10106
|
post.tag != null && !post.image && /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(Badge, { tone: "accent", variant: "soft", size: "sm", children: post.tag }) }),
|
|
10088
10107
|
/* @__PURE__ */ jsx("h3", { className: "text-base font-semibold leading-snug text-foreground transition-colors group-hover:text-accent", children: post.title }),
|
|
10089
10108
|
post.excerpt != null && /* @__PURE__ */ jsx("p", { className: "line-clamp-3 text-sm leading-relaxed text-foreground-secondary", children: post.excerpt }),
|
|
10090
|
-
meta.length > 0 && /* @__PURE__ */ jsx("div", { className: "mt-auto flex flex-wrap items-center gap-x-2 gap-y-1 pt-3 text-xs text-foreground-muted", children: meta.map((m, j) => /* @__PURE__ */ jsxs(
|
|
10109
|
+
meta.length > 0 && /* @__PURE__ */ jsx("div", { className: "mt-auto flex flex-wrap items-center gap-x-2 gap-y-1 pt-3 text-xs text-foreground-muted", children: meta.map((m, j) => /* @__PURE__ */ jsxs(React31.Fragment, { children: [
|
|
10091
10110
|
j > 0 && /* @__PURE__ */ jsx("span", { "aria-hidden": "true", children: "\xB7" }),
|
|
10092
10111
|
/* @__PURE__ */ jsx("span", { children: m })
|
|
10093
10112
|
] }, j)) })
|
|
@@ -10260,6 +10279,6 @@ function LeadCapture({
|
|
|
10260
10279
|
);
|
|
10261
10280
|
}
|
|
10262
10281
|
|
|
10263
|
-
export { Accordion_default as Accordion, AppShell, AutoComplete, Avatar, Badge, Blog, Box, Breadcrumbs, Button_default as Button, CARD_BRANDS, Card_default as Card, CardCarousel, Cart, CartButton, CartProvider, Catalog, CatalogCarousel, CatalogGrid, Chat, Checkbox, Checkout, ColorPicker, ContextMenu, CookieConsent, CreditCardForm, DateRangePicker, Drawer, Dropdown, EmptyCart, FAB, FadingBase, FeatureGrid, Field, FieldHelpIcon, FieldLabel, FileInput, Flex, Form, FormContext, FormField, FormStore, Grid, GridCard, IconButton, Jumbotron, Kbd, LeadCapture, List2 as List, LoadingSpinner, LogoutTimer, MegaMenu_default as MegaMenu, MenuButton, Modal, NotificationProvider, NumberInput, OpaqueGridCard, OtpInput, Parallax, Password, PasswordStrength, PopConfirm, Portal, PricingPlans, RadioGroup, RadioTile, Rating, ScalableContainer, Scheduler, SearchInput_default as SearchInput, SecureLayout, SegmentedControl, Sidebar, SkeletonBox, SkeletonCard, SkeletonCircle, SkeletonText, SlideShow, Slider, Socials, Statistic, Stepper, Switch, Table, Tabs_default as Tabs, TagsInput, DatePicker as Temporal, Testimonials, TextArea, TextInput, ThemeProvider, ThemeSwitch, TimePicker, Timeline, Tooltip, TooltipProvider, TopBar, Tree, TreeSelect, Typography, Video, VirtualList, Wizard, cardNumberError, cvvError, cx, defaultPasswordRules, detectBrand, expiryError, fieldShell, formatCardNumber, formatExpiry, isRequired, luhnValid, onlyDigits, patterns, runFieldRules, scorePassword, useBreakpoint, useCart, useFieldArray, useForm, useFormField, useFormStore, useJwt, useLocalStorage, useMediaQuery, useNotification };
|
|
10282
|
+
export { Accordion_default as Accordion, AppShell, AutoComplete, Avatar, Badge, Blog, Box, Breadcrumbs, Button_default as Button, CARD_BRANDS, Card_default as Card, CardCarousel, Cart, CartButton, CartProvider, Catalog, CatalogCarousel, CatalogGrid, Chat, Checkbox, Checkout, ColorPicker, ContextMenu, CookieConsent, CreditCardForm, DateRangePicker, Drawer, Dropdown, EmptyCart, FAB, FadingBase, FeatureGrid, Field, FieldHelpIcon, FieldLabel, FileInput, Flex, Form, FormContext, FormField, FormStore, Grid, GridCard, IconButton_default as IconButton, Jumbotron, Kbd, LeadCapture, List2 as List, LoadingSpinner, LogoutTimer, MegaMenu_default as MegaMenu, MenuButton, Modal, NotificationProvider, NumberInput, OpaqueGridCard, OtpInput, Parallax, Password, PasswordStrength, PopConfirm, Portal, PricingPlans, RadioGroup, RadioTile, Rating, ScalableContainer, Scheduler, SearchInput_default as SearchInput, SecureLayout, SegmentedControl, Sidebar, SkeletonBox, SkeletonCard, SkeletonCircle, SkeletonText, SlideShow, Slider, Socials, Statistic, Stepper, Switch, Table, Tabs_default as Tabs, TagsInput, DatePicker as Temporal, Testimonials, TextArea, TextInput, ThemeProvider, ThemeSwitch, TimePicker, Timeline, Tooltip, TooltipProvider, TopBar, Tree, TreeSelect, Typography, Video, VirtualList, Wizard, cardNumberError, cvvError, cx, defaultPasswordRules, detectBrand, expiryError, fieldShell, formatCardNumber, formatExpiry, isRequired, luhnValid, onlyDigits, patterns, runFieldRules, scorePassword, useBreakpoint, useCart, useFieldArray, useForm, useFormField, useFormStore, useJwt, useLocalStorage, useMediaQuery, useNotification };
|
|
10264
10283
|
//# sourceMappingURL=index.js.map
|
|
10265
10284
|
//# sourceMappingURL=index.js.map
|