@questpie/admin 0.0.1 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (250) hide show
  1. package/README.md +439 -424
  2. package/dist/auth-layout-M8K8_q5R.mjs +181 -0
  3. package/dist/auth-layout-M8K8_q5R.mjs.map +1 -0
  4. package/dist/bulk-upload-dialog-D7w7W1Hl.mjs +273 -0
  5. package/dist/bulk-upload-dialog-D7w7W1Hl.mjs.map +1 -0
  6. package/dist/{components/ui/card.mjs → card-BKHjBQfw.mjs} +8 -8
  7. package/dist/card-BKHjBQfw.mjs.map +1 -0
  8. package/dist/client/styles/index.css +434 -0
  9. package/dist/client-DbpZKSgH.d.mts +13585 -0
  10. package/dist/client-DbpZKSgH.d.mts.map +1 -0
  11. package/dist/client-njX1rZmi.mjs +22612 -0
  12. package/dist/client-njX1rZmi.mjs.map +1 -0
  13. package/dist/client.d.mts +3 -0
  14. package/dist/client.mjs +13 -0
  15. package/dist/content-locales-provider-BXvuIgfg.mjs +1650 -0
  16. package/dist/content-locales-provider-BXvuIgfg.mjs.map +1 -0
  17. package/dist/dashboard-page-B4PGEdc2.mjs +2500 -0
  18. package/dist/dashboard-page-B4PGEdc2.mjs.map +1 -0
  19. package/dist/dashboard-page-mCY0pgZv.mjs +3 -0
  20. package/dist/dropzone-Do3awXKd.mjs +634 -0
  21. package/dist/dropzone-Do3awXKd.mjs.map +1 -0
  22. package/dist/{views/auth/forgot-password-form.mjs → forgot-password-page-Bcp-An4Y.mjs} +87 -14
  23. package/dist/forgot-password-page-Bcp-An4Y.mjs.map +1 -0
  24. package/dist/forgot-password-page-CEwsdLwn.mjs +3 -0
  25. package/dist/index-B9Xwk4hi.d.mts +2753 -0
  26. package/dist/index-B9Xwk4hi.d.mts.map +1 -0
  27. package/dist/index.d.mts +3 -0
  28. package/dist/index.mjs +13 -0
  29. package/dist/login-page-BUnpCbCa.mjs +3 -0
  30. package/dist/login-page-CP4gA-dl.mjs +298 -0
  31. package/dist/login-page-CP4gA-dl.mjs.map +1 -0
  32. package/dist/preview-utils-BKQ9-TMa.mjs +65 -0
  33. package/dist/preview-utils-BKQ9-TMa.mjs.map +1 -0
  34. package/dist/{views/auth/reset-password-form.mjs → reset-password-page-BqfDmLxA.mjs} +111 -14
  35. package/dist/reset-password-page-BqfDmLxA.mjs.map +1 -0
  36. package/dist/reset-password-page-CufHz3h3.mjs +3 -0
  37. package/dist/runtime-6VZM878K.mjs +69 -0
  38. package/dist/runtime-6VZM878K.mjs.map +1 -0
  39. package/dist/saved-views.types-BMsz5mCy.d.mts +42 -0
  40. package/dist/saved-views.types-BMsz5mCy.d.mts.map +1 -0
  41. package/dist/server.d.mts +250 -0
  42. package/dist/server.d.mts.map +1 -0
  43. package/dist/server.mjs +832 -0
  44. package/dist/server.mjs.map +1 -0
  45. package/dist/setup-page-BNNzt_Z6.mjs +3 -0
  46. package/dist/setup-page-YAP_fzqh.mjs +264 -0
  47. package/dist/setup-page-YAP_fzqh.mjs.map +1 -0
  48. package/dist/shared.d.mts +57 -0
  49. package/dist/shared.d.mts.map +1 -0
  50. package/dist/shared.mjs +3 -0
  51. package/dist/{hooks/use-auth.mjs → use-auth-BoLmWtmU.mjs} +42 -30
  52. package/dist/use-auth-BoLmWtmU.mjs.map +1 -0
  53. package/package.json +48 -198
  54. package/.turbo/turbo-build.log +0 -108
  55. package/CHANGELOG.md +0 -10
  56. package/STATUS.md +0 -917
  57. package/VALIDATION.md +0 -602
  58. package/components.json +0 -24
  59. package/dist/__tests__/setup.mjs +0 -38
  60. package/dist/__tests__/test-utils.mjs +0 -45
  61. package/dist/__tests__/vitest.d.mjs +0 -3
  62. package/dist/components/admin-app.mjs +0 -69
  63. package/dist/components/fields/array-field.mjs +0 -190
  64. package/dist/components/fields/checkbox-field.mjs +0 -34
  65. package/dist/components/fields/custom-field.mjs +0 -32
  66. package/dist/components/fields/date-field.mjs +0 -41
  67. package/dist/components/fields/datetime-field.mjs +0 -42
  68. package/dist/components/fields/email-field.mjs +0 -37
  69. package/dist/components/fields/embedded-collection.mjs +0 -253
  70. package/dist/components/fields/field-types.mjs +0 -1
  71. package/dist/components/fields/field-utils.mjs +0 -10
  72. package/dist/components/fields/field-wrapper.mjs +0 -34
  73. package/dist/components/fields/index.mjs +0 -23
  74. package/dist/components/fields/json-field.mjs +0 -243
  75. package/dist/components/fields/locale-badge.mjs +0 -16
  76. package/dist/components/fields/number-field.mjs +0 -39
  77. package/dist/components/fields/password-field.mjs +0 -37
  78. package/dist/components/fields/relation-field.mjs +0 -104
  79. package/dist/components/fields/relation-picker.mjs +0 -229
  80. package/dist/components/fields/relation-select.mjs +0 -188
  81. package/dist/components/fields/rich-text-editor/index.mjs +0 -897
  82. package/dist/components/fields/select-field.mjs +0 -41
  83. package/dist/components/fields/switch-field.mjs +0 -34
  84. package/dist/components/fields/text-field.mjs +0 -38
  85. package/dist/components/fields/textarea-field.mjs +0 -38
  86. package/dist/components/index.mjs +0 -59
  87. package/dist/components/primitives/checkbox-input.mjs +0 -127
  88. package/dist/components/primitives/date-input.mjs +0 -303
  89. package/dist/components/primitives/index.mjs +0 -12
  90. package/dist/components/primitives/number-input.mjs +0 -104
  91. package/dist/components/primitives/select-input.mjs +0 -177
  92. package/dist/components/primitives/tag-input.mjs +0 -135
  93. package/dist/components/primitives/text-input.mjs +0 -39
  94. package/dist/components/primitives/textarea-input.mjs +0 -37
  95. package/dist/components/primitives/toggle-input.mjs +0 -31
  96. package/dist/components/primitives/types.mjs +0 -12
  97. package/dist/components/ui/accordion.mjs +0 -55
  98. package/dist/components/ui/avatar.mjs +0 -54
  99. package/dist/components/ui/badge.mjs +0 -34
  100. package/dist/components/ui/button.mjs +0 -48
  101. package/dist/components/ui/checkbox.mjs +0 -21
  102. package/dist/components/ui/combobox.mjs +0 -163
  103. package/dist/components/ui/dialog.mjs +0 -95
  104. package/dist/components/ui/dropdown-menu.mjs +0 -138
  105. package/dist/components/ui/field.mjs +0 -113
  106. package/dist/components/ui/input-group.mjs +0 -82
  107. package/dist/components/ui/input.mjs +0 -17
  108. package/dist/components/ui/label.mjs +0 -15
  109. package/dist/components/ui/popover.mjs +0 -56
  110. package/dist/components/ui/scroll-area.mjs +0 -38
  111. package/dist/components/ui/select.mjs +0 -100
  112. package/dist/components/ui/separator.mjs +0 -16
  113. package/dist/components/ui/sheet.mjs +0 -90
  114. package/dist/components/ui/sidebar.mjs +0 -387
  115. package/dist/components/ui/skeleton.mjs +0 -14
  116. package/dist/components/ui/spinner.mjs +0 -16
  117. package/dist/components/ui/switch.mjs +0 -22
  118. package/dist/components/ui/table.mjs +0 -68
  119. package/dist/components/ui/tabs.mjs +0 -48
  120. package/dist/components/ui/textarea.mjs +0 -15
  121. package/dist/components/ui/tooltip.mjs +0 -44
  122. package/dist/config/component-registry.mjs +0 -38
  123. package/dist/config/index.mjs +0 -129
  124. package/dist/hooks/admin-provider.mjs +0 -70
  125. package/dist/hooks/index.mjs +0 -7
  126. package/dist/hooks/store.mjs +0 -178
  127. package/dist/hooks/use-collection-db.mjs +0 -146
  128. package/dist/hooks/use-collection.mjs +0 -112
  129. package/dist/hooks/use-global.mjs +0 -46
  130. package/dist/hooks/use-mobile.mjs +0 -20
  131. package/dist/lib/utils.mjs +0 -10
  132. package/dist/styles/index.css +0 -336
  133. package/dist/styles/index.mjs +0 -1
  134. package/dist/utils/index.mjs +0 -9
  135. package/dist/views/auth/auth-layout.mjs +0 -52
  136. package/dist/views/auth/index.mjs +0 -6
  137. package/dist/views/auth/login-form.mjs +0 -156
  138. package/dist/views/collection/auto-form-fields.mjs +0 -525
  139. package/dist/views/collection/collection-form.mjs +0 -91
  140. package/dist/views/collection/collection-list.mjs +0 -76
  141. package/dist/views/collection/form-field.mjs +0 -42
  142. package/dist/views/collection/index.mjs +0 -6
  143. package/dist/views/common/index.mjs +0 -4
  144. package/dist/views/common/locale-switcher.mjs +0 -39
  145. package/dist/views/common/version-history.mjs +0 -272
  146. package/dist/views/index.mjs +0 -9
  147. package/dist/views/layout/admin-layout.mjs +0 -40
  148. package/dist/views/layout/admin-router.mjs +0 -95
  149. package/dist/views/layout/admin-sidebar.mjs +0 -63
  150. package/dist/views/layout/index.mjs +0 -5
  151. package/src/__tests__/setup.ts +0 -44
  152. package/src/__tests__/test-utils.tsx +0 -49
  153. package/src/__tests__/vitest.d.ts +0 -9
  154. package/src/components/admin-app.tsx +0 -221
  155. package/src/components/fields/array-field.tsx +0 -237
  156. package/src/components/fields/checkbox-field.tsx +0 -47
  157. package/src/components/fields/custom-field.tsx +0 -50
  158. package/src/components/fields/date-field.tsx +0 -65
  159. package/src/components/fields/datetime-field.tsx +0 -67
  160. package/src/components/fields/email-field.tsx +0 -51
  161. package/src/components/fields/embedded-collection.tsx +0 -315
  162. package/src/components/fields/field-types.ts +0 -162
  163. package/src/components/fields/field-utils.ts +0 -6
  164. package/src/components/fields/field-wrapper.tsx +0 -52
  165. package/src/components/fields/index.ts +0 -66
  166. package/src/components/fields/json-field.tsx +0 -440
  167. package/src/components/fields/locale-badge.tsx +0 -15
  168. package/src/components/fields/number-field.tsx +0 -57
  169. package/src/components/fields/password-field.tsx +0 -51
  170. package/src/components/fields/relation-field.tsx +0 -243
  171. package/src/components/fields/relation-picker.tsx +0 -402
  172. package/src/components/fields/relation-select.tsx +0 -327
  173. package/src/components/fields/rich-text-editor/index.tsx +0 -1337
  174. package/src/components/fields/select-field.tsx +0 -61
  175. package/src/components/fields/switch-field.tsx +0 -47
  176. package/src/components/fields/text-field.tsx +0 -55
  177. package/src/components/fields/textarea-field.tsx +0 -55
  178. package/src/components/index.ts +0 -40
  179. package/src/components/primitives/checkbox-input.tsx +0 -193
  180. package/src/components/primitives/date-input.tsx +0 -401
  181. package/src/components/primitives/index.ts +0 -24
  182. package/src/components/primitives/number-input.tsx +0 -132
  183. package/src/components/primitives/select-input.tsx +0 -296
  184. package/src/components/primitives/tag-input.tsx +0 -200
  185. package/src/components/primitives/text-input.tsx +0 -49
  186. package/src/components/primitives/textarea-input.tsx +0 -46
  187. package/src/components/primitives/toggle-input.tsx +0 -36
  188. package/src/components/primitives/types.ts +0 -235
  189. package/src/components/ui/accordion.tsx +0 -72
  190. package/src/components/ui/avatar.tsx +0 -106
  191. package/src/components/ui/badge.tsx +0 -48
  192. package/src/components/ui/button.tsx +0 -53
  193. package/src/components/ui/card.tsx +0 -94
  194. package/src/components/ui/checkbox.tsx +0 -27
  195. package/src/components/ui/combobox.tsx +0 -290
  196. package/src/components/ui/dialog.tsx +0 -151
  197. package/src/components/ui/dropdown-menu.tsx +0 -254
  198. package/src/components/ui/field.tsx +0 -227
  199. package/src/components/ui/input-group.tsx +0 -149
  200. package/src/components/ui/input.tsx +0 -20
  201. package/src/components/ui/label.tsx +0 -18
  202. package/src/components/ui/popover.tsx +0 -88
  203. package/src/components/ui/scroll-area.tsx +0 -53
  204. package/src/components/ui/select.tsx +0 -192
  205. package/src/components/ui/separator.tsx +0 -23
  206. package/src/components/ui/sheet.tsx +0 -127
  207. package/src/components/ui/sidebar.tsx +0 -723
  208. package/src/components/ui/skeleton.tsx +0 -13
  209. package/src/components/ui/spinner.tsx +0 -10
  210. package/src/components/ui/switch.tsx +0 -32
  211. package/src/components/ui/table.tsx +0 -99
  212. package/src/components/ui/tabs.tsx +0 -82
  213. package/src/components/ui/textarea.tsx +0 -18
  214. package/src/components/ui/tooltip.tsx +0 -70
  215. package/src/config/component-registry.ts +0 -190
  216. package/src/config/index.ts +0 -1099
  217. package/src/hooks/README.md +0 -269
  218. package/src/hooks/admin-provider.tsx +0 -110
  219. package/src/hooks/index.ts +0 -41
  220. package/src/hooks/store.ts +0 -248
  221. package/src/hooks/use-auth.ts +0 -168
  222. package/src/hooks/use-collection-db.ts +0 -209
  223. package/src/hooks/use-collection.ts +0 -156
  224. package/src/hooks/use-global.ts +0 -69
  225. package/src/hooks/use-mobile.ts +0 -21
  226. package/src/lib/utils.ts +0 -6
  227. package/src/styles/index.css +0 -340
  228. package/src/utils/index.ts +0 -6
  229. package/src/views/auth/auth-layout.tsx +0 -77
  230. package/src/views/auth/forgot-password-form.tsx +0 -192
  231. package/src/views/auth/index.ts +0 -21
  232. package/src/views/auth/login-form.tsx +0 -229
  233. package/src/views/auth/reset-password-form.tsx +0 -232
  234. package/src/views/collection/auto-form-fields.tsx +0 -982
  235. package/src/views/collection/collection-form.tsx +0 -186
  236. package/src/views/collection/collection-list.tsx +0 -223
  237. package/src/views/collection/form-field.tsx +0 -52
  238. package/src/views/collection/index.ts +0 -15
  239. package/src/views/common/index.ts +0 -8
  240. package/src/views/common/locale-switcher.tsx +0 -45
  241. package/src/views/common/version-history.tsx +0 -406
  242. package/src/views/index.ts +0 -25
  243. package/src/views/layout/admin-layout.tsx +0 -117
  244. package/src/views/layout/admin-router.tsx +0 -206
  245. package/src/views/layout/admin-sidebar.tsx +0 -185
  246. package/src/views/layout/index.ts +0 -12
  247. package/tsconfig.json +0 -13
  248. package/tsconfig.tsbuildinfo +0 -1
  249. package/tsdown.config.ts +0 -13
  250. package/vitest.config.ts +0 -29
@@ -0,0 +1,434 @@
1
+ @import "tailwindcss";
2
+ @import "tw-animate-css";
3
+ @import "shadcn/tailwind.css";
4
+ @import "@fontsource-variable/dm-sans";
5
+ @import "@fontsource-variable/jetbrains-mono";
6
+
7
+ /* =============================================================================
8
+ Admin Theme
9
+ ============================================================================= */
10
+
11
+ :root {
12
+ /* Core Colors - Light Mode */
13
+ --background: oklch(1 0 0);
14
+ --foreground: oklch(0.2686 0 89.88);
15
+ --card: oklch(0.9842 0.0034 247.86);
16
+ --card-foreground: oklch(0.2686 0 89.88);
17
+ --popover: oklch(1 0 0);
18
+ --popover-foreground: oklch(0.2686 0 89.88);
19
+ --primary: oklch(0.5984 0.3015 310.74);
20
+ --primary-foreground: oklch(0.98 0 0);
21
+ --secondary: oklch(0.9702 0 0);
22
+ --secondary-foreground: oklch(0.4386 0 89.88);
23
+ --muted: oklch(0.9702 0 0);
24
+ --muted-foreground: oklch(0.5555 0 0);
25
+ --accent: oklch(0.97 0 0);
26
+ --accent-foreground: oklch(0.2686 0 89.88);
27
+ --destructive: oklch(0.58 0.22 27);
28
+ --border: oklch(0.9219 0 89.88);
29
+ --input: oklch(0.9219 0 89.88);
30
+ --ring: oklch(0.5984 0.3015 310.74);
31
+
32
+ /* Chart Colors - Varied palette with brand cohesion */
33
+ --chart-1: oklch(0.65 0.28 310); /* Primary magenta */
34
+ --chart-2: oklch(0.65 0.2 250); /* Blue-violet */
35
+ --chart-3: oklch(0.7 0.18 180); /* Teal/cyan */
36
+ --chart-4: oklch(0.72 0.16 145); /* Emerald */
37
+ --chart-5: oklch(0.68 0.2 30); /* Warm coral */
38
+
39
+ /* Radius */
40
+ --radius: 0px;
41
+
42
+ /* Sidebar */
43
+ --sidebar: oklch(0.9842 0.0034 247.86);
44
+ --sidebar-foreground: oklch(0.2686 0 89.88);
45
+ --sidebar-primary: oklch(0.5984 0.3015 310.74);
46
+ --sidebar-primary-foreground: oklch(0.98 0 0);
47
+ --sidebar-accent: oklch(0.9702 0 0);
48
+ --sidebar-accent-foreground: oklch(0.2686 0 89.88);
49
+ --sidebar-border: oklch(0.9219 0 89.88);
50
+ --sidebar-ring: oklch(0.5984 0.3015 310.74);
51
+
52
+ /* Glass/Grid Vars */
53
+ --glass-blur: 16px;
54
+ --glass-blur-strong: 24px;
55
+ --glass-bg: oklch(1 0 0 / 0.6);
56
+ --glass-bg-subtle: oklch(1 0 0 / 0.4);
57
+ --glass-border: oklch(0 0 0 / 0.06);
58
+ --grid-line: oklch(0 0 0 / 0.015);
59
+ --grid-size: 24px;
60
+ --glow-primary: oklch(0.5984 0.3015 310.74 / 0.35);
61
+ --ambient-primary: oklch(0.5984 0.3015 310.74 / 0.18);
62
+ --ambient-secondary: oklch(0.5984 0.3015 310.74 / 0.08);
63
+
64
+ /* Spacing Scale */
65
+ --spacing-section: 1.5rem;
66
+ --spacing-card: 1.25rem;
67
+ --spacing-input: 0.75rem;
68
+
69
+ /* Typography */
70
+ --font-sans: "DM Sans Variable", ui-sans-serif, system-ui, sans-serif;
71
+ --font-mono: "JetBrains Mono Variable", ui-monospace, monospace;
72
+ }
73
+
74
+ /* Dark Mode */
75
+ .dark {
76
+ --background: oklch(0.1448 0 89.88);
77
+ --foreground: oklch(0.8699 0 89.88);
78
+ --card: oklch(0.2178 0 89.88);
79
+ --card-foreground: oklch(0.8699 0 89.88);
80
+ --popover: oklch(0.2178 0 89.88);
81
+ --popover-foreground: oklch(0.8699 0 89.88);
82
+ --primary: oklch(0.5984 0.3015 310.74);
83
+ --primary-foreground: oklch(0.98 0 0);
84
+ --secondary: oklch(0.1776 0 89.88);
85
+ --secondary-foreground: oklch(0.8699 0 89.88);
86
+ --muted: oklch(0.2178 0 89.88);
87
+ --muted-foreground: oklch(0.5555 0 89.88);
88
+ --accent: oklch(0.1776 0 89.88);
89
+ --accent-foreground: oklch(0.8699 0 89.88);
90
+ --destructive: oklch(0.704 0.191 22.216);
91
+ --border: oklch(0.3211 0 89.88);
92
+ --input: oklch(0.3211 0 89.88);
93
+ --ring: oklch(0.5984 0.3015 310.74);
94
+
95
+ /* Chart Colors - Varied palette (dark mode optimized) */
96
+ --chart-1: oklch(0.72 0.24 310); /* Primary magenta - brighter */
97
+ --chart-2: oklch(0.7 0.18 250); /* Blue-violet */
98
+ --chart-3: oklch(0.75 0.16 180); /* Teal/cyan */
99
+ --chart-4: oklch(0.76 0.15 145); /* Emerald */
100
+ --chart-5: oklch(0.73 0.18 30); /* Warm coral */
101
+
102
+ --sidebar: oklch(0.1776 0 89.88);
103
+ --sidebar-foreground: oklch(0.8699 0 89.88);
104
+ --sidebar-primary: oklch(0.5984 0.3015 310.74);
105
+ --sidebar-primary-foreground: oklch(0.98 0 0);
106
+ --sidebar-accent: oklch(0.2178 0 89.88);
107
+ --sidebar-accent-foreground: oklch(0.8699 0 89.88);
108
+ --sidebar-border: oklch(0.3211 0 89.88);
109
+ --sidebar-ring: oklch(0.5984 0.3015 310.74);
110
+
111
+ --grid-line: oklch(1 0 0 / 0.015);
112
+ --glass-bg: oklch(0.15 0 0 / 0.7);
113
+ --glass-bg-subtle: oklch(0.15 0 0 / 0.5);
114
+ --glass-border: oklch(1 0 0 / 0.08);
115
+ --glow-primary: oklch(0.5984 0.3015 310.74 / 0.45);
116
+ --ambient-primary: oklch(0.5984 0.3015 310.74 / 0.24);
117
+ --ambient-secondary: oklch(0.5984 0.3015 310.74 / 0.12);
118
+ }
119
+
120
+ @theme inline {
121
+ --color-sidebar-ring: var(--sidebar-ring);
122
+ --color-sidebar-border: var(--sidebar-border);
123
+ --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
124
+ --color-sidebar-accent: var(--sidebar-accent);
125
+ --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
126
+ --color-sidebar-primary: var(--sidebar-primary);
127
+ --color-sidebar-foreground: var(--sidebar-foreground);
128
+ --color-sidebar: var(--sidebar);
129
+ --color-chart-5: var(--chart-5);
130
+ --color-chart-4: var(--chart-4);
131
+ --color-chart-3: var(--chart-3);
132
+ --color-chart-2: var(--chart-2);
133
+ --color-chart-1: var(--chart-1);
134
+ --color-ring: var(--ring);
135
+ --color-input: var(--input);
136
+ --color-border: var(--border);
137
+ --color-destructive: var(--destructive);
138
+ --color-accent-foreground: var(--accent-foreground);
139
+ --color-accent: var(--accent);
140
+ --color-muted-foreground: var(--muted-foreground);
141
+ --color-muted: var(--muted);
142
+ --color-secondary-foreground: var(--secondary-foreground);
143
+ --color-secondary: var(--secondary);
144
+ --color-primary-foreground: var(--primary-foreground);
145
+ --color-primary: var(--primary);
146
+ --color-popover-foreground: var(--popover-foreground);
147
+ --color-popover: var(--popover);
148
+ --color-card-foreground: var(--card-foreground);
149
+ --color-card: var(--card);
150
+ --color-foreground: var(--foreground);
151
+ --color-background: var(--background);
152
+ --radius-sm: 0px;
153
+ --radius-md: 0px;
154
+ --radius-lg: 0px;
155
+ --radius-xl: 0px;
156
+ --radius-2xl: 0px;
157
+ --radius-3xl: 0px;
158
+ --radius-4xl: 0px;
159
+ --radius-full: 0px;
160
+ }
161
+
162
+ /* =============================================================================
163
+ Rich Text Editor Styles
164
+ ============================================================================= */
165
+
166
+ .qp-rich-text-editor__content {
167
+ min-height: 200px;
168
+ padding: 0.75rem;
169
+ outline: none;
170
+ }
171
+
172
+ .qp-rich-text-editor__content > *:first-child {
173
+ margin-top: 0;
174
+ }
175
+
176
+ .qp-rich-text-editor__content > *:last-child {
177
+ margin-bottom: 0;
178
+ }
179
+
180
+ .qp-rich-text-editor__content p {
181
+ margin: 0 0 0.75rem;
182
+ }
183
+
184
+ .qp-rich-text-editor__content h1 {
185
+ font-size: 1.5rem;
186
+ font-weight: 600;
187
+ margin: 1rem 0 0.75rem;
188
+ }
189
+
190
+ .qp-rich-text-editor__content h2 {
191
+ font-size: 1.25rem;
192
+ font-weight: 600;
193
+ margin: 1rem 0 0.75rem;
194
+ }
195
+
196
+ .qp-rich-text-editor__content h3 {
197
+ font-size: 1.125rem;
198
+ font-weight: 600;
199
+ margin: 1rem 0 0.75rem;
200
+ }
201
+
202
+ .qp-rich-text-editor__content ul,
203
+ .qp-rich-text-editor__content ol {
204
+ padding-left: 1.5rem;
205
+ margin: 0.75rem 0;
206
+ }
207
+
208
+ .qp-rich-text-editor__content blockquote {
209
+ border-left: 2px solid var(--border);
210
+ padding-left: 0.75rem;
211
+ color: var(--muted-foreground);
212
+ margin: 0.75rem 0;
213
+ }
214
+
215
+ .qp-rich-text-editor__content code {
216
+ background: var(--muted);
217
+ padding: 0.1rem 0.25rem;
218
+ font-size: 0.875em;
219
+ font-family: var(--font-mono);
220
+ }
221
+
222
+ .qp-rich-text-editor__content pre {
223
+ background: var(--muted);
224
+ padding: 0.75rem;
225
+ overflow-x: auto;
226
+ font-family: var(--font-mono);
227
+ }
228
+
229
+ .qp-rich-text-editor__content hr {
230
+ border: none;
231
+ border-top: 1px solid var(--border);
232
+ margin: 1rem 0;
233
+ }
234
+
235
+ .qp-rich-text-editor__content table {
236
+ border-collapse: collapse;
237
+ margin: 1rem 0;
238
+ width: 100%;
239
+ }
240
+
241
+ .qp-rich-text-editor__content th,
242
+ .qp-rich-text-editor__content td {
243
+ border: 1px solid var(--border);
244
+ padding: 0.5rem;
245
+ text-align: left;
246
+ }
247
+
248
+ .tippy-box[data-theme~="qp-rich-text-editor"] {
249
+ background: var(--popover);
250
+ color: var(--popover-foreground);
251
+ border: 1px solid var(--border);
252
+ box-shadow: 0 0 20px oklch(0 0 0 / 40%);
253
+ }
254
+
255
+ .qp-rich-text-editor__slash {
256
+ display: flex;
257
+ flex-direction: column;
258
+ gap: 0.25rem;
259
+ padding: 0.5rem;
260
+ min-width: 220px;
261
+ }
262
+
263
+ .qp-rich-text-editor__slash-item {
264
+ display: flex;
265
+ flex-direction: column;
266
+ align-items: flex-start;
267
+ gap: 0.125rem;
268
+ padding: 0.5rem;
269
+ font-size: 0.75rem;
270
+ line-height: 1.2;
271
+ color: var(--foreground);
272
+ }
273
+
274
+ .qp-rich-text-editor__slash-item--active,
275
+ .qp-rich-text-editor__slash-item:hover {
276
+ background: var(--muted);
277
+ }
278
+
279
+ .qp-rich-text-editor__slash-title {
280
+ font-weight: 600;
281
+ }
282
+
283
+ .qp-rich-text-editor__slash-description {
284
+ color: var(--muted-foreground);
285
+ }
286
+
287
+ .qp-rich-text-editor__slash-empty {
288
+ padding: 0.5rem;
289
+ font-size: 0.75rem;
290
+ color: var(--muted-foreground);
291
+ }
292
+
293
+ /* =============================================================================
294
+ QUESTPIE Atmospheric Utilities
295
+ ============================================================================= */
296
+
297
+ @utility bg-grid-quest {
298
+ background-image:
299
+ linear-gradient(to right, var(--grid-line) 1px, transparent 1px),
300
+ linear-gradient(to bottom, var(--grid-line) 1px, transparent 1px);
301
+ background-size: var(--grid-size, 24px) var(--grid-size, 24px);
302
+ }
303
+
304
+ /* Glow utilities - cyber aesthetic shadows */
305
+ @utility glow-sm {
306
+ box-shadow: 0 0 10px oklch(0.55 0.3 300 / 15%);
307
+ }
308
+
309
+ @utility glow-md {
310
+ box-shadow: 0 0 15px oklch(0.55 0.3 300 / 20%);
311
+ }
312
+
313
+ @utility glow-lg {
314
+ box-shadow: 0 0 25px oklch(0.55 0.3 300 / 25%);
315
+ }
316
+
317
+ @utility glow-primary {
318
+ box-shadow: 0 0 20px var(--glow-primary, oklch(0.55 0.3 300 / 30%));
319
+ }
320
+
321
+ @utility glow-primary-sm {
322
+ box-shadow: 0 0 8px var(--glow-primary, oklch(0.55 0.3 300 / 25%));
323
+ }
324
+
325
+ @utility glow-destructive {
326
+ box-shadow: 0 0 20px oklch(0.65 0.22 27 / 30%);
327
+ }
328
+
329
+ /* Hover glow states */
330
+ @utility hover-glow-sm {
331
+ &:hover {
332
+ box-shadow: 0 0 10px oklch(0.55 0.3 300 / 15%);
333
+ }
334
+ }
335
+
336
+ @utility hover-glow-md {
337
+ &:hover {
338
+ box-shadow: 0 0 15px oklch(0.55 0.3 300 / 20%);
339
+ }
340
+ }
341
+
342
+ @utility ambient-beam {
343
+ background: radial-gradient(
344
+ circle,
345
+ var(--ambient-primary, oklch(0.55 0.3 300 / 15%)) 0%,
346
+ transparent 70%
347
+ );
348
+ filter: blur(100px);
349
+ }
350
+
351
+ /* Glass Panel - for cards, sidebars, dialogs */
352
+ @utility glass-panel {
353
+ background: var(--glass-bg);
354
+ backdrop-filter: blur(var(--glass-blur-strong));
355
+ border: 1px solid var(--glass-border);
356
+ }
357
+
358
+ /* Glass Panel Subtle - for inputs, accordions */
359
+ @utility glass-subtle {
360
+ background: var(--glass-bg-subtle);
361
+ backdrop-filter: blur(var(--glass-blur));
362
+ border: 1px solid var(--glass-border);
363
+ }
364
+
365
+ /* Glass Surface - lighter glass for hover states */
366
+ @utility glass-surface {
367
+ background: var(--glass-bg-subtle);
368
+ backdrop-filter: blur(var(--glass-blur));
369
+ }
370
+
371
+ /* =============================================================================
372
+ Base Styles
373
+ ============================================================================= */
374
+
375
+ @layer base {
376
+ * {
377
+ @apply border-border outline-ring/50;
378
+ }
379
+ body {
380
+ @apply bg-background text-foreground;
381
+ font-family: var(--font-sans);
382
+ }
383
+ }
384
+
385
+ /* =============================================================================
386
+ Custom Scrollbar Styles
387
+ ============================================================================= */
388
+
389
+ /* Thin scrollbar utility */
390
+ @utility scrollbar-thin {
391
+ scrollbar-width: thin;
392
+ scrollbar-color: color-mix(in oklch, var(--border) 50%, transparent)
393
+ transparent;
394
+
395
+ &::-webkit-scrollbar {
396
+ width: 6px;
397
+ height: 6px;
398
+ }
399
+
400
+ &::-webkit-scrollbar-track {
401
+ background: transparent;
402
+ }
403
+
404
+ &::-webkit-scrollbar-thumb {
405
+ background: color-mix(in oklch, var(--border) 60%, transparent);
406
+ border-radius: 3px;
407
+ }
408
+
409
+ &::-webkit-scrollbar-thumb:hover {
410
+ background: var(--border);
411
+ }
412
+
413
+ &::-webkit-scrollbar-corner {
414
+ background: transparent;
415
+ }
416
+ }
417
+
418
+ /* =============================================================================
419
+ Field Focus Animation
420
+ ============================================================================= */
421
+
422
+ @keyframes field-glow {
423
+ 0%,
424
+ 100% {
425
+ background-color: transparent;
426
+ }
427
+ 50% {
428
+ background-color: hsl(var(--primary) / 0.08);
429
+ }
430
+ }
431
+
432
+ .animate-field-glow {
433
+ animation: field-glow 2s ease-in-out;
434
+ }