@zeyos/zx 3.0.0 → 4.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 (88) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/DESIGN-SYSTEM.md +28 -68
  3. package/README.md +16 -37
  4. package/dist/types/components/app-sidebar/app-sidebar.d.ts +106 -32
  5. package/dist/types/components/card/card.d.ts +128 -0
  6. package/dist/types/components/chart/chart.d.ts +1 -0
  7. package/dist/types/components/launcher/launcher.d.ts +65 -6
  8. package/dist/types/components/select/select.d.ts +51 -0
  9. package/dist/types/components/table/table.d.ts +4 -3
  10. package/dist/types/core/dom.d.ts +8 -0
  11. package/dist/types/index.d.ts +2 -1
  12. package/dist/types/{components/app-rail → internal}/app-rail.d.ts +34 -19
  13. package/dist/types/zeyos/icons.d.ts +5 -0
  14. package/dist/types/zeyos/index.d.ts +2 -1
  15. package/dist/types/zeyos/launcher.d.ts +147 -0
  16. package/dist/types/zeyos/select.d.ts +39 -0
  17. package/dist/zx-zeyos.esm.js +1324 -46
  18. package/dist/zx-zeyos.esm.min.js +1 -1
  19. package/dist/zx.css +400 -12
  20. package/dist/zx.esm.js +1059 -189
  21. package/dist/zx.esm.min.js +3 -3
  22. package/dist/zx.global.js +1059 -189
  23. package/dist/zx.global.min.js +3 -3
  24. package/dist/zx.min.css +1 -1
  25. package/docs/api.json +258 -145
  26. package/docs/llms.md +93 -112
  27. package/docs/llms.txt +16 -15
  28. package/package.json +8 -17
  29. package/src/components/app-sidebar/app-sidebar.css +12 -0
  30. package/src/components/app-sidebar/app-sidebar.js +310 -110
  31. package/src/components/card/card.css +149 -0
  32. package/src/components/card/card.js +285 -0
  33. package/src/components/chart/chart.js +8 -3
  34. package/src/components/grid/grid.js +10 -3
  35. package/src/components/launcher/launcher.css +113 -3
  36. package/src/components/launcher/launcher.js +234 -26
  37. package/src/components/select/field-adapter.js +9 -4
  38. package/src/components/select/select.css +144 -10
  39. package/src/components/select/select.js +259 -27
  40. package/src/components/table/table.js +8 -7
  41. package/src/core/dom.js +20 -0
  42. package/src/index.js +2 -1
  43. package/src/{components/app-rail → internal}/app-rail.js +80 -30
  44. package/src/zeyos/icons.js +8 -3
  45. package/src/zeyos/index.js +7 -1
  46. package/src/zeyos/launcher.js +338 -0
  47. package/src/zeyos/modules.js +1 -0
  48. package/src/zeyos/select.js +115 -1
  49. package/styles/tokens/global.css +1 -1
  50. package/styles/tokens/modules.css +1 -0
  51. package/styles/zx.css +1 -0
  52. package/MIGRATION.md +0 -749
  53. package/dist/types/compat/base.d.ts +0 -156
  54. package/dist/types/compat/globals.d.ts +0 -20
  55. package/dist/types/compat/index.d.ts +0 -128
  56. package/dist/types/compat/map/basic.d.ts +0 -175
  57. package/dist/types/compat/map/data.d.ts +0 -103
  58. package/dist/types/compat/map/date-time.d.ts +0 -80
  59. package/dist/types/compat/map/factory.d.ts +0 -9
  60. package/dist/types/compat/map/form.d.ts +0 -98
  61. package/dist/types/compat/map/helpers.d.ts +0 -12
  62. package/dist/types/compat/map/http.d.ts +0 -36
  63. package/dist/types/compat/map/layout.d.ts +0 -106
  64. package/dist/types/compat/map/options.d.ts +0 -80
  65. package/dist/types/compat/map/select.d.ts +0 -95
  66. package/dist/types/compat/map/stubs.d.ts +0 -32
  67. package/dist/types/compat/map/utilities.d.ts +0 -37
  68. package/dist/types/compat-entry.d.ts +0 -5
  69. package/dist/zx-compat.esm.js +0 -17848
  70. package/dist/zx-compat.esm.min.js +0 -1
  71. package/dist/zx-compat.global.js +0 -29008
  72. package/dist/zx-compat.global.min.js +0 -3
  73. package/src/compat/base.js +0 -291
  74. package/src/compat/globals.js +0 -167
  75. package/src/compat/index.js +0 -84
  76. package/src/compat/map/basic.js +0 -464
  77. package/src/compat/map/data.js +0 -254
  78. package/src/compat/map/date-time.js +0 -177
  79. package/src/compat/map/factory.js +0 -45
  80. package/src/compat/map/form.js +0 -330
  81. package/src/compat/map/helpers.js +0 -46
  82. package/src/compat/map/http.js +0 -117
  83. package/src/compat/map/layout.js +0 -256
  84. package/src/compat/map/options.js +0 -267
  85. package/src/compat/map/select.js +0 -198
  86. package/src/compat/map/stubs.js +0 -26
  87. package/src/compat/map/utilities.js +0 -113
  88. package/src/compat-entry.js +0 -11
package/docs/api.json CHANGED
@@ -130,132 +130,6 @@
130
130
  "events": [],
131
131
  "methods": []
132
132
  },
133
- "AppRail": {
134
- "options": [
135
- {
136
- "name": "items",
137
- "type": "AppNavItem[]",
138
- "default": "[]",
139
- "description": "Application navigation tree."
140
- },
141
- {
142
- "name": "active",
143
- "type": "string|number|null",
144
- "default": "null",
145
- "description": "Active item id."
146
- },
147
- {
148
- "name": "orientation",
149
- "type": "'vertical'|'horizontal'",
150
- "default": "'vertical'",
151
- "description": "Rail flow."
152
- },
153
- {
154
- "name": "side",
155
- "type": "'left'|'right'|'top'|'bottom'",
156
- "default": "'left'",
157
- "description": "Workspace edge occupied by the rail."
158
- },
159
- {
160
- "name": "label",
161
- "type": "string",
162
- "default": "'Applications'",
163
- "description": "Navigation accessible label."
164
- },
165
- {
166
- "name": "header",
167
- "type": "Node|string|number|{toElement: () => Node|null}|null",
168
- "default": "null",
169
- "description": "Leading rail content."
170
- },
171
- {
172
- "name": "footer",
173
- "type": "Node|string|number|{toElement: () => Node|null}|null",
174
- "default": "null",
175
- "description": "Trailing rail content."
176
- },
177
- {
178
- "name": "openDelay",
179
- "type": "number",
180
- "default": "80",
181
- "description": "Hover-open delay in milliseconds."
182
- },
183
- {
184
- "name": "closeDelay",
185
- "type": "number",
186
- "default": "160",
187
- "description": "Pointer/focus crossing grace in milliseconds."
188
- }
189
- ],
190
- "events": [
191
- {
192
- "name": "select",
193
- "payload": "{item, id, value, href, event}",
194
- "description": "Preventable action listener."
195
- },
196
- {
197
- "name": "flyoutchange",
198
- "payload": "{item: AppNavItem, id: string|number, open: boolean}",
199
- "description": "Flyout-state listener."
200
- }
201
- ],
202
- "methods": [
203
- {
204
- "name": "setItems",
205
- "signature": "setItems(items)",
206
- "returns": "this",
207
- "description": "Replaces navigation items and closes removed flyouts."
208
- },
209
- {
210
- "name": "setActive",
211
- "signature": "setActive(id)",
212
- "returns": "this",
213
- "description": "Sets the active item without routing."
214
- },
215
- {
216
- "name": "getItems",
217
- "signature": "getItems()",
218
- "returns": "AppNavItem[]",
219
- "description": "Returns a shallow copy of normalized items."
220
- },
221
- {
222
- "name": "openFlyout",
223
- "signature": "openFlyout(id, [options])",
224
- "returns": "this",
225
- "description": "Opens one item's flyout, optionally focusing its first action."
226
- },
227
- {
228
- "name": "closeFlyout",
229
- "signature": "closeFlyout(id)",
230
- "returns": "this",
231
- "description": "Closes one flyout."
232
- },
233
- {
234
- "name": "closeAllFlyouts",
235
- "signature": "closeAllFlyouts()",
236
- "returns": "this",
237
- "description": "Closes every flyout and cancels pending hover/focus transitions."
238
- },
239
- {
240
- "name": "isFlyoutOpen",
241
- "signature": "isFlyoutOpen(id)",
242
- "returns": "boolean",
243
- "description": "Reports whether an item's flyout is open."
244
- },
245
- {
246
- "name": "focus",
247
- "signature": "focus()",
248
- "returns": "this",
249
- "description": "Focuses the first top-level rail item."
250
- },
251
- {
252
- "name": "destroy",
253
- "signature": "destroy()",
254
- "returns": "void",
255
- "description": "Destroys body popovers/tooltips and restores or removes the root."
256
- }
257
- ]
258
- },
259
133
  "AppSidebar": {
260
134
  "options": [
261
135
  {
@@ -280,13 +154,25 @@
280
154
  "name": "collapsed",
281
155
  "type": "boolean",
282
156
  "default": "false",
283
- "description": "Whether the minimized AppRail is shown."
157
+ "description": "Whether the minimized presentation is shown."
158
+ },
159
+ {
160
+ "name": "collapsible",
161
+ "type": "boolean",
162
+ "default": "true",
163
+ "description": "Whether vertical navigation exposes a mode toggle."
164
+ },
165
+ {
166
+ "name": "orientation",
167
+ "type": "'vertical'|'horizontal'",
168
+ "default": "'vertical'",
169
+ "description": "Navigation flow; horizontal is always minimized."
284
170
  },
285
171
  {
286
172
  "name": "side",
287
- "type": "'left'|'right'",
173
+ "type": "'left'|'right'|'top'|'bottom'",
288
174
  "default": "'left'",
289
- "description": "Workspace side."
175
+ "description": "Workspace edge occupied by navigation."
290
176
  },
291
177
  {
292
178
  "name": "label",
@@ -310,30 +196,53 @@
310
196
  "name": "railHeader",
311
197
  "type": "Node|string|number|{toElement: () => Node|null}|null",
312
198
  "default": "null",
313
- "description": "Minimized rail header content."
199
+ "description": "Minimized leading content."
314
200
  },
315
201
  {
316
202
  "name": "railFooter",
317
203
  "type": "Node|string|number|{toElement: () => Node|null}|null",
318
204
  "default": "null",
319
- "description": "Minimized rail footer content."
205
+ "description": "Minimized trailing content."
206
+ },
207
+ {
208
+ "name": "openDelay",
209
+ "type": "number",
210
+ "default": "80",
211
+ "description": "Minimized flyout hover-open delay."
212
+ },
213
+ {
214
+ "name": "closeDelay",
215
+ "type": "number",
216
+ "default": "160",
217
+ "description": "Minimized flyout crossing grace."
218
+ },
219
+ {
220
+ "name": "renderIcon",
221
+ "type": "(item: AppNavItem, context: Record<string, any>) => Node|null",
222
+ "default": null,
223
+ "description": "Optional host icon renderer."
320
224
  }
321
225
  ],
322
226
  "events": [
323
227
  {
324
228
  "name": "select",
325
- "payload": "{item, id, value, href, event}",
229
+ "payload": "AppNavSelectDetail",
326
230
  "description": "Preventable action listener."
327
231
  },
328
232
  {
329
233
  "name": "branchchange",
330
234
  "payload": "{item: AppNavItem|null, id: string|number|null, expanded: boolean|null, ids: Array<string|number>}",
331
- "description": "Branch-state listener; bulk replacement reports null state."
235
+ "description": "Branch-state listener."
332
236
  },
333
237
  {
334
238
  "name": "collapsechange",
335
239
  "payload": "{collapsed: boolean}",
336
240
  "description": "Presentation-state listener."
241
+ },
242
+ {
243
+ "name": "flyoutchange",
244
+ "payload": "{item: AppNavItem, id: string|number, open: boolean}",
245
+ "description": "Minimized flyout-state listener."
337
246
  }
338
247
  ],
339
248
  "methods": [
@@ -341,13 +250,19 @@
341
250
  "name": "setItems",
342
251
  "signature": "setItems(items)",
343
252
  "returns": "this",
344
- "description": "Replaces the navigation tree in both expanded and rail presentations."
253
+ "description": "Replaces the navigation tree in the active presentation."
254
+ },
255
+ {
256
+ "name": "getItems",
257
+ "signature": "getItems()",
258
+ "returns": "AppNavItem[]",
259
+ "description": "Returns a shallow copy of normalized items."
345
260
  },
346
261
  {
347
262
  "name": "setActive",
348
263
  "signature": "setActive(id)",
349
264
  "returns": "this",
350
- "description": "Sets the active id in both presentations without routing."
265
+ "description": "Sets the active id without routing."
351
266
  },
352
267
  {
353
268
  "name": "setExpanded",
@@ -371,37 +286,67 @@
371
286
  "name": "expand",
372
287
  "signature": "expand([options])",
373
288
  "returns": "this",
374
- "description": "Shows the expanded sidebar presentation."
289
+ "description": "Shows the expanded vertical presentation."
375
290
  },
376
291
  {
377
292
  "name": "collapse",
378
293
  "signature": "collapse([options])",
379
294
  "returns": "this",
380
- "description": "Shows the minimized AppRail presentation."
295
+ "description": "Shows the minimized presentation."
381
296
  },
382
297
  {
383
298
  "name": "setCollapsed",
384
299
  "signature": "setCollapsed(collapsed, [options])",
385
300
  "returns": "this",
386
- "description": "Sets expanded/minimized presentation while preserving branch state."
301
+ "description": "Sets the saved vertical expanded/minimized state."
387
302
  },
388
303
  {
389
304
  "name": "isCollapsed",
390
305
  "signature": "isCollapsed()",
391
306
  "returns": "boolean",
392
- "description": "Reports whether the rail presentation is active."
307
+ "description": "Reports the effective presentation state; horizontal navigation is always minimized."
308
+ },
309
+ {
310
+ "name": "setLayout",
311
+ "signature": "setLayout(layout, [options])",
312
+ "returns": "this",
313
+ "description": "Changes navigation flow/edge without replacing state."
314
+ },
315
+ {
316
+ "name": "openFlyout",
317
+ "signature": "openFlyout(id, [options])",
318
+ "returns": "this",
319
+ "description": "Opens a minimized descendant flyout."
393
320
  },
394
321
  {
395
- "name": "getRail",
396
- "signature": "getRail()",
397
- "returns": "AppRail",
398
- "description": "Returns the composed minimized rail."
322
+ "name": "closeFlyout",
323
+ "signature": "closeFlyout(id)",
324
+ "returns": "this",
325
+ "description": "Closes a minimized descendant flyout."
326
+ },
327
+ {
328
+ "name": "closeAllFlyouts",
329
+ "signature": "closeAllFlyouts()",
330
+ "returns": "this",
331
+ "description": "Closes every minimized flyout."
332
+ },
333
+ {
334
+ "name": "isFlyoutOpen",
335
+ "signature": "isFlyoutOpen(id)",
336
+ "returns": "boolean",
337
+ "description": "Reports whether a minimized flyout is open."
338
+ },
339
+ {
340
+ "name": "focus",
341
+ "signature": "focus()",
342
+ "returns": "this",
343
+ "description": "Focuses the first navigation action."
399
344
  },
400
345
  {
401
346
  "name": "destroy",
402
347
  "signature": "destroy()",
403
348
  "returns": "void",
404
- "description": "Destroys the rail and restores/removes the sidebar host."
349
+ "description": "Destroys flyouts and restores/removes the host."
405
350
  }
406
351
  ]
407
352
  },
@@ -755,6 +700,109 @@
755
700
  ],
756
701
  "methods": []
757
702
  },
703
+ "Card": {
704
+ "options": [
705
+ {
706
+ "name": "title",
707
+ "type": "string",
708
+ "default": "''",
709
+ "description": "Card title."
710
+ },
711
+ {
712
+ "name": "media",
713
+ "type": "CardContent",
714
+ "default": "null",
715
+ "description": "Optional image, avatar, icon, or other media."
716
+ },
717
+ {
718
+ "name": "content",
719
+ "type": "CardContent",
720
+ "default": "null",
721
+ "description": "Main card content; enhanced children are adopted by default."
722
+ },
723
+ {
724
+ "name": "actions",
725
+ "type": "CardAction[]",
726
+ "default": "[]",
727
+ "description": "Secondary native controls beside the title."
728
+ },
729
+ {
730
+ "name": "footer",
731
+ "type": "CardContent",
732
+ "default": "null",
733
+ "description": "Optional metadata or trailing content."
734
+ },
735
+ {
736
+ "name": "link",
737
+ "type": "CardLink",
738
+ "default": "null",
739
+ "description": "Optional native primary link rendered around the title."
740
+ },
741
+ {
742
+ "name": "variant",
743
+ "type": "'outlined'|'raised'|'filled'",
744
+ "default": "'outlined'",
745
+ "description": "Surface treatment."
746
+ },
747
+ {
748
+ "name": "orientation",
749
+ "type": "'vertical'|'horizontal'",
750
+ "default": "'vertical'",
751
+ "description": "Media/content arrangement."
752
+ },
753
+ {
754
+ "name": "headingLevel",
755
+ "type": "1|2|3|4|5|6",
756
+ "default": "3",
757
+ "description": "Semantic title heading level."
758
+ }
759
+ ],
760
+ "events": [],
761
+ "methods": [
762
+ {
763
+ "name": "setTitle",
764
+ "signature": "setTitle(title)",
765
+ "returns": "this",
766
+ "description": "Replaces the card title."
767
+ },
768
+ {
769
+ "name": "setMedia",
770
+ "signature": "setMedia(content)",
771
+ "returns": "this",
772
+ "description": "Replaces or removes the media region."
773
+ },
774
+ {
775
+ "name": "setContent",
776
+ "signature": "setContent(content)",
777
+ "returns": "this",
778
+ "description": "Replaces or clears the main content."
779
+ },
780
+ {
781
+ "name": "setActions",
782
+ "signature": "setActions(actions)",
783
+ "returns": "this",
784
+ "description": "Replaces the secondary action controls."
785
+ },
786
+ {
787
+ "name": "setFooter",
788
+ "signature": "setFooter(content)",
789
+ "returns": "this",
790
+ "description": "Replaces or removes the footer."
791
+ },
792
+ {
793
+ "name": "setLink",
794
+ "signature": "setLink(link)",
795
+ "returns": "this",
796
+ "description": "Sets or removes the title's native primary link."
797
+ },
798
+ {
799
+ "name": "destroy",
800
+ "signature": "destroy()",
801
+ "returns": "void",
802
+ "description": "Restores an enhanced target exactly, or removes an owned card."
803
+ }
804
+ ]
805
+ },
758
806
  "Chart": {
759
807
  "options": [
760
808
  {
@@ -3241,6 +3289,18 @@
3241
3289
  "default": "'Launcher'",
3242
3290
  "description": "Dialog and field label."
3243
3291
  },
3292
+ {
3293
+ "name": "closeLabel",
3294
+ "type": "string",
3295
+ "default": "'Close launcher'",
3296
+ "description": "Close-button accessible label."
3297
+ },
3298
+ {
3299
+ "name": "resultsLabel",
3300
+ "type": "string",
3301
+ "default": "'Launcher results'",
3302
+ "description": "Results-region accessible label."
3303
+ },
3244
3304
  {
3245
3305
  "name": "emptyText",
3246
3306
  "type": "string",
@@ -3258,6 +3318,12 @@
3258
3318
  "type": "'mod+k'|false",
3259
3319
  "default": "'mod+k'",
3260
3320
  "description": "Optional global keyboard shortcut."
3321
+ },
3322
+ {
3323
+ "name": "hints",
3324
+ "type": "false|{move?: string, open?: string, close?: string}",
3325
+ "default": null,
3326
+ "description": "Visible keyboard hints, or false."
3261
3327
  }
3262
3328
  ],
3263
3329
  "events": [
@@ -3336,6 +3402,12 @@
3336
3402
  "returns": "this",
3337
3403
  "description": "Replaces local catalogue items."
3338
3404
  },
3405
+ {
3406
+ "name": "setCurrent",
3407
+ "signature": "setCurrent(id)",
3408
+ "returns": "this",
3409
+ "description": "Marks one local item as the current destination."
3410
+ },
3339
3411
  {
3340
3412
  "name": "setSources",
3341
3413
  "signature": "setSources(sources)",
@@ -4977,6 +5049,30 @@
4977
5049
  "default": "null",
4978
5050
  "description": "Selected-value renderer."
4979
5051
  },
5052
+ {
5053
+ "name": "renderValueAdornment",
5054
+ "type": "((item: SelectItem) => Node|string|null)|null",
5055
+ "default": "null",
5056
+ "description": "Decorative content before the selected text."
5057
+ },
5058
+ {
5059
+ "name": "renderNone",
5060
+ "type": "((label: string) => Node|string)|null",
5061
+ "default": "null",
5062
+ "description": "Clear-row renderer."
5063
+ },
5064
+ {
5065
+ "name": "noneLabel",
5066
+ "type": "string|null",
5067
+ "default": "null",
5068
+ "description": "Clear-row label independent from the input placeholder."
5069
+ },
5070
+ {
5071
+ "name": "actions",
5072
+ "type": "SelectAction[]",
5073
+ "default": "[]",
5074
+ "description": "Command rows that emit `action` without changing value."
5075
+ },
4980
5076
  {
4981
5077
  "name": "value",
4982
5078
  "type": "unknown",
@@ -5069,6 +5165,11 @@
5069
5165
  "name": "loaded",
5070
5166
  "payload": "{items}",
5071
5167
  "description": "Async-loaded listener."
5168
+ },
5169
+ {
5170
+ "name": "action",
5171
+ "payload": "{id, action, query, select}",
5172
+ "description": "Preventable command-row listener."
5072
5173
  }
5073
5174
  ],
5074
5175
  "methods": [
@@ -5090,6 +5191,12 @@
5090
5191
  "returns": "this",
5091
5192
  "description": "Replaces the pinned choices and preserves selection by ID when possible."
5092
5193
  },
5194
+ {
5195
+ "name": "setActions",
5196
+ "signature": "setActions(actions)",
5197
+ "returns": "this",
5198
+ "description": "Replaces command rows without changing the selected value."
5199
+ },
5093
5200
  {
5094
5201
  "name": "reset",
5095
5202
  "signature": "reset([options])",
@@ -5132,6 +5239,12 @@
5132
5239
  "returns": "Select",
5133
5240
  "description": "Creates the five-level priority preset."
5134
5241
  },
5242
+ {
5243
+ "name": "status",
5244
+ "signature": "status(target, [options])",
5245
+ "returns": "Select",
5246
+ "description": "Creates a status picker with shape- and color-distinct workflow indicators."
5247
+ },
5135
5248
  {
5136
5249
  "name": "permission",
5137
5250
  "signature": "permission(target, [options])",
@@ -6340,7 +6453,7 @@
6340
6453
  "name": "setLoading",
6341
6454
  "signature": "setLoading([loading])",
6342
6455
  "returns": "this",
6343
- "description": "Toggles a loading state. While loading, the body is dimmed, an indeterminate progress bar is shown, and `aria-busy` is set — a lightweight take on the busy/skeleton pattern used by enterprise tables (SAP UI5, Salesforce SLDS). Call `setLoading(false)` (or `setData`) when done."
6456
+ "description": "Toggles a loading state. While loading, the body is dimmed, an indeterminate progress bar is shown, and `aria-busy` is set — a lightweight enterprise-table busy and skeleton pattern. Call `setLoading(false)` (or `setData`) when done."
6344
6457
  },
6345
6458
  {
6346
6459
  "name": "setData",