@kyro-cms/admin 0.3.2 → 0.3.5

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 (242) hide show
  1. package/dist/EditorClient-XEUOVAAC.js +466 -0
  2. package/dist/EditorClient-XEUOVAAC.js.map +1 -0
  3. package/dist/EditorClient-YLCGVDXY.cjs +468 -0
  4. package/dist/EditorClient-YLCGVDXY.cjs.map +1 -0
  5. package/dist/chunk-7KPIUCGT.js +384 -0
  6. package/dist/chunk-7KPIUCGT.js.map +1 -0
  7. package/dist/chunk-GOACG6R7.cjs +473 -0
  8. package/dist/chunk-GOACG6R7.cjs.map +1 -0
  9. package/dist/index.cjs +14861 -0
  10. package/dist/index.cjs.map +1 -0
  11. package/dist/index.css +1661 -0
  12. package/dist/index.css.map +1 -0
  13. package/dist/index.d.ts +563 -0
  14. package/dist/index.js +14784 -0
  15. package/dist/index.js.map +1 -0
  16. package/package.json +19 -19
  17. package/src/components/ActionBar.tsx +7 -43
  18. package/src/components/Admin.tsx +138 -277
  19. package/src/components/ApiKeysManager.tsx +428 -419
  20. package/src/components/AuditLogsPage.tsx +35 -39
  21. package/src/components/AuthBridge.tsx +51 -0
  22. package/src/components/AutoForm.tsx +495 -1230
  23. package/src/components/BrandingHub.tsx +18 -19
  24. package/src/components/BulkActionsBar.tsx +1 -1
  25. package/src/components/CreateView.tsx +22 -36
  26. package/src/components/Dashboard.tsx +60 -84
  27. package/src/components/DetailView.tsx +113 -91
  28. package/src/components/DeveloperCenter.tsx +200 -198
  29. package/src/components/FieldRenderer.tsx +206 -0
  30. package/src/components/GraphQLPlayground.tsx +340 -480
  31. package/src/components/ListView.tsx +828 -254
  32. package/src/components/LoginPage.tsx +3 -4
  33. package/src/components/MarketplaceManager.tsx +254 -0
  34. package/src/components/MediaGallery.tsx +856 -1192
  35. package/src/components/PluginsManager.tsx +277 -0
  36. package/src/components/RestPlayground.tsx +398 -560
  37. package/src/components/SessionsManager.tsx +211 -0
  38. package/src/components/Sidebar.astro +179 -151
  39. package/src/components/ThemeProvider.tsx +7 -161
  40. package/src/components/UserManagement.tsx +162 -146
  41. package/src/components/UserMenu.tsx +110 -0
  42. package/src/components/WebhookManager.tsx +305 -367
  43. package/src/components/blocks/AccordionBlock.tsx +4 -4
  44. package/src/components/blocks/ArrayBlock.tsx +3 -3
  45. package/src/components/blocks/BlockEditModal.tsx +8 -8
  46. package/src/components/blocks/BlockWrapper.tsx +61 -0
  47. package/src/components/blocks/ButtonBlock.tsx +4 -4
  48. package/src/components/blocks/ChildBlocksTree.tsx +23 -25
  49. package/src/components/blocks/CodeBlock.tsx +15 -15
  50. package/src/components/blocks/ColumnsBlock.tsx +6 -44
  51. package/src/components/blocks/DividerBlock.tsx +3 -3
  52. package/src/components/blocks/FileBlock.tsx +4 -4
  53. package/src/components/blocks/HeadingBlock.tsx +6 -38
  54. package/src/components/blocks/HeroBlock.tsx +4 -4
  55. package/src/components/blocks/ImageBlock.tsx +4 -4
  56. package/src/components/blocks/LinkBlock.tsx +4 -4
  57. package/src/components/blocks/ListBlock.tsx +3 -3
  58. package/src/components/blocks/ParagraphBlock.tsx +12 -42
  59. package/src/components/blocks/RelationshipBlock.tsx +4 -4
  60. package/src/components/blocks/RichTextBlock.tsx +4 -4
  61. package/src/components/blocks/VStackBlock.tsx +5 -37
  62. package/src/components/blocks/VideoBlock.tsx +4 -4
  63. package/src/components/blocks/types.ts +11 -0
  64. package/src/components/fields/AccordionField.tsx +1 -1
  65. package/src/components/fields/ArrayField.tsx +2 -2
  66. package/src/components/fields/ArrayLayout.tsx +93 -0
  67. package/src/components/fields/BlocksField.tsx +122 -111
  68. package/src/components/fields/ButtonField.tsx +1 -1
  69. package/src/components/fields/CheckboxField.tsx +14 -15
  70. package/src/components/fields/ChildrenField.tsx +2 -2
  71. package/src/components/fields/CodeField.tsx +3 -3
  72. package/src/components/fields/ColumnsField.tsx +2 -2
  73. package/src/components/fields/DateField.tsx +13 -26
  74. package/src/components/fields/EditorClient.tsx +26 -28
  75. package/src/components/fields/FieldLayout.tsx +52 -0
  76. package/src/components/fields/GroupLayout.tsx +35 -0
  77. package/src/components/fields/JSONField.tsx +7 -7
  78. package/src/components/fields/LinkField.tsx +1 -1
  79. package/src/components/fields/MarkdownField.tsx +1 -1
  80. package/src/components/fields/NumberField.tsx +13 -26
  81. package/src/components/fields/PortableTextField.tsx +4 -4
  82. package/src/components/fields/PortableTextRenderer.tsx +1 -1
  83. package/src/components/fields/RelationshipBlockField.tsx +31 -23
  84. package/src/components/fields/RelationshipField.tsx +14 -14
  85. package/src/components/fields/SelectField.tsx +17 -26
  86. package/src/components/fields/TabsLayout.tsx +69 -0
  87. package/src/components/fields/TextField.tsx +85 -38
  88. package/src/components/fields/UploadField.tsx +71 -41
  89. package/src/components/fields/VideoField.tsx +1 -1
  90. package/src/components/fields/extensions/blockComponents.tsx +2 -2
  91. package/src/components/fields/extensions/blocksStore.ts +207 -193
  92. package/src/components/fields/types.ts +22 -0
  93. package/src/components/layout/Layout.tsx +1 -1
  94. package/src/components/ui/ActionMenu.tsx +63 -0
  95. package/src/components/ui/Badge.tsx +59 -5
  96. package/src/components/ui/BlockDrawer.tsx +4 -5
  97. package/src/components/ui/CommandPalette.tsx +58 -36
  98. package/src/components/ui/CommandPaletteWrapper.tsx +18 -17
  99. package/src/components/ui/Dropdown.tsx +18 -16
  100. package/src/components/ui/EmptyState.tsx +25 -0
  101. package/src/components/ui/GlobalModal.tsx +49 -0
  102. package/src/components/ui/IconButton.tsx +44 -0
  103. package/src/components/ui/Modal.tsx +19 -20
  104. package/src/components/ui/PageHeader.tsx +158 -0
  105. package/src/components/ui/Pagination.tsx +61 -0
  106. package/src/components/ui/PromptModal.tsx +1 -1
  107. package/src/components/ui/SearchInput.tsx +57 -0
  108. package/src/components/ui/SeoPreview.tsx +31 -0
  109. package/src/components/ui/SessionModal.tsx +0 -0
  110. package/src/components/ui/SlidePanel.tsx +2 -0
  111. package/src/components/ui/Toast.tsx +65 -122
  112. package/src/components/ui/Toaster.tsx +18 -0
  113. package/src/components/ui/icons.tsx +112 -0
  114. package/src/components/users/UserDetail.tsx +290 -0
  115. package/src/components/users/UserForm.tsx +242 -0
  116. package/src/components/users/UsersList.tsx +338 -0
  117. package/src/env.d.ts +13 -13
  118. package/src/fields/index.ts +2 -1
  119. package/src/global.d.ts +7 -0
  120. package/src/hooks/data.ts +2 -9
  121. package/src/hooks/useAsyncData.ts +36 -0
  122. package/src/hooks/useAutoFormState.ts +527 -0
  123. package/src/hooks/useSelection.ts +49 -0
  124. package/src/hooks/useSession.ts +0 -0
  125. package/src/index.ts +11 -1
  126. package/src/integration.ts +86 -11
  127. package/src/kyro-cms.d.ts +209 -0
  128. package/src/layouts/AdminLayout.astro +128 -11
  129. package/src/layouts/AuthLayout.astro +21 -5
  130. package/src/lib/api.ts +175 -55
  131. package/src/lib/autoform-store.ts +435 -0
  132. package/src/lib/config.ts +82 -34
  133. package/src/lib/createRegistry.ts +29 -0
  134. package/src/lib/default-kyro-config.ts +4 -0
  135. package/src/lib/globals.ts +50 -0
  136. package/src/lib/media-utils.ts +18 -0
  137. package/src/lib/object-utils.ts +77 -0
  138. package/src/lib/paths.ts +61 -0
  139. package/src/lib/stores/index.ts +370 -0
  140. package/src/lib/types.ts +43 -0
  141. package/src/lib/useResourceManager.ts +105 -0
  142. package/src/pages/403.astro +67 -0
  143. package/src/pages/[collection]/[id].astro +14 -180
  144. package/src/pages/[collection]/index.astro +11 -6
  145. package/src/pages/api-explorer.astro +173 -0
  146. package/src/pages/audit/index.astro +2 -0
  147. package/src/pages/auth/login.astro +122 -0
  148. package/src/pages/auth/register.astro +167 -0
  149. package/src/pages/graphql-explorer.astro +59 -0
  150. package/src/pages/{admin/graphql.astro → graphql.astro} +51 -17
  151. package/src/pages/index.astro +577 -0
  152. package/src/pages/index_ALT.astro +3 -0
  153. package/src/pages/keys.astro +11 -0
  154. package/src/pages/marketplace.astro +11 -0
  155. package/src/pages/media.astro +3 -0
  156. package/src/pages/plugins.astro +8 -0
  157. package/src/pages/preview/[collection]/[id].astro +188 -123
  158. package/src/pages/rest-playground.astro +62 -0
  159. package/src/pages/roles/index.astro +183 -76
  160. package/src/pages/sessions.astro +8 -0
  161. package/src/pages/settings/[slug].astro +92 -114
  162. package/src/pages/settings/index.astro +5 -3
  163. package/src/pages/users/[id].astro +25 -154
  164. package/src/pages/users/index.astro +19 -130
  165. package/src/pages/users/new.astro +9 -86
  166. package/src/pages/webhooks.astro +11 -0
  167. package/src/routes.ts +80 -0
  168. package/src/styles/main.css +119 -79
  169. package/src/theme/tokens.ts +1 -0
  170. package/src/vite-env.d.ts +14 -0
  171. package/src/collections/auth/index.ts +0 -155
  172. package/src/collections/portfolio/index.ts +0 -343
  173. package/src/components/ApiExplorer.tsx +0 -325
  174. package/src/components/EnhancedListView.tsx +0 -889
  175. package/src/components/GraphQLExplorer.tsx +0 -675
  176. package/src/components/Icons.tsx +0 -23
  177. package/src/components/StatusBadge.tsx +0 -76
  178. package/src/lib/MediaService.ts +0 -541
  179. package/src/lib/auth/sqlite-adapter.ts +0 -319
  180. package/src/lib/dataStore.ts +0 -226
  181. package/src/lib/db/adapter.ts +0 -54
  182. package/src/lib/db/drizzle-mysql-adapter.ts +0 -194
  183. package/src/lib/db/drizzle-mysql-auth-adapter.ts +0 -327
  184. package/src/lib/db/drizzle-postgres-adapter.ts +0 -202
  185. package/src/lib/db/drizzle-postgres-auth-adapter.ts +0 -304
  186. package/src/lib/db/drizzle-sqlite-adapter.ts +0 -227
  187. package/src/lib/db/drizzle-sqlite-auth-adapter.ts +0 -548
  188. package/src/lib/db/index.ts +0 -449
  189. package/src/lib/db/mongodb-adapter.ts +0 -207
  190. package/src/lib/db/mongodb-auth-adapter.ts +0 -305
  191. package/src/lib/db/schema/mysql-auth.ts +0 -113
  192. package/src/lib/db/schema/mysql-content.ts +0 -20
  193. package/src/lib/db/schema/postgres-auth.ts +0 -116
  194. package/src/lib/db/schema/postgres-content.ts +0 -35
  195. package/src/lib/db/schema/postgres-media.ts +0 -52
  196. package/src/lib/db/schema/postgres-settings.ts +0 -11
  197. package/src/lib/db/schema/sqlite-auth.ts +0 -112
  198. package/src/lib/db/schema/sqlite-content.ts +0 -20
  199. package/src/lib/db/version-adapter.ts +0 -248
  200. package/src/lib/graphql/index.ts +0 -1
  201. package/src/lib/graphql/schema.ts +0 -443
  202. package/src/lib/rate-limit.ts +0 -267
  203. package/src/lib/storage.ts +0 -374
  204. package/src/lib/store.ts +0 -85
  205. package/src/middleware.ts +0 -177
  206. package/src/pages/admin/api-explorer.astro +0 -98
  207. package/src/pages/admin/graphql-explorer.astro +0 -40
  208. package/src/pages/admin/index.astro +0 -286
  209. package/src/pages/admin/keys.astro +0 -8
  210. package/src/pages/admin/rest-playground.astro +0 -44
  211. package/src/pages/admin/webhooks.astro +0 -8
  212. package/src/pages/api/[collection]/[id]/publish.ts +0 -52
  213. package/src/pages/api/[collection]/[id]/unpublish.ts +0 -42
  214. package/src/pages/api/[collection]/[id]/versions.ts +0 -66
  215. package/src/pages/api/[collection]/[id].ts +0 -213
  216. package/src/pages/api/[collection]/index.ts +0 -209
  217. package/src/pages/api/auth/[id].ts +0 -121
  218. package/src/pages/api/auth/audit-logs.ts +0 -57
  219. package/src/pages/api/auth/login.ts +0 -211
  220. package/src/pages/api/auth/logout.ts +0 -66
  221. package/src/pages/api/auth/me.ts +0 -36
  222. package/src/pages/api/auth/refresh.ts +0 -119
  223. package/src/pages/api/auth/register.ts +0 -188
  224. package/src/pages/api/auth/users.ts +0 -97
  225. package/src/pages/api/collections.ts +0 -59
  226. package/src/pages/api/globals/[slug].ts +0 -42
  227. package/src/pages/api/graphql.ts +0 -90
  228. package/src/pages/api/health.ts +0 -426
  229. package/src/pages/api/keys/[id].ts +0 -26
  230. package/src/pages/api/keys/index.ts +0 -75
  231. package/src/pages/api/media/[id].ts +0 -309
  232. package/src/pages/api/media/folders.ts +0 -609
  233. package/src/pages/api/media/index.ts +0 -146
  234. package/src/pages/api/media/resize.ts +0 -267
  235. package/src/pages/api/search.ts +0 -82
  236. package/src/pages/api/slug-availability.ts +0 -70
  237. package/src/pages/api/storage-config.ts +0 -20
  238. package/src/pages/api/storage-status.ts +0 -206
  239. package/src/pages/api/upload.ts +0 -334
  240. package/src/pages/api/webhooks/index.ts +0 -71
  241. package/src/pages/login.astro +0 -82
  242. package/src/pages/register.astro +0 -102
package/dist/index.css ADDED
@@ -0,0 +1,1661 @@
1
+ @import "tailwindcss";
2
+
3
+ /* src/styles/main.css */
4
+ @custom-variant dark (&:where(.dark, .dark *));
5
+ @source "../../src/**/*.{astro,html,js,jsx,ts,tsx}";
6
+ :root {
7
+ --kyro-black: #0b1222;
8
+ --kyro-black-light: #1a2332;
9
+ --kyro-black-hover: #2a3342;
10
+ --kyro-gray-50: #f9fafb;
11
+ --kyro-gray-100: #f3f4f6;
12
+ --kyro-gray-200: #e5e7eb;
13
+ --kyro-gray-300: #d1d5db;
14
+ --kyro-gray-400: #9ca3af;
15
+ --kyro-gray-500: #6b7280;
16
+ --kyro-gray-600: #4b5563;
17
+ --kyro-gray-700: #374151;
18
+ --kyro-gray-800: #1f2937;
19
+ --kyro-gray-900: #111827;
20
+ --kyro-bg: #eaeff2;
21
+ --kyro-surface: #ffffff;
22
+ --kyro-surface-accent: #f9fafb;
23
+ --kyro-sidebar-bg: #ffffff;
24
+ --kyro-sidebar-active: #0b1222;
25
+ --kyro-sidebar-text: #64748b;
26
+ --kyro-sidebar-text-active: #ffffff;
27
+ --kyro-sidebar-border: rgba(0, 0, 0, 0.05);
28
+ --kyro-text-primary: #0b1222;
29
+ --kyro-text-secondary: #64748b;
30
+ --kyro-text-muted: #94a3b8;
31
+ --kyro-border: #f3f4f6;
32
+ --kyro-input-bg: #ffffff;
33
+ --kyro-input-border: #e5e7eb;
34
+ --kyro-radius-tile: 32px;
35
+ --kyro-radius-lg: 16px;
36
+ --kyro-radius-xl: 48px;
37
+ --kyro-shadow-tile: 0 10px 40px -10px rgba(0, 0, 0, 0.04);
38
+ --kyro-primary: #0b1222;
39
+ --kyro-primary-hover: #1a2332;
40
+ --kyro-success: #22c55e;
41
+ --kyro-success-bg: rgba(34, 197, 94, 0.1);
42
+ --kyro-danger: #ef4444;
43
+ --kyro-danger-bg: rgba(239, 68, 68, 0.1);
44
+ --kyro-error: #ef4444;
45
+ --kyro-warning: #ffae00;
46
+ --kyro-warning-bg: rgba(255, 174, 0, 0.1);
47
+ --kyro-border-active: #0b1222;
48
+ --kyro-bg-secondary: #f3f4f6;
49
+ --kyro-sidebar-width: 320px;
50
+ --kyro-header-height: 80px;
51
+ }
52
+ :root.dark {
53
+ --kyro-bg: #050912;
54
+ --kyro-surface: #0b1222;
55
+ --kyro-surface-accent: #111a2e;
56
+ --kyro-sidebar-bg: #0b1222;
57
+ --kyro-sidebar-active: #ffffff;
58
+ --kyro-sidebar-text: #94a3b8;
59
+ --kyro-sidebar-text-active: #0b1222;
60
+ --kyro-sidebar-border: rgba(255, 255, 255, 0.05);
61
+ --kyro-text-primary: #ffffff;
62
+ --kyro-text-secondary: #94a3b8;
63
+ --kyro-text-muted: #64748b;
64
+ --kyro-border: #1a2332;
65
+ --kyro-input-bg: #111a2e;
66
+ --kyro-input-border: #1e293b;
67
+ --kyro-black: #ffffff;
68
+ --kyro-gray-50: #1a2332;
69
+ --kyro-gray-100: #1e293b;
70
+ --kyro-gray-200: #334155;
71
+ --kyro-primary: var(--kyro-sidebar-active);
72
+ --kyro-primary-hover: var(--kyro-sidebar-text-active);
73
+ --kyro-success: #22c55e;
74
+ --kyro-success-bg: rgba(34, 197, 94, 0.15);
75
+ --kyro-danger: #f87171;
76
+ --kyro-danger-bg: rgba(248, 113, 113, 0.15);
77
+ --kyro-error: #f87171;
78
+ --kyro-warning: #ffae00;
79
+ --kyro-warning-bg: rgba(255, 174, 0, 0.15);
80
+ --kyro-border-active: #ffffff;
81
+ --kyro-bg-secondary: #111a2e;
82
+ color-scheme: dark;
83
+ }
84
+ @theme { --font-sans: "Inter", ui-sans-serif, system-ui, sans-serif; --color-primary: var(--kyro-black); --color-primary-hover: var(--kyro-black-hover); --color-primary-light: var(--kyro-gray-100); --color-gray-50: var(--kyro-gray-50); --color-gray-100: var(--kyro-gray-100); --color-gray-200: var(--kyro-gray-200); --color-gray-400: var(--kyro-gray-400); --color-gray-500: var(--kyro-gray-500); --radius-tile: var(--kyro-radius-tile); --radius-lg: var(--kyro-radius-lg); --radius-xl: var(--kyro-radius-xl); --shadow-tile: var(--kyro-shadow-tile); --animate-slide-in-from-right: slide-in-from-right 200ms ease-out; @keyframes slide-in-from-right { from { transform: translateX(100%); } to { transform: translateX(0); } } }
85
+ @layer base {
86
+ html {
87
+ font-family: var(--font-sans);
88
+ font-size: 14px;
89
+ line-height: 1.5;
90
+ color: var(--kyro-text-primary);
91
+ background: var(--kyro-bg);
92
+ transition: background-color 300ms ease, color 300ms ease;
93
+ }
94
+ * {
95
+ scrollbar-width: none;
96
+ -ms-overflow-style: none;
97
+ }
98
+ *::-webkit-scrollbar {
99
+ display: none;
100
+ }
101
+ a,
102
+ button,
103
+ [role=button],
104
+ input[type=button],
105
+ input[type=submit],
106
+ input[type=reset] {
107
+ cursor: pointer;
108
+ }
109
+ .kyro-glass {
110
+ background: rgba(255, 255, 255, 0.7);
111
+ backdrop-filter: blur(20px) saturate(180%);
112
+ -webkit-backdrop-filter: blur(20px) saturate(180%);
113
+ border: 1px solid rgba(255, 255, 255, 0.3);
114
+ }
115
+ .dark .kyro-glass {
116
+ background: rgba(11, 18, 34, 0.7);
117
+ border: 1px solid rgba(255, 255, 255, 0.05);
118
+ }
119
+ .font-bold {
120
+ font-weight: 900;
121
+ letter-spacing: -0.05em;
122
+ line-height: 1.1;
123
+ }
124
+ }
125
+ @layer components {
126
+ .kyro-admin {
127
+ display: flex;
128
+ height: 100vh;
129
+ padding: 16px;
130
+ gap: 16px;
131
+ background: var(--kyro-bg);
132
+ }
133
+ .kyro-sidebar {
134
+ width: var(--kyro-sidebar-width);
135
+ background: var(--kyro-sidebar-bg);
136
+ display: flex;
137
+ flex-direction: column;
138
+ flex-shrink: 0;
139
+ overflow: hidden;
140
+ }
141
+ .kyro-sidebar-logo {
142
+ height: var(--kyro-header-height);
143
+ display: flex;
144
+ align-items: center;
145
+ padding: 0 20px;
146
+ border-bottom: 1px solid var(--kyro-sidebar-border);
147
+ }
148
+ .kyro-sidebar-logo-text {
149
+ font-size: 16px;
150
+ font-weight: 600;
151
+ color: var(--kyro-sidebar-text-active);
152
+ letter-spacing: -0.02em;
153
+ }
154
+ .kyro-sidebar-nav {
155
+ flex: 1;
156
+ overflow-y: auto;
157
+ padding: 12px 0;
158
+ }
159
+ .kyro-sidebar-section {
160
+ margin-bottom: 8px;
161
+ }
162
+ .kyro-sidebar-section-title {
163
+ padding: 8px 20px;
164
+ font-size: 11px;
165
+ font-weight: 600;
166
+ text-transform: none;
167
+ letter-spacing: 0.05em;
168
+ color: var(--kyro-gray-500);
169
+ }
170
+ .kyro-sidebar-divider {
171
+ height: 1px;
172
+ background: var(--kyro-sidebar-border);
173
+ margin: 12px 20px;
174
+ }
175
+ .kyro-sidebar-item {
176
+ display: flex;
177
+ align-items: center;
178
+ gap: 12px;
179
+ width: 100%;
180
+ padding: 10px 20px;
181
+ font-size: 14px;
182
+ font-weight: 500;
183
+ color: var(--kyro-sidebar-text);
184
+ background: transparent;
185
+ border: none;
186
+ cursor: pointer;
187
+ transition: all 150ms ease;
188
+ text-align: left;
189
+ text-decoration: none;
190
+ }
191
+ .kyro-sidebar-item:hover {
192
+ color: var(--kyro-black);
193
+ background: var(--kyro-gray-50);
194
+ }
195
+ .kyro-sidebar-item.active {
196
+ color: var(--kyro-sidebar-text-active);
197
+ background: var(--kyro-sidebar-active);
198
+ }
199
+ .kyro-sidebar-item svg {
200
+ width: 18px;
201
+ height: 18px;
202
+ flex-shrink: 0;
203
+ opacity: 0.7;
204
+ }
205
+ .kyro-sidebar-item.active svg,
206
+ .kyro-sidebar-item:hover svg {
207
+ opacity: 1;
208
+ }
209
+ .kyro-sidebar-footer {
210
+ padding: 12px 20px;
211
+ border-top: 1px solid var(--kyro-sidebar-border);
212
+ }
213
+ .kyro-sidebar.collapsed {
214
+ width: 72px;
215
+ }
216
+ .kyro-sidebar.collapsed .kyro-sidebar-item {
217
+ justify-content: center;
218
+ padding: 12px;
219
+ }
220
+ .kyro-sidebar.collapsed .kyro-sidebar-item span {
221
+ display: none;
222
+ }
223
+ .kyro-sidebar.collapsed .kyro-sidebar-section-title {
224
+ display: none;
225
+ }
226
+ .kyro-sidebar.collapsed .kyro-sidebar-logo {
227
+ justify-content: center;
228
+ padding: 0;
229
+ }
230
+ .kyro-admin-main {
231
+ flex: 1;
232
+ display: flex;
233
+ flex-direction: column;
234
+ overflow: hidden;
235
+ pointer-events: auto;
236
+ }
237
+ .kyro-admin-content {
238
+ flex: 1;
239
+ overflow-y: auto;
240
+ padding: 24px;
241
+ pointer-events: auto;
242
+ }
243
+ .kyro-btn {
244
+ display: inline-flex;
245
+ align-items: center;
246
+ justify-content: center;
247
+ gap: 6px;
248
+ font-weight: 500;
249
+ border-radius: 9999px;
250
+ cursor: pointer;
251
+ transition: all 150ms ease;
252
+ border: 1px solid transparent;
253
+ font-family: inherit;
254
+ white-space: nowrap;
255
+ text-decoration: none;
256
+ }
257
+ .kyro-btn:disabled {
258
+ opacity: 0.5;
259
+ cursor: not-allowed;
260
+ }
261
+ .kyro-btn-sm {
262
+ padding: 6px 10px;
263
+ font-size: 12px;
264
+ }
265
+ .kyro-btn-md {
266
+ padding: 8px 14px;
267
+ font-size: 13px;
268
+ }
269
+ .kyro-btn-lg {
270
+ padding: 10px 18px;
271
+ font-size: 14px;
272
+ }
273
+ .kyro-btn-primary {
274
+ background: var(--kyro-black);
275
+ color: var(--kyro-sidebar-text-active);
276
+ border-color: var(--kyro-black);
277
+ }
278
+ .kyro-btn-primary:hover:not(:disabled) {
279
+ background: var(--kyro-black-hover);
280
+ border-color: var(--kyro-black-hover);
281
+ }
282
+ .kyro-btn-secondary {
283
+ background: var(--kyro-surface);
284
+ color: var(--kyro-text-primary);
285
+ border-color: var(--kyro-border);
286
+ }
287
+ .kyro-btn-secondary:hover:not(:disabled) {
288
+ background: var(--kyro-gray-50);
289
+ border-color: var(--kyro-gray-300);
290
+ }
291
+ .kyro-btn-danger {
292
+ background: var(--kyro-surface);
293
+ color: var(--kyro-text-primary);
294
+ border-color: var(--kyro-text-primary);
295
+ }
296
+ .kyro-btn-danger:hover:not(:disabled) {
297
+ background: var(--kyro-gray-900);
298
+ color: white;
299
+ }
300
+ .kyro-btn-ghost {
301
+ background: transparent;
302
+ color: var(--kyro-gray-500);
303
+ }
304
+ .kyro-btn-ghost:hover:not(:disabled) {
305
+ background: var(--kyro-gray-100);
306
+ color: var(--kyro-text-primary);
307
+ }
308
+ .kyro-btn-success {
309
+ background: #10b981;
310
+ color: white;
311
+ border-color: #10b981;
312
+ }
313
+ .kyro-btn-success:hover:not(:disabled) {
314
+ background: #059669;
315
+ border-color: #059669;
316
+ }
317
+ .kyro-btn-success:disabled {
318
+ background: var(--kyro-gray-300);
319
+ border-color: var(--kyro-gray-300);
320
+ color: var(--kyro-gray-500);
321
+ }
322
+ .kyro-btn-warning {
323
+ background: #f59e0b;
324
+ color: white;
325
+ border-color: #f59e0b;
326
+ }
327
+ .kyro-btn-warning:hover:not(:disabled) {
328
+ background: #d97706;
329
+ border-color: #d97706;
330
+ }
331
+ .surface-tile {
332
+ box-shadow: var(--kyro-shadow-tile);
333
+ padding: 24px;
334
+ background: var(--kyro-surface);
335
+ border-radius: var(--kyro-radius-tile);
336
+ }
337
+ .kyro-card {
338
+ border: 1px solid var(--kyro-border);
339
+ box-shadow: var(--kyro-shadow-tile);
340
+ padding: 24px;
341
+ background: var(--kyro-surface);
342
+ border-radius: var(--kyro-radius-lg);
343
+ }
344
+ .kyro-card-header {
345
+ display: flex;
346
+ align-items: center;
347
+ justify-content: space-between;
348
+ padding: 24px 32px;
349
+ }
350
+ .kyro-card-title {
351
+ font-size: 24px;
352
+ font-weight: 700;
353
+ color: var(--kyro-text-primary);
354
+ letter-spacing: -0.01em;
355
+ }
356
+ .kyro-card-content {
357
+ padding: 0 32px 32px;
358
+ }
359
+ .kyro-list {
360
+ display: flex;
361
+ flex-direction: column;
362
+ gap: 20px;
363
+ }
364
+ .kyro-list-header {
365
+ display: flex;
366
+ align-items: center;
367
+ justify-content: space-between;
368
+ }
369
+ .kyro-list-title {
370
+ font-size: 18px;
371
+ font-weight: 600;
372
+ color: var(--kyro-text-primary);
373
+ }
374
+ .kyro-table {
375
+ width: 100%;
376
+ border-collapse: collapse;
377
+ background: white;
378
+ border-radius: 8px;
379
+ overflow: hidden;
380
+ border: 1px solid var(--kyro-border);
381
+ }
382
+ .kyro-table th {
383
+ padding: 12px 16px;
384
+ font-size: 12px;
385
+ font-weight: 600;
386
+ text-transform: none;
387
+ letter-spacing: 0.03em;
388
+ color: var(--kyro-gray-500);
389
+ background: var(--kyro-gray-50);
390
+ border-bottom: 1px solid var(--kyro-border);
391
+ text-align: left;
392
+ }
393
+ .kyro-table td {
394
+ padding: 14px 16px;
395
+ border-bottom: 1px solid var(--kyro-gray-100);
396
+ font-size: 14px;
397
+ color: var(--kyro-text-primary);
398
+ }
399
+ .kyro-table tr:last-child td {
400
+ border-bottom: none;
401
+ }
402
+ .kyro-table tr:hover td {
403
+ background: var(--kyro-gray-50);
404
+ }
405
+ .kyro-table-actions {
406
+ display: flex;
407
+ gap: 4px;
408
+ }
409
+ .kyro-table-action {
410
+ display: flex;
411
+ align-items: center;
412
+ justify-content: center;
413
+ width: 32px;
414
+ height: 32px;
415
+ border: none;
416
+ background: transparent;
417
+ color: var(--kyro-gray-500);
418
+ border-radius: 6px;
419
+ cursor: pointer;
420
+ transition: all 150ms ease;
421
+ }
422
+ .kyro-table-action:hover {
423
+ background: var(--kyro-gray-100);
424
+ color: var(--kyro-text-primary);
425
+ }
426
+ .kyro-table-action.danger:hover {
427
+ background: var(--kyro-surface-accent);
428
+ color: var(--kyro-black);
429
+ }
430
+ .kyro-empty {
431
+ padding: 48px 24px;
432
+ text-align: center;
433
+ color: var(--kyro-gray-500);
434
+ }
435
+ .kyro-empty-icon {
436
+ width: 40px;
437
+ height: 40px;
438
+ margin: 0 auto 12px;
439
+ color: var(--kyro-gray-400);
440
+ }
441
+ .kyro-empty-title {
442
+ font-size: 14px;
443
+ font-weight: 600;
444
+ color: var(--kyro-text-primary);
445
+ margin-bottom: 4px;
446
+ }
447
+ .kyro-empty-text {
448
+ font-size: 13px;
449
+ color: var(--kyro-gray-500);
450
+ }
451
+ .kyro-detail {
452
+ display: flex;
453
+ flex-direction: column;
454
+ gap: 20px;
455
+ }
456
+ .kyro-detail-header {
457
+ display: flex;
458
+ align-items: center;
459
+ gap: 12px;
460
+ }
461
+ .kyro-detail-back {
462
+ display: flex;
463
+ align-items: center;
464
+ justify-content: center;
465
+ width: 36px;
466
+ height: 36px;
467
+ border: 1px solid var(--kyro-border);
468
+ background: var(--kyro-surface);
469
+ color: var(--kyro-text-secondary);
470
+ border-radius: 6px;
471
+ cursor: pointer;
472
+ transition: all 150ms ease;
473
+ text-decoration: none;
474
+ }
475
+ .kyro-detail-back:hover {
476
+ background: var(--kyro-gray-50);
477
+ color: var(--kyro-text-primary);
478
+ }
479
+ .kyro-detail-title {
480
+ font-size: 18px;
481
+ font-weight: 600;
482
+ color: var(--kyro-text-primary);
483
+ }
484
+ .kyro-detail-meta {
485
+ font-size: 13px;
486
+ color: var(--kyro-gray-500);
487
+ font-family: monospace;
488
+ }
489
+ .kyro-detail-actions {
490
+ margin-left: auto;
491
+ display: flex;
492
+ gap: 8px;
493
+ }
494
+ .kyro-detail-body {
495
+ display: grid;
496
+ grid-template-columns: 1fr 300px;
497
+ gap: 20px;
498
+ }
499
+ @media (max-width: 1024px) {
500
+ .kyro-detail-body {
501
+ grid-template-columns: 1fr;
502
+ }
503
+ }
504
+ .kyro-meta-card {
505
+ display: flex;
506
+ flex-direction: column;
507
+ gap: 16px;
508
+ height: fit-content;
509
+ }
510
+ .kyro-meta-item {
511
+ display: flex;
512
+ flex-direction: column;
513
+ gap: 4px;
514
+ }
515
+ .kyro-meta-label {
516
+ font-size: 11px;
517
+ font-weight: 600;
518
+ text-transform: none;
519
+ letter-spacing: 0.03em;
520
+ color: var(--kyro-gray-500);
521
+ }
522
+ .kyro-meta-value {
523
+ font-size: 14px;
524
+ color: var(--kyro-text-primary);
525
+ }
526
+ .kyro-form {
527
+ display: flex;
528
+ flex-direction: column;
529
+ gap: 12px;
530
+ }
531
+ .kyro-form-field {
532
+ display: flex;
533
+ flex-direction: column;
534
+ gap: 4px;
535
+ }
536
+ .kyro-form-label {
537
+ font-size: 12px;
538
+ font-weight: 500;
539
+ color: var(--kyro-text-primary);
540
+ display: flex;
541
+ align-items: center;
542
+ gap: 3px;
543
+ }
544
+ .kyro-form-label-required {
545
+ color: var(--kyro-gray-400);
546
+ font-weight: 400;
547
+ }
548
+ .kyro-form-input {
549
+ width: 100%;
550
+ padding: 6px 10px;
551
+ font-size: 13px;
552
+ color: var(--kyro-text-primary);
553
+ background: var(--kyro-input-bg);
554
+ border: 1px solid var(--kyro-input-border);
555
+ border-radius: 6px;
556
+ transition: all 150ms ease;
557
+ font-family: inherit;
558
+ pointer-events: auto !important;
559
+ position: relative;
560
+ z-index: 1;
561
+ }
562
+ .kyro-form-input:disabled {
563
+ pointer-events: none !important;
564
+ opacity: 0.5;
565
+ }
566
+ .kyro-form-input[disabled] {
567
+ pointer-events: none !important;
568
+ opacity: 0.5;
569
+ }
570
+ textarea.kyro-form-input,
571
+ textarea.kyro-form-textarea {
572
+ pointer-events: auto !important;
573
+ cursor: text;
574
+ }
575
+ input[type=text],
576
+ input[type=email],
577
+ input[type=password],
578
+ input[type=number],
579
+ input[type=search],
580
+ input[type=url],
581
+ input[type=tel],
582
+ select.kyro-form-input {
583
+ pointer-events: auto !important;
584
+ cursor: text;
585
+ }
586
+ .kyro-form-input:hover {
587
+ border-color: var(--kyro-gray-300);
588
+ }
589
+ .kyro-form-input:focus {
590
+ outline: none;
591
+ border-color: var(--kyro-black);
592
+ box-shadow: 0 0 0 3px var(--kyro-sidebar-border);
593
+ }
594
+ .kyro-form-input::placeholder {
595
+ color: var(--kyro-gray-400);
596
+ }
597
+ .kyro-form-input-error {
598
+ border-color: var(--kyro-gray-900) !important;
599
+ }
600
+ .kyro-form-textarea {
601
+ min-height: 100px;
602
+ resize: vertical;
603
+ }
604
+ .kyro-form-number {
605
+ font-variant-numeric: tabular-nums;
606
+ }
607
+ .kyro-form-select {
608
+ appearance: none;
609
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
610
+ background-repeat: no-repeat;
611
+ background-position: right 10px center;
612
+ padding-right: 36px;
613
+ }
614
+ .kyro-form-checkbox {
615
+ display: flex;
616
+ align-items: center;
617
+ gap: 8px;
618
+ cursor: pointer;
619
+ }
620
+ .kyro-form-checkbox input {
621
+ width: 16px;
622
+ height: 16px;
623
+ accent-color: var(--kyro-black);
624
+ }
625
+ .kyro-form-checkbox-label {
626
+ font-size: 14px;
627
+ color: var(--kyro-text-primary);
628
+ }
629
+ .kyro-form-radio-group {
630
+ display: flex;
631
+ flex-direction: column;
632
+ gap: 8px;
633
+ }
634
+ .kyro-form-radio {
635
+ display: flex;
636
+ align-items: center;
637
+ gap: 8px;
638
+ cursor: pointer;
639
+ font-size: 14px;
640
+ color: var(--kyro-gray-700);
641
+ }
642
+ .kyro-form-radio input {
643
+ accent-color: var(--kyro-black);
644
+ }
645
+ .kyro-form-row {
646
+ display: grid;
647
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
648
+ gap: 16px;
649
+ }
650
+ .kyro-form-group {
651
+ border: 1px solid var(--kyro-border);
652
+ border-radius: 8px;
653
+ overflow: hidden;
654
+ }
655
+ .kyro-form-group-header {
656
+ padding: 12px 16px;
657
+ background: var(--kyro-surface-accent);
658
+ border-bottom: 1px solid var(--kyro-border);
659
+ }
660
+ .kyro-form-group-title {
661
+ font-size: 13px;
662
+ font-weight: 600;
663
+ color: var(--kyro-text-primary);
664
+ padding: 12px 16px;
665
+ background: var(--kyro-surface-accent);
666
+ border-bottom: 1px solid var(--kyro-border);
667
+ }
668
+ .kyro-form-group-fields {
669
+ padding: 16px;
670
+ display: flex;
671
+ flex-direction: column;
672
+ gap: 16px;
673
+ }
674
+ .kyro-form-group-content {
675
+ padding: 16px;
676
+ display: flex;
677
+ flex-direction: column;
678
+ gap: 16px;
679
+ }
680
+ .kyro-form-error {
681
+ font-size: 12px;
682
+ color: var(--kyro-gray-600);
683
+ font-style: italic;
684
+ }
685
+ .kyro-form-help {
686
+ font-size: 12px;
687
+ color: var(--kyro-gray-500);
688
+ }
689
+ .kyro-form-unsupported {
690
+ font-size: 12px;
691
+ color: var(--kyro-gray-400);
692
+ font-style: italic;
693
+ }
694
+ .kyro-form-color-wrapper {
695
+ display: flex;
696
+ align-items: center;
697
+ gap: 12px;
698
+ }
699
+ .kyro-form-color {
700
+ width: 42px;
701
+ height: 42px;
702
+ border: 1px solid var(--kyro-border);
703
+ border-radius: 6px;
704
+ cursor: pointer;
705
+ padding: 2px;
706
+ }
707
+ .kyro-form-color-value {
708
+ font-size: 13px;
709
+ font-family: monospace;
710
+ color: var(--kyro-gray-600);
711
+ }
712
+ .kyro-form-richtext {
713
+ min-height: 200px;
714
+ font-family: inherit;
715
+ }
716
+ .kyro-form-code {
717
+ font-family:
718
+ "SF Mono",
719
+ "Fira Code",
720
+ monospace;
721
+ font-size: 13px;
722
+ tab-size: 2;
723
+ }
724
+ .kyro-form-relationship {
725
+ border: 1px solid var(--kyro-border);
726
+ border-radius: 6px;
727
+ cursor: pointer;
728
+ transition: all 150ms ease;
729
+ }
730
+ .kyro-form-relationship:hover {
731
+ border-color: var(--kyro-gray-300);
732
+ }
733
+ .kyro-form-relationship-header {
734
+ padding: 8px 12px;
735
+ display: flex;
736
+ align-items: center;
737
+ justify-content: space-between;
738
+ background: var(--kyro-surface-accent);
739
+ border-bottom: 1px solid var(--kyro-border);
740
+ border-radius: 5px 5px 0 0;
741
+ }
742
+ .kyro-form-relationship-type {
743
+ font-size: 11px;
744
+ font-weight: 600;
745
+ color: var(--kyro-gray-500);
746
+ text-transform: none;
747
+ letter-spacing: 0.03em;
748
+ }
749
+ .kyro-form-relationship-badge {
750
+ font-size: 10px;
751
+ padding: 2px 6px;
752
+ background: var(--kyro-gray-100);
753
+ color: var(--kyro-text-secondary);
754
+ border-radius: 3px;
755
+ font-weight: 600;
756
+ }
757
+ .kyro-form-relationship-value {
758
+ padding: 10px 12px;
759
+ font-size: 14px;
760
+ color: var(--kyro-text-primary);
761
+ }
762
+ .kyro-form-relationship-empty {
763
+ padding: 10px 12px;
764
+ font-size: 14px;
765
+ color: var(--kyro-gray-400);
766
+ }
767
+ .kyro-form-array {
768
+ display: flex;
769
+ flex-direction: column;
770
+ gap: 6px;
771
+ }
772
+ .kyro-form-array-empty {
773
+ padding: 12px;
774
+ text-align: center;
775
+ background: var(--kyro-surface);
776
+ border: 2px dashed var(--kyro-border);
777
+ border-radius: 6px;
778
+ color: var(--kyro-text-muted);
779
+ font-size: 12px;
780
+ }
781
+ .kyro-form-array-item {
782
+ background: var(--kyro-surface);
783
+ border: 1px solid var(--kyro-border);
784
+ border-radius: 6px;
785
+ overflow: hidden;
786
+ padding: 6px;
787
+ }
788
+ .kyro-form-array-item-header {
789
+ display: flex;
790
+ align-items: center;
791
+ justify-content: space-between;
792
+ padding: 4px 6px;
793
+ background: var(--kyro-surface-accent);
794
+ border-bottom: 1px solid var(--kyro-border);
795
+ }
796
+ .kyro-form-array-item-number {
797
+ font-size: 10px;
798
+ font-weight: 600;
799
+ color: var(--kyro-gray-500);
800
+ background: var(--kyro-surface);
801
+ padding: 1px 4px;
802
+ border-radius: 3px;
803
+ }
804
+ .kyro-form-array-item-remove {
805
+ display: flex;
806
+ align-items: center;
807
+ justify-content: center;
808
+ width: 18px;
809
+ height: 18px;
810
+ border: none;
811
+ background: transparent;
812
+ color: var(--kyro-gray-400);
813
+ cursor: pointer;
814
+ border-radius: 3px;
815
+ transition: all 150ms ease;
816
+ }
817
+ .kyro-form-array-item-remove:hover {
818
+ background: #fee2e2;
819
+ color: #dc2626;
820
+ }
821
+ .kyro-form-array-item-fields {
822
+ padding: 6px;
823
+ display: flex;
824
+ flex-direction: column;
825
+ gap: 6px;
826
+ }
827
+ .kyro-form-array-item-fields .kyro-form-label {
828
+ font-size: 10px;
829
+ margin-bottom: 1px;
830
+ }
831
+ .kyro-form-array-item-fields .kyro-form-input {
832
+ padding: 4px 6px;
833
+ font-size: 11px;
834
+ }
835
+ .kyro-form-array-add {
836
+ display: inline-flex;
837
+ align-items: center;
838
+ gap: 4px;
839
+ padding: 6px 10px;
840
+ font-size: 11px;
841
+ font-weight: 600;
842
+ color: var(--kyro-text-secondary);
843
+ background: var(--kyro-surface-accent);
844
+ border: 1px dashed var(--kyro-border);
845
+ border-radius: 6px;
846
+ cursor: pointer;
847
+ transition: all 150ms ease;
848
+ }
849
+ .kyro-form-array-add:hover {
850
+ background: var(--kyro-surface);
851
+ border-color: var(--kyro-sidebar-active);
852
+ color: var(--kyro-sidebar-active);
853
+ }
854
+ .kyro-form-blocks {
855
+ display: flex;
856
+ flex-direction: column;
857
+ gap: 12px;
858
+ }
859
+ .kyro-form-blocks-empty {
860
+ padding: 32px;
861
+ text-align: center;
862
+ background: var(--kyro-surface);
863
+ border: 2px dashed var(--kyro-border);
864
+ border-radius: 8px;
865
+ color: var(--kyro-text-muted);
866
+ font-size: 13px;
867
+ }
868
+ .kyro-form-block-item {
869
+ background: var(--kyro-surface);
870
+ border: 1px solid var(--kyro-border);
871
+ border-radius: 8px;
872
+ overflow: hidden;
873
+ padding: 10px;
874
+ }
875
+ .kyro-form-block-item-header {
876
+ display: flex;
877
+ align-items: center;
878
+ justify-content: space-between;
879
+ padding: 10px 12px;
880
+ background: var(--kyro-surface-accent);
881
+ border-bottom: 1px solid var(--kyro-border);
882
+ }
883
+ .kyro-form-block-item-type {
884
+ font-size: 12px;
885
+ font-weight: 600;
886
+ color: var(--kyro-gray-700);
887
+ }
888
+ .kyro-form-block-item-actions {
889
+ display: flex;
890
+ gap: 4px;
891
+ }
892
+ .kyro-form-block-item-move,
893
+ .kyro-form-block-item-remove {
894
+ display: flex;
895
+ align-items: center;
896
+ justify-content: center;
897
+ width: 24px;
898
+ height: 24px;
899
+ border: none;
900
+ background: transparent;
901
+ color: var(--kyro-gray-400);
902
+ cursor: pointer;
903
+ border-radius: 4px;
904
+ transition: all 150ms ease;
905
+ }
906
+ .kyro-form-block-item-move:hover,
907
+ .kyro-form-block-item-remove:hover {
908
+ background: var(--kyro-surface-accent);
909
+ color: var(--kyro-black);
910
+ }
911
+ .kyro-form-block-item-fields {
912
+ padding: 16px;
913
+ display: flex;
914
+ flex-direction: column;
915
+ gap: 12px;
916
+ }
917
+ .kyro-form-blocks-add {
918
+ display: flex;
919
+ align-items: center;
920
+ gap: 8px;
921
+ padding-top: 8px;
922
+ }
923
+ .kyro-form-blocks-add-label {
924
+ font-size: 12px;
925
+ font-weight: 500;
926
+ color: var(--kyro-gray-500);
927
+ }
928
+ .kyro-form-blocks-add-buttons {
929
+ display: flex;
930
+ gap: 6px;
931
+ flex-wrap: wrap;
932
+ }
933
+ .kyro-form-tabs {
934
+ display: flex;
935
+ flex-direction: column;
936
+ gap: 16px;
937
+ }
938
+ .kyro-form-tab {
939
+ border: 1px solid var(--kyro-border);
940
+ border-radius: 8px;
941
+ overflow: hidden;
942
+ }
943
+ .kyro-form-tab-title {
944
+ font-size: 13px;
945
+ font-weight: 600;
946
+ color: var(--kyro-text-primary);
947
+ padding: 10px 16px;
948
+ background: var(--kyro-surface-accent);
949
+ border-bottom: 1px solid var(--kyro-border);
950
+ margin: 0;
951
+ }
952
+ .kyro-form-tab-content {
953
+ padding: 16px;
954
+ display: flex;
955
+ flex-direction: column;
956
+ gap: 16px;
957
+ }
958
+ .kyro-form-collapsible {
959
+ border: 1px solid var(--kyro-border);
960
+ border-radius: 8px;
961
+ overflow: hidden;
962
+ }
963
+ .kyro-form-collapsible-header {
964
+ display: flex;
965
+ align-items: center;
966
+ gap: 8px;
967
+ width: 100%;
968
+ padding: 12px 16px;
969
+ background: var(--kyro-surface-accent);
970
+ font-size: 13px;
971
+ font-weight: 600;
972
+ color: var(--kyro-text-primary);
973
+ border: none;
974
+ cursor: pointer;
975
+ text-align: left;
976
+ list-style: none;
977
+ }
978
+ .kyro-form-collapsible-header::-webkit-details-marker {
979
+ display: none;
980
+ }
981
+ .kyro-form-collapsible-header svg {
982
+ color: var(--kyro-gray-500);
983
+ transition: transform 150ms ease;
984
+ }
985
+ .kyro-form-collapsible[open] .kyro-form-collapsible-header svg {
986
+ transform: rotate(90deg);
987
+ }
988
+ .kyro-form-collapsible-content {
989
+ padding: 16px;
990
+ display: flex;
991
+ flex-direction: column;
992
+ gap: 16px;
993
+ }
994
+ .kyro-form-upload {
995
+ border: 2px dashed var(--kyro-border);
996
+ border-radius: 8px;
997
+ padding: 32px;
998
+ text-align: center;
999
+ cursor: pointer;
1000
+ transition: all 150ms ease;
1001
+ background: var(--kyro-surface);
1002
+ }
1003
+ .kyro-form-upload:hover,
1004
+ .kyro-form-upload-dragging {
1005
+ border-color: var(--kyro-black);
1006
+ background: var(--kyro-surface-accent);
1007
+ }
1008
+ .kyro-form-upload-error {
1009
+ border-color: var(--kyro-black);
1010
+ }
1011
+ .kyro-form-upload-input {
1012
+ display: none;
1013
+ }
1014
+ .kyro-form-upload-placeholder {
1015
+ display: flex;
1016
+ flex-direction: column;
1017
+ align-items: center;
1018
+ gap: 8px;
1019
+ color: var(--kyro-gray-500);
1020
+ font-size: 14px;
1021
+ }
1022
+ .kyro-form-upload-placeholder svg {
1023
+ color: var(--kyro-gray-400);
1024
+ }
1025
+ .kyro-form-upload-hint {
1026
+ font-size: 12px;
1027
+ color: var(--kyro-gray-400);
1028
+ }
1029
+ .kyro-form-upload-preview {
1030
+ display: flex;
1031
+ align-items: center;
1032
+ gap: 12px;
1033
+ }
1034
+ .kyro-form-upload-image {
1035
+ width: 64px;
1036
+ height: 64px;
1037
+ border-radius: 6px;
1038
+ object-fit: cover;
1039
+ border: 1px solid var(--kyro-border);
1040
+ }
1041
+ .kyro-form-upload-info {
1042
+ display: flex;
1043
+ flex-direction: column;
1044
+ gap: 4px;
1045
+ text-align: left;
1046
+ }
1047
+ .kyro-form-upload-filename {
1048
+ font-size: 13px;
1049
+ font-weight: 500;
1050
+ color: var(--kyro-text-primary);
1051
+ }
1052
+ .kyro-form-upload-change {
1053
+ font-size: 12px;
1054
+ color: var(--kyro-gray-500);
1055
+ background: none;
1056
+ border: none;
1057
+ padding: 0;
1058
+ cursor: pointer;
1059
+ text-decoration: underline;
1060
+ }
1061
+ .kyro-form-upload-change:hover {
1062
+ color: var(--kyro-black);
1063
+ }
1064
+ .kyro-badge {
1065
+ display: inline-flex;
1066
+ align-items: center;
1067
+ padding: 2px 8px;
1068
+ font-size: 11px;
1069
+ font-weight: 600;
1070
+ border-radius: 4px;
1071
+ text-transform: none;
1072
+ letter-spacing: 0.02em;
1073
+ }
1074
+ .kyro-badge-default {
1075
+ background: var(--kyro-gray-100);
1076
+ color: var(--kyro-text-secondary);
1077
+ }
1078
+ .kyro-badge-success {
1079
+ background: var(--kyro-gray-100);
1080
+ color: var(--kyro-text-primary);
1081
+ }
1082
+ .kyro-badge-warning {
1083
+ background: var(--kyro-gray-200);
1084
+ color: var(--kyro-text-primary);
1085
+ }
1086
+ .kyro-badge-danger {
1087
+ background: var(--kyro-gray-200);
1088
+ color: var(--kyro-text-primary);
1089
+ }
1090
+ .kyro-badge-info {
1091
+ background: var(--kyro-gray-100);
1092
+ color: var(--kyro-text-secondary);
1093
+ }
1094
+ .kyro-toasts-container {
1095
+ position: fixed;
1096
+ bottom: 24px;
1097
+ right: 24px;
1098
+ display: flex;
1099
+ flex-direction: column;
1100
+ gap: 12px;
1101
+ z-index: 9999;
1102
+ pointer-events: none;
1103
+ }
1104
+ .kyro-toast {
1105
+ display: flex;
1106
+ align-items: center;
1107
+ gap: 12px;
1108
+ min-width: 320px;
1109
+ max-width: 420px;
1110
+ padding: 12px;
1111
+ background: rgba(11, 18, 34, 0.85);
1112
+ backdrop-filter: blur(12px);
1113
+ -webkit-backdrop-filter: blur(12px);
1114
+ color: white;
1115
+ border-radius: 16px;
1116
+ border: 1px solid rgba(255, 255, 255, 0.1);
1117
+ box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 20px 25px -5px rgba(0, 0, 0, 0.2);
1118
+ pointer-events: auto;
1119
+ overflow: hidden;
1120
+ position: relative;
1121
+ }
1122
+ .dark .kyro-toast {
1123
+ background: rgba(5, 9, 18, 0.9);
1124
+ border: 1px solid rgba(255, 255, 255, 0.05);
1125
+ }
1126
+ .kyro-toast-accent {
1127
+ position: absolute;
1128
+ left: 0;
1129
+ top: 0;
1130
+ bottom: 0;
1131
+ width: 4px;
1132
+ background: var(--kyro-primary);
1133
+ }
1134
+ .kyro-toast-success .kyro-toast-accent {
1135
+ background: #10b981;
1136
+ }
1137
+ .kyro-toast-error .kyro-toast-accent {
1138
+ background: #ef4444;
1139
+ }
1140
+ .kyro-toast-warning .kyro-toast-accent {
1141
+ background: #f59e0b;
1142
+ }
1143
+ .kyro-toast-info .kyro-toast-accent {
1144
+ background: #3b82f6;
1145
+ }
1146
+ .kyro-toast-icon-container {
1147
+ flex-shrink: 0;
1148
+ width: 32px;
1149
+ height: 32px;
1150
+ border-radius: 10px;
1151
+ background: rgba(255, 255, 255, 0.05);
1152
+ display: flex;
1153
+ align-items: center;
1154
+ justify-content: center;
1155
+ color: rgba(255, 255, 255, 0.9);
1156
+ }
1157
+ .kyro-toast-success .kyro-toast-icon-container {
1158
+ color: #10b981;
1159
+ background: rgba(16, 185, 129, 0.1);
1160
+ }
1161
+ .kyro-toast-error .kyro-toast-icon-container {
1162
+ color: #f87171;
1163
+ background: rgba(239, 68, 68, 0.1);
1164
+ }
1165
+ .kyro-toast-warning .kyro-toast-icon-container {
1166
+ color: #fbbf24;
1167
+ background: rgba(245, 158, 11, 0.1);
1168
+ }
1169
+ .kyro-toast-info .kyro-toast-icon-container {
1170
+ color: #60a5fa;
1171
+ background: rgba(59, 130, 246, 0.1);
1172
+ }
1173
+ .kyro-toast-content {
1174
+ flex: 1;
1175
+ min-width: 0;
1176
+ }
1177
+ .kyro-toast-message {
1178
+ font-size: 13px;
1179
+ font-weight: 600;
1180
+ letter-spacing: -0.01em;
1181
+ color: rgba(255, 255, 255, 0.9);
1182
+ line-height: 1.4;
1183
+ }
1184
+ .kyro-toast-close {
1185
+ padding: 6px;
1186
+ border-radius: 8px;
1187
+ color: rgba(255, 255, 255, 0.4);
1188
+ transition: all 0.2s ease;
1189
+ }
1190
+ .kyro-toast-close:hover {
1191
+ background: rgba(255, 255, 255, 0.1);
1192
+ color: white;
1193
+ }
1194
+ .kyro-spinner {
1195
+ animation: spin 0.8s linear infinite;
1196
+ color: var(--kyro-black);
1197
+ }
1198
+ .kyro-spin {
1199
+ animation: spin 0.8s linear infinite;
1200
+ }
1201
+ .kyro-spinner-sm {
1202
+ width: 14px;
1203
+ height: 14px;
1204
+ }
1205
+ .kyro-spinner-md {
1206
+ width: 20px;
1207
+ height: 20px;
1208
+ }
1209
+ .kyro-spinner-lg {
1210
+ width: 28px;
1211
+ height: 28px;
1212
+ }
1213
+ @keyframes spin {
1214
+ from {
1215
+ transform: rotate(0deg);
1216
+ }
1217
+ to {
1218
+ transform: rotate(360deg);
1219
+ }
1220
+ }
1221
+ .kyro-loading {
1222
+ display: flex;
1223
+ align-items: center;
1224
+ justify-content: center;
1225
+ padding: 48px;
1226
+ color: var(--kyro-gray-500);
1227
+ }
1228
+ .kyro-modal-overlay {
1229
+ position: fixed;
1230
+ inset: 0;
1231
+ background: rgba(11, 18, 34, 0.6);
1232
+ display: flex;
1233
+ align-items: center;
1234
+ justify-content: center;
1235
+ z-index: 9999;
1236
+ backdrop-filter: blur(4px);
1237
+ pointer-events: auto;
1238
+ }
1239
+ .kyro-modal {
1240
+ background: var(--kyro-surface);
1241
+ border-radius: 10px;
1242
+ padding: 24px;
1243
+ max-width: 400px;
1244
+ width: 100%;
1245
+ animation: modal-in 0.2s ease;
1246
+ }
1247
+ @keyframes modal-in {
1248
+ from {
1249
+ transform: scale(0.95);
1250
+ opacity: 0;
1251
+ }
1252
+ to {
1253
+ transform: scale(1);
1254
+ opacity: 1;
1255
+ }
1256
+ }
1257
+ .kyro-modal h3 {
1258
+ margin: 0 0 8px;
1259
+ font-size: 18px;
1260
+ font-weight: 600;
1261
+ color: var(--kyro-text-primary);
1262
+ }
1263
+ .kyro-modal p {
1264
+ margin: 0 0 16px;
1265
+ color: var(--kyro-text-secondary);
1266
+ font-size: 14px;
1267
+ }
1268
+ .kyro-modal-actions {
1269
+ display: flex;
1270
+ justify-content: flex-end;
1271
+ gap: 8px;
1272
+ }
1273
+ .kyro-relation-modal {
1274
+ background: var(--kyro-surface);
1275
+ border-radius: 12px;
1276
+ max-width: 520px;
1277
+ width: 100%;
1278
+ max-height: 80vh;
1279
+ display: flex;
1280
+ flex-direction: column;
1281
+ animation: modal-in 0.2s ease;
1282
+ overflow: hidden;
1283
+ box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
1284
+ }
1285
+ .kyro-relation-modal-header {
1286
+ padding: 20px 24px 0;
1287
+ display: flex;
1288
+ flex-direction: column;
1289
+ gap: 16px;
1290
+ }
1291
+ .kyro-relation-modal-header h3 {
1292
+ font-size: 16px;
1293
+ font-weight: 600;
1294
+ color: var(--kyro-text-primary);
1295
+ margin: 0;
1296
+ }
1297
+ .kyro-relation-modal-search {
1298
+ width: 100%;
1299
+ padding: 10px 12px;
1300
+ font-size: 14px;
1301
+ color: var(--kyro-text-primary);
1302
+ background: var(--kyro-surface-accent);
1303
+ border: 1px solid var(--kyro-border);
1304
+ border-radius: 6px;
1305
+ transition: all 150ms ease;
1306
+ font-family: inherit;
1307
+ }
1308
+ .kyro-relation-modal-search:focus {
1309
+ outline: none;
1310
+ border-color: var(--kyro-black);
1311
+ box-shadow: 0 0 0 3px var(--kyro-sidebar-border);
1312
+ background: var(--kyro-surface);
1313
+ }
1314
+ .kyro-relation-modal-search::placeholder {
1315
+ color: var(--kyro-gray-400);
1316
+ }
1317
+ .kyro-relation-modal-list {
1318
+ flex: 1;
1319
+ overflow-y: auto;
1320
+ padding: 8px;
1321
+ max-height: 320px;
1322
+ }
1323
+ .kyro-relation-modal-item {
1324
+ display: flex;
1325
+ align-items: center;
1326
+ gap: 12px;
1327
+ width: 100%;
1328
+ padding: 10px 16px;
1329
+ font-size: 14px;
1330
+ color: var(--kyro-text-primary);
1331
+ background: transparent;
1332
+ border: none;
1333
+ border-radius: 6px;
1334
+ cursor: pointer;
1335
+ transition: all 100ms ease;
1336
+ text-align: left;
1337
+ font-family: inherit;
1338
+ }
1339
+ .kyro-relation-modal-item:hover {
1340
+ background: var(--kyro-surface-accent);
1341
+ }
1342
+ .kyro-relation-modal-item.selected {
1343
+ background: var(--kyro-black);
1344
+ color: var(--kyro-sidebar-text-active);
1345
+ }
1346
+ .kyro-relation-modal-item-id {
1347
+ font-size: 11px;
1348
+ color: var(--kyro-gray-400);
1349
+ font-family: monospace;
1350
+ }
1351
+ .kyro-relation-modal-item.selected .kyro-relation-modal-item-id {
1352
+ color: rgba(255, 255, 255, 0.6);
1353
+ }
1354
+ .kyro-relation-modal-empty {
1355
+ padding: 32px;
1356
+ text-align: center;
1357
+ color: var(--kyro-gray-400);
1358
+ font-size: 13px;
1359
+ }
1360
+ .kyro-relation-modal-footer {
1361
+ padding: 16px 24px;
1362
+ border-top: 1px solid var(--kyro-border);
1363
+ display: flex;
1364
+ justify-content: flex-end;
1365
+ gap: 8px;
1366
+ }
1367
+ .kyro-color {
1368
+ display: flex;
1369
+ align-items: center;
1370
+ gap: 12px;
1371
+ }
1372
+ .kyro-color-swatch {
1373
+ width: 36px;
1374
+ height: 36px;
1375
+ border-radius: 6px;
1376
+ border: 1px solid var(--kyro-border);
1377
+ cursor: pointer;
1378
+ padding: 0;
1379
+ overflow: hidden;
1380
+ }
1381
+ .kyro-color-swatch::-webkit-color-swatch-wrapper {
1382
+ padding: 0;
1383
+ }
1384
+ .kyro-color-swatch::-webkit-color-swatch {
1385
+ border: none;
1386
+ border-radius: 5px;
1387
+ }
1388
+ .kyro-login-page {
1389
+ min-height: 100vh;
1390
+ display: flex;
1391
+ align-items: center;
1392
+ justify-content: center;
1393
+ background: var(--kyro-bg);
1394
+ padding: 20px;
1395
+ }
1396
+ .kyro-login-container {
1397
+ width: 100%;
1398
+ max-width: 400px;
1399
+ background: var(--kyro-surface);
1400
+ border-radius: var(--kyro-radius-lg);
1401
+ box-shadow: var(--kyro-shadow-tile);
1402
+ padding: 40px 32px;
1403
+ }
1404
+ .kyro-login-header {
1405
+ text-align: center;
1406
+ margin-bottom: 32px;
1407
+ }
1408
+ .kyro-login-title {
1409
+ font-size: 24px;
1410
+ font-weight: 700;
1411
+ color: var(--kyro-text-primary);
1412
+ margin: 0 0 8px;
1413
+ letter-spacing: -0.02em;
1414
+ }
1415
+ .kyro-login-subtitle {
1416
+ font-size: 14px;
1417
+ color: var(--kyro-gray-500);
1418
+ margin: 0;
1419
+ }
1420
+ .kyro-login-form {
1421
+ display: flex;
1422
+ flex-direction: column;
1423
+ gap: 20px;
1424
+ }
1425
+ .kyro-login-form .kyro-form-group {
1426
+ display: flex;
1427
+ flex-direction: column;
1428
+ gap: 6px;
1429
+ }
1430
+ .kyro-login-form .kyro-form-group label {
1431
+ font-size: 13px;
1432
+ font-weight: 500;
1433
+ color: var(--kyro-text-primary);
1434
+ }
1435
+ .kyro-login-form .kyro-form-group input {
1436
+ width: 100%;
1437
+ padding: 10px 12px;
1438
+ font-size: 14px;
1439
+ color: var(--kyro-text-primary);
1440
+ background: var(--kyro-input-bg);
1441
+ border: 1px solid var(--kyro-input-border);
1442
+ border-radius: 6px;
1443
+ transition: all 150ms ease;
1444
+ font-family: inherit;
1445
+ }
1446
+ .kyro-login-form .kyro-form-group input:hover {
1447
+ border-color: var(--kyro-gray-300);
1448
+ }
1449
+ .kyro-login-form .kyro-form-group input:focus {
1450
+ outline: none;
1451
+ border-color: var(--kyro-black);
1452
+ box-shadow: 0 0 0 3px var(--kyro-sidebar-border);
1453
+ }
1454
+ .kyro-login-form .kyro-form-group input::placeholder {
1455
+ color: var(--kyro-gray-400);
1456
+ }
1457
+ .kyro-login-form button[type=submit] {
1458
+ width: 100%;
1459
+ margin-top: 8px;
1460
+ }
1461
+ .kyro-login-footer {
1462
+ margin-top: 24px;
1463
+ text-align: center;
1464
+ }
1465
+ .kyro-login-footer p {
1466
+ font-size: 14px;
1467
+ color: var(--kyro-gray-500);
1468
+ margin: 0;
1469
+ }
1470
+ .kyro-login-link {
1471
+ background: none;
1472
+ border: none;
1473
+ color: var(--kyro-text-primary);
1474
+ font-weight: 600;
1475
+ cursor: pointer;
1476
+ font-size: 14px;
1477
+ padding: 0;
1478
+ text-decoration: underline;
1479
+ font-family: inherit;
1480
+ }
1481
+ .kyro-login-link:hover {
1482
+ color: var(--kyro-black-hover);
1483
+ text-decoration: none;
1484
+ }
1485
+ .kyro-sidebar-user-info {
1486
+ padding: 8px;
1487
+ border-top: 1px solid var(--kyro-sidebar-border);
1488
+ margin-bottom: 4px;
1489
+ }
1490
+ .kyro-sidebar-user-email {
1491
+ font-size: 12px;
1492
+ font-weight: 500;
1493
+ color: var(--kyro-gray-700);
1494
+ white-space: nowrap;
1495
+ overflow: hidden;
1496
+ text-overflow: ellipsis;
1497
+ }
1498
+ .kyro-sidebar-user-role {
1499
+ font-size: 10px;
1500
+ font-weight: 600;
1501
+ text-transform: none;
1502
+ letter-spacing: 0.05em;
1503
+ color: var(--kyro-gray-500);
1504
+ margin-bottom: 4px;
1505
+ }
1506
+ .kyro-sidebar-logout {
1507
+ color: var(--kyro-gray-400) !important;
1508
+ }
1509
+ .kyro-sidebar-logout:hover {
1510
+ color: var(--kyro-black) !important;
1511
+ background: var(--kyro-surface-accent);
1512
+ }
1513
+ }
1514
+ .tiptap-editor-wrapper .ProseMirror {
1515
+ outline: none;
1516
+ }
1517
+ .tiptap-editor-wrapper .ProseMirror > * + * {
1518
+ margin-top: 0.75em;
1519
+ }
1520
+ .tiptap-editor-wrapper [data-node-view-wrapper],
1521
+ .tiptap-editor-wrapper [data-node-view-wrapper] * {
1522
+ isolation: isolate;
1523
+ position: relative;
1524
+ }
1525
+ .tiptap-editor-wrapper .tiptap-hero-block,
1526
+ .tiptap-editor-wrapper .tiptap-heading-block,
1527
+ .tiptap-editor-wrapper .tiptap-paragraph-block,
1528
+ .tiptap-editor-wrapper .tiptap-quote-block,
1529
+ .tiptap-editor-wrapper .tiptap-code-block,
1530
+ .tiptap-editor-wrapper .tiptap-image-block,
1531
+ .tiptap-editor-wrapper .tiptap-video-block,
1532
+ .tiptap-editor-wrapper .tiptap-divider-block,
1533
+ .tiptap-editor-wrapper .tiptap-button-block,
1534
+ .tiptap-editor-wrapper .tiptap-callout-block {
1535
+ position: relative;
1536
+ z-index: 1;
1537
+ }
1538
+ .tiptap-editor-wrapper .tiptap-columns-block,
1539
+ .tiptap-editor-wrapper .tiptap-stack-block,
1540
+ .tiptap-editor-wrapper .tiptap-column-block,
1541
+ .tiptap-editor-wrapper .tiptap-group-block,
1542
+ .tiptap-editor-wrapper .tiptap-card-block,
1543
+ .tiptap-editor-wrapper .tiptap-repeater-block,
1544
+ .tiptap-editor-wrapper .tiptap-accordion-block {
1545
+ position: relative;
1546
+ z-index: 1;
1547
+ isolation: isolate;
1548
+ }
1549
+ .tiptap-editor-wrapper .tiptap-columns-grid[data-node-view-content] {
1550
+ display: flex;
1551
+ flex-wrap: wrap;
1552
+ gap: 0.75rem;
1553
+ align-items: start;
1554
+ font-size: 0;
1555
+ }
1556
+ .tiptap-editor-wrapper .tiptap-columns-grid[data-node-view-content] > * {
1557
+ font-size: 0.875rem;
1558
+ min-width: 0;
1559
+ }
1560
+ .tiptap-editor-wrapper .tiptap-columns-grid--1[data-node-view-content] {
1561
+ display: block;
1562
+ }
1563
+ .tiptap-editor-wrapper .tiptap-columns-grid--2[data-node-view-content] {
1564
+ display: flex;
1565
+ }
1566
+ .tiptap-editor-wrapper .tiptap-columns-grid--3[data-node-view-content] {
1567
+ display: flex;
1568
+ }
1569
+ .tiptap-editor-wrapper .tiptap-columns-grid--4[data-node-view-content] {
1570
+ display: flex;
1571
+ }
1572
+ .tiptap-editor-wrapper .tiptap-columns-grid--5[data-node-view-content] {
1573
+ display: flex;
1574
+ }
1575
+ .tiptap-editor-wrapper .tiptap-columns-grid--6[data-node-view-content] {
1576
+ display: flex;
1577
+ }
1578
+ .tiptap-editor-wrapper .tiptap-column-block {
1579
+ display: inline-block;
1580
+ font-size: 0.875rem;
1581
+ flex: 0 0 auto;
1582
+ min-width: 0;
1583
+ height: 100%;
1584
+ vertical-align: top;
1585
+ }
1586
+ .tiptap-editor-wrapper .tiptap-column-content[data-node-view-content] {
1587
+ display: block;
1588
+ min-height: 84px;
1589
+ }
1590
+ .tiptap-editor-wrapper .tiptap-column-content[data-node-view-content] > *:first-child {
1591
+ margin-top: 0;
1592
+ }
1593
+ .tiptap-editor-wrapper .tiptap-column-content[data-node-view-content] > *:last-child {
1594
+ margin-bottom: 0;
1595
+ }
1596
+ .tiptap-editor-wrapper .tiptap-stack-block [data-node-view-content],
1597
+ .tiptap-editor-wrapper .tiptap-group-block [data-node-view-content],
1598
+ .tiptap-editor-wrapper .tiptap-card-block [data-node-view-content] {
1599
+ display: contents;
1600
+ }
1601
+ .tiptap-editor-wrapper .tiptap-columns-block--1 .tiptap-column-block {
1602
+ width: 100%;
1603
+ flex-basis: 100%;
1604
+ }
1605
+ .tiptap-editor-wrapper .tiptap-columns-block--1 .tiptap-columns-grid[data-node-view-content] > * {
1606
+ width: 100%;
1607
+ flex: 0 0 100%;
1608
+ }
1609
+ .tiptap-editor-wrapper .tiptap-columns-block--2 .tiptap-column-block {
1610
+ width: calc(50% - 0.375rem);
1611
+ flex-basis: calc(50% - 0.375rem);
1612
+ }
1613
+ .tiptap-editor-wrapper .tiptap-columns-block--2 .tiptap-columns-grid[data-node-view-content] > * {
1614
+ width: calc(50% - 0.375rem);
1615
+ flex: 0 0 calc(50% - 0.375rem);
1616
+ }
1617
+ .tiptap-editor-wrapper .tiptap-columns-block--3 .tiptap-column-block {
1618
+ width: calc(33.333% - 0.5rem);
1619
+ flex-basis: calc(33.333% - 0.5rem);
1620
+ }
1621
+ .tiptap-editor-wrapper .tiptap-columns-block--3 .tiptap-columns-grid[data-node-view-content] > * {
1622
+ width: calc(33.333% - 0.5rem);
1623
+ flex: 0 0 calc(33.333% - 0.5rem);
1624
+ }
1625
+ .tiptap-editor-wrapper .tiptap-columns-block--4 .tiptap-column-block {
1626
+ width: calc(25% - 0.5625rem);
1627
+ flex-basis: calc(25% - 0.5625rem);
1628
+ }
1629
+ .tiptap-editor-wrapper .tiptap-columns-block--4 .tiptap-columns-grid[data-node-view-content] > * {
1630
+ width: calc(25% - 0.5625rem);
1631
+ flex: 0 0 calc(25% - 0.5625rem);
1632
+ }
1633
+ .tiptap-editor-wrapper .tiptap-columns-block--5 .tiptap-column-block {
1634
+ width: calc(20% - 0.6rem);
1635
+ flex-basis: calc(20% - 0.6rem);
1636
+ }
1637
+ .tiptap-editor-wrapper .tiptap-columns-block--5 .tiptap-columns-grid[data-node-view-content] > * {
1638
+ width: calc(20% - 0.6rem);
1639
+ flex: 0 0 calc(20% - 0.6rem);
1640
+ }
1641
+ .tiptap-editor-wrapper .tiptap-columns-block--6 .tiptap-column-block {
1642
+ width: calc(16.666% - 0.625rem);
1643
+ flex-basis: calc(16.666% - 0.625rem);
1644
+ }
1645
+ .tiptap-editor-wrapper .tiptap-columns-block--6 .tiptap-columns-grid[data-node-view-content] > * {
1646
+ width: calc(16.666% - 0.625rem);
1647
+ flex: 0 0 calc(16.666% - 0.625rem);
1648
+ }
1649
+ @media (max-width: 720px) {
1650
+ .tiptap-editor-wrapper .tiptap-columns-grid[data-node-view-content] {
1651
+ display: block !important;
1652
+ }
1653
+ }
1654
+ .tiptap-editor-wrapper .group:hover .drag-handle,
1655
+ .tiptap-editor-wrapper .group:hover .tiptap-drag-handle {
1656
+ opacity: 1;
1657
+ }
1658
+ .tiptap-editor-wrapper .ProseMirror .node--component {
1659
+ display: block;
1660
+ }
1661
+ /*# sourceMappingURL=index.css.map */