@vmz/ui 0.0.4 → 0.1.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.
package/README.md CHANGED
@@ -21,18 +21,23 @@ Headline surface for this cut:
21
21
 
22
22
  - Commercial / Console / Document-Product composition dogfood (homepage)
23
23
  - Form depth, Structure, Overlay stacking, DataTable (ordinary HTML table — not `@vmz/ui-data-grid`)
24
+ - DatePicker owned calendar overlay (not native `input[type=date]` popup)
25
+ - Upload multipart binary (parent-owned FormData → `#server` File/Blob; progress/cancel)
24
26
  - Density / RTL / preset materialize
25
27
  - Motion continuity + interrupt/cancel
26
28
  - Motion compiler IR thin gate (`pnpm verify -- motion-ir`)
27
29
  - UI7 conformance pack (`@vmz/ui/conformance` + `pnpm verify -- ui7`)
30
+ - `@vmz/ui-data-grid` thin gate (virtualization + pinned column — not tree/group/pivot/edit)
28
31
 
29
32
  Verify:
30
33
 
31
34
  ```bash
32
35
  pnpm verify -- ui-automation
33
36
  pnpm verify -- ui7
37
+ pnpm verify -- ui-data-grid
34
38
  pnpm verify -- official-dogfood
35
39
  ```
36
40
 
37
- Still open relative to Browser Production Profile v1: `browser-production` aggregate core gaps, `@vmz/ui-data-grid`, UI7
38
- browser-timing depth, sibling `vmz-panel` product app.
41
+ Still open relative to Browser Production Profile v1: `browser-production` aggregate core gaps,
42
+ `@vmz/ui-data-grid` deep capabilities, Upload cross-page session / multi-file parallel chunks,
43
+ `@vmz/test` Browser Host U0–U1, sibling `vmz-panel` product app.
@@ -116,17 +116,56 @@
116
116
  "status.danger.foreground",
117
117
  "focus.ring",
118
118
  "density.control.padding-y",
119
- "density.control.padding-x"
119
+ "density.control.padding-x",
120
+ "surface.paper"
120
121
  ],
121
122
  "surfaces": ["WebSurface"],
122
- "contracts": ["label", "description", "error", "native-date", "parent-owned-value"]
123
+ "contracts": [
124
+ "label",
125
+ "description",
126
+ "error",
127
+ "calendar-overlay",
128
+ "no-native-date-popup",
129
+ "parent-owned-value",
130
+ "overlay-escape-outside"
131
+ ]
123
132
  },
124
133
  "Upload": {
125
134
  "source": "src/components/Upload.vmz",
126
135
  "stableHint": "ui.Upload",
127
- "tokens": ["status.danger.foreground", "text.ink", "text.steel", "font.mono", "focus.ring", "density.control.padding-y"],
136
+ "tokens": [
137
+ "status.danger.foreground",
138
+ "status.success.foreground",
139
+ "action.primary.background",
140
+ "surface.paper",
141
+ "line.default",
142
+ "text.ink",
143
+ "text.steel",
144
+ "font.mono",
145
+ "focus.ring",
146
+ "density.control.padding-y",
147
+ "density.compact.padding-y",
148
+ "density.compact.padding-x",
149
+ "motion.control.duration",
150
+ "motion.control.easing"
151
+ ],
128
152
  "surfaces": ["WebSurface"],
129
- "contracts": ["label", "description", "error", "native-file", "parent-owned-filename", "no-upload-runtime"]
153
+ "contracts": [
154
+ "label",
155
+ "description",
156
+ "error",
157
+ "drop-zone",
158
+ "selection-constraints",
159
+ "queue",
160
+ "progress",
161
+ "cancel",
162
+ "destination-client",
163
+ "destination-server",
164
+ "destination-object",
165
+ "all-in-one-transport",
166
+ "parent-owned-result-value",
167
+ "no-useUpload"
168
+ ]
130
169
  },
131
170
  "Field": {
132
171
  "source": "src/components/Field.vmz",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vmz/ui",
3
- "version": "0.0.4",
3
+ "version": "0.1.0",
4
4
  "type": "module",
5
5
  "description": "VMZ UI — official UI framework (component contracts + semantic token requirements). Not a theme. Not a plugin.",
6
6
  "license": "MIT",
@@ -19,9 +19,10 @@
19
19
  align-items: center;
20
20
  justify-content: center;
21
21
  gap: 0.35rem;
22
+ min-height: 2.25rem;
22
23
  padding: var(--vmz-density-control-padding-y) var(--vmz-density-control-padding-x);
23
24
  border: 1px solid transparent;
24
- border-radius: 2px;
25
+ border-radius: 7px;
25
26
  font: inherit;
26
27
  font-weight: 600;
27
28
  line-height: 1.2;
@@ -34,6 +35,7 @@
34
35
  border-color var(--vmz-motion-control-duration) var(--vmz-motion-control-easing),
35
36
  color var(--vmz-motion-control-duration) var(--vmz-motion-control-easing),
36
37
  box-shadow var(--vmz-motion-control-duration) var(--vmz-motion-control-easing);
38
+ box-shadow: 0 1px 2px rgba(16,24,40,.08);
37
39
  }
38
40
 
39
41
  .vmz-ui-btn:hover:not(:disabled) {
@@ -49,6 +51,10 @@
49
51
  color: var(--vmz-action-secondary-foreground);
50
52
  border-color: var(--vmz-action-secondary-border);
51
53
  }
54
+ .vmz-ui-btn[data-variant='default'] { background:#fff; color:var(--vmz-text-ink); border-color:var(--vmz-line-default); }
55
+ .vmz-ui-btn[data-variant='default']:hover:not(:disabled) { color:var(--vmz-action-primary-background); border-color:var(--vmz-action-primary-background); background:#f5faff; }
56
+ .vmz-ui-btn[data-variant='text'], .vmz-ui-btn[data-variant='link'] { min-height:auto; padding:.35rem .45rem; border-color:transparent; background:transparent; color:var(--vmz-action-primary-background); box-shadow:none; }
57
+ .vmz-ui-btn[data-variant='dashed'] { background:#fff; color:var(--vmz-text-ink); border:1px dashed var(--vmz-line-default); box-shadow:none; }
52
58
 
53
59
  .vmz-ui-btn[data-variant='secondary']:hover:not(:disabled) {
54
60
  background: var(--vmz-action-secondary-hover);
@@ -14,14 +14,13 @@
14
14
  .vmz-ui-card {
15
15
  display: flex;
16
16
  flex-direction: column;
17
- gap: var(--vmz-density-control-gap);
18
- padding: calc(var(--vmz-density-control-padding-y) + 0.35rem)
19
- calc(var(--vmz-density-control-padding-x) + 0.25rem);
17
+ gap: 1rem;
18
+ padding: 1.25rem;
20
19
  border: 1px solid var(--vmz-line-default);
21
- border-radius: 2px;
20
+ border-radius: 10px;
22
21
  background: var(--vmz-surface-paper);
23
22
  color: var(--vmz-text-ink);
24
- box-shadow: 0 1px 0 color-mix(in srgb, var(--vmz-line-default) 65%, transparent);
23
+ box-shadow: 0 1px 3px rgba(16,24,40,.06);
25
24
  }
26
25
 
27
26
  :where([data-density='compact']) .vmz-ui-card {