@preference-sl/pref-viewer 2.11.0-beta.10 → 2.11.0-beta.12

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,13 +1,12 @@
1
1
  {
2
2
  "name": "@preference-sl/pref-viewer",
3
- "version": "2.11.0-beta.10",
3
+ "version": "2.11.0-beta.12",
4
4
  "description": "Web Component to preview GLTF models with Babylon.js",
5
5
  "author": "Alex Moreno Palacio <amoreno@preference.es>",
6
6
  "scripts": {
7
- "copy-css": "cpx \"src/css/**/*\" dist/css/",
8
7
  "release": "standard-version --releaseCommitMessageFormat \"chore(release): {{currentTag}} [skip ci]\"",
9
8
  "release:beta": "standard-version --prerelease beta --releaseCommitMessageFormat \"chore(release): {{currentTag}} [skip ci]\"",
10
- "build": "npm run copy-css && esbuild src/index.js --bundle --platform=node --outfile=dist/bundle.js --sourcemap",
9
+ "build": "esbuild src/index.js --bundle --platform=node --format=esm --outfile=dist/bundle.js --sourcemap",
11
10
  "start": "npm run build && http-server -c-1 . -p 8080",
12
11
  "test": "vitest"
13
12
  },
@@ -31,7 +30,6 @@
31
30
  "sideEffects": false,
32
31
  "files": [
33
32
  "src",
34
- "src/css",
35
33
  "index.d.ts"
36
34
  ],
37
35
  "dependencies": {
@@ -46,7 +44,6 @@
46
44
  "jszip": "^3.10.1"
47
45
  },
48
46
  "devDependencies": {
49
- "cpx": "^1.5.0",
50
47
  "esbuild": "^0.25.10",
51
48
  "http-server": "^14.1.1",
52
49
  "jsdom": "^26.1.0",
@@ -1,6 +1,7 @@
1
1
  import { Color3, HighlightLayer, Mesh, PickingInfo, PointerEventTypes, Scene } from "@babylonjs/core";
2
2
  import { AdvancedDynamicTexture } from "@babylonjs/gui";
3
- import { OpeningAnimation } from "./babylonjs-animation-opening.js";
3
+ import { PrefViewerColors } from "./styles.js";
4
+ import OpeningAnimation from "./babylonjs-animation-opening.js";
4
5
 
5
6
  /**
6
7
  * BabylonJSAnimationController - Manages animation playback and interactive highlighting for model containers in Babylon.js scenes.
@@ -21,7 +22,7 @@ export default class BabylonJSAnimationController {
21
22
  #scene = null;
22
23
  #animatedNodes = [];
23
24
  #highlightLayer = null;
24
- #highlightColor = new Color3(0, 1, 0); // Color para resaltar los elementos animados (Verde)
25
+ #highlightColor = Color3.FromHexString(PrefViewerColors.primary);
25
26
  #advancedDynamicTexture = null;
26
27
  #openingAnimations = [];
27
28
 
@@ -1,5 +1,6 @@
1
1
  import { AdvancedDynamicTexture, Button, Control, Image, Slider, StackPanel } from "@babylonjs/gui";
2
- import { OpeningAnimation } from "./babylonjs-animation-opening.js";
2
+ import OpeningAnimation from "./babylonjs-animation-opening.js";
3
+ import { PrefViewerColors } from "./styles.js";
3
4
 
4
5
  /**
5
6
  * OpeningAnimationMenu - Manages and renders the animation control menu for opening/closing animations in a Babylon.js scene.
@@ -42,7 +43,7 @@ import { OpeningAnimation } from "./babylonjs-animation-opening.js";
42
43
  * menu.animationProgress = 0.5;
43
44
  * menu.animationLoop = true;
44
45
  */
45
- export class OpeningAnimationMenu {
46
+ export default class OpeningAnimationMenu {
46
47
  #animationState = OpeningAnimation.states.closed;
47
48
  #animationProgress = 0;
48
49
  #animationLoop = false;
@@ -57,7 +58,7 @@ export class OpeningAnimationMenu {
57
58
  // Style properties
58
59
  #buttonSize = 28;
59
60
  #buttonLoopPaddingLeft = 3;
60
- #colorActive = "#6BA53A";
61
+ #colorActive = PrefViewerColors.primary;
61
62
  #colorEnabled = "#333333";
62
63
  #colorDisabled = "#777777";
63
64
  #colorIcon = "#FFFFFF";
@@ -1,5 +1,5 @@
1
1
  import { AdvancedDynamicTexture } from "@babylonjs/gui";
2
- import { OpeningAnimationMenu } from "./babylonjs-animation-opening-menu.js";
2
+ import OpeningAnimationMenu from "./babylonjs-animation-opening-menu.js";
3
3
 
4
4
  /**
5
5
  * OpeningAnimation - Manages open/close animations for a model part (e.g., a door) in a Babylon.js scene.
@@ -48,7 +48,7 @@ import { OpeningAnimationMenu } from "./babylonjs-animation-opening-menu.js";
48
48
  * anim.showControls(adt);
49
49
  * anim.hideControls();
50
50
  */
51
- export class OpeningAnimation {
51
+ export default class OpeningAnimation {
52
52
  static states = {
53
53
  paused: 0,
54
54
  closed: 1,
package/src/index.js CHANGED
@@ -1,7 +1,8 @@
1
- import { PrefViewer2D } from "./pref-viewer-2d.js";
2
- import { PrefViewer3D } from "./pref-viewer-3d.js";
3
- import { PrefViewerDialog } from "./pref-viewer-dialog.js";
4
- import { PrefViewerTask } from "./pref-viewer-task.js";
1
+ import PrefViewer2D from "./pref-viewer-2d.js";
2
+ import PrefViewer3D from "./pref-viewer-3d.js";
3
+ import PrefViewerDialog from "./pref-viewer-dialog.js";
4
+ import PrefViewerTask from "./pref-viewer-task.js";
5
+ import { PrefViewerStyles } from "./styles.js";
5
6
 
6
7
  /**
7
8
  * PrefViewer - Custom Web Component for advanced 2D and 3D product visualization and configuration.
@@ -133,7 +134,7 @@ class PrefViewer extends HTMLElement {
133
134
  if (_old === value || value.toLowerCase() === this.#mode) {
134
135
  return;
135
136
  }
136
- this.setMode(value.toLowerCase());
137
+ this.setMode(value);
137
138
  break;
138
139
  case "model":
139
140
  this.loadModel(value);
@@ -173,7 +174,7 @@ class PrefViewer extends HTMLElement {
173
174
  this.shadowRoot.append(this.#wrapper);
174
175
 
175
176
  const style = document.createElement("style");
176
- style.textContent = `@import "/dist/css/pref-viewer.css";`;
177
+ style.textContent = PrefViewerStyles;
177
178
  this.shadowRoot.append(style);
178
179
 
179
180
  this.#createComponent3D();
@@ -502,6 +503,7 @@ class PrefViewer extends HTMLElement {
502
503
  * @returns {void}
503
504
  */
504
505
  setMode(mode = this.#mode) {
506
+ mode = mode.toLowerCase();
505
507
  if (mode !== "2d" && mode !== "3d") {
506
508
  console.warn(`PrefViewer: invalid mode "${mode}". Allowed modes are "2d" and "3d".`);
507
509
  mode = this.#mode;
@@ -1,5 +1,6 @@
1
1
  import SVGResolver from "./svg-resolver.js";
2
2
  import PanzoomController from "./panzoom-controller.js";
3
+ import { PrefViewer2DStyles } from "./styles.js";
3
4
 
4
5
  /**
5
6
  * PrefViewer2D - Custom element for rendering and interacting with 2D SVG content.
@@ -46,7 +47,7 @@ import PanzoomController from "./panzoom-controller.js";
46
47
  * Notes on extensibility
47
48
  * - Modeled for easy addition of other input sources or interaction modes (e.g., selection callbacks).
48
49
  */
49
- export class PrefViewer2D extends HTMLElement {
50
+ export default class PrefViewer2D extends HTMLElement {
50
51
  // State flags
51
52
  #isInitialized = false;
52
53
  #isLoaded = false;
@@ -143,8 +144,9 @@ export class PrefViewer2D extends HTMLElement {
143
144
  #createDOMElements() {
144
145
  this.#wrapper = document.createElement("div");
145
146
  this.append(this.#wrapper);
147
+
146
148
  const style = document.createElement("style");
147
- style.textContent = `@import "/dist/css/pref-viewer-2d.css";`;
149
+ style.textContent = PrefViewer2DStyles;
148
150
  this.append(style);
149
151
  }
150
152
 
@@ -1,5 +1,6 @@
1
1
  import { CameraData, ContainerData, MaterialData } from "./pref-viewer-3d-data.js";
2
2
  import BabylonJSController from "./babylonjs-controller.js";
3
+ import { PrefViewer3DStyles } from "./styles.js";
3
4
 
4
5
  /**
5
6
  * PrefViewer3D - Custom Web Component for interactive 3D visualization and configuration.
@@ -56,7 +57,7 @@ import BabylonJSController from "./babylonjs-controller.js";
56
57
  * - Designed for extensibility and integration in product configurators and visualization tools.
57
58
  * - All resource management and rendering operations are performed asynchronously for performance.
58
59
  */
59
- export class PrefViewer3D extends HTMLElement {
60
+ export default class PrefViewer3D extends HTMLElement {
60
61
  // State flags
61
62
  #isInitialized = false;
62
63
  #isLoaded = false;
@@ -157,10 +158,12 @@ export class PrefViewer3D extends HTMLElement {
157
158
  #createDOMElements() {
158
159
  this.#wrapper = document.createElement("div");
159
160
  this.append(this.#wrapper);
161
+
160
162
  this.#canvas = document.createElement("canvas");
161
163
  this.#wrapper.appendChild(this.#canvas);
164
+
162
165
  const style = document.createElement("style");
163
- style.textContent = `@import "/dist/css/pref-viewer-3d.css";`;
166
+ style.textContent = PrefViewer3DStyles;
164
167
  this.append(style);
165
168
  }
166
169
 
@@ -460,6 +463,7 @@ export class PrefViewer3D extends HTMLElement {
460
463
  show() {
461
464
  this.#isVisible = true;
462
465
  this.setAttribute("visible", "true");
466
+ this.#canvas.focus();
463
467
  }
464
468
 
465
469
  /**
@@ -697,4 +701,4 @@ export class PrefViewer3D extends HTMLElement {
697
701
  get isVisible() {
698
702
  return this.#isVisible;
699
703
  }
700
- }
704
+ }
@@ -1,3 +1,5 @@
1
+ import { PrefViewerDialogStyles } from "./styles.js";
2
+
1
3
  /**
2
4
  * PrefViewerDialog - Custom Web Component for displaying modal dialogs in PrefViewer.
3
5
  *
@@ -20,7 +22,7 @@
20
22
  * - close(): Hides and removes the dialog, refocuses the canvas if available.
21
23
  * - #createDOMElements(): Creates the dialog structure and applies styles.
22
24
  */
23
- export class PrefViewerDialog extends HTMLElement {
25
+ export default class PrefViewerDialog extends HTMLElement {
24
26
  #wrapper = null;
25
27
  #header = null;
26
28
  #content = null;
@@ -68,7 +70,7 @@ export class PrefViewerDialog extends HTMLElement {
68
70
  this.append(this.#wrapper);
69
71
 
70
72
  const style = document.createElement("style");
71
- style.textContent = `@import "/dist/css/pref-viewer-dialog.css";`;
73
+ style.textContent = PrefViewerDialogStyles;
72
74
  this.append(style);
73
75
 
74
76
  this.addEventListener("click", this.#closeOnBackdropClick.bind(this));
@@ -131,7 +133,6 @@ export class PrefViewerDialog extends HTMLElement {
131
133
  component2D.focus();
132
134
  }
133
135
  }
134
-
135
136
  }
136
137
  this.#wrapper = this.#header = this.#content = this.#footer = null;
137
138
  this.remove();
@@ -18,7 +18,7 @@
18
18
  * - Validates the type (case-insensitive) and throws a TypeError if invalid.
19
19
  * - Freezes the instance to prevent further modification.
20
20
  */
21
- export class PrefViewerTask {
21
+ export default class PrefViewerTask {
22
22
  static Types = Object.freeze({
23
23
  Config: "config",
24
24
  Drawing: "drawing",
package/src/styles.js ADDED
@@ -0,0 +1,196 @@
1
+ export const PrefViewerColors = {
2
+ primary: "#ff6700", // Always specify in hexadecimal
3
+ };
4
+
5
+ export const PrefViewerStyles = `
6
+ :host .pref-viewer-wrapper {
7
+ display: grid !important;
8
+ position: relative;
9
+ width: 100%;
10
+ height: 100%;
11
+ grid-template-columns: 1fr;
12
+ grid-template-rows: 1fr;
13
+ grid-gap: 0;
14
+ min-width: 0;
15
+ min-height: 0;
16
+ }
17
+ `;
18
+
19
+ export const PrefViewer2DStyles = `
20
+ pref-viewer-2d {
21
+ --pref-viewer-2d-bg-color: #ffffff;
22
+ --pref-viewer-2d-svg-padding: 10px;
23
+ }
24
+
25
+ pref-viewer-2d[visible="true"] {
26
+ display: block;
27
+ }
28
+
29
+ pref-viewer-2d[visible="false"] {
30
+ display: none;
31
+ }
32
+
33
+ pref-viewer-2d {
34
+ grid-column: 1;
35
+ grid-row: 1;
36
+ overflow: hidden;
37
+ min-width: 0;
38
+ min-height: 0;
39
+ align-self: stretch;
40
+ justify-self: stretch;
41
+ background: var(--pref-viewer-2d-bg-color);
42
+ }
43
+
44
+ pref-viewer-2d,
45
+ pref-viewer-2d>div,
46
+ pref-viewer-2d>div>svg {
47
+ width: 100%;
48
+ height: 100%;
49
+ display: block;
50
+ position: relative;
51
+ outline: none;
52
+ box-sizing: border-box;
53
+ }
54
+
55
+ pref-viewer-2d>div>svg {
56
+ padding: var(--pref-viewer-2d-svg-padding);
57
+ }
58
+ `;
59
+
60
+ export const PrefViewer3DStyles = `
61
+ pref-viewer-3d[visible="true"] {
62
+ display: block;
63
+ }
64
+
65
+ pref-viewer-3d[visible="false"] {
66
+ display: none;
67
+ }
68
+
69
+ pref-viewer-3d {
70
+ grid-column: 1;
71
+ grid-row: 1;
72
+ overflow: hidden;
73
+ min-width: 0;
74
+ min-height: 0;
75
+ align-self: stretch;
76
+ justify-self: stretch;
77
+ }
78
+
79
+ pref-viewer-3d,
80
+ pref-viewer-3d>div,
81
+ pref-viewer-3d>div>canvas {
82
+ width: 100%;
83
+ height: 100%;
84
+ display: block;
85
+ position: relative;
86
+ outline: none;
87
+ box-sizing: border-box;
88
+ }
89
+ `;
90
+
91
+ export const PrefViewerDialogStyles = `
92
+ pref-viewer-dialog {
93
+ --color-primary: ${PrefViewerColors.primary};
94
+ --dialog-general-space: 16px;
95
+ --dialog-bg-color: #ffffff;
96
+ --dialog-backdrop-color: rgba(0, 0, 0, 0.25);
97
+ --dialog-border-color: #e7e7e7;
98
+ --dialog-border-radius: 8px;
99
+ --dialog-box-shadow: 0 4px 24px rgba(0, 0, 0, 0.25);
100
+ --button-default-bg-color: #bbbbbb;
101
+ --button-default-bg-color-hover: #a1a1a1;
102
+ --button-primary-bg-color: color-mix(in oklab, var(--color-primary), white 25%);
103
+ --button-primary-bg-color-hover: var(--color-primary);
104
+ --button-border-radius: 4px;
105
+ --button-padding-horizontal: 16px;
106
+ --button-padding-vertical: 8px;
107
+ }
108
+
109
+ pref-viewer-dialog:not {
110
+ display: none;
111
+ }
112
+
113
+ pref-viewer-dialog[open] {
114
+ font-family: 'Roboto', ui-sans-serif, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji;
115
+ grid-row: 1;
116
+ grid-column: 1;
117
+ overflow: hidden;
118
+ min-width: 0;
119
+ min-height: 0;
120
+ align-self: stretch;
121
+ justify-self: stretch;
122
+ display: flex;
123
+ align-items: center;
124
+ justify-content: center;
125
+ background-color: var(--dialog-backdrop-color);
126
+ position: relative;
127
+ z-index: 1000;
128
+ }
129
+
130
+ pref-viewer-dialog>.dialog-wrapper {
131
+ display: flex;
132
+ flex-direction: column;
133
+ align-items: stretch;
134
+ background: var(--dialog-bg-color);
135
+ border: 1px solid var(--dialog-border-color);
136
+ border-radius: var(--dialog-border-radius);
137
+ box-shadow: var(--dialog-box-shadow);
138
+ padding: 0;
139
+ min-width: 320px;
140
+ max-width: 90%;
141
+ max-height: 90%;
142
+ overflow: auto;
143
+ }
144
+
145
+ pref-viewer-dialog .dialog-header {
146
+ padding: var(--dialog-general-space);
147
+ border-bottom: 1px solid var(--dialog-border-color);
148
+ }
149
+
150
+ pref-viewer-dialog .dialog-header h3 {
151
+ margin: 0;
152
+ font-weight: 500;
153
+ font-size: 1.1em;
154
+ }
155
+
156
+ pref-viewer-dialog .dialog-content {
157
+ padding: var(--dialog-general-space);
158
+ }
159
+
160
+ pref-viewer-dialog .dialog-content h4 {
161
+ margin: 0;
162
+ font-weight: 500;
163
+ font-size: 1.05em;
164
+ }
165
+
166
+ pref-viewer-dialog .dialog-footer {
167
+ border-top: 1px solid var(--dialog-border-color);
168
+ padding: var(--dialog-general-space);
169
+ display: flex;
170
+ gap: var(--dialog-general-space);
171
+ justify-content: stretch;
172
+ }
173
+
174
+ pref-viewer-dialog .dialog-footer button {
175
+ width: 100%;
176
+ font-size: 1em;
177
+ padding: var(--button-padding-vertical) var(--button-padding-horizontal);
178
+ border-radius: var(--button-border-radius);
179
+ border: none;
180
+ background: var(--button-default-bg-color);
181
+ cursor: pointer;
182
+ transition: background 0.2s;
183
+ }
184
+
185
+ pref-viewer-dialog .dialog-footer button.primary {
186
+ background: var(--button-primary-bg-color);
187
+ }
188
+
189
+ pref-viewer-dialog .dialog-footer button:hover {
190
+ background: var(--button-default-bg-color-hover);
191
+ }
192
+
193
+ pref-viewer-dialog .dialog-footer button.primary:hover {
194
+ background: var(--button-primary-bg-color-hover);
195
+ }
196
+ `;
@@ -1,39 +0,0 @@
1
- /* Variables */
2
- pref-viewer-2d {
3
- --pref-viewer-2d-bg-color: #ffffff;
4
- --pref-viewer-2d-svg-padding: 10px;
5
- }
6
-
7
- pref-viewer-2d[visible="true"] {
8
- display: block;
9
- }
10
-
11
- pref-viewer-2d[visible="false"] {
12
- display: none;
13
- }
14
-
15
- pref-viewer-2d {
16
- grid-column: 1;
17
- grid-row: 1;
18
- overflow: hidden;
19
- min-width: 0;
20
- min-height: 0;
21
- align-self: stretch;
22
- justify-self: stretch;
23
- background: var(--pref-viewer-2d-bg-color);
24
- }
25
-
26
- pref-viewer-2d,
27
- pref-viewer-2d>div,
28
- pref-viewer-2d>div>svg {
29
- width: 100%;
30
- height: 100%;
31
- display: block;
32
- position: relative;
33
- outline: none;
34
- box-sizing: border-box;
35
- }
36
-
37
- pref-viewer-2d>div>svg {
38
- padding: var(--pref-viewer-2d-svg-padding);
39
- }
@@ -1,28 +0,0 @@
1
- pref-viewer-3d[visible="true"] {
2
- display: block;
3
- }
4
-
5
- pref-viewer-3d[visible="false"] {
6
- display: none;
7
- }
8
-
9
- pref-viewer-3d {
10
- grid-column: 1;
11
- grid-row: 1;
12
- overflow: hidden;
13
- min-width: 0;
14
- min-height: 0;
15
- align-self: stretch;
16
- justify-self: stretch;
17
- }
18
-
19
- pref-viewer-3d,
20
- pref-viewer-3d>div,
21
- pref-viewer-3d>div>canvas {
22
- width: 100%;
23
- height: 100%;
24
- display: block;
25
- position: relative;
26
- outline: none;
27
- box-sizing: border-box;
28
- }
@@ -1,105 +0,0 @@
1
- /* Variables */
2
- pref-viewer-dialog {
3
- --brand-color: #ff6700;
4
- --dialog-general-space: 16px;
5
- --dialog-bg-color: #ffffff;
6
- --dialog-backdrop-color: rgba(0, 0, 0, 0.25);
7
- --dialog-border-color: #e7e7e7;
8
- --dialog-border-radius: 8px;
9
- --dialog-box-shadow: 0 4px 24px rgba(0, 0, 0, 0.25);
10
- --button-default-bg-color: #bbbbbb;
11
- --button-default-bg-color-hover: #a1a1a1;
12
- --button-primary-bg-color: color-mix(in oklab, var(--brand-color), white 25%);
13
- --button-primary-bg-color-hover: var(--brand-color);
14
- --button-border-radius: 4px;
15
- --button-padding-horizontal: 16px;
16
- --button-padding-vertical: 8px;
17
- }
18
-
19
- pref-viewer-dialog:not {
20
- display: none;
21
- }
22
-
23
- pref-viewer-dialog[open] {
24
- font-family: 'Roboto', ui-sans-serif, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji;
25
- grid-row: 1;
26
- grid-column: 1;
27
- overflow: hidden;
28
- min-width: 0;
29
- min-height: 0;
30
- align-self: stretch;
31
- justify-self: stretch;
32
- display: flex;
33
- align-items: center;
34
- justify-content: center;
35
- background-color: var(--dialog-backdrop-color);
36
- position: relative;
37
- z-index: 1000;
38
- }
39
-
40
- pref-viewer-dialog>.dialog-wrapper {
41
- display: flex;
42
- flex-direction: column;
43
- align-items: stretch;
44
- background: var(--dialog-bg-color);
45
- border: 1px solid var(--dialog-border-color);
46
- border-radius: var(--dialog-border-radius);
47
- box-shadow: var(--dialog-box-shadow);
48
- padding: 0;
49
- min-width: 320px;
50
- max-width: 90%;
51
- max-height: 90%;
52
- overflow: auto;
53
- }
54
-
55
- pref-viewer-dialog .dialog-header {
56
- padding: var(--dialog-general-space);
57
- border-bottom: 1px solid var(--dialog-border-color);
58
- }
59
-
60
- pref-viewer-dialog .dialog-header h3 {
61
- margin: 0;
62
- font-weight: 500;
63
- font-size: 1.1em;
64
- }
65
-
66
- pref-viewer-dialog .dialog-content {
67
- padding: var(--dialog-general-space);
68
- }
69
-
70
- pref-viewer-dialog .dialog-content h4 {
71
- margin: 0;
72
- font-weight: 500;
73
- font-size: 1.05em;
74
- }
75
-
76
- pref-viewer-dialog .dialog-footer {
77
- border-top: 1px solid var(--dialog-border-color);
78
- padding: var(--dialog-general-space);
79
- display: flex;
80
- gap: var(--dialog-general-space);
81
- justify-content: stretch;
82
- }
83
-
84
- pref-viewer-dialog .dialog-footer button {
85
- width: 100%;
86
- font-size: 1em;
87
- padding: var(--button-padding-vertical) var(--button-padding-horizontal);
88
- border-radius: var(--button-border-radius);
89
- border: none;
90
- background: var(--button-default-bg-color);
91
- cursor: pointer;
92
- transition: background 0.2s;
93
- }
94
-
95
- pref-viewer-dialog .dialog-footer button.primary {
96
- background: var(--button-primary-bg-color);
97
- }
98
-
99
- pref-viewer-dialog .dialog-footer button:hover {
100
- background: var(--button-default-bg-color-hover);
101
- }
102
-
103
- pref-viewer-dialog .dialog-footer button.primary:hover {
104
- background: var(--button-primary-bg-color-hover);
105
- }
@@ -1,11 +0,0 @@
1
- :host .pref-viewer-wrapper {
2
- display: grid !important;
3
- position: relative;
4
- width: 100%;
5
- height: 100%;
6
- grid-template-columns: 1fr;
7
- grid-template-rows: 1fr;
8
- grid-gap: 0;
9
- min-width: 0;
10
- min-height: 0;
11
- }