@conduction/nextcloud-vue 0.1.0-beta.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 (93) hide show
  1. package/dist/nextcloud-vue.cjs.js +10710 -0
  2. package/dist/nextcloud-vue.cjs.js.map +1 -0
  3. package/dist/nextcloud-vue.css +803 -0
  4. package/dist/nextcloud-vue.esm.js +10665 -0
  5. package/dist/nextcloud-vue.esm.js.map +1 -0
  6. package/package.json +63 -0
  7. package/src/components/CnCardGrid/CnCardGrid.vue +152 -0
  8. package/src/components/CnCardGrid/index.js +1 -0
  9. package/src/components/CnCellRenderer/CnCellRenderer.vue +132 -0
  10. package/src/components/CnCellRenderer/index.js +1 -0
  11. package/src/components/CnConfigurationCard/CnConfigurationCard.vue +77 -0
  12. package/src/components/CnConfigurationCard/index.js +1 -0
  13. package/src/components/CnDataTable/CnDataTable.vue +354 -0
  14. package/src/components/CnDataTable/index.js +1 -0
  15. package/src/components/CnDetailViewLayout/CnDetailViewLayout.vue +88 -0
  16. package/src/components/CnDetailViewLayout/index.js +1 -0
  17. package/src/components/CnEmptyState/CnEmptyState.vue +78 -0
  18. package/src/components/CnEmptyState/index.js +1 -0
  19. package/src/components/CnFacetSidebar/CnFacetSidebar.vue +223 -0
  20. package/src/components/CnFacetSidebar/index.js +1 -0
  21. package/src/components/CnFilterBar/CnFilterBar.vue +152 -0
  22. package/src/components/CnFilterBar/index.js +1 -0
  23. package/src/components/CnIndexPage/CnIndexPage.vue +682 -0
  24. package/src/components/CnIndexPage/index.js +1 -0
  25. package/src/components/CnKpiGrid/CnKpiGrid.vue +89 -0
  26. package/src/components/CnKpiGrid/index.js +1 -0
  27. package/src/components/CnListViewLayout/CnListViewLayout.vue +80 -0
  28. package/src/components/CnListViewLayout/index.js +1 -0
  29. package/src/components/CnMassActionBar/CnMassActionBar.vue +160 -0
  30. package/src/components/CnMassActionBar/index.js +1 -0
  31. package/src/components/CnMassCopyDialog/CnMassCopyDialog.vue +320 -0
  32. package/src/components/CnMassCopyDialog/index.js +1 -0
  33. package/src/components/CnMassDeleteDialog/CnMassDeleteDialog.vue +238 -0
  34. package/src/components/CnMassDeleteDialog/index.js +1 -0
  35. package/src/components/CnMassExportDialog/CnMassExportDialog.vue +190 -0
  36. package/src/components/CnMassExportDialog/index.js +1 -0
  37. package/src/components/CnMassImportDialog/CnMassImportDialog.vue +491 -0
  38. package/src/components/CnMassImportDialog/index.js +1 -0
  39. package/src/components/CnObjectCard/CnObjectCard.vue +292 -0
  40. package/src/components/CnObjectCard/index.js +1 -0
  41. package/src/components/CnPagination/CnPagination.vue +252 -0
  42. package/src/components/CnPagination/index.js +1 -0
  43. package/src/components/CnRowActions/CnRowActions.vue +73 -0
  44. package/src/components/CnRowActions/index.js +1 -0
  45. package/src/components/CnSettingsCard/CnSettingsCard.vue +92 -0
  46. package/src/components/CnSettingsCard/index.js +1 -0
  47. package/src/components/CnSettingsSection/CnSettingsSection.vue +266 -0
  48. package/src/components/CnSettingsSection/index.js +1 -0
  49. package/src/components/CnStatsBlock/CnStatsBlock.vue +366 -0
  50. package/src/components/CnStatsBlock/index.js +1 -0
  51. package/src/components/CnStatusBadge/CnStatusBadge.vue +77 -0
  52. package/src/components/CnStatusBadge/index.js +1 -0
  53. package/src/components/CnVersionInfoCard/CnVersionInfoCard.vue +312 -0
  54. package/src/components/CnVersionInfoCard/index.js +1 -0
  55. package/src/components/CnViewModeToggle/CnViewModeToggle.vue +77 -0
  56. package/src/components/CnViewModeToggle/index.js +1 -0
  57. package/src/components/index.js +25 -0
  58. package/src/composables/index.js +3 -0
  59. package/src/composables/useDetailView.js +132 -0
  60. package/src/composables/useListView.js +153 -0
  61. package/src/composables/useSubResource.js +142 -0
  62. package/src/css/badge.css +51 -0
  63. package/src/css/card.css +128 -0
  64. package/src/css/detail.css +68 -0
  65. package/src/css/index.css +8 -0
  66. package/src/css/layout.css +90 -0
  67. package/src/css/pagination.css +72 -0
  68. package/src/css/table.css +143 -0
  69. package/src/css/utilities.css +46 -0
  70. package/src/index.js +50 -0
  71. package/src/store/createSubResourcePlugin.js +135 -0
  72. package/src/store/index.js +3 -0
  73. package/src/store/plugins/auditTrails.js +17 -0
  74. package/src/store/plugins/files.js +186 -0
  75. package/src/store/plugins/index.js +4 -0
  76. package/src/store/plugins/lifecycle.js +180 -0
  77. package/src/store/plugins/relations.js +68 -0
  78. package/src/store/useObjectStore.js +625 -0
  79. package/src/types/auditTrail.d.ts +32 -0
  80. package/src/types/file.d.ts +23 -0
  81. package/src/types/index.d.ts +35 -0
  82. package/src/types/notification.d.ts +36 -0
  83. package/src/types/object.d.ts +40 -0
  84. package/src/types/organisation.d.ts +41 -0
  85. package/src/types/register.d.ts +25 -0
  86. package/src/types/schema.d.ts +39 -0
  87. package/src/types/shared.d.ts +79 -0
  88. package/src/types/source.d.ts +14 -0
  89. package/src/types/task.d.ts +31 -0
  90. package/src/utils/errors.js +96 -0
  91. package/src/utils/headers.js +44 -0
  92. package/src/utils/index.js +3 -0
  93. package/src/utils/schema.js +287 -0
@@ -0,0 +1,803 @@
1
+
2
+ .cn-cell-renderer--uuid[data-v-186e38ee] {
3
+ font-family: monospace;
4
+ font-size: 13px;
5
+ color: var(--color-text-maxcontrast);
6
+ }
7
+ .cn-cell-renderer--number[data-v-186e38ee] {
8
+ font-variant-numeric: tabular-nums;
9
+ }
10
+ .cn-cell-renderer--date[data-v-186e38ee] {
11
+ white-space: nowrap;
12
+ }
13
+ .cn-cell-renderer__dash[data-v-186e38ee] {
14
+ color: var(--color-text-maxcontrast);
15
+ }
16
+ .cn-cell-renderer__icon--success[data-v-186e38ee] {
17
+ color: var(--color-success);
18
+ }
19
+
20
+
21
+ .cn-settings-section__actions[data-v-16a2820b] {
22
+ display: flex;
23
+ gap: 0.5rem;
24
+ align-items: center;
25
+ justify-content: flex-end;
26
+ float: right;
27
+ margin-top: -66px;
28
+ margin-bottom: 26px;
29
+ position: relative;
30
+ z-index: 10;
31
+ }
32
+ .cn-settings-section__content[data-v-16a2820b] {
33
+ clear: both;
34
+ }
35
+ .cn-settings-section__description-text[data-v-16a2820b] {
36
+ color: var(--color-text-maxcontrast);
37
+ margin-bottom: 16px;
38
+ }
39
+ .cn-settings-section__loading[data-v-16a2820b] {
40
+ display: flex;
41
+ flex-direction: column;
42
+ align-items: center;
43
+ justify-content: center;
44
+ padding: 40px 20px;
45
+ gap: 16px;
46
+ }
47
+ .cn-settings-section__loading p[data-v-16a2820b] {
48
+ color: var(--color-text-maxcontrast);
49
+ font-size: 14px;
50
+ }
51
+ .cn-settings-section__error[data-v-16a2820b] {
52
+ display: flex;
53
+ flex-direction: column;
54
+ align-items: center;
55
+ justify-content: center;
56
+ padding: 32px 20px;
57
+ gap: 16px;
58
+ background: var(--color-error-light);
59
+ border: 1px solid var(--color-error);
60
+ border-radius: var(--border-radius-large);
61
+ }
62
+ .cn-settings-section__error-message[data-v-16a2820b] {
63
+ color: var(--color-error);
64
+ font-weight: 500;
65
+ margin: 0;
66
+ }
67
+ .cn-settings-section__empty[data-v-16a2820b] {
68
+ padding: 40px 20px;
69
+ }
70
+ .cn-settings-section__empty-content[data-v-16a2820b] {
71
+ display: flex;
72
+ flex-direction: column;
73
+ align-items: center;
74
+ gap: 16px;
75
+ color: var(--color-text-maxcontrast);
76
+ }
77
+ .cn-settings-section__empty-content p[data-v-16a2820b] {
78
+ margin: 0;
79
+ font-size: 14px;
80
+ }
81
+ .cn-settings-section__footer[data-v-16a2820b] {
82
+ margin-top: 24px;
83
+ padding-top: 24px;
84
+ border-top: 1px solid var(--color-border);
85
+ }
86
+ @media (max-width: 768px) {
87
+ .cn-settings-section__actions[data-v-16a2820b] {
88
+ position: static;
89
+ margin-top: 0;
90
+ margin-bottom: 1rem;
91
+ float: none;
92
+ flex-direction: column;
93
+ align-items: stretch;
94
+ }
95
+ }
96
+
97
+
98
+ .cn-stats-block[data-v-1e8ce1fa] {
99
+ background: var(--color-background-hover);
100
+ border-radius: var(--border-radius-large, 10px);
101
+ padding: 1rem;
102
+ display: flex;
103
+ flex-direction: column;
104
+ align-items: center;
105
+ text-decoration: none;
106
+ color: inherit;
107
+ border: 2px solid transparent;
108
+ transition: border-color 0.15s ease, box-shadow 0.15s ease;
109
+ }
110
+ .cn-stats-block--horizontal[data-v-1e8ce1fa] {
111
+ flex-direction: row;
112
+ align-items: flex-start;
113
+ gap: 16px;
114
+ }
115
+ .cn-stats-block--horizontal .cn-stats-block__content[data-v-1e8ce1fa] {
116
+ text-align: left;
117
+ }
118
+ .cn-stats-block--horizontal .cn-stats-block__count[data-v-1e8ce1fa] {
119
+ justify-content: flex-start;
120
+ }
121
+ .cn-stats-block--clickable[data-v-1e8ce1fa] {
122
+ cursor: pointer;
123
+ }
124
+ .cn-stats-block--clickable[data-v-1e8ce1fa]:hover {
125
+ border-color: var(--color-primary-element);
126
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
127
+ }
128
+ .cn-stats-block--clickable[data-v-1e8ce1fa]:focus-visible {
129
+ outline: 2px solid var(--color-primary-element);
130
+ outline-offset: 2px;
131
+ }
132
+
133
+ /* Icon */
134
+ .cn-stats-block__icon[data-v-1e8ce1fa] {
135
+ display: flex;
136
+ align-items: center;
137
+ justify-content: center;
138
+ width: 44px;
139
+ height: 44px;
140
+ border-radius: 50%;
141
+ background: var(--color-primary-element-light, rgba(0, 130, 201, 0.1));
142
+ color: var(--color-primary-element);
143
+ flex-shrink: 0;
144
+ margin-bottom: 8px;
145
+ }
146
+ .cn-stats-block--horizontal .cn-stats-block__icon[data-v-1e8ce1fa] {
147
+ margin-bottom: 0;
148
+ }
149
+ .cn-stats-block__icon--primary[data-v-1e8ce1fa] {
150
+ background: var(--color-primary-element-light, rgba(0, 130, 201, 0.1));
151
+ color: var(--color-primary-element);
152
+ }
153
+ .cn-stats-block__icon--success[data-v-1e8ce1fa] {
154
+ background: rgba(70, 186, 97, 0.1);
155
+ color: var(--color-success);
156
+ }
157
+ .cn-stats-block__icon--warning[data-v-1e8ce1fa] {
158
+ background: rgba(232, 163, 24, 0.1);
159
+ color: var(--color-warning);
160
+ }
161
+ .cn-stats-block__icon--error[data-v-1e8ce1fa] {
162
+ background: rgba(224, 36, 36, 0.1);
163
+ color: var(--color-error);
164
+ }
165
+
166
+ /* Content */
167
+ .cn-stats-block__content[data-v-1e8ce1fa] {
168
+ flex: 1;
169
+ min-width: 0;
170
+ text-align: center;
171
+ }
172
+ .cn-stats-block__header h4[data-v-1e8ce1fa] {
173
+ margin-top: 0;
174
+ margin-bottom: 0.5rem;
175
+ color: var(--color-main-text);
176
+ font-size: 14px;
177
+ font-weight: 600;
178
+ }
179
+ .cn-stats-block__count[data-v-1e8ce1fa] {
180
+ display: flex;
181
+ align-items: baseline;
182
+ justify-content: center;
183
+ gap: 0.5rem;
184
+ font-size: 1.2rem;
185
+ margin-bottom: 0.5rem;
186
+ }
187
+ .cn-stats-block__count-value[data-v-1e8ce1fa] {
188
+ font-size: 2rem;
189
+ font-weight: bold;
190
+ color: var(--color-primary-element);
191
+ }
192
+ .cn-stats-block--primary .cn-stats-block__count-value[data-v-1e8ce1fa] { color: var(--color-primary-element);
193
+ }
194
+ .cn-stats-block--success .cn-stats-block__count-value[data-v-1e8ce1fa] { color: var(--color-success);
195
+ }
196
+ .cn-stats-block--warning .cn-stats-block__count-value[data-v-1e8ce1fa] { color: var(--color-warning);
197
+ }
198
+ .cn-stats-block--error .cn-stats-block__count-value[data-v-1e8ce1fa] { color: var(--color-error);
199
+ }
200
+ .cn-stats-block__count-label[data-v-1e8ce1fa] {
201
+ color: var(--color-text-maxcontrast);
202
+ }
203
+ .cn-stats-block__loading[data-v-1e8ce1fa] {
204
+ display: flex;
205
+ align-items: center;
206
+ justify-content: center;
207
+ gap: 0.5rem;
208
+ color: var(--color-text-maxcontrast);
209
+ margin-bottom: 0.5rem;
210
+ }
211
+ .cn-stats-block__empty[data-v-1e8ce1fa] {
212
+ text-align: center;
213
+ color: var(--color-text-maxcontrast);
214
+ font-style: italic;
215
+ margin-bottom: 0.5rem;
216
+ }
217
+ .cn-stats-block__breakdown[data-v-1e8ce1fa] {
218
+ margin-top: 0.5rem;
219
+ padding: 0.75rem;
220
+ background: var(--color-background-hover);
221
+ border-radius: var(--border-radius);
222
+ border: 1px solid var(--color-border);
223
+ width: 100%;
224
+ }
225
+ .cn-stats-block__breakdown-item[data-v-1e8ce1fa] {
226
+ display: flex;
227
+ justify-content: space-between;
228
+ align-items: center;
229
+ margin-bottom: 0.5rem;
230
+ }
231
+ .cn-stats-block__breakdown-item[data-v-1e8ce1fa]:last-child {
232
+ margin-bottom: 0;
233
+ }
234
+ .cn-stats-block__breakdown-label[data-v-1e8ce1fa] {
235
+ font-weight: 500;
236
+ color: var(--color-main-text);
237
+ }
238
+ .cn-stats-block__breakdown-value[data-v-1e8ce1fa] {
239
+ font-weight: 600;
240
+ padding: 0.25rem 0.5rem;
241
+ border-radius: var(--border-radius);
242
+ background: var(--color-background-hover);
243
+ }
244
+ .cn-stats-block__breakdown-value--invalid[data-v-1e8ce1fa] { color: var(--color-warning);
245
+ }
246
+ .cn-stats-block__breakdown-value--deleted[data-v-1e8ce1fa] { color: var(--color-error);
247
+ }
248
+ .cn-stats-block__breakdown-value--published[data-v-1e8ce1fa] { color: var(--color-success);
249
+ }
250
+
251
+
252
+ .cn-config-card__status[data-v-7f20d485] {
253
+ display: flex;
254
+ gap: 8px;
255
+ margin-bottom: 12px;
256
+ }
257
+ .cn-config-card__content[data-v-7f20d485] {
258
+ margin-bottom: 8px;
259
+ }
260
+ .cn-config-card__footer[data-v-7f20d485] {
261
+ padding-top: 12px;
262
+ border-top: 1px solid var(--color-border);
263
+ }
264
+
265
+
266
+ .cn-version-info__card[data-v-29cf5e06] {
267
+ background: var(--color-background-hover);
268
+ border: 1px solid var(--color-border);
269
+ border-radius: var(--border-radius-large);
270
+ padding: 20px;
271
+ margin-bottom: 20px;
272
+ }
273
+ .cn-version-info__card h4[data-v-29cf5e06] {
274
+ margin: 0 0 16px 0;
275
+ font-size: 16px;
276
+ font-weight: 600;
277
+ color: var(--color-main-text);
278
+ }
279
+ .cn-version-info__details[data-v-29cf5e06] {
280
+ display: flex;
281
+ flex-direction: column;
282
+ gap: 12px;
283
+ }
284
+ .cn-version-info__item[data-v-29cf5e06] {
285
+ display: flex;
286
+ justify-content: space-between;
287
+ align-items: center;
288
+ padding: 8px 0;
289
+ border-bottom: 1px solid var(--color-border);
290
+ }
291
+ .cn-version-info__item[data-v-29cf5e06]:last-child {
292
+ border-bottom: none;
293
+ }
294
+ .cn-version-info__label[data-v-29cf5e06] {
295
+ font-weight: 500;
296
+ color: var(--color-text-maxcontrast);
297
+ font-size: 14px;
298
+ }
299
+ .cn-version-info__value[data-v-29cf5e06] {
300
+ font-family: 'Courier New', Courier, monospace;
301
+ font-weight: 600;
302
+ color: var(--color-main-text);
303
+ font-size: 14px;
304
+ }
305
+
306
+ /* Status classes for values */
307
+ .cn-version-info__status--ok[data-v-29cf5e06] {
308
+ color: var(--color-success);
309
+ font-weight: 600;
310
+ }
311
+ .cn-version-info__status--warning[data-v-29cf5e06] {
312
+ color: var(--color-warning);
313
+ font-weight: 600;
314
+ }
315
+ .cn-version-info__status--error[data-v-29cf5e06] {
316
+ color: var(--color-error);
317
+ font-weight: 600;
318
+ }
319
+ @media (max-width: 768px) {
320
+ .cn-version-info__item[data-v-29cf5e06] {
321
+ flex-direction: column;
322
+ align-items: flex-start;
323
+ gap: 4px;
324
+ }
325
+ .cn-version-info__label[data-v-29cf5e06] {
326
+ font-weight: 600;
327
+ }
328
+ .cn-version-info__value[data-v-29cf5e06] {
329
+ word-break: break-all;
330
+ }
331
+ }
332
+
333
+
334
+ .cn-object-card[data-v-dd5d0a22] {
335
+ display: flex;
336
+ gap: 12px;
337
+ padding: 16px;
338
+ background: var(--color-main-background);
339
+ border: 1px solid var(--color-border);
340
+ border-radius: var(--border-radius-large, 10px);
341
+ cursor: pointer;
342
+ transition: box-shadow 0.2s ease, border-color 0.2s ease;
343
+ }
344
+ .cn-object-card[data-v-dd5d0a22]:hover {
345
+ border-color: var(--color-primary-element);
346
+ box-shadow: 0 2px 8px var(--color-box-shadow);
347
+ }
348
+ .cn-object-card--selected[data-v-dd5d0a22] {
349
+ border-color: var(--color-primary-element);
350
+ background: var(--color-primary-element-light);
351
+ }
352
+ .cn-object-card__checkbox[data-v-dd5d0a22] {
353
+ flex-shrink: 0;
354
+ padding-top: 2px;
355
+ }
356
+ .cn-object-card__content[data-v-dd5d0a22] {
357
+ flex: 1;
358
+ min-width: 0;
359
+ }
360
+ .cn-object-card__header[data-v-dd5d0a22] {
361
+ display: flex;
362
+ gap: 12px;
363
+ align-items: flex-start;
364
+ }
365
+ .cn-object-card__image[data-v-dd5d0a22] {
366
+ width: 48px;
367
+ height: 48px;
368
+ border-radius: var(--border-radius);
369
+ object-fit: cover;
370
+ flex-shrink: 0;
371
+ }
372
+ .cn-object-card__title-area[data-v-dd5d0a22] {
373
+ flex: 1;
374
+ min-width: 0;
375
+ }
376
+ .cn-object-card__title[data-v-dd5d0a22] {
377
+ margin: 0;
378
+ font-size: 16px;
379
+ font-weight: 600;
380
+ line-height: 1.3;
381
+ overflow: hidden;
382
+ text-overflow: ellipsis;
383
+ white-space: nowrap;
384
+ }
385
+ .cn-object-card__description[data-v-dd5d0a22] {
386
+ margin: 4px 0 0;
387
+ font-size: 13px;
388
+ color: var(--color-text-maxcontrast);
389
+ line-height: 1.4;
390
+ }
391
+ .cn-object-card__badges[data-v-dd5d0a22] {
392
+ margin-top: 8px;
393
+ }
394
+ .cn-object-card__metadata[data-v-dd5d0a22] {
395
+ display: grid;
396
+ grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
397
+ gap: 8px;
398
+ margin-top: 12px;
399
+ padding-top: 12px;
400
+ border-top: 1px solid var(--color-border);
401
+ }
402
+ .cn-object-card__meta-item[data-v-dd5d0a22] {
403
+ display: flex;
404
+ flex-direction: column;
405
+ gap: 2px;
406
+ }
407
+ .cn-object-card__meta-label[data-v-dd5d0a22] {
408
+ font-size: 11px;
409
+ font-weight: 500;
410
+ color: var(--color-text-maxcontrast);
411
+ text-transform: uppercase;
412
+ letter-spacing: 0.3px;
413
+ }
414
+ .cn-object-card__actions[data-v-dd5d0a22] {
415
+ flex-shrink: 0;
416
+ }
417
+
418
+
419
+ .cn-card-grid__grid[data-v-71163d45] {
420
+ display: grid;
421
+ grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
422
+ gap: 16px;
423
+ }
424
+ .cn-card-grid__loading[data-v-71163d45] {
425
+ display: flex;
426
+ justify-content: center;
427
+ padding: 40px;
428
+ }
429
+ .cn-card-grid__empty[data-v-71163d45] {
430
+ padding: 40px 20px;
431
+ text-align: center;
432
+ }
433
+
434
+
435
+ .cn-facet-sidebar[data-v-f5e6b572] {
436
+ padding: 16px;
437
+ border-right: 1px solid var(--color-border);
438
+ min-width: 240px;
439
+ max-width: 300px;
440
+ }
441
+ .cn-facet-sidebar__header[data-v-f5e6b572] {
442
+ display: flex;
443
+ justify-content: space-between;
444
+ align-items: center;
445
+ margin-bottom: 16px;
446
+ }
447
+ .cn-facet-sidebar__title[data-v-f5e6b572] {
448
+ margin: 0;
449
+ font-size: 15px;
450
+ font-weight: 600;
451
+ }
452
+ .cn-facet-sidebar__loading[data-v-f5e6b572] {
453
+ display: flex;
454
+ justify-content: center;
455
+ padding: 20px;
456
+ }
457
+ .cn-facet-sidebar__filters[data-v-f5e6b572] {
458
+ display: flex;
459
+ flex-direction: column;
460
+ gap: 16px;
461
+ }
462
+ .cn-facet-sidebar__group[data-v-f5e6b572] {
463
+ display: flex;
464
+ flex-direction: column;
465
+ gap: 4px;
466
+ }
467
+ .cn-facet-sidebar__label[data-v-f5e6b572] {
468
+ font-size: 12px;
469
+ font-weight: 500;
470
+ color: var(--color-text-maxcontrast);
471
+ text-transform: uppercase;
472
+ letter-spacing: 0.3px;
473
+ }
474
+ .cn-facet-sidebar__select[data-v-f5e6b572] {
475
+ width: 100%;
476
+ }
477
+
478
+
479
+ .cn-view-mode-toggle[data-v-a3d14b7c] {
480
+ display: inline-flex;
481
+ gap: 0;
482
+ border-radius: var(--border-radius-pill, 20px);
483
+ overflow: hidden;
484
+ }
485
+
486
+
487
+ .cn-row-action--destructive[data-v-02a7d254] {
488
+ color: var(--color-error) !important;
489
+ }
490
+
491
+
492
+ .cn-mass-delete__list[data-v-1fcfdf95] {
493
+ max-height: 300px;
494
+ overflow-y: auto;
495
+ margin-top: 12px;
496
+ }
497
+ .cn-mass-delete__item[data-v-1fcfdf95] {
498
+ display: flex;
499
+ align-items: center;
500
+ justify-content: space-between;
501
+ padding: 8px 12px;
502
+ border-bottom: 1px solid var(--color-border);
503
+ }
504
+ .cn-mass-delete__item[data-v-1fcfdf95]:last-child {
505
+ border-bottom: none;
506
+ }
507
+ .cn-mass-delete__item-name[data-v-1fcfdf95] {
508
+ font-weight: 500;
509
+ overflow: hidden;
510
+ text-overflow: ellipsis;
511
+ white-space: nowrap;
512
+ }
513
+ .cn-mass-delete__empty[data-v-1fcfdf95] {
514
+ text-align: center;
515
+ color: var(--color-text-maxcontrast);
516
+ font-style: italic;
517
+ padding: 20px;
518
+ }
519
+
520
+
521
+ .cn-mass-copy__pattern[data-v-56d132fe] {
522
+ margin-bottom: 16px;
523
+ }
524
+ .cn-mass-copy__pattern label[data-v-56d132fe] {
525
+ display: block;
526
+ font-weight: 600;
527
+ margin-bottom: 4px;
528
+ }
529
+ .cn-mass-copy__list[data-v-56d132fe] {
530
+ max-height: 300px;
531
+ overflow-y: auto;
532
+ }
533
+ .cn-mass-copy__item[data-v-56d132fe] {
534
+ display: flex;
535
+ align-items: center;
536
+ justify-content: space-between;
537
+ padding: 8px 12px;
538
+ border-bottom: 1px solid var(--color-border);
539
+ }
540
+ .cn-mass-copy__item[data-v-56d132fe]:last-child {
541
+ border-bottom: none;
542
+ }
543
+ .cn-mass-copy__item-names[data-v-56d132fe] {
544
+ display: flex;
545
+ align-items: center;
546
+ gap: 8px;
547
+ overflow: hidden;
548
+ flex: 1;
549
+ }
550
+ .cn-mass-copy__item-original[data-v-56d132fe] {
551
+ color: var(--color-text-maxcontrast);
552
+ overflow: hidden;
553
+ text-overflow: ellipsis;
554
+ white-space: nowrap;
555
+ }
556
+ .cn-mass-copy__item-arrow[data-v-56d132fe] {
557
+ flex-shrink: 0;
558
+ color: var(--color-text-maxcontrast);
559
+ }
560
+ .cn-mass-copy__item-new[data-v-56d132fe] {
561
+ font-weight: 500;
562
+ overflow: hidden;
563
+ text-overflow: ellipsis;
564
+ white-space: nowrap;
565
+ }
566
+ .cn-mass-copy__empty[data-v-56d132fe] {
567
+ text-align: center;
568
+ color: var(--color-text-maxcontrast);
569
+ font-style: italic;
570
+ padding: 20px;
571
+ }
572
+
573
+
574
+ .cn-mass-export__description[data-v-4d59fe8f] {
575
+ margin-bottom: 16px;
576
+ color: var(--color-text-maxcontrast);
577
+ }
578
+ .cn-mass-export__field[data-v-4d59fe8f] {
579
+ display: flex;
580
+ flex-direction: column;
581
+ gap: 4px;
582
+ }
583
+ .cn-mass-export__field label[data-v-4d59fe8f] {
584
+ font-weight: 600;
585
+ }
586
+
587
+
588
+ .cn-mass-import__form[data-v-d5f77ada] {
589
+ display: flex;
590
+ flex-direction: column;
591
+ gap: 16px;
592
+ }
593
+ .cn-mass-import__file-row[data-v-d5f77ada] {
594
+ display: flex;
595
+ align-items: center;
596
+ gap: 12px;
597
+ }
598
+ .cn-mass-import__file-info[data-v-d5f77ada] {
599
+ display: flex;
600
+ align-items: center;
601
+ gap: 6px;
602
+ }
603
+ .cn-mass-import__file-name[data-v-d5f77ada] {
604
+ font-weight: 500;
605
+ }
606
+ .cn-mass-import__file-size[data-v-d5f77ada] {
607
+ color: var(--color-text-maxcontrast);
608
+ font-size: 0.9em;
609
+ }
610
+ .cn-mass-import__help[data-v-d5f77ada] {
611
+ padding: 12px;
612
+ background: var(--color-background-hover);
613
+ border-radius: var(--border-radius);
614
+ }
615
+ .cn-mass-import__help p[data-v-d5f77ada] {
616
+ margin: 0 0 8px;
617
+ }
618
+ .cn-mass-import__help ul[data-v-d5f77ada] {
619
+ margin: 0;
620
+ padding-left: 20px;
621
+ }
622
+ .cn-mass-import__options[data-v-d5f77ada] {
623
+ display: flex;
624
+ flex-direction: column;
625
+ gap: 12px;
626
+ }
627
+
628
+ /* Summary table */
629
+ .cn-mass-import__results h3[data-v-d5f77ada] {
630
+ margin: 0 0 12px;
631
+ font-size: 1.1rem;
632
+ }
633
+ .cn-mass-import__summary-table[data-v-d5f77ada] {
634
+ width: 100%;
635
+ border-collapse: collapse;
636
+ border-radius: var(--border-radius);
637
+ overflow: hidden;
638
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
639
+ }
640
+ .cn-mass-import__summary-table th[data-v-d5f77ada],
641
+ .cn-mass-import__summary-table td[data-v-d5f77ada] {
642
+ padding: 8px 12px;
643
+ text-align: left;
644
+ border-bottom: 1px solid var(--color-border);
645
+ }
646
+ .cn-mass-import__summary-table th[data-v-d5f77ada] {
647
+ background: var(--color-background-dark);
648
+ font-weight: 600;
649
+ font-size: 0.85rem;
650
+ text-transform: uppercase;
651
+ }
652
+ .cn-mass-import__sheet-name[data-v-d5f77ada] {
653
+ font-weight: 600;
654
+ }
655
+ .cn-mass-import__stat[data-v-d5f77ada] {
656
+ text-align: center;
657
+ font-weight: 600;
658
+ }
659
+ .cn-mass-import__stat--found[data-v-d5f77ada] { color: var(--color-primary-element);
660
+ }
661
+ .cn-mass-import__stat--created[data-v-d5f77ada] { color: var(--color-success);
662
+ }
663
+ .cn-mass-import__stat--updated[data-v-d5f77ada] { color: var(--color-warning);
664
+ }
665
+ .cn-mass-import__stat--unchanged[data-v-d5f77ada] { color: var(--color-text-maxcontrast);
666
+ }
667
+ .cn-mass-import__stat--errors[data-v-d5f77ada] { color: var(--color-error);
668
+ }
669
+ .cn-mass-import__expand[data-v-d5f77ada] {
670
+ background: none;
671
+ border: none;
672
+ cursor: pointer;
673
+ padding: 2px;
674
+ border-radius: var(--border-radius-small, 4px);
675
+ color: var(--color-error);
676
+ transition: transform 0.2s ease;
677
+ vertical-align: middle;
678
+ margin-left: 4px;
679
+ }
680
+ .cn-mass-import__expand[data-v-d5f77ada]:hover {
681
+ background: var(--color-background-hover);
682
+ }
683
+ .cn-mass-import__expand--open[data-v-d5f77ada] {
684
+ transform: rotate(180deg);
685
+ }
686
+
687
+ /* Error details */
688
+ .cn-mass-import__error-row td[data-v-d5f77ada] {
689
+ padding: 8px 12px;
690
+ background: var(--color-background-hover);
691
+ }
692
+ .cn-mass-import__error-table[data-v-d5f77ada] {
693
+ width: 100%;
694
+ border-collapse: collapse;
695
+ font-size: 0.9em;
696
+ }
697
+ .cn-mass-import__error-table th[data-v-d5f77ada],
698
+ .cn-mass-import__error-table td[data-v-d5f77ada] {
699
+ padding: 6px 10px;
700
+ text-align: left;
701
+ border-bottom: 1px solid var(--color-border);
702
+ }
703
+ .cn-mass-import__error-table th[data-v-d5f77ada] {
704
+ background: var(--color-background-dark);
705
+ font-weight: 600;
706
+ font-size: 0.85rem;
707
+ }
708
+
709
+
710
+ .cn-index-page[data-v-a107d580] {
711
+ padding: 20px;
712
+ }
713
+ .cn-index-page__header[data-v-a107d580] {
714
+ display: flex;
715
+ justify-content: space-between;
716
+ align-items: center;
717
+ margin-bottom: 16px;
718
+ flex-wrap: wrap;
719
+ gap: 12px;
720
+ }
721
+ .cn-index-page__title-area[data-v-a107d580] {
722
+ display: flex;
723
+ align-items: baseline;
724
+ gap: 8px;
725
+ }
726
+ .cn-index-page__title[data-v-a107d580] {
727
+ margin: 0;
728
+ font-size: 22px;
729
+ font-weight: 700;
730
+ }
731
+ .cn-index-page__count[data-v-a107d580] {
732
+ font-size: 14px;
733
+ color: var(--color-text-maxcontrast);
734
+ }
735
+ .cn-index-page__header-actions[data-v-a107d580] {
736
+ display: flex;
737
+ align-items: center;
738
+ gap: 8px;
739
+ }
740
+ .cn-index-page__body[data-v-a107d580] {
741
+ display: flex;
742
+ gap: 0;
743
+ }
744
+ .cn-index-page__body--with-sidebar[data-v-a107d580] {
745
+ gap: 0;
746
+ }
747
+ .cn-index-page__sidebar[data-v-a107d580] {
748
+ flex-shrink: 0;
749
+ }
750
+ .cn-index-page__main[data-v-a107d580] {
751
+ flex: 1;
752
+ min-width: 0;
753
+ }
754
+ .cn-index-page__search[data-v-a107d580] {
755
+ margin-bottom: 16px;
756
+ }
757
+ .cn-index-page__loading[data-v-a107d580] {
758
+ display: flex;
759
+ justify-content: center;
760
+ padding: 60px;
761
+ }
762
+ .cn-index-page__empty[data-v-a107d580] {
763
+ padding: 40px 20px;
764
+ text-align: center;
765
+ }
766
+ .cn-index-page__pagination[data-v-a107d580] {
767
+ margin-top: 16px;
768
+ }
769
+
770
+
771
+ .cn-kpi-grid[data-v-74e15c14] {
772
+ display: grid;
773
+ gap: 16px;
774
+ margin-bottom: 24px;
775
+ }
776
+ .cn-kpi-grid--cols-2[data-v-74e15c14] {
777
+ grid-template-columns: repeat(2, 1fr);
778
+ }
779
+ .cn-kpi-grid--cols-3[data-v-74e15c14] {
780
+ grid-template-columns: repeat(3, 1fr);
781
+ }
782
+ .cn-kpi-grid--cols-4[data-v-74e15c14] {
783
+ grid-template-columns: repeat(4, 1fr);
784
+ }
785
+
786
+ /* Responsive breakpoints */
787
+ @media (max-width: 1200px) {
788
+ .cn-kpi-grid--cols-4[data-v-74e15c14] {
789
+ grid-template-columns: repeat(2, 1fr);
790
+ }
791
+ }
792
+ @media (max-width: 900px) {
793
+ .cn-kpi-grid--cols-3[data-v-74e15c14] {
794
+ grid-template-columns: repeat(2, 1fr);
795
+ }
796
+ }
797
+ @media (max-width: 600px) {
798
+ .cn-kpi-grid--cols-2[data-v-74e15c14],
799
+ .cn-kpi-grid--cols-3[data-v-74e15c14],
800
+ .cn-kpi-grid--cols-4[data-v-74e15c14] {
801
+ grid-template-columns: 1fr;
802
+ }
803
+ }