@noirmd/previewer 2.0.0 → 2.0.1
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/dist/NReditor.cjs +80 -3
- package/dist/NReditor.cjs.map +1 -1
- package/dist/NReditor.js +80 -3
- package/dist/NReditor.js.map +1 -1
- package/dist/core.cjs.map +1 -1
- package/dist/core.js.map +1 -1
- package/dist/index.cjs +81 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +81 -3
- package/dist/index.js.map +1 -1
- package/dist/react.cjs +81 -3
- package/dist/react.cjs.map +1 -1
- package/dist/react.js +81 -3
- package/dist/react.js.map +1 -1
- package/dist/vanilla.cjs +81 -3
- package/dist/vanilla.cjs.map +1 -1
- package/dist/vanilla.d.cts +17 -1
- package/dist/vanilla.d.ts +17 -1
- package/dist/vanilla.js +78 -3
- package/dist/vanilla.js.map +1 -1
- package/dist/variables.css +48 -11
- package/dist/vue.cjs +80 -3
- package/dist/vue.cjs.map +1 -1
- package/dist/vue.js +80 -3
- package/dist/vue.js.map +1 -1
- package/package.json +1 -1
package/dist/variables.css
CHANGED
|
@@ -3,6 +3,24 @@
|
|
|
3
3
|
|
|
4
4
|
Override-friendly design tokens. Host themes can win by
|
|
5
5
|
defining --color-* variables; fallbacks are used otherwise.
|
|
6
|
+
|
|
7
|
+
Fallback chain per token:
|
|
8
|
+
1. daisyUI v5 / Tailwind v4 theme var (--color-primary, ...)
|
|
9
|
+
2. App-specific --color-* var (--color-accent-primary, ...)
|
|
10
|
+
3. daisyUI v4 theme var (--p, --b1, --bc, ... — raw
|
|
11
|
+
components wrapped in oklch(); v4 normalizes every input
|
|
12
|
+
format to oklch, so this is safe)
|
|
13
|
+
4. NoirMD default
|
|
14
|
+
|
|
15
|
+
Tokens are defined on BOTH :root and .nr-prose:
|
|
16
|
+
- :root makes them resolve everywhere, including elements
|
|
17
|
+
teleported to <body> (modals/card dialogs render outside
|
|
18
|
+
.nr-prose), on any host page regardless of how the host
|
|
19
|
+
scopes .nr-prose.
|
|
20
|
+
- .nr-prose re-declares them redundantly so tokens always
|
|
21
|
+
resolve inside prose even if the host overrides :root.
|
|
22
|
+
The module never defines --color-* itself, so host themes
|
|
23
|
+
always win.
|
|
6
24
|
============================================================ */
|
|
7
25
|
|
|
8
26
|
/* ── Material Icons Round (self-hosted) ────────────────────
|
|
@@ -35,18 +53,37 @@
|
|
|
35
53
|
-webkit-font-smoothing: antialiased;
|
|
36
54
|
}
|
|
37
55
|
|
|
56
|
+
/* ── Design tokens ───────────────────────────────────────── */
|
|
57
|
+
|
|
58
|
+
:root {
|
|
59
|
+
--nr-bg: var(--color-base-100, var(--color-background-primary, oklch(var(--b1, 15% 0.01 260) / 1)));
|
|
60
|
+
--nr-bg-secondary: var(--color-base-200, var(--color-background-secondary-solid, oklch(var(--b2, 20% 0.02 260) / 1)));
|
|
61
|
+
--nr-text: var(--color-base-content, var(--color-text-primary, oklch(var(--bc, 92% 0.02 260) / 1)));
|
|
62
|
+
--nr-text-secondary: color-mix(in oklab, var(--color-base-content, var(--color-text-secondary, oklch(var(--bc, 92% 0.02 260) / 1))) 72%, transparent);
|
|
63
|
+
--nr-border: var(--color-base-300, var(--color-border, oklch(var(--b3, 25% 0.03 260) / 1)));
|
|
64
|
+
--nr-accent: var(--color-primary, var(--color-accent, var(--color-accent-primary, oklch(var(--p, 55% 0.3 240) / 1))));
|
|
65
|
+
--nr-accent-hover: color-mix(in oklab, var(--nr-accent) 85%, white);
|
|
66
|
+
--nr-info: var(--color-info, oklch(var(--in, 70% 0.2 220) / 1));
|
|
67
|
+
--nr-warning: var(--color-warning, oklch(var(--wa, 80% 0.25 80) / 1));
|
|
68
|
+
--nr-danger: var(--color-error, oklch(var(--er, 65% 0.3 30) / 1));
|
|
69
|
+
--nr-success: var(--color-success, oklch(var(--su, 65% 0.25 140) / 1));
|
|
70
|
+
--nr-radius: 1rem;
|
|
71
|
+
--nr-radius-sm: 0.5rem;
|
|
72
|
+
--nr-radius-lg: 1.5rem;
|
|
73
|
+
}
|
|
74
|
+
|
|
38
75
|
.nr-prose {
|
|
39
|
-
--nr-bg: var(--color-background-primary,
|
|
40
|
-
--nr-bg-secondary: var(--color-background-secondary-solid,
|
|
41
|
-
--nr-text: var(--color-text-primary,
|
|
42
|
-
--nr-text-secondary: var(--color-text-secondary,
|
|
43
|
-
--nr-border: var(--color-border,
|
|
44
|
-
--nr-accent: var(--color-accent-primary,
|
|
45
|
-
--nr-accent-hover: var(--
|
|
46
|
-
--nr-info:
|
|
47
|
-
--nr-warning:
|
|
48
|
-
--nr-danger:
|
|
49
|
-
--nr-success:
|
|
76
|
+
--nr-bg: var(--color-base-100, var(--color-background-primary, oklch(var(--b1, 15% 0.01 260) / 1)));
|
|
77
|
+
--nr-bg-secondary: var(--color-base-200, var(--color-background-secondary-solid, oklch(var(--b2, 20% 0.02 260) / 1)));
|
|
78
|
+
--nr-text: var(--color-base-content, var(--color-text-primary, oklch(var(--bc, 92% 0.02 260) / 1)));
|
|
79
|
+
--nr-text-secondary: color-mix(in oklab, var(--color-base-content, var(--color-text-secondary, oklch(var(--bc, 92% 0.02 260) / 1))) 72%, transparent);
|
|
80
|
+
--nr-border: var(--color-base-300, var(--color-border, oklch(var(--b3, 25% 0.03 260) / 1)));
|
|
81
|
+
--nr-accent: var(--color-primary, var(--color-accent, var(--color-accent-primary, oklch(var(--p, 55% 0.3 240) / 1))));
|
|
82
|
+
--nr-accent-hover: color-mix(in oklab, var(--nr-accent) 85%, white);
|
|
83
|
+
--nr-info: var(--color-info, oklch(var(--in, 70% 0.2 220) / 1));
|
|
84
|
+
--nr-warning: var(--color-warning, oklch(var(--wa, 80% 0.25 80) / 1));
|
|
85
|
+
--nr-danger: var(--color-error, oklch(var(--er, 65% 0.3 30) / 1));
|
|
86
|
+
--nr-success: var(--color-success, oklch(var(--su, 65% 0.25 140) / 1));
|
|
50
87
|
--nr-radius: 1rem;
|
|
51
88
|
--nr-radius-sm: 0.5rem;
|
|
52
89
|
--nr-radius-lg: 1.5rem;
|
package/dist/vue.cjs
CHANGED
|
@@ -11335,7 +11335,10 @@ var modalDirective = ({ props, renderSlot }) => {
|
|
|
11335
11335
|
const dialog = createModal(modalTitle);
|
|
11336
11336
|
const body = dialog.querySelector(".nr-modal__body");
|
|
11337
11337
|
if (body) {
|
|
11338
|
-
|
|
11338
|
+
const prose = document.createElement("div");
|
|
11339
|
+
prose.className = "nr-prose";
|
|
11340
|
+
prose.appendChild(renderSlot("default"));
|
|
11341
|
+
body.appendChild(prose);
|
|
11339
11342
|
}
|
|
11340
11343
|
btn.addEventListener("click", () => {
|
|
11341
11344
|
if (!dialog.open) {
|
|
@@ -11489,8 +11492,10 @@ var cardDirective = ({
|
|
|
11489
11492
|
const dialog = createModal(title || "Detalles");
|
|
11490
11493
|
const modalBody = dialog.querySelector(".nr-modal__body");
|
|
11491
11494
|
if (modalBody) {
|
|
11492
|
-
const
|
|
11493
|
-
|
|
11495
|
+
const prose = document.createElement("div");
|
|
11496
|
+
prose.className = "nr-prose";
|
|
11497
|
+
prose.appendChild(renderSlot("content") || renderSlot("default"));
|
|
11498
|
+
modalBody.appendChild(prose);
|
|
11494
11499
|
}
|
|
11495
11500
|
card.addEventListener("click", () => {
|
|
11496
11501
|
if (!dialog.open) {
|
|
@@ -11847,6 +11852,75 @@ function renderDirective(element, ctx, allElements) {
|
|
|
11847
11852
|
|
|
11848
11853
|
// vue/useTailwindCDN.ts
|
|
11849
11854
|
var import_vue = require("vue");
|
|
11855
|
+
|
|
11856
|
+
// vanilla/tailwindTheme.ts
|
|
11857
|
+
var THEME_STYLE_ID = "nr-tailwind-theme";
|
|
11858
|
+
var NR_THEME_CSS = `
|
|
11859
|
+
@theme {
|
|
11860
|
+
--color-primary: var(--color-accent-primary, oklch(var(--p, 55% 0.3 240) / 1));
|
|
11861
|
+
--color-primary-content: #ffffff;
|
|
11862
|
+
--color-secondary: oklch(var(--s, 55% 0.25 200) / 1);
|
|
11863
|
+
--color-secondary-content: #ffffff;
|
|
11864
|
+
--color-accent: var(--color-accent-primary, oklch(var(--a, 65% 0.25 160) / 1));
|
|
11865
|
+
--color-accent-content: #ffffff;
|
|
11866
|
+
--color-neutral: oklch(var(--n, 50% 0.05 240) / 1);
|
|
11867
|
+
--color-neutral-content: var(--color-text-primary, oklch(var(--nc, 92% 0.02 240) / 1));
|
|
11868
|
+
--color-base-100: var(--color-background-primary, oklch(var(--b1, 15% 0.01 260) / 1));
|
|
11869
|
+
--color-base-200: var(--color-background-secondary-solid, oklch(var(--b2, 20% 0.02 260) / 1));
|
|
11870
|
+
--color-base-300: var(--color-border, oklch(var(--b3, 25% 0.03 260) / 1));
|
|
11871
|
+
--color-base-content: var(--color-text-primary, oklch(var(--bc, 92% 0.02 260) / 1));
|
|
11872
|
+
--color-info: oklch(var(--in, 70% 0.2 220) / 1);
|
|
11873
|
+
--color-info-content: #ffffff;
|
|
11874
|
+
--color-success: oklch(var(--su, 65% 0.25 140) / 1);
|
|
11875
|
+
--color-success-content: #ffffff;
|
|
11876
|
+
--color-warning: oklch(var(--wa, 80% 0.25 80) / 1);
|
|
11877
|
+
--color-warning-content: #1f2937;
|
|
11878
|
+
--color-error: oklch(var(--er, 65% 0.3 30) / 1);
|
|
11879
|
+
--color-error-content: #ffffff;
|
|
11880
|
+
}
|
|
11881
|
+
`;
|
|
11882
|
+
function getVar(root, name) {
|
|
11883
|
+
return getComputedStyle(root).getPropertyValue(name).trim();
|
|
11884
|
+
}
|
|
11885
|
+
function stylesheetHasTheme() {
|
|
11886
|
+
for (const sheet of Array.from(document.styleSheets)) {
|
|
11887
|
+
let rules = null;
|
|
11888
|
+
try {
|
|
11889
|
+
rules = sheet.cssRules;
|
|
11890
|
+
} catch {
|
|
11891
|
+
continue;
|
|
11892
|
+
}
|
|
11893
|
+
if (!rules) continue;
|
|
11894
|
+
for (const rule of Array.from(rules)) {
|
|
11895
|
+
const css2 = rule.cssText || "";
|
|
11896
|
+
if (css2.includes("@theme") || css2.includes('@plugin "daisyui"')) return true;
|
|
11897
|
+
}
|
|
11898
|
+
}
|
|
11899
|
+
return false;
|
|
11900
|
+
}
|
|
11901
|
+
function hasHostTheme() {
|
|
11902
|
+
if (typeof window === "undefined" || typeof document === "undefined") return true;
|
|
11903
|
+
if (getVar(document.documentElement, "--color-primary")) return true;
|
|
11904
|
+
if (getVar(document.documentElement, "--color-base-100")) return true;
|
|
11905
|
+
if (document.body && (getVar(document.body, "--color-primary") || getVar(document.body, "--color-base-100"))) return true;
|
|
11906
|
+
return stylesheetHasTheme();
|
|
11907
|
+
}
|
|
11908
|
+
function injectNRTailwindTheme() {
|
|
11909
|
+
if (typeof document === "undefined") return;
|
|
11910
|
+
if (document.getElementById(THEME_STYLE_ID)) return;
|
|
11911
|
+
if (hasHostTheme()) return;
|
|
11912
|
+
const style = document.createElement("style");
|
|
11913
|
+
style.id = THEME_STYLE_ID;
|
|
11914
|
+
style.setAttribute("type", "text/tailwindcss");
|
|
11915
|
+
style.textContent = NR_THEME_CSS;
|
|
11916
|
+
document.head.appendChild(style);
|
|
11917
|
+
}
|
|
11918
|
+
function removeNRTailwindTheme() {
|
|
11919
|
+
if (typeof document === "undefined") return;
|
|
11920
|
+
document.getElementById(THEME_STYLE_ID)?.remove();
|
|
11921
|
+
}
|
|
11922
|
+
|
|
11923
|
+
// vue/useTailwindCDN.ts
|
|
11850
11924
|
var CDN_URL = "https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4";
|
|
11851
11925
|
var SCRIPT_ID = "tailwind-cdn-v4-runtime";
|
|
11852
11926
|
var CONFIG_ID = "tailwind-cdn-v4-config";
|
|
@@ -11869,6 +11943,7 @@ function useLazyTailwindCDN(enabled) {
|
|
|
11869
11943
|
configScript.textContent = TAILWIND_CDN_CONFIG;
|
|
11870
11944
|
document.head.appendChild(configScript);
|
|
11871
11945
|
}
|
|
11946
|
+
injectNRTailwindTheme();
|
|
11872
11947
|
if (!document.getElementById(SCRIPT_ID)) {
|
|
11873
11948
|
const script = document.createElement("script");
|
|
11874
11949
|
script.id = SCRIPT_ID;
|
|
@@ -11882,6 +11957,7 @@ function useLazyTailwindCDN(enabled) {
|
|
|
11882
11957
|
if ((window.__twCDNRefs ?? 0) <= 0) {
|
|
11883
11958
|
document.getElementById(SCRIPT_ID)?.remove();
|
|
11884
11959
|
document.getElementById(CONFIG_ID)?.remove();
|
|
11960
|
+
removeNRTailwindTheme();
|
|
11885
11961
|
window.__twCDNRefs = 0;
|
|
11886
11962
|
}
|
|
11887
11963
|
};
|
|
@@ -11918,6 +11994,7 @@ function preloadTailwindCDN() {
|
|
|
11918
11994
|
configScript.textContent = TAILWIND_CDN_CONFIG;
|
|
11919
11995
|
document.head.appendChild(configScript);
|
|
11920
11996
|
}
|
|
11997
|
+
injectNRTailwindTheme();
|
|
11921
11998
|
const script = document.createElement("script");
|
|
11922
11999
|
script.id = SCRIPT_ID;
|
|
11923
12000
|
script.src = CDN_URL;
|