@zeyos/zx 4.3.4 → 4.4.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 (128) hide show
  1. package/CHANGELOG.md +155 -0
  2. package/README.md +7 -0
  3. package/dist/types/components/activity-item/activity-item.d.ts +351 -0
  4. package/dist/types/components/activity-list/activity-list.d.ts +195 -0
  5. package/dist/types/components/app-sidebar/app-sidebar.d.ts +28 -0
  6. package/dist/types/components/button/button.d.ts +8 -0
  7. package/dist/types/components/calendar/calendar.d.ts +19 -0
  8. package/dist/types/components/card/card.d.ts +7 -0
  9. package/dist/types/components/card-view/card-view.d.ts +11 -3
  10. package/dist/types/components/card-view/record-card.d.ts +7 -1
  11. package/dist/types/components/code-editor/code-editor.d.ts +160 -0
  12. package/dist/types/components/code-editor/field-adapter.d.ts +5 -0
  13. package/dist/types/components/context-menu/context-menu.d.ts +18 -2
  14. package/dist/types/components/date-picker/date-picker.d.ts +8 -0
  15. package/dist/types/components/date-picker/time-picker.d.ts +7 -0
  16. package/dist/types/components/dialog/dialog.d.ts +29 -0
  17. package/dist/types/components/entity-ref/entity-ref.d.ts +331 -0
  18. package/dist/types/components/file-item/file-item.d.ts +234 -0
  19. package/dist/types/components/file-list/file-list.d.ts +171 -0
  20. package/dist/types/components/filter/filter.d.ts +91 -36
  21. package/dist/types/components/filter-panel/filter-panel.d.ts +449 -0
  22. package/dist/types/components/kanban-view/kanban-card.d.ts +138 -0
  23. package/dist/types/components/kanban-view/kanban-view.d.ts +170 -4
  24. package/dist/types/components/launcher/launcher.d.ts +19 -12
  25. package/dist/types/components/list-toolbar/list-toolbar.d.ts +599 -0
  26. package/dist/types/components/menu-button/menu-button.d.ts +4 -37
  27. package/dist/types/components/message/message.d.ts +7 -0
  28. package/dist/types/components/modal/modal.d.ts +48 -0
  29. package/dist/types/components/navigation-bar/navigation-bar.d.ts +105 -21
  30. package/dist/types/components/panel/panel.d.ts +7 -0
  31. package/dist/types/components/search/search.d.ts +7 -0
  32. package/dist/types/components/select/select.d.ts +4 -0
  33. package/dist/types/components/sort-control/sort-control.d.ts +105 -0
  34. package/dist/types/components/stat-tile/stat-tile.d.ts +277 -0
  35. package/dist/types/components/tabbox/tabbox.d.ts +7 -0
  36. package/dist/types/components/table/table.d.ts +144 -0
  37. package/dist/types/components/table-view/table-view.d.ts +11 -5
  38. package/dist/types/components/timebox/timebox.d.ts +7 -0
  39. package/dist/types/components/value-list/value-list.d.ts +8 -0
  40. package/dist/types/components/view/record-view.d.ts +96 -5
  41. package/dist/types/core/icons.d.ts +17 -0
  42. package/dist/types/index.d.ts +11 -0
  43. package/dist/types/internal/app-rail.d.ts +10 -0
  44. package/dist/types/internal/menu-items.d.ts +134 -0
  45. package/dist/zx-zeyos.esm.js +616 -77
  46. package/dist/zx-zeyos.esm.min.js +8 -1
  47. package/dist/zx.css +2085 -238
  48. package/dist/zx.esm.js +6704 -1542
  49. package/dist/zx.esm.min.js +10 -3
  50. package/dist/zx.global.js +6704 -1542
  51. package/dist/zx.global.min.js +10 -3
  52. package/dist/zx.min.css +1 -1
  53. package/docs/api.json +1479 -127
  54. package/docs/llms.md +315 -10
  55. package/docs/llms.txt +11 -5
  56. package/package.json +1 -1
  57. package/src/components/activity-item/activity-item.css +137 -0
  58. package/src/components/activity-item/activity-item.js +599 -0
  59. package/src/components/activity-list/activity-list.css +64 -0
  60. package/src/components/activity-list/activity-list.js +375 -0
  61. package/src/components/app-rail/app-rail.css +227 -19
  62. package/src/components/app-sidebar/app-sidebar.css +414 -24
  63. package/src/components/app-sidebar/app-sidebar.js +65 -5
  64. package/src/components/button/button.css +8 -0
  65. package/src/components/button/button.js +6 -1
  66. package/src/components/calendar/calendar.js +33 -3
  67. package/src/components/card/card.js +12 -1
  68. package/src/components/card-view/card-view.css +1 -0
  69. package/src/components/card-view/card-view.js +25 -9
  70. package/src/components/card-view/record-card.js +7 -3
  71. package/src/components/code-editor/code-editor.css +67 -0
  72. package/src/components/code-editor/code-editor.js +288 -0
  73. package/src/components/code-editor/field-adapter.js +34 -0
  74. package/src/components/context-menu/context-menu.css +80 -3
  75. package/src/components/context-menu/context-menu.js +22 -30
  76. package/src/components/date-picker/date-picker.js +22 -8
  77. package/src/components/date-picker/month-picker.js +3 -3
  78. package/src/components/date-picker/time-picker.js +20 -8
  79. package/src/components/dialog/dialog.js +88 -66
  80. package/src/components/dropdown/dropdown.js +2 -2
  81. package/src/components/entity-ref/entity-ref.css +182 -0
  82. package/src/components/entity-ref/entity-ref.js +496 -0
  83. package/src/components/file-item/file-item.css +88 -0
  84. package/src/components/file-item/file-item.js +371 -0
  85. package/src/components/file-list/file-list.css +51 -0
  86. package/src/components/file-list/file-list.js +320 -0
  87. package/src/components/filter/filter.css +27 -1
  88. package/src/components/filter/filter.js +199 -45
  89. package/src/components/filter-panel/filter-panel.css +104 -0
  90. package/src/components/filter-panel/filter-panel.js +964 -0
  91. package/src/components/kanban-view/kanban-card.js +239 -0
  92. package/src/components/kanban-view/kanban-view.css +194 -0
  93. package/src/components/kanban-view/kanban-view.js +251 -8
  94. package/src/components/launcher/launcher.js +59 -27
  95. package/src/components/list-toolbar/list-toolbar.css +189 -0
  96. package/src/components/list-toolbar/list-toolbar.js +851 -0
  97. package/src/components/menu-button/menu-button.css +80 -3
  98. package/src/components/menu-button/menu-button.js +21 -37
  99. package/src/components/message/message.css +5 -2
  100. package/src/components/message/message.js +13 -2
  101. package/src/components/modal/modal.css +15 -0
  102. package/src/components/modal/modal.js +141 -0
  103. package/src/components/navigation-bar/navigation-bar.css +77 -2
  104. package/src/components/navigation-bar/navigation-bar.js +171 -4
  105. package/src/components/panel/panel.js +13 -2
  106. package/src/components/search/search.js +17 -5
  107. package/src/components/select/field-adapter.js +4 -1
  108. package/src/components/select/select.js +3 -0
  109. package/src/components/sort-control/sort-control.css +17 -0
  110. package/src/components/sort-control/sort-control.js +140 -0
  111. package/src/components/stat-tile/stat-tile.css +213 -0
  112. package/src/components/stat-tile/stat-tile.js +590 -0
  113. package/src/components/tabbox/tabbox.js +12 -1
  114. package/src/components/table/table.css +51 -2
  115. package/src/components/table/table.js +298 -19
  116. package/src/components/table-view/table-view.css +8 -2
  117. package/src/components/table-view/table-view.js +21 -6
  118. package/src/components/tag-picker/tag-picker.css +3 -1
  119. package/src/components/timebox/timebox.js +18 -5
  120. package/src/components/value-list/value-list.js +22 -6
  121. package/src/components/view/record-view.css +5 -0
  122. package/src/components/view/record-view.js +100 -7
  123. package/src/core/icons.js +74 -5
  124. package/src/index.js +25 -0
  125. package/src/internal/app-rail.js +19 -1
  126. package/src/internal/menu-items.js +142 -0
  127. package/styles/print.css +192 -0
  128. package/styles/zx.css +11 -0
@@ -0,0 +1,213 @@
1
+ /*
2
+ * The tile is a size ladder, not a colour: the value is the loudest thing on it, the label is
3
+ * small above it, and the delta and sparkline are quieter than both. `kind` tints the icon and
4
+ * the sparkline only — never the value, which has to stay at full text contrast whatever intent
5
+ * a server assigns the metric.
6
+ */
7
+ .zx-stat-tile {
8
+ --zx-stat-tile-value-size: var(--zx-text-2xl);
9
+ display: grid;
10
+ gap: var(--zx-space-2);
11
+ align-content: start;
12
+ min-inline-size: 0;
13
+ padding: var(--zx-space-4);
14
+ border: 1px solid var(--zx-color-border);
15
+ border-radius: var(--zx-radius-lg);
16
+ background: var(--zx-color-bg-surface);
17
+ color: var(--zx-color-text);
18
+ }
19
+
20
+ /* The link and button shapes are the same tile, so their native chrome is taken back off. */
21
+ a.zx-stat-tile,
22
+ button.zx-stat-tile {
23
+ appearance: none;
24
+ inline-size: 100%;
25
+ margin: 0;
26
+ font: inherit;
27
+ text-align: start;
28
+ text-decoration: none;
29
+ color: inherit;
30
+ cursor: pointer;
31
+ }
32
+
33
+ a.zx-stat-tile:hover,
34
+ button.zx-stat-tile:hover {
35
+ border-color: var(--zx-color-border-strong);
36
+ background: var(--zx-color-bg-hover);
37
+ }
38
+
39
+ a.zx-stat-tile:focus-visible,
40
+ button.zx-stat-tile:focus-visible {
41
+ outline: 0;
42
+ box-shadow: var(--zx-focus-ring);
43
+ }
44
+
45
+ @media (prefers-reduced-motion: no-preference) {
46
+ a.zx-stat-tile,
47
+ button.zx-stat-tile {
48
+ transition: background var(--zx-dur-fast) var(--zx-ease), border-color var(--zx-dur-fast) var(--zx-ease);
49
+ }
50
+ }
51
+
52
+ .zx-stat-tile__header {
53
+ display: flex;
54
+ gap: var(--zx-space-2);
55
+ align-items: center;
56
+ justify-content: space-between;
57
+ min-inline-size: 0;
58
+ }
59
+
60
+ .zx-stat-tile__label {
61
+ min-inline-size: 0;
62
+ overflow: hidden;
63
+ font-size: var(--zx-text-xs);
64
+ font-weight: 600;
65
+ letter-spacing: 0.04em;
66
+ line-height: 1.4;
67
+ text-transform: uppercase;
68
+ text-overflow: ellipsis;
69
+ white-space: nowrap;
70
+ color: var(--zx-color-text-muted);
71
+ }
72
+
73
+ .zx-stat-tile__icon {
74
+ display: grid;
75
+ flex: none;
76
+ place-items: center;
77
+ inline-size: 1.75rem;
78
+ block-size: 1.75rem;
79
+ border-radius: var(--zx-radius-full);
80
+ background: var(--zx-color-bg-muted);
81
+ color: var(--zx-color-text-muted);
82
+ }
83
+
84
+ /*
85
+ * Wrapping rather than truncating: a clipped label is still a label, but a clipped number is a
86
+ * different number, and a server-supplied metric can be any length at all.
87
+ */
88
+ .zx-stat-tile__value {
89
+ min-inline-size: 0;
90
+ font-size: var(--zx-stat-tile-value-size);
91
+ font-weight: 600;
92
+ font-variant-numeric: tabular-nums;
93
+ line-height: 1.15;
94
+ overflow-wrap: break-word;
95
+ color: var(--zx-color-text);
96
+ }
97
+
98
+ .zx-stat-tile__delta {
99
+ display: flex;
100
+ gap: var(--zx-space-1);
101
+ align-items: baseline;
102
+ min-inline-size: 0;
103
+ font-size: var(--zx-text-xs);
104
+ font-weight: 600;
105
+ font-variant-numeric: tabular-nums;
106
+ line-height: 1.4;
107
+ color: var(--zx-color-text-muted);
108
+ }
109
+
110
+ /*
111
+ * `deltaKind` decides this, not the direction: a metric that went up is not thereby good news.
112
+ * The colour is the last signal in the row, after the sign and the arrow, never the only one.
113
+ */
114
+ .zx-stat-tile__delta[data-kind="positive"] {
115
+ color: var(--zx-color-success);
116
+ }
117
+
118
+ .zx-stat-tile__delta[data-kind="negative"] {
119
+ color: var(--zx-color-danger);
120
+ }
121
+
122
+ .zx-stat-tile__delta .zx-icon {
123
+ flex: none;
124
+ align-self: center;
125
+ }
126
+
127
+ .zx-stat-tile__delta-label {
128
+ min-inline-size: 0;
129
+ overflow: hidden;
130
+ font-weight: 400;
131
+ text-overflow: ellipsis;
132
+ white-space: nowrap;
133
+ /* Reset: the comparison is not part of the change and must not inherit its intent colour. */
134
+ color: var(--zx-color-text-muted);
135
+ }
136
+
137
+ .zx-stat-tile__trend {
138
+ display: block;
139
+ inline-size: 100%;
140
+ block-size: 2rem;
141
+ margin-block-start: var(--zx-space-1);
142
+ color: var(--zx-color-text-placeholder);
143
+ }
144
+
145
+ .zx-stat-tile__loading {
146
+ display: grid;
147
+ gap: var(--zx-space-2);
148
+ }
149
+
150
+ /* Intent. The icon carries it as a tint, the sparkline as its stroke. */
151
+ .zx-stat-tile[data-kind="accent"] .zx-stat-tile__icon {
152
+ background: var(--zx-color-accent-subtle);
153
+ color: var(--zx-color-accent);
154
+ }
155
+
156
+ .zx-stat-tile[data-kind="success"] .zx-stat-tile__icon {
157
+ background: var(--zx-color-success-bg);
158
+ color: var(--zx-color-success);
159
+ }
160
+
161
+ .zx-stat-tile[data-kind="warning"] .zx-stat-tile__icon {
162
+ background: var(--zx-color-warning-bg);
163
+ color: var(--zx-color-warning);
164
+ }
165
+
166
+ .zx-stat-tile[data-kind="danger"] .zx-stat-tile__icon {
167
+ background: var(--zx-color-danger-bg);
168
+ color: var(--zx-color-danger);
169
+ }
170
+
171
+ .zx-stat-tile[data-kind="info"] .zx-stat-tile__icon {
172
+ background: var(--zx-color-info-bg);
173
+ color: var(--zx-color-info);
174
+ }
175
+
176
+ .zx-stat-tile[data-kind="accent"] .zx-stat-tile__trend {
177
+ color: var(--zx-color-accent);
178
+ }
179
+
180
+ .zx-stat-tile[data-kind="success"] .zx-stat-tile__trend {
181
+ color: var(--zx-color-success);
182
+ }
183
+
184
+ .zx-stat-tile[data-kind="warning"] .zx-stat-tile__trend {
185
+ color: var(--zx-color-warning);
186
+ }
187
+
188
+ .zx-stat-tile[data-kind="danger"] .zx-stat-tile__trend {
189
+ color: var(--zx-color-danger);
190
+ }
191
+
192
+ .zx-stat-tile[data-kind="info"] .zx-stat-tile__trend {
193
+ color: var(--zx-color-info);
194
+ }
195
+
196
+ @media (forced-colors: active) {
197
+ .zx-stat-tile {
198
+ border-color: CanvasText;
199
+ }
200
+
201
+ a.zx-stat-tile:hover,
202
+ button.zx-stat-tile:hover {
203
+ border-color: Highlight;
204
+ }
205
+
206
+ /* Every intent resolves to the same system colour here, so the arrow and sign carry the change. */
207
+ .zx-stat-tile__delta,
208
+ .zx-stat-tile__delta-label,
209
+ .zx-stat-tile__icon,
210
+ .zx-stat-tile__trend {
211
+ color: CanvasText;
212
+ }
213
+ }