@nexub/react 1.0.0 → 1.1.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.
Files changed (199) hide show
  1. package/dist/chunk-24CZFBTG.js +83 -0
  2. package/dist/chunk-2MKB5FQI.js +122 -0
  3. package/dist/chunk-2RLSIOGB.js +173 -0
  4. package/dist/chunk-2VDP2ML4.js +105 -0
  5. package/dist/chunk-3CSKW56L.js +44 -0
  6. package/dist/chunk-3U54QLYB.js +87 -0
  7. package/dist/chunk-46CFSBEO.js +48 -0
  8. package/dist/chunk-4BTP4464.js +92 -0
  9. package/dist/chunk-4NGB7XIM.js +88 -0
  10. package/dist/chunk-4OCXGNP3.js +85 -0
  11. package/dist/chunk-52KTX5A7.js +119 -0
  12. package/dist/chunk-6AZP6VBM.js +62 -0
  13. package/dist/chunk-6Y734SXN.js +51 -0
  14. package/dist/chunk-7B4FS7VQ.js +150 -0
  15. package/dist/chunk-7W2YDJ5W.js +128 -0
  16. package/dist/chunk-A7L75YXY.js +61 -0
  17. package/dist/chunk-ADO2DB6Q.js +1 -0
  18. package/dist/chunk-AHZQQ7OT.js +83 -0
  19. package/dist/chunk-AT6RPKU3.js +12 -0
  20. package/dist/chunk-BBVOB4EC.js +36 -0
  21. package/dist/chunk-BGY23Y5O.js +104 -0
  22. package/dist/chunk-BJKW3G2L.js +99 -0
  23. package/dist/chunk-BMVAZIAJ.js +187 -0
  24. package/dist/chunk-BTZW34TX.js +76 -0
  25. package/dist/chunk-BUBYXAJK.js +20 -0
  26. package/dist/chunk-BV3U3ATL.js +1 -0
  27. package/dist/chunk-BYCTJHXY.js +75 -0
  28. package/dist/chunk-BYF223HT.js +92 -0
  29. package/dist/chunk-CPV367VS.js +106 -0
  30. package/dist/chunk-CVBAWKNG.js +124 -0
  31. package/dist/chunk-CZUNTABW.js +25 -0
  32. package/dist/chunk-DAXDAFNG.js +92 -0
  33. package/dist/chunk-DD6XCW6R.js +53 -0
  34. package/dist/chunk-DEH2Z27F.js +50 -0
  35. package/dist/chunk-DOHXBNOP.js +119 -0
  36. package/dist/chunk-DR2Y3PIT.js +91 -0
  37. package/dist/chunk-ELC2NBGH.js +89 -0
  38. package/dist/chunk-EV43I5J6.js +1 -0
  39. package/dist/chunk-FS4XKWFA.js +308 -0
  40. package/dist/chunk-FUJOSPNQ.js +38 -0
  41. package/dist/chunk-GTQIA62H.js +60 -0
  42. package/dist/chunk-H4MXRAXP.js +37 -0
  43. package/dist/chunk-HW3I7I3R.js +29 -0
  44. package/dist/chunk-HY3JWSG4.js +1 -0
  45. package/dist/chunk-I5Z3A7N3.js +40 -0
  46. package/dist/chunk-IBCYG6HR.js +55 -0
  47. package/dist/chunk-IHW2L532.js +175 -0
  48. package/dist/chunk-IU76LV3W.js +101 -0
  49. package/dist/chunk-IZ6ZPEZ2.js +1 -0
  50. package/dist/chunk-JCUVWDUC.js +57 -0
  51. package/dist/chunk-JKTZMWWC.js +63 -0
  52. package/dist/chunk-JQDLCN5D.js +66 -0
  53. package/dist/chunk-K7CUCLLI.js +43 -0
  54. package/dist/chunk-KBB7M6WO.js +65 -0
  55. package/dist/chunk-KLTQJZOX.js +1 -0
  56. package/dist/chunk-KWWV3CM3.js +62 -0
  57. package/dist/chunk-KZW37FQZ.js +40 -0
  58. package/dist/chunk-L6GBZ2HB.js +145 -0
  59. package/dist/chunk-LAWZQ6R6.js +76 -0
  60. package/dist/chunk-LOP63AVE.js +49 -0
  61. package/dist/chunk-MY6XUJ5P.js +216 -0
  62. package/dist/chunk-N2GIMMTF.js +98 -0
  63. package/dist/chunk-NAIZ7R2L.js +59 -0
  64. package/dist/chunk-NHUQLIHL.js +9 -0
  65. package/dist/chunk-NZ7UK3G6.js +1 -0
  66. package/dist/chunk-OUBBOOZE.js +34 -0
  67. package/dist/chunk-OZPPL76D.js +82 -0
  68. package/dist/chunk-P6BZNFVU.js +38 -0
  69. package/dist/chunk-PANDAMD2.js +54 -0
  70. package/dist/chunk-PBLEGOLM.js +71 -0
  71. package/dist/chunk-PER3O4FD.js +33 -0
  72. package/dist/chunk-PICMOOAZ.js +1 -0
  73. package/dist/chunk-POBSY7EZ.js +155 -0
  74. package/dist/chunk-POFKKYHY.js +37 -0
  75. package/dist/chunk-QF7GUDOE.js +67 -0
  76. package/dist/chunk-QHJ43Q2T.js +70 -0
  77. package/dist/chunk-QURKXXNS.js +46 -0
  78. package/dist/chunk-ROZVVWPV.js +8 -0
  79. package/dist/chunk-S344IRK4.js +63 -0
  80. package/dist/chunk-SZKUSLHI.js +176 -0
  81. package/dist/chunk-T4IVMVMQ.js +32 -0
  82. package/dist/chunk-TCTFQYLH.js +115 -0
  83. package/dist/chunk-U3AEA4BZ.js +56 -0
  84. package/dist/chunk-U3EGB3JL.js +43 -0
  85. package/dist/chunk-UALYS4XI.js +67 -0
  86. package/dist/chunk-UTBUIBEP.js +153 -0
  87. package/dist/chunk-UWWL5FPC.js +80 -0
  88. package/dist/chunk-V3FZHIEB.js +52 -0
  89. package/dist/chunk-V6GZZFTV.js +106 -0
  90. package/dist/chunk-VPZCQFVY.js +33 -0
  91. package/dist/chunk-VT7RKY46.js +49 -0
  92. package/dist/chunk-W4IEXUD4.js +127 -0
  93. package/dist/chunk-WPPNDU2E.js +36 -0
  94. package/dist/chunk-XNDCVVNE.js +45 -0
  95. package/dist/chunk-Y45JAJKW.js +44 -0
  96. package/dist/chunk-YAGVMERC.js +81 -0
  97. package/dist/chunk-YGOR3KT7.js +46 -0
  98. package/dist/chunk-YJD66LTV.js +54 -0
  99. package/dist/chunk-YJU4ZRQZ.js +1 -0
  100. package/dist/chunk-YUFCNHZF.js +27 -0
  101. package/dist/chunk-YUNWZAAD.js +57 -0
  102. package/dist/chunk-ZFVBFCYV.js +84 -0
  103. package/dist/chunk-ZXLACKEB.js +8 -0
  104. package/dist/components/Accordion/index.js +8 -0
  105. package/dist/components/Alert/index.js +10 -0
  106. package/dist/components/AlertDialog/index.js +8 -0
  107. package/dist/components/AppShell/index.js +8 -0
  108. package/dist/components/AspectRatio/index.js +8 -0
  109. package/dist/components/Autocomplete/index.js +9 -0
  110. package/dist/components/Avatar/index.js +11 -0
  111. package/dist/components/AvatarGroup/index.js +11 -0
  112. package/dist/components/Badge/index.js +10 -0
  113. package/dist/components/Banner/index.js +10 -0
  114. package/dist/components/Box/index.js +8 -0
  115. package/dist/components/Breadcrumb/index.js +8 -0
  116. package/dist/components/Button/index.js +10 -0
  117. package/dist/components/ButtonGroup/index.js +8 -0
  118. package/dist/components/Callout/index.js +10 -0
  119. package/dist/components/Card/index.js +11 -0
  120. package/dist/components/CheckList/index.js +10 -0
  121. package/dist/components/Checkbox/index.js +8 -0
  122. package/dist/components/Chip/index.js +10 -0
  123. package/dist/components/Code/index.js +8 -0
  124. package/dist/components/Collapsible/index.js +8 -0
  125. package/dist/components/Combobox/index.js +9 -0
  126. package/dist/components/CommandPalette/index.js +8 -0
  127. package/dist/components/Container/index.js +10 -0
  128. package/dist/components/ContextMenu/index.js +8 -0
  129. package/dist/components/CountryBadge/index.js +9 -0
  130. package/dist/components/DataTable/index.js +8 -0
  131. package/dist/components/DatePicker/index.js +8 -0
  132. package/dist/components/DateRangePicker/index.js +8 -0
  133. package/dist/components/Dialog/index.js +9 -0
  134. package/dist/components/Drawer/index.js +11 -0
  135. package/dist/components/DropdownMenu/index.js +8 -0
  136. package/dist/components/EmptyState/index.js +8 -0
  137. package/dist/components/ErrorState/index.js +8 -0
  138. package/dist/components/EyebrowChip/index.js +8 -0
  139. package/dist/components/FileUpload/index.js +8 -0
  140. package/dist/components/FilterChip/index.js +8 -0
  141. package/dist/components/Flag/index.js +9 -0
  142. package/dist/components/Flex/index.js +8 -0
  143. package/dist/components/FormError/index.js +9 -0
  144. package/dist/components/FormField/index.js +11 -0
  145. package/dist/components/GradientDivider/index.js +8 -0
  146. package/dist/components/Grid/index.js +8 -0
  147. package/dist/components/Heading/index.js +10 -0
  148. package/dist/components/HelperText/index.js +9 -0
  149. package/dist/components/HoverCard/index.js +8 -0
  150. package/dist/components/IconButton/index.js +10 -0
  151. package/dist/components/Input/index.js +15 -0
  152. package/dist/components/Kbd/index.js +9 -0
  153. package/dist/components/KeyboardShortcut/index.js +9 -0
  154. package/dist/components/Label/index.js +11 -0
  155. package/dist/components/Link/index.js +10 -0
  156. package/dist/components/Logo/index.js +10 -0
  157. package/dist/components/Menubar/index.js +8 -0
  158. package/dist/components/Motion/index.js +13 -0
  159. package/dist/components/NavigationMenu/index.js +8 -0
  160. package/dist/components/NumberInput/index.js +9 -0
  161. package/dist/components/PageHeader/index.js +8 -0
  162. package/dist/components/Pagination/index.js +8 -0
  163. package/dist/components/PasswordInput/index.js +9 -0
  164. package/dist/components/Popover/index.js +9 -0
  165. package/dist/components/Progress/index.js +12 -0
  166. package/dist/components/RadioGroup/index.js +8 -0
  167. package/dist/components/Rating/index.js +11 -0
  168. package/dist/components/ScrollArea/index.js +8 -0
  169. package/dist/components/SearchInput/index.js +9 -0
  170. package/dist/components/Section/index.js +10 -0
  171. package/dist/components/SegmentedControl/index.js +8 -0
  172. package/dist/components/Select/index.js +8 -0
  173. package/dist/components/Separator/index.js +10 -0
  174. package/dist/components/Sidebar/index.js +8 -0
  175. package/dist/components/Skeleton/index.js +10 -0
  176. package/dist/components/Slider/index.js +8 -0
  177. package/dist/components/Spinner/index.js +10 -0
  178. package/dist/components/Stack/index.js +8 -0
  179. package/dist/components/StatusPill/index.js +10 -0
  180. package/dist/components/Switch/index.js +8 -0
  181. package/dist/components/Table/index.js +8 -0
  182. package/dist/components/Tabs/index.js +8 -0
  183. package/dist/components/Tag/index.js +10 -0
  184. package/dist/components/Text/index.js +10 -0
  185. package/dist/components/TextGradient/index.js +8 -0
  186. package/dist/components/Textarea/index.js +10 -0
  187. package/dist/components/ThemeProvider/index.js +10 -0
  188. package/dist/components/Toast/index.js +14 -0
  189. package/dist/components/Toggle/index.js +11 -0
  190. package/dist/components/ToggleGroup/index.js +9 -0
  191. package/dist/components/Toolbar/index.js +8 -0
  192. package/dist/components/Tooltip/index.js +16 -0
  193. package/dist/components/TopNav/index.js +9 -0
  194. package/dist/components/VisuallyHidden/index.js +7 -0
  195. package/dist/index.d.ts +28 -11
  196. package/dist/index.js +479 -5896
  197. package/package.json +12 -12
  198. package/dist/index.cjs +0 -6112
  199. package/dist/index.d.cts +0 -1245
@@ -0,0 +1,145 @@
1
+ 'use client';
2
+ import {
3
+ cn
4
+ } from "./chunk-AT6RPKU3.js";
5
+
6
+ // src/components/AlertDialog/AlertDialog.tsx
7
+ import * as React from "react";
8
+ import * as RadixAlertDialog from "@radix-ui/react-alert-dialog";
9
+ import { jsx } from "react/jsx-runtime";
10
+ var Root2 = RadixAlertDialog.Root;
11
+ var Trigger2 = RadixAlertDialog.Trigger;
12
+ var Portal2 = RadixAlertDialog.Portal;
13
+ var Overlay2 = React.forwardRef(
14
+ function AlertDialogOverlay({ className, ...props }, ref) {
15
+ return /* @__PURE__ */ jsx(
16
+ RadixAlertDialog.Overlay,
17
+ {
18
+ ref,
19
+ className: cn(
20
+ "fixed inset-0 z-[var(--z-modal)] bg-black/50 backdrop-blur-sm",
21
+ "data-[state=open]:animate-in data-[state=closed]:animate-out",
22
+ "data-[state=open]:fade-in-0 data-[state=closed]:fade-out-0",
23
+ className
24
+ ),
25
+ ...props
26
+ }
27
+ );
28
+ }
29
+ );
30
+ Overlay2.displayName = "AlertDialog.Overlay";
31
+ var Content2 = React.forwardRef(
32
+ function AlertDialogContent({ className, children, ...props }, ref) {
33
+ return /* @__PURE__ */ jsx(
34
+ RadixAlertDialog.Content,
35
+ {
36
+ ref,
37
+ className: cn(
38
+ "fixed left-1/2 top-1/2 z-[var(--z-modal)] w-full max-w-lg -translate-x-1/2 -translate-y-1/2",
39
+ "rounded-xl border border-[var(--color-border-default)] bg-[var(--color-bg-default)] shadow-xl",
40
+ "p-6 focus:outline-none",
41
+ "data-[state=open]:animate-in data-[state=closed]:animate-out",
42
+ "data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
43
+ "data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",
44
+ "data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%]",
45
+ "data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%]",
46
+ className
47
+ ),
48
+ ...props,
49
+ children
50
+ }
51
+ );
52
+ }
53
+ );
54
+ Content2.displayName = "AlertDialog.Content";
55
+ var Title2 = React.forwardRef(
56
+ function AlertDialogTitle({ className, ...props }, ref) {
57
+ return /* @__PURE__ */ jsx(
58
+ RadixAlertDialog.Title,
59
+ {
60
+ ref,
61
+ className: cn("text-lg font-semibold text-[var(--color-text-primary)]", className),
62
+ ...props
63
+ }
64
+ );
65
+ }
66
+ );
67
+ Title2.displayName = "AlertDialog.Title";
68
+ var Description2 = React.forwardRef(function AlertDialogDescription({ className, ...props }, ref) {
69
+ return /* @__PURE__ */ jsx(
70
+ RadixAlertDialog.Description,
71
+ {
72
+ ref,
73
+ className: cn("mt-1 text-sm text-[var(--color-text-muted)]", className),
74
+ ...props
75
+ }
76
+ );
77
+ });
78
+ Description2.displayName = "AlertDialog.Description";
79
+ var Header = React.forwardRef(
80
+ function AlertDialogHeader({ className, ...props }, ref) {
81
+ return /* @__PURE__ */ jsx("div", { ref, className: cn("mb-4 flex flex-col gap-1", className), ...props });
82
+ }
83
+ );
84
+ Header.displayName = "AlertDialog.Header";
85
+ var Footer = React.forwardRef(
86
+ function AlertDialogFooter({ className, ...props }, ref) {
87
+ return /* @__PURE__ */ jsx("div", { ref, className: cn("mt-6 flex justify-end gap-2", className), ...props });
88
+ }
89
+ );
90
+ Footer.displayName = "AlertDialog.Footer";
91
+ var Action2 = React.forwardRef(
92
+ function AlertDialogAction({ className, ...props }, ref) {
93
+ return /* @__PURE__ */ jsx(
94
+ RadixAlertDialog.Action,
95
+ {
96
+ ref,
97
+ className: cn(
98
+ "inline-flex items-center justify-center rounded-md px-4 py-2 text-sm font-medium",
99
+ "bg-[var(--color-fill-danger)] text-white hover:bg-[var(--color-fill-danger-hover)] focus:outline-none",
100
+ "focus-visible:ring-2 focus-visible:ring-red-600 focus-visible:ring-offset-2 ring-offset-[var(--color-ring-offset)]",
101
+ "disabled:pointer-events-none disabled:opacity-50",
102
+ className
103
+ ),
104
+ ...props
105
+ }
106
+ );
107
+ }
108
+ );
109
+ Action2.displayName = "AlertDialog.Action";
110
+ var Cancel2 = React.forwardRef(
111
+ function AlertDialogCancel({ className, ...props }, ref) {
112
+ return /* @__PURE__ */ jsx(
113
+ RadixAlertDialog.Cancel,
114
+ {
115
+ ref,
116
+ className: cn(
117
+ "inline-flex items-center justify-center rounded-md border border-[var(--color-border-default)] px-4 py-2 text-sm font-medium",
118
+ "bg-[var(--color-bg-default)] text-[var(--color-text-primary)] hover:bg-[var(--color-bg-subtle)]",
119
+ "focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-ring-default)] focus-visible:ring-offset-2 ring-offset-[var(--color-ring-offset)]",
120
+ "disabled:pointer-events-none disabled:opacity-50",
121
+ className
122
+ ),
123
+ ...props
124
+ }
125
+ );
126
+ }
127
+ );
128
+ Cancel2.displayName = "AlertDialog.Cancel";
129
+ var AlertDialog = {
130
+ Root: Root2,
131
+ Trigger: Trigger2,
132
+ Portal: Portal2,
133
+ Overlay: Overlay2,
134
+ Content: Content2,
135
+ Title: Title2,
136
+ Description: Description2,
137
+ Header,
138
+ Footer,
139
+ Action: Action2,
140
+ Cancel: Cancel2
141
+ };
142
+
143
+ export {
144
+ AlertDialog
145
+ };
@@ -0,0 +1,76 @@
1
+ 'use client';
2
+ import {
3
+ cn
4
+ } from "./chunk-AT6RPKU3.js";
5
+
6
+ // src/components/Heading/Heading.tsx
7
+ import * as React from "react";
8
+ import { Slot } from "@radix-ui/react-slot";
9
+ import { cva } from "class-variance-authority";
10
+ import { jsx } from "react/jsx-runtime";
11
+ var headingVariants = cva("", {
12
+ variants: {
13
+ size: {
14
+ display: "text-6xl font-extrabold tracking-tight leading-none",
15
+ h1: "text-5xl font-bold tracking-tight leading-tight",
16
+ h2: "text-4xl font-bold tracking-tight leading-tight",
17
+ h3: "text-3xl font-semibold leading-snug",
18
+ h4: "text-2xl font-semibold leading-snug",
19
+ h5: "text-xl font-semibold leading-snug",
20
+ h6: "text-base font-semibold leading-normal"
21
+ },
22
+ weight: {
23
+ regular: "font-normal",
24
+ medium: "font-medium",
25
+ semibold: "font-semibold",
26
+ bold: "font-bold",
27
+ extrabold: "font-extrabold"
28
+ }
29
+ }
30
+ });
31
+ var levelSizeMap = {
32
+ 1: "h1",
33
+ 2: "h2",
34
+ 3: "h3",
35
+ 4: "h4",
36
+ 5: "h5",
37
+ 6: "h6"
38
+ };
39
+ var Heading = React.forwardRef(
40
+ ({
41
+ level = 2,
42
+ size,
43
+ tone,
44
+ weight,
45
+ asChild = false,
46
+ className,
47
+ style,
48
+ children,
49
+ ...rest
50
+ }, ref) => {
51
+ const resolvedSize = size ?? levelSizeMap[level];
52
+ const Tag = `h${level}`;
53
+ const Comp = asChild ? Slot : Tag;
54
+ const toneStyle = tone && tone !== "default" ? { color: `var(--color-text-${tone})` } : {};
55
+ return /* @__PURE__ */ jsx(
56
+ Comp,
57
+ {
58
+ ref,
59
+ className: cn(
60
+ headingVariants({ size: resolvedSize, weight }),
61
+ className
62
+ ),
63
+ style: { ...toneStyle, ...style },
64
+ "data-tone": tone,
65
+ ...rest,
66
+ children
67
+ }
68
+ );
69
+ }
70
+ );
71
+ Heading.displayName = "Heading";
72
+
73
+ export {
74
+ headingVariants,
75
+ Heading
76
+ };
@@ -0,0 +1,49 @@
1
+ 'use client';
2
+ import {
3
+ cn
4
+ } from "./chunk-AT6RPKU3.js";
5
+
6
+ // src/components/Section/Section.tsx
7
+ import * as React from "react";
8
+ import { Slot } from "@radix-ui/react-slot";
9
+ import { cva } from "class-variance-authority";
10
+ import { jsx } from "react/jsx-runtime";
11
+ var sectionVariants = cva("w-full", {
12
+ variants: {
13
+ paddingY: {
14
+ sm: "py-12",
15
+ md: "py-20",
16
+ lg: "py-32"
17
+ },
18
+ tone: {
19
+ default: "bg-[var(--color-bg-default)]",
20
+ subtle: "bg-[var(--color-bg-subtle)]",
21
+ muted: "bg-[var(--color-bg-muted)]",
22
+ inverse: "bg-[var(--color-bg-inverse)] text-[var(--color-text-inverse)]"
23
+ }
24
+ },
25
+ defaultVariants: {
26
+ paddingY: "md",
27
+ tone: "default"
28
+ }
29
+ });
30
+ var Section = React.forwardRef(
31
+ ({ paddingY, tone, asChild = false, className, children, ...rest }, ref) => {
32
+ const Comp = asChild ? Slot : "section";
33
+ return /* @__PURE__ */ jsx(
34
+ Comp,
35
+ {
36
+ ref,
37
+ className: cn(sectionVariants({ paddingY, tone }), className),
38
+ ...rest,
39
+ children
40
+ }
41
+ );
42
+ }
43
+ );
44
+ Section.displayName = "Section";
45
+
46
+ export {
47
+ sectionVariants,
48
+ Section
49
+ };
@@ -0,0 +1,216 @@
1
+ 'use client';
2
+ import {
3
+ cn
4
+ } from "./chunk-AT6RPKU3.js";
5
+
6
+ // src/components/Menubar/Menubar.tsx
7
+ import * as React from "react";
8
+ import * as RadixMenubar from "@radix-ui/react-menubar";
9
+ import { Check, ChevronRight } from "@nexub/icons";
10
+ import { jsx, jsxs } from "react/jsx-runtime";
11
+ var Menu2 = RadixMenubar.Menu;
12
+ var Portal2 = RadixMenubar.Portal;
13
+ var Group2 = RadixMenubar.Group;
14
+ var RadioGroup2 = RadixMenubar.RadioGroup;
15
+ var Sub2 = RadixMenubar.Sub;
16
+ var Root2 = React.forwardRef(
17
+ function MenubarRoot({ className, ...props }, ref) {
18
+ return /* @__PURE__ */ jsx(
19
+ RadixMenubar.Root,
20
+ {
21
+ ref,
22
+ className: cn(
23
+ "flex h-9 items-center gap-1 rounded-md border border-[var(--color-border-default)]",
24
+ "bg-[var(--color-bg-default)] px-3",
25
+ className
26
+ ),
27
+ ...props
28
+ }
29
+ );
30
+ }
31
+ );
32
+ Root2.displayName = "Menubar.Root";
33
+ var Trigger2 = React.forwardRef(
34
+ function MenubarTrigger({ className, ...props }, ref) {
35
+ return /* @__PURE__ */ jsx(
36
+ RadixMenubar.Trigger,
37
+ {
38
+ ref,
39
+ className: cn(
40
+ "relative flex cursor-default select-none items-center rounded-sm px-3 py-1 text-sm font-medium",
41
+ "outline-none focus:bg-[var(--color-bg-subtle)]",
42
+ "data-[state=open]:bg-[var(--color-bg-subtle)]",
43
+ className
44
+ ),
45
+ ...props
46
+ }
47
+ );
48
+ }
49
+ );
50
+ Trigger2.displayName = "Menubar.Trigger";
51
+ var contentBaseClasses = cn(
52
+ "z-[var(--z-popover)] min-w-48 rounded-lg border border-[var(--color-border-default)]",
53
+ "bg-[var(--color-bg-default)] p-1 shadow-md outline-none",
54
+ "data-[state=open]:animate-in data-[state=closed]:animate-out",
55
+ "data-[state=open]:fade-in-0 data-[state=closed]:fade-out-0",
56
+ "data-[state=open]:zoom-in-95 data-[state=closed]:zoom-out-95",
57
+ "data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2",
58
+ "data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2"
59
+ );
60
+ var Content2 = React.forwardRef(
61
+ function MenubarContent({ className, sideOffset = 8, ...props }, ref) {
62
+ return /* @__PURE__ */ jsx(
63
+ RadixMenubar.Content,
64
+ {
65
+ ref,
66
+ sideOffset,
67
+ className: cn(contentBaseClasses, className),
68
+ ...props
69
+ }
70
+ );
71
+ }
72
+ );
73
+ Content2.displayName = "Menubar.Content";
74
+ var itemBaseClasses = cn(
75
+ "relative flex cursor-default select-none items-center rounded-md px-2 py-1.5 text-sm outline-none",
76
+ "transition-colors hover:bg-[var(--color-bg-subtle)] focus:bg-[var(--color-bg-subtle)]",
77
+ "data-[disabled]:pointer-events-none data-[disabled]:opacity-50"
78
+ );
79
+ var Item2 = React.forwardRef(
80
+ function MenubarItem({ className, ...props }, ref) {
81
+ return /* @__PURE__ */ jsx(
82
+ RadixMenubar.Item,
83
+ {
84
+ ref,
85
+ className: cn(itemBaseClasses, className),
86
+ ...props
87
+ }
88
+ );
89
+ }
90
+ );
91
+ Item2.displayName = "Menubar.Item";
92
+ var Label2 = React.forwardRef(
93
+ function MenubarLabel({ className, ...props }, ref) {
94
+ return /* @__PURE__ */ jsx(
95
+ RadixMenubar.Label,
96
+ {
97
+ ref,
98
+ className: cn(
99
+ "px-2 py-1 text-xs font-semibold text-[var(--color-text-muted)]",
100
+ className
101
+ ),
102
+ ...props
103
+ }
104
+ );
105
+ }
106
+ );
107
+ Label2.displayName = "Menubar.Label";
108
+ var Separator2 = React.forwardRef(
109
+ function MenubarSeparator({ className, ...props }, ref) {
110
+ return /* @__PURE__ */ jsx(
111
+ RadixMenubar.Separator,
112
+ {
113
+ ref,
114
+ className: cn("-mx-1 my-1 h-px bg-[var(--color-border-default)]", className),
115
+ ...props
116
+ }
117
+ );
118
+ }
119
+ );
120
+ Separator2.displayName = "Menubar.Separator";
121
+ var CheckboxItem2 = React.forwardRef(function MenubarCheckboxItem({ className, children, checked, ...props }, ref) {
122
+ return /* @__PURE__ */ jsxs(
123
+ RadixMenubar.CheckboxItem,
124
+ {
125
+ ref,
126
+ className: cn(itemBaseClasses, "pl-8", className),
127
+ checked,
128
+ ...props,
129
+ children: [
130
+ /* @__PURE__ */ jsx("span", { className: "absolute left-2 flex h-4 w-4 items-center justify-center", children: /* @__PURE__ */ jsx(RadixMenubar.ItemIndicator, { children: /* @__PURE__ */ jsx(Check, { className: "h-4 w-4" }) }) }),
131
+ children
132
+ ]
133
+ }
134
+ );
135
+ });
136
+ CheckboxItem2.displayName = "Menubar.CheckboxItem";
137
+ var RadioItem2 = React.forwardRef(function MenubarRadioItem({ className, children, ...props }, ref) {
138
+ return /* @__PURE__ */ jsxs(
139
+ RadixMenubar.RadioItem,
140
+ {
141
+ ref,
142
+ className: cn(itemBaseClasses, "pl-8", className),
143
+ ...props,
144
+ children: [
145
+ /* @__PURE__ */ jsx("span", { className: "absolute left-2 flex h-4 w-4 items-center justify-center", children: /* @__PURE__ */ jsx(RadixMenubar.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" }) }) }) }),
146
+ children
147
+ ]
148
+ }
149
+ );
150
+ });
151
+ RadioItem2.displayName = "Menubar.RadioItem";
152
+ var SubTrigger2 = React.forwardRef(function MenubarSubTrigger({ className, children, ...props }, ref) {
153
+ return /* @__PURE__ */ jsxs(
154
+ RadixMenubar.SubTrigger,
155
+ {
156
+ ref,
157
+ className: cn(
158
+ itemBaseClasses,
159
+ "data-[state=open]:bg-[var(--color-bg-subtle)]",
160
+ className
161
+ ),
162
+ ...props,
163
+ children: [
164
+ children,
165
+ /* @__PURE__ */ jsx(ChevronRight, { className: "ml-auto h-4 w-4" })
166
+ ]
167
+ }
168
+ );
169
+ });
170
+ SubTrigger2.displayName = "Menubar.SubTrigger";
171
+ var SubContent2 = React.forwardRef(function MenubarSubContent({ className, ...props }, ref) {
172
+ return /* @__PURE__ */ jsx(
173
+ RadixMenubar.SubContent,
174
+ {
175
+ ref,
176
+ className: cn(contentBaseClasses, className),
177
+ ...props
178
+ }
179
+ );
180
+ });
181
+ SubContent2.displayName = "Menubar.SubContent";
182
+ var Arrow2 = React.forwardRef(
183
+ function MenubarArrow({ className, ...props }, ref) {
184
+ return /* @__PURE__ */ jsx(
185
+ RadixMenubar.Arrow,
186
+ {
187
+ ref,
188
+ className: cn("fill-[var(--color-border-default)]", className),
189
+ ...props
190
+ }
191
+ );
192
+ }
193
+ );
194
+ Arrow2.displayName = "Menubar.Arrow";
195
+ var Menubar = {
196
+ Root: Root2,
197
+ Menu: Menu2,
198
+ Trigger: Trigger2,
199
+ Portal: Portal2,
200
+ Content: Content2,
201
+ Item: Item2,
202
+ Group: Group2,
203
+ Label: Label2,
204
+ Separator: Separator2,
205
+ CheckboxItem: CheckboxItem2,
206
+ RadioGroup: RadioGroup2,
207
+ RadioItem: RadioItem2,
208
+ Sub: Sub2,
209
+ SubTrigger: SubTrigger2,
210
+ SubContent: SubContent2,
211
+ Arrow: Arrow2
212
+ };
213
+
214
+ export {
215
+ Menubar
216
+ };
@@ -0,0 +1,98 @@
1
+ 'use client';
2
+ import {
3
+ cn
4
+ } from "./chunk-AT6RPKU3.js";
5
+
6
+ // src/components/Button/Button.tsx
7
+ import * as React from "react";
8
+ import { Slot } from "@radix-ui/react-slot";
9
+ import { Loader2 } from "@nexub/icons";
10
+ import { cva } from "class-variance-authority";
11
+ import { jsx, jsxs } from "react/jsx-runtime";
12
+ var toneClasses = {
13
+ neutral: "bg-[var(--color-bg-subtle)] text-[var(--color-text-primary)] hover:bg-[var(--color-bg-muted)]",
14
+ info: "bg-[var(--color-fill-info)] text-white hover:bg-[var(--color-fill-info-hover)]",
15
+ success: "bg-[var(--color-fill-success)] text-white hover:bg-[var(--color-fill-success-hover)]",
16
+ warning: "bg-[var(--color-fill-warning)] text-white hover:bg-[var(--color-fill-warning-hover)]",
17
+ danger: "bg-[var(--color-fill-danger)] text-white hover:bg-[var(--color-fill-danger-hover)]",
18
+ leap: "bg-[var(--color-fill-leap)] text-white hover:bg-[var(--color-fill-leap-hover)]",
19
+ bookub: "bg-[var(--color-fill-bookub)] text-white hover:bg-[var(--color-fill-bookub-hover)]",
20
+ payub: "bg-[var(--color-fill-payub)] text-white hover:bg-[var(--color-fill-payub-hover)]",
21
+ founderub: "bg-[var(--color-fill-founderub)] text-white hover:bg-[var(--color-fill-founderub-hover)]"
22
+ };
23
+ var buttonVariants = cva(
24
+ [
25
+ "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md font-medium transition-colors",
26
+ "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)]",
27
+ "disabled:opacity-50 disabled:pointer-events-none",
28
+ "select-none"
29
+ ],
30
+ {
31
+ variants: {
32
+ variant: {
33
+ primary: "bg-[var(--color-fill-primary)] text-white hover:bg-[var(--color-fill-primary-hover)]",
34
+ secondary: "bg-[var(--color-bg-subtle)] text-[var(--color-text-primary)] border border-[var(--color-border-default)] hover:bg-[var(--color-bg-muted)]",
35
+ subtle: "bg-[var(--color-bg-subtle)] text-[var(--color-text-primary)] hover:bg-[var(--color-bg-muted)]",
36
+ ghost: "bg-transparent text-[var(--color-text-primary)] hover:bg-[var(--color-bg-subtle)]",
37
+ outline: "bg-transparent border border-[var(--color-border-default)] text-[var(--color-text-primary)] hover:bg-[var(--color-bg-subtle)]",
38
+ destructive: "bg-[var(--color-fill-danger)] text-white hover:bg-[var(--color-fill-danger-hover)]",
39
+ accent: "bg-[var(--color-fill-accent)] text-white hover:bg-[var(--color-fill-accent-hover)]",
40
+ link: "bg-transparent text-[var(--color-text-primary)] underline-offset-4 hover:underline"
41
+ },
42
+ size: {
43
+ xs: "h-7 px-2.5 text-xs",
44
+ sm: "h-8 px-3 text-sm",
45
+ md: "h-9 px-4 text-sm",
46
+ lg: "h-10 px-5 text-base",
47
+ xl: "h-12 px-6 text-base"
48
+ },
49
+ fullWidth: {
50
+ true: "w-full"
51
+ }
52
+ },
53
+ defaultVariants: {
54
+ variant: "primary",
55
+ size: "md"
56
+ }
57
+ }
58
+ );
59
+ var Button = React.forwardRef(
60
+ ({
61
+ className,
62
+ variant,
63
+ size,
64
+ tone,
65
+ loading = false,
66
+ fullWidth,
67
+ leadingIcon,
68
+ trailingIcon,
69
+ asChild = false,
70
+ disabled,
71
+ children,
72
+ ...props
73
+ }, ref) => {
74
+ const sharedProps = {
75
+ className: cn(
76
+ buttonVariants({ variant, size, fullWidth }),
77
+ tone ? toneClasses[tone] : "",
78
+ className
79
+ ),
80
+ "data-tone": tone,
81
+ ...props
82
+ };
83
+ if (asChild) {
84
+ return /* @__PURE__ */ jsx(Slot, { ref, ...sharedProps, children });
85
+ }
86
+ return /* @__PURE__ */ jsxs("button", { ref, disabled: disabled ?? loading, ...sharedProps, children: [
87
+ loading ? /* @__PURE__ */ jsx(Loader2, { className: "h-4 w-4 animate-spin", "aria-hidden": "true" }) : leadingIcon,
88
+ children,
89
+ !loading && trailingIcon
90
+ ] });
91
+ }
92
+ );
93
+ Button.displayName = "Button";
94
+
95
+ export {
96
+ buttonVariants,
97
+ Button
98
+ };
@@ -0,0 +1,59 @@
1
+ 'use client';
2
+ import {
3
+ cn
4
+ } from "./chunk-AT6RPKU3.js";
5
+
6
+ // src/components/ErrorState/ErrorState.tsx
7
+ import * as React from "react";
8
+ import { AlertTriangle, AlertCircle, Info } from "@nexub/icons";
9
+ import { jsx, jsxs } from "react/jsx-runtime";
10
+ var toneConfig = {
11
+ error: {
12
+ icon: /* @__PURE__ */ jsx(AlertCircle, { size: "xl", "aria-hidden": "true" }),
13
+ color: "text-[var(--color-semantic-error-default)]"
14
+ },
15
+ warning: {
16
+ icon: /* @__PURE__ */ jsx(AlertTriangle, { size: "xl", "aria-hidden": "true" }),
17
+ color: "text-[var(--color-semantic-warning-default)]"
18
+ },
19
+ info: {
20
+ icon: /* @__PURE__ */ jsx(Info, { size: "xl", "aria-hidden": "true" }),
21
+ color: "text-[var(--color-semantic-info-default)]"
22
+ }
23
+ };
24
+ var ErrorState = React.forwardRef(
25
+ ({ className, title, description, tone = "error", onRetry, ...props }, ref) => {
26
+ const { icon, color } = toneConfig[tone];
27
+ return /* @__PURE__ */ jsxs(
28
+ "div",
29
+ {
30
+ ref,
31
+ className: cn(
32
+ "flex flex-col items-center justify-center gap-4 py-16 text-center",
33
+ className
34
+ ),
35
+ ...props,
36
+ children: [
37
+ /* @__PURE__ */ jsx("span", { className: color, children: icon }),
38
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1", children: [
39
+ /* @__PURE__ */ jsx("h3", { className: "text-lg font-semibold text-[var(--color-text-primary)]", children: title }),
40
+ description && /* @__PURE__ */ jsx("p", { className: "max-w-sm text-sm text-[var(--color-text-muted)]", children: description })
41
+ ] }),
42
+ onRetry && /* @__PURE__ */ jsx(
43
+ "button",
44
+ {
45
+ onClick: onRetry,
46
+ className: "inline-flex h-9 items-center justify-center rounded-md bg-[var(--color-fill-primary)] px-4 text-sm font-medium text-white hover:bg-[var(--color-fill-primary-hover)] transition-colors",
47
+ children: "Try again"
48
+ }
49
+ )
50
+ ]
51
+ }
52
+ );
53
+ }
54
+ );
55
+ ErrorState.displayName = "ErrorState";
56
+
57
+ export {
58
+ ErrorState
59
+ };
@@ -0,0 +1,9 @@
1
+ 'use client';
2
+
3
+ // src/hooks/useIsomorphicLayoutEffect.ts
4
+ import { useEffect, useLayoutEffect } from "react";
5
+ var useIsomorphicLayoutEffect = typeof window !== "undefined" ? useLayoutEffect : useEffect;
6
+
7
+ export {
8
+ useIsomorphicLayoutEffect
9
+ };
@@ -0,0 +1 @@
1
+ 'use client';
@@ -0,0 +1,34 @@
1
+ 'use client';
2
+ import {
3
+ cn
4
+ } from "./chunk-AT6RPKU3.js";
5
+
6
+ // src/components/FormError/FormError.tsx
7
+ import * as React from "react";
8
+ import { AlertCircle } from "@nexub/icons";
9
+ import { jsx, jsxs } from "react/jsx-runtime";
10
+ var FormError = React.forwardRef(
11
+ ({ className, children, ...props }, ref) => {
12
+ return /* @__PURE__ */ jsxs(
13
+ "p",
14
+ {
15
+ ref,
16
+ role: "alert",
17
+ className: cn(
18
+ "flex items-center gap-1.5 text-sm text-[var(--color-danger-600)] leading-snug",
19
+ className
20
+ ),
21
+ ...props,
22
+ children: [
23
+ /* @__PURE__ */ jsx(AlertCircle, { className: "h-4 w-4 shrink-0", "aria-hidden": "true" }),
24
+ children
25
+ ]
26
+ }
27
+ );
28
+ }
29
+ );
30
+ FormError.displayName = "FormError";
31
+
32
+ export {
33
+ FormError
34
+ };