@wpic/ui 0.3.16 → 0.5.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wpic/ui",
3
- "version": "0.3.16",
3
+ "version": "0.5.0",
4
4
  "type": "module",
5
5
  "description": "WPIC shared Vue 3 component library",
6
6
  "publishConfig": {
@@ -9,7 +9,9 @@
9
9
  "files": [
10
10
  "dist",
11
11
  "src/style.css",
12
- "src/components/chat/*.md"
12
+ "src/components/chat/*.md",
13
+ "COMPONENTS.md",
14
+ "CHANGELOG.md"
13
15
  ],
14
16
  "main": "./dist/wpic-ui.cjs",
15
17
  "module": "./dist/wpic-ui.js",
@@ -27,7 +29,8 @@
27
29
  "build": "vue-tsc --noEmit && vite build",
28
30
  "dev": "vite build --watch",
29
31
  "test:ui": "vite --config test-ui/vite.config.ts",
30
- "postbuild": "node scripts/postbuild.js && node scripts/verify-package.js"
32
+ "postbuild": "node scripts/postbuild.js && node scripts/verify-package.js",
33
+ "test:semantic": "playwright test"
31
34
  },
32
35
  "peerDependencies": {
33
36
  "@floating-ui/vue": ">=1",
@@ -37,6 +40,7 @@
37
40
  },
38
41
  "devDependencies": {
39
42
  "@floating-ui/vue": "^1.1.11",
43
+ "@playwright/test": "^1.63.0",
40
44
  "@tailwindcss/vite": "^4.2.1",
41
45
  "@vitejs/plugin-vue": "^6.0.0",
42
46
  "lucide-vue-next": "^0.577.0",
package/src/style.css CHANGED
@@ -308,3 +308,85 @@ input[type="range"].slider-themed::-webkit-slider-thumb {
308
308
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--wpic-primary, #6366f1) 25%, transparent);
309
309
  outline: none;
310
310
  }
311
+
312
+ /* UI5 is opt-in through WThemeProvider. Legacy consumers retain their defaults. */
313
+ .wpic-theme { color: var(--wpic-text); color-scheme: light; }
314
+ .wpic-theme[data-wpic-theme="dark"] { color-scheme: dark; }
315
+ .wpic-theme .wpic-card {
316
+ background: var(--wpic-surface);
317
+ color: var(--wpic-text);
318
+ }
319
+ .wpic-theme .wpic-card--bordered {
320
+ border-color: transparent;
321
+ box-shadow: inset 0 0 0 1px var(--wpic-border);
322
+ }
323
+ .wpic-theme .wpic-control:not([data-variant="plain"]):not([data-variant="subtle"]) {
324
+ background: var(--wpic-input);
325
+ color: var(--wpic-text);
326
+ border-color: var(--wpic-border);
327
+ }
328
+ .wpic-theme .wpic-control[data-variant="subtle"] { background: var(--wpic-raised); color: var(--wpic-text); }
329
+ .wpic-theme .wpic-control[data-size="md"]:not([data-variant="plain"]),
330
+ .wpic-theme .wpic-button[data-size="md"] { height: var(--wpic-control-height, 36px); }
331
+ .wpic-theme .wpic-control:disabled { background: var(--wpic-raised); cursor: not-allowed; }
332
+ .wpic-theme .wpic-control::placeholder { color: var(--wpic-dim); }
333
+ .wpic-theme .wpic-control:hover:not(:disabled):not([data-variant="plain"]) { border-color: var(--wpic-border-hover); }
334
+ .wpic-theme .wpic-control:focus:not([data-variant="plain"]),
335
+ .wpic-theme .wpic-control[aria-expanded="true"],
336
+ .wpic-theme .wpic-select-open {
337
+ border-color: var(--wpic-accent) !important;
338
+ outline: none;
339
+ box-shadow: 0 0 0 3px var(--wpic-focus-ring);
340
+ }
341
+ .wpic-theme .wpic-control[data-invalid="true"] { border-color: var(--wpic-negative) !important; }
342
+ .wpic-theme .wpic-control[data-invalid="true"]:focus {
343
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--wpic-negative) 18%, transparent);
344
+ }
345
+ .wpic-theme .wpic-button[data-variant="primary"],
346
+ .wpic-theme .wpic-range-apply {
347
+ background: var(--wpic-button-primary);
348
+ color: var(--wpic-on-primary);
349
+ }
350
+ .wpic-theme .wpic-button[data-variant="primary"]:hover:not(:disabled),
351
+ .wpic-theme .wpic-range-apply:hover:not(:disabled) { background: var(--wpic-button-primary-hover); }
352
+ .wpic-theme .wpic-button:is([data-variant="secondary"], [data-variant="outline"]) {
353
+ background: var(--wpic-secondary);
354
+ color: var(--wpic-on-secondary);
355
+ border-color: transparent;
356
+ box-shadow: var(--wpic-secondary-shadow);
357
+ }
358
+ .wpic-theme .wpic-button:is([data-variant="secondary"], [data-variant="outline"]):hover:not(:disabled) { background: var(--wpic-secondary-hover); }
359
+ .wpic-theme .wpic-button:focus-visible {
360
+ outline: 1px solid var(--wpic-accent);
361
+ outline-offset: 0;
362
+ box-shadow: 0 0 0 3px var(--wpic-focus-ring);
363
+ }
364
+ .wpic-theme.wpic-popover-panel {
365
+ background: var(--wpic-popover);
366
+ border-color: var(--wpic-border);
367
+ color: var(--wpic-text);
368
+ }
369
+ .wpic-theme.wpic-popover-panel :is(.text-zinc-900, .text-zinc-800, .text-zinc-700, .text-zinc-200, .text-zinc-100) { color: var(--wpic-text); }
370
+ .wpic-theme.wpic-popover-panel :is(.text-zinc-500, .text-zinc-400) { color: var(--wpic-dim); }
371
+ .wpic-theme.wpic-popover-panel :is(.bg-zinc-100, .bg-zinc-800) { background: var(--wpic-raised); }
372
+ .wpic-theme.wpic-popover-panel :is(.border-zinc-100, .border-zinc-200) { border-color: var(--wpic-border); }
373
+ .wpic-theme .wpic-select-option:hover:not(:disabled) { background: var(--wpic-raised); }
374
+ .wpic-theme .wpic-calendar-day[aria-pressed="true"] { background: var(--wpic-accent); color: var(--wpic-on-accent); }
375
+ .wpic-theme .wpic-calendar-day:hover:not(:disabled):not([aria-pressed="true"]) { background: var(--wpic-raised); }
376
+ .wpic-theme .wpic-calendar-day:disabled { opacity: 0.4; }
377
+ .wpic-theme .wpic-checkbox-box { background: var(--wpic-input); border-color: var(--wpic-border-hover); }
378
+ .wpic-theme .wpic-checkbox input:checked + .wpic-checkbox-box { background: var(--wpic-button-primary); border-color: var(--wpic-button-primary); color: var(--wpic-on-primary); }
379
+ .wpic-theme .wpic-checkbox input:focus-visible + .wpic-checkbox-box { box-shadow: 0 0 0 3px var(--wpic-focus-ring); }
380
+ .wpic-toggle-track:disabled { opacity: 0.5; }
381
+ .wpic-theme .wpic-toggle-track { width: 40px; height: 24px; cursor: pointer; background: var(--wpic-switch-off); box-shadow: inset 0 1px 1px rgb(255 255 255 / 0.08); }
382
+ .wpic-theme .wpic-toggle-track[aria-checked="true"] { background: var(--wpic-switch-on); }
383
+ .wpic-theme .wpic-toggle-track:disabled { background: var(--wpic-switch-disabled); opacity: 1; cursor: not-allowed; }
384
+ .wpic-theme .wpic-toggle-thumb { width: 20px; height: 20px; top: 2px; left: 2px; background: var(--wpic-switch-thumb); box-shadow: 0 1px 3px rgb(0 0 0 / 0.2); transform: translateX(0); translate: none; }
385
+ .wpic-theme .wpic-toggle-track[aria-checked="true"] .wpic-toggle-thumb { transform: translateX(16px); }
386
+ .wpic-theme .wpic-page-header { color: var(--wpic-text); }
387
+
388
+ .wpic-theme .wpic-range-preset[aria-pressed="true"] { background: color-mix(in srgb, var(--wpic-accent) 10%, transparent); color: var(--wpic-accent); }
389
+ .wpic-theme .wpic-calendar-day[data-in-range="true"] { background: color-mix(in srgb, var(--wpic-accent) 15%, transparent); }
390
+ .wpic-theme .wpic-calendar-day[data-today="true"]:not([aria-pressed="true"]) { box-shadow: 0 0 0 1px var(--wpic-accent); }
391
+
392
+ .wpic-theme .wpic-stat-card { background: var(--wpic-surface); border-radius: var(--radius-xl, 12px); box-shadow: inset 0 0 0 1px var(--wpic-border); }