@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
@@ -16,8 +16,8 @@
16
16
  .zx-card[data-variant="raised"] {
17
17
  border: 1px solid var(--zx-color-glass-border);
18
18
  background: var(--zx-color-glass-surface);
19
- -webkit-backdrop-filter: blur(var(--zx-glass-blur)) saturate(var(--zx-glass-saturation));
20
- backdrop-filter: blur(var(--zx-glass-blur)) saturate(var(--zx-glass-saturation));
19
+ -webkit-backdrop-filter: var(--zx-glass-filter-raised);
20
+ backdrop-filter: var(--zx-glass-filter-raised);
21
21
  box-shadow: var(--zx-glass-raised-shadow);
22
22
  }
23
23
 
@@ -0,0 +1,389 @@
1
+ .zx-card-view {
2
+ --zx-card-view-min-card-width: 18rem;
3
+ --zx-card-view-column-basis: 0%;
4
+ inline-size: 100%;
5
+ min-inline-size: 0;
6
+ container-type: inline-size;
7
+ }
8
+
9
+ .zx-card-view__toolbar {
10
+ flex-wrap: wrap;
11
+ }
12
+
13
+ .zx-card-view__sort {
14
+ display: inline-flex;
15
+ align-items: center;
16
+ gap: var(--zx-space-2);
17
+ color: var(--zx-color-text-muted);
18
+ font-size: var(--zx-text-sm);
19
+ }
20
+
21
+ .zx-card-view__sort[hidden] {
22
+ display: none;
23
+ }
24
+
25
+ .zx-card-view__sort select {
26
+ min-block-size: calc(var(--zx-control-height) - var(--zx-space-1));
27
+ max-inline-size: min(18rem, 65vw);
28
+ border: 1px solid var(--zx-color-border);
29
+ border-radius: var(--zx-radius-sm);
30
+ background: var(--zx-color-bg-surface);
31
+ color: var(--zx-color-text);
32
+ padding-inline: var(--zx-space-2);
33
+ font: inherit;
34
+ }
35
+
36
+ .zx-card-view__sort select:focus-visible {
37
+ outline: none;
38
+ box-shadow: var(--zx-focus-ring);
39
+ }
40
+
41
+ .zx-card-view__content,
42
+ .zx-card-view__group {
43
+ min-inline-size: 0;
44
+ }
45
+
46
+ .zx-card-view__group + .zx-card-view__group {
47
+ margin-block-start: var(--zx-space-6);
48
+ }
49
+
50
+ .zx-card-view__group-heading {
51
+ margin: 0 0 var(--zx-space-3);
52
+ color: var(--zx-color-text);
53
+ font-size: var(--zx-text-lg);
54
+ line-height: 1.35;
55
+ }
56
+
57
+ .zx-card-view__list {
58
+ display: grid;
59
+ grid-template-columns: repeat(auto-fit,
60
+ minmax(min(100%, max(var(--zx-card-view-min-card-width),
61
+ calc(var(--zx-card-view-column-basis) - var(--zx-space-4)))), 1fr));
62
+ gap: var(--zx-space-4);
63
+ min-inline-size: 0;
64
+ margin: 0;
65
+ padding: 0;
66
+ list-style: none;
67
+ }
68
+
69
+ .zx-record-card {
70
+ position: relative;
71
+ display: grid;
72
+ min-inline-size: 0;
73
+ overflow: hidden;
74
+ border-radius: var(--zx-radius-lg);
75
+ color: var(--zx-color-text);
76
+ }
77
+
78
+ .zx-record-card[data-variant="outlined"] {
79
+ border: 1px solid var(--zx-color-border);
80
+ background: var(--zx-color-bg-surface);
81
+ }
82
+
83
+ .zx-record-card[data-variant="raised"] {
84
+ border: 1px solid var(--zx-color-glass-border);
85
+ background: var(--zx-color-glass-surface);
86
+ -webkit-backdrop-filter: blur(var(--zx-glass-blur)) saturate(var(--zx-glass-saturation));
87
+ backdrop-filter: blur(var(--zx-glass-blur)) saturate(var(--zx-glass-saturation));
88
+ box-shadow: var(--zx-glass-raised-shadow);
89
+ }
90
+
91
+ .zx-record-card[data-variant="filled"] {
92
+ border: 1px solid var(--zx-color-border);
93
+ background: var(--zx-color-bg-muted);
94
+ }
95
+
96
+ .zx-record-card:hover {
97
+ border-color: var(--zx-color-border-strong);
98
+ }
99
+
100
+ .zx-record-card:focus-visible {
101
+ outline: none;
102
+ box-shadow: var(--zx-focus-ring);
103
+ }
104
+
105
+ .zx-record-card[aria-selected="true"] {
106
+ border-color: var(--zx-color-accent);
107
+ box-shadow: inset 0 0 0 1px var(--zx-color-accent);
108
+ }
109
+
110
+ .zx-record-card__preview {
111
+ position: relative;
112
+ display: grid;
113
+ place-items: center;
114
+ min-inline-size: 0;
115
+ aspect-ratio: 16 / 9;
116
+ overflow: hidden;
117
+ border-block-end: 1px solid var(--zx-color-border);
118
+ background: var(--zx-color-bg-muted);
119
+ color: var(--zx-color-text-placeholder);
120
+ }
121
+
122
+ .zx-record-card__preview > :not(.zx-record-card__preview-fallback) {
123
+ position: relative;
124
+ z-index: 1;
125
+ inline-size: 100%;
126
+ block-size: 100%;
127
+ }
128
+
129
+ .zx-record-card__preview-image {
130
+ display: block;
131
+ }
132
+
133
+ .zx-record-card__preview-image[hidden] {
134
+ display: none;
135
+ }
136
+
137
+ .zx-record-card__preview-fallback {
138
+ position: absolute;
139
+ inset: 0;
140
+ display: grid;
141
+ place-items: center;
142
+ }
143
+
144
+ .zx-record-card__body {
145
+ display: grid;
146
+ align-content: start;
147
+ gap: var(--zx-space-4);
148
+ min-inline-size: 0;
149
+ padding: var(--zx-space-4);
150
+ }
151
+
152
+ .zx-record-card__header {
153
+ display: flex;
154
+ align-items: flex-start;
155
+ gap: var(--zx-space-3);
156
+ min-inline-size: 0;
157
+ }
158
+
159
+ .zx-record-card__selection {
160
+ display: inline-grid;
161
+ flex: none;
162
+ place-items: center;
163
+ min-block-size: 1.5rem;
164
+ cursor: pointer;
165
+ }
166
+
167
+ .zx-record-card__selection input {
168
+ inline-size: 1rem;
169
+ block-size: 1rem;
170
+ margin: 0;
171
+ accent-color: var(--zx-color-accent);
172
+ }
173
+
174
+ .zx-record-card__selection input:focus-visible {
175
+ outline: none;
176
+ box-shadow: var(--zx-focus-ring);
177
+ }
178
+
179
+ .zx-record-card__titles {
180
+ flex: 1 1 auto;
181
+ min-inline-size: 0;
182
+ }
183
+
184
+ .zx-record-card__heading {
185
+ margin: 0;
186
+ overflow-wrap: anywhere;
187
+ font-size: var(--zx-text-lg);
188
+ font-weight: 700;
189
+ line-height: 1.35;
190
+ }
191
+
192
+ .zx-record-card__primary,
193
+ .zx-record-card__title {
194
+ color: inherit;
195
+ }
196
+
197
+ .zx-record-card__primary {
198
+ text-decoration: none;
199
+ }
200
+
201
+ .zx-record-card__primary:hover {
202
+ color: var(--zx-color-accent-hover);
203
+ text-decoration: underline;
204
+ }
205
+
206
+ .zx-record-card__primary:focus-visible {
207
+ border-radius: var(--zx-radius-sm);
208
+ outline: none;
209
+ box-shadow: var(--zx-focus-ring);
210
+ }
211
+
212
+ .zx-record-card__subtitle {
213
+ margin: var(--zx-space-1) 0 0;
214
+ overflow-wrap: anywhere;
215
+ color: var(--zx-color-text-muted);
216
+ font-size: var(--zx-text-sm);
217
+ line-height: 1.45;
218
+ }
219
+
220
+ .zx-record-card__actions {
221
+ display: flex;
222
+ flex: none;
223
+ flex-wrap: wrap;
224
+ align-items: center;
225
+ justify-content: flex-end;
226
+ gap: var(--zx-space-1);
227
+ }
228
+
229
+ .zx-record-card__action {
230
+ display: inline-flex;
231
+ align-items: center;
232
+ justify-content: center;
233
+ gap: var(--zx-space-1);
234
+ min-block-size: calc(var(--zx-control-height) - var(--zx-space-1));
235
+ border: 1px solid var(--zx-color-border);
236
+ border-radius: var(--zx-radius-sm);
237
+ background: var(--zx-color-bg-surface);
238
+ color: var(--zx-color-text);
239
+ padding-inline: var(--zx-space-2);
240
+ font: inherit;
241
+ font-size: var(--zx-text-sm);
242
+ line-height: 1;
243
+ text-decoration: none;
244
+ cursor: pointer;
245
+ }
246
+
247
+ .zx-record-card__action:hover:not(:disabled) {
248
+ border-color: var(--zx-color-border-strong);
249
+ background: var(--zx-color-bg-hover);
250
+ }
251
+
252
+ .zx-record-card__action:focus-visible {
253
+ outline: none;
254
+ box-shadow: var(--zx-focus-ring);
255
+ }
256
+
257
+ .zx-record-card__action:disabled {
258
+ color: var(--zx-color-text-placeholder);
259
+ cursor: not-allowed;
260
+ }
261
+
262
+ .zx-record-card__metadata {
263
+ display: grid;
264
+ grid-template-columns: repeat(2, minmax(0, 1fr));
265
+ gap: var(--zx-space-3) var(--zx-space-4);
266
+ min-inline-size: 0;
267
+ margin: 0;
268
+ }
269
+
270
+ .zx-record-card__field {
271
+ display: grid;
272
+ align-content: start;
273
+ gap: var(--zx-space-1);
274
+ min-inline-size: 0;
275
+ }
276
+
277
+ .zx-record-card__label {
278
+ overflow: hidden;
279
+ color: var(--zx-color-text-muted);
280
+ font-size: var(--zx-text-xs);
281
+ font-weight: 600;
282
+ line-height: 1.35;
283
+ text-overflow: ellipsis;
284
+ white-space: nowrap;
285
+ }
286
+
287
+ .zx-record-card__value {
288
+ min-inline-size: 0;
289
+ margin: 0;
290
+ overflow-wrap: anywhere;
291
+ color: var(--zx-color-text);
292
+ font-size: var(--zx-text-sm);
293
+ line-height: 1.45;
294
+ }
295
+
296
+ .zx-record-card__value > :is(img, svg, video) {
297
+ max-inline-size: 100%;
298
+ }
299
+
300
+ .zx-card-view__group-empty,
301
+ .zx-card-view__empty {
302
+ color: var(--zx-color-text-muted);
303
+ text-align: center;
304
+ }
305
+
306
+ .zx-card-view__group-empty {
307
+ grid-column: 1 / -1;
308
+ border: 1px dashed var(--zx-color-border);
309
+ border-radius: var(--zx-radius-md);
310
+ padding: var(--zx-space-5);
311
+ }
312
+
313
+ .zx-card-view__empty {
314
+ display: grid;
315
+ place-items: center;
316
+ min-block-size: 10rem;
317
+ border: 1px dashed var(--zx-color-border);
318
+ border-radius: var(--zx-radius-lg);
319
+ padding: var(--zx-space-6);
320
+ }
321
+
322
+ .zx-card-view__skeleton {
323
+ align-content: start;
324
+ gap: var(--zx-space-3);
325
+ border: 1px solid var(--zx-color-border);
326
+ background: var(--zx-color-bg-surface);
327
+ padding: var(--zx-space-4);
328
+ }
329
+
330
+ .zx-card-view__skeleton-preview {
331
+ aspect-ratio: 16 / 9;
332
+ inline-size: calc(100% + var(--zx-space-4) + var(--zx-space-4));
333
+ margin: calc(-1 * var(--zx-space-4)) calc(-1 * var(--zx-space-4)) var(--zx-space-2);
334
+ }
335
+
336
+ .zx-card-view__skeleton-line {
337
+ block-size: .8rem;
338
+ }
339
+
340
+ .zx-card-view__skeleton-line:nth-child(3) {
341
+ inline-size: 72%;
342
+ }
343
+
344
+ .zx-card-view__skeleton-line:nth-child(4) {
345
+ inline-size: 48%;
346
+ }
347
+
348
+ @container (max-width: 28rem) {
349
+ .zx-card-view__sort-label {
350
+ position: absolute;
351
+ inline-size: 1px;
352
+ block-size: 1px;
353
+ overflow: hidden;
354
+ clip-path: inset(50%);
355
+ }
356
+
357
+ .zx-record-card__metadata {
358
+ grid-template-columns: minmax(0, 1fr);
359
+ }
360
+
361
+ .zx-record-card__action-label {
362
+ position: absolute;
363
+ inline-size: 1px;
364
+ block-size: 1px;
365
+ overflow: hidden;
366
+ clip-path: inset(50%);
367
+ }
368
+ }
369
+
370
+ @media (prefers-reduced-transparency: reduce) {
371
+ .zx-record-card[data-variant="raised"] {
372
+ border-color: var(--zx-color-border);
373
+ background: var(--zx-color-bg-surface);
374
+ -webkit-backdrop-filter: none;
375
+ backdrop-filter: none;
376
+ box-shadow: var(--zx-overlay-shadow);
377
+ }
378
+ }
379
+
380
+ @media (prefers-reduced-motion: no-preference) {
381
+ .zx-record-card,
382
+ .zx-record-card__action,
383
+ .zx-record-card__primary {
384
+ transition: border-color var(--zx-dur-fast) var(--zx-ease),
385
+ background var(--zx-dur-fast) var(--zx-ease),
386
+ color var(--zx-dur-fast) var(--zx-ease),
387
+ box-shadow var(--zx-dur-fast) var(--zx-ease);
388
+ }
389
+ }