luxen-ui 0.6.2 → 0.8.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/bin/cli.mjs +54 -10
- package/cdn/chunks/decorate.js +1 -1
- package/cdn/chunks/floating-ui.dom.js +2 -0
- package/cdn/chunks/floating-ui.dom.js.map +1 -0
- package/cdn/chunks/lit-html.js +3 -0
- package/cdn/chunks/lit-html.js.map +1 -0
- package/cdn/chunks/lit.js +1 -2
- package/cdn/chunks/lit.js.map +1 -1
- package/cdn/chunks/module.js +717 -0
- package/cdn/chunks/module.js.map +1 -0
- package/cdn/chunks/native.js +2 -0
- package/cdn/chunks/native.js.map +1 -0
- package/cdn/chunks/static-html.js +2 -0
- package/cdn/chunks/static-html.js.map +1 -0
- package/cdn/custom-elements.json +1412 -12629
- package/cdn/elements/avatar/avatar.d.ts +5 -0
- package/cdn/elements/avatar/avatar.d.ts.map +1 -1
- package/cdn/elements/avatar/avatar.js +5 -5
- package/cdn/elements/avatar/avatar.js.map +1 -1
- package/cdn/elements/button/button.meta.d.ts +33 -0
- package/cdn/elements/button/button.meta.d.ts.map +1 -0
- package/cdn/elements/button/button.meta.js +0 -0
- package/cdn/elements/carousel/carousel.d.ts +6 -0
- package/cdn/elements/carousel/carousel.d.ts.map +1 -1
- package/cdn/elements/carousel/carousel.js +1 -1
- package/cdn/elements/carousel/carousel.js.map +1 -1
- package/cdn/elements/carousel-item/carousel-item.d.ts +2 -0
- package/cdn/elements/carousel-item/carousel-item.d.ts.map +1 -1
- package/cdn/elements/carousel-item/carousel-item.js +1 -1
- package/cdn/elements/carousel-item/carousel-item.js.map +1 -1
- package/cdn/elements/close-button/close-button.meta.d.ts +24 -0
- package/cdn/elements/close-button/close-button.meta.d.ts.map +1 -0
- package/cdn/elements/close-button/close-button.meta.js +0 -0
- package/cdn/elements/dialog/dialog.d.ts +12 -6
- package/cdn/elements/dialog/dialog.d.ts.map +1 -1
- package/cdn/elements/dialog/dialog.js +8 -5
- package/cdn/elements/dialog/dialog.js.map +1 -1
- package/cdn/elements/dialog/dialog.styles.js +1 -1
- package/cdn/elements/dialog/dialog.styles.js.map +1 -1
- package/cdn/elements/disclosure/disclosure.meta.d.ts +28 -0
- package/cdn/elements/disclosure/disclosure.meta.d.ts.map +1 -0
- package/cdn/elements/disclosure/disclosure.meta.js +0 -0
- package/cdn/elements/divider/divider.d.ts +1 -1
- package/cdn/elements/divider/divider.js.map +1 -1
- package/cdn/elements/drawer/drawer.d.ts +5 -0
- package/cdn/elements/drawer/drawer.d.ts.map +1 -1
- package/cdn/elements/drawer/drawer.js +1 -1
- package/cdn/elements/drawer/drawer.js.map +1 -1
- package/cdn/elements/dropdown/dropdown.d.ts +2 -0
- package/cdn/elements/dropdown/dropdown.d.ts.map +1 -1
- package/cdn/elements/dropdown/dropdown.js +1 -1
- package/cdn/elements/dropdown/dropdown.js.map +1 -1
- package/cdn/elements/dropdown-item/dropdown-item.d.ts +2 -0
- package/cdn/elements/dropdown-item/dropdown-item.d.ts.map +1 -1
- package/cdn/elements/dropdown-item/dropdown-item.js +1 -1
- package/cdn/elements/dropdown-item/dropdown-item.js.map +1 -1
- package/cdn/elements/icon/icon.js +1 -1
- package/cdn/elements/icon/icon.js.map +1 -1
- package/cdn/elements/input-otp/input-otp.d.ts +2 -0
- package/cdn/elements/input-otp/input-otp.d.ts.map +1 -1
- package/cdn/elements/input-otp/input-otp.js.map +1 -1
- package/cdn/elements/input-stepper/input-stepper.d.ts +2 -0
- package/cdn/elements/input-stepper/input-stepper.d.ts.map +1 -1
- package/cdn/elements/input-stepper/input-stepper.js +1 -1
- package/cdn/elements/input-stepper/input-stepper.js.map +1 -1
- package/cdn/elements/kbd/kbd.meta.d.ts +14 -0
- package/cdn/elements/kbd/kbd.meta.d.ts.map +1 -0
- package/cdn/elements/kbd/kbd.meta.js +0 -0
- package/cdn/elements/popover/popover.js +1 -1
- package/cdn/elements/popover/popover.js.map +1 -1
- package/cdn/elements/progress/progress.meta.d.ts +22 -0
- package/cdn/elements/progress/progress.meta.d.ts.map +1 -0
- package/cdn/elements/progress/progress.meta.js +0 -0
- package/cdn/elements/prose-editor/index.d.ts +2 -0
- package/cdn/elements/prose-editor/index.d.ts.map +1 -0
- package/cdn/elements/prose-editor/index.js +2 -0
- package/cdn/elements/prose-editor/index.js.map +1 -0
- package/cdn/elements/prose-editor/prose-editor.d.ts +113 -0
- package/cdn/elements/prose-editor/prose-editor.d.ts.map +1 -0
- package/cdn/elements/prose-editor/prose-editor.js +180 -0
- package/cdn/elements/prose-editor/prose-editor.js.map +1 -0
- package/cdn/elements/rating/rating.d.ts +2 -0
- package/cdn/elements/rating/rating.d.ts.map +1 -1
- package/cdn/elements/rating/rating.js +1 -1
- package/cdn/elements/rating/rating.js.map +1 -1
- package/cdn/elements/select/select.meta.d.ts +28 -0
- package/cdn/elements/select/select.meta.d.ts.map +1 -0
- package/cdn/elements/select/select.meta.js +0 -0
- package/cdn/elements/skeleton/skeleton.d.ts +3 -0
- package/cdn/elements/skeleton/skeleton.d.ts.map +1 -1
- package/cdn/elements/skeleton/skeleton.js.map +1 -1
- package/cdn/elements/spinner/spinner.js +1 -1
- package/cdn/elements/spinner/spinner.js.map +1 -1
- package/cdn/elements/sticky-bar/sticky-bar.js +1 -1
- package/cdn/elements/sticky-bar/sticky-bar.js.map +1 -1
- package/cdn/elements/stories-viewer/stories-viewer.d.ts +1 -1
- package/cdn/elements/stories-viewer/stories-viewer.d.ts.map +1 -1
- package/cdn/elements/stories-viewer/stories-viewer.js +26 -26
- package/cdn/elements/stories-viewer/stories-viewer.js.map +1 -1
- package/cdn/elements/story/story.d.ts +10 -1
- package/cdn/elements/story/story.d.ts.map +1 -1
- package/cdn/elements/story/story.js +20 -20
- package/cdn/elements/story/story.js.map +1 -1
- package/cdn/elements/toast/toast.d.ts +5 -0
- package/cdn/elements/toast/toast.d.ts.map +1 -1
- package/cdn/elements/toast/toast.js.map +1 -1
- package/cdn/elements/tooltip/tooltip.js +1 -1
- package/cdn/elements/tooltip/tooltip.js.map +1 -1
- package/cdn/elements/tree/tree.d.ts +2 -0
- package/cdn/elements/tree/tree.d.ts.map +1 -1
- package/cdn/elements/tree/tree.js +1 -1
- package/cdn/elements/tree/tree.js.map +1 -1
- package/cdn/elements/tree-item/tree-item.d.ts +2 -0
- package/cdn/elements/tree-item/tree-item.d.ts.map +1 -1
- package/cdn/elements/tree-item/tree-item.js +1 -1
- package/cdn/elements/tree-item/tree-item.js.map +1 -1
- package/cdn/registry.d.ts +1 -1
- package/cdn/registry.d.ts.map +1 -1
- package/cdn/registry.js.map +1 -1
- package/cdn/shared/controllers/has-slot-controller.d.ts +37 -0
- package/cdn/shared/controllers/has-slot-controller.d.ts.map +1 -0
- package/cdn/shared/controllers/has-slot-controller.js +2 -0
- package/cdn/shared/controllers/has-slot-controller.js.map +1 -0
- package/cdn/shared/controllers/popover.js +1 -1
- package/cdn/shared/controllers/popover.js.map +1 -1
- package/cdn/shared/styles/host.styles.js +1 -1
- package/cdn/standalone.css +132 -1
- package/cdn/standalone.js +25743 -191
- package/cdn/standalone.js.map +1 -1
- package/cdn/static-tag.d.ts +17 -0
- package/cdn/static-tag.d.ts.map +1 -0
- package/cdn/static-tag.js +2 -0
- package/cdn/static-tag.js.map +1 -0
- package/cdn/styles/elements/prose-editor.css +129 -0
- package/cdn/styles/elements/toast.css +1 -1
- package/dist/css/elements/prose-editor.css +129 -0
- package/dist/css/elements/toast.css +1 -1
- package/dist/custom-elements.json +1412 -12629
- package/dist/elements/avatar/avatar.d.ts +5 -0
- package/dist/elements/avatar/avatar.d.ts.map +1 -1
- package/dist/elements/avatar/avatar.js +5 -0
- package/dist/elements/button/button.meta.d.ts +33 -0
- package/dist/elements/button/button.meta.d.ts.map +1 -0
- package/dist/elements/button/button.meta.js +44 -0
- package/dist/elements/carousel/carousel.d.ts +6 -0
- package/dist/elements/carousel/carousel.d.ts.map +1 -1
- package/dist/elements/carousel/carousel.js +6 -0
- package/dist/elements/carousel-item/carousel-item.d.ts +2 -0
- package/dist/elements/carousel-item/carousel-item.d.ts.map +1 -1
- package/dist/elements/carousel-item/carousel-item.js +2 -0
- package/dist/elements/close-button/close-button.meta.d.ts +24 -0
- package/dist/elements/close-button/close-button.meta.d.ts.map +1 -0
- package/dist/elements/close-button/close-button.meta.js +30 -0
- package/dist/elements/dialog/dialog.css +15 -0
- package/dist/elements/dialog/dialog.d.ts +12 -6
- package/dist/elements/dialog/dialog.d.ts.map +1 -1
- package/dist/elements/dialog/dialog.js +21 -7
- package/dist/elements/disclosure/disclosure.meta.d.ts +28 -0
- package/dist/elements/disclosure/disclosure.meta.d.ts.map +1 -0
- package/dist/elements/disclosure/disclosure.meta.js +34 -0
- package/dist/elements/divider/divider.d.ts +1 -1
- package/dist/elements/divider/divider.js +1 -1
- package/dist/elements/drawer/drawer.d.ts +5 -0
- package/dist/elements/drawer/drawer.d.ts.map +1 -1
- package/dist/elements/drawer/drawer.js +5 -0
- package/dist/elements/dropdown/dropdown.d.ts +2 -0
- package/dist/elements/dropdown/dropdown.d.ts.map +1 -1
- package/dist/elements/dropdown/dropdown.js +2 -0
- package/dist/elements/dropdown-item/dropdown-item.d.ts +2 -0
- package/dist/elements/dropdown-item/dropdown-item.d.ts.map +1 -1
- package/dist/elements/dropdown-item/dropdown-item.js +2 -0
- package/dist/elements/input-otp/input-otp.d.ts +2 -0
- package/dist/elements/input-otp/input-otp.d.ts.map +1 -1
- package/dist/elements/input-otp/input-otp.js +2 -0
- package/dist/elements/input-stepper/input-stepper.d.ts +2 -0
- package/dist/elements/input-stepper/input-stepper.d.ts.map +1 -1
- package/dist/elements/input-stepper/input-stepper.js +5 -1
- package/dist/elements/kbd/kbd.meta.d.ts +14 -0
- package/dist/elements/kbd/kbd.meta.d.ts.map +1 -0
- package/dist/elements/kbd/kbd.meta.js +20 -0
- package/dist/elements/progress/progress.meta.d.ts +22 -0
- package/dist/elements/progress/progress.meta.d.ts.map +1 -0
- package/dist/elements/progress/progress.meta.js +28 -0
- package/dist/elements/prose-editor/index.d.ts +2 -0
- package/dist/elements/prose-editor/index.d.ts.map +1 -0
- package/dist/elements/prose-editor/index.js +4 -0
- package/dist/elements/prose-editor/prose-editor.css +133 -0
- package/dist/elements/prose-editor/prose-editor.d.ts +114 -0
- package/dist/elements/prose-editor/prose-editor.d.ts.map +1 -0
- package/dist/elements/prose-editor/prose-editor.js +481 -0
- package/dist/elements/rating/rating.d.ts +2 -0
- package/dist/elements/rating/rating.d.ts.map +1 -1
- package/dist/elements/rating/rating.js +2 -0
- package/dist/elements/select/select.meta.d.ts +28 -0
- package/dist/elements/select/select.meta.d.ts.map +1 -0
- package/dist/elements/select/select.meta.js +34 -0
- package/dist/elements/skeleton/skeleton.d.ts +3 -0
- package/dist/elements/skeleton/skeleton.d.ts.map +1 -1
- package/dist/elements/skeleton/skeleton.js +3 -0
- package/dist/elements/stories-viewer/stories-viewer.d.ts +1 -1
- package/dist/elements/stories-viewer/stories-viewer.d.ts.map +1 -1
- package/dist/elements/stories-viewer/stories-viewer.js +23 -19
- package/dist/elements/story/story.d.ts +10 -1
- package/dist/elements/story/story.d.ts.map +1 -1
- package/dist/elements/story/story.js +29 -17
- package/dist/elements/toast/toast.d.ts +5 -0
- package/dist/elements/toast/toast.d.ts.map +1 -1
- package/dist/elements/toast/toast.js +5 -0
- package/dist/elements/tree/tree.d.ts +2 -0
- package/dist/elements/tree/tree.d.ts.map +1 -1
- package/dist/elements/tree/tree.js +2 -0
- package/dist/elements/tree-item/tree-item.d.ts +2 -0
- package/dist/elements/tree-item/tree-item.d.ts.map +1 -1
- package/dist/elements/tree-item/tree-item.js +2 -0
- package/dist/metadata/avatar.json +83 -0
- package/dist/metadata/badge.json +59 -0
- package/dist/metadata/button.json +138 -0
- package/dist/metadata/carousel-item.json +32 -0
- package/dist/metadata/carousel.json +388 -0
- package/dist/metadata/close-button.json +90 -0
- package/dist/metadata/dialog.json +163 -0
- package/dist/metadata/disclosure.json +88 -0
- package/dist/metadata/divider.json +65 -0
- package/dist/metadata/drawer.json +176 -0
- package/dist/metadata/dropdown-item.json +85 -0
- package/dist/metadata/dropdown.json +157 -0
- package/dist/metadata/icon.json +49 -0
- package/dist/metadata/index.json +4062 -0
- package/dist/metadata/input-otp.json +86 -0
- package/dist/metadata/input-stepper.json +122 -0
- package/dist/metadata/kbd.json +37 -0
- package/dist/metadata/popover.json +157 -0
- package/dist/metadata/progress.json +71 -0
- package/dist/metadata/prose-editor.json +365 -0
- package/dist/metadata/rating.json +126 -0
- package/dist/metadata/select.json +82 -0
- package/dist/metadata/skeleton.json +56 -0
- package/dist/metadata/spinner.json +47 -0
- package/dist/metadata/sticky-bar.json +93 -0
- package/dist/metadata/stories-viewer.json +316 -0
- package/dist/metadata/stories.json +109 -0
- package/dist/metadata/story.json +148 -0
- package/dist/metadata/tabs.json +74 -0
- package/dist/metadata/toast.json +122 -0
- package/dist/metadata/tooltip.json +144 -0
- package/dist/metadata/tree-item.json +199 -0
- package/dist/metadata/tree.json +130 -0
- package/dist/registry.d.ts +1 -1
- package/dist/registry.d.ts.map +1 -1
- package/dist/shared/controllers/has-slot-controller.d.ts +37 -0
- package/dist/shared/controllers/has-slot-controller.d.ts.map +1 -0
- package/dist/shared/controllers/has-slot-controller.js +66 -0
- package/dist/static-tag.d.ts +17 -0
- package/dist/static-tag.d.ts.map +1 -0
- package/dist/static-tag.js +22 -0
- package/dist/templates/elements/avatar.md +21 -24
- package/dist/templates/elements/badge.md +9 -15
- package/dist/templates/elements/button.md +31 -41
- package/dist/templates/elements/close-button.md +24 -36
- package/dist/templates/elements/dialog.md +73 -54
- package/dist/templates/elements/drawer.md +39 -52
- package/dist/templates/elements/progress.md +13 -23
- package/dist/templates/elements/prose-editor.md +211 -0
- package/dist/templates/elements/select.md +20 -31
- package/dist/templates/elements/sticky-bar.md +16 -60
- package/dist/templates/elements/toast.md +33 -53
- package/dist/templates/elements/tree.md +39 -67
- package/elements.json +46 -1
- package/package.json +13 -3
- package/templates/SKILL.md.tpl +5 -1
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { StaticValue } from 'lit/static-html.js';
|
|
2
|
+
import { ElementBaseName } from './registry.js';
|
|
3
|
+
/**
|
|
4
|
+
* Prefix-aware static tag for use in Lit static-html templates.
|
|
5
|
+
*
|
|
6
|
+
* Resolves a base name to the registered tag (e.g. `staticTag('icon')` → `po-icon`
|
|
7
|
+
* under `elementPrefix: 'po'`) so elements that render a child custom element inside
|
|
8
|
+
* their own template stay prefix-aware. Without this, the hardcoded `<l-icon>` literal
|
|
9
|
+
* is never defined under a custom prefix and the child never upgrades.
|
|
10
|
+
*
|
|
11
|
+
* Memoized: Lit keys its template cache on `StaticValue` identity, so a fresh
|
|
12
|
+
* `unsafeStatic()` per render would bust the cache. The prefix is set once at startup
|
|
13
|
+
* before any element renders, so a plain memo is correct. If runtime re-prefixing via
|
|
14
|
+
* `setPrefix()` becomes a supported scenario, clear `_cache` there.
|
|
15
|
+
*/
|
|
16
|
+
export declare function staticTag(baseName: ElementBaseName): StaticValue;
|
|
17
|
+
//# sourceMappingURL=static-tag.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static-tag.d.ts","sourceRoot":"","sources":["../src/html/static-tag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAW,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAI9D;;;;;;;;;;;;GAYG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,eAAe,GAAG,WAAW,CAIhE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static-tag.js","names":[],"sources":["../src/html/static-tag.ts"],"sourcesContent":["import { unsafeStatic, type StaticValue } from 'lit/static-html.js';\nimport { tagName, type ElementBaseName } from './registry.js';\n\nconst _cache = new Map<ElementBaseName, StaticValue>();\n\n/**\n * Prefix-aware static tag for use in Lit static-html templates.\n *\n * Resolves a base name to the registered tag (e.g. `staticTag('icon')` → `po-icon`\n * under `elementPrefix: 'po'`) so elements that render a child custom element inside\n * their own template stay prefix-aware. Without this, the hardcoded `<l-icon>` literal\n * is never defined under a custom prefix and the child never upgrades.\n *\n * Memoized: Lit keys its template cache on `StaticValue` identity, so a fresh\n * `unsafeStatic()` per render would bust the cache. The prefix is set once at startup\n * before any element renders, so a plain memo is correct. If runtime re-prefixing via\n * `setPrefix()` becomes a supported scenario, clear `_cache` there.\n */\nexport function staticTag(baseName: ElementBaseName): StaticValue {\n let t = _cache.get(baseName);\n if (!t) _cache.set(baseName, (t = unsafeStatic(tagName(baseName))));\n return t;\n}\n"],"mappings":"oFAGA,IAAM,EAAS,IAAI,IAenB,SAAgB,EAAU,EAAwC,CAChE,IAAI,EAAI,EAAO,IAAI,EAAS,CAE5B,OADK,GAAG,EAAO,IAAI,EAAW,EAAI,EAAa,EAAQ,EAAS,CAAC,CAAE,CAC5D"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Styles for the editable content of <l-prose-editor>.
|
|
3
|
+
*
|
|
4
|
+
* The ProseMirror editable element is rendered in light DOM (slotted), not the
|
|
5
|
+
* shadow root, to work around contenteditable caret/selection bugs in Firefox
|
|
6
|
+
* and WebKit inside shadow trees. So its styles live in this published CSS file
|
|
7
|
+
* rather than the element's shadow styles. Import once globally:
|
|
8
|
+
*
|
|
9
|
+
* @import 'luxen-ui/css/prose-editor';
|
|
10
|
+
*/
|
|
11
|
+
@layer components {
|
|
12
|
+
l-prose-editor .ProseMirror {
|
|
13
|
+
padding: var(--content-padding, 0.75rem 1rem);
|
|
14
|
+
min-height: var(--content-min-height, 8rem);
|
|
15
|
+
outline: none;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
l-prose-editor .ProseMirror :first-child {
|
|
19
|
+
margin-top: 0;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
l-prose-editor .ProseMirror :last-child {
|
|
23
|
+
margin-bottom: 0;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/* Block spacing & typography — baseline so content reads correctly without a
|
|
27
|
+
typography framework. A consumer's `prose` class (e.g. Tailwind Typography)
|
|
28
|
+
layers on top via the higher-priority utilities layer. */
|
|
29
|
+
l-prose-editor .ProseMirror p {
|
|
30
|
+
margin-block: 0.5em;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
l-prose-editor .ProseMirror :is(h1, h2, h3, h4) {
|
|
34
|
+
margin-block: 1em 0.5em;
|
|
35
|
+
font-weight: 600;
|
|
36
|
+
line-height: 1.25;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
l-prose-editor .ProseMirror h1 {
|
|
40
|
+
font-size: 1.5em;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
l-prose-editor .ProseMirror h2 {
|
|
44
|
+
font-size: 1.3em;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
l-prose-editor .ProseMirror h3 {
|
|
48
|
+
font-size: 1.15em;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
l-prose-editor .ProseMirror :is(ul, ol) {
|
|
52
|
+
margin-block: 0.5em;
|
|
53
|
+
padding-inline-start: 1.5rem;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
l-prose-editor .ProseMirror ul {
|
|
57
|
+
list-style: disc;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
l-prose-editor .ProseMirror ol {
|
|
61
|
+
list-style: decimal;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
l-prose-editor .ProseMirror li {
|
|
65
|
+
margin-block: 0.25em;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/* Placeholder — Tiptap Placeholder extension */
|
|
69
|
+
l-prose-editor .ProseMirror p.is-editor-empty:first-child::before {
|
|
70
|
+
content: attr(data-placeholder);
|
|
71
|
+
float: inline-start;
|
|
72
|
+
height: 0;
|
|
73
|
+
color: var(--placeholder-color, var(--l-color-text-tertiary));
|
|
74
|
+
pointer-events: none;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/* Highlight mark */
|
|
78
|
+
l-prose-editor .ProseMirror mark {
|
|
79
|
+
border-radius: 0.2em;
|
|
80
|
+
background-color: var(--l-color-bg-fill-warning-subtle);
|
|
81
|
+
-webkit-box-decoration-break: clone;
|
|
82
|
+
box-decoration-break: clone;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/* Links */
|
|
86
|
+
l-prose-editor .ProseMirror a {
|
|
87
|
+
color: var(--l-color-text-info);
|
|
88
|
+
text-decoration: underline;
|
|
89
|
+
cursor: pointer;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/* Blockquote */
|
|
93
|
+
l-prose-editor .ProseMirror blockquote {
|
|
94
|
+
border-inline-start: 3px solid var(--l-color-border);
|
|
95
|
+
padding-inline-start: 1rem;
|
|
96
|
+
color: var(--l-color-text-secondary);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/* Inline code & code blocks */
|
|
100
|
+
l-prose-editor .ProseMirror code {
|
|
101
|
+
border-radius: 0.25rem;
|
|
102
|
+
padding: 0.125em 0.3em;
|
|
103
|
+
background-color: var(--l-color-bg-fill-neutral-subtle);
|
|
104
|
+
font-size: 0.9em;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
l-prose-editor .ProseMirror pre {
|
|
108
|
+
border-radius: var(--l-radius-md);
|
|
109
|
+
padding: 0.75rem 1rem;
|
|
110
|
+
background-color: var(--l-color-bg-fill-neutral-subtle);
|
|
111
|
+
overflow-x: auto;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
l-prose-editor .ProseMirror pre code {
|
|
115
|
+
padding: 0;
|
|
116
|
+
background: none;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
/* Horizontal rule */
|
|
120
|
+
l-prose-editor .ProseMirror hr {
|
|
121
|
+
margin-block: 1rem;
|
|
122
|
+
border: none;
|
|
123
|
+
border-top: 1px solid var(--l-color-divider);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
l-prose-editor .ProseMirror hr.ProseMirror-selectednode {
|
|
127
|
+
border-top-color: var(--l-focus-ring);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Styles for the editable content of <l-prose-editor>.
|
|
3
|
+
*
|
|
4
|
+
* The ProseMirror editable element is rendered in light DOM (slotted), not the
|
|
5
|
+
* shadow root, to work around contenteditable caret/selection bugs in Firefox
|
|
6
|
+
* and WebKit inside shadow trees. So its styles live in this published CSS file
|
|
7
|
+
* rather than the element's shadow styles. Import once globally:
|
|
8
|
+
*
|
|
9
|
+
* @import 'luxen-ui/css/prose-editor';
|
|
10
|
+
*/
|
|
11
|
+
@layer components {
|
|
12
|
+
l-prose-editor .ProseMirror {
|
|
13
|
+
padding: var(--content-padding, 0.75rem 1rem);
|
|
14
|
+
min-height: var(--content-min-height, 8rem);
|
|
15
|
+
outline: none;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
l-prose-editor .ProseMirror :first-child {
|
|
19
|
+
margin-top: 0;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
l-prose-editor .ProseMirror :last-child {
|
|
23
|
+
margin-bottom: 0;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/* Block spacing & typography — baseline so content reads correctly without a
|
|
27
|
+
typography framework. A consumer's `prose` class (e.g. Tailwind Typography)
|
|
28
|
+
layers on top via the higher-priority utilities layer. */
|
|
29
|
+
l-prose-editor .ProseMirror p {
|
|
30
|
+
margin-block: 0.5em;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
l-prose-editor .ProseMirror :is(h1, h2, h3, h4) {
|
|
34
|
+
margin-block: 1em 0.5em;
|
|
35
|
+
font-weight: 600;
|
|
36
|
+
line-height: 1.25;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
l-prose-editor .ProseMirror h1 {
|
|
40
|
+
font-size: 1.5em;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
l-prose-editor .ProseMirror h2 {
|
|
44
|
+
font-size: 1.3em;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
l-prose-editor .ProseMirror h3 {
|
|
48
|
+
font-size: 1.15em;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
l-prose-editor .ProseMirror :is(ul, ol) {
|
|
52
|
+
margin-block: 0.5em;
|
|
53
|
+
padding-inline-start: 1.5rem;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
l-prose-editor .ProseMirror ul {
|
|
57
|
+
list-style: disc;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
l-prose-editor .ProseMirror ol {
|
|
61
|
+
list-style: decimal;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
l-prose-editor .ProseMirror li {
|
|
65
|
+
margin-block: 0.25em;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/* Placeholder — Tiptap Placeholder extension */
|
|
69
|
+
l-prose-editor .ProseMirror p.is-editor-empty:first-child::before {
|
|
70
|
+
content: attr(data-placeholder);
|
|
71
|
+
float: inline-start;
|
|
72
|
+
height: 0;
|
|
73
|
+
color: var(--placeholder-color, var(--l-color-text-tertiary));
|
|
74
|
+
pointer-events: none;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/* Highlight mark */
|
|
78
|
+
l-prose-editor .ProseMirror mark {
|
|
79
|
+
border-radius: 0.2em;
|
|
80
|
+
background-color: var(--l-color-bg-fill-warning-subtle);
|
|
81
|
+
-webkit-box-decoration-break: clone;
|
|
82
|
+
box-decoration-break: clone;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/* Links */
|
|
86
|
+
l-prose-editor .ProseMirror a {
|
|
87
|
+
color: var(--l-color-text-info);
|
|
88
|
+
text-decoration: underline;
|
|
89
|
+
cursor: pointer;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/* Blockquote */
|
|
93
|
+
l-prose-editor .ProseMirror blockquote {
|
|
94
|
+
border-inline-start: 3px solid var(--l-color-border);
|
|
95
|
+
padding-inline-start: 1rem;
|
|
96
|
+
color: var(--l-color-text-secondary);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/* Inline code & code blocks */
|
|
100
|
+
l-prose-editor .ProseMirror code {
|
|
101
|
+
border-radius: 0.25rem;
|
|
102
|
+
padding: 0.125em 0.3em;
|
|
103
|
+
background-color: var(--l-color-bg-fill-neutral-subtle);
|
|
104
|
+
font-size: 0.9em;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
l-prose-editor .ProseMirror pre {
|
|
108
|
+
border-radius: var(--l-radius-md);
|
|
109
|
+
padding: 0.75rem 1rem;
|
|
110
|
+
background-color: var(--l-color-bg-fill-neutral-subtle);
|
|
111
|
+
overflow-x: auto;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
l-prose-editor .ProseMirror pre code {
|
|
115
|
+
padding: 0;
|
|
116
|
+
background: none;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
/* Horizontal rule */
|
|
120
|
+
l-prose-editor .ProseMirror hr {
|
|
121
|
+
margin-block: 1rem;
|
|
122
|
+
border: none;
|
|
123
|
+
border-top: 1px solid var(--l-color-divider);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
l-prose-editor .ProseMirror hr.ProseMirror-selectednode {
|
|
127
|
+
border-top-color: var(--l-focus-ring);
|
|
128
|
+
}
|
|
129
|
+
}
|