@quilltap/theme-storybook 1.0.97 → 1.0.100

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -15,2898 +15,21 @@ var __copyProps = (to, from, except, desc) => {
15
15
  }
16
16
  return to;
17
17
  };
18
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
18
19
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
20
 
20
21
  // src/index.ts
21
22
  var src_exports = {};
22
23
  __export(src_exports, {
23
- Avatars: () => Avatars,
24
- Badges: () => Badges,
25
- Buttons: () => Buttons,
26
- Cards: () => Cards,
27
- Chat: () => Chat,
28
- ColorGroup: () => ColorGroup,
29
- ColorPalette: () => ColorPalette,
30
- ColorSwatch: () => ColorSwatch,
31
- Dialogs: () => Dialogs,
32
- EmptyState: () => EmptyState,
33
- FilePreview: () => FilePreview,
34
- Icons: () => Icons,
35
- Inputs: () => Inputs,
36
- Loading: () => Loading,
37
- Participant: () => Participant,
38
- Spacing: () => Spacing,
39
- Surfaces: () => Surfaces,
40
- Tabs: () => Tabs,
41
- Terminal: () => Terminal,
42
- ThemeComparison: () => ThemeComparison,
43
- ThemeDecorator: () => ThemeDecorator,
44
- Typography: () => Typography,
45
- Workspace: () => Workspace,
46
- defaultPreview: () => defaultPreview
24
+ ThemeDecorator: () => import_preview.ThemeDecorator,
25
+ defaultPreview: () => import_preview.defaultPreview
47
26
  });
48
27
  module.exports = __toCommonJS(src_exports);
49
-
50
- // src/preview.tsx
51
- var import_jsx_runtime = require("react/jsx-runtime");
52
- var ThemeDecorator = (Story, context) => {
53
- const globals = context.globals;
54
- const theme = globals.theme || "default";
55
- const colorMode = globals.colorMode || "light";
56
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
57
- "div",
58
- {
59
- "data-theme": theme === "default" ? void 0 : theme,
60
- className: colorMode === "dark" ? "dark" : "",
61
- style: {
62
- padding: "2rem",
63
- minHeight: "100vh",
64
- backgroundColor: "var(--color-background)",
65
- color: "var(--color-foreground)",
66
- transition: "background-color 0.3s, color 0.3s"
67
- },
68
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Story, {})
69
- }
70
- );
71
- };
72
- var defaultPreview = {
73
- globalTypes: {
74
- theme: {
75
- description: "Theme for components",
76
- defaultValue: "default",
77
- toolbar: {
78
- title: "Theme",
79
- icon: "paintbrush",
80
- items: [
81
- { value: "default", title: "Quilltap Default" }
82
- // Theme plugins should add their theme here
83
- ],
84
- dynamicTitle: true
85
- }
86
- },
87
- colorMode: {
88
- description: "Color mode",
89
- defaultValue: "light",
90
- toolbar: {
91
- title: "Color Mode",
92
- icon: "sun",
93
- items: [
94
- { value: "light", title: "Light" },
95
- { value: "dark", title: "Dark" }
96
- ],
97
- dynamicTitle: true
98
- }
99
- }
100
- },
101
- decorators: [ThemeDecorator],
102
- parameters: {
103
- backgrounds: {
104
- disable: true
105
- // We handle backgrounds via theme
106
- },
107
- layout: "padded"
108
- }
109
- };
110
-
111
- // src/stories/components/ColorPalette.tsx
112
- var import_jsx_runtime2 = require("react/jsx-runtime");
113
- var ColorSwatch = ({ name, variable, description }) => /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: "1rem", padding: "0.5rem" }, children: [
114
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
115
- "div",
116
- {
117
- style: {
118
- width: "4rem",
119
- height: "4rem",
120
- borderRadius: "0.5rem",
121
- border: "1px solid var(--color-border)",
122
- boxShadow: "0 1px 3px 0 rgb(0 0 0 / 0.1)",
123
- backgroundColor: `var(${variable})`
124
- }
125
- }
126
- ),
127
- /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { children: [
128
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { style: { fontWeight: 600, fontSize: "0.875rem" }, children: name }),
129
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("code", { style: { fontSize: "0.75rem", color: "var(--color-muted-foreground)" }, children: variable }),
130
- description && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { style: { fontSize: "0.75rem", color: "var(--color-muted-foreground)", marginTop: "0.25rem" }, children: description })
131
- ] })
132
- ] });
133
- var ColorGroup = ({ title, colors }) => /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { style: { marginBottom: "2rem" }, children: [
134
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: title }),
135
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { style: { display: "grid", gridTemplateColumns: "repeat(auto-fill, minmax(280px, 1fr))", gap: "1rem" }, children: colors.map((color) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(ColorSwatch, { ...color }, color.variable)) })
136
- ] });
137
- var ColorPalette = () => {
138
- const baseColors = [
139
- { name: "Background", variable: "--color-background", description: "Page background" },
140
- { name: "Foreground", variable: "--color-foreground", description: "Primary text" },
141
- { name: "Card", variable: "--color-card", description: "Card backgrounds" },
142
- { name: "Card Foreground", variable: "--color-card-foreground", description: "Text on cards" },
143
- { name: "Muted", variable: "--color-muted", description: "Subtle backgrounds" },
144
- { name: "Muted Foreground", variable: "--color-muted-foreground", description: "Secondary text" },
145
- { name: "Border", variable: "--color-border", description: "Default borders" },
146
- { name: "Input", variable: "--color-input", description: "Input borders" },
147
- { name: "Ring", variable: "--color-ring", description: "Focus rings" }
148
- ];
149
- const semanticColors = [
150
- { name: "Primary", variable: "--color-primary", description: "Primary actions" },
151
- { name: "Primary Foreground", variable: "--color-primary-foreground", description: "Text on primary" },
152
- { name: "Secondary", variable: "--color-secondary", description: "Secondary actions" },
153
- { name: "Secondary Foreground", variable: "--color-secondary-foreground", description: "Text on secondary" },
154
- { name: "Destructive", variable: "--color-destructive", description: "Dangerous actions" },
155
- { name: "Destructive Foreground", variable: "--color-destructive-foreground", description: "Text on destructive" }
156
- ];
157
- const statusColors = [
158
- { name: "Success", variable: "--color-success", description: "Success states" },
159
- { name: "Warning", variable: "--color-warning", description: "Warning states" },
160
- { name: "Info", variable: "--color-info", description: "Informational" }
161
- ];
162
- const chatColors = [
163
- { name: "Chat User", variable: "--color-chat-user", description: "User message background" },
164
- { name: "Chat User Foreground", variable: "--color-chat-user-foreground", description: "User message text" }
165
- ];
166
- const componentTokens = [
167
- { name: "Button Primary BG", variable: "--qt-button-primary-bg", description: "Primary button background" },
168
- { name: "Button Primary Hover", variable: "--qt-button-primary-hover-bg", description: "Primary button hover" },
169
- { name: "Card BG", variable: "--qt-card-bg", description: "Card background" },
170
- { name: "Card Border", variable: "--qt-card-border", description: "Card border" },
171
- { name: "Input BG", variable: "--qt-input-bg", description: "Input background" },
172
- { name: "Input Border", variable: "--qt-input-border", description: "Input border" }
173
- ];
174
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { style: { padding: "1.5rem" }, children: [
175
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("h2", { style: { fontSize: "1.5rem", fontWeight: 700, marginBottom: "1.5rem" }, children: "Color Palette" }),
176
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { style: { color: "var(--color-muted-foreground)", marginBottom: "2rem" }, children: "These colors are defined by the current theme. Switch themes using the toolbar to see how they change." }),
177
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(ColorGroup, { title: "Base Colors", colors: baseColors }),
178
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(ColorGroup, { title: "Semantic Colors", colors: semanticColors }),
179
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(ColorGroup, { title: "Status Colors", colors: statusColors }),
180
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(ColorGroup, { title: "Chat Colors", colors: chatColors }),
181
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(ColorGroup, { title: "Component Tokens", colors: componentTokens })
182
- ] });
183
- };
184
-
185
- // src/stories/components/Icons.tsx
186
- var import_jsx_runtime3 = require("react/jsx-runtime");
187
- var ICON_GROUPS = [
188
- {
189
- category: "General UI",
190
- names: [
191
- "close",
192
- "pencil",
193
- "refresh",
194
- "check",
195
- "check-circle",
196
- "chat",
197
- "info",
198
- "trash",
199
- "copy",
200
- "plus",
201
- "minus",
202
- "search",
203
- "download",
204
- "upload",
205
- "cloud-upload",
206
- "external-link",
207
- "link",
208
- "send",
209
- "paperclip",
210
- "eye",
211
- "eye-off",
212
- "star",
213
- "bookmark",
214
- "tag",
215
- "expand",
216
- "compress"
217
- ]
218
- },
219
- {
220
- category: "Navigation arrows",
221
- names: [
222
- "chevron-down",
223
- "chevron-right",
224
- "chevron-left",
225
- "arrow-left",
226
- "arrow-right",
227
- "arrow-up",
228
- "arrow-down",
229
- "sort"
230
- ]
231
- },
232
- {
233
- category: "Status & alerts",
234
- names: ["alert-triangle", "alert-circle", "shield", "ban", "clock", "calendar"]
235
- },
236
- {
237
- category: "Media",
238
- names: ["image", "camera", "play", "pause", "stop", "stop-sign", "hand-raised", "zoom-in", "zoom-out"]
239
- },
240
- {
241
- category: "Content & sidebar navigation",
242
- names: [
243
- "projects",
244
- "files",
245
- "file",
246
- "file-plus",
247
- "folder",
248
- "folder-plus",
249
- "book",
250
- "characters",
251
- "scriptorium",
252
- "photos",
253
- "scenarios"
254
- ]
255
- },
256
- {
257
- category: "People",
258
- names: ["profile", "user", "user-plus", "users", "megaphone", "dice", "inventory"]
259
- },
260
- {
261
- category: "System & tooling",
262
- names: ["sparkles", "wand", "thinking", "wrench", "code", "cpu", "database", "layers", "zap", "swap", "log-out"]
263
- },
264
- {
265
- category: "Appearance & system",
266
- names: ["settings", "themes", "wardrobe", "help", "sun", "moon", "monitor"]
267
- },
268
- {
269
- category: "Brand",
270
- names: ["brand"]
271
- }
272
- ];
273
- var sectionHeading = {
274
- fontSize: "1.125rem",
275
- fontWeight: 700,
276
- marginBottom: "1rem",
277
- borderBottom: "1px solid var(--color-border)",
278
- paddingBottom: "0.5rem"
279
- };
280
- var chip = {
281
- fontFamily: "var(--theme-font-mono, ui-monospace, monospace)",
282
- fontSize: "0.8125rem",
283
- padding: "0.25rem 0.6rem",
284
- borderRadius: "var(--radius-md, 0.375rem)",
285
- border: "1px solid var(--color-border)",
286
- background: "var(--color-muted)",
287
- color: "var(--color-foreground)"
288
- };
289
- var codeBlock = {
290
- fontFamily: "var(--theme-font-mono, ui-monospace, monospace)",
291
- fontSize: "0.8125rem",
292
- background: "var(--color-muted)",
293
- color: "var(--color-foreground)",
294
- border: "1px solid var(--color-border)",
295
- borderRadius: "var(--radius-md, 0.375rem)",
296
- padding: "1rem",
297
- overflowX: "auto",
298
- lineHeight: 1.6
299
- };
300
- var Icons = () => {
301
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { style: { padding: "1.5rem" }, children: [
302
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("h2", { style: { fontSize: "1.5rem", fontWeight: 700, marginBottom: "0.5rem" }, children: "Icons" }),
303
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("p", { style: { color: "var(--color-muted-foreground)", marginBottom: "2rem", maxWidth: "46rem" }, children: "Quilltap renders its UI icons through a central registry, so a theme can replace any of them. The default icons are monochrome and follow the current text color; a theme overrides an icon by mapping its name to a bundled asset." }),
304
- /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("section", { style: { marginBottom: "2.5rem" }, children: [
305
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("h3", { style: sectionHeading, children: "Overriding an icon" }),
306
- /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("p", { style: { color: "var(--color-muted-foreground)", marginBottom: "1rem", maxWidth: "46rem" }, children: [
307
- "Drop replacement assets into your bundle's ",
308
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("code", { children: "icons/" }),
309
- " folder and add an",
310
- " ",
311
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("code", { children: "icons" }),
312
- " map to ",
313
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("code", { children: "theme.json" }),
314
- ", keyed by the built-in icon name:"
315
- ] }),
316
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("pre", { style: codeBlock, children: `{
317
- "icons": {
318
- "settings": "icons/settings.svg",
319
- "brand": "icons/brand.webp"
320
- }
321
- }` }),
322
- /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("ul", { style: { color: "var(--color-muted-foreground)", marginTop: "1rem", maxWidth: "46rem", lineHeight: 1.7 }, children: [
323
- /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("li", { children: [
324
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("strong", { style: { color: "var(--color-foreground)" }, children: ".svg overrides" }),
325
- " are tinted by the current text color, exactly like the built-in icons \u2014 best for monochrome glyphs that should follow the theme."
326
- ] }),
327
- /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("li", { children: [
328
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("strong", { style: { color: "var(--color-foreground)" }, children: ".webp overrides" }),
329
- " are drawn in full color \u2014 best for textured or multi-color marks."
330
- ] }),
331
- /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("li", { children: [
332
- "The ",
333
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("code", { children: "brand" }),
334
- " mark follows the same rule: an ",
335
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("code", { children: ".svg" }),
336
- " override is tinted like any other icon, so ship it as ",
337
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("code", { children: ".webp" }),
338
- " if it should keep its own colors."
339
- ] }),
340
- /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("li", { children: [
341
- "Names must match the built-in names below; unknown names are ignored. Run",
342
- " ",
343
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("code", { children: "quilltap themes validate" }),
344
- " to catch typos and bad asset paths."
345
- ] })
346
- ] })
347
- ] }),
348
- /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("section", { children: [
349
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("h3", { style: sectionHeading, children: "Override-able icon names" }),
350
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { style: { display: "flex", flexDirection: "column", gap: "1.5rem" }, children: ICON_GROUPS.map((group) => /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { children: [
351
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("p", { style: { fontWeight: 600, marginBottom: "0.6rem", fontSize: "0.9375rem" }, children: group.category }),
352
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { style: { display: "flex", flexWrap: "wrap", gap: "0.5rem" }, children: group.names.map((name) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("code", { style: chip, children: name }, name)) })
353
- ] }, group.category)) })
354
- ] })
355
- ] });
356
- };
357
-
358
- // src/stories/components/Typography.tsx
359
- var import_jsx_runtime4 = require("react/jsx-runtime");
360
- var Typography = () => {
361
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { style: { padding: "1.5rem" }, children: [
362
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("h2", { style: { fontSize: "1.5rem", fontWeight: 700, marginBottom: "1.5rem" }, children: "Typography" }),
363
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
364
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Headings (qt-heading-*)" }),
365
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: "0.75rem" }, children: [
366
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { children: [
367
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("h1", { className: "qt-heading-1", children: "Heading 1 - The quick brown fox" }),
368
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("code", { style: { fontSize: "0.75rem", color: "var(--color-muted-foreground)" }, children: ".qt-heading-1" })
369
- ] }),
370
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { children: [
371
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("h2", { className: "qt-heading-2", children: "Heading 2 - The quick brown fox" }),
372
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("code", { style: { fontSize: "0.75rem", color: "var(--color-muted-foreground)" }, children: ".qt-heading-2" })
373
- ] }),
374
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { children: [
375
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("h3", { className: "qt-heading-3", children: "Heading 3 - The quick brown fox" }),
376
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("code", { style: { fontSize: "0.75rem", color: "var(--color-muted-foreground)" }, children: ".qt-heading-3" })
377
- ] }),
378
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { children: [
379
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("h4", { className: "qt-heading-4", children: "Heading 4 - The quick brown fox" }),
380
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("code", { style: { fontSize: "0.75rem", color: "var(--color-muted-foreground)" }, children: ".qt-heading-4" })
381
- ] })
382
- ] })
383
- ] }),
384
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
385
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Body Text" }),
386
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: "1rem", maxWidth: "40rem" }, children: [
387
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { children: [
388
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("p", { className: "qt-text-lead", children: "Lead text - Used for introductory paragraphs that need more emphasis. The quick brown fox jumps over the lazy dog." }),
389
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("code", { style: { fontSize: "0.75rem", color: "var(--color-muted-foreground)" }, children: ".qt-text-lead" })
390
- ] }),
391
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { children: [
392
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("p", { className: "qt-text-large", children: "Large text - Slightly larger than body text for emphasis. The quick brown fox jumps over the lazy dog." }),
393
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("code", { style: { fontSize: "0.75rem", color: "var(--color-muted-foreground)" }, children: ".qt-text-large" })
394
- ] }),
395
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { children: [
396
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("p", { children: "Default body text - The standard text size for most content. The quick brown fox jumps over the lazy dog. Pack my box with five dozen liquor jugs." }),
397
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("code", { style: { fontSize: "0.75rem", color: "var(--color-muted-foreground)" }, children: "default / no class" })
398
- ] }),
399
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { children: [
400
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("p", { className: "qt-text-small", children: "Small text - For less important or supplementary information. The quick brown fox jumps over the lazy dog." }),
401
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("code", { style: { fontSize: "0.75rem", color: "var(--color-muted-foreground)" }, children: ".qt-text-small" })
402
- ] }),
403
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { children: [
404
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("p", { className: "qt-text-xs", children: "Extra small text - For fine print, captions, or metadata. The quick brown fox jumps over the lazy dog." }),
405
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("code", { style: { fontSize: "0.75rem", color: "var(--color-muted-foreground)" }, children: ".qt-text-xs" })
406
- ] })
407
- ] })
408
- ] }),
409
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
410
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Text Colors" }),
411
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: "0.5rem" }, children: [
412
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { children: [
413
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("p", { children: "Default text color" }),
414
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("code", { style: { fontSize: "0.75rem", color: "var(--color-muted-foreground)" }, children: "default" })
415
- ] }),
416
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { children: [
417
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("p", { className: "qt-text-muted", children: "Muted text - For secondary content" }),
418
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("code", { style: { fontSize: "0.75rem", color: "var(--color-muted-foreground)" }, children: ".qt-text-muted" })
419
- ] }),
420
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { children: [
421
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("p", { className: "qt-text-primary", children: "Primary text - For emphasis and links" }),
422
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("code", { style: { fontSize: "0.75rem", color: "var(--color-muted-foreground)" }, children: ".qt-text-primary" })
423
- ] }),
424
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { children: [
425
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("p", { className: "qt-text-success", children: "Success text - For positive messages" }),
426
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("code", { style: { fontSize: "0.75rem", color: "var(--color-muted-foreground)" }, children: ".qt-text-success" })
427
- ] }),
428
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { children: [
429
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("p", { className: "qt-text-warning", children: "Warning text - For caution messages" }),
430
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("code", { style: { fontSize: "0.75rem", color: "var(--color-muted-foreground)" }, children: ".qt-text-warning" })
431
- ] }),
432
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { children: [
433
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("p", { className: "qt-text-destructive", children: "Destructive text - For error messages" }),
434
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("code", { style: { fontSize: "0.75rem", color: "var(--color-muted-foreground)" }, children: ".qt-text-destructive" })
435
- ] }),
436
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { children: [
437
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("p", { className: "qt-text-info", children: "Info text - For informational messages" }),
438
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("code", { style: { fontSize: "0.75rem", color: "var(--color-muted-foreground)" }, children: ".qt-text-info" })
439
- ] })
440
- ] })
441
- ] }),
442
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
443
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Labels & UI Text" }),
444
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: "0.75rem" }, children: [
445
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { children: [
446
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "qt-label", children: "Form Label" }),
447
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("code", { style: { fontSize: "0.75rem", color: "var(--color-muted-foreground)", marginLeft: "1rem" }, children: ".qt-label" })
448
- ] }),
449
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { children: [
450
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "qt-hint", children: "Hint text for form fields" }),
451
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("code", { style: { fontSize: "0.75rem", color: "var(--color-muted-foreground)", marginLeft: "1rem" }, children: ".qt-hint" })
452
- ] }),
453
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { children: [
454
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "qt-text-label", children: "UI Label Text" }),
455
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("code", { style: { fontSize: "0.75rem", color: "var(--color-muted-foreground)", marginLeft: "1rem" }, children: ".qt-text-label" })
456
- ] }),
457
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { children: [
458
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "qt-text-section", children: "Section Header" }),
459
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("code", { style: { fontSize: "0.75rem", color: "var(--color-muted-foreground)", marginLeft: "1rem" }, children: ".qt-text-section" })
460
- ] })
461
- ] })
462
- ] }),
463
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
464
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Code & Monospace" }),
465
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: "0.75rem" }, children: [
466
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { children: [
467
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("code", { className: "qt-code-inline", children: "inline code example" }),
468
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { style: { fontSize: "0.75rem", color: "var(--color-muted-foreground)", marginLeft: "1rem" }, children: ".qt-code-inline" })
469
- ] }),
470
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { children: [
471
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("pre", { className: "qt-code-block", children: `function greet(name: string): string {
472
- return \`Hello, \${name}!\`;
473
- }
474
-
475
- console.log(greet('World'));` }),
476
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("code", { style: { fontSize: "0.75rem", color: "var(--color-muted-foreground)" }, children: ".qt-code-block" })
477
- ] })
478
- ] })
479
- ] }),
480
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
481
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Prose (Long-form Content)" }),
482
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "qt-prose", style: { maxWidth: "40rem" }, children: [
483
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("h3", { children: "Article Title" }),
484
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("p", { children: [
485
- "This is an example of the ",
486
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("code", { children: ".qt-prose" }),
487
- " class applied to a container. It provides sensible defaults for long-form content like articles, documentation, and chat messages."
488
- ] }),
489
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("p", { children: "The quick brown fox jumps over the lazy dog. Pack my box with five dozen liquor jugs. How vexingly quick daft zebras jump! The five boxing wizards jump quickly." }),
490
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("h4", { children: "Subsection" }),
491
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("p", { children: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris." })
492
- ] }),
493
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("code", { style: { fontSize: "0.75rem", color: "var(--color-muted-foreground)" }, children: ".qt-prose" })
494
- ] }),
495
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
496
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Font Families" }),
497
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: "1rem" }, children: [
498
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { children: [
499
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("code", { style: { fontSize: "0.75rem", color: "var(--color-muted-foreground)" }, children: "--font-sans" }),
500
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("p", { style: { fontFamily: "var(--font-sans)", fontSize: "1.125rem", marginTop: "0.25rem" }, children: "The quick brown fox jumps over the lazy dog." })
501
- ] }),
502
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { children: [
503
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("code", { style: { fontSize: "0.75rem", color: "var(--color-muted-foreground)" }, children: "--font-serif" }),
504
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("p", { style: { fontFamily: "var(--font-serif)", fontSize: "1.125rem", marginTop: "0.25rem" }, children: "The quick brown fox jumps over the lazy dog." })
505
- ] }),
506
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { children: [
507
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("code", { style: { fontSize: "0.75rem", color: "var(--color-muted-foreground)" }, children: "--font-mono" }),
508
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("p", { style: { fontFamily: "var(--font-mono)", fontSize: "1.125rem", marginTop: "0.25rem" }, children: "The quick brown fox jumps over the lazy dog." })
509
- ] })
510
- ] })
511
- ] })
512
- ] });
513
- };
514
-
515
- // src/stories/components/Spacing.tsx
516
- var import_jsx_runtime5 = require("react/jsx-runtime");
517
- var Spacing = () => {
518
- const radiusTokens = [
519
- { name: "None", variable: "0", value: "0" },
520
- { name: "Small", variable: "--radius-sm", value: "var(--radius-sm)" },
521
- { name: "Medium", variable: "--radius-md", value: "var(--radius-md)" },
522
- { name: "Large", variable: "--radius-lg", value: "var(--radius-lg)" },
523
- { name: "Extra Large", variable: "--radius-xl", value: "var(--radius-xl)" },
524
- { name: "Full", variable: "9999px", value: "9999px" }
525
- ];
526
- const componentRadii = [
527
- { name: "Button", variable: "--qt-button-radius" },
528
- { name: "Card", variable: "--qt-card-radius" },
529
- { name: "Input", variable: "--qt-input-radius" },
530
- { name: "Dialog", variable: "--qt-dialog-radius" },
531
- { name: "Badge", variable: "--qt-badge-radius" },
532
- { name: "Avatar", variable: "--qt-avatar-radius" },
533
- { name: "Chat Message", variable: "--qt-chat-message-radius" }
534
- ];
535
- const shadowTokens = [
536
- { name: "Card Shadow", variable: "--qt-card-shadow" },
537
- { name: "Card Hover Shadow", variable: "--qt-card-shadow-hover" },
538
- { name: "Panel Shadow", variable: "--qt-panel-shadow" },
539
- { name: "Dialog Shadow", variable: "--qt-dialog-shadow" },
540
- { name: "Popover Shadow", variable: "--qt-popover-shadow" },
541
- { name: "Button Primary Shadow", variable: "--qt-button-primary-shadow" },
542
- { name: "Chat Message Shadow", variable: "--qt-chat-message-shadow" }
543
- ];
544
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: { padding: "1.5rem" }, children: [
545
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("h2", { style: { fontSize: "1.5rem", fontWeight: 700, marginBottom: "1.5rem" }, children: "Spacing & Borders" }),
546
- /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
547
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Border Radius Scale" }),
548
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: { display: "grid", gridTemplateColumns: "repeat(auto-fill, minmax(6rem, 1fr))", gap: "1.5rem" }, children: radiusTokens.map(({ name, variable, value }) => /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: { textAlign: "center" }, children: [
549
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
550
- "div",
551
- {
552
- style: {
553
- width: "5rem",
554
- height: "5rem",
555
- backgroundColor: "var(--color-primary)",
556
- borderRadius: value,
557
- margin: "0 auto 0.5rem"
558
- }
559
- }
560
- ),
561
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: { fontWeight: 500, fontSize: "0.875rem" }, children: name }),
562
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("code", { style: { fontSize: "0.75rem", color: "var(--color-muted-foreground)" }, children: variable })
563
- ] }, variable)) })
564
- ] }),
565
- /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
566
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Component Border Radii" }),
567
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: { display: "grid", gridTemplateColumns: "repeat(auto-fill, minmax(8rem, 1fr))", gap: "1.5rem" }, children: componentRadii.map(({ name, variable }) => /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: { textAlign: "center" }, children: [
568
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
569
- "div",
570
- {
571
- style: {
572
- width: "6rem",
573
- height: "4rem",
574
- backgroundColor: "var(--color-muted)",
575
- border: "1px solid var(--color-border)",
576
- borderRadius: `var(${variable})`,
577
- margin: "0 auto 0.5rem"
578
- }
579
- }
580
- ),
581
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: { fontWeight: 500, fontSize: "0.875rem" }, children: name }),
582
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("code", { style: { fontSize: "0.75rem", color: "var(--color-muted-foreground)" }, children: variable })
583
- ] }, variable)) })
584
- ] }),
585
- /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
586
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Shadows" }),
587
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: { display: "grid", gridTemplateColumns: "repeat(auto-fill, minmax(10rem, 1fr))", gap: "1.5rem" }, children: shadowTokens.map(({ name, variable }) => /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: { padding: "1rem" }, children: [
588
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
589
- "div",
590
- {
591
- style: {
592
- width: "100%",
593
- height: "6rem",
594
- backgroundColor: "var(--color-background)",
595
- borderRadius: "var(--radius-lg)",
596
- boxShadow: `var(${variable})`,
597
- marginBottom: "0.5rem"
598
- }
599
- }
600
- ),
601
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: { fontWeight: 500, fontSize: "0.875rem" }, children: name }),
602
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("code", { style: { fontSize: "0.75rem", color: "var(--color-muted-foreground)" }, children: variable })
603
- ] }, variable)) })
604
- ] }),
605
- /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
606
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Padding Tokens" }),
607
- /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: "1rem" }, children: [
608
- /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: "1rem" }, children: [
609
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
610
- "div",
611
- {
612
- style: {
613
- backgroundColor: "var(--color-primary)",
614
- color: "var(--color-background)",
615
- padding: "var(--qt-button-padding-y) var(--qt-button-padding-x)",
616
- borderRadius: "var(--radius-md)"
617
- },
618
- children: "Button padding"
619
- }
620
- ),
621
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("code", { style: { fontSize: "0.75rem", color: "var(--color-muted-foreground)" }, children: "--qt-button-padding-x, --qt-button-padding-y" })
622
- ] }),
623
- /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: "1rem" }, children: [
624
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
625
- "div",
626
- {
627
- style: {
628
- backgroundColor: "var(--color-muted)",
629
- padding: "var(--qt-card-padding)",
630
- border: "1px solid var(--color-border)",
631
- borderRadius: "var(--radius-md)"
632
- },
633
- children: "Card padding"
634
- }
635
- ),
636
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("code", { style: { fontSize: "0.75rem", color: "var(--color-muted-foreground)" }, children: "--qt-card-padding" })
637
- ] }),
638
- /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: "1rem" }, children: [
639
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
640
- "div",
641
- {
642
- style: {
643
- backgroundColor: "var(--color-muted)",
644
- padding: "var(--qt-input-padding-y) var(--qt-input-padding-x)",
645
- border: "1px solid var(--color-border)",
646
- borderRadius: "var(--radius-md)"
647
- },
648
- children: "Input padding"
649
- }
650
- ),
651
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("code", { style: { fontSize: "0.75rem", color: "var(--color-muted-foreground)" }, children: "--qt-input-padding-x, --qt-input-padding-y" })
652
- ] }),
653
- /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: "1rem" }, children: [
654
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
655
- "div",
656
- {
657
- style: {
658
- backgroundColor: "var(--color-muted)",
659
- padding: "var(--qt-chat-message-padding)",
660
- border: "1px solid var(--color-border)",
661
- borderRadius: "var(--radius-md)"
662
- },
663
- children: "Chat message padding"
664
- }
665
- ),
666
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("code", { style: { fontSize: "0.75rem", color: "var(--color-muted-foreground)" }, children: "--qt-chat-message-padding" })
667
- ] })
668
- ] })
669
- ] }),
670
- /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("section", { children: [
671
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Layout Dimensions" }),
672
- /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: "1rem" }, children: [
673
- /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: "1rem" }, children: [
674
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
675
- "div",
676
- {
677
- style: {
678
- backgroundColor: "var(--color-muted)",
679
- display: "flex",
680
- alignItems: "center",
681
- justifyContent: "center",
682
- height: "var(--qt-navbar-height)",
683
- width: "200px",
684
- border: "1px solid var(--color-border)"
685
- },
686
- children: "Navbar height"
687
- }
688
- ),
689
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("code", { style: { fontSize: "0.75rem", color: "var(--color-muted-foreground)" }, children: "--qt-navbar-height" })
690
- ] }),
691
- /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: "1rem" }, children: [
692
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
693
- "div",
694
- {
695
- style: {
696
- backgroundColor: "var(--color-muted)",
697
- display: "flex",
698
- alignItems: "center",
699
- justifyContent: "center",
700
- width: "var(--qt-sidebar-width)",
701
- height: "100px",
702
- border: "1px solid var(--color-border)"
703
- },
704
- children: "Sidebar width"
705
- }
706
- ),
707
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("code", { style: { fontSize: "0.75rem", color: "var(--color-muted-foreground)" }, children: "--qt-sidebar-width" })
708
- ] }),
709
- /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: "1rem" }, children: [
710
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
711
- "div",
712
- {
713
- style: {
714
- backgroundColor: "var(--color-muted)",
715
- display: "flex",
716
- alignItems: "center",
717
- justifyContent: "center",
718
- width: "var(--qt-chat-sidebar-width)",
719
- height: "100px",
720
- border: "1px solid var(--color-border)"
721
- },
722
- children: "Chat sidebar width"
723
- }
724
- ),
725
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("code", { style: { fontSize: "0.75rem", color: "var(--color-muted-foreground)" }, children: "--qt-chat-sidebar-width" })
726
- ] })
727
- ] })
728
- ] })
729
- ] });
730
- };
731
-
732
- // src/stories/components/Buttons.tsx
733
- var import_jsx_runtime6 = require("react/jsx-runtime");
734
- var Buttons = () => {
735
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { style: { padding: "1.5rem" }, children: [
736
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("h2", { style: { fontSize: "1.5rem", fontWeight: 700, marginBottom: "1.5rem" }, children: "Buttons" }),
737
- /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
738
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Button Variants" }),
739
- /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { style: { display: "flex", flexWrap: "wrap", gap: "1rem" }, children: [
740
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("button", { className: "qt-button qt-button-primary", children: "Primary" }),
741
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("button", { className: "qt-button qt-button-secondary", children: "Secondary" }),
742
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("button", { className: "qt-button qt-button-ghost", children: "Ghost" }),
743
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("button", { className: "qt-button qt-button-destructive", children: "Destructive" })
744
- ] })
745
- ] }),
746
- /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
747
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Button Sizes" }),
748
- /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { style: { display: "flex", flexWrap: "wrap", alignItems: "center", gap: "1rem" }, children: [
749
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("button", { className: "qt-button qt-button-primary qt-button-sm", children: "Small" }),
750
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("button", { className: "qt-button qt-button-primary", children: "Default" }),
751
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("button", { className: "qt-button qt-button-primary qt-button-lg", children: "Large" })
752
- ] })
753
- ] }),
754
- /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
755
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Disabled States" }),
756
- /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { style: { display: "flex", flexWrap: "wrap", gap: "1rem" }, children: [
757
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("button", { className: "qt-button qt-button-primary", disabled: true, children: "Primary" }),
758
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("button", { className: "qt-button qt-button-secondary", disabled: true, children: "Secondary" }),
759
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("button", { className: "qt-button qt-button-ghost", disabled: true, children: "Ghost" }),
760
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("button", { className: "qt-button qt-button-destructive", disabled: true, children: "Destructive" })
761
- ] })
762
- ] }),
763
- /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
764
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Icon Buttons" }),
765
- /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { style: { display: "flex", gap: "0.5rem" }, children: [
766
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("button", { className: "qt-button-icon", "aria-label": "Settings", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("svg", { width: "20", height: "20", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: [
767
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z" }),
768
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 12a3 3 0 11-6 0 3 3 0 016 0z" })
769
- ] }) }),
770
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("button", { className: "qt-button-icon", "aria-label": "Close", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("svg", { width: "20", height: "20", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) }) }),
771
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("button", { className: "qt-button-icon", "aria-label": "Add", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("svg", { width: "20", height: "20", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 4v16m8-8H4" }) }) }),
772
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("button", { className: "qt-button-icon", "aria-label": "More", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("svg", { width: "20", height: "20", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 5v.01M12 12v.01M12 19v.01M12 6a1 1 0 110-2 1 1 0 010 2zm0 7a1 1 0 110-2 1 1 0 010 2zm0 7a1 1 0 110-2 1 1 0 010 2z" }) }) })
773
- ] })
774
- ] }),
775
- /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("section", { children: [
776
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Button Groups" }),
777
- /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { style: { display: "flex", gap: "0.5rem" }, children: [
778
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("button", { className: "qt-button qt-button-ghost", children: "Cancel" }),
779
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("button", { className: "qt-button qt-button-primary", children: "Save Changes" })
780
- ] })
781
- ] })
782
- ] });
783
- };
784
-
785
- // src/stories/components/Cards.tsx
786
- var import_jsx_runtime7 = require("react/jsx-runtime");
787
- var Cards = () => {
788
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { style: { padding: "1.5rem" }, children: [
789
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("h2", { style: { fontSize: "1.5rem", fontWeight: 700, marginBottom: "1.5rem" }, children: "Cards" }),
790
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
791
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Basic Card" }),
792
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "qt-card", style: { maxWidth: "24rem" }, children: [
793
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "qt-card-header", children: [
794
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("h4", { className: "qt-card-title", children: "Card Title" }),
795
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("p", { className: "qt-card-description", children: "Card description goes here." })
796
- ] }),
797
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "qt-card-body", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("p", { children: "This is the card body content. It can contain any content you want." }) }),
798
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "qt-card-footer", children: [
799
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("button", { className: "qt-button qt-button-ghost", children: "Cancel" }),
800
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("button", { className: "qt-button qt-button-primary", children: "Save" })
801
- ] })
802
- ] })
803
- ] }),
804
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
805
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Interactive Card" }),
806
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "qt-card qt-card-interactive", style: { maxWidth: "24rem", cursor: "pointer" }, children: [
807
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "qt-card-header", children: [
808
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("h4", { className: "qt-card-title", children: "Clickable Card" }),
809
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("p", { className: "qt-card-description", children: "Hover over me to see the effect." })
810
- ] }),
811
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "qt-card-body", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("p", { children: "This card has hover states and can be clicked." }) })
812
- ] })
813
- ] }),
814
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
815
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Entity Cards" }),
816
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("p", { style: { color: "var(--color-muted-foreground)", marginBottom: "1rem" }, children: "Used for characters, chats, and other list items." }),
817
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: { display: "grid", gridTemplateColumns: "repeat(auto-fill, minmax(16rem, 1fr))", gap: "1rem" }, children: ["Alice", "Bob", "Carol"].map((name) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "qt-entity-card", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: "0.75rem", padding: "1rem" }, children: [
818
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "qt-avatar", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "qt-avatar-fallback", children: name[0] }) }),
819
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { children: [
820
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("h4", { style: { fontWeight: 600 }, children: [
821
- name,
822
- " Character"
823
- ] }),
824
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("p", { style: { fontSize: "0.875rem", color: "var(--color-muted-foreground)" }, children: "A friendly character" })
825
- ] })
826
- ] }) }, name)) })
827
- ] }),
828
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
829
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Character Cards" }),
830
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("p", { style: { color: "var(--color-muted-foreground)", marginBottom: "1rem" }, children: "Compact cards used on the homepage grid. Centered layout with avatar, name, title, provider badge, and action." }),
831
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: { display: "grid", gridTemplateColumns: "repeat(3, minmax(0, 140px))", gap: "0.75rem" }, children: [
832
- { name: "Alice", title: "The Adventurer", provider: "Claude Sonnet" },
833
- { name: "Bob", title: "The Keeper of Many Long Titles", provider: "GPT-4o" },
834
- { name: "Carol", title: "Scribe", provider: "Gemini Pro" }
835
- ].map((char) => /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "qt-character-card", children: [
836
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "qt-avatar", style: { width: "3rem", height: "3rem" }, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "qt-avatar-fallback", children: char.name[0] }) }),
837
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { style: { textAlign: "center", width: "100%", minWidth: 0 }, children: [
838
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("p", { className: "qt-card-title", style: { overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap" }, children: char.name }),
839
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("p", { className: "qt-card-subtitle", style: { fontStyle: "italic", minHeight: "2.5rem" }, children: char.title }),
840
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { style: { fontSize: "0.75rem", opacity: 0.6 }, children: char.provider })
841
- ] }),
842
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("button", { className: "qt-button-success qt-button-sm", style: { marginTop: "auto", width: "100%" }, children: "Chat" })
843
- ] }, char.name)) })
844
- ] }),
845
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
846
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Card Grid" }),
847
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "qt-card-grid-3", children: [
848
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "qt-card", style: { padding: "1rem" }, children: [
849
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("h4", { style: { fontWeight: 600, marginBottom: "0.5rem" }, children: "Card 1" }),
850
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("p", { style: { fontSize: "0.875rem", color: "var(--color-muted-foreground)" }, children: "Grid card content" })
851
- ] }),
852
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "qt-card", style: { padding: "1rem" }, children: [
853
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("h4", { style: { fontWeight: 600, marginBottom: "0.5rem" }, children: "Card 2" }),
854
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("p", { style: { fontSize: "0.875rem", color: "var(--color-muted-foreground)" }, children: "Grid card content" })
855
- ] }),
856
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "qt-card", style: { padding: "1rem" }, children: [
857
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("h4", { style: { fontWeight: 600, marginBottom: "0.5rem" }, children: "Card 3" }),
858
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("p", { style: { fontSize: "0.875rem", color: "var(--color-muted-foreground)" }, children: "Grid card content" })
859
- ] })
860
- ] })
861
- ] }),
862
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
863
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Panels" }),
864
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { style: { display: "flex", gap: "1rem", flexWrap: "wrap" }, children: [
865
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "qt-panel", style: { padding: "1.5rem", maxWidth: "20rem" }, children: [
866
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("h4", { style: { fontWeight: 600, marginBottom: "0.5rem" }, children: "Basic Panel" }),
867
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("p", { style: { color: "var(--color-muted-foreground)" }, children: "Panels are similar to cards but often used for larger content areas." })
868
- ] }),
869
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "qt-panel qt-panel-elevated", style: { padding: "1.5rem", maxWidth: "20rem" }, children: [
870
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("h4", { style: { fontWeight: 600, marginBottom: "0.5rem" }, children: "Elevated Panel" }),
871
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("p", { style: { color: "var(--color-muted-foreground)" }, children: "This panel has additional shadow for emphasis." })
872
- ] })
873
- ] })
874
- ] })
875
- ] });
876
- };
877
-
878
- // src/stories/components/Inputs.tsx
879
- var import_jsx_runtime8 = require("react/jsx-runtime");
880
- var Inputs = () => {
881
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: { padding: "1.5rem" }, children: [
882
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("h2", { style: { fontSize: "1.5rem", fontWeight: 700, marginBottom: "1.5rem" }, children: "Inputs" }),
883
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
884
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Text Inputs" }),
885
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: "1rem", maxWidth: "24rem" }, children: [
886
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { children: [
887
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("label", { className: "qt-label", children: "Default" }),
888
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("input", { className: "qt-input", type: "text", placeholder: "Enter text..." })
889
- ] }),
890
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { children: [
891
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("label", { className: "qt-label", children: "With Hint" }),
892
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("input", { className: "qt-input", type: "text", placeholder: "Enter email..." }),
893
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: "qt-hint", children: "We'll never share your email." })
894
- ] }),
895
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { children: [
896
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("label", { className: "qt-label", children: "With Value" }),
897
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("input", { className: "qt-input", type: "text", defaultValue: "Sample text" })
898
- ] }),
899
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { children: [
900
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("label", { className: "qt-label", children: "Disabled" }),
901
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("input", { className: "qt-input", type: "text", placeholder: "Disabled input", disabled: true })
902
- ] }),
903
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { children: [
904
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("label", { className: "qt-label", children: "With Error" }),
905
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("input", { className: "qt-input qt-input-error", type: "text", placeholder: "Invalid input" }),
906
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: "qt-hint", style: { color: "var(--color-destructive)" }, children: "This field is required." })
907
- ] })
908
- ] })
909
- ] }),
910
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
911
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Textarea" }),
912
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: { maxWidth: "24rem" }, children: [
913
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("label", { className: "qt-label", children: "Message" }),
914
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
915
- "textarea",
916
- {
917
- className: "qt-input qt-textarea",
918
- placeholder: "Enter your message...",
919
- style: { minHeight: "6rem" }
920
- }
921
- )
922
- ] })
923
- ] }),
924
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
925
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Select" }),
926
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: { maxWidth: "24rem" }, children: [
927
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("label", { className: "qt-label", children: "Choose an option" }),
928
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("select", { className: "qt-input qt-select", children: [
929
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("option", { value: "", children: "Select an option..." }),
930
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("option", { value: "1", children: "Option 1" }),
931
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("option", { value: "2", children: "Option 2" }),
932
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("option", { value: "3", children: "Option 3" })
933
- ] })
934
- ] })
935
- ] }),
936
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
937
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Checkboxes & Radios" }),
938
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: "0.75rem", maxWidth: "24rem" }, children: [
939
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: "0.5rem" }, children: [
940
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("input", { type: "checkbox", id: "check1", className: "qt-checkbox" }),
941
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("label", { htmlFor: "check1", style: { margin: 0 }, children: "Checkbox option" })
942
- ] }),
943
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: "0.5rem" }, children: [
944
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("input", { type: "checkbox", id: "check2", className: "qt-checkbox", defaultChecked: true }),
945
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("label", { htmlFor: "check2", style: { margin: 0 }, children: "Checked checkbox" })
946
- ] }),
947
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: "0.5rem" }, children: [
948
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("input", { type: "checkbox", id: "check3", className: "qt-checkbox", disabled: true }),
949
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("label", { htmlFor: "check3", style: { margin: 0, color: "var(--color-muted-foreground)" }, children: "Disabled checkbox" })
950
- ] }),
951
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: "0.5rem", marginTop: "0.5rem" }, children: [
952
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("input", { type: "radio", name: "radio", id: "radio1", className: "qt-radio" }),
953
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("label", { htmlFor: "radio1", style: { margin: 0 }, children: "Radio option 1" })
954
- ] }),
955
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: "0.5rem" }, children: [
956
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("input", { type: "radio", name: "radio", id: "radio2", className: "qt-radio", defaultChecked: true }),
957
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("label", { htmlFor: "radio2", style: { margin: 0 }, children: "Radio option 2" })
958
- ] })
959
- ] })
960
- ] }),
961
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
962
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Range Sliders" }),
963
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: "1rem", maxWidth: "24rem" }, children: [
964
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { children: [
965
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("label", { className: "qt-label", htmlFor: "range1", children: "Temperature" }),
966
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("input", { type: "range", id: "range1", className: "qt-range", style: { width: "100%" }, min: 0, max: 100, defaultValue: 65 })
967
- ] }),
968
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { children: [
969
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("label", { className: "qt-label", htmlFor: "range2", style: { color: "var(--color-muted-foreground)" }, children: "Disabled slider" }),
970
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("input", { type: "range", id: "range2", className: "qt-range", style: { width: "100%" }, min: 0, max: 100, defaultValue: 35, disabled: true })
971
- ] })
972
- ] }),
973
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("p", { style: { fontSize: "0.75rem", color: "var(--color-muted-foreground)", marginTop: "0.75rem", maxWidth: "32rem" }, children: [
974
- "Sliders render natively; ",
975
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("code", { children: "--qt-range-accent" }),
976
- " colours both the filled portion of the track and the thumb. Overriding ",
977
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("code", { children: ".qt-range" }),
978
- " with",
979
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("code", { children: " appearance: none" }),
980
- " gives a theme full control of the track, but drops the filled bar in Chrome and Safari."
981
- ] })
982
- ] }),
983
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
984
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Links" }),
985
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: "0.75rem" }, children: [
986
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("a", { href: "#", className: "qt-link", children: "Default link" }) }),
987
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("a", { href: "#", className: "qt-link-subtle", children: "Subtle link" }) })
988
- ] })
989
- ] }),
990
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("section", { children: [
991
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Form Example" }),
992
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: "qt-card", style: { maxWidth: "24rem" }, children: [
993
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: "qt-card-header", children: [
994
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("h4", { className: "qt-card-title", children: "Contact Form" }),
995
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("p", { className: "qt-card-description", children: "Fill out the form below." })
996
- ] }),
997
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: "qt-card-body", style: { display: "flex", flexDirection: "column", gap: "1rem" }, children: [
998
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { children: [
999
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("label", { className: "qt-label", children: "Name" }),
1000
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("input", { className: "qt-input", type: "text", placeholder: "Your name" })
1001
- ] }),
1002
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { children: [
1003
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("label", { className: "qt-label", children: "Email" }),
1004
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("input", { className: "qt-input", type: "email", placeholder: "you@example.com" })
1005
- ] }),
1006
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { children: [
1007
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("label", { className: "qt-label", children: "Message" }),
1008
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("textarea", { className: "qt-input qt-textarea", placeholder: "Your message...", style: { minHeight: "5rem" } })
1009
- ] })
1010
- ] }),
1011
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: "qt-card-footer", children: [
1012
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("button", { className: "qt-button qt-button-ghost", children: "Cancel" }),
1013
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("button", { className: "qt-button qt-button-primary", children: "Send" })
1014
- ] })
1015
- ] })
1016
- ] })
1017
- ] });
1018
- };
1019
-
1020
- // src/stories/components/Badges.tsx
1021
- var import_jsx_runtime9 = require("react/jsx-runtime");
1022
- var Badges = () => {
1023
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { style: { padding: "1.5rem" }, children: [
1024
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("h2", { style: { fontSize: "1.5rem", fontWeight: 700, marginBottom: "1.5rem" }, children: "Badges" }),
1025
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
1026
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Badge Variants" }),
1027
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { style: { display: "flex", flexWrap: "wrap", gap: "0.75rem", alignItems: "center" }, children: [
1028
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "qt-badge qt-badge-default", children: "Default" }),
1029
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "qt-badge qt-badge-primary", children: "Primary" }),
1030
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "qt-badge qt-badge-secondary", children: "Secondary" }),
1031
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "qt-badge qt-badge-success", children: "Success" }),
1032
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "qt-badge qt-badge-warning", children: "Warning" }),
1033
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "qt-badge qt-badge-destructive", children: "Destructive" })
1034
- ] })
1035
- ] }),
1036
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
1037
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Outline Badges" }),
1038
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { style: { display: "flex", flexWrap: "wrap", gap: "0.75rem", alignItems: "center" }, children: [
1039
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "qt-badge qt-badge-outline", children: "Outline" }),
1040
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "qt-badge qt-badge-outline-primary", children: "Primary" }),
1041
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "qt-badge qt-badge-outline-success", children: "Success" }),
1042
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "qt-badge qt-badge-outline-warning", children: "Warning" }),
1043
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "qt-badge qt-badge-outline-destructive", children: "Destructive" })
1044
- ] })
1045
- ] }),
1046
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
1047
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Provider Badges" }),
1048
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("p", { style: { color: "var(--color-muted-foreground)", marginBottom: "1rem" }, children: "Used to identify AI provider sources." }),
1049
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { style: { display: "flex", flexWrap: "wrap", gap: "0.75rem", alignItems: "center" }, children: [
1050
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "qt-badge qt-badge-provider-openai", children: "OpenAI" }),
1051
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "qt-badge qt-badge-provider-anthropic", children: "Anthropic" }),
1052
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "qt-badge qt-badge-provider-google", children: "Google" }),
1053
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "qt-badge qt-badge-provider-openrouter", children: "OpenRouter" })
1054
- ] })
1055
- ] }),
1056
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
1057
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Badges with Icons" }),
1058
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { style: { display: "flex", flexWrap: "wrap", gap: "0.75rem", alignItems: "center" }, children: [
1059
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("span", { className: "qt-badge qt-badge-success", style: { display: "inline-flex", alignItems: "center", gap: "0.25rem" }, children: [
1060
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("svg", { width: "12", height: "12", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M5 13l4 4L19 7" }) }),
1061
- "Complete"
1062
- ] }),
1063
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("span", { className: "qt-badge qt-badge-warning", style: { display: "inline-flex", alignItems: "center", gap: "0.25rem" }, children: [
1064
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("svg", { width: "12", height: "12", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z" }) }),
1065
- "Warning"
1066
- ] }),
1067
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("span", { className: "qt-badge qt-badge-destructive", style: { display: "inline-flex", alignItems: "center", gap: "0.25rem" }, children: [
1068
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("svg", { width: "12", height: "12", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) }),
1069
- "Error"
1070
- ] })
1071
- ] })
1072
- ] }),
1073
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
1074
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Entity Type Badges" }),
1075
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { style: { display: "flex", flexWrap: "wrap", gap: "0.75rem", alignItems: "center" }, children: [
1076
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "qt-badge qt-badge-character", children: "Character" }),
1077
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "qt-badge qt-badge-user-character", children: "User Character" }),
1078
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "qt-badge qt-badge-chat", children: "Chat" }),
1079
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "qt-badge qt-badge-tag", children: "Tag" }),
1080
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "qt-badge qt-badge-memory", children: "Memory" })
1081
- ] })
1082
- ] }),
1083
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
1084
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "State Badges" }),
1085
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { style: { display: "flex", flexWrap: "wrap", gap: "0.75rem", alignItems: "center" }, children: [
1086
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "qt-badge qt-badge-enabled", children: "Enabled" }),
1087
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "qt-badge qt-badge-disabled", children: "Disabled" }),
1088
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "qt-badge qt-badge-related", children: "Related" }),
1089
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "qt-badge qt-badge-manual", children: "Manual" }),
1090
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "qt-badge qt-badge-auto", children: "Auto" })
1091
- ] })
1092
- ] }),
1093
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
1094
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Plugin Source Badges" }),
1095
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { style: { display: "flex", flexWrap: "wrap", gap: "0.75rem", alignItems: "center" }, children: [
1096
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "qt-badge qt-badge-source-included", children: "Included" }),
1097
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "qt-badge qt-badge-source-npm", children: "NPM" }),
1098
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "qt-badge qt-badge-source-git", children: "Git" }),
1099
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "qt-badge qt-badge-source-manual", children: "Manual" })
1100
- ] })
1101
- ] }),
1102
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
1103
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Tag Badges" }),
1104
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { style: { marginBottom: "1.5rem" }, children: [
1105
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("p", { style: { color: "var(--color-muted-foreground)", marginBottom: "0.75rem", fontSize: "0.875rem" }, children: "Basic tags" }),
1106
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { style: { display: "flex", flexWrap: "wrap", gap: "0.75rem", alignItems: "center" }, children: [
1107
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "qt-tag-badge", children: "Fantasy" }),
1108
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "qt-tag-badge", children: "Sci-Fi" }),
1109
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "qt-tag-badge", children: "Romance" })
1110
- ] })
1111
- ] }),
1112
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { style: { marginBottom: "1.5rem" }, children: [
1113
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("p", { style: { color: "var(--color-muted-foreground)", marginBottom: "0.75rem", fontSize: "0.875rem" }, children: "Emoji tag" }),
1114
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { style: { display: "flex", flexWrap: "wrap", gap: "0.75rem", alignItems: "center" }, children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "qt-tag-badge qt-tag-badge-emoji", children: "Adventure" }) })
1115
- ] }),
1116
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { style: { marginBottom: "1.5rem" }, children: [
1117
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("p", { style: { color: "var(--color-muted-foreground)", marginBottom: "0.75rem", fontSize: "0.875rem" }, children: "Removable tag" }),
1118
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { style: { display: "flex", flexWrap: "wrap", gap: "0.75rem", alignItems: "center" }, children: /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("span", { className: "qt-tag-badge", children: [
1119
- "Fantasy",
1120
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("button", { className: "qt-tag-badge-remove", children: "\xD7" })
1121
- ] }) })
1122
- ] }),
1123
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { children: [
1124
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("p", { style: { color: "var(--color-muted-foreground)", marginBottom: "0.75rem", fontSize: "0.875rem" }, children: "Small tags in card context" }),
1125
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: "qt-card", style: { maxWidth: "24rem" }, children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: "qt-card-body", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { style: { display: "flex", flexWrap: "wrap", gap: "0.5rem" }, children: [
1126
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "qt-tag-badge qt-tag-badge-sm", children: "Fantasy" }),
1127
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "qt-tag-badge qt-tag-badge-sm", children: "Sci-Fi" })
1128
- ] }) }) })
1129
- ] })
1130
- ] }),
1131
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
1132
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Participant Status Badges" }),
1133
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("p", { style: { color: "var(--color-muted-foreground)", marginBottom: "0.75rem", fontSize: "0.875rem" }, children: "Status indicators shown on participant cards for silent and absent characters." }),
1134
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { style: { display: "flex", flexWrap: "wrap", gap: "0.75rem", alignItems: "center" }, children: [
1135
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "qt-badge-silent", children: "Silent" }),
1136
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "qt-badge-absent", children: "Absent" })
1137
- ] })
1138
- ] }),
1139
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("section", { children: [
1140
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Usage Examples" }),
1141
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: "1rem" }, children: [
1142
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: "qt-card", style: { maxWidth: "24rem" }, children: /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: "qt-card-header", children: [
1143
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { style: { display: "flex", alignItems: "center", justifyContent: "space-between" }, children: [
1144
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("h4", { className: "qt-card-title", children: "Feature Name" }),
1145
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "qt-badge qt-badge-success", children: "Active" })
1146
- ] }),
1147
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("p", { className: "qt-card-description", children: "With status badge" })
1148
- ] }) }),
1149
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: "0.5rem" }, children: [
1150
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { style: { fontWeight: 500 }, children: "Notifications" }),
1151
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "qt-badge qt-badge-primary", style: { borderRadius: "9999px", minWidth: "1.25rem", textAlign: "center" }, children: "5" })
1152
- ] }),
1153
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: "0.5rem" }, children: [
1154
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { style: { fontWeight: 500 }, children: "Version" }),
1155
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "qt-badge qt-badge-outline", children: "v2.5.0" })
1156
- ] })
1157
- ] })
1158
- ] })
1159
- ] });
1160
- };
1161
-
1162
- // src/stories/components/Surfaces.tsx
1163
- var import_jsx_runtime10 = require("react/jsx-runtime");
1164
- var sectionHeading2 = {
1165
- fontSize: "1.125rem",
1166
- fontWeight: 700,
1167
- marginBottom: "1rem",
1168
- borderBottom: "1px solid var(--color-border)",
1169
- paddingBottom: "0.5rem"
1170
- };
1171
- var note = {
1172
- color: "var(--color-muted-foreground)",
1173
- marginBottom: "1rem",
1174
- fontSize: "0.875rem"
1175
- };
1176
- var Surfaces = () => {
1177
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { style: { padding: "1.5rem" }, children: [
1178
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("style", { children: `
1179
- .surfaces-demo-fill-primary:hover { background-color: var(--color-primary); }
1180
- .surfaces-demo-fill-success:hover { background-color: var(--color-success); }
1181
- .surfaces-demo-fill-destructive:hover { background-color: var(--color-destructive); }
1182
- ` }),
1183
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("h2", { style: { fontSize: "1.5rem", fontWeight: 700, marginBottom: "0.5rem" }, children: "Surfaces" }),
1184
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("p", { style: { ...note, maxWidth: "44rem" }, children: [
1185
- "How accent-coloured surfaces stay legible no matter how bold a theme makes its ",
1186
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("code", { children: "accent" }),
1187
- " token. Filled surfaces pair the background with",
1188
- " ",
1189
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("code", { children: "qt-text-on-accent" }),
1190
- "; hover rows use ",
1191
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("code", { children: "qt-hover-accent" }),
1192
- "; quiet selected/panel surfaces lean on ",
1193
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("code", { children: "muted" }),
1194
- " and faint",
1195
- " ",
1196
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("code", { children: "primary" }),
1197
- " instead of the accent."
1198
- ] }),
1199
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
1200
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("h3", { style: sectionHeading2, children: "Filled accent surfaces" }),
1201
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("p", { style: note, children: [
1202
- "A solid ",
1203
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("code", { children: "qt-bg-accent" }),
1204
- " fill ",
1205
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("strong", { children: "must" }),
1206
- " be paired with",
1207
- " ",
1208
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("code", { children: "qt-text-on-accent" }),
1209
- " (the theme's ",
1210
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("code", { children: "accentForeground" }),
1211
- "). A fill without it falls back to the page foreground and washes out on bold accents."
1212
- ] }),
1213
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { style: { display: "flex", flexWrap: "wrap", gap: "0.75rem", alignItems: "center" }, children: [
1214
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: "qt-bg-accent qt-text-on-accent", style: { padding: "0.125rem 0.5rem", borderRadius: "0.25rem", fontSize: "0.75rem" }, children: "keyword" }),
1215
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: "qt-bg-accent qt-text-on-accent", style: { padding: "0.125rem 0.5rem", borderRadius: "0.25rem", fontSize: "0.75rem" }, children: "another keyword" }),
1216
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("kbd", { className: "qt-bg-accent qt-text-on-accent", style: { padding: "0.125rem 0.375rem", borderRadius: "0.25rem", fontSize: "0.75rem" }, children: "\u21B5" })
1217
- ] })
1218
- ] }),
1219
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
1220
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("h3", { style: sectionHeading2, children: [
1221
- "Foregrounds on filled surfaces \u2014 the ",
1222
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("code", { children: "qt-text-on-*" }),
1223
- " family"
1224
- ] }),
1225
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("p", { style: note, children: [
1226
- "The same contract, extended to every filled surface the app paints:",
1227
- " ",
1228
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("code", { children: "qt-text-on-accent" }),
1229
- ", ",
1230
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("code", { children: "qt-text-on-primary" }),
1231
- ",",
1232
- " ",
1233
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("code", { children: "qt-text-on-success" }),
1234
- ", and ",
1235
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("code", { children: "qt-text-on-destructive" }),
1236
- ", each mapping to the theme's matching ",
1237
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("code", { children: "*Foreground" }),
1238
- " token. Note the naming \u2014 ",
1239
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("code", { children: [
1240
- "-on-",
1241
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("em", { children: "fill" })
1242
- ] }),
1243
- ", never ",
1244
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("code", { children: [
1245
- "-",
1246
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("em", { children: "fill" }),
1247
- "-foreground"
1248
- ] }),
1249
- ", which is the Tailwind spelling and is not a ",
1250
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("code", { children: "qt-" }),
1251
- " class at all."
1252
- ] }),
1253
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { style: { display: "flex", flexWrap: "wrap", gap: "0.75rem", alignItems: "center" }, children: [
1254
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: "qt-bg-accent qt-text-on-accent", style: { padding: "0.25rem 0.625rem", borderRadius: "0.375rem", fontSize: "0.8125rem", fontWeight: 600 }, children: "on accent" }),
1255
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: "qt-bg-primary qt-text-on-primary", style: { padding: "0.25rem 0.625rem", borderRadius: "0.375rem", fontSize: "0.8125rem", fontWeight: 600 }, children: "on primary" }),
1256
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: "qt-bg-success qt-text-on-success", style: { padding: "0.25rem 0.625rem", borderRadius: "0.375rem", fontSize: "0.8125rem", fontWeight: 600 }, children: "on success" }),
1257
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: "qt-bg-destructive qt-text-on-destructive", style: { padding: "0.25rem 0.625rem", borderRadius: "0.375rem", fontSize: "0.8125rem", fontWeight: 600 }, children: "on destructive" })
1258
- ] }),
1259
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("p", { style: { ...note, marginTop: "1rem" }, children: "Each has a hover partner for controls that stay quiet at rest and take the fill on hover. Tailwind generates no variants for these classes, so the hover forms are written out by hand \u2014 reach for one that was never written and it is simply inert. Hover the buttons below." }),
1260
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { style: { display: "flex", flexWrap: "wrap", gap: "0.75rem", alignItems: "center" }, children: [
1261
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("button", { className: "qt-bg-card qt-text-secondary surfaces-demo-fill-primary hover:qt-text-on-primary", style: { padding: "0.25rem 0.625rem", borderRadius: "0.375rem", fontSize: "0.8125rem", fontWeight: 600, border: "1px solid var(--color-border)", cursor: "pointer" }, children: "hover:qt-text-on-primary" }),
1262
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("button", { className: "qt-bg-card qt-text-secondary surfaces-demo-fill-success hover:qt-text-on-success", style: { padding: "0.25rem 0.625rem", borderRadius: "0.375rem", fontSize: "0.8125rem", fontWeight: 600, border: "1px solid var(--color-border)", cursor: "pointer" }, children: "hover:qt-text-on-success" }),
1263
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("button", { className: "qt-bg-card qt-text-secondary surfaces-demo-fill-destructive hover:qt-text-on-destructive", style: { padding: "0.25rem 0.625rem", borderRadius: "0.375rem", fontSize: "0.8125rem", fontWeight: 600, border: "1px solid var(--color-border)", cursor: "pointer" }, children: "hover:qt-text-on-destructive" })
1264
- ] })
1265
- ] }),
1266
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
1267
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("h3", { style: sectionHeading2, children: [
1268
- "Hover-highlight rows \u2014 ",
1269
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("code", { children: "qt-hover-accent" })
1270
- ] }),
1271
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("p", { style: note, children: [
1272
- "For list rows, menu items, and option cards. On hover it paints the accent background and forces the accent foreground onto the row ",
1273
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("em", { children: "and every descendant" }),
1274
- " \u2014 so children that carry their own colour (the title and the muted subtitle below) flip too, instead of washing out (or, when their colour matches the accent, vanishing). Hover the rows to see it."
1275
- ] }),
1276
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: "0.25rem", maxWidth: "24rem", border: "1px solid var(--color-border)", borderRadius: "0.5rem", padding: "0.375rem" }, children: [
1277
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: "qt-hover-accent", style: { display: "flex", flexDirection: "column", padding: "0.5rem 0.75rem", borderRadius: "0.375rem", cursor: "pointer" }, children: [
1278
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: "qt-text-primary", children: "Compose a reply" }),
1279
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: "qt-text-secondary", style: { fontSize: "0.8125rem" }, children: "Draft a response in this thread" })
1280
- ] }),
1281
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: "qt-hover-accent", style: { display: "flex", flexDirection: "column", padding: "0.5rem 0.75rem", borderRadius: "0.375rem", cursor: "pointer" }, children: [
1282
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: "qt-text-primary", children: "Mark as resolved" }),
1283
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: "qt-text-secondary", style: { fontSize: "0.8125rem" }, children: "Close and archive this item" })
1284
- ] }),
1285
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: "qt-hover-accent", style: { display: "flex", flexDirection: "column", padding: "0.5rem 0.75rem", borderRadius: "0.375rem", cursor: "pointer" }, children: [
1286
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: "qt-text-primary", children: "Delete" }),
1287
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: "qt-text-secondary", style: { fontSize: "0.8125rem" }, children: "Remove permanently" })
1288
- ] })
1289
- ] })
1290
- ] }),
1291
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("section", { children: [
1292
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("h3", { style: sectionHeading2, children: "Quiet selected & panel surfaces" }),
1293
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("p", { style: note, children: [
1294
- "Persistent surfaces (selected cards, informational panels) deliberately avoid the bold accent. Selected states use a faint ",
1295
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("code", { children: "qt-bg-primary/10" }),
1296
- " tint; informational panels use the neutral ",
1297
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("code", { children: "qt-bg-muted" }),
1298
- " surface."
1299
- ] }),
1300
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { style: { display: "flex", flexWrap: "wrap", gap: "1rem" }, children: [
1301
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: "qt-bg-primary/10", style: { padding: "0.75rem 1rem", borderRadius: "0.5rem", border: "1px solid var(--color-primary)", maxWidth: "16rem" }, children: [
1302
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "qt-text-primary", style: { fontWeight: 600 }, children: "Selected option" }),
1303
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "qt-text-secondary", style: { fontSize: "0.8125rem" }, children: "Faint primary tint marks the choice." })
1304
- ] }),
1305
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: "qt-bg-muted", style: { padding: "0.75rem 1rem", borderRadius: "0.5rem", border: "1px solid var(--color-border)", maxWidth: "16rem" }, children: [
1306
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { style: { fontWeight: 600 }, children: "Informational panel" }),
1307
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "qt-text-secondary", style: { fontSize: "0.8125rem" }, children: "Neutral muted surface, never the accent." })
1308
- ] })
1309
- ] })
1310
- ] })
1311
- ] });
1312
- };
1313
-
1314
- // src/stories/components/Avatars.tsx
1315
- var import_jsx_runtime11 = require("react/jsx-runtime");
1316
- var Avatars = () => {
1317
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { style: { padding: "1.5rem" }, children: [
1318
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("h2", { style: { fontSize: "1.5rem", fontWeight: 700, marginBottom: "1.5rem" }, children: "Avatars" }),
1319
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
1320
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Avatar Sizes" }),
1321
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: "1rem" }, children: [
1322
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "qt-avatar qt-avatar-sm", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "qt-avatar-fallback", children: "SM" }) }),
1323
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "qt-avatar", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "qt-avatar-fallback", children: "MD" }) }),
1324
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "qt-avatar qt-avatar-lg", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "qt-avatar-fallback", children: "LG" }) }),
1325
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "qt-avatar qt-avatar-xl", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "qt-avatar-fallback", children: "XL" }) })
1326
- ] })
1327
- ] }),
1328
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
1329
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Avatar with Images" }),
1330
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("p", { style: { color: "var(--color-muted-foreground)", marginBottom: "1rem" }, children: "Avatars gracefully fall back to initials when image is unavailable." }),
1331
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: "1rem" }, children: [
1332
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "qt-avatar", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "qt-avatar-fallback", children: "AB" }) }),
1333
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "qt-avatar", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "qt-avatar-fallback", children: "CD" }) }),
1334
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "qt-avatar", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "qt-avatar-fallback", children: "EF" }) })
1335
- ] })
1336
- ] }),
1337
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
1338
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Avatar Shapes" }),
1339
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: "1rem" }, children: [
1340
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { children: [
1341
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "qt-avatar", style: { borderRadius: "9999px" }, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "qt-avatar-fallback", children: "CR" }) }),
1342
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("p", { style: { marginTop: "0.5rem", fontSize: "0.75rem", color: "var(--color-muted-foreground)", textAlign: "center" }, children: "Circle" })
1343
- ] }),
1344
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { children: [
1345
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "qt-avatar", style: { borderRadius: "var(--radius-lg)" }, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "qt-avatar-fallback", children: "RD" }) }),
1346
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("p", { style: { marginTop: "0.5rem", fontSize: "0.75rem", color: "var(--color-muted-foreground)", textAlign: "center" }, children: "Rounded" })
1347
- ] }),
1348
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { children: [
1349
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "qt-avatar", style: { borderRadius: "var(--radius-sm)" }, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "qt-avatar-fallback", children: "SQ" }) }),
1350
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("p", { style: { marginTop: "0.5rem", fontSize: "0.75rem", color: "var(--color-muted-foreground)", textAlign: "center" }, children: "Square" })
1351
- ] })
1352
- ] })
1353
- ] }),
1354
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
1355
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Avatar Groups" }),
1356
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "qt-avatar-group", children: [
1357
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "qt-avatar", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "qt-avatar-fallback", children: "A" }) }),
1358
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "qt-avatar", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "qt-avatar-fallback", children: "B" }) }),
1359
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "qt-avatar", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "qt-avatar-fallback", children: "C" }) }),
1360
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "qt-avatar", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "qt-avatar-fallback", children: "D" }) }),
1361
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "qt-avatar", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "qt-avatar-fallback", children: "+3" }) })
1362
- ] })
1363
- ] }),
1364
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("section", { children: [
1365
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Usage in Context" }),
1366
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: "1rem" }, children: [
1367
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: "0.75rem", padding: "0.75rem", backgroundColor: "var(--color-muted)", borderRadius: "var(--radius-lg)" }, children: [
1368
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "qt-avatar", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "qt-avatar-fallback", children: "JD" }) }),
1369
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { style: { flex: 1 }, children: [
1370
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { style: { fontWeight: 600 }, children: "John Doe" }),
1371
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { style: { fontSize: "0.875rem", color: "var(--color-muted-foreground)" }, children: "john@example.com" })
1372
- ] }),
1373
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "qt-badge qt-badge-success", children: "Active" })
1374
- ] }),
1375
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { style: { display: "flex", gap: "0.75rem" }, children: [
1376
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "qt-avatar qt-avatar-sm", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "qt-avatar-fallback", children: "SM" }) }),
1377
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { style: { flex: 1 }, children: [
1378
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: "0.5rem" }, children: [
1379
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { style: { fontWeight: 600, fontSize: "0.875rem" }, children: "Sarah Miller" }),
1380
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { style: { fontSize: "0.75rem", color: "var(--color-muted-foreground)" }, children: "2 hours ago" })
1381
- ] }),
1382
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("p", { style: { fontSize: "0.875rem", marginTop: "0.25rem" }, children: "This is a sample comment with an avatar." })
1383
- ] })
1384
- ] })
1385
- ] })
1386
- ] })
1387
- ] });
1388
- };
1389
-
1390
- // src/stories/components/Dialogs.tsx
1391
- var import_react = require("react");
1392
- var import_jsx_runtime12 = require("react/jsx-runtime");
1393
- var Dialogs = () => {
1394
- const [basicOpen, setBasicOpen] = (0, import_react.useState)(false);
1395
- const [confirmOpen, setConfirmOpen] = (0, import_react.useState)(false);
1396
- const [formOpen, setFormOpen] = (0, import_react.useState)(false);
1397
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { style: { padding: "1.5rem" }, children: [
1398
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("h2", { style: { fontSize: "1.5rem", fontWeight: 700, marginBottom: "1.5rem" }, children: "Dialogs & Modals" }),
1399
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
1400
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Dialog Examples" }),
1401
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { style: { color: "var(--color-muted-foreground)", marginBottom: "1rem" }, children: "Click the buttons below to open different dialog types." }),
1402
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { style: { display: "flex", flexWrap: "wrap", gap: "1rem" }, children: [
1403
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("button", { className: "qt-button qt-button-secondary", onClick: () => setBasicOpen(true), children: "Basic Dialog" }),
1404
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("button", { className: "qt-button qt-button-destructive", onClick: () => setConfirmOpen(true), children: "Confirmation Dialog" }),
1405
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("button", { className: "qt-button qt-button-primary", onClick: () => setFormOpen(true), children: "Form Dialog" })
1406
- ] })
1407
- ] }),
1408
- basicOpen && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "qt-dialog-overlay", onClick: () => setBasicOpen(false), children: /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "qt-dialog", onClick: (e) => e.stopPropagation(), children: [
1409
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "qt-dialog-header", children: [
1410
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("h3", { className: "qt-dialog-title", children: "Basic Dialog" }),
1411
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { className: "qt-dialog-description", children: "This is a basic dialog with some content. Dialogs are used to show important information or gather user input." }),
1412
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("button", { className: "qt-button-icon", onClick: () => setBasicOpen(false), "aria-label": "Close", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("svg", { width: "20", height: "20", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) }) })
1413
- ] }),
1414
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "qt-dialog-body", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { children: "Dialog content area with additional details and information." }) }),
1415
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "qt-dialog-footer", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("button", { className: "qt-button qt-button-primary", onClick: () => setBasicOpen(false), children: "Got it" }) })
1416
- ] }) }),
1417
- confirmOpen && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "qt-dialog-overlay", onClick: () => setConfirmOpen(false), children: /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "qt-dialog", onClick: (e) => e.stopPropagation(), children: [
1418
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "qt-dialog-header", children: [
1419
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("h3", { className: "qt-dialog-title", children: "Delete Item?" }),
1420
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { className: "qt-dialog-description", children: "Are you sure you want to delete this item? This action cannot be undone." }),
1421
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("button", { className: "qt-button-icon", onClick: () => setConfirmOpen(false), "aria-label": "Close", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("svg", { width: "20", height: "20", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) }) })
1422
- ] }),
1423
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "qt-dialog-body", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { children: "This will remove the item from your collection permanently." }) }),
1424
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "qt-dialog-footer", children: [
1425
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("button", { className: "qt-button qt-button-ghost", onClick: () => setConfirmOpen(false), children: "Cancel" }),
1426
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("button", { className: "qt-button qt-button-destructive", onClick: () => setConfirmOpen(false), children: "Delete" })
1427
- ] })
1428
- ] }) }),
1429
- formOpen && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "qt-dialog-overlay", onClick: () => setFormOpen(false), children: /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "qt-dialog", onClick: (e) => e.stopPropagation(), style: { maxWidth: "28rem" }, children: [
1430
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "qt-dialog-header", children: [
1431
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("h3", { className: "qt-dialog-title", children: "Create New Item" }),
1432
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { className: "qt-dialog-description", children: "Fill in the details below to create a new item." }),
1433
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("button", { className: "qt-button-icon", onClick: () => setFormOpen(false), "aria-label": "Close", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("svg", { width: "20", height: "20", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) }) })
1434
- ] }),
1435
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "qt-dialog-body", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: "1rem" }, children: [
1436
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { children: [
1437
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("label", { style: { display: "block", marginBottom: "0.25rem", fontSize: "0.875rem", fontWeight: 500 }, children: "Name" }),
1438
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("input", { className: "qt-input", type: "text", placeholder: "Enter name..." })
1439
- ] }),
1440
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { children: [
1441
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("label", { style: { display: "block", marginBottom: "0.25rem", fontSize: "0.875rem", fontWeight: 500 }, children: "Description" }),
1442
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("textarea", { className: "qt-input qt-textarea", placeholder: "Enter description...", style: { minHeight: "5rem" } })
1443
- ] }),
1444
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { children: [
1445
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("label", { style: { display: "block", marginBottom: "0.25rem", fontSize: "0.875rem", fontWeight: 500 }, children: "Category" }),
1446
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("select", { className: "qt-input qt-select", children: [
1447
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("option", { value: "", children: "Select category..." }),
1448
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("option", { value: "1", children: "Category 1" }),
1449
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("option", { value: "2", children: "Category 2" }),
1450
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("option", { value: "3", children: "Category 3" })
1451
- ] })
1452
- ] })
1453
- ] }) }),
1454
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "qt-dialog-footer", children: [
1455
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("button", { className: "qt-button qt-button-ghost", onClick: () => setFormOpen(false), children: "Cancel" }),
1456
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("button", { className: "qt-button qt-button-primary", onClick: () => setFormOpen(false), children: "Create" })
1457
- ] })
1458
- ] }) }),
1459
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
1460
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Dialog Structure (Static Preview)" }),
1461
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { style: { backgroundColor: "var(--color-muted)", padding: "2rem", borderRadius: "var(--radius-lg)" }, children: /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "qt-dialog", style: { position: "relative", transform: "none", margin: "0 auto" }, children: [
1462
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "qt-dialog-header", children: [
1463
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("h3", { className: "qt-dialog-title", children: "Dialog Title" }),
1464
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { className: "qt-dialog-description", children: "This is a dialog with a title and description." }),
1465
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("button", { className: "qt-button-icon", "aria-label": "Close", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("svg", { width: "20", height: "20", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) }) })
1466
- ] }),
1467
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "qt-dialog-body", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { children: "Dialog content area. This can contain text, forms, or any other content." }) }),
1468
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "qt-dialog-footer", children: [
1469
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("button", { className: "qt-button qt-button-ghost", children: "Secondary Action" }),
1470
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("button", { className: "qt-button qt-button-primary", children: "Primary Action" })
1471
- ] })
1472
- ] }) })
1473
- ] }),
1474
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("section", { children: [
1475
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Dialog Sizes" }),
1476
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: "1rem" }, children: [
1477
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { children: [
1478
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { style: { fontSize: "0.875rem", fontWeight: 500, color: "var(--color-muted-foreground)" }, children: "Small (max-width: 24rem)" }),
1479
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { style: { backgroundColor: "var(--color-muted)", padding: "1rem", borderRadius: "var(--radius-lg)", marginTop: "0.5rem" }, children: /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "qt-dialog", style: { position: "relative", transform: "none", margin: 0, maxWidth: "24rem" }, children: [
1480
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "qt-dialog-header", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("h3", { className: "qt-dialog-title", children: "Small Dialog" }) }),
1481
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "qt-dialog-body", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { children: "Compact dialog for simple confirmations." }) })
1482
- ] }) })
1483
- ] }),
1484
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { children: [
1485
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { style: { fontSize: "0.875rem", fontWeight: 500, color: "var(--color-muted-foreground)" }, children: "Large (max-width: 42rem)" }),
1486
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { style: { backgroundColor: "var(--color-muted)", padding: "1rem", borderRadius: "var(--radius-lg)", marginTop: "0.5rem" }, children: /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "qt-dialog qt-dialog-wide", style: { position: "relative", transform: "none", margin: 0, maxWidth: "42rem" }, children: [
1487
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "qt-dialog-header", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("h3", { className: "qt-dialog-title", children: "Large Dialog" }) }),
1488
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "qt-dialog-body", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { children: "Larger dialog for complex forms or detailed content that needs more space." }) })
1489
- ] }) })
1490
- ] })
1491
- ] })
1492
- ] }),
1493
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
1494
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Popover" }),
1495
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { style: { position: "relative", display: "inline-block", marginTop: "2rem" }, children: [
1496
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("button", { className: "qt-button qt-button-secondary", children: "Hover for popover" }),
1497
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "qt-popover", style: { position: "absolute", left: 0, top: "100%", marginTop: "0.5rem", display: "block" }, children: /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { style: { padding: "0.75rem" }, children: [
1498
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { style: { fontWeight: 600, marginBottom: "0.25rem" }, children: "Popover Title" }),
1499
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { style: { fontSize: "0.875rem", color: "var(--color-muted-foreground)" }, children: "This is popover content that provides additional context." })
1500
- ] }) })
1501
- ] })
1502
- ] }),
1503
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
1504
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Dropdown Menu" }),
1505
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "qt-dropdown", style: { display: "inline-block", position: "relative" }, children: [
1506
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "qt-dropdown-item", children: "Profile" }),
1507
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "qt-dropdown-item", children: "Settings" }),
1508
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "qt-dropdown-separator" }),
1509
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "qt-dropdown-item", style: { color: "var(--color-destructive)" }, children: "Sign Out" })
1510
- ] })
1511
- ] }),
1512
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("section", { children: [
1513
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Tooltip" }),
1514
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { style: { display: "flex", alignItems: "flex-end", gap: "4rem", flexWrap: "wrap" }, children: [
1515
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { style: { position: "relative", display: "inline-block", marginTop: "2rem" }, children: [
1516
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("button", { className: "qt-button qt-button-secondary", children: "Hover me" }),
1517
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "qt-tooltip", style: { position: "absolute", left: "50%", transform: "translateX(-50%)", bottom: "100%", marginBottom: "0.5rem", display: "block" }, children: "Helpful tooltip text" })
1518
- ] }),
1519
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { style: { position: "relative", display: "inline-block", marginTop: "14rem" }, children: [
1520
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("button", { className: "qt-button qt-button-secondary", children: "Pinned, with detail" }),
1521
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1522
- "div",
1523
- {
1524
- className: "qt-tooltip",
1525
- "data-interactive": "true",
1526
- "data-pinned": "true",
1527
- style: { position: "absolute", left: "50%", transform: "translateX(-50%)", bottom: "100%", marginBottom: "0.5rem", display: "block", width: "20rem" },
1528
- children: /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "qt-tooltip-body", children: [
1529
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { className: "qt-tooltip-title", children: "Amended" }),
1530
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { children: "On reflection the author corrected this reply to match the record." }),
1531
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "qt-tooltip-section", children: [
1532
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { className: "qt-tooltip-section-label", children: "What looked off" }),
1533
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { className: "qt-tooltip-quote", children: "The ledger excerpt returned by the document read shows a metric column." })
1534
- ] }),
1535
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { className: "qt-tooltip-hint", children: "Click the badge to pin this note; Esc dismisses it." })
1536
- ] })
1537
- }
1538
- )
1539
- ] })
1540
- ] })
1541
- ] })
1542
- ] });
1543
- };
1544
-
1545
- // src/stories/components/Tabs.tsx
1546
- var import_react2 = require("react");
1547
- var import_jsx_runtime13 = require("react/jsx-runtime");
1548
- var Tabs = () => {
1549
- const [activeTab, setActiveTab] = (0, import_react2.useState)("tab1");
1550
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { style: { padding: "1.5rem" }, children: [
1551
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("h2", { style: { fontSize: "1.5rem", fontWeight: 700, marginBottom: "1.5rem" }, children: "Tabs & Navigation" }),
1552
- /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
1553
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Basic Tabs" }),
1554
- /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "qt-tab-group", children: [
1555
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1556
- "button",
1557
- {
1558
- className: `qt-tab ${activeTab === "tab1" ? "qt-tab-active" : ""}`,
1559
- onClick: () => setActiveTab("tab1"),
1560
- children: "Account"
1561
- }
1562
- ),
1563
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1564
- "button",
1565
- {
1566
- className: `qt-tab ${activeTab === "tab2" ? "qt-tab-active" : ""}`,
1567
- onClick: () => setActiveTab("tab2"),
1568
- children: "Settings"
1569
- }
1570
- ),
1571
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1572
- "button",
1573
- {
1574
- className: `qt-tab ${activeTab === "tab3" ? "qt-tab-active" : ""}`,
1575
- onClick: () => setActiveTab("tab3"),
1576
- children: "Notifications"
1577
- }
1578
- )
1579
- ] }),
1580
- /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { children: [
1581
- activeTab === "tab1" && /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "qt-tab-content", children: [
1582
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("h4", { style: { fontWeight: 600, marginBottom: "0.5rem" }, children: "Account Settings" }),
1583
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("p", { style: { color: "var(--color-muted-foreground)" }, children: "Manage your account settings and preferences." })
1584
- ] }),
1585
- activeTab === "tab2" && /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "qt-tab-content", children: [
1586
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("h4", { style: { fontWeight: 600, marginBottom: "0.5rem" }, children: "General Settings" }),
1587
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("p", { style: { color: "var(--color-muted-foreground)" }, children: "Configure general application settings." })
1588
- ] }),
1589
- activeTab === "tab3" && /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "qt-tab-content", children: [
1590
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("h4", { style: { fontWeight: 600, marginBottom: "0.5rem" }, children: "Notification Preferences" }),
1591
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("p", { style: { color: "var(--color-muted-foreground)" }, children: "Choose how you want to receive notifications." })
1592
- ] })
1593
- ] })
1594
- ] }),
1595
- /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
1596
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Tabs with Icons" }),
1597
- /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "qt-tab-group", children: [
1598
- /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("button", { className: "qt-tab qt-tab-active", style: { display: "inline-flex", alignItems: "center", gap: "0.5rem" }, children: [
1599
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("svg", { width: "16", height: "16", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6" }) }),
1600
- "Home"
1601
- ] }),
1602
- /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("button", { className: "qt-tab", style: { display: "inline-flex", alignItems: "center", gap: "0.5rem" }, children: [
1603
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("svg", { width: "16", height: "16", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z" }) }),
1604
- "Profile"
1605
- ] }),
1606
- /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("button", { className: "qt-tab", style: { display: "inline-flex", alignItems: "center", gap: "0.5rem" }, children: [
1607
- /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("svg", { width: "16", height: "16", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: [
1608
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z" }),
1609
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 12a3 3 0 11-6 0 3 3 0 016 0z" })
1610
- ] }),
1611
- "Settings"
1612
- ] })
1613
- ] })
1614
- ] }),
1615
- /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("section", { children: [
1616
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Navigation Bar" }),
1617
- /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "qt-navbar", children: [
1618
- /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: "1rem" }, children: [
1619
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { style: { fontWeight: 700, fontSize: "1.125rem" }, children: "Quilltap" }),
1620
- /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("nav", { style: { display: "flex", gap: "0.25rem" }, children: [
1621
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("a", { href: "#", className: "qt-navbar-link qt-navbar-link-active", children: "Dashboard" }),
1622
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("a", { href: "#", className: "qt-navbar-link", children: "Characters" }),
1623
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("a", { href: "#", className: "qt-navbar-link", children: "Chats" }),
1624
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("a", { href: "#", className: "qt-navbar-link", children: "Settings" })
1625
- ] })
1626
- ] }),
1627
- /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: "0.5rem" }, children: [
1628
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("button", { className: "qt-button-icon", "aria-label": "Notifications", children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("svg", { width: "20", height: "20", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9" }) }) }),
1629
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: "qt-avatar qt-avatar-sm", children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: "qt-avatar-fallback", children: "U" }) })
1630
- ] })
1631
- ] })
1632
- ] })
1633
- ] });
1634
- };
1635
-
1636
- // src/stories/components/Workspace.tsx
1637
- var import_react3 = require("react");
1638
- var import_jsx_runtime14 = require("react/jsx-runtime");
1639
- var SectionHeading = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1640
- "h3",
1641
- {
1642
- style: {
1643
- fontSize: "1.125rem",
1644
- fontWeight: 700,
1645
- marginBottom: "1rem",
1646
- borderBottom: "1px solid var(--color-border)",
1647
- paddingBottom: "0.5rem"
1648
- },
1649
- children
1650
- }
1651
- );
1652
- var CloseGlyph = () => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("svg", { className: "qt-tab-close-icon", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) });
1653
- var WorkspaceTab = ({ label, active, closeable = true }) => /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
1654
- "div",
1655
- {
1656
- className: `qt-tab ${active ? "qt-tab-active" : ""}`,
1657
- style: { display: "inline-flex", alignItems: "center", gap: "0.5rem", cursor: "pointer" },
1658
- children: [
1659
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "qt-tab-label", children: label }),
1660
- closeable && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "qt-tab-close", role: "button", "aria-label": `Close ${label}`, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(CloseGlyph, {}) })
1661
- ]
1662
- }
1663
- );
1664
- var Workspace = () => {
1665
- const [active, setActive] = (0, import_react3.useState)("salon");
1666
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { style: { padding: "1.5rem" }, children: [
1667
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("h2", { style: { fontSize: "1.5rem", fontWeight: 700, marginBottom: "0.5rem" }, children: "Workspace" }),
1668
- /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("p", { style: { color: "var(--color-muted-foreground)", marginBottom: "1.5rem", maxWidth: "46rem" }, children: [
1669
- "The tabbed two-pane shell. Set ",
1670
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("code", { children: "--qt-workspace-accent" }),
1671
- " in your theme to re-tint the active tab, the pane divider, and the split drop-zone in one move."
1672
- ] }),
1673
- /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
1674
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(SectionHeading, { children: "Tab strip \u2014 active & inactive" }),
1675
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "qt-tab-strip", role: "tablist", style: { borderRadius: "0.5rem 0.5rem 0 0" }, children: [
1676
- { id: "home", label: "Home" },
1677
- { id: "salon", label: "The Salon \u2014 Bertie" },
1678
- { id: "aurora", label: "Aurora" },
1679
- { id: "scriptorium", label: "The Scriptorium" }
1680
- ].map((t) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { onClick: () => setActive(t.id), children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(WorkspaceTab, { label: t.label, active: active === t.id, closeable: t.id !== "home" }) }, t.id)) })
1681
- ] }),
1682
- /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
1683
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(SectionHeading, { children: "Pane divider" }),
1684
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("p", { style: { color: "var(--color-muted-foreground)", marginBottom: "0.75rem" }, children: "Resizable split between the two panes. Hover (or focus) to see the accent." }),
1685
- /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
1686
- "div",
1687
- {
1688
- style: {
1689
- display: "grid",
1690
- gridTemplateColumns: "1fr 8px 1fr",
1691
- height: "120px",
1692
- border: "1px solid var(--color-border)",
1693
- borderRadius: "0.5rem",
1694
- overflow: "hidden"
1695
- },
1696
- children: [
1697
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "qt-panel", style: { display: "grid", placeItems: "center" }, children: "Left pane" }),
1698
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "qt-workspace-divider", tabIndex: 0, role: "separator", "aria-label": "Resize panes", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "qt-workspace-divider-grip" }) }),
1699
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "qt-panel", style: { display: "grid", placeItems: "center" }, children: "Right pane" })
1700
- ]
1701
- }
1702
- )
1703
- ] }),
1704
- /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("section", { children: [
1705
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(SectionHeading, { children: "Split drop-zone" }),
1706
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("p", { style: { color: "var(--color-muted-foreground)", marginBottom: "0.75rem" }, children: "Shown while a tab is dragged toward a pane edge to create the split." }),
1707
- /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
1708
- "div",
1709
- {
1710
- style: {
1711
- position: "relative",
1712
- height: "120px",
1713
- border: "1px solid var(--color-border)",
1714
- borderRadius: "0.5rem",
1715
- overflow: "hidden"
1716
- },
1717
- children: [
1718
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "qt-panel", style: { height: "100%", display: "grid", placeItems: "center" }, children: "Pane" }),
1719
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "qt-tab-drop-zone", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "qt-tab-drop-zone-hint", children: "Drop to split" }) })
1720
- ]
1721
- }
1722
- )
1723
- ] })
1724
- ] });
1725
- };
1726
-
1727
- // src/stories/components/Chat.tsx
1728
- var import_jsx_runtime15 = require("react/jsx-runtime");
1729
- var Chat = () => {
1730
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { style: { padding: "1.5rem" }, children: [
1731
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("h2", { style: { fontSize: "1.5rem", fontWeight: 700, marginBottom: "1.5rem" }, children: "Chat Components" }),
1732
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
1733
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Message Bubbles" }),
1734
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: "1rem", maxWidth: "32rem" }, children: [
1735
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { style: { display: "flex", justifyContent: "flex-end" }, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "qt-chat-message qt-chat-message-user", children: [
1736
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "qt-chat-message-header", children: [
1737
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-message-author", children: "You" }),
1738
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-message-time", children: "2:30 PM" })
1739
- ] }),
1740
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-chat-message-content", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("p", { children: "Hello! How are you today?" }) })
1741
- ] }) }),
1742
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { style: { display: "flex", gap: "0.5rem" }, children: [
1743
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-avatar qt-avatar-sm", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-avatar-fallback", children: "AI" }) }),
1744
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "qt-chat-message qt-chat-message-assistant", children: [
1745
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "qt-chat-message-header", children: [
1746
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-message-author", children: "Assistant" }),
1747
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-message-time", children: "2:30 PM" })
1748
- ] }),
1749
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-chat-message-content", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("p", { children: "Hello! I'm doing well, thank you for asking. How can I help you today?" }) })
1750
- ] })
1751
- ] }),
1752
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { style: { display: "flex", gap: "0.5rem" }, children: [
1753
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-avatar qt-avatar-sm", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-avatar-fallback", children: "AI" }) }),
1754
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "qt-chat-message qt-chat-message-assistant", children: [
1755
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "qt-chat-message-header", children: [
1756
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-message-author", children: "Assistant" }),
1757
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-message-time", children: "2:31 PM" })
1758
- ] }),
1759
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "qt-chat-message-content", children: [
1760
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("p", { children: "Here's some information you might find helpful:" }),
1761
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("ul", { style: { marginTop: "0.5rem", paddingLeft: "1.25rem" }, children: [
1762
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("li", { children: "First point of interest" }),
1763
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("li", { children: "Second important detail" }),
1764
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("li", { children: "Third relevant fact" })
1765
- ] }),
1766
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("p", { style: { marginTop: "0.5rem" }, children: "Let me know if you'd like more details about any of these!" })
1767
- ] }),
1768
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "qt-chat-message-actions", children: [
1769
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("button", { className: "qt-button-icon", title: "Edit", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("svg", { className: "w-4 h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z" }) }) }),
1770
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("button", { className: "qt-button-icon", title: "Copy", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("svg", { className: "w-4 h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z" }) }) })
1771
- ] })
1772
- ] })
1773
- ] }),
1774
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-chat-message qt-chat-message-system", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-chat-message-content", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("p", { children: "Alice has joined the conversation." }) }) }),
1775
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { style: { display: "flex", justifyContent: "flex-end" }, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "qt-chat-message qt-chat-message-user", children: [
1776
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-chat-message-header", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-message-author", children: "You" }) }),
1777
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-chat-message-content", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("p", { children: "That's exactly what I needed, thanks!" }) })
1778
- ] }) })
1779
- ] })
1780
- ] }),
1781
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
1782
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Character Messages" }),
1783
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("p", { style: { color: "var(--color-muted-foreground)", marginBottom: "1rem" }, children: "Messages from different characters with their avatars." }),
1784
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: "1rem", maxWidth: "32rem" }, children: [
1785
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { style: { display: "flex", gap: "0.5rem" }, children: [
1786
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-avatar qt-avatar-sm", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-avatar-fallback", children: "A" }) }),
1787
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { children: [
1788
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-chat-message-author", style: { fontSize: "0.75rem", fontWeight: 600, marginBottom: "0.25rem" }, children: "Alice" }),
1789
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-chat-message qt-chat-message-assistant", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("p", { children: "*waves cheerfully* Hi there! I'm so glad to meet you!" }) })
1790
- ] })
1791
- ] }),
1792
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { style: { display: "flex", gap: "0.5rem" }, children: [
1793
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-avatar qt-avatar-sm", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-avatar-fallback", children: "B" }) }),
1794
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { children: [
1795
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-chat-message-author", style: { fontSize: "0.75rem", fontWeight: 600, marginBottom: "0.25rem" }, children: "Bob" }),
1796
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-chat-message qt-chat-message-assistant", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("p", { children: "*nods thoughtfully* Interesting point. Let me think about that..." }) })
1797
- ] })
1798
- ] })
1799
- ] })
1800
- ] }),
1801
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
1802
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Roleplay Annotations" }),
1803
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("p", { style: { color: "var(--color-muted-foreground)", marginBottom: "1rem" }, children: "Special text formatting for roleplay-style messages with narration, inner thoughts, and out-of-character text." }),
1804
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: "1rem", maxWidth: "32rem" }, children: [
1805
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { style: { display: "flex", gap: "0.5rem" }, children: [
1806
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-avatar qt-avatar-sm", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-avatar-fallback", children: "A" }) }),
1807
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "qt-chat-message qt-chat-message-assistant", children: [
1808
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-chat-message-header", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-message-author", children: "Alice" }) }),
1809
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-chat-message-content", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("p", { children: [
1810
- '"Hello there!" ',
1811
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-narration", children: "she said with a warm smile, stepping forward to greet you." })
1812
- ] }) })
1813
- ] })
1814
- ] }),
1815
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { style: { display: "flex", gap: "0.5rem" }, children: [
1816
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-avatar qt-avatar-sm", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-avatar-fallback", children: "A" }) }),
1817
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "qt-chat-message qt-chat-message-assistant", children: [
1818
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-chat-message-header", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-message-author", children: "Alice" }) }),
1819
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-chat-message-content", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("p", { children: [
1820
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-narration", children: "She paused for a moment, considering her words carefully." }),
1821
- " ",
1822
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-inner-monologue", children: "I wonder if they noticed..." })
1823
- ] }) })
1824
- ] })
1825
- ] }),
1826
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { style: { display: "flex", gap: "0.5rem" }, children: [
1827
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-avatar qt-avatar-sm", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-avatar-fallback", children: "A" }) }),
1828
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "qt-chat-message qt-chat-message-assistant", children: [
1829
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-chat-message-header", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-message-author", children: "Alice" }) }),
1830
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-chat-message-content", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("p", { children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-ooc", children: "((OOC: Should we continue the scene or take a break?))" }) }) })
1831
- ] })
1832
- ] })
1833
- ] })
1834
- ] }),
1835
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
1836
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Roleplay-Template Styles" }),
1837
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("p", { style: { color: "var(--color-muted-foreground)", marginBottom: "1rem" }, children: "Style classes a roleplay-template delimiter can be assigned: four high-contrast chips (each theme picks its own four hues) plus a semantic set. Add-on flourishes (bold, italic, reverse, underline, border, font) compose on top." }),
1838
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "qt-chat-message-content", style: { display: "flex", flexDirection: "column", gap: "1rem", maxWidth: "36rem" }, children: [
1839
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { style: { display: "flex", flexWrap: "wrap", gap: "0.5rem", alignItems: "center" }, children: [
1840
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-roleplay-1", children: "Style 1" }),
1841
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-roleplay-2", children: "Style 2" }),
1842
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-roleplay-3", children: "Style 3" }),
1843
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-roleplay-4", children: "Style 4" })
1844
- ] }),
1845
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { style: { display: "flex", flexWrap: "wrap", gap: "0.5rem", alignItems: "center" }, children: [
1846
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-roleplay-danger", children: "Danger" }),
1847
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-roleplay-warning", children: "Warning" }),
1848
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-roleplay-success", children: "Success" }),
1849
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-roleplay-info", children: "Info" }),
1850
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-roleplay-muted", children: "Muted" }),
1851
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-roleplay-code", children: "code" })
1852
- ] }),
1853
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { style: { display: "flex", flexWrap: "wrap", gap: "0.5rem", alignItems: "center" }, children: [
1854
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-roleplay-2 qt-rp-bold", children: "Bold" }),
1855
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-roleplay-3 qt-rp-italic", children: "Italic" }),
1856
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-roleplay-1 qt-rp-reverse", children: "Reverse" }),
1857
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-roleplay-4 qt-rp-underline-double", children: "Underline" }),
1858
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-roleplay-info qt-rp-border-dashed", children: "Dashed border" }),
1859
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-roleplay-muted qt-rp-font-serif", children: "Serif font" })
1860
- ] })
1861
- ] })
1862
- ] }),
1863
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
1864
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Whisper Messages" }),
1865
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("p", { style: { color: "var(--color-muted-foreground)", marginBottom: "1rem" }, children: "Private messages visible only to sender and recipient. Overheard whispers have a faded style." }),
1866
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: "1rem", maxWidth: "32rem" }, children: [
1867
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-chat-message-row qt-chat-message-row-assistant", style: { marginBottom: "0.5rem" }, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "qt-chat-message-body qt-chat-message-assistant qt-chat-message-whisper", children: [
1868
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-chat-whisper-label", children: "whispered to Elena" }),
1869
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("p", { children: "I don't trust the merchant. Meet me at the tavern tonight\u2014alone." })
1870
- ] }) }),
1871
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-chat-message-row qt-chat-message-row-assistant", style: { marginBottom: "0.5rem" }, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "qt-chat-message-body qt-chat-message-assistant qt-chat-message-whisper qt-chat-message-whisper-overheard", children: [
1872
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-chat-whisper-label", children: "whispered to Marcus" }),
1873
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("p", { children: "Keep an eye on the door. We may need a quick exit." })
1874
- ] }) })
1875
- ] })
1876
- ] }),
1877
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
1878
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Silent Messages" }),
1879
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("p", { style: { color: "var(--color-muted-foreground)", marginBottom: "1rem" }, children: "Inner thoughts and actions from characters in silent mode. They can think and act physically, but cannot speak aloud. Distinguished from whispers by dotted borders and sage/teal tones." }),
1880
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: "1rem", maxWidth: "32rem" }, children: [
1881
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-chat-message-row qt-chat-message-row-assistant", style: { marginBottom: "0.5rem" }, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "qt-chat-message-body qt-chat-message-assistant qt-chat-message-silent", children: [
1882
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-chat-silent-label", children: "silent \u2014 inner thoughts and actions only" }),
1883
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("p", { children: "*glances at the door, weighing whether to follow or stay behind*" })
1884
- ] }) }),
1885
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-chat-message-row qt-chat-message-row-assistant", style: { marginBottom: "0.5rem" }, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "qt-chat-message-body qt-chat-message-assistant qt-chat-message-silent", children: [
1886
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-chat-silent-label", children: "silent \u2014 inner thoughts and actions only" }),
1887
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("p", { children: "*quietly pockets the letter before anyone notices, mind racing with questions about its contents*" })
1888
- ] }) })
1889
- ] })
1890
- ] }),
1891
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
1892
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Staff Announcements" }),
1893
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("p", { style: { color: "var(--color-muted-foreground)", marginBottom: "1rem" }, children: "Messages authored by a personified feature rather than a character. Each collapses to a one-line bar; a run of consecutive ones packs into a row of content-width chips. The leading dot carries an importance tier \u2014 filled for high and medium, hollow for low \u2014 so the eye lands on the file changes and arrivals and skims past the time calls. An announcement whispered to named participants carries the whisper\u2019s border colour and names its audience, so a private aside is distinguishable from a public one without expanding it." }),
1894
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: "1rem", maxWidth: "32rem" }, children: [
1895
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("button", { type: "button", className: "qt-chat-system-bar", children: [
1896
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-announcement-dot qt-chat-announcement-dot-high", "aria-hidden": "true" }),
1897
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-system-bar-sender", children: "The Librarian" }),
1898
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-system-bar-kind", children: "edited by character" }),
1899
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-system-bar-time", children: "4:12 PM" }),
1900
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-system-bar-chevron", "aria-hidden": "true", children: "\u203A" })
1901
- ] }),
1902
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "qt-chat-announcement-group", style: { width: "100%", margin: 0 }, children: [
1903
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("button", { type: "button", className: "qt-chat-announcement-chip", children: [
1904
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-announcement-dot qt-chat-announcement-dot-high", "aria-hidden": "true" }),
1905
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-system-bar-sender", children: "The Host" }),
1906
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-system-bar-kind", children: "status change" }),
1907
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-system-bar-time", children: "4:13 PM" }),
1908
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-system-bar-chevron", "aria-hidden": "true", children: "\u203A" })
1909
- ] }),
1910
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("button", { type: "button", className: "qt-chat-announcement-chip", children: [
1911
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-announcement-dot qt-chat-announcement-dot-medium", "aria-hidden": "true" }),
1912
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-system-bar-sender", children: "The Lantern" }),
1913
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-system-bar-kind", children: "background" }),
1914
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-system-bar-time", children: "4:14 PM" }),
1915
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-system-bar-chevron", "aria-hidden": "true", children: "\u203A" })
1916
- ] }),
1917
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("button", { type: "button", className: "qt-chat-announcement-chip", children: [
1918
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-announcement-dot qt-chat-announcement-dot-low", "aria-hidden": "true" }),
1919
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-system-bar-sender", children: "Prospero" }),
1920
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-system-bar-kind", children: "project information" }),
1921
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-system-bar-time", children: "4:14 PM" }),
1922
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-system-bar-chevron", "aria-hidden": "true", children: "\u203A" })
1923
- ] }),
1924
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("button", { type: "button", className: "qt-chat-announcement-chip qt-chat-announcement-chip-whisper", children: [
1925
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-announcement-dot qt-chat-announcement-dot-medium", "aria-hidden": "true" }),
1926
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-system-bar-sender", children: "The Host" }),
1927
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-system-bar-kind", children: "announcement" }),
1928
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-system-bar-whisper", children: "to Amy" }),
1929
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-system-bar-time", children: "4:15 PM" }),
1930
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-system-bar-chevron", "aria-hidden": "true", children: "\u203A" })
1931
- ] })
1932
- ] }),
1933
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("button", { type: "button", className: "qt-chat-system-bar qt-chat-system-bar-expanded", children: [
1934
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-announcement-dot qt-chat-announcement-dot-medium", "aria-hidden": "true" }),
1935
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-system-bar-sender", children: "The Host" }),
1936
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-system-bar-kind", children: "announcement" }),
1937
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-system-bar-whisper", children: "to Amy, Bartholomew" }),
1938
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-system-bar-time", children: "4:15 PM" }),
1939
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-system-bar-chevron qt-chat-system-bar-chevron-down", "aria-hidden": "true", children: "\u203A" })
1940
- ] })
1941
- ] })
1942
- ] }),
1943
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
1944
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Pascal Roll Outcomes" }),
1945
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("p", { style: { color: "var(--color-muted-foreground)", marginBottom: "1rem" }, children: [
1946
- "The outcome of a custom tool (pseudo-tool) roll, announced by Pascal the Croupier. The tool's author assigns each outcome a semantic state \u2014 success, partial, failure, info \u2014 and the accent follows it, on the bubble and on the announcement bar above it alike. The bar swaps its importance dot for the outcome's own state, since a success has no business wearing the red dot a high tier would give it. Built on the ",
1947
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("code", { children: "--qt-alert-*" }),
1948
- " families: the alpha-thin",
1949
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("code", { children: " -border" }),
1950
- " tints for the leading edge, the solid ",
1951
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("code", { children: "-fg" }),
1952
- " for the dot."
1953
- ] }),
1954
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { style: { display: "flex", flexDirection: "column", gap: "1rem", maxWidth: "32rem" }, children: [
1955
- ["success", "Pick the Lock", "The lock clicks open."],
1956
- ["partial", "Pick the Lock", "The lock is giving way, but not yet."],
1957
- ["failure", "Pick the Lock", "Still locked, and the corridor is no longer empty."],
1958
- ["info", "Scan Hawking Radiation", "The detector reads 41 \xB5K."]
1959
- ].map(([state, tool, message]) => /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { children: [
1960
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("button", { type: "button", className: `qt-chat-system-bar qt-chat-system-bar-expanded qt-pascal-result qt-pascal-result--${state}`, children: [
1961
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: `qt-chat-announcement-dot qt-chat-announcement-dot-outcome-${state}`, "aria-hidden": "true" }),
1962
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-system-bar-sender", children: "Pascal" }),
1963
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-system-bar-kind", children: tool }),
1964
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-system-bar-time", children: "4:15 PM" }),
1965
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-system-bar-chevron", "aria-hidden": "true", children: "\u2227" })
1966
- ] }),
1967
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: `qt-chat-message-body qt-chat-message-assistant qt-pascal-result qt-pascal-result--${state}`, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("p", { children: [
1968
- "\u{1F3B2} ",
1969
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("strong", { children: tool }),
1970
- " \u2014 ",
1971
- message
1972
- ] }) })
1973
- ] }, state)) })
1974
- ] }),
1975
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
1976
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Wardrobe Action Notices" }),
1977
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("p", { style: { color: "var(--color-muted-foreground)", marginBottom: "1rem" }, children: "Inline summaries of outfit changes (equip, unequip, gift). Distinguished from whispers (dashed purple) and silent messages (dotted teal) by a double border and warm amber/gold tones." }),
1978
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: "1rem", maxWidth: "32rem" }, children: [
1979
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "qt-chat-wardrobe-notice", children: [
1980
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-chat-wardrobe-label", children: "Wardrobe" }),
1981
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "qt-chat-wardrobe-summary", children: [
1982
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { children: "Equipped \u201CCrimson Evening Gown\u201D in the top slot." }),
1983
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { children: "Wearing: Crimson Evening Gown (top, bottom), Glass Slippers (footwear), Marcel Waves (hair)" })
1984
- ] })
1985
- ] }),
1986
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "qt-chat-wardrobe-notice", children: [
1987
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-chat-wardrobe-label", children: "Wardrobe" }),
1988
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "qt-chat-wardrobe-summary", children: [
1989
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { children: "Removed item from the footwear slot." }),
1990
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { children: "Wearing: Crimson Evening Gown (top, bottom), barefoot" })
1991
- ] })
1992
- ] }),
1993
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "qt-chat-wardrobe-notice", children: [
1994
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-chat-wardrobe-label", children: "Wardrobe" }),
1995
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "qt-chat-wardrobe-summary", children: [
1996
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { children: "Gifted \u201CSilver Pocket Watch\u201D to Marcus." }),
1997
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { children: "Marcus put it on immediately." })
1998
- ] })
1999
- ] })
2000
- ] })
2001
- ] }),
2002
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
2003
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Chat Toolbar" }),
2004
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("p", { style: { color: "var(--color-muted-foreground)", marginBottom: "1rem" }, children: "Formatting and action buttons for chat composition." }),
2005
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "qt-chat-toolbar", style: { maxWidth: "32rem", display: "flex", gap: "0.5rem", flexWrap: "wrap" }, children: [
2006
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("button", { className: "qt-chat-toolbar-button", title: "Bold", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("svg", { width: "18", height: "18", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 4h8a4 4 0 014 4v2M6 4v16M6 4h8a2 2 0 012 2v2M6 12h12" }) }) }),
2007
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("button", { className: "qt-chat-toolbar-button", title: "Italic", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("svg", { width: "18", height: "18", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M10 5h4m-4 14h4M9 5h6M9 19H3" }) }) }),
2008
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("button", { className: "qt-chat-toolbar-button", title: "Underline", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("svg", { width: "18", height: "18", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M7 5v10a4 4 0 008 0V5m0 14H7" }) }) }),
2009
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { style: { flex: 1 } }),
2010
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("button", { className: "qt-chat-toolbar-button", title: "Settings", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("svg", { width: "18", height: "18", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: [
2011
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z" }),
2012
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 12a3 3 0 11-6 0 3 3 0 016 0z" })
2013
- ] }) })
2014
- ] })
2015
- ] }),
2016
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
2017
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "RP Annotation Buttons" }),
2018
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("p", { style: { color: "var(--color-muted-foreground)", marginBottom: "1rem" }, children: "Quick-insert buttons for roleplay annotation types." }),
2019
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "qt-rp-annotation-toolbar", style: { maxWidth: "32rem", display: "flex", gap: "0.5rem", flexWrap: "wrap" }, children: [
2020
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("button", { className: "qt-rp-annotation-button-narration", title: "Narration", children: [
2021
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("svg", { className: "w-4 h-4 mr-1", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M4 6h16M4 12h16M4 18h7" }) }),
2022
- "Narration"
2023
- ] }),
2024
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("button", { className: "qt-rp-annotation-button-internal", title: "Inner Monologue", children: [
2025
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("svg", { className: "w-4 h-4 mr-1", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z" }) }),
2026
- "Internal"
2027
- ] }),
2028
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("button", { className: "qt-rp-annotation-button-ooc", title: "Out of Character", children: [
2029
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("svg", { className: "w-4 h-4 mr-1", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z" }) }),
2030
- "OOC"
2031
- ] })
2032
- ] })
2033
- ] }),
2034
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
2035
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Attachments" }),
2036
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("p", { style: { color: "var(--color-muted-foreground)", marginBottom: "1rem" }, children: "File attachment chips and attachment button." }),
2037
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "qt-chat-composer", style: { maxWidth: "32rem" }, children: [
2038
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "qt-chat-attachment-list", style: { display: "flex", gap: "0.5rem", marginBottom: "0.75rem", flexWrap: "wrap" }, children: [
2039
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "qt-chat-attachment-chip", children: [
2040
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { children: "document.pdf" }),
2041
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("button", { className: "ml-2 text-gray-400 hover:text-gray-600", style: { marginLeft: "0.5rem" }, children: "\xD7" })
2042
- ] }),
2043
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "qt-chat-attachment-chip", children: [
2044
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { children: "image.png" }),
2045
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("button", { className: "ml-2 text-gray-400 hover:text-gray-600", style: { marginLeft: "0.5rem" }, children: "\xD7" })
2046
- ] })
2047
- ] }),
2048
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
2049
- "textarea",
2050
- {
2051
- className: "qt-chat-composer-input",
2052
- placeholder: "Add a message about your files...",
2053
- rows: 1,
2054
- style: { width: "100%", padding: "0.5rem", marginBottom: "0.5rem" }
2055
- }
2056
- ),
2057
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "qt-chat-composer-actions", style: { display: "flex", gap: "0.5rem" }, children: [
2058
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("button", { className: "qt-chat-attachment-button", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("svg", { width: "18", height: "18", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 4v16m8-8H4" }) }) }),
2059
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("button", { className: "qt-button qt-button-primary", children: "Send" })
2060
- ] })
2061
- ] })
2062
- ] }),
2063
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
2064
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Chat Input" }),
2065
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-chat-composer", style: { maxWidth: "32rem" }, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "qt-chat-composer-inner", style: { display: "flex", alignItems: "flex-end", gap: "0.5rem", flex: 1 }, children: [
2066
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("button", { className: "qt-button-icon", "aria-label": "Attach file", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("svg", { width: "20", height: "20", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15.172 7l-6.586 6.586a2 2 0 102.828 2.828l6.414-6.586a4 4 0 00-5.656-5.656l-6.415 6.585a6 6 0 108.486 8.486L20.5 13" }) }) }),
2067
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
2068
- "textarea",
2069
- {
2070
- className: "qt-chat-composer-input qt-input",
2071
- placeholder: "Type a message...",
2072
- rows: 1
2073
- }
2074
- ),
2075
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("button", { className: "qt-button qt-button-primary qt-chat-composer-send", style: { height: "auto", padding: "0.5rem 1rem" }, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("svg", { width: "16", height: "16", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 19l9 2-9-18-9 18 9-2zm0 0v-8" }) }) })
2076
- ] }) })
2077
- ] }),
2078
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
2079
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Typing Indicator" }),
2080
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { style: { display: "flex", gap: "0.5rem", maxWidth: "32rem" }, children: [
2081
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-avatar qt-avatar-sm", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-avatar-fallback", children: "AI" }) }),
2082
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-chat-message qt-chat-message-assistant", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "qt-typing-indicator", children: [
2083
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", {}),
2084
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", {}),
2085
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", {})
2086
- ] }) })
2087
- ] })
2088
- ] }),
2089
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
2090
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Chat Control Buttons" }),
2091
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("p", { style: { color: "var(--color-muted-foreground)", marginBottom: "1rem" }, children: "Continue and stop buttons for controlling AI response generation." }),
2092
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("p", { style: { color: "var(--color-muted-foreground)", marginBottom: "1rem", fontSize: "0.875rem" }, children: [
2093
- "The composer's action trio while a character is speaking: Send (disabled), the soft interrupt ",
2094
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("code", { children: ".qt-chat-interrupt-button" }),
2095
- " (shown idle, then raised with",
2096
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("code", { children: ".qt-chat-interrupt-button-raised" }),
2097
- "), and the hard ",
2098
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("code", { children: ".qt-chat-stop-button" }),
2099
- "."
2100
- ] }),
2101
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "qt-chat-composer-actions", style: { marginBottom: "1.5rem" }, children: [
2102
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("button", { className: "qt-chat-composer-send", "aria-label": "Send message", disabled: true, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("svg", { width: "20", height: "20", fill: "none", stroke: "currentColor", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round", viewBox: "0 0 24 24", children: [
2103
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("line", { x1: "22", y1: "2", x2: "11", y2: "13" }),
2104
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("polygon", { points: "22 2 15 22 11 13 2 9 22 2" })
2105
- ] }) }),
2106
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("button", { className: "qt-chat-composer-send qt-chat-interrupt-button", "aria-label": "Raise your hand to interrupt", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("svg", { width: "20", height: "20", fill: "none", stroke: "currentColor", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round", viewBox: "0 0 24 24", children: [
2107
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("path", { d: "M18 11V6a2 2 0 0 0-2-2a2 2 0 0 0-2 2" }),
2108
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("path", { d: "M14 10V4a2 2 0 0 0-2-2a2 2 0 0 0-2 2v2" }),
2109
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("path", { d: "M10 10.5V6a2 2 0 0 0-2-2a2 2 0 0 0-2 2v8" }),
2110
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("path", { d: "M18 8a2 2 0 1 1 4 0v6a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 0 1 2.83-2.82L7 15" })
2111
- ] }) }),
2112
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("button", { className: "qt-chat-composer-send qt-chat-interrupt-button qt-chat-interrupt-button-raised", "aria-label": "Lower your hand", "aria-pressed": true, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("svg", { width: "20", height: "20", fill: "none", stroke: "currentColor", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round", viewBox: "0 0 24 24", children: [
2113
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("path", { d: "M18 11V6a2 2 0 0 0-2-2a2 2 0 0 0-2 2" }),
2114
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("path", { d: "M14 10V4a2 2 0 0 0-2-2a2 2 0 0 0-2 2v2" }),
2115
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("path", { d: "M10 10.5V6a2 2 0 0 0-2-2a2 2 0 0 0-2 2v8" }),
2116
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("path", { d: "M18 8a2 2 0 1 1 4 0v6a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 0 1 2.83-2.82L7 15" })
2117
- ] }) }),
2118
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("button", { className: "qt-chat-composer-send qt-chat-stop-button", "aria-label": "Stop", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("svg", { width: "20", height: "20", fill: "currentColor", stroke: "currentColor", strokeWidth: 1.5, strokeLinejoin: "round", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("polygon", { points: "8.36 3.22 15.64 3.22 20.78 8.36 20.78 15.64 15.64 20.78 8.36 20.78 3.22 15.64 3.22 8.36" }) }) })
2119
- ] }),
2120
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { style: { display: "flex", gap: "1rem", maxWidth: "32rem" }, children: [
2121
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("button", { className: "qt-chat-continue-button", children: [
2122
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("svg", { className: "w-4 h-4 mr-2", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: [
2123
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M14.752 11.168l-3.197-2.132A1 1 0 0010 9.87v4.263a1 1 0 001.555.832l3.197-2.132a1 1 0 000-1.664z" }),
2124
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M21 12a9 9 0 11-18 0 9 9 0 0118 0z" })
2125
- ] }),
2126
- "Continue"
2127
- ] }),
2128
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("button", { className: "qt-chat-stop-button", children: [
2129
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("svg", { className: "w-4 h-4 mr-2", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: [
2130
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M21 12a9 9 0 11-18 0 9 9 0 0118 0z" }),
2131
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 10a1 1 0 011-1h4a1 1 0 011 1v4a1 1 0 01-1 1h-4a1 1 0 01-1-1v-4z" })
2132
- ] }),
2133
- "Stop"
2134
- ] })
2135
- ] })
2136
- ] }),
2137
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
2138
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Composer Typeahead Menu" }),
2139
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("p", { style: { marginBottom: "1rem", color: "var(--color-muted-foreground)", fontSize: "0.875rem" }, children: [
2140
- "The inline `:name` emoji menu. The composer keeps focus throughout, so the highlighted row is marked by ",
2141
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("code", { children: ".qt-typeahead-option-active" }),
2142
- " rather than by ",
2143
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("code", { children: ":focus" }),
2144
- "."
2145
- ] }),
2146
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("p", { style: { marginBottom: "1rem", color: "var(--color-muted-foreground)", fontSize: "0.875rem" }, children: [
2147
- "The menu positions itself against the caret element Lexical creates, so it is",
2148
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("code", { children: "position: absolute" }),
2149
- " \u2014 these samples sit in a relatively-positioned host to stand in for that anchor."
2150
- ] }),
2151
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { style: { display: "flex", gap: "1rem", flexWrap: "wrap" }, children: [
2152
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { style: { position: "relative", width: "22rem", height: "9rem" }, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "qt-typeahead-menu", style: { top: 0 }, children: [
2153
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "qt-typeahead-option qt-typeahead-option-active", children: [
2154
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-typeahead-option-glyph", children: "\u{1F604}" }),
2155
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-typeahead-option-label", children: "grinning face with smiling eyes" }),
2156
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-typeahead-option-detail", children: ":smile:" })
2157
- ] }),
2158
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "qt-typeahead-option", children: [
2159
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-typeahead-option-glyph", children: "\u{1F603}" }),
2160
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-typeahead-option-label", children: "grinning face with big eyes" }),
2161
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-typeahead-option-detail", children: ":smiley:" })
2162
- ] }),
2163
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "qt-typeahead-option", children: [
2164
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-typeahead-option-glyph", children: "\u{1F63A}" }),
2165
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-typeahead-option-label", children: "grinning cat" }),
2166
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-typeahead-option-detail", children: ":smile_cat:" })
2167
- ] })
2168
- ] }) }),
2169
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { style: { position: "relative", width: "15rem", height: "9rem" }, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-typeahead-menu", style: { top: 0 }, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-typeahead-empty", children: "No emoji found" }) }) })
2170
- ] })
2171
- ] }),
2172
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
2173
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Emoji Picker" }),
2174
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("p", { style: { marginBottom: "1rem", color: "var(--color-muted-foreground)", fontSize: "0.875rem" }, children: [
2175
- "Opened from the formatting toolbar's ",
2176
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("code", { children: ".qt-formatting-button-emoji" }),
2177
- ". The shell is ",
2178
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("code", { children: ".qt-popover" }),
2179
- "; group headers stick while the grid scrolls."
2180
- ] }),
2181
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "qt-popover qt-emoji-picker", children: [
2182
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("input", { className: "qt-input qt-emoji-picker-search", placeholder: "Search emoji\u2026", readOnly: true }),
2183
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "qt-emoji-picker-grid", children: [
2184
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { children: [
2185
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-emoji-picker-group-header", children: "Recently used" }),
2186
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-emoji-picker-row", children: ["\u{1F604}", "\u{1F389}", "\u{1F680}", "\u{1F44D}\uFE0F"].map((char) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("button", { type: "button", className: "qt-emoji-picker-cell", children: char }, char)) })
2187
- ] }),
2188
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { children: [
2189
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-emoji-picker-group-header", children: "Smileys & Emotion" }),
2190
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-emoji-picker-row", children: ["\u{1F600}", "\u{1F603}", "\u{1F604}", "\u{1F601}", "\u{1F606}", "\u{1F605}", "\u{1F923}", "\u{1F602}"].map((char) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("button", { type: "button", className: "qt-emoji-picker-cell", children: char }, char)) }),
2191
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-emoji-picker-row", children: ["\u{1F642}", "\u{1F643}", "\u{1F609}", "\u{1F60A}", "\u{1F607}", "\u{1F970}", "\u{1F60D}", "\u{1F929}"].map((char) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("button", { type: "button", className: "qt-emoji-picker-cell", children: char }, char)) })
2192
- ] }),
2193
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { children: [
2194
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-emoji-picker-group-header", children: "Animals & Nature" }),
2195
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-emoji-picker-row", children: ["\u{1F436}", "\u{1F431}", "\u{1F42D}", "\u{1F439}", "\u{1F430}", "\u{1F98A}", "\u{1F43B}", "\u{1F43C}"].map((char) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("button", { type: "button", className: "qt-emoji-picker-cell", children: char }, char)) })
2196
- ] })
2197
- ] })
2198
- ] }),
2199
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { style: { marginTop: "1rem" }, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "qt-popover qt-emoji-picker", children: [
2200
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("input", { className: "qt-input qt-emoji-picker-search", placeholder: "Search emoji\u2026", readOnly: true }),
2201
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-emoji-picker-message", children: "Couldn't load emoji" })
2202
- ] }) })
2203
- ] }),
2204
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
2205
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Answer-Confirmation Badges" }),
2206
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("p", { style: { fontSize: "0.875rem", color: "var(--color-muted-foreground)", marginBottom: "1rem" }, children: "The fact-checker's verdict on a message, shown among the message action icons. Quiet by design; the discrepancy notes live in a tooltip. Hover one to see its hover state." }),
2207
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: "0.75rem", flexWrap: "wrap" }, children: [
2208
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("button", { className: "qt-confirmation-badge", "data-confirmation-state": "vouched", children: [
2209
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-confirmation-badge-glyph", children: "\u2713" }),
2210
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-confirmation-badge-label", children: "Vouched" })
2211
- ] }),
2212
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("button", { className: "qt-confirmation-badge", "data-confirmation-state": "amended", children: [
2213
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-confirmation-badge-glyph", children: "\u270E" }),
2214
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-confirmation-badge-label", children: "Amended" })
2215
- ] }),
2216
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("button", { className: "qt-confirmation-badge", "data-confirmation-state": "stood-by", children: [
2217
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-confirmation-badge-glyph", children: "!" }),
2218
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-confirmation-badge-label", children: "Stood by" })
2219
- ] }),
2220
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("button", { className: "qt-confirmation-badge", "data-confirmation-state": "unvetted", children: [
2221
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-confirmation-badge-glyph", children: "\u2014" }),
2222
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-confirmation-badge-label", children: "Unvetted" })
2223
- ] })
2224
- ] })
2225
- ] }),
2226
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("section", { children: [
2227
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Full Chat Layout" }),
2228
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "qt-chat-layout", style: { height: "24rem", border: "1px solid var(--color-border)", borderRadius: "var(--radius-lg)", display: "flex", flexDirection: "column" }, children: [
2229
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { style: { display: "flex", alignItems: "center", justifyContent: "space-between", padding: "0.75rem 1rem", borderBottom: "1px solid var(--color-border)" }, children: [
2230
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: "0.75rem" }, children: [
2231
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-avatar", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-avatar-fallback", children: "AI" }) }),
2232
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { children: [
2233
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { style: { fontWeight: 600 }, children: "Assistant" }),
2234
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { style: { fontSize: "0.75rem", color: "var(--color-muted-foreground)" }, children: "Online" })
2235
- ] })
2236
- ] }),
2237
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { style: { display: "flex", gap: "0.5rem" }, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("button", { className: "qt-button-icon", "aria-label": "Settings", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("svg", { width: "20", height: "20", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: [
2238
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z" }),
2239
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 12a3 3 0 11-6 0 3 3 0 016 0z" })
2240
- ] }) }) })
2241
- ] }),
2242
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { style: { flex: 1, overflow: "auto", padding: "1rem", display: "flex", flexDirection: "column", gap: "0.75rem" }, children: [
2243
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { style: { display: "flex", gap: "0.5rem" }, children: [
2244
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-avatar qt-avatar-sm", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-avatar-fallback", children: "AI" }) }),
2245
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-chat-message qt-chat-message-assistant", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("p", { children: "Hello! How can I help you today?" }) })
2246
- ] }),
2247
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { style: { display: "flex", justifyContent: "flex-end" }, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "qt-chat-message qt-chat-message-user", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("p", { children: "I'd like to know more about theming." }) }) })
2248
- ] }),
2249
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "qt-chat-composer", style: { margin: "0.5rem", borderRadius: "var(--radius-lg)" }, children: [
2250
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
2251
- "textarea",
2252
- {
2253
- className: "qt-chat-composer-input qt-input",
2254
- placeholder: "Type a message...",
2255
- rows: 1
2256
- }
2257
- ),
2258
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("button", { className: "qt-button qt-button-primary qt-button-sm", children: "Send" })
2259
- ] })
2260
- ] })
2261
- ] })
2262
- ] });
2263
- };
2264
-
2265
- // src/stories/components/Terminal.tsx
2266
- var import_jsx_runtime16 = require("react/jsx-runtime");
2267
- var sampleOutput = `$ git status
2268
- On branch main
2269
- Your branch is up to date with 'origin/main'.
2270
-
2271
- nothing to commit, working tree clean
2272
- $ npm run dev
2273
- > next dev
2274
- \u25B2 Next.js 16.0.0
2275
- - Local: http://localhost:3000
2276
- - ready started server on 0.0.0.0:3000`;
2277
- var Terminal = () => {
2278
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { style: { padding: "1.5rem" }, children: [
2279
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("h2", { style: { fontSize: "1.5rem", fontWeight: 700, marginBottom: "1.5rem" }, children: "Terminal Components" }),
2280
- /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("p", { style: { marginBottom: "1.5rem", color: "var(--color-muted-foreground)" }, children: [
2281
- "The terminal carries its own identity. By default it stays dark in both light and dark themes \u2014 but a theme can override",
2282
- " ",
2283
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("code", { children: "--qt-terminal-bg" }),
2284
- ", ",
2285
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("code", { children: "--qt-terminal-fg" }),
2286
- ", and the",
2287
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("code", { children: "--qt-terminal-chrome-*" }),
2288
- " tokens to reskin every surface below."
2289
- ] }),
2290
- /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
2291
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "In-chat embed" }),
2292
- /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("p", { style: { marginBottom: "0.75rem", fontSize: "0.875rem", color: "var(--color-muted-foreground)" }, children: [
2293
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("code", { children: ".qt-terminal-embed" }),
2294
- " wraps the embed card; the header and footer strips inherit the surrounding theme so they nest cleanly with chat bubbles."
2295
- ] }),
2296
- /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "qt-terminal-embed", style: { maxWidth: "36rem" }, children: [
2297
- /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "qt-terminal-embed-header", children: [
2298
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { style: { display: "flex", alignItems: "center", gap: "0.5rem" }, children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("h4", { style: { fontSize: "0.875rem", fontWeight: 500, margin: 0 }, children: "Terminal \u2014 zsh" }) }),
2299
- /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { style: { display: "flex", gap: "0.5rem" }, children: [
2300
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("button", { className: "qt-button-icon", type: "button", children: "Pop out" }),
2301
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("button", { className: "qt-button-icon qt-text-destructive", type: "button", children: "Kill" })
2302
- ] })
2303
- ] }),
2304
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "qt-terminal-surface", style: { padding: "0.75rem", fontFamily: "var(--qt-font-mono, monospace)", color: "var(--qt-terminal-fg)", fontSize: "0.8125rem", whiteSpace: "pre-wrap" }, children: sampleOutput })
2305
- ] })
2306
- ] }),
2307
- /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
2308
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Embed footer (handed off to Terminal Mode pane)" }),
2309
- /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "qt-terminal-embed", style: { maxWidth: "36rem" }, children: [
2310
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "qt-terminal-embed-header", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("h4", { style: { fontSize: "0.875rem", fontWeight: 500, margin: 0 }, children: "Terminal \u2014 zsh" }) }),
2311
- /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "qt-terminal-embed-footer", children: [
2312
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "qt-text-secondary", children: "Showing in Terminal Mode pane." }),
2313
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("button", { className: "qt-button-secondary", type: "button", style: { fontSize: "0.75rem", padding: "0.25rem 0.5rem" }, children: "Go to pane \u2192" })
2314
- ] })
2315
- ] })
2316
- ] }),
2317
- /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
2318
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Pop-out page chrome" }),
2319
- /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("p", { style: { marginBottom: "0.75rem", fontSize: "0.875rem", color: "var(--color-muted-foreground)" }, children: [
2320
- "The full-screen pop-out page uses",
2321
- " ",
2322
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("code", { children: ".qt-terminal-popout-page" }),
2323
- " as the outer canvas and",
2324
- " ",
2325
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("code", { children: ".qt-terminal-popout-header" }),
2326
- " for the breadcrumb bar."
2327
- ] }),
2328
- /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "qt-terminal-popout-page", style: { borderRadius: "0.5rem", overflow: "hidden", border: "1px solid var(--color-border)", height: "240px", display: "flex", flexDirection: "column" }, children: [
2329
- /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "qt-terminal-popout-header", children: [
2330
- /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: "0.75rem" }, children: [
2331
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("button", { className: "qt-button-icon", type: "button", style: { color: "inherit" }, children: "\u2190" }),
2332
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("a", { href: "#", className: "qt-terminal-popout-link", style: { fontSize: "0.875rem" }, children: "Chat" }),
2333
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "qt-terminal-popout-separator", children: "/" }),
2334
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("h1", { className: "qt-terminal-popout-title", style: { fontSize: "1rem", margin: 0 }, children: "Terminal \u2014 zsh" })
2335
- ] }),
2336
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("button", { className: "qt-button-destructive", type: "button", style: { fontSize: "0.875rem" }, children: "Kill Session" })
2337
- ] }),
2338
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { style: { flex: 1, padding: "0.75rem", fontFamily: "var(--qt-font-mono, monospace)", color: "var(--qt-terminal-fg)", fontSize: "0.8125rem", whiteSpace: "pre-wrap" }, children: sampleOutput })
2339
- ] })
2340
- ] }),
2341
- /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("section", { children: [
2342
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Session-exited overlay" }),
2343
- /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("p", { style: { marginBottom: "0.75rem", fontSize: "0.875rem", color: "var(--color-muted-foreground)" }, children: [
2344
- "When the PTY exits but the terminal stays mounted, the",
2345
- " ",
2346
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("code", { children: ".qt-terminal-closed-badge" }),
2347
- " overlay marks it."
2348
- ] }),
2349
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "qt-terminal-surface", style: { position: "relative", height: "120px", borderRadius: "0.5rem" }, children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "qt-terminal-closed-badge", children: "Closed" }) })
2350
- ] })
2351
- ] });
2352
- };
2353
-
2354
- // src/stories/components/FilePreview.tsx
2355
- var import_jsx_runtime17 = require("react/jsx-runtime");
2356
- var FilePreview = () => {
2357
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { style: { padding: "1.5rem" }, children: [
2358
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("h2", { style: { fontSize: "1.5rem", fontWeight: 700, marginBottom: "1.5rem" }, children: "File Preview Components" }),
2359
- /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
2360
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Scroll Container" }),
2361
- /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("p", { style: { fontSize: "0.875rem", color: "var(--color-muted-foreground)", marginBottom: "1rem" }, children: [
2362
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("code", { children: ".qt-file-preview-scroll" }),
2363
- " - Scrollable container for file content with configurable max height."
2364
- ] }),
2365
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "qt-file-preview-scroll", style: { height: "150px", border: "1px solid var(--color-border)", borderRadius: "var(--radius-lg)" }, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { style: { padding: "1rem" }, children: Array.from({ length: 20 }, (_, i) => /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("p", { style: { margin: "0.5rem 0" }, children: [
2366
- "Line ",
2367
- i + 1,
2368
- ": Lorem ipsum dolor sit amet, consectetur adipiscing elit."
2369
- ] }, i)) }) })
2370
- ] }),
2371
- /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
2372
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Content Panel" }),
2373
- /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("p", { style: { fontSize: "0.875rem", color: "var(--color-muted-foreground)", marginBottom: "1rem" }, children: [
2374
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("code", { children: ".qt-file-preview-panel" }),
2375
- " - Background panel for rendered markdown content."
2376
- ] }),
2377
- /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "qt-file-preview-panel", children: [
2378
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("h4", { style: { margin: "0 0 0.5rem 0" }, children: "Document Title" }),
2379
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("p", { style: { margin: 0 }, children: "This is a content panel used for displaying rendered markdown files with a subtle background." })
2380
- ] })
2381
- ] }),
2382
- /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
2383
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Code Block" }),
2384
- /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("p", { style: { fontSize: "0.875rem", color: "var(--color-muted-foreground)", marginBottom: "1rem" }, children: [
2385
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("code", { children: ".qt-file-preview-code" }),
2386
- " - Styled code block for plain text and source files with word wrap."
2387
- ] }),
2388
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("pre", { className: "qt-file-preview-code", children: `function greet(name: string): string {
2389
- return \`Hello, \${name}!\`;
2390
- }
2391
-
2392
- // Call the function
2393
- const message = greet("World");
2394
- console.log(message);` })
2395
- ] }),
2396
- /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
2397
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Loading State" }),
2398
- /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("p", { style: { fontSize: "0.875rem", color: "var(--color-muted-foreground)", marginBottom: "1rem" }, children: [
2399
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("code", { children: ".qt-file-preview-loading" }),
2400
- " + ",
2401
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("code", { children: ".qt-file-preview-loading-text" }),
2402
- " - Loading indicator."
2403
- ] }),
2404
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { style: { border: "1px solid var(--color-border)", borderRadius: "var(--radius-lg)" }, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "qt-file-preview-loading", style: { minHeight: "150px" }, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "qt-file-preview-loading-text", children: "Loading file..." }) }) })
2405
- ] }),
2406
- /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
2407
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Empty / Error State" }),
2408
- /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("p", { style: { fontSize: "0.875rem", color: "var(--color-muted-foreground)", marginBottom: "1rem" }, children: [
2409
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("code", { children: ".qt-file-preview-empty" }),
2410
- " + ",
2411
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("code", { children: ".qt-file-preview-empty-icon" }),
2412
- " - Empty or error state display."
2413
- ] }),
2414
- /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { style: { display: "grid", gridTemplateColumns: "repeat(2, 1fr)", gap: "1rem" }, children: [
2415
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { style: { border: "1px solid var(--color-border)", borderRadius: "var(--radius-lg)" }, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "qt-file-preview-empty", style: { minHeight: "150px" }, children: [
2416
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "qt-file-preview-empty-icon", children: "\u{1F4C4}" }),
2417
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("p", { children: "No content available" })
2418
- ] }) }),
2419
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { style: { border: "1px solid var(--color-border)", borderRadius: "var(--radius-lg)" }, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "qt-file-preview-empty", style: { minHeight: "150px" }, children: [
2420
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "qt-file-preview-empty-icon", children: "\u26A0\uFE0F" }),
2421
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("p", { children: "Failed to load file" })
2422
- ] }) })
2423
- ] })
2424
- ] }),
2425
- /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
2426
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Wikilinks" }),
2427
- /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("p", { style: { fontSize: "0.875rem", color: "var(--color-muted-foreground)", marginBottom: "1rem" }, children: [
2428
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("code", { children: ".qt-wikilink" }),
2429
- " + ",
2430
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("code", { children: ".qt-wikilink-broken" }),
2431
- " - Internal document links in markdown."
2432
- ] }),
2433
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "qt-file-preview-panel", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("p", { style: { margin: 0, lineHeight: 2 }, children: [
2434
- "This document references ",
2435
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("button", { type: "button", className: "qt-wikilink", children: "Character Profile" }),
2436
- " and links to ",
2437
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("button", { type: "button", className: "qt-wikilink", children: "World Building \u2192 Geography" }),
2438
- ". There's also a ",
2439
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("button", { type: "button", className: "qt-wikilink-broken", children: "Missing Document" }),
2440
- " that doesn't exist yet."
2441
- ] }) })
2442
- ] }),
2443
- /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
2444
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "CSS Variables" }),
2445
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { style: { display: "grid", gridTemplateColumns: "repeat(auto-fill, minmax(300px, 1fr))", gap: "0.5rem" }, children: [
2446
- { name: "--qt-file-preview-max-height", value: "70vh", desc: "Max height of scroll container" },
2447
- { name: "--qt-file-preview-min-height", value: "300px", desc: "Min height of loading/empty states" },
2448
- { name: "--qt-file-preview-panel-bg", value: "muted/30%", desc: "Content panel background" },
2449
- { name: "--qt-code-bg", value: "muted", desc: "Code block background" },
2450
- { name: "--qt-code-fg", value: "foreground", desc: "Code block text color" },
2451
- { name: "--qt-code-font", value: "monospace", desc: "Code block font family" }
2452
- ].map(({ name, value, desc }) => /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { style: { padding: "0.75rem", background: "var(--color-muted)", borderRadius: "var(--radius-md)" }, children: [
2453
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("code", { style: { fontSize: "0.75rem", fontWeight: 600 }, children: name }),
2454
- /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { style: { fontSize: "0.75rem", color: "var(--color-muted-foreground)", marginTop: "0.25rem" }, children: [
2455
- "Default: ",
2456
- value
2457
- ] }),
2458
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { style: { fontSize: "0.75rem", color: "var(--color-muted-foreground)" }, children: desc })
2459
- ] }, name)) })
2460
- ] })
2461
- ] });
2462
- };
2463
-
2464
- // src/stories/components/ThemeComparison.tsx
2465
- var import_jsx_runtime18 = require("react/jsx-runtime");
2466
- var ThemePanel = ({ title, description }) => {
2467
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { style: { flex: 1, minWidth: "20rem" }, children: [
2468
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { style: { marginBottom: "1rem" }, children: [
2469
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("h4", { style: { fontWeight: 600 }, children: title }),
2470
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("p", { style: { fontSize: "0.875rem", color: "var(--color-muted-foreground)" }, children: description })
2471
- ] }),
2472
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "qt-card", style: { marginBottom: "1rem" }, children: [
2473
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "qt-card-header", children: [
2474
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("h5", { className: "qt-card-title", children: "Sample Card" }),
2475
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("p", { className: "qt-card-description", children: "This is how cards look in this theme." })
2476
- ] }),
2477
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "qt-card-body", children: [
2478
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("p", { style: { marginBottom: "1rem" }, children: "Cards are used throughout the application for grouping content." }),
2479
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { style: { display: "flex", gap: "0.5rem", flexWrap: "wrap" }, children: [
2480
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "qt-badge qt-badge-primary", children: "Primary" }),
2481
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "qt-badge qt-badge-secondary", children: "Secondary" }),
2482
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "qt-badge qt-badge-success", children: "Success" })
2483
- ] })
2484
- ] }),
2485
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "qt-card-footer", children: [
2486
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("button", { className: "qt-button qt-button-ghost", children: "Cancel" }),
2487
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("button", { className: "qt-button qt-button-primary", children: "Save" })
2488
- ] })
2489
- ] }),
2490
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "qt-panel", style: { padding: "1rem", marginBottom: "1rem" }, children: [
2491
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { style: { marginBottom: "0.75rem" }, children: [
2492
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("label", { style: { display: "block", marginBottom: "0.25rem", fontSize: "0.875rem", fontWeight: 500 }, children: "Text Input" }),
2493
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("input", { className: "qt-input", type: "text", placeholder: "Enter text..." })
2494
- ] }),
2495
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { style: { marginBottom: "0.75rem" }, children: [
2496
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("label", { style: { display: "block", marginBottom: "0.25rem", fontSize: "0.875rem", fontWeight: 500 }, children: "Select" }),
2497
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("select", { className: "qt-input qt-select", children: [
2498
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("option", { children: "Option 1" }),
2499
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("option", { children: "Option 2" })
2500
- ] })
2501
- ] }),
2502
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { style: { display: "flex", gap: "0.5rem" }, children: [
2503
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("button", { className: "qt-button qt-button-secondary qt-button-sm", children: "Secondary" }),
2504
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("button", { className: "qt-button qt-button-primary qt-button-sm", children: "Primary" })
2505
- ] })
2506
- ] }),
2507
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: "0.5rem" }, children: [
2508
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { style: { display: "flex", gap: "0.5rem" }, children: [
2509
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "qt-avatar qt-avatar-sm", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "qt-avatar-fallback", children: "AI" }) }),
2510
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "qt-chat-message qt-chat-message-assistant", style: { maxWidth: "100%" }, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("p", { style: { fontSize: "0.875rem" }, children: "Hello! This is a chat message." }) })
2511
- ] }),
2512
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { style: { display: "flex", justifyContent: "flex-end" }, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "qt-chat-message qt-chat-message-user", style: { maxWidth: "100%" }, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("p", { style: { fontSize: "0.875rem" }, children: "Great, thanks!" }) }) })
2513
- ] })
2514
- ] });
2515
- };
2516
- var ThemeComparison = () => {
2517
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { style: { padding: "1.5rem" }, children: [
2518
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("h2", { style: { fontSize: "1.5rem", fontWeight: 700, marginBottom: "0.5rem" }, children: "Theme Comparison" }),
2519
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("p", { style: { color: "var(--color-muted-foreground)", marginBottom: "1.5rem" }, children: "Compare your custom theme against the default Quilltap theme. Use the theme toggle above to switch between themes." }),
2520
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
2521
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Current Theme Preview" }),
2522
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
2523
- ThemePanel,
2524
- {
2525
- title: "Active Theme",
2526
- description: "This panel shows how components look with the currently active theme."
2527
- }
2528
- )
2529
- ] }),
2530
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
2531
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Key Theme Colors" }),
2532
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { style: { display: "grid", gridTemplateColumns: "repeat(auto-fill, minmax(8rem, 1fr))", gap: "0.75rem" }, children: [
2533
- { name: "Background", var: "--color-background" },
2534
- { name: "Foreground", var: "--color-foreground" },
2535
- { name: "Card", var: "--color-card" },
2536
- { name: "Primary", var: "--color-primary" },
2537
- { name: "Secondary", var: "--color-secondary" },
2538
- { name: "Muted", var: "--color-muted" },
2539
- { name: "Accent", var: "--color-accent" },
2540
- { name: "Border", var: "--color-border" }
2541
- ].map(({ name, var: cssVar }) => /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { style: { textAlign: "center" }, children: [
2542
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
2543
- "div",
2544
- {
2545
- style: {
2546
- width: "100%",
2547
- height: "3rem",
2548
- backgroundColor: `var(${cssVar})`,
2549
- borderRadius: "var(--radius-md)",
2550
- border: "1px solid var(--color-border)"
2551
- }
2552
- }
2553
- ),
2554
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { style: { marginTop: "0.25rem", fontSize: "0.75rem", fontWeight: 500 }, children: name })
2555
- ] }, cssVar)) })
2556
- ] }),
2557
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
2558
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Semantic Colors" }),
2559
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { style: { display: "grid", gridTemplateColumns: "repeat(auto-fill, minmax(8rem, 1fr))", gap: "0.75rem" }, children: [
2560
- { name: "Destructive", var: "--color-destructive" },
2561
- { name: "Success", var: "--color-success" },
2562
- { name: "Warning", var: "--color-warning" }
2563
- ].map(({ name, var: cssVar }) => /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { style: { textAlign: "center" }, children: [
2564
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
2565
- "div",
2566
- {
2567
- style: {
2568
- width: "100%",
2569
- height: "3rem",
2570
- backgroundColor: `var(${cssVar})`,
2571
- borderRadius: "var(--radius-md)",
2572
- border: "1px solid var(--color-border)"
2573
- }
2574
- }
2575
- ),
2576
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { style: { marginTop: "0.25rem", fontSize: "0.75rem", fontWeight: 500 }, children: name })
2577
- ] }, cssVar)) })
2578
- ] }),
2579
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("section", { children: [
2580
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Component Showcase" }),
2581
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { style: { marginBottom: "1.5rem" }, children: [
2582
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("h4", { style: { fontSize: "0.875rem", fontWeight: 600, marginBottom: "0.75rem", color: "var(--color-muted-foreground)" }, children: "Buttons" }),
2583
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { style: { display: "flex", flexWrap: "wrap", gap: "0.5rem" }, children: [
2584
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("button", { className: "qt-button qt-button-primary", children: "Primary" }),
2585
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("button", { className: "qt-button qt-button-secondary", children: "Secondary" }),
2586
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("button", { className: "qt-button qt-button-ghost", children: "Ghost" }),
2587
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("button", { className: "qt-button qt-button-destructive", children: "Destructive" }),
2588
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("button", { className: "qt-button qt-button-primary", disabled: true, children: "Disabled" })
2589
- ] })
2590
- ] }),
2591
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { style: { marginBottom: "1.5rem" }, children: [
2592
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("h4", { style: { fontSize: "0.875rem", fontWeight: 600, marginBottom: "0.75rem", color: "var(--color-muted-foreground)" }, children: "Badges" }),
2593
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { style: { display: "flex", flexWrap: "wrap", gap: "0.5rem" }, children: [
2594
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "qt-badge qt-badge-default", children: "Default" }),
2595
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "qt-badge qt-badge-primary", children: "Primary" }),
2596
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "qt-badge qt-badge-secondary", children: "Secondary" }),
2597
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "qt-badge qt-badge-success", children: "Success" }),
2598
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "qt-badge qt-badge-warning", children: "Warning" }),
2599
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "qt-badge qt-badge-destructive", children: "Destructive" })
2600
- ] })
2601
- ] }),
2602
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { style: { marginBottom: "1.5rem" }, children: [
2603
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("h4", { style: { fontSize: "0.875rem", fontWeight: 600, marginBottom: "0.75rem", color: "var(--color-muted-foreground)" }, children: "Interactive Card" }),
2604
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "qt-card qt-card-interactive", style: { maxWidth: "20rem", cursor: "pointer" }, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "qt-card-header", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: "0.75rem" }, children: [
2605
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "qt-avatar", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "qt-avatar-fallback", children: "A" }) }),
2606
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { children: [
2607
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("h5", { className: "qt-card-title", children: "Character Name" }),
2608
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("p", { className: "qt-card-description", children: "Click to interact" })
2609
- ] })
2610
- ] }) }) })
2611
- ] }),
2612
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { children: [
2613
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("h4", { style: { fontSize: "0.875rem", fontWeight: 600, marginBottom: "0.75rem", color: "var(--color-muted-foreground)" }, children: "Form Elements" }),
2614
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { style: { display: "flex", gap: "1rem", flexWrap: "wrap", maxWidth: "32rem" }, children: [
2615
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("input", { className: "qt-input", type: "text", placeholder: "Text input", style: { flex: "1 1 10rem" } }),
2616
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("select", { className: "qt-input qt-select", style: { flex: "1 1 10rem" }, children: [
2617
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("option", { children: "Select option" }),
2618
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("option", { children: "Option 1" }),
2619
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("option", { children: "Option 2" })
2620
- ] })
2621
- ] })
2622
- ] })
2623
- ] })
2624
- ] });
2625
- };
2626
-
2627
- // src/stories/components/EmptyState.tsx
2628
- var import_jsx_runtime19 = require("react/jsx-runtime");
2629
- var EmptyState = () => {
2630
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { style: { padding: "1.5rem" }, children: [
2631
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("h2", { style: { fontSize: "1.5rem", fontWeight: 700, marginBottom: "1.5rem" }, children: "Empty States" }),
2632
- /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
2633
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Basic Empty State" }),
2634
- /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "qt-empty-state", children: [
2635
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "qt-empty-state-icon", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("svg", { className: "w-12 h-12", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 1.5, d: "M20 13V6a2 2 0 00-2-2H6a2 2 0 00-2 2v7m16 0v5a2 2 0 01-2 2H6a2 2 0 01-2-2v-5m16 0h-2.586a1 1 0 00-.707.293l-2.414 2.414a1 1 0 01-.707.293h-3.172a1 1 0 01-.707-.293l-2.414-2.414A1 1 0 006.586 13H4" }) }) }),
2636
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("h4", { className: "qt-empty-state-title", children: "No messages yet" }),
2637
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("p", { className: "qt-empty-state-description", children: "Start a conversation to see messages appear here." })
2638
- ] })
2639
- ] }),
2640
- /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
2641
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Empty State with Action" }),
2642
- /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "qt-empty-state", children: [
2643
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "qt-empty-state-icon", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("svg", { className: "w-12 h-12", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 1.5, d: "M12 4.354a4 4 0 110 5.292M15 21H3v-1a6 6 0 0112 0v1zm0 0h6v-1a6 6 0 00-9-5.197M13 7a4 4 0 11-8 0 4 4 0 018 0z" }) }) }),
2644
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("h4", { className: "qt-empty-state-title", children: "No characters" }),
2645
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("p", { className: "qt-empty-state-description", children: "You haven't created any characters yet. Create your first character to get started." }),
2646
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "qt-empty-state-action", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("button", { className: "qt-button qt-button-primary", children: "Create Character" }) })
2647
- ] })
2648
- ] }),
2649
- /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
2650
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Search Empty State" }),
2651
- /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "qt-empty-state", children: [
2652
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "qt-empty-state-icon", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("svg", { className: "w-12 h-12", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 1.5, d: "M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z" }) }) }),
2653
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("h4", { className: "qt-empty-state-title", children: "No results found" }),
2654
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("p", { className: "qt-empty-state-description", children: "Try adjusting your search or filters to find what you're looking for." }),
2655
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "qt-empty-state-action", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("button", { className: "qt-button qt-button-secondary", children: "Clear Filters" }) })
2656
- ] })
2657
- ] }),
2658
- /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("section", { children: [
2659
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Error Empty State" }),
2660
- /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "qt-empty-state", children: [
2661
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "qt-empty-state-icon text-red-500", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("svg", { className: "w-12 h-12", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 1.5, d: "M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z" }) }) }),
2662
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("h4", { className: "qt-empty-state-title", children: "Something went wrong" }),
2663
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("p", { className: "qt-empty-state-description", children: "We couldn't load the content. Please try again." }),
2664
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "qt-empty-state-action", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("button", { className: "qt-button qt-button-primary", children: "Try Again" }) })
2665
- ] })
2666
- ] })
2667
- ] });
2668
- };
2669
-
2670
- // src/stories/components/Loading.tsx
2671
- var import_jsx_runtime20 = require("react/jsx-runtime");
2672
- var Loading = () => {
2673
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { style: { padding: "1.5rem" }, children: [
2674
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("h2", { style: { fontSize: "1.5rem", fontWeight: 700, marginBottom: "1.5rem" }, children: "Loading States" }),
2675
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
2676
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Spinners" }),
2677
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { style: { display: "flex", gap: "2rem", alignItems: "center" }, children: [
2678
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { style: { textAlign: "center" }, children: [
2679
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "qt-spinner qt-spinner-sm", style: { margin: "0 auto" } }),
2680
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("p", { style: { fontSize: "0.75rem", marginTop: "0.5rem" }, children: "Small" })
2681
- ] }),
2682
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { style: { textAlign: "center" }, children: [
2683
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "qt-spinner", style: { margin: "0 auto" } }),
2684
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("p", { style: { fontSize: "0.75rem", marginTop: "0.5rem" }, children: "Default" })
2685
- ] }),
2686
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { style: { textAlign: "center" }, children: [
2687
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "qt-spinner qt-spinner-lg", style: { margin: "0 auto" } }),
2688
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("p", { style: { fontSize: "0.75rem", marginTop: "0.5rem" }, children: "Large" })
2689
- ] })
2690
- ] })
2691
- ] }),
2692
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
2693
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Skeleton Text" }),
2694
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { style: { maxWidth: "28rem", display: "flex", flexDirection: "column", gap: "0.5rem" }, children: [
2695
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "qt-skeleton qt-skeleton-text", style: { width: "100%" } }),
2696
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "qt-skeleton qt-skeleton-text", style: { width: "80%" } }),
2697
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "qt-skeleton qt-skeleton-text", style: { width: "60%" } })
2698
- ] })
2699
- ] }),
2700
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
2701
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Skeleton Card" }),
2702
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "qt-card", style: { maxWidth: "24rem", padding: "1rem" }, children: [
2703
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { style: { display: "flex", gap: "0.75rem", marginBottom: "1rem", alignItems: "flex-start" }, children: [
2704
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "qt-skeleton qt-skeleton-circle", style: { width: "40px", height: "40px", flexShrink: 0 } }),
2705
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { style: { flex: 1, display: "flex", flexDirection: "column", gap: "0.5rem" }, children: [
2706
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "qt-skeleton qt-skeleton-text", style: { width: "60%" } }),
2707
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "qt-skeleton qt-skeleton-text", style: { width: "40%" } })
2708
- ] })
2709
- ] }),
2710
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: "0.5rem" }, children: [
2711
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "qt-skeleton qt-skeleton-text" }),
2712
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "qt-skeleton qt-skeleton-text" }),
2713
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "qt-skeleton qt-skeleton-text", style: { width: "75%" } })
2714
- ] })
2715
- ] })
2716
- ] }),
2717
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
2718
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Skeleton Message" }),
2719
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { style: { maxWidth: "42rem", display: "flex", flexDirection: "column", gap: "1rem" }, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { style: { display: "flex", gap: "0.75rem" }, children: [
2720
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "qt-skeleton qt-skeleton-circle", style: { width: "32px", height: "32px", flexShrink: 0 } }),
2721
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { style: { flex: 1, display: "flex", flexDirection: "column", gap: "0.5rem" }, children: [
2722
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "qt-skeleton qt-skeleton-text", style: { width: "120px" } }),
2723
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "qt-card", style: { padding: "1rem" }, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: "0.5rem" }, children: [
2724
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "qt-skeleton qt-skeleton-text" }),
2725
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "qt-skeleton qt-skeleton-text" }),
2726
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "qt-skeleton qt-skeleton-text", style: { width: "60%" } })
2727
- ] }) })
2728
- ] })
2729
- ] }) })
2730
- ] }),
2731
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
2732
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Skeleton List" }),
2733
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { style: { maxWidth: "24rem", display: "flex", flexDirection: "column", gap: "0.5rem" }, children: [1, 2, 3].map((i) => /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "qt-card", style: { padding: "0.75rem", display: "flex", gap: "0.75rem", alignItems: "center" }, children: [
2734
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "qt-skeleton qt-skeleton-circle", style: { width: "32px", height: "32px", flexShrink: 0 } }),
2735
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { style: { flex: 1 }, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "qt-skeleton qt-skeleton-text", style: { width: "70%" } }) })
2736
- ] }, i)) })
2737
- ] }),
2738
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("section", { children: [
2739
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Loading Button" }),
2740
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { style: { display: "flex", gap: "1rem" }, children: [
2741
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("button", { className: "qt-button qt-button-primary", disabled: true, style: { display: "flex", alignItems: "center", gap: "0.5rem" }, children: [
2742
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "qt-spinner qt-spinner-sm" }),
2743
- "Loading..."
2744
- ] }),
2745
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("button", { className: "qt-button qt-button-secondary", disabled: true, style: { display: "flex", alignItems: "center", gap: "0.5rem" }, children: [
2746
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "qt-spinner qt-spinner-sm" }),
2747
- "Saving..."
2748
- ] })
2749
- ] })
2750
- ] })
2751
- ] });
2752
- };
2753
-
2754
- // src/stories/components/Participant.tsx
2755
- var import_jsx_runtime21 = require("react/jsx-runtime");
2756
- var Participant = () => {
2757
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { style: { padding: "1.5rem" }, children: [
2758
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("h2", { style: { fontSize: "1.5rem", fontWeight: 700, marginBottom: "1.5rem" }, children: "Participants" }),
2759
- /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
2760
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Participant Cards" }),
2761
- /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { style: { maxWidth: "20rem", display: "flex", flexDirection: "column", gap: "0.5rem" }, children: [
2762
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-participant-card", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "qt-participant-card-header", children: [
2763
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-participant-card-avatar", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-avatar", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-avatar-fallback", children: "AC" }) }) }),
2764
- /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "qt-participant-card-info", children: [
2765
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-participant-card-name", children: "Alice Character" }),
2766
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-participant-card-status", children: "AI Assistant" })
2767
- ] })
2768
- ] }) }),
2769
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-participant-card qt-participant-card-active", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "qt-participant-card-header", children: [
2770
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-participant-card-avatar", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-avatar", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-avatar-fallback", children: "BC" }) }) }),
2771
- /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "qt-participant-card-info", children: [
2772
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-participant-card-name", children: "Bob Character" }),
2773
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-participant-card-status", children: "Currently Speaking" })
2774
- ] })
2775
- ] }) }),
2776
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-participant-card", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "qt-participant-card-header", children: [
2777
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-participant-card-avatar", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-avatar", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-avatar-fallback", children: "YO" }) }) }),
2778
- /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "qt-participant-card-info", children: [
2779
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-participant-card-name", children: "You" }),
2780
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-participant-card-status", children: "Human" })
2781
- ] })
2782
- ] }) })
2783
- ] })
2784
- ] }),
2785
- /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
2786
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Participant Status States" }),
2787
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("p", { style: { color: "var(--color-muted-foreground)", marginBottom: "1rem" }, children: "Characters can be active, silent (thinking but not speaking), absent (away from the scene), or removed." }),
2788
- /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { style: { maxWidth: "20rem", display: "flex", flexDirection: "column", gap: "0.5rem" }, children: [
2789
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-participant-card qt-participant-card-active", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "qt-participant-card-header", children: [
2790
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-participant-card-avatar", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-avatar", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-avatar-fallback", children: "AC" }) }) }),
2791
- /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "qt-participant-card-info", children: [
2792
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-participant-card-name", children: "Alice Character" }),
2793
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-participant-card-status", children: "Currently Speaking" })
2794
- ] })
2795
- ] }) }),
2796
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-participant-card qt-participant-card-silent", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "qt-participant-card-header", children: [
2797
- /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "qt-participant-card-avatar", style: { position: "relative" }, children: [
2798
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-avatar", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-avatar-fallback", children: "BC" }) }),
2799
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-participant-status-overlay qt-participant-status-overlay-silent", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("svg", { width: "10", height: "10", fill: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("path", { d: "M16.5 12A4.5 4.5 0 0 0 12 7.5v4.09l3.13 3.13A4.46 4.46 0 0 0 16.5 12ZM19 12c0 1.68-.59 3.22-1.57 4.43L21 20l-1.41 1.41-18-18L3 2l4.57 4.57A7.97 7.97 0 0 1 12 4c4.42 0 8 3.58 8 8Zm-7-8a6 6 0 0 0-6 6c0 1.33.44 2.56 1.17 3.56L5 11.44A7.94 7.94 0 0 1 4 8" }) }) })
2800
- ] }),
2801
- /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "qt-participant-card-info", children: [
2802
- /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: "0.5rem" }, children: [
2803
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-participant-card-name", children: "Bob Character" }),
2804
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { className: "qt-badge-silent", style: { fontSize: "0.625rem" }, children: "Silent" })
2805
- ] }),
2806
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-participant-card-status", children: "Inner thoughts only" })
2807
- ] })
2808
- ] }) }),
2809
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-participant-card", style: { opacity: 0.7 }, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "qt-participant-card-header", children: [
2810
- /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "qt-participant-card-avatar", style: { position: "relative" }, children: [
2811
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-avatar", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-avatar-fallback", children: "CC" }) }),
2812
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-participant-status-overlay qt-participant-status-overlay-absent", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("svg", { width: "10", height: "10", fill: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("path", { d: "M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z" }) }) })
2813
- ] }),
2814
- /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "qt-participant-card-info", children: [
2815
- /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: "0.5rem" }, children: [
2816
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-participant-card-name", children: "Clara Character" }),
2817
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { className: "qt-badge-absent", style: { fontSize: "0.625rem" }, children: "Absent" })
2818
- ] }),
2819
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-participant-card-status", children: "Away from the scene" })
2820
- ] })
2821
- ] }) }),
2822
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-participant-card", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "qt-participant-card-header", children: [
2823
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-participant-card-avatar", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-avatar", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-avatar-fallback", children: "YO" }) }) }),
2824
- /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "qt-participant-card-info", children: [
2825
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-participant-card-name", children: "You" }),
2826
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-participant-card-status", children: "Human" })
2827
- ] })
2828
- ] }) })
2829
- ] })
2830
- ] }),
2831
- /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
2832
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Chat Sidebar Layout" }),
2833
- /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { style: { display: "flex", gap: "1rem" }, children: [
2834
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-card", style: { flex: 1, padding: "1rem" }, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("p", { style: { color: "var(--color-text-muted)" }, children: "Chat messages area" }) }),
2835
- /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "qt-chat-sidebar", style: { width: "16rem" }, children: [
2836
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { style: { padding: "1rem", borderBottom: "1px solid var(--qt-chat-sidebar-header-border)" }, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("h4", { style: { fontWeight: 600, color: "var(--qt-chat-sidebar-heading)" }, children: "Participants" }) }),
2837
- /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { style: { padding: "0.5rem", display: "flex", flexDirection: "column", gap: "0.5rem" }, children: [
2838
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-participant-card qt-participant-card-active", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "qt-participant-card-header", children: [
2839
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-participant-card-avatar", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-avatar qt-avatar-sm", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-avatar-fallback", children: "AC" }) }) }),
2840
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-participant-card-info", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-participant-card-name", style: { fontSize: "0.875rem" }, children: "Alice" }) })
2841
- ] }) }),
2842
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-participant-card", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "qt-participant-card-header", children: [
2843
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-participant-card-avatar", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-avatar qt-avatar-sm", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-avatar-fallback", children: "YO" }) }) }),
2844
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-participant-card-info", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-participant-card-name", style: { fontSize: "0.875rem" }, children: "You" }) })
2845
- ] }) })
2846
- ] })
2847
- ] })
2848
- ] })
2849
- ] }),
2850
- /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("section", { children: [
2851
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Connection Profile Dropdown" }),
2852
- /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { style: { maxWidth: "20rem", display: "flex", flexDirection: "column", gap: "1rem" }, children: [
2853
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-participant-card", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "qt-participant-card-header", children: [
2854
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-participant-card-avatar", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-avatar", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-avatar-fallback", children: "AC" }) }) }),
2855
- /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "qt-participant-card-info", children: [
2856
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-participant-card-name", children: "Alice Character" }),
2857
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-participant-card-status", children: "AI Assistant" }),
2858
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { style: { marginTop: "0.25rem" }, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("select", { className: "qt-select qt-select-sm", style: { width: "100%" }, defaultValue: "gpt-4", children: [
2859
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("option", { value: "", children: "Select a provider..." }),
2860
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("option", { value: "__user__", children: "User (you type)" }),
2861
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("option", { value: "gpt-4", children: "gpt-4-turbo" }),
2862
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("option", { value: "claude", children: "claude-3-opus" }),
2863
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("option", { value: "gemini", children: "gemini-pro" })
2864
- ] }) })
2865
- ] })
2866
- ] }) }),
2867
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-participant-card", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "qt-participant-card-header", children: [
2868
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-participant-card-avatar", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-avatar", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-avatar-fallback", children: "BC" }) }) }),
2869
- /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "qt-participant-card-info", children: [
2870
- /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: "0.5rem" }, children: [
2871
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "qt-participant-card-name", children: "Bob Character" }),
2872
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { className: "qt-badge-secondary", style: { fontSize: "0.75rem" }, children: "You" })
2873
- ] }),
2874
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { style: { marginTop: "0.25rem" }, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("select", { className: "qt-select qt-select-sm", style: { width: "100%" }, defaultValue: "__user__", children: [
2875
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("option", { value: "", children: "Select a provider..." }),
2876
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("option", { value: "__user__", children: "User (you type)" }),
2877
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("option", { value: "gpt-4", children: "gpt-4-turbo" }),
2878
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("option", { value: "claude", children: "claude-3-opus" })
2879
- ] }) })
2880
- ] })
2881
- ] }) })
2882
- ] })
2883
- ] })
2884
- ] });
2885
- };
28
+ var import_preview = require("../src/preview");
29
+ __reExport(src_exports, require("../src/stories"), module.exports);
2886
30
  // Annotate the CommonJS export names for ESM import in node:
2887
31
  0 && (module.exports = {
2888
- Avatars,
2889
- Badges,
2890
- Buttons,
2891
- Cards,
2892
- Chat,
2893
- ColorGroup,
2894
- ColorPalette,
2895
- ColorSwatch,
2896
- Dialogs,
2897
- EmptyState,
2898
- FilePreview,
2899
- Icons,
2900
- Inputs,
2901
- Loading,
2902
- Participant,
2903
- Spacing,
2904
- Surfaces,
2905
- Tabs,
2906
- Terminal,
2907
- ThemeComparison,
2908
32
  ThemeDecorator,
2909
- Typography,
2910
- Workspace,
2911
- defaultPreview
33
+ defaultPreview,
34
+ ...require("../src/stories")
2912
35
  });