achery-ui 0.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.
package/dist/index.cjs ADDED
@@ -0,0 +1,1026 @@
1
+ 'use strict';
2
+
3
+ var chunkSSWJ4EPA_cjs = require('./chunk-SSWJ4EPA.cjs');
4
+ var react = require('react');
5
+ var jsxRuntime = require('react/jsx-runtime');
6
+ var createRuntimeFn = require('@vanilla-extract/recipes/createRuntimeFn');
7
+ var RadixToggle = require('@radix-ui/react-toggle');
8
+ var RadixTabs = require('@radix-ui/react-tabs');
9
+ var RadixTooltip = require('@radix-ui/react-tooltip');
10
+ var RadixDialog = require('@radix-ui/react-dialog');
11
+ var reactDom = require('react-dom');
12
+
13
+ function _interopNamespace(e) {
14
+ if (e && e.__esModule) return e;
15
+ var n = Object.create(null);
16
+ if (e) {
17
+ Object.keys(e).forEach(function (k) {
18
+ if (k !== 'default') {
19
+ var d = Object.getOwnPropertyDescriptor(e, k);
20
+ Object.defineProperty(n, k, d.get ? d : {
21
+ enumerable: true,
22
+ get: function () { return e[k]; }
23
+ });
24
+ }
25
+ });
26
+ }
27
+ n.default = e;
28
+ return Object.freeze(n);
29
+ }
30
+
31
+ var RadixToggle__namespace = /*#__PURE__*/_interopNamespace(RadixToggle);
32
+ var RadixTabs__namespace = /*#__PURE__*/_interopNamespace(RadixTabs);
33
+ var RadixTooltip__namespace = /*#__PURE__*/_interopNamespace(RadixTooltip);
34
+ var RadixDialog__namespace = /*#__PURE__*/_interopNamespace(RadixDialog);
35
+
36
+ var ThemeContext = react.createContext(null);
37
+ function AcheryProvider({
38
+ children,
39
+ defaultTheme = "light",
40
+ defaultAccent = "terracotta",
41
+ className,
42
+ style
43
+ }) {
44
+ const [theme, setThemeState] = react.useState(defaultTheme);
45
+ const [accent, setAccentState] = react.useState(defaultAccent);
46
+ const setTheme = (next) => setThemeState(next);
47
+ const toggleTheme = () => setThemeState((t) => t === "light" ? "dark" : "light");
48
+ const setAccent = (next) => setAccentState(next);
49
+ react.useEffect(() => {
50
+ const html = document.documentElement;
51
+ html.dataset["theme"] = theme;
52
+ html.dataset["accent"] = accent;
53
+ html.dataset["acheryRoot"] = "";
54
+ return () => {
55
+ delete html.dataset["theme"];
56
+ delete html.dataset["accent"];
57
+ delete html.dataset["acheryRoot"];
58
+ };
59
+ }, [theme, accent]);
60
+ return /* @__PURE__ */ jsxRuntime.jsx(ThemeContext.Provider, { value: { theme, setTheme, toggleTheme, accent, setAccent }, children: /* @__PURE__ */ jsxRuntime.jsx(
61
+ "div",
62
+ {
63
+ "data-achery-root": "",
64
+ "data-theme": theme,
65
+ "data-accent": accent,
66
+ className,
67
+ style,
68
+ children
69
+ }
70
+ ) });
71
+ }
72
+ function useTheme() {
73
+ const ctx = react.useContext(ThemeContext);
74
+ if (!ctx) throw new Error("useTheme must be used within <AcheryProvider>");
75
+ return ctx;
76
+ }
77
+
78
+ // src/theme/vars.css.ts
79
+ var vars = { color: { bg: "var(--color-bg__1acibxb0)", bg2: "var(--color-bg2__1acibxb1)", bgSunken: "var(--color-bgSunken__1acibxb2)", surface: "var(--color-surface__1acibxb3)", surface2: "var(--color-surface2__1acibxb4)", fg: "var(--color-fg__1acibxb5)", fg2: "var(--color-fg2__1acibxb6)", fg3: "var(--color-fg3__1acibxb7)", fgMute: "var(--color-fgMute__1acibxb8)", border: "var(--color-border__1acibxb9)", border2: "var(--color-border2__1acibxba)", borderMute: "var(--color-borderMute__1acibxbb)", rule: "var(--color-rule__1acibxbc)", accent: "var(--color-accent__1acibxbd)", accentFg: "var(--color-accentFg__1acibxbe)", accent2: "var(--color-accent2__1acibxbf)", accent3: "var(--color-accent3__1acibxbg)", success: "var(--color-success__1acibxbh)", warn: "var(--color-warn__1acibxbi)", danger: "var(--color-danger__1acibxbj)", info: "var(--color-info__1acibxbk)", selectionBg: "var(--color-selectionBg__1acibxbl)", selectionFg: "var(--color-selectionFg__1acibxbm)" }, font: { display: "var(--font-display__1acibxbn)", body: "var(--font-body__1acibxbo)", mono: "var(--font-mono__1acibxbp)" }, space: { sp1: "var(--space-sp1__1acibxbq)", sp2: "var(--space-sp2__1acibxbr)", sp3: "var(--space-sp3__1acibxbs)", sp4: "var(--space-sp4__1acibxbt)", sp5: "var(--space-sp5__1acibxbu)", sp6: "var(--space-sp6__1acibxbv)", sp7: "var(--space-sp7__1acibxbw)", sp8: "var(--space-sp8__1acibxbx)", sp9: "var(--space-sp9__1acibxby)", sp10: "var(--space-sp10__1acibxbz)", sp11: "var(--space-sp11__1acibxb10)", sp12: "var(--space-sp12__1acibxb11)" }, radius: { none: "var(--radius-none__1acibxb12)", hairline: "var(--radius-hairline__1acibxb13)", sm: "var(--radius-sm__1acibxb14)", pill: "var(--radius-pill__1acibxb15)" }, shadow: { stamp: "var(--shadow-stamp__1acibxb16)", stampLg: "var(--shadow-stampLg__1acibxb17)", press: "var(--shadow-press__1acibxb18)", soft: "var(--shadow-soft__1acibxb19)" }, duration: { fast: "var(--duration-fast__1acibxb1a)", base: "var(--duration-base__1acibxb1b)", slow: "var(--duration-slow__1acibxb1c)" }, ease: { out: "var(--ease-out__1acibxb1d)", snap: "var(--ease-snap__1acibxb1e)" } };
80
+
81
+ // src/glyphs/Glyph.css.ts
82
+ var glyph = "Glyph_glyph__kbvv420";
83
+ function ArrowRight(props) {
84
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.6", strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [
85
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M3 12h18" }),
86
+ /* @__PURE__ */ jsxRuntime.jsx("polyline", { points: "15,6 21,12 15,18" })
87
+ ] });
88
+ }
89
+ function ArrowUp(props) {
90
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.6", strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [
91
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 3v18" }),
92
+ /* @__PURE__ */ jsxRuntime.jsx("polyline", { points: "6,9 12,3 18,9" })
93
+ ] });
94
+ }
95
+ function Asterism(props) {
96
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { viewBox: "0 0 60 24", fill: "currentColor", ...props, children: [
97
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "14", cy: "16", r: "2" }),
98
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "30", cy: "8", r: "2" }),
99
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "46", cy: "16", r: "2" })
100
+ ] });
101
+ }
102
+ function Book(props) {
103
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.4", strokeLinejoin: "round", strokeLinecap: "round", ...props, children: [
104
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M4 5v14" }),
105
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M20 5v14" }),
106
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M4 5c4-1 8-1 8 1v14c0-2-4-2-8-1" }),
107
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M20 5c-4-1-8-1-8 1v14c0-2 4-2 8-1" })
108
+ ] });
109
+ }
110
+ function Circle(props) {
111
+ return /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.4", ...props, children: /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "8" }) });
112
+ }
113
+ function Compass(props) {
114
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.4", strokeLinejoin: "round", ...props, children: [
115
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "9" }),
116
+ /* @__PURE__ */ jsxRuntime.jsx("polygon", { points: "12,5 14,12 12,19 10,12", fill: "currentColor" })
117
+ ] });
118
+ }
119
+ function Cross(props) {
120
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.4", strokeLinecap: "round", ...props, children: [
121
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "5", y1: "5", x2: "19", y2: "19" }),
122
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "19", y1: "5", x2: "5", y2: "19" })
123
+ ] });
124
+ }
125
+ function Eye(props) {
126
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.4", strokeLinejoin: "round", strokeLinecap: "round", ...props, children: [
127
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M2 12c3-5 7-7 10-7s7 2 10 7c-3 5-7 7-10 7s-7-2-10-7z" }),
128
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "3" }),
129
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "1", fill: "currentColor" })
130
+ ] });
131
+ }
132
+ function Feather(props) {
133
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.4", strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [
134
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M20 4c-8 0-14 6-14 14v2h2c8 0 14-6 14-14V4z" }),
135
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M6 20L20 6" })
136
+ ] });
137
+ }
138
+ function Fern(props) {
139
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.4", strokeLinecap: "round", ...props, children: [
140
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 21V4" }),
141
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 4c-2 1-3 3-3 5" }),
142
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 9c-2 1-3 3-3 5" }),
143
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 14c-2 1-3 3-3 5" }),
144
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 6c2 1 3 3 3 5" }),
145
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 11c2 1 3 3 3 5" })
146
+ ] });
147
+ }
148
+ function Flask(props) {
149
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.4", strokeLinejoin: "round", strokeLinecap: "round", ...props, children: [
150
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M9 3h6" }),
151
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M10 3v6L5 19a2 2 0 0 0 2 3h10a2 2 0 0 0 2-3l-5-10V3" }),
152
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M7 15h10" })
153
+ ] });
154
+ }
155
+ function Flourish(props) {
156
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { viewBox: "0 0 120 24", fill: "none", stroke: "currentColor", strokeWidth: "1.2", strokeLinecap: "round", ...props, children: [
157
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M2 12 H42" }),
158
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M42 12 c4 -6 10 -6 14 0 c4 6 10 6 14 0" }),
159
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "60", cy: "12", r: "1.4", fill: "currentColor" }),
160
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M78 12 H118" })
161
+ ] });
162
+ }
163
+ function Hand(props) {
164
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.4", strokeLinejoin: "round", strokeLinecap: "round", ...props, children: [
165
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M8 21v-6l-3-3v-3a1 1 0 0 1 2 0v3" }),
166
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M8 12V5a1 1 0 0 1 2 0v6" }),
167
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M10 11V4a1 1 0 0 1 2 0v8" }),
168
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 12V6a1 1 0 0 1 2 0v8" }),
169
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M14 12v-3a1 1 0 0 1 2 0v9c0 2-2 4-4 4" })
170
+ ] });
171
+ }
172
+ function Hex(props) {
173
+ return /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.4", strokeLinejoin: "round", ...props, children: /* @__PURE__ */ jsxRuntime.jsx("polygon", { points: "12,3 21,8 21,16 12,21 3,16 3,8" }) });
174
+ }
175
+ function Key(props) {
176
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.4", strokeLinejoin: "round", strokeLinecap: "round", ...props, children: [
177
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "7", cy: "12", r: "4" }),
178
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M11 12h11" }),
179
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M18 12v4" }),
180
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M22 12v3" })
181
+ ] });
182
+ }
183
+ function Leaf(props) {
184
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.4", strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [
185
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M4 20c0-9 7-16 16-16 0 9-7 16-16 16z" }),
186
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M4 20l8-8" })
187
+ ] });
188
+ }
189
+ function Mark(props) {
190
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { viewBox: "0 0 80 80", fill: "currentColor", stroke: "currentColor", strokeLinejoin: "miter", strokeLinecap: "square", ...props, children: [
191
+ /* @__PURE__ */ jsxRuntime.jsx("polygon", { points: "40,4 72,22 72,58 40,76 8,58 8,22", fill: "none", strokeWidth: "6" }),
192
+ /* @__PURE__ */ jsxRuntime.jsx("polygon", { points: "40,12 56,32 24,32", stroke: "none" }),
193
+ /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "33", y: "28", width: "14", height: "30", stroke: "none" }),
194
+ /* @__PURE__ */ jsxRuntime.jsx("polygon", { points: "24,50 33,58 33,52", stroke: "none" }),
195
+ /* @__PURE__ */ jsxRuntime.jsx("polygon", { points: "56,50 47,58 47,52", stroke: "none" })
196
+ ] });
197
+ }
198
+ function Mercury(props) {
199
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.4", strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [
200
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "9", r: "5" }),
201
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 14v7" }),
202
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M8 18h8" }),
203
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M9 21h6" })
204
+ ] });
205
+ }
206
+ function Minus(props) {
207
+ return /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.6", strokeLinecap: "round", ...props, children: /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "4", y1: "12", x2: "20", y2: "12" }) });
208
+ }
209
+ function Moon(props) {
210
+ return /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.4", strokeLinecap: "round", strokeLinejoin: "round", ...props, children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M16 4a8 8 0 1 0 0 16 6 6 0 0 1 0-16z" }) });
211
+ }
212
+ function Plus(props) {
213
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.6", strokeLinecap: "round", ...props, children: [
214
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "12", y1: "4", x2: "12", y2: "20" }),
215
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "4", y1: "12", x2: "20", y2: "12" })
216
+ ] });
217
+ }
218
+ function Salt(props) {
219
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.4", strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [
220
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "8" }),
221
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M4 12h16" })
222
+ ] });
223
+ }
224
+ function Scroll(props) {
225
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.4", strokeLinejoin: "round", strokeLinecap: "round", ...props, children: [
226
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M5 6a2 2 0 0 1 4 0v12a2 2 0 0 0 4 0V8h6v10a3 3 0 0 1-3 3H7" }),
227
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M5 6v0a2 2 0 0 0 2 2h6" })
228
+ ] });
229
+ }
230
+ function Sigil(props) {
231
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { viewBox: "0 0 48 48", fill: "none", stroke: "currentColor", strokeWidth: "1.2", ...props, children: [
232
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "24", cy: "24", r: "20" }),
233
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "24", cy: "24", r: "14" }),
234
+ /* @__PURE__ */ jsxRuntime.jsx("polygon", { points: "24,8 38,32 10,32" }),
235
+ /* @__PURE__ */ jsxRuntime.jsx("polygon", { points: "24,40 10,16 38,16" }),
236
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "24", cy: "24", r: "3" })
237
+ ] });
238
+ }
239
+ function Sprig(props) {
240
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.4", strokeLinecap: "round", ...props, children: [
241
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 3v18" }),
242
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 7c-2-1-3-1-5-1 0 2 1 3 5 4" }),
243
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 11c2-1 3-1 5-1 0 2-1 3-5 4" }),
244
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 15c-2-1-3-1-5-1 0 2 1 3 5 4" })
245
+ ] });
246
+ }
247
+ function Square(props) {
248
+ return /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.4", ...props, children: /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "4", y: "4", width: "16", height: "16" }) });
249
+ }
250
+ function Star(props) {
251
+ return /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.4", strokeLinejoin: "round", ...props, children: /* @__PURE__ */ jsxRuntime.jsx("polygon", { points: "12,3 14,10 21,10 15.5,14 17.5,21 12,17 6.5,21 8.5,14 3,10 10,10" }) });
252
+ }
253
+ function Sulfur(props) {
254
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.4", strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [
255
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 3l4 6h-8z" }),
256
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "14", r: "4" }),
257
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 18v3" }),
258
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M9 21h6" })
259
+ ] });
260
+ }
261
+ function Sun(props) {
262
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.4", strokeLinecap: "round", ...props, children: [
263
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "7" }),
264
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "1.5", fill: "currentColor" })
265
+ ] });
266
+ }
267
+ function Tick(props) {
268
+ return /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.8", strokeLinecap: "round", strokeLinejoin: "round", ...props, children: /* @__PURE__ */ jsxRuntime.jsx("polyline", { points: "4,13 10,19 20,5" }) });
269
+ }
270
+ function TriangleDown(props) {
271
+ return /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.4", strokeLinejoin: "round", ...props, children: /* @__PURE__ */ jsxRuntime.jsx("polygon", { points: "12,20 21,4 3,4" }) });
272
+ }
273
+ function Triangle(props) {
274
+ return /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.4", strokeLinejoin: "round", ...props, children: /* @__PURE__ */ jsxRuntime.jsx("polygon", { points: "12,4 21,20 3,20" }) });
275
+ }
276
+ function Wordmark(props) {
277
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { viewBox: "0 0 320 80", fill: "currentColor", stroke: "currentColor", strokeLinejoin: "miter", strokeLinecap: "square", ...props, children: [
278
+ /* @__PURE__ */ jsxRuntime.jsxs("g", { transform: "translate(40,40) scale(0.72) translate(-40,-40)", children: [
279
+ /* @__PURE__ */ jsxRuntime.jsx("polygon", { points: "40,4 72,22 72,58 40,76 8,58 8,22", fill: "none", strokeWidth: "6" }),
280
+ /* @__PURE__ */ jsxRuntime.jsx("polygon", { points: "40,12 56,32 24,32", stroke: "none" }),
281
+ /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "33", y: "28", width: "14", height: "30", stroke: "none" }),
282
+ /* @__PURE__ */ jsxRuntime.jsx("polygon", { points: "24,50 33,58 33,52", stroke: "none" }),
283
+ /* @__PURE__ */ jsxRuntime.jsx("polygon", { points: "56,50 47,58 47,52", stroke: "none" })
284
+ ] }),
285
+ /* @__PURE__ */ jsxRuntime.jsx("g", { transform: "translate(82,52)", fontFamily: "'Roboto Slab', serif", fontWeight: "900", fontSize: "34", letterSpacing: "2", stroke: "none", children: /* @__PURE__ */ jsxRuntime.jsx("text", { x: "0", y: "0", children: "ACHERY" }) }),
286
+ /* @__PURE__ */ jsxRuntime.jsx("g", { transform: "translate(82,72)", fontFamily: "'Space Grotesk', sansSerif", fontWeight: "600", fontSize: "10", letterSpacing: "6", stroke: "none", children: /* @__PURE__ */ jsxRuntime.jsx("text", { x: "2", y: "0", children: "\u2014 W O R K S H O P \u2014" }) })
287
+ ] });
288
+ }
289
+ var glyphMap = {
290
+ "arrow-right": ArrowRight,
291
+ "arrow-up": ArrowUp,
292
+ "asterism": Asterism,
293
+ "book": Book,
294
+ "circle": Circle,
295
+ "compass": Compass,
296
+ "cross": Cross,
297
+ "eye": Eye,
298
+ "feather": Feather,
299
+ "fern": Fern,
300
+ "flask": Flask,
301
+ "flourish": Flourish,
302
+ "hand": Hand,
303
+ "hex": Hex,
304
+ "key": Key,
305
+ "leaf": Leaf,
306
+ "mark": Mark,
307
+ "mercury": Mercury,
308
+ "minus": Minus,
309
+ "moon": Moon,
310
+ "plus": Plus,
311
+ "salt": Salt,
312
+ "scroll": Scroll,
313
+ "sigil": Sigil,
314
+ "sprig": Sprig,
315
+ "square": Square,
316
+ "star": Star,
317
+ "sulfur": Sulfur,
318
+ "sun": Sun,
319
+ "tick": Tick,
320
+ "triangle": Triangle,
321
+ "triangle-down": TriangleDown,
322
+ "wordmark": Wordmark
323
+ };
324
+ function Glyph({ name, size = 16, title: title2, className, style, ...props }) {
325
+ const SvgComponent = glyphMap[name];
326
+ if (!SvgComponent) {
327
+ return /* @__PURE__ */ jsxRuntime.jsx(
328
+ "span",
329
+ {
330
+ className: [glyph, className].filter(Boolean).join(" "),
331
+ style: { width: size, height: size, display: "inline-block", ...style },
332
+ "aria-hidden": "true"
333
+ }
334
+ );
335
+ }
336
+ return /* @__PURE__ */ jsxRuntime.jsx(
337
+ SvgComponent,
338
+ {
339
+ width: size,
340
+ height: size,
341
+ "aria-hidden": title2 ? void 0 : true,
342
+ "aria-label": title2,
343
+ className: [glyph, className].filter(Boolean).join(" "),
344
+ style,
345
+ ...props
346
+ }
347
+ );
348
+ }
349
+
350
+ // src/components/Typography/Typography.css.ts
351
+ var body = "Typography_body__1v4lwgr6";
352
+ var bodyLead = "Typography_bodyLead__1v4lwgr7";
353
+ var bodySmall = "Typography_bodySmall__1v4lwgr8";
354
+ var display = "Typography_display__1v4lwgr0";
355
+ var h1 = "Typography_h1__1v4lwgr1";
356
+ var h2 = "Typography_h2__1v4lwgr2";
357
+ var h3 = "Typography_h3__1v4lwgr3";
358
+ var h4 = "Typography_h4__1v4lwgr4";
359
+ var h5 = "Typography_h5__1v4lwgr5";
360
+ var mono = "Typography_mono__1v4lwgr9";
361
+ var monoSmall = "Typography_monoSmall__1v4lwgra";
362
+ function Display({ as: Tag = "p", className, children, ...props }) {
363
+ return /* @__PURE__ */ jsxRuntime.jsx(Tag, { className: [display, className].filter(Boolean).join(" "), ...props, children });
364
+ }
365
+ var headingStyles = {
366
+ 1: h1,
367
+ 2: h2,
368
+ 3: h3,
369
+ 4: h4,
370
+ 5: h5
371
+ };
372
+ function Heading({ level = 1, className, children, ...props }) {
373
+ const Tag = `h${level}`;
374
+ const style = headingStyles[level];
375
+ return /* @__PURE__ */ jsxRuntime.jsx(Tag, { className: [style, className].filter(Boolean).join(" "), ...props, children });
376
+ }
377
+ var bodyStyles = {
378
+ base: body,
379
+ lead: bodyLead,
380
+ small: bodySmall
381
+ };
382
+ function Body({ variant = "base", className, children, ...props }) {
383
+ return /* @__PURE__ */ jsxRuntime.jsx("p", { className: [bodyStyles[variant], className].filter(Boolean).join(" "), ...props, children });
384
+ }
385
+ function Mono({ variant = "base", as: Tag = "span", className, children, ...props }) {
386
+ const s = variant === "small" ? monoSmall : mono;
387
+ return /* @__PURE__ */ jsxRuntime.jsx(Tag, { className: [s, className].filter(Boolean).join(" "), ...props, children });
388
+ }
389
+
390
+ // src/components/Eyebrow/Eyebrow.css.ts
391
+ var count = "Eyebrow_count__b8rlr31";
392
+ var eyebrow = "Eyebrow_eyebrow__b8rlr30";
393
+ function Eyebrow({ children, count: count2, after, className, ...props }) {
394
+ return /* @__PURE__ */ jsxRuntime.jsxs("span", { className: [eyebrow, className].filter(Boolean).join(" "), ...props, children: [
395
+ children,
396
+ count2 !== void 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: count, children: count2 }),
397
+ after
398
+ ] });
399
+ }
400
+ var badge = createRuntimeFn.createRuntimeFn({ defaultClassName: "Badge_badge__1ir6yu20", variantClassNames: { tone: { saved: "Badge_badge_tone_saved__1ir6yu21", drafting: "Badge_badge_tone_drafting__1ir6yu22", stopped: "Badge_badge_tone_stopped__1ir6yu23", archived: "Badge_badge_tone_archived__1ir6yu24", neutral: "Badge_badge_tone_neutral__1ir6yu25", success: "Badge_badge_tone_success__1ir6yu26", warn: "Badge_badge_tone_warn__1ir6yu27", danger: "Badge_badge_tone_danger__1ir6yu28", info: "Badge_badge_tone_info__1ir6yu29" }, variant: { outline: "Badge_badge_variant_outline__1ir6yu2a", solid: "Badge_badge_variant_solid__1ir6yu2b", pill: "Badge_badge_variant_pill__1ir6yu2c" } }, defaultVariants: { tone: "neutral", variant: "outline" }, compoundVariants: [[{ tone: "saved", variant: "outline" }, "Badge_badge_compound_0__1ir6yu2d"], [{ tone: "saved", variant: "solid" }, "Badge_badge_compound_1__1ir6yu2e"], [{ tone: "saved", variant: "pill" }, "Badge_badge_compound_2__1ir6yu2f"], [{ tone: "drafting", variant: "outline" }, "Badge_badge_compound_3__1ir6yu2g"], [{ tone: "drafting", variant: "solid" }, "Badge_badge_compound_4__1ir6yu2h"], [{ tone: "drafting", variant: "pill" }, "Badge_badge_compound_5__1ir6yu2i"], [{ tone: "stopped", variant: "outline" }, "Badge_badge_compound_6__1ir6yu2j"], [{ tone: "stopped", variant: "solid" }, "Badge_badge_compound_7__1ir6yu2k"], [{ tone: "stopped", variant: "pill" }, "Badge_badge_compound_8__1ir6yu2l"], [{ tone: "archived", variant: "outline" }, "Badge_badge_compound_9__1ir6yu2m"], [{ tone: "archived", variant: "solid" }, "Badge_badge_compound_10__1ir6yu2n"], [{ tone: "archived", variant: "pill" }, "Badge_badge_compound_11__1ir6yu2o"], [{ tone: "neutral", variant: "outline" }, "Badge_badge_compound_12__1ir6yu2p"], [{ tone: "neutral", variant: "solid" }, "Badge_badge_compound_13__1ir6yu2q"], [{ tone: "neutral", variant: "pill" }, "Badge_badge_compound_14__1ir6yu2r"], [{ tone: "success", variant: "outline" }, "Badge_badge_compound_15__1ir6yu2s"], [{ tone: "success", variant: "solid" }, "Badge_badge_compound_16__1ir6yu2t"], [{ tone: "success", variant: "pill" }, "Badge_badge_compound_17__1ir6yu2u"], [{ tone: "warn", variant: "outline" }, "Badge_badge_compound_18__1ir6yu2v"], [{ tone: "warn", variant: "solid" }, "Badge_badge_compound_19__1ir6yu2w"], [{ tone: "warn", variant: "pill" }, "Badge_badge_compound_20__1ir6yu2x"], [{ tone: "danger", variant: "outline" }, "Badge_badge_compound_21__1ir6yu2y"], [{ tone: "danger", variant: "solid" }, "Badge_badge_compound_22__1ir6yu2z"], [{ tone: "danger", variant: "pill" }, "Badge_badge_compound_23__1ir6yu210"], [{ tone: "info", variant: "outline" }, "Badge_badge_compound_24__1ir6yu211"], [{ tone: "info", variant: "solid" }, "Badge_badge_compound_25__1ir6yu212"], [{ tone: "info", variant: "pill" }, "Badge_badge_compound_26__1ir6yu213"]] });
401
+ var dot = "Badge_dot__1ir6yu214";
402
+ function Badge({
403
+ tone = "neutral",
404
+ variant = "outline",
405
+ dot: dot2 = false,
406
+ children,
407
+ className,
408
+ ...props
409
+ }) {
410
+ return /* @__PURE__ */ jsxRuntime.jsxs(
411
+ "span",
412
+ {
413
+ className: [badge({ tone, variant }), className].filter(Boolean).join(" "),
414
+ ...props,
415
+ children: [
416
+ dot2 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: dot, "aria-hidden": "true" }),
417
+ children
418
+ ]
419
+ }
420
+ );
421
+ }
422
+ var button = createRuntimeFn.createRuntimeFn({ defaultClassName: "Button_button__1torrqc0", variantClassNames: { variant: { primary: "Button_button_variant_primary__1torrqc1", secondary: "Button_button_variant_secondary__1torrqc2", accent: "Button_button_variant_accent__1torrqc3", ghost: "Button_button_variant_ghost__1torrqc4", danger: "Button_button_variant_danger__1torrqc5" }, size: { sm: "Button_button_size_sm__1torrqc6", md: "Button_button_size_md__1torrqc7" } }, defaultVariants: { variant: "secondary", size: "md" }, compoundVariants: [] });
423
+ var kbdHint = "Button_kbdHint__1torrqc8";
424
+ function Button({
425
+ variant = "secondary",
426
+ size = "md",
427
+ glyph: glyph2,
428
+ glyphPosition = "start",
429
+ kbd,
430
+ children,
431
+ className,
432
+ ...props
433
+ }) {
434
+ const glyphSize = size === "sm" ? 12 : 14;
435
+ return /* @__PURE__ */ jsxRuntime.jsxs(
436
+ "button",
437
+ {
438
+ className: [button({ variant, size }), className].filter(Boolean).join(" "),
439
+ ...props,
440
+ children: [
441
+ glyph2 && glyphPosition === "start" && /* @__PURE__ */ jsxRuntime.jsx(Glyph, { name: glyph2, size: glyphSize, "aria-hidden": "true" }),
442
+ children,
443
+ glyph2 && glyphPosition === "end" && /* @__PURE__ */ jsxRuntime.jsx(Glyph, { name: glyph2, size: glyphSize, "aria-hidden": "true" }),
444
+ kbd && /* @__PURE__ */ jsxRuntime.jsx("span", { className: kbdHint, children: kbd })
445
+ ]
446
+ }
447
+ );
448
+ }
449
+
450
+ // src/components/Toggle/Toggle.css.ts
451
+ var label = "Toggle_label__trpmwc3";
452
+ var thumb = "Toggle_thumb__trpmwc1";
453
+ var track = "Toggle_track__trpmwc0";
454
+ var wrapper = "Toggle_wrapper__trpmwc2";
455
+ function Toggle({
456
+ pressed,
457
+ defaultPressed,
458
+ onPressedChange,
459
+ disabled,
460
+ label: label3,
461
+ className,
462
+ "aria-label": ariaLabel
463
+ }) {
464
+ return /* @__PURE__ */ jsxRuntime.jsxs("span", { className: [wrapper, className].filter(Boolean).join(" "), children: [
465
+ /* @__PURE__ */ jsxRuntime.jsx(
466
+ RadixToggle__namespace.Root,
467
+ {
468
+ ...pressed !== void 0 ? { pressed } : {},
469
+ ...defaultPressed !== void 0 ? { defaultPressed } : {},
470
+ ...onPressedChange !== void 0 ? { onPressedChange } : {},
471
+ ...disabled !== void 0 ? { disabled } : {},
472
+ ...ariaLabel !== void 0 ? { "aria-label": ariaLabel } : {},
473
+ className: track,
474
+ children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: thumb })
475
+ }
476
+ ),
477
+ label3 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: label, children: label3 })
478
+ ] });
479
+ }
480
+
481
+ // src/components/Marginalia/Marginalia.css.ts
482
+ var marginalia = "Marginalia_marginalia__elc29z0";
483
+ function Marginalia({
484
+ glyph: glyph2 = "fern",
485
+ size = 120,
486
+ opacity = 0.4,
487
+ className,
488
+ style
489
+ }) {
490
+ return /* @__PURE__ */ jsxRuntime.jsx(
491
+ Glyph,
492
+ {
493
+ name: glyph2,
494
+ size,
495
+ className: [marginalia, className].filter(Boolean).join(" "),
496
+ style: { opacity, ...style },
497
+ "aria-hidden": "true"
498
+ }
499
+ );
500
+ }
501
+
502
+ // src/components/Input/Input.css.ts
503
+ var errorText = "Input_errorText__6w3tie3";
504
+ var fieldRoot = "Input_fieldRoot__6w3tie0";
505
+ var hint = "Input_hint__6w3tie2";
506
+ var inputBase = "Input_inputBase__6w3tie4";
507
+ var inputError = "Input_inputError__6w3tie5";
508
+ var label2 = "Input_label__6w3tie1";
509
+ var searchIcon = "Input_searchIcon__6w3tie9";
510
+ var searchInput = "Input_searchInput__6w3tiea Input_inputBase__6w3tie4";
511
+ var searchWrapper = "Input_searchWrapper__6w3tie8";
512
+ var selectInput = "Input_selectInput__6w3tie7 Input_inputBase__6w3tie4";
513
+ var textarea = "Input_textarea__6w3tie6 Input_inputBase__6w3tie4";
514
+ function Field({ label: label3, hint: hint2, error, children, className }) {
515
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: [fieldRoot, className].filter(Boolean).join(" "), children: [
516
+ label3 && /* @__PURE__ */ jsxRuntime.jsx("label", { className: label2, children: label3 }),
517
+ children,
518
+ error && /* @__PURE__ */ jsxRuntime.jsx("span", { className: errorText, children: error }),
519
+ !error && hint2 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: hint, children: hint2 })
520
+ ] });
521
+ }
522
+ function Input({ error, className, ...props }) {
523
+ return /* @__PURE__ */ jsxRuntime.jsx(
524
+ "input",
525
+ {
526
+ className: [inputBase, error && inputError, className].filter(Boolean).join(" "),
527
+ ...props
528
+ }
529
+ );
530
+ }
531
+ function Textarea({ error, className, ...props }) {
532
+ return /* @__PURE__ */ jsxRuntime.jsx(
533
+ "textarea",
534
+ {
535
+ className: [textarea, error && inputError, className].filter(Boolean).join(" "),
536
+ ...props
537
+ }
538
+ );
539
+ }
540
+ function Select({ error, children, className, ...props }) {
541
+ return /* @__PURE__ */ jsxRuntime.jsx(
542
+ "select",
543
+ {
544
+ className: [selectInput, error && inputError, className].filter(Boolean).join(" "),
545
+ ...props,
546
+ children
547
+ }
548
+ );
549
+ }
550
+ function SearchInput({ className, ...props }) {
551
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: [searchWrapper, className].filter(Boolean).join(" "), children: [
552
+ /* @__PURE__ */ jsxRuntime.jsx(Glyph, { name: "compass", size: 12, className: searchIcon, "aria-hidden": "true" }),
553
+ /* @__PURE__ */ jsxRuntime.jsx(
554
+ "input",
555
+ {
556
+ type: "search",
557
+ className: searchInput,
558
+ ...props
559
+ }
560
+ )
561
+ ] });
562
+ }
563
+ var card = createRuntimeFn.createRuntimeFn({ defaultClassName: "Card_card__1uprgrr0", variantClassNames: { variant: { flat: "Card_card_variant_flat__1uprgrr1", stamp: "Card_card_variant_stamp__1uprgrr2", stampLg: "Card_card_variant_stampLg__1uprgrr3" }, padding: { none: "Card_card_padding_none__1uprgrr4", sm: "Card_card_padding_sm__1uprgrr5", md: "Card_card_padding_md__1uprgrr6", lg: "Card_card_padding_lg__1uprgrr7" } }, defaultVariants: { variant: "flat", padding: "md" }, compoundVariants: [] });
564
+ var cardHeader = "Card_cardHeader__1uprgrr8";
565
+ function Card({
566
+ variant = "flat",
567
+ padding = "md",
568
+ header: header2,
569
+ marginalia: marginalia2,
570
+ marginaliaSize = 80,
571
+ children,
572
+ className,
573
+ ...props
574
+ }) {
575
+ return /* @__PURE__ */ jsxRuntime.jsxs(
576
+ "div",
577
+ {
578
+ className: [card({ variant, padding }), className].filter(Boolean).join(" "),
579
+ ...props,
580
+ children: [
581
+ header2 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cardHeader, children: header2 }),
582
+ children,
583
+ marginalia2 && /* @__PURE__ */ jsxRuntime.jsx(Marginalia, { glyph: marginalia2, size: marginaliaSize })
584
+ ]
585
+ }
586
+ );
587
+ }
588
+
589
+ // src/components/Tabs/Tabs.css.ts
590
+ var tab = "Tabs_tab__1b0xj9v1";
591
+ var tabList = "Tabs_tabList__1b0xj9v0";
592
+ var tabPanel = "Tabs_tabPanel__1b0xj9v2";
593
+ function Tabs({ items, value, defaultValue, onValueChange, className }) {
594
+ const resolvedDefault = defaultValue ?? items[0]?.value;
595
+ return /* @__PURE__ */ jsxRuntime.jsxs(
596
+ RadixTabs__namespace.Root,
597
+ {
598
+ ...value !== void 0 ? { value } : {},
599
+ ...resolvedDefault != null ? { defaultValue: resolvedDefault } : {},
600
+ ...onValueChange !== void 0 ? { onValueChange } : {},
601
+ ...className !== void 0 ? { className } : {},
602
+ children: [
603
+ /* @__PURE__ */ jsxRuntime.jsx(RadixTabs__namespace.List, { className: tabList, children: items.map((item) => /* @__PURE__ */ jsxRuntime.jsx(
604
+ RadixTabs__namespace.Trigger,
605
+ {
606
+ value: item.value,
607
+ disabled: item.disabled,
608
+ className: tab,
609
+ children: item.label
610
+ },
611
+ item.value
612
+ )) }),
613
+ items.map((item) => /* @__PURE__ */ jsxRuntime.jsx(
614
+ RadixTabs__namespace.Content,
615
+ {
616
+ value: item.value,
617
+ className: tabPanel,
618
+ children: item.content
619
+ },
620
+ item.value
621
+ ))
622
+ ]
623
+ }
624
+ );
625
+ }
626
+
627
+ // src/components/Tooltip/Tooltip.css.ts
628
+ var content = "Tooltip_content__o34woq1";
629
+ function Tooltip({
630
+ content: tooltipContent,
631
+ children,
632
+ side = "top",
633
+ delayDuration = 400,
634
+ open,
635
+ defaultOpen,
636
+ onOpenChange
637
+ }) {
638
+ return /* @__PURE__ */ jsxRuntime.jsx(RadixTooltip__namespace.Provider, { delayDuration, children: /* @__PURE__ */ jsxRuntime.jsxs(
639
+ RadixTooltip__namespace.Root,
640
+ {
641
+ ...open !== void 0 ? { open } : {},
642
+ ...defaultOpen !== void 0 ? { defaultOpen } : {},
643
+ ...onOpenChange !== void 0 ? { onOpenChange } : {},
644
+ children: [
645
+ /* @__PURE__ */ jsxRuntime.jsx(RadixTooltip__namespace.Trigger, { asChild: true, children }),
646
+ /* @__PURE__ */ jsxRuntime.jsx(RadixTooltip__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
647
+ RadixTooltip__namespace.Content,
648
+ {
649
+ side,
650
+ sideOffset: 6,
651
+ className: content,
652
+ children: tooltipContent
653
+ }
654
+ ) })
655
+ ]
656
+ }
657
+ ) });
658
+ }
659
+
660
+ // src/components/Sidebar/Sidebar.css.ts
661
+ var footer = "Sidebar_footer__1n0xxfc5";
662
+ var group = "Sidebar_group__1n0xxfc1";
663
+ var groupLabel = "Sidebar_groupLabel__1n0xxfc2";
664
+ var navItem = "Sidebar_navItem__1n0xxfc3";
665
+ var navItemCount = "Sidebar_navItemCount__1n0xxfc4";
666
+ var sidebar = "Sidebar_sidebar__1n0xxfc0";
667
+ function Sidebar({ groups, activeId, onItemClick, footer: footer3, className }) {
668
+ return /* @__PURE__ */ jsxRuntime.jsxs("nav", { className: [sidebar, className].filter(Boolean).join(" "), children: [
669
+ groups.map((group2, i) => /* @__PURE__ */ jsxRuntime.jsx(
670
+ NavGroup,
671
+ {
672
+ label: group2.label,
673
+ items: group2.items,
674
+ activeId,
675
+ onItemClick
676
+ },
677
+ i
678
+ )),
679
+ footer3 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: footer, children: footer3 })
680
+ ] });
681
+ }
682
+ function NavGroup({ label: label3, items, activeId, onItemClick }) {
683
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: group, children: [
684
+ label3 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: groupLabel, children: label3 }),
685
+ items.map((item) => /* @__PURE__ */ jsxRuntime.jsx(
686
+ NavItem,
687
+ {
688
+ item,
689
+ active: item.id === activeId,
690
+ onClick: () => onItemClick?.(item.id)
691
+ },
692
+ item.id
693
+ ))
694
+ ] });
695
+ }
696
+ function NavItem({ item, active, onClick }) {
697
+ const glyphStyle = active ? { filter: "invert(1)" } : void 0;
698
+ if (item.href) {
699
+ return /* @__PURE__ */ jsxRuntime.jsxs(
700
+ "a",
701
+ {
702
+ href: item.href,
703
+ className: navItem,
704
+ "data-active": active,
705
+ "aria-current": active ? "page" : void 0,
706
+ children: [
707
+ item.glyph ? /* @__PURE__ */ jsxRuntime.jsx(Glyph, { name: item.glyph, size: 14, style: glyphStyle, "aria-hidden": "true" }) : /* @__PURE__ */ jsxRuntime.jsx("span", {}),
708
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: item.label }),
709
+ item.count !== void 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: navItemCount, children: item.count })
710
+ ]
711
+ }
712
+ );
713
+ }
714
+ return /* @__PURE__ */ jsxRuntime.jsxs(
715
+ "button",
716
+ {
717
+ className: navItem,
718
+ "data-active": active,
719
+ onClick,
720
+ "aria-current": active ? "page" : void 0,
721
+ children: [
722
+ item.glyph ? /* @__PURE__ */ jsxRuntime.jsx(Glyph, { name: item.glyph, size: 14, style: glyphStyle, "aria-hidden": "true" }) : /* @__PURE__ */ jsxRuntime.jsx("span", {}),
723
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: item.label }),
724
+ item.count !== void 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: navItemCount, children: item.count })
725
+ ]
726
+ }
727
+ );
728
+ }
729
+
730
+ // src/components/AppBar/AppBar.css.ts
731
+ var accentPicker = "AppBar_accentPicker__uqki999";
732
+ var accentSwatch = "AppBar_accentSwatch__uqki99a";
733
+ var actions = "AppBar_actions__uqki998";
734
+ var appBar = "AppBar_appBar__uqki990";
735
+ var avatar = "AppBar_avatar__uqki99b";
736
+ var brand = "AppBar_brand__uqki991";
737
+ var brandDivider = "AppBar_brandDivider__uqki993";
738
+ var brandName = "AppBar_brandName__uqki992";
739
+ var brandSub = "AppBar_brandSub__uqki994";
740
+ var searchArea = "AppBar_searchArea__uqki995";
741
+ var searchInput2 = "AppBar_searchInput__uqki996";
742
+ var searchKbd = "AppBar_searchKbd__uqki997";
743
+ function AppBar({
744
+ brandName: brandName2 = "Achery",
745
+ brandSub: brandSub2,
746
+ showSearch = true,
747
+ searchPlaceholder = "Search\u2026",
748
+ searchKbd: searchKbd2,
749
+ actions: actions2,
750
+ accent = "terracotta",
751
+ onAccentChange,
752
+ onToggleTheme,
753
+ isDark,
754
+ avatarInitials,
755
+ onNewClick,
756
+ className
757
+ }) {
758
+ return /* @__PURE__ */ jsxRuntime.jsxs("header", { className: [appBar, className].filter(Boolean).join(" "), children: [
759
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: brand, children: [
760
+ /* @__PURE__ */ jsxRuntime.jsx(Glyph, { name: "hex", size: 20, "aria-hidden": "true" }),
761
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: brandName, children: brandName2 }),
762
+ brandSub2 && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
763
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: brandDivider }),
764
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: brandSub, children: brandSub2 })
765
+ ] })
766
+ ] }),
767
+ showSearch && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: searchArea, children: [
768
+ /* @__PURE__ */ jsxRuntime.jsx(Glyph, { name: "compass", size: 12, "aria-hidden": "true" }),
769
+ /* @__PURE__ */ jsxRuntime.jsx(
770
+ "input",
771
+ {
772
+ type: "search",
773
+ placeholder: searchPlaceholder,
774
+ className: searchInput2,
775
+ "aria-label": "Search"
776
+ }
777
+ ),
778
+ searchKbd2 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: searchKbd, children: searchKbd2 })
779
+ ] }),
780
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: actions, children: [
781
+ onAccentChange && /* @__PURE__ */ jsxRuntime.jsx("div", { className: accentPicker, role: "group", "aria-label": "Brand colour", children: chunkSSWJ4EPA_cjs.accentColorNames.map((name) => /* @__PURE__ */ jsxRuntime.jsx(
782
+ "button",
783
+ {
784
+ className: accentSwatch,
785
+ "data-active": name === accent,
786
+ onClick: () => onAccentChange(name),
787
+ "aria-label": name,
788
+ "aria-pressed": name === accent,
789
+ style: { background: chunkSSWJ4EPA_cjs.accentColors[name].main }
790
+ },
791
+ name
792
+ )) }),
793
+ onToggleTheme && /* @__PURE__ */ jsxRuntime.jsx(
794
+ Button,
795
+ {
796
+ variant: "ghost",
797
+ size: "sm",
798
+ glyph: isDark ? "sun" : "moon",
799
+ onClick: onToggleTheme,
800
+ "aria-label": isDark ? "Switch to light mode" : "Switch to dark mode"
801
+ }
802
+ ),
803
+ onNewClick && /* @__PURE__ */ jsxRuntime.jsx(Button, { variant: "accent", size: "sm", glyph: "plus", onClick: onNewClick, children: "New" }),
804
+ actions2,
805
+ avatarInitials && /* @__PURE__ */ jsxRuntime.jsx("div", { className: avatar, "aria-label": `User: ${avatarInitials}`, children: avatarInitials.slice(0, 2).toUpperCase() })
806
+ ] })
807
+ ] });
808
+ }
809
+
810
+ // src/components/Table/Table.css.ts
811
+ var sortIndicator = "Table_sortIndicator__1a2tbys5";
812
+ var table = "Table_table__1a2tbys1";
813
+ var tableWrapper = "Table_tableWrapper__1a2tbys0";
814
+ var td = "Table_td__1a2tbys7";
815
+ var tdMono = "Table_tdMono__1a2tbys8 Table_td__1a2tbys7";
816
+ var th = "Table_th__1a2tbys3";
817
+ var thSortable = "Table_thSortable__1a2tbys4 Table_th__1a2tbys3";
818
+ var thead = "Table_thead__1a2tbys2";
819
+ var tr = "Table_tr__1a2tbys6";
820
+ function Table({
821
+ columns,
822
+ data,
823
+ rowKey,
824
+ selectedKeys,
825
+ onRowClick,
826
+ sortKey: controlledSortKey,
827
+ sortDir: controlledSortDir,
828
+ defaultSortKey,
829
+ defaultSortDir = null,
830
+ onSortChange,
831
+ className
832
+ }) {
833
+ const [internalSortKey, setInternalSortKey] = react.useState(defaultSortKey ?? null);
834
+ const [internalSortDir, setInternalSortDir] = react.useState(defaultSortDir);
835
+ const isControlled = controlledSortKey !== void 0;
836
+ const activeSortKey = isControlled ? controlledSortKey ?? null : internalSortKey;
837
+ const activeSortDir = isControlled ? controlledSortDir ?? null : internalSortDir;
838
+ const handleSort = (key) => {
839
+ let nextDir;
840
+ if (activeSortKey === key) {
841
+ nextDir = activeSortDir === "asc" ? "desc" : activeSortDir === "desc" ? null : "asc";
842
+ } else {
843
+ nextDir = "asc";
844
+ }
845
+ const nextKey = nextDir === null ? null : key;
846
+ if (!isControlled) {
847
+ setInternalSortKey(nextKey);
848
+ setInternalSortDir(nextDir);
849
+ }
850
+ onSortChange?.(key, nextDir);
851
+ };
852
+ const sortedData = react.useMemo(() => {
853
+ if (!activeSortKey || !activeSortDir) return data;
854
+ return [...data].sort((a, b) => {
855
+ const av = a[activeSortKey];
856
+ const bv = b[activeSortKey];
857
+ const cmp = String(av ?? "").localeCompare(String(bv ?? ""), void 0, { numeric: true });
858
+ return activeSortDir === "asc" ? cmp : -cmp;
859
+ });
860
+ }, [data, activeSortKey, activeSortDir]);
861
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: [tableWrapper, className].filter(Boolean).join(" "), children: /* @__PURE__ */ jsxRuntime.jsxs("table", { className: table, children: [
862
+ /* @__PURE__ */ jsxRuntime.jsx("thead", { className: thead, children: /* @__PURE__ */ jsxRuntime.jsx("tr", { children: columns.map((col) => /* @__PURE__ */ jsxRuntime.jsxs(
863
+ "th",
864
+ {
865
+ className: col.sortable ? thSortable : th,
866
+ style: col.width ? { width: col.width } : void 0,
867
+ onClick: col.sortable ? () => handleSort(col.key) : void 0,
868
+ "aria-sort": activeSortKey === col.key ? activeSortDir === "asc" ? "ascending" : "descending" : void 0,
869
+ children: [
870
+ col.label,
871
+ col.sortable && activeSortKey === col.key && activeSortDir && /* @__PURE__ */ jsxRuntime.jsx("span", { className: sortIndicator, "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsx(Glyph, { name: activeSortDir === "asc" ? "arrow-up" : "arrow-right", size: 10 }) })
872
+ ]
873
+ },
874
+ col.key
875
+ )) }) }),
876
+ /* @__PURE__ */ jsxRuntime.jsx("tbody", { children: sortedData.map((row) => {
877
+ const key = rowKey(row);
878
+ const isSelected = selectedKeys?.includes(key) ?? false;
879
+ return /* @__PURE__ */ jsxRuntime.jsx(
880
+ "tr",
881
+ {
882
+ className: tr,
883
+ "data-selected": isSelected,
884
+ onClick: onRowClick ? () => onRowClick(key, row) : void 0,
885
+ style: onRowClick ? { cursor: "pointer" } : void 0,
886
+ children: columns.map((col) => /* @__PURE__ */ jsxRuntime.jsx("td", { className: col.mono ? tdMono : td, children: col.render ? col.render(row) : String(row[col.key] ?? "") }, col.key))
887
+ },
888
+ key
889
+ );
890
+ }) })
891
+ ] }) });
892
+ }
893
+
894
+ // src/components/Modal/Modal.css.ts
895
+ var body2 = "Modal_body__1kcb5si8";
896
+ var closeButton = "Modal_closeButton__1kcb5si7";
897
+ var content2 = "Modal_content__1kcb5si3";
898
+ var description = "Modal_description__1kcb5si6";
899
+ var footer2 = "Modal_footer__1kcb5si9";
900
+ var header = "Modal_header__1kcb5si4";
901
+ var overlay = "Modal_overlay__1kcb5si2";
902
+ var title = "Modal_title__1kcb5si5";
903
+ function Modal({
904
+ open,
905
+ defaultOpen,
906
+ onOpenChange,
907
+ title: title2,
908
+ description: description2,
909
+ children,
910
+ footer: footer3,
911
+ trigger,
912
+ className
913
+ }) {
914
+ return /* @__PURE__ */ jsxRuntime.jsxs(
915
+ RadixDialog__namespace.Root,
916
+ {
917
+ ...open !== void 0 ? { open } : {},
918
+ ...defaultOpen !== void 0 ? { defaultOpen } : {},
919
+ ...onOpenChange !== void 0 ? { onOpenChange } : {},
920
+ children: [
921
+ trigger && /* @__PURE__ */ jsxRuntime.jsx(RadixDialog__namespace.Trigger, { asChild: true, children: trigger }),
922
+ /* @__PURE__ */ jsxRuntime.jsxs(RadixDialog__namespace.Portal, { children: [
923
+ /* @__PURE__ */ jsxRuntime.jsx(RadixDialog__namespace.Overlay, { className: overlay }),
924
+ /* @__PURE__ */ jsxRuntime.jsxs(
925
+ RadixDialog__namespace.Content,
926
+ {
927
+ className: [content2, className].filter(Boolean).join(" "),
928
+ "aria-describedby": description2 ? "modal-description" : void 0,
929
+ children: [
930
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: header, children: [
931
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
932
+ title2 && /* @__PURE__ */ jsxRuntime.jsx(RadixDialog__namespace.Title, { className: title, children: title2 }),
933
+ description2 && /* @__PURE__ */ jsxRuntime.jsx(RadixDialog__namespace.Description, { id: "modal-description", className: description, children: description2 })
934
+ ] }),
935
+ /* @__PURE__ */ jsxRuntime.jsx(RadixDialog__namespace.Close, { className: closeButton, "aria-label": "Close", children: /* @__PURE__ */ jsxRuntime.jsx(Glyph, { name: "cross", size: 14, "aria-hidden": "true" }) })
936
+ ] }),
937
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: body2, children }),
938
+ footer3 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: footer2, children: footer3 })
939
+ ]
940
+ }
941
+ )
942
+ ] })
943
+ ]
944
+ }
945
+ );
946
+ }
947
+
948
+ // src/components/Toast/Toast.css.ts
949
+ var toast = "Toast_toast__1btt01v3";
950
+ var toastAction = "Toast_toastAction__1btt01v7";
951
+ var toastClose = "Toast_toastClose__1btt01v6";
952
+ var toastDescription = "Toast_toastDescription__1btt01v5";
953
+ var toastTitle = "Toast_toastTitle__1btt01v4";
954
+ var viewport = "Toast_viewport__1btt01v2";
955
+ var ToastContext = react.createContext(null);
956
+ function useToast() {
957
+ const ctx = react.useContext(ToastContext);
958
+ if (!ctx) throw new Error("useToast must be used within <ToastProvider>");
959
+ return ctx;
960
+ }
961
+ function ToastProvider({ children }) {
962
+ const [toasts, setToasts] = react.useState([]);
963
+ const toast2 = react.useCallback((data) => {
964
+ const id = String(Date.now());
965
+ setToasts((prev) => [...prev, { ...data, id }]);
966
+ const duration = data.duration ?? 4e3;
967
+ if (duration > 0) {
968
+ setTimeout(() => {
969
+ setToasts((prev) => prev.filter((t) => t.id !== id));
970
+ }, duration);
971
+ }
972
+ }, []);
973
+ const dismiss = (id) => setToasts((prev) => prev.filter((t) => t.id !== id));
974
+ return /* @__PURE__ */ jsxRuntime.jsxs(ToastContext.Provider, { value: { toast: toast2 }, children: [
975
+ children,
976
+ typeof document !== "undefined" && reactDom.createPortal(
977
+ /* @__PURE__ */ jsxRuntime.jsx("ol", { className: viewport, "aria-live": "polite", "aria-label": "Notifications", children: toasts.map((t) => /* @__PURE__ */ jsxRuntime.jsxs("li", { className: toast, role: "status", children: [
978
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
979
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: toastTitle, children: t.title }),
980
+ t.description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: toastDescription, children: t.description }),
981
+ t.action && /* @__PURE__ */ jsxRuntime.jsx("div", { className: toastAction, children: t.action })
982
+ ] }),
983
+ /* @__PURE__ */ jsxRuntime.jsx(
984
+ "button",
985
+ {
986
+ className: toastClose,
987
+ onClick: () => dismiss(t.id),
988
+ "aria-label": "Dismiss",
989
+ children: /* @__PURE__ */ jsxRuntime.jsx(Glyph, { name: "cross", size: 12, "aria-hidden": "true" })
990
+ }
991
+ )
992
+ ] }, t.id)) }),
993
+ document.body
994
+ )
995
+ ] });
996
+ }
997
+
998
+ exports.AcheryProvider = AcheryProvider;
999
+ exports.AppBar = AppBar;
1000
+ exports.Badge = Badge;
1001
+ exports.Body = Body;
1002
+ exports.Button = Button;
1003
+ exports.Card = Card;
1004
+ exports.Display = Display;
1005
+ exports.Eyebrow = Eyebrow;
1006
+ exports.Field = Field;
1007
+ exports.Glyph = Glyph;
1008
+ exports.Heading = Heading;
1009
+ exports.Input = Input;
1010
+ exports.Marginalia = Marginalia;
1011
+ exports.Modal = Modal;
1012
+ exports.Mono = Mono;
1013
+ exports.SearchInput = SearchInput;
1014
+ exports.Select = Select;
1015
+ exports.Sidebar = Sidebar;
1016
+ exports.Table = Table;
1017
+ exports.Tabs = Tabs;
1018
+ exports.Textarea = Textarea;
1019
+ exports.ToastProvider = ToastProvider;
1020
+ exports.Toggle = Toggle;
1021
+ exports.Tooltip = Tooltip;
1022
+ exports.useTheme = useTheme;
1023
+ exports.useToast = useToast;
1024
+ exports.vars = vars;
1025
+ //# sourceMappingURL=index.cjs.map
1026
+ //# sourceMappingURL=index.cjs.map