inicontent 1.0.0

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 (205) hide show
  1. package/.github/pull_request.yml +18 -0
  2. package/CONTRIBUTING.md +67 -0
  3. package/LICENSE +21 -0
  4. package/README.md +142 -0
  5. package/app/app.vue +106 -0
  6. package/app/assets/main.css +974 -0
  7. package/app/components/Api/EndpointCard.vue +169 -0
  8. package/app/components/Api/SchemaDocsTable.vue +208 -0
  9. package/app/components/Asset/Card.vue +1363 -0
  10. package/app/components/Asset/Grid.vue +295 -0
  11. package/app/components/Asset/Icon.vue +38 -0
  12. package/app/components/Asset/Preview.vue +486 -0
  13. package/app/components/Asset/Scanner.vue +700 -0
  14. package/app/components/Asset/Thumb.vue +708 -0
  15. package/app/components/Auth/Reset.vue +99 -0
  16. package/app/components/Auth/index.vue +346 -0
  17. package/app/components/ChatInterface.vue +2326 -0
  18. package/app/components/ChatPagePreview.vue +34 -0
  19. package/app/components/Column/Array.vue +29 -0
  20. package/app/components/Column/Asset.vue +21 -0
  21. package/app/components/Column/Boolean.vue +12 -0
  22. package/app/components/Column/Color.vue +9 -0
  23. package/app/components/Column/Date.vue +57 -0
  24. package/app/components/Column/Edit.vue +215 -0
  25. package/app/components/Column/Email.vue +9 -0
  26. package/app/components/Column/Html.vue +27 -0
  27. package/app/components/Column/Id.vue +20 -0
  28. package/app/components/Column/Locale.vue +32 -0
  29. package/app/components/Column/Object.vue +18 -0
  30. package/app/components/Column/Password.vue +7 -0
  31. package/app/components/Column/Role.vue +15 -0
  32. package/app/components/Column/S.vue +14 -0
  33. package/app/components/Column/Table/Single.vue +49 -0
  34. package/app/components/Column/Table/index.vue +42 -0
  35. package/app/components/Column/Tags.vue +31 -0
  36. package/app/components/Column/Text.vue +9 -0
  37. package/app/components/Column/Url.vue +9 -0
  38. package/app/components/Column/index.vue +41 -0
  39. package/app/components/Dashboard/Editor.vue +221 -0
  40. package/app/components/Dashboard/Grid.vue +270 -0
  41. package/app/components/Dashboard/View.vue +131 -0
  42. package/app/components/Dashboard/Widget/BarChart.vue +73 -0
  43. package/app/components/Dashboard/Widget/Counter.vue +51 -0
  44. package/app/components/Dashboard/Widget/LineChart.vue +76 -0
  45. package/app/components/Dashboard/Widget/PieChart.vue +75 -0
  46. package/app/components/Dashboard/Widget/Table.vue +94 -0
  47. package/app/components/Dashboard/WidgetEditor.vue +274 -0
  48. package/app/components/Data/Array.vue +102 -0
  49. package/app/components/Data/Html.vue +9 -0
  50. package/app/components/Data/Icon.vue +9 -0
  51. package/app/components/Data/Object.vue +10 -0
  52. package/app/components/Data/S.vue +16 -0
  53. package/app/components/Data/Table.vue +53 -0
  54. package/app/components/Data/Value.vue +34 -0
  55. package/app/components/Data/index.vue +14 -0
  56. package/app/components/Field/Array.vue +324 -0
  57. package/app/components/Field/Asset/Actions.vue +97 -0
  58. package/app/components/Field/Asset/index.vue +639 -0
  59. package/app/components/Field/Boolean.vue +26 -0
  60. package/app/components/Field/Checkbox.vue +48 -0
  61. package/app/components/Field/Color.vue +27 -0
  62. package/app/components/Field/Date.vue +30 -0
  63. package/app/components/Field/Email.vue +51 -0
  64. package/app/components/Field/EmailTemplate.vue +420 -0
  65. package/app/components/Field/Html/ColorPicker.vue +127 -0
  66. package/app/components/Field/Html/Editor.vue +544 -0
  67. package/app/components/Field/Html/index.vue +25 -0
  68. package/app/components/Field/Icon.vue +114 -0
  69. package/app/components/Field/JSON.vue +113 -0
  70. package/app/components/Field/Mention.vue +36 -0
  71. package/app/components/Field/Number.vue +27 -0
  72. package/app/components/Field/Object.vue +92 -0
  73. package/app/components/Field/Password.vue +55 -0
  74. package/app/components/Field/Radio.vue +47 -0
  75. package/app/components/Field/S.vue +44 -0
  76. package/app/components/Field/Select.vue +49 -0
  77. package/app/components/Field/Table.vue +348 -0
  78. package/app/components/Field/Tags.vue +113 -0
  79. package/app/components/Field/Text.vue +31 -0
  80. package/app/components/Field/Textarea.vue +33 -0
  81. package/app/components/Field/Url.vue +40 -0
  82. package/app/components/Field/Wrapper.vue +128 -0
  83. package/app/components/Field/index.vue +68 -0
  84. package/app/components/FloatingChatbot.vue +73 -0
  85. package/app/components/Form/Card.vue +151 -0
  86. package/app/components/Form/Drawer.vue +195 -0
  87. package/app/components/Form/index.vue +621 -0
  88. package/app/components/Header.vue +328 -0
  89. package/app/components/Offline/ConflictModal.vue +200 -0
  90. package/app/components/Offline/SyncStatus.vue +249 -0
  91. package/app/components/PlatformFeatureLanding.vue +65 -0
  92. package/app/components/Table/Backups.vue +638 -0
  93. package/app/components/Table/Flows.vue +814 -0
  94. package/app/components/Table/Grid.vue +296 -0
  95. package/app/components/Table/Icon.vue +36 -0
  96. package/app/components/Table/Logs.vue +181 -0
  97. package/app/components/Table/Schedules.vue +722 -0
  98. package/app/components/Table/Search/Button.vue +256 -0
  99. package/app/components/Table/Search/Items.vue +286 -0
  100. package/app/components/Table/Search/index.vue +87 -0
  101. package/app/components/Table/Settings/Schema.vue +801 -0
  102. package/app/components/Table/Settings/index.vue +631 -0
  103. package/app/components/Table/TranslateDrawer.vue +526 -0
  104. package/app/components/Table/Views/Kanban.vue +289 -0
  105. package/app/components/Table/Views/Table.vue +1273 -0
  106. package/app/components/Table/index.vue +890 -0
  107. package/app/composables/Translation/define.ts +41 -0
  108. package/app/composables/Translation/fetch.ts +107 -0
  109. package/app/composables/Translation/languages.ts +1 -0
  110. package/app/composables/Translation/loadCoreTranslations.ts +38 -0
  111. package/app/composables/Translation/translate.ts +250 -0
  112. package/app/composables/databaseCookies.ts +79 -0
  113. package/app/composables/fieldValidator.ts +72 -0
  114. package/app/composables/fieldsList.ts +301 -0
  115. package/app/composables/formatDatabase.ts +101 -0
  116. package/app/composables/index.ts +444 -0
  117. package/app/composables/openDrawer.ts +118 -0
  118. package/app/composables/optimizeFile.ts +287 -0
  119. package/app/composables/renderLabel.ts +88 -0
  120. package/app/composables/schemaClipboard.ts +95 -0
  121. package/app/composables/search.ts +353 -0
  122. package/app/composables/setThemeConfig.ts +48 -0
  123. package/app/composables/translationValue.ts +169 -0
  124. package/app/composables/useAssetPreview.ts +84 -0
  125. package/app/composables/useAssetUploader.ts +56 -0
  126. package/app/composables/useDashboardData.ts +310 -0
  127. package/app/composables/useDocumentThumbnail.ts +351 -0
  128. package/app/composables/useEcharts.ts +33 -0
  129. package/app/composables/useLocalDatabaseConfig.ts +51 -0
  130. package/app/composables/useOcr.ts +300 -0
  131. package/app/composables/useOfflineFetch.ts +194 -0
  132. package/app/composables/useOfflineItem.ts +107 -0
  133. package/app/composables/useOfflineQueue.ts +302 -0
  134. package/app/composables/useOfflineSync.ts +235 -0
  135. package/app/composables/usePasskeyAuth.ts +156 -0
  136. package/app/composables/usePdfCompressor.ts +180 -0
  137. package/app/composables/usePlatformRedirect.ts +72 -0
  138. package/app/composables/useRealtimeSync.ts +233 -0
  139. package/app/composables/useReferencedItems.ts +180 -0
  140. package/app/composables/useScanner.ts +664 -0
  141. package/app/composables/useSubscription.ts +650 -0
  142. package/app/composables/useThumbnailCache.ts +136 -0
  143. package/app/composables/useVideoCompressor.ts +194 -0
  144. package/app/error.vue +112 -0
  145. package/app/layouts/api.vue +188 -0
  146. package/app/layouts/dashboard.vue +91 -0
  147. package/app/layouts/default.vue +228 -0
  148. package/app/layouts/table.vue +471 -0
  149. package/app/locales/ar.ts +996 -0
  150. package/app/locales/en.ts +655 -0
  151. package/app/locales/es.ts +996 -0
  152. package/app/locales/fr.ts +997 -0
  153. package/app/middleware/dashboard.ts +33 -0
  154. package/app/middleware/database.ts +83 -0
  155. package/app/middleware/global.ts +1 -0
  156. package/app/middleware/sid-ingest.global.ts +29 -0
  157. package/app/middleware/table.ts +54 -0
  158. package/app/middleware/user.ts +26 -0
  159. package/app/pages/[[database]]/admin/api/auth/index.vue +306 -0
  160. package/app/pages/[[database]]/admin/api/index.vue +18 -0
  161. package/app/pages/[[database]]/admin/api/tables/[table]/index.vue +497 -0
  162. package/app/pages/[[database]]/admin/api/tables/index.vue +87 -0
  163. package/app/pages/[[database]]/admin/billing/index.vue +16 -0
  164. package/app/pages/[[database]]/admin/dashboards/[id]/edit.vue +66 -0
  165. package/app/pages/[[database]]/admin/dashboards/[id]/index.vue +117 -0
  166. package/app/pages/[[database]]/admin/dashboards/index.vue +20 -0
  167. package/app/pages/[[database]]/admin/index.vue +28 -0
  168. package/app/pages/[[database]]/admin/settings.vue +526 -0
  169. package/app/pages/[[database]]/admin/tables/[table]/[id]/edit.vue +143 -0
  170. package/app/pages/[[database]]/admin/tables/[table]/[id]/index.vue +146 -0
  171. package/app/pages/[[database]]/admin/tables/[table]/flows.vue +10 -0
  172. package/app/pages/[[database]]/admin/tables/[table]/index.vue +10 -0
  173. package/app/pages/[[database]]/admin/tables/[table]/new.vue +12 -0
  174. package/app/pages/[[database]]/admin/tables/[table]/schedules.vue +10 -0
  175. package/app/pages/[[database]]/admin/tables/[table]/settings.vue +30 -0
  176. package/app/pages/[[database]]/admin/tables/assets/[...path].vue +24 -0
  177. package/app/pages/[[database]]/admin/tables/assets/flows.vue +10 -0
  178. package/app/pages/[[database]]/admin/tables/backups/index.vue +10 -0
  179. package/app/pages/[[database]]/admin/tables/blocks/index.vue +16 -0
  180. package/app/pages/[[database]]/admin/tables/index.vue +20 -0
  181. package/app/pages/[[database]]/admin/tables/pages/index.vue +16 -0
  182. package/app/pages/[[database]]/admin/tables/templates/index.vue +16 -0
  183. package/app/pages/[[database]]/api/index.vue +120 -0
  184. package/app/pages/[[database]]/auth/index.vue +12 -0
  185. package/app/pages/[[database]]/auth/reset.vue +10 -0
  186. package/app/pages/[[database]]/index.vue +10 -0
  187. package/app/plugins/offline-warmup.client.ts +53 -0
  188. package/app/plugins/template-globals.ts +9 -0
  189. package/app/spa-loading-template.html +93 -0
  190. package/biome.json +53 -0
  191. package/index.d.ts +380 -0
  192. package/modules/naiveui.ts +41 -0
  193. package/nuxt.config.ts +269 -0
  194. package/package.json +56 -0
  195. package/pnpm-workspace.yaml +5 -0
  196. package/public/apple-touch-icon.png +0 -0
  197. package/public/favicon-16x16.png +0 -0
  198. package/public/favicon-32x32.png +0 -0
  199. package/public/favicon.ico +0 -0
  200. package/public/pwa-192x192.png +0 -0
  201. package/public/pwa-512x512.png +0 -0
  202. package/public/pwa-maskable-192x192.png +0 -0
  203. package/public/pwa-maskable-512x512.png +0 -0
  204. package/public/vendor/opencv.js +48 -0
  205. package/tsconfig.json +9 -0
@@ -0,0 +1,974 @@
1
+ .page-enter-active,
2
+ .page-leave-active {
3
+ transition: all 0.4s;
4
+ }
5
+
6
+ .page-enter-from,
7
+ .page-leave-to {
8
+ opacity: 0;
9
+ filter: blur(1rem);
10
+ }
11
+
12
+ body { font-family: "Cairo", sans-serif; }
13
+
14
+ a,
15
+ a:hover,
16
+ a:visited,
17
+ a:active {
18
+ text-decoration: none;
19
+ outline: none;
20
+ }
21
+
22
+ a {
23
+ color: inherit;
24
+ }
25
+
26
+ .n-menu .n-menu-item-content .n-menu-item-content-header {
27
+ display: flex;
28
+ justify-content: space-between;
29
+ align-items: center;
30
+ }
31
+
32
+ .n-menu .n-menu-item-content .n-menu-item-content-header .n-menu-item-content-header__extra {
33
+ height: 28px;
34
+ }
35
+
36
+ .n-menu .n-menu-item-content {
37
+ padding-left: 16px!important;
38
+ }
39
+
40
+ .chat-interface {
41
+ display: flex;
42
+ flex-direction: column;
43
+ gap: 15px;
44
+ padding: 10px;
45
+ border-radius: 8px;
46
+ margin-top: 20px;
47
+ }
48
+
49
+ .spin-icon {
50
+ animation: spin 1s linear infinite;
51
+ }
52
+
53
+ @keyframes spin {
54
+ from {
55
+ transform: rotate(0deg);
56
+ }
57
+ to {
58
+ transform: rotate(360deg);
59
+ }
60
+ }
61
+
62
+ .messages-area {
63
+ flex-grow: 1;
64
+ max-height: 450px;
65
+ overflow-y: auto;
66
+ }
67
+
68
+ .message-row {
69
+ width: 100%;
70
+ margin-bottom: 12px;
71
+ }
72
+
73
+ .message-row:last-child {
74
+ margin-bottom: 0;
75
+ }
76
+
77
+ .message-card {
78
+ max-width: 85%;
79
+ width: fit-content;
80
+ word-wrap: break-word;
81
+ border-radius: 15px;
82
+ }
83
+
84
+ .message-card p {
85
+ margin: 0;
86
+ line-height: 1.5;
87
+ }
88
+
89
+ .message-text {
90
+ white-space: pre-wrap;
91
+ }
92
+
93
+ .translation-results {
94
+ min-width: min(360px, 100%);
95
+ margin-top: 10px;
96
+ padding-top: 10px;
97
+ border-top: 1px solid var(--n-divider-color);
98
+ }
99
+
100
+ .translation-result-row {
101
+ padding: 7px 9px;
102
+ border-radius: 8px;
103
+ background: var(--n-action-color);
104
+ }
105
+
106
+ .translation-result-count {
107
+ color: var(--n-text-color-3);
108
+ font-size: 0.875em;
109
+ white-space: nowrap;
110
+ }
111
+
112
+ .scroll-to-bottom-button.show {
113
+ opacity: 1;
114
+ visibility: visible;
115
+ }
116
+
117
+ .scroll-to-bottom-button {
118
+ position: absolute;
119
+ left: 0;
120
+ bottom: 0;
121
+ opacity: 0;
122
+ visibility: hidden;
123
+ transition: opacity 0.3s ease;
124
+ }
125
+
126
+ .floating-chatbot-button {
127
+ position: fixed;
128
+ bottom: 24px;
129
+ right: 24px;
130
+ z-index: 998;
131
+ width: 46px !important;
132
+ height: 46px !important;
133
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
134
+ transition: transform 0.2s ease;
135
+ }
136
+
137
+ .rtl .floating-chatbot-button {
138
+ right: auto;
139
+ left: 24px;
140
+ }
141
+
142
+ .floating-chatbot-button:hover {
143
+ transform: scale(1.1);
144
+ }
145
+
146
+ .floating-chatbot-panel {
147
+ position: fixed;
148
+ bottom: 92px;
149
+ right: 24px;
150
+ z-index: 1000;
151
+ width: min(420px, calc(100vw - 48px));
152
+ max-height: calc(100vh - 140px);
153
+ }
154
+
155
+ .rtl .floating-chatbot-panel {
156
+ right: auto;
157
+ left: 24px;
158
+ }
159
+
160
+ .floating-chatbot-panel .chatbot-card {
161
+ border-radius: 16px;
162
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);
163
+ overflow: hidden;
164
+ }
165
+
166
+ .floating-chatbot-panel .chatbot-body {
167
+ height: min(500px, calc(100vh - 240px));
168
+ overflow: hidden;
169
+ }
170
+
171
+ .floating-chatbot-panel .chatbot-body .chat-interface {
172
+ height: 100%;
173
+ margin-top: 0;
174
+ padding: 10px;
175
+ }
176
+
177
+ .floating-chatbot-panel .chatbot-body .messages-area {
178
+ max-height: none;
179
+ flex: 1;
180
+ }
181
+
182
+ .floating-chatbot-panel .chatbot-body .message-input {
183
+ margin-bottom: 20px;
184
+ }
185
+
186
+ /* Transition */
187
+ .chatbot-panel-enter-active,
188
+ .chatbot-panel-leave-active {
189
+ transition: all 0.3s ease;
190
+ }
191
+
192
+ .chatbot-panel-enter-from,
193
+ .chatbot-panel-leave-to {
194
+ opacity: 0;
195
+ transform: translateY(20px) scale(0.95);
196
+ }
197
+
198
+ .chatbot-panel-enter-to,
199
+ .chatbot-panel-leave-from {
200
+ opacity: 1;
201
+ transform: translateY(0) scale(1);
202
+ }
203
+
204
+ .n-input-number,
205
+ .n-date-picker {
206
+ width: 100%;
207
+ }
208
+
209
+ .n-select[round="true"] * {
210
+ border-radius: 15px;
211
+ overflow: hidden;
212
+ }
213
+
214
+ .rtl,
215
+ .rtl * {
216
+ --n-prefix-margin: 0 0 0 8px !important;
217
+ --n-padding-single: 0 12px 0 26px !important;
218
+ --n-padding-multiple: 3px 12px 0 26px !important;
219
+ }
220
+
221
+ .rtl .n-base-select-menu .n-base-select-option.n-base-select-option--show-checkmark {
222
+ padding-left: calc(var(--n-option-padding-right) + 20px);
223
+ padding-right: var(--n-option-padding-left);
224
+ }
225
+
226
+ .rtl .collapseContentPadding {
227
+ padding-right: 10px;
228
+ }
229
+
230
+ .rtl .n-data-table .n-data-table-check-extra {
231
+ left: -2px;
232
+ right: unset !important;
233
+ }
234
+
235
+ .rtl .n-base-selection .n-base-suffix {
236
+ left: 10px;
237
+ right: unset !important;
238
+ }
239
+
240
+ .rtl .n-base-selection-tag-wrapper {
241
+ padding: 0 0 3px 7px;
242
+ }
243
+
244
+ .rtl .n-pagination .n-pagination-item.n-pagination-item--button .n-base-icon,
245
+ .rtl .n-layout-sider .n-layout-toggle-bar,
246
+ .rtl .n-collapse .n-collapse-item .n-collapse-item__header .n-collapse-item-arrow .n-icon,
247
+ .rtl .n-switch,
248
+ .rtl .n-pagination .n-pagination-item svg,
249
+ .rtl .i-tabler\:arrow-left,
250
+ .rtl .i-tabler\:arrow-right,
251
+ .rtl .i-tabler\:chevron-left,
252
+ .rtl .i-tabler\:chevron-right,
253
+ .rtl .i-tabler\:send,
254
+ .rtl .i-tabler\:question-mark,
255
+ .rtl .i-tabler\:arrow-back-up,
256
+ .rtl .i-tabler\:arrow-forward-up {
257
+ transform: scaleX(-1) !important;
258
+ }
259
+
260
+ .rtl .n-layout-sider .n-layout-toggle-bar {
261
+ left: -28px;
262
+ right: unset !important;
263
+ }
264
+
265
+ .rtl .n-menu .n-menu-item-content .n-menu-item-content__icon {
266
+ margin-left: 8px;
267
+ margin-right: unset !important;
268
+ }
269
+
270
+ .rtl .n-dropdown-menu .n-dropdown-option .n-dropdown-option-body {
271
+ flex-direction: row-reverse !important;
272
+ text-align: right !important;
273
+ }
274
+
275
+ .rtl .n-form-item .n-form-item-label {
276
+ padding: 0 0 0 12px;
277
+ }
278
+
279
+ .ltr .collapseContentPadding {
280
+ padding-left: 10px;
281
+ }
282
+
283
+ .n-breadcrumb .n-breadcrumb-item .n-breadcrumb-item__separator {
284
+ margin: 0 2px !important;
285
+ }
286
+
287
+ .n-data-table .n-data-table-th .n-data-table-sorter {
288
+ margin-right: 4px;
289
+ }
290
+
291
+ .n-upload-file-list .n-upload-file.n-upload-file--image-type .n-upload-file-info .n-upload-file-info__thumbnail img {
292
+ overflow: hidden;
293
+ height: 44px;
294
+ }
295
+
296
+ .n-tabs .n-tabs-nav {
297
+ position: relative;
298
+ }
299
+
300
+ .rtl .n-tabs-rail {
301
+ direction: ltr;
302
+ }
303
+
304
+ /* NMenu */
305
+ .n-menu .n-menu-item-content .n-menu-item-content__arrow {
306
+ padding: 12px;
307
+ }
308
+
309
+ .ltr .n-menu .n-submenu .n-submenu-children .n-menu-item-content {
310
+ padding-right: 18px !important;
311
+ padding-left: 44px !important;
312
+ }
313
+
314
+ .ltr .n-layout-sider--show-content .n-submenu>.n-menu-item .n-menu-item-content {
315
+ padding-right: 12px !important;
316
+ padding-left: 18px !important;
317
+ }
318
+
319
+ .rtl .n-layout-sider--show-content .n-submenu .n-menu-item-content {
320
+ padding-left: 12px !important;
321
+ }
322
+
323
+ .rtl .n-menu .n-submenu .n-submenu-children .n-menu-item-content {
324
+ padding-left: 18px !important;
325
+ padding-right: 44px !important;
326
+ }
327
+
328
+ /* Fix Select Menu */
329
+ .n-base-select-menu.n-base-select-menu--rtl {
330
+ left: -48px;
331
+ }
332
+
333
+ /* Fix table resize on RTL */
334
+ .n-data-table.n-data-table--rtl .n-data-table-th .n-data-table-resize-button {
335
+ right: unset;
336
+ left: calc(var(--n-resizable-container-size) / 2);
337
+ }
338
+
339
+ /* Fix DataTable Selection Icon */
340
+ .n-data-table .n-data-table-th.n-data-table-th--selection .n-data-table-check-extra svg {
341
+ transform: rotate(-90deg);
342
+ right: 1.5px;
343
+ }
344
+
345
+ .n-data-table .n-data-table-th.n-data-table-th--selection .n-data-table-check-extra {
346
+ right: 0;
347
+ }
348
+
349
+ .rtl .n-data-table .n-data-table-th.n-data-table-th--selection .n-data-table-check-extra svg {
350
+ transform: scaleX(-1) rotate(-90deg);
351
+ }
352
+
353
+ .rtl .n-collapse-item-arrow .tabler-icon-chevron-right {
354
+ transform: unset !important;
355
+ }
356
+
357
+ /* Fix DataTable RTL fixed column */
358
+ .rtl .n-data-table .n-data-table-td.n-data-table-td--fixed-right,
359
+ .rtl .n-data-table .n-data-table-th.n-data-table-th--fixed-right {
360
+ left: 0 !important;
361
+ right: unset !important;
362
+ }
363
+
364
+ .rtl.dark .n-data-table .n-data-table-td.n-data-table-td--fixed-right,
365
+ .rtl.dark .n-data-table .n-data-table-th.n-data-table-th--fixed-right {
366
+ box-shadow:
367
+ 0 1px 2px -2px rgba(0, 0, 0, 0.24),
368
+ 0 3px 6px 0 rgba(0, 0, 0, 0.18),
369
+ 0 5px 12px 4px rgba(0, 0, 0, 0.12) !important;
370
+ }
371
+
372
+ .rtl.light .n-data-table .n-data-table-td.n-data-table-td--fixed-right,
373
+ .rtl.light .n-data-table .n-data-table-th.n-data-table-th--fixed-right {
374
+ box-shadow:
375
+ 0 1px 2px -2px rgba(0, 0, 0, 0.08),
376
+ 0 3px 6px 0 rgba(0, 0, 0, 0.06),
377
+ 0 5px 12px 4px rgba(0, 0, 0, 0.04) !important;
378
+ }
379
+
380
+ .rtl .n-data-table .n-data-table-td.n-data-table-td--fixed-left,
381
+ .rtl .n-data-table .n-data-table-th.n-data-table-th--fixed-left {
382
+ right: 0 !important;
383
+ left: unset !important;
384
+ }
385
+
386
+ .rtl.dark .n-data-table .n-data-table-td.n-data-table-td--fixed-left,
387
+ .rtl.dark .n-data-table .n-data-table-th.n-data-table-th--fixed-left {
388
+ box-shadow:
389
+ 0 1px 2px -2px rgba(0, 0, 0, 0.24),
390
+ 0 3px 6px 0 rgba(0, 0, 0, 0.18),
391
+ 0 5px 12px 4px rgba(0, 0, 0, 0.12) !important;
392
+ }
393
+
394
+ .rtl.light .n-data-table .n-data-table-td.n-data-table-td--fixed-left,
395
+ .rtl.light .n-data-table .n-data-table-th.n-data-table-th--fixed-left {
396
+ box-shadow:
397
+ 0 1px 2px -2px rgba(0, 0, 0, 0.08),
398
+ 0 3px 6px 0 rgba(0, 0, 0, 0.06),
399
+ 0 5px 12px 4px rgba(0, 0, 0, 0.04) !important;
400
+ }
401
+
402
+ .n-notification-container.n-notification-container--scrollable.n-notification-container--top-right {
403
+ top: 70px;
404
+ }
405
+
406
+ .light .internalRichEditor {
407
+ --gray-1: rgba(61, 37, 20, 0.05);
408
+ --gray-2: rgba(61, 37, 20, 0.08);
409
+ --gray-3: rgba(61, 37, 20, 0.12);
410
+ }
411
+
412
+ .dark .internalRichEditor {
413
+ --gray-1: rgba(255, 255, 255, 0.14);
414
+ --gray-2: rgba(255, 255, 255, 0.08);
415
+ --gray-3: rgba(255, 255, 255, 0.35);
416
+ }
417
+
418
+ .drawerSpin {
419
+ position: absolute;
420
+ top: 51px;
421
+ left: 0;
422
+ width: 100%;
423
+ height: calc(100vh - 51px - 67px);
424
+ display: flex;
425
+ justify-content: center;
426
+ align-items: center;
427
+ background: #ffffffc4;
428
+ z-index: 1;
429
+ }
430
+
431
+ .dark .drawerSpin {
432
+ background: #00000021 !important;
433
+ }
434
+
435
+ /* Fix NDropdown|NPopover|NDatePicker|NCascader RTL */
436
+ .v-binder-follower-content:has(> .n-base-select-menu.n-base-select-menu--rtl) {
437
+ left: 47px;
438
+ }
439
+
440
+ .rtl .v-binder-follower-content:has(> .n-popover-shared),
441
+ .rtl .v-binder-follower-content:has(> .n-date-panel) {
442
+ left: 0;
443
+ }
444
+
445
+ .rtl .n-cascader-menu .n-cascader-option {
446
+ padding: 0 18px 0 0;
447
+ }
448
+
449
+ /* Fix image height in NUpload */
450
+ .n-upload-file-list .n-upload-file.n-upload-file--image-type .n-upload-file-info .n-upload-file-info__thumbnail img {
451
+ height: 100%;
452
+ }
453
+
454
+ .n-menu.n-menu--vertical:not(.n-menu--collapsed) .n-menu-item-group-title {
455
+ display: none;
456
+ }
457
+
458
+ .ghost {
459
+ opacity: 0.4;
460
+ }
461
+
462
+ /* HTML Editor */
463
+ .ProseMirror-focused,
464
+ .ProseMirror:focus {
465
+ outline: none;
466
+ }
467
+
468
+ .externalRichEditor {
469
+ max-height: 250px;
470
+ border-radius: 3px;
471
+ background-color: transparent;
472
+ border: 1px solid rgb(224, 224, 230);
473
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
474
+ }
475
+
476
+ .light .internalRichEditor {
477
+ --gray-1: rgba(61, 37, 20, 0.05);
478
+ --gray-2: rgba(61, 37, 20, 0.08);
479
+ --gray-3: rgba(61, 37, 20, 0.12);
480
+ }
481
+
482
+ .dark .internalRichEditor {
483
+ --gray-1: rgba(255, 255, 255, 0.14);
484
+ --gray-2: rgba(255, 255, 255, 0.08);
485
+ --gray-3: rgba(255, 255, 255, 0.35);
486
+ }
487
+
488
+ .ProseMirror,
489
+ .internalRichEditor {
490
+ min-height: 100px;
491
+ }
492
+
493
+ .internalRichEditor {
494
+ min-height: 100px;
495
+ padding: 15px;
496
+ width: 100%;
497
+ }
498
+
499
+ .externalRichEditor:hover,
500
+ .externalRichEditor:focus {
501
+ border-color: rgb(var(--primaryColor));
502
+ }
503
+
504
+ .dark .externalRichEditor {
505
+ border-color: transparent;
506
+ background-color: rgba(255, 255, 255, 0.1);
507
+ resize: vertical;
508
+ }
509
+
510
+ .internalRichEditor a {
511
+ color: rgb(var(--primaryColor));
512
+ text-decoration: underline;
513
+ cursor: pointer;
514
+ }
515
+
516
+ .internalRichEditor img {
517
+ display: block;
518
+ height: auto;
519
+ margin: 1.5rem 0;
520
+ max-width: 100%;
521
+ }
522
+
523
+ .internalRichEditor .ProseMirror-selectednode {
524
+ outline: 3px solid rgb(var(--primaryColor));
525
+ }
526
+
527
+ .internalRichEditor:first-child {
528
+ margin-top: 0;
529
+ }
530
+
531
+ .internalRichEditor table {
532
+ border-collapse: collapse;
533
+ margin: 0;
534
+ overflow: hidden;
535
+ table-layout: fixed;
536
+ width: 100%;
537
+ }
538
+
539
+ .internalRichEditor table td,
540
+ .internalRichEditor table th {
541
+ border: 1px solid var(--gray-3);
542
+ box-sizing: border-box;
543
+ min-width: 1em;
544
+ padding: 6px 8px;
545
+ position: relative;
546
+ vertical-align: top;
547
+ }
548
+
549
+ .internalRichEditor table td>*,
550
+ .internalRichEditor table th>* {
551
+ margin-bottom: 0;
552
+ }
553
+
554
+ .internalRichEditor table th {
555
+ background-color: var(--gray-1);
556
+ font-weight: bold;
557
+ text-align: left;
558
+ }
559
+
560
+ .internalRichEditor table .selectedCell:after {
561
+ background: var(--gray-2);
562
+ content: "";
563
+ left: 0;
564
+ right: 0;
565
+ top: 0;
566
+ bottom: 0;
567
+ pointer-events: none;
568
+ position: absolute;
569
+ z-index: 2;
570
+ }
571
+
572
+ .internalRichEditor table .column-resize-handle {
573
+ background-color: rgb(var(--primaryColor));
574
+ bottom: -2px;
575
+ pointer-events: none;
576
+ position: absolute;
577
+ right: -2px;
578
+ top: 0;
579
+ width: 4px;
580
+ }
581
+
582
+ .internalRichEditor table .tableWrapper {
583
+ margin: 1.5rem 0;
584
+ overflow-x: auto;
585
+ }
586
+
587
+ .internalRichEditor table .resize-cursor {
588
+ cursor: col-resize;
589
+ }
590
+
591
+ .n-form-item .n-form-item-blank {
592
+ align-items: start;
593
+ }
594
+
595
+ .assetContainer {
596
+ position: relative;
597
+ border-radius: 15px 15px 0 0;
598
+ overflow: hidden;
599
+ }
600
+
601
+ .assetActions {
602
+ position: absolute;
603
+ top: 5px;
604
+ z-index: 9;
605
+ right: 5px;
606
+ }
607
+
608
+ .rtl .assetActions {
609
+ right: unset;
610
+ left: 5px;
611
+ }
612
+
613
+ .asset,
614
+ .assetActionsButton {
615
+ cursor: pointer;
616
+ }
617
+
618
+ .assetActionsButton {
619
+ background: rgb(var(--primaryColor));
620
+ padding: 4px;
621
+ border-radius: 50%;
622
+ box-shadow: 0 0 8px #00000035;
623
+ }
624
+
625
+ .asset img {
626
+ object-fit: cover !important;
627
+ }
628
+
629
+ .asset,
630
+ .asset img,
631
+ .asset.n-icon {
632
+ display: block;
633
+ width: 100px;
634
+ height: 100px;
635
+ border-radius: 15px;
636
+ }
637
+
638
+ .list .asset,
639
+ .list .asset img {
640
+ width: 40px;
641
+ height: 40px;
642
+ }
643
+
644
+ .n-upload-file-info__thumbnail .asset,
645
+ .n-upload-file-info__thumbnail .asset img {
646
+ width: 32px;
647
+ height: 32px;
648
+ }
649
+
650
+ .n-upload-file-info__thumbnail .asset.n-icon {
651
+ width: 26px;
652
+ height: 26px;
653
+ }
654
+
655
+ .n-upload-file-info__thumbnail .asset.n-icon span {
656
+ width: 18px;
657
+ height: 23px;
658
+ }
659
+
660
+ .n-upload-file-info__thumbnail .n-spin-body * {
661
+ width: 23px !important;
662
+ }
663
+
664
+ .assetContainer .asset,
665
+ .assetContainer .asset img,
666
+ .assetContainer .asset.n-icon {
667
+ width: 100%;
668
+ }
669
+
670
+ .assetDrawer .asset,
671
+ .assetDrawer .asset img,
672
+ .assetDrawer .n-icon {
673
+ height: 200px;
674
+ width: 200px;
675
+ }
676
+
677
+ .asset.n-icon span {
678
+ width: 100%;
679
+ height: 100%;
680
+ }
681
+
682
+ .rtl .n-anchor .n-anchor-rail {
683
+ right: 0;
684
+ }
685
+
686
+ .rtl .n-anchor .n-anchor-link-background {
687
+ right: calc(var(--n-rail-width) / 2);
688
+ transform: scaleX(-1);
689
+ }
690
+
691
+ .dark .asset {
692
+ background: rgb(179 179 179 / 10%);
693
+ }
694
+
695
+ .light .asset {
696
+ background: rgb(0 0 0 / 5%);
697
+ }
698
+
699
+ .asset:hover {
700
+ opacity: 0.8;
701
+ }
702
+
703
+ .asset .icon {
704
+ color: rgb(var(--primaryColor));
705
+ }
706
+
707
+ .rtl .n-input-group>.n-button:not(:first-child) .n-button__state-border,
708
+ .rtl .n-input-group>.n-button:not(:first-child) .n-button__border,
709
+ .rtl .n-input-group>.n-button:not(:first-child) {
710
+ border-top-left-radius: var(--n-border-radius) !important;
711
+ border-bottom-left-radius: var(--n-border-radius) !important;
712
+ border-top-right-radius: 0 !important;
713
+ border-bottom-right-radius: 0 !important;
714
+ }
715
+
716
+ .rtl .n-input-group {
717
+ direction: rtl;
718
+ }
719
+
720
+ .rtl .n-input-group>.n-input:not(:last-child) {
721
+ border-top-right-radius: var(--n-border-radius) !important;
722
+ border-bottom-right-radius: var(--n-border-radius) !important;
723
+ border-top-left-radius: 0 !important;
724
+ border-bottom-left-radius: 0 !important;
725
+ }
726
+
727
+ .rtl .n-input-group .n-input--round {
728
+ border-radius: 0 calc(var(--n-height) / 2) calc(var(--n-height) / 2) 0 !important;
729
+ }
730
+
731
+ #pageContent {
732
+ padding-bottom: env(safe-area-inset-bottom);
733
+ }
734
+
735
+ #iniHeader {
736
+ top: env(safe-area-inset-top);
737
+ }
738
+
739
+ #container {
740
+ top: 64px;
741
+ }
742
+
743
+ .fileType {
744
+ position: absolute;
745
+ bottom: 0;
746
+ left: 0;
747
+ background: rgb(var(--primaryColor));
748
+ color: #000;
749
+ border-radius: 0 16px;
750
+ padding: 2px 5px 0;
751
+ z-index: 9;
752
+ }
753
+
754
+ .previewOverlay {
755
+ position: relative;
756
+ height: 100px;
757
+ }
758
+
759
+ .n-modal-container:has(.assetLightbox) {
760
+ z-index: 9999999999 !important;
761
+ }
762
+
763
+ .n-base-selection .n-base-selection-tags .n-tag {
764
+ --n-close-border-radius: 15px !important;
765
+ --n-border-radius: 15px !important;
766
+ }
767
+
768
+ .flowCardRulesGroupInput>.n-select>.n-base-selection {
769
+ --n-border-radius: 0 !important;
770
+ }
771
+
772
+ .flowCardGhost {
773
+ opacity: 0.5;
774
+ }
775
+
776
+ .flowCard,
777
+ .flowCardRulesGroupInput {
778
+ cursor: move;
779
+ }
780
+
781
+ .rtl .flowCardIndex {
782
+ left: auto;
783
+ right: 0;
784
+ border-radius: 0 15px;
785
+ }
786
+
787
+ .flowCardIndex {
788
+ position: absolute;
789
+ top: 0;
790
+ left: 0;
791
+ z-index: 9;
792
+ border-radius: 15px 0;
793
+ }
794
+
795
+ .masonry {
796
+ column-count: 1;
797
+ column-gap: 1rem;
798
+ width: 100%;
799
+ }
800
+
801
+ .masonry>* {
802
+ break-inside: avoid;
803
+ margin-bottom: 1rem;
804
+ position: relative;
805
+ }
806
+
807
+ .n-color-picker .n-color-picker__fill {
808
+ overflow: hidden;
809
+ }
810
+
811
+ .settings-tabs-affix {
812
+ position: sticky;
813
+ top: 0;
814
+ padding-top: 16px;
815
+ z-index: 1;
816
+ }
817
+
818
+ .settings-tabs-affix .n-tabs.n-tabs--right {
819
+ flex-direction: row;
820
+ }
821
+
822
+ @media only screen and (min-width: 869px) and (max-width: 1200px) {
823
+ .masonry {
824
+ columns: 2;
825
+ }
826
+ }
827
+
828
+ @media only screen and (min-width: 1201px) {
829
+ .masonry {
830
+ columns: 3;
831
+ }
832
+ }
833
+
834
+ .flowCard {
835
+ min-height: 100px;
836
+ }
837
+
838
+ .flowCard>.n-card-content {
839
+ display: flex;
840
+ justify-content: center;
841
+ align-items: center;
842
+ }
843
+
844
+ .flowCard:hover .flowCardButtons {
845
+ visibility: visible;
846
+ }
847
+
848
+ .rtl .flowCardButtons {
849
+ left: 5px;
850
+ right: auto;
851
+ }
852
+
853
+ .flowCardButtons {
854
+ position: absolute;
855
+ top: 5px;
856
+ right: 5px;
857
+ z-index: 9;
858
+ visibility: hidden;
859
+ }
860
+
861
+ .n-tabs-tab[data-name="__save__"] {
862
+ background-color: rgb(var(--primaryColor),.6);
863
+ }
864
+
865
+ .n-tabs-tab[data-name="__save__"]:hover {
866
+ background-color: rgb(var(--primaryColor));
867
+ }
868
+
869
+ .flowCardRulesEdit {
870
+ display: flex;
871
+ flex-flow: column;
872
+ justify-content: start;
873
+ gap: 8px 12px;
874
+ padding: 20px 22px;
875
+ }
876
+
877
+ .flowCardRulesEdit .flowCardRules {
878
+ display: flex;
879
+ flex-flow: column;
880
+ gap: 8px 12px;
881
+ }
882
+
883
+ .flowAddCard {
884
+ width: 100%;
885
+ }
886
+
887
+ .rtl .flowCardRulesGroupInput {
888
+ flex-direction: row !important;
889
+ }
890
+
891
+ .centerCard {
892
+ height: calc(100vh - 64px - 48px);
893
+ display: flex;
894
+ justify-content: center;
895
+ align-items: center;
896
+ }
897
+
898
+ #DataTable > .n-data-table-wrapper {
899
+ border-radius: 15px;
900
+ overflow: hidden;
901
+ }
902
+
903
+ td[data-col-key=actions] {
904
+ padding: 0 !important;
905
+ text-align: center !important;
906
+ }
907
+
908
+ @media (max-width: 768px) {
909
+ #tableCard>.n-card-header {
910
+ flex-direction: column;
911
+ gap: 8px;
912
+ }
913
+
914
+ #assetsContainer>.n-card-header {
915
+ flex-direction: column;
916
+ }
917
+ }
918
+
919
+ @media print {
920
+ * {
921
+ max-height: unset !important;
922
+ color: #000 !important;
923
+ }
924
+
925
+ .n-icon {
926
+ fill: #000 !important;
927
+ color: #000 !important;
928
+ }
929
+
930
+ .printable-parent * {
931
+ visibility: visible !important;
932
+ }
933
+
934
+ .printable-parent {
935
+ background: #fff !important;
936
+ box-shadow: none !important;
937
+ overflow: visible !important;
938
+ padding: 0 !important;
939
+ margin: 0 !important;
940
+ width: 100% !important;
941
+ max-width: unset !important;
942
+ height: 100% !important;
943
+ max-height: unset !important;
944
+ }
945
+
946
+ #container {
947
+ top: 0 !important;
948
+ height: 100vh !important;
949
+ }
950
+
951
+ .printable {
952
+ position: absolute !important;
953
+ top: 0 !important;
954
+ left: 0 !important;
955
+ width: 100% !important;
956
+ height: 100% !important;
957
+ z-index: 9999989999 !important;
958
+ overflow: visible !important;
959
+ }
960
+
961
+ .printable-direct-parent {
962
+ display: flex !important;
963
+ justify-content: center !important;
964
+ align-items: center !important;
965
+ height: 100% !important;
966
+ }
967
+
968
+ #iniHeader,
969
+ .printable-direct-parent~*,
970
+ .printable-direct-parent+*,
971
+ .printable-direct-parent>*:not(.printable) {
972
+ display: none !important;
973
+ }
974
+ }