@zeyos/zx 4.4.0 → 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 (182) hide show
  1. package/CHANGELOG.md +283 -0
  2. package/README.md +42 -10
  3. package/dist/types/components/activity-list/activity-list.d.ts +22 -0
  4. package/dist/types/components/app-sidebar/app-sidebar.d.ts +5 -3
  5. package/dist/types/components/avatar/avatar.d.ts +46 -7
  6. package/dist/types/components/badge/badge.d.ts +21 -1
  7. package/dist/types/components/button/button.d.ts +15 -0
  8. package/dist/types/components/chart/chart.d.ts +10 -0
  9. package/dist/types/components/checklist/checklist.d.ts +9 -0
  10. package/dist/types/components/code-editor/code-editor.d.ts +6 -17
  11. package/dist/types/components/datebox/date-range-box.d.ts +5 -1
  12. package/dist/types/components/datebox/datebox.d.ts +7 -2
  13. package/dist/types/components/dialog/dialog.d.ts +46 -6
  14. package/dist/types/components/dropdown/dropdown.d.ts +2 -2
  15. package/dist/types/components/entity-ref/entity-ref.d.ts +2 -2
  16. package/dist/types/components/field/field.d.ts +24 -2
  17. package/dist/types/components/fieldset/fieldset.d.ts +19 -1
  18. package/dist/types/components/file-item/file-item.d.ts +34 -6
  19. package/dist/types/components/form/form.d.ts +12 -1
  20. package/dist/types/components/kanban-view/kanban-card.d.ts +8 -0
  21. package/dist/types/components/launcher/launcher.d.ts +260 -15
  22. package/dist/types/components/list-toolbar/list-toolbar.d.ts +1 -1
  23. package/dist/types/components/menu-button/menu-button.d.ts +33 -5
  24. package/dist/types/components/message/message.d.ts +119 -17
  25. package/dist/types/components/modal/modal.d.ts +13 -2
  26. package/dist/types/components/select/color.d.ts +12 -0
  27. package/dist/types/components/select/glyphs.d.ts +124 -0
  28. package/dist/types/components/select/select.d.ts +11 -3
  29. package/dist/types/components/stat-tile/stat-tile.d.ts +16 -5
  30. package/dist/types/components/tabbox/tabbox.d.ts +9 -0
  31. package/dist/types/components/table/table.d.ts +46 -1
  32. package/dist/types/components/tag-picker/tag-picker.d.ts +21 -4
  33. package/dist/types/components/tree/tree.d.ts +13 -0
  34. package/dist/types/core/breakpoint.d.ts +1 -1
  35. package/dist/types/core/icons.d.ts +23 -25
  36. package/dist/types/core/motion.d.ts +59 -0
  37. package/dist/types/core/overlay-host.d.ts +15 -1
  38. package/dist/types/index.d.ts +5 -3
  39. package/dist/types/zeyos/connect.d.ts +6 -0
  40. package/dist/types/zeyos/form.d.ts +50 -9
  41. package/dist/types/zeyos/index.d.ts +1 -1
  42. package/dist/types/zeyos/query.d.ts +79 -0
  43. package/dist/types/zeyos/schema.d.ts +24 -1
  44. package/dist/types/zeyos/table.d.ts +100 -14
  45. package/dist/types/zeyos/view.d.ts +10 -0
  46. package/dist/zx-zeyos.esm.js +1621 -443
  47. package/dist/zx-zeyos.esm.min.js +53 -5
  48. package/dist/zx.css +1411 -660
  49. package/dist/zx.esm.js +1976 -703
  50. package/dist/zx.esm.min.js +56 -8
  51. package/dist/zx.global.js +1978 -705
  52. package/dist/zx.global.min.js +56 -8
  53. package/dist/zx.min.css +1 -1
  54. package/docs/api.json +219 -34
  55. package/docs/llms.md +472 -110
  56. package/docs/llms.txt +3 -3
  57. package/package.json +1 -1
  58. package/src/components/account-menu/account-menu.css +35 -10
  59. package/src/components/activity-item/activity-item.css +1 -1
  60. package/src/components/activity-item/activity-item.js +3 -0
  61. package/src/components/activity-list/activity-list.css +38 -3
  62. package/src/components/activity-list/activity-list.js +34 -0
  63. package/src/components/app-icon/app-icon.css +1 -1
  64. package/src/components/app-rail/app-rail.css +40 -79
  65. package/src/components/app-sidebar/app-sidebar.css +109 -174
  66. package/src/components/app-sidebar/app-sidebar.js +21 -6
  67. package/src/components/aurora/aurora.css +5 -3
  68. package/src/components/avatar/avatar.css +32 -7
  69. package/src/components/avatar/avatar.js +72 -8
  70. package/src/components/badge/badge.css +54 -2
  71. package/src/components/badge/badge.js +29 -2
  72. package/src/components/button/button.css +67 -9
  73. package/src/components/button/button.js +38 -0
  74. package/src/components/calendar/calendar.css +46 -46
  75. package/src/components/card/card.css +2 -2
  76. package/src/components/card-view/card-view.css +9 -7
  77. package/src/components/chart/chart.css +4 -1
  78. package/src/components/chart/chart.js +12 -0
  79. package/src/components/check-button/check-button.css +10 -2
  80. package/src/components/checklist/checklist.css +9 -2
  81. package/src/components/checklist/checklist.js +11 -5
  82. package/src/components/checklist/field-adapter.js +3 -1
  83. package/src/components/code-editor/code-editor.css +6 -5
  84. package/src/components/code-editor/code-editor.js +19 -1
  85. package/src/components/context-menu/context-menu.css +9 -4
  86. package/src/components/copy/copy-button.css +6 -0
  87. package/src/components/copy/copy-input.css +8 -3
  88. package/src/components/data-filter/data-filter.css +5 -4
  89. package/src/components/date-picker/date-picker.css +6 -6
  90. package/src/components/date-picker/date-range-picker.css +3 -3
  91. package/src/components/date-picker/time-picker.css +1 -1
  92. package/src/components/datebox/date-range-box.css +79 -2
  93. package/src/components/datebox/date-range-box.js +13 -2
  94. package/src/components/datebox/datebox.css +79 -2
  95. package/src/components/datebox/datebox.js +13 -2
  96. package/src/components/dialog/dialog.css +26 -0
  97. package/src/components/dialog/dialog.js +99 -17
  98. package/src/components/dropdown/dropdown.css +1 -1
  99. package/src/components/dropdown/dropdown.js +5 -3
  100. package/src/components/empty-state/empty-state.css +2 -2
  101. package/src/components/entity-ref/entity-ref.css +1 -1
  102. package/src/components/entity-ref/entity-ref.js +1 -1
  103. package/src/components/field/field.css +28 -9
  104. package/src/components/field/field.js +68 -26
  105. package/src/components/field-upload/field-upload.css +1 -1
  106. package/src/components/fieldset/fieldset.css +5 -3
  107. package/src/components/fieldset/fieldset.js +28 -5
  108. package/src/components/file-item/file-item.js +144 -10
  109. package/src/components/filter/filter.js +7 -3
  110. package/src/components/filter-panel/filter-panel.css +1 -1
  111. package/src/components/finder/finder.css +15 -13
  112. package/src/components/form/form.css +5 -4
  113. package/src/components/form/form.js +11 -2
  114. package/src/components/grid/grid.css +1 -1
  115. package/src/components/groupbox/groupbox.css +1 -1
  116. package/src/components/kanban-view/kanban-card.js +11 -3
  117. package/src/components/kanban-view/kanban-view.css +39 -15
  118. package/src/components/kanban-view/kanban-view.js +4 -4
  119. package/src/components/launcher/launcher.css +107 -25
  120. package/src/components/launcher/launcher.js +503 -41
  121. package/src/components/list-toolbar/list-toolbar.css +13 -8
  122. package/src/components/list-toolbar/list-toolbar.js +1 -1
  123. package/src/components/master-panel/master-panel.css +2 -0
  124. package/src/components/menu-button/menu-button.css +9 -4
  125. package/src/components/menu-button/menu-button.js +65 -9
  126. package/src/components/message/message.css +33 -3
  127. package/src/components/message/message.js +217 -15
  128. package/src/components/modal/modal.js +18 -3
  129. package/src/components/navigation-bar/navigation-bar.css +18 -9
  130. package/src/components/number-field/field-adapter.js +1 -0
  131. package/src/components/number-field/number-field.css +70 -0
  132. package/src/components/number-field/number-field.js +2 -0
  133. package/src/components/pagination/pagination.css +8 -6
  134. package/src/components/panel/panel.css +1 -1
  135. package/src/components/rating/rating.css +7 -0
  136. package/src/components/select/color.js +22 -0
  137. package/src/components/select/field-adapter.js +2 -0
  138. package/src/components/select/glyphs.js +165 -0
  139. package/src/components/select/select.css +138 -45
  140. package/src/components/select/select.js +83 -47
  141. package/src/components/sheet/sheet.css +11 -8
  142. package/src/components/slider/slider.css +16 -2
  143. package/src/components/slider/slider.js +1 -1
  144. package/src/components/sort-control/sort-control.css +4 -1
  145. package/src/components/stat-tile/stat-tile.css +41 -46
  146. package/src/components/stat-tile/stat-tile.js +17 -6
  147. package/src/components/tabbox/tabbox.css +32 -27
  148. package/src/components/tabbox/tabbox.js +5 -1
  149. package/src/components/table/table.css +104 -29
  150. package/src/components/table/table.js +90 -16
  151. package/src/components/tag-picker/tag-picker.css +83 -5
  152. package/src/components/tag-picker/tag-picker.js +25 -8
  153. package/src/components/timebox/timebox.css +22 -2
  154. package/src/components/toggle/toggle.css +12 -1
  155. package/src/components/toolbar/toolbar.js +2 -2
  156. package/src/components/tooltip/tooltip.css +4 -0
  157. package/src/components/tooltip/tooltip.js +10 -3
  158. package/src/components/tree/tree.css +25 -16
  159. package/src/components/tree/tree.js +31 -0
  160. package/src/components/value-list/value-list.css +3 -3
  161. package/src/components/view/record-view.js +1 -1
  162. package/src/core/breakpoint.js +1 -1
  163. package/src/core/icons.js +193 -60
  164. package/src/core/motion.js +147 -0
  165. package/src/core/overlay-host.js +21 -2
  166. package/src/index.js +5 -3
  167. package/src/internal/app-rail.js +1 -2
  168. package/src/zeyos/connect.js +6 -2
  169. package/src/zeyos/form.js +67 -27
  170. package/src/zeyos/index.js +1 -1
  171. package/src/zeyos/query.js +153 -0
  172. package/src/zeyos/schema.js +144 -27
  173. package/src/zeyos/table.js +68 -5
  174. package/src/zeyos/view.js +6 -0
  175. package/styles/base.css +56 -0
  176. package/styles/icons.css +11 -1
  177. package/styles/tokens/dark.css +113 -37
  178. package/styles/tokens/global.css +121 -27
  179. package/styles/tokens/semantic.css +100 -31
  180. package/styles/tokens/themes.css +7 -6
  181. package/styles/zx.css +0 -1
  182. package/styles/tokens/density.css +0 -9
@@ -2,7 +2,7 @@
2
2
  inline-size: min(760px, calc(100vw - (2 * var(--zx-space-4))));
3
3
  max-block-size: min(720px, calc(100vh - (2 * var(--zx-space-6))));
4
4
  border: 1px solid var(--zx-color-overlay-border);
5
- border-radius: var(--zx-radius-xl);
5
+ border-radius: var(--zx-radius-lg);
6
6
  background-color: var(--zx-color-overlay-panel);
7
7
  background-image: var(--zx-overlay-panel-image);
8
8
  background-clip: padding-box;
@@ -29,24 +29,60 @@
29
29
 
30
30
  .zx-launcher__surface {
31
31
  display: grid;
32
+ /* One column no wider than the dialog: a long page chip or a wide row shrinks inside it rather
33
+ than pushing the close button off a phone screen. */
34
+ grid-template-columns: minmax(0, 1fr);
32
35
  grid-template-rows: auto auto minmax(0, 1fr) auto;
33
36
  max-block-size: inherit;
34
37
  }
35
38
 
36
39
  .zx-launcher__search {
37
- display: grid;
38
- grid-template-columns: auto minmax(0, 1fr) auto auto;
40
+ display: flex;
39
41
  align-items: center;
40
42
  gap: var(--zx-space-3);
41
43
  border-block-end: 1px solid var(--zx-color-overlay-divider);
42
44
  padding: var(--zx-space-3) var(--zx-space-4);
43
45
  }
44
46
 
45
- .zx-launcher__search[data-shortcut="false"] {
46
- grid-template-columns: auto minmax(0, 1fr) auto;
47
+ .zx-launcher__search > .zx-icon {
48
+ flex: none;
49
+ }
50
+
51
+ /* The page you are on, before the query: where you are, so neutral rather than accent. Its × is
52
+ one step back. */
53
+ .zx-launcher__scope {
54
+ display: inline-flex;
55
+ flex: 0 1 auto;
56
+ align-items: center;
57
+ gap: var(--zx-space-1);
58
+ min-inline-size: 0;
59
+ max-inline-size: 50%;
60
+ border-radius: var(--zx-radius-sm);
61
+ background: var(--zx-color-bg-current);
62
+ padding-inline: var(--zx-space-2) 2px;
63
+ color: var(--zx-color-text);
64
+ font-size: var(--zx-text-sm);
65
+ font-weight: var(--zx-weight-medium);
66
+ line-height: 1.5;
67
+ white-space: nowrap;
68
+ }
69
+
70
+ .zx-launcher__scope[hidden] { display: none; }
71
+
72
+ .zx-launcher__scope-label {
73
+ overflow: hidden;
74
+ text-overflow: ellipsis;
75
+ }
76
+
77
+ /* A 24px target (WCAG 2.5.8); the chip's own padding stays slim beside it. */
78
+ .zx-launcher__scope .zx-launcher__scope-back {
79
+ inline-size: 24px;
80
+ block-size: 24px;
47
81
  }
48
82
 
49
83
  .zx-launcher__input {
84
+ /* The query yields its room first; the chip keeps its label until it reaches its cap. */
85
+ flex: 1 1 0;
50
86
  min-inline-size: 0;
51
87
  border: 0;
52
88
  outline: 0;
@@ -62,7 +98,8 @@
62
98
  .zx-launcher__input::-webkit-search-cancel-button { display: none; }
63
99
 
64
100
  .zx-launcher__shortcut,
65
- .zx-launcher__hints kbd {
101
+ .zx-launcher__hints kbd,
102
+ .zx-launcher__key {
66
103
  border: 1px solid var(--zx-color-border-control);
67
104
  border-radius: var(--zx-radius-sm);
68
105
  background: var(--zx-color-bg-muted);
@@ -74,6 +111,7 @@
74
111
  }
75
112
 
76
113
  .zx-launcher__shortcut {
114
+ flex: none;
77
115
  padding-inline: var(--zx-space-2);
78
116
  white-space: nowrap;
79
117
  }
@@ -90,16 +128,16 @@
90
128
  .zx-launcher__results {
91
129
  min-block-size: 0;
92
130
  overflow: auto;
93
- padding: var(--zx-space-2);
131
+ padding: var(--zx-space-1);
94
132
  }
95
133
 
134
+ /* A caption above its rows, never taller than one of them; inset like the rows so the label and
135
+ the labels under it start on one line. */
96
136
  .zx-launcher__group-label {
97
- padding: var(--zx-space-3) var(--zx-space-3) var(--zx-space-1);
137
+ padding: var(--zx-space-2) var(--zx-space-3) var(--zx-space-1);
98
138
  color: var(--zx-color-text-muted);
99
139
  font-size: var(--zx-text-xs);
100
- font-weight: 700;
101
- letter-spacing: .04em;
102
- text-transform: uppercase;
140
+ font-weight: var(--zx-weight-semibold);
103
141
  }
104
142
 
105
143
  .zx-launcher__group[data-layout="grid"] {
@@ -119,11 +157,11 @@
119
157
  align-items: center;
120
158
  gap: var(--zx-space-3);
121
159
  inline-size: 100%;
122
- min-block-size: calc(var(--zx-control-height) + var(--zx-space-2));
160
+ min-block-size: var(--zx-control-height);
123
161
  border: 0;
124
- border-radius: var(--zx-radius-md);
162
+ border-radius: var(--zx-radius-sm);
125
163
  background: transparent;
126
- padding: var(--zx-space-2) var(--zx-space-3);
164
+ padding: var(--zx-space-1) var(--zx-space-3);
127
165
  color: inherit;
128
166
  text-align: start;
129
167
  text-decoration: none;
@@ -134,9 +172,15 @@
134
172
  background: var(--zx-color-overlay-hover);
135
173
  }
136
174
 
175
+ /* The application you are in is where you are, not a pick: the neutral current fill and a
176
+ heavier label. The highlighted row stays the lighter hover step. */
137
177
  .zx-launcher__option[aria-current="page"] {
138
- background: var(--zx-color-overlay-selected);
139
- color: var(--zx-color-accent);
178
+ background: var(--zx-color-bg-current);
179
+ color: var(--zx-color-text);
180
+ }
181
+
182
+ .zx-launcher__option[aria-current="page"] .zx-launcher__label {
183
+ font-weight: var(--zx-weight-semibold);
140
184
  }
141
185
 
142
186
  .zx-launcher__option[data-kind="application"] {
@@ -145,12 +189,13 @@
145
189
  justify-items: center;
146
190
  align-content: center;
147
191
  min-block-size: 92px;
192
+ border-radius: var(--zx-radius-md);
148
193
  padding: var(--zx-space-3) var(--zx-space-2);
149
194
  text-align: center;
150
195
  }
151
196
 
152
197
  .zx-launcher__option[data-kind="application"][aria-current="page"] {
153
- background: var(--zx-color-overlay-selected);
198
+ background: var(--zx-color-bg-current);
154
199
  }
155
200
 
156
201
  .zx-launcher__option[data-kind="application"] .zx-launcher__icon {
@@ -162,8 +207,9 @@
162
207
  inline-size: 100%;
163
208
  }
164
209
 
165
- .zx-launcher__option[data-kind="application"] .zx-launcher__description,
166
- .zx-launcher__option[data-kind="application"] .zx-launcher__badge {
210
+ .zx-launcher__option[data-kind="application"] :is(
211
+ .zx-launcher__description, .zx-launcher__badge, .zx-launcher__hint, .zx-launcher__keys, .zx-launcher__chevron
212
+ ) {
167
213
  display: none;
168
214
  }
169
215
 
@@ -179,10 +225,47 @@
179
225
 
180
226
  .zx-launcher__icon { display: inline-flex; flex: none; }
181
227
  .zx-launcher__copy { display: grid; min-inline-size: 0; gap: 2px; }
182
- .zx-launcher__label { overflow: hidden; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
228
+ .zx-launcher__label { overflow: hidden; font-weight: var(--zx-weight-medium); text-overflow: ellipsis; white-space: nowrap; }
183
229
  .zx-launcher__description { overflow: hidden; color: var(--zx-color-text-muted); font-size: var(--zx-text-sm); text-overflow: ellipsis; white-space: nowrap; }
184
230
  .zx-launcher__badge { margin-inline-start: auto; color: var(--zx-color-text-muted); font-size: var(--zx-text-xs); }
185
231
 
232
+ /* A row's copy takes the room; what trails it (badge, hint, key caps, the page chevron) sits at
233
+ the end in that order. */
234
+ .zx-launcher__option:not([data-kind="application"]) .zx-launcher__copy { flex: 1 1 auto; }
235
+
236
+ .zx-launcher__hint {
237
+ flex: 0 1 auto;
238
+ min-inline-size: 0;
239
+ max-inline-size: 40%;
240
+ overflow: hidden;
241
+ color: var(--zx-color-text-muted);
242
+ font-size: var(--zx-text-sm);
243
+ text-overflow: ellipsis;
244
+ white-space: nowrap;
245
+ }
246
+
247
+ .zx-launcher__keys {
248
+ display: inline-flex;
249
+ flex: none;
250
+ gap: var(--zx-space-1);
251
+ }
252
+
253
+ .zx-launcher__chevron {
254
+ display: inline-flex;
255
+ flex: none;
256
+ color: var(--zx-color-text-subtle);
257
+ }
258
+
259
+ /* Spoken, not drawn: where a page change landed. */
260
+ .zx-launcher__announce {
261
+ position: absolute;
262
+ inline-size: 1px;
263
+ block-size: 1px;
264
+ overflow: hidden;
265
+ clip-path: inset(50%);
266
+ white-space: nowrap;
267
+ }
268
+
186
269
  .zx-launcher__hints {
187
270
  display: flex;
188
271
  flex-wrap: wrap;
@@ -200,7 +283,10 @@
200
283
  gap: var(--zx-space-1);
201
284
  }
202
285
 
203
- .zx-launcher__hints kbd {
286
+ .zx-launcher__hints span[hidden] { display: none; }
287
+
288
+ .zx-launcher__hints kbd,
289
+ .zx-launcher__key {
204
290
  min-inline-size: 1.5rem;
205
291
  padding-inline: 4px;
206
292
  text-align: center;
@@ -215,10 +301,6 @@
215
301
  display: none;
216
302
  }
217
303
 
218
- .zx-launcher__search {
219
- grid-template-columns: auto minmax(0, 1fr) auto;
220
- }
221
-
222
304
  .zx-launcher__hints {
223
305
  justify-content: center;
224
306
  }