@nous-research/ui 0.15.0 → 0.17.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 (258) hide show
  1. package/CHANGELOG.md +266 -0
  2. package/README.md +24 -4
  3. package/dist/fonts.js +1 -0
  4. package/dist/hooks/use-below-breakpoint.d.ts +2 -0
  5. package/dist/hooks/use-below-breakpoint.js +17 -0
  6. package/dist/hooks/use-capped-frame.js +1 -0
  7. package/dist/hooks/use-confirm-delete.d.ts +10 -0
  8. package/dist/hooks/use-confirm-delete.js +35 -0
  9. package/dist/hooks/use-css-var-dims.js +1 -0
  10. package/dist/hooks/use-gpu-tier.js +1 -0
  11. package/dist/hooks/use-render-loop.js +1 -0
  12. package/dist/hooks/use-smooth-controls.js +1 -0
  13. package/dist/hooks/use-toast.d.ts +7 -0
  14. package/dist/hooks/use-toast.js +21 -0
  15. package/dist/index.d.ts +11 -1
  16. package/dist/index.js +23 -1
  17. package/dist/ui/basic-page.js +1 -0
  18. package/dist/ui/components/animated-count.js +1 -0
  19. package/dist/ui/components/ascii.js +1 -0
  20. package/dist/ui/components/badge.js +2 -1
  21. package/dist/ui/components/badges/nous-girl.js +1 -0
  22. package/dist/ui/components/blend-mode.js +1 -0
  23. package/dist/ui/components/blink.js +1 -0
  24. package/dist/ui/components/bottom-sheet.d.ts +15 -0
  25. package/dist/ui/components/bottom-sheet.js +192 -0
  26. package/dist/ui/components/button.js +2 -1
  27. package/dist/ui/components/card.d.ts +5 -0
  28. package/dist/ui/components/card.js +74 -0
  29. package/dist/ui/components/checkbox.d.ts +1 -1
  30. package/dist/ui/components/checkbox.js +2 -1
  31. package/dist/ui/components/command-block.js +4 -3
  32. package/dist/ui/components/confirm-dialog.d.ts +13 -0
  33. package/dist/ui/components/confirm-dialog.js +113 -0
  34. package/dist/ui/components/cursor.js +1 -0
  35. package/dist/ui/components/dialog.d.ts +15 -0
  36. package/dist/ui/components/dialog.js +171 -0
  37. package/dist/ui/components/dropdown-menu.js +1 -0
  38. package/dist/ui/components/fit-text/index.js +1 -0
  39. package/dist/ui/components/graphs/bar-chart.js +1 -0
  40. package/dist/ui/components/graphs/index.js +1 -0
  41. package/dist/ui/components/graphs/line-chart.js +1 -0
  42. package/dist/ui/components/graphs/utils.js +1 -0
  43. package/dist/ui/components/grid/index.js +1 -0
  44. package/dist/ui/components/hover-bg.js +1 -0
  45. package/dist/ui/components/icons/arrow.js +1 -0
  46. package/dist/ui/components/icons/check.js +1 -0
  47. package/dist/ui/components/icons/chevron.js +1 -0
  48. package/dist/ui/components/icons/discord.js +1 -0
  49. package/dist/ui/components/icons/eye.js +1 -0
  50. package/dist/ui/components/icons/gear.js +1 -0
  51. package/dist/ui/components/icons/github.js +1 -0
  52. package/dist/ui/components/icons/hamburger.js +1 -0
  53. package/dist/ui/components/icons/heart.js +1 -0
  54. package/dist/ui/components/icons/index.js +1 -0
  55. package/dist/ui/components/icons/link.js +1 -0
  56. package/dist/ui/components/icons/minus.js +1 -0
  57. package/dist/ui/components/icons/search.js +1 -0
  58. package/dist/ui/components/image-distortion.js +1 -0
  59. package/dist/ui/components/input.d.ts +1 -0
  60. package/dist/ui/components/input.js +21 -0
  61. package/dist/ui/components/label.d.ts +1 -0
  62. package/dist/ui/components/label.js +18 -0
  63. package/dist/ui/components/leva-client.js +1 -0
  64. package/dist/ui/components/list-item.js +3 -2
  65. package/dist/ui/components/overlays/blend-modes.js +1 -0
  66. package/dist/ui/components/overlays/glitch.js +1 -0
  67. package/dist/ui/components/overlays/greys.js +1 -0
  68. package/dist/ui/components/overlays/index.js +1 -0
  69. package/dist/ui/components/overlays/lens-layers.js +1 -0
  70. package/dist/ui/components/overlays/lens.js +1 -0
  71. package/dist/ui/components/overlays/noise.js +1 -0
  72. package/dist/ui/components/overlays/vignette.js +1 -0
  73. package/dist/ui/components/poster.js +1 -0
  74. package/dist/ui/components/progress.js +1 -0
  75. package/dist/ui/components/scene-canvas.js +1 -0
  76. package/dist/ui/components/scramble.js +1 -0
  77. package/dist/ui/components/segmented.js +5 -4
  78. package/dist/ui/components/select.js +1 -0
  79. package/dist/ui/components/selection-switcher.js +1 -0
  80. package/dist/ui/components/separator.d.ts +5 -0
  81. package/dist/ui/components/separator.js +22 -0
  82. package/dist/ui/components/shader.js +1 -0
  83. package/dist/ui/components/socials.js +1 -0
  84. package/dist/ui/components/spinner.js +1 -0
  85. package/dist/ui/components/stats.js +2 -1
  86. package/dist/ui/components/switch.js +1 -0
  87. package/dist/ui/components/tabs.js +4 -3
  88. package/dist/ui/components/terminal-demo.js +2 -1
  89. package/dist/ui/components/theme-toggle.js +1 -0
  90. package/dist/ui/components/tier-card.js +2 -1
  91. package/dist/ui/components/toast.d.ts +8 -0
  92. package/dist/ui/components/toast.js +39 -0
  93. package/dist/ui/components/tv.js +1 -0
  94. package/dist/ui/components/typography/h1.js +1 -0
  95. package/dist/ui/components/typography/h2.js +1 -0
  96. package/dist/ui/components/typography/index.js +1 -0
  97. package/dist/ui/components/typography/legend.js +1 -0
  98. package/dist/ui/components/typography/small.js +1 -0
  99. package/dist/ui/components/watchlist.js +2 -1
  100. package/dist/ui/footer.js +1 -0
  101. package/dist/ui/globals.css +47 -3
  102. package/dist/ui/header.js +1 -0
  103. package/dist/ui/layout-wrapper.js +2 -1
  104. package/dist/utils/color.js +1 -0
  105. package/dist/utils/index.js +1 -0
  106. package/dist/utils/poly.js +1 -0
  107. package/package.json +5 -3
  108. package/src/assets/filler-bg0.webp +0 -0
  109. package/src/assets.d.ts +38 -0
  110. package/src/fonts/Collapse-Bold.woff2 +0 -0
  111. package/src/fonts/Collapse-BoldItalic.woff2 +0 -0
  112. package/src/fonts/Collapse-Italic.woff2 +0 -0
  113. package/src/fonts/Collapse-Light.woff2 +0 -0
  114. package/src/fonts/Collapse-LightItalic.woff2 +0 -0
  115. package/src/fonts/Collapse-Regular.woff2 +0 -0
  116. package/src/fonts/Collapse-Thin.woff2 +0 -0
  117. package/src/fonts/Collapse-ThinItalic.woff2 +0 -0
  118. package/src/fonts/Mondwest-Regular.woff2 +0 -0
  119. package/src/fonts/Neuebit-Bold.woff2 +0 -0
  120. package/src/fonts/RulesCompressed-Medium.woff2 +0 -0
  121. package/src/fonts/RulesCompressed-Regular.woff2 +0 -0
  122. package/src/fonts/RulesExpanded-Bold.woff2 +0 -0
  123. package/src/fonts/RulesExpanded-Regular.woff2 +0 -0
  124. package/src/fonts.ts +6 -0
  125. package/src/hooks/use-below-breakpoint.ts +21 -0
  126. package/src/hooks/use-capped-frame.ts +18 -0
  127. package/src/hooks/use-confirm-delete.ts +43 -0
  128. package/src/hooks/use-css-var-dims.ts +39 -0
  129. package/src/hooks/use-gpu-tier.ts +165 -0
  130. package/src/hooks/use-render-loop.ts +121 -0
  131. package/src/hooks/use-smooth-controls.ts +318 -0
  132. package/src/hooks/use-toast.ts +29 -0
  133. package/src/index.ts +130 -0
  134. package/src/ui/basic-page.tsx +34 -0
  135. package/src/ui/build.css +4 -0
  136. package/src/ui/components/animated-count.stories.tsx +67 -0
  137. package/src/ui/components/animated-count.tsx +168 -0
  138. package/src/ui/components/ascii.stories.tsx +30 -0
  139. package/src/ui/components/ascii.tsx +110 -0
  140. package/src/ui/components/badge.stories.tsx +31 -0
  141. package/src/ui/components/badge.tsx +60 -0
  142. package/src/ui/components/badges/nous-girl.tsx +52 -0
  143. package/src/ui/components/blend-mode.stories.tsx +33 -0
  144. package/src/ui/components/blend-mode.tsx +129 -0
  145. package/src/ui/components/blink.stories.tsx +32 -0
  146. package/src/ui/components/blink.tsx +21 -0
  147. package/src/ui/components/bottom-sheet.stories.tsx +43 -0
  148. package/src/ui/components/bottom-sheet.tsx +227 -0
  149. package/src/ui/components/button.stories.tsx +68 -0
  150. package/src/ui/components/button.tsx +170 -0
  151. package/src/ui/components/card.stories.tsx +63 -0
  152. package/src/ui/components/card.tsx +85 -0
  153. package/src/ui/components/checkbox.stories.tsx +113 -0
  154. package/src/ui/components/checkbox.tsx +36 -0
  155. package/src/ui/components/command-block.stories.tsx +52 -0
  156. package/src/ui/components/command-block.tsx +86 -0
  157. package/src/ui/components/confirm-dialog.stories.tsx +91 -0
  158. package/src/ui/components/confirm-dialog.tsx +130 -0
  159. package/src/ui/components/cursor.tsx +115 -0
  160. package/src/ui/components/dialog.stories.tsx +169 -0
  161. package/src/ui/components/dialog.tsx +177 -0
  162. package/src/ui/components/dropdown-menu.stories.tsx +52 -0
  163. package/src/ui/components/dropdown-menu.tsx +117 -0
  164. package/src/ui/components/fit-text/fit-text.css +42 -0
  165. package/src/ui/components/fit-text/index.stories.tsx +33 -0
  166. package/src/ui/components/fit-text/index.tsx +45 -0
  167. package/src/ui/components/forms.stories.tsx +173 -0
  168. package/src/ui/components/graphs/bar-chart.tsx +153 -0
  169. package/src/ui/components/graphs/index.stories.tsx +64 -0
  170. package/src/ui/components/graphs/index.tsx +4 -0
  171. package/src/ui/components/graphs/line-chart.tsx +213 -0
  172. package/src/ui/components/graphs/utils.tsx +265 -0
  173. package/src/ui/components/grid/grid.css +79 -0
  174. package/src/ui/components/grid/index.tsx +19 -0
  175. package/src/ui/components/hover-bg.stories.tsx +29 -0
  176. package/src/ui/components/hover-bg.tsx +15 -0
  177. package/src/ui/components/icons/arrow.tsx +42 -0
  178. package/src/ui/components/icons/check.tsx +14 -0
  179. package/src/ui/components/icons/chevron.tsx +45 -0
  180. package/src/ui/components/icons/discord.tsx +16 -0
  181. package/src/ui/components/icons/eye.tsx +12 -0
  182. package/src/ui/components/icons/gear.tsx +51 -0
  183. package/src/ui/components/icons/github.tsx +16 -0
  184. package/src/ui/components/icons/hamburger.tsx +52 -0
  185. package/src/ui/components/icons/heart.tsx +12 -0
  186. package/src/ui/components/icons/index.ts +12 -0
  187. package/src/ui/components/icons/link.tsx +14 -0
  188. package/src/ui/components/icons/minus.tsx +14 -0
  189. package/src/ui/components/icons/search.tsx +28 -0
  190. package/src/ui/components/image-distortion.stories.tsx +120 -0
  191. package/src/ui/components/image-distortion.tsx +498 -0
  192. package/src/ui/components/input.stories.tsx +39 -0
  193. package/src/ui/components/input.tsx +20 -0
  194. package/src/ui/components/label.stories.tsx +26 -0
  195. package/src/ui/components/label.tsx +16 -0
  196. package/src/ui/components/leva-client.tsx +14 -0
  197. package/src/ui/components/list-item.stories.tsx +83 -0
  198. package/src/ui/components/list-item.tsx +37 -0
  199. package/src/ui/components/overlays/blend-modes.ts +13 -0
  200. package/src/ui/components/overlays/glitch.tsx +243 -0
  201. package/src/ui/components/overlays/greys.tsx +386 -0
  202. package/src/ui/components/overlays/index.tsx +47 -0
  203. package/src/ui/components/overlays/lens-layers.tsx +119 -0
  204. package/src/ui/components/overlays/lens.ts +91 -0
  205. package/src/ui/components/overlays/noise.tsx +174 -0
  206. package/src/ui/components/overlays/vignette.tsx +60 -0
  207. package/src/ui/components/poster.stories.tsx +513 -0
  208. package/src/ui/components/poster.tsx +411 -0
  209. package/src/ui/components/progress.stories.tsx +48 -0
  210. package/src/ui/components/progress.tsx +56 -0
  211. package/src/ui/components/scene-canvas.tsx +254 -0
  212. package/src/ui/components/scramble.stories.tsx +49 -0
  213. package/src/ui/components/scramble.tsx +95 -0
  214. package/src/ui/components/segmented.stories.tsx +101 -0
  215. package/src/ui/components/segmented.tsx +81 -0
  216. package/src/ui/components/select.stories.tsx +88 -0
  217. package/src/ui/components/select.tsx +267 -0
  218. package/src/ui/components/selection-switcher.tsx +44 -0
  219. package/src/ui/components/separator.stories.tsx +33 -0
  220. package/src/ui/components/separator.tsx +24 -0
  221. package/src/ui/components/shader.tsx +83 -0
  222. package/src/ui/components/socials.tsx +42 -0
  223. package/src/ui/components/spinner.stories.tsx +101 -0
  224. package/src/ui/components/spinner.tsx +60 -0
  225. package/src/ui/components/stats.stories.tsx +24 -0
  226. package/src/ui/components/stats.tsx +53 -0
  227. package/src/ui/components/switch.stories.tsx +77 -0
  228. package/src/ui/components/switch.tsx +48 -0
  229. package/src/ui/components/tabs.stories.tsx +101 -0
  230. package/src/ui/components/tabs.tsx +66 -0
  231. package/src/ui/components/terminal-demo.stories.tsx +67 -0
  232. package/src/ui/components/terminal-demo.tsx +189 -0
  233. package/src/ui/components/theme-toggle.stories.tsx +47 -0
  234. package/src/ui/components/theme-toggle.tsx +66 -0
  235. package/src/ui/components/tier-card.stories.tsx +217 -0
  236. package/src/ui/components/tier-card.tsx +190 -0
  237. package/src/ui/components/toast.stories.tsx +55 -0
  238. package/src/ui/components/toast.tsx +49 -0
  239. package/src/ui/components/tv.stories.tsx +37 -0
  240. package/src/ui/components/tv.tsx +257 -0
  241. package/src/ui/components/typography/h1.tsx +18 -0
  242. package/src/ui/components/typography/h2.tsx +18 -0
  243. package/src/ui/components/typography/index.tsx +54 -0
  244. package/src/ui/components/typography/legend.tsx +24 -0
  245. package/src/ui/components/typography/small.tsx +11 -0
  246. package/src/ui/components/watchlist.stories.tsx +33 -0
  247. package/src/ui/components/watchlist.tsx +105 -0
  248. package/src/ui/fonts.css +63 -0
  249. package/src/ui/footer.tsx +111 -0
  250. package/src/ui/globals.css +395 -0
  251. package/src/ui/header.tsx +398 -0
  252. package/src/ui/layout-wrapper.tsx +11 -0
  253. package/src/utils/color.ts +21 -0
  254. package/src/utils/index.ts +62 -0
  255. package/src/utils/poly.ts +26 -0
  256. package/dist/ui/components/modal/index.d.ts +0 -8
  257. package/dist/ui/components/modal/index.js +0 -34
  258. package/dist/ui/components/modal/modal.css +0 -36
@@ -0,0 +1,192 @@
1
+ "use client";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import {
4
+ useEffect,
5
+ useRef,
6
+ useState
7
+ } from "react";
8
+ import { createPortal } from "react-dom";
9
+ import { cn } from "../../utils/index.js";
10
+ import { Typography } from "./typography/index.js";
11
+ const CLOSE_DRAG_MIN_PX = 72;
12
+ const CLOSE_DRAG_RATIO = 0.18;
13
+ const SHEET_TRANSITION_MS = 280;
14
+ export function BottomSheet({
15
+ backdropDismissLabel = "Dismiss",
16
+ children,
17
+ onClose,
18
+ open,
19
+ title
20
+ }) {
21
+ const [renderPortal, setRenderPortal] = useState(open);
22
+ const [entered, setEntered] = useState(false);
23
+ const [dragOffsetPx, setDragOffsetPx] = useState(0);
24
+ const [dragActive, setDragActive] = useState(false);
25
+ const closeTimerRef = useRef(null);
26
+ const sheetRef = useRef(null);
27
+ const dragTrackingRef = useRef(false);
28
+ const dragStartYRef = useRef(0);
29
+ const dragOffsetRef = useRef(0);
30
+ const reducedMotion = typeof window !== "undefined" && window.matchMedia("(prefers-reduced-motion: reduce)").matches;
31
+ const syncDragPx = (next) => {
32
+ dragOffsetRef.current = next;
33
+ setDragOffsetPx(next);
34
+ };
35
+ useEffect(() => {
36
+ if (closeTimerRef.current) {
37
+ clearTimeout(closeTimerRef.current);
38
+ closeTimerRef.current = null;
39
+ }
40
+ const ms = reducedMotion ? 0 : SHEET_TRANSITION_MS;
41
+ let openRafId = 0;
42
+ let exitRafId = 0;
43
+ if (open) {
44
+ openRafId = requestAnimationFrame(() => {
45
+ dragTrackingRef.current = false;
46
+ dragOffsetRef.current = 0;
47
+ setDragActive(false);
48
+ setDragOffsetPx(0);
49
+ setRenderPortal(true);
50
+ requestAnimationFrame(() => {
51
+ requestAnimationFrame(() => setEntered(true));
52
+ });
53
+ });
54
+ } else {
55
+ exitRafId = requestAnimationFrame(() => {
56
+ dragTrackingRef.current = false;
57
+ setDragActive(false);
58
+ setEntered(false);
59
+ closeTimerRef.current = window.setTimeout(() => {
60
+ dragOffsetRef.current = 0;
61
+ setDragOffsetPx(0);
62
+ setRenderPortal(false);
63
+ closeTimerRef.current = null;
64
+ }, ms);
65
+ });
66
+ }
67
+ return () => {
68
+ cancelAnimationFrame(openRafId);
69
+ cancelAnimationFrame(exitRafId);
70
+ if (closeTimerRef.current) {
71
+ clearTimeout(closeTimerRef.current);
72
+ closeTimerRef.current = null;
73
+ }
74
+ };
75
+ }, [open, reducedMotion]);
76
+ useEffect(() => {
77
+ if (!renderPortal) return;
78
+ const prev = document.body.style.overflow;
79
+ document.body.style.overflow = "hidden";
80
+ return () => {
81
+ document.body.style.overflow = prev;
82
+ };
83
+ }, [renderPortal]);
84
+ if (!renderPortal || typeof document === "undefined") return null;
85
+ const durationClass = reducedMotion ? "duration-0" : "duration-[280ms]";
86
+ const draggingVisual = dragActive || dragOffsetPx > 0;
87
+ const onDragPointerDown = (e) => {
88
+ if (reducedMotion || !entered) return;
89
+ if (e.pointerType === "mouse" && e.button !== 0) return;
90
+ dragTrackingRef.current = true;
91
+ setDragActive(true);
92
+ dragStartYRef.current = e.clientY;
93
+ syncDragPx(0);
94
+ e.currentTarget.setPointerCapture(e.pointerId);
95
+ };
96
+ const onDragPointerMove = (e) => {
97
+ if (!dragTrackingRef.current) return;
98
+ const dy = e.clientY - dragStartYRef.current;
99
+ const next = Math.max(0, dy);
100
+ const sheetH = sheetRef.current?.offsetHeight ?? 560;
101
+ syncDragPx(Math.min(next, sheetH));
102
+ };
103
+ const endDrag = (e) => {
104
+ if (!dragTrackingRef.current) return;
105
+ dragTrackingRef.current = false;
106
+ setDragActive(false);
107
+ try {
108
+ e.currentTarget.releasePointerCapture(e.pointerId);
109
+ } catch {
110
+ }
111
+ const sheetH = sheetRef.current?.offsetHeight ?? 560;
112
+ const threshold = Math.max(CLOSE_DRAG_MIN_PX, sheetH * CLOSE_DRAG_RATIO);
113
+ const d = dragOffsetRef.current;
114
+ if (d >= threshold) {
115
+ onClose();
116
+ return;
117
+ }
118
+ syncDragPx(0);
119
+ };
120
+ return createPortal(
121
+ /* @__PURE__ */ jsxs("div", { className: "fixed inset-0 z-[200] flex flex-col justify-end", children: [
122
+ /* @__PURE__ */ jsx(
123
+ "button",
124
+ {
125
+ "aria-label": backdropDismissLabel,
126
+ className: cn(
127
+ "absolute inset-0 bg-black/55 backdrop-blur-[2px]",
128
+ "transition-opacity ease-out motion-reduce:transition-none",
129
+ durationClass,
130
+ entered ? "opacity-100" : "opacity-0"
131
+ ),
132
+ onClick: onClose,
133
+ type: "button"
134
+ }
135
+ ),
136
+ /* @__PURE__ */ jsxs(
137
+ "div",
138
+ {
139
+ "aria-label": title,
140
+ "aria-modal": "true",
141
+ className: cn(
142
+ "relative flex max-h-[85dvh] min-h-0 flex-col rounded-t-xl border border-current/20",
143
+ "bg-background-base/98 pb-[max(1rem,env(safe-area-inset-bottom))]",
144
+ "shadow-[0_-12px_40px_-8px_rgba(0,0,0,0.55)] backdrop-blur-md",
145
+ "ease-out motion-reduce:transition-none transform-gpu",
146
+ draggingVisual ? "transition-none" : cn("transition-transform", durationClass),
147
+ entered ? "translate-y-0" : "translate-y-full"
148
+ ),
149
+ ref: sheetRef,
150
+ role: "dialog",
151
+ style: entered && dragOffsetPx > 0 ? { transform: `translateY(${dragOffsetPx}px)` } : void 0,
152
+ children: [
153
+ /* @__PURE__ */ jsxs(
154
+ "div",
155
+ {
156
+ className: cn(
157
+ "flex shrink-0 flex-col gap-2 border-b border-current/15 px-4 pb-3 pt-2",
158
+ "touch-none select-none",
159
+ reducedMotion ? "cursor-default" : "cursor-grab active:cursor-grabbing"
160
+ ),
161
+ onPointerCancel: endDrag,
162
+ onPointerDown: onDragPointerDown,
163
+ onPointerMove: onDragPointerMove,
164
+ onPointerUp: endDrag,
165
+ children: [
166
+ /* @__PURE__ */ jsx(
167
+ "div",
168
+ {
169
+ "aria-hidden": true,
170
+ className: "mx-auto h-1 w-10 shrink-0 rounded-full bg-current/20"
171
+ }
172
+ ),
173
+ /* @__PURE__ */ jsx(
174
+ Typography,
175
+ {
176
+ className: "text-[0.65rem] tracking-[0.15em] uppercase text-midground/70",
177
+ mondwest: true,
178
+ children: title
179
+ }
180
+ )
181
+ ]
182
+ }
183
+ ),
184
+ /* @__PURE__ */ jsx("div", { className: "min-h-0 flex-1 overflow-y-auto overscroll-contain", children })
185
+ ]
186
+ }
187
+ )
188
+ ] }),
189
+ document.body
190
+ );
191
+ }
192
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiPHN0ZGluPiJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCB7XG4gIHR5cGUgUG9pbnRlckV2ZW50IGFzIFJlYWN0UG9pbnRlckV2ZW50LFxuICB0eXBlIFJlYWN0Tm9kZSxcbiAgdXNlRWZmZWN0LFxuICB1c2VSZWYsXG4gIHVzZVN0YXRlXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSAncmVhY3QtZG9tJ1xuXG5pbXBvcnQgeyBjbiB9IGZyb20gJy4uLy4uL3V0aWxzJ1xuaW1wb3J0IHsgVHlwb2dyYXBoeSB9IGZyb20gJy4vdHlwb2dyYXBoeSdcblxuY29uc3QgQ0xPU0VfRFJBR19NSU5fUFggPSA3MlxuY29uc3QgQ0xPU0VfRFJBR19SQVRJTyA9IDAuMThcbmNvbnN0IFNIRUVUX1RSQU5TSVRJT05fTVMgPSAyODBcblxuLyoqXG4gKiBNb2JpbGUtZmlyc3QgYm90dG9tIHNoZWV0IHdpdGggc2xpZGUgKyBmYWRlIGVudGVyL2V4aXQsIGRyYWctdG8tZGlzbWlzc1xuICogaGFuZGxlLCBib2R5IHNjcm9sbCBsb2NrLCBhbmQgcmVkdWNlZC1tb3Rpb24gc3VwcG9ydC4gUG9ydGFsZWQgdG9cbiAqIGBkb2N1bWVudC5ib2R5YCB0byBlc2NhcGUgYW5jZXN0b3Igc3RhY2tpbmcgY29udGV4dHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBCb3R0b21TaGVldCh7XG4gIGJhY2tkcm9wRGlzbWlzc0xhYmVsID0gJ0Rpc21pc3MnLFxuICBjaGlsZHJlbixcbiAgb25DbG9zZSxcbiAgb3BlbixcbiAgdGl0bGVcbn06IEJvdHRvbVNoZWV0UHJvcHMpIHtcbiAgY29uc3QgW3JlbmRlclBvcnRhbCwgc2V0UmVuZGVyUG9ydGFsXSA9IHVzZVN0YXRlKG9wZW4pXG4gIGNvbnN0IFtlbnRlcmVkLCBzZXRFbnRlcmVkXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbZHJhZ09mZnNldFB4LCBzZXREcmFnT2Zmc2V0UHhdID0gdXNlU3RhdGUoMClcbiAgY29uc3QgW2RyYWdBY3RpdmUsIHNldERyYWdBY3RpdmVdID0gdXNlU3RhdGUoZmFsc2UpXG5cbiAgY29uc3QgY2xvc2VUaW1lclJlZiA9IHVzZVJlZjxSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IG51bGw+KG51bGwpXG4gIGNvbnN0IHNoZWV0UmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCBkcmFnVHJhY2tpbmdSZWYgPSB1c2VSZWYoZmFsc2UpXG4gIGNvbnN0IGRyYWdTdGFydFlSZWYgPSB1c2VSZWYoMClcbiAgY29uc3QgZHJhZ09mZnNldFJlZiA9IHVzZVJlZigwKVxuXG4gIGNvbnN0IHJlZHVjZWRNb3Rpb24gPVxuICAgIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmXG4gICAgd2luZG93Lm1hdGNoTWVkaWEoJyhwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpJykubWF0Y2hlc1xuXG4gIGNvbnN0IHN5bmNEcmFnUHggPSAobmV4dDogbnVtYmVyKSA9PiB7XG4gICAgZHJhZ09mZnNldFJlZi5jdXJyZW50ID0gbmV4dFxuICAgIHNldERyYWdPZmZzZXRQeChuZXh0KVxuICB9XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoY2xvc2VUaW1lclJlZi5jdXJyZW50KSB7XG4gICAgICBjbGVhclRpbWVvdXQoY2xvc2VUaW1lclJlZi5jdXJyZW50KVxuICAgICAgY2xvc2VUaW1lclJlZi5jdXJyZW50ID0gbnVsbFxuICAgIH1cblxuICAgIGNvbnN0IG1zID0gcmVkdWNlZE1vdGlvbiA/IDAgOiBTSEVFVF9UUkFOU0lUSU9OX01TXG5cbiAgICBsZXQgb3BlblJhZklkID0gMFxuICAgIGxldCBleGl0UmFmSWQgPSAwXG5cbiAgICBpZiAob3Blbikge1xuICAgICAgb3BlblJhZklkID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgZHJhZ1RyYWNraW5nUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgICAgICBkcmFnT2Zmc2V0UmVmLmN1cnJlbnQgPSAwXG4gICAgICAgIHNldERyYWdBY3RpdmUoZmFsc2UpXG4gICAgICAgIHNldERyYWdPZmZzZXRQeCgwKVxuICAgICAgICBzZXRSZW5kZXJQb3J0YWwodHJ1ZSlcbiAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gc2V0RW50ZXJlZCh0cnVlKSlcbiAgICAgICAgfSlcbiAgICAgIH0pXG4gICAgfSBlbHNlIHtcbiAgICAgIGV4aXRSYWZJZCA9IHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgIGRyYWdUcmFja2luZ1JlZi5jdXJyZW50ID0gZmFsc2VcbiAgICAgICAgc2V0RHJhZ0FjdGl2ZShmYWxzZSlcbiAgICAgICAgc2V0RW50ZXJlZChmYWxzZSlcbiAgICAgICAgY2xvc2VUaW1lclJlZi5jdXJyZW50ID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIGRyYWdPZmZzZXRSZWYuY3VycmVudCA9IDBcbiAgICAgICAgICBzZXREcmFnT2Zmc2V0UHgoMClcbiAgICAgICAgICBzZXRSZW5kZXJQb3J0YWwoZmFsc2UpXG4gICAgICAgICAgY2xvc2VUaW1lclJlZi5jdXJyZW50ID0gbnVsbFxuICAgICAgICB9LCBtcylcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKG9wZW5SYWZJZClcbiAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKGV4aXRSYWZJZClcbiAgICAgIGlmIChjbG9zZVRpbWVyUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KGNsb3NlVGltZXJSZWYuY3VycmVudClcbiAgICAgICAgY2xvc2VUaW1lclJlZi5jdXJyZW50ID0gbnVsbFxuICAgICAgfVxuICAgIH1cbiAgfSwgW29wZW4sIHJlZHVjZWRNb3Rpb25dKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFyZW5kZXJQb3J0YWwpIHJldHVyblxuICAgIGNvbnN0IHByZXYgPSBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93XG4gICAgZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9ICdoaWRkZW4nXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSBwcmV2XG4gICAgfVxuICB9LCBbcmVuZGVyUG9ydGFsXSlcblxuICBpZiAoIXJlbmRlclBvcnRhbCB8fCB0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnKSByZXR1cm4gbnVsbFxuXG4gIGNvbnN0IGR1cmF0aW9uQ2xhc3MgPSByZWR1Y2VkTW90aW9uID8gJ2R1cmF0aW9uLTAnIDogJ2R1cmF0aW9uLVsyODBtc10nXG4gIGNvbnN0IGRyYWdnaW5nVmlzdWFsID0gZHJhZ0FjdGl2ZSB8fCBkcmFnT2Zmc2V0UHggPiAwXG5cbiAgY29uc3Qgb25EcmFnUG9pbnRlckRvd24gPSAoZTogUmVhY3RQb2ludGVyRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgaWYgKHJlZHVjZWRNb3Rpb24gfHwgIWVudGVyZWQpIHJldHVyblxuICAgIGlmIChlLnBvaW50ZXJUeXBlID09PSAnbW91c2UnICYmIGUuYnV0dG9uICE9PSAwKSByZXR1cm5cblxuICAgIGRyYWdUcmFja2luZ1JlZi5jdXJyZW50ID0gdHJ1ZVxuICAgIHNldERyYWdBY3RpdmUodHJ1ZSlcbiAgICBkcmFnU3RhcnRZUmVmLmN1cnJlbnQgPSBlLmNsaWVudFlcbiAgICBzeW5jRHJhZ1B4KDApXG4gICAgZS5jdXJyZW50VGFyZ2V0LnNldFBvaW50ZXJDYXB0dXJlKGUucG9pbnRlcklkKVxuICB9XG5cbiAgY29uc3Qgb25EcmFnUG9pbnRlck1vdmUgPSAoZTogUmVhY3RQb2ludGVyRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgaWYgKCFkcmFnVHJhY2tpbmdSZWYuY3VycmVudCkgcmV0dXJuXG4gICAgY29uc3QgZHkgPSBlLmNsaWVudFkgLSBkcmFnU3RhcnRZUmVmLmN1cnJlbnRcbiAgICBjb25zdCBuZXh0ID0gTWF0aC5tYXgoMCwgZHkpXG4gICAgY29uc3Qgc2hlZXRIID0gc2hlZXRSZWYuY3VycmVudD8ub2Zmc2V0SGVpZ2h0ID8/IDU2MFxuICAgIHN5bmNEcmFnUHgoTWF0aC5taW4obmV4dCwgc2hlZXRIKSlcbiAgfVxuXG4gIGNvbnN0IGVuZERyYWcgPSAoZTogUmVhY3RQb2ludGVyRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgaWYgKCFkcmFnVHJhY2tpbmdSZWYuY3VycmVudCkgcmV0dXJuXG4gICAgZHJhZ1RyYWNraW5nUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgIHNldERyYWdBY3RpdmUoZmFsc2UpXG4gICAgdHJ5IHtcbiAgICAgIGUuY3VycmVudFRhcmdldC5yZWxlYXNlUG9pbnRlckNhcHR1cmUoZS5wb2ludGVySWQpXG4gICAgfSBjYXRjaCB7XG4gICAgICAvKiBhbHJlYWR5IHJlbGVhc2VkICovXG4gICAgfVxuXG4gICAgY29uc3Qgc2hlZXRIID0gc2hlZXRSZWYuY3VycmVudD8ub2Zmc2V0SGVpZ2h0ID8/IDU2MFxuICAgIGNvbnN0IHRocmVzaG9sZCA9IE1hdGgubWF4KENMT1NFX0RSQUdfTUlOX1BYLCBzaGVldEggKiBDTE9TRV9EUkFHX1JBVElPKVxuICAgIGNvbnN0IGQgPSBkcmFnT2Zmc2V0UmVmLmN1cnJlbnRcblxuICAgIGlmIChkID49IHRocmVzaG9sZCkge1xuICAgICAgb25DbG9zZSgpXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgc3luY0RyYWdQeCgwKVxuICB9XG5cbiAgcmV0dXJuIGNyZWF0ZVBvcnRhbChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImZpeGVkIGluc2V0LTAgei1bMjAwXSBmbGV4IGZsZXgtY29sIGp1c3RpZnktZW5kXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGFyaWEtbGFiZWw9e2JhY2tkcm9wRGlzbWlzc0xhYmVsfVxuICAgICAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgICAgICdhYnNvbHV0ZSBpbnNldC0wIGJnLWJsYWNrLzU1IGJhY2tkcm9wLWJsdXItWzJweF0nLFxuICAgICAgICAgICd0cmFuc2l0aW9uLW9wYWNpdHkgZWFzZS1vdXQgbW90aW9uLXJlZHVjZTp0cmFuc2l0aW9uLW5vbmUnLFxuICAgICAgICAgIGR1cmF0aW9uQ2xhc3MsXG4gICAgICAgICAgZW50ZXJlZCA/ICdvcGFjaXR5LTEwMCcgOiAnb3BhY2l0eS0wJ1xuICAgICAgICApfVxuICAgICAgICBvbkNsaWNrPXtvbkNsb3NlfVxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIC8+XG5cbiAgICAgIDxkaXZcbiAgICAgICAgYXJpYS1sYWJlbD17dGl0bGV9XG4gICAgICAgIGFyaWEtbW9kYWw9XCJ0cnVlXCJcbiAgICAgICAgY2xhc3NOYW1lPXtjbihcbiAgICAgICAgICAncmVsYXRpdmUgZmxleCBtYXgtaC1bODVkdmhdIG1pbi1oLTAgZmxleC1jb2wgcm91bmRlZC10LXhsIGJvcmRlciBib3JkZXItY3VycmVudC8yMCcsXG4gICAgICAgICAgJ2JnLWJhY2tncm91bmQtYmFzZS85OCBwYi1bbWF4KDFyZW0sZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pKV0nLFxuICAgICAgICAgICdzaGFkb3ctWzBfLTEycHhfNDBweF8tOHB4X3JnYmEoMCwwLDAsMC41NSldIGJhY2tkcm9wLWJsdXItbWQnLFxuICAgICAgICAgICdlYXNlLW91dCBtb3Rpb24tcmVkdWNlOnRyYW5zaXRpb24tbm9uZSB0cmFuc2Zvcm0tZ3B1JyxcbiAgICAgICAgICBkcmFnZ2luZ1Zpc3VhbFxuICAgICAgICAgICAgPyAndHJhbnNpdGlvbi1ub25lJ1xuICAgICAgICAgICAgOiBjbigndHJhbnNpdGlvbi10cmFuc2Zvcm0nLCBkdXJhdGlvbkNsYXNzKSxcbiAgICAgICAgICBlbnRlcmVkID8gJ3RyYW5zbGF0ZS15LTAnIDogJ3RyYW5zbGF0ZS15LWZ1bGwnXG4gICAgICAgICl9XG4gICAgICAgIHJlZj17c2hlZXRSZWZ9XG4gICAgICAgIHJvbGU9XCJkaWFsb2dcIlxuICAgICAgICBzdHlsZT17XG4gICAgICAgICAgZW50ZXJlZCAmJiBkcmFnT2Zmc2V0UHggPiAwXG4gICAgICAgICAgICA/IHsgdHJhbnNmb3JtOiBgdHJhbnNsYXRlWSgke2RyYWdPZmZzZXRQeH1weClgIH1cbiAgICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICAgIH1cbiAgICAgID5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICAgICAgICAnZmxleCBzaHJpbmstMCBmbGV4LWNvbCBnYXAtMiBib3JkZXItYiBib3JkZXItY3VycmVudC8xNSBweC00IHBiLTMgcHQtMicsXG4gICAgICAgICAgICAndG91Y2gtbm9uZSBzZWxlY3Qtbm9uZScsXG4gICAgICAgICAgICByZWR1Y2VkTW90aW9uXG4gICAgICAgICAgICAgID8gJ2N1cnNvci1kZWZhdWx0J1xuICAgICAgICAgICAgICA6ICdjdXJzb3ItZ3JhYiBhY3RpdmU6Y3Vyc29yLWdyYWJiaW5nJ1xuICAgICAgICAgICl9XG4gICAgICAgICAgb25Qb2ludGVyQ2FuY2VsPXtlbmREcmFnfVxuICAgICAgICAgIG9uUG9pbnRlckRvd249e29uRHJhZ1BvaW50ZXJEb3dufVxuICAgICAgICAgIG9uUG9pbnRlck1vdmU9e29uRHJhZ1BvaW50ZXJNb3ZlfVxuICAgICAgICAgIG9uUG9pbnRlclVwPXtlbmREcmFnfVxuICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgICAgIGNsYXNzTmFtZT1cIm14LWF1dG8gaC0xIHctMTAgc2hyaW5rLTAgcm91bmRlZC1mdWxsIGJnLWN1cnJlbnQvMjBcIlxuICAgICAgICAgIC8+XG5cbiAgICAgICAgICA8VHlwb2dyYXBoeVxuICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC1bMC42NXJlbV0gdHJhY2tpbmctWzAuMTVlbV0gdXBwZXJjYXNlIHRleHQtbWlkZ3JvdW5kLzcwXCJcbiAgICAgICAgICAgIG1vbmR3ZXN0XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3RpdGxlfVxuICAgICAgICAgIDwvVHlwb2dyYXBoeT5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtaW4taC0wIGZsZXgtMSBvdmVyZmxvdy15LWF1dG8gb3ZlcnNjcm9sbC1jb250YWluXCI+XG4gICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PixcbiAgICBkb2N1bWVudC5ib2R5XG4gIClcbn1cblxuaW50ZXJmYWNlIEJvdHRvbVNoZWV0UHJvcHMge1xuICBiYWNrZHJvcERpc21pc3NMYWJlbD86IHN0cmluZ1xuICBjaGlsZHJlbjogUmVhY3ROb2RlXG4gIG9uQ2xvc2U6ICgpID0+IHZvaWRcbiAgb3BlbjogYm9vbGVhblxuICB0aXRsZTogc3RyaW5nXG59XG4iXSwKICAibWFwcGluZ3MiOiAiO0FBd0pNLGNBaUNFLFlBakNGO0FBdEpOO0FBQUEsRUFHRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMsb0JBQW9CO0FBRTdCLFNBQVMsVUFBVTtBQUNuQixTQUFTLGtCQUFrQjtBQUUzQixNQUFNLG9CQUFvQjtBQUMxQixNQUFNLG1CQUFtQjtBQUN6QixNQUFNLHNCQUFzQjtBQU9yQixnQkFBUyxZQUFZO0FBQUEsRUFDMUIsdUJBQXVCO0FBQUEsRUFDdkI7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFDRixHQUFxQjtBQUNuQixRQUFNLENBQUMsY0FBYyxlQUFlLElBQUksU0FBUyxJQUFJO0FBQ3JELFFBQU0sQ0FBQyxTQUFTLFVBQVUsSUFBSSxTQUFTLEtBQUs7QUFDNUMsUUFBTSxDQUFDLGNBQWMsZUFBZSxJQUFJLFNBQVMsQ0FBQztB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
@@ -10,7 +10,7 @@ const ACTIVE_FILTER = "active:[filter:invert(1)_brightness(calc(100-99*var(--for
10
10
  const buttonVariants = cva(
11
11
  [
12
12
  "group relative grid cursor-pointer grid-cols-[auto_1fr_auto] items-center",
13
- "leading-0 font-bold tracking-[0.2em] uppercase",
13
+ "text-display leading-0 font-bold tracking-[0.2em]",
14
14
  "disabled:pointer-events-none disabled:bg-midground/15 disabled:text-midground disabled:shadow-none"
15
15
  ],
16
16
  {
@@ -144,3 +144,4 @@ export const Button = ({
144
144
  ]
145
145
  }
146
146
  );
147
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiPHN0ZGluPiJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHsgY3ZhLCB0eXBlIFZhcmlhbnRQcm9wcyB9IGZyb20gJ2NsYXNzLXZhcmlhbmNlLWF1dGhvcml0eSdcbmltcG9ydCB7IGNsb25lRWxlbWVudCB9IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgeyBjbiB9IGZyb20gJy4uLy4uL3V0aWxzJ1xuXG5pbXBvcnQgeyBUeXBvZ3JhcGh5IH0gZnJvbSAnLi90eXBvZ3JhcGh5J1xuXG5jb25zdCBTSEFET1dfREVGQVVMVCA9XG4gICdzaGFkb3ctW2luc2V0Xy0xcHhfLTFweF8wXzBfIzAwMDAwMDgwLGluc2V0XzFweF8xcHhfMF8wXyNmZmZmZmY4MF0nXG5jb25zdCBTSEFET1dfSU5WRVJUID1cbiAgJ3NoYWRvdy1baW5zZXRfLTFweF8tMXB4XzBfMF8jMDAwMDAwODAsaW5zZXRfMXB4XzFweF8wXzBfI2ZmZmZmZjI5XSdcbmNvbnN0IFNIQURPV19JTlZFUlRfT1VUTElORUQgPVxuICAnc2hhZG93LVtpbnNldF8tMXB4Xy0xcHhfMF8wXyNmZmZmZmYxMixpbnNldF8xcHhfMXB4XzBfMF8jZmZmZmZmMjldJ1xuY29uc3QgQUNUSVZFX0ZJTFRFUiA9XG4gICdhY3RpdmU6W2ZpbHRlcjppbnZlcnQoMSlfYnJpZ2h0bmVzcyhjYWxjKDEwMC05OSp2YXIoLS1mb3JlZ3JvdW5kLWFscGhhLDApKSldJ1xuXG5jb25zdCBidXR0b25WYXJpYW50cyA9IGN2YShcbiAgW1xuICAgICdncm91cCByZWxhdGl2ZSBncmlkIGN1cnNvci1wb2ludGVyIGdyaWQtY29scy1bYXV0b18xZnJfYXV0b10gaXRlbXMtY2VudGVyJyxcbiAgICAndGV4dC1kaXNwbGF5IGxlYWRpbmctMCBmb250LWJvbGQgdHJhY2tpbmctWzAuMmVtXScsXG4gICAgJ2Rpc2FibGVkOnBvaW50ZXItZXZlbnRzLW5vbmUgZGlzYWJsZWQ6YmctbWlkZ3JvdW5kLzE1IGRpc2FibGVkOnRleHQtbWlkZ3JvdW5kIGRpc2FibGVkOnNoYWRvdy1ub25lJ1xuICBdLFxuICB7XG4gICAgY29tcG91bmRWYXJpYW50czogW1xuICAgICAgLy8gXHUyNTAwXHUyNTAwIGludmVydCBcdTAwRDcgb3V0bGluZWQgbWF0cml4IChkZWZhdWx0IHN1cmZhY2UsIG5vIGdob3N0L2Rlc3RydWN0aXZlKSBcdTI1MDBcdTI1MDBcbiAgICAgIHtcbiAgICAgICAgY2xhc3M6IGBiZy1taWRncm91bmQgdGV4dC1iYWNrZ3JvdW5kLWJhc2UgYWN0aXZlOmludmVydCAke1NIQURPV19ERUZBVUxUfWAsXG4gICAgICAgIGRlc3RydWN0aXZlOiBmYWxzZSxcbiAgICAgICAgZ2hvc3Q6IGZhbHNlLFxuICAgICAgICBpbnZlcnQ6IGZhbHNlLFxuICAgICAgICBvdXRsaW5lZDogZmFsc2VcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzOiBgYmctbWlkZ3JvdW5kLzE1IHRleHQtbWlkZ3JvdW5kICR7U0hBRE9XX0lOVkVSVH0gJHtBQ1RJVkVfRklMVEVSfWAsXG4gICAgICAgIGRlc3RydWN0aXZlOiBmYWxzZSxcbiAgICAgICAgZ2hvc3Q6IGZhbHNlLFxuICAgICAgICBpbnZlcnQ6IHRydWUsXG4gICAgICAgIG91dGxpbmVkOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3M6IGBzaGFkb3ctbWlkZ3JvdW5kICR7U0hBRE9XX0RFRkFVTFR9ICR7QUNUSVZFX0ZJTFRFUn1gLFxuICAgICAgICBkZXN0cnVjdGl2ZTogZmFsc2UsXG4gICAgICAgIGdob3N0OiBmYWxzZSxcbiAgICAgICAgaW52ZXJ0OiBmYWxzZSxcbiAgICAgICAgb3V0bGluZWQ6IHRydWVcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzOiBgJHtTSEFET1dfSU5WRVJUX09VVExJTkVEfSAke0FDVElWRV9GSUxURVJ9YCxcbiAgICAgICAgZGVzdHJ1Y3RpdmU6IGZhbHNlLFxuICAgICAgICBnaG9zdDogZmFsc2UsXG4gICAgICAgIGludmVydDogdHJ1ZSxcbiAgICAgICAgb3V0bGluZWQ6IHRydWVcbiAgICAgIH0sXG4gICAgICAvLyBcdTI1MDBcdTI1MDAgZ2hvc3Q6IG5vIGNocm9tZSwgaG92ZXIgYmcgb25seSBcdTI1MDBcdTI1MDBcbiAgICAgIHtcbiAgICAgICAgY2xhc3M6ICdiZy10cmFuc3BhcmVudCB0ZXh0LWN1cnJlbnQgaG92ZXI6YmctbWlkZ3JvdW5kLzEwIHNoYWRvdy1ub25lJyxcbiAgICAgICAgZGVzdHJ1Y3RpdmU6IGZhbHNlLFxuICAgICAgICBnaG9zdDogdHJ1ZVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3M6XG4gICAgICAgICAgJ2JnLXRyYW5zcGFyZW50IHRleHQtZGVzdHJ1Y3RpdmUgaG92ZXI6YmctZGVzdHJ1Y3RpdmUvMTAgc2hhZG93LW5vbmUnLFxuICAgICAgICBkZXN0cnVjdGl2ZTogdHJ1ZSxcbiAgICAgICAgZ2hvc3Q6IHRydWVcbiAgICAgIH0sXG4gICAgICAvLyBcdTI1MDBcdTI1MDAgc29saWQgZGVzdHJ1Y3RpdmUgXHUyNTAwXHUyNTAwXG4gICAgICB7XG4gICAgICAgIGNsYXNzOiBgYmctZGVzdHJ1Y3RpdmUgdGV4dC1kZXN0cnVjdGl2ZS1mb3JlZ3JvdW5kIGhvdmVyOmJnLWRlc3RydWN0aXZlLzkwICR7U0hBRE9XX0lOVkVSVH1gLFxuICAgICAgICBkZXN0cnVjdGl2ZTogdHJ1ZSxcbiAgICAgICAgZ2hvc3Q6IGZhbHNlLFxuICAgICAgICBvdXRsaW5lZDogZmFsc2VcbiAgICAgIH0sXG4gICAgICAvLyBcdTI1MDBcdTI1MDAgb3V0bGluZWQgZGVzdHJ1Y3RpdmUgXHUyNTAwXHUyNTAwXG4gICAgICB7XG4gICAgICAgIGNsYXNzOlxuICAgICAgICAgICdib3JkZXIgYm9yZGVyLWRlc3RydWN0aXZlLzQwIGJnLXRyYW5zcGFyZW50IHRleHQtZGVzdHJ1Y3RpdmUgaG92ZXI6YmctZGVzdHJ1Y3RpdmUvMTAgc2hhZG93LW5vbmUnLFxuICAgICAgICBkZXN0cnVjdGl2ZTogdHJ1ZSxcbiAgICAgICAgZ2hvc3Q6IGZhbHNlLFxuICAgICAgICBvdXRsaW5lZDogdHJ1ZVxuICAgICAgfVxuICAgIF0sXG4gICAgZGVmYXVsdFZhcmlhbnRzOiB7XG4gICAgICBkZXN0cnVjdGl2ZTogZmFsc2UsXG4gICAgICBnaG9zdDogZmFsc2UsXG4gICAgICBpbnZlcnQ6IGZhbHNlLFxuICAgICAgb3V0bGluZWQ6IGZhbHNlLFxuICAgICAgc2l6ZTogJ2RlZmF1bHQnXG4gICAgfSxcbiAgICB2YXJpYW50czoge1xuICAgICAgZGVzdHJ1Y3RpdmU6IHsgdHJ1ZTogJycgfSxcbiAgICAgIGdob3N0OiB7IHRydWU6ICcnIH0sXG4gICAgICBpbnZlcnQ6IHsgdHJ1ZTogJycgfSxcbiAgICAgIG91dGxpbmVkOiB7IHRydWU6ICd0ZXh0LW1pZGdyb3VuZCBiZy10cmFuc3BhcmVudCcgfSxcbiAgICAgIHNpemU6IHtcbiAgICAgICAgZGVmYXVsdDogJ3B4LVsuOWVtXy43NWVtXSBweS1bMS4yNWVtXScsXG4gICAgICAgIGljb246ICdwLTIgYXNwZWN0LXNxdWFyZSBncmlkLWNvbHMtMSBwbGFjZS1pdGVtcy1jZW50ZXIgWyY+c3ZnXTpzaXplLTMuNScsXG4gICAgICAgIHNtOiAncHgtMyBweS0xLjUgdGV4dC1bMC43cmVtXSB0cmFja2luZy1bMC4xNWVtXSBbJj5zdmddOnNpemUtMycsXG4gICAgICAgIHhzOiAncC0xIGFzcGVjdC1zcXVhcmUgZ3JpZC1jb2xzLTEgcGxhY2UtaXRlbXMtY2VudGVyIFsmPnN2Z106c2l6ZS0zJ1xuICAgICAgfVxuICAgIH1cbiAgfVxuKVxuXG5jb25zdCBJY29uU2xvdCA9ICh7XG4gIGljb24sXG4gIHNpZGVcbn06IHtcbiAgaWNvbjogUmVhY3QuUmVhY3ROb2RlXG4gIHNpZGU6ICdsZWZ0JyB8ICdyaWdodCdcbn0pID0+IChcbiAgPD5cbiAgICA8c3BhbiBjbGFzc05hbWU9XCJ3LTVcIiAvPlxuXG4gICAgPHNwYW5cbiAgICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICAgICdhYnNvbHV0ZSB0b3AtMS8yIC10cmFuc2xhdGUteS0xLzInLFxuICAgICAgICBzaWRlID09PSAnbGVmdCcgPyAnbGVmdC0zJyA6ICdyaWdodC0zJ1xuICAgICAgKX1cbiAgICA+XG4gICAgICB7dHlwZW9mIGljb24gPT09ICdvYmplY3QnXG4gICAgICAgID8gY2xvbmVFbGVtZW50KGljb24gYXMgUmVhY3QuUmVhY3RFbGVtZW50PGFueT4sIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3NpemUtMy41J1xuICAgICAgICAgIH0pXG4gICAgICAgIDogaWNvbn1cbiAgICA8L3NwYW4+XG4gIDwvPlxuKVxuXG5leHBvcnQgY29uc3QgQnV0dG9uID0gKHtcbiAgY2hpbGRyZW4sXG4gIGNsYXNzTmFtZSxcbiAgZGVzdHJ1Y3RpdmUsXG4gIGdob3N0LFxuICBpbnZlcnQsXG4gIG91dGxpbmVkLFxuICBwcmVmaXgsXG4gIHNpemUsXG4gIHN1ZmZpeCxcbiAgLi4ucHJvcHNcbn06IEJ1dHRvblByb3BzKSA9PiAoXG4gIDxUeXBvZ3JhcGh5XG4gICAgYXM9XCJidXR0b25cIlxuICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICBidXR0b25WYXJpYW50cyh7IGRlc3RydWN0aXZlLCBnaG9zdCwgaW52ZXJ0LCBvdXRsaW5lZCwgc2l6ZSB9KSxcbiAgICAgIGNsYXNzTmFtZVxuICAgICl9XG4gICAgbW9ub1xuICAgIHsuLi5wcm9wc31cbiAgPlxuICAgIHshZ2hvc3QgJiYgKFxuICAgICAgPHNwYW5cbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgY2xhc3NOYW1lPVwiYXJjLWJvcmRlciBvcGFjaXR5LTAgdHJhbnNpdGlvbi1vcGFjaXR5IGR1cmF0aW9uLTIwMCBncm91cC1ob3ZlcjpvcGFjaXR5LTEwMCBncm91cC1mb2N1cy12aXNpYmxlOm9wYWNpdHktMTAwIGdyb3VwLWFjdGl2ZTpvcGFjaXR5LTEwMFwiXG4gICAgICAvPlxuICAgICl9XG4gICAge3ByZWZpeCAmJiA8SWNvblNsb3QgaWNvbj17cHJlZml4fSBzaWRlPVwibGVmdFwiIC8+fVxuICAgIHtjaGlsZHJlbn1cbiAgICB7c3VmZml4ICYmIDxJY29uU2xvdCBpY29uPXtzdWZmaXh9IHNpZGU9XCJyaWdodFwiIC8+fVxuICA8L1R5cG9ncmFwaHk+XG4pXG5cbmludGVyZmFjZSBCdXR0b25Qcm9wc1xuICBleHRlbmRzIE9taXQ8XG4gICAgICBSZWFjdC5CdXR0b25IVE1MQXR0cmlidXRlczxIVE1MQnV0dG9uRWxlbWVudD4sXG4gICAgICAncHJlZml4JyB8ICdzdWZmaXgnXG4gICAgPixcbiAgICBWYXJpYW50UHJvcHM8dHlwZW9mIGJ1dHRvblZhcmlhbnRzPiB7XG4gIHByZWZpeD86IFJlYWN0LlJlYWN0Tm9kZVxuICBzdWZmaXg/OiBSZWFjdC5SZWFjdE5vZGVcbn1cbiJdLAogICJtYXBwaW5ncyI6ICJBQThHRSxtQkFDRSxLQURGO0FBOUdGLFNBQVMsV0FBOEI7QUFDdkMsU0FBUyxvQkFBb0I7QUFFN0IsU0FBUyxVQUFVO0FBRW5CLFNBQVMsa0JBQWtCO0FBRTNCLE1BQU0saUJBQ0o7QUFDRixNQUFNLGdCQUNKO0FBQ0YsTUFBTSx5QkFDSjtBQUNGLE1BQU0sZ0JBQ0o7QUFFRixNQUFNLGlCQUFpQjtBQUFBLEVBQ3JCO0FBQUEsSUFDRTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsRUFDRjtBQUFBLEVBQ0E7QUFBQSxJQUNFLGtCQUFrQjtBQUFBO0FBQUEsTUFFaEI7QUFBQSxRQUNFLE9BQU8sbURBQW1ELGNBQWM7QUFBQSxRQUN4RSxhQUFhO0FBQUEsUUFDYixPQUFPO0FBQUEsUUFDUCxRQUFRO0FBQUEsUUFDUixVQUFVO0FBQUEsTUFDWjtBQUFBLE1BQ0E7QUFBQSxRQUNFLE9BQU8sa0NBQWtDLGFBQWEsSUFBSSxhQUFhO0FBQUEsUUFDdkUsYUFBYTtBQUFBLFFBQ2IsT0FBTztBQUFBLFFBQ1AsUUFBUTtBQUFBLFFBQ1IsVUFBVTtBQUFBLE1BQ1o7QUFBQSxNQUNBO0FBQUEsUUFDRSxPQUFPLG9CQUFvQixjQUFjLElBQUksYUFBYTtB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
@@ -0,0 +1,5 @@
1
+ export declare function Card({ className, style, ...props }: React.HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
2
+ export declare function CardHeader({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
3
+ export declare function CardTitle({ className, ...props }: React.HTMLAttributes<HTMLHeadingElement>): import("react").JSX.Element;
4
+ export declare function CardDescription({ className, ...props }: React.HTMLAttributes<HTMLParagraphElement>): import("react").JSX.Element;
5
+ export declare function CardContent({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
@@ -0,0 +1,74 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { cn } from "../../utils/index.js";
3
+ const CARD_STYLE = {
4
+ background: "var(--component-card-background)",
5
+ borderImage: "var(--component-card-border-image)",
6
+ boxShadow: "var(--component-card-box-shadow)",
7
+ clipPath: "var(--component-card-clip-path)"
8
+ };
9
+ export function Card({
10
+ className,
11
+ style,
12
+ ...props
13
+ }) {
14
+ return /* @__PURE__ */ jsx(
15
+ "div",
16
+ {
17
+ className: cn(
18
+ "border border-midground/15 bg-background-base/80 text-midground w-full",
19
+ className
20
+ ),
21
+ style: { ...CARD_STYLE, ...style },
22
+ ...props
23
+ }
24
+ );
25
+ }
26
+ export function CardHeader({
27
+ className,
28
+ ...props
29
+ }) {
30
+ return /* @__PURE__ */ jsx(
31
+ "div",
32
+ {
33
+ className: cn(
34
+ "flex flex-col gap-1.5 p-4 border-b border-midground/15",
35
+ className
36
+ ),
37
+ ...props
38
+ }
39
+ );
40
+ }
41
+ export function CardTitle({
42
+ className,
43
+ ...props
44
+ }) {
45
+ return /* @__PURE__ */ jsx(
46
+ "h3",
47
+ {
48
+ className: cn(
49
+ "font-expanded text-sm font-bold tracking-[0.08em] uppercase",
50
+ className
51
+ ),
52
+ ...props
53
+ }
54
+ );
55
+ }
56
+ export function CardDescription({
57
+ className,
58
+ ...props
59
+ }) {
60
+ return /* @__PURE__ */ jsx(
61
+ "p",
62
+ {
63
+ className: cn("font-mondwest text-xs text-midground/60", className),
64
+ ...props
65
+ }
66
+ );
67
+ }
68
+ export function CardContent({
69
+ className,
70
+ ...props
71
+ }) {
72
+ return /* @__PURE__ */ jsx("div", { className: cn("p-4", className), ...props });
73
+ }
74
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiPHN0ZGluPiJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHsgY24gfSBmcm9tICcuLi8uLi91dGlscydcblxuLyoqXG4gKiBUaGVtZWFibGUgY2FyZCBwcmltaXRpdmUuIFRoZW1lcyBjYW4gcmVzdHlsZSBldmVyeSBjYXJkIGJ5IHNldHRpbmcgQ1NTXG4gKiBjdXN0b20gcHJvcGVydGllczpcbiAqXG4gKiAgIC0tY29tcG9uZW50LWNhcmQtY2xpcC1wYXRoXG4gKiAgIC0tY29tcG9uZW50LWNhcmQtYm9yZGVyLWltYWdlXG4gKiAgIC0tY29tcG9uZW50LWNhcmQtYmFja2dyb3VuZFxuICogICAtLWNvbXBvbmVudC1jYXJkLWJveC1zaGFkb3dcbiAqXG4gKiBBbGwgYXJlIG9wdGlvbmFsIFx1MjAxNCB1bnNldCB2YXJzIGNvbXB1dGUgdG8gdGhlaXIgQ1NTIGluaXRpYWwgdmFsdWUuXG4gKi9cbmNvbnN0IENBUkRfU1RZTEU6IFJlYWN0LkNTU1Byb3BlcnRpZXMgPSB7XG4gIGJhY2tncm91bmQ6ICd2YXIoLS1jb21wb25lbnQtY2FyZC1iYWNrZ3JvdW5kKScsXG4gIGJvcmRlckltYWdlOiAndmFyKC0tY29tcG9uZW50LWNhcmQtYm9yZGVyLWltYWdlKScsXG4gIGJveFNoYWRvdzogJ3ZhcigtLWNvbXBvbmVudC1jYXJkLWJveC1zaGFkb3cpJyxcbiAgY2xpcFBhdGg6ICd2YXIoLS1jb21wb25lbnQtY2FyZC1jbGlwLXBhdGgpJ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gQ2FyZCh7XG4gIGNsYXNzTmFtZSxcbiAgc3R5bGUsXG4gIC4uLnByb3BzXG59OiBSZWFjdC5IVE1MQXR0cmlidXRlczxIVE1MRGl2RWxlbWVudD4pIHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgICAnYm9yZGVyIGJvcmRlci1taWRncm91bmQvMTUgYmctYmFja2dyb3VuZC1iYXNlLzgwIHRleHQtbWlkZ3JvdW5kIHctZnVsbCcsXG4gICAgICAgIGNsYXNzTmFtZVxuICAgICAgKX1cbiAgICAgIHN0eWxlPXt7IC4uLkNBUkRfU1RZTEUsIC4uLnN0eWxlIH19XG4gICAgICB7Li4ucHJvcHN9XG4gICAgLz5cbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gQ2FyZEhlYWRlcih7XG4gIGNsYXNzTmFtZSxcbiAgLi4ucHJvcHNcbn06IFJlYWN0LkhUTUxBdHRyaWJ1dGVzPEhUTUxEaXZFbGVtZW50Pikge1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICAgICdmbGV4IGZsZXgtY29sIGdhcC0xLjUgcC00IGJvcmRlci1iIGJvcmRlci1taWRncm91bmQvMTUnLFxuICAgICAgICBjbGFzc05hbWVcbiAgICAgICl9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgLz5cbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gQ2FyZFRpdGxlKHtcbiAgY2xhc3NOYW1lLFxuICAuLi5wcm9wc1xufTogUmVhY3QuSFRNTEF0dHJpYnV0ZXM8SFRNTEhlYWRpbmdFbGVtZW50Pikge1xuICByZXR1cm4gKFxuICAgIDxoM1xuICAgICAgY2xhc3NOYW1lPXtjbihcbiAgICAgICAgJ2ZvbnQtZXhwYW5kZWQgdGV4dC1zbSBmb250LWJvbGQgdHJhY2tpbmctWzAuMDhlbV0gdXBwZXJjYXNlJyxcbiAgICAgICAgY2xhc3NOYW1lXG4gICAgICApfVxuICAgICAgey4uLnByb3BzfVxuICAgIC8+XG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIENhcmREZXNjcmlwdGlvbih7XG4gIGNsYXNzTmFtZSxcbiAgLi4ucHJvcHNcbn06IFJlYWN0LkhUTUxBdHRyaWJ1dGVzPEhUTUxQYXJhZ3JhcGhFbGVtZW50Pikge1xuICByZXR1cm4gKFxuICAgIDxwXG4gICAgICBjbGFzc05hbWU9e2NuKCdmb250LW1vbmR3ZXN0IHRleHQteHMgdGV4dC1taWRncm91bmQvNjAnLCBjbGFzc05hbWUpfVxuICAgICAgey4uLnByb3BzfVxuICAgIC8+XG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIENhcmRDb250ZW50KHtcbiAgY2xhc3NOYW1lLFxuICAuLi5wcm9wc1xufTogUmVhY3QuSFRNTEF0dHJpYnV0ZXM8SFRNTERpdkVsZW1lbnQ+KSB7XG4gIHJldHVybiA8ZGl2IGNsYXNzTmFtZT17Y24oJ3AtNCcsIGNsYXNzTmFtZSl9IHsuLi5wcm9wc30gLz5cbn1cbiJdLAogICJtYXBwaW5ncyI6ICJBQTBCSTtBQTFCSixTQUFTLFVBQVU7QUFhbkIsTUFBTSxhQUFrQztBQUFBLEVBQ3RDLFlBQVk7QUFBQSxFQUNaLGFBQWE7QUFBQSxFQUNiLFdBQVc7QUFBQSxFQUNYLFVBQVU7QUFDWjtBQUVPLGdCQUFTLEtBQUs7QUFBQSxFQUNuQjtBQUFBLEVBQ0E7QUFBQSxFQUNBLEdBQUc7QUFDTCxHQUF5QztBQUN2QyxTQUNFO0FBQUEsSUFBQztBQUFBO0FBQUEsTUFDQyxXQUFXO0FBQUEsUUFDVDtBQUFBLFFBQ0E7QUFBQSxNQUNGO0FBQUEsTUFDQSxPQUFPLEVBQUUsR0FBRyxZQUFZLEdBQUcsTUFBTTtBQUFBLE1BQ2hDLEdBQUc7QUFBQTtBQUFBLEVBQ047QUFFSjtBQUVPLGdCQUFTLFdBQVc7QUFBQSxFQUN6QjtBQUFBLEVBQ0EsR0FBRztBQUNMLEdBQXlDO0FBQ3ZDLFNBQ0U7QUFBQSxJQUFDO0FBQUE7QUFBQSxNQUNDLFdBQVc7QUFBQSxRQUNUO0FBQUEsUUFDQTtBQUFBLE1BQ0Y7QUFBQSxNQUNDLEdBQUc7QUFBQTtBQUFBLEVBQ047QUFFSjtBQUVPLGdCQUFTLFVBQVU7QUFBQSxFQUN4QjtBQUFBLEVBQ0EsR0FBRztBQUNMLEdBQTZDO0FBQzNDLFNBQ0U7QUFBQSxJQUFDO0FBQUE7QUFBQSxNQUNDLFdBQVc7QUFBQSxRQUNUO0FBQUEsUUFDQTtBQUFBLE1BQ0Y7QUFBQSxNQUNDLEdBQUc7QUFBQTtBQUFBLEVBQ047QUFFSjtBQUVPLGdCQUFTLGdCQUFnQjtBQUFBLEVBQzlCO0FBQUEsRUFDQSxHQUFHO0FBQ0wsR0FBK0M7QUFDN0MsU0FDRTtBQUFBLElBQUM7QUFBQTtBQUFBLE1BQ0MsV0FBVyxHQUFHLDJDQUEyQyxTQUFTO0FBQUEsTUFDakUsR0FBRztBQUFBO0FBQUEsRUFDTjtBQUVKO0FBRU8sZ0JBQVMsWUFBWTtBQUFBLEVBQzFCO0FBQUEsRUFDQSxHQUFHO0FBQ0wsR0FBeUM7QUFDdkMsU0FBTyxvQkFBQyxTQUFJLFdBQVcsR0FBRyxPQUFPLFNBQVMsR0FBSSxHQUFHLE9BQU87QUFDMUQ7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -1,2 +1,2 @@
1
- import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
1
+ import { Checkbox as CheckboxPrimitive } from 'radix-ui';
2
2
  export declare const Checkbox: import("react").ForwardRefExoticComponent<Omit<CheckboxPrimitive.CheckboxProps & import("react").RefAttributes<HTMLButtonElement>, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { jsx } from "react/jsx-runtime";
3
- import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
4
3
  import { forwardRef } from "react";
4
+ import { Checkbox as CheckboxPrimitive } from "radix-ui";
5
5
  import { cn } from "../../utils/index.js";
6
6
  import { CheckIcon } from "./icons/check.js";
7
7
  export const Checkbox = forwardRef(function Checkbox2({ className, ...props }, ref) {
@@ -24,3 +24,4 @@ export const Checkbox = forwardRef(function Checkbox2({ className, ...props }, r
24
24
  }
25
25
  );
26
26
  });
27
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiPHN0ZGluPiJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCB7IGZvcndhcmRSZWYsIHR5cGUgQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmLCB0eXBlIEVsZW1lbnRSZWYgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IENoZWNrYm94IGFzIENoZWNrYm94UHJpbWl0aXZlIH0gZnJvbSAncmFkaXgtdWknXG5cbmltcG9ydCB7IGNuIH0gZnJvbSAnLi4vLi4vdXRpbHMnXG5cbmltcG9ydCB7IENoZWNrSWNvbiB9IGZyb20gJy4vaWNvbnMvY2hlY2snXG5cbmV4cG9ydCBjb25zdCBDaGVja2JveCA9IGZvcndhcmRSZWY8XG4gIEVsZW1lbnRSZWY8dHlwZW9mIENoZWNrYm94UHJpbWl0aXZlLlJvb3Q+LFxuICBDaGVja2JveFByb3BzXG4+KGZ1bmN0aW9uIENoZWNrYm94KHsgY2xhc3NOYW1lLCAuLi5wcm9wcyB9LCByZWYpIHtcbiAgcmV0dXJuIChcbiAgICA8Q2hlY2tib3hQcmltaXRpdmUuUm9vdFxuICAgICAgY2xhc3NOYW1lPXtjbihcbiAgICAgICAgJ3BlZXIgZmxleCBoLTQgdy00IHNocmluay0wIGN1cnNvci1wb2ludGVyIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBib3JkZXIgdHJhbnNpdGlvbi1jb2xvcnMgb3V0bGluZS1ub25lJyxcbiAgICAgICAgJ2ZvY3VzLXZpc2libGU6cmluZy0xIGZvY3VzLXZpc2libGU6cmluZy1taWRncm91bmQvMzAnLFxuICAgICAgICAnZGlzYWJsZWQ6Y3Vyc29yLW5vdC1hbGxvd2VkIGRpc2FibGVkOm9wYWNpdHktNTAnLFxuICAgICAgICAnZGF0YS1bc3RhdGU9dW5jaGVja2VkXTpib3JkZXItbWlkZ3JvdW5kLzIwIGRhdGEtW3N0YXRlPXVuY2hlY2tlZF06YmctYmFja2dyb3VuZCcsXG4gICAgICAgICdkYXRhLVtzdGF0ZT11bmNoZWNrZWRdOmhvdmVyOmJvcmRlci1taWRncm91bmQvMzAnLFxuICAgICAgICAnZGF0YS1bc3RhdGU9Y2hlY2tlZF06Ym9yZGVyLW1pZGdyb3VuZC8zMCBkYXRhLVtzdGF0ZT1jaGVja2VkXTpiZy1taWRncm91bmQvMTUnLFxuICAgICAgICAnZGF0YS1bc3RhdGU9aW5kZXRlcm1pbmF0ZV06Ym9yZGVyLW1pZGdyb3VuZC8zMCBkYXRhLVtzdGF0ZT1pbmRldGVybWluYXRlXTpiZy1taWRncm91bmQvMTUnLFxuICAgICAgICBjbGFzc05hbWVcbiAgICAgICl9XG4gICAgICByZWY9e3JlZn1cbiAgICAgIHsuLi5wcm9wc31cbiAgICA+XG4gICAgICA8Q2hlY2tib3hQcmltaXRpdmUuSW5kaWNhdG9yIGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHRleHQtY3VycmVudFwiPlxuICAgICAgICA8Q2hlY2tJY29uIGNsYXNzTmFtZT1cImgtMyB3LTMgdGV4dC1taWRncm91bmRcIiAvPlxuICAgICAgPC9DaGVja2JveFByaW1pdGl2ZS5JbmRpY2F0b3I+XG4gICAgPC9DaGVja2JveFByaW1pdGl2ZS5Sb290PlxuICApXG59KVxuXG50eXBlIENoZWNrYm94UHJvcHMgPSBDb21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIENoZWNrYm94UHJpbWl0aXZlLlJvb3Q+XG4iXSwKICAibWFwcGluZ3MiOiAiO0FBNkJRO0FBM0JSLFNBQVMsa0JBQWtFO0FBQzNFLFNBQVMsWUFBWSx5QkFBeUI7QUFFOUMsU0FBUyxVQUFVO0FBRW5CLFNBQVMsaUJBQWlCO0FBRW5CLGFBQU0sV0FBVyxXQUd0QixTQUFTQSxVQUFTLEVBQUUsV0FBVyxHQUFHLE1BQU0sR0FBRyxLQUFLO0FBQ2hELFNBQ0U7QUFBQSxJQUFDLGtCQUFrQjtBQUFBLElBQWxCO0FBQUEsTUFDQyxXQUFXO0FBQUEsUUFDVDtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxNQUNGO0FBQUEsTUFDQTtBQUFBLE1BQ0MsR0FBRztBQUFBLE1BRUosOEJBQUMsa0JBQWtCLFdBQWxCLEVBQTRCLFdBQVUsaURBQ3JDLDhCQUFDLGFBQVUsV0FBVSwwQkFBeUIsR0FDaEQ7QUFBQTtBQUFBLEVBQ0Y7QUFFSixDQUFDOyIsCiAgIm5hbWVzIjogWyJDaGVja2JveCJdCn0K
@@ -22,11 +22,11 @@ export function CopyButton({
22
22
  "button",
23
23
  {
24
24
  className: cn(
25
- "font-courier cursor-pointer border-none bg-transparent text-[0.6875rem]",
26
- "tracking-widest uppercase",
25
+ "font-courier text-display cursor-pointer border-none bg-transparent text-xs",
26
+ "tracking-widest",
27
27
  "hover:text-midground tap-highlight-transparent transition-colors",
28
28
  "flex items-center justify-center",
29
- copied ? "text-midground" : "text-current opacity-60",
29
+ copied ? "text-midground" : "text-text-secondary",
30
30
  className
31
31
  ),
32
32
  onClick: handleCopy,
@@ -53,3 +53,4 @@ export function CommandBlock({ className, code, label }) {
53
53
  )
54
54
  ] });
55
55
  }
56
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiPHN0ZGluPiJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgeyBjbiB9IGZyb20gJy4uLy4uL3V0aWxzJ1xuXG5pbXBvcnQgeyBTbWFsbCB9IGZyb20gJy4vdHlwb2dyYXBoeS9zbWFsbCdcblxuLyoqXG4gKiBBIFwiY29weSB0byBjbGlwYm9hcmRcIiBidXR0b24gdGhhdCBicmllZmx5IHNob3dzIGEgXCJDb3BpZWQhXCIgY29uZmlybWF0aW9uLlxuICogRGVzaWduZWQgdG8gc2l0IGFsb25nc2lkZSBhIHNob3J0IGNvbW1hbmQgc3RyaW5nLCBub3QgYXMgYSBnZW5lcmFsIGJ1dHRvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIENvcHlCdXR0b24oe1xuICBjaGlsZHJlbixcbiAgY2xhc3NOYW1lLFxuICBjb3BpZWRMYWJlbCA9ICdDb3BpZWQhJyxcbiAgbGFiZWwgPSAnQ29weScsXG4gIHJlc2V0RGVsYXlNcyA9IDIwMDAsXG4gIHRleHRcbn06IENvcHlCdXR0b25Qcm9wcykge1xuICBjb25zdCBbY29waWVkLCBzZXRDb3BpZWRdID0gdXNlU3RhdGUoZmFsc2UpXG5cbiAgY29uc3QgaGFuZGxlQ29weSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICB2b2lkIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHRleHQpLnRoZW4oKCkgPT4ge1xuICAgICAgc2V0Q29waWVkKHRydWUpXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHNldENvcGllZChmYWxzZSksIHJlc2V0RGVsYXlNcylcbiAgICB9KVxuICB9LCBbcmVzZXREZWxheU1zLCB0ZXh0XSlcblxuICByZXR1cm4gKFxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICAgICdmb250LWNvdXJpZXIgdGV4dC1kaXNwbGF5IGN1cnNvci1wb2ludGVyIGJvcmRlci1ub25lIGJnLXRyYW5zcGFyZW50IHRleHQteHMnLFxuICAgICAgICAndHJhY2tpbmctd2lkZXN0JyxcbiAgICAgICAgJ2hvdmVyOnRleHQtbWlkZ3JvdW5kIHRhcC1oaWdobGlnaHQtdHJhbnNwYXJlbnQgdHJhbnNpdGlvbi1jb2xvcnMnLFxuICAgICAgICAnZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXInLFxuICAgICAgICBjb3BpZWQgPyAndGV4dC1taWRncm91bmQnIDogJ3RleHQtdGV4dC1zZWNvbmRhcnknLFxuICAgICAgICBjbGFzc05hbWVcbiAgICAgICl9XG4gICAgICBvbkNsaWNrPXtoYW5kbGVDb3B5fVxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgPlxuICAgICAge2NoaWxkcmVuID8/IChjb3BpZWQgPyBjb3BpZWRMYWJlbCA6IGxhYmVsKX1cbiAgICA8L2J1dHRvbj5cbiAgKVxufVxuXG4vKipcbiAqIEEgbGFiZWxlZCwgY29weS1hYmxlIGNvbW1hbmQgKG9yIGNvZGUpIGRpc3BsYXkuIFBhaXJzIGA8Q29weUJ1dHRvbj5gIHdpdGhcbiAqIGEgbW9ub3NwYWNlIGNvZGUgYmxvY2suIFVzZWQgZm9yIGluc3RhbGwvc2V0dXAgaW5zdHJ1Y3Rpb25zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gQ29tbWFuZEJsb2NrKHsgY2xhc3NOYW1lLCBjb2RlLCBsYWJlbCB9OiBDb21tYW5kQmxvY2tQcm9wcykge1xuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtjbignZmxleCBmbGV4LWNvbCBnYXAtMScsIGNsYXNzTmFtZSl9PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgPFNtYWxsIGNsYXNzTmFtZT1cIm9wYWNpdHktNTBcIj57bGFiZWx9PC9TbWFsbD5cblxuICAgICAgICA8Q29weUJ1dHRvbiB0ZXh0PXtjb2RlfSAvPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3NOYW1lPXtjbihcbiAgICAgICAgICAnYmctYmFja2dyb3VuZC80MCBmb250LWNvdXJpZXIgYm9yZGVyIGJvcmRlci1jdXJyZW50LzIwJyxcbiAgICAgICAgICAncHgtMyBweS0yIHRleHQtWzAuNjg3NXJlbV0gbGVhZGluZy1yZWxheGVkIGxvd2VyY2FzZSdcbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPGNvZGUgY2xhc3NOYW1lPVwiYnJlYWstYWxsXCI+e2NvZGV9PC9jb2RlPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIClcbn1cblxuaW50ZXJmYWNlIENvbW1hbmRCbG9ja1Byb3BzIHtcbiAgY2xhc3NOYW1lPzogc3RyaW5nXG4gIGNvZGU6IHN0cmluZ1xuICBsYWJlbDogc3RyaW5nXG59XG5cbmludGVyZmFjZSBDb3B5QnV0dG9uUHJvcHMge1xuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZVxuICBjbGFzc05hbWU/OiBzdHJpbmdcbiAgY29waWVkTGFiZWw/OiBzdHJpbmdcbiAgbGFiZWw/OiBzdHJpbmdcbiAgcmVzZXREZWxheU1zPzogbnVtYmVyXG4gIHRleHQ6IHN0cmluZ1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjtBQThCSSxjQXdCRSxZQXhCRjtBQTVCSixTQUFTLGFBQWEsZ0JBQWdCO0FBRXRDLFNBQVMsVUFBVTtBQUVuQixTQUFTLGFBQWE7QUFNZixnQkFBUyxXQUFXO0FBQUEsRUFDekI7QUFBQSxFQUNBO0FBQUEsRUFDQSxjQUFjO0FBQUEsRUFDZCxRQUFRO0FBQUEsRUFDUixlQUFlO0FBQUEsRUFDZjtBQUNGLEdBQW9CO0FBQ2xCLFFBQU0sQ0FBQyxRQUFRLFNBQVMsSUFBSSxTQUFTLEtBQUs7QUFFMUMsUUFBTSxhQUFhLFlBQVksTUFBTTtBQUNuQyxTQUFLLFVBQVUsVUFBVSxVQUFVLElBQUksRUFBRSxLQUFLLE1BQU07QUFDbEQsZ0JBQVUsSUFBSTtBQUNkLGlCQUFXLE1BQU0sVUFBVSxLQUFLLEdBQUcsWUFBWTtBQUFBLElBQ2pELENBQUM7QUFBQSxFQUNILEdBQUcsQ0FBQyxjQUFjLElBQUksQ0FBQztBQUV2QixTQUNFO0FBQUEsSUFBQztBQUFBO0FBQUEsTUFDQyxXQUFXO0FBQUEsUUFDVDtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0EsU0FBUyxtQkFBbUI7QUFBQSxRQUM1QjtBQUFBLE1BQ0Y7QUFBQSxNQUNBLFNBQVM7QUFBQSxNQUNULE1BQUs7QUFBQSxNQUVKLHVCQUFhLFNBQVMsY0FBYztBQUFBO0FBQUEsRUFDdkM7QUFFSjtBQU1PLGdCQUFTLGFBQWEsRUFBRSxXQUFXLE1BQU0sTUFBTSxHQUFzQjtBQUMxRSxTQUNFLHFCQUFDLFNBQUksV0FBVyxHQUFHLHVCQUF1QixTQUFTLEdBQ2pEO0FBQUEseUJBQUMsU0FBSSxXQUFVLHFDQUNiO0FBQUEsMEJBQUMsU0FBTSxXQUFVLGNBQWMsaUJBQU07QUFBQSxNQUVyQyxvQkFBQyxjQUFXLE1BQU0sTUFBTTtBQUFBLE9BQzFCO0FBQUEsSUFFQTtBQUFBLE1BQUM7QUFBQTtBQUFBLFFBQ0MsV0FBVztBQUFBLFVBQ1Q7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUFBLFFBRUEsOEJBQUMsVUFBSyxXQUFVLGFBQWEsZ0JBQUs7QUFBQTtBQUFBLElBQ3BDO0FBQUEsS0FDRjtBQUVKOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -0,0 +1,13 @@
1
+ export declare function ConfirmDialog({ cancelLabel, confirmLabel, description, destructive, loading, onCancel, onConfirm, open, title }: ConfirmDialogProps): import("react").JSX.Element;
2
+ interface ConfirmDialogProps {
3
+ cancelLabel?: string;
4
+ confirmLabel?: string;
5
+ description?: string;
6
+ destructive?: boolean;
7
+ loading?: boolean;
8
+ onCancel: () => void;
9
+ onConfirm: () => void;
10
+ open: boolean;
11
+ title: string;
12
+ }
13
+ export {};
@@ -0,0 +1,113 @@
1
+ "use client";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { useRef } from "react";
4
+ import { AlertDialog as AlertDialogPrimitive } from "radix-ui";
5
+ import { cn } from "../../utils/index.js";
6
+ import { Button } from "./button.js";
7
+ function WarningTriangle({ className }) {
8
+ return /* @__PURE__ */ jsxs(
9
+ "svg",
10
+ {
11
+ "aria-hidden": true,
12
+ className,
13
+ fill: "none",
14
+ stroke: "currentColor",
15
+ strokeLinecap: "round",
16
+ strokeLinejoin: "round",
17
+ strokeWidth: 2,
18
+ viewBox: "0 0 24 24",
19
+ children: [
20
+ /* @__PURE__ */ jsx("path", { d: "m10.29 3.86-8.16 14a2 2 0 0 0 1.73 3h16.28a2 2 0 0 0 1.73-3l-8.16-14a2 2 0 0 0-3.46 0z" }),
21
+ /* @__PURE__ */ jsx("line", { x1: "12", x2: "12", y1: "9", y2: "13" }),
22
+ /* @__PURE__ */ jsx("line", { x1: "12", x2: "12.01", y1: "17", y2: "17" })
23
+ ]
24
+ }
25
+ );
26
+ }
27
+ export function ConfirmDialog({
28
+ cancelLabel = "Cancel",
29
+ confirmLabel = "Confirm",
30
+ description,
31
+ destructive = false,
32
+ loading = false,
33
+ onCancel,
34
+ onConfirm,
35
+ open,
36
+ title
37
+ }) {
38
+ const confirmedRef = useRef(false);
39
+ return /* @__PURE__ */ jsx(
40
+ AlertDialogPrimitive.Root,
41
+ {
42
+ onOpenChange: (v) => {
43
+ if (!v && !confirmedRef.current) onCancel();
44
+ confirmedRef.current = false;
45
+ },
46
+ open,
47
+ children: /* @__PURE__ */ jsxs(AlertDialogPrimitive.Portal, { children: [
48
+ /* @__PURE__ */ jsx(
49
+ AlertDialogPrimitive.Overlay,
50
+ {
51
+ className: cn(
52
+ "fixed inset-0 z-50",
53
+ "bg-black/60 backdrop-blur-sm",
54
+ "data-[state=open]:animate-in data-[state=open]:fade-in-0",
55
+ "data-[state=closed]:animate-out data-[state=closed]:fade-out-0"
56
+ )
57
+ }
58
+ ),
59
+ /* @__PURE__ */ jsxs(
60
+ AlertDialogPrimitive.Content,
61
+ {
62
+ className: cn(
63
+ "fixed top-1/2 left-1/2 z-50 -translate-x-1/2 -translate-y-1/2",
64
+ "w-[calc(100%-2rem)] max-w-md",
65
+ "border border-midground/15 bg-background-base text-foreground-base shadow-lg outline-none",
66
+ "data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
67
+ "data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",
68
+ "duration-150"
69
+ ),
70
+ children: [
71
+ /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-3 p-4 border-b border-midground/15", children: [
72
+ destructive && /* @__PURE__ */ jsx("div", { "aria-hidden": true, className: "mt-0.5 shrink-0 text-destructive", children: /* @__PURE__ */ jsx(WarningTriangle, { className: "h-4 w-4" }) }),
73
+ /* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0 flex flex-col gap-1", children: [
74
+ /* @__PURE__ */ jsx(
75
+ AlertDialogPrimitive.Title,
76
+ {
77
+ className: "font-expanded text-sm font-bold tracking-[0.08em] uppercase",
78
+ children: title
79
+ }
80
+ ),
81
+ description && /* @__PURE__ */ jsx(
82
+ AlertDialogPrimitive.Description,
83
+ {
84
+ className: "font-mondwest text-xs text-midground/60 leading-relaxed",
85
+ children: description
86
+ }
87
+ )
88
+ ] })
89
+ ] }),
90
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-end gap-2 p-3", children: [
91
+ /* @__PURE__ */ jsx(AlertDialogPrimitive.Cancel, { asChild: true, children: /* @__PURE__ */ jsx(Button, { disabled: loading, outlined: true, type: "button", children: cancelLabel }) }),
92
+ /* @__PURE__ */ jsx(AlertDialogPrimitive.Action, { asChild: true, children: /* @__PURE__ */ jsx(
93
+ Button,
94
+ {
95
+ destructive,
96
+ disabled: loading,
97
+ onClick: () => {
98
+ confirmedRef.current = true;
99
+ onConfirm();
100
+ },
101
+ type: "button",
102
+ children: loading ? "\u2026" : confirmLabel
103
+ }
104
+ ) })
105
+ ] })
106
+ ]
107
+ }
108
+ )
109
+ ] })
110
+ }
111
+ );
112
+ }
113
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiPHN0ZGluPiJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCB7IHVzZVJlZiB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQWxlcnREaWFsb2cgYXMgQWxlcnREaWFsb2dQcmltaXRpdmUgfSBmcm9tICdyYWRpeC11aSdcblxuaW1wb3J0IHsgY24gfSBmcm9tICcuLi8uLi91dGlscydcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gJy4vYnV0dG9uJ1xuXG5mdW5jdGlvbiBXYXJuaW5nVHJpYW5nbGUoeyBjbGFzc05hbWUgfTogeyBjbGFzc05hbWU/OiBzdHJpbmcgfSkge1xuICByZXR1cm4gKFxuICAgIDxzdmdcbiAgICAgIGFyaWEtaGlkZGVuXG4gICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICBzdHJva2VMaW5lY2FwPVwicm91bmRcIlxuICAgICAgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiXG4gICAgICBzdHJva2VXaWR0aD17Mn1cbiAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgID5cbiAgICAgIDxwYXRoIGQ9XCJtMTAuMjkgMy44Ni04LjE2IDE0YTIgMiAwIDAgMCAxLjczIDNoMTYuMjhhMiAyIDAgMCAwIDEuNzMtM2wtOC4xNi0xNGEyIDIgMCAwIDAtMy40NiAwelwiIC8+XG4gICAgICA8bGluZSB4MT1cIjEyXCIgeDI9XCIxMlwiIHkxPVwiOVwiIHkyPVwiMTNcIiAvPlxuICAgICAgPGxpbmUgeDE9XCIxMlwiIHgyPVwiMTIuMDFcIiB5MT1cIjE3XCIgeTI9XCIxN1wiIC8+XG4gICAgPC9zdmc+XG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIENvbmZpcm1EaWFsb2coe1xuICBjYW5jZWxMYWJlbCA9ICdDYW5jZWwnLFxuICBjb25maXJtTGFiZWwgPSAnQ29uZmlybScsXG4gIGRlc2NyaXB0aW9uLFxuICBkZXN0cnVjdGl2ZSA9IGZhbHNlLFxuICBsb2FkaW5nID0gZmFsc2UsXG4gIG9uQ2FuY2VsLFxuICBvbkNvbmZpcm0sXG4gIG9wZW4sXG4gIHRpdGxlXG59OiBDb25maXJtRGlhbG9nUHJvcHMpIHtcbiAgY29uc3QgY29uZmlybWVkUmVmID0gdXNlUmVmKGZhbHNlKVxuXG4gIHJldHVybiAoXG4gICAgPEFsZXJ0RGlhbG9nUHJpbWl0aXZlLlJvb3RcbiAgICAgIG9uT3BlbkNoYW5nZT17diA9PiB7XG4gICAgICAgIGlmICghdiAmJiAhY29uZmlybWVkUmVmLmN1cnJlbnQpIG9uQ2FuY2VsKClcbiAgICAgICAgY29uZmlybWVkUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgICAgfX1cbiAgICAgIG9wZW49e29wZW59XG4gICAgPlxuICAgICAgPEFsZXJ0RGlhbG9nUHJpbWl0aXZlLlBvcnRhbD5cbiAgICAgICAgPEFsZXJ0RGlhbG9nUHJpbWl0aXZlLk92ZXJsYXlcbiAgICAgICAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgICAgICAgJ2ZpeGVkIGluc2V0LTAgei01MCcsXG4gICAgICAgICAgICAnYmctYmxhY2svNjAgYmFja2Ryb3AtYmx1ci1zbScsXG4gICAgICAgICAgICAnZGF0YS1bc3RhdGU9b3Blbl06YW5pbWF0ZS1pbiBkYXRhLVtzdGF0ZT1vcGVuXTpmYWRlLWluLTAnLFxuICAgICAgICAgICAgJ2RhdGEtW3N0YXRlPWNsb3NlZF06YW5pbWF0ZS1vdXQgZGF0YS1bc3RhdGU9Y2xvc2VkXTpmYWRlLW91dC0wJ1xuICAgICAgICAgICl9XG4gICAgICAgIC8+XG5cbiAgICAgICAgPEFsZXJ0RGlhbG9nUHJpbWl0aXZlLkNvbnRlbnRcbiAgICAgICAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgICAgICAgJ2ZpeGVkIHRvcC0xLzIgbGVmdC0xLzIgei01MCAtdHJhbnNsYXRlLXgtMS8yIC10cmFuc2xhdGUteS0xLzInLFxuICAgICAgICAgICAgJ3ctW2NhbGMoMTAwJS0ycmVtKV0gbWF4LXctbWQnLFxuICAgICAgICAgICAgJ2JvcmRlciBib3JkZXItbWlkZ3JvdW5kLzE1IGJnLWJhY2tncm91bmQtYmFzZSB0ZXh0LWZvcmVncm91bmQtYmFzZSBzaGFkb3ctbGcgb3V0bGluZS1ub25lJyxcbiAgICAgICAgICAgICdkYXRhLVtzdGF0ZT1vcGVuXTphbmltYXRlLWluIGRhdGEtW3N0YXRlPW9wZW5dOmZhZGUtaW4tMCBkYXRhLVtzdGF0ZT1vcGVuXTp6b29tLWluLTk1JyxcbiAgICAgICAgICAgICdkYXRhLVtzdGF0ZT1jbG9zZWRdOmFuaW1hdGUtb3V0IGRhdGEtW3N0YXRlPWNsb3NlZF06ZmFkZS1vdXQtMCBkYXRhLVtzdGF0ZT1jbG9zZWRdOnpvb20tb3V0LTk1JyxcbiAgICAgICAgICAgICdkdXJhdGlvbi0xNTAnXG4gICAgICAgICAgKX1cbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1zdGFydCBnYXAtMyBwLTQgYm9yZGVyLWIgYm9yZGVyLW1pZGdyb3VuZC8xNVwiPlxuICAgICAgICAgICAge2Rlc3RydWN0aXZlICYmIChcbiAgICAgICAgICAgICAgPGRpdiBhcmlhLWhpZGRlbiBjbGFzc05hbWU9XCJtdC0wLjUgc2hyaW5rLTAgdGV4dC1kZXN0cnVjdGl2ZVwiPlxuICAgICAgICAgICAgICAgIDxXYXJuaW5nVHJpYW5nbGUgY2xhc3NOYW1lPVwiaC00IHctNFwiIC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4LTEgbWluLXctMCBmbGV4IGZsZXgtY29sIGdhcC0xXCI+XG4gICAgICAgICAgICAgIDxBbGVydERpYWxvZ1ByaW1pdGl2ZS5UaXRsZVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZvbnQtZXhwYW5kZWQgdGV4dC1zbSBmb250LWJvbGQgdHJhY2tpbmctWzAuMDhlbV0gdXBwZXJjYXNlXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt0aXRsZX1cbiAgICAgICAgICAgICAgPC9BbGVydERpYWxvZ1ByaW1pdGl2ZS5UaXRsZT5cblxuICAgICAgICAgICAgICB7ZGVzY3JpcHRpb24gJiYgKFxuICAgICAgICAgICAgICAgIDxBbGVydERpYWxvZ1ByaW1pdGl2ZS5EZXNjcmlwdGlvblxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZm9udC1tb25kd2VzdCB0ZXh0LXhzIHRleHQtbWlkZ3JvdW5kLzYwIGxlYWRpbmctcmVsYXhlZFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2Rlc2NyaXB0aW9ufVxuICAgICAgICAgICAgICAgIDwvQWxlcnREaWFsb2dQcmltaXRpdmUuRGVzY3JpcHRpb24+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1lbmQgZ2FwLTIgcC0zXCI+XG4gICAgICAgICAgICA8QWxlcnREaWFsb2dQcmltaXRpdmUuQ2FuY2VsIGFzQ2hpbGQ+XG4gICAgICAgICAgICAgIDxCdXR0b24gZGlzYWJsZWQ9e2xvYWRpbmd9IG91dGxpbmVkIHR5cGU9XCJidXR0b25cIj5cbiAgICAgICAgICAgICAgICB7Y2FuY2VsTGFiZWx9XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9BbGVydERpYWxvZ1ByaW1pdGl2ZS5DYW5jZWw+XG5cbiAgICAgICAgICAgIDxBbGVydERpYWxvZ1ByaW1pdGl2ZS5BY3Rpb24gYXNDaGlsZD5cbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIGRlc3RydWN0aXZlPXtkZXN0cnVjdGl2ZX1cbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17bG9hZGluZ31cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBjb25maXJtZWRSZWYuY3VycmVudCA9IHRydWVcbiAgICAgICAgICAgICAgICAgIG9uQ29uZmlybSgpXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtsb2FkaW5nID8gJ1x1MjAyNicgOiBjb25maXJtTGFiZWx9XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9BbGVydERpYWxvZ1ByaW1pdGl2ZS5BY3Rpb24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvQWxlcnREaWFsb2dQcmltaXRpdmUuQ29udGVudD5cbiAgICAgIDwvQWxlcnREaWFsb2dQcmltaXRpdmUuUG9ydGFsPlxuICAgIDwvQWxlcnREaWFsb2dQcmltaXRpdmUuUm9vdD5cbiAgKVxufVxuXG5pbnRlcmZhY2UgQ29uZmlybURpYWxvZ1Byb3BzIHtcbiAgY2FuY2VsTGFiZWw/OiBzdHJpbmdcbiAgY29uZmlybUxhYmVsPzogc3RyaW5nXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nXG4gIGRlc3RydWN0aXZlPzogYm9vbGVhblxuICBsb2FkaW5nPzogYm9vbGVhblxuICBvbkNhbmNlbDogKCkgPT4gdm9pZFxuICBvbkNvbmZpcm06ICgpID0+IHZvaWRcbiAgb3BlbjogYm9vbGVhblxuICB0aXRsZTogc3RyaW5nXG59XG4iXSwKICAibWFwcGluZ3MiOiAiO0FBVUksU0FVRSxLQVZGO0FBUkosU0FBUyxjQUFjO0FBQ3ZCLFNBQVMsZUFBZSw0QkFBNEI7QUFFcEQsU0FBUyxVQUFVO0FBQ25CLFNBQVMsY0FBYztBQUV2QixTQUFTLGdCQUFnQixFQUFFLFVBQVUsR0FBMkI7QUFDOUQsU0FDRTtBQUFBLElBQUM7QUFBQTtBQUFBLE1BQ0MsZUFBVztBQUFBLE1BQ1g7QUFBQSxNQUNBLE1BQUs7QUFBQSxNQUNMLFFBQU87QUFBQSxNQUNQLGVBQWM7QUFBQSxNQUNkLGdCQUFlO0FBQUEsTUFDZixhQUFhO0FBQUEsTUFDYixTQUFRO0FBQUEsTUFFUjtBQUFBLDRCQUFDLFVBQUssR0FBRSwwRkFBeUY7QUFBQSxRQUNqRyxvQkFBQyxVQUFLLElBQUcsTUFBSyxJQUFHLE1BQUssSUFBRyxLQUFJLElBQUcsTUFBSztBQUFBLFFBQ3JDLG9CQUFDLFVBQUssSUFBRyxNQUFLLElBQUcsU0FBUSxJQUFHLE1BQUssSUFBRyxNQUFLO0FBQUE7QUFBQTtBQUFBLEVBQzNDO0FBRUo7QUFFTyxnQkFBUyxjQUFjO0FBQUEsRUFDNUIsY0FBYztBQUFBLEVBQ2QsZUFBZTtBQUFBLEVBQ2Y7QUFBQSxFQUNBLGNBQWM7QUFBQSxFQUNkLFVBQVU7QUFBQSxFQUNWO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQ0YsR0FBdUI7QUFDckIsUUFBTSxlQUFlLE9BQU8sS0FBSztBQUVqQyxTQUNFO0FBQUEsSUFBQyxxQkFBcUI7QUFBQSxJQUFyQjtBQUFBLE1BQ0MsY0FBYyxPQUFLO0FBQ2pCLFlBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxRQUFTLFVBQVM7QUFDMUMscUJBQWEsVUFBVTtBQUFBLE1BQ3pCO0FBQUEsTUFDQTtBQUFBLE1BRUEsK0JBQUMscUJBQXFCLFFBQXJCLEVBQ0M7QUFBQTtBQUFBLFVBQUMscUJBQXFCO0FBQUEsVUFBckI7QUFBQSxZQUNDLFdBQVc7QUFBQSxjQUNUO0FBQUEsY0FDQTtBQUFBLGNBQ0E7QUFBQSxjQUNBO0FBQUEsWUFDRjtBQUFBO0FBQUEsUUFDRjtBQUFBLFFBRUE7QUFBQSxVQUFDLHFCQUFxQjtBQUFBLFVBQXJCO0FBQUEsWUFDQyxXQUFXO0FBQUEsY0FDVDtBQUFBLGNBQ0E7QUFBQSxjQUNBO0FBQUEsY0FDQTtBQUFBLGNBQ0E7QUFBQSxjQUNBO0FBQUEsWUFDRjtBQUFBLFlBRUE7QUFBQSxtQ0FBQyxTQUFJLFdBQVUsMkRBQ1o7QUFBQSwrQkFDQyxvQkFBQyxTQUFJLGVBQVcsTUFBQyxXQUFVLG9DQUN6Qiw4QkFBQyxtQkFBZ0IsV0FBVSxXQUFVLEdBQ3ZDO0FBQUEsZ0JBR0YscUJBQUMsU0FBSSxXQUFVLHNDQUNiO0FBQUE7QUFBQSxvQkFBQyxxQkFBcUI7QUFBQSxvQkFBckI7QUFBQSxzQkFDQyxXQUFVO0FBQUEsc0JBRVQ7QUFBQTtBQUFBLGtCQUNIO0FBQUEsa0JBRUMsZUFDQztBQUFBLG9CQUFDLHFCQUFxQjtBQUFBLG9CQUFyQjtBQUFBLHNCQUNDLFdBQVU7QUFBQSxzQkFFVDtBQUFBO0FBQUEsa0JBQ0g7QUFBQSxtQkFFSjtBQUFBLGlCQUNGO0FBQUEsY0FFQSxxQkFBQyxTQUFJLFdBQVUsMkNBQ2I7QUFBQSxvQ0FBQyxxQkFBcUIsUUFBckIsRUFBNEIsU0FBTyxNQUNsQyw4QkFBQyxVQUFPLFVBQVUsU0FBUyxVQUFRLE1BQUMsTUFBSyxVQUN0Qyx1QkFDSCxHQUNGO0FBQUEsZ0JBRUEsb0JBQUMscUJBQXFCLFFBQXJCLEVBQTRCLFNBQU8sTUFDbEM7QUFBQSxrQkFBQztBQUFBO0FBQUEsb0JBQ0M7QUFBQSxvQkFDQSxVQUFVO0FBQUEsb0JBQ1YsU0FBUyxNQUFNO0FBQ2IsbUNBQWEsVUFBVTtBQUN2QixnQ0FBVTtBQUFBLG9CQUNaO0FBQUEsb0JBQ0EsTUFBSztBQUFBLG9CQUVKLG9CQUFVLFdBQU07QUFBQTtBQUFBLGdCQUNuQixHQUNGO0FBQUEsaUJBQ0Y7QUFBQTtBQUFBO0FBQUEsUUFDRjtBQUFBLFNBQ0Y7QUFBQTtBQUFBLEVBQ0Y7QUFFSjsiLAogICJuYW1lcyI6IFtdCn0K
@@ -94,3 +94,4 @@ export function Cursor({ scale = 0.8 }) {
94
94
  }
95
95
  );
96
96
  }
97
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiPHN0ZGluPiJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlUmVmIH0gZnJvbSAncmVhY3QnXG5cbmNvbnN0IElOVEVSQUNUSVZFID1cbiAgJ2EsIGJ1dHRvbiwgW3JvbGU9XCJidXR0b25cIl0sIGlucHV0LCB0ZXh0YXJlYSwgc2VsZWN0LCBbZGF0YS1jdXJzb3JdJ1xuXG5jb25zdCBIQU5EID1cbiAgJ002Ljg0IDIxLjgzYy0uNDctLjYtMS4wNS0xLjgyLTIuMDctMy4zNC0uNTgtLjgzLTIuMDEtMi40MS0yLjQ1LTMuMjNhMi4xIDIuMSAwIDAgMS0uMjUtMS42NyAyLjIgMi4yIDAgMCAxIDIuMzktMS42N2MuODUuMTggMS42My42IDIuMjUgMS4yLjQzLjQxLjgyLjg1IDEuMTggMS4zMi4yNy4zNC4zMy40Ny42My44NS4zLjM5LjUuNzcuMzUuMi0uMTEtLjgzLS4zMS0yLjIzLS42LTMuNDgtLjIxLS45NS0uMjYtMS4xLS40Ni0xLjgycy0uMzItMS4zMi0uNTQtMi4xM2MtLjItLjgtLjM1LTEuNjItLjQ2LTIuNDRhNC43IDQuNyAwIDAgMSAuNDMtMy4wOGMuNTgtLjU1IDEuNDQtLjcgMi4xNy0uMzdhNC40IDQuNCAwIDAgMSAxLjU3IDIuMTdjLjQzIDEuMDcuNzIgMi4xOS44NiAzLjMzLjI3IDEuNjcuNzkgNC4xLjggNC42IDAtLjYxLS4xMS0xLjkxIDAtMi41LjEyLS42LjU0LTEuMSAxLjEyLTEuMzMuNS0uMTUgMS4wMi0uMTkgMS41My0uMS41Mi4xLjk4LjQgMS4yOS44My4zOC45OC42IDIgLjYzIDMuMDUuMDQtLjkxLjItMS44Mi40Ny0yLjcuMjgtLjM5LjY4LS42NyAxLjE1LS44LjU1LS4xIDEuMTEtLjEgMS42NiAwIC40Ni4xNS44NS40NCAxLjE0LjgyLjM1Ljg4LjU2IDEuODIuNjMgMi43NyAwIC4yMy4xMi0uNjUuNDgtMS4yNGExLjY3IDEuNjcgMCAxIDEgMy4xNyAxLjA3djMuNzdjLS4wNi45Ny0uMiAxLjk0LS40IDIuOS0uMjkuODUtLjcgMS42NS0xLjIgMi4zOC0uOC45LTEuNDggMS45Mi0xLjk4IDMuMDJhNi42NyA2LjY3IDAgMCAwIC4wMyAzLjJjLS42OC4wNy0xLjM3LjA3LTIuMDUgMC0uNjUtLjEtMS40NS0xLjQtMS42Ny0xLjhhLjYzLjYzIDAgMCAwLTEuMTMgMGMtLjM3LjY0LTEuMTggMS43OS0xLjc1IDEuODUtMS4xMi4xNC0zLjQyIDAtNS4yMyAwIDAgMCAuMy0xLjY2LS4zOS0yLjI3LS42OC0uNi0xLjM4LTEuMy0xLjktMS43NmwtMS40LTEuNlonXG5cbmV4cG9ydCBmdW5jdGlvbiBDdXJzb3IoeyBzY2FsZSA9IDAuOCB9OiB7IHNjYWxlPzogbnVtYmVyIH0pIHtcbiAgY29uc3QgJHJvb3QgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0ICRhcnJvdyA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3QgJHB0ciA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IFtyb290LCBhcnJvdywgcHRyXSA9IFskcm9vdC5jdXJyZW50LCAkYXJyb3cuY3VycmVudCwgJHB0ci5jdXJyZW50XVxuXG4gICAgaWYgKCFyb290IHx8ICFhcnJvdyB8fCAhcHRyKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCBvbiA9IChcbiAgICAgIGVsOiBFdmVudFRhcmdldCxcbiAgICAgIGV2OiBzdHJpbmcsXG4gICAgICBmbjogRXZlbnRMaXN0ZW5lcixcbiAgICAgIG9wdHM/OiBBZGRFdmVudExpc3RlbmVyT3B0aW9uc1xuICAgICkgPT4ge1xuICAgICAgZWwuYWRkRXZlbnRMaXN0ZW5lcihldiwgZm4sIG9wdHMpXG5cbiAgICAgIHJldHVybiAoKSA9PiBlbC5yZW1vdmVFdmVudExpc3RlbmVyKGV2LCBmbilcbiAgICB9XG5cbiAgICByZXR1cm4gW1xuICAgICAgb24oXG4gICAgICAgIGRvY3VtZW50LFxuICAgICAgICAnbW91c2Vtb3ZlJyxcbiAgICAgICAgKGU6IEV2ZW50KSA9PiB7XG4gICAgICAgICAgY29uc3QgeyBjbGllbnRYOiB4LCBjbGllbnRZOiB5IH0gPSBlIGFzIE1vdXNlRXZlbnRcbiAgICAgICAgICByb290LnN0eWxlLnRyYW5zbGF0ZSA9IGAke3h9cHggJHt5fXB4YFxuICAgICAgICAgIHJvb3Quc3R5bGUub3BhY2l0eSA9ICcxJ1xuICAgICAgICB9LFxuICAgICAgICB7IHBhc3NpdmU6IHRydWUgfVxuICAgICAgKSxcblxuICAgICAgb24oXG4gICAgICAgIGRvY3VtZW50LFxuICAgICAgICAnbW91c2VvdmVyJyxcbiAgICAgICAgKGU6IEV2ZW50KSA9PiB7XG4gICAgICAgICAgY29uc3QgaXNQdHIgPSAhIShlLnRhcmdldCBhcyBIVE1MRWxlbWVudCkuY2xvc2VzdD8uKElOVEVSQUNUSVZFKVxuICAgICAgICAgIGFycm93LnN0eWxlLm9wYWNpdHkgPSBpc1B0ciA/ICcwJyA6ICcxJ1xuICAgICAgICAgIHB0ci5zdHlsZS5vcGFjaXR5ID0gaXNQdHIgPyAnMScgOiAnMCdcbiAgICAgICAgfSxcbiAgICAgICAgeyBwYXNzaXZlOiB0cnVlIH1cbiAgICAgICksXG5cbiAgICAgIG9uKGRvY3VtZW50LCAnbW91c2Vkb3duJywgKCkgPT4ge1xuICAgICAgICByb290LnN0eWxlLnRyYW5zZm9ybSA9ICd0cmFuc2xhdGUoMXB4LCAxcHgpJ1xuICAgICAgfSksXG4gICAgICBvbihkb2N1bWVudCwgJ21vdXNldXAnLCAoKSA9PiB7XG4gICAgICAgIHJvb3Quc3R5bGUudHJhbnNmb3JtID0gJydcbiAgICAgIH0pLFxuICAgICAgb24oZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCAnbW91c2VsZWF2ZScsICgpID0+IHtcbiAgICAgICAgcm9vdC5zdHlsZS5vcGFjaXR5ID0gJzAnXG4gICAgICB9KSxcbiAgICAgIG9uKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwgJ21vdXNlZW50ZXInLCAoKSA9PiB7XG4gICAgICAgIHJvb3Quc3R5bGUub3BhY2l0eSA9ICcxJ1xuICAgICAgfSlcbiAgICBdLnJlZHVjZSgoXywgZm4pID0+IGZuLCB1bmRlZmluZWQgYXMgdW5rbm93biBhcyB2b2lkKVxuICB9LCBbXSlcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGFyaWEtaGlkZGVuXG4gICAgICByZWY9eyRyb290fVxuICAgICAgc3R5bGU9e3tcbiAgICAgICAgZmlsdGVyOiAnZHJvcC1zaGFkb3coMXB4IDJweCAwICMwMDApJyxcbiAgICAgICAgaGVpZ2h0OiAzMiAqIHNjYWxlLFxuICAgICAgICBsZWZ0OiAwLFxuICAgICAgICBvcGFjaXR5OiAwLFxuICAgICAgICBwb2ludGVyRXZlbnRzOiAnbm9uZScsXG4gICAgICAgIHBvc2l0aW9uOiAnZml4ZWQnLFxuICAgICAgICB0b3A6IDAsXG4gICAgICAgIHdpZHRoOiAzMiAqIHNjYWxlLFxuICAgICAgICB3aWxsQ2hhbmdlOiAndHJhbnNsYXRlJyxcbiAgICAgICAgekluZGV4OiA5OTk5XG4gICAgICB9fVxuICAgID5cbiAgICAgIDxkaXYgcmVmPXskYXJyb3d9IHN0eWxlPXt7IGluc2V0OiAwLCBwb3NpdGlvbjogJ2Fic29sdXRlJyB9fT5cbiAgICAgICAgPHN2ZyB2aWV3Qm94PVwiMCAwIDE2IDE2XCI+XG4gICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIGQ9XCJNMSAxTDEgMTRMNSAxMEw4IDE1TDEwIDE0TDcgOUwxMiA5TDEgMVpcIlxuICAgICAgICAgICAgZmlsbD1cIiNmZmZcIlxuICAgICAgICAgICAgc3Ryb2tlPVwiIzAwMFwiXG4gICAgICAgICAgICBzdHJva2VMaW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAgIHN0cm9rZVdpZHRoPXsxfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgcmVmPXskcHRyfSBzdHlsZT17eyBpbnNldDogMCwgb3BhY2l0eTogMCwgcG9zaXRpb246ICdhYnNvbHV0ZScgfX0+XG4gICAgICAgIDxzdmcgdmlld0JveD1cIjAgMCAyOCAyOVwiPlxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBkPXtIQU5EfVxuICAgICAgICAgICAgZmlsbD1cIiNmZmZcIlxuICAgICAgICAgICAgc3Ryb2tlPVwiIzAwMFwiXG4gICAgICAgICAgICBzdHJva2VMaW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAgIHN0cm9rZVdpZHRoPXsyfVxuICAgICAgICAgICAgc3R5bGU9e3sgcGFpbnRPcmRlcjogJ3N0cm9rZSBmaWxsJyB9fVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIClcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7QUF3RUksU0FrQk0sS0FsQk47QUF0RUosU0FBUyxXQUFXLGNBQWM7QUFFbEMsTUFBTSxjQUNKO0FBRUYsTUFBTSxPQUNKO0FBRUssZ0JBQVMsT0FBTyxFQUFFLFFBQVEsSUFBSSxHQUF1QjtBQUMxRCxRQUFNLFFBQVEsT0FBdUIsSUFBSTtBQUN6QyxRQUFNLFNBQVMsT0FBdUIsSUFBSTtBQUMxQyxRQUFNLE9BQU8sT0FBdUIsSUFBSTtBQUV4QyxZQUFVLE1BQU07QUFDZCxVQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sU0FBUyxPQUFPLFNBQVMsS0FBSyxPQUFPO0FBRXZFLFFBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEtBQUs7QUFDM0I7QUFBQSxJQUNGO0FBRUEsVUFBTSxLQUFLLENBQ1QsSUFDQSxJQUNBLElBQ0EsU0FDRztBQUNILFNBQUcsaUJBQWlCLElBQUksSUFBSSxJQUFJO0FBRWhDLGFBQU8sTUFBTSxHQUFHLG9CQUFvQixJQUFJLEVBQUU7QUFBQSxJQUM1QztBQUVBLFdBQU87QUFBQSxNQUNMO0FBQUEsUUFDRTtBQUFBLFFBQ0E7QUFBQSxRQUNBLENBQUMsTUFBYTtBQUNaLGdCQUFNLEVBQUUsU0FBUyxHQUFHLFNBQVMsRUFBRSxJQUFJO0FBQ25DLGVBQUssTUFBTSxZQUFZLEdBQUcsQ0FBQyxNQUFNLENBQUM7QUFDbEMsZUFBSyxNQUFNLFVBQVU7QUFBQSxRQUN2QjtBQUFBLFFBQ0EsRUFBRSxTQUFTLEtBQUs7QUFBQSxNQUNsQjtBQUFBLE1BRUE7QUFBQSxRQUNFO0FBQUEsUUFDQTtBQUFBLFFBQ0EsQ0FBQyxNQUFhO0FBQ1osZ0JBQU0sUUFBUSxDQUFDLENBQUUsRUFBRSxPQUF1QixVQUFVLFdBQVc7QUFDL0QsZ0JBQU0sTUFBTSxVQUFVLFFBQVEsTUFBTTtBQUNwQyxjQUFJLE1BQU0sVUFBVSxRQUFRLE1BQU07QUFBQSxRQUNwQztBQUFBLFFBQ0EsRUFBRSxTQUFTLEtBQUs7QUFBQSxNQUNsQjtBQUFBLE1BRUEsR0FBRyxVQUFVLGFBQWEsTUFBTTtBQUM5QixhQUFLLE1BQU0sWUFBWTtBQUFBLE1BQ3pCLENBQUM7QUFBQSxNQUNELEdBQUcsVUFBVSxXQUFXLE1BQU07QUFDNUIsYUFBSyxNQUFNLFlBQVk7QUFBQSxNQUN6QixDQUFDO0FBQUEsTUFDRCxHQUFHLFNBQVMsaUJBQWlCLGNBQWMsTUFBTTtBQUMvQyxhQUFLLE1BQU0sVUFBVTtBQUFBLE1BQ3ZCLENBQUM7QUFBQSxNQUNELEdBQUcsU0FBUyxpQkFBaUIsY0FBYyxNQUFNO0FBQy9DLGFBQUssTUFBTSxVQUFVO0FBQUEsTUFDdkIsQ0FBQztBQUFBLElBQ0gsRUFBRSxPQUFPLENBQUMsR0FBRyxPQUFPLElBQUksTUFBNEI7QUFBQSxFQUN0RCxHQUFHLENBQUMsQ0FBQztBQUVMLFNBQ0U7QUFBQSxJQUFDO0FBQUE7QUFBQSxNQUNDLGVBQVc7QUFBQSxNQUNYLEtBQUs7QUFBQSxNQUNMLE9BQU87QUFBQSxRQUNMLFFBQVE7QUFBQSxRQUNSLFFBQVEsS0FBSztBQUFBLFFBQ2IsTUFBTTtBQUFBLFFBQ04sU0FBUztBQUFBLFFBQ1QsZUFBZTtBQUFBLFFBQ2YsVUFBVTtBQUFBLFFBQ1YsS0FBSztBQUFBLFFBQ0wsT0FBTyxLQUFLO0FBQUEsUUFDWixZQUFZO0FBQUEsUUFDWixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BRUE7QUFBQSw0QkFBQyxTQUFJLEtBQUssUUFBUSxPQUFPLEVBQUUsT0FBTyxHQUFHLFVBQVUsV0FBVyxHQUN4RCw4QkFBQyxTQUFJLFNBQVEsYUFDWDtBQUFBLFVBQUM7QUFBQTtBQUFBLFlBQ0MsR0FBRTtBQUFBLFlBQ0YsTUFBSztBQUFBLFlBQ0wsUUFBTztBQUFBLFlBQ1AsZ0JBQWU7QUFBQSxZQUNmLGFBQWE7QUFBQTtBQUFBLFFBQ2YsR0FDRixHQUNGO0FBQUEsUUFFQSxvQkFBQyxTQUFJLEtBQUssTUFBTSxPQUFPLEVBQUUsT0FBTyxHQUFHLFNBQVMsR0FBRyxVQUFVLFdBQVcsR0FDbEUsOEJBQUMsU0FBSSxTQUFRLGFBQ1g7QUFBQSxVQUFDO0FBQUE7QUFBQSxZQUNDLEdBQUc7QUFBQSxZQUNILE1BQUs7QUFBQSxZQUNMLFFBQU87QUFBQSxZQUNQLGdCQUFlO0FBQUEsWUFDZixhQUFhO0FBQUEsWUFDYixPQUFPLEVBQUUsWUFBWSxjQUFjO0FBQUE7QUFBQSxRQUNyQyxHQUNGLEdBQ0Y7QUFBQTtBQUFBO0FBQUEsRUFDRjtBQUVKOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -0,0 +1,15 @@
1
+ import * as React from 'react';
2
+ import { Dialog as DialogPrimitive } from 'radix-ui';
3
+ declare function Dialog({ ...props }: React.ComponentProps<typeof DialogPrimitive.Root>): React.JSX.Element;
4
+ declare function DialogTrigger({ ...props }: React.ComponentProps<typeof DialogPrimitive.Trigger>): React.JSX.Element;
5
+ declare function DialogPortal({ ...props }: React.ComponentProps<typeof DialogPrimitive.Portal>): React.JSX.Element;
6
+ declare function DialogClose({ ...props }: React.ComponentProps<typeof DialogPrimitive.Close>): React.JSX.Element;
7
+ declare function DialogOverlay({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Overlay>): React.JSX.Element;
8
+ declare function DialogContent({ className, children, showCloseButton, ...props }: React.ComponentProps<typeof DialogPrimitive.Content> & {
9
+ showCloseButton?: boolean;
10
+ }): React.JSX.Element;
11
+ declare function DialogHeader({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
12
+ declare function DialogFooter({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
13
+ declare function DialogTitle({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Title>): React.JSX.Element;
14
+ declare function DialogDescription({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Description>): React.JSX.Element;
15
+ export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger };