@zeyos/zx 4.4.0 → 5.2.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 (252) hide show
  1. package/CHANGELOG.md +447 -0
  2. package/README.md +44 -11
  3. package/dist/types/components/account-menu/account-menu.d.ts +8 -0
  4. package/dist/types/components/activity-list/activity-list.d.ts +31 -1
  5. package/dist/types/components/app-icon/app-icon.d.ts +14 -2
  6. package/dist/types/components/app-sidebar/app-sidebar.d.ts +293 -17
  7. package/dist/types/components/avatar/avatar.d.ts +46 -7
  8. package/dist/types/components/badge/badge.d.ts +21 -1
  9. package/dist/types/components/button/button.d.ts +15 -0
  10. package/dist/types/components/calendar/calendar.d.ts +67 -5
  11. package/dist/types/components/card-view/card-view.d.ts +7 -4
  12. package/dist/types/components/card-view/record-card.d.ts +11 -0
  13. package/dist/types/components/chart/chart.d.ts +10 -0
  14. package/dist/types/components/checklist/checklist.d.ts +9 -0
  15. package/dist/types/components/code-editor/code-editor.d.ts +6 -17
  16. package/dist/types/components/context-menu/context-menu.d.ts +6 -2
  17. package/dist/types/components/data-filter/data-filter.d.ts +4 -4
  18. package/dist/types/components/datebox/date-range-box.d.ts +5 -1
  19. package/dist/types/components/datebox/datebox.d.ts +7 -2
  20. package/dist/types/components/dialog/dialog.d.ts +46 -6
  21. package/dist/types/components/dropdown/dropdown.d.ts +24 -9
  22. package/dist/types/components/entity-ref/entity-ref.d.ts +2 -2
  23. package/dist/types/components/field/field.d.ts +54 -2
  24. package/dist/types/components/fieldset/external-adapter.d.ts +83 -0
  25. package/dist/types/components/fieldset/fieldset.d.ts +26 -1
  26. package/dist/types/components/file-item/file-item.d.ts +34 -6
  27. package/dist/types/components/file-list/file-list.d.ts +35 -3
  28. package/dist/types/components/filter/filter.d.ts +127 -3
  29. package/dist/types/components/filter-panel/filter-panel.d.ts +36 -7
  30. package/dist/types/components/form/form.d.ts +12 -1
  31. package/dist/types/components/kanban-view/kanban-card.d.ts +8 -0
  32. package/dist/types/components/launcher/launcher.d.ts +268 -15
  33. package/dist/types/components/list-toolbar/list-toolbar.d.ts +16 -7
  34. package/dist/types/components/menu-button/menu-button.d.ts +39 -5
  35. package/dist/types/components/message/message.d.ts +132 -17
  36. package/dist/types/components/modal/modal.d.ts +43 -2
  37. package/dist/types/components/module-bar/module-bar.d.ts +395 -0
  38. package/dist/types/components/pagination/pagination.d.ts +17 -3
  39. package/dist/types/components/select/color.d.ts +12 -0
  40. package/dist/types/components/select/glyphs.d.ts +124 -0
  41. package/dist/types/components/select/select.d.ts +17 -3
  42. package/dist/types/components/sheet/sheet.d.ts +15 -0
  43. package/dist/types/components/stat-tile/stat-tile.d.ts +16 -5
  44. package/dist/types/components/tabbox/tabbox.d.ts +9 -0
  45. package/dist/types/components/table/table.d.ts +311 -18
  46. package/dist/types/components/tag-picker/tag-picker.d.ts +21 -4
  47. package/dist/types/components/tree/tree.d.ts +13 -0
  48. package/dist/types/components/view/record-view.d.ts +59 -2
  49. package/dist/types/components/view-settings/view-settings.d.ts +879 -0
  50. package/dist/types/components/workspace-switcher/workspace-switcher.d.ts +327 -0
  51. package/dist/types/core/breakpoint.d.ts +1 -1
  52. package/dist/types/core/component.d.ts +12 -2
  53. package/dist/types/core/i18n.d.ts +27 -3
  54. package/dist/types/core/icons.d.ts +23 -25
  55. package/dist/types/core/keyboard.d.ts +98 -1
  56. package/dist/types/core/messages.d.ts +382 -0
  57. package/dist/types/core/motion.d.ts +59 -0
  58. package/dist/types/core/overlay-host.d.ts +42 -1
  59. package/dist/types/core/overlay-stack.d.ts +260 -0
  60. package/dist/types/index.d.ts +10 -5
  61. package/dist/types/internal/app-rail.d.ts +38 -0
  62. package/dist/types/internal/menu-items.d.ts +71 -3
  63. package/dist/types/zeyos/connect.d.ts +6 -0
  64. package/dist/types/zeyos/form.d.ts +50 -9
  65. package/dist/types/zeyos/index.d.ts +2 -1
  66. package/dist/types/zeyos/launcher.d.ts +9 -0
  67. package/dist/types/zeyos/module-bar.d.ts +176 -0
  68. package/dist/types/zeyos/query.d.ts +110 -5
  69. package/dist/types/zeyos/schema.d.ts +24 -1
  70. package/dist/types/zeyos/table.d.ts +345 -22
  71. package/dist/types/zeyos/view.d.ts +26 -2
  72. package/dist/zx-zeyos.esm.js +6178 -1008
  73. package/dist/zx-zeyos.esm.min.js +53 -5
  74. package/dist/zx.css +2861 -827
  75. package/dist/zx.esm.js +8909 -1480
  76. package/dist/zx.esm.min.js +55 -7
  77. package/dist/zx.global.js +8911 -1482
  78. package/dist/zx.global.min.js +55 -7
  79. package/dist/zx.min.css +1 -1
  80. package/docs/api.json +1079 -117
  81. package/docs/llms.md +956 -154
  82. package/docs/llms.txt +9 -5
  83. package/package.json +1 -1
  84. package/src/components/account-menu/account-menu.css +35 -10
  85. package/src/components/account-menu/account-menu.js +12 -0
  86. package/src/components/activity-item/activity-item.css +1 -1
  87. package/src/components/activity-item/activity-item.js +3 -0
  88. package/src/components/activity-list/activity-list.css +38 -3
  89. package/src/components/activity-list/activity-list.js +61 -1
  90. package/src/components/app-icon/app-icon.css +14 -3
  91. package/src/components/app-icon/app-icon.js +11 -1
  92. package/src/components/app-rail/app-rail.css +59 -79
  93. package/src/components/app-sidebar/app-sidebar.css +304 -168
  94. package/src/components/app-sidebar/app-sidebar.js +667 -46
  95. package/src/components/aurora/aurora.css +5 -3
  96. package/src/components/avatar/avatar.css +32 -7
  97. package/src/components/avatar/avatar.js +72 -8
  98. package/src/components/badge/badge.css +54 -2
  99. package/src/components/badge/badge.js +29 -2
  100. package/src/components/breadcrumb/breadcrumb.css +1 -1
  101. package/src/components/button/button.css +67 -9
  102. package/src/components/button/button.js +38 -0
  103. package/src/components/calendar/calendar.css +47 -47
  104. package/src/components/calendar/calendar.js +26 -52
  105. package/src/components/card/card.css +4 -4
  106. package/src/components/card-view/card-view.css +14 -12
  107. package/src/components/card-view/card-view.js +13 -9
  108. package/src/components/card-view/record-card.js +14 -3
  109. package/src/components/chart/chart.css +4 -1
  110. package/src/components/chart/chart.js +12 -0
  111. package/src/components/check-button/check-button.css +10 -2
  112. package/src/components/checklist/checklist.css +9 -2
  113. package/src/components/checklist/checklist.js +11 -5
  114. package/src/components/checklist/field-adapter.js +3 -1
  115. package/src/components/code-editor/code-editor.css +7 -6
  116. package/src/components/code-editor/code-editor.js +19 -1
  117. package/src/components/code-editor/field-adapter.js +9 -2
  118. package/src/components/context-menu/context-menu.css +9 -4
  119. package/src/components/context-menu/context-menu.js +8 -2
  120. package/src/components/copy/copy-button.css +6 -0
  121. package/src/components/copy/copy-input.css +9 -4
  122. package/src/components/data-filter/data-filter.css +5 -4
  123. package/src/components/data-filter/data-filter.js +2 -2
  124. package/src/components/date-picker/date-picker.css +6 -6
  125. package/src/components/date-picker/date-range-picker.css +3 -3
  126. package/src/components/date-picker/time-picker.css +3 -3
  127. package/src/components/datebox/date-range-box.css +79 -2
  128. package/src/components/datebox/date-range-box.js +13 -2
  129. package/src/components/datebox/datebox.css +79 -2
  130. package/src/components/datebox/datebox.js +13 -2
  131. package/src/components/dialog/dialog.css +26 -0
  132. package/src/components/dialog/dialog.js +99 -17
  133. package/src/components/dock/dock.css +5 -4
  134. package/src/components/dropdown/dropdown.css +1 -1
  135. package/src/components/dropdown/dropdown.js +159 -72
  136. package/src/components/empty-state/empty-state.css +2 -2
  137. package/src/components/entity-ref/entity-ref.css +1 -1
  138. package/src/components/entity-ref/entity-ref.js +1 -1
  139. package/src/components/field/field.css +28 -9
  140. package/src/components/field/field.js +101 -29
  141. package/src/components/field-upload/field-upload.css +1 -1
  142. package/src/components/fieldset/external-adapter.js +363 -0
  143. package/src/components/fieldset/fieldset.css +5 -3
  144. package/src/components/fieldset/fieldset.js +38 -64
  145. package/src/components/file-item/file-item.js +144 -10
  146. package/src/components/file-list/file-list.js +144 -21
  147. package/src/components/filter/filter.css +86 -2
  148. package/src/components/filter/filter.js +307 -11
  149. package/src/components/filter-panel/filter-panel.css +1 -1
  150. package/src/components/filter-panel/filter-panel.js +149 -32
  151. package/src/components/finder/finder.css +16 -14
  152. package/src/components/form/form.css +5 -4
  153. package/src/components/form/form.js +11 -2
  154. package/src/components/grid/grid.css +1 -1
  155. package/src/components/groupbox/groupbox.css +1 -1
  156. package/src/components/kanban-view/kanban-card.js +11 -3
  157. package/src/components/kanban-view/kanban-view.css +42 -18
  158. package/src/components/kanban-view/kanban-view.js +9 -6
  159. package/src/components/launcher/launcher.css +108 -26
  160. package/src/components/launcher/launcher.js +530 -42
  161. package/src/components/list-toolbar/list-toolbar.css +13 -8
  162. package/src/components/list-toolbar/list-toolbar.js +40 -14
  163. package/src/components/master-panel/master-panel.css +2 -0
  164. package/src/components/master-panel/master-panel.js +0 -1
  165. package/src/components/menu-button/menu-button.css +72 -4
  166. package/src/components/menu-button/menu-button.js +160 -18
  167. package/src/components/message/message.css +33 -3
  168. package/src/components/message/message.js +264 -22
  169. package/src/components/modal/modal.css +1 -1
  170. package/src/components/modal/modal.js +83 -15
  171. package/src/components/module-bar/module-bar.css +486 -0
  172. package/src/components/module-bar/module-bar.js +1074 -0
  173. package/src/components/multi-value-editor/multi-value-editor.css +1 -1
  174. package/src/components/navigation-bar/navigation-bar.css +18 -9
  175. package/src/components/number-field/field-adapter.js +3 -1
  176. package/src/components/number-field/number-field.css +70 -0
  177. package/src/components/number-field/number-field.js +2 -0
  178. package/src/components/pagination/pagination.css +13 -11
  179. package/src/components/pagination/pagination.js +20 -4
  180. package/src/components/panel/panel.css +4 -3
  181. package/src/components/questionnaire/questionnaire.css +4 -4
  182. package/src/components/rating/field-adapter.js +2 -1
  183. package/src/components/rating/rating.css +8 -1
  184. package/src/components/search/search.css +4 -1
  185. package/src/components/select/color.js +22 -0
  186. package/src/components/select/field-adapter.js +2 -0
  187. package/src/components/select/glyphs.js +165 -0
  188. package/src/components/select/select.css +138 -45
  189. package/src/components/select/select.js +92 -47
  190. package/src/components/sheet/sheet.css +12 -9
  191. package/src/components/sheet/sheet.js +74 -32
  192. package/src/components/slider/field-adapter.js +6 -1
  193. package/src/components/slider/slider.css +18 -4
  194. package/src/components/slider/slider.js +1 -1
  195. package/src/components/sort-control/sort-control.css +4 -1
  196. package/src/components/split-view/split-view.css +1 -1
  197. package/src/components/stat-tile/stat-tile.css +42 -47
  198. package/src/components/stat-tile/stat-tile.js +17 -6
  199. package/src/components/stepper/stepper.css +1 -1
  200. package/src/components/tabbox/tabbox.css +41 -32
  201. package/src/components/tabbox/tabbox.js +5 -1
  202. package/src/components/table/table.css +187 -37
  203. package/src/components/table/table.js +718 -73
  204. package/src/components/tag-picker/field-adapter.js +2 -1
  205. package/src/components/tag-picker/tag-picker.css +83 -5
  206. package/src/components/tag-picker/tag-picker.js +25 -8
  207. package/src/components/timebox/timebox.css +22 -2
  208. package/src/components/toggle/toggle.css +12 -1
  209. package/src/components/toolbar/toolbar.js +2 -2
  210. package/src/components/tooltip/tooltip.css +4 -0
  211. package/src/components/tooltip/tooltip.js +44 -19
  212. package/src/components/tree/tree.css +26 -17
  213. package/src/components/tree/tree.js +31 -0
  214. package/src/components/value-list/value-list.css +3 -3
  215. package/src/components/view/record-view.css +1 -1
  216. package/src/components/view/record-view.js +178 -18
  217. package/src/components/view-settings/view-settings.css +285 -0
  218. package/src/components/view-settings/view-settings.js +1830 -0
  219. package/src/components/workspace-switcher/workspace-switcher.css +188 -0
  220. package/src/components/workspace-switcher/workspace-switcher.js +463 -0
  221. package/src/core/breakpoint.js +1 -1
  222. package/src/core/component.js +88 -17
  223. package/src/core/fontawesome.js +5 -1
  224. package/src/core/i18n.js +47 -4
  225. package/src/core/icons.js +204 -61
  226. package/src/core/keyboard.js +206 -11
  227. package/src/core/messages.js +427 -0
  228. package/src/core/motion.js +147 -0
  229. package/src/core/overlay-host.js +77 -3
  230. package/src/core/overlay-stack.js +487 -0
  231. package/src/core/position.js +22 -3
  232. package/src/index.js +10 -5
  233. package/src/internal/app-rail.js +135 -55
  234. package/src/internal/menu-items.js +61 -3
  235. package/src/zeyos/connect.js +6 -2
  236. package/src/zeyos/form.js +69 -27
  237. package/src/zeyos/index.js +4 -1
  238. package/src/zeyos/launcher.js +8 -3
  239. package/src/zeyos/module-bar.js +181 -0
  240. package/src/zeyos/query.js +197 -13
  241. package/src/zeyos/schema.js +144 -27
  242. package/src/zeyos/table.js +287 -84
  243. package/src/zeyos/view.js +49 -93
  244. package/styles/base.css +72 -1
  245. package/styles/icons.css +11 -1
  246. package/styles/print.css +1 -1
  247. package/styles/tokens/dark.css +117 -37
  248. package/styles/tokens/global.css +121 -27
  249. package/styles/tokens/semantic.css +140 -43
  250. package/styles/tokens/themes.css +7 -6
  251. package/styles/zx.css +3 -1
  252. package/styles/tokens/density.css +0 -9
@@ -1,6 +1,6 @@
1
1
  .zx-calendar {
2
2
  --zx-calendar-time-axis: 4.75rem;
3
- --zx-calendar-slot-height: 24px;
3
+ --zx-calendar-slot-height: var(--zx-space-6);
4
4
  --zx-calendar-event-color: var(--zx-color-accent);
5
5
  position: relative;
6
6
  container-type: inline-size;
@@ -40,13 +40,15 @@
40
40
 
41
41
  .zx-calendar__navigation { justify-self: start; gap: var(--zx-space-1); }
42
42
  .zx-calendar__commands { justify-self: end; gap: var(--zx-space-3); }
43
+ /* The view switch is one framed control with the current view on the neutral current fill — the
44
+ same recipe as ListToolbar's view switch and the segmented Tabbox. */
43
45
  .zx-calendar__views {
44
46
  block-size: var(--zx-control-height);
45
47
  gap: 2px;
46
48
  overflow-x: auto;
47
- border-radius: 0;
48
- background: var(--zx-color-bg-muted);
49
- padding: 3px;
49
+ border: 1px solid var(--zx-color-border-control);
50
+ border-radius: var(--zx-control-radius);
51
+ padding: 2px;
50
52
  }
51
53
 
52
54
  .zx-calendar__toolbar-button,
@@ -75,32 +77,32 @@
75
77
  block-size: 100%;
76
78
  min-block-size: 0;
77
79
  border-color: transparent;
78
- border-radius: 0;
80
+ border-radius: max(0px, calc(var(--zx-control-radius) - 2px));
79
81
  background: transparent;
82
+ color: var(--zx-color-text-muted);
80
83
  padding-inline: var(--zx-space-3);
84
+ font-weight: var(--zx-weight-medium);
81
85
  }
86
+ .zx-calendar__view-button:hover:not(:disabled) { color: var(--zx-color-text); }
82
87
  .zx-calendar__view-button[aria-pressed="true"] {
83
- position: relative;
84
- z-index: 1;
85
- border-color: var(--zx-color-border-control);
86
- background: var(--zx-color-bg-control);
87
- box-shadow: var(--zx-shadow-2);
88
+ background: var(--zx-color-bg-current);
88
89
  color: var(--zx-color-text);
90
+ font-weight: var(--zx-weight-semibold);
89
91
  }
90
92
 
91
93
  .zx-calendar__new {
92
94
  gap: var(--zx-space-2);
93
- border-color: var(--zx-color-accent);
95
+ border-color: var(--zx-color-accent-solid);
94
96
  border-radius: var(--zx-control-radius);
95
- background: var(--zx-color-accent);
96
- color: var(--zx-color-on-accent);
97
+ background: var(--zx-color-accent-solid);
98
+ color: var(--zx-color-on-accent-solid);
97
99
  padding-inline: var(--zx-space-3);
98
- font-weight: 650;
100
+ font-weight: var(--zx-weight-medium);
99
101
  }
100
102
 
101
103
  .zx-calendar__toolbar-button:hover:not(:disabled),
102
104
  .zx-calendar__view-button:hover:not(:disabled):not([aria-pressed="true"]) { background: var(--zx-color-bg-hover); }
103
- .zx-calendar__new:hover:not(:disabled) { background: var(--zx-color-accent-hover); }
105
+ .zx-calendar__new:hover:not(:disabled) { border-color: var(--zx-color-accent-solid-hover); background: var(--zx-color-accent-solid-hover); }
104
106
  .zx-calendar button:disabled { cursor: default; opacity: .55; }
105
107
 
106
108
  .zx-calendar__toolbar-button:focus-visible,
@@ -116,7 +118,7 @@
116
118
  .zx-calendar__more:focus-visible,
117
119
  .zx-calendar__month-week-number:focus-visible {
118
120
  z-index: 4;
119
- outline: none;
121
+ outline-color: transparent;
120
122
  box-shadow: var(--zx-focus-ring);
121
123
  }
122
124
 
@@ -126,7 +128,8 @@
126
128
  overflow: hidden;
127
129
  color: var(--zx-color-text);
128
130
  font-size: var(--zx-text-lg);
129
- font-weight: 700;
131
+ font-weight: var(--zx-weight-semibold);
132
+ letter-spacing: var(--zx-tracking-title);
130
133
  line-height: 1.25;
131
134
  text-align: center;
132
135
  text-overflow: ellipsis;
@@ -148,10 +151,10 @@
148
151
  }
149
152
 
150
153
  .zx-calendar__time-header,
151
- .zx-calendar__all-day { border-block-end: 1px solid var(--zx-color-border); }
154
+ .zx-calendar__all-day { border-block-end: 1px solid var(--zx-color-border-subtle); }
152
155
  .zx-calendar__time-corner,
153
156
  .zx-calendar__all-day-label {
154
- border-inline-end: 1px solid var(--zx-color-border);
157
+ border-inline-end: 1px solid var(--zx-color-border-subtle);
155
158
  color: var(--zx-color-text-muted);
156
159
  }
157
160
 
@@ -167,7 +170,7 @@
167
170
  place-content: center;
168
171
  border: 0;
169
172
  border-radius: 0;
170
- border-inline-end: 1px solid var(--zx-color-border);
173
+ border-inline-end: 1px solid var(--zx-color-border-subtle);
171
174
  background: var(--zx-color-bg-surface);
172
175
  color: var(--zx-color-text);
173
176
  font: inherit;
@@ -176,8 +179,8 @@
176
179
 
177
180
  .zx-calendar__day-heading:last-child { border-inline-end: 0; }
178
181
  .zx-calendar__day-heading:hover:not(:disabled) { background: var(--zx-color-bg-hover); }
179
- .zx-calendar__day-heading[aria-current="date"] .zx-calendar__day-number { color: var(--zx-color-accent); font-weight: 750; }
180
- .zx-calendar__day-weekday { color: var(--zx-color-text-muted); font-size: var(--zx-text-xs); text-transform: uppercase; letter-spacing: .04em; }
182
+ .zx-calendar__day-heading[aria-current="date"] .zx-calendar__day-number { color: var(--zx-color-accent); font-weight: 650; }
183
+ .zx-calendar__day-weekday { color: var(--zx-color-text-muted); font-size: var(--zx-text-xs); font-weight: var(--zx-weight-medium); }
181
184
  .zx-calendar__day-number { font-size: var(--zx-text-sm); }
182
185
 
183
186
  .zx-calendar__all-day { min-block-size: calc(var(--zx-control-height) + var(--zx-space-2)); }
@@ -198,7 +201,7 @@
198
201
  overflow: hidden;
199
202
  }
200
203
 
201
- .zx-calendar__all-day-cell { border-inline-end: 1px solid var(--zx-color-border); }
204
+ .zx-calendar__all-day-cell { border-inline-end: 1px solid var(--zx-color-border-subtle); }
202
205
  .zx-calendar__all-day-cell:last-of-type { border-inline-end: 0; }
203
206
 
204
207
  .zx-calendar__time-scroller {
@@ -212,7 +215,7 @@
212
215
  .zx-calendar__time-axis {
213
216
  position: relative;
214
217
  z-index: 2;
215
- border-inline-end: 1px solid var(--zx-color-border);
218
+ border-inline-end: 1px solid var(--zx-color-border-subtle);
216
219
  background: var(--zx-color-bg-surface);
217
220
  }
218
221
 
@@ -247,8 +250,8 @@
247
250
  min-inline-size: 0;
248
251
  border: 0;
249
252
  border-radius: 0;
250
- border-block-start: 1px solid var(--zx-color-border);
251
- border-inline-end: 1px solid var(--zx-color-border);
253
+ border-block-start: 1px solid var(--zx-color-border-subtle);
254
+ border-inline-end: 1px solid var(--zx-color-border-subtle);
252
255
  background: var(--zx-color-bg-surface);
253
256
  padding: 0;
254
257
  cursor: crosshair;
@@ -321,7 +324,7 @@
321
324
  }
322
325
 
323
326
  .zx-calendar__event-time { overflow: hidden; color: var(--zx-color-text-muted); text-overflow: ellipsis; white-space: nowrap; }
324
- .zx-calendar__event-title { overflow: hidden; font-weight: 680; text-overflow: ellipsis; white-space: nowrap; }
327
+ .zx-calendar__event-title { overflow: hidden; font-weight: var(--zx-weight-semibold); text-overflow: ellipsis; white-space: nowrap; }
325
328
  .zx-calendar__event-location { overflow: hidden; color: var(--zx-color-text-muted); text-overflow: ellipsis; white-space: nowrap; }
326
329
 
327
330
  .zx-calendar__event-resize {
@@ -378,7 +381,8 @@
378
381
  inset-inline-start: var(--zx-space-1);
379
382
  color: var(--zx-color-danger);
380
383
  font-size: var(--zx-text-xs);
381
- font-weight: 700;
384
+ font-weight: var(--zx-weight-semibold);
385
+ font-variant-numeric: tabular-nums;
382
386
  transform: translateY(-100%);
383
387
  }
384
388
 
@@ -386,19 +390,19 @@
386
390
  .zx-calendar__agenda-day {
387
391
  display: grid;
388
392
  grid-template-columns: minmax(10rem, 22%) minmax(0, 1fr);
389
- border-block-end: 1px solid var(--zx-color-border);
393
+ border-block-end: 1px solid var(--zx-color-border-subtle);
390
394
  }
391
395
  .zx-calendar__agenda-heading {
392
396
  align-self: stretch;
393
397
  appearance: none;
394
398
  border: 0;
395
- border-inline-end: 1px solid var(--zx-color-border);
399
+ border-inline-end: 1px solid var(--zx-color-border-subtle);
396
400
  border-radius: 0;
397
401
  background: var(--zx-color-bg-muted);
398
402
  color: var(--zx-color-text);
399
403
  padding: var(--zx-space-3);
400
404
  font: inherit;
401
- font-weight: 700;
405
+ font-weight: var(--zx-weight-semibold);
402
406
  text-align: start;
403
407
  cursor: pointer;
404
408
  }
@@ -408,7 +412,7 @@
408
412
  min-inline-size: 0;
409
413
  }
410
414
  .zx-calendar__agenda-empty { margin: 0; color: var(--zx-color-text-muted); padding: var(--zx-space-3); }
411
- .zx-calendar__agenda-events > .zx-calendar__event { border-block-end: 1px solid var(--zx-color-border); }
415
+ .zx-calendar__agenda-events > .zx-calendar__event { border-block-end: 1px solid var(--zx-color-border-subtle); }
412
416
  .zx-calendar__agenda-events > .zx-calendar__event:last-child { border-block-end: 0; }
413
417
  .zx-calendar__event[data-variant="agenda"] .zx-calendar__event-action {
414
418
  grid-template-columns: minmax(6rem, 18%) minmax(0, 1fr);
@@ -440,7 +444,7 @@
440
444
  grid-template-columns: auto minmax(0, 1fr);
441
445
  }
442
446
 
443
- .zx-calendar__month-weekdays { border-block-end: 1px solid var(--zx-color-border); }
447
+ .zx-calendar__month-weekdays { border-block-end: 1px solid var(--zx-color-border-subtle); }
444
448
  .zx-calendar__month-week-gutter,
445
449
  .zx-calendar__month-week-number { inline-size: 2.5rem; }
446
450
  .zx-calendar__month-weekdays:not(:has(.zx-calendar__month-week-gutter)) { grid-template-columns: repeat(7, minmax(0, 1fr)); }
@@ -449,17 +453,15 @@
449
453
  padding: var(--zx-space-2);
450
454
  color: var(--zx-color-text-muted);
451
455
  font-size: var(--zx-text-xs);
452
- font-weight: 650;
456
+ font-weight: var(--zx-weight-medium);
453
457
  text-align: center;
454
- text-transform: uppercase;
455
- letter-spacing: .04em;
456
458
  }
457
- .zx-calendar__month-week { min-block-size: 7.5rem; border-block-end: 1px solid var(--zx-color-border); }
459
+ .zx-calendar__month-week { min-block-size: 7.5rem; border-block-end: 1px solid var(--zx-color-border-subtle); }
458
460
  .zx-calendar__month-week-number {
459
461
  grid-row: 1;
460
462
  appearance: none;
461
463
  border: 0;
462
- border-inline-end: 1px solid var(--zx-color-border);
464
+ border-inline-end: 1px solid var(--zx-color-border-subtle);
463
465
  border-radius: 0;
464
466
  background: var(--zx-color-bg-muted);
465
467
  color: var(--zx-color-text-muted);
@@ -488,7 +490,7 @@
488
490
  justify-content: flex-end;
489
491
  min-block-size: var(--zx-control-height);
490
492
  border: 0;
491
- border-inline-end: 1px solid var(--zx-color-border);
493
+ border-inline-end: 1px solid var(--zx-color-border-subtle);
492
494
  border-radius: 0;
493
495
  background: var(--zx-color-bg-surface);
494
496
  color: var(--zx-color-text);
@@ -501,7 +503,7 @@
501
503
  .zx-calendar__month-day[data-other-month="true"] { color: var(--zx-color-text-muted); background: var(--zx-color-bg-muted); }
502
504
  .zx-calendar__month-day[aria-current="date"] {
503
505
  color: var(--zx-color-accent);
504
- font-weight: 750;
506
+ font-weight: 650;
505
507
  }
506
508
  .zx-calendar__month-day:hover:not(:disabled) { background: var(--zx-color-bg-hover); }
507
509
  .zx-calendar__month-events {
@@ -545,8 +547,8 @@
545
547
  padding: var(--zx-space-5);
546
548
  }
547
549
  .zx-calendar__year-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 2px; align-content: start; }
548
- .zx-calendar__year-heading { grid-column: 1 / -1; margin: 0 0 var(--zx-space-2); font-size: var(--zx-text-md); }
549
- .zx-calendar__year-weekday { color: var(--zx-color-text-muted); font-size: var(--zx-text-xs); font-weight: 650; text-align: center; }
550
+ .zx-calendar__year-heading { grid-column: 1 / -1; margin: 0 0 var(--zx-space-2); font-size: var(--zx-text-md); font-weight: var(--zx-weight-semibold); }
551
+ .zx-calendar__year-weekday { color: var(--zx-color-text-muted); font-size: var(--zx-text-xs); font-weight: var(--zx-weight-medium); text-align: center; }
550
552
  .zx-calendar__year-day,
551
553
  .zx-calendar__year-blank { aspect-ratio: 1; }
552
554
  .zx-calendar__year-day {
@@ -562,7 +564,7 @@
562
564
  }
563
565
  .zx-calendar__year-day[data-activity="1"] { background: color-mix(in srgb, var(--zx-color-accent) 10%, var(--zx-color-bg-surface)); }
564
566
  .zx-calendar__year-day[data-activity="2"] { background: color-mix(in srgb, var(--zx-color-accent) 20%, var(--zx-color-bg-surface)); }
565
- .zx-calendar__year-day[data-activity="3"] { background: color-mix(in srgb, var(--zx-color-accent) 32%, var(--zx-color-bg-surface)); font-weight: 700; }
567
+ .zx-calendar__year-day[data-activity="3"] { background: color-mix(in srgb, var(--zx-color-accent) 32%, var(--zx-color-bg-surface)); font-weight: var(--zx-weight-semibold); }
566
568
  .zx-calendar__year-day[aria-current="date"] { outline: 2px solid var(--zx-color-accent); outline-offset: -2px; }
567
569
  .zx-calendar__year-day:hover:not(:disabled) { background: var(--zx-color-bg-hover); }
568
570
 
@@ -574,7 +576,7 @@
574
576
  place-items: center;
575
577
  background: color-mix(in srgb, var(--zx-color-bg-surface) 82%, transparent);
576
578
  color: var(--zx-color-text);
577
- font-weight: 650;
579
+ font-weight: var(--zx-weight-medium);
578
580
  }
579
581
  .zx-calendar__loading[hidden] { display: none; }
580
582
  .zx-calendar[data-state="loading"] .zx-calendar__body { opacity: .55; }
@@ -606,15 +608,13 @@
606
608
  inset-block-start: 0;
607
609
  z-index: 3;
608
610
  border-inline-end: 0;
609
- border-block-end: 1px solid var(--zx-color-border);
611
+ border-block-end: 1px solid var(--zx-color-border-subtle);
610
612
  }
611
613
  .zx-calendar__agenda-events { grid-column: 1; }
612
614
  .zx-calendar__event[data-variant="agenda"] .zx-calendar__event-action { grid-template-columns: 5.5rem minmax(0, 1fr); }
613
615
  .zx-calendar__year { grid-template-columns: 1fr; padding: var(--zx-space-3); }
614
616
  }
615
617
 
616
- [data-zx-density="compact"] .zx-calendar { --zx-calendar-slot-height: 20px; }
617
-
618
618
  @media (prefers-reduced-motion: no-preference) {
619
619
  .zx-calendar__event { transition: transform var(--zx-dur-fast) var(--zx-ease), opacity var(--zx-dur-fast) var(--zx-ease); }
620
620
  .zx-calendar__toolbar-button,
@@ -47,7 +47,9 @@ import {
47
47
  * @property {CalendarReader} [eventEditable='editable'] Per-event move reader.
48
48
  * @property {CalendarReader} [eventDurationEditable='durationEditable'] Per-event resize reader.
49
49
  * @property {'milliseconds'|'seconds'} [dateUnit='milliseconds'] Unit for numeric event dates.
50
- * @property {Record<string, string>} [msg] Localized component messages.
50
+ * @property {Record<string, string>} [msg] Per-instance messages, keyed `calendar.*` (`calendar.today`,
51
+ * `calendar.next`, …). The bare keys of earlier versions (`today`, `next`) are still read, after the
52
+ * namespaced key, until the next major version.
51
53
  * @property {(event: CalendarEvent) => Node|string|null} [renderEvent] Optional safe event-content renderer.
52
54
  * @property {(event: CustomEvent<{events: CalendarEvent[]}>) => void} [oneventschange] Programmatic event-data listener.
53
55
  * @property {(event: CustomEvent<{view: CalendarView, oldView: CalendarView}>) => void} [onviewchange] View listener.
@@ -73,31 +75,6 @@ import {
73
75
 
74
76
  /** @typedef {{silent?: boolean}} CalendarSetOptions */
75
77
 
76
- const DEFAULT_MESSAGES = {
77
- today: 'Today',
78
- new: 'New',
79
- agenda: 'Agenda',
80
- day: 'Day',
81
- week: 'Week',
82
- month: 'Month',
83
- year: 'Year',
84
- previous: 'Previous period',
85
- next: 'Next period',
86
- allDay: 'All day',
87
- noEvents: 'No events',
88
- more: '+%1 more',
89
- loading: 'Loading calendar…',
90
- move: 'Move %1',
91
- resize: 'Resize %1',
92
- moveStarted: 'Moving %1. Use arrow keys, Space to drop, or Escape to cancel.',
93
- resizeStarted: 'Resizing %1. Use arrow keys, Space to drop, or Escape to cancel.',
94
- editPreview: '%1, %2 to %3',
95
- editCancelled: 'Calendar edit cancelled.',
96
- editCommitted: '%1 updated.',
97
- calendar: 'Calendar',
98
- weekNumber: 'Week %1'
99
- };
100
-
101
78
  /**
102
79
  * Accessible, dependency-free agenda/day/week/month/year scheduling surface.
103
80
  * @fires Calendar#viewchange
@@ -147,8 +124,7 @@ export class Calendar extends Component {
147
124
  eventLocation: 'location',
148
125
  eventEditable: 'editable',
149
126
  eventDurationEditable: 'durationEditable',
150
- dateUnit: 'milliseconds',
151
- msg: DEFAULT_MESSAGES
127
+ dateUnit: 'milliseconds'
152
128
  };
153
129
 
154
130
  /** @returns {HTMLElement} */
@@ -178,9 +154,9 @@ export class Calendar extends Component {
178
154
  this._nowTimer = null;
179
155
 
180
156
  const navigation = h('div', { class: 'zx-calendar__navigation' },
181
- this._toolbarButton('previous', this.msg('previous'), 'chevron-left'),
182
- this._toolbarButton('today', this.msg('today')),
183
- this._toolbarButton('next', this.msg('next'), 'chevron-right'));
157
+ this._toolbarButton('previous', this.msg('calendar.previous'), 'chevron-left'),
158
+ this._toolbarButton('today', this.msg('calendar.today')),
159
+ this._toolbarButton('next', this.msg('calendar.next'), 'chevron-right'));
184
160
  const heading = h('h2', {
185
161
  ref: 'heading',
186
162
  class: 'zx-calendar__heading',
@@ -196,14 +172,14 @@ export class Calendar extends Component {
196
172
  class: 'zx-calendar__view-button',
197
173
  dataset: { calendarAction: 'view', view },
198
174
  disabled: this.options.disabled
199
- }, this.msg(view))));
175
+ }, this.msg(`calendar.${view}`))));
200
176
  const commands = h('div', { class: 'zx-calendar__commands' }, views,
201
177
  h('button', {
202
178
  type: 'button',
203
179
  class: 'zx-calendar__new',
204
180
  dataset: { calendarAction: 'new' },
205
181
  disabled: this.options.disabled
206
- }, icon('plus'), h('span', {}, this.msg('new'))));
182
+ }, icon('plus'), h('span', {}, this.msg('calendar.new'))));
207
183
  const toolbar = h('header', { class: 'zx-calendar__toolbar' }, navigation, heading, commands);
208
184
  const body = h('div', { ref: 'body', class: 'zx-calendar__body' });
209
185
  const loading = h('div', {
@@ -211,7 +187,7 @@ export class Calendar extends Component {
211
187
  class: 'zx-calendar__loading',
212
188
  role: 'status',
213
189
  hidden: true
214
- }, this.msg('loading'));
190
+ }, this.msg('calendar.loading'));
215
191
  const status = h('div', {
216
192
  ref: 'status',
217
193
  class: 'zx-calendar__status',
@@ -220,7 +196,7 @@ export class Calendar extends Component {
220
196
  ariaAtomic: 'true'
221
197
  });
222
198
  root.replaceChildren(toolbar, body, loading, status);
223
- root.setAttribute('aria-label', this.msg('calendar'));
199
+ root.setAttribute('aria-label', this.msg('calendar.label'));
224
200
  root.dataset.view = this._view;
225
201
  root.dataset.state = 'ready';
226
202
 
@@ -470,7 +446,7 @@ export class Calendar extends Component {
470
446
  }, this._format(day, { weekday: 'long', day: 'numeric', month: 'long' })));
471
447
  const entries = h('div', { class: 'zx-calendar__agenda-events', role: 'gridcell' });
472
448
  if (!events.length) {
473
- entries.append(h('p', { class: 'zx-calendar__agenda-empty' }, this.msg('noEvents')));
449
+ entries.append(h('p', { class: 'zx-calendar__agenda-empty' }, this.msg('calendar.noEvents')));
474
450
  } else {
475
451
  for (const event of events) entries.append(this._eventElement(event, { variant: 'agenda', day }));
476
452
  }
@@ -576,7 +552,7 @@ export class Calendar extends Component {
576
552
  /** @param {Date[]} days @returns {HTMLElement} */
577
553
  _renderAllDayRail(days) {
578
554
  const rail = h('div', { class: 'zx-calendar__all-day' },
579
- h('span', { class: 'zx-calendar__all-day-label' }, this.msg('allDay')));
555
+ h('span', { class: 'zx-calendar__all-day-label' }, this.msg('calendar.allDay')));
580
556
  const layer = h('div', {
581
557
  class: 'zx-calendar__all-day-grid',
582
558
  role: 'row',
@@ -625,7 +601,7 @@ export class Calendar extends Component {
625
601
  type: 'button',
626
602
  class: 'zx-calendar__month-week-number',
627
603
  dataset: { calendarAction: 'week', date: calendarDayKey(start) },
628
- ariaLabel: this.msg('weekNumber', isoWeek(start)),
604
+ ariaLabel: this.msg('calendar.weekNumber', isoWeek(start)),
629
605
  disabled: this.options.disabled
630
606
  }, String(isoWeek(start))));
631
607
  const days = h('div', { class: 'zx-calendar__month-days' });
@@ -666,7 +642,7 @@ export class Calendar extends Component {
666
642
  dataset: { calendarAction: 'more', date: calendarDayKey(day), count: String(count) },
667
643
  style: { gridColumn: String(index + 1), gridRow: String(eventLimit + 1) },
668
644
  disabled: this.options.disabled
669
- }, this.msg('more', count)));
645
+ }, this.msg('calendar.more', count)));
670
646
  }
671
647
  row.append(days, lanes);
672
648
  wrapper.append(row);
@@ -758,7 +734,7 @@ export class Calendar extends Component {
758
734
  type: 'button',
759
735
  class: 'zx-calendar__event-resize',
760
736
  dataset: { eventAction: 'resize', eventId: key },
761
- ariaLabel: this.msg('resize', event.title),
737
+ ariaLabel: this.msg('calendar.resize', event.title),
762
738
  disabled: this.options.disabled
763
739
  }, h('span', { ariaHidden: 'true' })));
764
740
  }
@@ -886,7 +862,7 @@ export class Calendar extends Component {
886
862
  };
887
863
  control.setAttribute('aria-grabbed', 'true');
888
864
  control.closest('.zx-calendar__event')?.setAttribute('data-state', 'grabbed');
889
- this._announce(this.msg(resize ? 'resizeStarted' : 'moveStarted', item.title));
865
+ this._announce(this.msg(resize ? 'calendar.resizeStarted' : 'calendar.moveStarted', item.title));
890
866
  return;
891
867
  }
892
868
  if (!this._keyboardEdit || String(this._keyboardEdit.event.id) !== String(item.id)) return;
@@ -919,7 +895,7 @@ export class Calendar extends Component {
919
895
  if (proposed.end > proposed.start) edit.event = proposed;
920
896
  }
921
897
  edit.control.closest('.zx-calendar__event')?.setAttribute('data-preview', this._eventTime(edit.event, edit.event.start));
922
- this._announce(this.msg('editPreview', edit.event.title,
898
+ this._announce(this.msg('calendar.editPreview', edit.event.title,
923
899
  this._dateTimeLabel(edit.event.start), this._dateTimeLabel(edit.event.end)));
924
900
  }
925
901
 
@@ -1065,7 +1041,7 @@ export class Calendar extends Component {
1065
1041
  }
1066
1042
  wrapper.dataset.preview = this._eventTime(proposed, proposed.start);
1067
1043
  }
1068
- this._announce(this.msg('editPreview', proposed.title,
1044
+ this._announce(this.msg('calendar.editPreview', proposed.title,
1069
1045
  this._dateTimeLabel(proposed.start), this._dateTimeLabel(proposed.end)));
1070
1046
  }
1071
1047
 
@@ -1255,7 +1231,7 @@ export class Calendar extends Component {
1255
1231
  edit.control.removeAttribute('aria-grabbed');
1256
1232
  edit.control.closest('.zx-calendar__event')?.removeAttribute('data-state');
1257
1233
  this._keyboardEdit = null;
1258
- this._announce(this.msg('editCancelled'));
1234
+ this._announce(this.msg('calendar.editCancelled'));
1259
1235
  this._renderView({ preserveFocus: true });
1260
1236
  }
1261
1237
 
@@ -1286,7 +1262,7 @@ export class Calendar extends Component {
1286
1262
  this._replaceNormalizedEvent(oldEvent);
1287
1263
  this._mutationVersions.delete(key);
1288
1264
  this._renderView({ preserveFocus: true });
1289
- this._announce(this.msg('editCancelled'));
1265
+ this._announce(this.msg('calendar.editCancelled'));
1290
1266
  return true;
1291
1267
  };
1292
1268
  const detail = {
@@ -1299,7 +1275,7 @@ export class Calendar extends Component {
1299
1275
  };
1300
1276
  const emitted = this.emit('eventchange', detail);
1301
1277
  if (emitted.defaultPrevented) revert();
1302
- else this._announce(this.msg('editCommitted', proposed.title));
1278
+ else this._announce(this.msg('calendar.editCommitted', proposed.title));
1303
1279
  }
1304
1280
 
1305
1281
  /** @param {CalendarEvent} event @returns {void} */
@@ -1364,11 +1340,11 @@ export class Calendar extends Component {
1364
1340
 
1365
1341
  /** @param {CalendarEvent} event @param {Date} day @returns {string} */
1366
1342
  _eventTime(event, day) {
1367
- if (event.allDay) return this.msg('allDay');
1343
+ if (event.allDay) return this.msg('calendar.allDay');
1368
1344
  if (calendarEventSpansDays(event)) {
1369
1345
  if (sameCalendarDay(event.start, day)) return `${formatDateTime(event.start, this.options.locale)} →`;
1370
1346
  if (sameCalendarDay(event.end, day)) return `→ ${formatDateTime(event.end, this.options.locale)}`;
1371
- return this.msg('allDay');
1347
+ return this.msg('calendar.allDay');
1372
1348
  }
1373
1349
  const start = formatTimeDate(event.start, this.options.locale);
1374
1350
  if (event.end <= event.start) return start;
@@ -1490,10 +1466,8 @@ export class Calendar extends Component {
1490
1466
  }
1491
1467
 
1492
1468
  /**
1493
- * Resolves a message through the host translator, falling back to the built-in English text.
1494
- *
1495
- * Distinct from `msg()`: the built-in `msg` option answers the calendar's own vocabulary, so a
1496
- * dotted key falls past it to the host translator, which is what these strings never had.
1469
+ * Resolves a message through `msg()`, falling back to the built-in English text. Redundant now
1470
+ * that `msg()` ends in the default catalogue; kept until the private copies are removed.
1497
1471
  * @param {string} key Message key.
1498
1472
  * @param {string} fallback Built-in text, with `%1`-style placeholders.
1499
1473
  * @param {...unknown} args Interpolation values.
@@ -51,7 +51,7 @@
51
51
  }
52
52
 
53
53
  .zx-card:has(.zx-card__primary:focus-visible) {
54
- outline: 0;
54
+ outline-color: transparent;
55
55
  box-shadow: var(--zx-focus-ring);
56
56
  }
57
57
 
@@ -107,9 +107,9 @@
107
107
  min-inline-size: 0;
108
108
  margin: 0;
109
109
  font-size: var(--zx-text-lg);
110
- font-weight: 700;
110
+ font-weight: 650;
111
111
  line-height: 1.3;
112
- letter-spacing: -0.012em;
112
+ letter-spacing: var(--zx-tracking-title);
113
113
  }
114
114
 
115
115
  .zx-card__primary,
@@ -129,7 +129,7 @@
129
129
  }
130
130
 
131
131
  .zx-card__primary:focus-visible {
132
- outline: 0;
132
+ outline-color: transparent;
133
133
  }
134
134
 
135
135
  .zx-card__actions,
@@ -38,7 +38,7 @@
38
38
  }
39
39
 
40
40
  .zx-card-view__sort select:focus-visible {
41
- outline: none;
41
+ outline-color: transparent;
42
42
  box-shadow: var(--zx-focus-ring);
43
43
  }
44
44
 
@@ -103,13 +103,15 @@
103
103
  }
104
104
 
105
105
  .zx-record-card:focus-visible {
106
- outline: none;
106
+ outline-color: transparent;
107
107
  box-shadow: var(--zx-focus-ring);
108
108
  }
109
109
 
110
+ /* A selected card is a pick, so it keeps the accent — as a tint over the card and its outline,
111
+ not a doubled frame. */
110
112
  .zx-record-card[data-selected="true"] {
111
113
  border-color: var(--zx-color-accent);
112
- box-shadow: inset 0 0 0 1px var(--zx-color-accent);
114
+ background: var(--zx-color-bg-selected);
113
115
  }
114
116
 
115
117
  .zx-record-card__preview {
@@ -177,7 +179,7 @@
177
179
  }
178
180
 
179
181
  .zx-record-card__selection input:focus-visible {
180
- outline: none;
182
+ outline-color: transparent;
181
183
  box-shadow: var(--zx-focus-ring);
182
184
  }
183
185
 
@@ -224,7 +226,7 @@
224
226
  margin: 0;
225
227
  overflow-wrap: anywhere;
226
228
  font-size: var(--zx-text-lg);
227
- font-weight: 700;
229
+ font-weight: 650;
228
230
  line-height: 1.35;
229
231
  }
230
232
 
@@ -244,7 +246,7 @@
244
246
 
245
247
  .zx-record-card__primary:focus-visible {
246
248
  border-radius: var(--zx-radius-sm);
247
- outline: none;
249
+ outline-color: transparent;
248
250
  box-shadow: var(--zx-focus-ring);
249
251
  }
250
252
 
@@ -289,7 +291,7 @@
289
291
  }
290
292
 
291
293
  .zx-record-card__action:focus-visible {
292
- outline: none;
294
+ outline-color: transparent;
293
295
  box-shadow: var(--zx-focus-ring);
294
296
  }
295
297
 
@@ -317,7 +319,7 @@
317
319
  overflow: hidden;
318
320
  color: var(--zx-color-text-muted);
319
321
  font-size: var(--zx-text-xs);
320
- font-weight: 600;
322
+ font-weight: var(--zx-weight-medium);
321
323
  line-height: 1.35;
322
324
  text-overflow: ellipsis;
323
325
  white-space: nowrap;
@@ -475,7 +477,7 @@
475
477
 
476
478
  .zx-card-view .zx-record-card__heading {
477
479
  font-size: var(--zx-text-md);
478
- font-weight: 600;
480
+ font-weight: var(--zx-weight-semibold);
479
481
  line-height: 1.3;
480
482
  }
481
483
 
@@ -521,8 +523,8 @@
521
523
  align-items: center;
522
524
  gap: var(--zx-space-1);
523
525
  max-inline-size: 100%;
524
- border: 1px solid var(--zx-color-border);
525
- border-radius: var(--zx-radius-full);
526
+ /* A tinted label/value pair, not a box inside the card's box: the fill alone separates it. */
527
+ border-radius: var(--zx-radius-sm);
526
528
  background: var(--zx-color-bg-muted);
527
529
  padding: calc(var(--zx-space-1) / 2) var(--zx-space-2);
528
530
  }
@@ -530,7 +532,7 @@
530
532
  .zx-card-view .zx-record-card__label {
531
533
  flex: none;
532
534
  font-size: var(--zx-text-xs);
533
- font-weight: 500;
535
+ font-weight: var(--zx-weight-medium);
534
536
  line-height: 1.2;
535
537
  }
536
538