@geomak/ui 6.33.0 → 6.34.1

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.js CHANGED
@@ -1,8 +1,9 @@
1
+ export { icons_default as Icon, createIcon } from './chunk-KAFJJO5O.js';
1
2
  import { colors_default } from './chunk-I2P4JJDB.js';
2
3
  export { colors_default as COLORS, PALETTE as palette, semanticTokens, vars } from './chunk-I2P4JJDB.js';
3
- import React29, { createContext, forwardRef, useState, useEffect, useMemo, useId, useCallback, useRef, useContext, useSyncExternalStore, useLayoutEffect } from 'react';
4
- import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
4
+ import React28, { createContext, useState, useEffect, useMemo, useId, useCallback, useRef, useContext, useSyncExternalStore, useLayoutEffect } from 'react';
5
5
  import { createPortal } from 'react-dom';
6
+ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
6
7
  import * as AvatarPrimitive from '@radix-ui/react-avatar';
7
8
  import * as DropdownMenu from '@radix-ui/react-dropdown-menu';
8
9
  import * as Dialog from '@radix-ui/react-dialog';
@@ -19,283 +20,15 @@ import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
19
20
  import * as RadioGroupPrimitive from '@radix-ui/react-radio-group';
20
21
  import * as SliderPrimitive from '@radix-ui/react-slider';
21
22
 
22
- function createIcon(displayName, content, options = {}) {
23
- const { viewBox = "0 0 24 24", solid = false } = options;
24
- const Component = forwardRef(function Icon2({ size = 24, title, strokeWidth = 1.5, ...rest }, ref) {
25
- const a11y = title ? { role: "img", "aria-label": title } : { "aria-hidden": true, focusable: false };
26
- return /* @__PURE__ */ jsxs(
27
- "svg",
28
- {
29
- ref,
30
- xmlns: "http://www.w3.org/2000/svg",
31
- width: size,
32
- height: size,
33
- viewBox,
34
- fill: solid ? "currentColor" : "none",
35
- stroke: solid ? void 0 : "currentColor",
36
- strokeWidth: solid ? void 0 : strokeWidth,
37
- strokeLinecap: solid ? void 0 : "round",
38
- strokeLinejoin: solid ? void 0 : "round",
39
- ...a11y,
40
- ...rest,
41
- children: [
42
- title ? /* @__PURE__ */ jsx("title", { children: title }) : null,
43
- content
44
- ]
45
- }
46
- );
47
- });
48
- Component.displayName = displayName;
49
- return Component;
50
- }
51
- var ChevronUp = createIcon("ChevronUp", /* @__PURE__ */ jsx("path", { d: "m4.5 15.75 7.5-7.5 7.5 7.5" }));
52
- var ChevronDown = createIcon("ChevronDown", /* @__PURE__ */ jsx("path", { d: "m19.5 8.25-7.5 7.5-7.5-7.5" }));
53
- var ChevronLeft = createIcon("ChevronLeft", /* @__PURE__ */ jsx("path", { d: "M15.75 19.5 8.25 12l7.5-7.5" }));
54
- var ChevronRight = createIcon("ChevronRight", /* @__PURE__ */ jsx("path", { d: "m8.25 4.5 7.5 7.5-7.5 7.5" }));
55
- var ChevronsLeft = createIcon("ChevronsLeft", /* @__PURE__ */ jsx("path", { d: "M18.75 19.5 11.25 12l7.5-7.5m-6 15L5.25 12l7.5-7.5" }));
56
- var ChevronsRight = createIcon("ChevronsRight", /* @__PURE__ */ jsx("path", { d: "m5.25 4.5 7.5 7.5-7.5 7.5m6-15 7.5 7.5-7.5 7.5" }));
57
- var CaretUp = createIcon("CaretUp", /* @__PURE__ */ jsx("path", { d: "M12 8l6 8H6z" }), { solid: true });
58
- var CaretDown = createIcon("CaretDown", /* @__PURE__ */ jsx("path", { d: "M12 16 6 8h12z" }), { solid: true });
59
- var CaretLeft = createIcon("CaretLeft", /* @__PURE__ */ jsx("path", { d: "M8 12l8-6v12z" }), { solid: true });
60
- var CaretRight = createIcon("CaretRight", /* @__PURE__ */ jsx("path", { d: "M16 12 8 6v12z" }), { solid: true });
61
- var ArrowUp = createIcon("ArrowUp", /* @__PURE__ */ jsx("path", { d: "M4.5 10.5 12 3m0 0 7.5 7.5M12 3v18" }));
62
- var ArrowDown = createIcon("ArrowDown", /* @__PURE__ */ jsx("path", { d: "M19.5 13.5 12 21m0 0-7.5-7.5M12 21V3" }));
63
- var ArrowLeft = createIcon("ArrowLeft", /* @__PURE__ */ jsx("path", { d: "M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18" }));
64
- var ArrowRight = createIcon("ArrowRight", /* @__PURE__ */ jsx("path", { d: "M13.5 4.5 21 12m0 0-7.5 7.5M21 12H3" }));
65
- var Menu = createIcon("Menu", /* @__PURE__ */ jsx("path", { d: "M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5" }));
66
- var DotsHorizontal = createIcon("DotsHorizontal", /* @__PURE__ */ jsxs(Fragment, { children: [
67
- /* @__PURE__ */ jsx("circle", { cx: "5", cy: "12", r: "1.6" }),
68
- /* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "1.6" }),
69
- /* @__PURE__ */ jsx("circle", { cx: "19", cy: "12", r: "1.6" })
70
- ] }), { solid: true });
71
- var DotsVertical = createIcon("DotsVertical", /* @__PURE__ */ jsxs(Fragment, { children: [
72
- /* @__PURE__ */ jsx("circle", { cx: "12", cy: "5", r: "1.6" }),
73
- /* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "1.6" }),
74
- /* @__PURE__ */ jsx("circle", { cx: "12", cy: "19", r: "1.6" })
75
- ] }), { solid: true });
76
- var ExternalLink = createIcon("ExternalLink", /* @__PURE__ */ jsx("path", { d: "M13.5 6H5.25A2.25 2.25 0 0 0 3 8.25v10.5A2.25 2.25 0 0 0 5.25 21h10.5A2.25 2.25 0 0 0 18 18.75V10.5m-10.5 6L21 3m0 0h-5.25M21 3v5.25" }));
77
- var X = createIcon("X", /* @__PURE__ */ jsx("path", { d: "M6 18 18 6M6 6l12 12" }));
78
- var XCircle = createIcon("XCircle", /* @__PURE__ */ jsx("path", { d: "M9.75 9.75l4.5 4.5m0-4.5l-4.5 4.5M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" }));
79
- var Plus = createIcon("Plus", /* @__PURE__ */ jsx("path", { d: "M12 4.5v15m7.5-7.5h-15" }));
80
- var PlusCircle = createIcon("PlusCircle", /* @__PURE__ */ jsx("path", { d: "M12 9v6m3-3H9m12 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" }));
81
- var Minus = createIcon("Minus", /* @__PURE__ */ jsx("path", { d: "M19.5 12h-15" }));
82
- var MinusCircle = createIcon("MinusCircle", /* @__PURE__ */ jsx("path", { d: "M15 12H9m12 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" }));
83
- var Check = createIcon("Check", /* @__PURE__ */ jsx("path", { d: "M4.5 12.75l6 6 9-13.5" }));
84
- var CheckCircle = createIcon("CheckCircle", /* @__PURE__ */ jsx("path", { d: "M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" }));
85
- var Search = createIcon("Search", /* @__PURE__ */ jsx("path", { d: "M21 21l-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z" }));
86
- var Edit = createIcon("Edit", /* @__PURE__ */ jsx("path", { d: "M16.862 4.487l1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L10.582 16.07a4.5 4.5 0 0 1-1.897 1.13L6 18l.8-2.685a4.5 4.5 0 0 1 1.13-1.897l8.932-8.931Zm0 0L19.5 7.125M18 14v4.75A2.25 2.25 0 0 1 15.75 21H5.25A2.25 2.25 0 0 1 3 18.75V8.25A2.25 2.25 0 0 1 5.25 6H10" }));
87
- var Trash = createIcon("Trash", /* @__PURE__ */ jsx("path", { d: "m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0" }));
88
- var Copy = createIcon("Copy", /* @__PURE__ */ jsx("path", { d: "M15.666 3.888A2.25 2.25 0 0 0 13.5 2.25h-3c-1.03 0-1.9.693-2.166 1.638m7.332 0c.055.194.084.4.084.612v0a.75.75 0 0 1-.75.75H9a.75.75 0 0 1-.75-.75v0c0-.212.03-.418.084-.612m7.332 0c.646.049 1.288.11 1.927.184 1.1.128 1.907 1.077 1.907 2.185V19.5a2.25 2.25 0 0 1-2.25 2.25H6.75A2.25 2.25 0 0 1 4.5 19.5V6.257c0-1.108.806-2.057 1.907-2.185a48.208 48.208 0 0 1 1.927-.184" }));
89
- var Clipboard = createIcon("Clipboard", /* @__PURE__ */ jsx("path", { d: "M9 12h3.75M9 15h3.75M9 18h3.75m3 .75H18a2.25 2.25 0 0 0 2.25-2.25V6.108c0-1.135-.845-2.098-1.976-2.192a48.424 48.424 0 0 0-1.123-.08m-5.801 0c-.065.21-.1.433-.1.664 0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75 2.25 2.25 0 0 0-.1-.664m-5.8 0A2.251 2.251 0 0 1 13.5 2.25H15c1.012 0 1.867.668 2.15 1.586m-5.8 0c-.376.023-.75.05-1.124.08C9.095 4.01 8.25 4.973 8.25 6.108V8.25m0 0H4.875c-.621 0-1.125.504-1.125 1.125v11.25c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V9.375c0-.621-.504-1.125-1.125-1.125H8.25Z" }));
90
- var Download = createIcon("Download", /* @__PURE__ */ jsx("path", { d: "M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12L12 16.5m0 0L7.5 12m4.5 4.5V3" }));
91
- var Upload = createIcon("Upload", /* @__PURE__ */ jsx("path", { d: "M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5m-13.5-9L12 3m0 0l4.5 4.5M12 3v13.5" }));
92
- var Save = createIcon("Save", /* @__PURE__ */ jsx("path", { d: "M7.5 3.75H6A2.25 2.25 0 0 0 3.75 6v12A2.25 2.25 0 0 0 6 20.25h12A2.25 2.25 0 0 0 20.25 18V8.31a2.25 2.25 0 0 0-.659-1.591l-2.872-2.872A2.25 2.25 0 0 0 15.129 3.75H15m-7.5 0v3.375c0 .621.504 1.125 1.125 1.125h5.25c.621 0 1.125-.504 1.125-1.125V3.75m-7.5 0H15m-3 11.25a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z" }));
93
- var Filter = createIcon("Filter", /* @__PURE__ */ jsx("path", { d: "M12 3c2.755 0 5.455.232 8.083.678.533.09.917.556.917 1.096v1.044a2.25 2.25 0 0 1-.659 1.591l-5.432 5.432a2.25 2.25 0 0 0-.659 1.591v2.927a2.25 2.25 0 0 1-1.244 2.013L9.75 21v-6.568a2.25 2.25 0 0 0-.659-1.591L3.659 7.409A2.25 2.25 0 0 1 3 5.818V4.774c0-.54.384-1.006.917-1.096A48.32 48.32 0 0 1 12 3Z" }));
94
- var Sort = createIcon("Sort", /* @__PURE__ */ jsx("path", { d: "M3 7.5 7.5 3m0 0L12 7.5M7.5 3v13.5m13.5 0L16.5 21m0 0L12 16.5m4.5 4.5V7.5" }));
95
- var Refresh = createIcon("Refresh", /* @__PURE__ */ jsx("path", { d: "M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0 3.181 3.183a8.25 8.25 0 0 0 13.803-3.7M4.031 9.865a8.25 8.25 0 0 1 13.803-3.7l3.181 3.182m0-4.991v4.99" }));
96
- var Share = createIcon("Share", /* @__PURE__ */ jsx("path", { d: "M7.217 10.907a2.25 2.25 0 1 0 0 2.186m0-2.186c.18.324.283.696.283 1.093s-.103.77-.283 1.093m0-2.186 9.566-5.314m-9.566 7.5 9.566 5.314m0 0a2.25 2.25 0 1 0 3.935 2.186 2.25 2.25 0 0 0-3.935-2.186Zm0-12.814a2.25 2.25 0 1 0 3.933-2.185 2.25 2.25 0 0 0-3.933 2.185Z" }));
97
- var Print = createIcon("Print", /* @__PURE__ */ jsx("path", { d: "M6.72 13.829c-.24.03-.48.062-.72.096m.72-.096a42.415 42.415 0 0 1 10.56 0m-10.56 0L6.34 18m10.94-4.171c.24.03.48.062.72.096m-.72-.096L17.66 18m0 0 .229 2.523a1.125 1.125 0 0 1-1.12 1.227H7.231c-.662 0-1.18-.568-1.12-1.227L6.34 18m11.318 0h1.091A2.25 2.25 0 0 0 21 15.75V9.456c0-1.081-.768-2.015-1.837-2.175a48.055 48.055 0 0 0-1.913-.247M6.34 18H5.25A2.25 2.25 0 0 1 3 15.75V9.456c0-1.081.768-2.015 1.837-2.175a48.041 48.041 0 0 1 1.913-.247m10.5 0a48.536 48.536 0 0 0-10.5 0m10.5 0V3.375c0-.621-.504-1.125-1.125-1.125h-8.25c-.621 0-1.125.504-1.125 1.125v3.659M18 10.5h.008v.008H18V10.5Z" }));
98
- var Settings = createIcon("Settings", /* @__PURE__ */ jsxs(Fragment, { children: [
99
- /* @__PURE__ */ jsx("path", { d: "M9.594 3.94c.09-.542.56-.94 1.11-.94h2.593c.55 0 1.02.398 1.11.94l.213 1.281c.063.374.313.686.645.87.074.04.147.083.22.127.324.196.72.257 1.075.124l1.217-.456a1.125 1.125 0 0 1 1.37.49l1.296 2.247a1.125 1.125 0 0 1-.26 1.431l-1.003.827c-.293.241-.438.613-.43.992a7.723 7.723 0 0 1 0 .255c-.008.378.137.75.43.991l1.004.827c.424.35.534.955.26 1.43l-1.298 2.247a1.125 1.125 0 0 1-1.369.491l-1.217-.456c-.355-.133-.75-.072-1.076.124a6.47 6.47 0 0 1-.22.128c-.331.183-.581.495-.644.869l-.213 1.281c-.09.543-.56.94-1.11.94h-2.594c-.55 0-1.019-.397-1.11-.94l-.213-1.281c-.062-.374-.312-.686-.644-.87a6.52 6.52 0 0 1-.22-.127c-.325-.196-.72-.257-1.076-.124l-1.217.456a1.125 1.125 0 0 1-1.369-.49l-1.297-2.247a1.125 1.125 0 0 1 .26-1.431l1.004-.827c.292-.24.437-.613.43-.991a6.932 6.932 0 0 1 0-.255c.007-.38-.138-.751-.43-.992l-1.004-.827a1.125 1.125 0 0 1-.26-1.43l1.297-2.247a1.125 1.125 0 0 1 1.37-.491l1.216.456c.356.133.751.072 1.076-.124.072-.044.146-.086.22-.128.332-.183.582-.495.644-.869l.214-1.28Z" }),
100
- /* @__PURE__ */ jsx("path", { d: "M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z" })
101
- ] }));
102
- var Sliders = createIcon("Sliders", /* @__PURE__ */ jsx("path", { d: "M10.5 6h9.75M10.5 6a1.5 1.5 0 1 1-3 0m3 0a1.5 1.5 0 1 0-3 0M3.75 6H7.5m3 12h9.75m-9.75 0a1.5 1.5 0 0 1-3 0m3 0a1.5 1.5 0 0 0-3 0m-3.75 0H7.5m9-6h3.75m-3.75 0a1.5 1.5 0 0 1-3 0m3 0a1.5 1.5 0 0 0-3 0m-9.75 0h9.75" }));
103
- var Maximize = createIcon("Maximize", /* @__PURE__ */ jsx("path", { d: "M3.75 3.75v4.5m0-4.5h4.5m-4.5 0L9 9M3.75 20.25v-4.5m0 4.5h4.5m-4.5 0L9 15M20.25 3.75h-4.5m4.5 0v4.5m0-4.5L15 9m5.25 11.25h-4.5m4.5 0v-4.5m0 4.5L15 15" }));
104
- var Minimize = createIcon("Minimize", /* @__PURE__ */ jsx("path", { d: "M9 9V4.5M9 9H4.5M9 9 3.75 3.75M9 15v4.5M9 15H4.5M9 15l-5.25 5.25M15 9h4.5M15 9V4.5M15 9l5.25-5.25M15 15h4.5M15 15v4.5m0-4.5 5.25 5.25" }));
105
- var Info = createIcon("Info", /* @__PURE__ */ jsx("path", { d: "M11.25 11.25l.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9-3.75h.008v.008H12V8.25Z" }));
106
- var Warning = createIcon("Warning", /* @__PURE__ */ jsx("path", { d: "M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126zM12 15.75h.007v.008H12v-.008Z" }));
107
- var Error2 = createIcon("Error", /* @__PURE__ */ jsx("path", { d: "M12 9v3.75m9-.75a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 3.75h.008v.008H12v-.008Z" }));
108
- var Question = createIcon("Question", /* @__PURE__ */ jsx("path", { d: "M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 5.25h.008v.008H12v-.008Z" }));
109
- var Ban = createIcon("Ban", /* @__PURE__ */ jsx("path", { d: "M18.364 18.364A9 9 0 0 0 5.636 5.636m12.728 12.728A9 9 0 0 1 5.636 5.636m12.728 12.728L5.636 5.636" }));
110
- var Bell = createIcon("Bell", /* @__PURE__ */ jsx("path", { d: "M14.857 17.082a23.848 23.848 0 0 0 5.454-1.31A8.967 8.967 0 0 1 18 9.75V9A6 6 0 0 0 6 9v.75a8.967 8.967 0 0 1-2.312 6.022c1.733.64 3.56 1.085 5.455 1.31m5.714 0a24.255 24.255 0 0 1-5.714 0m5.714 0a3 3 0 1 1-5.714 0" }));
111
- var Play = createIcon("Play", /* @__PURE__ */ jsx("path", { d: "M5.25 5.653c0-.856.917-1.398 1.667-.986l11.54 6.348a1.125 1.125 0 0 1 0 1.971l-11.54 6.347a1.125 1.125 0 0 1-1.667-.985V5.653Z" }));
112
- var Pause = createIcon("Pause", /* @__PURE__ */ jsx("path", { d: "M15.75 5.25v13.5m-7.5-13.5v13.5" }));
113
- var Stop = createIcon("Stop", /* @__PURE__ */ jsx("path", { d: "M5.25 7.5A2.25 2.25 0 0 1 7.5 5.25h9a2.25 2.25 0 0 1 2.25 2.25v9a2.25 2.25 0 0 1-2.25 2.25h-9a2.25 2.25 0 0 1-2.25-2.25v-9Z" }));
114
- var VolumeUp = createIcon("VolumeUp", /* @__PURE__ */ jsx("path", { d: "M19.114 5.636a9 9 0 0 1 0 12.728M16.463 8.288a5.25 5.25 0 0 1 0 7.424M6.75 8.25l4.72-4.72a.75.75 0 0 1 1.28.53v15.88a.75.75 0 0 1-1.28.53l-4.72-4.72H4.51c-.88 0-1.704-.507-1.938-1.354A9.009 9.009 0 0 1 2.25 12c0-.83.112-1.633.322-2.396C2.806 8.756 3.63 8.25 4.51 8.25H6.75Z" }));
115
- var VolumeOff = createIcon("VolumeOff", /* @__PURE__ */ jsx("path", { d: "M17.25 9.75 19.5 12m0 0 2.25 2.25M19.5 12l2.25-2.25M19.5 12l-2.25 2.25M6.75 8.25l4.72-4.72a.75.75 0 0 1 1.28.53v15.88a.75.75 0 0 1-1.28.53l-4.72-4.72H4.51c-.88 0-1.704-.507-1.938-1.354A9.009 9.009 0 0 1 2.25 12c0-.83.112-1.633.322-2.396C2.806 8.756 3.63 8.25 4.51 8.25H6.75Z" }));
116
- var Image = createIcon("Image", /* @__PURE__ */ jsx("path", { d: "m2.25 15.75 5.159-5.159a2.25 2.25 0 0 1 3.182 0l5.159 5.159m-1.5-1.5 1.409-1.409a2.25 2.25 0 0 1 3.182 0l2.909 2.909m-18 3.75h16.5a1.5 1.5 0 0 0 1.5-1.5V6a1.5 1.5 0 0 0-1.5-1.5H3.75A1.5 1.5 0 0 0 2.25 6v12a1.5 1.5 0 0 0 1.5 1.5Zm10.5-11.25h.008v.008h-.008V8.25Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Z" }));
117
- var Video = createIcon("Video", /* @__PURE__ */ jsx("path", { d: "m15.75 10.5 4.72-4.72a.75.75 0 0 1 1.28.53v11.38a.75.75 0 0 1-1.28.53l-4.72-4.72M4.5 18.75h9a2.25 2.25 0 0 0 2.25-2.25v-9a2.25 2.25 0 0 0-2.25-2.25h-9A2.25 2.25 0 0 0 2.25 7.5v9a2.25 2.25 0 0 0 2.25 2.25Z" }));
118
- var Camera = createIcon("Camera", /* @__PURE__ */ jsxs(Fragment, { children: [
119
- /* @__PURE__ */ jsx("path", { d: "M6.827 6.175A2.31 2.31 0 0 1 5.186 7.23c-.38.054-.757.112-1.134.175C2.999 7.58 2.25 8.507 2.25 9.574V18a2.25 2.25 0 0 0 2.25 2.25h15A2.25 2.25 0 0 0 21.75 18V9.574c0-1.067-.75-1.994-1.802-2.169a47.865 47.865 0 0 0-1.134-.175 2.31 2.31 0 0 1-1.64-1.055l-.822-1.316a2.192 2.192 0 0 0-1.736-1.039 48.774 48.774 0 0 0-5.232 0 2.192 2.192 0 0 0-1.736 1.039l-.821 1.316Z" }),
120
- /* @__PURE__ */ jsx("path", { d: "M16.5 12.75a4.5 4.5 0 1 1-9 0 4.5 4.5 0 0 1 9 0ZM18.75 10.5h.008v.008h-.008V10.5Z" })
121
- ] }));
122
- var Microphone = createIcon("Microphone", /* @__PURE__ */ jsx("path", { d: "M12 18.75a6 6 0 0 0 6-6v-1.5m-6 7.5a6 6 0 0 1-6-6v-1.5m6 7.5v3.75m-3.75 0h7.5M12 15.75a3 3 0 0 1-3-3V4.5a3 3 0 1 1 6 0v8.25a3 3 0 0 1-3 3Z" }));
123
- var Mail = createIcon("Mail", /* @__PURE__ */ jsx("path", { d: "M21.75 6.75v10.5a2.25 2.25 0 0 1-2.25 2.25h-15a2.25 2.25 0 0 1-2.25-2.25V6.75m19.5 0A2.25 2.25 0 0 0 19.5 4.5h-15a2.25 2.25 0 0 0-2.25 2.25m19.5 0v.243a2.25 2.25 0 0 1-1.07 1.916l-7.5 4.615a2.25 2.25 0 0 1-2.36 0L3.32 8.91a2.25 2.25 0 0 1-1.07-1.916V6.75" }));
124
- var Chat = createIcon("Chat", /* @__PURE__ */ jsx("path", { d: "M2.25 12.76c0 1.6 1.123 2.994 2.707 3.227 1.087.16 2.185.283 3.293.369V21l4.184-4.183a1.14 1.14 0 0 1 .778-.332 48.294 48.294 0 0 0 5.83-.498c1.585-.233 2.708-1.626 2.708-3.228V6.741c0-1.602-1.123-2.995-2.707-3.228A48.394 48.394 0 0 0 12 3c-2.392 0-4.744.175-7.043.513C3.373 3.746 2.25 5.14 2.25 6.741v6.019Z" }));
125
- var Phone = createIcon("Phone", /* @__PURE__ */ jsx("path", { d: "M2.25 6.75c0 8.284 6.716 15 15 15h2.25a2.25 2.25 0 0 0 2.25-2.25v-1.372c0-.516-.351-.966-.852-1.091l-4.423-1.106c-.44-.11-.902.055-1.173.417l-.97 1.293c-.282.376-.769.542-1.21.38a12.035 12.035 0 0 1-7.143-7.143c-.162-.441.004-.928.38-1.21l1.293-.97c.363-.271.527-.734.417-1.173L6.963 3.102a1.125 1.125 0 0 0-1.091-.852H4.5A2.25 2.25 0 0 0 2.25 4.5v2.25Z" }));
126
- var Send = createIcon("Send", /* @__PURE__ */ jsx("path", { d: "M6 12 3.269 3.125A59.769 59.769 0 0 1 21.485 12 59.768 59.768 0 0 1 3.27 20.875L5.999 12Zm0 0h7.5" }));
127
- var User = createIcon("User", /* @__PURE__ */ jsx("path", { d: "M15.75 6a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0ZM4.501 20.118a7.5 7.5 0 0 1 14.998 0A17.933 17.933 0 0 1 12 21.75c-2.676 0-5.216-.584-7.499-1.632Z" }));
128
- var Users = createIcon("Users", /* @__PURE__ */ jsx("path", { d: "M15 19.128a9.38 9.38 0 0 0 2.625.372 9.337 9.337 0 0 0 4.121-.952 4.125 4.125 0 0 0-7.533-2.493M15 19.128v-.003c0-1.113-.285-2.16-.786-3.07M15 19.128v.106A12.318 12.318 0 0 1 8.624 21c-2.331 0-4.512-.645-6.374-1.766l-.001-.109a6.375 6.375 0 0 1 11.964-3.07M12 6.375a3.375 3.375 0 1 1-6.75 0 3.375 3.375 0 0 1 6.75 0Zm8.25 2.25a2.625 2.625 0 1 1-5.25 0 2.625 2.625 0 0 1 5.25 0Z" }));
129
- var Home = createIcon("Home", /* @__PURE__ */ jsx("path", { d: "m2.25 12 8.954-8.955c.44-.439 1.152-.439 1.591 0L21.75 12M4.5 9.75v10.125c0 .621.504 1.125 1.125 1.125H9.75v-4.875c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125V21h4.125c.621 0 1.125-.504 1.125-1.125V9.75M8.25 21h8.25" }));
130
- var Globe = createIcon("Globe", /* @__PURE__ */ jsx("path", { d: "M12 21a9.004 9.004 0 0 0 8.716-6.747M12 21a9.004 9.004 0 0 1-8.716-6.747M12 21c2.485 0 4.5-4.03 4.5-9S14.485 3 12 3m0 18c-2.485 0-4.5-4.03-4.5-9S9.515 3 12 3m0 0a8.997 8.997 0 0 1 7.843 4.582M12 3a8.997 8.997 0 0 0-7.843 4.582m15.686 0A11.953 11.953 0 0 1 12 10.5c-2.998 0-5.74-1.1-7.843-2.918m15.686 0A8.959 8.959 0 0 1 21 12c0 .778-.099 1.533-.284 2.253m0 0A17.919 17.919 0 0 1 12 16.5c-3.162 0-6.133-.815-8.716-2.247m0 0A9.015 9.015 0 0 1 3 12c0-1.605.42-3.113 1.157-4.418" }));
131
- var MapPin = createIcon("MapPin", /* @__PURE__ */ jsxs(Fragment, { children: [
132
- /* @__PURE__ */ jsx("path", { d: "M15 10.5a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z" }),
133
- /* @__PURE__ */ jsx("path", { d: "M19.5 10.5c0 7.142-7.5 11.25-7.5 11.25S4.5 17.642 4.5 10.5a7.5 7.5 0 1 1 15 0Z" })
134
- ] }));
135
- var Calendar = createIcon("Calendar", /* @__PURE__ */ jsx("path", { d: "M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 0 1 2.25-2.25h13.5A2.25 2.25 0 0 1 21 7.5v11.25m-18 0A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75m-18 0v-7.5A2.25 2.25 0 0 1 5.25 9h13.5A2.25 2.25 0 0 1 21 11.25v7.5" }));
136
- var Clock = createIcon("Clock", /* @__PURE__ */ jsx("path", { d: "M12 6v6h4.5m4.5 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" }));
137
- var Document = createIcon("Document", /* @__PURE__ */ jsx("path", { d: "M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z" }));
138
- var File = createIcon("File", /* @__PURE__ */ jsx("path", { d: "M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m2.25 0H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z" }));
139
- var Folder = createIcon("Folder", /* @__PURE__ */ jsx("path", { d: "M2.25 12.75V12A2.25 2.25 0 0 1 4.5 9.75h15A2.25 2.25 0 0 1 21.75 12v.75m-8.69-6.44-2.12-2.12a1.5 1.5 0 0 0-1.061-.44H4.5A2.25 2.25 0 0 0 2.25 6v12a2.25 2.25 0 0 0 2.25 2.25h15A2.25 2.25 0 0 0 21.75 18V9a2.25 2.25 0 0 0-2.25-2.25h-5.379a1.5 1.5 0 0 1-1.06-.44Z" }));
140
- var Database = createIcon("Database", /* @__PURE__ */ jsx("path", { d: "M20.25 6.375c0 2.278-3.694 4.125-8.25 4.125S3.75 8.653 3.75 6.375m16.5 0c0-2.278-3.694-4.125-8.25-4.125S3.75 4.097 3.75 6.375m16.5 0v11.25c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125V6.375m16.5 0v3.75m-16.5-3.75v3.75m16.5 0v3.75C20.25 16.153 16.556 18 12 18s-8.25-1.847-8.25-4.125v-3.75m16.5 0c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125" }));
141
- var Grid = createIcon("Grid", /* @__PURE__ */ jsx("path", { d: "M3.75 6A2.25 2.25 0 0 1 6 3.75h2.25A2.25 2.25 0 0 1 10.5 6v2.25a2.25 2.25 0 0 1-2.25 2.25H6a2.25 2.25 0 0 1-2.25-2.25V6ZM3.75 15.75A2.25 2.25 0 0 1 6 13.5h2.25a2.25 2.25 0 0 1 2.25 2.25V18a2.25 2.25 0 0 1-2.25 2.25H6A2.25 2.25 0 0 1 3.75 18v-2.25ZM13.5 6a2.25 2.25 0 0 1 2.25-2.25H18A2.25 2.25 0 0 1 20.25 6v2.25A2.25 2.25 0 0 1 18 10.5h-2.25a2.25 2.25 0 0 1-2.25-2.25V6ZM13.5 15.75a2.25 2.25 0 0 1 2.25-2.25H18a2.25 2.25 0 0 1 2.25 2.25V18A2.25 2.25 0 0 1 18 20.25h-2.25a2.25 2.25 0 0 1-2.25-2.25v-2.25Z" }));
142
- var List = createIcon("List", /* @__PURE__ */ jsx("path", { d: "M8.25 6.75h12M8.25 12h12m-12 5.25h12M3.75 6.75h.007v.008H3.75V6.75Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0ZM3.75 12h.007v.008H3.75V12Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Zm-.375 5.25h.007v.008H3.75v-.008Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Z" }));
143
- var Table = createIcon("Table", /* @__PURE__ */ jsx("path", { d: "M3.375 19.5h17.25m-17.25 0a1.125 1.125 0 0 1-1.125-1.125M3.375 19.5h7.5c.621 0 1.125-.504 1.125-1.125m-9.75 0V5.625m0 12.75v-1.5c0-.621.504-1.125 1.125-1.125m18.375 2.625V5.625m0 12.75c0 .621-.504 1.125-1.125 1.125m1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125m0 3.75h-7.5A1.125 1.125 0 0 1 12 18.375m9.75-12.75c0-.621-.504-1.125-1.125-1.125H3.375c-.621 0-1.125.504-1.125 1.125m19.5 0v1.5c0 .621-.504 1.125-1.125 1.125M2.25 5.625v1.5c0 .621.504 1.125 1.125 1.125m0 0h17.25m-17.25 0h7.5c.621 0 1.125.504 1.125 1.125M3.375 8.25c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125m17.25-3.75h-7.5c-.621 0-1.125.504-1.125 1.125m8.625-1.125c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125m-17.25 0h7.5m-7.5 0c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125M12 10.875v-1.5m0 1.5c0 .621-.504 1.125-1.125 1.125M12 10.875c0 .621.504 1.125 1.125 1.125m-2.25 0c.621 0 1.125.504 1.125 1.125M13.125 12h7.5m-7.5 0c-.621 0-1.125.504-1.125 1.125M20.625 12c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125m-17.25 0h7.5M12 14.625v-1.5m0 1.5c0 .621-.504 1.125-1.125 1.125M12 14.625c0 .621.504 1.125 1.125 1.125m-2.25 0c.621 0 1.125.504 1.125 1.125m0 1.5v-1.5m0 0c0-.621.504-1.125 1.125-1.125m0 0h7.5" }));
144
- var ChartBar = createIcon("ChartBar", /* @__PURE__ */ jsx("path", { d: "M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z" }));
145
- var PieChart = createIcon("PieChart", /* @__PURE__ */ jsxs(Fragment, { children: [
146
- /* @__PURE__ */ jsx("path", { d: "M10.5 6a7.5 7.5 0 1 0 7.5 7.5h-7.5V6Z" }),
147
- /* @__PURE__ */ jsx("path", { d: "M13.5 10.5H21A7.5 7.5 0 0 0 13.5 3v7.5Z" })
148
- ] }));
149
- var TrendingUp = createIcon("TrendingUp", /* @__PURE__ */ jsx("path", { d: "M2.25 18 9 11.25l4.306 4.306a11.95 11.95 0 0 1 5.814-5.518l2.74-1.22m0 0-5.94-2.281m5.94 2.28-2.28 5.941" }));
150
- var TrendingDown = createIcon("TrendingDown", /* @__PURE__ */ jsx("path", { d: "M2.25 6 9 12.75l4.286-4.286a11.948 11.948 0 0 1 4.306 6.43l.776 2.898m0 0 3.182-5.511m-3.182 5.51-5.511-3.181" }));
151
- var Calculator = createIcon("Calculator", /* @__PURE__ */ jsx("path", { d: "M15.75 15.75V18m-7.5-6.75h.008v.008H8.25v-.008Zm0 2.25h.008v.008H8.25V13.5Zm0 2.25h.008v.008H8.25v-.008Zm0 2.25h.008v.008H8.25V18Zm2.498-6.75h.007v.008h-.007v-.008Zm0 2.25h.007v.008h-.007V13.5Zm0 2.25h.007v.008h-.007v-.008Zm0 2.25h.007v.008h-.007V18Zm2.504-6.75h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V13.5Zm0 2.25h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V18Zm2.498-6.75h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V13.5ZM8.25 6h7.5v2.25h-7.5V6ZM12 2.25c-1.892 0-3.758.11-5.593.322C5.307 2.7 4.5 3.65 4.5 4.757V19.5a2.25 2.25 0 0 0 2.25 2.25h10.5a2.25 2.25 0 0 0 2.25-2.25V4.757c0-1.108-.806-2.057-1.907-2.185A48.507 48.507 0 0 0 12 2.25Z" }));
152
- var Lock = createIcon("Lock", /* @__PURE__ */ jsx("path", { d: "M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z" }));
153
- var Unlock = createIcon("Unlock", /* @__PURE__ */ jsx("path", { d: "M13.5 10.5V6.75a4.5 4.5 0 1 1 9 0v3.75M3.75 21.75h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H3.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z" }));
154
- var Key = createIcon("Key", /* @__PURE__ */ jsx("path", { d: "M15.75 5.25a3 3 0 0 1 3 3m3 0a6 6 0 0 1-7.029 5.912c-.563-.097-1.159.026-1.563.43L10.5 17.25H8.25v2.25H6v2.25H2.25v-2.818c0-.597.237-1.17.659-1.591l6.499-6.499c.404-.404.527-1 .43-1.563A6 6 0 1 1 21.75 8.25Z" }));
155
- var Shield = createIcon("Shield", /* @__PURE__ */ jsx("path", { d: "M12 9v3.75m0-10.036A11.959 11.959 0 0 1 3.598 6 11.99 11.99 0 0 0 3 9.75c0 5.592 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.31-.21-2.57-.598-3.75h-.152c-3.196 0-6.1-1.249-8.25-3.286Zm0 13.036h.008v.008H12v-.008Z" }));
156
- var ShieldCheck = createIcon("ShieldCheck", /* @__PURE__ */ jsx("path", { d: "M9 12.75 11.25 15 15 9.75m-3-7.036A11.959 11.959 0 0 1 3.598 6 11.99 11.99 0 0 0 3 9.749c0 5.592 3.824 10.29 9 11.623 5.176-1.332 9-6.03 9-11.622 0-1.31-.21-2.571-.598-3.751h-.152c-3.196 0-6.1-1.248-8.25-3.285Z" }));
157
- var Star = createIcon("Star", /* @__PURE__ */ jsx("path", { d: "M11.48 3.499a.562.562 0 0 1 1.04 0l2.125 5.111a.563.563 0 0 0 .475.345l5.518.442c.499.04.701.663.321.988l-4.204 3.602a.563.563 0 0 0-.182.557l1.285 5.385a.562.562 0 0 1-.84.61l-4.725-2.885a.562.562 0 0 0-.586 0L6.982 20.54a.562.562 0 0 1-.84-.61l1.285-5.386a.562.562 0 0 0-.182-.557l-4.204-3.602a.562.562 0 0 1 .321-.988l5.518-.442a.563.563 0 0 0 .475-.345L11.48 3.5Z" }));
158
- var StarFilled = createIcon("StarFilled", /* @__PURE__ */ jsx("path", { d: "M10.788 3.21c.448-1.077 1.976-1.077 2.424 0l2.082 5.007 5.404.433c1.164.093 1.636 1.545.749 2.305l-4.117 3.527 1.257 5.273c.271 1.136-.964 2.033-1.96 1.425L12 18.354 7.373 21.18c-.996.608-2.231-.29-1.96-1.425l1.257-5.273-4.117-3.527c-.887-.76-.415-2.212.749-2.305l5.404-.433 2.082-5.005Z" }), { solid: true });
159
- var Heart = createIcon("Heart", /* @__PURE__ */ jsx("path", { d: "M21 8.25c0-2.485-2.099-4.5-4.688-4.5-1.935 0-3.597 1.126-4.312 2.733-.715-1.607-2.377-2.733-4.313-2.733C5.1 3.75 3 5.765 3 8.25c0 7.22 9 12 9 12s9-4.78 9-12Z" }));
160
- var Bookmark = createIcon("Bookmark", /* @__PURE__ */ jsx("path", { d: "M17.593 3.322c1.1.128 1.907 1.077 1.907 2.185V21L12 17.25 4.5 21V5.507c0-1.108.806-2.057 1.907-2.185a48.507 48.507 0 0 1 11.186 0Z" }));
161
- var Tag = createIcon("Tag", /* @__PURE__ */ jsxs(Fragment, { children: [
162
- /* @__PURE__ */ jsx("path", { d: "M9.568 3H5.25A2.25 2.25 0 0 0 3 5.25v4.318c0 .597.237 1.17.659 1.591l9.581 9.581c.699.699 1.78.872 2.607.33a18.095 18.095 0 0 0 5.223-5.223c.542-.827.369-1.908-.33-2.607L11.16 3.66A2.25 2.25 0 0 0 9.568 3Z" }),
163
- /* @__PURE__ */ jsx("path", { d: "M6 6h.008v.008H6V6Z" })
164
- ] }));
165
- var Link = createIcon("Link", /* @__PURE__ */ jsx("path", { d: "M13.19 8.688a4.5 4.5 0 0 1 1.242 7.244l-4.5 4.5a4.5 4.5 0 0 1-6.364-6.364l1.757-1.757m13.35-.622 1.757-1.757a4.5 4.5 0 0 0-6.364-6.364l-4.5 4.5a4.5 4.5 0 0 0 1.242 7.244" }));
166
- var Eye = createIcon("Eye", /* @__PURE__ */ jsxs(Fragment, { children: [
167
- /* @__PURE__ */ jsx("path", { d: "M2.036 12.322a1.012 1.012 0 0 1 0-.639C3.423 7.51 7.36 4.5 12 4.5c4.638 0 8.573 3.007 9.963 7.178.07.207.07.431 0 .639C20.577 16.49 16.64 19.5 12 19.5c-4.638 0-8.573-3.007-9.963-7.178Z" }),
168
- /* @__PURE__ */ jsx("path", { d: "M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z" })
169
- ] }));
170
- var EyeSlash = createIcon("EyeSlash", /* @__PURE__ */ jsx("path", { d: "M3.98 8.223A10.477 10.477 0 0 0 1.934 12C3.226 16.338 7.244 19.5 12 19.5c.993 0 1.953-.138 2.863-.395M6.228 6.228A10.451 10.451 0 0 1 12 4.5c4.756 0 8.773 3.162 10.065 7.498a10.522 10.522 0 0 1-4.293 5.774M6.228 6.228 3 3m3.228 3.228 3.65 3.65m7.894 7.894L21 21m-3.228-3.228-3.65-3.65m0 0a3 3 0 1 0-4.243-4.243m4.242 4.242L9.88 9.88" }));
171
- var Bolt = createIcon("Bolt", /* @__PURE__ */ jsx("path", { d: "m3.75 13.5 10.5-11.25L12 10.5h8.25L9.75 21.75 12 13.5H3.75Z" }));
172
- var Sparkles = createIcon("Sparkles", /* @__PURE__ */ jsx("path", { d: "M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09ZM18.259 8.715 18 9.75l-.259-1.035a3.375 3.375 0 0 0-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 0 0 2.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 0 0 2.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 0 0-2.456 2.456Z" }));
173
- var Sun = createIcon("Sun", /* @__PURE__ */ jsx("path", { d: "M12 3v2.25m6.364.386-1.591 1.591M21 12h-2.25m-.386 6.364-1.591-1.591M12 18.75V21m-4.773-4.227-1.591 1.591M5.25 12H3m4.227-4.773L5.636 5.636M15.75 12a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0Z" }));
174
- var Moon = createIcon("Moon", /* @__PURE__ */ jsx("path", { d: "M21.752 15.002A9.72 9.72 0 0 1 18 15.75c-5.385 0-9.75-4.365-9.75-9.75 0-1.33.266-2.597.748-3.752A9.753 9.753 0 0 0 3 11.25C3 16.635 7.365 21 12.75 21a9.753 9.753 0 0 0 9.002-5.998Z" }));
175
- var Spinner = createIcon("Spinner", /* @__PURE__ */ jsx("path", { d: "M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0 3.181 3.183a8.25 8.25 0 0 0 13.803-3.7M4.031 9.865a8.25 8.25 0 0 1 13.803-3.7l3.181 3.182m0-4.991v4.99" }));
176
- var Login = createIcon("Login", /* @__PURE__ */ jsx("path", { d: "M15.75 9V5.25A2.25 2.25 0 0 0 13.5 3h-6a2.25 2.25 0 0 0-2.25 2.25v13.5A2.25 2.25 0 0 0 7.5 21h6a2.25 2.25 0 0 0 2.25-2.25V15m3 0 3-3m0 0-3-3m3 3H9" }));
177
- var Logout = createIcon("Logout", /* @__PURE__ */ jsx("path", { d: "M15.75 9V5.25A2.25 2.25 0 0 0 13.5 3h-6a2.25 2.25 0 0 0-2.25 2.25v13.5A2.25 2.25 0 0 0 7.5 21h6a2.25 2.25 0 0 0 2.25-2.25V15M12 9l-3 3m0 0 3 3m-3-3h12.75" }));
178
- var Power = createIcon("Power", /* @__PURE__ */ jsx("path", { d: "M5.636 5.636a9 9 0 1 0 12.728 0M12 3v9" }));
179
- var Icon = {
180
- ChevronUp,
181
- ChevronDown,
182
- ChevronLeft,
183
- ChevronRight,
184
- ChevronsLeft,
185
- ChevronsRight,
186
- CaretUp,
187
- CaretDown,
188
- CaretLeft,
189
- CaretRight,
190
- ArrowUp,
191
- ArrowDown,
192
- ArrowLeft,
193
- ArrowRight,
194
- Menu,
195
- DotsHorizontal,
196
- DotsVertical,
197
- ExternalLink,
198
- X,
199
- XCircle,
200
- Plus,
201
- PlusCircle,
202
- Minus,
203
- MinusCircle,
204
- Check,
205
- CheckCircle,
206
- Search,
207
- Edit,
208
- Trash,
209
- Copy,
210
- Clipboard,
211
- Download,
212
- Upload,
213
- Save,
214
- Filter,
215
- Sort,
216
- Refresh,
217
- Share,
218
- Print,
219
- Settings,
220
- Sliders,
221
- Maximize,
222
- Minimize,
223
- Info,
224
- Warning,
225
- Error: Error2,
226
- Question,
227
- Ban,
228
- Bell,
229
- Play,
230
- Pause,
231
- Stop,
232
- VolumeUp,
233
- VolumeOff,
234
- Image,
235
- Video,
236
- Camera,
237
- Microphone,
238
- Mail,
239
- Chat,
240
- Phone,
241
- Send,
242
- User,
243
- Users,
244
- Home,
245
- Globe,
246
- MapPin,
247
- Calendar,
248
- Clock,
249
- Document,
250
- File,
251
- Folder,
252
- Database,
253
- Grid,
254
- List,
255
- Table,
256
- ChartBar,
257
- PieChart,
258
- TrendingUp,
259
- TrendingDown,
260
- Calculator,
261
- Lock,
262
- Unlock,
263
- Key,
264
- Shield,
265
- ShieldCheck,
266
- Star,
267
- StarFilled,
268
- Heart,
269
- Bookmark,
270
- Tag,
271
- Link,
272
- Eye,
273
- EyeSlash,
274
- Bolt,
275
- Sparkles,
276
- Sun,
277
- Moon,
278
- Spinner,
279
- Login,
280
- Logout,
281
- Power,
282
- // ── Back-compat aliases (legacy names) ──
283
- XClose: X,
284
- Checked: Check,
285
- Cog: Settings,
286
- Tweak: Sliders,
287
- Expand: Maximize,
288
- Collapse: Minimize,
289
- ShowMore: DotsVertical,
290
- Delete: Trash,
291
- Bookmarks: Bookmark,
292
- CircleStack: Database,
293
- Data: Database,
294
- DoubleChevronRight: ChevronsRight,
295
- Loading: Spinner,
296
- PowerOff: Power
297
- };
298
- var icons_default = Icon;
23
+ // src/utils/cx.ts
24
+ function cx(...values) {
25
+ let out = "";
26
+ for (const value of values) {
27
+ if (!value) continue;
28
+ out += (out && " ") + value;
29
+ }
30
+ return out;
31
+ }
299
32
  function Portal({ children, target }) {
300
33
  const [resolved, setResolved] = useState(null);
301
34
  useEffect(() => {
@@ -381,7 +114,7 @@ function Box({
381
114
  Element,
382
115
  {
383
116
  onClick,
384
- className: [
117
+ className: cx(
385
118
  padding(p, "p"),
386
119
  padding(px2, "px"),
387
120
  padding(py, "py"),
@@ -401,7 +134,7 @@ function Box({
401
134
  radius ? RADIUS_MAP[radius] : "",
402
135
  SHADOW_MAP[shadow],
403
136
  className
404
- ].filter(Boolean).join(" "),
137
+ ),
405
138
  style: {
406
139
  width: typeof width === "number" ? `${width}px` : width,
407
140
  height: typeof height === "number" ? `${height}px` : height,
@@ -460,7 +193,7 @@ function Flex({
460
193
  Box,
461
194
  {
462
195
  ...boxProps,
463
- className: [
196
+ className: cx(
464
197
  inline ? "inline-flex" : "flex",
465
198
  DIRECTION_CLASS[direction],
466
199
  align ? ALIGN_CLASS[align] : "",
@@ -468,7 +201,7 @@ function Flex({
468
201
  wrap ? WRAP_CLASS[wrap] : "",
469
202
  gap ? GAP_MAP[gap] : "",
470
203
  className
471
- ].filter(Boolean).join(" ")
204
+ )
472
205
  }
473
206
  );
474
207
  }
@@ -515,7 +248,7 @@ var JUSTIFY_CLASS2 = {
515
248
  end: "justify-items-end",
516
249
  stretch: "justify-items-stretch"
517
250
  };
518
- function Grid2({
251
+ function Grid({
519
252
  cols,
520
253
  rows,
521
254
  gap,
@@ -535,7 +268,7 @@ function Grid2({
535
268
  Box,
536
269
  {
537
270
  ...boxProps,
538
- className: [
271
+ className: cx(
539
272
  "grid",
540
273
  colClass,
541
274
  rowClass,
@@ -545,7 +278,7 @@ function Grid2({
545
278
  align ? ALIGN_CLASS2[align] : "",
546
279
  justify ? JUSTIFY_CLASS2[justify] : "",
547
280
  className
548
- ].filter(Boolean).join(" "),
281
+ ),
549
282
  style: {
550
283
  gridTemplateColumns: inlineCols,
551
284
  gridTemplateRows: inlineRows,
@@ -705,7 +438,7 @@ function Typography({
705
438
  return /* @__PURE__ */ jsx(
706
439
  Element,
707
440
  {
708
- className: [
441
+ className: cx(
709
442
  VARIANT_CLASS[variant],
710
443
  COLOR_CLASS[color],
711
444
  weight ? WEIGHT_CLASS[weight] : "",
@@ -713,7 +446,7 @@ function Typography({
713
446
  truncate ? "truncate" : "",
714
447
  muted ? "opacity-60" : "",
715
448
  className
716
- ].filter(Boolean).join(" "),
449
+ ),
717
450
  style,
718
451
  children
719
452
  }
@@ -822,7 +555,7 @@ var SIZE_CLASSES = {
822
555
  md: "h-9 px-4 text-sm gap-1.5 rounded-lg",
823
556
  lg: "h-11 px-5 text-sm gap-2 rounded-xl"
824
557
  };
825
- var Button = React29.forwardRef(function Button2({
558
+ var Button = React28.forwardRef(function Button2({
826
559
  content,
827
560
  variant = "primary",
828
561
  size = "md",
@@ -846,14 +579,14 @@ var Button = React29.forwardRef(function Button2({
846
579
  disabled: disabled || loading,
847
580
  type: buttonType,
848
581
  style,
849
- className: [
582
+ className: cx(
850
583
  "inline-flex items-center justify-center font-medium",
851
584
  "outline-none transition-colors duration-150 select-none",
852
585
  "whitespace-nowrap",
853
586
  SIZE_CLASSES[size],
854
587
  VARIANT_CLASSES[variant],
855
588
  className
856
- ].filter(Boolean).join(" "),
589
+ ),
857
590
  children: [
858
591
  loading ? /* @__PURE__ */ jsx(
859
592
  "svg",
@@ -930,7 +663,7 @@ function MenuButton({
930
663
  "data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
931
664
  "data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95"
932
665
  ].join(" "),
933
- children: items.map((item) => /* @__PURE__ */ jsxs(React29.Fragment, { children: [
666
+ children: items.map((item) => /* @__PURE__ */ jsxs(React28.Fragment, { children: [
934
667
  item.separatorBefore && /* @__PURE__ */ jsx(DropdownMenu.Separator, { className: "my-1 h-px bg-border" }),
935
668
  /* @__PURE__ */ jsxs(
936
669
  DropdownMenu.Item,
@@ -1143,7 +876,7 @@ function Tooltip({
1143
876
  {
1144
877
  side: placement,
1145
878
  sideOffset,
1146
- className: [
879
+ className: cx(
1147
880
  // Layout + typography
1148
881
  "pointer-events-none z-[500000] max-w-[220px] px-2.5 py-1.5",
1149
882
  // Inverted surface: dark on light, light on dark — both readable
@@ -1156,7 +889,7 @@ function Tooltip({
1156
889
  // In animation — direction-aware
1157
890
  ANIMATION[placement],
1158
891
  className
1159
- ].filter(Boolean).join(" "),
892
+ ),
1160
893
  children: [
1161
894
  title,
1162
895
  /* @__PURE__ */ jsx(
@@ -1223,11 +956,11 @@ function Tabs({
1223
956
  value: current,
1224
957
  onValueChange: select,
1225
958
  orientation,
1226
- className: [
959
+ className: cx(
1227
960
  "flex min-w-0",
1228
961
  orientation === "vertical" ? "flex-row gap-4" : "flex-col gap-3",
1229
962
  className
1230
- ].filter(Boolean).join(" "),
963
+ ),
1231
964
  style,
1232
965
  children
1233
966
  }
@@ -1295,14 +1028,14 @@ function TabsList({ children, "aria-label": ariaLabel, className = "" }) {
1295
1028
  })();
1296
1029
  const scrollClass = scrollable ? horizontal ? "overflow-x-auto overflow-y-hidden hidden-scrollbar" : "overflow-y-auto overflow-x-hidden hidden-scrollbar" : "";
1297
1030
  const overflowing = scrollable && (edges.start || edges.end);
1298
- return /* @__PURE__ */ jsxs("div", { className: ["relative flex min-w-0 gap-1", horizontal ? "flex-row items-stretch" : "flex-col items-stretch", className].filter(Boolean).join(" "), children: [
1031
+ return /* @__PURE__ */ jsxs("div", { className: cx("relative flex min-w-0 gap-1", horizontal ? "flex-row items-stretch" : "flex-col items-stretch", className), children: [
1299
1032
  scrollable && edges.start && /* @__PURE__ */ jsx(Chevron2, { side: "start", orientation, onClick: () => nudge(-1) }),
1300
1033
  /* @__PURE__ */ jsx(
1301
1034
  TabsPrimitive.List,
1302
1035
  {
1303
1036
  ref: scrollRef,
1304
1037
  "aria-label": ariaLabel,
1305
- className: [scrollClass, trackClass, "min-w-0 flex-1"].filter(Boolean).join(" "),
1038
+ className: cx(scrollClass, trackClass, "min-w-0 flex-1"),
1306
1039
  style: maskStyle,
1307
1040
  children
1308
1041
  }
@@ -1431,7 +1164,7 @@ function TabsTrigger({ value, icon, badge, closeable, onClose, disabled, classNa
1431
1164
  {
1432
1165
  value,
1433
1166
  disabled,
1434
- className: [base, sz.trigger, layoutCls, closeable ? "pr-8" : "", variantCls, className].filter(Boolean).join(" "),
1167
+ className: cx(base, sz.trigger, layoutCls, closeable ? "pr-8" : "", variantCls, className),
1435
1168
  children: [
1436
1169
  variant === "segmented" && isActive && /* @__PURE__ */ jsx(
1437
1170
  motion.span,
@@ -1500,7 +1233,7 @@ function TabsPanel({ value, keepMounted, className = "", style, children }) {
1500
1233
  {
1501
1234
  value,
1502
1235
  forceMount: keepMounted || void 0,
1503
- className: ["min-w-0 flex-1 focus:outline-none data-[state=inactive]:hidden", className].filter(Boolean).join(" "),
1236
+ className: cx("min-w-0 flex-1 focus:outline-none data-[state=inactive]:hidden", className),
1504
1237
  style,
1505
1238
  children
1506
1239
  }
@@ -1630,10 +1363,10 @@ function Accordion2({
1630
1363
  style
1631
1364
  }) {
1632
1365
  const common = {
1633
- className: [
1366
+ className: cx(
1634
1367
  variant === "contained" ? "rounded-lg border border-border bg-surface overflow-hidden divide-y divide-border" : "flex flex-col gap-2",
1635
1368
  className
1636
- ].filter(Boolean).join(" "),
1369
+ ),
1637
1370
  style
1638
1371
  };
1639
1372
  const inner = /* @__PURE__ */ jsx(AccordionCtx.Provider, { value: { variant }, children });
@@ -1682,11 +1415,11 @@ function AccordionItem({ value, title, icon, children, disabled, className = ""
1682
1415
  {
1683
1416
  value,
1684
1417
  disabled,
1685
- className: [
1418
+ className: cx(
1686
1419
  variant === "separated" ? "rounded-lg border border-border bg-surface overflow-hidden" : "",
1687
1420
  "data-[disabled]:opacity-60",
1688
1421
  className
1689
- ].filter(Boolean).join(" "),
1422
+ ),
1690
1423
  children: [
1691
1424
  /* @__PURE__ */ jsx(AccordionPrimitive.Header, { className: "m-0", children: /* @__PURE__ */ jsxs(
1692
1425
  AccordionPrimitive.Trigger,
@@ -1746,7 +1479,7 @@ function Breadcrumbs({
1746
1479
  } else {
1747
1480
  items.forEach((item, index) => visible.push({ item, index }));
1748
1481
  }
1749
- return /* @__PURE__ */ jsx("nav", { "aria-label": ariaLabel, className: ["min-w-0", className].filter(Boolean).join(" "), style, children: /* @__PURE__ */ jsx("ol", { className: "flex items-center gap-1.5 flex-nowrap min-w-0", children: visible.map((entry, i) => {
1482
+ return /* @__PURE__ */ jsx("nav", { "aria-label": ariaLabel, className: cx("min-w-0", className), style, children: /* @__PURE__ */ jsx("ol", { className: "flex items-center gap-1.5 flex-nowrap min-w-0", children: visible.map((entry, i) => {
1750
1483
  const isLast = i === visible.length - 1;
1751
1484
  return /* @__PURE__ */ jsxs("li", { className: "flex items-center gap-1.5 min-w-0", children: [
1752
1485
  entry === "ellipsis" ? /* @__PURE__ */ jsx(
@@ -1825,12 +1558,12 @@ function Badge({
1825
1558
  return /* @__PURE__ */ jsxs(
1826
1559
  "span",
1827
1560
  {
1828
- className: [
1561
+ className: cx(
1829
1562
  "inline-flex items-center font-medium select-none whitespace-nowrap leading-none",
1830
1563
  SIZE2[size],
1831
1564
  TONE[tone][variant],
1832
1565
  className
1833
- ].filter(Boolean).join(" "),
1566
+ ),
1834
1567
  style,
1835
1568
  children: [
1836
1569
  icon && /* @__PURE__ */ jsx("span", { className: "flex h-3.5 w-3.5 items-center justify-center", children: icon }),
@@ -1842,19 +1575,19 @@ function Badge({
1842
1575
  const indicator = dot ? /* @__PURE__ */ jsx(
1843
1576
  "span",
1844
1577
  {
1845
- className: ["inline-block rounded-full", size === "sm" ? "h-2 w-2" : "h-2.5 w-2.5", TONE[tone].dot, className].filter(Boolean).join(" "),
1578
+ className: cx("inline-block rounded-full", size === "sm" ? "h-2 w-2" : "h-2.5 w-2.5", TONE[tone].dot, className),
1846
1579
  style: children ? void 0 : style,
1847
1580
  "aria-hidden": children ? true : void 0
1848
1581
  }
1849
1582
  ) : /* @__PURE__ */ jsx(
1850
1583
  "span",
1851
1584
  {
1852
- className: [
1585
+ className: cx(
1853
1586
  "inline-flex items-center justify-center rounded-full font-semibold leading-none tabular-nums",
1854
1587
  size === "sm" ? "h-4 min-w-4 px-1 text-[10px]" : "h-[18px] min-w-[18px] px-1.5 text-[11px]",
1855
1588
  TONE[tone].solid,
1856
1589
  className
1857
- ].filter(Boolean).join(" "),
1590
+ ),
1858
1591
  style: children ? void 0 : style,
1859
1592
  children: display2
1860
1593
  }
@@ -1869,9 +1602,9 @@ var SIZES = {
1869
1602
  sm: { box: "h-7 w-7 text-xs", center: 14, title: "text-xs", desc: "text-[11px]" },
1870
1603
  md: { box: "h-9 w-9 text-sm", center: 18, title: "text-sm", desc: "text-xs" }
1871
1604
  };
1872
- var Check2 = () => /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 3, "aria-hidden": "true", className: "h-1/2 w-1/2 animate-check-pop", children: /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M20 6L9 17l-5-5" }) });
1605
+ var Check = () => /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 3, "aria-hidden": "true", className: "h-1/2 w-1/2 animate-check-pop", children: /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M20 6L9 17l-5-5" }) });
1873
1606
  var Cross = () => /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 3, "aria-hidden": "true", className: "h-1/2 w-1/2", children: /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M18 6 6 18M6 6l12 12" }) });
1874
- var Spinner2 = () => /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", "aria-hidden": "true", className: "h-1/2 w-1/2 animate-spin", children: /* @__PURE__ */ jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M4.755 10.059a7.5 7.5 0 0112.548-3.364l1.903 1.903h-3.183a.75.75 0 100 1.5h4.992a.75.75 0 00.75-.75V4.356a.75.75 0 00-1.5 0v3.18l-1.9-1.9A9 9 0 003.306 9.67a.75.75 0 101.45.388zm15.408 3.352a.75.75 0 00-.919.53 7.5 7.5 0 01-12.548 3.364l-1.902-1.903h3.183a.75.75 0 000-1.5H2.984a.75.75 0 00-.75.75v4.992a.75.75 0 001.5 0v-3.18l1.9 1.9a9 9 0 0015.059-4.035.75.75 0 00-.53-.918z" }) });
1607
+ var Spinner = () => /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", "aria-hidden": "true", className: "h-1/2 w-1/2 animate-spin", children: /* @__PURE__ */ jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M4.755 10.059a7.5 7.5 0 0112.548-3.364l1.903 1.903h-3.183a.75.75 0 100 1.5h4.992a.75.75 0 00.75-.75V4.356a.75.75 0 00-1.5 0v3.18l-1.9-1.9A9 9 0 003.306 9.67a.75.75 0 101.45.388zm15.408 3.352a.75.75 0 00-.919.53 7.5 7.5 0 01-12.548 3.364l-1.902-1.903h3.183a.75.75 0 000-1.5H2.984a.75.75 0 00-.75.75v4.992a.75.75 0 001.5 0v-3.18l1.9 1.9a9 9 0 0015.059-4.035.75.75 0 00-.53-.918z" }) });
1875
1608
  function Indicator({ state, index, step, sizeKey }) {
1876
1609
  const reduced = useReducedMotion();
1877
1610
  const s = SIZES[sizeKey];
@@ -1883,7 +1616,7 @@ function Indicator({ state, index, step, sizeKey }) {
1883
1616
  error: "bg-status-error text-white",
1884
1617
  pending: "border border-border bg-surface text-foreground-muted"
1885
1618
  };
1886
- const content = step.icon ?? (state === "completed" ? /* @__PURE__ */ jsx(Check2, {}) : state === "error" ? /* @__PURE__ */ jsx(Cross, {}) : state === "loading" ? /* @__PURE__ */ jsx(Spinner2, {}) : index + 1);
1619
+ const content = step.icon ?? (state === "completed" ? /* @__PURE__ */ jsx(Check, {}) : state === "error" ? /* @__PURE__ */ jsx(Cross, {}) : state === "loading" ? /* @__PURE__ */ jsx(Spinner, {}) : index + 1);
1887
1620
  return /* @__PURE__ */ jsx(
1888
1621
  motion.span,
1889
1622
  {
@@ -1940,7 +1673,7 @@ function Stepper({
1940
1673
  const clickable = (i) => Boolean(onStepClick) && i <= current;
1941
1674
  const stepButton = (i, node) => clickable(i) ? /* @__PURE__ */ jsx("button", { type: "button", onClick: () => onStepClick?.(i), className: "rounded-md text-left focus:outline-none focus-visible:ring-2 focus-visible:ring-accent", children: node }) : node;
1942
1675
  if (vertical) {
1943
- return /* @__PURE__ */ jsx("ol", { className: ["flex flex-col", className].filter(Boolean).join(" "), children: steps.map((step, i) => {
1676
+ return /* @__PURE__ */ jsx("ol", { className: cx("flex flex-col", className), children: steps.map((step, i) => {
1944
1677
  const state = stateOf(i);
1945
1678
  const last = i === steps.length - 1;
1946
1679
  return /* @__PURE__ */ jsxs("li", { className: "flex gap-3", children: [
@@ -1952,7 +1685,7 @@ function Stepper({
1952
1685
  ] }, step.key);
1953
1686
  }) });
1954
1687
  }
1955
- return /* @__PURE__ */ jsx("ol", { className: ["flex items-start", className].filter(Boolean).join(" "), children: steps.map((step, i) => {
1688
+ return /* @__PURE__ */ jsx("ol", { className: cx("flex items-start", className), children: steps.map((step, i) => {
1956
1689
  const state = stateOf(i);
1957
1690
  return /* @__PURE__ */ jsxs("li", { className: "relative flex flex-1 flex-col items-center", children: [
1958
1691
  i > 0 && /* @__PURE__ */ jsx("span", { className: "absolute right-1/2 h-0.5 w-full bg-border", style: { top: s.center - 1 }, children: /* @__PURE__ */ jsx(
@@ -1972,7 +1705,7 @@ function Stepper({
1972
1705
  ] }, step.key);
1973
1706
  }) });
1974
1707
  }
1975
- var Check3 = () => /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 3, "aria-hidden": "true", className: "h-3 w-3", children: /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M20 6L9 17l-5-5" }) });
1708
+ var Check2 = () => /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 3, "aria-hidden": "true", className: "h-3 w-3", children: /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M20 6L9 17l-5-5" }) });
1976
1709
  var Cross2 = () => /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 3, "aria-hidden": "true", className: "h-3 w-3", children: /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M18 6 6 18M6 6l12 12" }) });
1977
1710
  var NODE = {
1978
1711
  complete: "bg-accent text-accent-fg border-accent",
@@ -1986,7 +1719,7 @@ function Timeline({ events, current, className = "" }) {
1986
1719
  if (current == null) return "upcoming";
1987
1720
  return i < current ? "complete" : i === current ? "current" : "upcoming";
1988
1721
  };
1989
- return /* @__PURE__ */ jsx("ol", { className: ["flex flex-col", className].filter(Boolean).join(" "), children: events.map((event, i) => {
1722
+ return /* @__PURE__ */ jsx("ol", { className: cx("flex flex-col", className), children: events.map((event, i) => {
1990
1723
  const status = statusOf(event, i);
1991
1724
  const last = i === events.length - 1;
1992
1725
  const railFilled = status === "complete";
@@ -2001,7 +1734,7 @@ function Timeline({ events, current, className = "" }) {
2001
1734
  ].join(" "),
2002
1735
  children: [
2003
1736
  status === "current" && /* @__PURE__ */ jsx("span", { className: "absolute inset-0 animate-breathe rounded-full ring-2 ring-accent/40", "aria-hidden": "true" }),
2004
- event.icon ?? (status === "complete" ? /* @__PURE__ */ jsx(Check3, {}) : status === "error" ? /* @__PURE__ */ jsx(Cross2, {}) : /* @__PURE__ */ jsx("span", { className: `h-2 w-2 rounded-full ${status === "current" ? "bg-accent" : "bg-border"}` }))
1737
+ event.icon ?? (status === "complete" ? /* @__PURE__ */ jsx(Check2, {}) : status === "error" ? /* @__PURE__ */ jsx(Cross2, {}) : /* @__PURE__ */ jsx("span", { className: `h-2 w-2 rounded-full ${status === "current" ? "bg-accent" : "bg-border"}` }))
2005
1738
  ]
2006
1739
  }
2007
1740
  ),
@@ -2029,22 +1762,22 @@ function Kbd({
2029
1762
  style
2030
1763
  }) {
2031
1764
  if (keys && keys.length > 0) {
2032
- return /* @__PURE__ */ jsx("span", { className: ["inline-flex items-center gap-1", className].filter(Boolean).join(" "), style, children: keys.map((k, i) => /* @__PURE__ */ jsxs(React29.Fragment, { children: [
1765
+ return /* @__PURE__ */ jsx("span", { className: cx("inline-flex items-center gap-1", className), style, children: keys.map((k, i) => /* @__PURE__ */ jsxs(React28.Fragment, { children: [
2033
1766
  i > 0 && /* @__PURE__ */ jsx("span", { className: "text-foreground-muted text-xs select-none", children: separator }),
2034
1767
  /* @__PURE__ */ jsx("kbd", { className: [cap, SIZE3[size]].join(" "), children: k })
2035
1768
  ] }, `${k}-${i}`)) });
2036
1769
  }
2037
- return /* @__PURE__ */ jsx("kbd", { className: [cap, SIZE3[size], className].filter(Boolean).join(" "), style, children });
1770
+ return /* @__PURE__ */ jsx("kbd", { className: cx(cap, SIZE3[size], className), style, children });
2038
1771
  }
2039
1772
  var PAD = { none: "", sm: "p-3", md: "p-5", lg: "p-6" };
2040
1773
  function Card({ children, interactive, onClick, padding: padding2 = "none", flush, className = "", style }) {
2041
- const base = [
1774
+ const base = cx(
2042
1775
  "rounded-xl overflow-hidden bg-surface",
2043
1776
  flush ? "" : "border border-border shadow-sm",
2044
1777
  PAD[padding2],
2045
1778
  interactive ? "transition-[transform,box-shadow] duration-200 ease-out hover:-translate-y-0.5 hover:shadow-md cursor-pointer focus:outline-none focus-visible:ring-2 focus-visible:ring-accent" : "",
2046
1779
  className
2047
- ].filter(Boolean).join(" ");
1780
+ );
2048
1781
  if (interactive && onClick) {
2049
1782
  return /* @__PURE__ */ jsx(
2050
1783
  "div",
@@ -2067,10 +1800,10 @@ function Card({ children, interactive, onClick, padding: padding2 = "none", flus
2067
1800
  return /* @__PURE__ */ jsx("div", { onClick, className: base, style, children });
2068
1801
  }
2069
1802
  function CardMedia({ children, className = "" }) {
2070
- return /* @__PURE__ */ jsx("div", { className: ["[&>img]:block [&>img]:w-full [&>img]:object-cover", className].filter(Boolean).join(" "), children });
1803
+ return /* @__PURE__ */ jsx("div", { className: cx("[&>img]:block [&>img]:w-full [&>img]:object-cover", className), children });
2071
1804
  }
2072
1805
  function CardHeader({ title, subtitle, action, avatar, children, className = "" }) {
2073
- return /* @__PURE__ */ jsxs("div", { className: ["flex items-start gap-3 px-5 pt-5", children ? "pb-0" : "pb-3", className].filter(Boolean).join(" "), children: [
1806
+ return /* @__PURE__ */ jsxs("div", { className: cx("flex items-start gap-3 px-5 pt-5", children ? "pb-0" : "pb-3", className), children: [
2074
1807
  avatar && /* @__PURE__ */ jsx("div", { className: "flex-shrink-0", children: avatar }),
2075
1808
  /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
2076
1809
  title && /* @__PURE__ */ jsx("div", { className: "text-sm font-semibold text-foreground leading-snug", children: title }),
@@ -2081,10 +1814,10 @@ function CardHeader({ title, subtitle, action, avatar, children, className = ""
2081
1814
  ] });
2082
1815
  }
2083
1816
  function CardBody({ children, className = "" }) {
2084
- return /* @__PURE__ */ jsx("div", { className: ["px-5 py-4 text-sm text-foreground-secondary leading-relaxed", className].filter(Boolean).join(" "), children });
1817
+ return /* @__PURE__ */ jsx("div", { className: cx("px-5 py-4 text-sm text-foreground-secondary leading-relaxed", className), children });
2085
1818
  }
2086
1819
  function CardFooter({ children, noDivider, className = "" }) {
2087
- return /* @__PURE__ */ jsx("div", { className: ["flex items-center gap-2 px-5 py-3", noDivider ? "" : "border-t border-border", className].filter(Boolean).join(" "), children });
1820
+ return /* @__PURE__ */ jsx("div", { className: cx("flex items-center gap-2 px-5 py-3", noDivider ? "" : "border-t border-border", className), children });
2088
1821
  }
2089
1822
  Card.Media = CardMedia;
2090
1823
  Card.Header = CardHeader;
@@ -2121,7 +1854,7 @@ function FlatCarousel({
2121
1854
  style
2122
1855
  }) {
2123
1856
  const scrollerRef = useRef(null);
2124
- const slides = React29.Children.toArray(children);
1857
+ const slides = React28.Children.toArray(children);
2125
1858
  const [active, setActive] = useState(0);
2126
1859
  const [atStart, setAtStart] = useState(true);
2127
1860
  const [atEnd, setAtEnd] = useState(false);
@@ -2160,7 +1893,7 @@ function FlatCarousel({
2160
1893
  const slideW = first ? first.getBoundingClientRect().width + gap : el.clientWidth;
2161
1894
  el.scrollTo({ left: i * slideW, behavior: "smooth" });
2162
1895
  };
2163
- return /* @__PURE__ */ jsxs("section", { "aria-label": ariaLabel, "aria-roledescription": "carousel", className: ["relative", className].filter(Boolean).join(" "), style, children: [
1896
+ return /* @__PURE__ */ jsxs("section", { "aria-label": ariaLabel, "aria-roledescription": "carousel", className: cx("relative", className), style, children: [
2164
1897
  showArrows && /* @__PURE__ */ jsx("button", { type: "button", "aria-label": "Previous", onClick: () => slideStep(-1), disabled: atStart, className: `${arrowBtn} left-1`, children: /* @__PURE__ */ jsx(Arrow2, { dir: "left" }) }),
2165
1898
  /* @__PURE__ */ jsx("div", { ref: scrollerRef, className: "flex overflow-x-auto snap-x snap-mandatory hidden-scrollbar scroll-smooth", style: { gap }, children: slides.map((slide, i) => /* @__PURE__ */ jsx("div", { className: "snap-start flex-shrink-0", style: { width }, children: slide }, i)) }),
2166
1899
  showArrows && /* @__PURE__ */ jsx("button", { type: "button", "aria-label": "Next", onClick: () => slideStep(1), disabled: atEnd, className: `${arrowBtn} right-1`, children: /* @__PURE__ */ jsx(Arrow2, { dir: "right" }) }),
@@ -2176,7 +1909,7 @@ function RotatingCarousel({
2176
1909
  className = "",
2177
1910
  style
2178
1911
  }) {
2179
- const slides = React29.Children.toArray(children);
1912
+ const slides = React28.Children.toArray(children);
2180
1913
  const count = slides.length;
2181
1914
  const [active, setActive] = useState(0);
2182
1915
  const reduced = useReducedMotion();
@@ -2203,7 +1936,7 @@ function RotatingCarousel({
2203
1936
  {
2204
1937
  "aria-label": ariaLabel,
2205
1938
  "aria-roledescription": "carousel",
2206
- className: ["relative", className].filter(Boolean).join(" "),
1939
+ className: cx("relative", className),
2207
1940
  style,
2208
1941
  onKeyDown,
2209
1942
  children: [
@@ -2266,7 +1999,7 @@ function fieldShell({
2266
1999
  sized = true
2267
2000
  } = {}) {
2268
2001
  const s = FIELD_SIZE[size];
2269
- return [
2002
+ return cx(
2270
2003
  "w-full rounded-lg border bg-surface text-foreground",
2271
2004
  "transition-[color,box-shadow,border-color] duration-150",
2272
2005
  s.text,
@@ -2280,7 +2013,7 @@ function fieldShell({
2280
2013
  hasError ? focusWithin ? FOCUS_WITHIN_ERROR : FOCUS_ELEMENT_ERROR : "",
2281
2014
  // placeholder colour for native inputs
2282
2015
  "placeholder:text-foreground-muted"
2283
- ].filter(Boolean).join(" ");
2016
+ );
2284
2017
  }
2285
2018
  function FieldHelpIcon({ text }) {
2286
2019
  return /* @__PURE__ */ jsx(Tooltip, { title: text, placement: "top", children: /* @__PURE__ */ jsx(
@@ -2313,14 +2046,14 @@ function FieldLabel({
2313
2046
  "div",
2314
2047
  {
2315
2048
  style: { width: horizontal ? width : void 0, ...style },
2316
- className: [
2049
+ className: cx(
2317
2050
  "flex items-center gap-1",
2318
2051
  horizontal ? "flex-shrink-0 whitespace-nowrap" : "",
2319
2052
  // Only the 'start' alignment needs the top nudge; 'center' relies
2320
2053
  // on the row's items-center to line up with a short control.
2321
2054
  horizontal && align === "start" ? "mt-2" : "",
2322
2055
  className
2323
- ].filter(Boolean).join(" "),
2056
+ ),
2324
2057
  children: [
2325
2058
  label != null && /* @__PURE__ */ jsxs("label", { htmlFor, className: "text-sm font-medium text-foreground select-none", children: [
2326
2059
  label,
@@ -2350,11 +2083,11 @@ function Field({
2350
2083
  return /* @__PURE__ */ jsxs(
2351
2084
  "div",
2352
2085
  {
2353
- className: [
2086
+ className: cx(
2354
2087
  "flex",
2355
2088
  horizontal ? `flex-row gap-3 ${labelAlign === "center" ? "items-center" : "items-start"}` : "flex-col gap-1.5",
2356
2089
  className
2357
- ].filter(Boolean).join(" "),
2090
+ ),
2358
2091
  children: [
2359
2092
  /* @__PURE__ */ jsx(
2360
2093
  FieldLabel,
@@ -2381,7 +2114,7 @@ var toDate = (d) => d instanceof Date ? d : new Date(d);
2381
2114
  var timeLabel = (d) => `${String(d.getHours()).padStart(2, "0")}:${String(d.getMinutes()).padStart(2, "0")}`;
2382
2115
  var initials = (name) => (name ?? "").trim().split(/\s+/).slice(0, 2).map((w) => w[0]?.toUpperCase() ?? "").join("") || void 0;
2383
2116
  var SendIcon = () => /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, "aria-hidden": "true", className: "h-4 w-4", children: /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M22 2 11 13M22 2l-7 20-4-9-9-4 20-7z" }) });
2384
- var ArrowDown2 = () => /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, "aria-hidden": "true", className: "h-4 w-4", children: /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M12 5v14M5 12l7 7 7-7" }) });
2117
+ var ArrowDown = () => /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, "aria-hidden": "true", className: "h-4 w-4", children: /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M12 5v14M5 12l7 7 7-7" }) });
2385
2118
  function TypingDots() {
2386
2119
  return /* @__PURE__ */ jsx("span", { className: "inline-flex items-center gap-1", "aria-hidden": "true", children: [0, 1, 2].map((i) => /* @__PURE__ */ jsx("span", { className: "h-1.5 w-1.5 animate-bounce rounded-full bg-foreground-muted", style: { animationDelay: `${i * 0.15}s` } }, i)) });
2387
2120
  }
@@ -2393,12 +2126,12 @@ var SKELETON_ROWS = [
2393
2126
  { own: true, w: 90 }
2394
2127
  ];
2395
2128
  function ChatSkeleton() {
2396
- return /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-2", "aria-hidden": "true", children: SKELETON_ROWS.map((r, i) => /* @__PURE__ */ jsxs("div", { className: ["flex items-end gap-2", r.own ? "flex-row-reverse" : ""].filter(Boolean).join(" "), children: [
2129
+ return /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-2", "aria-hidden": "true", children: SKELETON_ROWS.map((r, i) => /* @__PURE__ */ jsxs("div", { className: cx("flex items-end gap-2", r.own ? "flex-row-reverse" : ""), children: [
2397
2130
  !r.own && /* @__PURE__ */ jsx("span", { className: "h-6 w-6 flex-shrink-0 animate-pulse rounded-full bg-surface" }),
2398
2131
  /* @__PURE__ */ jsx("span", { className: "h-8 animate-pulse rounded-2xl bg-surface", style: { width: r.w } })
2399
2132
  ] }, i)) });
2400
2133
  }
2401
- function Chat2({
2134
+ function Chat({
2402
2135
  messages,
2403
2136
  currentUserId,
2404
2137
  onSend,
@@ -2456,7 +2189,7 @@ function Chat2({
2456
2189
  return /* @__PURE__ */ jsxs(
2457
2190
  "div",
2458
2191
  {
2459
- className: ["flex flex-col overflow-hidden rounded-xl border border-border bg-surface", className].filter(Boolean).join(" "),
2192
+ className: cx("flex flex-col overflow-hidden rounded-xl border border-border bg-surface", className),
2460
2193
  style: { height, ...style },
2461
2194
  children: [
2462
2195
  hasHeader && /* @__PURE__ */ jsxs("div", { className: "flex flex-shrink-0 items-center gap-3 border-b border-border px-4 py-3", children: [
@@ -2476,18 +2209,18 @@ function Chat2({
2476
2209
  const firstOfGroup = !prev || prev.authorId !== m.authorId;
2477
2210
  const lastOfGroup = !next || next.authorId !== m.authorId;
2478
2211
  const ts = m.timestamp ? toDate(m.timestamp) : null;
2479
- return /* @__PURE__ */ jsxs("div", { className: ["flex items-end gap-2", own ? "flex-row-reverse" : "", firstOfGroup ? "mt-2 first:mt-0" : ""].filter(Boolean).join(" "), children: [
2212
+ return /* @__PURE__ */ jsxs("div", { className: cx("flex items-end gap-2", own ? "flex-row-reverse" : "", firstOfGroup ? "mt-2 first:mt-0" : ""), children: [
2480
2213
  !own && /* @__PURE__ */ jsx("div", { className: "w-7 flex-shrink-0", children: lastOfGroup && /* @__PURE__ */ jsx(Avatar, { src: m.avatar, alt: m.authorName ?? "User", fallback: initials(m.authorName), size: "xs" }) }),
2481
2214
  /* @__PURE__ */ jsxs("div", { className: ["flex max-w-[78%] flex-col", own ? "items-end" : "items-start"].join(" "), children: [
2482
2215
  firstOfGroup && !own && m.authorName && /* @__PURE__ */ jsx("span", { className: "mb-0.5 px-1 text-[11px] font-medium text-foreground-muted", children: m.authorName }),
2483
2216
  /* @__PURE__ */ jsx(
2484
2217
  "div",
2485
2218
  {
2486
- className: [
2219
+ className: cx(
2487
2220
  "whitespace-pre-wrap break-words px-3 py-1.5 text-sm leading-snug",
2488
2221
  own ? "rounded-2xl bg-accent text-accent-fg" : "rounded-2xl border border-border bg-surface text-foreground",
2489
2222
  lastOfGroup ? own ? "rounded-br-md" : "rounded-bl-md" : ""
2490
- ].filter(Boolean).join(" "),
2223
+ ),
2491
2224
  children: m.text
2492
2225
  }
2493
2226
  ),
@@ -2516,7 +2249,7 @@ function Chat2({
2516
2249
  onClick: () => scrollToBottom(true),
2517
2250
  "aria-label": "Jump to latest",
2518
2251
  className: "absolute bottom-3 left-1/2 flex h-8 w-8 -translate-x-1/2 items-center justify-center rounded-full border border-border bg-surface text-foreground-secondary shadow-md transition-colors hover:bg-surface-raised hover:text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-accent",
2519
- children: /* @__PURE__ */ jsx(ArrowDown2, {})
2252
+ children: /* @__PURE__ */ jsx(ArrowDown, {})
2520
2253
  }
2521
2254
  )
2522
2255
  ] }),
@@ -2559,8 +2292,8 @@ var TONE2 = {
2559
2292
  bad: "text-status-error",
2560
2293
  neutral: "text-foreground-muted"
2561
2294
  };
2562
- var ArrowUp2 = /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2.2, "aria-hidden": "true", className: "h-3.5 w-3.5", children: /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M12 19V5M5 12l7-7 7 7" }) });
2563
- var ArrowDown3 = /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2.2, "aria-hidden": "true", className: "h-3.5 w-3.5", children: /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M12 5v14M5 12l7 7 7-7" }) });
2295
+ var ArrowUp = /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2.2, "aria-hidden": "true", className: "h-3.5 w-3.5", children: /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M12 19V5M5 12l7-7 7 7" }) });
2296
+ var ArrowDown2 = /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2.2, "aria-hidden": "true", className: "h-3.5 w-3.5", children: /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M12 5v14M5 12l7 7 7-7" }) });
2564
2297
  function Statistic({
2565
2298
  label,
2566
2299
  value,
@@ -2580,7 +2313,7 @@ function Statistic({
2580
2313
  return /* @__PURE__ */ jsxs(
2581
2314
  "div",
2582
2315
  {
2583
- className: ["flex gap-3", align === "center" ? "flex-col items-center text-center" : "items-start", className].filter(Boolean).join(" "),
2316
+ className: cx("flex gap-3", align === "center" ? "flex-col items-center text-center" : "items-start", className),
2584
2317
  style,
2585
2318
  children: [
2586
2319
  icon && align === "left" && /* @__PURE__ */ jsx("span", { className: "flex h-10 w-10 flex-shrink-0 items-center justify-center rounded-lg bg-accent/10 text-accent", children: /* @__PURE__ */ jsx("span", { className: "h-5 w-5 inline-flex items-center justify-center", children: icon }) }),
@@ -2592,7 +2325,7 @@ function Statistic({
2592
2325
  suffix && /* @__PURE__ */ jsx("span", { className: "text-foreground-muted text-[0.5em] font-medium self-center", children: suffix })
2593
2326
  ] }),
2594
2327
  delta && /* @__PURE__ */ jsxs("div", { className: `mt-1.5 flex items-center gap-1 text-sm font-medium ${align === "center" ? "justify-center" : ""} ${TONE2[deltaTone]}`, children: [
2595
- dir === "up" ? ArrowUp2 : dir === "down" ? ArrowDown3 : null,
2328
+ dir === "up" ? ArrowUp : dir === "down" ? ArrowDown2 : null,
2596
2329
  /* @__PURE__ */ jsx("span", { children: delta.value }),
2597
2330
  delta.label && /* @__PURE__ */ jsx("span", { className: "text-foreground-muted font-normal", children: delta.label })
2598
2331
  ] }),
@@ -2673,7 +2406,7 @@ function FAB({
2673
2406
  return /* @__PURE__ */ jsxs(
2674
2407
  "div",
2675
2408
  {
2676
- className: [fixed ? "fixed" : "absolute", "z-40 flex flex-col", POS[position], className].filter(Boolean).join(" "),
2409
+ className: cx(fixed ? "fixed" : "absolute", "z-40 flex flex-col", POS[position], className),
2677
2410
  style,
2678
2411
  children: [
2679
2412
  bottom && dial,
@@ -2684,13 +2417,13 @@ function FAB({
2684
2417
  "aria-label": label,
2685
2418
  "aria-expanded": hasDial ? open : void 0,
2686
2419
  onClick: (e) => hasDial ? setOpen((o) => !o) : onClick?.(e),
2687
- className: [
2420
+ className: cx(
2688
2421
  "flex items-center justify-center rounded-full shadow-lg transition-[background-color,transform] duration-200",
2689
2422
  "focus:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2",
2690
2423
  SIZE4[size],
2691
2424
  TONE3[tone],
2692
2425
  hasDial && open ? "rotate-45" : ""
2693
- ].filter(Boolean).join(" "),
2426
+ ),
2694
2427
  children: /* @__PURE__ */ jsx("span", { className: "h-6 w-6 inline-flex items-center justify-center", children: icon })
2695
2428
  }
2696
2429
  ),
@@ -2758,7 +2491,7 @@ function PopConfirm({
2758
2491
  side,
2759
2492
  sideOffset: 8,
2760
2493
  collisionPadding: 12,
2761
- className: ["z-[400] focus:outline-none", className].filter(Boolean).join(" "),
2494
+ className: cx("z-[400] focus:outline-none", className),
2762
2495
  children: [
2763
2496
  /* @__PURE__ */ jsxs(
2764
2497
  motion.div,
@@ -2968,19 +2701,19 @@ function SegmentedControl({
2968
2701
  "aria-label": ariaLabel ?? (typeof label === "string" ? label : void 0),
2969
2702
  "aria-invalid": hasError || void 0,
2970
2703
  "aria-describedby": hasError ? errorId : void 0,
2971
- className: [
2704
+ className: cx(
2972
2705
  "inline-flex items-center gap-1 rounded-lg border bg-surface-raised p-1",
2973
2706
  hasError ? "border-status-error" : "border-border",
2974
2707
  sz.h,
2975
2708
  fullWidth ? "flex w-full" : "w-fit",
2976
2709
  disabled ? "opacity-60 cursor-not-allowed" : ""
2977
- ].filter(Boolean).join(" "),
2710
+ ),
2978
2711
  children: options.map((opt) => /* @__PURE__ */ jsxs(
2979
2712
  ToggleGroup.Item,
2980
2713
  {
2981
2714
  value: opt.value,
2982
2715
  disabled: opt.disabled,
2983
- className: [
2716
+ className: cx(
2984
2717
  "inline-flex items-center justify-center gap-1.5 rounded-md select-none whitespace-nowrap",
2985
2718
  "transition-colors duration-150 h-full",
2986
2719
  sz.text,
@@ -2992,7 +2725,7 @@ function SegmentedControl({
2992
2725
  "data-[state=on]:bg-surface data-[state=on]:text-accent data-[state=on]:shadow-sm",
2993
2726
  "focus:outline-none focus-visible:ring-[3px] focus-visible:ring-focus-ring",
2994
2727
  "disabled:opacity-40 disabled:cursor-not-allowed"
2995
- ].filter(Boolean).join(" "),
2728
+ ),
2996
2729
  children: [
2997
2730
  opt.icon && /* @__PURE__ */ jsx("span", { className: "flex-shrink-0", children: opt.icon }),
2998
2731
  opt.label
@@ -3034,6 +2767,7 @@ var addDays = (d, n) => {
3034
2767
  var addMonths = (d, n) => new Date(d.getFullYear(), d.getMonth() + n, 1);
3035
2768
  var sameDay = (a, b) => a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();
3036
2769
  var isToday = (d) => sameDay(d, /* @__PURE__ */ new Date());
2770
+ var dayKey = (d) => `${d.getFullYear()}-${d.getMonth()}-${d.getDate()}`;
3037
2771
  var isSameMonth = (a, b) => a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth();
3038
2772
  var startOfMonth = (d) => new Date(d.getFullYear(), d.getMonth(), 1);
3039
2773
  var endOfMonth = (d) => new Date(d.getFullYear(), d.getMonth() + 1, 0);
@@ -3078,8 +2812,8 @@ var normalize = (e) => {
3078
2812
  const end = e.end ? toDate2(e.end) : new Date(start.getTime() + 36e5);
3079
2813
  return { ...e, start, end };
3080
2814
  };
3081
- var Spinner3 = () => /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", "aria-hidden": "true", className: "h-5 w-5 animate-spin text-accent", children: /* @__PURE__ */ jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M4.755 10.059a7.5 7.5 0 0112.548-3.364l1.903 1.903h-3.183a.75.75 0 100 1.5h4.992a.75.75 0 00.75-.75V4.356a.75.75 0 00-1.5 0v3.18l-1.9-1.9A9 9 0 003.306 9.67a.75.75 0 101.45.388zm15.408 3.352a.75.75 0 00-.919.53 7.5 7.5 0 01-12.548 3.364l-1.902-1.903h3.183a.75.75 0 000-1.5H2.984a.75.75 0 00-.75.75v4.992a.75.75 0 001.5 0v-3.18l1.9 1.9a9 9 0 0015.059-4.035.75.75 0 00-.53-.918z" }) });
3082
- var Plus2 = () => /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, "aria-hidden": "true", className: "h-4 w-4", children: /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M12 5v14M5 12h14" }) });
2815
+ var Spinner2 = () => /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", "aria-hidden": "true", className: "h-5 w-5 animate-spin text-accent", children: /* @__PURE__ */ jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M4.755 10.059a7.5 7.5 0 0112.548-3.364l1.903 1.903h-3.183a.75.75 0 100 1.5h4.992a.75.75 0 00.75-.75V4.356a.75.75 0 00-1.5 0v3.18l-1.9-1.9A9 9 0 003.306 9.67a.75.75 0 101.45.388zm15.408 3.352a.75.75 0 00-.919.53 7.5 7.5 0 01-12.548 3.364l-1.902-1.903h3.183a.75.75 0 000-1.5H2.984a.75.75 0 00-.75.75v4.992a.75.75 0 001.5 0v-3.18l1.9 1.9a9 9 0 0015.059-4.035.75.75 0 00-.53-.918z" }) });
2816
+ var Plus = () => /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, "aria-hidden": "true", className: "h-4 w-4", children: /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M12 5v14M5 12h14" }) });
3083
2817
  var Chevron4 = ({ dir }) => /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, "aria-hidden": "true", className: "h-4 w-4", children: /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: dir === "left" ? "M15 19l-7-7 7-7" : "M9 5l7 7-7 7" }) });
3084
2818
  function Scheduler({
3085
2819
  events: controlledEvents,
@@ -3150,7 +2884,7 @@ function Scheduler({
3150
2884
  return /* @__PURE__ */ jsxs(
3151
2885
  "div",
3152
2886
  {
3153
- className: ["flex flex-col overflow-hidden rounded-xl border border-border bg-surface", className].filter(Boolean).join(" "),
2887
+ className: cx("flex flex-col overflow-hidden rounded-xl border border-border bg-surface", className),
3154
2888
  style,
3155
2889
  children: [
3156
2890
  /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center justify-between gap-3 border-b border-border px-4 py-3", children: [
@@ -3169,7 +2903,7 @@ function Scheduler({
3169
2903
  }
3170
2904
  }
3171
2905
  ),
3172
- loading && /* @__PURE__ */ jsx(Spinner3, {})
2906
+ loading && /* @__PURE__ */ jsx(Spinner2, {})
3173
2907
  ] }),
3174
2908
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
3175
2909
  /* @__PURE__ */ jsx(
@@ -3182,7 +2916,7 @@ function Scheduler({
3182
2916
  options: [{ value: "month", label: "Month" }, { value: "week", label: "Week" }]
3183
2917
  }
3184
2918
  ),
3185
- onNewEvent && /* @__PURE__ */ jsx(Button_default, { size: "sm", icon: /* @__PURE__ */ jsx(Plus2, {}), content: "New event", onClick: onNewEvent })
2919
+ onNewEvent && /* @__PURE__ */ jsx(Button_default, { size: "sm", icon: /* @__PURE__ */ jsx(Plus, {}), content: "New event", onClick: onNewEvent })
3186
2920
  ] })
3187
2921
  ] }),
3188
2922
  /* @__PURE__ */ jsx("div", { className: "relative flex-1 overflow-hidden", children: error ? /* @__PURE__ */ jsx(SchedulerError, { onRetry: retry }) : loadEvents && loading && events.length === 0 ? /* @__PURE__ */ jsx(SchedulerSkeleton, { view }) : /* @__PURE__ */ jsx(
@@ -3309,6 +3043,17 @@ function MonthYearPicker({ label, cursor, onPick }) {
3309
3043
  ] });
3310
3044
  }
3311
3045
  var MAX_CHIPS = 3;
3046
+ var NO_EVENTS = [];
3047
+ function bucketByDay(events) {
3048
+ const map = /* @__PURE__ */ new Map();
3049
+ for (const e of events) {
3050
+ const key = dayKey(e.start);
3051
+ const bucket = map.get(key);
3052
+ if (bucket) bucket.push(e);
3053
+ else map.set(key, [e]);
3054
+ }
3055
+ return map;
3056
+ }
3312
3057
  function MonthView({
3313
3058
  cursor,
3314
3059
  weekStartsOn,
@@ -3317,12 +3062,13 @@ function MonthView({
3317
3062
  onSelectEvent
3318
3063
  }) {
3319
3064
  const grid = useMemo(() => buildMonthGrid(cursor, weekStartsOn), [cursor, weekStartsOn]);
3065
+ const eventsByDay = useMemo(() => bucketByDay(events), [events]);
3320
3066
  const labels = weekdayLabels(weekStartsOn);
3321
3067
  return /* @__PURE__ */ jsxs("div", { className: "flex h-full flex-col", children: [
3322
3068
  /* @__PURE__ */ jsx("div", { className: "grid grid-cols-7 border-b border-border", children: labels.map((l) => /* @__PURE__ */ jsx("div", { className: "px-2 py-1.5 text-center text-[11px] font-medium uppercase tracking-wide text-foreground-muted", children: l }, l)) }),
3323
3069
  /* @__PURE__ */ jsx("div", { className: "grid flex-1 grid-cols-7 grid-rows-6", children: grid.map((day, i) => {
3324
3070
  const inMonth = isSameMonth(day, cursor);
3325
- const dayEvents = events.filter((e) => sameDay(e.start, day));
3071
+ const dayEvents = eventsByDay.get(dayKey(day)) ?? NO_EVENTS;
3326
3072
  const today = isToday(day);
3327
3073
  return /* @__PURE__ */ jsxs(
3328
3074
  "button",
@@ -3391,6 +3137,7 @@ function WeekView({
3391
3137
  onSelectEvent
3392
3138
  }) {
3393
3139
  const days = useMemo(() => getWeekDays(cursor, weekStartsOn), [cursor, weekStartsOn]);
3140
+ const eventsByDay = useMemo(() => bucketByDay(events), [events]);
3394
3141
  const labels = useMemo(() => weekdayLabels(weekStartsOn), [weekStartsOn]);
3395
3142
  const dow = (d) => labels[(d.getDay() - weekStartsOn + 7) % 7];
3396
3143
  const [startHour, endHour] = dayHours;
@@ -3411,7 +3158,7 @@ function WeekView({
3411
3158
  /* @__PURE__ */ jsx("div", { className: "flex-1 overflow-y-auto", children: /* @__PURE__ */ jsxs("div", { className: "grid", style: { gridTemplateColumns: `3.5rem repeat(7, 1fr)`, height: gridHeight }, children: [
3412
3159
  /* @__PURE__ */ jsx("div", { className: "relative border-r border-border", children: hours.map((h, i) => /* @__PURE__ */ jsx("div", { className: "absolute right-1 -translate-y-1/2 text-[10px] tabular-nums text-foreground-muted", style: { top: i * hourHeight }, children: i === 0 ? "" : hourLabel(h) }, h)) }),
3413
3160
  days.map((day) => {
3414
- const dayEvents = events.filter((e) => sameDay(e.start, day) && !e.allDay);
3161
+ const dayEvents = (eventsByDay.get(dayKey(day)) ?? NO_EVENTS).filter((e) => !e.allDay);
3415
3162
  return /* @__PURE__ */ jsxs("div", { className: "relative border-r border-border last:border-r-0", children: [
3416
3163
  hours.map((h, i) => /* @__PURE__ */ jsx(
3417
3164
  "button",
@@ -3499,7 +3246,7 @@ function EmptyCart({
3499
3246
  return /* @__PURE__ */ jsxs(
3500
3247
  "div",
3501
3248
  {
3502
- className: ["flex flex-col items-center justify-center px-6 py-10 text-center", className].filter(Boolean).join(" "),
3249
+ className: cx("flex flex-col items-center justify-center px-6 py-10 text-center", className),
3503
3250
  style,
3504
3251
  children: [
3505
3252
  art && /* @__PURE__ */ jsx("div", { className: "mb-4", children: art }),
@@ -3537,7 +3284,7 @@ function Cart({
3537
3284
  }) {
3538
3285
  const subtotal = items.reduce((sum, it) => sum + it.price * it.quantity, 0);
3539
3286
  const total = subtotal + summaryRows.reduce((sum, r) => sum + r.value, 0);
3540
- return /* @__PURE__ */ jsxs("div", { className: ["flex flex-col rounded-xl border border-border bg-surface", className].filter(Boolean).join(" "), style, children: [
3287
+ return /* @__PURE__ */ jsxs("div", { className: cx("flex flex-col rounded-xl border border-border bg-surface", className), style, children: [
3541
3288
  items.length === 0 ? emptyState ?? /* @__PURE__ */ jsx(EmptyCart, {}) : /* @__PURE__ */ jsx("ul", { className: "divide-y divide-border", children: items.map((it) => /* @__PURE__ */ jsxs("li", { className: "flex items-center gap-3 p-3", children: [
3542
3289
  /* @__PURE__ */ jsx("div", { className: "h-14 w-14 flex-shrink-0 overflow-hidden rounded-md bg-surface-raised", children: it.image && /* @__PURE__ */ jsx("img", { src: it.image, alt: "", className: "h-full w-full object-cover" }) }),
3543
3290
  /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
@@ -4381,7 +4128,7 @@ function Checkout({
4381
4128
  const subtotal = items.reduce((sum, it) => sum + it.price * it.quantity, 0);
4382
4129
  const total = subtotal + summaryRows.reduce((sum, r) => sum + r.value, 0);
4383
4130
  const isEmpty2 = items.length === 0;
4384
- return /* @__PURE__ */ jsxs("div", { className: ["mx-auto w-full max-w-5xl", className].filter(Boolean).join(" "), children: [
4131
+ return /* @__PURE__ */ jsxs("div", { className: cx("mx-auto w-full max-w-5xl", className), children: [
4385
4132
  title && /* @__PURE__ */ jsx("h1", { className: "mb-6 text-2xl font-semibold tracking-tight text-foreground", children: title }),
4386
4133
  /* @__PURE__ */ jsxs("div", { className: "grid gap-6 lg:grid-cols-2", children: [
4387
4134
  /* @__PURE__ */ jsx("section", { "aria-label": "Order summary", children: /* @__PURE__ */ jsx(
@@ -4759,7 +4506,7 @@ var DENSITY_PADDING = {
4759
4506
  "comfortable": "py-2.5 px-3",
4760
4507
  "spacious": "py-3.5 px-4"
4761
4508
  };
4762
- function List3({
4509
+ function List2({
4763
4510
  items,
4764
4511
  onItemClick,
4765
4512
  activeKey,
@@ -4852,14 +4599,14 @@ function ScalableContainer({
4852
4599
  width: { type: "tween", duration: 0.32, ease: [0.16, 1, 0.3, 1] },
4853
4600
  height: { type: "tween", duration: 0.32, ease: [0.16, 1, 0.3, 1] }
4854
4601
  },
4855
- className: [
4602
+ className: cx(
4856
4603
  "relative rounded-lg overflow-hidden",
4857
4604
  // OS-window aesthetic: subtle elevation at rest, lifted shadow
4858
4605
  // when expanded. No background colour change.
4859
4606
  isScaled ? "shadow-2xl" : "shadow-md",
4860
4607
  "transition-shadow duration-300",
4861
4608
  className
4862
- ].filter(Boolean).join(" "),
4609
+ ),
4863
4610
  children: [
4864
4611
  /* @__PURE__ */ jsx(Tooltip, { placement: "bottom", title: isScaled ? "Collapse" : "Expand", children: /* @__PURE__ */ jsx(
4865
4612
  "button",
@@ -5092,7 +4839,7 @@ function renderItem(item) {
5092
4839
  className: ITEM_CLASSNAME,
5093
4840
  children: [
5094
4841
  /* @__PURE__ */ jsx(ContextMenuLabel, { icon: item.icon, value: item.value }),
5095
- /* @__PURE__ */ jsx(ChevronRight2, {})
4842
+ /* @__PURE__ */ jsx(ChevronRight, {})
5096
4843
  ]
5097
4844
  }
5098
4845
  ),
@@ -5125,7 +4872,7 @@ function ContextMenuLabel({ icon, value }) {
5125
4872
  /* @__PURE__ */ jsx("span", { className: "truncate", children: value })
5126
4873
  ] });
5127
4874
  }
5128
- function ChevronRight2() {
4875
+ function ChevronRight() {
5129
4876
  return /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, className: "h-4 w-4 flex-shrink-0", "aria-hidden": "true", children: /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M9 5l7 7-7 7" }) });
5130
4877
  }
5131
4878
  function readDismissed(key) {
@@ -5384,7 +5131,7 @@ function Wizard({
5384
5131
  ] });
5385
5132
  }
5386
5133
  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" }) });
5387
- var SearchInput = React29.forwardRef(function SearchInput2({ value, onChange, disabled, label, htmlFor, placeholder, name, inputStyle, style, layout = "vertical", size = "md", icon, helperText, className }, ref) {
5134
+ var SearchInput = React28.forwardRef(function SearchInput2({ value, onChange, disabled, label, htmlFor, placeholder, name, inputStyle, style, layout = "vertical", size = "md", icon, helperText, className }, ref) {
5388
5135
  return /* @__PURE__ */ jsx(Field, { className, label, htmlFor, layout, helperText, children: /* @__PURE__ */ jsxs(
5389
5136
  "div",
5390
5137
  {
@@ -5583,7 +5330,7 @@ function TableBody({
5583
5330
  return /* @__PURE__ */ jsx("tbody", { children: rows.map((row, i) => {
5584
5331
  const rowKey = getRowKey(row, i);
5585
5332
  const isExpanded = expanded.has(rowKey);
5586
- return /* @__PURE__ */ jsxs(React29.Fragment, { children: [
5333
+ return /* @__PURE__ */ jsxs(React28.Fragment, { children: [
5587
5334
  /* @__PURE__ */ jsxs(
5588
5335
  "tr",
5589
5336
  {
@@ -5691,7 +5438,7 @@ function Pagination({
5691
5438
  ] })
5692
5439
  ] });
5693
5440
  }
5694
- function Table2({
5441
+ function Table({
5695
5442
  columns = [],
5696
5443
  rows = [],
5697
5444
  getRowKey = defaultGetRowKey,
@@ -6028,11 +5775,11 @@ function MegaMenu({
6028
5775
  {
6029
5776
  delayDuration,
6030
5777
  "aria-label": ariaLabel,
6031
- className: [
5778
+ className: cx(
6032
5779
  "relative z-10 w-full",
6033
5780
  responsive ? "hidden md:flex" : "flex",
6034
5781
  className
6035
- ].filter(Boolean).join(" "),
5782
+ ),
6036
5783
  style,
6037
5784
  children: /* @__PURE__ */ jsx(NavigationMenu.List, { className: "flex items-center gap-1", children })
6038
5785
  }
@@ -6045,13 +5792,13 @@ function MegaMenuItem({ label, icon, href, children, className = "" }) {
6045
5792
  const { align } = useContext(MegaMenuContext);
6046
5793
  const pos = align === "center" ? "left-1/2 -translate-x-1/2" : align === "end" ? "right-0" : "left-0";
6047
5794
  if (!children) {
6048
- return /* @__PURE__ */ jsx(NavigationMenu.Item, { children: /* @__PURE__ */ jsxs(NavigationMenu.Link, { href, className: [TOP_ITEM, className].filter(Boolean).join(" "), children: [
5795
+ return /* @__PURE__ */ jsx(NavigationMenu.Item, { children: /* @__PURE__ */ jsxs(NavigationMenu.Link, { href, className: cx(TOP_ITEM, className), children: [
6049
5796
  icon && /* @__PURE__ */ jsx("span", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center", children: icon }),
6050
5797
  label
6051
5798
  ] }) });
6052
5799
  }
6053
5800
  return /* @__PURE__ */ jsxs(NavigationMenu.Item, { children: [
6054
- /* @__PURE__ */ jsxs(NavigationMenu.Trigger, { className: [TOP_ITEM, className].filter(Boolean).join(" "), children: [
5801
+ /* @__PURE__ */ jsxs(NavigationMenu.Trigger, { className: cx(TOP_ITEM, className), children: [
6055
5802
  icon && /* @__PURE__ */ jsx("span", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center", children: icon }),
6056
5803
  label,
6057
5804
  /* @__PURE__ */ jsx(
@@ -6089,14 +5836,14 @@ function MegaMenuPanel({ children, columns, className = "", style }) {
6089
5836
  return /* @__PURE__ */ jsx(
6090
5837
  "div",
6091
5838
  {
6092
- className: ["grid gap-6 p-6", className].filter(Boolean).join(" "),
5839
+ className: cx("grid gap-6 p-6", className),
6093
5840
  style: { ...layout, maxWidth: "min(92vw, 960px)", ...style },
6094
5841
  children
6095
5842
  }
6096
5843
  );
6097
5844
  }
6098
5845
  function MegaMenuSection({ title, children, className = "" }) {
6099
- return /* @__PURE__ */ jsxs("div", { className: ["min-w-0 flex flex-col", className].filter(Boolean).join(" "), children: [
5846
+ return /* @__PURE__ */ jsxs("div", { className: cx("min-w-0 flex flex-col", className), children: [
6100
5847
  title && /* @__PURE__ */ jsx("p", { className: "px-3 pb-1.5 text-[11px] font-semibold uppercase tracking-widest text-foreground-muted select-none", children: title }),
6101
5848
  /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-0.5", children })
6102
5849
  ] });
@@ -6108,12 +5855,12 @@ function MegaMenuLink({ href, icon, description, active, onClick, children, clas
6108
5855
  active,
6109
5856
  href,
6110
5857
  onClick,
6111
- className: [
5858
+ className: cx(
6112
5859
  "group/link flex items-start gap-3 rounded-md p-3 transition-colors select-none",
6113
5860
  "hover:bg-surface-raised focus:outline-none focus-visible:ring-2 focus-visible:ring-accent",
6114
5861
  "data-[active]:bg-surface-raised",
6115
5862
  className
6116
- ].filter(Boolean).join(" "),
5863
+ ),
6117
5864
  children: [
6118
5865
  icon && /* @__PURE__ */ jsx("span", { className: "flex h-9 w-9 flex-shrink-0 items-center justify-center rounded-md bg-surface-raised text-accent group-hover/link:bg-surface group-data-[active]/link:bg-surface transition-colors", children: /* @__PURE__ */ jsx("span", { className: "h-[18px] w-[18px] inline-flex items-center justify-center", children: icon }) }),
6119
5866
  /* @__PURE__ */ jsxs("span", { className: "flex flex-col min-w-0", children: [
@@ -6125,10 +5872,10 @@ function MegaMenuLink({ href, icon, description, active, onClick, children, clas
6125
5872
  );
6126
5873
  }
6127
5874
  function MegaMenuFeatured({ children, className = "" }) {
6128
- 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 });
5875
+ return /* @__PURE__ */ jsx("div", { className: cx("min-w-0 rounded-lg bg-surface-raised border border-border p-4 flex flex-col", className), children });
6129
5876
  }
6130
- var elementsOfType = (children, type) => React29.Children.toArray(children).filter(
6131
- (c) => React29.isValidElement(c) && c.type === type
5877
+ var elementsOfType = (children, type) => React28.Children.toArray(children).filter(
5878
+ (c) => React28.isValidElement(c) && c.type === type
6132
5879
  );
6133
5880
  var MOBILE_CHEVRON = /* @__PURE__ */ jsx(
6134
5881
  "svg",
@@ -6165,9 +5912,9 @@ function MobileLinkRow({ link, onNavigate }) {
6165
5912
  );
6166
5913
  }
6167
5914
  function MobilePanel({ panel, onNavigate }) {
6168
- const nodes = React29.Children.toArray(panel.props.children);
5915
+ const nodes = React28.Children.toArray(panel.props.children);
6169
5916
  return /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-4 px-2 pb-3 pt-1", children: nodes.map((node, i) => {
6170
- if (!React29.isValidElement(node)) return null;
5917
+ if (!React28.isValidElement(node)) return null;
6171
5918
  const el = node;
6172
5919
  if (el.type === MegaMenuSection) {
6173
5920
  const { title, children } = el.props;
@@ -6215,7 +5962,7 @@ function MegaMenuMobile({
6215
5962
  {
6216
5963
  href,
6217
5964
  onClick: () => setOpen(false),
6218
- className: [rowBase, divider].filter(Boolean).join(" "),
5965
+ className: cx(rowBase, divider),
6219
5966
  children: [
6220
5967
  icon && /* @__PURE__ */ jsx("span", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center", children: icon }),
6221
5968
  itemLabel
@@ -6231,7 +5978,7 @@ function MegaMenuMobile({
6231
5978
  type: "button",
6232
5979
  onClick: () => setExpanded(isOpen ? null : i),
6233
5980
  "aria-expanded": isOpen,
6234
- className: [rowBase, isOpen ? "text-accent" : ""].filter(Boolean).join(" "),
5981
+ className: cx(rowBase, isOpen ? "text-accent" : ""),
6235
5982
  children: [
6236
5983
  icon && /* @__PURE__ */ jsx("span", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center", children: icon }),
6237
5984
  /* @__PURE__ */ jsx("span", { className: "flex-1 text-left", children: itemLabel }),
@@ -6377,7 +6124,7 @@ function tokenValid(token) {
6377
6124
  return exp * 1e3 > Date.now();
6378
6125
  }
6379
6126
  var has = (have, need, all) => all ? need.every((n) => have?.includes(n)) : need.some((n) => have?.includes(n));
6380
- var Spinner4 = () => /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", "aria-hidden": "true", className: "h-6 w-6 animate-spin text-accent", children: /* @__PURE__ */ jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M4.755 10.059a7.5 7.5 0 0112.548-3.364l1.903 1.903h-3.183a.75.75 0 100 1.5h4.992a.75.75 0 00.75-.75V4.356a.75.75 0 00-1.5 0v3.18l-1.9-1.9A9 9 0 003.306 9.67a.75.75 0 101.45.388zm15.408 3.352a.75.75 0 00-.919.53 7.5 7.5 0 01-12.548 3.364l-1.902-1.903h3.183a.75.75 0 000-1.5H2.984a.75.75 0 00-.75.75v4.992a.75.75 0 001.5 0v-3.18l1.9 1.9a9 9 0 0015.059-4.035.75.75 0 00-.53-.918z" }) });
6127
+ var Spinner3 = () => /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", "aria-hidden": "true", className: "h-6 w-6 animate-spin text-accent", children: /* @__PURE__ */ jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M4.755 10.059a7.5 7.5 0 0112.548-3.364l1.903 1.903h-3.183a.75.75 0 100 1.5h4.992a.75.75 0 00.75-.75V4.356a.75.75 0 00-1.5 0v3.18l-1.9-1.9A9 9 0 003.306 9.67a.75.75 0 101.45.388zm15.408 3.352a.75.75 0 00-.919.53 7.5 7.5 0 01-12.548 3.364l-1.902-1.903h3.183a.75.75 0 000-1.5H2.984a.75.75 0 00-.75.75v4.992a.75.75 0 001.5 0v-3.18l1.9 1.9a9 9 0 0015.059-4.035.75.75 0 00-.53-.918z" }) });
6381
6128
  function SecureLayout({
6382
6129
  children,
6383
6130
  isAuthenticated,
@@ -6453,7 +6200,7 @@ function SecureLayout({
6453
6200
  ]);
6454
6201
  if (state === "checking") {
6455
6202
  if (loadingFallback === null) return null;
6456
- return /* @__PURE__ */ jsx("div", { className: ["flex min-h-[8rem] items-center justify-center", className].filter(Boolean).join(" "), children: loadingFallback !== void 0 ? loadingFallback : /* @__PURE__ */ jsx(Spinner4, {}) });
6203
+ return /* @__PURE__ */ jsx("div", { className: cx("flex min-h-[8rem] items-center justify-center", className), children: loadingFallback !== void 0 ? loadingFallback : /* @__PURE__ */ jsx(Spinner3, {}) });
6457
6204
  }
6458
6205
  if (state === "denied") {
6459
6206
  if (fallback === null) return null;
@@ -6576,7 +6323,7 @@ function ThemeProvider({
6576
6323
  className = "",
6577
6324
  style
6578
6325
  }) {
6579
- const id = React29.useId().replace(/:/g, "");
6326
+ const id = React28.useId().replace(/:/g, "");
6580
6327
  const scopeClass = `geo-th-${id}`;
6581
6328
  const divRef = useRef(null);
6582
6329
  useEffect(() => {
@@ -7061,11 +6808,11 @@ function Switch({
7061
6808
  if (!isControlled) setInternal(c);
7062
6809
  onChange?.({ target: { checked: c, name } });
7063
6810
  };
7064
- const stateLabel = (active) => [
6811
+ const stateLabel = (active) => cx(
7065
6812
  "text-sm select-none transition-colors",
7066
6813
  active ? "text-foreground font-medium" : "text-foreground-muted",
7067
6814
  disabled ? "opacity-50" : "cursor-pointer"
7068
- ].filter(Boolean).join(" ");
6815
+ );
7069
6816
  return /* @__PURE__ */ jsx(
7070
6817
  Field,
7071
6818
  {
@@ -7106,7 +6853,7 @@ function Switch({
7106
6853
  }
7107
6854
  );
7108
6855
  }
7109
- function Tag2({ children, onRemove, removeLabel, disabled }) {
6856
+ function Tag({ children, onRemove, removeLabel, disabled }) {
7110
6857
  return /* @__PURE__ */ jsxs("span", { className: "inline-flex items-center gap-1 rounded-md border border-border bg-surface-raised text-foreground text-xs pl-2 pr-1 py-0.5 max-w-full", children: [
7111
6858
  /* @__PURE__ */ jsx("span", { className: "truncate", children }),
7112
6859
  onRemove && /* @__PURE__ */ jsx(
@@ -7190,14 +6937,14 @@ function MultiTagRow({
7190
6937
  className: "absolute invisible pointer-events-none flex flex-nowrap items-center gap-1.5",
7191
6938
  style: { left: -9999, top: -9999 },
7192
6939
  children: [
7193
- values.map((val) => /* @__PURE__ */ jsx("span", { "data-mt": true, children: /* @__PURE__ */ jsx(Tag2, { removeLabel: "x", onRemove: () => {
6940
+ values.map((val) => /* @__PURE__ */ jsx("span", { "data-mt": true, children: /* @__PURE__ */ jsx(Tag, { removeLabel: "x", onRemove: () => {
7194
6941
  }, children: labelFor(val) }) }, `m-${val}`)),
7195
6942
  /* @__PURE__ */ jsx("span", { "data-mm": true, children: moreChip(values.length) })
7196
6943
  ]
7197
6944
  }
7198
6945
  ),
7199
6946
  values.slice(0, visibleCount).map((val) => /* @__PURE__ */ jsx(
7200
- Tag2,
6947
+ Tag,
7201
6948
  {
7202
6949
  disabled,
7203
6950
  removeLabel: `Remove ${labelFor(val)}`,
@@ -7322,7 +7069,7 @@ function Dropdown({
7322
7069
  onRemove: removeSelected
7323
7070
  }
7324
7071
  ) : /* @__PURE__ */ jsx("div", { className: "flex-1 min-w-0 flex items-center overflow-hidden", children: /* @__PURE__ */ jsx(
7325
- Tag2,
7072
+ Tag,
7326
7073
  {
7327
7074
  disabled,
7328
7075
  removeLabel: `Remove ${labelFor(value)}`,
@@ -8174,7 +7921,7 @@ function DatePicker({
8174
7921
  },
8175
7922
  "aria-label": view === "days" ? "Previous month" : view === "months" ? "Previous year" : "Previous decade",
8176
7923
  className: "w-7 h-7 inline-flex items-center justify-center rounded-md hover:bg-surface-raised focus:outline-none focus-visible:ring-2 focus-visible:ring-accent transition-colors",
8177
- children: /* @__PURE__ */ jsx(ChevronLeft2, {})
7924
+ children: /* @__PURE__ */ jsx(ChevronLeft, {})
8178
7925
  }
8179
7926
  ),
8180
7927
  /* @__PURE__ */ jsxs(
@@ -8209,7 +7956,7 @@ function DatePicker({
8209
7956
  },
8210
7957
  "aria-label": view === "days" ? "Next month" : view === "months" ? "Next year" : "Next decade",
8211
7958
  className: "w-7 h-7 inline-flex items-center justify-center rounded-md hover:bg-surface-raised focus:outline-none focus-visible:ring-2 focus-visible:ring-accent transition-colors",
8212
- children: /* @__PURE__ */ jsx(ChevronRight3, {})
7959
+ children: /* @__PURE__ */ jsx(ChevronRight2, {})
8213
7960
  }
8214
7961
  )
8215
7962
  ] }),
@@ -8324,10 +8071,10 @@ function CalendarIcon() {
8324
8071
  /* @__PURE__ */ jsx("path", { d: "M3 9h18M8 3v4M16 3v4", strokeLinecap: "round" })
8325
8072
  ] });
8326
8073
  }
8327
- function ChevronLeft2() {
8074
+ function ChevronLeft() {
8328
8075
  return /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, className: "w-4 h-4", "aria-hidden": "true", children: /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M15 19l-7-7 7-7" }) });
8329
8076
  }
8330
- function ChevronRight3() {
8077
+ function ChevronRight2() {
8331
8078
  return /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, className: "w-4 h-4", "aria-hidden": "true", children: /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M9 5l7 7-7 7" }) });
8332
8079
  }
8333
8080
  var LINE_HEIGHT_PX = 21;
@@ -8604,7 +8351,7 @@ function TagsInput({
8604
8351
  onClick: () => inputRef.current?.focus(),
8605
8352
  children: [
8606
8353
  tags.map((tag, idx) => /* @__PURE__ */ jsx(
8607
- Tag2,
8354
+ Tag,
8608
8355
  {
8609
8356
  disabled,
8610
8357
  removeLabel: `Remove ${tag}`,
@@ -8718,7 +8465,7 @@ function OtpInput({
8718
8465
  emit(valid.join(""));
8719
8466
  focusBox(valid.length);
8720
8467
  };
8721
- 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(React29.Fragment, { children: [
8468
+ 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(React28.Fragment, { children: [
8722
8469
  /* @__PURE__ */ jsx(
8723
8470
  "input",
8724
8471
  {
@@ -8756,7 +8503,7 @@ function OtpInput({
8756
8503
  ] }, idx)) }) });
8757
8504
  }
8758
8505
  var ICON_SIZE = { sm: "w-4 h-4", md: "w-5 h-5", lg: "w-7 h-7" };
8759
- var Star2 = (filled) => /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", fill: filled ? "currentColor" : "none", stroke: "currentColor", strokeWidth: filled ? 0 : 1.5, className: "w-full h-full", "aria-hidden": "true", children: /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M11.48 3.5a.56.56 0 011.04 0l2.13 4.77 5.18.5a.56.56 0 01.32.97l-3.9 3.46 1.15 5.1a.56.56 0 01-.83.6L12 16.8l-4.57 2.6a.56.56 0 01-.83-.6l1.15-5.1-3.9-3.46a.56.56 0 01.32-.97l5.18-.5L11.48 3.5z" }) });
8506
+ var Star = (filled) => /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", fill: filled ? "currentColor" : "none", stroke: "currentColor", strokeWidth: filled ? 0 : 1.5, className: "w-full h-full", "aria-hidden": "true", children: /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M11.48 3.5a.56.56 0 011.04 0l2.13 4.77 5.18.5a.56.56 0 01.32.97l-3.9 3.46 1.15 5.1a.56.56 0 01-.83.6L12 16.8l-4.57 2.6a.56.56 0 01-.83-.6l1.15-5.1-3.9-3.46a.56.56 0 01.32-.97l5.18-.5L11.48 3.5z" }) });
8760
8507
  function Rating({
8761
8508
  value,
8762
8509
  defaultValue = 0,
@@ -8768,7 +8515,7 @@ function Rating({
8768
8515
  label,
8769
8516
  size = "md",
8770
8517
  disabled,
8771
- icon = Star2,
8518
+ icon = Star,
8772
8519
  errorMessage,
8773
8520
  name,
8774
8521
  layout = "vertical",
@@ -9430,7 +9177,7 @@ function Jumbotron({
9430
9177
  return /* @__PURE__ */ jsx(
9431
9178
  "section",
9432
9179
  {
9433
- className: ["relative overflow-hidden rounded-2xl px-6 py-16 sm:px-10 sm:py-24", bgClass, className].filter(Boolean).join(" "),
9180
+ className: cx("relative overflow-hidden rounded-2xl px-6 py-16 sm:px-10 sm:py-24", bgClass, className),
9434
9181
  style: { ...background === "gradient" ? { backgroundImage: GRADIENT } : null, ...style },
9435
9182
  children: split ? /* @__PURE__ */ jsxs("div", { className: "mx-auto grid max-w-6xl items-center gap-10 lg:grid-cols-2", children: [
9436
9183
  copy,
@@ -9458,7 +9205,7 @@ function FeatureGrid({
9458
9205
  style
9459
9206
  }) {
9460
9207
  const hasHeader = eyebrow != null || title != null || description != null;
9461
- return /* @__PURE__ */ jsxs("section", { className: ["px-2", className].filter(Boolean).join(" "), style, children: [
9208
+ return /* @__PURE__ */ jsxs("section", { className: cx("px-2", className), style, children: [
9462
9209
  hasHeader && /* @__PURE__ */ jsxs("header", { className: ["mb-10 flex flex-col gap-3", centeredHeader ? "items-center text-center" : "items-start text-left"].join(" "), children: [
9463
9210
  eyebrow != null && /* @__PURE__ */ jsx("div", { className: "text-xs font-semibold uppercase tracking-wide text-accent", children: eyebrow }),
9464
9211
  title != null && /* @__PURE__ */ jsx("h2", { className: "text-3xl font-bold tracking-tight text-foreground", children: title }),
@@ -9478,10 +9225,10 @@ function FeatureGrid({
9478
9225
  ] }, f.key ?? i)) })
9479
9226
  ] });
9480
9227
  }
9481
- var Check4 = () => /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2.5, "aria-hidden": "true", className: "mt-0.5 h-4 w-4 flex-shrink-0 text-accent", children: /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M20 6 9 17l-5-5" }) });
9228
+ var Check3 = () => /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2.5, "aria-hidden": "true", className: "mt-0.5 h-4 w-4 flex-shrink-0 text-accent", children: /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M20 6 9 17l-5-5" }) });
9482
9229
  function PricingPlans({ plans, eyebrow, title, description, className = "", style }) {
9483
9230
  const hasHeader = eyebrow != null || title != null || description != null;
9484
- return /* @__PURE__ */ jsxs("section", { className: ["px-2", className].filter(Boolean).join(" "), style, children: [
9231
+ return /* @__PURE__ */ jsxs("section", { className: cx("px-2", className), style, children: [
9485
9232
  hasHeader && /* @__PURE__ */ jsxs("header", { className: "mb-10 flex flex-col items-center gap-3 text-center", children: [
9486
9233
  eyebrow != null && /* @__PURE__ */ jsx("div", { className: "text-xs font-semibold uppercase tracking-wide text-accent", children: eyebrow }),
9487
9234
  title != null && /* @__PURE__ */ jsx("h2", { className: "text-3xl font-bold tracking-tight text-foreground", children: title }),
@@ -9503,7 +9250,7 @@ function PricingPlans({ plans, eyebrow, title, description, className = "", styl
9503
9250
  ] }),
9504
9251
  p.description != null && /* @__PURE__ */ jsx("p", { className: "mt-2 text-sm leading-relaxed text-foreground-secondary", children: p.description }),
9505
9252
  /* @__PURE__ */ jsx("ul", { className: "mt-6 flex flex-1 flex-col gap-2.5", children: p.features.map((f, fi) => /* @__PURE__ */ jsxs("li", { className: "flex gap-2 text-sm text-foreground-secondary", children: [
9506
- /* @__PURE__ */ jsx(Check4, {}),
9253
+ /* @__PURE__ */ jsx(Check3, {}),
9507
9254
  /* @__PURE__ */ jsx("span", { children: f })
9508
9255
  ] }, fi)) }),
9509
9256
  /* @__PURE__ */ jsx("div", { className: "mt-6", children: /* @__PURE__ */ jsx(
@@ -9532,7 +9279,7 @@ function Stars({ value }) {
9532
9279
  }
9533
9280
  function Testimonials({ testimonials, eyebrow, title, description, columns = 3, className = "", style }) {
9534
9281
  const hasHeader = eyebrow != null || title != null || description != null;
9535
- return /* @__PURE__ */ jsxs("section", { className: ["px-2", className].filter(Boolean).join(" "), style, children: [
9282
+ return /* @__PURE__ */ jsxs("section", { className: cx("px-2", className), style, children: [
9536
9283
  hasHeader && /* @__PURE__ */ jsxs("header", { className: "mb-10 flex flex-col items-center gap-3 text-center", children: [
9537
9284
  eyebrow != null && /* @__PURE__ */ jsx("div", { className: "text-xs font-semibold uppercase tracking-wide text-accent", children: eyebrow }),
9538
9285
  title != null && /* @__PURE__ */ jsx("h2", { className: "text-3xl font-bold tracking-tight text-foreground", children: title }),
@@ -9591,7 +9338,7 @@ function SlideShow({
9591
9338
  {
9592
9339
  "aria-label": ariaLabel,
9593
9340
  "aria-roledescription": "carousel",
9594
- className: ["relative overflow-hidden rounded-2xl", className].filter(Boolean).join(" "),
9341
+ className: cx("relative overflow-hidden rounded-2xl", className),
9595
9342
  style: { height, ...style },
9596
9343
  onMouseEnter: () => setPaused(true),
9597
9344
  onMouseLeave: () => setPaused(false),
@@ -9637,7 +9384,7 @@ function SlideShow({
9637
9384
  );
9638
9385
  }
9639
9386
  var PlayGlyph = () => /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", "aria-hidden": "true", className: "h-7 w-7 translate-x-0.5", children: /* @__PURE__ */ jsx("path", { d: "M8 5v14l11-7z" }) });
9640
- function Video2({
9387
+ function Video({
9641
9388
  src,
9642
9389
  embedUrl,
9643
9390
  poster,
@@ -9652,7 +9399,7 @@ function Video2({
9652
9399
  style
9653
9400
  }) {
9654
9401
  const [playing, setPlaying] = useState(autoPlay);
9655
- const frame = ["relative w-full overflow-hidden bg-backdrop", framed ? "rounded-2xl border border-border shadow-sm" : "", className].filter(Boolean).join(" ");
9402
+ const frame = cx("relative w-full overflow-hidden bg-backdrop", framed ? "rounded-2xl border border-border shadow-sm" : "", className);
9656
9403
  const ratio = aspect.replace("/", " / ");
9657
9404
  return /* @__PURE__ */ jsx("div", { className: frame, style: { aspectRatio: ratio, ...style }, children: embedUrl ? /* @__PURE__ */ jsx(
9658
9405
  "iframe",
@@ -9714,7 +9461,7 @@ function Parallax({
9714
9461
  "div",
9715
9462
  {
9716
9463
  ref,
9717
- className: ["relative overflow-hidden rounded-2xl", className].filter(Boolean).join(" "),
9464
+ className: cx("relative overflow-hidden rounded-2xl", className),
9718
9465
  style: { height, ...style },
9719
9466
  children: [
9720
9467
  /* @__PURE__ */ jsx(
@@ -9757,7 +9504,7 @@ function Blog({
9757
9504
  style
9758
9505
  }) {
9759
9506
  const hasHeader = eyebrow != null || title != null || description != null;
9760
- return /* @__PURE__ */ jsxs("section", { className: ["w-full", className].filter(Boolean).join(" "), style, children: [
9507
+ return /* @__PURE__ */ jsxs("section", { className: cx("w-full", className), style, children: [
9761
9508
  hasHeader && /* @__PURE__ */ jsxs("header", { className: ["mb-10 flex flex-col gap-3", centeredHeader ? "items-center text-center" : "items-start text-left"].join(" "), children: [
9762
9509
  eyebrow != null && /* @__PURE__ */ jsx("div", { className: "text-xs font-semibold uppercase tracking-wide text-accent", children: eyebrow }),
9763
9510
  title != null && /* @__PURE__ */ jsx("h2", { className: "text-2xl font-bold tracking-tight text-foreground sm:text-3xl", children: title }),
@@ -9774,7 +9521,7 @@ function Blog({
9774
9521
  post.tag != null && !post.image && /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(Badge, { tone: "accent", variant: "soft", size: "sm", children: post.tag }) }),
9775
9522
  /* @__PURE__ */ jsx("h3", { className: "text-base font-semibold leading-snug text-foreground transition-colors group-hover:text-accent", children: post.title }),
9776
9523
  post.excerpt != null && /* @__PURE__ */ jsx("p", { className: "line-clamp-3 text-sm leading-relaxed text-foreground-secondary", children: post.excerpt }),
9777
- 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(React29.Fragment, { children: [
9524
+ 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(React28.Fragment, { children: [
9778
9525
  j > 0 && /* @__PURE__ */ jsx("span", { "aria-hidden": "true", children: "\xB7" }),
9779
9526
  /* @__PURE__ */ jsx("span", { children: m })
9780
9527
  ] }, j)) })
@@ -9819,7 +9566,7 @@ function Socials({
9819
9566
  className = "",
9820
9567
  style
9821
9568
  }) {
9822
- return /* @__PURE__ */ jsx("nav", { "aria-label": ariaLabel, className: ["flex flex-wrap items-center gap-2", className].filter(Boolean).join(" "), style, children: links.map((link, i) => {
9569
+ return /* @__PURE__ */ jsx("nav", { "aria-label": ariaLabel, className: cx("flex flex-wrap items-center gap-2", className), style, children: links.map((link, i) => {
9823
9570
  const label = link.label ?? (link.platform ? link.platform[0].toUpperCase() + link.platform.slice(1) : "Link");
9824
9571
  const icon = link.icon ?? (link.platform ? ICONS[link.platform] : null);
9825
9572
  const ext = newTab && !link.href.startsWith("mailto:");
@@ -9870,7 +9617,7 @@ function CookieConsent({
9870
9617
  role: "dialog",
9871
9618
  "aria-label": "Cookie consent",
9872
9619
  "aria-live": "polite",
9873
- className: ["fixed z-[60]", POS2[position], className].filter(Boolean).join(" "),
9620
+ className: cx("fixed z-[60]", POS2[position], className),
9874
9621
  children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4 border-t border-border bg-surface p-5 shadow-lg sm:flex-row sm:items-center sm:rounded-xl sm:border", children: [
9875
9622
  /* @__PURE__ */ jsxs("div", { className: "flex-1 text-sm leading-relaxed text-foreground-secondary", children: [
9876
9623
  title != null && /* @__PURE__ */ jsx("p", { className: "mb-1 font-semibold text-foreground", children: title }),
@@ -9916,7 +9663,7 @@ function LeadCapture({
9916
9663
  return /* @__PURE__ */ jsx(
9917
9664
  "section",
9918
9665
  {
9919
- className: ["w-full overflow-hidden rounded-2xl border border-border bg-surface px-6 py-12 sm:px-12 sm:py-16", className].filter(Boolean).join(" "),
9666
+ className: cx("w-full overflow-hidden rounded-2xl border border-border bg-surface px-6 py-12 sm:px-12 sm:py-16", className),
9920
9667
  style: { ...isGradient ? { backgroundImage: GRADIENT2 } : {}, ...style },
9921
9668
  children: /* @__PURE__ */ jsxs("div", { className: ["mx-auto flex max-w-2xl flex-col gap-4", centered ? "items-center text-center" : "items-start text-left"].join(" "), children: [
9922
9669
  /* @__PURE__ */ jsx("h2", { className: "text-2xl font-bold tracking-tight text-foreground sm:text-3xl", children: title }),
@@ -9947,6 +9694,6 @@ function LeadCapture({
9947
9694
  );
9948
9695
  }
9949
9696
 
9950
- 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, Chat2 as Chat, Checkbox, Checkout, ColorPicker, ContextMenu, CookieConsent, CreditCardForm, DateRangePicker, Drawer, Dropdown, EmptyCart, FAB, FadingBase, FeatureGrid, Field, FieldHelpIcon, FieldLabel, FileInput, Flex, Form, FormContext, FormField, FormStore, Grid2 as Grid, GridCard, icons_default as Icon, IconButton, Jumbotron, Kbd, LeadCapture, List3 as List, LoadingSpinner, LogoutTimer, MegaMenu_default as MegaMenu, MenuButton, Modal, NotificationProvider, NumberInput, OpaqueGridCard, OtpInput, Parallax, Password, PopConfirm, Portal, PricingPlans, RadioGroup, Rating, ScalableContainer, Scheduler, SearchInput_default as SearchInput, SecureLayout, SegmentedControl, Sidebar, SkeletonBox, SkeletonCard, SkeletonCircle, SkeletonText, SlideShow, Slider, Socials, Statistic, Stepper, Switch, Table2 as Table, Tabs_default as Tabs, TagsInput, DatePicker as Temporal, Testimonials, TextArea, TextInput, ThemeProvider, ThemeSwitch, TimePicker, Timeline, Tooltip, TooltipProvider, TopBar, Tree, TreeSelect, Typography, Video2 as Video, Wizard, cardNumberError, createIcon, cvvError, detectBrand, expiryError, fieldShell, formatCardNumber, formatExpiry, isRequired, luhnValid, onlyDigits, patterns, runFieldRules, useBreakpoint, useCart, useFieldArray, useForm, useFormField, useFormStore, useJwt, useLocalStorage, useMediaQuery, useNotification };
9697
+ 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, PopConfirm, Portal, PricingPlans, RadioGroup, 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, Wizard, cardNumberError, cvvError, cx, detectBrand, expiryError, fieldShell, formatCardNumber, formatExpiry, isRequired, luhnValid, onlyDigits, patterns, runFieldRules, useBreakpoint, useCart, useFieldArray, useForm, useFormField, useFormStore, useJwt, useLocalStorage, useMediaQuery, useNotification };
9951
9698
  //# sourceMappingURL=index.js.map
9952
9699
  //# sourceMappingURL=index.js.map