@zeyos/zx 4.3.4 → 5.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 (231) hide show
  1. package/CHANGELOG.md +438 -0
  2. package/README.md +49 -10
  3. package/dist/types/components/activity-item/activity-item.d.ts +351 -0
  4. package/dist/types/components/activity-list/activity-list.d.ts +217 -0
  5. package/dist/types/components/app-sidebar/app-sidebar.d.ts +33 -3
  6. package/dist/types/components/avatar/avatar.d.ts +46 -7
  7. package/dist/types/components/badge/badge.d.ts +21 -1
  8. package/dist/types/components/button/button.d.ts +23 -0
  9. package/dist/types/components/calendar/calendar.d.ts +19 -0
  10. package/dist/types/components/card/card.d.ts +7 -0
  11. package/dist/types/components/card-view/card-view.d.ts +11 -3
  12. package/dist/types/components/card-view/record-card.d.ts +7 -1
  13. package/dist/types/components/chart/chart.d.ts +10 -0
  14. package/dist/types/components/checklist/checklist.d.ts +9 -0
  15. package/dist/types/components/code-editor/code-editor.d.ts +149 -0
  16. package/dist/types/components/code-editor/field-adapter.d.ts +5 -0
  17. package/dist/types/components/context-menu/context-menu.d.ts +18 -2
  18. package/dist/types/components/date-picker/date-picker.d.ts +8 -0
  19. package/dist/types/components/date-picker/time-picker.d.ts +7 -0
  20. package/dist/types/components/datebox/date-range-box.d.ts +5 -1
  21. package/dist/types/components/datebox/datebox.d.ts +7 -2
  22. package/dist/types/components/dialog/dialog.d.ts +75 -6
  23. package/dist/types/components/dropdown/dropdown.d.ts +2 -2
  24. package/dist/types/components/entity-ref/entity-ref.d.ts +331 -0
  25. package/dist/types/components/field/field.d.ts +24 -2
  26. package/dist/types/components/fieldset/fieldset.d.ts +19 -1
  27. package/dist/types/components/file-item/file-item.d.ts +262 -0
  28. package/dist/types/components/file-list/file-list.d.ts +171 -0
  29. package/dist/types/components/filter/filter.d.ts +91 -36
  30. package/dist/types/components/filter-panel/filter-panel.d.ts +449 -0
  31. package/dist/types/components/form/form.d.ts +12 -1
  32. package/dist/types/components/kanban-view/kanban-card.d.ts +146 -0
  33. package/dist/types/components/kanban-view/kanban-view.d.ts +170 -4
  34. package/dist/types/components/launcher/launcher.d.ts +278 -26
  35. package/dist/types/components/list-toolbar/list-toolbar.d.ts +599 -0
  36. package/dist/types/components/menu-button/menu-button.d.ts +37 -42
  37. package/dist/types/components/message/message.d.ts +126 -17
  38. package/dist/types/components/modal/modal.d.ts +61 -2
  39. package/dist/types/components/navigation-bar/navigation-bar.d.ts +105 -21
  40. package/dist/types/components/panel/panel.d.ts +7 -0
  41. package/dist/types/components/search/search.d.ts +7 -0
  42. package/dist/types/components/select/color.d.ts +12 -0
  43. package/dist/types/components/select/glyphs.d.ts +124 -0
  44. package/dist/types/components/select/select.d.ts +15 -3
  45. package/dist/types/components/sort-control/sort-control.d.ts +105 -0
  46. package/dist/types/components/stat-tile/stat-tile.d.ts +288 -0
  47. package/dist/types/components/tabbox/tabbox.d.ts +16 -0
  48. package/dist/types/components/table/table.d.ts +190 -1
  49. package/dist/types/components/table-view/table-view.d.ts +11 -5
  50. package/dist/types/components/tag-picker/tag-picker.d.ts +21 -4
  51. package/dist/types/components/timebox/timebox.d.ts +7 -0
  52. package/dist/types/components/tree/tree.d.ts +13 -0
  53. package/dist/types/components/value-list/value-list.d.ts +8 -0
  54. package/dist/types/components/view/record-view.d.ts +96 -5
  55. package/dist/types/core/breakpoint.d.ts +1 -1
  56. package/dist/types/core/icons.d.ts +37 -22
  57. package/dist/types/core/motion.d.ts +59 -0
  58. package/dist/types/core/overlay-host.d.ts +15 -1
  59. package/dist/types/index.d.ts +16 -3
  60. package/dist/types/internal/app-rail.d.ts +10 -0
  61. package/dist/types/internal/menu-items.d.ts +134 -0
  62. package/dist/types/zeyos/connect.d.ts +6 -0
  63. package/dist/types/zeyos/form.d.ts +50 -9
  64. package/dist/types/zeyos/index.d.ts +1 -1
  65. package/dist/types/zeyos/query.d.ts +79 -0
  66. package/dist/types/zeyos/schema.d.ts +24 -1
  67. package/dist/types/zeyos/table.d.ts +100 -14
  68. package/dist/types/zeyos/view.d.ts +10 -0
  69. package/dist/zx-zeyos.esm.js +2206 -489
  70. package/dist/zx-zeyos.esm.min.js +56 -1
  71. package/dist/zx.css +3322 -724
  72. package/dist/zx.esm.js +12244 -5809
  73. package/dist/zx.esm.min.js +58 -3
  74. package/dist/zx.global.js +12246 -5811
  75. package/dist/zx.global.min.js +58 -3
  76. package/dist/zx.min.css +1 -1
  77. package/docs/api.json +1683 -146
  78. package/docs/llms.md +777 -110
  79. package/docs/llms.txt +14 -8
  80. package/package.json +1 -1
  81. package/src/components/account-menu/account-menu.css +35 -10
  82. package/src/components/activity-item/activity-item.css +137 -0
  83. package/src/components/activity-item/activity-item.js +602 -0
  84. package/src/components/activity-list/activity-list.css +99 -0
  85. package/src/components/activity-list/activity-list.js +409 -0
  86. package/src/components/app-icon/app-icon.css +1 -1
  87. package/src/components/app-rail/app-rail.css +191 -22
  88. package/src/components/app-sidebar/app-sidebar.css +349 -24
  89. package/src/components/app-sidebar/app-sidebar.js +86 -11
  90. package/src/components/aurora/aurora.css +5 -3
  91. package/src/components/avatar/avatar.css +32 -7
  92. package/src/components/avatar/avatar.js +72 -8
  93. package/src/components/badge/badge.css +54 -2
  94. package/src/components/badge/badge.js +29 -2
  95. package/src/components/button/button.css +74 -8
  96. package/src/components/button/button.js +44 -1
  97. package/src/components/calendar/calendar.css +46 -46
  98. package/src/components/calendar/calendar.js +33 -3
  99. package/src/components/card/card.css +2 -2
  100. package/src/components/card/card.js +12 -1
  101. package/src/components/card-view/card-view.css +10 -7
  102. package/src/components/card-view/card-view.js +25 -9
  103. package/src/components/card-view/record-card.js +7 -3
  104. package/src/components/chart/chart.css +4 -1
  105. package/src/components/chart/chart.js +12 -0
  106. package/src/components/check-button/check-button.css +10 -2
  107. package/src/components/checklist/checklist.css +9 -2
  108. package/src/components/checklist/checklist.js +11 -5
  109. package/src/components/checklist/field-adapter.js +3 -1
  110. package/src/components/code-editor/code-editor.css +68 -0
  111. package/src/components/code-editor/code-editor.js +306 -0
  112. package/src/components/code-editor/field-adapter.js +34 -0
  113. package/src/components/context-menu/context-menu.css +87 -5
  114. package/src/components/context-menu/context-menu.js +22 -30
  115. package/src/components/copy/copy-button.css +6 -0
  116. package/src/components/copy/copy-input.css +8 -3
  117. package/src/components/data-filter/data-filter.css +5 -4
  118. package/src/components/date-picker/date-picker.css +6 -6
  119. package/src/components/date-picker/date-picker.js +22 -8
  120. package/src/components/date-picker/date-range-picker.css +3 -3
  121. package/src/components/date-picker/month-picker.js +3 -3
  122. package/src/components/date-picker/time-picker.css +1 -1
  123. package/src/components/date-picker/time-picker.js +20 -8
  124. package/src/components/datebox/date-range-box.css +79 -2
  125. package/src/components/datebox/date-range-box.js +13 -2
  126. package/src/components/datebox/datebox.css +79 -2
  127. package/src/components/datebox/datebox.js +13 -2
  128. package/src/components/dialog/dialog.css +26 -0
  129. package/src/components/dialog/dialog.js +174 -70
  130. package/src/components/dropdown/dropdown.css +1 -1
  131. package/src/components/dropdown/dropdown.js +7 -5
  132. package/src/components/empty-state/empty-state.css +2 -2
  133. package/src/components/entity-ref/entity-ref.css +182 -0
  134. package/src/components/entity-ref/entity-ref.js +496 -0
  135. package/src/components/field/field.css +28 -9
  136. package/src/components/field/field.js +68 -26
  137. package/src/components/field-upload/field-upload.css +1 -1
  138. package/src/components/fieldset/fieldset.css +5 -3
  139. package/src/components/fieldset/fieldset.js +28 -5
  140. package/src/components/file-item/file-item.css +88 -0
  141. package/src/components/file-item/file-item.js +505 -0
  142. package/src/components/file-list/file-list.css +51 -0
  143. package/src/components/file-list/file-list.js +320 -0
  144. package/src/components/filter/filter.css +27 -1
  145. package/src/components/filter/filter.js +205 -47
  146. package/src/components/filter-panel/filter-panel.css +104 -0
  147. package/src/components/filter-panel/filter-panel.js +964 -0
  148. package/src/components/finder/finder.css +15 -13
  149. package/src/components/form/form.css +5 -4
  150. package/src/components/form/form.js +11 -2
  151. package/src/components/grid/grid.css +1 -1
  152. package/src/components/groupbox/groupbox.css +1 -1
  153. package/src/components/kanban-view/kanban-card.js +247 -0
  154. package/src/components/kanban-view/kanban-view.css +226 -8
  155. package/src/components/kanban-view/kanban-view.js +255 -12
  156. package/src/components/launcher/launcher.css +107 -25
  157. package/src/components/launcher/launcher.js +557 -63
  158. package/src/components/list-toolbar/list-toolbar.css +194 -0
  159. package/src/components/list-toolbar/list-toolbar.js +851 -0
  160. package/src/components/master-panel/master-panel.css +2 -0
  161. package/src/components/menu-button/menu-button.css +87 -5
  162. package/src/components/menu-button/menu-button.js +86 -46
  163. package/src/components/message/message.css +38 -5
  164. package/src/components/message/message.js +230 -17
  165. package/src/components/modal/modal.css +15 -0
  166. package/src/components/modal/modal.js +159 -3
  167. package/src/components/navigation-bar/navigation-bar.css +95 -11
  168. package/src/components/navigation-bar/navigation-bar.js +171 -4
  169. package/src/components/number-field/field-adapter.js +1 -0
  170. package/src/components/number-field/number-field.css +70 -0
  171. package/src/components/number-field/number-field.js +2 -0
  172. package/src/components/pagination/pagination.css +8 -6
  173. package/src/components/panel/panel.css +1 -1
  174. package/src/components/panel/panel.js +13 -2
  175. package/src/components/rating/rating.css +7 -0
  176. package/src/components/search/search.js +17 -5
  177. package/src/components/select/color.js +22 -0
  178. package/src/components/select/field-adapter.js +6 -1
  179. package/src/components/select/glyphs.js +165 -0
  180. package/src/components/select/select.css +138 -45
  181. package/src/components/select/select.js +86 -47
  182. package/src/components/sheet/sheet.css +11 -8
  183. package/src/components/slider/slider.css +16 -2
  184. package/src/components/slider/slider.js +1 -1
  185. package/src/components/sort-control/sort-control.css +20 -0
  186. package/src/components/sort-control/sort-control.js +140 -0
  187. package/src/components/stat-tile/stat-tile.css +208 -0
  188. package/src/components/stat-tile/stat-tile.js +601 -0
  189. package/src/components/tabbox/tabbox.css +32 -27
  190. package/src/components/tabbox/tabbox.js +17 -2
  191. package/src/components/table/table.css +155 -31
  192. package/src/components/table/table.js +386 -33
  193. package/src/components/table-view/table-view.css +8 -2
  194. package/src/components/table-view/table-view.js +21 -6
  195. package/src/components/tag-picker/tag-picker.css +86 -6
  196. package/src/components/tag-picker/tag-picker.js +25 -8
  197. package/src/components/timebox/timebox.css +22 -2
  198. package/src/components/timebox/timebox.js +18 -5
  199. package/src/components/toggle/toggle.css +12 -1
  200. package/src/components/toolbar/toolbar.js +2 -2
  201. package/src/components/tooltip/tooltip.css +4 -0
  202. package/src/components/tooltip/tooltip.js +10 -3
  203. package/src/components/tree/tree.css +25 -16
  204. package/src/components/tree/tree.js +31 -0
  205. package/src/components/value-list/value-list.css +3 -3
  206. package/src/components/value-list/value-list.js +22 -6
  207. package/src/components/view/record-view.css +5 -0
  208. package/src/components/view/record-view.js +100 -7
  209. package/src/core/breakpoint.js +1 -1
  210. package/src/core/icons.js +259 -57
  211. package/src/core/motion.js +147 -0
  212. package/src/core/overlay-host.js +21 -2
  213. package/src/index.js +30 -3
  214. package/src/internal/app-rail.js +18 -1
  215. package/src/internal/menu-items.js +142 -0
  216. package/src/zeyos/connect.js +6 -2
  217. package/src/zeyos/form.js +67 -27
  218. package/src/zeyos/index.js +1 -1
  219. package/src/zeyos/query.js +153 -0
  220. package/src/zeyos/schema.js +144 -27
  221. package/src/zeyos/table.js +68 -5
  222. package/src/zeyos/view.js +6 -0
  223. package/styles/base.css +56 -0
  224. package/styles/icons.css +11 -1
  225. package/styles/print.css +192 -0
  226. package/styles/tokens/dark.css +113 -37
  227. package/styles/tokens/global.css +121 -27
  228. package/styles/tokens/semantic.css +100 -31
  229. package/styles/tokens/themes.css +7 -6
  230. package/styles/zx.css +11 -1
  231. package/styles/tokens/density.css +0 -9
@@ -1,11 +1,14 @@
1
1
  /*
2
2
  * Tier-2 semantic tokens — light theme (the default).
3
3
  *
4
- * The mapping uses white surfaces, restrained neutral hover/muted fills, quiet borders and inputs,
5
- * strong body text, and compact control geometry (32px controls, `--radius` corners, a 3px
6
- * translucent focus ring).
4
+ * The mapping uses a white canvas with a grey chrome tone beside it, translucent neutral
5
+ * hover/current fills, quiet borders and inputs, strong body text, a categorical tone palette
6
+ * apart from both the accent and the status colours, and one tight control geometry (30px
7
+ * controls, `--zx-radius` corners, a 3px translucent focus ring). There is a single geometry: an
8
+ * application that wants a different rhythm sets `--zx-space-unit` and `--zx-control-height`
9
+ * rather than switching a mode.
7
10
  *
8
- * The accent roles read `--zx-accent-*` rather than the green ramp directly, which is what lets
11
+ * The accent roles read `--zx-accent-*` rather than the emerald ramp directly, which is what lets
9
12
  * `tokens/themes.css` retheme them. Status colours keep their own ramps on purpose — see the note
10
13
  * in that file.
11
14
  */
@@ -16,15 +19,21 @@
16
19
  --zx-color-bg-surface: var(--zx-gray-0);
17
20
  --zx-color-bg-raised: var(--zx-gray-0);
18
21
  --zx-color-bg-control: var(--zx-gray-0);
22
+ /* Navigation and inspector columns: one clear step below the canvas, so tone rather than a
23
+ line separates them from the working area. */
24
+ --zx-color-bg-chrome: color-mix(in srgb, var(--zx-gray-100) 80%, var(--zx-gray-50));
19
25
  --zx-color-bg-muted: var(--zx-gray-100);
20
- --zx-color-bg-hover: var(--zx-gray-100);
21
26
  --zx-color-bg-selected: color-mix(in srgb, var(--zx-accent-600) 10%, var(--zx-gray-0));
22
27
  --zx-color-bg-backdrop: color-mix(in srgb, var(--zx-gray-950) 50%, transparent);
23
28
  --zx-color-border: var(--zx-gray-200);
24
29
  --zx-color-border-strong: var(--zx-gray-300);
25
30
  --zx-color-border-control: var(--zx-gray-200);
26
31
  --zx-color-text: var(--zx-gray-950);
27
- --zx-color-text-muted: var(--zx-gray-500);
32
+ /* Between the 500 and 600 stops, so secondary text holds 4.5:1 on the chrome tone and on a
33
+ current row there, not only on white. */
34
+ --zx-color-text-muted: color-mix(in srgb, var(--zx-gray-500) 50%, var(--zx-gray-600));
35
+ /* Icons and non-essential meta: at least 3:1 on the surface, the chrome, and a current row. */
36
+ --zx-color-text-subtle: color-mix(in srgb, var(--zx-gray-500) 70%, var(--zx-gray-400));
28
37
  --zx-color-text-placeholder: var(--zx-gray-400);
29
38
  --zx-color-text-invert: var(--zx-gray-50);
30
39
  --zx-color-app-icon-glyph: var(--zx-gray-0);
@@ -34,7 +43,15 @@
34
43
  --zx-color-accent-active: var(--zx-accent-700);
35
44
  --zx-color-accent-subtle: color-mix(in srgb, var(--zx-accent-600) 10%, var(--zx-gray-0));
36
45
  --zx-color-on-accent: var(--zx-gray-0);
37
- --zx-color-danger: var(--zx-red-500);
46
+ /* The solid accent — the one primary action on a screen. Both themes fill it with the 600 stop
47
+ and white ink; `--zx-color-accent` stays the stop each theme reads best as text and marks. */
48
+ --zx-color-accent-solid: var(--zx-accent-600);
49
+ --zx-color-accent-solid-hover: var(--zx-accent-700);
50
+ --zx-color-accent-solid-active: color-mix(in srgb, var(--zx-accent-700) 82%, var(--zx-gray-950));
51
+ --zx-color-on-accent-solid: var(--zx-gray-0);
52
+ /* Status colours are ink as often as fill (badges, messages, field errors): each keeps 4.5:1 on
53
+ every surface and on its own tint. Red 500 does not, so danger takes the 600 step. */
54
+ --zx-color-danger: var(--zx-red-600);
38
55
  --zx-color-danger-bg: color-mix(in srgb, var(--zx-red-500) 10%, var(--zx-gray-0));
39
56
  --zx-color-warning: var(--zx-amber-600);
40
57
  --zx-color-warning-bg: color-mix(in srgb, var(--zx-amber-400) 18%, var(--zx-gray-0));
@@ -42,29 +59,100 @@
42
59
  --zx-color-success-bg: color-mix(in srgb, var(--zx-green-600) 10%, var(--zx-gray-0));
43
60
  --zx-color-info: var(--zx-blue-600);
44
61
  --zx-color-info-bg: color-mix(in srgb, var(--zx-blue-500) 10%, var(--zx-gray-0));
45
- --zx-color-ring: var(--zx-color-accent);
46
- --zx-focus-ring: 0 0 0 3px color-mix(in srgb, var(--zx-color-ring) 45%, transparent);
47
- --zx-control-height: 32px;
62
+ --zx-color-tone-blue-fg: var(--zx-tone-blue-700);
63
+ --zx-color-tone-teal-fg: var(--zx-tone-teal-700);
64
+ --zx-color-tone-green-fg: var(--zx-tone-green-700);
65
+ --zx-color-tone-amber-fg: var(--zx-tone-amber-700);
66
+ --zx-color-tone-orange-fg: var(--zx-tone-orange-700);
67
+ --zx-color-tone-red-fg: var(--zx-tone-red-700);
68
+ --zx-color-tone-pink-fg: var(--zx-tone-pink-700);
69
+ --zx-color-tone-violet-fg: var(--zx-tone-violet-700);
70
+ --zx-color-tone-slate-fg: var(--zx-tone-slate-700);
71
+ /* Chart series, in assignment order. The order is what keeps neighbours apart (adjacent pairs
72
+ at ΔE ≥ 8 under protanopia and deuteranopia), and it deliberately does not open on the
73
+ accent. The 500 stops clear 3:1 against the light and the dark surface alike, so the dark
74
+ theme keeps this list. */
75
+ --zx-color-chart-1: var(--zx-tone-blue-500);
76
+ --zx-color-chart-2: var(--zx-tone-orange-500);
77
+ --zx-color-chart-3: var(--zx-tone-teal-500);
78
+ --zx-color-chart-4: var(--zx-tone-amber-500);
79
+ --zx-color-chart-5: var(--zx-tone-pink-500);
80
+ --zx-color-chart-6: var(--zx-tone-green-500);
81
+ --zx-color-chart-7: var(--zx-tone-violet-500);
82
+ --zx-color-chart-8: var(--zx-tone-red-500);
83
+ --zx-control-height: 30px;
48
84
  --zx-control-pad-x: 10px;
49
85
  --zx-control-radius: var(--zx-radius-lg);
50
86
  --zx-control-font-size: var(--zx-text-md);
51
87
  --zx-control-font-weight: 500;
52
88
  --zx-overlay-shadow: var(--zx-shadow-3);
89
+ /* An item being dragged — a lifted card, a row in flight, a drag preview: a tight contact
90
+ shadow and a wide soft one, clearly higher than a resting card and lower than an overlay. */
91
+ --zx-drag-shadow: 0 2px 4px -1px color-mix(in srgb, var(--zx-gray-950) 10%, transparent),
92
+ 0 12px 28px -6px color-mix(in srgb, var(--zx-gray-950) 22%, transparent);
53
93
  /* Blur applied behind a backdrop that asked for it. Theme-independent, so light defines it once. */
54
94
  --zx-overlay-blur: 8px;
55
95
  --zx-color-glass-border: color-mix(in srgb, var(--zx-gray-0) 24%, transparent);
56
96
  --zx-color-glass-highlight: color-mix(in srgb, var(--zx-gray-0) 24%, transparent);
57
97
  --zx-color-glass-highlight-strong: color-mix(in srgb, var(--zx-gray-0) 38%, transparent);
58
- --zx-color-app-icon-depth: color-mix(in srgb, var(--zx-color-app-icon-shade) 26%, transparent);
59
98
  /* AppIcon is a dark chromatic lens: colour lives in its rim and low bloom, not a glossy fill. */
60
99
  /* Strengths remain inherited, while each AppIcon mixes them with its own module colour. */
61
100
  --zx-app-icon-core-strength: 52%;
62
101
  --zx-app-icon-rim-strength: 58%;
63
102
  --zx-app-icon-bloom-strength: 64%;
64
103
  --zx-app-icon-specular-strength: 72%;
65
- --zx-app-icon-rim-base: var(--zx-color-glass-highlight);
66
104
  --zx-app-icon-halo-size: 14px;
67
105
  --zx-app-icon-halo-strength: 22%;
106
+ --zx-color-overlay-backdrop: color-mix(in srgb, var(--zx-gray-950) 28%, transparent);
107
+ --zx-overlay-specular-strength: 48%;
108
+ --zx-glass-blur: 8px;
109
+ --zx-glass-saturation: 130%;
110
+ --zx-glass-color-strength: 82%;
111
+ /* Material filters are roles, not component recipes. Aurora remains a separate canvas layer. */
112
+ --zx-glass-filter-icon: blur(4px) saturate(118%);
113
+ --zx-glass-filter-control: blur(6px) saturate(116%);
114
+ --zx-glass-filter-raised: blur(8px) saturate(120%);
115
+ --zx-glass-filter-chrome: blur(10px) saturate(122%);
116
+ --zx-glass-filter-overlay: blur(16px) saturate(140%);
117
+ --zx-glass-filter-panel: blur(14px) saturate(132%);
118
+ --zx-glass-control-shadow: inset 0 1px 0 color-mix(in srgb, var(--zx-gray-0) 18%, transparent), var(--zx-shadow-1);
119
+ --zx-glass-chrome-shadow: inset 0 1px 0 color-mix(in srgb, var(--zx-gray-0) 16%, transparent), var(--zx-shadow-1);
120
+ --zx-header-bg: var(--zx-gray-900);
121
+ --zx-header-text: var(--zx-gray-50);
122
+ }
123
+
124
+ /*
125
+ * Colours derived from other theme colours — glass, overlays, focus, hover and current fills, the
126
+ * tone tints — are restated on every theme element, not only on :root. A custom property is
127
+ * resolved where it is declared and inherited as a finished value, so a dark region on a light
128
+ * page would otherwise inherit light glass and light overlays. The dark theme, which loads later,
129
+ * overrides the ones it derives differently. Geometry and the base palette stay on :root, so an
130
+ * application's own overrides there still reach nested regions.
131
+ */
132
+ :root,
133
+ [data-zx-theme] {
134
+ /* Hover and current are translucent text, so they read on the canvas, the chrome, and a card
135
+ alike. "Current" (where you are) is neutral and stronger than hover; "selected" (what you
136
+ picked) keeps the accent tint. */
137
+ --zx-color-bg-hover: color-mix(in srgb, var(--zx-color-text) 4.5%, transparent);
138
+ --zx-color-bg-current: color-mix(in srgb, var(--zx-color-text) 8%, transparent);
139
+ /* Row and grid dividers, lighter than a frame. */
140
+ --zx-color-border-subtle: color-mix(in srgb, var(--zx-color-text) 7%, transparent);
141
+ /* Categorical tones — identity, not state: tags, chips, icon tiles, avatars. A soft fill (13%
142
+ of the tone over the surface) with ink at 4.5:1 or better on it. */
143
+ --zx-color-tone-blue-bg: color-mix(in srgb, var(--zx-tone-blue-500) 13%, var(--zx-color-bg-surface));
144
+ --zx-color-tone-teal-bg: color-mix(in srgb, var(--zx-tone-teal-500) 13%, var(--zx-color-bg-surface));
145
+ --zx-color-tone-green-bg: color-mix(in srgb, var(--zx-tone-green-500) 13%, var(--zx-color-bg-surface));
146
+ --zx-color-tone-amber-bg: color-mix(in srgb, var(--zx-tone-amber-500) 13%, var(--zx-color-bg-surface));
147
+ --zx-color-tone-orange-bg: color-mix(in srgb, var(--zx-tone-orange-500) 13%, var(--zx-color-bg-surface));
148
+ --zx-color-tone-red-bg: color-mix(in srgb, var(--zx-tone-red-500) 13%, var(--zx-color-bg-surface));
149
+ --zx-color-tone-pink-bg: color-mix(in srgb, var(--zx-tone-pink-500) 13%, var(--zx-color-bg-surface));
150
+ --zx-color-tone-violet-bg: color-mix(in srgb, var(--zx-tone-violet-500) 13%, var(--zx-color-bg-surface));
151
+ --zx-color-tone-slate-bg: color-mix(in srgb, var(--zx-tone-slate-500) 13%, var(--zx-color-bg-surface));
152
+ --zx-color-ring: var(--zx-color-accent);
153
+ --zx-focus-ring: 0 0 0 3px color-mix(in srgb, var(--zx-color-ring) 45%, transparent);
154
+ --zx-color-app-icon-depth: color-mix(in srgb, var(--zx-color-app-icon-shade) 26%, transparent);
155
+ --zx-app-icon-rim-base: var(--zx-color-glass-highlight);
68
156
  --zx-color-glass-surface: color-mix(in srgb, var(--zx-color-bg-raised) 78%, transparent);
69
157
  /* Persistent application chrome is quieter and more opaque than a raised feature card. */
70
158
  --zx-color-glass-chrome: color-mix(in srgb, var(--zx-color-bg-surface) 90%, transparent);
@@ -76,13 +164,11 @@
76
164
  --zx-color-overlay-base: var(--zx-color-bg-raised);
77
165
  --zx-color-overlay-surface: color-mix(in srgb, var(--zx-color-overlay-base) 72%, transparent);
78
166
  --zx-color-overlay-panel: color-mix(in srgb, var(--zx-color-overlay-base) 80%, transparent);
79
- --zx-color-overlay-backdrop: color-mix(in srgb, var(--zx-gray-950) 28%, transparent);
80
167
  --zx-color-overlay-border: color-mix(in srgb, var(--zx-color-text) 14%, transparent);
81
168
  --zx-color-overlay-hover: color-mix(in srgb, var(--zx-color-text) 8%, transparent);
82
169
  --zx-color-overlay-selected: color-mix(in srgb, var(--zx-color-accent) 18%, transparent);
83
170
  --zx-color-overlay-divider: color-mix(in srgb, var(--zx-color-text) 11%, transparent);
84
171
  --zx-color-overlay-scrim: color-mix(in srgb, var(--zx-color-overlay-base) 28%, transparent);
85
- --zx-overlay-specular-strength: 48%;
86
172
  --zx-overlay-surface-image: linear-gradient(145deg,
87
173
  color-mix(in srgb, var(--zx-color-glass-highlight-strong) var(--zx-overlay-specular-strength), transparent) 0%,
88
174
  color-mix(in srgb, var(--zx-color-glass-highlight) 16%, transparent) 28%,
@@ -97,25 +183,11 @@
97
183
  color-mix(in srgb, var(--zx-color-accent) 5%, transparent), transparent 64%),
98
184
  linear-gradient(180deg, color-mix(in srgb, var(--zx-color-glass-highlight) 16%, transparent) 0%,
99
185
  transparent 28%);
100
- --zx-glass-blur: 8px;
101
- --zx-glass-saturation: 130%;
102
- --zx-glass-color-strength: 82%;
103
- /* Material filters are roles, not component recipes. Aurora remains a separate canvas layer. */
104
- --zx-glass-filter-icon: blur(4px) saturate(118%);
105
- --zx-glass-filter-control: blur(6px) saturate(116%);
106
- --zx-glass-filter-raised: blur(8px) saturate(120%);
107
- --zx-glass-filter-chrome: blur(10px) saturate(122%);
108
- --zx-glass-filter-overlay: blur(16px) saturate(140%);
109
- --zx-glass-filter-panel: blur(14px) saturate(132%);
110
186
  --zx-app-icon-shadow: inset 0 1px 0 color-mix(in srgb, var(--zx-gray-0) 14%, transparent), inset 0 -1px 0 color-mix(in srgb, var(--zx-gray-950) 28%, transparent), 0 2px 6px color-mix(in srgb, var(--zx-color-app-icon-shade) 24%, transparent);
111
187
  --zx-app-icon-shadow-hover: inset 0 1px 0 color-mix(in srgb, var(--zx-gray-0) 20%, transparent), inset 0 -1px 0 color-mix(in srgb, var(--zx-gray-950) 32%, transparent), 0 4px 10px color-mix(in srgb, var(--zx-color-app-icon-shade) 30%, transparent);
112
- --zx-glass-control-shadow: inset 0 1px 0 color-mix(in srgb, var(--zx-gray-0) 18%, transparent), var(--zx-shadow-1);
113
- --zx-glass-chrome-shadow: inset 0 1px 0 color-mix(in srgb, var(--zx-gray-0) 16%, transparent), var(--zx-shadow-1);
114
188
  --zx-glass-raised-shadow: inset 0 1px 0 color-mix(in srgb, var(--zx-gray-0) 18%, transparent), var(--zx-overlay-shadow);
115
189
  --zx-glass-overlay-shadow: inset 0 1px 0 color-mix(in srgb, var(--zx-color-glass-highlight-strong) 42%, transparent), inset 0 0 0 1px color-mix(in srgb, var(--zx-color-glass-highlight) 20%, transparent), var(--zx-overlay-shadow);
116
190
  --zx-glass-panel-shadow: inset 0 1px 0 color-mix(in srgb, var(--zx-color-glass-highlight-strong) 34%, transparent), inset 0 0 0 1px color-mix(in srgb, var(--zx-color-glass-highlight) 14%, transparent), var(--zx-overlay-shadow);
117
- --zx-header-bg: var(--zx-gray-900);
118
- --zx-header-text: var(--zx-gray-50);
119
191
  }
120
192
 
121
193
  /* Preferences are resolved at the token seam so every material consumer, including application
@@ -124,7 +196,6 @@
124
196
  :root,
125
197
  .zx-scope,
126
198
  [data-zx-theme],
127
- [data-zx-density],
128
199
  [data-zx-preset] {
129
200
  --zx-color-glass-chrome: var(--zx-color-bg-surface) !important;
130
201
  --zx-color-glass-surface: var(--zx-color-bg-raised) !important;
@@ -162,7 +233,6 @@
162
233
  :root,
163
234
  .zx-scope,
164
235
  [data-zx-theme],
165
- [data-zx-density],
166
236
  [data-zx-preset] {
167
237
  --zx-color-glass-chrome: Canvas !important;
168
238
  --zx-color-glass-surface: Canvas !important;
@@ -196,7 +266,6 @@
196
266
  :root,
197
267
  .zx-scope,
198
268
  [data-zx-theme],
199
- [data-zx-density],
200
269
  [data-zx-preset] {
201
270
  --zx-color-overlay-surface: var(--zx-color-bg-raised) !important;
202
271
  --zx-color-overlay-panel: var(--zx-color-bg-raised) !important;
@@ -2,9 +2,9 @@
2
2
  * Standard theme presets.
3
3
  *
4
4
  * A preset repoints the tier-1 accent ramp — nothing else. The semantic tier picks its own stop
5
- * off that ramp per polarity (600/700 on light surfaces, 300/400/500 on dark ones), so five
6
- * declarations retheme light, dark, and auto at once, and every component follows without a
7
- * second mapping to keep in sync.
5
+ * off that ramp per polarity (600/700 on light surfaces, 300/400/500 on dark ones, and 600/700
6
+ * for the solid primary fill in both), so five declarations retheme light, dark, and auto at
7
+ * once, and every component follows without a second mapping to keep in sync.
8
8
  *
9
9
  * Set the preset alongside the theme: `<html data-zx-theme="dark" data-zx-preset="ocean">`.
10
10
  * `zx` is the default and never needs stating; the attribute exists so an application can pin it.
@@ -14,10 +14,11 @@
14
14
  * an application with no reliable way to say "this failed".
15
15
  *
16
16
  * Every 600 clears 4.5:1 against white and against the light page, and every 400 clears it
17
- * against the dark page, which is what keeps `--zx-color-on-accent` correct in both polarities.
17
+ * against the dark page and every dark surface step, which is what keeps `--zx-color-on-accent`
18
+ * and `--zx-color-on-accent-solid` correct in both polarities and accent text legible on dark.
18
19
  */
19
20
 
20
- /* ZeyOS — the ZeyOS brand green on Xenon's emerald ramp. The default. */
21
+ /* ZeyOS — the ZeyOS brand green, restating the emerald ramp in tokens/global.css. The default. */
21
22
  [data-zx-preset="zx"] {
22
23
  --zx-accent-300: #5ee9b5;
23
24
  --zx-accent-400: #21cc75;
@@ -31,7 +32,7 @@
31
32
  --zx-accent-300: #ffd9a8;
32
33
  --zx-accent-400: #f7bc60;
33
34
  --zx-accent-500: #d0952f;
34
- --zx-accent-600: #96690f;
35
+ --zx-accent-600: #916510;
35
36
  --zx-accent-700: #6f4e0b;
36
37
  }
37
38
 
package/styles/zx.css CHANGED
@@ -2,7 +2,6 @@
2
2
  @import url("./tokens/themes.css");
3
3
  @import url("./tokens/semantic.css");
4
4
  @import url("./tokens/dark.css");
5
- @import url("./tokens/density.css");
6
5
  @import url("./tokens/modules.css");
7
6
  @import url("./base.css");
8
7
  @import url("./icons.css");
@@ -18,6 +17,7 @@
18
17
  @import url("../src/components/skeleton/skeleton.css");
19
18
  @import url("../src/components/copy/copy-button.css");
20
19
  @import url("../src/components/copy/copy-input.css");
20
+ @import url("../src/components/code-editor/code-editor.css");
21
21
  @import url("../src/components/toolbar/toolbar.css");
22
22
  @import url("../src/components/toggle/toggle.css");
23
23
  @import url("../src/components/groupbox/groupbox.css");
@@ -31,6 +31,11 @@
31
31
  @import url("../src/components/app-icon/app-icon.css");
32
32
  @import url("../src/components/launcher/launcher.css");
33
33
  @import url("../src/components/avatar/avatar.css");
34
+ @import url("../src/components/entity-ref/entity-ref.css");
35
+ @import url("../src/components/file-item/file-item.css");
36
+ @import url("../src/components/file-list/file-list.css");
37
+ @import url("../src/components/activity-item/activity-item.css");
38
+ @import url("../src/components/activity-list/activity-list.css");
34
39
  @import url("../src/components/account-menu/account-menu.css");
35
40
  @import url("../src/components/app-rail/app-rail.css");
36
41
  @import url("../src/components/app-sidebar/app-sidebar.css");
@@ -60,6 +65,7 @@
60
65
  @import url("../src/components/view/record-view.css");
61
66
  @import url("../src/components/table/table.css");
62
67
  @import url("../src/components/table-view/table-view.css");
68
+ @import url("../src/components/stat-tile/stat-tile.css");
63
69
  @import url("../src/components/card-view/card-view.css");
64
70
  @import url("../src/components/kanban-view/kanban-view.css");
65
71
  @import url("../src/components/grid/grid.css");
@@ -67,7 +73,10 @@
67
73
  @import url("../src/components/tree/tree.css");
68
74
  @import url("../src/components/finder/finder.css");
69
75
  @import url("../src/components/data-filter/data-filter.css");
76
+ @import url("../src/components/filter-panel/filter-panel.css");
77
+ @import url("../src/components/list-toolbar/list-toolbar.css");
70
78
  @import url("../src/components/filter/filter.css");
79
+ @import url("../src/components/sort-control/sort-control.css");
71
80
  @import url("../src/components/pagination/pagination.css");
72
81
  @import url("../src/components/stepper/stepper.css");
73
82
  @import url("../src/components/breadcrumb/breadcrumb.css");
@@ -78,3 +87,4 @@
78
87
  @import url("../src/components/multi-value-editor/multi-value-editor.css");
79
88
  @import url("../src/components/field-upload/field-upload.css");
80
89
  @import url("../src/components/questionnaire/questionnaire.css");
90
+ @import url("./print.css");
@@ -1,9 +0,0 @@
1
- [data-zx-density="compact"] {
2
- --zx-control-height: 28px;
3
- --zx-control-pad-x: var(--zx-space-2);
4
- --zx-text-md: 13px;
5
- --zx-space-1: 3px;
6
- --zx-space-2: 6px;
7
- --zx-space-3: 10px;
8
- --zx-space-4: 14px;
9
- }