@changerawr/markdown 1.1.0 → 1.1.2
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/css/core.css +33 -0
- package/dist/css/index.css +156 -0
- package/dist/tailwind/index.d.mts +7 -20
- package/dist/tailwind/index.d.ts +7 -20
- package/dist/tailwind/index.js +114 -282
- package/dist/tailwind/index.js.map +1 -1
- package/dist/tailwind/index.mjs +114 -282
- package/dist/tailwind/index.mjs.map +1 -1
- package/package.json +7 -4
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/* ===================================
|
|
2
|
+
* Core-only version without extensions
|
|
3
|
+
* =================================== */
|
|
4
|
+
|
|
5
|
+
@layer utilities {
|
|
6
|
+
/* Essential typography for markdown */
|
|
7
|
+
.text-3xl { font-size: 1.875rem; line-height: 2.25rem; }
|
|
8
|
+
.text-2xl { font-size: 1.5rem; line-height: 2rem; }
|
|
9
|
+
.text-xl { font-size: 1.25rem; line-height: 1.75rem; }
|
|
10
|
+
.text-lg { font-size: 1.125rem; line-height: 1.75rem; }
|
|
11
|
+
|
|
12
|
+
.font-bold { font-weight: 700; }
|
|
13
|
+
.font-semibold { font-weight: 600; }
|
|
14
|
+
.font-medium { font-weight: 500; }
|
|
15
|
+
.italic { font-style: italic; }
|
|
16
|
+
.underline { text-decoration-line: underline; }
|
|
17
|
+
|
|
18
|
+
/* Essential spacing */
|
|
19
|
+
.mt-8 { margin-top: 2rem; }
|
|
20
|
+
.mt-6 { margin-top: 1.5rem; }
|
|
21
|
+
.mb-4 { margin-bottom: 1rem; }
|
|
22
|
+
.mb-3 { margin-bottom: 0.75rem; }
|
|
23
|
+
.leading-7 { line-height: 1.75rem; }
|
|
24
|
+
|
|
25
|
+
/* Essential layout */
|
|
26
|
+
.flex { display: flex; }
|
|
27
|
+
.items-center { align-items: center; }
|
|
28
|
+
.gap-2 { gap: 0.5rem; }
|
|
29
|
+
|
|
30
|
+
/* Essential borders */
|
|
31
|
+
.border-l-2 { border-left-width: 2px; }
|
|
32
|
+
.rounded-lg { border-radius: 0.5rem; }
|
|
33
|
+
}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Main CSS file for Tailwind v4 import
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
@layer utilities {
|
|
6
|
+
/* Core typography classes that markdown components use */
|
|
7
|
+
.text-3xl { font-size: 1.875rem; line-height: 2.25rem; }
|
|
8
|
+
.text-2xl { font-size: 1.5rem; line-height: 2rem; }
|
|
9
|
+
.text-xl { font-size: 1.25rem; line-height: 1.75rem; }
|
|
10
|
+
.text-lg { font-size: 1.125rem; line-height: 1.75rem; }
|
|
11
|
+
.text-base { font-size: 1rem; line-height: 1.5rem; }
|
|
12
|
+
.text-sm { font-size: 0.875rem; line-height: 1.25rem; }
|
|
13
|
+
|
|
14
|
+
.font-bold { font-weight: 700; }
|
|
15
|
+
.font-semibold { font-weight: 600; }
|
|
16
|
+
.font-medium { font-weight: 500; }
|
|
17
|
+
.italic { font-style: italic; }
|
|
18
|
+
.underline { text-decoration-line: underline; }
|
|
19
|
+
.line-through { text-decoration-line: line-through; }
|
|
20
|
+
|
|
21
|
+
/* Spacing utilities */
|
|
22
|
+
.mt-8 { margin-top: 2rem; }
|
|
23
|
+
.mt-6 { margin-top: 1.5rem; }
|
|
24
|
+
.mt-5 { margin-top: 1.25rem; }
|
|
25
|
+
.mt-4 { margin-top: 1rem; }
|
|
26
|
+
.mt-3 { margin-top: 0.75rem; }
|
|
27
|
+
.mb-6 { margin-bottom: 1.5rem; }
|
|
28
|
+
.mb-4 { margin-bottom: 1rem; }
|
|
29
|
+
.mb-3 { margin-bottom: 0.75rem; }
|
|
30
|
+
.mb-2 { margin-bottom: 0.5rem; }
|
|
31
|
+
.my-6 { margin-top: 1.5rem; margin-bottom: 1.5rem; }
|
|
32
|
+
.my-4 { margin-top: 1rem; margin-bottom: 1rem; }
|
|
33
|
+
|
|
34
|
+
.p-4 { padding: 1rem; }
|
|
35
|
+
.p-6 { padding: 1.5rem; }
|
|
36
|
+
.px-1\.5 { padding-left: 0.375rem; padding-right: 0.375rem; }
|
|
37
|
+
.px-2 { padding-left: 0.5rem; padding-right: 0.5rem; }
|
|
38
|
+
.px-3 { padding-left: 0.75rem; padding-right: 0.75rem; }
|
|
39
|
+
.px-4 { padding-left: 1rem; padding-right: 1rem; }
|
|
40
|
+
.py-0\.5 { padding-top: 0.125rem; padding-bottom: 0.125rem; }
|
|
41
|
+
.py-1 { padding-top: 0.25rem; padding-bottom: 0.25rem; }
|
|
42
|
+
.py-2 { padding-top: 0.5rem; padding-bottom: 0.5rem; }
|
|
43
|
+
.pl-4 { padding-left: 1rem; }
|
|
44
|
+
.pl-6 { padding-left: 1.5rem; }
|
|
45
|
+
|
|
46
|
+
/* Layout utilities */
|
|
47
|
+
.flex { display: flex; }
|
|
48
|
+
.inline-flex { display: inline-flex; }
|
|
49
|
+
.items-center { align-items: center; }
|
|
50
|
+
.justify-center { justify-content: center; }
|
|
51
|
+
.gap-2 { gap: 0.5rem; }
|
|
52
|
+
.space-y-1 > :not([hidden]) ~ :not([hidden]) { margin-top: 0.25rem; }
|
|
53
|
+
|
|
54
|
+
/* List utilities */
|
|
55
|
+
.list-disc { list-style-type: disc; }
|
|
56
|
+
.list-inside { list-style-position: inside; }
|
|
57
|
+
.ml-4 { margin-left: 1rem; }
|
|
58
|
+
|
|
59
|
+
/* Border and background utilities */
|
|
60
|
+
.border-l-2 { border-left-width: 2px; }
|
|
61
|
+
.border-l-4 { border-left-width: 4px; }
|
|
62
|
+
.rounded { border-radius: 0.25rem; }
|
|
63
|
+
.rounded-lg { border-radius: 0.5rem; }
|
|
64
|
+
.rounded-md { border-radius: 0.375rem; }
|
|
65
|
+
.bg-muted { background-color: color-mix(in srgb, currentColor 8%, transparent); }
|
|
66
|
+
|
|
67
|
+
/* Image utilities */
|
|
68
|
+
.max-w-full { max-width: 100%; }
|
|
69
|
+
.h-auto { height: auto; }
|
|
70
|
+
.overflow-x-auto { overflow-x: auto; }
|
|
71
|
+
|
|
72
|
+
/* Interaction utilities */
|
|
73
|
+
.hover\:underline:hover { text-decoration-line: underline; }
|
|
74
|
+
.transition-all { transition-property: all; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
|
|
75
|
+
.duration-200 { transition-duration: 200ms; }
|
|
76
|
+
.cursor-pointer { cursor: pointer; }
|
|
77
|
+
|
|
78
|
+
/* Leading utilities */
|
|
79
|
+
.leading-7 { line-height: 1.75rem; }
|
|
80
|
+
.leading-relaxed { line-height: 1.625; }
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
@layer components {
|
|
84
|
+
/* Alert components */
|
|
85
|
+
.changerawr-alert {
|
|
86
|
+
@apply border-l-4 p-4 mb-4 rounded-md transition-all duration-200;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.changerawr-alert-info {
|
|
90
|
+
background-color: color-mix(in srgb, #3b82f6 10%, transparent);
|
|
91
|
+
border-color: color-mix(in srgb, #3b82f6 30%, transparent);
|
|
92
|
+
color: #3b82f6;
|
|
93
|
+
border-left-color: #3b82f6;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.changerawr-alert-warning {
|
|
97
|
+
background-color: color-mix(in srgb, #f59e0b 10%, transparent);
|
|
98
|
+
border-color: color-mix(in srgb, #f59e0b 30%, transparent);
|
|
99
|
+
color: #f59e0b;
|
|
100
|
+
border-left-color: #f59e0b;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
.changerawr-alert-error {
|
|
104
|
+
background-color: color-mix(in srgb, #ef4444 10%, transparent);
|
|
105
|
+
border-color: color-mix(in srgb, #ef4444 30%, transparent);
|
|
106
|
+
color: #ef4444;
|
|
107
|
+
border-left-color: #ef4444;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.changerawr-alert-success {
|
|
111
|
+
background-color: color-mix(in srgb, #10b981 10%, transparent);
|
|
112
|
+
border-color: color-mix(in srgb, #10b981 30%, transparent);
|
|
113
|
+
color: #10b981;
|
|
114
|
+
border-left-color: #10b981;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/* Button components */
|
|
118
|
+
.changerawr-button {
|
|
119
|
+
@apply inline-flex items-center justify-center px-4 py-2 rounded-lg transition-all duration-200 cursor-pointer;
|
|
120
|
+
border: 1px solid transparent;
|
|
121
|
+
font-weight: 500;
|
|
122
|
+
text-decoration: none;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.changerawr-button-primary {
|
|
126
|
+
background-color: #3b82f6;
|
|
127
|
+
color: white;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
.changerawr-button-primary:hover:not(:disabled) {
|
|
131
|
+
background-color: color-mix(in srgb, #3b82f6 90%, black);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
/* Dark mode variants */
|
|
136
|
+
@media (prefers-color-scheme: dark) {
|
|
137
|
+
.changerawr-alert-info {
|
|
138
|
+
color: #60a5fa;
|
|
139
|
+
background-color: color-mix(in srgb, #3b82f6 20%, transparent);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
.changerawr-alert-warning {
|
|
143
|
+
color: #fbbf24;
|
|
144
|
+
background-color: color-mix(in srgb, #f59e0b 20%, transparent);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
.changerawr-alert-error {
|
|
148
|
+
color: #f87171;
|
|
149
|
+
background-color: color-mix(in srgb, #ef4444 20%, transparent);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
.changerawr-alert-success {
|
|
153
|
+
color: #34d399;
|
|
154
|
+
background-color: color-mix(in srgb, #10b981 20%, transparent);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
@@ -1,30 +1,17 @@
|
|
|
1
1
|
import * as node_modules_tailwindcss_dist_types_B254mqw1_d_mts from 'node_modules/tailwindcss/dist/types-B254mqw1.d.mts';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* Tailwind CSS plugin for @changerawr/markdown
|
|
5
|
-
*
|
|
4
|
+
* Tailwind CSS safelist plugin for @changerawr/markdown
|
|
5
|
+
*
|
|
6
|
+
* This plugin ensures standard Tailwind classes used by markdown rendering
|
|
7
|
+
* are included in the final CSS build and not purged.
|
|
8
|
+
*
|
|
6
9
|
*/
|
|
7
10
|
interface ChangerawrMarkdownPluginOptions {
|
|
8
|
-
/**
|
|
9
|
-
|
|
11
|
+
/** Whether to include extension classes for alerts and buttons (default: true) */
|
|
12
|
+
includeExtensions?: boolean;
|
|
10
13
|
/** Whether to include dark mode variants (default: true) */
|
|
11
14
|
darkMode?: boolean;
|
|
12
|
-
/** Custom color palette */
|
|
13
|
-
colors?: {
|
|
14
|
-
primary?: string;
|
|
15
|
-
secondary?: string;
|
|
16
|
-
accent?: string;
|
|
17
|
-
info?: string;
|
|
18
|
-
warning?: string;
|
|
19
|
-
error?: string;
|
|
20
|
-
success?: string;
|
|
21
|
-
muted?: string;
|
|
22
|
-
border?: string;
|
|
23
|
-
};
|
|
24
|
-
/** Whether to include extension styles (alerts, buttons, etc.) */
|
|
25
|
-
includeExtensions?: boolean;
|
|
26
|
-
/** Custom class overrides */
|
|
27
|
-
customClasses?: Record<string, string>;
|
|
28
15
|
}
|
|
29
16
|
declare const changerawrMarkdownPlugin: node_modules_tailwindcss_dist_types_B254mqw1_d_mts.c<ChangerawrMarkdownPluginOptions>;
|
|
30
17
|
|
package/dist/tailwind/index.d.ts
CHANGED
|
@@ -1,30 +1,17 @@
|
|
|
1
1
|
import * as node_modules_tailwindcss_dist_types_B254mqw1_d_mts from 'node_modules/tailwindcss/dist/types-B254mqw1.d.mts';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* Tailwind CSS plugin for @changerawr/markdown
|
|
5
|
-
*
|
|
4
|
+
* Tailwind CSS safelist plugin for @changerawr/markdown
|
|
5
|
+
*
|
|
6
|
+
* This plugin ensures standard Tailwind classes used by markdown rendering
|
|
7
|
+
* are included in the final CSS build and not purged.
|
|
8
|
+
*
|
|
6
9
|
*/
|
|
7
10
|
interface ChangerawrMarkdownPluginOptions {
|
|
8
|
-
/**
|
|
9
|
-
|
|
11
|
+
/** Whether to include extension classes for alerts and buttons (default: true) */
|
|
12
|
+
includeExtensions?: boolean;
|
|
10
13
|
/** Whether to include dark mode variants (default: true) */
|
|
11
14
|
darkMode?: boolean;
|
|
12
|
-
/** Custom color palette */
|
|
13
|
-
colors?: {
|
|
14
|
-
primary?: string;
|
|
15
|
-
secondary?: string;
|
|
16
|
-
accent?: string;
|
|
17
|
-
info?: string;
|
|
18
|
-
warning?: string;
|
|
19
|
-
error?: string;
|
|
20
|
-
success?: string;
|
|
21
|
-
muted?: string;
|
|
22
|
-
border?: string;
|
|
23
|
-
};
|
|
24
|
-
/** Whether to include extension styles (alerts, buttons, etc.) */
|
|
25
|
-
includeExtensions?: boolean;
|
|
26
|
-
/** Custom class overrides */
|
|
27
|
-
customClasses?: Record<string, string>;
|
|
28
15
|
}
|
|
29
16
|
declare const changerawrMarkdownPlugin: node_modules_tailwindcss_dist_types_B254mqw1_d_mts.c<ChangerawrMarkdownPluginOptions>;
|
|
30
17
|
|
package/dist/tailwind/index.js
CHANGED
|
@@ -37,293 +37,125 @@ module.exports = __toCommonJS(index_exports);
|
|
|
37
37
|
|
|
38
38
|
// src/tailwind/plugin.ts
|
|
39
39
|
var import_plugin = __toESM(require("tailwindcss/plugin"));
|
|
40
|
-
var
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
40
|
+
var CORE_CLASSES = [
|
|
41
|
+
// Typography
|
|
42
|
+
"text-3xl",
|
|
43
|
+
"text-2xl",
|
|
44
|
+
"text-xl",
|
|
45
|
+
"text-lg",
|
|
46
|
+
"text-base",
|
|
47
|
+
"text-sm",
|
|
48
|
+
"font-bold",
|
|
49
|
+
"font-semibold",
|
|
50
|
+
"font-medium",
|
|
51
|
+
"italic",
|
|
52
|
+
"underline",
|
|
53
|
+
"line-through",
|
|
54
|
+
"leading-7",
|
|
55
|
+
"leading-relaxed",
|
|
56
|
+
// Spacing
|
|
57
|
+
"mt-8",
|
|
58
|
+
"mt-6",
|
|
59
|
+
"mt-5",
|
|
60
|
+
"mt-4",
|
|
61
|
+
"mt-3",
|
|
62
|
+
"mb-6",
|
|
63
|
+
"mb-4",
|
|
64
|
+
"mb-3",
|
|
65
|
+
"mb-2",
|
|
66
|
+
"my-6",
|
|
67
|
+
"my-4",
|
|
68
|
+
"p-4",
|
|
69
|
+
"p-6",
|
|
70
|
+
"px-1.5",
|
|
71
|
+
"px-2",
|
|
72
|
+
"px-3",
|
|
73
|
+
"px-4",
|
|
74
|
+
"py-0.5",
|
|
75
|
+
"py-1",
|
|
76
|
+
"py-2",
|
|
77
|
+
"pl-4",
|
|
78
|
+
"pl-6",
|
|
79
|
+
// Layout
|
|
80
|
+
"flex",
|
|
81
|
+
"inline-flex",
|
|
82
|
+
"items-center",
|
|
83
|
+
"justify-center",
|
|
84
|
+
"gap-2",
|
|
85
|
+
"space-y-1",
|
|
86
|
+
"list-disc",
|
|
87
|
+
"list-inside",
|
|
88
|
+
"ml-4",
|
|
89
|
+
// Borders and backgrounds
|
|
90
|
+
"border-l-2",
|
|
91
|
+
"border-l-4",
|
|
92
|
+
"rounded",
|
|
93
|
+
"rounded-lg",
|
|
94
|
+
"rounded-md",
|
|
95
|
+
"bg-muted",
|
|
96
|
+
// Images
|
|
97
|
+
"max-w-full",
|
|
98
|
+
"h-auto",
|
|
99
|
+
"overflow-x-auto",
|
|
100
|
+
// Interactions
|
|
101
|
+
"hover:underline",
|
|
102
|
+
"transition-all",
|
|
103
|
+
"duration-200",
|
|
104
|
+
"cursor-pointer"
|
|
105
|
+
];
|
|
106
|
+
var EXTENSION_CLASSES = [
|
|
107
|
+
// Alert colors (using opacity syntax)
|
|
108
|
+
"bg-blue-500/10",
|
|
109
|
+
"border-blue-500/30",
|
|
110
|
+
"text-blue-600",
|
|
111
|
+
"border-l-blue-500",
|
|
112
|
+
"bg-amber-500/10",
|
|
113
|
+
"border-amber-500/30",
|
|
114
|
+
"text-amber-600",
|
|
115
|
+
"border-l-amber-500",
|
|
116
|
+
"bg-red-500/10",
|
|
117
|
+
"border-red-500/30",
|
|
118
|
+
"text-red-600",
|
|
119
|
+
"border-l-red-500",
|
|
120
|
+
"bg-green-500/10",
|
|
121
|
+
"border-green-500/30",
|
|
122
|
+
"text-green-600",
|
|
123
|
+
"border-l-green-500",
|
|
124
|
+
// Button variants
|
|
125
|
+
"bg-blue-600",
|
|
126
|
+
"text-white",
|
|
127
|
+
"hover:bg-blue-700",
|
|
128
|
+
"bg-gray-200",
|
|
129
|
+
"text-gray-900",
|
|
130
|
+
"hover:bg-gray-300"
|
|
131
|
+
];
|
|
132
|
+
var DARK_MODE_CLASSES = [
|
|
133
|
+
"dark:text-blue-400",
|
|
134
|
+
"dark:text-amber-400",
|
|
135
|
+
"dark:text-red-400",
|
|
136
|
+
"dark:text-green-400",
|
|
137
|
+
"dark:bg-gray-800",
|
|
138
|
+
"dark:text-gray-100"
|
|
139
|
+
];
|
|
51
140
|
var changerawrMarkdownPlugin = import_plugin.default.withOptions(
|
|
52
|
-
(options = {}) => ({ addUtilities
|
|
53
|
-
const {
|
|
54
|
-
|
|
55
|
-
darkMode = true,
|
|
56
|
-
colors = {},
|
|
57
|
-
includeExtensions = true,
|
|
58
|
-
customClasses = {}
|
|
59
|
-
} = options;
|
|
60
|
-
const mergedColors = { ...defaultColors, ...colors };
|
|
61
|
-
const prefixClass = (className) => prefix ? `${prefix}-${className}` : className;
|
|
62
|
-
addUtilities({
|
|
63
|
-
// Essential typography classes for markdown
|
|
64
|
-
[`.${prefixClass("changerawr-text-3xl")}`]: {
|
|
65
|
-
fontSize: "1.875rem",
|
|
66
|
-
lineHeight: "2.25rem"
|
|
67
|
-
},
|
|
68
|
-
[`.${prefixClass("changerawr-text-2xl")}`]: {
|
|
69
|
-
fontSize: "1.5rem",
|
|
70
|
-
lineHeight: "2rem"
|
|
71
|
-
},
|
|
72
|
-
[`.${prefixClass("changerawr-text-xl")}`]: {
|
|
73
|
-
fontSize: "1.25rem",
|
|
74
|
-
lineHeight: "1.75rem"
|
|
75
|
-
},
|
|
76
|
-
[`.${prefixClass("changerawr-text-lg")}`]: {
|
|
77
|
-
fontSize: "1.125rem",
|
|
78
|
-
lineHeight: "1.75rem"
|
|
79
|
-
},
|
|
80
|
-
[`.${prefixClass("changerawr-font-bold")}`]: {
|
|
81
|
-
fontWeight: "700"
|
|
82
|
-
},
|
|
83
|
-
[`.${prefixClass("changerawr-font-semibold")}`]: {
|
|
84
|
-
fontWeight: "600"
|
|
85
|
-
},
|
|
86
|
-
[`.${prefixClass("changerawr-font-medium")}`]: {
|
|
87
|
-
fontWeight: "500"
|
|
88
|
-
},
|
|
89
|
-
[`.${prefixClass("changerawr-italic")}`]: {
|
|
90
|
-
fontStyle: "italic"
|
|
91
|
-
},
|
|
92
|
-
[`.${prefixClass("changerawr-underline")}`]: {
|
|
93
|
-
textDecoration: "underline"
|
|
94
|
-
},
|
|
95
|
-
[`.${prefixClass("changerawr-line-through")}`]: {
|
|
96
|
-
textDecoration: "line-through"
|
|
97
|
-
},
|
|
98
|
-
// Spacing utilities
|
|
99
|
-
[`.${prefixClass("changerawr-mt-8")}`]: { marginTop: "2rem" },
|
|
100
|
-
[`.${prefixClass("changerawr-mt-6")}`]: { marginTop: "1.5rem" },
|
|
101
|
-
[`.${prefixClass("changerawr-mt-5")}`]: { marginTop: "1.25rem" },
|
|
102
|
-
[`.${prefixClass("changerawr-mt-4")}`]: { marginTop: "1rem" },
|
|
103
|
-
[`.${prefixClass("changerawr-mt-3")}`]: { marginTop: "0.75rem" },
|
|
104
|
-
[`.${prefixClass("changerawr-mb-8")}`]: { marginBottom: "2rem" },
|
|
105
|
-
[`.${prefixClass("changerawr-mb-6")}`]: { marginBottom: "1.5rem" },
|
|
106
|
-
[`.${prefixClass("changerawr-mb-4")}`]: { marginBottom: "1rem" },
|
|
107
|
-
[`.${prefixClass("changerawr-mb-3")}`]: { marginBottom: "0.75rem" },
|
|
108
|
-
[`.${prefixClass("changerawr-mb-2")}`]: { marginBottom: "0.5rem" },
|
|
109
|
-
[`.${prefixClass("changerawr-my-6")}`]: { marginTop: "1.5rem", marginBottom: "1.5rem" },
|
|
110
|
-
[`.${prefixClass("changerawr-my-4")}`]: { marginTop: "1rem", marginBottom: "1rem" },
|
|
111
|
-
[`.${prefixClass("changerawr-my-2")}`]: { marginTop: "0.5rem", marginBottom: "0.5rem" },
|
|
112
|
-
// Padding utilities
|
|
113
|
-
[`.${prefixClass("changerawr-p-4")}`]: { padding: "1rem" },
|
|
114
|
-
[`.${prefixClass("changerawr-p-6")}`]: { padding: "1.5rem" },
|
|
115
|
-
[`.${prefixClass("changerawr-px-2")}`]: { paddingLeft: "0.5rem", paddingRight: "0.5rem" },
|
|
116
|
-
[`.${prefixClass("changerawr-px-3")}`]: { paddingLeft: "0.75rem", paddingRight: "0.75rem" },
|
|
117
|
-
[`.${prefixClass("changerawr-px-4")}`]: { paddingLeft: "1rem", paddingRight: "1rem" },
|
|
118
|
-
[`.${prefixClass("changerawr-px-6")}`]: { paddingLeft: "1.5rem", paddingRight: "1.5rem" },
|
|
119
|
-
[`.${prefixClass("changerawr-py-1")}`]: { paddingTop: "0.25rem", paddingBottom: "0.25rem" },
|
|
120
|
-
[`.${prefixClass("changerawr-py-2")}`]: { paddingTop: "0.5rem", paddingBottom: "0.5rem" },
|
|
121
|
-
[`.${prefixClass("changerawr-py-3")}`]: { paddingTop: "0.75rem", paddingBottom: "0.75rem" },
|
|
122
|
-
[`.${prefixClass("changerawr-pl-4")}`]: { paddingLeft: "1rem" },
|
|
123
|
-
[`.${prefixClass("changerawr-pl-6")}`]: { paddingLeft: "1.5rem" },
|
|
124
|
-
// Line height and leading
|
|
125
|
-
[`.${prefixClass("changerawr-leading-7")}`]: { lineHeight: "1.75rem" },
|
|
126
|
-
[`.${prefixClass("changerawr-leading-relaxed")}`]: { lineHeight: "1.625" },
|
|
127
|
-
[`.${prefixClass("changerawr-leading-loose")}`]: { lineHeight: "2" },
|
|
128
|
-
// Layout utilities
|
|
129
|
-
[`.${prefixClass("changerawr-flex")}`]: { display: "flex" },
|
|
130
|
-
[`.${prefixClass("changerawr-inline-flex")}`]: { display: "inline-flex" },
|
|
131
|
-
[`.${prefixClass("changerawr-items-center")}`]: { alignItems: "center" },
|
|
132
|
-
[`.${prefixClass("changerawr-justify-center")}`]: { justifyContent: "center" },
|
|
133
|
-
[`.${prefixClass("changerawr-gap-1")}`]: { gap: "0.25rem" },
|
|
134
|
-
[`.${prefixClass("changerawr-gap-2")}`]: { gap: "0.5rem" },
|
|
135
|
-
[`.${prefixClass("changerawr-gap-3")}`]: { gap: "0.75rem" },
|
|
136
|
-
[`.${prefixClass("changerawr-group")}`]: {
|
|
137
|
-
/* group parent */
|
|
138
|
-
},
|
|
139
|
-
[`.${prefixClass("changerawr-relative")}`]: { position: "relative" },
|
|
140
|
-
// Border utilities
|
|
141
|
-
[`.${prefixClass("changerawr-border")}`]: { borderWidth: "1px" },
|
|
142
|
-
[`.${prefixClass("changerawr-border-l-2")}`]: { borderLeftWidth: "2px" },
|
|
143
|
-
[`.${prefixClass("changerawr-border-l-4")}`]: { borderLeftWidth: "4px" },
|
|
144
|
-
[`.${prefixClass("changerawr-rounded")}`]: { borderRadius: "0.25rem" },
|
|
145
|
-
[`.${prefixClass("changerawr-rounded-lg")}`]: { borderRadius: "0.5rem" },
|
|
146
|
-
[`.${prefixClass("changerawr-rounded-md")}`]: { borderRadius: "0.375rem" },
|
|
147
|
-
// Background utilities
|
|
148
|
-
[`.${prefixClass("changerawr-bg-gray-50")}`]: { backgroundColor: "#f9fafb" },
|
|
149
|
-
[`.${prefixClass("changerawr-bg-gray-100")}`]: { backgroundColor: "#f3f4f6" },
|
|
150
|
-
[`.${prefixClass("changerawr-bg-gray-900")}`]: { backgroundColor: "#111827" },
|
|
151
|
-
[`.${prefixClass("changerawr-bg-white")}`]: { backgroundColor: "#ffffff" },
|
|
152
|
-
// Text colors
|
|
153
|
-
[`.${prefixClass("changerawr-text-gray-100")}`]: { color: "#f3f4f6" },
|
|
154
|
-
[`.${prefixClass("changerawr-text-gray-600")}`]: { color: "#4b5563" },
|
|
155
|
-
[`.${prefixClass("changerawr-text-gray-700")}`]: { color: "#374151" },
|
|
156
|
-
[`.${prefixClass("changerawr-text-gray-800")}`]: { color: "#1f2937" },
|
|
157
|
-
[`.${prefixClass("changerawr-text-primary")}`]: { color: mergedColors.primary },
|
|
158
|
-
[`.${prefixClass("changerawr-text-muted-foreground")}`]: { color: mergedColors.muted },
|
|
159
|
-
// Border colors
|
|
160
|
-
[`.${prefixClass("changerawr-border-border")}`]: { borderColor: mergedColors.border },
|
|
161
|
-
// Display utilities
|
|
162
|
-
[`.${prefixClass("changerawr-overflow-x-auto")}`]: { overflowX: "auto" },
|
|
163
|
-
[`.${prefixClass("changerawr-max-w-full")}`]: { maxWidth: "100%" },
|
|
164
|
-
[`.${prefixClass("changerawr-h-auto")}`]: { height: "auto" },
|
|
165
|
-
[`.${prefixClass("changerawr-font-mono")}`]: {
|
|
166
|
-
fontFamily: 'ui-monospace, SFMono-Regular, "SF Mono", Monaco, Consolas, "Liberation Mono", "Courier New", monospace'
|
|
167
|
-
},
|
|
168
|
-
// Opacity and transitions
|
|
169
|
-
[`.${prefixClass("changerawr-opacity-0")}`]: { opacity: "0" },
|
|
170
|
-
[`.${prefixClass("changerawr-transition-opacity")}`]: {
|
|
171
|
-
transitionProperty: "opacity",
|
|
172
|
-
transitionTimingFunction: "cubic-bezier(0.4, 0, 0.2, 1)",
|
|
173
|
-
transitionDuration: "150ms"
|
|
174
|
-
},
|
|
175
|
-
[`.${prefixClass("changerawr-transition-colors")}`]: {
|
|
176
|
-
transitionProperty: "color, background-color, border-color, text-decoration-color, fill, stroke",
|
|
177
|
-
transitionTimingFunction: "cubic-bezier(0.4, 0, 0.2, 1)",
|
|
178
|
-
transitionDuration: "150ms"
|
|
179
|
-
},
|
|
180
|
-
// Hover states
|
|
181
|
-
[`.${prefixClass("changerawr-hover\\:underline")}:hover`]: { textDecoration: "underline" },
|
|
182
|
-
[`.group:hover .${prefixClass("changerawr-group-hover\\:opacity-100")}`]: { opacity: "1" },
|
|
183
|
-
// Shadow utilities
|
|
184
|
-
[`.${prefixClass("changerawr-shadow-sm")}`]: {
|
|
185
|
-
boxShadow: "0 1px 2px 0 rgb(0 0 0 / 0.05)"
|
|
186
|
-
},
|
|
187
|
-
// Custom markdown classes with overrides
|
|
188
|
-
...Object.fromEntries(
|
|
189
|
-
Object.entries(customClasses).map(([key, value]) => [
|
|
190
|
-
`.${prefixClass(`changerawr-${key}`)}`,
|
|
191
|
-
typeof value === "string" ? { className: value } : value
|
|
192
|
-
])
|
|
193
|
-
)
|
|
194
|
-
});
|
|
141
|
+
(options = {}) => ({ addUtilities }) => {
|
|
142
|
+
const { includeExtensions = true, darkMode = true } = options;
|
|
143
|
+
let allClasses = [...CORE_CLASSES];
|
|
195
144
|
if (includeExtensions) {
|
|
196
|
-
|
|
197
|
-
// Alert base styles
|
|
198
|
-
[`.${prefixClass("changerawr-alert")}`]: {
|
|
199
|
-
borderLeftWidth: "4px",
|
|
200
|
-
padding: "1rem",
|
|
201
|
-
marginBottom: "1rem",
|
|
202
|
-
borderRadius: "0.375rem",
|
|
203
|
-
transitionProperty: "color, background-color, border-color",
|
|
204
|
-
transitionTimingFunction: "cubic-bezier(0.4, 0, 0.2, 1)",
|
|
205
|
-
transitionDuration: "200ms"
|
|
206
|
-
},
|
|
207
|
-
// Alert variants using opacity for compatibility
|
|
208
|
-
[`.${prefixClass("changerawr-alert-info")}`]: {
|
|
209
|
-
backgroundColor: `color-mix(in srgb, ${mergedColors.info} 10%, transparent)`,
|
|
210
|
-
borderColor: `color-mix(in srgb, ${mergedColors.info} 30%, transparent)`,
|
|
211
|
-
color: mergedColors.info
|
|
212
|
-
},
|
|
213
|
-
[`.${prefixClass("changerawr-alert-warning")}`]: {
|
|
214
|
-
backgroundColor: `color-mix(in srgb, ${mergedColors.warning} 10%, transparent)`,
|
|
215
|
-
borderColor: `color-mix(in srgb, ${mergedColors.warning} 30%, transparent)`,
|
|
216
|
-
color: mergedColors.warning
|
|
217
|
-
},
|
|
218
|
-
[`.${prefixClass("changerawr-alert-error")}`]: {
|
|
219
|
-
backgroundColor: `color-mix(in srgb, ${mergedColors.error} 10%, transparent)`,
|
|
220
|
-
borderColor: `color-mix(in srgb, ${mergedColors.error} 30%, transparent)`,
|
|
221
|
-
color: mergedColors.error
|
|
222
|
-
},
|
|
223
|
-
[`.${prefixClass("changerawr-alert-success")}`]: {
|
|
224
|
-
backgroundColor: `color-mix(in srgb, ${mergedColors.success} 10%, transparent)`,
|
|
225
|
-
borderColor: `color-mix(in srgb, ${mergedColors.success} 30%, transparent)`,
|
|
226
|
-
color: mergedColors.success
|
|
227
|
-
},
|
|
228
|
-
// Button base styles
|
|
229
|
-
[`.${prefixClass("changerawr-button")}`]: {
|
|
230
|
-
display: "inline-flex",
|
|
231
|
-
alignItems: "center",
|
|
232
|
-
justifyContent: "center",
|
|
233
|
-
borderRadius: "0.5rem",
|
|
234
|
-
fontWeight: "500",
|
|
235
|
-
transitionProperty: "all",
|
|
236
|
-
transitionTimingFunction: "cubic-bezier(0.4, 0, 0.2, 1)",
|
|
237
|
-
transitionDuration: "150ms",
|
|
238
|
-
border: "1px solid transparent",
|
|
239
|
-
cursor: "pointer",
|
|
240
|
-
textDecoration: "none",
|
|
241
|
-
"&:focus": {
|
|
242
|
-
outline: "none",
|
|
243
|
-
ringWidth: "2px",
|
|
244
|
-
ringOffsetWidth: "2px"
|
|
245
|
-
},
|
|
246
|
-
"&:disabled": {
|
|
247
|
-
opacity: "0.5",
|
|
248
|
-
cursor: "not-allowed"
|
|
249
|
-
}
|
|
250
|
-
},
|
|
251
|
-
// Button variants
|
|
252
|
-
[`.${prefixClass("changerawr-button-primary")}`]: {
|
|
253
|
-
backgroundColor: mergedColors.primary,
|
|
254
|
-
color: "#ffffff",
|
|
255
|
-
"&:hover:not(:disabled)": {
|
|
256
|
-
backgroundColor: `color-mix(in srgb, ${mergedColors.primary} 90%, black)`
|
|
257
|
-
},
|
|
258
|
-
"&:focus": {
|
|
259
|
-
ringColor: `color-mix(in srgb, ${mergedColors.primary} 50%, transparent)`
|
|
260
|
-
}
|
|
261
|
-
},
|
|
262
|
-
[`.${prefixClass("changerawr-button-secondary")}`]: {
|
|
263
|
-
backgroundColor: mergedColors.secondary,
|
|
264
|
-
color: "#ffffff",
|
|
265
|
-
"&:hover:not(:disabled)": {
|
|
266
|
-
backgroundColor: `color-mix(in srgb, ${mergedColors.secondary} 90%, black)`
|
|
267
|
-
},
|
|
268
|
-
"&:focus": {
|
|
269
|
-
ringColor: `color-mix(in srgb, ${mergedColors.secondary} 50%, transparent)`
|
|
270
|
-
}
|
|
271
|
-
},
|
|
272
|
-
[`.${prefixClass("changerawr-button-outline")}`]: {
|
|
273
|
-
borderColor: mergedColors.primary,
|
|
274
|
-
color: mergedColors.primary,
|
|
275
|
-
"&:hover:not(:disabled)": {
|
|
276
|
-
backgroundColor: `color-mix(in srgb, ${mergedColors.primary} 5%, transparent)`
|
|
277
|
-
}
|
|
278
|
-
},
|
|
279
|
-
[`.${prefixClass("changerawr-button-ghost")}`]: {
|
|
280
|
-
color: mergedColors.secondary,
|
|
281
|
-
"&:hover:not(:disabled)": {
|
|
282
|
-
backgroundColor: `color-mix(in srgb, ${mergedColors.secondary} 10%, transparent)`
|
|
283
|
-
}
|
|
284
|
-
},
|
|
285
|
-
// Button sizes
|
|
286
|
-
[`.${prefixClass("changerawr-button-sm")}`]: {
|
|
287
|
-
paddingLeft: "0.75rem",
|
|
288
|
-
paddingRight: "0.75rem",
|
|
289
|
-
paddingTop: "0.375rem",
|
|
290
|
-
paddingBottom: "0.375rem",
|
|
291
|
-
fontSize: "0.875rem"
|
|
292
|
-
},
|
|
293
|
-
[`.${prefixClass("changerawr-button-md")}`]: {
|
|
294
|
-
paddingLeft: "1rem",
|
|
295
|
-
paddingRight: "1rem",
|
|
296
|
-
paddingTop: "0.5rem",
|
|
297
|
-
paddingBottom: "0.5rem",
|
|
298
|
-
fontSize: "0.875rem"
|
|
299
|
-
},
|
|
300
|
-
[`.${prefixClass("changerawr-button-lg")}`]: {
|
|
301
|
-
paddingLeft: "1.5rem",
|
|
302
|
-
paddingRight: "1.5rem",
|
|
303
|
-
paddingTop: "0.75rem",
|
|
304
|
-
paddingBottom: "0.75rem",
|
|
305
|
-
fontSize: "1rem"
|
|
306
|
-
},
|
|
307
|
-
// Embed styles
|
|
308
|
-
[`.${prefixClass("changerawr-embed")}`]: {
|
|
309
|
-
borderRadius: "0.5rem",
|
|
310
|
-
border: "1px solid",
|
|
311
|
-
borderColor: mergedColors.border,
|
|
312
|
-
backgroundColor: "#ffffff",
|
|
313
|
-
boxShadow: "0 1px 2px 0 rgb(0 0 0 / 0.05)",
|
|
314
|
-
marginBottom: "1.5rem",
|
|
315
|
-
overflow: "hidden"
|
|
316
|
-
}
|
|
317
|
-
});
|
|
145
|
+
allClasses.push(...EXTENSION_CLASSES);
|
|
318
146
|
}
|
|
319
147
|
if (darkMode) {
|
|
320
|
-
|
|
321
|
-
[`.dark .${prefixClass("changerawr-dark\\:bg-gray-800")}`]: { backgroundColor: "#1f2937" },
|
|
322
|
-
[`.dark .${prefixClass("changerawr-dark\\:text-gray-100")}`]: { color: "#f3f4f6" },
|
|
323
|
-
[`.dark .${prefixClass("changerawr-dark\\:text-gray-300")}`]: { color: "#d1d5db" },
|
|
324
|
-
[`.dark .${prefixClass("changerawr-dark\\:border-gray-600")}`]: { borderColor: "#4b5563" }
|
|
325
|
-
});
|
|
148
|
+
allClasses.push(...DARK_MODE_CLASSES);
|
|
326
149
|
}
|
|
150
|
+
const preserveRules = allClasses.reduce((acc, className) => {
|
|
151
|
+
const safeClassName = className.replace(/[^a-zA-Z0-9]/g, "-");
|
|
152
|
+
acc[`.changerawr-preserve-${safeClassName}`] = {
|
|
153
|
+
// Use CSS custom properties to reference the class without creating actual styles
|
|
154
|
+
"--tw-preserve": `"${className}"`
|
|
155
|
+
};
|
|
156
|
+
return acc;
|
|
157
|
+
}, {});
|
|
158
|
+
addUtilities(preserveRules);
|
|
327
159
|
}
|
|
328
160
|
);
|
|
329
161
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/tailwind/index.ts","../../src/tailwind/plugin.ts"],"sourcesContent":["/**\r\n * Tailwind CSS plugin exports for @changerawr/markdown\r\n */\r\n\r\n// Export the main plugin and its types\r\nexport {\r\n changerawrMarkdownPlugin,\r\n type ChangerawrMarkdownPluginOptions\r\n} from './plugin';\r\n\r\n// Default export for convenience\r\nexport { changerawrMarkdownPlugin as default } from './plugin';","/**\r\n * Tailwind CSS plugin for @changerawr/markdown\r\n * Compatible with both Tailwind v3 and v4\r\n */\r\n\r\nimport plugin from 'tailwindcss/plugin';\r\n\r\nexport interface ChangerawrMarkdownPluginOptions {\r\n /** Prefix for all markdown classes (default: none) */\r\n prefix?: string;\r\n /** Whether to include dark mode variants (default: true) */\r\n darkMode?: boolean;\r\n /** Custom color palette */\r\n colors?: {\r\n primary?: string;\r\n secondary?: string;\r\n accent?: string;\r\n info?: string;\r\n warning?: string;\r\n error?: string;\r\n success?: string;\r\n muted?: string;\r\n border?: string;\r\n };\r\n /** Whether to include extension styles (alerts, buttons, etc.) */\r\n includeExtensions?: boolean;\r\n /** Custom class overrides */\r\n customClasses?: Record<string, string>;\r\n}\r\n\r\nconst defaultColors = {\r\n primary: '#3b82f6',\r\n secondary: '#6b7280',\r\n accent: '#8b5cf6',\r\n info: '#3b82f6',\r\n warning: '#f59e0b',\r\n error: '#ef4444',\r\n success: '#10b981',\r\n muted: '#6b7280',\r\n border: '#d1d5db',\r\n};\r\n\r\nexport const changerawrMarkdownPlugin = plugin.withOptions<ChangerawrMarkdownPluginOptions>(\r\n (options = {}) =>\r\n ({ addUtilities, addComponents }) => {\r\n const {\r\n prefix = '',\r\n darkMode = true,\r\n colors = {},\r\n includeExtensions = true,\r\n customClasses = {},\r\n } = options;\r\n\r\n const mergedColors = { ...defaultColors, ...colors };\r\n const prefixClass = (className: string) => (prefix ? `${prefix}-${className}` : className);\r\n\r\n // Base typography utilities\r\n addUtilities({\r\n // Essential typography classes for markdown\r\n [`.${prefixClass('changerawr-text-3xl')}`]: {\r\n fontSize: '1.875rem',\r\n lineHeight: '2.25rem',\r\n },\r\n [`.${prefixClass('changerawr-text-2xl')}`]: {\r\n fontSize: '1.5rem',\r\n lineHeight: '2rem',\r\n },\r\n [`.${prefixClass('changerawr-text-xl')}`]: {\r\n fontSize: '1.25rem',\r\n lineHeight: '1.75rem',\r\n },\r\n [`.${prefixClass('changerawr-text-lg')}`]: {\r\n fontSize: '1.125rem',\r\n lineHeight: '1.75rem',\r\n },\r\n [`.${prefixClass('changerawr-font-bold')}`]: {\r\n fontWeight: '700',\r\n },\r\n [`.${prefixClass('changerawr-font-semibold')}`]: {\r\n fontWeight: '600',\r\n },\r\n [`.${prefixClass('changerawr-font-medium')}`]: {\r\n fontWeight: '500',\r\n },\r\n [`.${prefixClass('changerawr-italic')}`]: {\r\n fontStyle: 'italic',\r\n },\r\n [`.${prefixClass('changerawr-underline')}`]: {\r\n textDecoration: 'underline',\r\n },\r\n [`.${prefixClass('changerawr-line-through')}`]: {\r\n textDecoration: 'line-through',\r\n },\r\n\r\n // Spacing utilities\r\n [`.${prefixClass('changerawr-mt-8')}`]: { marginTop: '2rem' },\r\n [`.${prefixClass('changerawr-mt-6')}`]: { marginTop: '1.5rem' },\r\n [`.${prefixClass('changerawr-mt-5')}`]: { marginTop: '1.25rem' },\r\n [`.${prefixClass('changerawr-mt-4')}`]: { marginTop: '1rem' },\r\n [`.${prefixClass('changerawr-mt-3')}`]: { marginTop: '0.75rem' },\r\n [`.${prefixClass('changerawr-mb-8')}`]: { marginBottom: '2rem' },\r\n [`.${prefixClass('changerawr-mb-6')}`]: { marginBottom: '1.5rem' },\r\n [`.${prefixClass('changerawr-mb-4')}`]: { marginBottom: '1rem' },\r\n [`.${prefixClass('changerawr-mb-3')}`]: { marginBottom: '0.75rem' },\r\n [`.${prefixClass('changerawr-mb-2')}`]: { marginBottom: '0.5rem' },\r\n [`.${prefixClass('changerawr-my-6')}`]: { marginTop: '1.5rem', marginBottom: '1.5rem' },\r\n [`.${prefixClass('changerawr-my-4')}`]: { marginTop: '1rem', marginBottom: '1rem' },\r\n [`.${prefixClass('changerawr-my-2')}`]: { marginTop: '0.5rem', marginBottom: '0.5rem' },\r\n\r\n // Padding utilities\r\n [`.${prefixClass('changerawr-p-4')}`]: { padding: '1rem' },\r\n [`.${prefixClass('changerawr-p-6')}`]: { padding: '1.5rem' },\r\n [`.${prefixClass('changerawr-px-2')}`]: { paddingLeft: '0.5rem', paddingRight: '0.5rem' },\r\n [`.${prefixClass('changerawr-px-3')}`]: { paddingLeft: '0.75rem', paddingRight: '0.75rem' },\r\n [`.${prefixClass('changerawr-px-4')}`]: { paddingLeft: '1rem', paddingRight: '1rem' },\r\n [`.${prefixClass('changerawr-px-6')}`]: { paddingLeft: '1.5rem', paddingRight: '1.5rem' },\r\n [`.${prefixClass('changerawr-py-1')}`]: { paddingTop: '0.25rem', paddingBottom: '0.25rem' },\r\n [`.${prefixClass('changerawr-py-2')}`]: { paddingTop: '0.5rem', paddingBottom: '0.5rem' },\r\n [`.${prefixClass('changerawr-py-3')}`]: { paddingTop: '0.75rem', paddingBottom: '0.75rem' },\r\n [`.${prefixClass('changerawr-pl-4')}`]: { paddingLeft: '1rem' },\r\n [`.${prefixClass('changerawr-pl-6')}`]: { paddingLeft: '1.5rem' },\r\n\r\n // Line height and leading\r\n [`.${prefixClass('changerawr-leading-7')}`]: { lineHeight: '1.75rem' },\r\n [`.${prefixClass('changerawr-leading-relaxed')}`]: { lineHeight: '1.625' },\r\n [`.${prefixClass('changerawr-leading-loose')}`]: { lineHeight: '2' },\r\n\r\n // Layout utilities\r\n [`.${prefixClass('changerawr-flex')}`]: { display: 'flex' },\r\n [`.${prefixClass('changerawr-inline-flex')}`]: { display: 'inline-flex' },\r\n [`.${prefixClass('changerawr-items-center')}`]: { alignItems: 'center' },\r\n [`.${prefixClass('changerawr-justify-center')}`]: { justifyContent: 'center' },\r\n [`.${prefixClass('changerawr-gap-1')}`]: { gap: '0.25rem' },\r\n [`.${prefixClass('changerawr-gap-2')}`]: { gap: '0.5rem' },\r\n [`.${prefixClass('changerawr-gap-3')}`]: { gap: '0.75rem' },\r\n [`.${prefixClass('changerawr-group')}`]: { /* group parent */ },\r\n [`.${prefixClass('changerawr-relative')}`]: { position: 'relative' },\r\n\r\n // Border utilities\r\n [`.${prefixClass('changerawr-border')}`]: { borderWidth: '1px' },\r\n [`.${prefixClass('changerawr-border-l-2')}`]: { borderLeftWidth: '2px' },\r\n [`.${prefixClass('changerawr-border-l-4')}`]: { borderLeftWidth: '4px' },\r\n [`.${prefixClass('changerawr-rounded')}`]: { borderRadius: '0.25rem' },\r\n [`.${prefixClass('changerawr-rounded-lg')}`]: { borderRadius: '0.5rem' },\r\n [`.${prefixClass('changerawr-rounded-md')}`]: { borderRadius: '0.375rem' },\r\n\r\n // Background utilities\r\n [`.${prefixClass('changerawr-bg-gray-50')}`]: { backgroundColor: '#f9fafb' },\r\n [`.${prefixClass('changerawr-bg-gray-100')}`]: { backgroundColor: '#f3f4f6' },\r\n [`.${prefixClass('changerawr-bg-gray-900')}`]: { backgroundColor: '#111827' },\r\n [`.${prefixClass('changerawr-bg-white')}`]: { backgroundColor: '#ffffff' },\r\n\r\n // Text colors\r\n [`.${prefixClass('changerawr-text-gray-100')}`]: { color: '#f3f4f6' },\r\n [`.${prefixClass('changerawr-text-gray-600')}`]: { color: '#4b5563' },\r\n [`.${prefixClass('changerawr-text-gray-700')}`]: { color: '#374151' },\r\n [`.${prefixClass('changerawr-text-gray-800')}`]: { color: '#1f2937' },\r\n [`.${prefixClass('changerawr-text-primary')}`]: { color: mergedColors.primary },\r\n [`.${prefixClass('changerawr-text-muted-foreground')}`]: { color: mergedColors.muted },\r\n\r\n // Border colors\r\n [`.${prefixClass('changerawr-border-border')}`]: { borderColor: mergedColors.border },\r\n\r\n // Display utilities\r\n [`.${prefixClass('changerawr-overflow-x-auto')}`]: { overflowX: 'auto' },\r\n [`.${prefixClass('changerawr-max-w-full')}`]: { maxWidth: '100%' },\r\n [`.${prefixClass('changerawr-h-auto')}`]: { height: 'auto' },\r\n [`.${prefixClass('changerawr-font-mono')}`]: {\r\n fontFamily: 'ui-monospace, SFMono-Regular, \"SF Mono\", Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace',\r\n },\r\n\r\n // Opacity and transitions\r\n [`.${prefixClass('changerawr-opacity-0')}`]: { opacity: '0' },\r\n [`.${prefixClass('changerawr-transition-opacity')}`]: {\r\n transitionProperty: 'opacity',\r\n transitionTimingFunction: 'cubic-bezier(0.4, 0, 0.2, 1)',\r\n transitionDuration: '150ms',\r\n },\r\n [`.${prefixClass('changerawr-transition-colors')}`]: {\r\n transitionProperty: 'color, background-color, border-color, text-decoration-color, fill, stroke',\r\n transitionTimingFunction: 'cubic-bezier(0.4, 0, 0.2, 1)',\r\n transitionDuration: '150ms',\r\n },\r\n\r\n // Hover states\r\n [`.${prefixClass('changerawr-hover\\\\:underline')}:hover`]: { textDecoration: 'underline' },\r\n [`.group:hover .${prefixClass('changerawr-group-hover\\\\:opacity-100')}`]: { opacity: '1' },\r\n\r\n // Shadow utilities\r\n [`.${prefixClass('changerawr-shadow-sm')}`]: {\r\n boxShadow: '0 1px 2px 0 rgb(0 0 0 / 0.05)',\r\n },\r\n\r\n // Custom markdown classes with overrides\r\n ...Object.fromEntries(\r\n Object.entries(customClasses).map(([key, value]) => [\r\n `.${prefixClass(`changerawr-${key}`)}`,\r\n typeof value === 'string' ? { className: value } : value,\r\n ])\r\n ),\r\n });\r\n\r\n // Extension components\r\n if (includeExtensions) {\r\n addComponents({\r\n // Alert base styles\r\n [`.${prefixClass('changerawr-alert')}`]: {\r\n borderLeftWidth: '4px',\r\n padding: '1rem',\r\n marginBottom: '1rem',\r\n borderRadius: '0.375rem',\r\n transitionProperty: 'color, background-color, border-color',\r\n transitionTimingFunction: 'cubic-bezier(0.4, 0, 0.2, 1)',\r\n transitionDuration: '200ms',\r\n },\r\n\r\n // Alert variants using opacity for compatibility\r\n [`.${prefixClass('changerawr-alert-info')}`]: {\r\n backgroundColor: `color-mix(in srgb, ${mergedColors.info} 10%, transparent)`,\r\n borderColor: `color-mix(in srgb, ${mergedColors.info} 30%, transparent)`,\r\n color: mergedColors.info,\r\n },\r\n\r\n [`.${prefixClass('changerawr-alert-warning')}`]: {\r\n backgroundColor: `color-mix(in srgb, ${mergedColors.warning} 10%, transparent)`,\r\n borderColor: `color-mix(in srgb, ${mergedColors.warning} 30%, transparent)`,\r\n color: mergedColors.warning,\r\n },\r\n\r\n [`.${prefixClass('changerawr-alert-error')}`]: {\r\n backgroundColor: `color-mix(in srgb, ${mergedColors.error} 10%, transparent)`,\r\n borderColor: `color-mix(in srgb, ${mergedColors.error} 30%, transparent)`,\r\n color: mergedColors.error,\r\n },\r\n\r\n [`.${prefixClass('changerawr-alert-success')}`]: {\r\n backgroundColor: `color-mix(in srgb, ${mergedColors.success} 10%, transparent)`,\r\n borderColor: `color-mix(in srgb, ${mergedColors.success} 30%, transparent)`,\r\n color: mergedColors.success,\r\n },\r\n\r\n // Button base styles\r\n [`.${prefixClass('changerawr-button')}`]: {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n borderRadius: '0.5rem',\r\n fontWeight: '500',\r\n transitionProperty: 'all',\r\n transitionTimingFunction: 'cubic-bezier(0.4, 0, 0.2, 1)',\r\n transitionDuration: '150ms',\r\n border: '1px solid transparent',\r\n cursor: 'pointer',\r\n textDecoration: 'none',\r\n '&:focus': {\r\n outline: 'none',\r\n ringWidth: '2px',\r\n ringOffsetWidth: '2px',\r\n },\r\n '&:disabled': {\r\n opacity: '0.5',\r\n cursor: 'not-allowed',\r\n },\r\n },\r\n\r\n // Button variants\r\n [`.${prefixClass('changerawr-button-primary')}`]: {\r\n backgroundColor: mergedColors.primary,\r\n color: '#ffffff',\r\n '&:hover:not(:disabled)': {\r\n backgroundColor: `color-mix(in srgb, ${mergedColors.primary} 90%, black)`,\r\n },\r\n '&:focus': {\r\n ringColor: `color-mix(in srgb, ${mergedColors.primary} 50%, transparent)`,\r\n },\r\n },\r\n\r\n [`.${prefixClass('changerawr-button-secondary')}`]: {\r\n backgroundColor: mergedColors.secondary,\r\n color: '#ffffff',\r\n '&:hover:not(:disabled)': {\r\n backgroundColor: `color-mix(in srgb, ${mergedColors.secondary} 90%, black)`,\r\n },\r\n '&:focus': {\r\n ringColor: `color-mix(in srgb, ${mergedColors.secondary} 50%, transparent)`,\r\n },\r\n },\r\n\r\n [`.${prefixClass('changerawr-button-outline')}`]: {\r\n borderColor: mergedColors.primary,\r\n color: mergedColors.primary,\r\n '&:hover:not(:disabled)': {\r\n backgroundColor: `color-mix(in srgb, ${mergedColors.primary} 5%, transparent)`,\r\n },\r\n },\r\n\r\n [`.${prefixClass('changerawr-button-ghost')}`]: {\r\n color: mergedColors.secondary,\r\n '&:hover:not(:disabled)': {\r\n backgroundColor: `color-mix(in srgb, ${mergedColors.secondary} 10%, transparent)`,\r\n },\r\n },\r\n\r\n // Button sizes\r\n [`.${prefixClass('changerawr-button-sm')}`]: {\r\n paddingLeft: '0.75rem',\r\n paddingRight: '0.75rem',\r\n paddingTop: '0.375rem',\r\n paddingBottom: '0.375rem',\r\n fontSize: '0.875rem',\r\n },\r\n\r\n [`.${prefixClass('changerawr-button-md')}`]: {\r\n paddingLeft: '1rem',\r\n paddingRight: '1rem',\r\n paddingTop: '0.5rem',\r\n paddingBottom: '0.5rem',\r\n fontSize: '0.875rem',\r\n },\r\n\r\n [`.${prefixClass('changerawr-button-lg')}`]: {\r\n paddingLeft: '1.5rem',\r\n paddingRight: '1.5rem',\r\n paddingTop: '0.75rem',\r\n paddingBottom: '0.75rem',\r\n fontSize: '1rem',\r\n },\r\n\r\n // Embed styles\r\n [`.${prefixClass('changerawr-embed')}`]: {\r\n borderRadius: '0.5rem',\r\n border: '1px solid',\r\n borderColor: mergedColors.border,\r\n backgroundColor: '#ffffff',\r\n boxShadow: '0 1px 2px 0 rgb(0 0 0 / 0.05)',\r\n marginBottom: '1.5rem',\r\n overflow: 'hidden',\r\n },\r\n });\r\n }\r\n\r\n // Dark mode variants\r\n if (darkMode) {\r\n addUtilities({\r\n [`.dark .${prefixClass('changerawr-dark\\\\:bg-gray-800')}`]: { backgroundColor: '#1f2937' },\r\n [`.dark .${prefixClass('changerawr-dark\\\\:text-gray-100')}`]: { color: '#f3f4f6' },\r\n [`.dark .${prefixClass('changerawr-dark\\\\:text-gray-300')}`]: { color: '#d1d5db' },\r\n [`.dark .${prefixClass('changerawr-dark\\\\:border-gray-600')}`]: { borderColor: '#4b5563' },\r\n });\r\n }\r\n }\r\n);\r\n\r\n// CSS-only version for Tailwind v4\r\nexport const changerawrMarkdownCSS = (options: ChangerawrMarkdownPluginOptions = {}) => {\r\n const {\r\n prefix = '',\r\n colors = {},\r\n includeExtensions = true,\r\n } = options;\r\n\r\n const mergedColors = { ...defaultColors, ...colors };\r\n const prefixClass = (className: string) => (prefix ? `${prefix}-${className}` : className);\r\n\r\n return `\r\n/* Changerawr Markdown Styles */\r\n@layer utilities {\r\n /* Typography */\r\n .${prefixClass('changerawr-text-3xl')} { font-size: 1.875rem; line-height: 2.25rem; }\r\n .${prefixClass('changerawr-text-2xl')} { font-size: 1.5rem; line-height: 2rem; }\r\n .${prefixClass('changerawr-text-xl')} { font-size: 1.25rem; line-height: 1.75rem; }\r\n .${prefixClass('changerawr-text-lg')} { font-size: 1.125rem; line-height: 1.75rem; }\r\n .${prefixClass('changerawr-font-bold')} { font-weight: 700; }\r\n .${prefixClass('changerawr-font-semibold')} { font-weight: 600; }\r\n .${prefixClass('changerawr-font-medium')} { font-weight: 500; }\r\n .${prefixClass('changerawr-italic')} { font-style: italic; }\r\n .${prefixClass('changerawr-underline')} { text-decoration: underline; }\r\n \r\n /* Spacing */\r\n .${prefixClass('changerawr-mt-8')} { margin-top: 2rem; }\r\n .${prefixClass('changerawr-mt-6')} { margin-top: 1.5rem; }\r\n .${prefixClass('changerawr-mb-4')} { margin-bottom: 1rem; }\r\n .${prefixClass('changerawr-leading-7')} { line-height: 1.75rem; }\r\n \r\n /* Layout */\r\n .${prefixClass('changerawr-flex')} { display: flex; }\r\n .${prefixClass('changerawr-items-center')} { align-items: center; }\r\n .${prefixClass('changerawr-gap-2')} { gap: 0.5rem; }\r\n \r\n /* Colors */\r\n .${prefixClass('changerawr-text-primary')} { color: ${mergedColors.primary}; }\r\n .${prefixClass('changerawr-text-muted-foreground')} { color: ${mergedColors.muted}; }\r\n}\r\n\r\n${includeExtensions ? `\r\n@layer components {\r\n /* Alert Components */\r\n .${prefixClass('changerawr-alert')} {\r\n border-left-width: 4px;\r\n padding: 1rem;\r\n margin-bottom: 1rem;\r\n border-radius: 0.375rem;\r\n transition: color, background-color, border-color 200ms;\r\n }\r\n \r\n .${prefixClass('changerawr-alert-info')} {\r\n background-color: color-mix(in srgb, ${mergedColors.info} 10%, transparent);\r\n border-color: color-mix(in srgb, ${mergedColors.info} 30%, transparent);\r\n color: ${mergedColors.info};\r\n }\r\n \r\n .${prefixClass('changerawr-alert-warning')} {\r\n background-color: color-mix(in srgb, ${mergedColors.warning} 10%, transparent);\r\n border-color: color-mix(in srgb, ${mergedColors.warning} 30%, transparent);\r\n color: ${mergedColors.warning};\r\n }\r\n \r\n .${prefixClass('changerawr-alert-error')} {\r\n background-color: color-mix(in srgb, ${mergedColors.error} 10%, transparent);\r\n border-color: color-mix(in srgb, ${mergedColors.error} 30%, transparent);\r\n color: ${mergedColors.error};\r\n }\r\n \r\n .${prefixClass('changerawr-alert-success')} {\r\n background-color: color-mix(in srgb, ${mergedColors.success} 10%, transparent);\r\n border-color: color-mix(in srgb, ${mergedColors.success} 30%, transparent);\r\n color: ${mergedColors.success};\r\n }\r\n\r\n /* Button Components */\r\n .${prefixClass('changerawr-button')} {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n border-radius: 0.5rem;\r\n font-weight: 500;\r\n transition: all 150ms;\r\n border: 1px solid transparent;\r\n cursor: pointer;\r\n text-decoration: none;\r\n }\r\n \r\n .${prefixClass('changerawr-button-primary')} {\r\n background-color: ${mergedColors.primary};\r\n color: white;\r\n }\r\n \r\n .${prefixClass('changerawr-button-primary')}:hover:not(:disabled) {\r\n background-color: color-mix(in srgb, ${mergedColors.primary} 90%, black);\r\n }\r\n \r\n .${prefixClass('changerawr-button-md')} {\r\n padding: 0.5rem 1rem;\r\n font-size: 0.875rem;\r\n }\r\n}\r\n` : ''}\r\n`;\r\n};\r\n\r\nexport default changerawrMarkdownPlugin;"],"mappings":"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","names":["plugin"]}
|
|
1
|
+
{"version":3,"sources":["../../src/tailwind/index.ts","../../src/tailwind/plugin.ts"],"sourcesContent":["/**\r\n * Tailwind CSS plugin exports for @changerawr/markdown\r\n */\r\n\r\n// Export the main plugin and its types\r\nexport {\r\n changerawrMarkdownPlugin,\r\n type ChangerawrMarkdownPluginOptions\r\n} from './plugin';\r\n\r\n// Default export for convenience\r\nexport { changerawrMarkdownPlugin as default } from './plugin';","/**\r\n * Tailwind CSS safelist plugin for @changerawr/markdown\r\n *\r\n * This plugin ensures standard Tailwind classes used by markdown rendering\r\n * are included in the final CSS build and not purged.\r\n *\r\n */\r\n\r\nimport plugin from 'tailwindcss/plugin';\r\n\r\nexport interface ChangerawrMarkdownPluginOptions {\r\n /** Whether to include extension classes for alerts and buttons (default: true) */\r\n includeExtensions?: boolean;\r\n /** Whether to include dark mode variants (default: true) */\r\n darkMode?: boolean;\r\n}\r\n\r\n/**\r\n * Core Tailwind classes used by markdown components\r\n */\r\nconst CORE_CLASSES = [\r\n // Typography\r\n 'text-3xl', 'text-2xl', 'text-xl', 'text-lg', 'text-base', 'text-sm',\r\n 'font-bold', 'font-semibold', 'font-medium',\r\n 'italic', 'underline', 'line-through',\r\n 'leading-7', 'leading-relaxed',\r\n\r\n // Spacing\r\n 'mt-8', 'mt-6', 'mt-5', 'mt-4', 'mt-3',\r\n 'mb-6', 'mb-4', 'mb-3', 'mb-2',\r\n 'my-6', 'my-4',\r\n 'p-4', 'p-6',\r\n 'px-1.5', 'px-2', 'px-3', 'px-4',\r\n 'py-0.5', 'py-1', 'py-2',\r\n 'pl-4', 'pl-6',\r\n\r\n // Layout\r\n 'flex', 'inline-flex', 'items-center', 'justify-center',\r\n 'gap-2', 'space-y-1',\r\n 'list-disc', 'list-inside', 'ml-4',\r\n\r\n // Borders and backgrounds\r\n 'border-l-2', 'border-l-4',\r\n 'rounded', 'rounded-lg', 'rounded-md',\r\n 'bg-muted',\r\n\r\n // Images\r\n 'max-w-full', 'h-auto', 'overflow-x-auto',\r\n\r\n // Interactions\r\n 'hover:underline', 'transition-all', 'duration-200',\r\n 'cursor-pointer'\r\n];\r\n\r\n/**\r\n * Extension classes for alerts and buttons\r\n */\r\nconst EXTENSION_CLASSES = [\r\n // Alert colors (using opacity syntax)\r\n 'bg-blue-500/10', 'border-blue-500/30', 'text-blue-600', 'border-l-blue-500',\r\n 'bg-amber-500/10', 'border-amber-500/30', 'text-amber-600', 'border-l-amber-500',\r\n 'bg-red-500/10', 'border-red-500/30', 'text-red-600', 'border-l-red-500',\r\n 'bg-green-500/10', 'border-green-500/30', 'text-green-600', 'border-l-green-500',\r\n\r\n // Button variants\r\n 'bg-blue-600', 'text-white', 'hover:bg-blue-700',\r\n 'bg-gray-200', 'text-gray-900', 'hover:bg-gray-300'\r\n];\r\n\r\n/**\r\n * Dark mode variants\r\n */\r\nconst DARK_MODE_CLASSES = [\r\n 'dark:text-blue-400', 'dark:text-amber-400', 'dark:text-red-400', 'dark:text-green-400',\r\n 'dark:bg-gray-800', 'dark:text-gray-100'\r\n];\r\n\r\nexport const changerawrMarkdownPlugin = plugin.withOptions<ChangerawrMarkdownPluginOptions>(\r\n (options = {}) => ({ addUtilities }) => {\r\n const { includeExtensions = true, darkMode = true } = options;\r\n\r\n let allClasses = [...CORE_CLASSES];\r\n\r\n if (includeExtensions) {\r\n allClasses.push(...EXTENSION_CLASSES);\r\n }\r\n\r\n if (darkMode) {\r\n allClasses.push(...DARK_MODE_CLASSES);\r\n }\r\n\r\n // Create hidden utilities that reference the classes\r\n // This ensures Tailwind includes them in the final CSS\r\n const preserveRules = allClasses.reduce((acc, className) => {\r\n const safeClassName = className.replace(/[^a-zA-Z0-9]/g, '-');\r\n acc[`.changerawr-preserve-${safeClassName}`] = {\r\n // Use CSS custom properties to reference the class without creating actual styles\r\n '--tw-preserve': `\"${className}\"`\r\n };\r\n return acc;\r\n }, {} as Record<string, Record<string, string>>);\r\n\r\n addUtilities(preserveRules);\r\n }\r\n);\r\n\r\nexport default changerawrMarkdownPlugin;"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACQA,oBAAmB;AAYnB,IAAM,eAAe;AAAA;AAAA,EAEjB;AAAA,EAAY;AAAA,EAAY;AAAA,EAAW;AAAA,EAAW;AAAA,EAAa;AAAA,EAC3D;AAAA,EAAa;AAAA,EAAiB;AAAA,EAC9B;AAAA,EAAU;AAAA,EAAa;AAAA,EACvB;AAAA,EAAa;AAAA;AAAA,EAGb;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAChC;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EACxB;AAAA,EAAQ;AAAA,EACR;AAAA,EAAO;AAAA,EACP;AAAA,EAAU;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAC1B;AAAA,EAAU;AAAA,EAAQ;AAAA,EAClB;AAAA,EAAQ;AAAA;AAAA,EAGR;AAAA,EAAQ;AAAA,EAAe;AAAA,EAAgB;AAAA,EACvC;AAAA,EAAS;AAAA,EACT;AAAA,EAAa;AAAA,EAAe;AAAA;AAAA,EAG5B;AAAA,EAAc;AAAA,EACd;AAAA,EAAW;AAAA,EAAc;AAAA,EACzB;AAAA;AAAA,EAGA;AAAA,EAAc;AAAA,EAAU;AAAA;AAAA,EAGxB;AAAA,EAAmB;AAAA,EAAkB;AAAA,EACrC;AACJ;AAKA,IAAM,oBAAoB;AAAA;AAAA,EAEtB;AAAA,EAAkB;AAAA,EAAsB;AAAA,EAAiB;AAAA,EACzD;AAAA,EAAmB;AAAA,EAAuB;AAAA,EAAkB;AAAA,EAC5D;AAAA,EAAiB;AAAA,EAAqB;AAAA,EAAgB;AAAA,EACtD;AAAA,EAAmB;AAAA,EAAuB;AAAA,EAAkB;AAAA;AAAA,EAG5D;AAAA,EAAe;AAAA,EAAc;AAAA,EAC7B;AAAA,EAAe;AAAA,EAAiB;AACpC;AAKA,IAAM,oBAAoB;AAAA,EACtB;AAAA,EAAsB;AAAA,EAAuB;AAAA,EAAqB;AAAA,EAClE;AAAA,EAAoB;AACxB;AAEO,IAAM,2BAA2B,cAAAA,QAAO;AAAA,EAC3C,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,aAAa,MAAM;AACpC,UAAM,EAAE,oBAAoB,MAAM,WAAW,KAAK,IAAI;AAEtD,QAAI,aAAa,CAAC,GAAG,YAAY;AAEjC,QAAI,mBAAmB;AACnB,iBAAW,KAAK,GAAG,iBAAiB;AAAA,IACxC;AAEA,QAAI,UAAU;AACV,iBAAW,KAAK,GAAG,iBAAiB;AAAA,IACxC;AAIA,UAAM,gBAAgB,WAAW,OAAO,CAAC,KAAK,cAAc;AACxD,YAAM,gBAAgB,UAAU,QAAQ,iBAAiB,GAAG;AAC5D,UAAI,wBAAwB,aAAa,EAAE,IAAI;AAAA;AAAA,QAE3C,iBAAiB,IAAI,SAAS;AAAA,MAClC;AACA,aAAO;AAAA,IACX,GAAG,CAAC,CAA2C;AAE/C,iBAAa,aAAa;AAAA,EAC9B;AACJ;","names":["plugin"]}
|
package/dist/tailwind/index.mjs
CHANGED
|
@@ -1,292 +1,124 @@
|
|
|
1
1
|
// src/tailwind/plugin.ts
|
|
2
2
|
import plugin from "tailwindcss/plugin";
|
|
3
|
-
var
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
3
|
+
var CORE_CLASSES = [
|
|
4
|
+
// Typography
|
|
5
|
+
"text-3xl",
|
|
6
|
+
"text-2xl",
|
|
7
|
+
"text-xl",
|
|
8
|
+
"text-lg",
|
|
9
|
+
"text-base",
|
|
10
|
+
"text-sm",
|
|
11
|
+
"font-bold",
|
|
12
|
+
"font-semibold",
|
|
13
|
+
"font-medium",
|
|
14
|
+
"italic",
|
|
15
|
+
"underline",
|
|
16
|
+
"line-through",
|
|
17
|
+
"leading-7",
|
|
18
|
+
"leading-relaxed",
|
|
19
|
+
// Spacing
|
|
20
|
+
"mt-8",
|
|
21
|
+
"mt-6",
|
|
22
|
+
"mt-5",
|
|
23
|
+
"mt-4",
|
|
24
|
+
"mt-3",
|
|
25
|
+
"mb-6",
|
|
26
|
+
"mb-4",
|
|
27
|
+
"mb-3",
|
|
28
|
+
"mb-2",
|
|
29
|
+
"my-6",
|
|
30
|
+
"my-4",
|
|
31
|
+
"p-4",
|
|
32
|
+
"p-6",
|
|
33
|
+
"px-1.5",
|
|
34
|
+
"px-2",
|
|
35
|
+
"px-3",
|
|
36
|
+
"px-4",
|
|
37
|
+
"py-0.5",
|
|
38
|
+
"py-1",
|
|
39
|
+
"py-2",
|
|
40
|
+
"pl-4",
|
|
41
|
+
"pl-6",
|
|
42
|
+
// Layout
|
|
43
|
+
"flex",
|
|
44
|
+
"inline-flex",
|
|
45
|
+
"items-center",
|
|
46
|
+
"justify-center",
|
|
47
|
+
"gap-2",
|
|
48
|
+
"space-y-1",
|
|
49
|
+
"list-disc",
|
|
50
|
+
"list-inside",
|
|
51
|
+
"ml-4",
|
|
52
|
+
// Borders and backgrounds
|
|
53
|
+
"border-l-2",
|
|
54
|
+
"border-l-4",
|
|
55
|
+
"rounded",
|
|
56
|
+
"rounded-lg",
|
|
57
|
+
"rounded-md",
|
|
58
|
+
"bg-muted",
|
|
59
|
+
// Images
|
|
60
|
+
"max-w-full",
|
|
61
|
+
"h-auto",
|
|
62
|
+
"overflow-x-auto",
|
|
63
|
+
// Interactions
|
|
64
|
+
"hover:underline",
|
|
65
|
+
"transition-all",
|
|
66
|
+
"duration-200",
|
|
67
|
+
"cursor-pointer"
|
|
68
|
+
];
|
|
69
|
+
var EXTENSION_CLASSES = [
|
|
70
|
+
// Alert colors (using opacity syntax)
|
|
71
|
+
"bg-blue-500/10",
|
|
72
|
+
"border-blue-500/30",
|
|
73
|
+
"text-blue-600",
|
|
74
|
+
"border-l-blue-500",
|
|
75
|
+
"bg-amber-500/10",
|
|
76
|
+
"border-amber-500/30",
|
|
77
|
+
"text-amber-600",
|
|
78
|
+
"border-l-amber-500",
|
|
79
|
+
"bg-red-500/10",
|
|
80
|
+
"border-red-500/30",
|
|
81
|
+
"text-red-600",
|
|
82
|
+
"border-l-red-500",
|
|
83
|
+
"bg-green-500/10",
|
|
84
|
+
"border-green-500/30",
|
|
85
|
+
"text-green-600",
|
|
86
|
+
"border-l-green-500",
|
|
87
|
+
// Button variants
|
|
88
|
+
"bg-blue-600",
|
|
89
|
+
"text-white",
|
|
90
|
+
"hover:bg-blue-700",
|
|
91
|
+
"bg-gray-200",
|
|
92
|
+
"text-gray-900",
|
|
93
|
+
"hover:bg-gray-300"
|
|
94
|
+
];
|
|
95
|
+
var DARK_MODE_CLASSES = [
|
|
96
|
+
"dark:text-blue-400",
|
|
97
|
+
"dark:text-amber-400",
|
|
98
|
+
"dark:text-red-400",
|
|
99
|
+
"dark:text-green-400",
|
|
100
|
+
"dark:bg-gray-800",
|
|
101
|
+
"dark:text-gray-100"
|
|
102
|
+
];
|
|
14
103
|
var changerawrMarkdownPlugin = plugin.withOptions(
|
|
15
|
-
(options = {}) => ({ addUtilities
|
|
16
|
-
const {
|
|
17
|
-
|
|
18
|
-
darkMode = true,
|
|
19
|
-
colors = {},
|
|
20
|
-
includeExtensions = true,
|
|
21
|
-
customClasses = {}
|
|
22
|
-
} = options;
|
|
23
|
-
const mergedColors = { ...defaultColors, ...colors };
|
|
24
|
-
const prefixClass = (className) => prefix ? `${prefix}-${className}` : className;
|
|
25
|
-
addUtilities({
|
|
26
|
-
// Essential typography classes for markdown
|
|
27
|
-
[`.${prefixClass("changerawr-text-3xl")}`]: {
|
|
28
|
-
fontSize: "1.875rem",
|
|
29
|
-
lineHeight: "2.25rem"
|
|
30
|
-
},
|
|
31
|
-
[`.${prefixClass("changerawr-text-2xl")}`]: {
|
|
32
|
-
fontSize: "1.5rem",
|
|
33
|
-
lineHeight: "2rem"
|
|
34
|
-
},
|
|
35
|
-
[`.${prefixClass("changerawr-text-xl")}`]: {
|
|
36
|
-
fontSize: "1.25rem",
|
|
37
|
-
lineHeight: "1.75rem"
|
|
38
|
-
},
|
|
39
|
-
[`.${prefixClass("changerawr-text-lg")}`]: {
|
|
40
|
-
fontSize: "1.125rem",
|
|
41
|
-
lineHeight: "1.75rem"
|
|
42
|
-
},
|
|
43
|
-
[`.${prefixClass("changerawr-font-bold")}`]: {
|
|
44
|
-
fontWeight: "700"
|
|
45
|
-
},
|
|
46
|
-
[`.${prefixClass("changerawr-font-semibold")}`]: {
|
|
47
|
-
fontWeight: "600"
|
|
48
|
-
},
|
|
49
|
-
[`.${prefixClass("changerawr-font-medium")}`]: {
|
|
50
|
-
fontWeight: "500"
|
|
51
|
-
},
|
|
52
|
-
[`.${prefixClass("changerawr-italic")}`]: {
|
|
53
|
-
fontStyle: "italic"
|
|
54
|
-
},
|
|
55
|
-
[`.${prefixClass("changerawr-underline")}`]: {
|
|
56
|
-
textDecoration: "underline"
|
|
57
|
-
},
|
|
58
|
-
[`.${prefixClass("changerawr-line-through")}`]: {
|
|
59
|
-
textDecoration: "line-through"
|
|
60
|
-
},
|
|
61
|
-
// Spacing utilities
|
|
62
|
-
[`.${prefixClass("changerawr-mt-8")}`]: { marginTop: "2rem" },
|
|
63
|
-
[`.${prefixClass("changerawr-mt-6")}`]: { marginTop: "1.5rem" },
|
|
64
|
-
[`.${prefixClass("changerawr-mt-5")}`]: { marginTop: "1.25rem" },
|
|
65
|
-
[`.${prefixClass("changerawr-mt-4")}`]: { marginTop: "1rem" },
|
|
66
|
-
[`.${prefixClass("changerawr-mt-3")}`]: { marginTop: "0.75rem" },
|
|
67
|
-
[`.${prefixClass("changerawr-mb-8")}`]: { marginBottom: "2rem" },
|
|
68
|
-
[`.${prefixClass("changerawr-mb-6")}`]: { marginBottom: "1.5rem" },
|
|
69
|
-
[`.${prefixClass("changerawr-mb-4")}`]: { marginBottom: "1rem" },
|
|
70
|
-
[`.${prefixClass("changerawr-mb-3")}`]: { marginBottom: "0.75rem" },
|
|
71
|
-
[`.${prefixClass("changerawr-mb-2")}`]: { marginBottom: "0.5rem" },
|
|
72
|
-
[`.${prefixClass("changerawr-my-6")}`]: { marginTop: "1.5rem", marginBottom: "1.5rem" },
|
|
73
|
-
[`.${prefixClass("changerawr-my-4")}`]: { marginTop: "1rem", marginBottom: "1rem" },
|
|
74
|
-
[`.${prefixClass("changerawr-my-2")}`]: { marginTop: "0.5rem", marginBottom: "0.5rem" },
|
|
75
|
-
// Padding utilities
|
|
76
|
-
[`.${prefixClass("changerawr-p-4")}`]: { padding: "1rem" },
|
|
77
|
-
[`.${prefixClass("changerawr-p-6")}`]: { padding: "1.5rem" },
|
|
78
|
-
[`.${prefixClass("changerawr-px-2")}`]: { paddingLeft: "0.5rem", paddingRight: "0.5rem" },
|
|
79
|
-
[`.${prefixClass("changerawr-px-3")}`]: { paddingLeft: "0.75rem", paddingRight: "0.75rem" },
|
|
80
|
-
[`.${prefixClass("changerawr-px-4")}`]: { paddingLeft: "1rem", paddingRight: "1rem" },
|
|
81
|
-
[`.${prefixClass("changerawr-px-6")}`]: { paddingLeft: "1.5rem", paddingRight: "1.5rem" },
|
|
82
|
-
[`.${prefixClass("changerawr-py-1")}`]: { paddingTop: "0.25rem", paddingBottom: "0.25rem" },
|
|
83
|
-
[`.${prefixClass("changerawr-py-2")}`]: { paddingTop: "0.5rem", paddingBottom: "0.5rem" },
|
|
84
|
-
[`.${prefixClass("changerawr-py-3")}`]: { paddingTop: "0.75rem", paddingBottom: "0.75rem" },
|
|
85
|
-
[`.${prefixClass("changerawr-pl-4")}`]: { paddingLeft: "1rem" },
|
|
86
|
-
[`.${prefixClass("changerawr-pl-6")}`]: { paddingLeft: "1.5rem" },
|
|
87
|
-
// Line height and leading
|
|
88
|
-
[`.${prefixClass("changerawr-leading-7")}`]: { lineHeight: "1.75rem" },
|
|
89
|
-
[`.${prefixClass("changerawr-leading-relaxed")}`]: { lineHeight: "1.625" },
|
|
90
|
-
[`.${prefixClass("changerawr-leading-loose")}`]: { lineHeight: "2" },
|
|
91
|
-
// Layout utilities
|
|
92
|
-
[`.${prefixClass("changerawr-flex")}`]: { display: "flex" },
|
|
93
|
-
[`.${prefixClass("changerawr-inline-flex")}`]: { display: "inline-flex" },
|
|
94
|
-
[`.${prefixClass("changerawr-items-center")}`]: { alignItems: "center" },
|
|
95
|
-
[`.${prefixClass("changerawr-justify-center")}`]: { justifyContent: "center" },
|
|
96
|
-
[`.${prefixClass("changerawr-gap-1")}`]: { gap: "0.25rem" },
|
|
97
|
-
[`.${prefixClass("changerawr-gap-2")}`]: { gap: "0.5rem" },
|
|
98
|
-
[`.${prefixClass("changerawr-gap-3")}`]: { gap: "0.75rem" },
|
|
99
|
-
[`.${prefixClass("changerawr-group")}`]: {
|
|
100
|
-
/* group parent */
|
|
101
|
-
},
|
|
102
|
-
[`.${prefixClass("changerawr-relative")}`]: { position: "relative" },
|
|
103
|
-
// Border utilities
|
|
104
|
-
[`.${prefixClass("changerawr-border")}`]: { borderWidth: "1px" },
|
|
105
|
-
[`.${prefixClass("changerawr-border-l-2")}`]: { borderLeftWidth: "2px" },
|
|
106
|
-
[`.${prefixClass("changerawr-border-l-4")}`]: { borderLeftWidth: "4px" },
|
|
107
|
-
[`.${prefixClass("changerawr-rounded")}`]: { borderRadius: "0.25rem" },
|
|
108
|
-
[`.${prefixClass("changerawr-rounded-lg")}`]: { borderRadius: "0.5rem" },
|
|
109
|
-
[`.${prefixClass("changerawr-rounded-md")}`]: { borderRadius: "0.375rem" },
|
|
110
|
-
// Background utilities
|
|
111
|
-
[`.${prefixClass("changerawr-bg-gray-50")}`]: { backgroundColor: "#f9fafb" },
|
|
112
|
-
[`.${prefixClass("changerawr-bg-gray-100")}`]: { backgroundColor: "#f3f4f6" },
|
|
113
|
-
[`.${prefixClass("changerawr-bg-gray-900")}`]: { backgroundColor: "#111827" },
|
|
114
|
-
[`.${prefixClass("changerawr-bg-white")}`]: { backgroundColor: "#ffffff" },
|
|
115
|
-
// Text colors
|
|
116
|
-
[`.${prefixClass("changerawr-text-gray-100")}`]: { color: "#f3f4f6" },
|
|
117
|
-
[`.${prefixClass("changerawr-text-gray-600")}`]: { color: "#4b5563" },
|
|
118
|
-
[`.${prefixClass("changerawr-text-gray-700")}`]: { color: "#374151" },
|
|
119
|
-
[`.${prefixClass("changerawr-text-gray-800")}`]: { color: "#1f2937" },
|
|
120
|
-
[`.${prefixClass("changerawr-text-primary")}`]: { color: mergedColors.primary },
|
|
121
|
-
[`.${prefixClass("changerawr-text-muted-foreground")}`]: { color: mergedColors.muted },
|
|
122
|
-
// Border colors
|
|
123
|
-
[`.${prefixClass("changerawr-border-border")}`]: { borderColor: mergedColors.border },
|
|
124
|
-
// Display utilities
|
|
125
|
-
[`.${prefixClass("changerawr-overflow-x-auto")}`]: { overflowX: "auto" },
|
|
126
|
-
[`.${prefixClass("changerawr-max-w-full")}`]: { maxWidth: "100%" },
|
|
127
|
-
[`.${prefixClass("changerawr-h-auto")}`]: { height: "auto" },
|
|
128
|
-
[`.${prefixClass("changerawr-font-mono")}`]: {
|
|
129
|
-
fontFamily: 'ui-monospace, SFMono-Regular, "SF Mono", Monaco, Consolas, "Liberation Mono", "Courier New", monospace'
|
|
130
|
-
},
|
|
131
|
-
// Opacity and transitions
|
|
132
|
-
[`.${prefixClass("changerawr-opacity-0")}`]: { opacity: "0" },
|
|
133
|
-
[`.${prefixClass("changerawr-transition-opacity")}`]: {
|
|
134
|
-
transitionProperty: "opacity",
|
|
135
|
-
transitionTimingFunction: "cubic-bezier(0.4, 0, 0.2, 1)",
|
|
136
|
-
transitionDuration: "150ms"
|
|
137
|
-
},
|
|
138
|
-
[`.${prefixClass("changerawr-transition-colors")}`]: {
|
|
139
|
-
transitionProperty: "color, background-color, border-color, text-decoration-color, fill, stroke",
|
|
140
|
-
transitionTimingFunction: "cubic-bezier(0.4, 0, 0.2, 1)",
|
|
141
|
-
transitionDuration: "150ms"
|
|
142
|
-
},
|
|
143
|
-
// Hover states
|
|
144
|
-
[`.${prefixClass("changerawr-hover\\:underline")}:hover`]: { textDecoration: "underline" },
|
|
145
|
-
[`.group:hover .${prefixClass("changerawr-group-hover\\:opacity-100")}`]: { opacity: "1" },
|
|
146
|
-
// Shadow utilities
|
|
147
|
-
[`.${prefixClass("changerawr-shadow-sm")}`]: {
|
|
148
|
-
boxShadow: "0 1px 2px 0 rgb(0 0 0 / 0.05)"
|
|
149
|
-
},
|
|
150
|
-
// Custom markdown classes with overrides
|
|
151
|
-
...Object.fromEntries(
|
|
152
|
-
Object.entries(customClasses).map(([key, value]) => [
|
|
153
|
-
`.${prefixClass(`changerawr-${key}`)}`,
|
|
154
|
-
typeof value === "string" ? { className: value } : value
|
|
155
|
-
])
|
|
156
|
-
)
|
|
157
|
-
});
|
|
104
|
+
(options = {}) => ({ addUtilities }) => {
|
|
105
|
+
const { includeExtensions = true, darkMode = true } = options;
|
|
106
|
+
let allClasses = [...CORE_CLASSES];
|
|
158
107
|
if (includeExtensions) {
|
|
159
|
-
|
|
160
|
-
// Alert base styles
|
|
161
|
-
[`.${prefixClass("changerawr-alert")}`]: {
|
|
162
|
-
borderLeftWidth: "4px",
|
|
163
|
-
padding: "1rem",
|
|
164
|
-
marginBottom: "1rem",
|
|
165
|
-
borderRadius: "0.375rem",
|
|
166
|
-
transitionProperty: "color, background-color, border-color",
|
|
167
|
-
transitionTimingFunction: "cubic-bezier(0.4, 0, 0.2, 1)",
|
|
168
|
-
transitionDuration: "200ms"
|
|
169
|
-
},
|
|
170
|
-
// Alert variants using opacity for compatibility
|
|
171
|
-
[`.${prefixClass("changerawr-alert-info")}`]: {
|
|
172
|
-
backgroundColor: `color-mix(in srgb, ${mergedColors.info} 10%, transparent)`,
|
|
173
|
-
borderColor: `color-mix(in srgb, ${mergedColors.info} 30%, transparent)`,
|
|
174
|
-
color: mergedColors.info
|
|
175
|
-
},
|
|
176
|
-
[`.${prefixClass("changerawr-alert-warning")}`]: {
|
|
177
|
-
backgroundColor: `color-mix(in srgb, ${mergedColors.warning} 10%, transparent)`,
|
|
178
|
-
borderColor: `color-mix(in srgb, ${mergedColors.warning} 30%, transparent)`,
|
|
179
|
-
color: mergedColors.warning
|
|
180
|
-
},
|
|
181
|
-
[`.${prefixClass("changerawr-alert-error")}`]: {
|
|
182
|
-
backgroundColor: `color-mix(in srgb, ${mergedColors.error} 10%, transparent)`,
|
|
183
|
-
borderColor: `color-mix(in srgb, ${mergedColors.error} 30%, transparent)`,
|
|
184
|
-
color: mergedColors.error
|
|
185
|
-
},
|
|
186
|
-
[`.${prefixClass("changerawr-alert-success")}`]: {
|
|
187
|
-
backgroundColor: `color-mix(in srgb, ${mergedColors.success} 10%, transparent)`,
|
|
188
|
-
borderColor: `color-mix(in srgb, ${mergedColors.success} 30%, transparent)`,
|
|
189
|
-
color: mergedColors.success
|
|
190
|
-
},
|
|
191
|
-
// Button base styles
|
|
192
|
-
[`.${prefixClass("changerawr-button")}`]: {
|
|
193
|
-
display: "inline-flex",
|
|
194
|
-
alignItems: "center",
|
|
195
|
-
justifyContent: "center",
|
|
196
|
-
borderRadius: "0.5rem",
|
|
197
|
-
fontWeight: "500",
|
|
198
|
-
transitionProperty: "all",
|
|
199
|
-
transitionTimingFunction: "cubic-bezier(0.4, 0, 0.2, 1)",
|
|
200
|
-
transitionDuration: "150ms",
|
|
201
|
-
border: "1px solid transparent",
|
|
202
|
-
cursor: "pointer",
|
|
203
|
-
textDecoration: "none",
|
|
204
|
-
"&:focus": {
|
|
205
|
-
outline: "none",
|
|
206
|
-
ringWidth: "2px",
|
|
207
|
-
ringOffsetWidth: "2px"
|
|
208
|
-
},
|
|
209
|
-
"&:disabled": {
|
|
210
|
-
opacity: "0.5",
|
|
211
|
-
cursor: "not-allowed"
|
|
212
|
-
}
|
|
213
|
-
},
|
|
214
|
-
// Button variants
|
|
215
|
-
[`.${prefixClass("changerawr-button-primary")}`]: {
|
|
216
|
-
backgroundColor: mergedColors.primary,
|
|
217
|
-
color: "#ffffff",
|
|
218
|
-
"&:hover:not(:disabled)": {
|
|
219
|
-
backgroundColor: `color-mix(in srgb, ${mergedColors.primary} 90%, black)`
|
|
220
|
-
},
|
|
221
|
-
"&:focus": {
|
|
222
|
-
ringColor: `color-mix(in srgb, ${mergedColors.primary} 50%, transparent)`
|
|
223
|
-
}
|
|
224
|
-
},
|
|
225
|
-
[`.${prefixClass("changerawr-button-secondary")}`]: {
|
|
226
|
-
backgroundColor: mergedColors.secondary,
|
|
227
|
-
color: "#ffffff",
|
|
228
|
-
"&:hover:not(:disabled)": {
|
|
229
|
-
backgroundColor: `color-mix(in srgb, ${mergedColors.secondary} 90%, black)`
|
|
230
|
-
},
|
|
231
|
-
"&:focus": {
|
|
232
|
-
ringColor: `color-mix(in srgb, ${mergedColors.secondary} 50%, transparent)`
|
|
233
|
-
}
|
|
234
|
-
},
|
|
235
|
-
[`.${prefixClass("changerawr-button-outline")}`]: {
|
|
236
|
-
borderColor: mergedColors.primary,
|
|
237
|
-
color: mergedColors.primary,
|
|
238
|
-
"&:hover:not(:disabled)": {
|
|
239
|
-
backgroundColor: `color-mix(in srgb, ${mergedColors.primary} 5%, transparent)`
|
|
240
|
-
}
|
|
241
|
-
},
|
|
242
|
-
[`.${prefixClass("changerawr-button-ghost")}`]: {
|
|
243
|
-
color: mergedColors.secondary,
|
|
244
|
-
"&:hover:not(:disabled)": {
|
|
245
|
-
backgroundColor: `color-mix(in srgb, ${mergedColors.secondary} 10%, transparent)`
|
|
246
|
-
}
|
|
247
|
-
},
|
|
248
|
-
// Button sizes
|
|
249
|
-
[`.${prefixClass("changerawr-button-sm")}`]: {
|
|
250
|
-
paddingLeft: "0.75rem",
|
|
251
|
-
paddingRight: "0.75rem",
|
|
252
|
-
paddingTop: "0.375rem",
|
|
253
|
-
paddingBottom: "0.375rem",
|
|
254
|
-
fontSize: "0.875rem"
|
|
255
|
-
},
|
|
256
|
-
[`.${prefixClass("changerawr-button-md")}`]: {
|
|
257
|
-
paddingLeft: "1rem",
|
|
258
|
-
paddingRight: "1rem",
|
|
259
|
-
paddingTop: "0.5rem",
|
|
260
|
-
paddingBottom: "0.5rem",
|
|
261
|
-
fontSize: "0.875rem"
|
|
262
|
-
},
|
|
263
|
-
[`.${prefixClass("changerawr-button-lg")}`]: {
|
|
264
|
-
paddingLeft: "1.5rem",
|
|
265
|
-
paddingRight: "1.5rem",
|
|
266
|
-
paddingTop: "0.75rem",
|
|
267
|
-
paddingBottom: "0.75rem",
|
|
268
|
-
fontSize: "1rem"
|
|
269
|
-
},
|
|
270
|
-
// Embed styles
|
|
271
|
-
[`.${prefixClass("changerawr-embed")}`]: {
|
|
272
|
-
borderRadius: "0.5rem",
|
|
273
|
-
border: "1px solid",
|
|
274
|
-
borderColor: mergedColors.border,
|
|
275
|
-
backgroundColor: "#ffffff",
|
|
276
|
-
boxShadow: "0 1px 2px 0 rgb(0 0 0 / 0.05)",
|
|
277
|
-
marginBottom: "1.5rem",
|
|
278
|
-
overflow: "hidden"
|
|
279
|
-
}
|
|
280
|
-
});
|
|
108
|
+
allClasses.push(...EXTENSION_CLASSES);
|
|
281
109
|
}
|
|
282
110
|
if (darkMode) {
|
|
283
|
-
|
|
284
|
-
[`.dark .${prefixClass("changerawr-dark\\:bg-gray-800")}`]: { backgroundColor: "#1f2937" },
|
|
285
|
-
[`.dark .${prefixClass("changerawr-dark\\:text-gray-100")}`]: { color: "#f3f4f6" },
|
|
286
|
-
[`.dark .${prefixClass("changerawr-dark\\:text-gray-300")}`]: { color: "#d1d5db" },
|
|
287
|
-
[`.dark .${prefixClass("changerawr-dark\\:border-gray-600")}`]: { borderColor: "#4b5563" }
|
|
288
|
-
});
|
|
111
|
+
allClasses.push(...DARK_MODE_CLASSES);
|
|
289
112
|
}
|
|
113
|
+
const preserveRules = allClasses.reduce((acc, className) => {
|
|
114
|
+
const safeClassName = className.replace(/[^a-zA-Z0-9]/g, "-");
|
|
115
|
+
acc[`.changerawr-preserve-${safeClassName}`] = {
|
|
116
|
+
// Use CSS custom properties to reference the class without creating actual styles
|
|
117
|
+
"--tw-preserve": `"${className}"`
|
|
118
|
+
};
|
|
119
|
+
return acc;
|
|
120
|
+
}, {});
|
|
121
|
+
addUtilities(preserveRules);
|
|
290
122
|
}
|
|
291
123
|
);
|
|
292
124
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/tailwind/plugin.ts"],"sourcesContent":["/**\r\n * Tailwind CSS plugin for @changerawr/markdown\r\n * Compatible with both Tailwind v3 and v4\r\n */\r\n\r\nimport plugin from 'tailwindcss/plugin';\r\n\r\nexport interface ChangerawrMarkdownPluginOptions {\r\n /** Prefix for all markdown classes (default: none) */\r\n prefix?: string;\r\n /** Whether to include dark mode variants (default: true) */\r\n darkMode?: boolean;\r\n /** Custom color palette */\r\n colors?: {\r\n primary?: string;\r\n secondary?: string;\r\n accent?: string;\r\n info?: string;\r\n warning?: string;\r\n error?: string;\r\n success?: string;\r\n muted?: string;\r\n border?: string;\r\n };\r\n /** Whether to include extension styles (alerts, buttons, etc.) */\r\n includeExtensions?: boolean;\r\n /** Custom class overrides */\r\n customClasses?: Record<string, string>;\r\n}\r\n\r\nconst defaultColors = {\r\n primary: '#3b82f6',\r\n secondary: '#6b7280',\r\n accent: '#8b5cf6',\r\n info: '#3b82f6',\r\n warning: '#f59e0b',\r\n error: '#ef4444',\r\n success: '#10b981',\r\n muted: '#6b7280',\r\n border: '#d1d5db',\r\n};\r\n\r\nexport const changerawrMarkdownPlugin = plugin.withOptions<ChangerawrMarkdownPluginOptions>(\r\n (options = {}) =>\r\n ({ addUtilities, addComponents }) => {\r\n const {\r\n prefix = '',\r\n darkMode = true,\r\n colors = {},\r\n includeExtensions = true,\r\n customClasses = {},\r\n } = options;\r\n\r\n const mergedColors = { ...defaultColors, ...colors };\r\n const prefixClass = (className: string) => (prefix ? `${prefix}-${className}` : className);\r\n\r\n // Base typography utilities\r\n addUtilities({\r\n // Essential typography classes for markdown\r\n [`.${prefixClass('changerawr-text-3xl')}`]: {\r\n fontSize: '1.875rem',\r\n lineHeight: '2.25rem',\r\n },\r\n [`.${prefixClass('changerawr-text-2xl')}`]: {\r\n fontSize: '1.5rem',\r\n lineHeight: '2rem',\r\n },\r\n [`.${prefixClass('changerawr-text-xl')}`]: {\r\n fontSize: '1.25rem',\r\n lineHeight: '1.75rem',\r\n },\r\n [`.${prefixClass('changerawr-text-lg')}`]: {\r\n fontSize: '1.125rem',\r\n lineHeight: '1.75rem',\r\n },\r\n [`.${prefixClass('changerawr-font-bold')}`]: {\r\n fontWeight: '700',\r\n },\r\n [`.${prefixClass('changerawr-font-semibold')}`]: {\r\n fontWeight: '600',\r\n },\r\n [`.${prefixClass('changerawr-font-medium')}`]: {\r\n fontWeight: '500',\r\n },\r\n [`.${prefixClass('changerawr-italic')}`]: {\r\n fontStyle: 'italic',\r\n },\r\n [`.${prefixClass('changerawr-underline')}`]: {\r\n textDecoration: 'underline',\r\n },\r\n [`.${prefixClass('changerawr-line-through')}`]: {\r\n textDecoration: 'line-through',\r\n },\r\n\r\n // Spacing utilities\r\n [`.${prefixClass('changerawr-mt-8')}`]: { marginTop: '2rem' },\r\n [`.${prefixClass('changerawr-mt-6')}`]: { marginTop: '1.5rem' },\r\n [`.${prefixClass('changerawr-mt-5')}`]: { marginTop: '1.25rem' },\r\n [`.${prefixClass('changerawr-mt-4')}`]: { marginTop: '1rem' },\r\n [`.${prefixClass('changerawr-mt-3')}`]: { marginTop: '0.75rem' },\r\n [`.${prefixClass('changerawr-mb-8')}`]: { marginBottom: '2rem' },\r\n [`.${prefixClass('changerawr-mb-6')}`]: { marginBottom: '1.5rem' },\r\n [`.${prefixClass('changerawr-mb-4')}`]: { marginBottom: '1rem' },\r\n [`.${prefixClass('changerawr-mb-3')}`]: { marginBottom: '0.75rem' },\r\n [`.${prefixClass('changerawr-mb-2')}`]: { marginBottom: '0.5rem' },\r\n [`.${prefixClass('changerawr-my-6')}`]: { marginTop: '1.5rem', marginBottom: '1.5rem' },\r\n [`.${prefixClass('changerawr-my-4')}`]: { marginTop: '1rem', marginBottom: '1rem' },\r\n [`.${prefixClass('changerawr-my-2')}`]: { marginTop: '0.5rem', marginBottom: '0.5rem' },\r\n\r\n // Padding utilities\r\n [`.${prefixClass('changerawr-p-4')}`]: { padding: '1rem' },\r\n [`.${prefixClass('changerawr-p-6')}`]: { padding: '1.5rem' },\r\n [`.${prefixClass('changerawr-px-2')}`]: { paddingLeft: '0.5rem', paddingRight: '0.5rem' },\r\n [`.${prefixClass('changerawr-px-3')}`]: { paddingLeft: '0.75rem', paddingRight: '0.75rem' },\r\n [`.${prefixClass('changerawr-px-4')}`]: { paddingLeft: '1rem', paddingRight: '1rem' },\r\n [`.${prefixClass('changerawr-px-6')}`]: { paddingLeft: '1.5rem', paddingRight: '1.5rem' },\r\n [`.${prefixClass('changerawr-py-1')}`]: { paddingTop: '0.25rem', paddingBottom: '0.25rem' },\r\n [`.${prefixClass('changerawr-py-2')}`]: { paddingTop: '0.5rem', paddingBottom: '0.5rem' },\r\n [`.${prefixClass('changerawr-py-3')}`]: { paddingTop: '0.75rem', paddingBottom: '0.75rem' },\r\n [`.${prefixClass('changerawr-pl-4')}`]: { paddingLeft: '1rem' },\r\n [`.${prefixClass('changerawr-pl-6')}`]: { paddingLeft: '1.5rem' },\r\n\r\n // Line height and leading\r\n [`.${prefixClass('changerawr-leading-7')}`]: { lineHeight: '1.75rem' },\r\n [`.${prefixClass('changerawr-leading-relaxed')}`]: { lineHeight: '1.625' },\r\n [`.${prefixClass('changerawr-leading-loose')}`]: { lineHeight: '2' },\r\n\r\n // Layout utilities\r\n [`.${prefixClass('changerawr-flex')}`]: { display: 'flex' },\r\n [`.${prefixClass('changerawr-inline-flex')}`]: { display: 'inline-flex' },\r\n [`.${prefixClass('changerawr-items-center')}`]: { alignItems: 'center' },\r\n [`.${prefixClass('changerawr-justify-center')}`]: { justifyContent: 'center' },\r\n [`.${prefixClass('changerawr-gap-1')}`]: { gap: '0.25rem' },\r\n [`.${prefixClass('changerawr-gap-2')}`]: { gap: '0.5rem' },\r\n [`.${prefixClass('changerawr-gap-3')}`]: { gap: '0.75rem' },\r\n [`.${prefixClass('changerawr-group')}`]: { /* group parent */ },\r\n [`.${prefixClass('changerawr-relative')}`]: { position: 'relative' },\r\n\r\n // Border utilities\r\n [`.${prefixClass('changerawr-border')}`]: { borderWidth: '1px' },\r\n [`.${prefixClass('changerawr-border-l-2')}`]: { borderLeftWidth: '2px' },\r\n [`.${prefixClass('changerawr-border-l-4')}`]: { borderLeftWidth: '4px' },\r\n [`.${prefixClass('changerawr-rounded')}`]: { borderRadius: '0.25rem' },\r\n [`.${prefixClass('changerawr-rounded-lg')}`]: { borderRadius: '0.5rem' },\r\n [`.${prefixClass('changerawr-rounded-md')}`]: { borderRadius: '0.375rem' },\r\n\r\n // Background utilities\r\n [`.${prefixClass('changerawr-bg-gray-50')}`]: { backgroundColor: '#f9fafb' },\r\n [`.${prefixClass('changerawr-bg-gray-100')}`]: { backgroundColor: '#f3f4f6' },\r\n [`.${prefixClass('changerawr-bg-gray-900')}`]: { backgroundColor: '#111827' },\r\n [`.${prefixClass('changerawr-bg-white')}`]: { backgroundColor: '#ffffff' },\r\n\r\n // Text colors\r\n [`.${prefixClass('changerawr-text-gray-100')}`]: { color: '#f3f4f6' },\r\n [`.${prefixClass('changerawr-text-gray-600')}`]: { color: '#4b5563' },\r\n [`.${prefixClass('changerawr-text-gray-700')}`]: { color: '#374151' },\r\n [`.${prefixClass('changerawr-text-gray-800')}`]: { color: '#1f2937' },\r\n [`.${prefixClass('changerawr-text-primary')}`]: { color: mergedColors.primary },\r\n [`.${prefixClass('changerawr-text-muted-foreground')}`]: { color: mergedColors.muted },\r\n\r\n // Border colors\r\n [`.${prefixClass('changerawr-border-border')}`]: { borderColor: mergedColors.border },\r\n\r\n // Display utilities\r\n [`.${prefixClass('changerawr-overflow-x-auto')}`]: { overflowX: 'auto' },\r\n [`.${prefixClass('changerawr-max-w-full')}`]: { maxWidth: '100%' },\r\n [`.${prefixClass('changerawr-h-auto')}`]: { height: 'auto' },\r\n [`.${prefixClass('changerawr-font-mono')}`]: {\r\n fontFamily: 'ui-monospace, SFMono-Regular, \"SF Mono\", Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace',\r\n },\r\n\r\n // Opacity and transitions\r\n [`.${prefixClass('changerawr-opacity-0')}`]: { opacity: '0' },\r\n [`.${prefixClass('changerawr-transition-opacity')}`]: {\r\n transitionProperty: 'opacity',\r\n transitionTimingFunction: 'cubic-bezier(0.4, 0, 0.2, 1)',\r\n transitionDuration: '150ms',\r\n },\r\n [`.${prefixClass('changerawr-transition-colors')}`]: {\r\n transitionProperty: 'color, background-color, border-color, text-decoration-color, fill, stroke',\r\n transitionTimingFunction: 'cubic-bezier(0.4, 0, 0.2, 1)',\r\n transitionDuration: '150ms',\r\n },\r\n\r\n // Hover states\r\n [`.${prefixClass('changerawr-hover\\\\:underline')}:hover`]: { textDecoration: 'underline' },\r\n [`.group:hover .${prefixClass('changerawr-group-hover\\\\:opacity-100')}`]: { opacity: '1' },\r\n\r\n // Shadow utilities\r\n [`.${prefixClass('changerawr-shadow-sm')}`]: {\r\n boxShadow: '0 1px 2px 0 rgb(0 0 0 / 0.05)',\r\n },\r\n\r\n // Custom markdown classes with overrides\r\n ...Object.fromEntries(\r\n Object.entries(customClasses).map(([key, value]) => [\r\n `.${prefixClass(`changerawr-${key}`)}`,\r\n typeof value === 'string' ? { className: value } : value,\r\n ])\r\n ),\r\n });\r\n\r\n // Extension components\r\n if (includeExtensions) {\r\n addComponents({\r\n // Alert base styles\r\n [`.${prefixClass('changerawr-alert')}`]: {\r\n borderLeftWidth: '4px',\r\n padding: '1rem',\r\n marginBottom: '1rem',\r\n borderRadius: '0.375rem',\r\n transitionProperty: 'color, background-color, border-color',\r\n transitionTimingFunction: 'cubic-bezier(0.4, 0, 0.2, 1)',\r\n transitionDuration: '200ms',\r\n },\r\n\r\n // Alert variants using opacity for compatibility\r\n [`.${prefixClass('changerawr-alert-info')}`]: {\r\n backgroundColor: `color-mix(in srgb, ${mergedColors.info} 10%, transparent)`,\r\n borderColor: `color-mix(in srgb, ${mergedColors.info} 30%, transparent)`,\r\n color: mergedColors.info,\r\n },\r\n\r\n [`.${prefixClass('changerawr-alert-warning')}`]: {\r\n backgroundColor: `color-mix(in srgb, ${mergedColors.warning} 10%, transparent)`,\r\n borderColor: `color-mix(in srgb, ${mergedColors.warning} 30%, transparent)`,\r\n color: mergedColors.warning,\r\n },\r\n\r\n [`.${prefixClass('changerawr-alert-error')}`]: {\r\n backgroundColor: `color-mix(in srgb, ${mergedColors.error} 10%, transparent)`,\r\n borderColor: `color-mix(in srgb, ${mergedColors.error} 30%, transparent)`,\r\n color: mergedColors.error,\r\n },\r\n\r\n [`.${prefixClass('changerawr-alert-success')}`]: {\r\n backgroundColor: `color-mix(in srgb, ${mergedColors.success} 10%, transparent)`,\r\n borderColor: `color-mix(in srgb, ${mergedColors.success} 30%, transparent)`,\r\n color: mergedColors.success,\r\n },\r\n\r\n // Button base styles\r\n [`.${prefixClass('changerawr-button')}`]: {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n borderRadius: '0.5rem',\r\n fontWeight: '500',\r\n transitionProperty: 'all',\r\n transitionTimingFunction: 'cubic-bezier(0.4, 0, 0.2, 1)',\r\n transitionDuration: '150ms',\r\n border: '1px solid transparent',\r\n cursor: 'pointer',\r\n textDecoration: 'none',\r\n '&:focus': {\r\n outline: 'none',\r\n ringWidth: '2px',\r\n ringOffsetWidth: '2px',\r\n },\r\n '&:disabled': {\r\n opacity: '0.5',\r\n cursor: 'not-allowed',\r\n },\r\n },\r\n\r\n // Button variants\r\n [`.${prefixClass('changerawr-button-primary')}`]: {\r\n backgroundColor: mergedColors.primary,\r\n color: '#ffffff',\r\n '&:hover:not(:disabled)': {\r\n backgroundColor: `color-mix(in srgb, ${mergedColors.primary} 90%, black)`,\r\n },\r\n '&:focus': {\r\n ringColor: `color-mix(in srgb, ${mergedColors.primary} 50%, transparent)`,\r\n },\r\n },\r\n\r\n [`.${prefixClass('changerawr-button-secondary')}`]: {\r\n backgroundColor: mergedColors.secondary,\r\n color: '#ffffff',\r\n '&:hover:not(:disabled)': {\r\n backgroundColor: `color-mix(in srgb, ${mergedColors.secondary} 90%, black)`,\r\n },\r\n '&:focus': {\r\n ringColor: `color-mix(in srgb, ${mergedColors.secondary} 50%, transparent)`,\r\n },\r\n },\r\n\r\n [`.${prefixClass('changerawr-button-outline')}`]: {\r\n borderColor: mergedColors.primary,\r\n color: mergedColors.primary,\r\n '&:hover:not(:disabled)': {\r\n backgroundColor: `color-mix(in srgb, ${mergedColors.primary} 5%, transparent)`,\r\n },\r\n },\r\n\r\n [`.${prefixClass('changerawr-button-ghost')}`]: {\r\n color: mergedColors.secondary,\r\n '&:hover:not(:disabled)': {\r\n backgroundColor: `color-mix(in srgb, ${mergedColors.secondary} 10%, transparent)`,\r\n },\r\n },\r\n\r\n // Button sizes\r\n [`.${prefixClass('changerawr-button-sm')}`]: {\r\n paddingLeft: '0.75rem',\r\n paddingRight: '0.75rem',\r\n paddingTop: '0.375rem',\r\n paddingBottom: '0.375rem',\r\n fontSize: '0.875rem',\r\n },\r\n\r\n [`.${prefixClass('changerawr-button-md')}`]: {\r\n paddingLeft: '1rem',\r\n paddingRight: '1rem',\r\n paddingTop: '0.5rem',\r\n paddingBottom: '0.5rem',\r\n fontSize: '0.875rem',\r\n },\r\n\r\n [`.${prefixClass('changerawr-button-lg')}`]: {\r\n paddingLeft: '1.5rem',\r\n paddingRight: '1.5rem',\r\n paddingTop: '0.75rem',\r\n paddingBottom: '0.75rem',\r\n fontSize: '1rem',\r\n },\r\n\r\n // Embed styles\r\n [`.${prefixClass('changerawr-embed')}`]: {\r\n borderRadius: '0.5rem',\r\n border: '1px solid',\r\n borderColor: mergedColors.border,\r\n backgroundColor: '#ffffff',\r\n boxShadow: '0 1px 2px 0 rgb(0 0 0 / 0.05)',\r\n marginBottom: '1.5rem',\r\n overflow: 'hidden',\r\n },\r\n });\r\n }\r\n\r\n // Dark mode variants\r\n if (darkMode) {\r\n addUtilities({\r\n [`.dark .${prefixClass('changerawr-dark\\\\:bg-gray-800')}`]: { backgroundColor: '#1f2937' },\r\n [`.dark .${prefixClass('changerawr-dark\\\\:text-gray-100')}`]: { color: '#f3f4f6' },\r\n [`.dark .${prefixClass('changerawr-dark\\\\:text-gray-300')}`]: { color: '#d1d5db' },\r\n [`.dark .${prefixClass('changerawr-dark\\\\:border-gray-600')}`]: { borderColor: '#4b5563' },\r\n });\r\n }\r\n }\r\n);\r\n\r\n// CSS-only version for Tailwind v4\r\nexport const changerawrMarkdownCSS = (options: ChangerawrMarkdownPluginOptions = {}) => {\r\n const {\r\n prefix = '',\r\n colors = {},\r\n includeExtensions = true,\r\n } = options;\r\n\r\n const mergedColors = { ...defaultColors, ...colors };\r\n const prefixClass = (className: string) => (prefix ? `${prefix}-${className}` : className);\r\n\r\n return `\r\n/* Changerawr Markdown Styles */\r\n@layer utilities {\r\n /* Typography */\r\n .${prefixClass('changerawr-text-3xl')} { font-size: 1.875rem; line-height: 2.25rem; }\r\n .${prefixClass('changerawr-text-2xl')} { font-size: 1.5rem; line-height: 2rem; }\r\n .${prefixClass('changerawr-text-xl')} { font-size: 1.25rem; line-height: 1.75rem; }\r\n .${prefixClass('changerawr-text-lg')} { font-size: 1.125rem; line-height: 1.75rem; }\r\n .${prefixClass('changerawr-font-bold')} { font-weight: 700; }\r\n .${prefixClass('changerawr-font-semibold')} { font-weight: 600; }\r\n .${prefixClass('changerawr-font-medium')} { font-weight: 500; }\r\n .${prefixClass('changerawr-italic')} { font-style: italic; }\r\n .${prefixClass('changerawr-underline')} { text-decoration: underline; }\r\n \r\n /* Spacing */\r\n .${prefixClass('changerawr-mt-8')} { margin-top: 2rem; }\r\n .${prefixClass('changerawr-mt-6')} { margin-top: 1.5rem; }\r\n .${prefixClass('changerawr-mb-4')} { margin-bottom: 1rem; }\r\n .${prefixClass('changerawr-leading-7')} { line-height: 1.75rem; }\r\n \r\n /* Layout */\r\n .${prefixClass('changerawr-flex')} { display: flex; }\r\n .${prefixClass('changerawr-items-center')} { align-items: center; }\r\n .${prefixClass('changerawr-gap-2')} { gap: 0.5rem; }\r\n \r\n /* Colors */\r\n .${prefixClass('changerawr-text-primary')} { color: ${mergedColors.primary}; }\r\n .${prefixClass('changerawr-text-muted-foreground')} { color: ${mergedColors.muted}; }\r\n}\r\n\r\n${includeExtensions ? `\r\n@layer components {\r\n /* Alert Components */\r\n .${prefixClass('changerawr-alert')} {\r\n border-left-width: 4px;\r\n padding: 1rem;\r\n margin-bottom: 1rem;\r\n border-radius: 0.375rem;\r\n transition: color, background-color, border-color 200ms;\r\n }\r\n \r\n .${prefixClass('changerawr-alert-info')} {\r\n background-color: color-mix(in srgb, ${mergedColors.info} 10%, transparent);\r\n border-color: color-mix(in srgb, ${mergedColors.info} 30%, transparent);\r\n color: ${mergedColors.info};\r\n }\r\n \r\n .${prefixClass('changerawr-alert-warning')} {\r\n background-color: color-mix(in srgb, ${mergedColors.warning} 10%, transparent);\r\n border-color: color-mix(in srgb, ${mergedColors.warning} 30%, transparent);\r\n color: ${mergedColors.warning};\r\n }\r\n \r\n .${prefixClass('changerawr-alert-error')} {\r\n background-color: color-mix(in srgb, ${mergedColors.error} 10%, transparent);\r\n border-color: color-mix(in srgb, ${mergedColors.error} 30%, transparent);\r\n color: ${mergedColors.error};\r\n }\r\n \r\n .${prefixClass('changerawr-alert-success')} {\r\n background-color: color-mix(in srgb, ${mergedColors.success} 10%, transparent);\r\n border-color: color-mix(in srgb, ${mergedColors.success} 30%, transparent);\r\n color: ${mergedColors.success};\r\n }\r\n\r\n /* Button Components */\r\n .${prefixClass('changerawr-button')} {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n border-radius: 0.5rem;\r\n font-weight: 500;\r\n transition: all 150ms;\r\n border: 1px solid transparent;\r\n cursor: pointer;\r\n text-decoration: none;\r\n }\r\n \r\n .${prefixClass('changerawr-button-primary')} {\r\n background-color: ${mergedColors.primary};\r\n color: white;\r\n }\r\n \r\n .${prefixClass('changerawr-button-primary')}:hover:not(:disabled) {\r\n background-color: color-mix(in srgb, ${mergedColors.primary} 90%, black);\r\n }\r\n \r\n .${prefixClass('changerawr-button-md')} {\r\n padding: 0.5rem 1rem;\r\n font-size: 0.875rem;\r\n }\r\n}\r\n` : ''}\r\n`;\r\n};\r\n\r\nexport default changerawrMarkdownPlugin;"],"mappings":";AAKA,OAAO,YAAY;AAyBnB,IAAM,gBAAgB;AAAA,EAClB,SAAS;AAAA,EACT,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,SAAS;AAAA,EACT,OAAO;AAAA,EACP,SAAS;AAAA,EACT,OAAO;AAAA,EACP,QAAQ;AACZ;AAEO,IAAM,2BAA2B,OAAO;AAAA,EAC3C,CAAC,UAAU,CAAC,MACR,CAAC,EAAE,cAAc,cAAc,MAAM;AACjC,UAAM;AAAA,MACF,SAAS;AAAA,MACT,WAAW;AAAA,MACX,SAAS,CAAC;AAAA,MACV,oBAAoB;AAAA,MACpB,gBAAgB,CAAC;AAAA,IACrB,IAAI;AAEJ,UAAM,eAAe,EAAE,GAAG,eAAe,GAAG,OAAO;AACnD,UAAM,cAAc,CAAC,cAAuB,SAAS,GAAG,MAAM,IAAI,SAAS,KAAK;AAGhF,iBAAa;AAAA;AAAA,MAET,CAAC,IAAI,YAAY,qBAAqB,CAAC,EAAE,GAAG;AAAA,QACxC,UAAU;AAAA,QACV,YAAY;AAAA,MAChB;AAAA,MACA,CAAC,IAAI,YAAY,qBAAqB,CAAC,EAAE,GAAG;AAAA,QACxC,UAAU;AAAA,QACV,YAAY;AAAA,MAChB;AAAA,MACA,CAAC,IAAI,YAAY,oBAAoB,CAAC,EAAE,GAAG;AAAA,QACvC,UAAU;AAAA,QACV,YAAY;AAAA,MAChB;AAAA,MACA,CAAC,IAAI,YAAY,oBAAoB,CAAC,EAAE,GAAG;AAAA,QACvC,UAAU;AAAA,QACV,YAAY;AAAA,MAChB;AAAA,MACA,CAAC,IAAI,YAAY,sBAAsB,CAAC,EAAE,GAAG;AAAA,QACzC,YAAY;AAAA,MAChB;AAAA,MACA,CAAC,IAAI,YAAY,0BAA0B,CAAC,EAAE,GAAG;AAAA,QAC7C,YAAY;AAAA,MAChB;AAAA,MACA,CAAC,IAAI,YAAY,wBAAwB,CAAC,EAAE,GAAG;AAAA,QAC3C,YAAY;AAAA,MAChB;AAAA,MACA,CAAC,IAAI,YAAY,mBAAmB,CAAC,EAAE,GAAG;AAAA,QACtC,WAAW;AAAA,MACf;AAAA,MACA,CAAC,IAAI,YAAY,sBAAsB,CAAC,EAAE,GAAG;AAAA,QACzC,gBAAgB;AAAA,MACpB;AAAA,MACA,CAAC,IAAI,YAAY,yBAAyB,CAAC,EAAE,GAAG;AAAA,QAC5C,gBAAgB;AAAA,MACpB;AAAA;AAAA,MAGA,CAAC,IAAI,YAAY,iBAAiB,CAAC,EAAE,GAAG,EAAE,WAAW,OAAO;AAAA,MAC5D,CAAC,IAAI,YAAY,iBAAiB,CAAC,EAAE,GAAG,EAAE,WAAW,SAAS;AAAA,MAC9D,CAAC,IAAI,YAAY,iBAAiB,CAAC,EAAE,GAAG,EAAE,WAAW,UAAU;AAAA,MAC/D,CAAC,IAAI,YAAY,iBAAiB,CAAC,EAAE,GAAG,EAAE,WAAW,OAAO;AAAA,MAC5D,CAAC,IAAI,YAAY,iBAAiB,CAAC,EAAE,GAAG,EAAE,WAAW,UAAU;AAAA,MAC/D,CAAC,IAAI,YAAY,iBAAiB,CAAC,EAAE,GAAG,EAAE,cAAc,OAAO;AAAA,MAC/D,CAAC,IAAI,YAAY,iBAAiB,CAAC,EAAE,GAAG,EAAE,cAAc,SAAS;AAAA,MACjE,CAAC,IAAI,YAAY,iBAAiB,CAAC,EAAE,GAAG,EAAE,cAAc,OAAO;AAAA,MAC/D,CAAC,IAAI,YAAY,iBAAiB,CAAC,EAAE,GAAG,EAAE,cAAc,UAAU;AAAA,MAClE,CAAC,IAAI,YAAY,iBAAiB,CAAC,EAAE,GAAG,EAAE,cAAc,SAAS;AAAA,MACjE,CAAC,IAAI,YAAY,iBAAiB,CAAC,EAAE,GAAG,EAAE,WAAW,UAAU,cAAc,SAAS;AAAA,MACtF,CAAC,IAAI,YAAY,iBAAiB,CAAC,EAAE,GAAG,EAAE,WAAW,QAAQ,cAAc,OAAO;AAAA,MAClF,CAAC,IAAI,YAAY,iBAAiB,CAAC,EAAE,GAAG,EAAE,WAAW,UAAU,cAAc,SAAS;AAAA;AAAA,MAGtF,CAAC,IAAI,YAAY,gBAAgB,CAAC,EAAE,GAAG,EAAE,SAAS,OAAO;AAAA,MACzD,CAAC,IAAI,YAAY,gBAAgB,CAAC,EAAE,GAAG,EAAE,SAAS,SAAS;AAAA,MAC3D,CAAC,IAAI,YAAY,iBAAiB,CAAC,EAAE,GAAG,EAAE,aAAa,UAAU,cAAc,SAAS;AAAA,MACxF,CAAC,IAAI,YAAY,iBAAiB,CAAC,EAAE,GAAG,EAAE,aAAa,WAAW,cAAc,UAAU;AAAA,MAC1F,CAAC,IAAI,YAAY,iBAAiB,CAAC,EAAE,GAAG,EAAE,aAAa,QAAQ,cAAc,OAAO;AAAA,MACpF,CAAC,IAAI,YAAY,iBAAiB,CAAC,EAAE,GAAG,EAAE,aAAa,UAAU,cAAc,SAAS;AAAA,MACxF,CAAC,IAAI,YAAY,iBAAiB,CAAC,EAAE,GAAG,EAAE,YAAY,WAAW,eAAe,UAAU;AAAA,MAC1F,CAAC,IAAI,YAAY,iBAAiB,CAAC,EAAE,GAAG,EAAE,YAAY,UAAU,eAAe,SAAS;AAAA,MACxF,CAAC,IAAI,YAAY,iBAAiB,CAAC,EAAE,GAAG,EAAE,YAAY,WAAW,eAAe,UAAU;AAAA,MAC1F,CAAC,IAAI,YAAY,iBAAiB,CAAC,EAAE,GAAG,EAAE,aAAa,OAAO;AAAA,MAC9D,CAAC,IAAI,YAAY,iBAAiB,CAAC,EAAE,GAAG,EAAE,aAAa,SAAS;AAAA;AAAA,MAGhE,CAAC,IAAI,YAAY,sBAAsB,CAAC,EAAE,GAAG,EAAE,YAAY,UAAU;AAAA,MACrE,CAAC,IAAI,YAAY,4BAA4B,CAAC,EAAE,GAAG,EAAE,YAAY,QAAQ;AAAA,MACzE,CAAC,IAAI,YAAY,0BAA0B,CAAC,EAAE,GAAG,EAAE,YAAY,IAAI;AAAA;AAAA,MAGnE,CAAC,IAAI,YAAY,iBAAiB,CAAC,EAAE,GAAG,EAAE,SAAS,OAAO;AAAA,MAC1D,CAAC,IAAI,YAAY,wBAAwB,CAAC,EAAE,GAAG,EAAE,SAAS,cAAc;AAAA,MACxE,CAAC,IAAI,YAAY,yBAAyB,CAAC,EAAE,GAAG,EAAE,YAAY,SAAS;AAAA,MACvE,CAAC,IAAI,YAAY,2BAA2B,CAAC,EAAE,GAAG,EAAE,gBAAgB,SAAS;AAAA,MAC7E,CAAC,IAAI,YAAY,kBAAkB,CAAC,EAAE,GAAG,EAAE,KAAK,UAAU;AAAA,MAC1D,CAAC,IAAI,YAAY,kBAAkB,CAAC,EAAE,GAAG,EAAE,KAAK,SAAS;AAAA,MACzD,CAAC,IAAI,YAAY,kBAAkB,CAAC,EAAE,GAAG,EAAE,KAAK,UAAU;AAAA,MAC1D,CAAC,IAAI,YAAY,kBAAkB,CAAC,EAAE,GAAG;AAAA;AAAA,MAAqB;AAAA,MAC9D,CAAC,IAAI,YAAY,qBAAqB,CAAC,EAAE,GAAG,EAAE,UAAU,WAAW;AAAA;AAAA,MAGnE,CAAC,IAAI,YAAY,mBAAmB,CAAC,EAAE,GAAG,EAAE,aAAa,MAAM;AAAA,MAC/D,CAAC,IAAI,YAAY,uBAAuB,CAAC,EAAE,GAAG,EAAE,iBAAiB,MAAM;AAAA,MACvE,CAAC,IAAI,YAAY,uBAAuB,CAAC,EAAE,GAAG,EAAE,iBAAiB,MAAM;AAAA,MACvE,CAAC,IAAI,YAAY,oBAAoB,CAAC,EAAE,GAAG,EAAE,cAAc,UAAU;AAAA,MACrE,CAAC,IAAI,YAAY,uBAAuB,CAAC,EAAE,GAAG,EAAE,cAAc,SAAS;AAAA,MACvE,CAAC,IAAI,YAAY,uBAAuB,CAAC,EAAE,GAAG,EAAE,cAAc,WAAW;AAAA;AAAA,MAGzE,CAAC,IAAI,YAAY,uBAAuB,CAAC,EAAE,GAAG,EAAE,iBAAiB,UAAU;AAAA,MAC3E,CAAC,IAAI,YAAY,wBAAwB,CAAC,EAAE,GAAG,EAAE,iBAAiB,UAAU;AAAA,MAC5E,CAAC,IAAI,YAAY,wBAAwB,CAAC,EAAE,GAAG,EAAE,iBAAiB,UAAU;AAAA,MAC5E,CAAC,IAAI,YAAY,qBAAqB,CAAC,EAAE,GAAG,EAAE,iBAAiB,UAAU;AAAA;AAAA,MAGzE,CAAC,IAAI,YAAY,0BAA0B,CAAC,EAAE,GAAG,EAAE,OAAO,UAAU;AAAA,MACpE,CAAC,IAAI,YAAY,0BAA0B,CAAC,EAAE,GAAG,EAAE,OAAO,UAAU;AAAA,MACpE,CAAC,IAAI,YAAY,0BAA0B,CAAC,EAAE,GAAG,EAAE,OAAO,UAAU;AAAA,MACpE,CAAC,IAAI,YAAY,0BAA0B,CAAC,EAAE,GAAG,EAAE,OAAO,UAAU;AAAA,MACpE,CAAC,IAAI,YAAY,yBAAyB,CAAC,EAAE,GAAG,EAAE,OAAO,aAAa,QAAQ;AAAA,MAC9E,CAAC,IAAI,YAAY,kCAAkC,CAAC,EAAE,GAAG,EAAE,OAAO,aAAa,MAAM;AAAA;AAAA,MAGrF,CAAC,IAAI,YAAY,0BAA0B,CAAC,EAAE,GAAG,EAAE,aAAa,aAAa,OAAO;AAAA;AAAA,MAGpF,CAAC,IAAI,YAAY,4BAA4B,CAAC,EAAE,GAAG,EAAE,WAAW,OAAO;AAAA,MACvE,CAAC,IAAI,YAAY,uBAAuB,CAAC,EAAE,GAAG,EAAE,UAAU,OAAO;AAAA,MACjE,CAAC,IAAI,YAAY,mBAAmB,CAAC,EAAE,GAAG,EAAE,QAAQ,OAAO;AAAA,MAC3D,CAAC,IAAI,YAAY,sBAAsB,CAAC,EAAE,GAAG;AAAA,QACzC,YAAY;AAAA,MAChB;AAAA;AAAA,MAGA,CAAC,IAAI,YAAY,sBAAsB,CAAC,EAAE,GAAG,EAAE,SAAS,IAAI;AAAA,MAC5D,CAAC,IAAI,YAAY,+BAA+B,CAAC,EAAE,GAAG;AAAA,QAClD,oBAAoB;AAAA,QACpB,0BAA0B;AAAA,QAC1B,oBAAoB;AAAA,MACxB;AAAA,MACA,CAAC,IAAI,YAAY,8BAA8B,CAAC,EAAE,GAAG;AAAA,QACjD,oBAAoB;AAAA,QACpB,0BAA0B;AAAA,QAC1B,oBAAoB;AAAA,MACxB;AAAA;AAAA,MAGA,CAAC,IAAI,YAAY,8BAA8B,CAAC,QAAQ,GAAG,EAAE,gBAAgB,YAAY;AAAA,MACzF,CAAC,iBAAiB,YAAY,sCAAsC,CAAC,EAAE,GAAG,EAAE,SAAS,IAAI;AAAA;AAAA,MAGzF,CAAC,IAAI,YAAY,sBAAsB,CAAC,EAAE,GAAG;AAAA,QACzC,WAAW;AAAA,MACf;AAAA;AAAA,MAGA,GAAG,OAAO;AAAA,QACN,OAAO,QAAQ,aAAa,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM;AAAA,UAChD,IAAI,YAAY,cAAc,GAAG,EAAE,CAAC;AAAA,UACpC,OAAO,UAAU,WAAW,EAAE,WAAW,MAAM,IAAI;AAAA,QACvD,CAAC;AAAA,MACL;AAAA,IACJ,CAAC;AAGD,QAAI,mBAAmB;AACnB,oBAAc;AAAA;AAAA,QAEV,CAAC,IAAI,YAAY,kBAAkB,CAAC,EAAE,GAAG;AAAA,UACrC,iBAAiB;AAAA,UACjB,SAAS;AAAA,UACT,cAAc;AAAA,UACd,cAAc;AAAA,UACd,oBAAoB;AAAA,UACpB,0BAA0B;AAAA,UAC1B,oBAAoB;AAAA,QACxB;AAAA;AAAA,QAGA,CAAC,IAAI,YAAY,uBAAuB,CAAC,EAAE,GAAG;AAAA,UAC1C,iBAAiB,sBAAsB,aAAa,IAAI;AAAA,UACxD,aAAa,sBAAsB,aAAa,IAAI;AAAA,UACpD,OAAO,aAAa;AAAA,QACxB;AAAA,QAEA,CAAC,IAAI,YAAY,0BAA0B,CAAC,EAAE,GAAG;AAAA,UAC7C,iBAAiB,sBAAsB,aAAa,OAAO;AAAA,UAC3D,aAAa,sBAAsB,aAAa,OAAO;AAAA,UACvD,OAAO,aAAa;AAAA,QACxB;AAAA,QAEA,CAAC,IAAI,YAAY,wBAAwB,CAAC,EAAE,GAAG;AAAA,UAC3C,iBAAiB,sBAAsB,aAAa,KAAK;AAAA,UACzD,aAAa,sBAAsB,aAAa,KAAK;AAAA,UACrD,OAAO,aAAa;AAAA,QACxB;AAAA,QAEA,CAAC,IAAI,YAAY,0BAA0B,CAAC,EAAE,GAAG;AAAA,UAC7C,iBAAiB,sBAAsB,aAAa,OAAO;AAAA,UAC3D,aAAa,sBAAsB,aAAa,OAAO;AAAA,UACvD,OAAO,aAAa;AAAA,QACxB;AAAA;AAAA,QAGA,CAAC,IAAI,YAAY,mBAAmB,CAAC,EAAE,GAAG;AAAA,UACtC,SAAS;AAAA,UACT,YAAY;AAAA,UACZ,gBAAgB;AAAA,UAChB,cAAc;AAAA,UACd,YAAY;AAAA,UACZ,oBAAoB;AAAA,UACpB,0BAA0B;AAAA,UAC1B,oBAAoB;AAAA,UACpB,QAAQ;AAAA,UACR,QAAQ;AAAA,UACR,gBAAgB;AAAA,UAChB,WAAW;AAAA,YACP,SAAS;AAAA,YACT,WAAW;AAAA,YACX,iBAAiB;AAAA,UACrB;AAAA,UACA,cAAc;AAAA,YACV,SAAS;AAAA,YACT,QAAQ;AAAA,UACZ;AAAA,QACJ;AAAA;AAAA,QAGA,CAAC,IAAI,YAAY,2BAA2B,CAAC,EAAE,GAAG;AAAA,UAC9C,iBAAiB,aAAa;AAAA,UAC9B,OAAO;AAAA,UACP,0BAA0B;AAAA,YACtB,iBAAiB,sBAAsB,aAAa,OAAO;AAAA,UAC/D;AAAA,UACA,WAAW;AAAA,YACP,WAAW,sBAAsB,aAAa,OAAO;AAAA,UACzD;AAAA,QACJ;AAAA,QAEA,CAAC,IAAI,YAAY,6BAA6B,CAAC,EAAE,GAAG;AAAA,UAChD,iBAAiB,aAAa;AAAA,UAC9B,OAAO;AAAA,UACP,0BAA0B;AAAA,YACtB,iBAAiB,sBAAsB,aAAa,SAAS;AAAA,UACjE;AAAA,UACA,WAAW;AAAA,YACP,WAAW,sBAAsB,aAAa,SAAS;AAAA,UAC3D;AAAA,QACJ;AAAA,QAEA,CAAC,IAAI,YAAY,2BAA2B,CAAC,EAAE,GAAG;AAAA,UAC9C,aAAa,aAAa;AAAA,UAC1B,OAAO,aAAa;AAAA,UACpB,0BAA0B;AAAA,YACtB,iBAAiB,sBAAsB,aAAa,OAAO;AAAA,UAC/D;AAAA,QACJ;AAAA,QAEA,CAAC,IAAI,YAAY,yBAAyB,CAAC,EAAE,GAAG;AAAA,UAC5C,OAAO,aAAa;AAAA,UACpB,0BAA0B;AAAA,YACtB,iBAAiB,sBAAsB,aAAa,SAAS;AAAA,UACjE;AAAA,QACJ;AAAA;AAAA,QAGA,CAAC,IAAI,YAAY,sBAAsB,CAAC,EAAE,GAAG;AAAA,UACzC,aAAa;AAAA,UACb,cAAc;AAAA,UACd,YAAY;AAAA,UACZ,eAAe;AAAA,UACf,UAAU;AAAA,QACd;AAAA,QAEA,CAAC,IAAI,YAAY,sBAAsB,CAAC,EAAE,GAAG;AAAA,UACzC,aAAa;AAAA,UACb,cAAc;AAAA,UACd,YAAY;AAAA,UACZ,eAAe;AAAA,UACf,UAAU;AAAA,QACd;AAAA,QAEA,CAAC,IAAI,YAAY,sBAAsB,CAAC,EAAE,GAAG;AAAA,UACzC,aAAa;AAAA,UACb,cAAc;AAAA,UACd,YAAY;AAAA,UACZ,eAAe;AAAA,UACf,UAAU;AAAA,QACd;AAAA;AAAA,QAGA,CAAC,IAAI,YAAY,kBAAkB,CAAC,EAAE,GAAG;AAAA,UACrC,cAAc;AAAA,UACd,QAAQ;AAAA,UACR,aAAa,aAAa;AAAA,UAC1B,iBAAiB;AAAA,UACjB,WAAW;AAAA,UACX,cAAc;AAAA,UACd,UAAU;AAAA,QACd;AAAA,MACJ,CAAC;AAAA,IACL;AAGA,QAAI,UAAU;AACV,mBAAa;AAAA,QACT,CAAC,UAAU,YAAY,+BAA+B,CAAC,EAAE,GAAG,EAAE,iBAAiB,UAAU;AAAA,QACzF,CAAC,UAAU,YAAY,iCAAiC,CAAC,EAAE,GAAG,EAAE,OAAO,UAAU;AAAA,QACjF,CAAC,UAAU,YAAY,iCAAiC,CAAC,EAAE,GAAG,EAAE,OAAO,UAAU;AAAA,QACjF,CAAC,UAAU,YAAY,mCAAmC,CAAC,EAAE,GAAG,EAAE,aAAa,UAAU;AAAA,MAC7F,CAAC;AAAA,IACL;AAAA,EACJ;AACR;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/tailwind/plugin.ts"],"sourcesContent":["/**\r\n * Tailwind CSS safelist plugin for @changerawr/markdown\r\n *\r\n * This plugin ensures standard Tailwind classes used by markdown rendering\r\n * are included in the final CSS build and not purged.\r\n *\r\n */\r\n\r\nimport plugin from 'tailwindcss/plugin';\r\n\r\nexport interface ChangerawrMarkdownPluginOptions {\r\n /** Whether to include extension classes for alerts and buttons (default: true) */\r\n includeExtensions?: boolean;\r\n /** Whether to include dark mode variants (default: true) */\r\n darkMode?: boolean;\r\n}\r\n\r\n/**\r\n * Core Tailwind classes used by markdown components\r\n */\r\nconst CORE_CLASSES = [\r\n // Typography\r\n 'text-3xl', 'text-2xl', 'text-xl', 'text-lg', 'text-base', 'text-sm',\r\n 'font-bold', 'font-semibold', 'font-medium',\r\n 'italic', 'underline', 'line-through',\r\n 'leading-7', 'leading-relaxed',\r\n\r\n // Spacing\r\n 'mt-8', 'mt-6', 'mt-5', 'mt-4', 'mt-3',\r\n 'mb-6', 'mb-4', 'mb-3', 'mb-2',\r\n 'my-6', 'my-4',\r\n 'p-4', 'p-6',\r\n 'px-1.5', 'px-2', 'px-3', 'px-4',\r\n 'py-0.5', 'py-1', 'py-2',\r\n 'pl-4', 'pl-6',\r\n\r\n // Layout\r\n 'flex', 'inline-flex', 'items-center', 'justify-center',\r\n 'gap-2', 'space-y-1',\r\n 'list-disc', 'list-inside', 'ml-4',\r\n\r\n // Borders and backgrounds\r\n 'border-l-2', 'border-l-4',\r\n 'rounded', 'rounded-lg', 'rounded-md',\r\n 'bg-muted',\r\n\r\n // Images\r\n 'max-w-full', 'h-auto', 'overflow-x-auto',\r\n\r\n // Interactions\r\n 'hover:underline', 'transition-all', 'duration-200',\r\n 'cursor-pointer'\r\n];\r\n\r\n/**\r\n * Extension classes for alerts and buttons\r\n */\r\nconst EXTENSION_CLASSES = [\r\n // Alert colors (using opacity syntax)\r\n 'bg-blue-500/10', 'border-blue-500/30', 'text-blue-600', 'border-l-blue-500',\r\n 'bg-amber-500/10', 'border-amber-500/30', 'text-amber-600', 'border-l-amber-500',\r\n 'bg-red-500/10', 'border-red-500/30', 'text-red-600', 'border-l-red-500',\r\n 'bg-green-500/10', 'border-green-500/30', 'text-green-600', 'border-l-green-500',\r\n\r\n // Button variants\r\n 'bg-blue-600', 'text-white', 'hover:bg-blue-700',\r\n 'bg-gray-200', 'text-gray-900', 'hover:bg-gray-300'\r\n];\r\n\r\n/**\r\n * Dark mode variants\r\n */\r\nconst DARK_MODE_CLASSES = [\r\n 'dark:text-blue-400', 'dark:text-amber-400', 'dark:text-red-400', 'dark:text-green-400',\r\n 'dark:bg-gray-800', 'dark:text-gray-100'\r\n];\r\n\r\nexport const changerawrMarkdownPlugin = plugin.withOptions<ChangerawrMarkdownPluginOptions>(\r\n (options = {}) => ({ addUtilities }) => {\r\n const { includeExtensions = true, darkMode = true } = options;\r\n\r\n let allClasses = [...CORE_CLASSES];\r\n\r\n if (includeExtensions) {\r\n allClasses.push(...EXTENSION_CLASSES);\r\n }\r\n\r\n if (darkMode) {\r\n allClasses.push(...DARK_MODE_CLASSES);\r\n }\r\n\r\n // Create hidden utilities that reference the classes\r\n // This ensures Tailwind includes them in the final CSS\r\n const preserveRules = allClasses.reduce((acc, className) => {\r\n const safeClassName = className.replace(/[^a-zA-Z0-9]/g, '-');\r\n acc[`.changerawr-preserve-${safeClassName}`] = {\r\n // Use CSS custom properties to reference the class without creating actual styles\r\n '--tw-preserve': `\"${className}\"`\r\n };\r\n return acc;\r\n }, {} as Record<string, Record<string, string>>);\r\n\r\n addUtilities(preserveRules);\r\n }\r\n);\r\n\r\nexport default changerawrMarkdownPlugin;"],"mappings":";AAQA,OAAO,YAAY;AAYnB,IAAM,eAAe;AAAA;AAAA,EAEjB;AAAA,EAAY;AAAA,EAAY;AAAA,EAAW;AAAA,EAAW;AAAA,EAAa;AAAA,EAC3D;AAAA,EAAa;AAAA,EAAiB;AAAA,EAC9B;AAAA,EAAU;AAAA,EAAa;AAAA,EACvB;AAAA,EAAa;AAAA;AAAA,EAGb;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAChC;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EACxB;AAAA,EAAQ;AAAA,EACR;AAAA,EAAO;AAAA,EACP;AAAA,EAAU;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAC1B;AAAA,EAAU;AAAA,EAAQ;AAAA,EAClB;AAAA,EAAQ;AAAA;AAAA,EAGR;AAAA,EAAQ;AAAA,EAAe;AAAA,EAAgB;AAAA,EACvC;AAAA,EAAS;AAAA,EACT;AAAA,EAAa;AAAA,EAAe;AAAA;AAAA,EAG5B;AAAA,EAAc;AAAA,EACd;AAAA,EAAW;AAAA,EAAc;AAAA,EACzB;AAAA;AAAA,EAGA;AAAA,EAAc;AAAA,EAAU;AAAA;AAAA,EAGxB;AAAA,EAAmB;AAAA,EAAkB;AAAA,EACrC;AACJ;AAKA,IAAM,oBAAoB;AAAA;AAAA,EAEtB;AAAA,EAAkB;AAAA,EAAsB;AAAA,EAAiB;AAAA,EACzD;AAAA,EAAmB;AAAA,EAAuB;AAAA,EAAkB;AAAA,EAC5D;AAAA,EAAiB;AAAA,EAAqB;AAAA,EAAgB;AAAA,EACtD;AAAA,EAAmB;AAAA,EAAuB;AAAA,EAAkB;AAAA;AAAA,EAG5D;AAAA,EAAe;AAAA,EAAc;AAAA,EAC7B;AAAA,EAAe;AAAA,EAAiB;AACpC;AAKA,IAAM,oBAAoB;AAAA,EACtB;AAAA,EAAsB;AAAA,EAAuB;AAAA,EAAqB;AAAA,EAClE;AAAA,EAAoB;AACxB;AAEO,IAAM,2BAA2B,OAAO;AAAA,EAC3C,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,aAAa,MAAM;AACpC,UAAM,EAAE,oBAAoB,MAAM,WAAW,KAAK,IAAI;AAEtD,QAAI,aAAa,CAAC,GAAG,YAAY;AAEjC,QAAI,mBAAmB;AACnB,iBAAW,KAAK,GAAG,iBAAiB;AAAA,IACxC;AAEA,QAAI,UAAU;AACV,iBAAW,KAAK,GAAG,iBAAiB;AAAA,IACxC;AAIA,UAAM,gBAAgB,WAAW,OAAO,CAAC,KAAK,cAAc;AACxD,YAAM,gBAAgB,UAAU,QAAQ,iBAAiB,GAAG;AAC5D,UAAI,wBAAwB,aAAa,EAAE,IAAI;AAAA;AAAA,QAE3C,iBAAiB,IAAI,SAAS;AAAA,MAClC;AACA,aAAO;AAAA,IACX,GAAG,CAAC,CAA2C;AAE/C,iBAAa,aAAa;AAAA,EAC9B;AACJ;","names":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@changerawr/markdown",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.2",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -49,8 +49,9 @@
|
|
|
49
49
|
"import": "./dist/standalone.mjs",
|
|
50
50
|
"require": "./dist/standalone.js"
|
|
51
51
|
},
|
|
52
|
-
"./
|
|
53
|
-
"./
|
|
52
|
+
"./css": "./dist/css/index.css",
|
|
53
|
+
"./css/core": "./dist/css/core.css",
|
|
54
|
+
"./package.json": "./package.json"
|
|
54
55
|
},
|
|
55
56
|
"files": [
|
|
56
57
|
"dist",
|
|
@@ -59,6 +60,7 @@
|
|
|
59
60
|
],
|
|
60
61
|
"scripts": {
|
|
61
62
|
"build": "tsup",
|
|
63
|
+
"postbuild": "cpx 'src/css/**/*' dist/css",
|
|
62
64
|
"dev": "tsup --watch",
|
|
63
65
|
"test": "vitest",
|
|
64
66
|
"test:watch": "vitest --watch",
|
|
@@ -100,6 +102,7 @@
|
|
|
100
102
|
"@typescript-eslint/eslint-plugin": "^6.20.0",
|
|
101
103
|
"@typescript-eslint/parser": "^6.20.0",
|
|
102
104
|
"@vitest/coverage-v8": "^3.2.4",
|
|
105
|
+
"cpx2": "^8.0.0",
|
|
103
106
|
"eslint": "^8.56.0",
|
|
104
107
|
"jsdom": "^24.0.0",
|
|
105
108
|
"react": "^18.2.0",
|
|
@@ -109,4 +112,4 @@
|
|
|
109
112
|
"typescript": "^5.3.3",
|
|
110
113
|
"vitest": "^3.2.4"
|
|
111
114
|
}
|
|
112
|
-
}
|
|
115
|
+
}
|