neko-ui 2.7.6 → 2.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/es/back-top/style.js +4 -1
  2. package/es/back-top/style.js.map +1 -1
  3. package/es/basic-config/index.d.ts +9 -1
  4. package/es/basic-config/index.js +1 -1
  5. package/es/basic-config/index.js.map +1 -1
  6. package/es/code/index.js +1 -1
  7. package/es/code/index.js.map +1 -1
  8. package/es/img/index.d.ts +9 -1
  9. package/es/img/index.js +1 -1
  10. package/es/img/index.js.map +1 -1
  11. package/es/img/style.js +37 -2
  12. package/es/img/style.js.map +1 -1
  13. package/es/index.d.ts +2 -2
  14. package/es/index.js +1 -1
  15. package/es/index.js.map +1 -1
  16. package/es/md/index.js +1 -1
  17. package/es/md/index.js.map +1 -1
  18. package/es/spin/index.js +5 -4
  19. package/es/spin/index.js.map +1 -1
  20. package/es/tag/index.js +1 -1
  21. package/es/tag/index.js.map +1 -1
  22. package/es/theme/index.d.ts +1 -1
  23. package/es/theme/index.js +1 -76
  24. package/es/theme/index.js.map +1 -1
  25. package/es/tree/index.js +1 -1
  26. package/es/tree/index.js.map +1 -1
  27. package/es/tree/register.js +1 -1
  28. package/es/tree/register.js.map +1 -1
  29. package/es/tree/type.d.ts +4 -0
  30. package/lib/back-top/style.js +4 -1
  31. package/lib/back-top/style.js.map +1 -1
  32. package/lib/basic-config/index.d.ts +9 -1
  33. package/lib/basic-config/index.js +1 -1
  34. package/lib/basic-config/index.js.map +1 -1
  35. package/lib/code/index.js +1 -1
  36. package/lib/code/index.js.map +1 -1
  37. package/lib/img/index.d.ts +9 -1
  38. package/lib/img/index.js +1 -1
  39. package/lib/img/index.js.map +1 -1
  40. package/lib/img/style.js +35 -0
  41. package/lib/img/style.js.map +1 -1
  42. package/lib/index.d.ts +2 -2
  43. package/lib/index.js +1 -1
  44. package/lib/index.js.map +1 -1
  45. package/lib/md/index.js +1 -1
  46. package/lib/md/index.js.map +1 -1
  47. package/lib/spin/index.js +5 -4
  48. package/lib/spin/index.js.map +1 -1
  49. package/lib/tag/index.js +1 -1
  50. package/lib/tag/index.js.map +1 -1
  51. package/lib/theme/index.d.ts +1 -1
  52. package/lib/theme/index.js +1 -76
  53. package/lib/theme/index.js.map +1 -1
  54. package/lib/tree/index.js +1 -1
  55. package/lib/tree/index.js.map +1 -1
  56. package/lib/tree/register.js +1 -1
  57. package/lib/tree/register.js.map +1 -1
  58. package/lib/tree/type.d.ts +4 -0
  59. package/package.json +2 -2
  60. package/umd/index.js +1 -1
@@ -13,7 +13,10 @@ import{css as o}from"@moneko/css";export const style=o`
13
13
  border-radius: 50%;
14
14
  color: var(--back-top-color);
15
15
  background-color: var(--back-top-bg);
16
- box-shadow: var(--box-shadow-base);
16
+ box-shadow:
17
+ 0 3px 6px -4px var(--primary-shadow),
18
+ 0 6px 16px 0 var(--primary-shadow-1),
19
+ 0 9px 28px 8px var(--primary-shadow-2);
17
20
  transition:
18
21
  background-color var(--transition-duration),
19
22
  color var(--transition-duration);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/back-top/style.ts"],"sourcesContent":["import { css } from '@moneko/css';\n\nexport const style = css`\n :host {\n --back-top-color: var(--on-primary-selection);\n --back-top-hover-bg: var(--primary-hover);\n }\n\n .back-top {\n position: sticky;\n z-index: 9;\n display: flex;\n justify-content: center;\n align-items: center;\n border-radius: 50%;\n color: var(--back-top-color);\n background-color: var(--back-top-bg);\n box-shadow: var(--box-shadow-base);\n transition:\n background-color var(--transition-duration),\n color var(--transition-duration);\n inset-block-end: 50px;\n inset-inline-start: calc(100% - 100px);\n inline-size: 40px;\n min-inline-size: 40px;\n block-size: 40px;\n min-block-size: 40px;\n cursor: pointer;\n animation: back-top-fade-in 1s forwards;\n backdrop-filter: blur(10px);\n pointer-events: all;\n\n &::before {\n content: '';\n display: block;\n inline-size: 16px;\n block-size: 8px;\n background-color: var(--back-top-color);\n clip-path: polygon(0 100%, 50% 0, 100% 100%);\n }\n\n &:hover {\n background-color: var(--back-top-hover-bg);\n }\n }\n\n .back-top-out {\n animation: back-top-fade-out 1s forwards;\n }\n\n @keyframes back-top-fade-in {\n from {\n transform: translate3d(0, 16px, 0) scale(1);\n opacity: 0;\n }\n\n to {\n transform: translate3d(0, 0, 0) scale(1);\n opacity: 1;\n }\n }\n\n @keyframes back-top-fade-out {\n 0%,\n 20% {\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n\n 100% {\n transform: translate3d(0, 16px, 0);\n opacity: 0;\n }\n }\n`;\n"],"names":["css","style"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,OAASA,OAAAA,CAAG,KAAQ,aAAc,AAElC,QAAO,MAAMC,MAAQD,CAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwEzB,CAAC,AAAC"}
1
+ {"version":3,"sources":["../../components/back-top/style.ts"],"sourcesContent":["import { css } from '@moneko/css';\n\nexport const style = css`\n :host {\n --back-top-color: var(--on-primary-selection);\n --back-top-hover-bg: var(--primary-hover);\n }\n\n .back-top {\n position: sticky;\n z-index: 9;\n display: flex;\n justify-content: center;\n align-items: center;\n border-radius: 50%;\n color: var(--back-top-color);\n background-color: var(--back-top-bg);\n box-shadow:\n 0 3px 6px -4px var(--primary-shadow),\n 0 6px 16px 0 var(--primary-shadow-1),\n 0 9px 28px 8px var(--primary-shadow-2);\n transition:\n background-color var(--transition-duration),\n color var(--transition-duration);\n inset-block-end: 50px;\n inset-inline-start: calc(100% - 100px);\n inline-size: 40px;\n min-inline-size: 40px;\n block-size: 40px;\n min-block-size: 40px;\n cursor: pointer;\n animation: back-top-fade-in 1s forwards;\n backdrop-filter: blur(10px);\n pointer-events: all;\n\n &::before {\n content: '';\n display: block;\n inline-size: 16px;\n block-size: 8px;\n background-color: var(--back-top-color);\n clip-path: polygon(0 100%, 50% 0, 100% 100%);\n }\n\n &:hover {\n background-color: var(--back-top-hover-bg);\n }\n }\n\n .back-top-out {\n animation: back-top-fade-out 1s forwards;\n }\n\n @keyframes back-top-fade-in {\n from {\n transform: translate3d(0, 16px, 0) scale(1);\n opacity: 0;\n }\n\n to {\n transform: translate3d(0, 0, 0) scale(1);\n opacity: 1;\n }\n }\n\n @keyframes back-top-fade-out {\n 0%,\n 20% {\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n\n 100% {\n transform: translate3d(0, 16px, 0);\n opacity: 0;\n }\n }\n`;\n"],"names":["css","style"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,OAASA,OAAAA,CAAG,KAAQ,aAAc,AAElC,QAAO,MAAMC,MAAQD,CAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2EzB,CAAC,AAAC"}
@@ -67,5 +67,13 @@ export declare enum FieldName {
67
67
  /** 图标 */
68
68
  icon = "icon",
69
69
  /** 后缀图标 */
70
- suffix = "suffix"
70
+ suffix = "suffix",
71
+ /** 标题 */
72
+ title = "title",
73
+ /** 副标题 */
74
+ subTitle = "subTitle",
75
+ /** 键 */
76
+ key = "key",
77
+ /** 名称 */
78
+ name = "name"
71
79
  }
@@ -1,2 +1,2 @@
1
- var r,a,e;export var Size;(r=Size||(Size={})).small="small",r.normal="normal",r.large="large";export var Status;(a=Status||(Status={})).normal="normal",a.success="success",a.warning="warning",a.error="error",a.info="info",a.primary="primary";export var FieldName;(e=FieldName||(FieldName={})).label="label",e.value="value",e.options="options",e.children="children",e.icon="icon",e.suffix="suffix";
1
+ var e,a,r;export var Size;(e=Size||(Size={})).small="small",e.normal="normal",e.large="large";export var Status;(a=Status||(Status={})).normal="normal",a.success="success",a.warning="warning",a.error="error",a.info="info",a.primary="primary";export var FieldName;(r=FieldName||(FieldName={})).label="label",r.value="value",r.options="options",r.children="children",r.icon="icon",r.suffix="suffix",r.title="title",r.subTitle="subTitle",r.key="key",r.name="name";
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/basic-config/index.ts"],"sourcesContent":["export interface BasicConfig {\n /** 组件状态\n * @default 'normal'\n */\n status: keyof typeof Status;\n /** 组件尺寸\n * @default 'normal'\n */\n size: keyof typeof Size;\n /** 自定义 'label'、'value'、'options' 等映射的key */\n fieldName: Partial<{ [key in keyof typeof FieldName]: string }>;\n}\n\nexport enum Size {\n /** 小 */\n small = 'small',\n /** 默认: 中 */\n normal = 'normal',\n /** 大 */\n large = 'large',\n}\n\nexport enum Status {\n /** 默认 */\n normal = 'normal',\n /** 成功 */\n success = 'success',\n /** 警告 */\n warning = 'warning',\n /** 错误 */\n error = 'error',\n /** 详细 */\n info = 'info',\n /** 主要 */\n primary = 'primary',\n}\n\nexport interface BaseOption {\n /** 图标 */\n icon?: JSX.Element;\n /** 值 */\n value?: string | number;\n /** 标题 */\n label?: JSX.Element;\n /** 不可用状态 */\n disabled?: boolean;\n /** 自定义类名 */\n class?: string;\n /** 自定义样式 */\n style?: Record<string, unknown>;\n /** 选项状态\n * @default 'normal'\n */\n status?: Status;\n /** 分组子选项 */\n options?: (BaseOption | string)[];\n [key: string]: Any;\n}\n\nexport enum FieldName {\n /** 标题 */\n label = 'label',\n /** 值 */\n value = 'value',\n /** 分组子选项 */\n options = 'options',\n /** 子选项 */\n children = 'children',\n /** 图标 */\n icon = 'icon',\n /** 后缀图标 */\n suffix = 'suffix',\n}\n"],"names":["Size","Status","FieldName"],"rangeMappings":"","mappings":"IAaYA,EASAC,EAqCAC,mBA9CAF,EAAAA,OAAAA,6EASAC,EAAAA,SAAAA,4IAqCAC,EAAAA,YAAAA"}
1
+ {"version":3,"sources":["../../components/basic-config/index.ts"],"sourcesContent":["export interface BasicConfig {\n /** 组件状态\n * @default 'normal'\n */\n status: keyof typeof Status;\n /** 组件尺寸\n * @default 'normal'\n */\n size: keyof typeof Size;\n /** 自定义 'label'、'value'、'options' 等映射的key */\n fieldName: Partial<{ [key in keyof typeof FieldName]: string }>;\n}\n\nexport enum Size {\n /** 小 */\n small = 'small',\n /** 默认: 中 */\n normal = 'normal',\n /** 大 */\n large = 'large',\n}\n\nexport enum Status {\n /** 默认 */\n normal = 'normal',\n /** 成功 */\n success = 'success',\n /** 警告 */\n warning = 'warning',\n /** 错误 */\n error = 'error',\n /** 详细 */\n info = 'info',\n /** 主要 */\n primary = 'primary',\n}\n\nexport interface BaseOption {\n /** 图标 */\n icon?: JSX.Element;\n /** 值 */\n value?: string | number;\n /** 标题 */\n label?: JSX.Element;\n /** 不可用状态 */\n disabled?: boolean;\n /** 自定义类名 */\n class?: string;\n /** 自定义样式 */\n style?: Record<string, unknown>;\n /** 选项状态\n * @default 'normal'\n */\n status?: Status;\n /** 分组子选项 */\n options?: (BaseOption | string)[];\n [key: string]: Any;\n}\n\nexport enum FieldName {\n /** 标题 */\n label = 'label',\n /** 值 */\n value = 'value',\n /** 分组子选项 */\n options = 'options',\n /** 子选项 */\n children = 'children',\n /** 图标 */\n icon = 'icon',\n /** 后缀图标 */\n suffix = 'suffix',\n /** 标题 */\n title = 'title',\n /** 副标题 */\n subTitle = 'subTitle',\n /** 键 */\n key = 'key',\n /** 名称 */\n name = 'name',\n}\n"],"names":["Size","Status","FieldName"],"rangeMappings":"","mappings":"IAaYA,EASAC,EAqCAC,mBA9CAF,EAAAA,OAAAA,6EASAC,EAAAA,SAAAA,4IAqCAC,EAAAA,YAAAA"}
package/es/code/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import{use as e}from"solid-js/web";import{template as t}from"solid-js/web";import{setAttribute as o}from"solid-js/web";import{insert as r}from"solid-js/web";import{effect as i}from"solid-js/web";import{delegateEvents as n}from"solid-js/web";import{createComponent as l}from"solid-js/web";import{className as s}from"solid-js/web";import{addEventListener as a}from"solid-js/web";let d=t('<div class="toolbar"><button class="toolbar-copy">'),m=t("<pre><code>"),u=t("<style>"),c=t("<div><textarea>");import{Show as v,createComponent as p,createEffect as g,createSignal as f,mergeProps as b,untrack as h}from"solid-js";import w from"@moneko/common/lib/isFunction";import $ from"@moneko/common/lib/setClipboard";import{css as _,cx as C}from"@moneko/css";import{customElement as j}from"solid-element";import{style as y}from"./style";import k from"../prism/css";import"../prism/prism.js";import P from"../theme";function x(t){let n;let{baseStyle:p}=P,[b,j]=f(""),[x,E]=f(20);function N(){$(h(b),n)}function A(){return(()=>{let u=m(),c=u.firstChild,p=n;return r(u,l(v,{get when(){return t.toolbar},get children(){let e=d();return a(e.firstChild,"click",N,!0),i(()=>{var r;return o(e,"data-lang",null==(r=t.lang)?void 0:r.split(" ")[0])}),e}}),c),"function"==typeof p?e(p,c):n=c,i(e=>{let o=C(`language-${t.lang}`,t.lineNumber&&"line-numbers",!t.toolbar&&"not-toolbar",!t.edit&&t.class),r=`language-${t.lang}`;return o!==e._v$&&s(u,e._v$=o),r!==e._v$2&&s(c,e._v$2=r),e},{_v$:void 0,_v$2:void 0}),u})()}function L({target:e}){let o=`${e.value}${/\n$/.test(e.value)?"​":""}`;j(o),w(t.onChange)&&t.onChange(o)}return g(()=>{if(t.code){let e=t.code.replace(/^\n/,"");try{j(decodeURIComponent(e))}catch(t){j(e)}}else j("")}),g(()=>{!function(e){var o;if(!e.code)return;let r=e.lang||"markup";/^diff-([\w-]+)/i.test(r)&&(window.Prism.languages[r]=window.Prism.languages.diff);let i=window.Prism.languages[r]||window.Prism.languages.markup;o={data:window.Prism.highlight(e.code,i,r)},n.innerHTML=o.data,E(n.getBoundingClientRect().height-(t.toolbar?40:16))}({lang:t.lang,code:b()})}),[(()=>{let e=u();return r(e,p,null),r(e,k,null),r(e,y,null),r(e,()=>_(t.css),null),e})(),l(v,{get when(){return t.edit},get fallback(){return A()},get children(){let e=c(),o=e.firstChild;return a(o,"input",L,!0),r(e,A,null),i(r=>{let i=C("n-editor",t.class),n=C(t.lineNumber&&"line-numbers",!t.toolbar&&"not-toolbar"),l=`${x()}px`;return i!==r._v$3&&s(e,r._v$3=i),n!==r._v$4&&s(o,r._v$4=n),l!==r._v$5&&(null!=(r._v$5=l)?o.style.setProperty("height",l):o.style.removeProperty("height")),r},{_v$3:void 0,_v$4:void 0,_v$5:void 0}),i(()=>o.value=b()),e}})]}j("n-code",{class:void 0,code:void 0,lang:void 0,children:void 0,edit:void 0,toolbar:void 0,css:void 0,lineNumber:void 0,onChange:void 0},(e,t)=>{let o=t.element,r=b({code:o.textContent,css:o.css,onChange(e){o.dispatchEvent(new CustomEvent("change",{detail:e}))}},e);return g(()=>{o.replaceChildren(),o.removeAttribute("css")}),p(x,r)});export default x;n(["click","input"]);
1
+ import{use as e}from"solid-js/web";import{template as t}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 i}from"solid-js/web";import{createComponent as l}from"solid-js/web";import{className as s}from"solid-js/web";import{addEventListener as a}from"solid-js/web";let m=t('<div class="toolbar"><button class="toolbar-copy">'),d=t("<pre><code>"),c=t("<style>"),u=t("<div><textarea>");import{Show as v,createComponent as g,createEffect as p,createSignal as f,mergeProps as b,onCleanup as h,onMount as $,untrack as _}from"solid-js";import w from"@moneko/common/lib/isFunction";import C from"@moneko/common/lib/setClipboard";import{css as j,cx as y}from"@moneko/css";import{customElement as k}from"solid-element";import{style as P}from"./style";import x from"../prism/css";import"../prism/prism.js";import E from"../theme";let N=/^diff-([\w-]+)/i;function I(t){let i;let{baseStyle:g}=E,[b,k]=f(""),[I,A]=f(20),[L,R]=f(!1),B=new IntersectionObserver(e=>{R(e[0].isIntersecting)});function F(){C(_(b),i)}function H(){return(()=>{let c=d(),u=c.firstChild,g=i;return r(c,l(v,{get when(){return t.toolbar},get children(){let e=m();return a(e.firstChild,"click",F,!0),n(()=>{var r;return o(e,"data-lang",null==(r=t.lang)?void 0:r.split(" ")[0])}),e}}),u),"function"==typeof g?e(g,u):i=u,n(e=>{let o=y(`language-${t.lang}`,t.lineNumber&&"line-numbers",!t.toolbar&&"not-toolbar",!t.edit&&t.class),r=`language-${t.lang}`;return o!==e._v$&&s(c,e._v$=o),r!==e._v$2&&s(u,e._v$2=r),e},{_v$:void 0,_v$2:void 0}),c})()}function M({target:e}){let o=`${e.value}${/\n$/.test(e.value)?"​":""}`;k(o),w(t.onChange)&&t.onChange(o)}return p(()=>{if(t.code){let e=t.code.replace(/^\n/,"");try{k(decodeURIComponent(e))}catch(t){k(e)}}else k("")}),p(()=>{!function(e){if(!e.code||!L())return;B.unobserve(i),B.disconnect(),N.test(e.lang)&&!Prism.languages[e.lang]&&(Prism.languages[e.lang]=Prism.languages.diff);let o=Prism.languages[e.lang]||Prism.languages.markup;i.innerHTML=Prism.highlight(e.code,o,e.lang),A(i.getBoundingClientRect().height-(t.toolbar?40:16))}({lang:t.lang||"markup",code:b()})}),$(()=>{B.observe(i)}),h(()=>{B.unobserve(i),B.disconnect()}),[(()=>{let e=c();return r(e,g,null),r(e,x,null),r(e,P,null),r(e,()=>j(t.css),null),e})(),l(v,{get when(){return t.edit},get fallback(){return H()},get children(){let e=u(),o=e.firstChild;return a(o,"input",M,!0),r(e,H,null),n(r=>{let n=y("n-editor",t.class),i=y(t.lineNumber&&"line-numbers",!t.toolbar&&"not-toolbar"),l=`${I()}px`;return n!==r._v$3&&s(e,r._v$3=n),i!==r._v$4&&s(o,r._v$4=i),l!==r._v$5&&(null!=(r._v$5=l)?o.style.setProperty("height",l):o.style.removeProperty("height")),r},{_v$3:void 0,_v$4:void 0,_v$5:void 0}),n(()=>o.value=b()),e}})]}k("n-code",{class:void 0,code:void 0,lang:void 0,children:void 0,edit:void 0,toolbar:void 0,css:void 0,lineNumber:void 0,onChange:void 0},(e,t)=>{let o=t.element,r=b({code:o.textContent,css:o.css,onChange(e){o.dispatchEvent(new CustomEvent("change",{detail:e}))}},e);return p(()=>{o.replaceChildren(),o.removeAttribute("css")}),g(I,r)});export default I;i(["click","input"]);
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/code/index.tsx"],"sourcesContent":["import { Show, createComponent, createEffect, createSignal, mergeProps, untrack } from 'solid-js';\nimport { isFunction, setClipboard } from '@moneko/common';\nimport { css, cx } from '@moneko/css';\nimport { customElement } from 'solid-element';\nimport { style } from './style';\nimport prismCss from '../prism/css';\nimport '../prism/prism.js';\nimport theme from '../theme';\nimport type { CustomElement } from '..';\n\nexport interface CodeProps {\n /** 自定义类名 */\n class?: string;\n /** 自定义样式表 */\n css?: string;\n /** 内容 */\n code?: string;\n /** 语言 */\n lang?: 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\nexport type CodeElement = CustomElement<CodeProps>;\n\nfunction Code(props: CodeProps) {\n const { baseStyle } = theme;\n let codeEl: HTMLPreElement;\n const [code, setCode] = createSignal<string>('');\n const [hei, setHei] = createSignal(20);\n\n function copy() {\n setClipboard(untrack(code), codeEl);\n }\n function pre() {\n return (\n <pre\n class={cx(\n `language-${props.lang}`,\n props.lineNumber && 'line-numbers',\n !props.toolbar && 'not-toolbar',\n !props.edit && props.class,\n )}\n >\n <Show when={props.toolbar}>\n <div class=\"toolbar\" data-lang={props.lang?.split(' ')[0]}>\n <button class=\"toolbar-copy\" onClick={copy} />\n </div>\n </Show>\n <code ref={codeEl} class={`language-${props.lang}`} />\n </pre>\n );\n }\n function change({ target }: { target: HTMLTextAreaElement }) {\n const c = `${target.value}${/\\n$/.test(target.value) ? '\\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 postMessage(opt: { lang?: string; code?: string }) {\n if (!opt.code) return;\n const _lang = opt.lang || 'markup';\n\n if (/^diff-([\\w-]+)/i.test(_lang)) {\n window.Prism.languages[_lang] = window.Prism.languages.diff;\n }\n const language = window.Prism.languages[_lang] || window.Prism.languages.markup;\n\n update({\n data: window.Prism.highlight(opt.code, language, _lang),\n });\n }\n\n // const work = new Worker(new URL(\"./worker.ts\", import.meta.url), {\n // name: \"wastedTime\",\n // /* webpackEntryOptions: { filename: \"workers/[name].js\" } */\n // });\n // work.addEventListener('message', update);\n\n // work.postMessage({\n // lang: props.lang,\n // code: code(),\n // });\n // onCleanup(() => {\n // work.terminate();\n // });\n createEffect(() => {\n if (props.code) {\n const _code = props.code.replace(/^\\n/, '');\n\n try {\n setCode(decodeURIComponent(_code));\n } catch (error) {\n setCode(_code);\n }\n } else {\n setCode('');\n }\n });\n createEffect(() => {\n postMessage({\n lang: props.lang,\n code: code(),\n });\n });\n\n return (\n <>\n <style>\n {baseStyle()}\n {prismCss()}\n {style}\n {css(props.css)}\n </style>\n <Show when={props.edit} fallback={pre()}>\n <div class={cx('n-editor', props.class)}>\n <textarea\n value={code()}\n class={cx(props.lineNumber && 'line-numbers', !props.toolbar && 'not-toolbar')}\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 lang: 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 },\n (_, opt) => {\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 el.replaceChildren();\n el.removeAttribute('css');\n });\n\n return createComponent(Code, props);\n },\n);\nexport default Code;\n"],"names":["Show","createComponent","createEffect","createSignal","mergeProps","untrack","isFunction","setClipboard","css","cx","customElement","style","prismCss","theme","Code","props","codeEl","baseStyle","code","setCode","hei","setHei","copy","pre","toolbar","lang","split","lineNumber","edit","class","change","target","c","value","test","onChange","_code","replace","decodeURIComponent","error","postMessage","opt","e","_lang","window","Prism","languages","diff","language","markup","data","highlight","innerHTML","getBoundingClientRect","height","children","_","el","element","textContent","val","dispatchEvent","CustomEvent","detail","replaceChildren","removeAttribute"],"rangeMappings":"","mappings":"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"}
1
+ {"version":3,"sources":["../../components/code/index.tsx"],"sourcesContent":["import {\n Show,\n createComponent,\n createEffect,\n createSignal,\n mergeProps,\n onCleanup,\n onMount,\n untrack,\n} from 'solid-js';\nimport { isFunction, setClipboard } from '@moneko/common';\nimport { css, cx } from '@moneko/css';\nimport { customElement } from 'solid-element';\nimport { style } from './style';\nimport prismCss from '../prism/css';\nimport '../prism/prism.js';\nimport theme from '../theme';\nimport type { CustomElement } from '..';\n\ndeclare const Prism: {\n disableWorkerMessageHandler: boolean;\n languages: Record<string, unknown>;\n highlight(code: string, langs: unknown, lang: string): string;\n};\n\nexport interface CodeProps {\n /** 自定义类名 */\n class?: string;\n /** 自定义样式表 */\n css?: string;\n /** 内容 */\n code?: string;\n /** 语言 */\n lang?: 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\nexport type CodeElement = CustomElement<CodeProps>;\n\nconst diffLang = /^diff-([\\w-]+)/i;\n\nfunction Code(props: CodeProps) {\n const { baseStyle } = theme;\n let codeEl: HTMLPreElement;\n const [code, setCode] = createSignal<string>('');\n const [hei, setHei] = createSignal(20);\n const [isIntersecting, setIsIntersecting] = createSignal(false);\n const observer = new IntersectionObserver((entries) => {\n setIsIntersecting(entries[0].isIntersecting);\n });\n\n function copy() {\n setClipboard(untrack(code), codeEl);\n }\n function pre() {\n return (\n <pre\n class={cx(\n `language-${props.lang}`,\n props.lineNumber && 'line-numbers',\n !props.toolbar && 'not-toolbar',\n !props.edit && props.class,\n )}\n >\n <Show when={props.toolbar}>\n <div class=\"toolbar\" data-lang={props.lang?.split(' ')[0]}>\n <button class=\"toolbar-copy\" onClick={copy} />\n </div>\n </Show>\n <code ref={codeEl} class={`language-${props.lang}`} />\n </pre>\n );\n }\n function change({ target }: { target: HTMLTextAreaElement }) {\n const c = `${target.value}${/\\n$/.test(target.value) ? '\\u200b' : ''}`;\n\n setCode(c);\n if (isFunction(props.onChange)) {\n props.onChange(c);\n }\n }\n function postMessage(opt: { lang: string; code?: string }) {\n if (!opt.code || !isIntersecting()) return;\n observer.unobserve(codeEl);\n observer.disconnect();\n if (diffLang.test(opt.lang) && !Prism.languages[opt.lang]) {\n Prism.languages[opt.lang] = Prism.languages.diff;\n }\n const language = Prism.languages[opt.lang] || Prism.languages.markup;\n\n codeEl.innerHTML = Prism.highlight(opt.code, language, opt.lang);\n setHei(codeEl.getBoundingClientRect().height - (props.toolbar ? 40 : 16));\n }\n\n // const work = new Worker(new URL(\"./worker.ts\", import.meta.url), {\n // name: \"wastedTime\",\n // /* webpackEntryOptions: { filename: \"workers/[name].js\" } */\n // });\n // work.addEventListener('message', update);\n\n // work.postMessage({\n // lang: props.lang,\n // code: code(),\n // });\n // onCleanup(() => {\n // work.terminate();\n // });\n createEffect(() => {\n if (props.code) {\n const _code = props.code.replace(/^\\n/, '');\n\n try {\n setCode(decodeURIComponent(_code));\n } catch (error) {\n setCode(_code);\n }\n } else {\n setCode('');\n }\n });\n createEffect(() => {\n postMessage({\n lang: props.lang || 'markup',\n code: code(),\n });\n });\n onMount(() => {\n // 开始观察目标元素\n observer.observe(codeEl);\n });\n onCleanup(() => {\n // 停止观察目标元素\n observer.unobserve(codeEl);\n observer.disconnect();\n });\n\n return (\n <>\n <style>\n {baseStyle()}\n {prismCss()}\n {style}\n {css(props.css)}\n </style>\n <Show when={props.edit} fallback={pre()}>\n <div class={cx('n-editor', props.class)}>\n <textarea\n value={code()}\n class={cx(props.lineNumber && 'line-numbers', !props.toolbar && 'not-toolbar')}\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 lang: 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 },\n (_, opt) => {\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 el.replaceChildren();\n el.removeAttribute('css');\n });\n\n return createComponent(Code, props);\n },\n);\nexport default Code;\n"],"names":["Show","createComponent","createEffect","createSignal","mergeProps","onCleanup","onMount","untrack","isFunction","setClipboard","css","cx","customElement","style","prismCss","theme","diffLang","Code","props","codeEl","baseStyle","code","setCode","hei","setHei","isIntersecting","setIsIntersecting","observer","IntersectionObserver","entries","copy","pre","toolbar","lang","split","lineNumber","edit","class","change","target","c","value","test","onChange","_code","replace","decodeURIComponent","error","postMessage","opt","unobserve","disconnect","Prism","languages","diff","language","markup","innerHTML","highlight","getBoundingClientRect","height","observe","children","_","el","element","textContent","val","dispatchEvent","CustomEvent","detail","replaceChildren","removeAttribute"],"rangeMappings":"","mappings":"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"}
package/es/img/index.d.ts CHANGED
@@ -12,6 +12,8 @@ export interface ImgProps {
12
12
  open?: boolean | null;
13
13
  /** 开启关闭大图的回调函数 */
14
14
  onOpenChange?: (open: boolean | null) => void;
15
+ /** 图片加载完成 */
16
+ onLoad?(e: Event): void;
15
17
  /** 点击遮罩关闭
16
18
  * @since 2.0.8
17
19
  * @default true
@@ -21,7 +23,13 @@ export interface ImgProps {
21
23
  * @default true
22
24
  */
23
25
  escClosable?: boolean;
26
+ /**
27
+ * 懒加载
28
+ * @since 2.8.1
29
+ * @default true
30
+ */
31
+ lazy?: boolean;
24
32
  }
25
33
  export type ImgElement = CustomElement<ImgProps, 'onOpenChange'>;
26
- declare function Img(props: ImgProps): import("solid-js").JSX.Element;
34
+ declare function Img(_: ImgProps): import("solid-js").JSX.Element;
27
35
  export default Img;
package/es/img/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import{use as e}from"solid-js/web";import{template as t}from"solid-js/web";import{setAttribute as n}from"solid-js/web";import"solid-js/web";import{insert as o}from"solid-js/web";import{effect as l}from"solid-js/web";import{delegateEvents as i}from"solid-js/web";import{createComponent as s}from"solid-js/web";import{className as r}from"solid-js/web";import{addEventListener as m}from"solid-js/web";let a=t("<style>"),d=t("<img>"),c=t('<div><span class="close"></span><img class="img">');import{Show as u,createComponent as p,createEffect as v,createSignal as f,mergeProps as g,onCleanup as $,untrack as b}from"solid-js";import{cx as w}from"@moneko/css";import{customElement as _}from"solid-element";import{Portal as h}from"solid-js/web";import{imgCss as k,style as C}from"./style";function E(t){let i;let[p,g]=f(null),[_,E]=f({width:0,height:0,left:0,top:0});function j(){let{width:e,height:n,top:o,left:l}=_();return`.portal { --img: url(${t.src});inline-size: ${e}px; block-size: ${n}px;inset-block-start: ${o}px;inset-inline-start: ${l}px;}`}function y(e){g(e),null==t.onOpenChange||t.onOpenChange.call(t,e)}function x(e){e.preventDefault()}function L(e){x(e),"keydown"===e.type?t.escClosable&&"Escape"===e.key&&y(!1):y(!1)}function O(){!1===p()&&y(null)}function z(e){var t;e.stopPropagation(),x(e),E(null==(t=e.target)?void 0:t.getBoundingClientRect()),y(!0)}function F(e){x(e),t.maskClosable&&e.target===i&&y(!1)}return v(()=>{void 0!==t.open&&t.open!==b(p)&&g(t.open)}),v(()=>{!0===p()&&(document.documentElement.addEventListener("mousewheel",x,{passive:!1}),t.escClosable&&document.documentElement.addEventListener("keydown",L,!1)),$(()=>{document.documentElement.removeEventListener("mousewheel",x,!1),document.documentElement.removeEventListener("keydown",L,!1)})}),[(()=>{let e=a();return o(e,k),e})(),(()=>{let e=d();return m(e,"click",z,!0),l(o=>{let l=w("img",p()&&"none"),i=t.src,s=t.alt;return l!==o._v$&&r(e,o._v$=l),i!==o._v$2&&n(e,"src",o._v$2=i),s!==o._v$3&&n(e,"alt",o._v$3=s),o},{_v$:void 0,_v$2:void 0,_v$3:void 0}),e})(),s(u,{get when(){return null!==p()},get children(){return s(h,{useShadow:!0,get children(){return[(()=>{let e=a();return o(e,j,null),o(e,k,null),o(e,C,null),e})(),(()=>{let o=c(),s=i,a=o.firstChild,d=a.nextSibling;return m(o,"click",F,!0),m(o,"animationend",O),"function"==typeof s?e(s,o):i=o,m(a,"click",L,!0),l(e=>{let l=w("portal",p()?"open":"closeing"),i=t.srcFull||t.src,s=t.alt;return l!==e._v$4&&r(o,e._v$4=l),i!==e._v$5&&n(d,"src",e._v$5=i),s!==e._v$6&&n(d,"alt",e._v$6=s),e},{_v$4:void 0,_v$5:void 0,_v$6:void 0}),o})()]}})}})]}_("n-img",{src:void 0,srcFull:void 0,alt:void 0,open:null,maskClosable:!0,escClosable:!0,onOpenChange:void 0},(e,t)=>p(E,g({onOpenChange(e){t.element.dispatchEvent(new CustomEvent("openchange",{detail:e}))}},e)));export default E;i(["click"]);
1
+ import{use as e}from"solid-js/web";import{template as n}from"solid-js/web";import{setAttribute as t}from"solid-js/web";import"solid-js/web";import{insert as o}from"solid-js/web";import{effect as i}from"solid-js/web";import{delegateEvents as l}from"solid-js/web";import{createComponent as s}from"solid-js/web";import{className as r}from"solid-js/web";import{addEventListener as a}from"solid-js/web";let d=n("<style>"),c=n("<img>"),m=n('<div><span class="close"></span><img class="img">');import{Show as u,createComponent as v,createEffect as p,createSignal as f,mergeProps as g,onCleanup as b,onMount as $,untrack as w}from"solid-js";import{cx as h}from"@moneko/css";import{customElement as _}from"solid-element";import{Portal as E}from"solid-js/web";import{imgCss as C,style as k}from"./style";import j from"../spin";function y(n){let l,v;let _=g({lazy:!0},n),[y,L]=f(null),[x,O]=f({width:0,height:0,left:0,top:0}),[z,I]=f(!1),[F,S]=f(!1),[A,B]=f(!0),D=new IntersectionObserver(e=>{S(e[0].isIntersecting),e[0].isIntersecting&&(l&&D.unobserve(l),D.disconnect())});function N(){let{width:e,height:n,top:t,left:o}=x();return`.portal { --img: url(${_.src});inline-size: ${e}px; block-size: ${n}px;inset-block-start: ${t}px;inset-inline-start: ${o}px;}`}function P(e){L(e),null==_.onOpenChange||_.onOpenChange.call(_,e)}function R(e){e.preventDefault()}function q(e){R(e),"keydown"===e.type?_.escClosable&&"Escape"===e.key&&P(!1):P(!1)}function G(){!1===y()&&P(null)}function H(e){if(e.stopPropagation(),R(e),!z()){var n;O(null==(n=e.target)?void 0:n.getBoundingClientRect()),P(!0)}}function J(){I(!0),B(!1)}function K(e){null==_.onLoad||_.onLoad.call(_,e),B(!1)}function M(e){R(e),_.maskClosable&&e.target===v&&P(!1)}return p(()=>{void 0!==_.open&&_.open!==w(y)&&L(_.open)}),p(()=>{!0===y()&&(document.documentElement.addEventListener("mousewheel",R,{passive:!1}),_.escClosable&&document.documentElement.addEventListener("keydown",q,!1)),b(()=>{document.documentElement.removeEventListener("mousewheel",R,!1),document.documentElement.removeEventListener("keydown",q,!1)})}),$(()=>{l&&D.observe(l)}),b(()=>{l&&D.unobserve(l),D.disconnect()}),[(()=>{let e=d();return o(e,C),e})(),s(j,{get spin(){return A()},get children(){let n=c(),o=l;return a(n,"load",K),a(n,"error",J),a(n,"click",H,!0),"function"==typeof o?e(o,n):l=n,i(e=>{let o=h("img",y()&&"none",z()&&"error"),i=F()?_.src:void 0,l=_.alt;return o!==e._v$&&r(n,e._v$=o),i!==e._v$2&&t(n,"src",e._v$2=i),l!==e._v$3&&t(n,"alt",e._v$3=l),e},{_v$:void 0,_v$2:void 0,_v$3:void 0}),n}}),s(u,{get when(){return null!==y()},get children(){return s(E,{useShadow:!0,get children(){return[(()=>{let e=d();return o(e,N,null),o(e,C,null),o(e,k,null),e})(),(()=>{let n=m(),o=v,l=n.firstChild,s=l.nextSibling;return a(n,"click",M,!0),a(n,"animationend",G),"function"==typeof o?e(o,n):v=n,a(l,"click",q,!0),i(e=>{let o=h("portal",y()?"open":"closeing"),i=_.srcFull||_.src,l=_.alt;return o!==e._v$4&&r(n,e._v$4=o),i!==e._v$5&&t(s,"src",e._v$5=i),l!==e._v$6&&t(s,"alt",e._v$6=l),e},{_v$4:void 0,_v$5:void 0,_v$6:void 0}),n})()]}})}})]}_("n-img",{src:void 0,srcFull:void 0,alt:void 0,open:null,maskClosable:!0,escClosable:!0,onOpenChange:void 0,onLoad:void 0,lazy:void 0},(e,n)=>v(y,g({onOpenChange(e){n.element.dispatchEvent(new CustomEvent("openchange",{detail:e}))},onLoad(){n.element.dispatchEvent(new CustomEvent("load"))}},e)));export default y;l(["click"]);
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/img/index.tsx"],"sourcesContent":["import {\n Show,\n createComponent,\n createEffect,\n createSignal,\n mergeProps,\n onCleanup,\n untrack,\n} from 'solid-js';\nimport { cx } from '@moneko/css';\nimport { customElement } from 'solid-element';\nimport { Portal } from 'solid-js/web';\nimport { imgCss, style } from './style';\nimport type { CustomElement } from '..';\n\nexport interface ImgProps {\n /** 图片地址 */\n src?: string;\n /** 查看大图的地址, 默认使用 `src`\n * @since 2.1.2\n */\n srcFull?: string;\n /** 图片 alt */\n alt?: string;\n /** 大图查看 */\n open?: boolean | null;\n /** 开启关闭大图的回调函数 */\n onOpenChange?: (open: boolean | null) => void;\n /** 点击遮罩关闭\n * @since 2.0.8\n * @default true\n */\n maskClosable?: boolean;\n /** 通过 `esc` 按键关闭\n * @default true\n */\n escClosable?: boolean;\n}\nexport type ImgElement = CustomElement<ImgProps, 'onOpenChange'>;\n\nfunction Img(props: ImgProps) {\n const [open, setOpen] = createSignal<boolean | null>(null);\n const [posi, setPosi] = createSignal({\n width: 0,\n height: 0,\n left: 0,\n top: 0,\n });\n let portal: HTMLDivElement | undefined;\n\n function getCss() {\n const { width, height, top, left } = posi();\n\n return `.portal { --img: url(${props.src});inline-size: ${width}px; block-size: ${height}px;inset-block-start: ${top}px;inset-inline-start: ${left}px;}`;\n }\n function openChange(visi: boolean | null) {\n setOpen(visi);\n props.onOpenChange?.(visi);\n }\n function preventDefault(e: Event) {\n e.preventDefault();\n }\n function close(e: KeyboardEvent | Event) {\n preventDefault(e);\n if (e.type === 'keydown') {\n if (props.escClosable && (e as KeyboardEvent).key === 'Escape') {\n openChange(false);\n }\n } else {\n openChange(false);\n }\n }\n function handleDestroy() {\n if (open() === false) {\n openChange(null);\n }\n }\n function handleOpen(e: Event) {\n e.stopPropagation();\n preventDefault(e);\n setPosi((e.target as HTMLImageElement)?.getBoundingClientRect());\n openChange(true);\n }\n function portalClick(e: Event) {\n preventDefault(e);\n if (props.maskClosable && e.target === portal) {\n openChange(false);\n }\n }\n\n createEffect(() => {\n if (props.open !== void 0 && props.open !== untrack(open)) {\n setOpen(props.open);\n }\n });\n createEffect(() => {\n if (open() === true) {\n document.documentElement.addEventListener('mousewheel', preventDefault, {\n passive: false,\n });\n\n if (props.escClosable) {\n document.documentElement.addEventListener('keydown', close, false);\n }\n }\n\n onCleanup(() => {\n document.documentElement.removeEventListener('mousewheel', preventDefault, false);\n document.documentElement.removeEventListener('keydown', close, false);\n });\n });\n\n return (\n <>\n <style>{imgCss}</style>\n <img\n class={cx('img', open() && 'none')}\n src={props.src}\n alt={props.alt}\n onClick={handleOpen}\n />\n <Show when={open() !== null}>\n <Portal useShadow={true}>\n <style>\n {getCss()}\n {imgCss}\n {style}\n </style>\n <div\n ref={portal}\n class={cx('portal', open() ? 'open' : 'closeing')}\n onAnimationEnd={handleDestroy}\n onClick={portalClick}\n >\n <span class=\"close\" onClick={close} />\n <img class=\"img\" src={props.srcFull || props.src} alt={props.alt} />\n </div>\n </Portal>\n </Show>\n </>\n );\n}\n\ncustomElement<ImgProps>(\n 'n-img',\n {\n src: void 0,\n srcFull: void 0,\n alt: void 0,\n open: null as boolean | null,\n maskClosable: true,\n escClosable: true,\n onOpenChange: void 0,\n },\n (_, opt) => {\n const props = mergeProps(\n {\n onOpenChange(open: boolean | null) {\n opt.element.dispatchEvent(\n new CustomEvent('openchange', {\n detail: open,\n }),\n );\n },\n },\n _,\n );\n\n return createComponent(Img, props);\n },\n);\nexport default Img;\n"],"names":["Show","createComponent","createEffect","createSignal","mergeProps","onCleanup","untrack","cx","customElement","Portal","imgCss","style","Img","props","portal","open","setOpen","posi","setPosi","width","height","left","top","getCss","src","openChange","visi","onOpenChange","preventDefault","e","close","type","escClosable","key","handleDestroy","handleOpen","stopPropagation","target","getBoundingClientRect","portalClick","maskClosable","document","documentElement","addEventListener","passive","removeEventListener","alt","srcFull","_","opt","element","dispatchEvent","CustomEvent","detail"],"rangeMappings":"","mappings":"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"}
1
+ {"version":3,"sources":["../../components/img/index.tsx"],"sourcesContent":["import {\n Show,\n createComponent,\n createEffect,\n createSignal,\n mergeProps,\n onCleanup,\n onMount,\n untrack,\n} from 'solid-js';\nimport { cx } from '@moneko/css';\nimport { customElement } from 'solid-element';\nimport { Portal } from 'solid-js/web';\nimport { imgCss, style } from './style';\nimport Spin from '../spin';\nimport type { CustomElement } from '..';\n\nexport interface ImgProps {\n /** 图片地址 */\n src?: string;\n /** 查看大图的地址, 默认使用 `src`\n * @since 2.1.2\n */\n srcFull?: string;\n /** 图片 alt */\n alt?: string;\n /** 大图查看 */\n open?: boolean | null;\n /** 开启关闭大图的回调函数 */\n onOpenChange?: (open: boolean | null) => void;\n /** 图片加载完成 */\n onLoad?(e: Event): void;\n /** 点击遮罩关闭\n * @since 2.0.8\n * @default true\n */\n maskClosable?: boolean;\n /** 通过 `esc` 按键关闭\n * @default true\n */\n escClosable?: boolean;\n /**\n * 懒加载\n * @since 2.8.1\n * @default true\n */\n lazy?: boolean;\n}\nexport type ImgElement = CustomElement<ImgProps, 'onOpenChange'>;\n\nfunction Img(_: ImgProps) {\n let imgRef: HTMLImageElement | undefined;\n let portal: HTMLDivElement | undefined;\n const props = mergeProps({ lazy: true }, _);\n const [open, setOpen] = createSignal<boolean | null>(null);\n const [posi, setPosi] = createSignal({\n width: 0,\n height: 0,\n left: 0,\n top: 0,\n });\n const [isError, setIsError] = createSignal(false);\n const [isIntersecting, setIsIntersecting] = createSignal(false);\n const [loading, setLoading] = createSignal(true);\n const observer = new IntersectionObserver((entries) => {\n setIsIntersecting(entries[0].isIntersecting);\n if (entries[0].isIntersecting) {\n if (imgRef) {\n observer.unobserve(imgRef);\n }\n observer.disconnect();\n }\n });\n\n function getCss() {\n const { width, height, top, left } = posi();\n\n return `.portal { --img: url(${props.src});inline-size: ${width}px; block-size: ${height}px;inset-block-start: ${top}px;inset-inline-start: ${left}px;}`;\n }\n function openChange(visi: boolean | null) {\n setOpen(visi);\n props.onOpenChange?.(visi);\n }\n function preventDefault(e: Event) {\n e.preventDefault();\n }\n function close(e: KeyboardEvent | Event) {\n preventDefault(e);\n if (e.type === 'keydown') {\n if (props.escClosable && (e as KeyboardEvent).key === 'Escape') {\n openChange(false);\n }\n } else {\n openChange(false);\n }\n }\n function handleDestroy() {\n if (open() === false) {\n openChange(null);\n }\n }\n function handleOpen(e: Event) {\n e.stopPropagation();\n preventDefault(e);\n if (!isError()) {\n setPosi((e.target as HTMLImageElement)?.getBoundingClientRect());\n openChange(true);\n }\n }\n function handleError() {\n setIsError(true);\n setLoading(false);\n }\n function handleLoad(e: Event) {\n props.onLoad?.(e);\n setLoading(false);\n }\n function portalClick(e: Event) {\n preventDefault(e);\n if (props.maskClosable && e.target === portal) {\n openChange(false);\n }\n }\n\n createEffect(() => {\n if (props.open !== void 0 && props.open !== untrack(open)) {\n setOpen(props.open);\n }\n });\n createEffect(() => {\n if (open() === true) {\n document.documentElement.addEventListener('mousewheel', preventDefault, {\n passive: false,\n });\n\n if (props.escClosable) {\n document.documentElement.addEventListener('keydown', close, false);\n }\n }\n\n onCleanup(() => {\n document.documentElement.removeEventListener('mousewheel', preventDefault, false);\n document.documentElement.removeEventListener('keydown', close, false);\n });\n });\n\n onMount(() => {\n if (imgRef) {\n observer.observe(imgRef);\n }\n });\n onCleanup(() => {\n if (imgRef) {\n observer.unobserve(imgRef);\n }\n observer.disconnect();\n });\n\n return (\n <>\n <style>{imgCss}</style>\n <Spin spin={loading()}>\n <img\n ref={imgRef}\n class={cx('img', open() && 'none', isError() && 'error')}\n src={isIntersecting() ? props.src : void 0}\n alt={props.alt}\n onClick={handleOpen}\n onError={handleError}\n onLoad={handleLoad}\n />\n </Spin>\n <Show when={open() !== null}>\n <Portal useShadow={true}>\n <style>\n {getCss()}\n {imgCss}\n {style}\n </style>\n <div\n ref={portal}\n class={cx('portal', open() ? 'open' : 'closeing')}\n onAnimationEnd={handleDestroy}\n onClick={portalClick}\n >\n <span class=\"close\" onClick={close} />\n <img class=\"img\" src={props.srcFull || props.src} alt={props.alt} />\n </div>\n </Portal>\n </Show>\n </>\n );\n}\n\ncustomElement<ImgProps>(\n 'n-img',\n {\n src: void 0,\n srcFull: void 0,\n alt: void 0,\n open: null as boolean | null,\n maskClosable: true,\n escClosable: true,\n onOpenChange: void 0,\n onLoad: void 0,\n lazy: void 0,\n },\n (_, opt) => {\n const props = mergeProps(\n {\n onOpenChange(open: boolean | null) {\n opt.element.dispatchEvent(\n new CustomEvent('openchange', {\n detail: open,\n }),\n );\n },\n onLoad() {\n opt.element.dispatchEvent(new CustomEvent('load'));\n },\n },\n _,\n );\n\n return createComponent(Img, props);\n },\n);\nexport default Img;\n"],"names":["Show","createComponent","createEffect","createSignal","mergeProps","onCleanup","onMount","untrack","cx","customElement","Portal","imgCss","style","Spin","Img","_","imgRef","portal","props","lazy","open","setOpen","posi","setPosi","width","height","left","top","isError","setIsError","isIntersecting","setIsIntersecting","loading","setLoading","observer","IntersectionObserver","entries","unobserve","disconnect","getCss","src","openChange","visi","onOpenChange","preventDefault","e","close","type","escClosable","key","handleDestroy","handleOpen","stopPropagation","target","getBoundingClientRect","handleError","handleLoad","onLoad","portalClick","maskClosable","document","documentElement","addEventListener","passive","removeEventListener","observe","alt","srcFull","opt","element","dispatchEvent","CustomEvent","detail"],"rangeMappings":"","mappings":"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"}
package/es/img/style.js CHANGED
@@ -1,4 +1,4 @@
1
- import{css as n}from"@moneko/css";export const imgCss=n`
1
+ import{css as e}from"@moneko/css";export const imgCss=e`
2
2
  .img {
3
3
  max-inline-size: 100%;
4
4
  max-block-size: 100%;
@@ -10,7 +10,42 @@ import{css as n}from"@moneko/css";export const imgCss=n`
10
10
  pointer-events: none;
11
11
  opacity: 0.25;
12
12
  }
13
- `;export const style=n`
13
+
14
+ .error {
15
+ display: inline-block;
16
+ transform: scale(1);
17
+ min-block-size: 75px;
18
+
19
+ &::before {
20
+ position: absolute;
21
+ color: transparent;
22
+ background: #f5f5f5
23
+ url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1024'%3E%3Cpath fill='%23e6e6e6' d='M304.128 456.192c48.64 0 88.064-39.424 88.064-88.064s-39.424-88.064-88.064-88.064-88.064 39.424-88.064 88.064 39.424 88.064 88.064 88.064zm0-116.224c15.36 0 28.16 12.288 28.16 28.16s-12.288 28.16-28.16 28.16-28.16-12.288-28.16-28.16 12.288-28.16 28.16-28.16z'/%3E%3Cpath fill='%23e6e6e6' d='M887.296 159.744H136.704C96.768 159.744 64 192 64 232.448v559.104c0 39.936 32.256 72.704 72.704 72.704h198.144L500.224 688.64l-36.352-222.72 162.304-130.56-61.44 143.872 92.672 214.016-105.472 171.008h335.36C927.232 864.256 960 832 960 791.552V232.448c0-39.936-32.256-72.704-72.704-72.704zm-138.752 71.68v.512H857.6c16.384 0 30.208 13.312 30.208 30.208v399.872L673.28 408.064l75.264-176.64zM304.64 792.064H165.888c-16.384 0-30.208-13.312-30.208-30.208v-9.728l138.752-164.352 104.96 124.416-74.752 79.872zm81.92-355.84l37.376 228.864-.512.512-142.848-169.984c-3.072-3.584-9.216-3.584-12.288 0L135.68 652.8V262.144c0-16.384 13.312-30.208 30.208-30.208h474.624L386.56 436.224zm501.248 325.632c0 16.896-13.312 30.208-29.696 30.208H680.96l57.344-93.184-87.552-202.24 7.168-7.68 229.888 272.896z'/%3E%3C/svg%3E")
24
+ no-repeat center / 50% 50%;
25
+ content: '';
26
+ inset-inline-start: 0;
27
+ inset-block-start: 0;
28
+ inline-size: 100%;
29
+ block-size: 100%;
30
+ }
31
+
32
+ &::after {
33
+ position: absolute;
34
+ overflow: hidden;
35
+ font-size: 12px;
36
+ text-align: center;
37
+ text-overflow: ellipsis;
38
+ white-space: nowrap;
39
+ color: white;
40
+ background-color: rgb(0 0 0 / 50%);
41
+ content: attr(alt);
42
+ inset-inline-start: 0;
43
+ inset-block-end: 0;
44
+ inline-size: 100%;
45
+ line-height: 2;
46
+ }
47
+ }
48
+ `;export const style=e`
14
49
  .close {
15
50
  position: absolute;
16
51
  inset-block-start: 0;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/img/style.ts"],"sourcesContent":["import { css } from '@moneko/css';\n\nexport const imgCss = css`\n .img {\n max-inline-size: 100%;\n max-block-size: 100%;\n object-fit: contain;\n transition: opacity 0.3s;\n }\n\n .none {\n pointer-events: none;\n opacity: 0.25;\n }\n`;\nexport const style = css`\n .close {\n position: absolute;\n inset-block-start: 0;\n inset-inline-end: 0;\n z-index: 1;\n color: #fff;\n transition: transform var(--transition-duration);\n cursor: pointer;\n transform: scale(0);\n\n &::before {\n padding: 0 16px;\n font-size: 24px;\n content: '⛌';\n line-height: 46px;\n }\n }\n\n .portal {\n position: fixed;\n z-index: 99999;\n display: flex;\n justify-content: center;\n align-items: center;\n\n &::before {\n position: absolute;\n z-index: -1;\n background: var(--img) center/cover no-repeat;\n content: '';\n inline-size: 100%;\n block-size: 100%;\n pointer-events: none;\n opacity: 0.5;\n }\n\n &::after {\n position: absolute;\n z-index: -1;\n content: '';\n inline-size: 100%;\n block-size: 100%;\n pointer-events: none;\n backdrop-filter: blur(50px);\n }\n\n &:hover {\n .close {\n transform: scale(1);\n }\n }\n }\n\n .open {\n animation: photo-in var(--transition-duration) forwards;\n }\n\n .closeing {\n animation: photo-out var(--transition-duration) forwards;\n }\n\n @keyframes photo-in {\n 0% {\n pointer-events: none;\n }\n\n 100% {\n inline-size: 100vi;\n block-size: 100vb;\n inset-block-start: 0;\n inset-inline-start: 0;\n }\n }\n\n @keyframes photo-out {\n from {\n inline-size: 100vi;\n block-size: 100vb;\n inset-block-start: 0;\n inset-inline-start: 0;\n }\n\n to {\n pointer-events: none;\n }\n }\n`;\n"],"names":["css","imgCss","style"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,OAASA,OAAAA,CAAG,KAAQ,aAAc,AAElC,QAAO,MAAMC,OAASD,CAAG,CAAC;;;;;;;;;;;;AAY1B,CAAC,AAAC,AACF,QAAO,MAAME,MAAQF,CAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuFzB,CAAC,AAAC"}
1
+ {"version":3,"sources":["../../components/img/style.ts"],"sourcesContent":["import { css } from '@moneko/css';\n\nexport const imgCss = css`\n .img {\n max-inline-size: 100%;\n max-block-size: 100%;\n object-fit: contain;\n transition: opacity 0.3s;\n }\n\n .none {\n pointer-events: none;\n opacity: 0.25;\n }\n\n .error {\n display: inline-block;\n transform: scale(1);\n min-block-size: 75px;\n\n &::before {\n position: absolute;\n color: transparent;\n background: #f5f5f5\n url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1024'%3E%3Cpath fill='%23e6e6e6' d='M304.128 456.192c48.64 0 88.064-39.424 88.064-88.064s-39.424-88.064-88.064-88.064-88.064 39.424-88.064 88.064 39.424 88.064 88.064 88.064zm0-116.224c15.36 0 28.16 12.288 28.16 28.16s-12.288 28.16-28.16 28.16-28.16-12.288-28.16-28.16 12.288-28.16 28.16-28.16z'/%3E%3Cpath fill='%23e6e6e6' d='M887.296 159.744H136.704C96.768 159.744 64 192 64 232.448v559.104c0 39.936 32.256 72.704 72.704 72.704h198.144L500.224 688.64l-36.352-222.72 162.304-130.56-61.44 143.872 92.672 214.016-105.472 171.008h335.36C927.232 864.256 960 832 960 791.552V232.448c0-39.936-32.256-72.704-72.704-72.704zm-138.752 71.68v.512H857.6c16.384 0 30.208 13.312 30.208 30.208v399.872L673.28 408.064l75.264-176.64zM304.64 792.064H165.888c-16.384 0-30.208-13.312-30.208-30.208v-9.728l138.752-164.352 104.96 124.416-74.752 79.872zm81.92-355.84l37.376 228.864-.512.512-142.848-169.984c-3.072-3.584-9.216-3.584-12.288 0L135.68 652.8V262.144c0-16.384 13.312-30.208 30.208-30.208h474.624L386.56 436.224zm501.248 325.632c0 16.896-13.312 30.208-29.696 30.208H680.96l57.344-93.184-87.552-202.24 7.168-7.68 229.888 272.896z'/%3E%3C/svg%3E\")\n no-repeat center / 50% 50%;\n content: '';\n inset-inline-start: 0;\n inset-block-start: 0;\n inline-size: 100%;\n block-size: 100%;\n }\n\n &::after {\n position: absolute;\n overflow: hidden;\n font-size: 12px;\n text-align: center;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: white;\n background-color: rgb(0 0 0 / 50%);\n content: attr(alt);\n inset-inline-start: 0;\n inset-block-end: 0;\n inline-size: 100%;\n line-height: 2;\n }\n }\n`;\nexport const style = css`\n .close {\n position: absolute;\n inset-block-start: 0;\n inset-inline-end: 0;\n z-index: 1;\n color: #fff;\n transition: transform var(--transition-duration);\n cursor: pointer;\n transform: scale(0);\n\n &::before {\n padding: 0 16px;\n font-size: 24px;\n content: '⛌';\n line-height: 46px;\n }\n }\n\n .portal {\n position: fixed;\n z-index: 99999;\n display: flex;\n justify-content: center;\n align-items: center;\n\n &::before {\n position: absolute;\n z-index: -1;\n background: var(--img) center/cover no-repeat;\n content: '';\n inline-size: 100%;\n block-size: 100%;\n pointer-events: none;\n opacity: 0.5;\n }\n\n &::after {\n position: absolute;\n z-index: -1;\n content: '';\n inline-size: 100%;\n block-size: 100%;\n pointer-events: none;\n backdrop-filter: blur(50px);\n }\n\n &:hover {\n .close {\n transform: scale(1);\n }\n }\n }\n\n .open {\n animation: photo-in var(--transition-duration) forwards;\n }\n\n .closeing {\n animation: photo-out var(--transition-duration) forwards;\n }\n\n @keyframes photo-in {\n 0% {\n pointer-events: none;\n }\n\n 100% {\n inline-size: 100vi;\n block-size: 100vb;\n inset-block-start: 0;\n inset-inline-start: 0;\n }\n }\n\n @keyframes photo-out {\n from {\n inline-size: 100vi;\n block-size: 100vb;\n inset-block-start: 0;\n inset-inline-start: 0;\n }\n\n to {\n pointer-events: none;\n }\n }\n`;\n"],"names":["css","imgCss","style"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,OAASA,OAAAA,CAAG,KAAQ,aAAc,AAElC,QAAO,MAAMC,OAASD,CAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+C1B,CAAC,AAAC,AACF,QAAO,MAAME,MAAQF,CAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuFzB,CAAC,AAAC"}
package/es/index.d.ts CHANGED
@@ -35,8 +35,8 @@ export { default as Switch, type SwitchElement, type SwitchProps } from './switc
35
35
  export { default as Table, type TableElement, type TableProps } from './table';
36
36
  export { default as Tabs, type TabOption, type TabsElement, type TabsProps } from './tabs';
37
37
  export { default as Tag, type TagElement, type TagProps } from './tag';
38
- export { default as theme, type ColorScheme, type ThemeOption, generateTheme, toneColor, } from './theme';
39
- export { default as Tree, type TreeElement, type TreeMultipleElement, type TreeMultipleProps, type TreeMultipleSchemaElement, type TreeMultipleSchemaProps, type TreeMultipleStringElement, type TreeMultipleStringProps, type TreeProps, type TreeSchemaElement, type TreeSchemaProps, type TreeStringElement, type TreeStringProps, } from './tree';
38
+ export { default as theme, type ColorScheme, type ThemeOption, generateColor, toneColor, } from './theme';
39
+ export { default as Tree, type TreeElement, type TreeMultipleElement, type TreeMultipleProps, type TreeMultipleSchemaElement, type TreeMultipleSchemaProps, type TreeMultipleStringElement, type TreeMultipleStringProps, type TreeProps, type TreeSchemaElement, type TreeSchemaProps, type TreeStringElement, type TreeStringProps, type TreeData, } from './tree';
40
40
  export { default as Typography, type TypographyElement, type TypographyProps } from './typography';
41
41
  export { default as dayjs } from './date-picker/dayjs';
42
42
  export { default as Provider, type ProviderElement, type ProviderProps } from './provider';
package/es/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export{default as Avatar}from"./avatar";export{default as AvatarGroup}from"./avatar/group";export{default as BackTop}from"./back-top";export{FieldName,Size,Status}from"./basic-config";export{default as Button}from"./button";export{default as CaptureScreen}from"./capture-screen";export{default as Carousel}from"./carousel";export{default as Checkbox}from"./checkbox";export{default as Code}from"./code";export{default as ColorPalette}from"./color-palette";export{default as ColorPicker}from"./color-picker";export{default as Cron}from"./cron";export{default as DatePicker}from"./date-picker";export{default as Dropdown}from"./dropdown";export{default as Empty}from"./empty";export{default as fromSchema}from"./from-schema";export{default as getOptions}from"./get-options";export{default as HighlightText}from"./highlight-text";export{default as Img}from"./img";export{default as Input}from"./input";export{default as InputNumber}from"./input-number";export{default as Md}from"./md";export{default as mdStyle}from"./md-style";export{default as Menu}from"./menu";export{default as Modal,OpenState}from"./modal";export{default as notification}from"./notification";export{default as Pagination}from"./pagination";export{default as Popover}from"./popover";export{default as Radio}from"./radio";export{default as Segmented}from"./segmented";export{default as Select}from"./select";export{default as Skeleton}from"./skeleton";export{default as Spin}from"./spin";export{default as Switch}from"./switch";export{default as Table}from"./table";export{default as Tabs}from"./tabs";export{default as Tag}from"./tag";export{default as theme,generateTheme,toneColor}from"./theme";export{default as Tree}from"./tree";export{default as Typography}from"./typography";export{default as dayjs}from"./date-picker/dayjs";export{default as Provider}from"./provider";export{hot,customElement,noShadowDOM,withSolid,getCurrentElement}from"solid-element";
1
+ export{default as Avatar}from"./avatar";export{default as AvatarGroup}from"./avatar/group";export{default as BackTop}from"./back-top";export{FieldName,Size,Status}from"./basic-config";export{default as Button}from"./button";export{default as CaptureScreen}from"./capture-screen";export{default as Carousel}from"./carousel";export{default as Checkbox}from"./checkbox";export{default as Code}from"./code";export{default as ColorPalette}from"./color-palette";export{default as ColorPicker}from"./color-picker";export{default as Cron}from"./cron";export{default as DatePicker}from"./date-picker";export{default as Dropdown}from"./dropdown";export{default as Empty}from"./empty";export{default as fromSchema}from"./from-schema";export{default as getOptions}from"./get-options";export{default as HighlightText}from"./highlight-text";export{default as Img}from"./img";export{default as Input}from"./input";export{default as InputNumber}from"./input-number";export{default as Md}from"./md";export{default as mdStyle}from"./md-style";export{default as Menu}from"./menu";export{default as Modal,OpenState}from"./modal";export{default as notification}from"./notification";export{default as Pagination}from"./pagination";export{default as Popover}from"./popover";export{default as Radio}from"./radio";export{default as Segmented}from"./segmented";export{default as Select}from"./select";export{default as Skeleton}from"./skeleton";export{default as Spin}from"./spin";export{default as Switch}from"./switch";export{default as Table}from"./table";export{default as Tabs}from"./tabs";export{default as Tag}from"./tag";export{default as theme,generateColor,toneColor}from"./theme";export{default as Tree}from"./tree";export{default as Typography}from"./typography";export{default as dayjs}from"./date-picker/dayjs";export{default as Provider}from"./provider";export{hot,customElement,noShadowDOM,withSolid,getCurrentElement}from"solid-element";
2
2
  //# sourceMappingURL=index.js.map
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 DatePickerProps, type DatePickerElement } from './date-picker';\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 type OpenStateKey,\n OpenState,\n} from './modal';\nexport {\n default as notification,\n type NotificationType,\n type NotificationProps,\n} from './notification';\nexport { default as Pagination, type PaginationProps, type PaginationElement } from './pagination';\nexport { default as Popover, type PopoverElement, type PopoverProps } from './popover';\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 { default as Tabs, type TabOption, type TabsElement, type TabsProps } from './tabs';\nexport { default as Tag, type TagElement, type TagProps } from './tag';\nexport {\n default as theme,\n type ColorScheme,\n type ThemeOption,\n generateTheme,\n toneColor,\n} from './theme';\nexport {\n default as Tree,\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 { default as dayjs } from './date-picker/dayjs';\nexport { default as Provider, type ProviderElement, type ProviderProps } from './provider';\nexport { hot, customElement, noShadowDOM, withSolid, getCurrentElement } from 'solid-element';\nexport type { CustomElement } from 'custom-element-type';\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 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 '.';\nimport type { ICustomElement, Transform } from 'custom-element-type';\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}\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 interface HTMLElementTagNameMap extends IntrinsicNekoElement {}\n}\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n export namespace JSX {\n export interface IntrinsicElements extends IntrinsicNekoElement {}\n }\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","Dropdown","Empty","fromSchema","getOptions","HighlightText","Img","Input","InputNumber","Md","mdStyle","Menu","Modal","OpenState","notification","Pagination","Popover","Radio","Segmented","Select","Skeleton","Spin","Switch","Table","Tabs","Tag","theme","generateTheme","toneColor","Tree","Typography","dayjs","Provider","hot","customElement","noShadowDOM","withSolid","getCurrentElement"],"rangeMappings":"","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,QACEf,WAAWgB,QAAQ,KAKd,YAAa,AACpB,QAAShB,WAAWiB,KAAK,KAA4C,SAAU,AAC/E,QAASjB,WAAWkB,UAAU,KAAQ,eAAgB,AACtD,QAASlB,WAAWmB,UAAU,KAAQ,eAAgB,AACtD,QACEnB,WAAWoB,aAAa,KAGnB,kBAAmB,AAC1B,QAASpB,WAAWqB,GAAG,KAAwC,OAAQ,AACvE,QAASrB,WAAWsB,KAAK,KAA4C,SAAU,AAC/E,QACEtB,WAAWuB,WAAW,KAGjB,gBAAiB,AACxB,QAASvB,WAAWwB,EAAE,KAAsC,MAAO,AACnE,QAASxB,WAAWyB,OAAO,KAAQ,YAAa,AAChD,QACEzB,WAAW0B,IAAI,KAMV,QAAS,AAChB,QACE1B,WAAW2B,KAAK,CAIhBC,SAAS,KACJ,SAAU,AACjB,QACE5B,WAAW6B,YAAY,KAGlB,gBAAiB,AACxB,QAAS7B,WAAW8B,UAAU,KAAsD,cAAe,AACnG,QAAS9B,WAAW+B,OAAO,KAAgD,WAAY,AACvF,QAAS/B,WAAWgC,KAAK,KAA8D,SAAU,AACjG,QAAShC,WAAWiC,SAAS,KAAoD,aAAc,AAC/F,QACEjC,WAAWkC,MAAM,KAKZ,UAAW,AAClB,QAASlC,WAAWmC,QAAQ,KAAkD,YAAa,AAC3F,QAASnC,WAAWoC,IAAI,KAA0C,QAAS,AAC3E,QAASpC,WAAWqC,MAAM,KAA8C,UAAW,AACnF,QAASrC,WAAWsC,KAAK,KAA4C,SAAU,AAC/E,QAAStC,WAAWuC,IAAI,KAA0D,QAAS,AAC3F,QAASvC,WAAWwC,GAAG,KAAwC,OAAQ,AACvE,QACExC,WAAWyC,KAAK,CAGhBC,aAAa,CACbC,SAAS,KACJ,SAAU,AACjB,QACE3C,WAAW4C,IAAI,KAaV,QAAS,AAChB,QAAS5C,WAAW6C,UAAU,KAAsD,cAAe,AACnG,QAAS7C,WAAW8C,KAAK,KAAQ,qBAAsB,AACvD,QAAS9C,WAAW+C,QAAQ,KAAkD,YAAa,AAC3F,QAASC,GAAG,CAAEC,aAAa,CAAEC,WAAW,CAAEC,SAAS,CAAEC,iBAAiB,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 } 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 DatePickerProps, type DatePickerElement } from './date-picker';\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 type OpenStateKey,\n OpenState,\n} from './modal';\nexport {\n default as notification,\n type NotificationType,\n type NotificationProps,\n} from './notification';\nexport { default as Pagination, type PaginationProps, type PaginationElement } from './pagination';\nexport { default as Popover, type PopoverElement, type PopoverProps } from './popover';\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 { default as Tabs, type TabOption, type TabsElement, type TabsProps } from './tabs';\nexport { default as Tag, type TagElement, type TagProps } from './tag';\nexport {\n default as theme,\n type ColorScheme,\n type ThemeOption,\n generateColor,\n toneColor,\n} from './theme';\nexport {\n default as Tree,\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 type TreeData,\n} from './tree';\nexport { default as Typography, type TypographyElement, type TypographyProps } from './typography';\nexport { default as dayjs } from './date-picker/dayjs';\nexport { default as Provider, type ProviderElement, type ProviderProps } from './provider';\nexport { hot, customElement, noShadowDOM, withSolid, getCurrentElement } from 'solid-element';\nexport type { CustomElement } from 'custom-element-type';\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 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 '.';\nimport type { ICustomElement, Transform } from 'custom-element-type';\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}\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 interface HTMLElementTagNameMap extends IntrinsicNekoElement {}\n}\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n export namespace JSX {\n export interface IntrinsicElements extends IntrinsicNekoElement {}\n }\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","Dropdown","Empty","fromSchema","getOptions","HighlightText","Img","Input","InputNumber","Md","mdStyle","Menu","Modal","OpenState","notification","Pagination","Popover","Radio","Segmented","Select","Skeleton","Spin","Switch","Table","Tabs","Tag","theme","generateColor","toneColor","Tree","Typography","dayjs","Provider","hot","customElement","noShadowDOM","withSolid","getCurrentElement"],"rangeMappings":"","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,QACEf,WAAWgB,QAAQ,KAKd,YAAa,AACpB,QAAShB,WAAWiB,KAAK,KAA4C,SAAU,AAC/E,QAASjB,WAAWkB,UAAU,KAAQ,eAAgB,AACtD,QAASlB,WAAWmB,UAAU,KAAQ,eAAgB,AACtD,QACEnB,WAAWoB,aAAa,KAGnB,kBAAmB,AAC1B,QAASpB,WAAWqB,GAAG,KAAwC,OAAQ,AACvE,QAASrB,WAAWsB,KAAK,KAA4C,SAAU,AAC/E,QACEtB,WAAWuB,WAAW,KAGjB,gBAAiB,AACxB,QAASvB,WAAWwB,EAAE,KAAsC,MAAO,AACnE,QAASxB,WAAWyB,OAAO,KAAQ,YAAa,AAChD,QACEzB,WAAW0B,IAAI,KAMV,QAAS,AAChB,QACE1B,WAAW2B,KAAK,CAIhBC,SAAS,KACJ,SAAU,AACjB,QACE5B,WAAW6B,YAAY,KAGlB,gBAAiB,AACxB,QAAS7B,WAAW8B,UAAU,KAAsD,cAAe,AACnG,QAAS9B,WAAW+B,OAAO,KAAgD,WAAY,AACvF,QAAS/B,WAAWgC,KAAK,KAA8D,SAAU,AACjG,QAAShC,WAAWiC,SAAS,KAAoD,aAAc,AAC/F,QACEjC,WAAWkC,MAAM,KAKZ,UAAW,AAClB,QAASlC,WAAWmC,QAAQ,KAAkD,YAAa,AAC3F,QAASnC,WAAWoC,IAAI,KAA0C,QAAS,AAC3E,QAASpC,WAAWqC,MAAM,KAA8C,UAAW,AACnF,QAASrC,WAAWsC,KAAK,KAA4C,SAAU,AAC/E,QAAStC,WAAWuC,IAAI,KAA0D,QAAS,AAC3F,QAASvC,WAAWwC,GAAG,KAAwC,OAAQ,AACvE,QACExC,WAAWyC,KAAK,CAGhBC,aAAa,CACbC,SAAS,KACJ,SAAU,AACjB,QACE3C,WAAW4C,IAAI,KAcV,QAAS,AAChB,QAAS5C,WAAW6C,UAAU,KAAsD,cAAe,AACnG,QAAS7C,WAAW8C,KAAK,KAAQ,qBAAsB,AACvD,QAAS9C,WAAW+C,QAAQ,KAAkD,YAAa,AAC3F,QAASC,GAAG,CAAEC,aAAa,CAAEC,WAAW,CAAEC,SAAS,CAAEC,iBAAiB,KAAQ,eAAgB"}
package/es/md/index.js CHANGED
@@ -1,2 +1,2 @@
1
- function e(){return(e=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 t}from"solid-js/web";import{template as r}from"solid-js/web";import{insert as o}from"solid-js/web";import{effect as n}from"solid-js/web";import{createComponent as i}from"solid-js/web";import{className as l}from"solid-js/web";let a=r("<style>"),s=r('<article class="n-md-box" part="box"><div class="n-md-body" part="body">'),c=r('<article part="box">');import{For as d,Match as m,Switch as u,createComponent as f,createEffect as h,mergeProps as p,onCleanup as v}from"solid-js";import g from"@moneko/common/lib/frameCallback";import{css as b,cx as x}from"@moneko/css";import w from"marked-completed";import{customElement as k}from"solid-element";import"../code";import"../img";import y from"../md-style";import $ from"../theme";function C(e){return`<n-katex display-mode="true">${e}</n-katex>`}function E(e){return`<n-katex>${e}</n-katex>`}function j(e,t,r){return`<img role="img" src="${e}" alt="${r}" ${t?`title="${t}"`:""}></img>`}function L(e,t,r){return`<n-img role="img" src="${e}" alt="${r}" ${t?`title="${t}"`:""}></n-img>`}function A(r){let f;let k=new w.Renderer;k.katexBlock=C,k.katexInline=E;let{baseStyle:A}=$,O=p({pictureViewer:!0,text:"",tools:["copy"],getAnchorContainer:()=>window},r);h(()=>{g(()=>(function(t){var r;let{text:o,pictureViewer:n,langToolbar:i}=t,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}(t,["text","pictureViewer","langToolbar"]);k.image=n?L:j;let a=!!(null==i?void 0:i.length);k.code=function(e,t){return"treeview"===t?`<n-tree data="${e}" />`:`<n-code class="n-code" toolbar="${a}" lang="${t}" ${l.langLineNumber?'line-number="true"':""}>${encodeURIComponent(e)}</n-code>`},r={data:w(o,e({renderer:k,langToolbar:i,headerPrefix:"# ",breaks:!0,pedantic:!1,smartLists:!0,smartypants:!0,xhtml:!0},l))},f&&(f.innerHTML=r.data)})({text:O.text,langLineNumber:O.lineNumber,langToolbar:O.tools,pictureViewer:O.pictureViewer}))});let T=[],I=[],V=[];function N(e){e.preventDefault(),e.stopPropagation();let t=e.target;if(t.hash){var r;null==f||null==(r=f.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 R(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=V.indexOf(t);if(V.forEach(e=>{e.classList.remove("active")}),e.isIntersecting?V.push(t):-1!==r&&V.splice(r,1),V[0]){var n;V[0].classList.add("active"),null==(n=V[0].offsetParent)||n.scrollTo({top:V[0].offsetTop})}}})}return h(()=>{var e;let t;f&&(null==(e=O.text)?void 0:e.startsWith("[TOC]"))&&(T=[...f.querySelectorAll(".n-md-toc a[href]")],I=[...f.querySelectorAll("h1, h2, h3, h4, h5, h6")],t=new IntersectionObserver(R,{rootMargin:"-50px 0px",threshold:.5}),I.forEach(e=>t.observe(e)),T.forEach(e=>{e.addEventListener("click",N)})),v(()=>{t&&(I.forEach(e=>t.unobserve(e)),t.disconnect()),T.forEach(e=>{e.removeEventListener("click",N)})})}),[(()=>{let e=a();return o(e,A,null),o(e,y,null),o(e,()=>b(O.css),null),e})(),i(u,{get children(){return[i(m,{get when(){var q;return null==(q=O.children)?void 0:q.length},get children(){let e=s();return o(e.firstChild,i(d,{get each(){return O.children},children:e=>e})),e}}),i(m,{get when(){return O.text},get children(){let e=c(),r=f;return"function"==typeof r?t(r,e):f=e,n(()=>l(e,x("n-md-box",O.class))),e}})]}})]}k("n-md",{class:void 0,pictureViewer:void 0,lineNumber:!0,text:void 0,tools:void 0,getAnchorContainer:void 0,css:void 0,children:void 0,notRender: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 h(()=>{r.removeAttribute("css"),r.replaceChildren()}),f(A,o)});export default A;
1
+ function e(){return(e=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 t}from"solid-js/web";import{template as r}from"solid-js/web";import{insert as o}from"solid-js/web";import{effect as n}from"solid-js/web";import{createComponent as l}from"solid-js/web";import{className as i}from"solid-js/web";let a=r("<style>"),s=r('<article class="n-md-box" part="box"><div class="n-md-body" part="body">'),c=r('<article part="box">');import{For as d,Match as m,Switch as h,createComponent as f,createEffect as u,mergeProps as p,onCleanup as v}from"solid-js";import b from"@moneko/common/lib/frameCallback";import{css as g,cx as x}from"@moneko/css";import w from"marked-completed";import{customElement as k}from"solid-element";import"../code";import"../img";import y from"../md-style";import $ from"../theme";function C(r){let f;let k=new w.Renderer;k.katexBlock=e=>`<n-katex display-mode="true">${e}</n-katex>`,k.katexInline=e=>`<n-katex>${e}</n-katex>`;let{baseStyle:C}=$,E=p({pictureViewer:!0,text:"",tools:["copy"],getAnchorContainer:()=>window},r);u(()=>{b(()=>(function(t){var r;let{text:o,pictureViewer:n,langToolbar:l}=t,i=function(e,t){if(null==e)return{};var r,o,n={},l=Object.keys(e);for(o=0;o<l.length;o++)t.indexOf(r=l[o])>=0||(n[r]=e[r]);return n}(t,["text","pictureViewer","langToolbar"]),a=n?"n-img":"img";k.image=(e,t,r)=>`<${a} role="img" src="${e}" alt="${r}" ${t?`title="${t}"`:""}></${a}>`;let s=!!(null==l?void 0:l.length);k.code=function(e,t){return"treeview"===t?`<n-tree data="${e}" />`:`<n-code class="n-code" toolbar="${s}" lang="${t}" ${i.langLineNumber?'line-number="true"':""}>${encodeURIComponent(e)}</n-code>`},r={data:w(o,e({renderer:k,langToolbar:l,headerPrefix:"# ",breaks:!0,pedantic:!1,smartLists:!0,smartypants:!0,xhtml:!0},i))},f&&(f.innerHTML=r.data)})({text:E.text,langLineNumber:E.lineNumber,langToolbar:E.tools,pictureViewer:E.pictureViewer}))});let j=[],L=[],A=[];function O(e){e.preventDefault(),e.stopPropagation();let t=e.target;if(t.hash){var r;null==f||null==(r=f.querySelector(decodeURIComponent(t.hash)))||r.scrollIntoView({behavior:"smooth",block:"nearest"}),j.forEach(e=>e.classList.remove("active")),t.classList.add("active")}else window.open(t.href)}function T(e){e.forEach(e=>{let t;let r=e.target.getAttribute("id"),o=e.target.querySelectorAll("a");if(j.forEach(e=>{e.hash===`#${r}`?t=e:e.hash||o.forEach(r=>{r.href===e.href&&(t=e)})}),t){let r=A.indexOf(t);if(A.forEach(e=>{e.classList.remove("active")}),e.isIntersecting?A.push(t):-1!==r&&A.splice(r,1),A[0]){var n;A[0].classList.add("active"),null==(n=A[0].offsetParent)||n.scrollTo({top:A[0].offsetTop})}}})}return u(()=>{var e;let t;f&&(null==(e=E.text)?void 0:e.startsWith("[TOC]"))&&(j=[...f.querySelectorAll(".n-md-toc a[href]")],L=[...f.querySelectorAll("h1, h2, h3, h4, h5, h6")],t=new IntersectionObserver(T,{rootMargin:"-50px 0px",threshold:.5}),L.forEach(e=>t.observe(e)),j.forEach(e=>{e.addEventListener("click",O)})),v(()=>{t&&(L.forEach(e=>t.unobserve(e)),t.disconnect()),j.forEach(e=>{e.removeEventListener("click",O)})})}),[(()=>{let e=a();return o(e,C,null),o(e,y,null),o(e,()=>g(E.css),null),e})(),l(h,{get children(){return[l(m,{get when(){var I;return null==(I=E.children)?void 0:I.length},get children(){let e=s();return o(e.firstChild,l(d,{get each(){return E.children},children:e=>e})),e}}),l(m,{get when(){return E.text},get children(){let e=c(),r=f;return"function"==typeof r?t(r,e):f=e,n(()=>i(e,x("n-md-box",E.class))),e}})]}})]}k("n-md",{class:void 0,pictureViewer:void 0,lineNumber:!0,text:void 0,tools:void 0,getAnchorContainer:void 0,css:void 0,children:void 0,notRender: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 u(()=>{r.removeAttribute("css"),r.replaceChildren()}),f(C,o)});export default C;
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/md/index.tsx"],"sourcesContent":["import { For, Match, Switch, createComponent, createEffect, mergeProps, onCleanup } from 'solid-js';\nimport { frameCallback } from '@moneko/common';\nimport { css, cx } from '@moneko/css';\nimport marked from 'marked-completed';\nimport { customElement } from 'solid-element';\nimport '../code';\nimport '../img';\nimport mdStyle from '../md-style';\nimport theme from '../theme';\nimport type { CustomElement } from '..';\n\nfunction katexBlock(code: string) {\n return `<n-katex display-mode=\"true\">${code}</n-katex>`;\n}\nfunction katexInline(code: string) {\n return `<n-katex>${code}</n-katex>`;\n}\nfunction img(src: string, title: string, alt: string) {\n return `<img role=\"img\" src=\"${src}\" alt=\"${alt}\" ${title ? `title=\"${title}\"` : ''}></img>`;\n}\nfunction nImg(src: string, title: string, alt: string) {\n return `<n-img role=\"img\" src=\"${src}\" alt=\"${alt}\" ${title ? `title=\"${title}\"` : ''}></n-img>`;\n}\nfunction MD(_props: MdProps) {\n let ref: HTMLDivElement | undefined;\n const renderer = new marked.Renderer();\n\n renderer.katexBlock = katexBlock;\n renderer.katexInline = katexInline;\n const { baseStyle } = theme;\n const props = mergeProps(\n {\n pictureViewer: true,\n text: '',\n tools: ['copy'],\n getAnchorContainer: () => window as unknown as HTMLElement,\n },\n _props,\n );\n\n function update(e: { data: string }) {\n if (ref) {\n ref.innerHTML = e.data;\n }\n }\n function postMessage(opt: {\n text: string;\n pictureViewer?: boolean;\n langToolbar?: string[];\n langLineNumber?: boolean;\n }) {\n const { text, pictureViewer, langToolbar, ...options } = opt;\n\n renderer.image = pictureViewer ? nImg : img;\n const toolbar = !!langToolbar?.length;\n\n renderer.code = function (code: string, lang: string) {\n if (lang === 'treeview') {\n return `<n-tree data=\"${code}\" />`;\n }\n\n return `<n-code class=\"n-code\" toolbar=\"${toolbar}\" lang=\"${lang}\" ${\n options.langLineNumber ? 'line-number=\"true\"' : ''\n }>${encodeURIComponent(code)}</n-code>`;\n };\n\n update({\n data: marked(text, {\n renderer: renderer,\n langToolbar: langToolbar,\n headerPrefix: '# ',\n breaks: true,\n pedantic: false,\n smartLists: true,\n smartypants: true,\n xhtml: true,\n ...options,\n }),\n });\n }\n // const work = new Worker(new URL('./worker.ts', import.meta.url));\n\n // work.addEventListener('message', update);\n // work.postMessage({\n // text: props.text,\n // langLineNumber: props.lineNumber,\n // langToolbar: props.tools,\n // pictureViewer: props.pictureViewer,\n // });\n // onCleanup(() => {\n // work.terminate();\n // });\n createEffect(() => {\n const call = () =>\n postMessage({\n text: props.text,\n langLineNumber: props.lineNumber,\n langToolbar: props.tools,\n pictureViewer: props.pictureViewer,\n });\n\n frameCallback(call);\n });\n let list: HTMLAnchorElement[] = [];\n let heading: HTMLHeadingElement[] = [];\n const active: HTMLAnchorElement[] = [];\n\n function handleAnchor(e: Event) {\n e.preventDefault();\n e.stopPropagation();\n const a = e.target as HTMLAnchorElement;\n\n if (a.hash) {\n ref?.querySelector(decodeURIComponent(a.hash))?.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n });\n list.forEach((item) => item.classList.remove('active'));\n a.classList.add('active');\n } else {\n window.open(a.href);\n }\n }\n function observerEntry(entries: IntersectionObserverEntry[]) {\n entries.forEach((entry) => {\n const id = entry.target.getAttribute('id');\n const all = entry.target.querySelectorAll('a');\n let a: HTMLAnchorElement | undefined;\n\n list.forEach((l) => {\n if (l.hash === `#${id}`) {\n a = l;\n } else if (!l.hash) {\n all.forEach((e) => {\n if (e.href === l.href) {\n a = l;\n }\n });\n }\n });\n if (a) {\n const idx = active.indexOf(a);\n\n active.forEach((e) => {\n e.classList.remove('active');\n });\n if (entry.isIntersecting) {\n active.push(a);\n } else if (idx !== -1) {\n active.splice(idx, 1);\n }\n if (active[0]) {\n active[0].classList.add('active');\n active[0].offsetParent?.scrollTo({\n top: active[0].offsetTop,\n });\n }\n }\n });\n }\n createEffect(() => {\n let observer: IntersectionObserver;\n\n if (ref && props.text?.startsWith('[TOC]')) {\n list = [...ref.querySelectorAll<HTMLAnchorElement>('.n-md-toc a[href]')];\n heading = [...ref.querySelectorAll<HTMLHeadingElement>('h1, h2, h3, h4, h5, h6')];\n\n observer = new IntersectionObserver(observerEntry, {\n rootMargin: '-50px 0px',\n threshold: 0.5,\n });\n\n heading.forEach((e) => observer.observe(e));\n list.forEach((e) => {\n e.addEventListener('click', handleAnchor);\n });\n }\n onCleanup(() => {\n if (observer) {\n heading.forEach((e) => observer.unobserve(e));\n observer.disconnect();\n }\n list.forEach((e) => {\n e.removeEventListener('click', handleAnchor);\n });\n });\n });\n\n return (\n <>\n <style>\n {baseStyle()}\n {mdStyle}\n {css(props.css)}\n </style>\n <Switch>\n <Match when={(props.children as [])?.length}>\n <article class=\"n-md-box\" part=\"box\">\n <div class=\"n-md-body\" part=\"body\">\n <For each={props.children as []}>{(e) => e}</For>\n </div>\n </article>\n </Match>\n <Match when={props.text}>\n <article ref={ref} class={cx('n-md-box', props.class)} part=\"box\" />\n </Match>\n </Switch>\n </>\n );\n}\n\nexport interface MdProps {\n /** 自定义类名 */\n class?: string;\n /** 自定义样式表 */\n css?: string;\n /** md内容 */\n text?: string;\n /** 开启图片查看器\n * @since 2.0.8\n * @default true\n */\n pictureViewer?: boolean;\n /** 显示代码块行号\n * @default true\n */\n lineNumber?: boolean;\n /** 开启代码块工具条\n * @default ['copy']\n */\n tools?: 'copy'[];\n /** 指定滚动的容器\n * @default () => window\n */\n getAnchorContainer?: () => HTMLElement;\n /** 不进行解析\n * @default false\n */\n notRender?: boolean;\n children?: JSX.Element;\n}\n\nexport type MdElement = CustomElement<MdProps>;\n\ncustomElement<MdProps>(\n 'n-md',\n {\n class: void 0,\n pictureViewer: void 0,\n lineNumber: true,\n text: void 0,\n tools: void 0,\n getAnchorContainer: void 0,\n css: void 0,\n children: void 0,\n notRender: void 0,\n },\n (_, opt) => {\n const el = opt.element;\n const props = mergeProps(\n {\n text: (!_.notRender && el.textContent) || el.text,\n css: el.css,\n tools: el.tools,\n getAnchorContainer: el.getAnchorContainer,\n },\n _,\n );\n\n createEffect(() => {\n el.removeAttribute('css');\n el.replaceChildren();\n });\n return createComponent(MD, props);\n },\n);\nexport default MD;\n"],"names":["For","Match","Switch","createComponent","createEffect","mergeProps","onCleanup","frameCallback","css","cx","marked","customElement","mdStyle","theme","katexBlock","code","katexInline","img","src","title","alt","nImg","MD","_props","ref","renderer","Renderer","baseStyle","props","pictureViewer","text","tools","getAnchorContainer","window","postMessage","opt","e","langToolbar","options","image","toolbar","length","lang","langLineNumber","encodeURIComponent","data","headerPrefix","breaks","pedantic","smartLists","smartypants","xhtml","innerHTML","lineNumber","list","heading","active","handleAnchor","preventDefault","stopPropagation","a","target","hash","querySelector","decodeURIComponent","scrollIntoView","behavior","block","forEach","item","classList","remove","add","open","href","observerEntry","entries","entry","id","getAttribute","all","querySelectorAll","l","idx","indexOf","isIntersecting","push","splice","offsetParent","scrollTo","top","offsetTop","observer","startsWith","IntersectionObserver","rootMargin","threshold","observe","addEventListener","unobserve","disconnect","removeEventListener","children","class","notRender","_","el","element","textContent","removeAttribute","replaceChildren"],"rangeMappings":"","mappings":"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"}
1
+ {"version":3,"sources":["../../components/md/index.tsx"],"sourcesContent":["import { For, Match, Switch, createComponent, createEffect, mergeProps, onCleanup } from 'solid-js';\nimport { frameCallback } from '@moneko/common';\nimport { css, cx } from '@moneko/css';\nimport marked from 'marked-completed';\nimport { customElement } from 'solid-element';\nimport '../code';\nimport '../img';\nimport mdStyle from '../md-style';\nimport theme from '../theme';\nimport type { CustomElement } from '..';\n\nfunction MD(_props: MdProps) {\n let ref: HTMLDivElement | undefined;\n const renderer = new marked.Renderer();\n\n renderer.katexBlock = (code: string) => {\n return `<n-katex display-mode=\"true\">${code}</n-katex>`;\n };\n renderer.katexInline = (code: string) => {\n return `<n-katex>${code}</n-katex>`;\n };\n const { baseStyle } = theme;\n const props = mergeProps(\n {\n pictureViewer: true,\n text: '',\n tools: ['copy'],\n getAnchorContainer: () => window as unknown as HTMLElement,\n },\n _props,\n );\n\n function update(e: { data: string }) {\n if (ref) {\n ref.innerHTML = e.data;\n }\n }\n function postMessage(opt: {\n text: string;\n pictureViewer?: boolean;\n langToolbar?: string[];\n langLineNumber?: boolean;\n }) {\n const { text, pictureViewer, langToolbar, ...options } = opt;\n const tag = pictureViewer ? 'n-img' : 'img';\n\n renderer.image = (src: string, title: string, alt: string) => {\n return `<${tag} role=\"img\" src=\"${src}\" alt=\"${alt}\" ${title ? `title=\"${title}\"` : ''}></${tag}>`;\n };\n const toolbar = !!langToolbar?.length;\n\n renderer.code = function (code: string, lang: string) {\n if (lang === 'treeview') {\n return `<n-tree data=\"${code}\" />`;\n }\n\n return `<n-code class=\"n-code\" toolbar=\"${toolbar}\" lang=\"${lang}\" ${\n options.langLineNumber ? 'line-number=\"true\"' : ''\n }>${encodeURIComponent(code)}</n-code>`;\n };\n\n update({\n data: marked(text, {\n renderer: renderer,\n langToolbar: langToolbar,\n headerPrefix: '# ',\n breaks: true,\n pedantic: false,\n smartLists: true,\n smartypants: true,\n xhtml: true,\n ...options,\n }),\n });\n }\n // const work = new Worker(new URL('./worker.ts', import.meta.url));\n\n // work.addEventListener('message', update);\n // work.postMessage({\n // text: props.text,\n // langLineNumber: props.lineNumber,\n // langToolbar: props.tools,\n // pictureViewer: props.pictureViewer,\n // });\n // onCleanup(() => {\n // work.terminate();\n // });\n createEffect(() => {\n const call = () =>\n postMessage({\n text: props.text,\n langLineNumber: props.lineNumber,\n langToolbar: props.tools,\n pictureViewer: props.pictureViewer,\n });\n\n frameCallback(call);\n });\n let list: HTMLAnchorElement[] = [];\n let heading: HTMLHeadingElement[] = [];\n const active: HTMLAnchorElement[] = [];\n\n function handleAnchor(e: Event) {\n e.preventDefault();\n e.stopPropagation();\n const a = e.target as HTMLAnchorElement;\n\n if (a.hash) {\n ref?.querySelector(decodeURIComponent(a.hash))?.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n });\n list.forEach((item) => item.classList.remove('active'));\n a.classList.add('active');\n } else {\n window.open(a.href);\n }\n }\n function observerEntry(entries: IntersectionObserverEntry[]) {\n entries.forEach((entry) => {\n const id = entry.target.getAttribute('id');\n const all = entry.target.querySelectorAll('a');\n let a: HTMLAnchorElement | undefined;\n\n list.forEach((l) => {\n if (l.hash === `#${id}`) {\n a = l;\n } else if (!l.hash) {\n all.forEach((e) => {\n if (e.href === l.href) {\n a = l;\n }\n });\n }\n });\n if (a) {\n const idx = active.indexOf(a);\n\n active.forEach((e) => {\n e.classList.remove('active');\n });\n if (entry.isIntersecting) {\n active.push(a);\n } else if (idx !== -1) {\n active.splice(idx, 1);\n }\n if (active[0]) {\n active[0].classList.add('active');\n active[0].offsetParent?.scrollTo({\n top: active[0].offsetTop,\n });\n }\n }\n });\n }\n createEffect(() => {\n let observer: IntersectionObserver;\n\n if (ref && props.text?.startsWith('[TOC]')) {\n list = [...ref.querySelectorAll<HTMLAnchorElement>('.n-md-toc a[href]')];\n heading = [...ref.querySelectorAll<HTMLHeadingElement>('h1, h2, h3, h4, h5, h6')];\n observer = new IntersectionObserver(observerEntry, {\n rootMargin: '-50px 0px',\n threshold: 0.5,\n });\n heading.forEach((e) => observer.observe(e));\n list.forEach((e) => {\n e.addEventListener('click', handleAnchor);\n });\n }\n onCleanup(() => {\n if (observer) {\n heading.forEach((e) => observer.unobserve(e));\n observer.disconnect();\n }\n list.forEach((e) => {\n e.removeEventListener('click', handleAnchor);\n });\n });\n });\n\n return (\n <>\n <style>\n {baseStyle()}\n {mdStyle}\n {css(props.css)}\n </style>\n <Switch>\n <Match when={(props.children as [])?.length}>\n <article class=\"n-md-box\" part=\"box\">\n <div class=\"n-md-body\" part=\"body\">\n <For each={props.children as []}>{(e) => e}</For>\n </div>\n </article>\n </Match>\n <Match when={props.text}>\n <article ref={ref} class={cx('n-md-box', props.class)} part=\"box\" />\n </Match>\n </Switch>\n </>\n );\n}\n\nexport interface MdProps {\n /** 自定义类名 */\n class?: string;\n /** 自定义样式表 */\n css?: string;\n /** md内容 */\n text?: string;\n /** 开启图片查看器\n * @since 2.0.8\n * @default true\n */\n pictureViewer?: boolean;\n /** 显示代码块行号\n * @default true\n */\n lineNumber?: boolean;\n /** 开启代码块工具条\n * @default ['copy']\n */\n tools?: 'copy'[];\n /** 指定滚动的容器\n * @default () => window\n */\n getAnchorContainer?: () => HTMLElement;\n /** 不进行解析\n * @default false\n */\n notRender?: boolean;\n children?: JSX.Element;\n}\n\nexport type MdElement = CustomElement<MdProps>;\n\ncustomElement<MdProps>(\n 'n-md',\n {\n class: void 0,\n pictureViewer: void 0,\n lineNumber: true,\n text: void 0,\n tools: void 0,\n getAnchorContainer: void 0,\n css: void 0,\n children: void 0,\n notRender: void 0,\n },\n (_, opt) => {\n const el = opt.element;\n const props = mergeProps(\n {\n text: (!_.notRender && el.textContent) || el.text,\n css: el.css,\n tools: el.tools,\n getAnchorContainer: el.getAnchorContainer,\n },\n _,\n );\n\n createEffect(() => {\n el.removeAttribute('css');\n el.replaceChildren();\n });\n return createComponent(MD, props);\n },\n);\nexport default MD;\n"],"names":["For","Match","Switch","createComponent","createEffect","mergeProps","onCleanup","frameCallback","css","cx","marked","customElement","mdStyle","theme","MD","_props","ref","renderer","Renderer","katexBlock","code","katexInline","baseStyle","props","pictureViewer","text","tools","getAnchorContainer","window","postMessage","opt","e","langToolbar","options","tag","image","src","title","alt","toolbar","length","lang","langLineNumber","encodeURIComponent","data","headerPrefix","breaks","pedantic","smartLists","smartypants","xhtml","innerHTML","lineNumber","list","heading","active","handleAnchor","preventDefault","stopPropagation","a","target","hash","querySelector","decodeURIComponent","scrollIntoView","behavior","block","forEach","item","classList","remove","add","open","href","observerEntry","entries","entry","id","getAttribute","all","querySelectorAll","l","idx","indexOf","isIntersecting","push","splice","offsetParent","scrollTo","top","offsetTop","observer","startsWith","IntersectionObserver","rootMargin","threshold","observe","addEventListener","unobserve","disconnect","removeEventListener","children","class","notRender","_","el","element","textContent","removeAttribute","replaceChildren"],"rangeMappings":"","mappings":"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"}
package/es/spin/index.js CHANGED
@@ -1,5 +1,6 @@
1
- import{template as e}from"solid-js/web";import{insert as t}from"solid-js/web";import{effect as o}from"solid-js/web";import{className as i}from"solid-js/web";let n=e("<style>"),s=e('<div><div class="content">');import{createComponent as r,mergeProps as l}from"solid-js";import{css as a,cx as c}from"@moneko/css";import{customElement as d}from"solid-element";import p from"../theme";let m=a`
2
- .box {
1
+ import{template as e}from"solid-js/web";import"solid-js/web";import{insert as t}from"solid-js/web";import{effect as i}from"solid-js/web";import{createComponent as o}from"solid-js/web";import{className as n}from"solid-js/web";let r=e("<style>"),s=e('<div><div class="content">');import{For as l}from"solid-js";import{css as a,cx as c}from"@moneko/css";import{customElement as d}from"solid-element";import p from"../theme";let m=a`
2
+ .spin {
3
+ inline-size: fit-content;
3
4
  position: relative;
4
5
  box-sizing: border-box;
5
6
  }
@@ -9,7 +10,7 @@ import{template as e}from"solid-js/web";import{insert as t}from"solid-js/web";im
9
10
  transition: opacity var(--transition-duration);
10
11
  }
11
12
 
12
- .spin {
13
+ .spining {
13
14
  cursor: not-allowed;
14
15
 
15
16
  .content {
@@ -48,5 +49,5 @@ import{template as e}from"solid-js/web";import{insert as t}from"solid-js/web";im
48
49
  transform: rotate(360deg);
49
50
  }
50
51
  }
51
- `;function f(e){let{baseStyle:r}=p;return[(()=>{let o=n();return t(o,r,null),t(o,m,null),t(o,()=>a(e.css),null),o})(),(()=>{let n=s();return t(n.firstChild,()=>e.children),o(()=>i(n,c("box",e.spin&&"spin",e.class))),n})()]}d("n-spin",{class:void 0,css:void 0,spin:void 0},(e,t)=>r(f,l({children:[...t.element.childNodes.values()]},e)));export default f;
52
+ `;function f(e){let{baseStyle:d}=p;return[(()=>{let i=r();return t(i,d,null),t(i,m,null),t(i,()=>a(e.css),null),i})(),(()=>{let r=s();return t(r.firstChild,o(l,{get each(){return Array.isArray(e.children)?e.children:[e.children]},children:e=>e})),i(()=>n(r,c("spin",e.spin&&"spining",e.class))),r})()]}d("n-spin",{class:void 0,css:void 0,spin:void 0,children:void 0},f);export default f;
52
53
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/spin/index.tsx"],"sourcesContent":["import { createComponent, mergeProps } from 'solid-js';\nimport { css, cx } from '@moneko/css';\nimport { customElement } from 'solid-element';\nimport theme from '../theme';\nimport type { CustomElement } from '..';\n\nconst style = css`\n .box {\n position: relative;\n box-sizing: border-box;\n }\n\n .content {\n opacity: 1;\n transition: opacity var(--transition-duration);\n }\n\n .spin {\n cursor: not-allowed;\n\n .content {\n opacity: 0.3;\n pointer-events: none;\n user-select: none;\n }\n\n &::before {\n position: absolute;\n display: flex;\n justify-content: center;\n align-items: center;\n margin: auto;\n border: 1px solid;\n border-color: var(--text-secondary) transparent;\n border-radius: 16px;\n font-size: large;\n text-align: center;\n inline-size: 32px;\n block-size: 32px;\n inset-block: 0 0;\n inset-inline: 0 0;\n box-sizing: border-box;\n content: '✲';\n animation: spin-rotate-effect 1s infinite;\n }\n }\n\n @keyframes spin-rotate-effect {\n 0% {\n transform: rotate(0deg);\n }\n\n 100% {\n transform: rotate(360deg);\n }\n }\n`;\n\nexport interface SpinProps {\n /** 自定义样式表 */\n css?: string;\n /** 自定义类名 */\n class?: string;\n /** 加载状态 */\n spin?: boolean;\n /** 内容 */\n children?: JSX.Element | JSX.Element[];\n}\n\nfunction Spin(props: SpinProps) {\n const { baseStyle } = theme;\n\n return (\n <>\n <style>\n {baseStyle()}\n {style}\n {css(props.css)}\n </style>\n <div class={cx('box', props.spin && 'spin', props.class)}>\n <div class=\"content\">{props.children}</div>\n </div>\n </>\n );\n}\n\nexport type SpinElement = CustomElement<SpinProps>;\n\ncustomElement<SpinProps>('n-spin', { class: void 0, css: void 0, spin: void 0 }, (_, opt) => {\n const el = opt.element;\n const props = mergeProps(\n {\n children: [...el.childNodes.values()],\n },\n _,\n );\n\n return createComponent(Spin, props);\n});\nexport default Spin;\n"],"names":["createComponent","mergeProps","css","cx","customElement","theme","style","Spin","props","baseStyle","children","spin","class","_","opt","el","element","childNodes","values"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"iNAAA,QAASA,mBAAAA,CAAe,CAAEC,cAAAA,CAAU,KAAQ,UAAW,AACvD,QAASC,OAAAA,CAAG,CAAEC,MAAAA,CAAE,KAAQ,aAAc,AACtC,QAASC,iBAAAA,CAAa,KAAQ,eAAgB,AAC9C,QAAOC,MAAW,UAAW,CAG7B,IAAMC,EAAQJ,CAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkDlB,CAAC,CAaD,SAASK,EAAKC,CAAgB,EAC5B,GAAM,CAAEC,UAAAA,CAAS,CAAE,CAAGJ,EAEtB,kCAGOI,YACAH,gBACAJ,EAAIM,EAAMN,GAAG,wDAGQM,EAAME,QAAQ,YAD1BP,EAAG,MAAOK,EAAMG,IAAI,EAAI,OAAQH,EAAMI,KAAK,UAK7D,CAIAR,EAAyB,SAAU,CAAEQ,MAAO,KAAK,EAAGV,IAAK,KAAK,EAAGS,KAAM,KAAK,CAAE,EAAG,CAACE,EAAGC,IAS5Ed,EAAgBO,EAPTN,EACZ,CACES,SAAU,IAAIK,AAHPD,EAAIE,OAAO,CAGDC,UAAU,CAACC,MAAM,GAAG,AACvC,EACAL,IAKJ,gBAAeN,CAAK"}
1
+ {"version":3,"sources":["../../components/spin/index.tsx"],"sourcesContent":["import { For } from 'solid-js';\nimport { css, cx } from '@moneko/css';\nimport { customElement } from 'solid-element';\nimport theme from '../theme';\nimport type { CustomElement } from '..';\n\nconst style = css`\n .spin {\n inline-size: fit-content;\n position: relative;\n box-sizing: border-box;\n }\n\n .content {\n opacity: 1;\n transition: opacity var(--transition-duration);\n }\n\n .spining {\n cursor: not-allowed;\n\n .content {\n opacity: 0.3;\n pointer-events: none;\n user-select: none;\n }\n\n &::before {\n position: absolute;\n display: flex;\n justify-content: center;\n align-items: center;\n margin: auto;\n border: 1px solid;\n border-color: var(--text-secondary) transparent;\n border-radius: 16px;\n font-size: large;\n text-align: center;\n inline-size: 32px;\n block-size: 32px;\n inset-block: 0 0;\n inset-inline: 0 0;\n box-sizing: border-box;\n content: '✲';\n animation: spin-rotate-effect 1s infinite;\n }\n }\n\n @keyframes spin-rotate-effect {\n 0% {\n transform: rotate(0deg);\n }\n\n 100% {\n transform: rotate(360deg);\n }\n }\n`;\n\nexport interface SpinProps {\n /** 自定义样式表 */\n css?: string;\n /** 自定义类名 */\n class?: string;\n /** 加载状态 */\n spin?: boolean;\n /** 内容 */\n children?: JSX.Element | JSX.Element[];\n}\n\nfunction Spin(props: SpinProps) {\n const { baseStyle } = theme;\n\n return (\n <>\n <style>\n {baseStyle()}\n {style}\n {css(props.css)}\n </style>\n <div class={cx('spin', props.spin && 'spining', props.class)}>\n <div class=\"content\">\n <For each={Array.isArray(props.children) ? props.children : [props.children]}>\n {(child) => child}\n </For>\n </div>\n </div>\n </>\n );\n}\n\nexport type SpinElement = CustomElement<SpinProps>;\n\ncustomElement<SpinProps>(\n 'n-spin',\n { class: void 0, css: void 0, spin: void 0, children: void 0 },\n Spin,\n);\nexport default Spin;\n"],"names":["For","css","cx","customElement","theme","style","Spin","props","baseStyle","Array","isArray","children","child","spin","class"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"qRAAA,QAASA,OAAAA,CAAG,KAAQ,UAAW,AAC/B,QAASC,OAAAA,CAAG,CAAEC,MAAAA,CAAE,KAAQ,aAAc,AACtC,QAASC,iBAAAA,CAAa,KAAQ,eAAgB,AAC9C,QAAOC,MAAW,UAAW,CAG7B,IAAMC,EAAQJ,CAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmDlB,CAAC,CAaD,SAASK,EAAKC,CAAgB,EAC5B,GAAM,CAAEC,UAAAA,CAAS,CAAE,CAAGJ,EAEtB,kCAGOI,YACAH,gBACAJ,EAAIM,EAAMN,GAAG,sDAIXD,qBAAUS,MAAMC,OAAO,CAACH,EAAMI,QAAQ,EAAIJ,EAAMI,QAAQ,CAAG,CAACJ,EAAMI,QAAQ,CAAC,WACzE,AAACC,GAAUA,eAHNV,EAAG,OAAQK,EAAMM,IAAI,EAAI,UAAWN,EAAMO,KAAK,UASjE,CAIAX,EACE,SACA,CAAEW,MAAO,KAAK,EAAGb,IAAK,KAAK,EAAGY,KAAM,KAAK,EAAGF,SAAU,KAAK,CAAE,EAC7DL,EAEF,gBAAeA,CAAK"}
package/es/tag/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import{template as e}from"solid-js/web";import{spread as o}from"solid-js/web";import{mergeProps as s}from"solid-js/web";import"solid-js/web";import{insert as r}from"solid-js/web";import{delegateEvents as l}from"solid-js/web";import{createComponent as t}from"solid-js/web";import{addEventListener as n}from"solid-js/web";let i=e("<style>"),c=e('<span class="icon">'),d=e('<span class="close">'),m=e("<span>");import{Show as a,createComponent as p,createEffect as u,createMemo as b,createSignal as f,mergeProps as v,splitProps as g}from"solid-js";import h from"@moneko/common/lib/isFunction";import{css as w,cx as j}from"@moneko/css";import{customElement as C}from"solid-element";import{style as k}from"./style";import y,{generateTheme as I}from"../theme";function E(e){let{baseStyle:l,isDark:p}=y,[u,v]=g(e,["class","css","onClose","color","icon","closeIcon","bordered","type","disabled"]),[C,E]=f(!0),x=b(()=>u.color?w`
1
+ import{template as e}from"solid-js/web";import{spread as o}from"solid-js/web";import{mergeProps as s}from"solid-js/web";import"solid-js/web";import{insert as r}from"solid-js/web";import{delegateEvents as l}from"solid-js/web";import{createComponent as t}from"solid-js/web";import{addEventListener as n}from"solid-js/web";let i=e("<style>"),c=e('<span class="icon">'),d=e('<span class="close">'),m=e("<span>");import{Show as a,createComponent as p,createEffect as u,createMemo as b,createSignal as f,mergeProps as v,splitProps as g}from"solid-js";import h from"@moneko/common/lib/isFunction";import{css as w,cx as j}from"@moneko/css";import{customElement as C}from"solid-element";import{style as k}from"./style";import y,{generateColor as I}from"../theme";function E(e){let{baseStyle:l,isDark:p}=y,[u,v]=g(e,["class","css","onClose","color","icon","closeIcon","bordered","type","disabled"]),[C,E]=f(!0),x=b(()=>u.color?w`
2
2
  :host {
3
3
  ${I(u.color,{dark:p(),name:"tag-custom"})}
4
4
  }