@zeyos/zx 4.1.1 → 4.3.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 (102) hide show
  1. package/CHANGELOG.md +81 -0
  2. package/DESIGN-SYSTEM.md +33 -3
  3. package/README.md +22 -5
  4. package/dist/types/components/app-icon/app-icon.d.ts +8 -1
  5. package/dist/types/components/aurora/aurora.d.ts +72 -0
  6. package/dist/types/components/calendar/calendar-model.d.ts +202 -0
  7. package/dist/types/components/calendar/calendar.d.ts +517 -0
  8. package/dist/types/components/card-view/card-view.d.ts +303 -0
  9. package/dist/types/components/card-view/record-card.d.ts +242 -0
  10. package/dist/types/components/dialog/dialog.d.ts +6 -1
  11. package/dist/types/components/dropdown/dropdown.d.ts +5 -0
  12. package/dist/types/components/kanban-view/kanban-view.d.ts +572 -0
  13. package/dist/types/components/launcher/launcher.d.ts +5 -0
  14. package/dist/types/components/message/message.d.ts +9 -1
  15. package/dist/types/components/modal/modal.d.ts +44 -7
  16. package/dist/types/components/sheet/sheet.d.ts +22 -12
  17. package/dist/types/components/table/table.d.ts +120 -31
  18. package/dist/types/components/table-view/table-view.d.ts +192 -0
  19. package/dist/types/components/view/record-view.d.ts +464 -0
  20. package/dist/types/core/overlay-host.d.ts +12 -0
  21. package/dist/types/index.d.ts +7 -0
  22. package/dist/types/zeyos/calendar.d.ts +91 -0
  23. package/dist/types/zeyos/icons.d.ts +18 -2
  24. package/dist/types/zeyos/index.d.ts +4 -0
  25. package/dist/types/zeyos/legacy-saved-views.d.ts +66 -0
  26. package/dist/types/zeyos/saved-views.d.ts +331 -0
  27. package/dist/types/zeyos/view.d.ts +305 -0
  28. package/dist/zx-zeyos.esm.js +4742 -1470
  29. package/dist/zx-zeyos.esm.min.js +1 -1
  30. package/dist/zx.css +2536 -471
  31. package/dist/zx.esm.js +5193 -223
  32. package/dist/zx.esm.min.js +3 -3
  33. package/dist/zx.global.js +5193 -223
  34. package/dist/zx.global.min.js +3 -3
  35. package/dist/zx.min.css +1 -1
  36. package/docs/api.json +1729 -182
  37. package/docs/llms.md +236 -32
  38. package/docs/llms.txt +16 -6
  39. package/package.json +1 -1
  40. package/src/components/account-menu/account-menu.css +1 -1
  41. package/src/components/app-icon/app-icon.css +77 -51
  42. package/src/components/app-icon/app-icon.js +28 -4
  43. package/src/components/app-rail/app-rail.css +12 -3
  44. package/src/components/app-sidebar/app-sidebar.css +11 -2
  45. package/src/components/aurora/aurora.css +143 -0
  46. package/src/components/aurora/aurora.js +146 -0
  47. package/src/components/avatar/avatar.css +1 -1
  48. package/src/components/button/button.css +2 -2
  49. package/src/components/calendar/calendar-model.js +402 -0
  50. package/src/components/calendar/calendar.css +609 -0
  51. package/src/components/calendar/calendar.js +1619 -0
  52. package/src/components/card/card.css +2 -2
  53. package/src/components/card-view/card-view.css +389 -0
  54. package/src/components/card-view/card-view.js +527 -0
  55. package/src/components/card-view/record-card.js +392 -0
  56. package/src/components/context-menu/context-menu.css +4 -4
  57. package/src/components/context-menu/context-menu.js +5 -1
  58. package/src/components/date-picker/date-picker.css +31 -12
  59. package/src/components/datebox/date-range-box.css +17 -2
  60. package/src/components/datebox/datebox.css +18 -3
  61. package/src/components/dialog/dialog.css +4 -3
  62. package/src/components/dialog/dialog.js +2 -1
  63. package/src/components/dropdown/dropdown.css +17 -3
  64. package/src/components/dropdown/dropdown.js +7 -2
  65. package/src/components/kanban-view/kanban-view.css +216 -0
  66. package/src/components/kanban-view/kanban-view.js +1228 -0
  67. package/src/components/launcher/launcher.css +24 -9
  68. package/src/components/launcher/launcher.js +9 -2
  69. package/src/components/master-panel/master-panel.css +14 -3
  70. package/src/components/menu-button/menu-button.css +4 -4
  71. package/src/components/message/message.css +13 -21
  72. package/src/components/message/message.js +17 -11
  73. package/src/components/modal/modal.css +19 -5
  74. package/src/components/modal/modal.js +99 -25
  75. package/src/components/navigation-bar/navigation-bar.css +17 -5
  76. package/src/components/panel/panel.css +10 -2
  77. package/src/components/select/select.css +26 -8
  78. package/src/components/sheet/sheet.css +28 -7
  79. package/src/components/sheet/sheet.js +43 -23
  80. package/src/components/table/table.css +83 -5
  81. package/src/components/table/table.js +322 -37
  82. package/src/components/table-view/table-view.css +18 -0
  83. package/src/components/table-view/table-view.js +347 -0
  84. package/src/components/tag-picker/tag-picker.css +18 -4
  85. package/src/components/tooltip/tooltip.css +17 -3
  86. package/src/components/tooltip/tooltip.js +4 -1
  87. package/src/components/view/record-view.css +114 -0
  88. package/src/components/view/record-view.js +770 -0
  89. package/src/core/overlay-host.js +23 -0
  90. package/src/index.js +15 -0
  91. package/src/zeyos/calendar.js +115 -0
  92. package/src/zeyos/icons.js +11 -4
  93. package/src/zeyos/index.js +13 -0
  94. package/src/zeyos/launcher.js +2 -2
  95. package/src/zeyos/legacy-saved-views.js +155 -0
  96. package/src/zeyos/saved-views.js +815 -0
  97. package/src/zeyos/table.js +3 -1
  98. package/src/zeyos/view.js +543 -0
  99. package/styles/icons.css +3 -10
  100. package/styles/tokens/dark.css +4 -0
  101. package/styles/tokens/semantic.css +142 -3
  102. package/styles/zx.css +6 -0
@@ -56,17 +56,156 @@
56
56
  --zx-color-glass-highlight: color-mix(in srgb, var(--zx-gray-0) 24%, transparent);
57
57
  --zx-color-glass-highlight-strong: color-mix(in srgb, var(--zx-gray-0) 38%, transparent);
58
58
  --zx-color-app-icon-depth: color-mix(in srgb, var(--zx-color-app-icon-shade) 26%, transparent);
59
+ /* AppIcon is a dark chromatic lens: colour lives in its rim and low bloom, not a glossy fill. */
60
+ /* Strengths remain inherited, while each AppIcon mixes them with its own module colour. */
61
+ --zx-app-icon-core-strength: 52%;
62
+ --zx-app-icon-rim-strength: 58%;
63
+ --zx-app-icon-bloom-strength: 64%;
64
+ --zx-app-icon-specular-strength: 72%;
65
+ --zx-app-icon-rim-base: var(--zx-color-glass-highlight);
66
+ --zx-app-icon-halo-size: 14px;
67
+ --zx-app-icon-halo-strength: 22%;
59
68
  --zx-color-glass-surface: color-mix(in srgb, var(--zx-color-bg-raised) 78%, transparent);
69
+ /* Persistent application chrome is quieter and more opaque than a raised feature card. */
70
+ --zx-color-glass-chrome: color-mix(in srgb, var(--zx-color-bg-surface) 90%, transparent);
60
71
  --zx-color-glass-control: color-mix(in srgb, var(--zx-color-bg-control) 88%, transparent);
61
72
  --zx-color-glass-control-hover: color-mix(in srgb, var(--zx-color-bg-hover) 76%, var(--zx-color-glass-surface));
73
+ /* Overlay glass is composed from four roles: a neutral base, translucent colour, a restrained
74
+ reflection, and the backdrop behind modal panels. Keeping them separate makes the material
75
+ visibly react to Aurora/content without baking decoration into each component. */
76
+ --zx-color-overlay-base: var(--zx-color-bg-raised);
77
+ --zx-color-overlay-surface: color-mix(in srgb, var(--zx-color-overlay-base) 72%, transparent);
78
+ --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
+ --zx-color-overlay-border: color-mix(in srgb, var(--zx-color-text) 14%, transparent);
81
+ --zx-color-overlay-hover: color-mix(in srgb, var(--zx-color-text) 8%, transparent);
82
+ --zx-color-overlay-selected: color-mix(in srgb, var(--zx-color-accent) 18%, transparent);
83
+ --zx-color-overlay-divider: color-mix(in srgb, var(--zx-color-text) 11%, transparent);
84
+ --zx-color-overlay-scrim: color-mix(in srgb, var(--zx-color-overlay-base) 28%, transparent);
85
+ --zx-overlay-specular-strength: 48%;
86
+ --zx-overlay-surface-image: linear-gradient(145deg,
87
+ color-mix(in srgb, var(--zx-color-glass-highlight-strong) var(--zx-overlay-specular-strength), transparent) 0%,
88
+ color-mix(in srgb, var(--zx-color-glass-highlight) 16%, transparent) 28%,
89
+ transparent 54%), radial-gradient(120% 100% at 8% -12%,
90
+ color-mix(in srgb, var(--zx-color-accent) 8%, transparent), transparent 58%);
91
+ --zx-overlay-toast-image: radial-gradient(120% 160% at 0% 0%,
92
+ color-mix(in srgb, var(--zx-message-kind, var(--zx-color-info)) 18%, transparent), transparent 62%),
93
+ var(--zx-overlay-surface-image);
94
+ --zx-overlay-panel-image: radial-gradient(140% 100% at 0% 0%,
95
+ color-mix(in srgb, var(--zx-color-glass-highlight-strong) var(--zx-overlay-specular-strength), transparent) 0%,
96
+ transparent 58%), radial-gradient(100% 70% at 100% 0%,
97
+ color-mix(in srgb, var(--zx-color-accent) 5%, transparent), transparent 64%),
98
+ linear-gradient(180deg, color-mix(in srgb, var(--zx-color-glass-highlight) 16%, transparent) 0%,
99
+ transparent 28%);
62
100
  --zx-glass-blur: 8px;
63
101
  --zx-glass-saturation: 130%;
64
102
  --zx-glass-color-strength: 82%;
65
- --zx-app-icon-shadow: inset 0 1px 0 color-mix(in srgb, var(--zx-gray-0) 28%, transparent), inset 0 -1px 0 color-mix(in srgb, var(--zx-gray-950) 16%, transparent), 0 5px 14px color-mix(in srgb, var(--zx-color-app-icon-shade) 28%, transparent);
66
- --zx-app-icon-shadow-hover: inset 0 1px 0 color-mix(in srgb, var(--zx-gray-0) 40%, transparent), inset 0 -1px 0 color-mix(in srgb, var(--zx-gray-950) 20%, transparent), 0 9px 22px color-mix(in srgb, var(--zx-color-app-icon-shade) 36%, transparent);
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
+ --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
+ --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);
67
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);
68
114
  --zx-glass-raised-shadow: inset 0 1px 0 color-mix(in srgb, var(--zx-gray-0) 18%, transparent), var(--zx-overlay-shadow);
69
- --zx-glass-glyph-shadow: 0 1px 2px color-mix(in srgb, var(--zx-gray-950) 58%, transparent);
115
+ --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
+ --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);
70
117
  --zx-header-bg: var(--zx-gray-900);
71
118
  --zx-header-text: var(--zx-gray-50);
72
119
  }
120
+
121
+ /* Preferences are resolved at the token seam so every material consumer, including application
122
+ chrome outside a component stylesheet, receives the same deterministic opaque fallback. */
123
+ @media (prefers-reduced-transparency: reduce), (prefers-contrast: more) {
124
+ :root,
125
+ .zx-scope,
126
+ [data-zx-theme],
127
+ [data-zx-density],
128
+ [data-zx-preset] {
129
+ --zx-color-glass-chrome: var(--zx-color-bg-surface) !important;
130
+ --zx-color-glass-surface: var(--zx-color-bg-raised) !important;
131
+ --zx-color-glass-control: var(--zx-color-bg-control) !important;
132
+ --zx-color-glass-control-hover: var(--zx-color-bg-hover) !important;
133
+ --zx-color-overlay-surface: var(--zx-color-bg-raised) !important;
134
+ --zx-color-overlay-panel: var(--zx-color-bg-raised) !important;
135
+ --zx-color-overlay-backdrop: var(--zx-color-bg-backdrop) !important;
136
+ --zx-color-overlay-hover: var(--zx-color-bg-hover) !important;
137
+ --zx-color-overlay-selected: var(--zx-color-bg-selected) !important;
138
+ --zx-color-overlay-divider: var(--zx-color-border) !important;
139
+ --zx-color-overlay-scrim: var(--zx-color-bg-raised) !important;
140
+ --zx-overlay-specular-strength: 0% !important;
141
+ --zx-overlay-surface-image: none !important;
142
+ --zx-overlay-toast-image: none !important;
143
+ --zx-overlay-panel-image: none !important;
144
+ --zx-app-icon-core-strength: 68% !important;
145
+ --zx-app-icon-rim-strength: 62% !important;
146
+ --zx-app-icon-bloom-strength: 0% !important;
147
+ --zx-app-icon-specular-strength: 0% !important;
148
+ --zx-app-icon-rim-base: var(--zx-color-border) !important;
149
+ --zx-app-icon-halo-strength: 0% !important;
150
+ --zx-glass-filter-icon: none !important;
151
+ --zx-glass-filter-control: none !important;
152
+ --zx-glass-filter-raised: none !important;
153
+ --zx-glass-filter-chrome: none !important;
154
+ --zx-glass-filter-overlay: none !important;
155
+ --zx-glass-filter-panel: none !important;
156
+ --zx-glass-overlay-shadow: var(--zx-overlay-shadow) !important;
157
+ --zx-glass-panel-shadow: var(--zx-overlay-shadow) !important;
158
+ }
159
+ }
160
+
161
+ @media (forced-colors: active) {
162
+ :root,
163
+ .zx-scope,
164
+ [data-zx-theme],
165
+ [data-zx-density],
166
+ [data-zx-preset] {
167
+ --zx-color-glass-chrome: Canvas !important;
168
+ --zx-color-glass-surface: Canvas !important;
169
+ --zx-color-glass-control: ButtonFace !important;
170
+ --zx-color-glass-control-hover: Highlight !important;
171
+ --zx-color-overlay-surface: Canvas !important;
172
+ --zx-color-overlay-panel: Canvas !important;
173
+ --zx-color-overlay-backdrop: transparent !important;
174
+ --zx-color-overlay-border: CanvasText !important;
175
+ --zx-color-overlay-hover: Highlight !important;
176
+ --zx-color-overlay-selected: Highlight !important;
177
+ --zx-color-overlay-divider: CanvasText !important;
178
+ --zx-color-overlay-scrim: Canvas !important;
179
+ --zx-overlay-specular-strength: 0% !important;
180
+ --zx-overlay-surface-image: none !important;
181
+ --zx-overlay-toast-image: none !important;
182
+ --zx-overlay-panel-image: none !important;
183
+ --zx-glass-control-shadow: none !important;
184
+ --zx-glass-chrome-shadow: none !important;
185
+ --zx-glass-raised-shadow: none !important;
186
+ --zx-glass-filter-overlay: none !important;
187
+ --zx-glass-filter-panel: none !important;
188
+ --zx-glass-overlay-shadow: none !important;
189
+ --zx-glass-panel-shadow: none !important;
190
+ }
191
+ }
192
+
193
+ /* Browsers without backdrop filtering get an intentionally opaque material instead of a washed
194
+ translucent colour. This is a capability fallback, independent of user preference fallbacks. */
195
+ @supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
196
+ :root,
197
+ .zx-scope,
198
+ [data-zx-theme],
199
+ [data-zx-density],
200
+ [data-zx-preset] {
201
+ --zx-color-overlay-surface: var(--zx-color-bg-raised) !important;
202
+ --zx-color-overlay-panel: var(--zx-color-bg-raised) !important;
203
+ --zx-color-overlay-backdrop: var(--zx-color-bg-backdrop) !important;
204
+ --zx-overlay-specular-strength: 0% !important;
205
+ --zx-overlay-surface-image: none !important;
206
+ --zx-overlay-toast-image: none !important;
207
+ --zx-overlay-panel-image: none !important;
208
+ --zx-glass-filter-overlay: none !important;
209
+ --zx-glass-filter-panel: none !important;
210
+ }
211
+ }
package/styles/zx.css CHANGED
@@ -22,6 +22,7 @@
22
22
  @import url("../src/components/toggle/toggle.css");
23
23
  @import url("../src/components/groupbox/groupbox.css");
24
24
  @import url("../src/components/card/card.css");
25
+ @import url("../src/components/aurora/aurora.css");
25
26
  @import url("../src/components/panel/panel.css");
26
27
  @import url("../src/components/master-panel/master-panel.css");
27
28
  @import url("../src/components/tabbox/tabbox.css");
@@ -55,7 +56,12 @@
55
56
  @import url("../src/components/date-picker/date-range-picker.css");
56
57
  @import url("../src/components/datebox/date-range-box.css");
57
58
  @import url("../src/components/timebox/timebox.css");
59
+ @import url("../src/components/calendar/calendar.css");
60
+ @import url("../src/components/view/record-view.css");
58
61
  @import url("../src/components/table/table.css");
62
+ @import url("../src/components/table-view/table-view.css");
63
+ @import url("../src/components/card-view/card-view.css");
64
+ @import url("../src/components/kanban-view/kanban-view.css");
59
65
  @import url("../src/components/grid/grid.css");
60
66
  @import url("../src/components/chart/chart.css");
61
67
  @import url("../src/components/tree/tree.css");