@preference-sl/pref-viewer 2.16.0-beta.1 → 2.16.0-beta.10

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/src/styles.js CHANGED
@@ -3,22 +3,6 @@ export const PrefViewerStyleVariables = {
3
3
  fontFamily: "'Roboto', ui-sans-serif, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji",
4
4
  };
5
5
 
6
- // Default palette colors for illumination color picker
7
- export const DEFAULT_ILLUMINATION_PALETTE = [
8
- "#ffffff", // White
9
- "#ff6700", // Orange (default)
10
- "#ff0000", // Red
11
- "#00ff00", // Green
12
- "#0000ff", // Blue
13
- "#ffff00", // Yellow
14
- "#ff00ff", // Magenta
15
- "#00ffff", // Cyan
16
- "#ffb6c1", // Light Pink
17
- "#98fb98", // Light Green
18
- "#87ceeb", // Light Blue
19
- "#dda0dd", // Plum
20
- ];
21
-
22
6
  export const PrefViewerStyles = `
23
7
  :host .pref-viewer-wrapper {
24
8
  display: grid !important;
@@ -106,7 +90,6 @@ export const PrefViewer3DStyles = `
106
90
  position: relative;
107
91
  outline: none;
108
92
  box-sizing: border-box;
109
- background: #ffffff;
110
93
  }
111
94
  `;
112
95
 
@@ -121,7 +104,8 @@ export const PrefViewerMenu3DStyles = `
121
104
  --text-color: #ffffff;
122
105
  --muted-color: #b2b2b2;
123
106
  --accent-color: ${PrefViewerStyleVariables.colorPrimary};
124
- --status-color: #ffb0b0;
107
+
108
+ --separator-border: 1px solid rgba(255, 255, 255, 0.1);
125
109
 
126
110
  --toggle-margin: 16px;
127
111
  --toggle-bg-color: rgba(19, 21, 28, 0.6);
@@ -154,6 +138,13 @@ export const PrefViewerMenu3DStyles = `
154
138
  --switch-control-width: calc((var(--switch-control-thumb-size) * 2) + (var(--switch-control-bar-spacing) * 2));
155
139
  --switch-control-height: calc(var(--switch-control-thumb-size) + (var(--switch-control-bar-spacing) * 2));
156
140
 
141
+ --slider-thumb-size: 18px;
142
+ --slider-thumb-color: #ffffff;
143
+ --slider-thumb-border: 1px solid rgba(0, 0, 0, 0.25);
144
+ --slider-thumb-shadow: 0 1px 4px rgba(0, 0, 0, 0.45);
145
+ --slider-bar-height: 12px;
146
+ --slider-bar-border: 1px solid rgba(255, 255, 255, 0.5);
147
+
157
148
  position: absolute;
158
149
  top: var(--toggle-margin);
159
150
  right: var(--toggle-margin);
@@ -223,7 +214,7 @@ export const PrefViewerMenu3DStyles = `
223
214
  }
224
215
 
225
216
  pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-header {
226
- margin-bottom: var(--panel-spacing-large);
217
+ margin-bottom: var(--panel-spacing);
227
218
  }
228
219
 
229
220
  pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-header>.menu-title {
@@ -250,11 +241,11 @@ export const PrefViewerMenu3DStyles = `
250
241
  justify-content: space-between;
251
242
  gap: var(--panel-spacing-large);
252
243
  padding: var(--panel-spacing) 0;
253
- border-bottom: 1px solid rgba(255, 255, 255, 0.1);
244
+ border-bottom: var(--separator-border);
254
245
  }
255
246
 
256
- pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-switches>.menu-switch:last-child {
257
- border-bottom: none;
247
+ pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-switches>.menu-switch:first-child {
248
+ border-top: var(--separator-border);
258
249
  }
259
250
 
260
251
  pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-switches>.menu-switch>.menu-switch-copy {
@@ -268,18 +259,6 @@ export const PrefViewerMenu3DStyles = `
268
259
  font-weight: var(--font-weight-medium);
269
260
  }
270
261
 
271
- pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-switches>.menu-switch .menu-switch-title::after {
272
- content: " *";
273
- color: var(--accent-color);
274
- font-weight: var(--font-weight-bold);
275
- opacity: 0;
276
- }
277
-
278
- pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-switches>.menu-switch[data-pending] .menu-switch-title::after {
279
- opacity: 1;
280
- transition: opacity 0.2s ease;
281
- }
282
-
283
262
  pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-switches>.menu-switch small {
284
263
  color: var(--muted-color);
285
264
  font-size: var(--font-size-small);
@@ -353,80 +332,19 @@ export const PrefViewerMenu3DStyles = `
353
332
  gap: calc(var(--panel-spacing) / 2);
354
333
  }
355
334
 
356
- pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-footer>.menu-pending {
357
- font-size: var(--font-size-small);
358
- text-transform: uppercase;
359
- letter-spacing: 0.08em;
360
- color: var(--accent-color);
361
- font-weight: var(--font-weight-medium);
362
- display: block;
363
- opacity: 1;
364
- transition: opacity 0.2s ease;
365
- }
366
-
367
- pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-footer>.menu-pending::before {
368
- content: "* ";
369
- font-size: var(--font-size-medium);
370
- color: var(--accent-color);
371
- font-weight: var(--font-weight-bold);
372
- }
373
-
374
- pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-footer>.menu-pending[hidden] {
375
- opacity: 0;
376
- }
377
-
378
- pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-footer>.menu-status {
379
- font-size: var(--font-size-small);
380
- color: var(--status-color);
381
- display: none;
382
- }
383
-
384
- pref-viewer-menu-3d[data-status="visible"]>.menu-wrapper>.menu-panel>.menu-footer>.menu-status {
385
- display: block;
386
- }
387
-
388
- pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-footer>.menu-apply {
389
- border: none;
390
- border-radius: var(--button-radius);
391
- padding: round(down, calc(var(--panel-spacing) * 0.625), 1px) var(--panel-spacing);
392
- font-size: var(--button-font-size);
393
- font-weight: var(--button-font-weight);
394
- background: var(--accent-color);
395
- color: var(--button-font-color);
396
- cursor: pointer;
397
- transition: transform 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease;
398
- }
399
-
400
- pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-footer>.menu-apply:not(:disabled):hover {
401
- box-shadow: var(--button-shadow);
402
- }
403
-
404
- pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-footer>.menu-apply:disabled {
405
- cursor: not-allowed;
406
- opacity: 0.55;
407
- }
408
-
409
- pref-viewer-menu-3d[data-applying]>.menu-wrapper>.menu-panel>.menu-footer>.menu-apply {
410
- opacity: 0.75;
411
- }
412
-
413
- /* Color Slider Styles */
414
335
  pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-color-picker {
415
336
  display: flex;
416
337
  flex-direction: column;
417
- gap: 8px;
338
+ gap: calc(var(--panel-spacing) / 2);
418
339
  padding: var(--panel-spacing) 0;
419
- border-bottom: 1px solid rgba(255, 255, 255, 0.1);
420
- }
421
-
422
- pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-color-picker:last-child {
423
- border-bottom: none;
340
+ border-bottom: var(--separator-border);
424
341
  }
425
342
 
426
343
  pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-color-picker>.color-slider-row {
427
344
  display: flex;
428
345
  align-items: center;
429
346
  justify-content: space-between;
347
+ gap: calc(var(--panel-spacing) / 2);
430
348
  }
431
349
 
432
350
  pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-color-picker>.color-slider-row>.color-picker-label {
@@ -436,10 +354,10 @@ export const PrefViewerMenu3DStyles = `
436
354
  }
437
355
 
438
356
  pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-color-picker>.color-slider-row>.color-preview {
439
- width: 20px;
440
- height: 20px;
441
- border-radius: 50%;
442
- border: 2px solid rgba(255, 255, 255, 0.3);
357
+ width: var(--switch-control-width);
358
+ align-self: stretch;
359
+ border-radius: calc(var(--slider-bar-height) / 2);
360
+ border: var(--slider-bar-border);
443
361
  flex-shrink: 0;
444
362
  }
445
363
 
@@ -447,35 +365,38 @@ export const PrefViewerMenu3DStyles = `
447
365
  -webkit-appearance: none;
448
366
  appearance: none;
449
367
  width: 100%;
450
- height: 10px;
451
- border-radius: 5px;
452
- cursor: pointer;
368
+ height: var(--slider-bar-height);
369
+ box-sizing: border-box;
370
+ border-radius: calc(var(--slider-bar-height) / 2);
453
371
  background: linear-gradient(to right,
454
372
  hsl(0,100%,50%), hsl(30,100%,50%), hsl(60,100%,50%), hsl(90,100%,50%),
455
373
  hsl(120,100%,50%), hsl(150,100%,50%), hsl(180,100%,50%), hsl(210,100%,50%),
456
374
  hsl(240,100%,50%), hsl(270,100%,50%), hsl(300,100%,50%), hsl(330,100%,50%),
457
375
  hsl(360,100%,50%));
376
+ border: var(--slider-bar-border);
458
377
  outline: none;
378
+ margin: 0;
379
+ cursor: pointer;
459
380
  }
460
381
 
461
382
  pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-color-picker>.color-slider::-webkit-slider-thumb {
462
383
  -webkit-appearance: none;
463
- width: 16px;
464
- height: 16px;
384
+ width: var(--slider-thumb-size);
385
+ height: var(--slider-thumb-size);
465
386
  border-radius: 50%;
466
- background: white;
467
- border: 2px solid rgba(0, 0, 0, 0.25);
468
- box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
387
+ background: var(--slider-thumb-color);
388
+ border: var(--slider-thumb-border);
389
+ box-shadow: var(--slider-thumb-shadow);
469
390
  cursor: pointer;
470
391
  }
471
392
 
472
393
  pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-color-picker>.color-slider::-moz-range-thumb {
473
- width: 16px;
474
- height: 16px;
394
+ width: var(--slider-thumb-size);
395
+ height: var(--slider-thumb-size);
475
396
  border-radius: 50%;
476
- background: white;
477
- border: 2px solid rgba(0, 0, 0, 0.25);
478
- box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
397
+ background: var(--slider-thumb-color);
398
+ border: var(--slider-thumb-border);
399
+ box-shadow: var(--slider-thumb-shadow);
479
400
  cursor: pointer;
480
401
  }
481
402
 
@@ -487,23 +408,16 @@ export const PrefViewerMenu3DStyles = `
487
408
  pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-lighting-slider {
488
409
  display: flex;
489
410
  flex-direction: column;
490
- gap: 8px;
411
+ gap: calc(var(--panel-spacing) / 2);
491
412
  padding: var(--panel-spacing) 0;
492
- border-bottom: 1px solid rgba(255, 255, 255, 0.1);
493
- }
494
-
495
- pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-lighting-slider[data-pending] .lighting-slider-label::after {
496
- content: "•";
497
- margin-left: 8px;
498
- color: var(--accent-color);
499
- font-size: 1.1em;
413
+ border-bottom: var(--separator-border);
500
414
  }
501
415
 
502
416
  pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-lighting-slider>.lighting-slider-row {
503
417
  display: flex;
504
418
  align-items: center;
505
419
  justify-content: space-between;
506
- gap: 12px;
420
+ gap: calc(var(--panel-spacing) / 2);
507
421
  }
508
422
 
509
423
  pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-lighting-slider>.lighting-slider-row>.lighting-slider-label {
@@ -523,37 +437,41 @@ export const PrefViewerMenu3DStyles = `
523
437
  -webkit-appearance: none;
524
438
  appearance: none;
525
439
  width: 100%;
526
- height: 10px;
527
- border-radius: 999px;
528
- cursor: pointer;
529
- background:
530
- linear-gradient(to right,
531
- rgba(255, 214, 120, 0.95) 0%,
532
- rgba(255, 179, 71, 0.98) 20%,
533
- rgba(255, 244, 214, 0.95) 50%,
534
- rgba(118, 165, 255, 0.92) 80%,
535
- rgba(56, 66, 115, 0.95) 100%);
440
+ box-sizing: border-box;
441
+ height: var(--slider-bar-height);
442
+ border-radius: calc(var(--slider-bar-height) / 2);
443
+ background: linear-gradient(to right,
444
+ rgba(56, 66, 115, 0.95) 0%,
445
+ rgba(118, 165, 255, 0.92) 10%,
446
+ rgba(255, 214, 120, 0.95) 30%,
447
+ rgba(255, 244, 214, 0.95) 50%,
448
+ rgba(255, 214, 120, 0.95) 70%,
449
+ rgba(118, 165, 255, 0.92) 90%,
450
+ rgba(56, 66, 115, 0.95) 100%);
451
+ border: var(--slider-bar-border);
536
452
  outline: none;
453
+ margin: 0;
454
+ cursor: pointer;
537
455
  }
538
456
 
539
457
  pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-lighting-slider>.lighting-slider::-webkit-slider-thumb {
540
458
  -webkit-appearance: none;
541
- width: 18px;
542
- height: 18px;
459
+ width: var(--slider-thumb-size);
460
+ height: var(--slider-thumb-size);
543
461
  border-radius: 50%;
544
- background: #ffffff;
545
- border: 2px solid rgba(0, 0, 0, 0.24);
546
- box-shadow: 0 1px 4px rgba(0, 0, 0, 0.45);
462
+ background: var(--slider-thumb-color);
463
+ border: var(--slider-thumb-border);
464
+ box-shadow: var(--slider-thumb-shadow);
547
465
  cursor: pointer;
548
466
  }
549
467
 
550
468
  pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-lighting-slider>.lighting-slider::-moz-range-thumb {
551
- width: 18px;
552
- height: 18px;
469
+ width: var(--slider-thumb-size);
470
+ height: var(--slider-thumb-size);
553
471
  border-radius: 50%;
554
- background: #ffffff;
555
- border: 2px solid rgba(0, 0, 0, 0.24);
556
- box-shadow: 0 1px 4px rgba(0, 0, 0, 0.45);
472
+ background: var(--slider-thumb-color);
473
+ border: var(--slider-thumb-border);
474
+ box-shadow: var(--slider-thumb-shadow);
557
475
  cursor: pointer;
558
476
  }
559
477
 
@@ -572,33 +490,23 @@ export const PrefViewerMenu3DStyles = `
572
490
 
573
491
  pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-lighting-slider>.lighting-slider-actions>.lighting-play-button {
574
492
  appearance: none;
575
- border: 1px solid rgba(255, 255, 255, 0.18);
576
- border-radius: 999px;
577
- background: rgba(255, 255, 255, 0.08);
493
+ background: rgba(255, 255, 255, 0.1);
494
+ border: 1px solid rgba(255, 255, 255, 0.2);
495
+ border-radius: var(--button-radius);
496
+ padding: calc(var(--panel-spacing) * 0.5) var(--panel-spacing);
578
497
  color: var(--text-color);
579
- padding: 6px 12px;
580
498
  font-size: var(--font-size-small);
581
499
  font-weight: var(--font-weight-medium);
500
+ transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.2s ease;
582
501
  cursor: pointer;
583
- transition: background 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
584
502
  }
585
503
 
586
504
  pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-lighting-slider>.lighting-slider-actions>.lighting-play-button:hover,
587
505
  pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-lighting-slider>.lighting-slider-actions>.lighting-play-button:focus-visible {
588
- background: rgba(255, 255, 255, 0.14);
589
- border-color: rgba(255, 255, 255, 0.28);
590
- transform: translateY(-1px);
506
+ background: rgba(255, 255, 255, 0.15);
507
+ border-color: rgba(255, 255, 255, 0.3);
591
508
  outline: none;
592
- }
593
-
594
- pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-lighting-slider[data-playing] .lighting-slider {
595
- background:
596
- linear-gradient(to right,
597
- rgba(255, 220, 132, 0.96) 0%,
598
- rgba(255, 187, 88, 0.98) 18%,
599
- rgba(255, 247, 226, 0.96) 50%,
600
- rgba(112, 154, 255, 0.92) 82%,
601
- rgba(45, 55, 102, 0.98) 100%);
509
+ box-shadow: var(--button-shadow);
602
510
  }
603
511
  `;
604
512
 
package/Readme.md DELETED
@@ -1,8 +0,0 @@
1
- # @preference-sl/pref-viewer
2
-
3
- A Web Component for visualizing GLTF models using Babylon.js.
4
-
5
- ## Installation
6
-
7
- ```bash
8
- npm install @preference-sl/pref-viewer