diff --git a/.prebuild.js b/.prebuild.js index 575d2a8..fdd9765 100644 --- a/.prebuild.js +++ b/.prebuild.js @@ -3,7 +3,8 @@ * recursively includes all the files and their content to create json * representation of the workspace for the theme editor. */ -import { readdirSync, statSync, readFileSync, writeFileSync } from 'fs'; +import { mkdirSync, readdirSync, readFileSync, statSync, writeFileSync } from 'fs'; +import * as path from 'path'; import { join } from 'path'; const isDebugEnabled = process.argv.includes('--debug'); @@ -55,9 +56,11 @@ try { // Define the output path for the generated workspace structure JSON file. const outputPath = './src/assets/pillarbox-scss-workspace.json'; + const outputDir = path.dirname(outputPath); // Write the structured workspace to a JSON file, pretty-printed. console.log(`Writing the workspace structure to ${outputPath}...`); + mkdirSync(outputDir, { recursive: true }); writeFileSync(outputPath, JSON.stringify(structure, null, 2), 'utf-8'); console.log(`Successfully wrote the workspace structure to ${outputPath}`); diff --git a/index.html b/index.html index 50b3161..2a5badd 100644 --- a/index.html +++ b/index.html @@ -19,7 +19,12 @@

Pillarbo
-

Craft your theme

+
+

Craft your theme

+ + + +
diff --git a/scss/index.scss b/scss/index.scss index fa9bc2e..afd7bdd 100644 --- a/scss/index.scss +++ b/scss/index.scss @@ -81,6 +81,12 @@ footer { } } +.craft-title-container { + display: flex; + gap: 1em; + align-items: center; +} + /* * TODO: Adjust .monaco-container dimensions to ensure full parent coverage. * diff --git a/src/components/css-editor.js b/src/components/css-editor.js index ad409df..24449fd 100644 --- a/src/components/css-editor.js +++ b/src/components/css-editor.js @@ -4,18 +4,6 @@ import * as monaco from 'monaco-editor'; import EditorWorker from 'monaco-editor/esm/vs/editor/editor.worker?worker'; import CssWorker from 'monaco-editor/esm/vs/language/css/css.worker?worker'; -const initialStyle = ` -/* Turn the progress bar white */ -.pillarbox-js .vjs-play-progress { - color: white; - background-color: white; -} - -/* Show the scrubber */ -.pillarbox-js .vjs-play-progress::before { - font-size: 0.9em; -}`.trim(); - self.MonacoEnvironment = { getWorker: function(_, label) { if (label === 'css' || label === 'scss' || label === 'less') { @@ -45,6 +33,14 @@ class CssEditor extends LitElement { theme: { type: String } }; + /** + * Holds the initial value passed to this css editor. + * + * @type string + * @private + */ + #initialValue = ''; + constructor() { super(); this.container = createRef(); @@ -93,7 +89,20 @@ class CssEditor extends LitElement { * @returns {String} The current content of the editor. */ getValue() { - return this.editor ? this.editor.getValue() : initialStyle; + return this.editor ? this.editor.getValue() : this.#initialValue; + } + + /** + * Set the new content of the Monaco Editor. + * + * @param value {string} The new content fo the editor. + */ + setValue(value) { + if (!this.editor) { + this.#initialValue = value; + } else { + this.editor.setValue(value); + } } /** @@ -104,7 +113,7 @@ class CssEditor extends LitElement { super.firstUpdated(_changedProperties); this.editor = monaco.editor.create(this.container.value, { - value: initialStyle, + value: this.#initialValue, language: 'scss', theme: this.getTheme(), automaticLayout: true, diff --git a/src/components/preview-box.js b/src/components/preview-box.js index a32c4d5..b96a138 100644 --- a/src/components/preview-box.js +++ b/src/components/preview-box.js @@ -1,7 +1,6 @@ import { html, LitElement } from 'lit'; import { createRef, ref } from 'lit/directives/ref.js'; import pillarbox from '@srgssr/pillarbox-web'; -import pbStyle from '@srgssr/pillarbox-web/dist/pillarbox.min.css?inline'; /** * `PreviewBox` is a LitElement component that creates a pillarbox player @@ -32,7 +31,6 @@ class PreviewBox extends LitElement { */ render() { return html` -