@conduction/nextcloud-vue 0.1.0-beta.3 → 0.1.0-beta.4

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 (152) hide show
  1. package/README.md +226 -226
  2. package/dist/nextcloud-vue.cjs.js +60455 -8755
  3. package/dist/nextcloud-vue.cjs.js.map +1 -1
  4. package/dist/nextcloud-vue.css +2062 -528
  5. package/dist/nextcloud-vue.esm.js +60411 -8731
  6. package/dist/nextcloud-vue.esm.js.map +1 -1
  7. package/package.json +75 -62
  8. package/src/components/CnActionsBar/CnActionsBar.vue +235 -225
  9. package/src/components/CnActionsBar/index.js +1 -1
  10. package/src/components/CnAdvancedFormDialog/CnAdvancedFormDialog.vue +579 -0
  11. package/src/components/CnAdvancedFormDialog/CnDataTab.vue +217 -0
  12. package/src/components/CnAdvancedFormDialog/CnMetadataTab.vue +121 -0
  13. package/src/components/CnAdvancedFormDialog/CnPropertiesTab.vue +418 -0
  14. package/src/components/CnAdvancedFormDialog/CnPropertyValueCell.vue +247 -0
  15. package/src/components/CnAdvancedFormDialog/index.js +1 -0
  16. package/src/components/CnCardGrid/CnCardGrid.vue +152 -152
  17. package/src/components/CnCardGrid/index.js +1 -1
  18. package/src/components/CnCellRenderer/CnCellRenderer.vue +132 -132
  19. package/src/components/CnCellRenderer/index.js +1 -1
  20. package/src/components/CnChartWidget/CnChartWidget.vue +320 -0
  21. package/src/components/CnChartWidget/index.js +1 -0
  22. package/src/components/CnConfigurationCard/CnConfigurationCard.vue +77 -77
  23. package/src/components/CnConfigurationCard/index.js +1 -1
  24. package/src/components/CnDashboardGrid/CnDashboardGrid.vue +225 -0
  25. package/src/components/CnDashboardGrid/index.js +1 -0
  26. package/src/components/CnDashboardPage/CnDashboardPage.vue +390 -0
  27. package/src/components/CnDashboardPage/index.js +1 -0
  28. package/src/components/CnDataTable/CnDataTable.vue +349 -349
  29. package/src/components/CnDataTable/index.js +1 -1
  30. package/src/components/CnDetailCard/CnDetailCard.vue +214 -0
  31. package/src/components/CnDetailCard/index.js +1 -0
  32. package/src/components/CnDetailPage/CnDetailPage.vue +281 -0
  33. package/src/components/CnDetailPage/index.js +1 -0
  34. package/src/components/CnFacetSidebar/CnFacetSidebar.vue +231 -223
  35. package/src/components/CnFacetSidebar/index.js +1 -1
  36. package/src/components/CnFilterBar/CnFilterBar.vue +152 -152
  37. package/src/components/CnFilterBar/index.js +1 -1
  38. package/src/components/CnIcon/CnIcon.vue +89 -89
  39. package/src/components/CnIcon/index.js +1 -1
  40. package/src/components/CnIndexPage/CnIndexPage.vue +874 -816
  41. package/src/components/CnIndexPage/index.js +1 -1
  42. package/src/components/CnIndexSidebar/CnIndexSidebar.vue +503 -484
  43. package/src/components/CnIndexSidebar/index.js +1 -1
  44. package/src/components/CnItemCard/CnItemCard.vue +132 -0
  45. package/src/components/CnItemCard/index.js +1 -0
  46. package/src/components/CnKpiGrid/CnKpiGrid.vue +89 -89
  47. package/src/components/CnKpiGrid/index.js +1 -1
  48. package/src/components/CnMassActionBar/CnMassActionBar.vue +160 -160
  49. package/src/components/CnMassActionBar/index.js +1 -1
  50. package/src/components/CnMassCopyDialog/CnMassCopyDialog.vue +320 -320
  51. package/src/components/CnMassCopyDialog/index.js +1 -1
  52. package/src/components/CnMassDeleteDialog/CnMassDeleteDialog.vue +238 -238
  53. package/src/components/CnMassDeleteDialog/index.js +1 -1
  54. package/src/components/CnMassExportDialog/CnMassExportDialog.vue +190 -190
  55. package/src/components/CnMassExportDialog/index.js +1 -1
  56. package/src/components/CnMassImportDialog/CnMassImportDialog.vue +491 -491
  57. package/src/components/CnMassImportDialog/index.js +1 -1
  58. package/src/components/CnNoteCard/CnNoteCard.vue +149 -0
  59. package/src/components/CnNoteCard/index.js +1 -0
  60. package/src/components/CnNotesCard/CnNotesCard.vue +413 -0
  61. package/src/components/CnNotesCard/index.js +1 -0
  62. package/src/components/CnObjectCard/CnObjectCard.vue +292 -292
  63. package/src/components/CnObjectCard/index.js +1 -1
  64. package/src/components/CnObjectSidebar/CnObjectSidebar.vue +876 -0
  65. package/src/components/CnObjectSidebar/index.js +1 -0
  66. package/src/components/CnPageHeader/CnPageHeader.vue +57 -57
  67. package/src/components/CnPageHeader/index.js +1 -1
  68. package/src/components/CnPagination/CnPagination.vue +252 -252
  69. package/src/components/CnPagination/index.js +1 -1
  70. package/src/components/CnRowActions/CnRowActions.vue +73 -73
  71. package/src/components/CnRowActions/index.js +1 -1
  72. package/src/components/CnSchemaFormDialog/CnSchemaConfigurationTab.vue +226 -0
  73. package/src/components/CnSchemaFormDialog/CnSchemaFormDialog.vue +787 -0
  74. package/src/components/CnSchemaFormDialog/CnSchemaPropertiesTab.vue +305 -0
  75. package/src/components/CnSchemaFormDialog/CnSchemaPropertyActions.vue +1398 -0
  76. package/src/components/CnSchemaFormDialog/CnSchemaSecurityTab.vue +236 -0
  77. package/src/components/CnSchemaFormDialog/index.js +1 -0
  78. package/src/components/CnSettingsCard/CnSettingsCard.vue +92 -92
  79. package/src/components/CnSettingsCard/index.js +1 -1
  80. package/src/components/CnSettingsSection/CnSettingsSection.vue +266 -266
  81. package/src/components/CnSettingsSection/index.js +1 -1
  82. package/src/components/CnStatsBlock/CnStatsBlock.vue +420 -366
  83. package/src/components/CnStatsBlock/index.js +1 -1
  84. package/src/components/CnStatusBadge/CnStatusBadge.vue +77 -77
  85. package/src/components/CnStatusBadge/index.js +1 -1
  86. package/src/components/CnTabbedFormDialog/CnTabbedFormDialog.vue +540 -0
  87. package/src/components/CnTabbedFormDialog/index.js +1 -0
  88. package/src/components/CnTasksCard/CnTasksCard.vue +373 -0
  89. package/src/components/CnTasksCard/index.js +1 -0
  90. package/src/components/CnTileWidget/CnTileWidget.vue +159 -0
  91. package/src/components/CnTileWidget/index.js +1 -0
  92. package/src/components/CnTimelineStages/CnTimelineStages.vue +292 -0
  93. package/src/components/CnTimelineStages/index.js +1 -0
  94. package/src/components/CnUserActionMenu/CnUserActionMenu.vue +435 -0
  95. package/src/components/CnUserActionMenu/index.js +1 -0
  96. package/src/components/CnVersionInfoCard/CnVersionInfoCard.vue +312 -312
  97. package/src/components/CnVersionInfoCard/index.js +1 -1
  98. package/src/components/CnWidgetRenderer/CnWidgetRenderer.vue +180 -0
  99. package/src/components/CnWidgetRenderer/index.js +1 -0
  100. package/src/components/CnWidgetWrapper/CnWidgetWrapper.vue +211 -0
  101. package/src/components/CnWidgetWrapper/index.js +1 -0
  102. package/src/components/index.js +43 -29
  103. package/src/composables/index.js +4 -3
  104. package/src/composables/useDashboardView.js +240 -0
  105. package/src/composables/useDetailView.js +289 -132
  106. package/src/composables/useListView.js +363 -362
  107. package/src/composables/useSubResource.js +142 -142
  108. package/src/constants/metadata.js +30 -30
  109. package/src/css/CnSchemaFormDialog.css +546 -0
  110. package/src/css/__sample_nextcloud_tokens.css +110 -0
  111. package/src/css/actions-bar.css +48 -48
  112. package/src/css/badge.css +51 -51
  113. package/src/css/card.css +128 -128
  114. package/src/css/dashboard.css +70 -0
  115. package/src/css/detail-page.css +168 -0
  116. package/src/css/detail.css +68 -68
  117. package/src/css/index-page.css +44 -32
  118. package/src/css/index-sidebar.css +193 -187
  119. package/src/css/index.css +16 -12
  120. package/src/css/layout.css +90 -90
  121. package/src/css/page-header.css +33 -33
  122. package/src/css/pagination.css +72 -72
  123. package/src/css/table.css +142 -142
  124. package/src/css/timeline-stages.css +218 -0
  125. package/src/css/utilities.css +46 -46
  126. package/src/index.js +72 -53
  127. package/src/store/createSubResourcePlugin.js +135 -135
  128. package/src/store/index.js +3 -3
  129. package/src/store/plugins/auditTrails.js +17 -17
  130. package/src/store/plugins/files.js +250 -186
  131. package/src/store/plugins/index.js +7 -5
  132. package/src/store/plugins/lifecycle.js +180 -180
  133. package/src/store/plugins/relations.js +68 -68
  134. package/src/store/plugins/search.js +372 -0
  135. package/src/store/plugins/selection.js +104 -0
  136. package/src/store/useObjectStore.js +829 -686
  137. package/src/types/auditTrail.d.ts +32 -32
  138. package/src/types/file.d.ts +23 -23
  139. package/src/types/index.d.ts +35 -35
  140. package/src/types/notification.d.ts +36 -36
  141. package/src/types/object.d.ts +40 -40
  142. package/src/types/organisation.d.ts +41 -41
  143. package/src/types/register.d.ts +25 -25
  144. package/src/types/schema.d.ts +39 -39
  145. package/src/types/shared.d.ts +79 -79
  146. package/src/types/source.d.ts +14 -14
  147. package/src/types/task.d.ts +31 -31
  148. package/src/utils/errors.js +96 -96
  149. package/src/utils/headers.js +68 -50
  150. package/src/utils/id.js +13 -0
  151. package/src/utils/index.js +3 -3
  152. package/src/utils/schema.js +422 -419
@@ -1,68 +1,68 @@
1
- /* ========================================
2
- @conduction/nextcloud-vue — Detail Grid & Layout Utility Styles
3
- ======================================== */
4
-
5
- /* Detail Grid (metadata display) */
6
- .cn-detail-grid {
7
- display: grid;
8
- grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
9
- gap: calc(4 * var(--default-grid-baseline));
10
- margin-bottom: calc(5 * var(--default-grid-baseline));
11
- }
12
-
13
- .cn-detail-item {
14
- display: flex;
15
- flex-direction: column;
16
- gap: var(--default-grid-baseline);
17
- padding: calc(2 * var(--default-grid-baseline)) calc(3 * var(--default-grid-baseline));
18
- border-left: 3px solid var(--color-primary-element);
19
- background: var(--color-background-hover);
20
- border-radius: 0 var(--border-radius) var(--border-radius) 0;
21
- }
22
-
23
- .cn-detail-item__label {
24
- font-size: 0.85em;
25
- color: var(--color-text-maxcontrast);
26
- font-weight: 500;
27
- }
28
-
29
- .cn-detail-item__value {
30
- font-size: 1em;
31
- color: var(--color-main-text);
32
- word-break: break-word;
33
- }
34
-
35
- /* Detail Layout */
36
- .cn-detail-layout {
37
- max-width: 1000px;
38
- padding: calc(5 * var(--default-grid-baseline));
39
- }
40
-
41
- .cn-detail-layout__header {
42
- display: flex;
43
- align-items: center;
44
- gap: calc(3 * var(--default-grid-baseline));
45
- margin-bottom: calc(6 * var(--default-grid-baseline));
46
- }
47
-
48
- .cn-detail-layout__title {
49
- flex: 1;
50
- margin: 0;
51
- font-size: 1.5em;
52
- color: var(--color-main-text);
53
- }
54
-
55
- .cn-detail-layout__actions {
56
- display: flex;
57
- gap: calc(2 * var(--default-grid-baseline));
58
- flex-shrink: 0;
59
- }
60
-
61
- .cn-detail-layout__content {
62
- margin-top: calc(4 * var(--default-grid-baseline));
63
- }
64
-
65
- /* Backwards compatibility aliases */
66
- .detail-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: calc(4 * var(--default-grid-baseline)); margin-bottom: calc(5 * var(--default-grid-baseline)); }
67
- .detail-item { display: flex; flex-direction: column; gap: var(--default-grid-baseline); padding: calc(2 * var(--default-grid-baseline)) calc(3 * var(--default-grid-baseline)); border-left: 3px solid var(--color-primary-element); background: var(--color-background-hover); border-radius: 0 var(--border-radius) var(--border-radius) 0; }
68
- .detailContainer { margin-block-start: calc(5 * var(--default-grid-baseline)); margin-inline-start: calc(5 * var(--default-grid-baseline)); margin-inline-end: calc(5 * var(--default-grid-baseline)); }
1
+ /* ========================================
2
+ @conduction/nextcloud-vue — Detail Grid & Layout Utility Styles
3
+ ======================================== */
4
+
5
+ /* Detail Grid (metadata display) */
6
+ .cn-detail-grid {
7
+ display: grid;
8
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
9
+ gap: calc(4 * var(--default-grid-baseline));
10
+ margin-bottom: calc(5 * var(--default-grid-baseline));
11
+ }
12
+
13
+ .cn-detail-item {
14
+ display: flex;
15
+ flex-direction: column;
16
+ gap: var(--default-grid-baseline);
17
+ padding: calc(2 * var(--default-grid-baseline)) calc(3 * var(--default-grid-baseline));
18
+ border-left: 3px solid var(--color-primary-element);
19
+ background: var(--color-background-hover);
20
+ border-radius: 0 var(--border-radius) var(--border-radius) 0;
21
+ }
22
+
23
+ .cn-detail-item__label {
24
+ font-size: 0.85em;
25
+ color: var(--color-text-maxcontrast);
26
+ font-weight: 500;
27
+ }
28
+
29
+ .cn-detail-item__value {
30
+ font-size: 1em;
31
+ color: var(--color-main-text);
32
+ word-break: break-word;
33
+ }
34
+
35
+ /* Detail Layout */
36
+ .cn-detail-layout {
37
+ max-width: 1000px;
38
+ padding: calc(5 * var(--default-grid-baseline));
39
+ }
40
+
41
+ .cn-detail-layout__header {
42
+ display: flex;
43
+ align-items: center;
44
+ gap: calc(3 * var(--default-grid-baseline));
45
+ margin-bottom: calc(6 * var(--default-grid-baseline));
46
+ }
47
+
48
+ .cn-detail-layout__title {
49
+ flex: 1;
50
+ margin: 0;
51
+ font-size: 1.5em;
52
+ color: var(--color-main-text);
53
+ }
54
+
55
+ .cn-detail-layout__actions {
56
+ display: flex;
57
+ gap: calc(2 * var(--default-grid-baseline));
58
+ flex-shrink: 0;
59
+ }
60
+
61
+ .cn-detail-layout__content {
62
+ margin-top: calc(4 * var(--default-grid-baseline));
63
+ }
64
+
65
+ /* Backwards compatibility aliases */
66
+ .detail-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: calc(4 * var(--default-grid-baseline)); margin-bottom: calc(5 * var(--default-grid-baseline)); }
67
+ .detail-item { display: flex; flex-direction: column; gap: var(--default-grid-baseline); padding: calc(2 * var(--default-grid-baseline)) calc(3 * var(--default-grid-baseline)); border-left: 3px solid var(--color-primary-element); background: var(--color-background-hover); border-radius: 0 var(--border-radius) var(--border-radius) 0; }
68
+ .detailContainer { margin-block-start: calc(5 * var(--default-grid-baseline)); margin-inline-start: calc(5 * var(--default-grid-baseline)); margin-inline-end: calc(5 * var(--default-grid-baseline)); }
@@ -1,32 +1,44 @@
1
- /* CnIndexPage — Index page layout styles */
2
- /* Header styles: see page-header.css (CnPageHeader) */
3
- /* Actions bar styles: see actions-bar.css (CnActionsBar) */
4
-
5
- .cn-index-page {
6
- padding: calc(5 * var(--default-grid-baseline));
7
- }
8
-
9
- /* Body layout */
10
- .cn-index-page__body {
11
- display: flex;
12
- }
13
-
14
- .cn-index-page__main {
15
- flex: 1;
16
- min-width: 0;
17
- }
18
-
19
- .cn-index-page__loading {
20
- display: flex;
21
- justify-content: center;
22
- padding: calc(15 * var(--default-grid-baseline));
23
- }
24
-
25
- .cn-index-page__empty {
26
- padding: calc(10 * var(--default-grid-baseline)) calc(5 * var(--default-grid-baseline));
27
- text-align: center;
28
- }
29
-
30
- .cn-index-page__pagination {
31
- margin-top: calc(4 * var(--default-grid-baseline));
32
- }
1
+ /* CnIndexPage — Index page layout styles */
2
+ /* Header styles: see page-header.css (CnPageHeader) */
3
+ /* Actions bar styles: see actions-bar.css (CnActionsBar) */
4
+
5
+ .cn-index-page {
6
+ display: flex;
7
+ flex-direction: column;
8
+ height: 100%;
9
+ min-height: 0;
10
+ padding: calc(5 * var(--default-grid-baseline));
11
+ }
12
+
13
+ .cn-index-page__below-header {
14
+ margin-bottom: calc(4 * var(--default-grid-baseline));
15
+ }
16
+
17
+ /* Body layout */
18
+ .cn-index-page__body {
19
+ display: flex;
20
+ flex: 1;
21
+ min-height: 0;
22
+ }
23
+
24
+ .cn-index-page__main {
25
+ flex: 1;
26
+ min-width: 0;
27
+ min-height: 0;
28
+ overflow-y: auto;
29
+ }
30
+
31
+ .cn-index-page__loading {
32
+ display: flex;
33
+ justify-content: center;
34
+ padding: calc(15 * var(--default-grid-baseline));
35
+ }
36
+
37
+ .cn-index-page__empty {
38
+ padding: calc(10 * var(--default-grid-baseline)) calc(5 * var(--default-grid-baseline));
39
+ text-align: center;
40
+ }
41
+
42
+ .cn-index-page__pagination {
43
+ margin-top: calc(4 * var(--default-grid-baseline));
44
+ }
@@ -1,187 +1,193 @@
1
- /* CnIndexSidebar — NcAppSidebar wrapper styles */
2
-
3
- /* Sidebar header icon (compact mode figure area) */
4
- .cn-index-sidebar__header-icon {
5
- display: flex;
6
- align-items: center;
7
- justify-content: center;
8
- width: 100%;
9
- height: 100%;
10
- color: var(--color-primary-element);
11
- }
12
-
13
- .cn-index-sidebar__header-emoji {
14
- font-size: 28px;
15
- line-height: 1;
16
- }
17
-
18
- /* Search tab sections */
19
- .cn-index-sidebar__section {
20
- padding: calc(4 * var(--default-grid-baseline));
21
- }
22
-
23
- .cn-index-sidebar__section h3 {
24
- margin: 0 0 calc(3 * var(--default-grid-baseline)) 0;
25
- font-size: 15px;
26
- font-weight: 600;
27
- }
28
-
29
- .cn-index-sidebar__description {
30
- color: var(--color-text-maxcontrast);
31
- font-size: 13px;
32
- margin: 0 0 calc(4 * var(--default-grid-baseline)) 0;
33
- }
34
-
35
- .cn-index-sidebar__filter-group {
36
- margin-bottom: calc(3 * var(--default-grid-baseline));
37
- }
38
-
39
- .cn-index-sidebar__filter-header {
40
- display: flex;
41
- align-items: center;
42
- gap: var(--default-grid-baseline);
43
- margin-bottom: var(--default-grid-baseline);
44
- }
45
-
46
- .cn-index-sidebar__filter-label {
47
- font-size: 13px;
48
- font-weight: 500;
49
- color: var(--color-main-text);
50
- }
51
-
52
- .cn-index-sidebar__info-btn {
53
- min-width: var(--clickable-area-small, 24px) !important;
54
- min-height: var(--clickable-area-small, 24px) !important;
55
- width: var(--clickable-area-small, 24px) !important;
56
- height: var(--clickable-area-small, 24px) !important;
57
- padding: 0 !important;
58
- color: var(--color-text-maxcontrast);
59
- }
60
-
61
- .cn-index-sidebar__info-btn:hover {
62
- color: var(--color-primary);
63
- }
64
-
65
- .cn-index-sidebar__filter-description {
66
- padding: calc(2 * var(--default-grid-baseline)) calc(3 * var(--default-grid-baseline));
67
- max-width: 260px;
68
- font-size: 13px;
69
- color: var(--color-main-text);
70
- margin: 0;
71
- line-height: var(--default-line-height, 1.4);
72
- }
73
-
74
- .cn-index-sidebar__select {
75
- width: 100%;
76
- }
77
-
78
- /* Visually hide NcSelect's rendered label — the filter heading already shows it.
79
- Keep input-label prop for screen-reader accessibility. */
80
- .cn-index-sidebar__select label {
81
- position: absolute;
82
- width: 1px;
83
- height: 1px;
84
- padding: 0;
85
- margin: -1px;
86
- overflow: hidden;
87
- clip: rect(0, 0, 0, 0);
88
- white-space: nowrap;
89
- border: 0;
90
- }
91
-
92
- .cn-index-sidebar__empty {
93
- color: var(--color-text-maxcontrast);
94
- font-size: 13px;
95
- font-style: italic;
96
- }
97
-
98
- /* ── Columns tab ── */
99
-
100
- .cn-sidebar-columns {
101
- padding: calc(4 * var(--default-grid-baseline));
102
- min-height: calc(100vh - 200px);
103
- }
104
-
105
- .cn-sidebar-columns h3 {
106
- margin-top: 0;
107
- margin-bottom: calc(2 * var(--default-grid-baseline));
108
- font-size: 18px;
109
- font-weight: 600;
110
- }
111
-
112
- .cn-sidebar-columns__description {
113
- color: var(--color-text-maxcontrast);
114
- margin-bottom: calc(4 * var(--default-grid-baseline));
115
- font-size: var(--default-font-size);
116
- }
117
-
118
- /* Collapsible column group card */
119
- .cn-sidebar-columns__group {
120
- margin-bottom: calc(6 * var(--default-grid-baseline));
121
- }
122
-
123
- .cn-sidebar-columns__group h4 {
124
- margin-top: 0;
125
- margin-bottom: calc(3 * var(--default-grid-baseline));
126
- font-size: var(--default-font-size);
127
- font-weight: 600;
128
- color: var(--color-text-light);
129
- border-bottom: 1px solid var(--color-border);
130
- padding-bottom: calc(2 * var(--default-grid-baseline));
131
- }
132
-
133
- .cn-sidebar-columns__group .checkbox-radio-switch {
134
- margin-bottom: calc(2 * var(--default-grid-baseline));
135
- }
136
-
137
- .cn-sidebar-columns__group .checkbox-radio-switch__content {
138
- padding: var(--default-grid-baseline) 0;
139
- }
140
-
141
- .cn-sidebar-columns__group--collapsible {
142
- border: 1px solid var(--color-border);
143
- border-radius: var(--border-radius);
144
- padding: 0;
145
- margin-bottom: calc(3 * var(--default-grid-baseline));
146
- }
147
-
148
- .cn-sidebar-columns__group-header {
149
- display: flex;
150
- align-items: center;
151
- gap: calc(2 * var(--default-grid-baseline));
152
- padding: calc(3 * var(--default-grid-baseline));
153
- cursor: pointer;
154
- user-select: none;
155
- transition: background-color var(--animation-quick) ease;
156
- }
157
-
158
- .cn-sidebar-columns__group-header:hover {
159
- background-color: var(--color-background-hover);
160
- }
161
-
162
- .cn-sidebar-columns__group-header h4 {
163
- margin: 0;
164
- padding: 0;
165
- border: none;
166
- flex: 1;
167
- color: var(--color-main-text);
168
- }
169
-
170
- .cn-sidebar-columns__select-all {
171
- margin: 0 !important;
172
- font-size: 12px;
173
- }
174
-
175
- .cn-sidebar-columns__group-content {
176
- padding: calc(3 * var(--default-grid-baseline));
177
- border-top: 1px solid var(--color-border);
178
- display: flex;
179
- flex-direction: column;
180
- gap: calc(2 * var(--default-grid-baseline));
181
- }
182
-
183
- .cn-sidebar-columns__empty {
184
- color: var(--color-text-maxcontrast);
185
- font-size: 13px;
186
- font-style: italic;
187
- }
1
+ /* CnIndexSidebar — NcAppSidebar wrapper styles */
2
+
3
+ /* Tab content: limit height to container so overflow shows a scrollbar */
4
+ .cn-index-sidebar__tab-content {
5
+ max-height: 100%;
6
+ min-height: 0;
7
+ overflow-y: auto;
8
+ }
9
+
10
+ /* Sidebar header icon (compact mode figure area) */
11
+ .cn-index-sidebar__header-icon {
12
+ display: flex;
13
+ align-items: center;
14
+ justify-content: center;
15
+ width: 100%;
16
+ height: 100%;
17
+ color: var(--color-primary-element);
18
+ }
19
+
20
+ .cn-index-sidebar__header-emoji {
21
+ font-size: 28px;
22
+ line-height: 1;
23
+ }
24
+
25
+ /* Search tab sections */
26
+ .cn-index-sidebar__section {
27
+ padding: calc(4 * var(--default-grid-baseline));
28
+ }
29
+
30
+ .cn-index-sidebar__section h3 {
31
+ margin: 0 0 calc(3 * var(--default-grid-baseline)) 0;
32
+ font-size: 15px;
33
+ font-weight: 600;
34
+ }
35
+
36
+ .cn-index-sidebar__description {
37
+ color: var(--color-text-maxcontrast);
38
+ font-size: 13px;
39
+ margin: 0 0 calc(4 * var(--default-grid-baseline)) 0;
40
+ }
41
+
42
+ .cn-index-sidebar__filter-group {
43
+ margin-bottom: calc(3 * var(--default-grid-baseline));
44
+ }
45
+
46
+ .cn-index-sidebar__filter-header {
47
+ display: flex;
48
+ align-items: center;
49
+ gap: var(--default-grid-baseline);
50
+ margin-bottom: var(--default-grid-baseline);
51
+ }
52
+
53
+ .cn-index-sidebar__filter-label {
54
+ font-size: 13px;
55
+ font-weight: 500;
56
+ color: var(--color-main-text);
57
+ }
58
+
59
+ .cn-index-sidebar__info-btn {
60
+ min-width: var(--clickable-area-small, 24px) !important;
61
+ min-height: var(--clickable-area-small, 24px) !important;
62
+ width: var(--clickable-area-small, 24px) !important;
63
+ height: var(--clickable-area-small, 24px) !important;
64
+ padding: 0 !important;
65
+ color: var(--color-text-maxcontrast);
66
+ }
67
+
68
+ .cn-index-sidebar__info-btn:hover {
69
+ color: var(--color-primary);
70
+ }
71
+
72
+ .cn-index-sidebar__filter-description {
73
+ padding: calc(2 * var(--default-grid-baseline)) calc(3 * var(--default-grid-baseline));
74
+ max-width: 260px;
75
+ font-size: 13px;
76
+ color: var(--color-main-text);
77
+ margin: 0;
78
+ line-height: var(--default-line-height, 1.4);
79
+ }
80
+
81
+ .cn-index-sidebar__select {
82
+ width: 100%;
83
+ }
84
+
85
+ /* Visually hide NcSelect's rendered label — the filter heading already shows it.
86
+ Keep input-label prop for screen-reader accessibility. */
87
+ .cn-index-sidebar__select label {
88
+ position: absolute;
89
+ width: 1px;
90
+ height: 1px;
91
+ padding: 0;
92
+ margin: -1px;
93
+ overflow: hidden;
94
+ clip: rect(0, 0, 0, 0);
95
+ white-space: nowrap;
96
+ border: 0;
97
+ }
98
+
99
+ .cn-index-sidebar__empty {
100
+ color: var(--color-text-maxcontrast);
101
+ font-size: 13px;
102
+ font-style: italic;
103
+ }
104
+
105
+ /* ── Columns tab ── */
106
+
107
+ .cn-sidebar-columns {
108
+ padding: calc(4 * var(--default-grid-baseline));
109
+ }
110
+
111
+ .cn-sidebar-columns h3 {
112
+ margin-top: 0;
113
+ margin-bottom: calc(2 * var(--default-grid-baseline));
114
+ font-size: 18px;
115
+ font-weight: 600;
116
+ }
117
+
118
+ .cn-sidebar-columns__description {
119
+ color: var(--color-text-maxcontrast);
120
+ margin-bottom: calc(4 * var(--default-grid-baseline));
121
+ font-size: var(--default-font-size);
122
+ }
123
+
124
+ /* Collapsible column group card */
125
+ .cn-sidebar-columns__group {
126
+ margin-bottom: calc(6 * var(--default-grid-baseline));
127
+ }
128
+
129
+ .cn-sidebar-columns__group h4 {
130
+ margin-top: 0;
131
+ margin-bottom: calc(3 * var(--default-grid-baseline));
132
+ font-size: var(--default-font-size);
133
+ font-weight: 600;
134
+ color: var(--color-text-light);
135
+ border-bottom: 1px solid var(--color-border);
136
+ padding-bottom: calc(2 * var(--default-grid-baseline));
137
+ }
138
+
139
+ .cn-sidebar-columns__group .checkbox-radio-switch {
140
+ margin-bottom: calc(2 * var(--default-grid-baseline));
141
+ }
142
+
143
+ .cn-sidebar-columns__group .checkbox-radio-switch__content {
144
+ padding: var(--default-grid-baseline) 0;
145
+ }
146
+
147
+ .cn-sidebar-columns__group--collapsible {
148
+ border: 1px solid var(--color-border);
149
+ border-radius: var(--border-radius);
150
+ padding: 0;
151
+ margin-bottom: calc(3 * var(--default-grid-baseline));
152
+ }
153
+
154
+ .cn-sidebar-columns__group-header {
155
+ display: flex;
156
+ align-items: center;
157
+ gap: calc(2 * var(--default-grid-baseline));
158
+ padding: calc(3 * var(--default-grid-baseline));
159
+ cursor: pointer;
160
+ user-select: none;
161
+ transition: background-color var(--animation-quick) ease;
162
+ }
163
+
164
+ .cn-sidebar-columns__group-header:hover {
165
+ background-color: var(--color-background-hover);
166
+ }
167
+
168
+ .cn-sidebar-columns__group-header h4 {
169
+ margin: 0;
170
+ padding: 0;
171
+ border: none;
172
+ flex: 1;
173
+ color: var(--color-main-text);
174
+ }
175
+
176
+ .cn-sidebar-columns__select-all {
177
+ margin: 0 !important;
178
+ font-size: 12px;
179
+ }
180
+
181
+ .cn-sidebar-columns__group-content {
182
+ padding: calc(3 * var(--default-grid-baseline));
183
+ border-top: 1px solid var(--color-border);
184
+ display: flex;
185
+ flex-direction: column;
186
+ gap: calc(2 * var(--default-grid-baseline));
187
+ }
188
+
189
+ .cn-sidebar-columns__empty {
190
+ color: var(--color-text-maxcontrast);
191
+ font-size: 13px;
192
+ font-style: italic;
193
+ }
package/src/css/index.css CHANGED
@@ -1,12 +1,16 @@
1
- /* @conduction/nextcloud-vue — Main CSS entry point */
2
- @import './table.css';
3
- @import './card.css';
4
- @import './pagination.css';
5
- @import './detail.css';
6
- @import './badge.css';
7
- @import './layout.css';
8
- @import './utilities.css';
9
- @import './page-header.css';
10
- @import './actions-bar.css';
11
- @import './index-page.css';
12
- @import './index-sidebar.css';
1
+ /* @conduction/nextcloud-vue — Main CSS entry point */
2
+ @import './table.css';
3
+ @import './card.css';
4
+ @import './pagination.css';
5
+ @import './detail.css';
6
+ @import './badge.css';
7
+ @import './layout.css';
8
+ @import './utilities.css';
9
+ @import './page-header.css';
10
+ @import './actions-bar.css';
11
+ @import './index-page.css';
12
+ @import './index-sidebar.css';
13
+ @import './dashboard.css';
14
+ @import './detail-page.css';
15
+ @import './CnSchemaFormDialog.css';
16
+ @import './timeline-stages.css';