@kupola/kupola 1.2.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 (354) hide show
  1. package/CHANGELOG.md +130 -0
  2. package/INTEGRATION.md +440 -0
  3. package/PROJECT_SUMMARY.md +312 -0
  4. package/README.md +286 -0
  5. package/SKILL.md +572 -0
  6. package/css/accessibility.css +119 -0
  7. package/css/animations.css +224 -0
  8. package/css/brand-themes.css +300 -0
  9. package/css/colors_and_type.css +441 -0
  10. package/css/components-ext.css +4165 -0
  11. package/css/components.css +1483 -0
  12. package/css/kupola.css +12 -0
  13. package/css/responsive.css +697 -0
  14. package/css/scaffold.css +145 -0
  15. package/css/states.css +316 -0
  16. package/css/theme-dark.css +296 -0
  17. package/css/theme-light.css +296 -0
  18. package/css/utilities.css +171 -0
  19. package/dist/css/kupola.css +12 -0
  20. package/dist/icons/icons/activity.svg +3 -0
  21. package/dist/icons/icons/alert-circle.svg +1 -0
  22. package/dist/icons/icons/alert-triangle.svg +1 -0
  23. package/dist/icons/icons/alert.d27e24.svg +1 -0
  24. package/dist/icons/icons/alert.svg +1 -0
  25. package/dist/icons/icons/apple.svg +1 -0
  26. package/dist/icons/icons/arrow-down.svg +1 -0
  27. package/dist/icons/icons/arrow-expand.svg +1 -0
  28. package/dist/icons/icons/arrow-left.svg +1 -0
  29. package/dist/icons/icons/arrow-minimize.svg +1 -0
  30. package/dist/icons/icons/arrow-right-to-line.svg +1 -0
  31. package/dist/icons/icons/arrow-right.svg +1 -0
  32. package/dist/icons/icons/arrow-up-right.svg +1 -0
  33. package/dist/icons/icons/arrow-up.0c0c0d.svg +1 -0
  34. package/dist/icons/icons/arrow-up.svg +1 -0
  35. package/dist/icons/icons/at.svg +1 -0
  36. package/dist/icons/icons/atom.0c0c0d.svg +1 -0
  37. package/dist/icons/icons/atom.svg +1 -0
  38. package/dist/icons/icons/bar-chart-2.svg +1 -0
  39. package/dist/icons/icons/bar.svg +1 -0
  40. package/dist/icons/icons/bell.svg +1 -0
  41. package/dist/icons/icons/box.svg +1 -0
  42. package/dist/icons/icons/bug.svg +1 -0
  43. package/dist/icons/icons/button.svg +1 -0
  44. package/dist/icons/icons/calendar.svg +1 -0
  45. package/dist/icons/icons/check-circle.33c192.svg +1 -0
  46. package/dist/icons/icons/check-circle.svg +1 -0
  47. package/dist/icons/icons/check-square.svg +4 -0
  48. package/dist/icons/icons/check.d1d3db.svg +1 -0
  49. package/dist/icons/icons/check.svg +1 -0
  50. package/dist/icons/icons/chevron-down.svg +1 -0
  51. package/dist/icons/icons/chevron-left.svg +1 -0
  52. package/dist/icons/icons/chevron-right.svg +1 -0
  53. package/dist/icons/icons/chevron-up.svg +1 -0
  54. package/dist/icons/icons/circle.svg +1 -0
  55. package/dist/icons/icons/clock.svg +1 -0
  56. package/dist/icons/icons/cmd.svg +1 -0
  57. package/dist/icons/icons/code.svg +1 -0
  58. package/dist/icons/icons/columns.svg +1 -0
  59. package/dist/icons/icons/copy.svg +1 -0
  60. package/dist/icons/icons/cpu.svg +1 -0
  61. package/dist/icons/icons/dashboard.0c0c0d.svg +1 -0
  62. package/dist/icons/icons/dashboard.svg +1 -0
  63. package/dist/icons/icons/dollar.svg +1 -0
  64. package/dist/icons/icons/download.svg +1 -0
  65. package/dist/icons/icons/edit.svg +1 -0
  66. package/dist/icons/icons/extensions.svg +1 -0
  67. package/dist/icons/icons/external.svg +1 -0
  68. package/dist/icons/icons/eye.svg +1 -0
  69. package/dist/icons/icons/file-text.svg +1 -0
  70. package/dist/icons/icons/file.svg +1 -0
  71. package/dist/icons/icons/files.svg +1 -0
  72. package/dist/icons/icons/filter.svg +1 -0
  73. package/dist/icons/icons/folder-open.svg +4 -0
  74. package/dist/icons/icons/folder.svg +1 -0
  75. package/dist/icons/icons/gear.svg +1 -0
  76. package/dist/icons/icons/git.svg +1 -0
  77. package/dist/icons/icons/github.svg +1 -0
  78. package/dist/icons/icons/globe.svg +1 -0
  79. package/dist/icons/icons/grid-2x2.svg +1 -0
  80. package/dist/icons/icons/hash.svg +1 -0
  81. package/dist/icons/icons/heart.svg +1 -0
  82. package/dist/icons/icons/help-circle.svg +5 -0
  83. package/dist/icons/icons/help.svg +1 -0
  84. package/dist/icons/icons/home.svg +1 -0
  85. package/dist/icons/icons/icons.svg +153 -0
  86. package/dist/icons/icons/image.svg +1 -0
  87. package/dist/icons/icons/info-circle.svg +1 -0
  88. package/dist/icons/icons/info-square.svg +1 -0
  89. package/dist/icons/icons/info.387bff.svg +1 -0
  90. package/dist/icons/icons/info.svg +1 -0
  91. package/dist/icons/icons/input.svg +1 -0
  92. package/dist/icons/icons/key.svg +1 -0
  93. package/dist/icons/icons/layers.svg +1 -0
  94. package/dist/icons/icons/layout-grid.svg +6 -0
  95. package/dist/icons/icons/layout.svg +1 -0
  96. package/dist/icons/icons/link.svg +1 -0
  97. package/dist/icons/icons/list.svg +1 -0
  98. package/dist/icons/icons/lock.svg +1 -0
  99. package/dist/icons/icons/log-out.svg +1 -0
  100. package/dist/icons/icons/logo.svg +1 -0
  101. package/dist/icons/icons/mail.svg +1 -0
  102. package/dist/icons/icons/menu.svg +1 -0
  103. package/dist/icons/icons/message-circle.svg +1 -0
  104. package/dist/icons/icons/message-plus.svg +1 -0
  105. package/dist/icons/icons/message-square.svg +1 -0
  106. package/dist/icons/icons/mic.svg +1 -0
  107. package/dist/icons/icons/minus.svg +1 -0
  108. package/dist/icons/icons/moon.svg +1 -0
  109. package/dist/icons/icons/more-h.svg +1 -0
  110. package/dist/icons/icons/mouse.svg +1 -0
  111. package/dist/icons/icons/palette.svg +1 -0
  112. package/dist/icons/icons/panel-bottom.svg +1 -0
  113. package/dist/icons/icons/pause.svg +1 -0
  114. package/dist/icons/icons/play.svg +1 -0
  115. package/dist/icons/icons/plug.svg +1 -0
  116. package/dist/icons/icons/plus.0c0c0d.svg +1 -0
  117. package/dist/icons/icons/plus.svg +1 -0
  118. package/dist/icons/icons/refresh.svg +1 -0
  119. package/dist/icons/icons/ruler.svg +1 -0
  120. package/dist/icons/icons/scroll-text.svg +1 -0
  121. package/dist/icons/icons/search-menu.svg +1 -0
  122. package/dist/icons/icons/search.svg +1 -0
  123. package/dist/icons/icons/send.0c0c0d.svg +1 -0
  124. package/dist/icons/icons/send.svg +1 -0
  125. package/dist/icons/icons/settings.0c0c0d.svg +1 -0
  126. package/dist/icons/icons/settings.svg +1 -0
  127. package/dist/icons/icons/shield.svg +1 -0
  128. package/dist/icons/icons/sidebar-left.svg +1 -0
  129. package/dist/icons/icons/sidebar-right.svg +1 -0
  130. package/dist/icons/icons/sliders.svg +1 -0
  131. package/dist/icons/icons/sparkles.32f08c.svg +1 -0
  132. package/dist/icons/icons/sparkles.svg +1 -0
  133. package/dist/icons/icons/square.svg +1 -0
  134. package/dist/icons/icons/star.svg +1 -0
  135. package/dist/icons/icons/sun.svg +1 -0
  136. package/dist/icons/icons/table.svg +1 -0
  137. package/dist/icons/icons/terminal.svg +1 -0
  138. package/dist/icons/icons/trash.svg +1 -0
  139. package/dist/icons/icons/trending-down.svg +1 -0
  140. package/dist/icons/icons/trending-up.svg +1 -0
  141. package/dist/icons/icons/type.svg +1 -0
  142. package/dist/icons/icons/upload.svg +1 -0
  143. package/dist/icons/icons/user-circle.svg +1 -0
  144. package/dist/icons/icons/user-plus.svg +6 -0
  145. package/dist/icons/icons/user.svg +1 -0
  146. package/dist/icons/icons/users.svg +1 -0
  147. package/dist/icons/icons/warning.svg +1 -0
  148. package/dist/icons/icons/wrench.svg +1 -0
  149. package/dist/icons/icons/x-circle.svg +1 -0
  150. package/dist/icons/icons/x.svg +1 -0
  151. package/dist/icons/icons/zap.0c0c0d.svg +1 -0
  152. package/dist/icons/icons/zap.svg +1 -0
  153. package/dist/kupola.cjs.js +258 -0
  154. package/dist/kupola.cjs.js.map +1 -0
  155. package/dist/kupola.esm.js +7640 -0
  156. package/dist/kupola.esm.js.map +1 -0
  157. package/dist/kupola.umd.js +258 -0
  158. package/dist/kupola.umd.js.map +1 -0
  159. package/dist/types/kupola.d.ts +1359 -0
  160. package/dist/utils/utils/Kupola.cs +77 -0
  161. package/dist/utils/utils/Kupola.java +104 -0
  162. package/dist/utils/utils/kupola.go +120 -0
  163. package/dist/utils/utils/kupola.js +63 -0
  164. package/dist/utils/utils/kupola.py +1392 -0
  165. package/dist/utils/utils/kupola.rb +69 -0
  166. package/icons/activity.svg +3 -0
  167. package/icons/alert-circle.svg +1 -0
  168. package/icons/alert-triangle.svg +1 -0
  169. package/icons/alert.d27e24.svg +1 -0
  170. package/icons/alert.svg +1 -0
  171. package/icons/apple.svg +1 -0
  172. package/icons/arrow-down.svg +1 -0
  173. package/icons/arrow-expand.svg +1 -0
  174. package/icons/arrow-left.svg +1 -0
  175. package/icons/arrow-minimize.svg +1 -0
  176. package/icons/arrow-right-to-line.svg +1 -0
  177. package/icons/arrow-right.svg +1 -0
  178. package/icons/arrow-up-right.svg +1 -0
  179. package/icons/arrow-up.0c0c0d.svg +1 -0
  180. package/icons/arrow-up.svg +1 -0
  181. package/icons/at.svg +1 -0
  182. package/icons/atom.0c0c0d.svg +1 -0
  183. package/icons/atom.svg +1 -0
  184. package/icons/bar-chart-2.svg +1 -0
  185. package/icons/bar.svg +1 -0
  186. package/icons/bell.svg +1 -0
  187. package/icons/box.svg +1 -0
  188. package/icons/bug.svg +1 -0
  189. package/icons/button.svg +1 -0
  190. package/icons/calendar.svg +1 -0
  191. package/icons/check-circle.33c192.svg +1 -0
  192. package/icons/check-circle.svg +1 -0
  193. package/icons/check-square.svg +4 -0
  194. package/icons/check.d1d3db.svg +1 -0
  195. package/icons/check.svg +1 -0
  196. package/icons/chevron-down.svg +1 -0
  197. package/icons/chevron-left.svg +1 -0
  198. package/icons/chevron-right.svg +1 -0
  199. package/icons/chevron-up.svg +1 -0
  200. package/icons/circle.svg +1 -0
  201. package/icons/clock.svg +1 -0
  202. package/icons/cmd.svg +1 -0
  203. package/icons/code.svg +1 -0
  204. package/icons/columns.svg +1 -0
  205. package/icons/copy.svg +1 -0
  206. package/icons/cpu.svg +1 -0
  207. package/icons/dashboard.0c0c0d.svg +1 -0
  208. package/icons/dashboard.svg +1 -0
  209. package/icons/dollar.svg +1 -0
  210. package/icons/download.svg +1 -0
  211. package/icons/edit.svg +1 -0
  212. package/icons/extensions.svg +1 -0
  213. package/icons/external.svg +1 -0
  214. package/icons/eye.svg +1 -0
  215. package/icons/file-text.svg +1 -0
  216. package/icons/file.svg +1 -0
  217. package/icons/files.svg +1 -0
  218. package/icons/filter.svg +1 -0
  219. package/icons/folder-open.svg +4 -0
  220. package/icons/folder.svg +1 -0
  221. package/icons/gear.svg +1 -0
  222. package/icons/git.svg +1 -0
  223. package/icons/github.svg +1 -0
  224. package/icons/globe.svg +1 -0
  225. package/icons/grid-2x2.svg +1 -0
  226. package/icons/hash.svg +1 -0
  227. package/icons/heart.svg +1 -0
  228. package/icons/help-circle.svg +5 -0
  229. package/icons/help.svg +1 -0
  230. package/icons/home.svg +1 -0
  231. package/icons/icons.svg +153 -0
  232. package/icons/image.svg +1 -0
  233. package/icons/info-circle.svg +1 -0
  234. package/icons/info-square.svg +1 -0
  235. package/icons/info.387bff.svg +1 -0
  236. package/icons/info.svg +1 -0
  237. package/icons/input.svg +1 -0
  238. package/icons/key.svg +1 -0
  239. package/icons/layers.svg +1 -0
  240. package/icons/layout-grid.svg +6 -0
  241. package/icons/layout.svg +1 -0
  242. package/icons/link.svg +1 -0
  243. package/icons/list.svg +1 -0
  244. package/icons/lock.svg +1 -0
  245. package/icons/log-out.svg +1 -0
  246. package/icons/logo.svg +1 -0
  247. package/icons/mail.svg +1 -0
  248. package/icons/menu.svg +1 -0
  249. package/icons/message-circle.svg +1 -0
  250. package/icons/message-plus.svg +1 -0
  251. package/icons/message-square.svg +1 -0
  252. package/icons/mic.svg +1 -0
  253. package/icons/minus.svg +1 -0
  254. package/icons/moon.svg +1 -0
  255. package/icons/more-h.svg +1 -0
  256. package/icons/mouse.svg +1 -0
  257. package/icons/palette.svg +1 -0
  258. package/icons/panel-bottom.svg +1 -0
  259. package/icons/pause.svg +1 -0
  260. package/icons/play.svg +1 -0
  261. package/icons/plug.svg +1 -0
  262. package/icons/plus.0c0c0d.svg +1 -0
  263. package/icons/plus.svg +1 -0
  264. package/icons/refresh.svg +1 -0
  265. package/icons/ruler.svg +1 -0
  266. package/icons/scroll-text.svg +1 -0
  267. package/icons/search-menu.svg +1 -0
  268. package/icons/search.svg +1 -0
  269. package/icons/send.0c0c0d.svg +1 -0
  270. package/icons/send.svg +1 -0
  271. package/icons/settings.0c0c0d.svg +1 -0
  272. package/icons/settings.svg +1 -0
  273. package/icons/shield.svg +1 -0
  274. package/icons/sidebar-left.svg +1 -0
  275. package/icons/sidebar-right.svg +1 -0
  276. package/icons/sliders.svg +1 -0
  277. package/icons/sparkles.32f08c.svg +1 -0
  278. package/icons/sparkles.svg +1 -0
  279. package/icons/square.svg +1 -0
  280. package/icons/star.svg +1 -0
  281. package/icons/sun.svg +1 -0
  282. package/icons/table.svg +1 -0
  283. package/icons/terminal.svg +1 -0
  284. package/icons/trash.svg +1 -0
  285. package/icons/trending-down.svg +1 -0
  286. package/icons/trending-up.svg +1 -0
  287. package/icons/type.svg +1 -0
  288. package/icons/upload.svg +1 -0
  289. package/icons/user-circle.svg +1 -0
  290. package/icons/user-plus.svg +6 -0
  291. package/icons/user.svg +1 -0
  292. package/icons/users.svg +1 -0
  293. package/icons/warning.svg +1 -0
  294. package/icons/wrench.svg +1 -0
  295. package/icons/x-circle.svg +1 -0
  296. package/icons/x.svg +1 -0
  297. package/icons/zap.0c0c0d.svg +1 -0
  298. package/icons/zap.svg +1 -0
  299. package/js/calendar.js +184 -0
  300. package/js/carousel.js +173 -0
  301. package/js/collapse.js +127 -0
  302. package/js/color-picker.js +144 -0
  303. package/js/component.js +276 -0
  304. package/js/composition-api.js +458 -0
  305. package/js/countdown.js +144 -0
  306. package/js/data-bind.js +1286 -0
  307. package/js/datepicker.js +270 -0
  308. package/js/dialog.js +131 -0
  309. package/js/drawer.js +118 -0
  310. package/js/dropdown.js +122 -0
  311. package/js/dynamic-tags.js +156 -0
  312. package/js/error-handler.js +181 -0
  313. package/js/fileupload.js +392 -0
  314. package/js/form.js +291 -0
  315. package/js/global-events.js +203 -0
  316. package/js/heatmap.js +405 -0
  317. package/js/http.js +419 -0
  318. package/js/i18n.js +228 -0
  319. package/js/icons.js +165 -0
  320. package/js/image-preview.js +218 -0
  321. package/js/initializer.js +162 -0
  322. package/js/kupola-core.js +66 -0
  323. package/js/kupola-devtools.js +598 -0
  324. package/js/kupola-lifecycle.js +510 -0
  325. package/js/message.js +60 -0
  326. package/js/modal.js +191 -0
  327. package/js/notification.js +73 -0
  328. package/js/numberinput.js +146 -0
  329. package/js/performance.js +250 -0
  330. package/js/registry.js +205 -0
  331. package/js/router.js +396 -0
  332. package/js/security.js +189 -0
  333. package/js/select.js +143 -0
  334. package/js/slide-captcha.js +504 -0
  335. package/js/slider.js +94 -0
  336. package/js/statcard.js +219 -0
  337. package/js/tag.js +83 -0
  338. package/js/test-utils.js +251 -0
  339. package/js/theme.js +363 -0
  340. package/js/timepicker.js +238 -0
  341. package/js/tooltip.js +122 -0
  342. package/js/utils.js +1458 -0
  343. package/js/validation.js +553 -0
  344. package/js/virtual-list.js +593 -0
  345. package/package.json +105 -0
  346. package/templates/base.html +30 -0
  347. package/templates/base_dashboard.html +99 -0
  348. package/types/kupola.d.ts +1359 -0
  349. package/utils/Kupola.cs +77 -0
  350. package/utils/Kupola.java +104 -0
  351. package/utils/kupola.go +120 -0
  352. package/utils/kupola.js +63 -0
  353. package/utils/kupola.py +1392 -0
  354. package/utils/kupola.rb +69 -0
package/css/kupola.css ADDED
@@ -0,0 +1,12 @@
1
+ @import url('colors_and_type.css');
2
+ @import url('theme-light.css');
3
+ @import url('theme-dark.css');
4
+ @import url('brand-themes.css');
5
+ @import url('scaffold.css');
6
+ @import url('components.css');
7
+ @import url('components-ext.css');
8
+ @import url('states.css');
9
+ @import url('utilities.css');
10
+ @import url('responsive.css');
11
+ @import url('accessibility.css');
12
+ @import url('animations.css');
@@ -0,0 +1,697 @@
1
+ /* Responsive Design */
2
+ /* Breakpoints: Phone < 768px, Pad 768px - 1024px, PC > 1024px */
3
+
4
+ /* Phone (< 768px) */
5
+ @media (max-width: 767px) {
6
+ .ds-dashboard {
7
+ flex-direction: column;
8
+ }
9
+
10
+ .ds-dashboard__header {
11
+ height: 44px;
12
+ padding: 0 8px;
13
+ }
14
+
15
+ .ds-dashboard__header-center {
16
+ display: none;
17
+ }
18
+
19
+ .ds-dashboard__header-right {
20
+ gap: 4px;
21
+ }
22
+
23
+ .ds-dashboard__sidebar {
24
+ position: fixed;
25
+ bottom: 0;
26
+ left: 0;
27
+ right: 0;
28
+ top: auto;
29
+ height: 56px;
30
+ width: 100%;
31
+ border-right: none;
32
+ border-top: 1px solid var(--border-neutral-l1);
33
+ z-index: 100;
34
+ }
35
+
36
+ .ds-dashboard__sidebar-nav {
37
+ flex-direction: row;
38
+ justify-content: space-around;
39
+ }
40
+
41
+ .ds-dashboard__sidebar-item {
42
+ width: auto;
43
+ flex: 1;
44
+ }
45
+
46
+ .ds-dashboard__content {
47
+ padding: 8px;
48
+ margin-bottom: 64px;
49
+ }
50
+
51
+ .ds-dashboard__footer {
52
+ display: none;
53
+ }
54
+
55
+ .grid-cols-2,
56
+ .grid-cols-3,
57
+ .grid-cols-4 {
58
+ grid-template-columns: 1fr;
59
+ }
60
+
61
+ .ds-card {
62
+ padding: 12px;
63
+ }
64
+
65
+ .ds-btn {
66
+ padding: 6px 12px;
67
+ font-size: 12px;
68
+ }
69
+
70
+ .ds-btn--sm {
71
+ padding: 4px 8px;
72
+ font-size: 11px;
73
+ }
74
+
75
+ .ds-btn--lg {
76
+ padding: 8px 16px;
77
+ font-size: 13px;
78
+ }
79
+
80
+ .ds-input {
81
+ padding: 8px 12px;
82
+ font-size: 12px;
83
+ }
84
+
85
+ .ds-table {
86
+ font-size: 11px;
87
+ overflow-x: auto;
88
+ display: block;
89
+ }
90
+
91
+ .ds-table thead,
92
+ .ds-table tbody,
93
+ .ds-table tr,
94
+ .ds-table th,
95
+ .ds-table td {
96
+ display: block;
97
+ }
98
+
99
+ .ds-table thead tr {
100
+ position: absolute;
101
+ top: -9999px;
102
+ left: -9999px;
103
+ }
104
+
105
+ .ds-table tr {
106
+ border-bottom: 1px solid var(--border-neutral-l1);
107
+ }
108
+
109
+ .ds-table td {
110
+ border: none;
111
+ position: relative;
112
+ padding-left: 50%;
113
+ white-space: normal;
114
+ text-align: left;
115
+ }
116
+
117
+ .ds-table td::before {
118
+ content: attr(data-label);
119
+ position: absolute;
120
+ left: 0;
121
+ width: 45%;
122
+ padding-right: 10px;
123
+ white-space: nowrap;
124
+ font-weight: 500;
125
+ text-align: left;
126
+ }
127
+
128
+ .ds-modal {
129
+ margin: 8px;
130
+ max-height: calc(100vh - 16px);
131
+ }
132
+
133
+ .ds-statcard {
134
+ padding: 12px;
135
+ }
136
+
137
+ .ds-statcard__value {
138
+ font-size: 24px;
139
+ }
140
+
141
+ .ds-tabs__list {
142
+ flex-wrap: wrap;
143
+ }
144
+
145
+ .ds-tabs__item {
146
+ padding: 8px 12px;
147
+ font-size: 12px;
148
+ }
149
+
150
+ .ds-navlist__item {
151
+ padding: 10px 12px;
152
+ }
153
+
154
+ .ds-navlist__item-icon {
155
+ width: 24px;
156
+ height: 24px;
157
+ }
158
+
159
+ .ds-navlist__item-label {
160
+ font-size: 12px;
161
+ }
162
+
163
+ .ds-pagination__btn {
164
+ min-width: 28px;
165
+ height: 28px;
166
+ font-size: 11px;
167
+ }
168
+
169
+ .ds-tag {
170
+ padding: 2px 6px;
171
+ font-size: 10px;
172
+ }
173
+
174
+ .ds-alert {
175
+ padding: 10px 12px;
176
+ }
177
+
178
+ .ds-avatar {
179
+ width: 32px;
180
+ height: 32px;
181
+ }
182
+
183
+ .ds-avatar--sm {
184
+ width: 24px;
185
+ height: 24px;
186
+ }
187
+
188
+ .ds-avatar--lg {
189
+ width: 40px;
190
+ height: 40px;
191
+ }
192
+
193
+ .ds-titlebar {
194
+ height: 28px;
195
+ padding: 0 8px;
196
+ }
197
+
198
+ .ds-editortabs {
199
+ padding: 0 8px;
200
+ }
201
+
202
+ .ds-editortabs__tab {
203
+ padding: 6px 8px;
204
+ font-size: 11px;
205
+ }
206
+
207
+ .ds-statusbar {
208
+ height: 20px;
209
+ padding: 0 8px;
210
+ font-size: 10px;
211
+ }
212
+
213
+ .ds-pageheader {
214
+ padding: 12px 16px;
215
+ }
216
+
217
+ .ds-pageheader__title h1 {
218
+ font-size: 16px;
219
+ }
220
+
221
+ .ds-pageheader__subtitle {
222
+ font-size: 11px;
223
+ }
224
+
225
+ .ds-settingrow {
226
+ padding: 10px 0;
227
+ }
228
+
229
+ .ds-settingrow__title {
230
+ font-size: 12px;
231
+ }
232
+
233
+ .ds-settingrow__description {
234
+ font-size: 11px;
235
+ }
236
+
237
+ .ds-activityrail {
238
+ width: 40px;
239
+ }
240
+
241
+ .ds-activityrail__item {
242
+ width: 40px;
243
+ height: 40px;
244
+ }
245
+
246
+ .ds-chatcomposer {
247
+ padding: 8px;
248
+ }
249
+
250
+ .ds-chatcomposer__input-area {
251
+ padding: 4px 8px;
252
+ }
253
+
254
+ .ds-chatcomposer__model {
255
+ font-size: 10px;
256
+ padding: 2px 6px;
257
+ }
258
+
259
+ .ds-chatcomposer__input {
260
+ font-size: 12px;
261
+ }
262
+
263
+ .ds-tablepanel {
264
+ border-radius: 4px;
265
+ }
266
+
267
+ .ds-tablepanel__toolbar {
268
+ padding: 8px;
269
+ }
270
+
271
+ .ds-tablepanel__footer {
272
+ padding: 6px 8px;
273
+ font-size: 11px;
274
+ }
275
+
276
+ .ds-kbd {
277
+ padding: 1px 4px;
278
+ font-size: 10px;
279
+ }
280
+ }
281
+
282
+ /* Pad (768px - 1024px) */
283
+ @media (min-width: 768px) and (max-width: 1024px) {
284
+ .ds-dashboard__sidebar {
285
+ width: 56px;
286
+ }
287
+
288
+ .ds-dashboard__header {
289
+ padding: 0 12px;
290
+ }
291
+
292
+ .ds-dashboard__content {
293
+ padding: 12px;
294
+ }
295
+
296
+ .grid-cols-4 {
297
+ grid-template-columns: repeat(2, 1fr);
298
+ }
299
+
300
+ .grid-cols-3 {
301
+ grid-template-columns: repeat(2, 1fr);
302
+ }
303
+
304
+ .ds-card {
305
+ padding: 16px;
306
+ }
307
+
308
+ .ds-statcard__value {
309
+ font-size: 28px;
310
+ }
311
+
312
+ .ds-table {
313
+ font-size: 12px;
314
+ }
315
+
316
+ .ds-btn {
317
+ padding: 7px 14px;
318
+ }
319
+
320
+ .ds-input {
321
+ padding: 10px 14px;
322
+ }
323
+
324
+ .ds-titlebar {
325
+ height: 30px;
326
+ }
327
+
328
+ .ds-statusbar {
329
+ height: 22px;
330
+ font-size: 11px;
331
+ }
332
+
333
+ .ds-pageheader {
334
+ padding: 14px 20px;
335
+ }
336
+
337
+ .ds-pageheader__title h1 {
338
+ font-size: 17px;
339
+ }
340
+ }
341
+
342
+ /* PC (> 1024px) */
343
+ @media (min-width: 1025px) {
344
+ .ds-dashboard__sidebar {
345
+ width: 48px;
346
+ }
347
+
348
+ .ds-dashboard__header {
349
+ padding: 0 16px;
350
+ }
351
+
352
+ .ds-dashboard__content {
353
+ padding: 16px;
354
+ }
355
+
356
+ .grid-cols-4 {
357
+ grid-template-columns: repeat(4, 1fr);
358
+ }
359
+
360
+ .grid-cols-3 {
361
+ grid-template-columns: repeat(3, 1fr);
362
+ }
363
+
364
+ .grid-cols-2 {
365
+ grid-template-columns: repeat(2, 1fr);
366
+ }
367
+ }
368
+
369
+ /* Touch device optimizations */
370
+ @media (hover: none) {
371
+ .ds-btn:hover {
372
+ transform: none;
373
+ }
374
+
375
+ .ds-card:hover {
376
+ border-color: var(--border-neutral-l1);
377
+ }
378
+
379
+ .ds-navlist__item:hover {
380
+ background-color: transparent;
381
+ }
382
+
383
+ .ds-navlist__item.is-active:hover {
384
+ background-color: var(--bg-brand);
385
+ }
386
+
387
+ .ds-tab__item:hover {
388
+ background-color: transparent;
389
+ }
390
+
391
+ .ds-editortabs__tab:hover {
392
+ background-color: transparent;
393
+ }
394
+
395
+ .ds-activityrail__item:hover {
396
+ background-color: transparent;
397
+ }
398
+
399
+ .ds-statusbar__item:hover {
400
+ color: var(--text-secondary);
401
+ }
402
+ }
403
+
404
+ /* High contrast mode */
405
+ @media (prefers-contrast: high) {
406
+ :root {
407
+ --border-neutral-l1: #000000;
408
+ --border-neutral-l2: #000000;
409
+ --border-neutral-l3: #000000;
410
+ }
411
+ }
412
+
413
+ /* Reduced motion */
414
+ @media (prefers-reduced-motion: reduce) {
415
+ *,
416
+ *::before,
417
+ *::after {
418
+ animation-duration: 0.01ms !important;
419
+ animation-iteration-count: 1 !important;
420
+ transition-duration: 0.01ms !important;
421
+ }
422
+ }
423
+
424
+ /* Additional responsive improvements */
425
+
426
+ /* Phone (< 768px) - Additional components */
427
+ @media (max-width: 767px) {
428
+ .ds-progress-circle {
429
+ width: 60px;
430
+ height: 60px;
431
+ }
432
+
433
+ .ds-progress-circle__value {
434
+ font-size: 12px;
435
+ }
436
+
437
+ .ds-progress-circle__label {
438
+ font-size: 10px;
439
+ }
440
+
441
+ .ds-slider {
442
+ padding: 6px 0;
443
+ }
444
+
445
+ .ds-slider__label {
446
+ font-size: 11px;
447
+ }
448
+
449
+ .ds-slider__value {
450
+ font-size: 11px;
451
+ }
452
+
453
+ .ds-datepicker {
454
+ width: 100%;
455
+ }
456
+
457
+ .ds-datepicker__calendar {
458
+ width: 100%;
459
+ left: 0;
460
+ }
461
+
462
+ .ds-fileupload__dropzone {
463
+ padding: 20px;
464
+ }
465
+
466
+ .ds-fileupload__icon {
467
+ width: 36px;
468
+ height: 36px;
469
+ }
470
+
471
+ .ds-fileupload__title {
472
+ font-size: 12px;
473
+ }
474
+
475
+ .ds-fileupload__subtitle {
476
+ font-size: 11px;
477
+ }
478
+
479
+ .ds-timeline {
480
+ padding: 4px 0;
481
+ }
482
+
483
+ .ds-timeline__item {
484
+ padding: 10px 0;
485
+ gap: 8px;
486
+ margin-left: 4px;
487
+ }
488
+
489
+ .ds-timeline__marker {
490
+ width: 10px;
491
+ height: 10px;
492
+ margin-left: -6px;
493
+ }
494
+
495
+ .ds-timeline__time {
496
+ font-size: 10px;
497
+ }
498
+
499
+ .ds-timeline__title {
500
+ font-size: 12px;
501
+ }
502
+
503
+ .ds-timeline__description {
504
+ font-size: 11px;
505
+ }
506
+
507
+ .ds-tablepanel__filters {
508
+ flex-wrap: wrap;
509
+ gap: 4px;
510
+ }
511
+ }
512
+
513
+ /* Pad (768px - 1024px) - Additional components */
514
+ @media (min-width: 768px) and (max-width: 1024px) {
515
+ .ds-progress-circle {
516
+ width: 70px;
517
+ height: 70px;
518
+ }
519
+
520
+ .ds-progress-circle__value {
521
+ font-size: 13px;
522
+ }
523
+
524
+ .ds-datepicker {
525
+ width: 220px;
526
+ }
527
+
528
+ .ds-datepicker__calendar {
529
+ width: 260px;
530
+ }
531
+
532
+ .ds-fileupload__dropzone {
533
+ padding: 24px;
534
+ }
535
+
536
+ .ds-timeline__item {
537
+ padding: 10px 0;
538
+ }
539
+ }
540
+
541
+ /* Sidebar collapse toggle button */
542
+ .ds-dashboard__sidebar-toggle {
543
+ display: none;
544
+ }
545
+
546
+ @media (max-width: 1024px) {
547
+ .ds-dashboard__sidebar-toggle {
548
+ display: flex;
549
+ align-items: center;
550
+ justify-content: center;
551
+ width: 32px;
552
+ height: 32px;
553
+ background: none;
554
+ border: none;
555
+ cursor: pointer;
556
+ color: var(--icon-secondary);
557
+ border-radius: 4px;
558
+ transition: background-color 0.15s ease, color 0.15s ease;
559
+ }
560
+
561
+ .ds-dashboard__sidebar-toggle:hover {
562
+ background-color: var(--bg-overlay-l1);
563
+ color: var(--icon-default);
564
+ }
565
+ }
566
+
567
+ /* Sidebar collapsed state */
568
+ .ds-dashboard__sidebar.is-collapsed {
569
+ width: 0;
570
+ overflow: hidden;
571
+ padding: 0;
572
+ }
573
+
574
+ .ds-dashboard__sidebar.is-collapsed + .ds-dashboard__content {
575
+ margin-left: 0;
576
+ }
577
+
578
+ /* Font size adjustments based on viewport width */
579
+ @media (max-width: 767px) {
580
+ html {
581
+ font-size: 14px;
582
+ }
583
+
584
+ .text-xs {
585
+ font-size: 10px;
586
+ }
587
+
588
+ .text-sm {
589
+ font-size: 11px;
590
+ }
591
+
592
+ .text-base {
593
+ font-size: 12px;
594
+ }
595
+
596
+ .text-lg {
597
+ font-size: 14px;
598
+ }
599
+
600
+ .text-xl {
601
+ font-size: 16px;
602
+ }
603
+
604
+ .text-2xl {
605
+ font-size: 18px;
606
+ }
607
+ }
608
+
609
+ @media (min-width: 768px) and (max-width: 1024px) {
610
+ html {
611
+ font-size: 15px;
612
+ }
613
+
614
+ .text-xs {
615
+ font-size: 11px;
616
+ }
617
+
618
+ .text-sm {
619
+ font-size: 12px;
620
+ }
621
+
622
+ .text-base {
623
+ font-size: 13px;
624
+ }
625
+
626
+ .text-lg {
627
+ font-size: 15px;
628
+ }
629
+
630
+ .text-xl {
631
+ font-size: 17px;
632
+ }
633
+
634
+ .text-2xl {
635
+ font-size: 19px;
636
+ }
637
+ }
638
+
639
+ @media (min-width: 1025px) {
640
+ html {
641
+ font-size: 16px;
642
+ }
643
+
644
+ .text-xs {
645
+ font-size: 11px;
646
+ }
647
+
648
+ .text-sm {
649
+ font-size: 13px;
650
+ }
651
+
652
+ .text-base {
653
+ font-size: 14px;
654
+ }
655
+
656
+ .text-lg {
657
+ font-size: 16px;
658
+ }
659
+
660
+ .text-xl {
661
+ font-size: 18px;
662
+ }
663
+
664
+ .text-2xl {
665
+ font-size: 20px;
666
+ }
667
+ }
668
+
669
+ /* Landscape orientation */
670
+ @media (orientation: landscape) and (max-width: 1024px) {
671
+ .ds-dashboard__sidebar {
672
+ height: 48px;
673
+ }
674
+
675
+ .ds-dashboard__content {
676
+ margin-bottom: 56px;
677
+ }
678
+
679
+ .grid-cols-4 {
680
+ grid-template-columns: repeat(2, 1fr);
681
+ }
682
+ }
683
+
684
+ /* Very small screens */
685
+ @media (max-width: 320px) {
686
+ .ds-dashboard__header-right {
687
+ gap: 2px;
688
+ }
689
+
690
+ .ds-dashboard__logo span {
691
+ display: none;
692
+ }
693
+
694
+ .ds-btn--sm {
695
+ padding: 2px 6px;
696
+ }
697
+ }