fix(xml-editor): prettify xml even without root node
- update js dependencies to latest - add indentWithTab to xml-editor - tailwindcss 3.1: replace withOpacity with <alpha-value>
This commit is contained in:
parent
c9fb987fcf
commit
ca55c248d0
|
@ -1,14 +1,21 @@
|
||||||
import { basicSetup } from "@codemirror/basic-setup";
|
import { indentWithTab } from "@codemirror/commands";
|
||||||
import { xml } from "@codemirror/lang-xml";
|
import { xml } from "@codemirror/lang-xml";
|
||||||
import { EditorState } from "@codemirror/state";
|
import {
|
||||||
import { EditorView } from "@codemirror/view";
|
defaultHighlightStyle,
|
||||||
|
syntaxHighlighting,
|
||||||
|
} from "@codemirror/language";
|
||||||
|
import { Compartment, EditorState } from "@codemirror/state";
|
||||||
|
import { keymap } from "@codemirror/view";
|
||||||
|
import { basicSetup, EditorView } from "codemirror";
|
||||||
import { css, html, LitElement, TemplateResult } from "lit";
|
import { css, html, LitElement, TemplateResult } from "lit";
|
||||||
import { customElement, queryAssignedNodes, state } from "lit/decorators.js";
|
import { customElement, queryAssignedNodes, state } from "lit/decorators.js";
|
||||||
import prettifyXML from "xml-formatter";
|
import prettifyXML from "xml-formatter";
|
||||||
|
|
||||||
|
const language = new Compartment();
|
||||||
|
|
||||||
@customElement("xml-editor")
|
@customElement("xml-editor")
|
||||||
export class XMLEditor extends LitElement {
|
export class XMLEditor extends LitElement {
|
||||||
@queryAssignedNodes("textarea", true)
|
@queryAssignedNodes({ slot: "textarea" })
|
||||||
_textarea!: NodeListOf<HTMLTextAreaElement>;
|
_textarea!: NodeListOf<HTMLTextAreaElement>;
|
||||||
|
|
||||||
@state()
|
@state()
|
||||||
|
@ -24,13 +31,39 @@ export class XMLEditor extends LitElement {
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
this.editorState = EditorState.create({
|
let editorContents = "";
|
||||||
doc: this._textarea[0].value
|
if (this._textarea[0].value) {
|
||||||
? prettifyXML(this._textarea[0].value, {
|
try {
|
||||||
|
editorContents = prettifyXML(this._textarea[0].value, {
|
||||||
|
indentation: " ",
|
||||||
|
});
|
||||||
|
} catch (e) {
|
||||||
|
// xml doesn't have a root node
|
||||||
|
editorContents = prettifyXML(
|
||||||
|
"<root>" + this._textarea[0].value + "</root>",
|
||||||
|
{
|
||||||
indentation: " ",
|
indentation: " ",
|
||||||
})
|
}
|
||||||
: "",
|
);
|
||||||
extensions: [basicSetup, xml(), minHeightEditor],
|
// remove root, unnecessary lines and indents
|
||||||
|
editorContents = editorContents
|
||||||
|
.replace(/^<root>/, "")
|
||||||
|
.replace(/<\/root>$/, "")
|
||||||
|
.replace(/^\s*[\r\n]/gm, "")
|
||||||
|
.replace(/[\r\n] {2}/gm, "\r\n")
|
||||||
|
.trim();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.editorState = EditorState.create({
|
||||||
|
doc: editorContents,
|
||||||
|
extensions: [
|
||||||
|
basicSetup,
|
||||||
|
keymap.of([indentWithTab]),
|
||||||
|
language.of(xml()),
|
||||||
|
minHeightEditor,
|
||||||
|
syntaxHighlighting(defaultHighlightStyle),
|
||||||
|
],
|
||||||
});
|
});
|
||||||
|
|
||||||
this.editorView = new EditorView({
|
this.editorView = new EditorView({
|
||||||
|
|
|
@ -29,8 +29,8 @@ podcasters around the world!
|
||||||
- 🌱 Free & open-source (AGPL v3 License)
|
- 🌱 Free & open-source (AGPL v3 License)
|
||||||
- 🔐 Focused on data sovereignty: your content, audience, and analytics
|
- 🔐 Focused on data sovereignty: your content, audience, and analytics
|
||||||
belong to you, and you only
|
belong to you, and you only
|
||||||
- 🪄 Podcasting 2.0 features: GUID, locked, transcripts, funding, chapters,
|
- 🪄 Podcasting 2.0 features: GUID, locked, transcripts, funding,
|
||||||
location, persons, soundbites, …
|
chapters, location, persons, soundbites, …
|
||||||
- 💬 Built-in social network:
|
- 💬 Built-in social network:
|
||||||
- 🚀 Castopod is part of the Fediverse, a decentralized social network
|
- 🚀 Castopod is part of the Fediverse, a decentralized social network
|
||||||
- ❤️ Create posts, share, favourite, and comment on episodes
|
- ❤️ Create posts, share, favourite, and comment on episodes
|
||||||
|
|
|
@ -29,8 +29,8 @@ podcasters around the world!
|
||||||
- 🌱 Free & open-source (AGPL v3 License)
|
- 🌱 Free & open-source (AGPL v3 License)
|
||||||
- 🔐 Focused on data sovereignty: your content, audience, and analytics
|
- 🔐 Focused on data sovereignty: your content, audience, and analytics
|
||||||
belong to you, and you only
|
belong to you, and you only
|
||||||
- 🪄 Podcasting 2.0 features: GUID, locked, transcripts, funding, chapters,
|
- 🪄 Podcasting 2.0 features: GUID, locked, transcripts, funding,
|
||||||
location, persons, soundbites, …
|
chapters, location, persons, soundbites, …
|
||||||
- 💬 Built-in social network:
|
- 💬 Built-in social network:
|
||||||
- 🚀 Castopod is part of the Fediverse, a decentralized social network
|
- 🚀 Castopod is part of the Fediverse, a decentralized social network
|
||||||
- ❤️ Create posts, share, favourite, and comment on episodes
|
- ❤️ Create posts, share, favourite, and comment on episodes
|
||||||
|
|
|
@ -29,8 +29,8 @@ Podcastenden auf der ganzen Welt verwendet!
|
||||||
- 🌱 Kostenlos & Open-Source (AGPL v3 Lizenz)
|
- 🌱 Kostenlos & Open-Source (AGPL v3 Lizenz)
|
||||||
- 🔐 Fokussiert auf die Datensouveränität: Ihre Inhalte, Ihr Publikum und
|
- 🔐 Fokussiert auf die Datensouveränität: Ihre Inhalte, Ihr Publikum und
|
||||||
Analysen gehören zu Ihnen, und nur Ihnen
|
Analysen gehören zu Ihnen, und nur Ihnen
|
||||||
- 🪄 Podcasting 2.0 features: GUID, locked, transcripts, funding, chapters,
|
- 🪄 Podcasting 2.0 features: GUID, locked, transcripts, funding,
|
||||||
location, persons, soundbites, …
|
chapters, location, persons, soundbites, …
|
||||||
- 💬 Built-in social network:
|
- 💬 Built-in social network:
|
||||||
- 🚀 Castopod is part of the Fediverse, a decentralized social network
|
- 🚀 Castopod is part of the Fediverse, a decentralized social network
|
||||||
- ❤️ Create posts, share, favourite, and comment on episodes
|
- ❤️ Create posts, share, favourite, and comment on episodes
|
||||||
|
|
|
@ -29,8 +29,8 @@ podcasters around the world!
|
||||||
- 🌱 Free & open-source (AGPL v3 License)
|
- 🌱 Free & open-source (AGPL v3 License)
|
||||||
- 🔐 Focused on data sovereignty: your content, audience, and analytics
|
- 🔐 Focused on data sovereignty: your content, audience, and analytics
|
||||||
belong to you, and you only
|
belong to you, and you only
|
||||||
- 🪄 Podcasting 2.0 features: GUID, locked, transcripts, funding, chapters,
|
- 🪄 Podcasting 2.0 features: GUID, locked, transcripts, funding,
|
||||||
location, persons, soundbites, …
|
chapters, location, persons, soundbites, …
|
||||||
- 💬 Built-in social network:
|
- 💬 Built-in social network:
|
||||||
- 🚀 Castopod is part of the Fediverse, a decentralized social network
|
- 🚀 Castopod is part of the Fediverse, a decentralized social network
|
||||||
- ❤️ Create posts, share, favourite, and comment on episodes
|
- ❤️ Create posts, share, favourite, and comment on episodes
|
||||||
|
|
|
@ -29,8 +29,9 @@ et est utilisé par des podcasters partout autour du monde !
|
||||||
- 🌱 Libre, gratuit & open-source (Licence AGPL v3)
|
- 🌱 Libre, gratuit & open-source (Licence AGPL v3)
|
||||||
- 🔐 Focalisé sur la souveraineté des données : votre contenu, votre
|
- 🔐 Focalisé sur la souveraineté des données : votre contenu, votre
|
||||||
audience et vos statistiques vous appartiennent, et à vous seulement
|
audience et vos statistiques vous appartiennent, et à vous seulement
|
||||||
- 🪄 Fonctionnalités de Podcasting 2.0 : GUID, verrouillage, transcriptions,
|
- 🪄 Fonctionnalités de Podcasting 2.0 : GUID, verrouillage,
|
||||||
financement, chapitres, géo-localisation, intervenants, extraits sonores, …
|
transcriptions, financement, chapitres, géo-localisation, intervenants,
|
||||||
|
extraits sonores, …
|
||||||
- 💬 Réseau social intégré :
|
- 💬 Réseau social intégré :
|
||||||
- 🚀 Castopod fait partie du Fédivers, un réseau social décentralisé
|
- 🚀 Castopod fait partie du Fédivers, un réseau social décentralisé
|
||||||
- ❤️ Créer des publications, partager, mettre en favori et commenter des
|
- ❤️ Créer des publications, partager, mettre en favori et commenter des
|
||||||
|
|
|
@ -29,8 +29,8 @@ podcasters around the world!
|
||||||
- 🌱 Free & open-source (AGPL v3 License)
|
- 🌱 Free & open-source (AGPL v3 License)
|
||||||
- 🔐 Focused on data sovereignty: your content, audience, and analytics
|
- 🔐 Focused on data sovereignty: your content, audience, and analytics
|
||||||
belong to you, and you only
|
belong to you, and you only
|
||||||
- 🪄 Podcasting 2.0 features: GUID, locked, transcripts, funding, chapters,
|
- 🪄 Podcasting 2.0 features: GUID, locked, transcripts, funding,
|
||||||
location, persons, soundbites, …
|
chapters, location, persons, soundbites, …
|
||||||
- 💬 Built-in social network:
|
- 💬 Built-in social network:
|
||||||
- 🚀 Castopod is part of the Fediverse, a decentralized social network
|
- 🚀 Castopod is part of the Fediverse, a decentralized social network
|
||||||
- ❤️ Create posts, share, favourite, and comment on episodes
|
- ❤️ Create posts, share, favourite, and comment on episodes
|
||||||
|
|
|
@ -29,8 +29,8 @@ podcasters around the world!
|
||||||
- 🌱 Free & open-source (AGPL v3 License)
|
- 🌱 Free & open-source (AGPL v3 License)
|
||||||
- 🔐 Focused on data sovereignty: your content, audience, and analytics
|
- 🔐 Focused on data sovereignty: your content, audience, and analytics
|
||||||
belong to you, and you only
|
belong to you, and you only
|
||||||
- 🪄 Podcasting 2.0 features: GUID, locked, transcripts, funding, chapters,
|
- 🪄 Podcasting 2.0 features: GUID, locked, transcripts, funding,
|
||||||
location, persons, soundbites, …
|
chapters, location, persons, soundbites, …
|
||||||
- 💬 Built-in social network:
|
- 💬 Built-in social network:
|
||||||
- 🚀 Castopod is part of the Fediverse, a decentralized social network
|
- 🚀 Castopod is part of the Fediverse, a decentralized social network
|
||||||
- ❤️ Create posts, share, favourite, and comment on episodes
|
- ❤️ Create posts, share, favourite, and comment on episodes
|
||||||
|
|
|
@ -29,8 +29,8 @@ podcasters around the world!
|
||||||
- 🌱 Free & open-source (AGPL v3 License)
|
- 🌱 Free & open-source (AGPL v3 License)
|
||||||
- 🔐 Focused on data sovereignty: your content, audience, and analytics
|
- 🔐 Focused on data sovereignty: your content, audience, and analytics
|
||||||
belong to you, and you only
|
belong to you, and you only
|
||||||
- 🪄 Podcasting 2.0 features: GUID, locked, transcripts, funding, chapters,
|
- 🪄 Podcasting 2.0 features: GUID, locked, transcripts, funding,
|
||||||
location, persons, soundbites, …
|
chapters, location, persons, soundbites, …
|
||||||
- 💬 Built-in social network:
|
- 💬 Built-in social network:
|
||||||
- 🚀 Castopod is part of the Fediverse, a decentralized social network
|
- 🚀 Castopod is part of the Fediverse, a decentralized social network
|
||||||
- ❤️ Create posts, share, favourite, and comment on episodes
|
- ❤️ Create posts, share, favourite, and comment on episodes
|
||||||
|
|
|
@ -29,8 +29,8 @@ podcasters around the world!
|
||||||
- 🌱 Free & open-source (AGPL v3 License)
|
- 🌱 Free & open-source (AGPL v3 License)
|
||||||
- 🔐 Focused on data sovereignty: your content, audience, and analytics
|
- 🔐 Focused on data sovereignty: your content, audience, and analytics
|
||||||
belong to you, and you only
|
belong to you, and you only
|
||||||
- 🪄 Podcasting 2.0 features: GUID, locked, transcripts, funding, chapters,
|
- 🪄 Podcasting 2.0 features: GUID, locked, transcripts, funding,
|
||||||
location, persons, soundbites, …
|
chapters, location, persons, soundbites, …
|
||||||
- 💬 Built-in social network:
|
- 💬 Built-in social network:
|
||||||
- 🚀 Castopod is part of the Fediverse, a decentralized social network
|
- 🚀 Castopod is part of the Fediverse, a decentralized social network
|
||||||
- ❤️ Create posts, share, favourite, and comment on episodes
|
- ❤️ Create posts, share, favourite, and comment on episodes
|
||||||
|
|
|
@ -30,8 +30,8 @@ over heile verda bruker det!
|
||||||
- 🌱 Fri og open (AGPL v3-lisens)
|
- 🌱 Fri og open (AGPL v3-lisens)
|
||||||
- 🔐 Legg vekt på at du eig dine eigne data: innhaldet, publikum og
|
- 🔐 Legg vekt på at du eig dine eigne data: innhaldet, publikum og
|
||||||
analysedata høyrer deg til, og berre deg
|
analysedata høyrer deg til, og berre deg
|
||||||
- 🪄 Podkasting 2.0-funksjonar: GUID, låsing, transkribering, finansiering,
|
- 🪄 Podkasting 2.0-funksjonar: GUID, låsing, transkribering,
|
||||||
kapittel, stader, personar, lydbetar…
|
finansiering, kapittel, stader, personar, lydbetar…
|
||||||
- 💬 Innebygd sosialt nettverk:
|
- 💬 Innebygd sosialt nettverk:
|
||||||
- 🚀 Castopod er ein del av fødiverset, som er eit desentralisert
|
- 🚀 Castopod er ein del av fødiverset, som er eit desentralisert
|
||||||
sosialt nettverk
|
sosialt nettverk
|
||||||
|
|
|
@ -29,8 +29,8 @@ podcasters around the world!
|
||||||
- 🌱 Free & open-source (AGPL v3 License)
|
- 🌱 Free & open-source (AGPL v3 License)
|
||||||
- 🔐 Focused on data sovereignty: your content, audience, and analytics
|
- 🔐 Focused on data sovereignty: your content, audience, and analytics
|
||||||
belong to you, and you only
|
belong to you, and you only
|
||||||
- 🪄 Podcasting 2.0 features: GUID, locked, transcripts, funding, chapters,
|
- 🪄 Podcasting 2.0 features: GUID, locked, transcripts, funding,
|
||||||
location, persons, soundbites, …
|
chapters, location, persons, soundbites, …
|
||||||
- 💬 Built-in social network:
|
- 💬 Built-in social network:
|
||||||
- 🚀 Castopod is part of the Fediverse, a decentralized social network
|
- 🚀 Castopod is part of the Fediverse, a decentralized social network
|
||||||
- ❤️ Create posts, share, favourite, and comment on episodes
|
- ❤️ Create posts, share, favourite, and comment on episodes
|
||||||
|
|
|
@ -29,8 +29,8 @@ podcasters around the world!
|
||||||
- 🌱 Free & open-source (AGPL v3 License)
|
- 🌱 Free & open-source (AGPL v3 License)
|
||||||
- 🔐 Focused on data sovereignty: your content, audience, and analytics
|
- 🔐 Focused on data sovereignty: your content, audience, and analytics
|
||||||
belong to you, and you only
|
belong to you, and you only
|
||||||
- 🪄 Podcasting 2.0 features: GUID, locked, transcripts, funding, chapters,
|
- 🪄 Podcasting 2.0 features: GUID, locked, transcripts, funding,
|
||||||
location, persons, soundbites, …
|
chapters, location, persons, soundbites, …
|
||||||
- 💬 Built-in social network:
|
- 💬 Built-in social network:
|
||||||
- 🚀 Castopod is part of the Fediverse, a decentralized social network
|
- 🚀 Castopod is part of the Fediverse, a decentralized social network
|
||||||
- ❤️ Create posts, share, favourite, and comment on episodes
|
- ❤️ Create posts, share, favourite, and comment on episodes
|
||||||
|
|
|
@ -29,8 +29,8 @@ podcasters around the world!
|
||||||
- 🌱 Free & open-source (AGPL v3 License)
|
- 🌱 Free & open-source (AGPL v3 License)
|
||||||
- 🔐 Focused on data sovereignty: your content, audience, and analytics
|
- 🔐 Focused on data sovereignty: your content, audience, and analytics
|
||||||
belong to you, and you only
|
belong to you, and you only
|
||||||
- 🪄 Podcasting 2.0 features: GUID, locked, transcripts, funding, chapters,
|
- 🪄 Podcasting 2.0 features: GUID, locked, transcripts, funding,
|
||||||
location, persons, soundbites, …
|
chapters, location, persons, soundbites, …
|
||||||
- 💬 Built-in social network:
|
- 💬 Built-in social network:
|
||||||
- 🚀 Castopod is part of the Fediverse, a decentralized social network
|
- 🚀 Castopod is part of the Fediverse, a decentralized social network
|
||||||
- ❤️ Create posts, share, favourite, and comment on episodes
|
- ❤️ Create posts, share, favourite, and comment on episodes
|
||||||
|
|
|
@ -29,8 +29,8 @@ podcasters around the world!
|
||||||
- 🌱 Free & open-source (AGPL v3 License)
|
- 🌱 Free & open-source (AGPL v3 License)
|
||||||
- 🔐 Focused on data sovereignty: your content, audience, and analytics
|
- 🔐 Focused on data sovereignty: your content, audience, and analytics
|
||||||
belong to you, and you only
|
belong to you, and you only
|
||||||
- 🪄 Podcasting 2.0 features: GUID, locked, transcripts, funding, chapters,
|
- 🪄 Podcasting 2.0 features: GUID, locked, transcripts, funding,
|
||||||
location, persons, soundbites, …
|
chapters, location, persons, soundbites, …
|
||||||
- 💬 Built-in social network:
|
- 💬 Built-in social network:
|
||||||
- 🚀 Castopod is part of the Fediverse, a decentralized social network
|
- 🚀 Castopod is part of the Fediverse, a decentralized social network
|
||||||
- ❤️ Create posts, share, favourite, and comment on episodes
|
- ❤️ Create posts, share, favourite, and comment on episodes
|
||||||
|
|
|
@ -29,8 +29,8 @@ podcasters around the world!
|
||||||
- 🌱 Free & open-source (AGPL v3 License)
|
- 🌱 Free & open-source (AGPL v3 License)
|
||||||
- 🔐 Focused on data sovereignty: your content, audience, and analytics
|
- 🔐 Focused on data sovereignty: your content, audience, and analytics
|
||||||
belong to you, and you only
|
belong to you, and you only
|
||||||
- 🪄 Podcasting 2.0 features: GUID, locked, transcripts, funding, chapters,
|
- 🪄 Podcasting 2.0 features: GUID, locked, transcripts, funding,
|
||||||
location, persons, soundbites, …
|
chapters, location, persons, soundbites, …
|
||||||
- 💬 Built-in social network:
|
- 💬 Built-in social network:
|
||||||
- 🚀 Castopod is part of the Fediverse, a decentralized social network
|
- 🚀 Castopod is part of the Fediverse, a decentralized social network
|
||||||
- ❤️ Create posts, share, favourite, and comment on episodes
|
- ❤️ Create posts, share, favourite, and comment on episodes
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
92
package.json
92
package.json
|
@ -27,71 +27,71 @@
|
||||||
"prepare": "is-ci || husky install"
|
"prepare": "is-ci || husky install"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@amcharts/amcharts4": "^4.10.24",
|
"@amcharts/amcharts4": "^4.10.25",
|
||||||
"@amcharts/amcharts4-geodata": "^4.1.22",
|
"@amcharts/amcharts4-geodata": "^4.1.23",
|
||||||
"@codemirror/basic-setup": "^0.19.1",
|
"codemirror": "^6.0.1",
|
||||||
"@codemirror/commands": "^0.19.8",
|
"@codemirror/commands": "^6.0.1",
|
||||||
"@codemirror/lang-xml": "^0.19.2",
|
"@codemirror/lang-xml": "^6.0.0",
|
||||||
"@codemirror/state": "^0.19.9",
|
"@codemirror/state": "^6.1.0",
|
||||||
"@codemirror/view": "^0.19.45",
|
"@codemirror/language": "^6.2.0",
|
||||||
"@floating-ui/dom": "^0.3.1",
|
"@floating-ui/dom": "^0.5.4",
|
||||||
"@github/clipboard-copy-element": "^1.1.2",
|
"@github/clipboard-copy-element": "^1.1.2",
|
||||||
"@github/hotkey": "^2.0.0",
|
"@github/hotkey": "^2.0.0",
|
||||||
"@github/markdown-toolbar-element": "^2.1.0",
|
"@github/markdown-toolbar-element": "^2.1.1",
|
||||||
"@github/time-elements": "^3.1.2",
|
"@github/time-elements": "^3.1.2",
|
||||||
"@tailwindcss/nesting": "^0.0.0-insiders.565cd3e",
|
"@tailwindcss/nesting": "^0.0.0-insiders.565cd3e",
|
||||||
"@vime/core": "^5.3.1",
|
"@vime/core": "^5.3.1",
|
||||||
"choices.js": "^10.1.0",
|
"choices.js": "^10.1.0",
|
||||||
"flatpickr": "^4.6.9",
|
"flatpickr": "^4.6.13",
|
||||||
"leaflet": "^1.7.1",
|
"leaflet": "^1.8.0",
|
||||||
"leaflet.markercluster": "^1.5.3",
|
"leaflet.markercluster": "^1.5.3",
|
||||||
"lit": "^2.2.0",
|
"lit": "^2.2.7",
|
||||||
"marked": "^4.0.12",
|
"marked": "^4.0.17",
|
||||||
"wavesurfer.js": "^6.0.2",
|
"wavesurfer.js": "^6.2.0",
|
||||||
"xml-formatter": "^2.6.1"
|
"xml-formatter": "^2.6.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@commitlint/cli": "^16.2.1",
|
"@commitlint/cli": "^17.0.3",
|
||||||
"@commitlint/config-conventional": "^16.2.1",
|
"@commitlint/config-conventional": "^17.0.3",
|
||||||
"@semantic-release/changelog": "^6.0.1",
|
"@semantic-release/changelog": "^6.0.1",
|
||||||
"@semantic-release/exec": "^6.0.3",
|
"@semantic-release/exec": "^6.0.3",
|
||||||
"@semantic-release/git": "^10.0.1",
|
"@semantic-release/git": "^10.0.1",
|
||||||
"@semantic-release/gitlab": "^7.0.4",
|
"@semantic-release/gitlab": "^9.3.2",
|
||||||
"@tailwindcss/forms": "^0.4.0-alpha.2",
|
"@tailwindcss/forms": "^0.5.2",
|
||||||
"@tailwindcss/line-clamp": "^0.3.1",
|
"@tailwindcss/line-clamp": "^0.4.0",
|
||||||
"@tailwindcss/typography": "^0.5.2",
|
"@tailwindcss/typography": "^0.5.2",
|
||||||
"@types/leaflet": "^1.7.9",
|
"@types/leaflet": "^1.7.11",
|
||||||
"@types/marked": "^4.0.2",
|
"@types/marked": "^4.0.3",
|
||||||
"@types/wavesurfer.js": "^6.0.1",
|
"@types/wavesurfer.js": "^6.0.3",
|
||||||
"@typescript-eslint/eslint-plugin": "^5.12.1",
|
"@typescript-eslint/eslint-plugin": "^5.30.3",
|
||||||
"@typescript-eslint/parser": "^5.12.1",
|
"@typescript-eslint/parser": "^5.30.3",
|
||||||
"cross-env": "^7.0.3",
|
"cross-env": "^7.0.3",
|
||||||
"cssnano": "^5.0.17",
|
"cssnano": "^5.1.12",
|
||||||
"cz-conventional-changelog": "^3.3.0",
|
"cz-conventional-changelog": "^3.3.0",
|
||||||
"eslint": "^8.10.0",
|
"eslint": "^8.19.0",
|
||||||
"eslint-config-prettier": "^8.4.0",
|
"eslint-config-prettier": "^8.5.0",
|
||||||
"eslint-plugin-prettier": "^4.0.0",
|
"eslint-plugin-prettier": "^4.2.1",
|
||||||
"husky": "^7.0.4",
|
"husky": "^8.0.1",
|
||||||
"is-ci": "^3.0.1",
|
"is-ci": "^3.0.1",
|
||||||
"lint-staged": "^12.3.4",
|
"lint-staged": "^13.0.3",
|
||||||
"postcss-import": "^14.0.2",
|
"postcss-import": "^14.1.0",
|
||||||
"postcss-nesting": "^10.1.2",
|
"postcss-nesting": "^10.1.10",
|
||||||
"postcss-preset-env": "^7.4.1",
|
"postcss-preset-env": "^7.7.2",
|
||||||
"postcss-reporter": "^7.0.5",
|
"postcss-reporter": "^7.0.5",
|
||||||
"prettier": "2.5.1",
|
"prettier": "2.7.1",
|
||||||
"prettier-plugin-organize-imports": "^2.3.4",
|
"prettier-plugin-organize-imports": "^3.0.0",
|
||||||
"semantic-release": "^19.0.2",
|
"semantic-release": "^19.0.3",
|
||||||
"stylelint": "^14.5.3",
|
"stylelint": "^14.9.1",
|
||||||
"stylelint-config-standard": "^25.0.0",
|
"stylelint-config-standard": "^26.0.0",
|
||||||
"svgo": "^2.8.0",
|
"svgo": "^2.8.0",
|
||||||
"tailwindcss": "^3.0.23",
|
"tailwindcss": "^3.1.4",
|
||||||
"typescript": "^4.6.2",
|
"typescript": "^4.7.4",
|
||||||
"vite": "^2.8.6",
|
"vite": "^2.9.13",
|
||||||
"vite-plugin-pwa": "^0.11.13",
|
"vite-plugin-pwa": "^0.12.2",
|
||||||
"workbox-build": "^6.5.0",
|
"workbox-build": "^6.5.3",
|
||||||
"workbox-core": "^6.5.0",
|
"workbox-core": "^6.5.3",
|
||||||
"workbox-routing": "^6.5.0",
|
"workbox-routing": "^6.5.3",
|
||||||
"workbox-strategies": "^6.5.0"
|
"workbox-strategies": "^6.5.3"
|
||||||
},
|
},
|
||||||
"lint-staged": {
|
"lint-staged": {
|
||||||
"*.{js,ts,css,md,json}": "prettier --write",
|
"*.{js,ts,css,md,json}": "prettier --write",
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
plugins: [
|
plugins: [
|
||||||
require("postcss-import"),
|
|
||||||
require("postcss-reporter"),
|
require("postcss-reporter"),
|
||||||
require("tailwindcss/nesting")(require("postcss-nesting")),
|
require("tailwindcss/nesting")(require("postcss-nesting")),
|
||||||
require("tailwindcss"),
|
require("tailwindcss"),
|
||||||
|
|
|
@ -1,15 +1,7 @@
|
||||||
/* eslint-disable */
|
/* eslint-disable */
|
||||||
const defaultTheme = require("tailwindcss/defaultTheme");
|
const defaultTheme = require("tailwindcss/defaultTheme");
|
||||||
|
|
||||||
function withOpacity(variableName) {
|
/** @type {import('tailwindcss').Config} */
|
||||||
return ({ opacityValue }) => {
|
|
||||||
if (opacityValue !== undefined) {
|
|
||||||
return `hsl(var(${variableName}) / ${opacityValue})`;
|
|
||||||
}
|
|
||||||
return `hsl(var(${variableName}))`;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
content: [
|
content: [
|
||||||
"./app/Views/**/*.php",
|
"./app/Views/**/*.php",
|
||||||
|
@ -27,56 +19,57 @@ module.exports = {
|
||||||
},
|
},
|
||||||
textColor: {
|
textColor: {
|
||||||
skin: {
|
skin: {
|
||||||
base: withOpacity("--color-text-base"),
|
base: "hsl(var(--color-text-base) / <alpha-value>)",
|
||||||
muted: withOpacity("--color-text-muted"),
|
muted: "hsl(var(--color-text-muted) / <alpha-value>)",
|
||||||
},
|
},
|
||||||
accent: {
|
accent: {
|
||||||
base: withOpacity("--color-accent-base"),
|
base: "hsl(var(--color-accent-base) / <alpha-value>)",
|
||||||
hover: withOpacity("--color-accent-hover"),
|
hover: "hsl(var(--color-accent-hover) / <alpha-value>)",
|
||||||
muted: withOpacity("--color-accent-muted"),
|
muted: "hsl(var(--color-accent-muted) / <alpha-value>)",
|
||||||
contrast: withOpacity("--color-accent-contrast"),
|
contrast: "hsl(var(--color-accent-contrast) / <alpha-value>)",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
backgroundColor: {
|
backgroundColor: {
|
||||||
base: withOpacity("--color-background-base"),
|
base: "hsl(var(--color-background-base) / <alpha-value>)",
|
||||||
elevated: withOpacity("--color-background-elevated"),
|
elevated: "hsl(var(--color-background-elevated) / <alpha-value>)",
|
||||||
navigation: withOpacity("--color-background-navigation"),
|
navigation: "hsl(var(--color-background-navigation) / <alpha-value>)",
|
||||||
backdrop: withOpacity("--color-background-backdrop"),
|
backdrop: "hsl(var(--color-background-backdrop) / <alpha-value>)",
|
||||||
header: withOpacity("--color-background-header"),
|
header: "hsl(var(--color-background-header) / <alpha-value>)",
|
||||||
accent: {
|
accent: {
|
||||||
base: withOpacity("--color-accent-base"),
|
base: "hsl(var(--color-accent-base) / <alpha-value>)",
|
||||||
hover: withOpacity("--color-accent-hover"),
|
hover: "hsl(var(--color-accent-hover) / <alpha-value>)",
|
||||||
},
|
},
|
||||||
highlight: withOpacity("--color-background-highlight"),
|
highlight: "hsl(var(--color-background-highlight) / <alpha-value>)",
|
||||||
},
|
},
|
||||||
borderColor: {
|
borderColor: {
|
||||||
subtle: withOpacity("--color-border-subtle"),
|
subtle: "hsl(var(--color-border-subtle) / <alpha-value>)",
|
||||||
contrast: withOpacity("--color-border-contrast"),
|
contrast: "hsl(var(--color-border-contrast) / <alpha-value>)",
|
||||||
navigation: withOpacity("--color-border-navigation"),
|
navigation: "hsl(var(--color-border-navigation) / <alpha-value>)",
|
||||||
"navigation-bg": withOpacity("--color-background-navigation"),
|
"navigation-bg":
|
||||||
|
"hsl(var(--color-background-navigation) / <alpha-value>)",
|
||||||
accent: {
|
accent: {
|
||||||
base: withOpacity("--color-accent-base"),
|
base: "hsl(var(--color-accent-base) / <alpha-value>)",
|
||||||
hover: withOpacity("--color-accent-hover"),
|
hover: "hsl(var(--color-accent-hover) / <alpha-value>)",
|
||||||
},
|
},
|
||||||
background: {
|
background: {
|
||||||
base: withOpacity("--color-background-base"),
|
base: "hsl(var(--color-background-base) / <alpha-value>)",
|
||||||
elevated: withOpacity("--color-background-elevated"),
|
elevated: "hsl(var(--color-background-elevated) / <alpha-value>)",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
ringColor: {
|
ringColor: {
|
||||||
contrast: withOpacity("--color-border-contrast"),
|
contrast: "hsl(var(--color-border-contrast) / <alpha-value>)",
|
||||||
background: {
|
background: {
|
||||||
base: withOpacity("--color-background-base"),
|
base: "hsl(var(--color-background-base) / <alpha-value>)",
|
||||||
elevated: withOpacity("--color-background-elevated"),
|
elevated: "hsl(var(--color-background-elevated) / <alpha-value>)",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
colors: {
|
colors: {
|
||||||
background: {
|
background: {
|
||||||
header: withOpacity("--color-background-header"),
|
header: "hsl(var(--color-background-header) / <alpha-value>)",
|
||||||
},
|
},
|
||||||
heading: {
|
heading: {
|
||||||
foreground: withOpacity("--color-heading-foreground"),
|
foreground: "hsl(var(--color-heading-foreground) / <alpha-value>)",
|
||||||
background: withOpacity("--color-heading-background"),
|
background: "hsl(var(--color-heading-background) / <alpha-value>)",
|
||||||
},
|
},
|
||||||
pine: {
|
pine: {
|
||||||
50: "#F2FAF9",
|
50: "#F2FAF9",
|
||||||
|
|
Loading…
Reference in New Issue