@nexub/react 1.5.1 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-24ZFAXB2.js +101 -0
- package/dist/{chunk-XR4NBY54.js → chunk-2DYKENBM.js} +10 -10
- package/dist/{chunk-SVQCINRE.js → chunk-2I7FIU6R.js} +5 -2
- package/dist/{chunk-S46W2QER.js → chunk-37L5ERUJ.js} +17 -11
- package/dist/{chunk-CWS37T3K.js → chunk-3E7X3YK3.js} +4 -2
- package/dist/{chunk-EZ23IA3H.js → chunk-3LTB6TGN.js} +4 -4
- package/dist/chunk-3QD76BKT.js +80 -0
- package/dist/{chunk-PQ6GU7SG.js → chunk-4HQFOIZW.js} +20 -14
- package/dist/{chunk-RLE5RN3T.js → chunk-4NFUBFYK.js} +15 -11
- package/dist/{chunk-B54WADL4.js → chunk-4P2JJ2FH.js} +12 -12
- package/dist/{chunk-I4BHRVRL.js → chunk-4UBVU53C.js} +9 -5
- package/dist/chunk-52ZVJPF7.js +1 -0
- package/dist/chunk-5QEARXY3.js +55 -0
- package/dist/chunk-643EYCLL.js +54 -0
- package/dist/{chunk-CNNJFWFA.js → chunk-6BGUZQAX.js} +4 -4
- package/dist/{chunk-LDYD7WL3.js → chunk-6ECOCGZG.js} +4 -3
- package/dist/{chunk-3AXIMXDU.js → chunk-6JBQAJJD.js} +6 -12
- package/dist/{chunk-YRDCY6BI.js → chunk-6UKNUI46.js} +0 -19
- package/dist/chunk-77LYWSJW.js +85 -0
- package/dist/{chunk-NCRFKPA4.js → chunk-7MSIOYJZ.js} +6 -8
- package/dist/{chunk-GIGOTRXX.js → chunk-7VJABRKB.js} +3 -10
- package/dist/{chunk-6QLLH6ID.js → chunk-7XWJCFWI.js} +8 -17
- package/dist/chunk-A3O23F2B.js +1 -0
- package/dist/chunk-AGYGWU6C.js +88 -0
- package/dist/chunk-AT2DSFP3.js +47 -0
- package/dist/{chunk-IIPYF6ZQ.js → chunk-B254JXS7.js} +16 -13
- package/dist/{chunk-GRB6T2TT.js → chunk-BSL62LBX.js} +19 -13
- package/dist/{chunk-GHCV6UXG.js → chunk-BTYDDKRQ.js} +5 -5
- package/dist/chunk-C6JRJ6JW.js +167 -0
- package/dist/chunk-CAOLGXA5.js +1 -0
- package/dist/{chunk-OJ2TLWYD.js → chunk-CKFRMCZ7.js} +5 -3
- package/dist/{chunk-LZB3KTSH.js → chunk-CQWYZPPJ.js} +1 -1
- package/dist/{chunk-6RBNM5RO.js → chunk-CUOASXI7.js} +10 -10
- package/dist/{chunk-HG6HTUWU.js → chunk-CV5ZKED7.js} +2 -2
- package/dist/{chunk-HJERFB7J.js → chunk-DDRYT3SY.js} +2 -2
- package/dist/chunk-DGCAM2UJ.js +60 -0
- package/dist/{chunk-FD7YU53N.js → chunk-DT3QGFXB.js} +4 -4
- package/dist/chunk-F73DTG2V.js +123 -0
- package/dist/{chunk-Z3IG5WRA.js → chunk-FJUVYRNT.js} +3 -3
- package/dist/{chunk-KQPLFVFR.js → chunk-FLZD7HQY.js} +0 -2
- package/dist/chunk-GG54WBLA.js +134 -0
- package/dist/{chunk-64JDZWCV.js → chunk-GRKCUQG4.js} +6 -5
- package/dist/{chunk-YPHNHQYQ.js → chunk-GWDEKW7P.js} +6 -2
- package/dist/{chunk-4I5ULCYG.js → chunk-HFTS5AN7.js} +3 -3
- package/dist/{chunk-GUB7YKG2.js → chunk-I4U36P54.js} +6 -3
- package/dist/{chunk-BTRTORKU.js → chunk-I6CAF7C5.js} +6 -7
- package/dist/{chunk-TJCHA3OI.js → chunk-J65MK3N4.js} +7 -4
- package/dist/{chunk-IK23Q2OF.js → chunk-JHVYI5GK.js} +3 -3
- package/dist/{chunk-J6TU45KP.js → chunk-JSBNYRO4.js} +26 -12
- package/dist/chunk-K5FKEAAK.js +94 -0
- package/dist/{chunk-5URGARPH.js → chunk-KE4YVG5Q.js} +6 -10
- package/dist/{chunk-QCNLE27O.js → chunk-KRCLK5O4.js} +11 -7
- package/dist/{chunk-A4IMFAZX.js → chunk-LESI7J7B.js} +3 -3
- package/dist/chunk-MLT7SA3T.js +171 -0
- package/dist/chunk-MNEXMMLM.js +23 -0
- package/dist/{chunk-PVTACENM.js → chunk-MTK3GHDQ.js} +2 -2
- package/dist/chunk-MYP5ZTC3.js +169 -0
- package/dist/chunk-NA5UMOE5.js +55 -0
- package/dist/chunk-NAJKIBU2.js +163 -0
- package/dist/{chunk-WESZPFBZ.js → chunk-NERAWEIQ.js} +7 -4
- package/dist/{chunk-YJ3JQYAN.js → chunk-NGQKBDHA.js} +5 -13
- package/dist/{chunk-7Q7ZF6BY.js → chunk-NNIFOMIH.js} +18 -8
- package/dist/{chunk-7L3CGIRA.js → chunk-NQPGELMP.js} +8 -19
- package/dist/{chunk-5O34ZNC3.js → chunk-NYWD5SI4.js} +19 -13
- package/dist/chunk-NZR4UGUZ.js +143 -0
- package/dist/{chunk-6J3QTWKC.js → chunk-NZT4TTNV.js} +18 -9
- package/dist/{chunk-JSD3H7WV.js → chunk-OYCK6BRG.js} +6 -6
- package/dist/{chunk-2555JXCP.js → chunk-PBPUSRTJ.js} +19 -11
- package/dist/{chunk-QD7H3WV3.js → chunk-PGDXFBKT.js} +8 -8
- package/dist/{chunk-NIX4SEKM.js → chunk-PREMZMLU.js} +7 -4
- package/dist/{chunk-4SSUM4CL.js → chunk-QUNH4BFR.js} +9 -6
- package/dist/{chunk-FHFVBOF3.js → chunk-QUYOV2ZJ.js} +6 -4
- package/dist/{chunk-KM6Z3VTI.js → chunk-QVTVDL6Y.js} +1 -1
- package/dist/{chunk-XI63BK3S.js → chunk-RATKKN3F.js} +3 -3
- package/dist/chunk-RM7MTOT5.js +339 -0
- package/dist/{chunk-DJZZ3FIP.js → chunk-RUR57JZQ.js} +5 -14
- package/dist/{chunk-ZV3AF5CL.js → chunk-S2CTBFLN.js} +13 -2
- package/dist/{chunk-72I7EVOL.js → chunk-SYZADSLI.js} +10 -6
- package/dist/{chunk-W2NEXOTG.js → chunk-T7RLPFGX.js} +2 -2
- package/dist/chunk-TAVVXXGO.js +131 -0
- package/dist/{chunk-BFRX6X4O.js → chunk-TZ6KJIR4.js} +23 -17
- package/dist/{chunk-V3TETH4J.js → chunk-U2ZYPPRG.js} +17 -16
- package/dist/{chunk-AHT35UWY.js → chunk-UTLKZPKJ.js} +10 -6
- package/dist/{chunk-OJRSPDNJ.js → chunk-VD4RFTNV.js} +8 -14
- package/dist/chunk-VLQGQFW7.js +110 -0
- package/dist/{chunk-RTDUTWJ4.js → chunk-VMT7Y3AT.js} +5 -8
- package/dist/{chunk-AXOKFS4K.js → chunk-W3KO3JNZ.js} +20 -4
- package/dist/{chunk-LGQ737BP.js → chunk-WHTLXQB6.js} +1 -1
- package/dist/chunk-WLRRMT6W.js +1 -0
- package/dist/{chunk-2FCSWBSM.js → chunk-WMWX6DPB.js} +3 -3
- package/dist/{chunk-UMC64NCT.js → chunk-WVBGQCYC.js} +6 -3
- package/dist/{chunk-TEOLG3N2.js → chunk-X4BQHXLB.js} +10 -6
- package/dist/{chunk-SY6V3HAK.js → chunk-XDU27NRX.js} +3 -3
- package/dist/{chunk-KA2J5OBA.js → chunk-XQDD76EF.js} +4 -7
- package/dist/chunk-XTATJMY6.js +64 -0
- package/dist/chunk-XYXMPHND.js +1 -0
- package/dist/{chunk-7ZWBHHRK.js → chunk-YNU6VRD5.js} +23 -32
- package/dist/{chunk-6SJPVQQW.js → chunk-Z3HF6XJ3.js} +1 -1
- package/dist/{chunk-I4URNMI7.js → chunk-ZC4MZAEX.js} +9 -7
- package/dist/{chunk-PWBPHGM3.js → chunk-ZCEUVK2R.js} +2 -2
- package/dist/{chunk-NQVRF4RB.js → chunk-ZMJ54TG6.js} +16 -13
- package/dist/chunk-ZT3NWE5U.js +1 -0
- package/dist/{chunk-RHOYF7MO.js → chunk-ZTLALVWA.js} +6 -15
- package/dist/components/Accordion/index.js +1 -1
- package/dist/components/Alert/index.js +2 -1
- package/dist/components/AlertDialog/index.js +3 -3
- package/dist/components/Amount/index.js +3 -1
- package/dist/components/AspectRatio/index.js +1 -1
- package/dist/components/Autocomplete/index.js +3 -2
- package/dist/components/Avatar/index.js +1 -1
- package/dist/components/AvatarGroup/index.js +3 -2
- package/dist/components/Badge/index.js +1 -1
- package/dist/components/Banner/index.js +2 -1
- package/dist/components/Breadcrumb/index.js +2 -1
- package/dist/components/Button/index.js +1 -1
- package/dist/components/ButtonGroup/index.js +1 -1
- package/dist/components/Callout/index.js +1 -1
- package/dist/components/Card/index.js +3 -1
- package/dist/components/CheckList/index.js +1 -1
- package/dist/components/Checkbox/index.js +1 -1
- package/dist/components/CheckboxCard/index.js +9 -0
- package/dist/components/Chip/index.js +2 -1
- package/dist/components/Citation/index.js +17 -0
- package/dist/components/Code/index.js +1 -1
- package/dist/components/Combobox/index.js +1 -1
- package/dist/components/CommandPalette/index.js +3 -2
- package/dist/components/ContextMenu/index.js +2 -2
- package/dist/components/CountryBadge/index.js +1 -1
- package/dist/components/DataTable/index.js +2 -1
- package/dist/components/DatePicker/index.js +5 -1
- package/dist/components/DateRangePicker/index.js +5 -1
- package/dist/components/Dialog/index.js +2 -2
- package/dist/components/Drawer/index.js +2 -2
- package/dist/components/DropdownMenu/index.js +2 -2
- package/dist/components/EmptyState/index.js +1 -1
- package/dist/components/ErrorState/index.js +2 -1
- package/dist/components/EyebrowChip/index.js +4 -1
- package/dist/components/FileUpload/index.js +2 -1
- package/dist/components/FilterChip/index.js +3 -1
- package/dist/components/Flex/index.js +2 -1
- package/dist/components/FormError/index.js +1 -1
- package/dist/components/FormField/index.js +7 -4
- package/dist/components/GradientDivider/index.js +1 -1
- package/dist/components/Grid/index.js +2 -1
- package/dist/components/Heading/index.js +4 -1
- package/dist/components/HelperText/index.js +4 -1
- package/dist/components/HoverCard/index.js +3 -2
- package/dist/components/IconButton/index.js +2 -1
- package/dist/components/Input/index.js +1 -1
- package/dist/components/Kbd/index.js +1 -1
- package/dist/components/KeyboardShortcut/index.js +2 -2
- package/dist/components/Label/index.js +4 -1
- package/dist/components/Link/index.js +1 -1
- package/dist/components/Logo/index.js +1 -1
- package/dist/components/MediaCard/index.js +9 -0
- package/dist/components/Menubar/index.js +2 -2
- package/dist/components/MessageBubble/index.js +18 -0
- package/dist/components/MoneyInput/index.js +3 -2
- package/dist/components/NavigationMenu/index.js +2 -2
- package/dist/components/NavigationRail/index.js +2 -1
- package/dist/components/NexubProvider/index.js +14 -0
- package/dist/components/NumberInput/index.js +3 -2
- package/dist/components/NumberTicker/index.js +10 -0
- package/dist/components/PageHeader/index.js +1 -1
- package/dist/components/Pagination/index.js +3 -1
- package/dist/components/PasswordInput/index.js +3 -2
- package/dist/components/Popover/index.js +2 -2
- package/dist/components/Progress/index.js +2 -1
- package/dist/components/PromptInput/index.js +15 -0
- package/dist/components/RadioCard/index.js +11 -0
- package/dist/components/RadioGroup/index.js +1 -1
- package/dist/components/Rating/index.js +2 -1
- package/dist/components/ScrollArea/index.js +1 -1
- package/dist/components/SearchInput/index.js +3 -2
- package/dist/components/Section/index.js +1 -1
- package/dist/components/SegmentedControl/index.js +3 -2
- package/dist/components/Select/index.js +2 -2
- package/dist/components/Separator/index.js +1 -1
- package/dist/components/Sidebar/index.js +2 -1
- package/dist/components/Skeleton/index.js +1 -1
- package/dist/components/Spinner/index.js +2 -1
- package/dist/components/SplitButton/index.js +5 -5
- package/dist/components/Stack/index.js +2 -1
- package/dist/components/StatusPill/index.js +1 -1
- package/dist/components/StreamingText/index.js +8 -0
- package/dist/components/Switch/index.js +1 -1
- package/dist/components/Table/index.js +1 -1
- package/dist/components/Tabs/index.js +3 -2
- package/dist/components/Tag/index.js +1 -1
- package/dist/components/Text/index.js +1 -1
- package/dist/components/Textarea/index.js +1 -1
- package/dist/components/ThinkingIndicator/index.js +9 -0
- package/dist/components/Toast/index.js +3 -1
- package/dist/components/Tooltip/index.js +2 -1
- package/dist/components/TopNav/index.js +2 -1
- package/dist/index.d.ts +440 -24
- package/dist/index.js +225 -146
- package/package.json +52 -50
- package/dist/chunk-63DPMUMR.js +0 -67
- package/dist/chunk-CHGPGRML.js +0 -115
- package/dist/chunk-H2W7IYVY.js +0 -155
- package/dist/chunk-J2T4GFFS.js +0 -85
- package/dist/chunk-LH3BSAIS.js +0 -119
- package/dist/chunk-LMPGHWUA.js +0 -114
- package/dist/chunk-NMH5WSZG.js +0 -72
- package/dist/chunk-P44EROBX.js +0 -55
- package/dist/chunk-TYTW4F3B.js +0 -178
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import {
|
|
3
|
+
useNexubMessages
|
|
4
|
+
} from "./chunk-24ZFAXB2.js";
|
|
5
|
+
import {
|
|
6
|
+
cn
|
|
7
|
+
} from "./chunk-Q7G5WGYV.js";
|
|
8
|
+
|
|
9
|
+
// src/components/ThinkingIndicator/ThinkingIndicator.tsx
|
|
10
|
+
import * as React from "react";
|
|
11
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
12
|
+
var fallbackMessages = { thinking: "Thinking" };
|
|
13
|
+
var ThinkingIndicator = React.forwardRef(
|
|
14
|
+
({ label, size = "md", messages: messagesProp, className, ...props }, ref) => {
|
|
15
|
+
const m = {
|
|
16
|
+
...fallbackMessages,
|
|
17
|
+
...useNexubMessages(),
|
|
18
|
+
...messagesProp
|
|
19
|
+
};
|
|
20
|
+
const text = label === void 0 ? m.thinking : label;
|
|
21
|
+
return /* @__PURE__ */ jsxs(
|
|
22
|
+
"div",
|
|
23
|
+
{
|
|
24
|
+
ref,
|
|
25
|
+
role: "status",
|
|
26
|
+
"aria-live": "polite",
|
|
27
|
+
className: cn(
|
|
28
|
+
"inline-flex items-center text-[var(--color-on-surface-variant)]",
|
|
29
|
+
size === "sm" ? "gap-2 text-label-md" : "gap-2.5 text-body-md",
|
|
30
|
+
className
|
|
31
|
+
),
|
|
32
|
+
...props,
|
|
33
|
+
children: [
|
|
34
|
+
/* @__PURE__ */ jsx(
|
|
35
|
+
"span",
|
|
36
|
+
{
|
|
37
|
+
"aria-hidden": "true",
|
|
38
|
+
className: cn(
|
|
39
|
+
"nx-morph shrink-0 rounded-full bg-[var(--color-primary)]",
|
|
40
|
+
size === "sm" ? "size-4" : "size-5"
|
|
41
|
+
)
|
|
42
|
+
}
|
|
43
|
+
),
|
|
44
|
+
text === null ? /* @__PURE__ */ jsx("span", { className: "sr-only", children: m.thinking }) : /* @__PURE__ */ jsx("span", { className: "nx-shimmer", children: text })
|
|
45
|
+
]
|
|
46
|
+
}
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
);
|
|
50
|
+
ThinkingIndicator.displayName = "ThinkingIndicator";
|
|
51
|
+
|
|
52
|
+
export {
|
|
53
|
+
ThinkingIndicator
|
|
54
|
+
};
|
|
@@ -12,14 +12,14 @@ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
|
12
12
|
var linkVariants = cva(
|
|
13
13
|
[
|
|
14
14
|
"inline-flex items-center gap-1 transition-colors",
|
|
15
|
-
"
|
|
15
|
+
"rounded-shape-min"
|
|
16
16
|
],
|
|
17
17
|
{
|
|
18
18
|
variants: {
|
|
19
19
|
variant: {
|
|
20
|
-
default: "text-[var(--color-
|
|
21
|
-
muted: "text-[var(--color-
|
|
22
|
-
underlined: "text-[var(--color-
|
|
20
|
+
default: "text-[var(--color-primary)] underline-offset-4 hover:underline",
|
|
21
|
+
muted: "text-[var(--color-on-surface-muted)] hover:text-[var(--color-on-surface)]",
|
|
22
|
+
underlined: "text-[var(--color-primary)] underline underline-offset-4 hover:decoration-2"
|
|
23
23
|
}
|
|
24
24
|
},
|
|
25
25
|
defaultVariants: {
|
|
@@ -16,8 +16,9 @@ var logoVariants = cva("inline-flex min-w-0 max-w-full items-center gap-2", {
|
|
|
16
16
|
lg: "h-10"
|
|
17
17
|
},
|
|
18
18
|
tone: {
|
|
19
|
-
default: "text-[var(--color-
|
|
20
|
-
|
|
19
|
+
default: "text-[var(--color-on-surface)]",
|
|
20
|
+
// Brand asset: the inverse mark is always white (on dark or imagery), in both themes.
|
|
21
|
+
inverse: "text-[var(--color-palette-neutral-100)]"
|
|
21
22
|
}
|
|
22
23
|
},
|
|
23
24
|
defaultVariants: {
|
|
@@ -84,7 +85,7 @@ var Logo = React.forwardRef(
|
|
|
84
85
|
wordmarkSizeMap[resolvedSize],
|
|
85
86
|
// leading-normal so the clip box doesn't cut descenders.
|
|
86
87
|
"min-w-0 truncate font-medium tracking-tight leading-normal",
|
|
87
|
-
resolvedTone === "inverse" ? "opacity-70" : "text-[var(--color-
|
|
88
|
+
resolvedTone === "inverse" ? "opacity-70" : "text-[var(--color-on-surface-muted)]"
|
|
88
89
|
),
|
|
89
90
|
children: product
|
|
90
91
|
}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
|
+
import {
|
|
3
|
+
layoutProps
|
|
4
|
+
} from "./chunk-VLQGQFW7.js";
|
|
2
5
|
import {
|
|
3
6
|
cn
|
|
4
7
|
} from "./chunk-Q7G5WGYV.js";
|
|
@@ -25,22 +28,13 @@ var Grid = React.forwardRef(
|
|
|
25
28
|
...rest
|
|
26
29
|
}, ref) => {
|
|
27
30
|
const Comp = asChild ? Slot : "div";
|
|
28
|
-
const
|
|
29
|
-
...cols !== void 0 ? {
|
|
30
|
-
gridTemplateColumns: typeof cols === "number" ? `repeat(${cols}, minmax(0, 1fr))` : cols
|
|
31
|
-
} : {},
|
|
32
|
-
...rows !== void 0 ? {
|
|
33
|
-
gridTemplateRows: typeof rows === "number" ? `repeat(${rows}, minmax(0, 1fr))` : rows
|
|
34
|
-
} : {},
|
|
35
|
-
...gap !== void 0 ? { gap: typeof gap === "number" ? `${gap * 0.25}rem` : gap } : {},
|
|
36
|
-
...style
|
|
37
|
-
};
|
|
31
|
+
const layout = layoutProps({ gap, cols, rows, style });
|
|
38
32
|
return /* @__PURE__ */ jsx(
|
|
39
33
|
Comp,
|
|
40
34
|
{
|
|
41
35
|
ref,
|
|
42
|
-
className: cn("grid", flow && flowClass[flow], className),
|
|
43
|
-
style:
|
|
36
|
+
className: cn("grid", layout.className, flow && flowClass[flow], className),
|
|
37
|
+
style: layout.style,
|
|
44
38
|
...rest,
|
|
45
39
|
children
|
|
46
40
|
}
|
|
@@ -3,24 +3,6 @@ import {
|
|
|
3
3
|
useIsomorphicLayoutEffect
|
|
4
4
|
} from "./chunk-NHUQLIHL.js";
|
|
5
5
|
|
|
6
|
-
// src/hooks/useMergedRefs.ts
|
|
7
|
-
import { useCallback, useRef } from "react";
|
|
8
|
-
function setRef(ref, value) {
|
|
9
|
-
if (!ref) return;
|
|
10
|
-
if (typeof ref === "function") {
|
|
11
|
-
ref(value);
|
|
12
|
-
} else {
|
|
13
|
-
ref.current = value;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
function useMergedRefs(...refs) {
|
|
17
|
-
const refsRef = useRef(refs);
|
|
18
|
-
refsRef.current = refs;
|
|
19
|
-
return useCallback((node) => {
|
|
20
|
-
for (const ref of refsRef.current) setRef(ref, node);
|
|
21
|
-
}, []);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
6
|
// src/hooks/useSlidingIndicator.ts
|
|
25
7
|
function useSlidingIndicator(ref, activeSelector) {
|
|
26
8
|
useIsomorphicLayoutEffect(() => {
|
|
@@ -50,6 +32,5 @@ function useSlidingIndicator(ref, activeSelector) {
|
|
|
50
32
|
}
|
|
51
33
|
|
|
52
34
|
export {
|
|
53
|
-
useMergedRefs,
|
|
54
35
|
useSlidingIndicator
|
|
55
36
|
};
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import {
|
|
3
|
+
cn
|
|
4
|
+
} from "./chunk-Q7G5WGYV.js";
|
|
5
|
+
|
|
6
|
+
// src/components/StatusPill/StatusPill.tsx
|
|
7
|
+
import * as React from "react";
|
|
8
|
+
import { cva } from "class-variance-authority";
|
|
9
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
10
|
+
var statusPillVariants = cva(
|
|
11
|
+
"inline-flex items-center gap-1.5 rounded-shape-control px-2.5 py-1 text-xs font-medium select-none",
|
|
12
|
+
{
|
|
13
|
+
variants: {
|
|
14
|
+
tone: {
|
|
15
|
+
neutral: "bg-[var(--color-surface-container-high)] text-[var(--color-on-surface-variant)] border border-[var(--color-outline-variant)]",
|
|
16
|
+
info: "bg-[var(--color-info-container)] text-[var(--color-on-info-container)] border border-[color-mix(in_srgb,var(--color-info)_35%,transparent)]",
|
|
17
|
+
success: "bg-[var(--color-success-container)] text-[var(--color-on-success-container)] border border-[color-mix(in_srgb,var(--color-success)_35%,transparent)]",
|
|
18
|
+
warning: "bg-[var(--color-warning-container)] text-[var(--color-on-warning-container)] border border-[color-mix(in_srgb,var(--color-warning)_35%,transparent)]",
|
|
19
|
+
danger: "bg-[var(--color-error-container)] text-[var(--color-on-error-container)] border border-[color-mix(in_srgb,var(--color-error)_35%,transparent)]",
|
|
20
|
+
leap: "bg-[var(--color-leap-container)] text-[var(--color-on-leap-container)] border border-[color-mix(in_srgb,var(--color-leap)_35%,transparent)]",
|
|
21
|
+
bookub: "bg-[var(--color-bookub-container)] text-[var(--color-on-bookub-container)] border border-[color-mix(in_srgb,var(--color-bookub)_35%,transparent)]",
|
|
22
|
+
payub: "bg-[var(--color-payub-container)] text-[var(--color-on-payub-container)] border border-[color-mix(in_srgb,var(--color-payub)_35%,transparent)]",
|
|
23
|
+
founderub: "bg-[var(--color-founderub-container)] text-[var(--color-on-founderub-container)] border border-[color-mix(in_srgb,var(--color-founderub)_35%,transparent)]"
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
defaultVariants: {
|
|
27
|
+
tone: "neutral"
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
);
|
|
31
|
+
var dotColorMap = {
|
|
32
|
+
neutral: "bg-[var(--color-outline)]",
|
|
33
|
+
info: "bg-[var(--color-info)]",
|
|
34
|
+
success: "bg-[var(--color-success)]",
|
|
35
|
+
warning: "bg-[var(--color-warning)]",
|
|
36
|
+
danger: "bg-[var(--color-error)]",
|
|
37
|
+
leap: "bg-[var(--color-leap)]",
|
|
38
|
+
bookub: "bg-[var(--color-bookub)]",
|
|
39
|
+
payub: "bg-[var(--color-payub)]",
|
|
40
|
+
founderub: "bg-[var(--color-founderub)]"
|
|
41
|
+
};
|
|
42
|
+
var pulseTones = ["success", "info"];
|
|
43
|
+
var StatusPill = React.forwardRef(
|
|
44
|
+
({ className, tone = "neutral", label, dot = false, ...props }, ref) => {
|
|
45
|
+
const shouldPulse = dot && pulseTones.includes(tone);
|
|
46
|
+
return /* @__PURE__ */ jsxs(
|
|
47
|
+
"span",
|
|
48
|
+
{
|
|
49
|
+
ref,
|
|
50
|
+
className: cn(statusPillVariants({ tone }), className),
|
|
51
|
+
...props,
|
|
52
|
+
children: [
|
|
53
|
+
dot && /* @__PURE__ */ jsxs("span", { className: "relative inline-flex h-2 w-2 shrink-0", children: [
|
|
54
|
+
shouldPulse && /* @__PURE__ */ jsx(
|
|
55
|
+
"span",
|
|
56
|
+
{
|
|
57
|
+
className: cn(
|
|
58
|
+
"animate-ping absolute inline-flex h-full w-full rounded-full opacity-75",
|
|
59
|
+
dotColorMap[tone]
|
|
60
|
+
),
|
|
61
|
+
"aria-hidden": "true"
|
|
62
|
+
}
|
|
63
|
+
),
|
|
64
|
+
/* @__PURE__ */ jsx(
|
|
65
|
+
"span",
|
|
66
|
+
{
|
|
67
|
+
className: cn(
|
|
68
|
+
"relative inline-flex rounded-full h-2 w-2",
|
|
69
|
+
dotColorMap[tone]
|
|
70
|
+
)
|
|
71
|
+
}
|
|
72
|
+
)
|
|
73
|
+
] }),
|
|
74
|
+
label
|
|
75
|
+
]
|
|
76
|
+
}
|
|
77
|
+
);
|
|
78
|
+
}
|
|
79
|
+
);
|
|
80
|
+
StatusPill.displayName = "StatusPill";
|
|
81
|
+
|
|
82
|
+
export {
|
|
83
|
+
statusPillVariants,
|
|
84
|
+
StatusPill
|
|
85
|
+
};
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
|
+
import {
|
|
3
|
+
layoutProps
|
|
4
|
+
} from "./chunk-VLQGQFW7.js";
|
|
2
5
|
import {
|
|
3
6
|
cn
|
|
4
7
|
} from "./chunk-Q7G5WGYV.js";
|
|
@@ -27,18 +30,13 @@ var Flex = React.forwardRef(
|
|
|
27
30
|
...rest
|
|
28
31
|
}, ref) => {
|
|
29
32
|
const Comp = asChild ? Slot : "div";
|
|
30
|
-
const
|
|
31
|
-
...gap !== void 0 ? { gap: typeof gap === "number" ? `${gap * 0.25}rem` : gap } : {},
|
|
32
|
-
...align ? { alignItems: align } : {},
|
|
33
|
-
...justify ? { justifyContent: justify } : {},
|
|
34
|
-
...style
|
|
35
|
-
};
|
|
33
|
+
const layout = layoutProps({ gap, align, justify, style });
|
|
36
34
|
return /* @__PURE__ */ jsx(
|
|
37
35
|
Comp,
|
|
38
36
|
{
|
|
39
37
|
ref,
|
|
40
|
-
className: cn("flex", directionClass[direction], wrap && "flex-wrap", className),
|
|
41
|
-
style:
|
|
38
|
+
className: cn("flex", layout.className, directionClass[direction], wrap && "flex-wrap", className),
|
|
39
|
+
style: layout.style,
|
|
42
40
|
...rest,
|
|
43
41
|
children
|
|
44
42
|
}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import {
|
|
3
|
-
enterExit,
|
|
4
3
|
floatingSurface
|
|
5
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-FLZD7HQY.js";
|
|
6
5
|
import {
|
|
7
6
|
glassSurfaceClass
|
|
8
7
|
} from "./chunk-DEIBF3P7.js";
|
|
@@ -28,13 +27,7 @@ var Content2 = React.forwardRef(
|
|
|
28
27
|
className: cn(
|
|
29
28
|
"z-[var(--z-popover)] p-4 outline-none",
|
|
30
29
|
floatingSurface,
|
|
31
|
-
|
|
32
|
-
"outline-none",
|
|
33
|
-
"data-[state=open]:animate-in data-[state=closed]:animate-out",
|
|
34
|
-
"data-[state=open]:fade-in-0 data-[state=closed]:fade-out-0",
|
|
35
|
-
"data-[state=open]:zoom-in-95 data-[state=closed]:zoom-out-95",
|
|
36
|
-
"data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2",
|
|
37
|
-
"data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2",
|
|
30
|
+
"nx-motion nx-pop origin-[var(--radix-popover-content-transform-origin)]",
|
|
38
31
|
surface === "glass" && glassSurfaceClass,
|
|
39
32
|
className
|
|
40
33
|
),
|
|
@@ -51,7 +44,7 @@ var Arrow2 = React.forwardRef(
|
|
|
51
44
|
RadixPopover.Arrow,
|
|
52
45
|
{
|
|
53
46
|
ref,
|
|
54
|
-
className: cn("fill-[var(--color-
|
|
47
|
+
className: cn("fill-[var(--color-outline-variant)]", className),
|
|
55
48
|
...props
|
|
56
49
|
}
|
|
57
50
|
);
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import {
|
|
3
|
-
enterExit,
|
|
4
3
|
floatingSurface,
|
|
5
4
|
menuContent,
|
|
6
5
|
menuItem,
|
|
7
6
|
menuLabel,
|
|
8
7
|
menuSeparator
|
|
9
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-FLZD7HQY.js";
|
|
10
9
|
import {
|
|
11
10
|
cn
|
|
12
11
|
} from "./chunk-Q7G5WGYV.js";
|
|
@@ -32,10 +31,7 @@ var Content2 = React.forwardRef(
|
|
|
32
31
|
"z-[var(--z-popover)] min-w-48 outline-none",
|
|
33
32
|
floatingSurface,
|
|
34
33
|
menuContent,
|
|
35
|
-
|
|
36
|
-
"data-[state=open]:animate-in data-[state=closed]:animate-out",
|
|
37
|
-
"data-[state=open]:fade-in-0 data-[state=closed]:fade-out-0",
|
|
38
|
-
"data-[state=open]:zoom-in-95 data-[state=closed]:zoom-out-95",
|
|
34
|
+
"nx-motion nx-pop origin-[var(--radix-context-menu-content-transform-origin)]",
|
|
39
35
|
className
|
|
40
36
|
),
|
|
41
37
|
...props
|
|
@@ -94,11 +90,11 @@ var CheckboxItem2 = React.forwardRef(function ContextMenuCheckboxItem({ classNam
|
|
|
94
90
|
RadixContextMenu.CheckboxItem,
|
|
95
91
|
{
|
|
96
92
|
ref,
|
|
97
|
-
className: cn(itemBaseClasses, "
|
|
93
|
+
className: cn(itemBaseClasses, "ps-8", className),
|
|
98
94
|
checked,
|
|
99
95
|
...props,
|
|
100
96
|
children: [
|
|
101
|
-
/* @__PURE__ */ jsx("span", { className: "absolute
|
|
97
|
+
/* @__PURE__ */ jsx("span", { className: "absolute start-2 flex h-4 w-4 items-center justify-center", children: /* @__PURE__ */ jsx(RadixContextMenu.ItemIndicator, { children: /* @__PURE__ */ jsx(Check, { className: "h-4 w-4" }) }) }),
|
|
102
98
|
children
|
|
103
99
|
]
|
|
104
100
|
}
|
|
@@ -110,10 +106,10 @@ var RadioItem2 = React.forwardRef(function ContextMenuRadioItem({ className, chi
|
|
|
110
106
|
RadixContextMenu.RadioItem,
|
|
111
107
|
{
|
|
112
108
|
ref,
|
|
113
|
-
className: cn(itemBaseClasses, "
|
|
109
|
+
className: cn(itemBaseClasses, "ps-8", className),
|
|
114
110
|
...props,
|
|
115
111
|
children: [
|
|
116
|
-
/* @__PURE__ */ jsx("span", { className: "absolute
|
|
112
|
+
/* @__PURE__ */ jsx("span", { className: "absolute start-2 flex h-4 w-4 items-center justify-center", children: /* @__PURE__ */ jsx(RadixContextMenu.ItemIndicator, { children: /* @__PURE__ */ jsx("svg", { className: "h-2 w-2 fill-current", viewBox: "0 0 8 8", "aria-hidden": "true", children: /* @__PURE__ */ jsx("circle", { cx: "4", cy: "4", r: "4" }) }) }) }),
|
|
117
113
|
children
|
|
118
114
|
]
|
|
119
115
|
}
|
|
@@ -133,7 +129,7 @@ var SubTrigger2 = React.forwardRef(function ContextMenuSubTrigger({ className, c
|
|
|
133
129
|
...props,
|
|
134
130
|
children: [
|
|
135
131
|
children,
|
|
136
|
-
/* @__PURE__ */ jsx(ChevronRight, { className: "
|
|
132
|
+
/* @__PURE__ */ jsx(ChevronRight, { className: "ms-auto h-4 w-4 rtl:-scale-x-100" })
|
|
137
133
|
]
|
|
138
134
|
}
|
|
139
135
|
);
|
|
@@ -148,12 +144,7 @@ var SubContent2 = React.forwardRef(function ContextMenuSubContent({ className, .
|
|
|
148
144
|
"z-[var(--z-popover)] min-w-48 outline-none",
|
|
149
145
|
floatingSurface,
|
|
150
146
|
menuContent,
|
|
151
|
-
|
|
152
|
-
"data-[state=open]:animate-in data-[state=closed]:animate-out",
|
|
153
|
-
"data-[state=open]:fade-in-0 data-[state=closed]:fade-out-0",
|
|
154
|
-
"data-[state=open]:zoom-in-95 data-[state=closed]:zoom-out-95",
|
|
155
|
-
"data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2",
|
|
156
|
-
"data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2",
|
|
147
|
+
"nx-motion nx-pop origin-[var(--radix-context-menu-content-transform-origin)]",
|
|
157
148
|
className
|
|
158
149
|
),
|
|
159
150
|
...props
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
'use client';
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import {
|
|
3
|
+
useIntlLocale
|
|
4
|
+
} from "./chunk-24ZFAXB2.js";
|
|
5
|
+
import {
|
|
6
|
+
cn
|
|
7
|
+
} from "./chunk-Q7G5WGYV.js";
|
|
8
|
+
|
|
9
|
+
// src/components/NumberTicker/NumberTicker.tsx
|
|
10
|
+
import * as React from "react";
|
|
11
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
12
|
+
var SHIFT = [
|
|
13
|
+
"translate-y-0",
|
|
14
|
+
"-translate-y-[10%]",
|
|
15
|
+
"-translate-y-[20%]",
|
|
16
|
+
"-translate-y-[30%]",
|
|
17
|
+
"-translate-y-[40%]",
|
|
18
|
+
"-translate-y-[50%]",
|
|
19
|
+
"-translate-y-[60%]",
|
|
20
|
+
"-translate-y-[70%]",
|
|
21
|
+
"-translate-y-[80%]",
|
|
22
|
+
"-translate-y-[90%]"
|
|
23
|
+
];
|
|
24
|
+
var DIGITS = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"];
|
|
25
|
+
function Char({ char, className, enter }) {
|
|
26
|
+
const [entering] = React.useState(enter);
|
|
27
|
+
const motion = entering ? { "data-motion": "from-fade" } : {};
|
|
28
|
+
if (!/^[0-9]$/.test(char)) {
|
|
29
|
+
return /* @__PURE__ */ jsx("span", { className: cn(entering && "nx-motion", className), ...motion, children: char });
|
|
30
|
+
}
|
|
31
|
+
return /* @__PURE__ */ jsxs(
|
|
32
|
+
"span",
|
|
33
|
+
{
|
|
34
|
+
"data-digit": char,
|
|
35
|
+
className: cn("relative inline-block overflow-clip", entering && "nx-motion", className),
|
|
36
|
+
...motion,
|
|
37
|
+
children: [
|
|
38
|
+
/* @__PURE__ */ jsx("span", { className: "invisible", children: "0" }),
|
|
39
|
+
/* @__PURE__ */ jsx(
|
|
40
|
+
"span",
|
|
41
|
+
{
|
|
42
|
+
className: cn(
|
|
43
|
+
"absolute inset-x-0 top-0 flex h-[1000%] flex-col text-center",
|
|
44
|
+
"transition-transform duration-spatial-default ease-spatial-default motion-reduce:transition-none",
|
|
45
|
+
SHIFT[Number(char)]
|
|
46
|
+
),
|
|
47
|
+
children: DIGITS.map((d) => /* @__PURE__ */ jsx("span", { className: "h-[10%]", children: d }, d))
|
|
48
|
+
}
|
|
49
|
+
)
|
|
50
|
+
]
|
|
51
|
+
}
|
|
52
|
+
);
|
|
53
|
+
}
|
|
54
|
+
var NumberTicker = React.forwardRef(
|
|
55
|
+
({ value, format, locale: localeProp, className, "aria-live": ariaLive = "off", ...props }, ref) => {
|
|
56
|
+
const locale = useIntlLocale(localeProp);
|
|
57
|
+
const parts = typeof value === "number" ? [{ value: new Intl.NumberFormat(locale, format).format(value) }] : typeof value === "string" ? [{ value }] : value;
|
|
58
|
+
const chars = parts.flatMap((p) => Array.from(p.value, (char) => ({ char, className: p.className })));
|
|
59
|
+
const text = parts.map((p) => p.value).join("");
|
|
60
|
+
const mounted = React.useRef(false);
|
|
61
|
+
React.useEffect(() => {
|
|
62
|
+
mounted.current = true;
|
|
63
|
+
}, []);
|
|
64
|
+
return /* @__PURE__ */ jsxs(
|
|
65
|
+
"span",
|
|
66
|
+
{
|
|
67
|
+
ref,
|
|
68
|
+
className: cn("whitespace-nowrap tabular-nums", className),
|
|
69
|
+
"aria-live": ariaLive,
|
|
70
|
+
"aria-atomic": "true",
|
|
71
|
+
...props,
|
|
72
|
+
children: [
|
|
73
|
+
/* @__PURE__ */ jsx("span", { className: "sr-only", children: text }),
|
|
74
|
+
/* @__PURE__ */ jsx("span", { "aria-hidden": "true", children: chars.map(({ char, className: cls }, i) => {
|
|
75
|
+
const fromEnd = chars.length - 1 - i;
|
|
76
|
+
const kind = /^[0-9]$/.test(char) ? "d" : `s${char}`;
|
|
77
|
+
return /* @__PURE__ */ jsx(Char, { char, className: cls, enter: mounted.current }, `${fromEnd}${kind}`);
|
|
78
|
+
}) })
|
|
79
|
+
]
|
|
80
|
+
}
|
|
81
|
+
);
|
|
82
|
+
}
|
|
83
|
+
);
|
|
84
|
+
NumberTicker.displayName = "NumberTicker";
|
|
85
|
+
|
|
86
|
+
export {
|
|
87
|
+
NumberTicker
|
|
88
|
+
};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import {
|
|
3
|
+
SelectableCardContent,
|
|
4
|
+
selectableCardClass,
|
|
5
|
+
useCardIds
|
|
6
|
+
} from "./chunk-K5FKEAAK.js";
|
|
7
|
+
import {
|
|
8
|
+
cn
|
|
9
|
+
} from "./chunk-Q7G5WGYV.js";
|
|
10
|
+
|
|
11
|
+
// src/components/CheckboxCard/CheckboxCard.tsx
|
|
12
|
+
import * as React from "react";
|
|
13
|
+
import * as RadixCheckbox from "@radix-ui/react-checkbox";
|
|
14
|
+
import { jsx } from "react/jsx-runtime";
|
|
15
|
+
var CheckboxCard = React.forwardRef(
|
|
16
|
+
({ className, icon, title, description, children, onCheckedChange, ...props }, ref) => {
|
|
17
|
+
const ids = useCardIds(description != null);
|
|
18
|
+
return /* @__PURE__ */ jsx(
|
|
19
|
+
RadixCheckbox.Root,
|
|
20
|
+
{
|
|
21
|
+
ref,
|
|
22
|
+
"aria-labelledby": ids.titleId,
|
|
23
|
+
"aria-describedby": ids.describedBy,
|
|
24
|
+
className: cn(selectableCardClass, className),
|
|
25
|
+
onCheckedChange: onCheckedChange ? (c) => onCheckedChange(c === true) : void 0,
|
|
26
|
+
...props,
|
|
27
|
+
children: /* @__PURE__ */ jsx(
|
|
28
|
+
SelectableCardContent,
|
|
29
|
+
{
|
|
30
|
+
icon,
|
|
31
|
+
title,
|
|
32
|
+
description,
|
|
33
|
+
titleId: ids.titleId,
|
|
34
|
+
descriptionId: ids.descriptionId,
|
|
35
|
+
shape: "square",
|
|
36
|
+
children
|
|
37
|
+
}
|
|
38
|
+
)
|
|
39
|
+
}
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
);
|
|
43
|
+
CheckboxCard.displayName = "CheckboxCard";
|
|
44
|
+
|
|
45
|
+
export {
|
|
46
|
+
CheckboxCard
|
|
47
|
+
};
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
|
+
import {
|
|
3
|
+
useNexubMessages
|
|
4
|
+
} from "./chunk-24ZFAXB2.js";
|
|
2
5
|
import {
|
|
3
6
|
cn
|
|
4
7
|
} from "./chunk-Q7G5WGYV.js";
|
|
@@ -9,21 +12,21 @@ import { cva } from "class-variance-authority";
|
|
|
9
12
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
10
13
|
var alertVariants = cva(
|
|
11
14
|
[
|
|
12
|
-
"relative flex gap-3 rounded-
|
|
15
|
+
"relative flex gap-3 rounded-shape-container border-s-4 p-4",
|
|
13
16
|
"w-full"
|
|
14
17
|
],
|
|
15
18
|
{
|
|
16
19
|
variants: {
|
|
17
20
|
tone: {
|
|
18
|
-
neutral: "bg-[var(--color-
|
|
19
|
-
info: "bg-[var(--color-
|
|
20
|
-
success: "bg-[var(--color-
|
|
21
|
-
warning: "bg-[var(--color-
|
|
22
|
-
danger: "bg-[var(--color-
|
|
23
|
-
leap: "bg-[var(--color-leap-
|
|
24
|
-
bookub: "bg-[var(--color-bookub-
|
|
25
|
-
payub: "bg-[var(--color-payub-
|
|
26
|
-
founderub: "bg-[var(--color-founderub-
|
|
21
|
+
neutral: "bg-[var(--color-surface-container-low)] border-s-[var(--color-outline)] text-[var(--color-on-surface)]",
|
|
22
|
+
info: "bg-[var(--color-info-container)] border-s-[var(--color-info)] text-[var(--color-on-info-container)]",
|
|
23
|
+
success: "bg-[var(--color-success-container)] border-s-[var(--color-success)] text-[var(--color-on-success-container)]",
|
|
24
|
+
warning: "bg-[var(--color-warning-container)] border-s-[var(--color-warning)] text-[var(--color-on-warning-container)]",
|
|
25
|
+
danger: "bg-[var(--color-error-container)] border-s-[var(--color-error)] text-[var(--color-on-error-container)]",
|
|
26
|
+
leap: "bg-[var(--color-leap-container)] border-s-[var(--color-leap)] text-[var(--color-on-leap-container)]",
|
|
27
|
+
bookub: "bg-[var(--color-bookub-container)] border-s-[var(--color-bookub)] text-[var(--color-on-bookub-container)]",
|
|
28
|
+
payub: "bg-[var(--color-payub-container)] border-s-[var(--color-payub)] text-[var(--color-on-payub-container)]",
|
|
29
|
+
founderub: "bg-[var(--color-founderub-container)] border-s-[var(--color-founderub)] text-[var(--color-on-founderub-container)]"
|
|
27
30
|
}
|
|
28
31
|
},
|
|
29
32
|
defaultVariants: {
|
|
@@ -42,6 +45,7 @@ var Alert = React.forwardRef(
|
|
|
42
45
|
children,
|
|
43
46
|
...props
|
|
44
47
|
}, ref) => {
|
|
48
|
+
const messages = useNexubMessages();
|
|
45
49
|
return /* @__PURE__ */ jsxs(
|
|
46
50
|
"div",
|
|
47
51
|
{
|
|
@@ -61,11 +65,10 @@ var Alert = React.forwardRef(
|
|
|
61
65
|
"button",
|
|
62
66
|
{
|
|
63
67
|
type: "button",
|
|
64
|
-
"aria-label":
|
|
68
|
+
"aria-label": messages.dismissAlert,
|
|
65
69
|
onClick: onClose,
|
|
66
70
|
className: cn(
|
|
67
|
-
"shrink-0 inline-flex items-center justify-center rounded-
|
|
68
|
-
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-ring-default)] focus-visible:ring-offset-2 ring-offset-[var(--color-ring-offset)]"
|
|
71
|
+
"nx-state-layer shrink-0 inline-flex items-center justify-center rounded-full w-6 h-6"
|
|
69
72
|
),
|
|
70
73
|
children: /* @__PURE__ */ jsx("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx("path", { d: "M10 2L2 10M2 2l8 8", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" }) })
|
|
71
74
|
}
|
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
import {
|
|
3
3
|
glassSurfaceClass
|
|
4
4
|
} from "./chunk-DEIBF3P7.js";
|
|
5
|
+
import {
|
|
6
|
+
useNexubMessages
|
|
7
|
+
} from "./chunk-24ZFAXB2.js";
|
|
5
8
|
import {
|
|
6
9
|
cn
|
|
7
10
|
} from "./chunk-Q7G5WGYV.js";
|
|
@@ -33,18 +36,21 @@ var Logo = React.forwardRef(
|
|
|
33
36
|
);
|
|
34
37
|
Logo.displayName = "TopNav.Logo";
|
|
35
38
|
var Menu = React.forwardRef(
|
|
36
|
-
({ className, ...props }, ref) =>
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
39
|
+
({ className, ...props }, ref) => {
|
|
40
|
+
const messages = useNexubMessages();
|
|
41
|
+
return (
|
|
42
|
+
// Scrolls horizontally on narrow screens rather than hiding the links.
|
|
43
|
+
/* @__PURE__ */ jsx(
|
|
44
|
+
"nav",
|
|
45
|
+
{
|
|
46
|
+
ref,
|
|
47
|
+
"aria-label": messages.mainNavigation,
|
|
48
|
+
className: cn("flex min-w-0 items-center gap-1 overflow-x-auto", className),
|
|
49
|
+
...props
|
|
50
|
+
}
|
|
51
|
+
)
|
|
52
|
+
);
|
|
53
|
+
}
|
|
48
54
|
);
|
|
49
55
|
Menu.displayName = "TopNav.Menu";
|
|
50
56
|
var Item = React.forwardRef(
|
|
@@ -67,7 +73,7 @@ var Item = React.forwardRef(
|
|
|
67
73
|
);
|
|
68
74
|
Item.displayName = "TopNav.Item";
|
|
69
75
|
var Actions = React.forwardRef(
|
|
70
|
-
({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("
|
|
76
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("ms-auto flex items-center gap-2", className), ...props })
|
|
71
77
|
);
|
|
72
78
|
Actions.displayName = "TopNav.Actions";
|
|
73
79
|
var TopNav = { Root, Logo, Menu, Item, Actions };
|