@duskmoon-dev/el-markdown 0.1.0 → 0.3.0
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/README.md +21 -9
- package/dist/cjs/index.js +20 -193
- package/dist/cjs/index.js.map +3 -3
- package/dist/cjs/register.js +27625 -0
- package/dist/cjs/register.js.map +273 -0
- package/dist/esm/index.js +20 -193
- package/dist/esm/index.js.map +3 -3
- package/dist/esm/register.js +27606 -0
- package/dist/esm/register.js.map +273 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/el-dm-markdown.d.ts.map +1 -1
- package/dist/types/register.d.ts +2 -0
- package/dist/types/register.d.ts.map +1 -0
- package/package.json +20 -5
package/README.md
CHANGED
|
@@ -16,21 +16,33 @@ bun add mermaid
|
|
|
16
16
|
|
|
17
17
|
## Usage
|
|
18
18
|
|
|
19
|
-
###
|
|
19
|
+
### Auto-Register (Recommended)
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
The simplest way to use the component - just import and it's ready:
|
|
22
|
+
|
|
23
|
+
```html
|
|
24
|
+
<!-- Via CDN -->
|
|
25
|
+
<script type="module" src="https://esm.sh/@duskmoon-dev/el-markdown/register"></script>
|
|
26
|
+
|
|
27
|
+
<!-- Now use the element -->
|
|
28
|
+
<el-dm-markdown> # Hello World This is **markdown** content. </el-dm-markdown>
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Or with a bundler:
|
|
32
|
+
|
|
33
|
+
```ts
|
|
34
|
+
import '@duskmoon-dev/el-markdown/register';
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Manual Registration
|
|
38
|
+
|
|
39
|
+
```html
|
|
22
40
|
<script type="module">
|
|
23
41
|
import { register } from '@duskmoon-dev/el-markdown';
|
|
24
42
|
register();
|
|
25
43
|
</script>
|
|
26
44
|
|
|
27
|
-
<el-dm-markdown>
|
|
28
|
-
# Hello World This is **markdown** content with: - Lists - Code blocks - And more! ```javascript
|
|
29
|
-
console.log('Syntax highlighting!');</el-dm-markdown
|
|
30
|
-
>
|
|
31
|
-
````
|
|
32
|
-
|
|
33
|
-
</el-dm-markdown>
|
|
45
|
+
<el-dm-markdown> # Hello World </el-dm-markdown>
|
|
34
46
|
```
|
|
35
47
|
|
|
36
48
|
### From URL
|
package/dist/cjs/index.js
CHANGED
|
@@ -2006,6 +2006,7 @@ module.exports = __toCommonJS(exports_src);
|
|
|
2006
2006
|
|
|
2007
2007
|
// src/el-dm-markdown.ts
|
|
2008
2008
|
var import_el_core = require("@duskmoon-dev/el-core");
|
|
2009
|
+
var import_markdown_body = require("@duskmoon-dev/core/components/markdown-body");
|
|
2009
2010
|
|
|
2010
2011
|
// ../../node_modules/.bun/bail@2.0.2/node_modules/bail/index.js
|
|
2011
2012
|
function bail(error) {
|
|
@@ -27130,217 +27131,43 @@ var atomOneLight = `
|
|
|
27130
27131
|
`;
|
|
27131
27132
|
|
|
27132
27133
|
// src/el-dm-markdown.ts
|
|
27134
|
+
var coreStyles = import_markdown_body.css.replace(/@layer\s+components\s*\{/, "").replace(/\}\s*$/, "");
|
|
27133
27135
|
var baseStyles = import_el_core.css`
|
|
27134
27136
|
:host {
|
|
27135
27137
|
display: block;
|
|
27136
27138
|
font-family: var(
|
|
27137
27139
|
--dm-markdown-font-family,
|
|
27138
|
-
var(--
|
|
27140
|
+
var(--font-family, system-ui, -apple-system, sans-serif)
|
|
27139
27141
|
);
|
|
27140
27142
|
line-height: var(--dm-markdown-line-height, 1.6);
|
|
27141
|
-
color: var(--
|
|
27143
|
+
color: var(--color-on-surface);
|
|
27142
27144
|
}
|
|
27143
27145
|
|
|
27144
27146
|
:host([hidden]) {
|
|
27145
27147
|
display: none !important;
|
|
27146
27148
|
}
|
|
27147
27149
|
|
|
27150
|
+
/* Import core markdown-body styles */
|
|
27151
|
+
${coreStyles}
|
|
27152
|
+
|
|
27148
27153
|
.container {
|
|
27149
27154
|
width: 100%;
|
|
27150
27155
|
}
|
|
27151
27156
|
|
|
27152
|
-
.
|
|
27157
|
+
.markdown-body {
|
|
27153
27158
|
overflow-wrap: break-word;
|
|
27154
27159
|
word-wrap: break-word;
|
|
27155
27160
|
}
|
|
27156
27161
|
|
|
27157
|
-
/* Typography */
|
|
27158
|
-
.content h1,
|
|
27159
|
-
.content h2,
|
|
27160
|
-
.content h3,
|
|
27161
|
-
.content h4,
|
|
27162
|
-
.content h5,
|
|
27163
|
-
.content h6 {
|
|
27164
|
-
margin-top: 1.5em;
|
|
27165
|
-
margin-bottom: 0.5em;
|
|
27166
|
-
font-weight: var(--dm-font-weight-semibold, 600);
|
|
27167
|
-
line-height: 1.25;
|
|
27168
|
-
}
|
|
27169
|
-
|
|
27170
|
-
.content h1 {
|
|
27171
|
-
font-size: 2em;
|
|
27172
|
-
}
|
|
27173
|
-
.content h2 {
|
|
27174
|
-
font-size: 1.5em;
|
|
27175
|
-
border-bottom: 1px solid var(--dm-gray-200, #e5e7eb);
|
|
27176
|
-
padding-bottom: 0.3em;
|
|
27177
|
-
}
|
|
27178
|
-
.content h3 {
|
|
27179
|
-
font-size: 1.25em;
|
|
27180
|
-
}
|
|
27181
|
-
.content h4 {
|
|
27182
|
-
font-size: 1em;
|
|
27183
|
-
}
|
|
27184
|
-
.content h5 {
|
|
27185
|
-
font-size: 0.875em;
|
|
27186
|
-
}
|
|
27187
|
-
.content h6 {
|
|
27188
|
-
font-size: 0.85em;
|
|
27189
|
-
color: var(--dm-gray-500, #6b7280);
|
|
27190
|
-
}
|
|
27191
|
-
|
|
27192
|
-
.content p {
|
|
27193
|
-
margin-top: 0;
|
|
27194
|
-
margin-bottom: 1em;
|
|
27195
|
-
}
|
|
27196
|
-
|
|
27197
|
-
.content a {
|
|
27198
|
-
color: var(--dm-primary, #3b82f6);
|
|
27199
|
-
text-decoration: none;
|
|
27200
|
-
}
|
|
27201
|
-
|
|
27202
|
-
.content a:hover {
|
|
27203
|
-
text-decoration: underline;
|
|
27204
|
-
}
|
|
27205
|
-
|
|
27206
|
-
/* Lists */
|
|
27207
|
-
.content ul,
|
|
27208
|
-
.content ol {
|
|
27209
|
-
margin-top: 0;
|
|
27210
|
-
margin-bottom: 1em;
|
|
27211
|
-
padding-left: 2em;
|
|
27212
|
-
}
|
|
27213
|
-
|
|
27214
|
-
.content li {
|
|
27215
|
-
margin-bottom: 0.25em;
|
|
27216
|
-
}
|
|
27217
|
-
|
|
27218
|
-
.content li > * {
|
|
27219
|
-
display: inline;
|
|
27220
|
-
}
|
|
27221
|
-
|
|
27222
|
-
.content li > ul,
|
|
27223
|
-
.content li > ol {
|
|
27224
|
-
display: block;
|
|
27225
|
-
margin-top: 0.25em;
|
|
27226
|
-
margin-bottom: 0;
|
|
27227
|
-
}
|
|
27228
|
-
|
|
27229
|
-
/* Task lists (GFM) */
|
|
27230
|
-
.content ul.contains-task-list {
|
|
27231
|
-
list-style: none;
|
|
27232
|
-
padding-left: 1em;
|
|
27233
|
-
}
|
|
27234
|
-
|
|
27235
|
-
.content .task-list-item {
|
|
27236
|
-
display: flex;
|
|
27237
|
-
align-items: baseline;
|
|
27238
|
-
gap: 0.5em;
|
|
27239
|
-
}
|
|
27240
|
-
|
|
27241
|
-
.content .task-list-item input[type='checkbox'] {
|
|
27242
|
-
margin: 0;
|
|
27243
|
-
}
|
|
27244
|
-
|
|
27245
|
-
/* Code */
|
|
27246
|
-
.content code {
|
|
27247
|
-
font-family: var(
|
|
27248
|
-
--dm-markdown-code-font-family,
|
|
27249
|
-
ui-monospace,
|
|
27250
|
-
SFMono-Regular,
|
|
27251
|
-
Menlo,
|
|
27252
|
-
Monaco,
|
|
27253
|
-
Consolas,
|
|
27254
|
-
monospace
|
|
27255
|
-
);
|
|
27256
|
-
font-size: 0.875em;
|
|
27257
|
-
padding: 0.2em 0.4em;
|
|
27258
|
-
background-color: var(--dm-gray-100, #f3f4f6);
|
|
27259
|
-
border-radius: var(--dm-radius-sm, 0.25rem);
|
|
27260
|
-
}
|
|
27261
|
-
|
|
27262
|
-
.content pre {
|
|
27263
|
-
margin-top: 0;
|
|
27264
|
-
margin-bottom: 1em;
|
|
27265
|
-
padding: 1em;
|
|
27266
|
-
overflow-x: auto;
|
|
27267
|
-
border-radius: var(--dm-radius-md, 0.5rem);
|
|
27268
|
-
background-color: var(--dm-gray-100, #f3f4f6);
|
|
27269
|
-
}
|
|
27270
|
-
|
|
27271
|
-
.content pre code {
|
|
27272
|
-
padding: 0;
|
|
27273
|
-
background-color: transparent;
|
|
27274
|
-
font-size: 0.875em;
|
|
27275
|
-
line-height: 1.5;
|
|
27276
|
-
}
|
|
27277
|
-
|
|
27278
|
-
/* Blockquote */
|
|
27279
|
-
.content blockquote {
|
|
27280
|
-
margin: 0 0 1em;
|
|
27281
|
-
padding: 0.5em 1em;
|
|
27282
|
-
border-left: 4px solid var(--dm-gray-300, #d1d5db);
|
|
27283
|
-
color: var(--dm-gray-600, #4b5563);
|
|
27284
|
-
background-color: var(--dm-gray-50, #f9fafb);
|
|
27285
|
-
}
|
|
27286
|
-
|
|
27287
|
-
.content blockquote > :first-child {
|
|
27288
|
-
margin-top: 0;
|
|
27289
|
-
}
|
|
27290
|
-
|
|
27291
|
-
.content blockquote > :last-child {
|
|
27292
|
-
margin-bottom: 0;
|
|
27293
|
-
}
|
|
27294
|
-
|
|
27295
|
-
/* Tables */
|
|
27296
|
-
.content table {
|
|
27297
|
-
width: 100%;
|
|
27298
|
-
margin-bottom: 1em;
|
|
27299
|
-
border-collapse: collapse;
|
|
27300
|
-
border-spacing: 0;
|
|
27301
|
-
}
|
|
27302
|
-
|
|
27303
|
-
.content th,
|
|
27304
|
-
.content td {
|
|
27305
|
-
padding: 0.5em 1em;
|
|
27306
|
-
border: 1px solid var(--dm-gray-300, #d1d5db);
|
|
27307
|
-
text-align: left;
|
|
27308
|
-
}
|
|
27309
|
-
|
|
27310
|
-
.content th {
|
|
27311
|
-
font-weight: var(--dm-font-weight-semibold, 600);
|
|
27312
|
-
background-color: var(--dm-gray-50, #f9fafb);
|
|
27313
|
-
}
|
|
27314
|
-
|
|
27315
|
-
.content tr:nth-child(even) {
|
|
27316
|
-
background-color: var(--dm-gray-50, #f9fafb);
|
|
27317
|
-
}
|
|
27318
|
-
|
|
27319
|
-
/* Horizontal rule */
|
|
27320
|
-
.content hr {
|
|
27321
|
-
height: 0.25em;
|
|
27322
|
-
margin: 1.5em 0;
|
|
27323
|
-
padding: 0;
|
|
27324
|
-
background-color: var(--dm-gray-200, #e5e7eb);
|
|
27325
|
-
border: 0;
|
|
27326
|
-
}
|
|
27327
|
-
|
|
27328
|
-
/* Images */
|
|
27329
|
-
.content img {
|
|
27330
|
-
max-width: 100%;
|
|
27331
|
-
height: auto;
|
|
27332
|
-
border-radius: var(--dm-radius-md, 0.5rem);
|
|
27333
|
-
}
|
|
27334
|
-
|
|
27335
27162
|
/* Mermaid diagrams */
|
|
27336
|
-
.
|
|
27163
|
+
.markdown-body .language-mermaid {
|
|
27337
27164
|
display: flex;
|
|
27338
27165
|
justify-content: center;
|
|
27339
27166
|
background: transparent !important;
|
|
27340
27167
|
padding: 1em 0;
|
|
27341
27168
|
}
|
|
27342
27169
|
|
|
27343
|
-
.
|
|
27170
|
+
.markdown-body .language-mermaid svg {
|
|
27344
27171
|
max-width: 100%;
|
|
27345
27172
|
height: auto;
|
|
27346
27173
|
}
|
|
@@ -27351,7 +27178,7 @@ var baseStyles = import_el_core.css`
|
|
|
27351
27178
|
align-items: center;
|
|
27352
27179
|
justify-content: center;
|
|
27353
27180
|
padding: 2em;
|
|
27354
|
-
color: var(--
|
|
27181
|
+
color: var(--color-on-surface-variant);
|
|
27355
27182
|
}
|
|
27356
27183
|
|
|
27357
27184
|
.loading::after {
|
|
@@ -27359,8 +27186,8 @@ var baseStyles = import_el_core.css`
|
|
|
27359
27186
|
width: 1.5em;
|
|
27360
27187
|
height: 1.5em;
|
|
27361
27188
|
margin-left: 0.5em;
|
|
27362
|
-
border: 2px solid var(--
|
|
27363
|
-
border-top-color: var(--
|
|
27189
|
+
border: 2px solid var(--color-outline);
|
|
27190
|
+
border-top-color: var(--color-primary);
|
|
27364
27191
|
border-radius: 50%;
|
|
27365
27192
|
animation: spin 0.6s linear infinite;
|
|
27366
27193
|
}
|
|
@@ -27374,10 +27201,10 @@ var baseStyles = import_el_core.css`
|
|
|
27374
27201
|
/* Error state */
|
|
27375
27202
|
.error {
|
|
27376
27203
|
padding: 1em;
|
|
27377
|
-
color: var(--
|
|
27378
|
-
background-color:
|
|
27379
|
-
border: 1px solid
|
|
27380
|
-
border-radius:
|
|
27204
|
+
color: var(--color-error);
|
|
27205
|
+
background-color: oklch(95% 0.05 25);
|
|
27206
|
+
border: 1px solid oklch(85% 0.1 25);
|
|
27207
|
+
border-radius: 0.5rem;
|
|
27381
27208
|
}
|
|
27382
27209
|
|
|
27383
27210
|
/* Streaming cursor */
|
|
@@ -27385,7 +27212,7 @@ var baseStyles = import_el_core.css`
|
|
|
27385
27212
|
display: inline-block;
|
|
27386
27213
|
width: 2px;
|
|
27387
27214
|
height: 1.2em;
|
|
27388
|
-
background-color: var(--
|
|
27215
|
+
background-color: var(--color-primary);
|
|
27389
27216
|
margin-left: 2px;
|
|
27390
27217
|
vertical-align: text-bottom;
|
|
27391
27218
|
animation: cursor-blink 1s step-end infinite;
|
|
@@ -27779,7 +27606,7 @@ class ElDmMarkdown extends import_el_core.BaseElement {
|
|
|
27779
27606
|
const cursorHtml = this._isStreaming ? '<span class="streaming-cursor" aria-hidden="true"></span>' : "";
|
|
27780
27607
|
return `
|
|
27781
27608
|
<div class="container" part="container">
|
|
27782
|
-
<div class="content" part="content">${this._fragment}${cursorHtml}</div>
|
|
27609
|
+
<div class="content markdown-body" part="content">${this._fragment}${cursorHtml}</div>
|
|
27783
27610
|
</div>
|
|
27784
27611
|
`;
|
|
27785
27612
|
}
|
|
@@ -27791,5 +27618,5 @@ function register() {
|
|
|
27791
27618
|
}
|
|
27792
27619
|
}
|
|
27793
27620
|
|
|
27794
|
-
//# debugId=
|
|
27621
|
+
//# debugId=3405415B764A12D464756E2164756E21
|
|
27795
27622
|
//# sourceMappingURL=index.js.map
|