neko-ui 2.9.0 → 2.9.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/es/code/index.d.ts +8 -11
- package/es/code/index.js +1 -2
- package/es/code/index.js.map +1 -1
- package/es/code/style.d.ts +2 -0
- package/es/code/style.js +191 -57
- package/es/code/style.js.map +1 -1
- package/es/code/worker.js.map +1 -1
- package/es/index.d.ts +2 -2
- package/es/index.js.map +1 -1
- package/es/md/index.d.ts +0 -4
- package/es/md/index.js +1 -1
- package/es/md/index.js.map +1 -1
- package/es/md/worker.js +1 -1
- package/es/md/worker.js.map +1 -1
- package/es/prism/index.d.ts +3 -8
- package/es/prism/index.js +1 -1
- package/es/prism/index.js.map +1 -1
- package/es/qrcode/index.d.ts +22 -0
- package/es/qrcode/index.js +1 -1
- package/es/qrcode/index.js.map +1 -1
- package/es/qrcode/qrcode.js.map +1 -1
- package/lib/code/index.d.ts +8 -11
- package/lib/code/index.js +1 -2
- package/lib/code/index.js.map +1 -1
- package/lib/code/style.d.ts +2 -0
- package/lib/code/style.js +192 -58
- package/lib/code/style.js.map +1 -1
- package/lib/code/worker.js +1 -1
- package/lib/code/worker.js.map +1 -1
- package/lib/index.d.ts +2 -2
- package/lib/index.js.map +1 -1
- package/lib/md/index.d.ts +0 -4
- package/lib/md/index.js +1 -1
- package/lib/md/index.js.map +1 -1
- package/lib/md/worker.js +1 -1
- package/lib/md/worker.js.map +1 -1
- package/lib/prism/index.d.ts +3 -8
- package/lib/prism/index.js +1 -1
- package/lib/prism/index.js.map +1 -1
- package/lib/qrcode/index.d.ts +22 -0
- package/lib/qrcode/index.js +1 -1
- package/lib/qrcode/index.js.map +1 -1
- package/lib/qrcode/qrcode.js.map +1 -1
- package/package.json +3 -3
- package/umd/index.js +1 -2
- package/es/prism/css.d.ts +0 -2
- package/es/prism/css.js +0 -487
- package/es/prism/css.js.map +0 -1
- package/lib/prism/css.d.ts +0 -2
- package/lib/prism/css.js +0 -487
- package/lib/prism/css.js.map +0 -1
- package/umd/js/b0b7ef40820a295f.js +0 -1
package/es/code/index.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import { type JSX } from 'solid-js';
|
|
1
2
|
import type { CustomElement } from '..';
|
|
3
|
+
export type Language = 'bash' | 'shell' | 'sh' | 'clike' | 'css' | 'docker' | 'dockerfile' | 'git' | 'diff' | 'javascript' | 'js' | 'json' | 'webmanifest' | 'jsx' | 'tsx' | 'less' | 'html' | 'mathml' | 'svg' | 'xml' | 'ssml' | 'atom' | 'rss' | 'regex' | 'rust' | 'sql' | 'swift' | 'toml' | 'typescript' | 'ts' | 'yaml' | 'yml' | 'matlab';
|
|
2
4
|
export interface CodeProps {
|
|
3
5
|
/** 自定义类名 */
|
|
4
6
|
class?: string;
|
|
@@ -6,23 +8,18 @@ export interface CodeProps {
|
|
|
6
8
|
css?: string;
|
|
7
9
|
/** 内容 */
|
|
8
10
|
code?: string;
|
|
9
|
-
/** 语言
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
/** 语言
|
|
12
|
+
* @default 'markup'
|
|
13
|
+
*/
|
|
14
|
+
language?: Language;
|
|
13
15
|
/** 支持编辑 */
|
|
14
16
|
edit?: boolean;
|
|
15
17
|
/** 开启代码块工具条 */
|
|
16
18
|
toolbar?: boolean;
|
|
17
19
|
/** 编辑修改时的回调 */
|
|
18
|
-
onChange
|
|
20
|
+
onChange?(code: string): void;
|
|
19
21
|
children?: JSX.Element;
|
|
20
|
-
/**
|
|
21
|
-
* 使用 web worker
|
|
22
|
-
* @default false
|
|
23
|
-
*/
|
|
24
|
-
webWorker?: boolean;
|
|
25
22
|
}
|
|
26
23
|
export type CodeElement = CustomElement<CodeProps>;
|
|
27
|
-
declare function Code(props: CodeProps):
|
|
24
|
+
declare function Code(props: CodeProps): JSX.Element;
|
|
28
25
|
export default Code;
|
package/es/code/index.js
CHANGED
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
function
|
|
2
|
-
`,r.languages[e]||r.languages.markup,e)}))}(e.language||"markup",w())}),_(()=>{n&&(null==T||T.observe(n))}),C(()=>{U&&(U.removeEventListener("message",G),U.terminate()),K()}),[(()=>{let e=g(),t=e.firstChild;return s(()=>{var e;return t.data=null==(e=H())?void 0:e()}),e})(),(()=>{let e=f();return e.textContent=M,e})(),a(y,{get when(){return e.css},get children(){let t=g(),r=t.firstChild;return s(()=>r.data=x(e.css)),t}}),a(y,{get when(){return e.edit},get fallback(){return a(z,{})},get children(){let t=p(),r=t.firstChild;return c(r,"input",D,!0),i(t,a(z,{}),null),s(n=>{let o=L("n-editor",e.class),i=!!e.lineNumber,s=!e.toolbar,l=`${W()}px`;return o!==n._v$4&&u(t,n._v$4=o),i!==n._v$5&&r.classList.toggle("line-numbers",n._v$5=i),s!==n._v$6&&r.classList.toggle("not-toolbar",n._v$6=s),l!==n._v$7&&(null!=(n._v$7=l)?r.style.setProperty("height",l):r.style.removeProperty("height")),n},{_v$4:void 0,_v$5:void 0,_v$6:void 0,_v$7:void 0}),s(()=>r.value=e.code),t}})]}E("n-code",{class:void 0,code:void 0,language:void 0,children:void 0,edit:void 0,toolbar:void 0,css:void 0,lineNumber:void 0,onChange:void 0,webWorker:void 0},(e,t)=>{let{baseStyle:r}=N,n=t.element,o=w({code:n.textContent,css:n.css,onChange(e){n.dispatchEvent(new CustomEvent("change",{detail:e}))}},e);return h(()=>{W(n,["css","code"]),n.replaceChildren()}),[(()=>{let e=f();return e.textContent=I,e})(),(()=>{let e=g(),t=e.firstChild;return s(()=>t.data=r()),e})(),a(R,o)]});export default R;l(["click","input"]);
|
|
1
|
+
function t(t,e,i,o,r,n,l){try{var s=t[n](l),a=s.value}catch(t){i(t);return}s.done?e(a):Promise.resolve(a).then(o,r)}import{use as e}from"solid-js/web";import{template as i}from"solid-js/web";import{setAttribute as o}from"solid-js/web";import{insert as r}from"solid-js/web";import{effect as n}from"solid-js/web";import{delegateEvents as l}from"solid-js/web";import{createComponent as s}from"solid-js/web";import{classList as a}from"solid-js/web";import{addEventListener as d}from"solid-js/web";let c=i("<style> "),h=i("<style>"),f=i('<div class="toolbar"><button class="toolbar-copy" aria-label="copy">'),u=i("<pre><code>");import{createEffect as g,createResource as m,createSignal as p,createUniqueId as v,mergeProps as C,onCleanup as b,Show as w,untrack as y}from"solid-js";import S from"@moneko/common/lib/isFunction";import j from"@moneko/common/lib/setClipboard";import{css as k}from"@moneko/css";import{customElement as $}from"solid-element";import{clearAttribute as E}from"../basic-config";import x from"../theme";import{darkCss as A,lightCss as _,style as P}from"./style";function z(i){let l,C;let{isDark:$}=x,E=/^diff-([\w-]+)/i,z=/%[0-9A-Fa-f]{2}/,T=v(),[W,F]=p(""),[H,L]=p();function R(){var e;return e=function*(){return window.Prism?window.Prism:(yield import("../prism")).default},(R=function(){var i=this,o=arguments;return new Promise(function(r,n){var l=e.apply(i,o);function s(e){t(l,r,n,s,a,"next",e)}function a(e){t(l,r,n,s,a,"throw",e)}s(void 0)})}).apply(this,arguments)}let[I]=m("prism",function(){return R.apply(this,arguments)});function U(){j(y(W),l)}g(()=>{let t=i.code||"";z.test(t)&&(t=decodeURIComponent(t)),l.normalize(),t!==l.textContent&&F(t)});let q=function(t){t.target.normalize();let e=t.target.textContent;B(i.language,e),S(i.onChange)&&i.onChange(e)};function B(t="markup",e){C&&(clearTimeout(C),C=void 0);let i=I();e&&i&&(C=setTimeout(()=>{if(clearTimeout(C),CSS.highlights){CSS.highlights.forEach((t,e)=>{e.startsWith(T)&&t.clear()});let o=i.languages[E.test(t)?"diff":t]||i.languages.markup;!function t(e,i,o=0){let r=o;if(Array.isArray(i)){for(let o=0,n=i.length;o<n;o++){let n=i[o];if("object"!=typeof n){r+=n.length;continue}r=t(e,n,r)}return r}if("object"==typeof i&&i.type&&e.firstChild){var n;let o=T+(null!=(n=i.alias)?n:i.type),l=new Range;l.setStart(e.firstChild,r),Array.isArray(i.content)?r=t(e,i.content,r):"string"==typeof i.content&&(r+=i.content.length),l.setEnd(e.firstChild,r);let s=CSS.highlights.get(o);s?s.add(l):CSS.highlights.set(o,new Highlight().add(l))}return r}(l,i.tokenize(e,o)),L(()=>{let t=T.length,e="";for(let i of CSS.highlights.keys())i.startsWith(T)&&(e+=`::highlight(${i}){color:var(--${i.substring(t)});}`);return e})}else throw Error("不支持 CSS Highlights");C=void 0},0))}return g(()=>{B(i.language,W())}),b(()=>{if(CSS.highlights)for(let t of CSS.highlights.keys())t.startsWith(T)&&CSS.highlights.delete(t)}),[(()=>{let t=c(),e=t.firstChild;return n(()=>e.data=$()?A:_),t})(),(()=>{let t=c(),e=t.firstChild;return n(()=>e.data=H()),t})(),(()=>{let t=h();return t.textContent=P,t})(),s(w,{get when(){return i.css},get children(){let t=c(),e=t.firstChild;return n(()=>e.data=k(i.css)),t}}),(()=>{let t=u(),c=t.firstChild,h=l;return r(t,s(w,{get when(){return i.toolbar},get children(){let t=f();return d(t.firstChild,"click",U,!0),n(()=>{var e;return o(t,"data-language",null==(e=i.language)?void 0:e.split(" ")[0])}),t}}),c),d(c,"input",q,!0),"function"==typeof h?e(h,c):l=c,o(c,"spellcheck",!1),r(c,W),n(e=>{let r={[`language-${i.language}`]:!!i.language,"not-toolbar":!i.toolbar,[i.class]:!i.edit},n=i.edit;return e._v$=a(t,r,e._v$),n!==e._v$2&&o(c,"contenteditable",e._v$2=n),e},{_v$:void 0,_v$2:void 0}),t})()]}$("n-code",{class:void 0,code:void 0,language:void 0,children:void 0,edit:void 0,toolbar:void 0,css:void 0,onChange:void 0},(t,e)=>{let{baseStyle:i}=x,o=e.element,r=C({code:o.textContent,css:o.css,onChange(t){o.dispatchEvent(new CustomEvent("change",{detail:t}))}},t);return g(()=>{E(o,["css","code"]),o.replaceChildren()}),[(()=>{let t=c(),e=t.firstChild;return n(()=>e.data=i()),t})(),s(z,r)]});export default z;l(["click","input"]);
|
|
3
2
|
//# sourceMappingURL=index.js.map
|
package/es/code/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../components/code/index.tsx"],"sourcesContent":["import {\n type Accessor,\n createEffect,\n createResource,\n createSignal,\n mergeProps,\n onCleanup,\n onMount,\n Show,\n untrack,\n} from 'solid-js';\nimport { isFunction, setClipboard } from '@moneko/common';\nimport { css, cx } from '@moneko/css';\nimport { customElement } from 'solid-element';\n\nimport type { CustomElement } from '..';\nimport { clearAttribute } from '../basic-config';\nimport theme, { block } from '../theme';\n\nimport { style } from './style';\n\nexport interface CodeProps {\n /** 自定义类名 */\n class?: string;\n /** 自定义样式表 */\n css?: string;\n /** 内容 */\n code?: string;\n /** 语言 */\n language?: string;\n /** 显示代码行号 */\n lineNumber?: boolean;\n /** 支持编辑 */\n edit?: boolean;\n /** 开启代码块工具条 */\n toolbar?: boolean;\n /** 编辑修改时的回调 */\n onChange?: (code: string) => void;\n children?: JSX.Element;\n /**\n * 使用 web worker\n * @default false\n */\n webWorker?: boolean;\n}\n\nexport type CodeElement = CustomElement<CodeProps>;\nconst cache = {\n Prism: null as typeof import('../prism/index').default | null,\n prismCss: null as Accessor<string> | null,\n};\n\nfunction Code(props: CodeProps) {\n let codeEl: HTMLPreElement;\n const diffLang = /^diff-([\\w-]+)/i;\n const [code, setCode] = createSignal<string>('');\n const [hei, setHei] = createSignal(20);\n const [isIntersecting, setIsIntersecting] = createSignal(false);\n\n async function fetchPrism() {\n if (!cache.Prism) {\n cache.Prism = (await import('../prism')).default;\n }\n return cache.Prism;\n }\n async function fetchPrismCss() {\n if (!cache.prismCss) {\n cache.prismCss = (await import('../prism/css')).default;\n }\n return cache.prismCss;\n }\n const [prismJS] = createResource('prism', fetchPrism);\n const [prismCss] = createResource('prism-css', fetchPrismCss);\n\n function initObserver() {\n return new IntersectionObserver((entries) => {\n setIsIntersecting(entries[0].isIntersecting);\n });\n }\n function initWorker() {\n return new Worker('https://cdn.jsdelivr.net/npm/neko-ui@latest/es/code/worker.js');\n }\n // eslint-disable-next-line solid/reactivity\n let observer = props.webWorker ? void 0 : initObserver();\n // eslint-disable-next-line solid/reactivity\n let worker: Worker | undefined = props.webWorker ? initWorker() : void 0;\n\n function copy() {\n setClipboard(untrack(code), codeEl);\n }\n function Pre() {\n return (\n <pre\n classList={{\n [`language-${props.language}`]: !!props.language,\n 'line-numbers': props.lineNumber,\n 'not-toolbar': !props.toolbar,\n [props.class!]: !props.edit,\n }}\n >\n <Show when={props.toolbar}>\n <div class=\"toolbar\" data-language={props.language?.split(' ')[0]}>\n <button class=\"toolbar-copy\" aria-label=\"copy\" onClick={copy} />\n </div>\n </Show>\n <code ref={codeEl} class={`language-${props.language}`} textContent={code()} />\n </pre>\n );\n }\n function change({ target }: { target: HTMLTextAreaElement }) {\n const c = `${target.value}${target.value.endsWith('\\n') ? '\\u200b' : ''}`;\n\n setCode(c);\n if (isFunction(props.onChange)) {\n props.onChange(c);\n }\n }\n function update(e: { data: string }) {\n codeEl.innerHTML = e.data;\n setHei(codeEl.getBoundingClientRect().height - (props.toolbar ? 40 : 16));\n }\n function cleanObserver() {\n if (observer) {\n // 停止观察目标元素\n observer.unobserve(codeEl);\n observer.disconnect();\n }\n }\n function postMessage(language: string, value?: string) {\n const Prism = prismJS();\n\n if (!value || !isIntersecting() || !Prism) return;\n cleanObserver();\n if (diffLang.test(language) && !Prism.languages[language]) {\n Prism.languages[language] = Prism.languages.diff;\n }\n update({\n data: Prism.highlight(\n `${value}\\n`,\n Prism.languages[language] || Prism.languages.markup,\n language,\n ),\n });\n }\n createEffect(() => {\n if (props.code) {\n try {\n setCode(decodeURIComponent(props.code));\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (_error) {\n setCode(props.code);\n }\n } else {\n setCode('');\n }\n });\n createEffect(() => {\n if (props.webWorker) {\n if (!worker) {\n worker = initWorker();\n }\n worker.addEventListener('message', update);\n } else if (!observer) {\n observer = initObserver();\n }\n });\n\n createEffect(() => {\n if (worker) {\n worker.postMessage(\n JSON.stringify({\n language: props.language,\n code: code(),\n }),\n );\n } else {\n postMessage(props.language || 'markup', code());\n }\n });\n onMount(() => {\n if (codeEl) {\n // 开始观察目标元素\n observer?.observe(codeEl);\n }\n });\n onCleanup(() => {\n if (worker) {\n worker.removeEventListener('message', update);\n worker.terminate();\n }\n cleanObserver();\n });\n\n return (\n <>\n <style textContent={prismCss()?.()} />\n <style textContent={style} />\n <Show when={props.css}>\n <style textContent={css(props.css)} />\n </Show>\n <Show when={props.edit} fallback={<Pre />}>\n <div class={cx('n-editor', props.class)}>\n <textarea\n value={props.code}\n classList={{\n 'line-numbers': props.lineNumber,\n 'not-toolbar': !props.toolbar,\n }}\n style={{ height: `${hei()}px` }}\n onInput={change}\n />\n <Pre />\n </div>\n </Show>\n </>\n );\n}\n\ncustomElement<CodeProps>(\n 'n-code',\n {\n class: void 0,\n code: void 0,\n language: void 0,\n children: void 0,\n edit: void 0,\n toolbar: void 0,\n css: void 0,\n lineNumber: void 0,\n onChange: void 0,\n webWorker: void 0,\n },\n (_, opt) => {\n const { baseStyle } = theme;\n const el = opt.element;\n const props = mergeProps(\n {\n code: el.textContent,\n css: el.css,\n onChange(val: string) {\n el.dispatchEvent(\n new CustomEvent('change', {\n detail: val,\n }),\n );\n },\n },\n _,\n );\n\n createEffect(() => {\n clearAttribute(el, ['css', 'code']);\n el.replaceChildren();\n });\n\n return (\n <>\n <style textContent={block} />\n <style textContent={baseStyle()} />\n <Code {...props} />\n </>\n );\n },\n);\nexport default Code;\n"],"names":["createEffect","createResource","createSignal","mergeProps","onCleanup","onMount","Show","untrack","isFunction","setClipboard","css","cx","customElement","clearAttribute","theme","block","style","cache","Prism","prismCss","Code","props","codeEl","diffLang","code","setCode","hei","setHei","isIntersecting","setIsIntersecting","fetchPrism","default","fetchPrismCss","prismJS","initObserver","IntersectionObserver","entries","initWorker","Worker","observer","webWorker","worker","copy","Pre","toolbar","language","split","lineNumber","class","edit","change","target","c","value","endsWith","onChange","update","e","innerHTML","data","getBoundingClientRect","height","cleanObserver","unobserve","disconnect","decodeURIComponent","_error","addEventListener","postMessage","JSON","stringify","test","languages","diff","highlight","markup","observe","removeEventListener","terminate","children","_","opt","baseStyle","el","element","textContent","val","dispatchEvent","CustomEvent","detail","replaceChildren"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../components/code/index.tsx"],"sourcesContent":["import {\n createEffect,\n createResource,\n createSignal,\n createUniqueId,\n type JSX,\n mergeProps,\n onCleanup,\n Show,\n untrack,\n} from 'solid-js';\nimport { isFunction, setClipboard } from '@moneko/common';\nimport { css } from '@moneko/css';\nimport type { TokenStream } from 'prismjs';\nimport { customElement } from 'solid-element';\n\nimport type { CustomElement } from '..';\nimport { clearAttribute } from '../basic-config';\nimport theme from '../theme';\n\nimport { darkCss, lightCss, style } from './style';\n\nexport type Language =\n | 'bash'\n | 'shell'\n | 'sh'\n | 'clike'\n | 'css'\n | 'docker'\n | 'dockerfile'\n | 'git'\n | 'diff'\n | 'javascript'\n | 'js'\n | 'json'\n | 'webmanifest'\n | 'jsx'\n | 'tsx'\n | 'less'\n | 'html'\n | 'mathml'\n | 'svg'\n | 'xml'\n | 'ssml'\n | 'atom'\n | 'rss'\n | 'regex'\n | 'rust'\n | 'sql'\n | 'swift'\n | 'toml'\n | 'typescript'\n | 'ts'\n | 'yaml'\n | 'yml'\n | 'matlab';\n\nexport interface CodeProps {\n /** 自定义类名 */\n class?: string;\n /** 自定义样式表 */\n css?: string;\n /** 内容 */\n code?: string;\n /** 语言\n * @default 'markup'\n */\n language?: Language;\n /** 支持编辑 */\n edit?: boolean;\n /** 开启代码块工具条 */\n toolbar?: boolean;\n /** 编辑修改时的回调 */\n onChange?(code: string): void;\n children?: JSX.Element;\n}\nexport type CodeElement = CustomElement<CodeProps>;\n\nfunction Code(props: CodeProps) {\n const { isDark } = theme;\n let codeEl: HTMLPreElement;\n let timer: NodeJS.Timeout | undefined;\n const diffLang = /^diff-([\\w-]+)/i;\n const decoded = /%[0-9A-Fa-f]{2}/;\n const id = createUniqueId();\n const [code, setCode] = createSignal<string>('');\n const [highlightCss, setHighlightCss] = createSignal<string>();\n\n async function fetchPrism() {\n if (!window.Prism) {\n return (await import('../prism')).default;\n }\n return window.Prism;\n }\n const [prismJS] = createResource('prism', fetchPrism);\n\n createEffect(() => {\n let _next = props.code || '';\n\n if (decoded.test(_next)) {\n _next = decodeURIComponent(_next);\n }\n codeEl.normalize();\n if (_next !== codeEl.textContent) {\n setCode(_next);\n }\n });\n\n function copy() {\n setClipboard(untrack(code), codeEl);\n }\n const change: JSX.InputEventHandlerUnion<HTMLElement, InputEvent> = function (e) {\n e.target.normalize();\n const next = e.target.textContent;\n\n syntax(props.language, next);\n if (isFunction(props.onChange)) {\n props.onChange(next);\n }\n };\n\n function highlighter(el: HTMLPreElement, tokenize: TokenStream, start = 0) {\n let pos = start;\n\n if (Array.isArray(tokenize)) {\n for (let i = 0, len = tokenize.length; i < len; i++) {\n const token = tokenize[i];\n\n if (typeof token !== 'object') {\n pos += token.length;\n continue;\n }\n pos = highlighter(el, token, pos);\n }\n return pos;\n }\n if (typeof tokenize === 'object' && tokenize.type) {\n if (el.firstChild) {\n const key = id + (tokenize.alias ?? tokenize.type);\n const range = new Range();\n\n range.setStart(el.firstChild, pos);\n if (Array.isArray(tokenize.content)) {\n pos = highlighter(el, tokenize.content, pos);\n } else if (typeof tokenize.content === 'string') {\n pos += tokenize.content.length;\n }\n range.setEnd(el.firstChild, pos);\n const highlight = CSS.highlights.get(key);\n\n if (highlight) {\n highlight.add(range);\n } else {\n CSS.highlights.set(key, new Highlight().add(range));\n }\n }\n }\n\n return pos;\n }\n function syntax(language = 'markup', value: string | null) {\n if (timer) {\n clearTimeout(timer);\n timer = void 0;\n }\n const Prism = prismJS();\n\n if (!value || !Prism) return;\n timer = setTimeout(() => {\n clearTimeout(timer);\n\n if (CSS.highlights) {\n CSS.highlights.forEach((highlight, key) => {\n if (key.startsWith(id)) {\n highlight.clear();\n }\n });\n const grammar =\n Prism.languages[diffLang.test(language) ? 'diff' : language] || Prism.languages.markup;\n\n highlighter(codeEl, Prism.tokenize(value, grammar));\n setHighlightCss(() => {\n const len = id.length;\n let style = '';\n\n for (const key of CSS.highlights.keys()) {\n if (key.startsWith(id)) {\n style += `::highlight(${key}){color:var(--${key.substring(len)});}`;\n }\n }\n return style;\n });\n } else {\n throw Error('不支持 CSS Highlights');\n }\n timer = void 0;\n }, 0);\n }\n createEffect(() => {\n syntax(props.language, code());\n });\n onCleanup(() => {\n if (CSS.highlights) {\n for (const key of CSS.highlights.keys()) {\n if (key.startsWith(id)) {\n CSS.highlights.delete(key);\n }\n }\n }\n });\n\n return (\n <>\n <style textContent={isDark() ? darkCss : lightCss} />\n <style textContent={highlightCss()} />\n <style textContent={style} />\n <Show when={props.css}>\n <style textContent={css(props.css)} />\n </Show>\n <pre\n classList={{\n [`language-${props.language}`]: !!props.language,\n 'not-toolbar': !props.toolbar,\n [props.class!]: !props.edit,\n }}\n >\n <Show when={props.toolbar}>\n <div class=\"toolbar\" data-language={props.language?.split(' ')[0]}>\n <button class=\"toolbar-copy\" aria-label=\"copy\" onClick={copy} />\n </div>\n </Show>\n <code ref={codeEl!} contenteditable={props.edit} spellcheck={false} onInput={change}>\n {code()}\n </code>\n </pre>\n </>\n );\n}\n\ncustomElement<CodeProps>(\n 'n-code',\n {\n class: void 0,\n code: void 0,\n language: void 0,\n children: void 0,\n edit: void 0,\n toolbar: void 0,\n css: void 0,\n onChange: void 0,\n },\n (_, opt) => {\n const { baseStyle } = theme;\n const el = opt.element;\n const props = mergeProps(\n {\n code: el.textContent,\n css: el.css,\n onChange(val: string) {\n el.dispatchEvent(\n new CustomEvent('change', {\n detail: val,\n }),\n );\n },\n },\n _,\n );\n\n createEffect(() => {\n clearAttribute(el, ['css', 'code']);\n el.replaceChildren();\n });\n return (\n <>\n <style textContent={baseStyle()} />\n <Code {...props} />\n </>\n );\n },\n);\nexport default Code;\n"],"names":["createEffect","createResource","createSignal","createUniqueId","mergeProps","onCleanup","Show","untrack","isFunction","setClipboard","css","customElement","clearAttribute","theme","darkCss","lightCss","style","Code","props","codeEl","timer","isDark","diffLang","decoded","id","code","setCode","highlightCss","setHighlightCss","fetchPrism","window","Prism","default","prismJS","copy","_next","test","decodeURIComponent","normalize","textContent","change","e","target","next","syntax","language","onChange","value","clearTimeout","setTimeout","CSS","highlights","forEach","highlight","key","startsWith","clear","grammar","languages","markup","highlighter","el","tokenize","start","pos","Array","isArray","i","len","length","token","type","firstChild","alias","range","Range","setStart","content","setEnd","get","add","set","Highlight","keys","substring","Error","delete","toolbar","split","class","edit","children","_","opt","baseStyle","element","val","dispatchEvent","CustomEvent","detail","replaceChildren"],"mappings":"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"}
|
package/es/code/style.d.ts
CHANGED
package/es/code/style.js
CHANGED
|
@@ -1,73 +1,207 @@
|
|
|
1
1
|
import{css as o}from"@moneko/css";export const style=o`
|
|
2
2
|
:host {
|
|
3
|
+
--code-font-stack: 'Liberation Mono', monaco, menlo, consolas, 'Source Code Pro', 'Ubuntu Mono',
|
|
4
|
+
'Microsoft Yahei', '微软雅黑', courier, 'Helvetica Neue', 'Lantinghei SC', stxihei, wenquanyi,
|
|
5
|
+
sans-serif;
|
|
6
|
+
|
|
3
7
|
position: relative;
|
|
8
|
+
display: block;
|
|
4
9
|
box-sizing: border-box;
|
|
5
10
|
}
|
|
6
11
|
|
|
7
|
-
.
|
|
8
|
-
|
|
12
|
+
.toolbar::after,
|
|
13
|
+
.toolbar-copy::after,
|
|
14
|
+
pre,
|
|
15
|
+
code {
|
|
16
|
+
transition-duration: var(--transition-duration);
|
|
17
|
+
transition-timing-function: var(--transition-timing-function);
|
|
18
|
+
}
|
|
9
19
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
20
|
+
[data-copy]::before {
|
|
21
|
+
position: absolute;
|
|
22
|
+
z-index: 1;
|
|
23
|
+
display: inline-block;
|
|
24
|
+
margin: auto;
|
|
25
|
+
border: 1px solid;
|
|
26
|
+
border-radius: var(--border-radius);
|
|
27
|
+
padding: 4px 8px;
|
|
28
|
+
font-size: var(--font-size-sm);
|
|
29
|
+
transition:
|
|
30
|
+
background-color 0.3s,
|
|
31
|
+
color 0.3s,
|
|
32
|
+
border-color 0.3s;
|
|
33
|
+
content: '复制成功';
|
|
34
|
+
inline-size: fit-content;
|
|
35
|
+
animation-fill-mode: forwards;
|
|
36
|
+
inset-block-start: 32px;
|
|
37
|
+
inset-inline: 0;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
[data-copy='success']::before {
|
|
41
|
+
border-color: var(--success-border);
|
|
42
|
+
color: var(--success-color);
|
|
43
|
+
background-color: var(--success-bg);
|
|
44
|
+
animation: copy-slide-in var(--transition-duration) var(--transition-timing-function);
|
|
13
45
|
}
|
|
14
46
|
|
|
15
|
-
|
|
16
|
-
|
|
47
|
+
[data-copy='failure']::before {
|
|
48
|
+
border-color: var(--error-border);
|
|
49
|
+
color: var(--error-color);
|
|
50
|
+
background-color: var(--error-bg);
|
|
51
|
+
animation:
|
|
52
|
+
copy-slide-in var(--transition-duration) var(--transition-timing-function),
|
|
53
|
+
error 1s var(--transition-timing-function) 1s;
|
|
54
|
+
content: '复制失败';
|
|
55
|
+
}
|
|
17
56
|
|
|
18
|
-
|
|
19
|
-
|
|
57
|
+
[data-copy-exit]::before {
|
|
58
|
+
animation: copy-slide-out var(--transition-duration) forwards var(--transition-timing-function);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
@keyframes copy-slide-in {
|
|
62
|
+
from {
|
|
63
|
+
opacity: 0;
|
|
64
|
+
transform: translate3d(0, -100%, 0) scale(0);
|
|
65
|
+
}
|
|
20
66
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
margin: 0;
|
|
25
|
-
border: none;
|
|
26
|
-
padding: 0;
|
|
27
|
-
font-size: var(--font-size);
|
|
28
|
-
white-space: inherit;
|
|
29
|
-
color: transparent;
|
|
30
|
-
background-color: transparent;
|
|
31
|
-
outline: none;
|
|
32
|
-
resize: none;
|
|
33
|
-
box-sizing: border-box;
|
|
34
|
-
inset-block: 32px 8px;
|
|
35
|
-
inset-inline: 16px;
|
|
36
|
-
min-block-size: 64px;
|
|
37
|
-
caret-color: var(--text-color);
|
|
38
|
-
block-size: fit-content;
|
|
39
|
-
line-height: inherit !important;
|
|
40
|
-
|
|
41
|
-
&.line-numbers {
|
|
42
|
-
inset-inline: 54px 10px;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
&.not-toolbar {
|
|
46
|
-
inset-block-start: 8px;
|
|
47
|
-
min-block-size: 20px;
|
|
48
|
-
}
|
|
67
|
+
to {
|
|
68
|
+
opacity: 1;
|
|
69
|
+
transform: translate3d(0, 0, 0) scale(1);
|
|
49
70
|
}
|
|
71
|
+
}
|
|
50
72
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
block-size: 100%;
|
|
56
|
-
min-block-size: 65px;
|
|
57
|
-
line-height: inherit !important;
|
|
58
|
-
|
|
59
|
-
&.not-toolbar {
|
|
60
|
-
min-block-size: 36px;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
.toolbar {
|
|
64
|
-
pointer-events: all;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
code {
|
|
68
|
-
line-height: inherit !important;
|
|
69
|
-
}
|
|
73
|
+
@keyframes copy-slide-out {
|
|
74
|
+
from {
|
|
75
|
+
opacity: 1;
|
|
76
|
+
transform: translate3d(0, 0, 0) scale(1);
|
|
70
77
|
}
|
|
78
|
+
|
|
79
|
+
to {
|
|
80
|
+
opacity: 0;
|
|
81
|
+
transform: translate3d(0, -100%, 0) scale(0);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
pre,
|
|
86
|
+
code {
|
|
87
|
+
display: block;
|
|
88
|
+
border: none;
|
|
89
|
+
border-radius: var(--border-radius);
|
|
90
|
+
font-size: var(--font-size);
|
|
91
|
+
font-family: var(--code-font-stack);
|
|
92
|
+
text-align: start;
|
|
93
|
+
white-space: pre-wrap;
|
|
94
|
+
outline: none;
|
|
95
|
+
text-shadow: none;
|
|
96
|
+
overflow-wrap: normal;
|
|
97
|
+
tab-size: 4;
|
|
98
|
+
hyphens: none;
|
|
99
|
+
max-inline-size: 100%;
|
|
100
|
+
line-height: 1.8;
|
|
101
|
+
transition-property: box-shadow, background-color, border-color, color;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
pre {
|
|
105
|
+
position: relative;
|
|
106
|
+
overflow: visible;
|
|
107
|
+
margin: auto;
|
|
108
|
+
color: var(--code-color);
|
|
109
|
+
background-color: var(--primary-component-bg);
|
|
110
|
+
box-shadow: 0 2px 8px 0 var(--primary-shadow);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
pre > code {
|
|
114
|
+
overflow: auto;
|
|
115
|
+
padding: 32px 16px 8px;
|
|
116
|
+
pointer-events: auto;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
pre.language-css,
|
|
120
|
+
pre.language-less,
|
|
121
|
+
pre.language-regex {
|
|
122
|
+
color: var(--code-lang-style-color);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
pre > .toolbar::after {
|
|
126
|
+
position: absolute;
|
|
127
|
+
z-index: 2;
|
|
128
|
+
display: block;
|
|
129
|
+
border-radius: var(--border-radius) var(--border-radius) 0 0;
|
|
130
|
+
font-size: var(--font-size);
|
|
131
|
+
font-family: Ubuntu, sans-serif;
|
|
132
|
+
font-weight: bold;
|
|
133
|
+
text-align: center;
|
|
134
|
+
color: var(--text-color);
|
|
135
|
+
background-color: var(--code-toolbar-bg, rgb(220 224 229 / 50%));
|
|
136
|
+
box-shadow: 0 1px 5px rgb(0 0 0 / 10%);
|
|
137
|
+
text-transform: uppercase;
|
|
138
|
+
backdrop-filter: blur(10px);
|
|
139
|
+
content: attr(data-language) '';
|
|
140
|
+
block-size: 24px;
|
|
141
|
+
inline-size: 100%;
|
|
142
|
+
line-height: 24px;
|
|
143
|
+
transition-property: background-color, border-color, color;
|
|
144
|
+
inset-block-start: 0;
|
|
145
|
+
inset-inline-start: 0;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
pre > .toolbar::before {
|
|
149
|
+
position: absolute;
|
|
150
|
+
z-index: 3;
|
|
151
|
+
display: inline-block;
|
|
152
|
+
border-radius: var(--border-radius);
|
|
153
|
+
text-align: center;
|
|
154
|
+
background-color: #fc625d;
|
|
155
|
+
box-shadow:
|
|
156
|
+
0 0 0 4px #fc625d,
|
|
157
|
+
20px 0 0 4px #fdbc40,
|
|
158
|
+
40px 0 0 4px #35cd4b;
|
|
159
|
+
cursor: pointer;
|
|
160
|
+
content: '';
|
|
161
|
+
block-size: 4px;
|
|
162
|
+
inline-size: 4px;
|
|
163
|
+
inset-block-start: 10px;
|
|
164
|
+
inset-inline-start: 12px;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
pre > .toolbar > .toolbar-copy {
|
|
168
|
+
position: absolute;
|
|
169
|
+
z-index: 3;
|
|
170
|
+
border: none;
|
|
171
|
+
padding: 0;
|
|
172
|
+
background: none;
|
|
173
|
+
outline: none;
|
|
174
|
+
cursor: pointer;
|
|
175
|
+
inset-block-start: 0;
|
|
176
|
+
inset-inline-end: 8px;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
pre > .toolbar > .toolbar-copy:active {
|
|
180
|
+
transform: scale(0.95);
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
.toolbar > .toolbar-copy::after {
|
|
184
|
+
display: block;
|
|
185
|
+
font-size: 24px;
|
|
186
|
+
font-family: sans-serif;
|
|
187
|
+
color: var(--text-color);
|
|
188
|
+
user-select: none;
|
|
189
|
+
content: '⎘';
|
|
190
|
+
line-height: 24px;
|
|
191
|
+
transition-property: color, transform;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
.toolbar > .toolbar-copy:hover::after {
|
|
195
|
+
color: var(--primary-color, #5794ff);
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
.not-toolbar > code {
|
|
199
|
+
padding-block-start: 8px !important;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
pre::-webkit-scrollbar {
|
|
203
|
+
block-size: 5px;
|
|
204
|
+
inline-size: 5px;
|
|
71
205
|
}
|
|
72
|
-
`;
|
|
206
|
+
`;export const darkCss=o({":host":{"--code-color":"#eee","--code-lang-style-color":"#fd9170","--code-toolbar-bg":"rgb(63, 63, 63, 0.7)","--atrule":"#c792ea","--attr-name":"#9cdcfe","--attr-value":"#ce9178","--attr-equals":"#ccc","--attribute":"#a5e844","--boolean":"#c792ea","--builtin":"#ffcb6b","--cdata":"#80cbc4","--char":"#80cbc4","--class":"#ffcb6b","--class-name":"#f2ff00","--comment":"#616161","--constant":"#c792ea","--deleted":"#f66","--doctype":"#616161","--entity":"#f66","--function":"#dcdcaa","--hexcode":"#f2ff00","--id":"#c792ea","--important":"#c792ea","--inserted":"#80cbc4","--keyword":"#c792ea","--number":"#fd9170","--operator":"#89ddff","--prolog":"#616161","--property":"#80cbc4","--pseudo-class":"#a5e844","--pseudo-element":"#a5e844","--punctuation":"#89ddff","--regex":"#f2ff00","--selector":"#f66","--string":"#a5e844","--symbol":"#c792ea","--tag":"#569cd6","--unit":"#fd9170","--url":"#f66","--variable":"#f66"}});export const lightCss=o({":host":{"--code-color":"#90a4ae","--code-lang-style-color":"#f76d47","--namespace":"rgba(56, 64, 68, 0.7)","--tag":"#e53935","--atrule":"#7c4dff","--attr-name":"#39adb5","--attr-value":"#f6a434","--attr-equals":"#90a4ae","--attribute":"#f6a434","--boolean":"#7c4dff","--builtin":"#39adb5","--cdata":"#39adb5","--char":"#39adb5","--class":"#39adb5","--class-name":"#6182b8","--comment":"#aabfc9","--constant":"#7c4dff","--doctype":"#aabfc9","--entity":"#e53935","--hexcode":"#f76d47","--id":"#7c4dff","--important":"#7c4dff","--keyword":"#7c4dff","--number":"#f76d47","--operator":"#39adb5","--prolog":"#aabfc9","--property":"#39adb5","--pseudo-class":"#f6a434","--pseudo-element":"#f6a434","--punctuation":"#39adb5","--regex":"#6182b8","--selector":"#e53935","--string":"#f6a434","--symbol":"#7c4dff","--unit":"#f76d47","--url":"#e53935","--variable":"#e53935","--function":"#4078f2","--inserted":"#39adb5","--deleted":"#e53935","--name":"#39adb5"}});
|
|
73
207
|
//# sourceMappingURL=style.js.map
|
package/es/code/style.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../components/code/style.ts"],"sourcesContent":["import { css } from '@moneko/css';\n\nexport const style = css`\n :host {\n position: relative;\n box-sizing: border-box;\n }\n\n .
|
|
1
|
+
{"version":3,"sources":["../../components/code/style.ts"],"sourcesContent":["import { css } from '@moneko/css';\n\nexport const style = css`\n :host {\n --code-font-stack: 'Liberation Mono', monaco, menlo, consolas, 'Source Code Pro', 'Ubuntu Mono',\n 'Microsoft Yahei', '微软雅黑', courier, 'Helvetica Neue', 'Lantinghei SC', stxihei, wenquanyi,\n sans-serif;\n\n position: relative;\n display: block;\n box-sizing: border-box;\n }\n\n .toolbar::after,\n .toolbar-copy::after,\n pre,\n code {\n transition-duration: var(--transition-duration);\n transition-timing-function: var(--transition-timing-function);\n }\n\n [data-copy]::before {\n position: absolute;\n z-index: 1;\n display: inline-block;\n margin: auto;\n border: 1px solid;\n border-radius: var(--border-radius);\n padding: 4px 8px;\n font-size: var(--font-size-sm);\n transition:\n background-color 0.3s,\n color 0.3s,\n border-color 0.3s;\n content: '复制成功';\n inline-size: fit-content;\n animation-fill-mode: forwards;\n inset-block-start: 32px;\n inset-inline: 0;\n }\n\n [data-copy='success']::before {\n border-color: var(--success-border);\n color: var(--success-color);\n background-color: var(--success-bg);\n animation: copy-slide-in var(--transition-duration) var(--transition-timing-function);\n }\n\n [data-copy='failure']::before {\n border-color: var(--error-border);\n color: var(--error-color);\n background-color: var(--error-bg);\n animation:\n copy-slide-in var(--transition-duration) var(--transition-timing-function),\n error 1s var(--transition-timing-function) 1s;\n content: '复制失败';\n }\n\n [data-copy-exit]::before {\n animation: copy-slide-out var(--transition-duration) forwards var(--transition-timing-function);\n }\n\n @keyframes copy-slide-in {\n from {\n opacity: 0;\n transform: translate3d(0, -100%, 0) scale(0);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0) scale(1);\n }\n }\n\n @keyframes copy-slide-out {\n from {\n opacity: 1;\n transform: translate3d(0, 0, 0) scale(1);\n }\n\n to {\n opacity: 0;\n transform: translate3d(0, -100%, 0) scale(0);\n }\n }\n\n pre,\n code {\n display: block;\n border: none;\n border-radius: var(--border-radius);\n font-size: var(--font-size);\n font-family: var(--code-font-stack);\n text-align: start;\n white-space: pre-wrap;\n outline: none;\n text-shadow: none;\n overflow-wrap: normal;\n tab-size: 4;\n hyphens: none;\n max-inline-size: 100%;\n line-height: 1.8;\n transition-property: box-shadow, background-color, border-color, color;\n }\n\n pre {\n position: relative;\n overflow: visible;\n margin: auto;\n color: var(--code-color);\n background-color: var(--primary-component-bg);\n box-shadow: 0 2px 8px 0 var(--primary-shadow);\n }\n\n pre > code {\n overflow: auto;\n padding: 32px 16px 8px;\n pointer-events: auto;\n }\n\n pre.language-css,\n pre.language-less,\n pre.language-regex {\n color: var(--code-lang-style-color);\n }\n\n pre > .toolbar::after {\n position: absolute;\n z-index: 2;\n display: block;\n border-radius: var(--border-radius) var(--border-radius) 0 0;\n font-size: var(--font-size);\n font-family: Ubuntu, sans-serif;\n font-weight: bold;\n text-align: center;\n color: var(--text-color);\n background-color: var(--code-toolbar-bg, rgb(220 224 229 / 50%));\n box-shadow: 0 1px 5px rgb(0 0 0 / 10%);\n text-transform: uppercase;\n backdrop-filter: blur(10px);\n content: attr(data-language) '';\n block-size: 24px;\n inline-size: 100%;\n line-height: 24px;\n transition-property: background-color, border-color, color;\n inset-block-start: 0;\n inset-inline-start: 0;\n }\n\n pre > .toolbar::before {\n position: absolute;\n z-index: 3;\n display: inline-block;\n border-radius: var(--border-radius);\n text-align: center;\n background-color: #fc625d;\n box-shadow:\n 0 0 0 4px #fc625d,\n 20px 0 0 4px #fdbc40,\n 40px 0 0 4px #35cd4b;\n cursor: pointer;\n content: '';\n block-size: 4px;\n inline-size: 4px;\n inset-block-start: 10px;\n inset-inline-start: 12px;\n }\n\n pre > .toolbar > .toolbar-copy {\n position: absolute;\n z-index: 3;\n border: none;\n padding: 0;\n background: none;\n outline: none;\n cursor: pointer;\n inset-block-start: 0;\n inset-inline-end: 8px;\n }\n\n pre > .toolbar > .toolbar-copy:active {\n transform: scale(0.95);\n }\n\n .toolbar > .toolbar-copy::after {\n display: block;\n font-size: 24px;\n font-family: sans-serif;\n color: var(--text-color);\n user-select: none;\n content: '⎘';\n line-height: 24px;\n transition-property: color, transform;\n }\n\n .toolbar > .toolbar-copy:hover::after {\n color: var(--primary-color, #5794ff);\n }\n\n .not-toolbar > code {\n padding-block-start: 8px !important;\n }\n\n pre::-webkit-scrollbar {\n block-size: 5px;\n inline-size: 5px;\n }\n`;\nexport const darkCss = css({\n ':host': {\n '--code-color': '#eee',\n '--code-lang-style-color': '#fd9170',\n '--code-toolbar-bg': 'rgb(63, 63, 63, 0.7)',\n '--atrule': '#c792ea',\n '--attr-name': '#9cdcfe',\n '--attr-value': '#ce9178',\n '--attr-equals': '#ccc',\n '--attribute': '#a5e844',\n '--boolean': '#c792ea',\n '--builtin': '#ffcb6b',\n '--cdata': '#80cbc4',\n '--char': '#80cbc4',\n '--class': '#ffcb6b',\n '--class-name': '#f2ff00',\n '--comment': '#616161',\n '--constant': '#c792ea',\n '--deleted': '#f66',\n '--doctype': '#616161',\n '--entity': '#f66',\n '--function': '#dcdcaa',\n '--hexcode': '#f2ff00',\n '--id': '#c792ea',\n '--important': '#c792ea',\n '--inserted': '#80cbc4',\n '--keyword': '#c792ea',\n '--number': '#fd9170',\n '--operator': '#89ddff',\n '--prolog': '#616161',\n '--property': '#80cbc4',\n '--pseudo-class': '#a5e844',\n '--pseudo-element': '#a5e844',\n '--punctuation': '#89ddff',\n '--regex': '#f2ff00',\n '--selector': '#f66',\n '--string': '#a5e844',\n '--symbol': '#c792ea',\n '--tag': '#569cd6',\n '--unit': '#fd9170',\n '--url': '#f66',\n '--variable': '#f66',\n },\n});\nexport const lightCss = css({\n ':host': {\n '--code-color': '#90a4ae',\n '--code-lang-style-color': '#f76d47',\n '--namespace': 'rgba(56, 64, 68, 0.7)',\n '--tag': '#e53935',\n '--atrule': '#7c4dff',\n '--attr-name': '#39adb5',\n '--attr-value': '#f6a434',\n '--attr-equals': '#90a4ae',\n '--attribute': '#f6a434',\n '--boolean': '#7c4dff',\n '--builtin': '#39adb5',\n '--cdata': '#39adb5',\n '--char': '#39adb5',\n '--class': '#39adb5',\n '--class-name': '#6182b8',\n '--comment': '#aabfc9',\n '--constant': '#7c4dff',\n '--doctype': '#aabfc9',\n '--entity': '#e53935',\n '--hexcode': '#f76d47',\n '--id': '#7c4dff',\n '--important': '#7c4dff',\n '--keyword': '#7c4dff',\n '--number': '#f76d47',\n '--operator': '#39adb5',\n '--prolog': '#aabfc9',\n '--property': '#39adb5',\n '--pseudo-class': '#f6a434',\n '--pseudo-element': '#f6a434',\n '--punctuation': '#39adb5',\n '--regex': '#6182b8',\n '--selector': '#e53935',\n '--string': '#f6a434',\n '--symbol': '#7c4dff',\n '--unit': '#f76d47',\n '--url': '#e53935',\n '--variable': '#e53935',\n '--function': '#4078f2',\n '--inserted': '#39adb5',\n '--deleted': '#e53935',\n '--name': '#39adb5',\n },\n});\n"],"names":["css","style","darkCss","lightCss"],"mappings":"AAAA,OAASA,OAAAA,CAAG,KAAQ,aAAc,AAElC,QAAO,MAAMC,MAAQD,CAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6MzB,CAAC,AAAC,AACF,QAAO,MAAME,QAAUF,EAAI,CACzB,QAAS,CACP,eAAgB,OAChB,0BAA2B,UAC3B,oBAAqB,uBACrB,WAAY,UACZ,cAAe,UACf,eAAgB,UAChB,gBAAiB,OACjB,cAAe,UACf,YAAa,UACb,YAAa,UACb,UAAW,UACX,SAAU,UACV,UAAW,UACX,eAAgB,UAChB,YAAa,UACb,aAAc,UACd,YAAa,OACb,YAAa,UACb,WAAY,OACZ,aAAc,UACd,YAAa,UACb,OAAQ,UACR,cAAe,UACf,aAAc,UACd,YAAa,UACb,WAAY,UACZ,aAAc,UACd,WAAY,UACZ,aAAc,UACd,iBAAkB,UAClB,mBAAoB,UACpB,gBAAiB,UACjB,UAAW,UACX,aAAc,OACd,WAAY,UACZ,WAAY,UACZ,QAAS,UACT,SAAU,UACV,QAAS,OACT,aAAc,MAChB,CACF,EAAG,AACH,QAAO,MAAMG,SAAWH,EAAI,CAC1B,QAAS,CACP,eAAgB,UAChB,0BAA2B,UAC3B,cAAe,wBACf,QAAS,UACT,WAAY,UACZ,cAAe,UACf,eAAgB,UAChB,gBAAiB,UACjB,cAAe,UACf,YAAa,UACb,YAAa,UACb,UAAW,UACX,SAAU,UACV,UAAW,UACX,eAAgB,UAChB,YAAa,UACb,aAAc,UACd,YAAa,UACb,WAAY,UACZ,YAAa,UACb,OAAQ,UACR,cAAe,UACf,YAAa,UACb,WAAY,UACZ,aAAc,UACd,WAAY,UACZ,aAAc,UACd,iBAAkB,UAClB,mBAAoB,UACpB,gBAAiB,UACjB,UAAW,UACX,aAAc,UACd,WAAY,UACZ,WAAY,UACZ,SAAU,UACV,QAAS,UACT,aAAc,UACd,aAAc,UACd,aAAc,UACd,YAAa,UACb,SAAU,SACZ,CACF,EAAG"}
|
package/es/code/worker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../components/code/worker.ts"],"sourcesContent":["self.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/prism.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-bash.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-clike.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-css.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-diff.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-docker.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-git.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-javascript.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-jsx.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-latex.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-less.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-markdown.js');\nself.importScripts(\n 'https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-markup-templating.js',\n);\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-markup.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-regex.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-rust.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-sql.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-swift.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-toml.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-tsx.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-typescript.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-wasm.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-yaml.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-bash.js');\n// plugins\nself.importScripts(\n 'https://cdn.jsdelivr.net/npm/prismjs@1.29.0/plugins/diff-highlight/prism-diff-highlight.js',\n);\nself.importScripts(\n 'https://cdn.jsdelivr.net/npm/prismjs@1.29.0/plugins/highlight-keywords/prism-highlight-keywords.js',\n);\nself.importScripts(\n 'https://cdn.jsdelivr.net/npm/prismjs@1.29.0/plugins/line-numbers/prism-line-numbers.js',\n);\n\nfunction onMessage(e: MessageEvent<string>) {\n let result;\n\n try {\n const { code, language = 'markup' } = JSON.parse(e.data) as {\n code: string;\n language: string;\n };\n\n if (/^diff-([\\w-]+)/i.test(language) && !self.Prism.languages[language]) {\n self.Prism.languages[language] = self.Prism.languages.diff;\n }\n\n result = self.Prism.highlight(`${code}\\n`, self.Prism.languages[language], language);\n
|
|
1
|
+
{"version":3,"sources":["../../components/code/worker.ts"],"sourcesContent":["self.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/prism.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-bash.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-clike.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-css.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-diff.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-docker.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-git.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-javascript.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-jsx.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-latex.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-less.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-markdown.js');\nself.importScripts(\n 'https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-markup-templating.js',\n);\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-markup.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-regex.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-rust.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-sql.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-swift.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-toml.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-tsx.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-typescript.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-wasm.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-yaml.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-bash.js');\n// plugins\nself.importScripts(\n 'https://cdn.jsdelivr.net/npm/prismjs@1.29.0/plugins/diff-highlight/prism-diff-highlight.js',\n);\nself.importScripts(\n 'https://cdn.jsdelivr.net/npm/prismjs@1.29.0/plugins/highlight-keywords/prism-highlight-keywords.js',\n);\nself.importScripts(\n 'https://cdn.jsdelivr.net/npm/prismjs@1.29.0/plugins/line-numbers/prism-line-numbers.js',\n);\n\nfunction onMessage(e: MessageEvent<string>) {\n let result;\n\n try {\n const { code, language = 'markup' } = JSON.parse(e.data) as {\n code: string;\n language: string;\n };\n\n if (/^diff-([\\w-]+)/i.test(language) && !self.Prism.languages[language]) {\n self.Prism.languages[language] = self.Prism.languages.diff;\n }\n\n result = self.Prism.highlight(`${code}\\n`, self.Prism.languages[language], language);\n } catch {\n result = '';\n }\n self.postMessage(result); // 向主线程发送消息\n}\n\nself.addEventListener('message', onMessage, false);\n"],"names":["self","importScripts","addEventListener","e","result","code","language","JSON","parse","data","test","Prism","languages","diff","highlight","postMessage"],"mappings":"AAAAA,KAAKC,aAAa,CAAC,wDACnBD,KAAKC,aAAa,CAAC,wEACnBD,KAAKC,aAAa,CAAC,yEACnBD,KAAKC,aAAa,CAAC,uEACnBD,KAAKC,aAAa,CAAC,wEACnBD,KAAKC,aAAa,CAAC,0EACnBD,KAAKC,aAAa,CAAC,uEACnBD,KAAKC,aAAa,CAAC,8EACnBD,KAAKC,aAAa,CAAC,uEACnBD,KAAKC,aAAa,CAAC,yEACnBD,KAAKC,aAAa,CAAC,wEACnBD,KAAKC,aAAa,CAAC,4EACnBD,KAAKC,aAAa,CAChB,qFAEFD,KAAKC,aAAa,CAAC,0EACnBD,KAAKC,aAAa,CAAC,yEACnBD,KAAKC,aAAa,CAAC,wEACnBD,KAAKC,aAAa,CAAC,uEACnBD,KAAKC,aAAa,CAAC,yEACnBD,KAAKC,aAAa,CAAC,wEACnBD,KAAKC,aAAa,CAAC,uEACnBD,KAAKC,aAAa,CAAC,8EACnBD,KAAKC,aAAa,CAAC,wEACnBD,KAAKC,aAAa,CAAC,wEACnBD,KAAKC,aAAa,CAAC,wEAEnBD,KAAKC,aAAa,CAChB,8FAEFD,KAAKC,aAAa,CAChB,sGAEFD,KAAKC,aAAa,CAChB,0FAuBFD,KAAKE,gBAAgB,CAAC,UApBtB,SAAmBC,CAAuB,EACxC,IAAIC,EAEJ,GAAI,CACF,GAAM,CAAEC,KAAAA,CAAI,CAAEC,SAAAA,EAAW,QAAQ,CAAE,CAAGC,KAAKC,KAAK,CAACL,EAAEM,IAAI,EAKnD,kBAAkBC,IAAI,CAACJ,IAAa,CAACN,KAAKW,KAAK,CAACC,SAAS,CAACN,EAAS,EACrEN,CAAAA,KAAKW,KAAK,CAACC,SAAS,CAACN,EAAS,CAAGN,KAAKW,KAAK,CAACC,SAAS,CAACC,IAAI,AAAD,EAG3DT,EAASJ,KAAKW,KAAK,CAACG,SAAS,CAAC,CAAC,EAAET,EAAK;AAAE,CAAC,CAAEL,KAAKW,KAAK,CAACC,SAAS,CAACN,EAAS,CAAEA,EAC7E,CAAE,QAAM,CACNF,EAAS,EACX,CACAJ,KAAKe,WAAW,CAACX,EACnB,EAE4C,CAAA"}
|
package/es/index.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ export { default as Button, type ButtonElement, type ButtonProps } from './butto
|
|
|
6
6
|
export { default as CaptureScreen, type CaptureScreenElement, type CaptureScreenProps, } from './capture-screen';
|
|
7
7
|
export { default as Carousel, type CarouselElement, type CarouselProps } from './carousel';
|
|
8
8
|
export { default as Checkbox, type CheckboxBoolElement, type CheckboxBoolProps, type CheckboxGroupElement, type CheckboxGroupProps, } from './checkbox';
|
|
9
|
-
export { default as Code, type CodeElement, type CodeProps } from './code';
|
|
9
|
+
export { default as Code, type CodeElement, type CodeProps, type Language } from './code';
|
|
10
10
|
export { default as ColorPalette, type ColorPaletteElement, type ColorPaletteProps, } from './color-palette';
|
|
11
11
|
export { default as ColorPicker, type ColorPickerElement, type ColorPickerProps, } from './color-picker';
|
|
12
12
|
export { default as Cron, type CronElement, type CronProps } from './cron';
|
|
@@ -133,7 +133,7 @@ interface CustomElementTags {
|
|
|
133
133
|
'n-modal': ModalElement;
|
|
134
134
|
/**
|
|
135
135
|
* 二维码
|
|
136
|
-
* @
|
|
136
|
+
* @since 2.9.0
|
|
137
137
|
*/
|
|
138
138
|
'n-qrcode': QrCodeElement;
|
|
139
139
|
}
|
package/es/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../components/index.ts"],"sourcesContent":["'use client';\n\nexport { default as Avatar, type AvatarElement, type AvatarProps } from './avatar';\nexport {\n default as AvatarGroup,\n type AvatarGroupElement,\n type AvatarGroupProps,\n} from './avatar/group';\nexport { default as BackTop, type BackTopElement, type BackTopProps } from './back-top';\nexport { type BaseOption, type BasicConfig, FieldName, Size, Status } from './basic-config';\nexport { default as Button, type ButtonElement, type ButtonProps } from './button';\nexport {\n default as CaptureScreen,\n type CaptureScreenElement,\n type CaptureScreenProps,\n} from './capture-screen';\nexport { default as Carousel, type CarouselElement, type CarouselProps } from './carousel';\nexport {\n default as Checkbox,\n type CheckboxBoolElement,\n type CheckboxBoolProps,\n type CheckboxGroupElement,\n type CheckboxGroupProps,\n} from './checkbox';\nexport { default as Code, type CodeElement, type CodeProps } from './code';\nexport {\n default as ColorPalette,\n type ColorPaletteElement,\n type ColorPaletteProps,\n} from './color-palette';\nexport {\n default as ColorPicker,\n type ColorPickerElement,\n type ColorPickerProps,\n} from './color-picker';\nexport { default as Cron, type CronElement, type CronProps } from './cron';\nexport { default as DatePicker, type DatePickerElement, type DatePickerProps } from './date-picker';\nexport { default as dayjs } from './date-picker/dayjs';\nexport {\n default as Dropdown,\n type DropdownElement,\n type DropdownMultipleElement,\n type DropdownMultipleProps,\n type DropdownProps,\n} from './dropdown';\nexport { default as Empty, type EmptyElement, type EmptyProps } from './empty';\nexport { default as fromSchema } from './from-schema';\nexport { default as getOptions } from './get-options';\nexport {\n default as HighlightText,\n type HighlightTextElement,\n type HighlightTextProps,\n} from './highlight-text';\nexport { default as Img, type ImgElement, type ImgProps } from './img';\nexport { default as Input, type InputElement, type InputProps } from './input';\nexport {\n default as InputNumber,\n type InputNumberElement,\n type InputNumberProps,\n} from './input-number';\nexport { default as Md, type MdElement, type MdProps } from './md';\nexport { default as mdStyle } from './md-style';\nexport {\n default as Menu,\n type MenuElement,\n type MenuMultipleElement,\n type MenuMultipleProps,\n type MenuOption,\n type MenuProps,\n} from './menu';\nexport {\n default as Modal,\n type ModalElement,\n type ModalProps,\n OpenState,\n type OpenStateKey,\n} from './modal';\nexport {\n default as notification,\n type NotificationProps,\n type NotificationType,\n} from './notification';\nexport { default as Pagination, type PaginationElement, type PaginationProps } from './pagination';\nexport { default as Popover, type PopoverElement, type PopoverProps } from './popover';\nexport { default as Prism } from './prism';\nexport { default as Provider, type ProviderElement, type ProviderProps } from './provider';\nexport { type IntRange, default as QrCode, type QrCodeElement, type QrCodeProps } from './qrcode';\nexport { default as Radio, type RadioElement, type RadioOption, type RadioProps } from './radio';\nexport { default as Segmented, type SegmentedElement, type SegmentedProps } from './segmented';\nexport {\n default as Select,\n type SelectElement,\n type SelectMultipleElement,\n type SelectMultipleProps,\n type SelectProps,\n} from './select';\nexport { default as Skeleton, type SkeletonElement, type SkeletonProps } from './skeleton';\nexport { default as Spin, type SpinElement, type SpinProps } from './spin';\nexport { default as Switch, type SwitchElement, type SwitchProps } from './switch';\nexport { default as Table, type TableElement, type TableProps } from './table';\nexport { type TabOption, default as Tabs, type TabsElement, type TabsProps } from './tabs';\nexport { default as Tag, type TagElement, type TagProps } from './tag';\nexport {\n type ColorScheme,\n generateColor,\n default as theme,\n type ThemeOption,\n toneColor,\n} from './theme';\nexport {\n default as Tree,\n type TreeData,\n type TreeElement,\n type TreeMultipleElement,\n type TreeMultipleProps,\n type TreeMultipleSchemaElement,\n type TreeMultipleSchemaProps,\n type TreeMultipleStringElement,\n type TreeMultipleStringProps,\n type TreeProps,\n type TreeSchemaElement,\n type TreeSchemaProps,\n type TreeStringElement,\n type TreeStringProps,\n} from './tree';\nexport { default as Typography, type TypographyElement, type TypographyProps } from './typography';\nexport type { CustomElement } from 'custom-element-type';\nexport { customElement, getCurrentElement, hot, noShadowDOM, withSolid } from 'solid-element';\nimport type { ICustomElement, Transform } from 'custom-element-type';\n\nimport type {\n AvatarElement,\n AvatarGroupElement,\n BackTopElement,\n ButtonElement,\n CaptureScreenElement,\n CarouselElement,\n CheckboxBoolElement,\n CheckboxGroupElement,\n CodeElement,\n ColorPaletteElement,\n ColorPickerElement,\n CronElement,\n DatePickerElement,\n DropdownElement,\n DropdownMultipleElement,\n EmptyElement,\n HighlightTextElement,\n ImgElement,\n InputElement,\n InputNumberElement,\n MdElement,\n MenuElement,\n MenuMultipleElement,\n ModalElement,\n PaginationElement,\n PopoverElement,\n ProviderElement,\n QrCodeElement,\n RadioElement,\n SegmentedElement,\n SelectElement,\n SelectMultipleElement,\n SkeletonElement,\n SpinElement,\n SwitchElement,\n TableElement,\n TabsElement,\n TagElement,\n TreeElement,\n TreeMultipleElement,\n TreeMultipleSchemaElement,\n TreeMultipleStringElement,\n TreeSchemaElement,\n TreeStringElement,\n TypographyElement,\n} from '.';\n\n/** 组件列表\n * @author monako97\n * @ignore optional\n */\ninterface CustomElementTags {\n /** 头像 */\n 'n-avatar': AvatarElement;\n /** 头像组 */\n 'n-avatar-group': AvatarGroupElement;\n /** 返回顶部 */\n 'n-back-top': BackTopElement;\n /** 按钮 */\n 'n-button': ButtonElement;\n /** 捕获屏幕 */\n 'n-capture-screen': CaptureScreenElement;\n /** 走马灯、轮播 */\n 'n-carousel': CarouselElement;\n /** 复选框 */\n 'n-checkbox': CheckboxBoolElement | CheckboxGroupElement;\n /** 代码框 */\n 'n-code': CodeElement;\n /** 取色器 */\n 'n-color-palette': ColorPaletteElement;\n /** 取色器(弹出类型) */\n 'n-color-picker': ColorPickerElement;\n /** 下拉面板 */\n 'n-dropdown': DropdownElement | DropdownMultipleElement;\n /** 空面板 */\n 'n-empty': EmptyElement;\n /** 匹配高亮文字 */\n 'n-highlight-text': HighlightTextElement;\n /** 图片查看器 */\n 'n-img': ImgElement;\n /** 输入框 */\n 'n-input': InputElement;\n /** 数字输入框 */\n 'n-input-number': InputNumberElement;\n /** Markdown渲染 */\n 'n-md': MdElement;\n /** 弹出气泡面板 */\n 'n-popover': PopoverElement;\n /** 单选项 */\n 'n-radio': RadioElement;\n /** 分段控制器 */\n 'n-segmented': SegmentedElement;\n /** 下拉选择框 */\n 'n-select': SelectElement | SelectMultipleElement;\n /** 骨架屏 */\n 'n-skeleton': SkeletonElement;\n /** 加载中 */\n 'n-spin': SpinElement;\n /** 开关 */\n 'n-switch': SwitchElement;\n /** 树形渲染 */\n 'n-tree':\n | TreeElement\n | TreeStringElement\n | TreeSchemaElement\n | TreeMultipleElement\n | TreeMultipleStringElement\n | TreeMultipleSchemaElement;\n /** 文字排版 */\n 'n-typography': TypographyElement;\n /** 标签页 */\n 'n-tabs': TabsElement;\n /** 标签 */\n 'n-tag': TagElement;\n /** 导航菜单 */\n 'n-menu': MenuElement | MenuMultipleElement;\n /** Cron表达式编辑器 */\n 'n-cron': CronElement;\n /** 日期选择器\n * @since 2.1.0\n */\n 'n-data-picker': DatePickerElement;\n /** 数据表格\n * @since 2.2.0\n */\n 'n-table': TableElement;\n /** 分页器\n * @since 2.2.0\n */\n 'n-pagination': PaginationElement;\n /** 响应内部变化\n * @since 2.3.0\n */\n 'n-provider': ProviderElement;\n /** 模态框\n * @since 2.6.0\n */\n 'n-modal': ModalElement;\n /**\n * 二维码\n * @scince 2.9.0\n */\n 'n-qrcode': QrCodeElement;\n}\ntype IntrinsicNekoElement = Transform<CustomElementTags>;\n\ndeclare module 'solid-js' {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n export namespace JSX {\n export interface IntrinsicElements extends HTMLElementTags, IntrinsicNekoElement {}\n }\n // eslint-disable-next-line @typescript-eslint/no-empty-object-type\n interface HTMLElementTagNameMap extends IntrinsicNekoElement {}\n}\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n export namespace JSX {\n // eslint-disable-next-line @typescript-eslint/no-empty-object-type\n export interface IntrinsicElements extends IntrinsicNekoElement {}\n }\n // eslint-disable-next-line @typescript-eslint/no-empty-object-type\n interface HTMLElementTagNameMap extends IntrinsicNekoElement {}\n}\n\nexport interface ComponentOptions<T> {\n element: T & ICustomElement;\n}\n"],"names":["default","Avatar","AvatarGroup","BackTop","FieldName","Size","Status","Button","CaptureScreen","Carousel","Checkbox","Code","ColorPalette","ColorPicker","Cron","DatePicker","dayjs","Dropdown","Empty","fromSchema","getOptions","HighlightText","Img","Input","InputNumber","Md","mdStyle","Menu","Modal","OpenState","notification","Pagination","Popover","Prism","Provider","QrCode","Radio","Segmented","Select","Skeleton","Spin","Switch","Table","Tabs","Tag","generateColor","theme","toneColor","Tree","Typography","customElement","getCurrentElement","hot","noShadowDOM","withSolid"],"mappings":"AAEA,OAASA,WAAWC,MAAM,KAA8C,UAAW,AACnF,QACED,WAAWE,WAAW,KAGjB,gBAAiB,AACxB,QAASF,WAAWG,OAAO,KAAgD,YAAa,AACxF,QAA4CC,SAAS,CAAEC,IAAI,CAAEC,MAAM,KAAQ,gBAAiB,AAC5F,QAASN,WAAWO,MAAM,KAA8C,UAAW,AACnF,QACEP,WAAWQ,aAAa,KAGnB,kBAAmB,AAC1B,QAASR,WAAWS,QAAQ,KAAkD,YAAa,AAC3F,QACET,WAAWU,QAAQ,KAKd,YAAa,AACpB,QAASV,WAAWW,IAAI,KAA0C,QAAS,AAC3E,QACEX,WAAWY,YAAY,KAGlB,iBAAkB,AACzB,QACEZ,WAAWa,WAAW,KAGjB,gBAAiB,AACxB,QAASb,WAAWc,IAAI,KAA0C,QAAS,AAC3E,QAASd,WAAWe,UAAU,KAAsD,eAAgB,AACpG,QAASf,WAAWgB,KAAK,KAAQ,qBAAsB,AACvD,QACEhB,WAAWiB,QAAQ,KAKd,YAAa,AACpB,QAASjB,WAAWkB,KAAK,KAA4C,SAAU,AAC/E,QAASlB,WAAWmB,UAAU,KAAQ,eAAgB,AACtD,QAASnB,WAAWoB,UAAU,KAAQ,eAAgB,AACtD,QACEpB,WAAWqB,aAAa,KAGnB,kBAAmB,AAC1B,QAASrB,WAAWsB,GAAG,KAAwC,OAAQ,AACvE,QAAStB,WAAWuB,KAAK,KAA4C,SAAU,AAC/E,QACEvB,WAAWwB,WAAW,KAGjB,gBAAiB,AACxB,QAASxB,WAAWyB,EAAE,KAAsC,MAAO,AACnE,QAASzB,WAAW0B,OAAO,KAAQ,YAAa,AAChD,QACE1B,WAAW2B,IAAI,KAMV,QAAS,AAChB,QACE3B,WAAW4B,KAAK,CAGhBC,SAAS,KAEJ,SAAU,AACjB,QACE7B,WAAW8B,YAAY,KAGlB,gBAAiB,AACxB,QAAS9B,WAAW+B,UAAU,KAAsD,cAAe,AACnG,QAAS/B,WAAWgC,OAAO,KAAgD,WAAY,AACvF,QAAShC,WAAWiC,KAAK,KAAQ,SAAU,AAC3C,QAASjC,WAAWkC,QAAQ,KAAkD,YAAa,AAC3F,QAAwBlC,WAAWmC,MAAM,KAA8C,UAAW,AAClG,QAASnC,WAAWoC,KAAK,KAA8D,SAAU,AACjG,QAASpC,WAAWqC,SAAS,KAAoD,aAAc,AAC/F,QACErC,WAAWsC,MAAM,KAKZ,UAAW,AAClB,QAAStC,WAAWuC,QAAQ,KAAkD,YAAa,AAC3F,QAASvC,WAAWwC,IAAI,KAA0C,QAAS,AAC3E,QAASxC,WAAWyC,MAAM,KAA8C,UAAW,AACnF,QAASzC,WAAW0C,KAAK,KAA4C,SAAU,AAC/E,QAAyB1C,WAAW2C,IAAI,KAA0C,QAAS,AAC3F,QAAS3C,WAAW4C,GAAG,KAAwC,OAAQ,AACvE,QAEEC,aAAa,CACb7C,WAAW8C,KAAK,CAEhBC,SAAS,KACJ,SAAU,AACjB,QACE/C,WAAWgD,IAAI,KAcV,QAAS,AAChB,QAAShD,WAAWiD,UAAU,KAAsD,cAAe,AAEnG,QAASC,aAAa,CAAEC,iBAAiB,CAAEC,GAAG,CAAEC,WAAW,CAAEC,SAAS,KAAQ,eAAgB"}
|
|
1
|
+
{"version":3,"sources":["../components/index.ts"],"sourcesContent":["'use client';\n\nexport { default as Avatar, type AvatarElement, type AvatarProps } from './avatar';\nexport {\n default as AvatarGroup,\n type AvatarGroupElement,\n type AvatarGroupProps,\n} from './avatar/group';\nexport { default as BackTop, type BackTopElement, type BackTopProps } from './back-top';\nexport { type BaseOption, type BasicConfig, FieldName, Size, Status } from './basic-config';\nexport { default as Button, type ButtonElement, type ButtonProps } from './button';\nexport {\n default as CaptureScreen,\n type CaptureScreenElement,\n type CaptureScreenProps,\n} from './capture-screen';\nexport { default as Carousel, type CarouselElement, type CarouselProps } from './carousel';\nexport {\n default as Checkbox,\n type CheckboxBoolElement,\n type CheckboxBoolProps,\n type CheckboxGroupElement,\n type CheckboxGroupProps,\n} from './checkbox';\nexport { default as Code, type CodeElement, type CodeProps, type Language } from './code';\nexport {\n default as ColorPalette,\n type ColorPaletteElement,\n type ColorPaletteProps,\n} from './color-palette';\nexport {\n default as ColorPicker,\n type ColorPickerElement,\n type ColorPickerProps,\n} from './color-picker';\nexport { default as Cron, type CronElement, type CronProps } from './cron';\nexport { default as DatePicker, type DatePickerElement, type DatePickerProps } from './date-picker';\nexport { default as dayjs } from './date-picker/dayjs';\nexport {\n default as Dropdown,\n type DropdownElement,\n type DropdownMultipleElement,\n type DropdownMultipleProps,\n type DropdownProps,\n} from './dropdown';\nexport { default as Empty, type EmptyElement, type EmptyProps } from './empty';\nexport { default as fromSchema } from './from-schema';\nexport { default as getOptions } from './get-options';\nexport {\n default as HighlightText,\n type HighlightTextElement,\n type HighlightTextProps,\n} from './highlight-text';\nexport { default as Img, type ImgElement, type ImgProps } from './img';\nexport { default as Input, type InputElement, type InputProps } from './input';\nexport {\n default as InputNumber,\n type InputNumberElement,\n type InputNumberProps,\n} from './input-number';\nexport { default as Md, type MdElement, type MdProps } from './md';\nexport { default as mdStyle } from './md-style';\nexport {\n default as Menu,\n type MenuElement,\n type MenuMultipleElement,\n type MenuMultipleProps,\n type MenuOption,\n type MenuProps,\n} from './menu';\nexport {\n default as Modal,\n type ModalElement,\n type ModalProps,\n OpenState,\n type OpenStateKey,\n} from './modal';\nexport {\n default as notification,\n type NotificationProps,\n type NotificationType,\n} from './notification';\nexport { default as Pagination, type PaginationElement, type PaginationProps } from './pagination';\nexport { default as Popover, type PopoverElement, type PopoverProps } from './popover';\nexport { default as Prism } from './prism';\nexport { default as Provider, type ProviderElement, type ProviderProps } from './provider';\nexport { type IntRange, default as QrCode, type QrCodeElement, type QrCodeProps } from './qrcode';\nexport { default as Radio, type RadioElement, type RadioOption, type RadioProps } from './radio';\nexport { default as Segmented, type SegmentedElement, type SegmentedProps } from './segmented';\nexport {\n default as Select,\n type SelectElement,\n type SelectMultipleElement,\n type SelectMultipleProps,\n type SelectProps,\n} from './select';\nexport { default as Skeleton, type SkeletonElement, type SkeletonProps } from './skeleton';\nexport { default as Spin, type SpinElement, type SpinProps } from './spin';\nexport { default as Switch, type SwitchElement, type SwitchProps } from './switch';\nexport { default as Table, type TableElement, type TableProps } from './table';\nexport { type TabOption, default as Tabs, type TabsElement, type TabsProps } from './tabs';\nexport { default as Tag, type TagElement, type TagProps } from './tag';\nexport {\n type ColorScheme,\n generateColor,\n default as theme,\n type ThemeOption,\n toneColor,\n} from './theme';\nexport {\n default as Tree,\n type TreeData,\n type TreeElement,\n type TreeMultipleElement,\n type TreeMultipleProps,\n type TreeMultipleSchemaElement,\n type TreeMultipleSchemaProps,\n type TreeMultipleStringElement,\n type TreeMultipleStringProps,\n type TreeProps,\n type TreeSchemaElement,\n type TreeSchemaProps,\n type TreeStringElement,\n type TreeStringProps,\n} from './tree';\nexport { default as Typography, type TypographyElement, type TypographyProps } from './typography';\nexport type { CustomElement } from 'custom-element-type';\nexport { customElement, getCurrentElement, hot, noShadowDOM, withSolid } from 'solid-element';\nimport type { ICustomElement, Transform } from 'custom-element-type';\n\nimport type {\n AvatarElement,\n AvatarGroupElement,\n BackTopElement,\n ButtonElement,\n CaptureScreenElement,\n CarouselElement,\n CheckboxBoolElement,\n CheckboxGroupElement,\n CodeElement,\n ColorPaletteElement,\n ColorPickerElement,\n CronElement,\n DatePickerElement,\n DropdownElement,\n DropdownMultipleElement,\n EmptyElement,\n HighlightTextElement,\n ImgElement,\n InputElement,\n InputNumberElement,\n MdElement,\n MenuElement,\n MenuMultipleElement,\n ModalElement,\n PaginationElement,\n PopoverElement,\n ProviderElement,\n QrCodeElement,\n RadioElement,\n SegmentedElement,\n SelectElement,\n SelectMultipleElement,\n SkeletonElement,\n SpinElement,\n SwitchElement,\n TableElement,\n TabsElement,\n TagElement,\n TreeElement,\n TreeMultipleElement,\n TreeMultipleSchemaElement,\n TreeMultipleStringElement,\n TreeSchemaElement,\n TreeStringElement,\n TypographyElement,\n} from '.';\n\n/** 组件列表\n * @author monako97\n * @ignore optional\n */\ninterface CustomElementTags {\n /** 头像 */\n 'n-avatar': AvatarElement;\n /** 头像组 */\n 'n-avatar-group': AvatarGroupElement;\n /** 返回顶部 */\n 'n-back-top': BackTopElement;\n /** 按钮 */\n 'n-button': ButtonElement;\n /** 捕获屏幕 */\n 'n-capture-screen': CaptureScreenElement;\n /** 走马灯、轮播 */\n 'n-carousel': CarouselElement;\n /** 复选框 */\n 'n-checkbox': CheckboxBoolElement | CheckboxGroupElement;\n /** 代码框 */\n 'n-code': CodeElement;\n /** 取色器 */\n 'n-color-palette': ColorPaletteElement;\n /** 取色器(弹出类型) */\n 'n-color-picker': ColorPickerElement;\n /** 下拉面板 */\n 'n-dropdown': DropdownElement | DropdownMultipleElement;\n /** 空面板 */\n 'n-empty': EmptyElement;\n /** 匹配高亮文字 */\n 'n-highlight-text': HighlightTextElement;\n /** 图片查看器 */\n 'n-img': ImgElement;\n /** 输入框 */\n 'n-input': InputElement;\n /** 数字输入框 */\n 'n-input-number': InputNumberElement;\n /** Markdown渲染 */\n 'n-md': MdElement;\n /** 弹出气泡面板 */\n 'n-popover': PopoverElement;\n /** 单选项 */\n 'n-radio': RadioElement;\n /** 分段控制器 */\n 'n-segmented': SegmentedElement;\n /** 下拉选择框 */\n 'n-select': SelectElement | SelectMultipleElement;\n /** 骨架屏 */\n 'n-skeleton': SkeletonElement;\n /** 加载中 */\n 'n-spin': SpinElement;\n /** 开关 */\n 'n-switch': SwitchElement;\n /** 树形渲染 */\n 'n-tree':\n | TreeElement\n | TreeStringElement\n | TreeSchemaElement\n | TreeMultipleElement\n | TreeMultipleStringElement\n | TreeMultipleSchemaElement;\n /** 文字排版 */\n 'n-typography': TypographyElement;\n /** 标签页 */\n 'n-tabs': TabsElement;\n /** 标签 */\n 'n-tag': TagElement;\n /** 导航菜单 */\n 'n-menu': MenuElement | MenuMultipleElement;\n /** Cron表达式编辑器 */\n 'n-cron': CronElement;\n /** 日期选择器\n * @since 2.1.0\n */\n 'n-data-picker': DatePickerElement;\n /** 数据表格\n * @since 2.2.0\n */\n 'n-table': TableElement;\n /** 分页器\n * @since 2.2.0\n */\n 'n-pagination': PaginationElement;\n /** 响应内部变化\n * @since 2.3.0\n */\n 'n-provider': ProviderElement;\n /** 模态框\n * @since 2.6.0\n */\n 'n-modal': ModalElement;\n /**\n * 二维码\n * @since 2.9.0\n */\n 'n-qrcode': QrCodeElement;\n}\ntype IntrinsicNekoElement = Transform<CustomElementTags>;\n\ndeclare module 'solid-js' {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n export namespace JSX {\n export interface IntrinsicElements extends HTMLElementTags, IntrinsicNekoElement {}\n }\n // eslint-disable-next-line @typescript-eslint/no-empty-object-type\n interface HTMLElementTagNameMap extends IntrinsicNekoElement {}\n}\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n export namespace JSX {\n // eslint-disable-next-line @typescript-eslint/no-empty-object-type\n export interface IntrinsicElements extends IntrinsicNekoElement {}\n }\n // eslint-disable-next-line @typescript-eslint/no-empty-object-type\n interface HTMLElementTagNameMap extends IntrinsicNekoElement {}\n}\n\nexport interface ComponentOptions<T> {\n element: T & ICustomElement;\n}\n"],"names":["default","Avatar","AvatarGroup","BackTop","FieldName","Size","Status","Button","CaptureScreen","Carousel","Checkbox","Code","ColorPalette","ColorPicker","Cron","DatePicker","dayjs","Dropdown","Empty","fromSchema","getOptions","HighlightText","Img","Input","InputNumber","Md","mdStyle","Menu","Modal","OpenState","notification","Pagination","Popover","Prism","Provider","QrCode","Radio","Segmented","Select","Skeleton","Spin","Switch","Table","Tabs","Tag","generateColor","theme","toneColor","Tree","Typography","customElement","getCurrentElement","hot","noShadowDOM","withSolid"],"mappings":"AAEA,OAASA,WAAWC,MAAM,KAA8C,UAAW,AACnF,QACED,WAAWE,WAAW,KAGjB,gBAAiB,AACxB,QAASF,WAAWG,OAAO,KAAgD,YAAa,AACxF,QAA4CC,SAAS,CAAEC,IAAI,CAAEC,MAAM,KAAQ,gBAAiB,AAC5F,QAASN,WAAWO,MAAM,KAA8C,UAAW,AACnF,QACEP,WAAWQ,aAAa,KAGnB,kBAAmB,AAC1B,QAASR,WAAWS,QAAQ,KAAkD,YAAa,AAC3F,QACET,WAAWU,QAAQ,KAKd,YAAa,AACpB,QAASV,WAAWW,IAAI,KAAyD,QAAS,AAC1F,QACEX,WAAWY,YAAY,KAGlB,iBAAkB,AACzB,QACEZ,WAAWa,WAAW,KAGjB,gBAAiB,AACxB,QAASb,WAAWc,IAAI,KAA0C,QAAS,AAC3E,QAASd,WAAWe,UAAU,KAAsD,eAAgB,AACpG,QAASf,WAAWgB,KAAK,KAAQ,qBAAsB,AACvD,QACEhB,WAAWiB,QAAQ,KAKd,YAAa,AACpB,QAASjB,WAAWkB,KAAK,KAA4C,SAAU,AAC/E,QAASlB,WAAWmB,UAAU,KAAQ,eAAgB,AACtD,QAASnB,WAAWoB,UAAU,KAAQ,eAAgB,AACtD,QACEpB,WAAWqB,aAAa,KAGnB,kBAAmB,AAC1B,QAASrB,WAAWsB,GAAG,KAAwC,OAAQ,AACvE,QAAStB,WAAWuB,KAAK,KAA4C,SAAU,AAC/E,QACEvB,WAAWwB,WAAW,KAGjB,gBAAiB,AACxB,QAASxB,WAAWyB,EAAE,KAAsC,MAAO,AACnE,QAASzB,WAAW0B,OAAO,KAAQ,YAAa,AAChD,QACE1B,WAAW2B,IAAI,KAMV,QAAS,AAChB,QACE3B,WAAW4B,KAAK,CAGhBC,SAAS,KAEJ,SAAU,AACjB,QACE7B,WAAW8B,YAAY,KAGlB,gBAAiB,AACxB,QAAS9B,WAAW+B,UAAU,KAAsD,cAAe,AACnG,QAAS/B,WAAWgC,OAAO,KAAgD,WAAY,AACvF,QAAShC,WAAWiC,KAAK,KAAQ,SAAU,AAC3C,QAASjC,WAAWkC,QAAQ,KAAkD,YAAa,AAC3F,QAAwBlC,WAAWmC,MAAM,KAA8C,UAAW,AAClG,QAASnC,WAAWoC,KAAK,KAA8D,SAAU,AACjG,QAASpC,WAAWqC,SAAS,KAAoD,aAAc,AAC/F,QACErC,WAAWsC,MAAM,KAKZ,UAAW,AAClB,QAAStC,WAAWuC,QAAQ,KAAkD,YAAa,AAC3F,QAASvC,WAAWwC,IAAI,KAA0C,QAAS,AAC3E,QAASxC,WAAWyC,MAAM,KAA8C,UAAW,AACnF,QAASzC,WAAW0C,KAAK,KAA4C,SAAU,AAC/E,QAAyB1C,WAAW2C,IAAI,KAA0C,QAAS,AAC3F,QAAS3C,WAAW4C,GAAG,KAAwC,OAAQ,AACvE,QAEEC,aAAa,CACb7C,WAAW8C,KAAK,CAEhBC,SAAS,KACJ,SAAU,AACjB,QACE/C,WAAWgD,IAAI,KAcV,QAAS,AAChB,QAAShD,WAAWiD,UAAU,KAAsD,cAAe,AAEnG,QAASC,aAAa,CAAEC,iBAAiB,CAAEC,GAAG,CAAEC,WAAW,CAAEC,SAAS,KAAQ,eAAgB"}
|
package/es/md/index.d.ts
CHANGED
package/es/md/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
function e(e,t,r,o,n,i,l){try{var a=e[i](l),s=a.value}catch(e){r(e);return}a.done?t(s):Promise.resolve(s).then(o,n)}function t(){return(t=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var o in r)Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o])}return e}).apply(this,arguments)}import{use as r}from"solid-js/web";import{template as o}from"solid-js/web";import"solid-js/web";import{insert as n}from"solid-js/web";import{effect as i}from"solid-js/web";import{createComponent as l}from"solid-js/web";import{className as a}from"solid-js/web";let s=o("<style> "),c=o("<style>"),d=o('<article class="n-md-box" part="box"><div class="n-md-body" part="body">'),u=o('<article part="box">');import{createEffect as m,For as f,Match as h,mergeProps as p,onCleanup as v,Show as
|
|
1
|
+
function e(e,t,r,o,n,i,l){try{var a=e[i](l),s=a.value}catch(e){r(e);return}a.done?t(s):Promise.resolve(s).then(o,n)}function t(){return(t=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var o in r)Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o])}return e}).apply(this,arguments)}import{use as r}from"solid-js/web";import{template as o}from"solid-js/web";import"solid-js/web";import{insert as n}from"solid-js/web";import{effect as i}from"solid-js/web";import{createComponent as l}from"solid-js/web";import{className as a}from"solid-js/web";let s=o("<style> "),c=o("<style>"),d=o('<article class="n-md-box" part="box"><div class="n-md-body" part="body">'),u=o('<article part="box">');import{createEffect as m,For as f,Match as h,mergeProps as p,onCleanup as v,Show as g,Switch as b}from"solid-js";import w from"@moneko/common/lib/frameCallback";import{css as x,cx as y}from"@moneko/css";import{customElement as k}from"solid-element";import{clearAttribute as C}from"../basic-config";import j from"../md-style";import E,{block as P}from"../theme";import"../code";import"../img";function $(o){let k,C;let{baseStyle:P}=E,$=p({webWorker:!1,pictureViewer:!0,lazyPicture:!0,text:"",tools:["copy"],getAnchorContainer:()=>window},o);function L(){return new Worker("https://cdn.jsdelivr.net/npm/neko-ui@latest/es/md/worker.js")}let O=$.webWorker?L():void 0;function z(e){C&&(C.innerHTML=e.data)}function A(){var r;return r=function*(e){let{text:r,pictureViewer:o,lazyPicture:n,langToolbar:i}=e,l=function(e,t){if(null==e)return{};var r,o,n={},i=Object.keys(e);for(o=0;o<i.length;o++)t.indexOf(r=i[o])>=0||(n[r]=e[r]);return n}(e,["text","pictureViewer","lazyPicture","langToolbar"]),a=(yield import("marked-completed")).default;k||((k=new a.Renderer).katexBlock=e=>`<n-katex display-mode="true">${e}</n-katex>`,k.katexInline=e=>`<n-katex>${e}</n-katex>`),k.image=(e,t,r)=>`<n-img lazy="${n}" disabled="${!o}" role="img" src="${e}" alt="${r}" ${t?`title="${t}"`:""}></n-img>`;let s=!!(null==i?void 0:i.length);k.code=function(e,t){return"treeview"===t?`<n-tree data="${e}" />`:`<n-code class="n-code" toolbar="${s}" language="${t}">${e}</n-code>`},z({data:a(r,t({renderer:k,langToolbar:i,headerPrefix:"# ",breaks:!0,pedantic:!1,smartLists:!0,smartypants:!0,xhtml:!0},l))})},(A=function(){var t=this,o=arguments;return new Promise(function(n,i){var l=r.apply(t,o);function a(t){e(l,n,i,a,s,"next",t)}function s(t){e(l,n,i,a,s,"throw",t)}a(void 0)})}).apply(this,arguments)}m(()=>{$.webWorker&&(O||(O=L()),O.addEventListener("message",z))}),m(()=>{O?O.postMessage(JSON.stringify({text:$.text,langToolbar:$.tools,pictureViewer:$.pictureViewer,lazyPicture:$.lazyPicture})):w(()=>(function(e){return A.apply(this,arguments)})({text:$.text,langToolbar:$.tools,pictureViewer:$.pictureViewer,lazyPicture:$.lazyPicture}))}),v(()=>{O&&(O.removeEventListener("message",z),O.terminate())});let T=[],V=[],W=[];function I(e){e.preventDefault(),e.stopPropagation();let t=e.target;if(t.hash){var r;null==C||null==(r=C.querySelector(decodeURIComponent(t.hash)))||r.scrollIntoView({behavior:"smooth",block:"nearest"}),T.forEach(e=>{e.classList.remove("active")}),t.classList.add("active")}else window.open(t.href)}function S(e){e.forEach(e=>{let t;let r=e.target.getAttribute("id"),o=e.target.querySelectorAll("a");if(T.forEach(e=>{e.hash===`#${r}`?t=e:e.hash||o.forEach(r=>{r.href===e.href&&(t=e)})}),t){let r=W.indexOf(t);if(W.forEach(e=>{e.classList.remove("active")}),e.isIntersecting?W.push(t):-1!==r&&W.splice(r,1),W[0]){var n;W[0].classList.add("active"),null==(n=W[0].offsetParent)||n.scrollTo({top:W[0].offsetTop})}}})}return m(()=>{let e;C&&$.text.startsWith("[TOC]")&&(T=[...C.querySelectorAll(".n-md-toc a[href]")],V=[...C.querySelectorAll("h1, h2, h3, h4, h5, h6")],e=new IntersectionObserver(S,{rootMargin:"-50px 0px",threshold:.5}),V.forEach(t=>{e.observe(t)}),T.forEach(e=>{e.addEventListener("click",I)})),v(()=>{e&&(V.forEach(t=>{e.unobserve(t)}),e.disconnect()),T.forEach(e=>{e.removeEventListener("click",I)})})}),[(()=>{let e=s(),t=e.firstChild;return i(()=>t.data=P()),e})(),(()=>{let e=c();return e.textContent=j,e})(),l(g,{get when(){return $.css},get children(){let e=s(),t=e.firstChild;return i(()=>t.data=x($.css)),e}}),l(b,{get children(){return[l(h,{get when(){return($.children||[]).length>0},get children(){let e=d();return n(e.firstChild,l(f,{get each(){return $.children},children:e=>e})),e}}),l(h,{get when(){return $.text},get children(){let e=u(),t=C;return"function"==typeof t?r(t,e):C=e,i(()=>a(e,y("n-md-box",$.class))),e}})]}})]}k("n-md",{class:void 0,pictureViewer:void 0,lazyPicture:void 0,text:void 0,tools:void 0,getAnchorContainer:void 0,css:void 0,children:void 0,notRender:void 0,webWorker:void 0},(e,t)=>{let r=t.element,o=p({text:!e.notRender&&r.textContent||r.text,css:r.css,tools:r.tools,getAnchorContainer:r.getAnchorContainer},e);return m(()=>{C(r,["css","text"]),r.replaceChildren()}),[(()=>{let e=c();return e.textContent=P,e})(),l($,o)]});export default $;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|