@zeyos/zx 2.3.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 (150) hide show
  1. package/CHANGELOG.md +138 -0
  2. package/DESIGN-SYSTEM.md +96 -0
  3. package/README.md +29 -39
  4. package/dist/types/components/account-menu/account-menu.d.ts +144 -0
  5. package/dist/types/components/app-sidebar/app-sidebar.d.ts +243 -0
  6. package/dist/types/components/avatar/avatar.d.ts +100 -0
  7. package/dist/types/components/card/card.d.ts +128 -0
  8. package/dist/types/components/chart/chart.d.ts +322 -0
  9. package/dist/types/components/date-picker/month-picker.d.ts +6 -0
  10. package/dist/types/components/dialog/dialog.d.ts +9 -0
  11. package/dist/types/components/dock/dock.d.ts +495 -0
  12. package/dist/types/components/dropdown/dropdown.d.ts +2 -2
  13. package/dist/types/components/field/field.d.ts +14 -0
  14. package/dist/types/components/field-upload/field-upload.d.ts +37 -4
  15. package/dist/types/components/form/form.d.ts +25 -3
  16. package/dist/types/components/grid/grid.d.ts +172 -0
  17. package/dist/types/components/launcher/launcher.d.ts +359 -0
  18. package/dist/types/components/layout/layout.d.ts +4 -4
  19. package/dist/types/components/menu-button/menu-button.d.ts +10 -2
  20. package/dist/types/components/modal/modal.d.ts +25 -0
  21. package/dist/types/components/multi-value-editor/multi-value-editor.d.ts +7 -1
  22. package/dist/types/components/questionnaire/items.d.ts +327 -0
  23. package/dist/types/components/questionnaire/questionnaire.d.ts +449 -0
  24. package/dist/types/components/select/select.d.ts +51 -0
  25. package/dist/types/components/sheet/sheet-stack.d.ts +167 -0
  26. package/dist/types/components/sheet/sheet.d.ts +294 -0
  27. package/dist/types/components/split-view/split-view.d.ts +2 -21
  28. package/dist/types/components/table/table.d.ts +223 -15
  29. package/dist/types/components/tooltip/tooltip.d.ts +2 -2
  30. package/dist/types/components/value-list/value-list.d.ts +24 -3
  31. package/dist/types/core/dom.d.ts +122 -0
  32. package/dist/types/core/drag-axis.d.ts +111 -0
  33. package/dist/types/core/position.d.ts +4 -2
  34. package/dist/types/index.d.ts +13 -2
  35. package/dist/types/internal/app-rail.d.ts +265 -0
  36. package/dist/types/zeyos/icons.d.ts +5 -0
  37. package/dist/types/zeyos/index.d.ts +2 -1
  38. package/dist/types/zeyos/launcher.d.ts +147 -0
  39. package/dist/types/zeyos/select.d.ts +39 -0
  40. package/dist/zx-zeyos.esm.js +1870 -133
  41. package/dist/zx-zeyos.esm.min.js +1 -1
  42. package/dist/zx.css +2006 -267
  43. package/dist/zx.esm.js +8987 -2757
  44. package/dist/zx.esm.min.js +3 -3
  45. package/dist/zx.global.js +8987 -2757
  46. package/dist/zx.global.min.js +3 -3
  47. package/dist/zx.min.css +1 -1
  48. package/docs/api.json +4396 -2344
  49. package/docs/llms.md +463 -86
  50. package/docs/llms.txt +32 -19
  51. package/package.json +10 -17
  52. package/src/components/account-menu/account-menu.css +70 -0
  53. package/src/components/account-menu/account-menu.js +208 -0
  54. package/src/components/app-rail/app-rail.css +107 -0
  55. package/src/components/app-sidebar/app-sidebar.css +80 -0
  56. package/src/components/app-sidebar/app-sidebar.js +588 -0
  57. package/src/components/avatar/avatar.css +61 -0
  58. package/src/components/avatar/avatar.js +222 -0
  59. package/src/components/button/button.css +0 -1
  60. package/src/components/card/card.css +149 -0
  61. package/src/components/card/card.js +285 -0
  62. package/src/components/chart/chart.css +61 -0
  63. package/src/components/chart/chart.js +523 -0
  64. package/src/components/date-picker/month-picker.js +9 -0
  65. package/src/components/dialog/dialog.js +11 -4
  66. package/src/components/dock/dock.css +228 -0
  67. package/src/components/dock/dock.js +977 -0
  68. package/src/components/dropdown/dropdown.js +1 -1
  69. package/src/components/field/field.js +2 -0
  70. package/src/components/field-upload/field-upload.js +9 -4
  71. package/src/components/form/form.js +6 -3
  72. package/src/components/grid/grid.css +6 -0
  73. package/src/components/grid/grid.js +220 -0
  74. package/src/components/launcher/launcher.css +210 -0
  75. package/src/components/launcher/launcher.js +765 -0
  76. package/src/components/layout/layout.js +2 -2
  77. package/src/components/menu-button/menu-button.js +27 -2
  78. package/src/components/modal/modal.css +5 -1
  79. package/src/components/modal/modal.js +37 -2
  80. package/src/components/multi-value-editor/multi-value-editor.js +2 -1
  81. package/src/components/questionnaire/items.js +370 -0
  82. package/src/components/questionnaire/questionnaire.css +387 -0
  83. package/src/components/questionnaire/questionnaire.js +1033 -0
  84. package/src/components/select/field-adapter.js +9 -4
  85. package/src/components/select/select.css +144 -11
  86. package/src/components/select/select.js +259 -27
  87. package/src/components/sheet/sheet-stack.js +304 -0
  88. package/src/components/sheet/sheet.css +351 -0
  89. package/src/components/sheet/sheet.js +551 -0
  90. package/src/components/split-view/split-view.js +76 -161
  91. package/src/components/table/table.css +43 -0
  92. package/src/components/table/table.js +531 -52
  93. package/src/components/tooltip/tooltip.js +5 -2
  94. package/src/components/value-list/value-list.js +6 -3
  95. package/src/core/dom.js +322 -0
  96. package/src/core/drag-axis.js +203 -0
  97. package/src/core/position.js +68 -22
  98. package/src/index.js +20 -2
  99. package/src/internal/app-rail.js +718 -0
  100. package/src/zeyos/icons.js +8 -3
  101. package/src/zeyos/index.js +7 -1
  102. package/src/zeyos/launcher.js +338 -0
  103. package/src/zeyos/modules.js +1 -0
  104. package/src/zeyos/select.js +115 -1
  105. package/styles/tokens/dark.css +2 -3
  106. package/styles/tokens/global.css +6 -6
  107. package/styles/tokens/modules.css +1 -0
  108. package/styles/tokens/semantic.css +5 -3
  109. package/styles/tokens/themes.css +1 -1
  110. package/styles/zx.css +11 -1
  111. package/MIGRATION.md +0 -598
  112. package/dist/types/compat/base.d.ts +0 -156
  113. package/dist/types/compat/globals.d.ts +0 -20
  114. package/dist/types/compat/index.d.ts +0 -128
  115. package/dist/types/compat/map/basic.d.ts +0 -175
  116. package/dist/types/compat/map/data.d.ts +0 -102
  117. package/dist/types/compat/map/date-time.d.ts +0 -80
  118. package/dist/types/compat/map/factory.d.ts +0 -9
  119. package/dist/types/compat/map/form.d.ts +0 -98
  120. package/dist/types/compat/map/helpers.d.ts +0 -12
  121. package/dist/types/compat/map/http.d.ts +0 -36
  122. package/dist/types/compat/map/layout.d.ts +0 -106
  123. package/dist/types/compat/map/options.d.ts +0 -80
  124. package/dist/types/compat/map/select.d.ts +0 -95
  125. package/dist/types/compat/map/stubs.d.ts +0 -32
  126. package/dist/types/compat/map/utilities.d.ts +0 -37
  127. package/dist/types/compat-entry.d.ts +0 -5
  128. package/dist/types/components/permission/permission.d.ts +0 -96
  129. package/dist/zx-compat.esm.js +0 -17484
  130. package/dist/zx-compat.esm.min.js +0 -1
  131. package/dist/zx-compat.global.js +0 -23635
  132. package/dist/zx-compat.global.min.js +0 -3
  133. package/src/compat/base.js +0 -291
  134. package/src/compat/globals.js +0 -165
  135. package/src/compat/index.js +0 -84
  136. package/src/compat/map/basic.js +0 -464
  137. package/src/compat/map/data.js +0 -232
  138. package/src/compat/map/date-time.js +0 -177
  139. package/src/compat/map/factory.js +0 -45
  140. package/src/compat/map/form.js +0 -330
  141. package/src/compat/map/helpers.js +0 -46
  142. package/src/compat/map/http.js +0 -117
  143. package/src/compat/map/layout.js +0 -256
  144. package/src/compat/map/options.js +0 -267
  145. package/src/compat/map/select.js +0 -198
  146. package/src/compat/map/stubs.js +0 -26
  147. package/src/compat/map/utilities.js +0 -113
  148. package/src/compat-entry.js +0 -11
  149. package/src/components/permission/permission.css +0 -47
  150. package/src/components/permission/permission.js +0 -201
@@ -0,0 +1,228 @@
1
+ /*
2
+ * One flex line, one custom property per pane. A sized pane is `flex: 0 0 var(--zx-pane-size)`, a
3
+ * collapsed one falls back to `auto` and hides its body so it measures exactly its header, and one
4
+ * element carries `data-grow` to absorb the slack. That is what keeps a drag local: it rewrites at
5
+ * most two properties and nothing else in the stack moves.
6
+ *
7
+ * The root has no size of its own — give it one (a grid area, `block-size: 100%`, a flex child)
8
+ * when the panes should fill a shell rather than grow with their content.
9
+ */
10
+ .zx-dock {
11
+ --zx-dock-divider-size: var(--zx-space-2);
12
+ --zx-dock-divider-line: 1px;
13
+ display: flex;
14
+ min-inline-size: 0;
15
+ min-block-size: 0;
16
+ background: var(--zx-color-bg-surface);
17
+ color: var(--zx-color-text);
18
+ }
19
+
20
+ .zx-dock[data-orientation="vertical"] { flex-direction: column; }
21
+ .zx-dock[data-orientation="horizontal"] { flex-direction: row; }
22
+
23
+ .zx-dock[data-dragging="true"] {
24
+ user-select: none;
25
+ cursor: inherit;
26
+ }
27
+
28
+ .zx-dock__pane {
29
+ display: flex;
30
+ flex-direction: column;
31
+ flex: 0 0 var(--zx-pane-size, auto);
32
+ min-inline-size: 0;
33
+ min-block-size: 0;
34
+ overflow: hidden;
35
+ }
36
+
37
+ .zx-dock__pane[data-grow="true"],
38
+ .zx-dock__content {
39
+ flex: 1 1 0;
40
+ min-inline-size: 0;
41
+ min-block-size: 0;
42
+ }
43
+
44
+ .zx-dock__content { overflow: auto; }
45
+
46
+ /* A collapsed pane keeps its header and nothing else, so the stack measures it exactly. */
47
+ .zx-dock__pane[data-state="collapsed"] { flex: 0 0 auto; }
48
+ .zx-dock__pane[data-state="collapsed"] > .zx-dock__body { display: none; }
49
+
50
+ .zx-dock__header {
51
+ flex: none;
52
+ display: flex;
53
+ align-items: center;
54
+ gap: var(--zx-space-1);
55
+ padding-inline: var(--zx-space-2);
56
+ min-block-size: var(--zx-control-height);
57
+ border-block-end: 1px solid var(--zx-color-border);
58
+ background: var(--zx-color-bg-muted);
59
+ }
60
+
61
+ .zx-dock__pane[data-state="collapsed"] > .zx-dock__header { border-block-end-color: transparent; }
62
+
63
+ .zx-dock__toggle {
64
+ flex: none;
65
+ display: inline-flex;
66
+ align-items: center;
67
+ gap: var(--zx-space-2);
68
+ /* Clears the control chrome `styles/base.css` puts on every bare button. */
69
+ min-block-size: 0;
70
+ border: 0;
71
+ border-radius: var(--zx-radius-sm);
72
+ padding: var(--zx-space-1);
73
+ background: none;
74
+ color: inherit;
75
+ font: inherit;
76
+ font-size: var(--zx-text-sm);
77
+ font-weight: var(--zx-control-font-weight);
78
+ cursor: pointer;
79
+ }
80
+
81
+ .zx-dock__toggle:hover:not(:disabled) { background: var(--zx-color-bg-hover); }
82
+ .zx-dock__toggle:disabled { cursor: default; }
83
+ .zx-dock__toggle:disabled .zx-dock__chevron { visibility: hidden; }
84
+
85
+ .zx-dock__toggle:focus-visible {
86
+ outline: none;
87
+ box-shadow: var(--zx-focus-ring);
88
+ }
89
+
90
+ .zx-dock__chevron {
91
+ display: inline-flex;
92
+ color: var(--zx-color-text-muted);
93
+ transition: rotate var(--zx-dur-fast) var(--zx-ease);
94
+ }
95
+
96
+ .zx-dock__pane[data-state="open"] > .zx-dock__header .zx-dock__chevron { rotate: 90deg; }
97
+
98
+ @media (prefers-reduced-motion: reduce) {
99
+ .zx-dock__chevron { transition: none; }
100
+ }
101
+
102
+ .zx-dock__title {
103
+ white-space: nowrap;
104
+ overflow: hidden;
105
+ text-overflow: ellipsis;
106
+ }
107
+
108
+ /* A tab group puts its strip where the title would be, which is what makes it read as one pane. */
109
+ .zx-dock__tabs {
110
+ display: flex;
111
+ align-items: stretch;
112
+ gap: var(--zx-space-1);
113
+ min-inline-size: 0;
114
+ overflow-x: auto;
115
+ scrollbar-width: none;
116
+ }
117
+
118
+ .zx-dock__tabs::-webkit-scrollbar { display: none; }
119
+
120
+ .zx-dock__tab {
121
+ flex: none;
122
+ /* Same reason as the toggle: the base control box does not apply to a tab. */
123
+ min-block-size: 0;
124
+ border: 0;
125
+ border-radius: var(--zx-radius-sm);
126
+ padding: var(--zx-space-1) var(--zx-space-2);
127
+ background: none;
128
+ color: var(--zx-color-text-muted);
129
+ font: inherit;
130
+ font-size: var(--zx-text-sm);
131
+ white-space: nowrap;
132
+ cursor: pointer;
133
+ }
134
+
135
+ .zx-dock__tab:hover { color: var(--zx-color-text); }
136
+
137
+ .zx-dock__tab[aria-selected="true"] {
138
+ background: var(--zx-color-bg-surface);
139
+ color: var(--zx-color-text);
140
+ font-weight: var(--zx-control-font-weight);
141
+ }
142
+
143
+ .zx-dock__tab:focus-visible {
144
+ outline: none;
145
+ box-shadow: var(--zx-focus-ring);
146
+ }
147
+
148
+ .zx-dock__body {
149
+ display: flex;
150
+ flex-direction: column;
151
+ flex: 1 1 auto;
152
+ min-block-size: 0;
153
+ min-inline-size: 0;
154
+ overflow: auto;
155
+ }
156
+
157
+ .zx-dock__pane-content,
158
+ .zx-dock__panel {
159
+ flex: 1 1 auto;
160
+ min-block-size: 0;
161
+ padding: var(--zx-space-3);
162
+ }
163
+
164
+ /*
165
+ * A dock nested as a pane's whole content fills it. Without this the inner dock would size to its
166
+ * own content and its growing pane would collapse to nothing — and dock-in-dock is exactly how a
167
+ * workbench is built, so it should not need a rule in the application.
168
+ */
169
+ .zx-dock__pane-content > .zx-dock:only-child,
170
+ .zx-dock__panel > .zx-dock:only-child {
171
+ block-size: 100%;
172
+ }
173
+
174
+ .zx-dock__panel:focus-visible {
175
+ outline: none;
176
+ box-shadow: inset var(--zx-focus-ring);
177
+ }
178
+
179
+ /*
180
+ * The hit area is thicker than the line it draws, so the divider is grabbable without a visible
181
+ * gutter — the same trade SplitView makes.
182
+ */
183
+ .zx-dock__divider {
184
+ position: relative;
185
+ flex: none;
186
+ background: none;
187
+ }
188
+
189
+ .zx-dock[data-orientation="vertical"] > .zx-dock__divider {
190
+ block-size: var(--zx-dock-divider-size);
191
+ margin-block: calc(var(--zx-dock-divider-size) / -2);
192
+ cursor: row-resize;
193
+ }
194
+
195
+ .zx-dock[data-orientation="horizontal"] > .zx-dock__divider {
196
+ inline-size: var(--zx-dock-divider-size);
197
+ margin-inline: calc(var(--zx-dock-divider-size) / -2);
198
+ cursor: col-resize;
199
+ }
200
+
201
+ .zx-dock__divider[data-disabled] { cursor: default; }
202
+
203
+ .zx-dock__divider::after {
204
+ content: "";
205
+ position: absolute;
206
+ inset: 0;
207
+ margin: auto;
208
+ background: var(--zx-color-border);
209
+ }
210
+
211
+ .zx-dock[data-orientation="vertical"] > .zx-dock__divider::after {
212
+ block-size: var(--zx-dock-divider-line);
213
+ }
214
+
215
+ .zx-dock[data-orientation="horizontal"] > .zx-dock__divider::after {
216
+ inline-size: var(--zx-dock-divider-line);
217
+ }
218
+
219
+ .zx-dock__divider:not([data-disabled]):hover::after,
220
+ .zx-dock[data-dragging="true"] .zx-dock__divider:focus::after {
221
+ background: var(--zx-color-accent);
222
+ }
223
+
224
+ .zx-dock__divider:focus-visible {
225
+ outline: none;
226
+ z-index: 1;
227
+ box-shadow: var(--zx-focus-ring);
228
+ }