neko-ui 2.8.2 → 2.8.4

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 (48) hide show
  1. package/es/code/index.d.ts +0 -1
  2. package/es/code/index.js +1 -1
  3. package/es/code/index.js.map +1 -1
  4. package/es/code/worker.js +1 -1
  5. package/es/code/worker.js.map +1 -1
  6. package/es/img/index.d.ts +5 -0
  7. package/es/img/index.js +1 -1
  8. package/es/img/index.js.map +1 -1
  9. package/es/index.d.ts +1 -0
  10. package/es/index.js +1 -1
  11. package/es/index.js.map +1 -1
  12. package/es/md/index.d.ts +5 -0
  13. package/es/md/index.js +1 -1
  14. package/es/md/index.js.map +1 -1
  15. package/es/md-style/index.js +4 -1
  16. package/es/md-style/index.js.map +1 -1
  17. package/es/prism/index.d.ts +27 -0
  18. package/es/prism/index.js +2 -0
  19. package/es/prism/index.js.map +1 -0
  20. package/es/theme/index.js +1 -1
  21. package/es/theme/index.js.map +1 -1
  22. package/lib/code/index.d.ts +0 -1
  23. package/lib/code/index.js +1 -1
  24. package/lib/code/index.js.map +1 -1
  25. package/lib/code/worker.js +1 -1
  26. package/lib/code/worker.js.map +1 -1
  27. package/lib/img/index.d.ts +5 -0
  28. package/lib/img/index.js +1 -1
  29. package/lib/img/index.js.map +1 -1
  30. package/lib/index.d.ts +1 -0
  31. package/lib/index.js +1 -1
  32. package/lib/index.js.map +1 -1
  33. package/lib/md/index.d.ts +5 -0
  34. package/lib/md/index.js +1 -1
  35. package/lib/md/index.js.map +1 -1
  36. package/lib/md-style/index.js +4 -1
  37. package/lib/md-style/index.js.map +1 -1
  38. package/lib/prism/index.d.ts +27 -0
  39. package/lib/prism/index.js +2 -0
  40. package/lib/prism/index.js.map +1 -0
  41. package/lib/theme/index.js +1 -1
  42. package/lib/theme/index.js.map +1 -1
  43. package/package.json +7 -4
  44. package/umd/index.js +8 -1
  45. package/es/prism/prism.js +0 -2
  46. package/es/prism/prism.js.map +0 -1
  47. package/lib/prism/prism.js +0 -2
  48. package/lib/prism/prism.js.map +0 -1
@@ -0,0 +1,27 @@
1
+ import Prism from 'prismjs';
2
+ import 'prismjs/components/prism-bash.js';
3
+ import 'prismjs/components/prism-clike.js';
4
+ import 'prismjs/components/prism-css.js';
5
+ import 'prismjs/components/prism-diff.js';
6
+ import 'prismjs/components/prism-docker.js';
7
+ import 'prismjs/components/prism-git.js';
8
+ import 'prismjs/components/prism-javascript.js';
9
+ import 'prismjs/components/prism-jsx.js';
10
+ import 'prismjs/components/prism-latex.js';
11
+ import 'prismjs/components/prism-less.js';
12
+ import 'prismjs/components/prism-markdown.js';
13
+ import 'prismjs/components/prism-markup-templating.js';
14
+ import 'prismjs/components/prism-markup.js';
15
+ import 'prismjs/components/prism-regex.js';
16
+ import 'prismjs/components/prism-rust.js';
17
+ import 'prismjs/components/prism-sql.js';
18
+ import 'prismjs/components/prism-swift.js';
19
+ import 'prismjs/components/prism-toml.js';
20
+ import 'prismjs/components/prism-tsx.js';
21
+ import 'prismjs/components/prism-typescript.js';
22
+ import 'prismjs/components/prism-wasm.js';
23
+ import 'prismjs/components/prism-yaml.js';
24
+ import 'prismjs/plugins/diff-highlight/prism-diff-highlight.js';
25
+ import 'prismjs/plugins/highlight-keywords/prism-highlight-keywords.js';
26
+ import 'prismjs/plugins/line-numbers/prism-line-numbers.js';
27
+ export default Prism;
@@ -0,0 +1,2 @@
1
+ "use strict";var s;Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return e}});const r=(s=require("prismjs"))&&s.__esModule?s:{default:s};require("prismjs/components/prism-bash.js"),require("prismjs/components/prism-clike.js"),require("prismjs/components/prism-css.js"),require("prismjs/components/prism-diff.js"),require("prismjs/components/prism-docker.js"),require("prismjs/components/prism-git.js"),require("prismjs/components/prism-javascript.js"),require("prismjs/components/prism-jsx.js"),require("prismjs/components/prism-latex.js"),require("prismjs/components/prism-less.js"),require("prismjs/components/prism-markdown.js"),require("prismjs/components/prism-markup-templating.js"),require("prismjs/components/prism-markup.js"),require("prismjs/components/prism-regex.js"),require("prismjs/components/prism-rust.js"),require("prismjs/components/prism-sql.js"),require("prismjs/components/prism-swift.js"),require("prismjs/components/prism-toml.js"),require("prismjs/components/prism-tsx.js"),require("prismjs/components/prism-typescript.js"),require("prismjs/components/prism-wasm.js"),require("prismjs/components/prism-yaml.js"),require("prismjs/plugins/diff-highlight/prism-diff-highlight.js"),require("prismjs/plugins/highlight-keywords/prism-highlight-keywords.js"),require("prismjs/plugins/line-numbers/prism-line-numbers.js");const e=r.default;
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../components/prism/index.ts"],"sourcesContent":["import Prism from 'prismjs';\n// language\nimport 'prismjs/components/prism-bash.js';\nimport 'prismjs/components/prism-clike.js';\nimport 'prismjs/components/prism-css.js';\nimport 'prismjs/components/prism-diff.js';\nimport 'prismjs/components/prism-docker.js';\nimport 'prismjs/components/prism-git.js';\nimport 'prismjs/components/prism-javascript.js';\nimport 'prismjs/components/prism-jsx.js';\nimport 'prismjs/components/prism-latex.js';\nimport 'prismjs/components/prism-less.js';\nimport 'prismjs/components/prism-markdown.js';\nimport 'prismjs/components/prism-markup-templating.js';\nimport 'prismjs/components/prism-markup.js';\nimport 'prismjs/components/prism-regex.js';\nimport 'prismjs/components/prism-rust.js';\nimport 'prismjs/components/prism-sql.js';\nimport 'prismjs/components/prism-swift.js';\nimport 'prismjs/components/prism-toml.js';\nimport 'prismjs/components/prism-tsx.js';\nimport 'prismjs/components/prism-typescript.js';\nimport 'prismjs/components/prism-wasm.js';\nimport 'prismjs/components/prism-yaml.js';\n// plugins\nimport 'prismjs/plugins/diff-highlight/prism-diff-highlight.js';\nimport 'prismjs/plugins/highlight-keywords/prism-highlight-keywords.js';\nimport 'prismjs/plugins/line-numbers/prism-line-numbers.js';\n\nexport default Prism;\n"],"names":["Prism"],"rangeMappings":"","mappings":"wGA6BA,+CAAA,wBA7BkB,gDAEX,4CACA,6CACA,2CACA,4CACA,8CACA,2CACA,kDACA,2CACA,6CACA,4CACA,gDACA,yDACA,8CACA,6CACA,4CACA,2CACA,6CACA,4CACA,2CACA,kDACA,4CACA,4CAEA,kEACA,0EACA,4DAEP,EAAeA,SAAK"}
@@ -1,2 +1,2 @@
1
- "use strict";var e,r;Object.defineProperty(exports,"__esModule",{value:!0}),function(e,r){for(var o in r)Object.defineProperty(e,o,{enumerable:!0,get:r[o]})}(exports,{ColorScheme:function(){return e},default:function(){return m},generateColor:function(){return l},toneColor:function(){return c.toneColor}});const o=require("solid-js"),a=s(require("@moneko/common/lib/colorParse")),t=s(require("@moneko/common/lib/mixColor")),n=s(require("@moneko/common/lib/toneColor")),i=require("@moneko/css"),c=require("@moneko/common");function s(e){return e&&e.__esModule?e:{default:e}}function l(e,r){let o=(0,n.default)(e,r?.dark),i=(0,a.default)(o[5]),c=(0,a.default)(e);return{[`--${r.name}-text`]:i.setAlpha(.65).toRgbaString(),[`--${r.name}-secondary`]:i.setAlpha(.45).toRgbaString(),[`--${r.name}-heading`]:o[5],[`--${r.name}-active`]:o[30],[`--${r.name}-color`]:o[40],[`--${r.name}-hover`]:(0,t.default)(o[40],o[30],15),[`--${r.name}-secondary-bg`]:o[70],[`--${r.name}-border`]:o[80],[`--${r.name}-outline`]:(0,t.default)(o[90],o[40],5),[`--${r.name}-selection`]:o[90],[`--${r.name}-notify-bg`]:(0,a.default)(o[90]).setAlpha(.8).toRgbaString(),[`--on-${r.name}-selection`]:o[10],[`--${r.name}-shadow`]:c.setAlpha(.12).toRgbaString(),[`--${r.name}-shadow-1`]:c.setAlpha(.08).toRgbaString(),[`--${r.name}-shadow-2`]:c.setAlpha(.05).toRgbaString(),[`--${r.name}-details-bg`]:o[95],[`--${r.name}-component-bg`]:o[98],[`--${r.name}-bg`]:o[99],[`--on-${r.name}-bg`]:o[5]}}(r=e||(e={})).light="light",r.dark="dark",r.auto="auto";const m=(0,o.createRoot)(function(){let r=(0,i.css)({":root,:host":{"--scrollbar-size":"4px","--font-size":"14px","--font-size-sm":"12px","--font-size-xs":"10px","--font-size-lg":"16px","--border-base":"1px solid var(--border-color)","--border-radius":"8px","--text-color":"var(--primary-text)","--text-secondary":"var(--primary-secondary)","--text-heading":"var(--primary-heading)","--text-selection":"var(--primary-selection)","--transition-duration":"0.3s","--mask-bg":"rgb(0 0 0 / 5%)","--modal-component-bg":"rgb(255 255 255 / 80%)","--modal-box-shadow":"0 5px 35px rgb(0 0 0 / 10%)","--notification-box-shadow":"0 4px 16px rgb(0 0 0 / 5%)","--transition-timing-function":"cubic-bezier(0.645, 0.045, 0.355, 1)",fontSize:"var(--font-size)",fontFamily:"-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji', Helvetica, Oxygen, Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans'",color:"var(--text-color, rgb(0 0 0 / 65%))",lineHeight:1.8},'[disabled]:not([disabled="false"])':{cursor:"not-allowed",color:"var(--disable-color)"},"::selection":{backgroundColor:"var(--text-selection)"},"::-webkit-scrollbar":{inlineSize:"var(--scrollbar-size)",blockSize:"var(--scrollbar-size)"}}),a=e[localStorage.getItem("color-scheme")]||"auto",t=window.matchMedia("(prefers-color-scheme: dark)"),[n,c]=(0,o.createSignal)(a),[s,m]=(0,o.createSignal)(t.matches),[b,d]=(0,o.createSignal)({primary:"#5794ff",warning:"#faad14",error:"#ff4d4f",success:"#52c41a"}),[g,u]=(0,o.createSignal)({primary:"#4d81dc",warning:"#bb8314",error:"#901c22",success:"#419418"}),p=(0,o.createMemo)(()=>l(b().primary,{name:"primary"})),f=(0,o.createMemo)(()=>l(g().primary,{name:"primary",dark:!0})),h=(0,o.createMemo)(()=>l(b().warning,{name:"warning"})),y=(0,o.createMemo)(()=>l(g().warning,{name:"warning",dark:!0})),x=(0,o.createMemo)(()=>l(b().success,{name:"success"})),S=(0,o.createMemo)(()=>l(g().success,{name:"success",dark:!0})),v=(0,o.createMemo)(()=>l(b().error,{name:"error"})),$=(0,o.createMemo)(()=>l(g().error,{name:"error",dark:!0}));function k(e){let o="";for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&(o+=`${r}:${e[r]};`);return`${r}:root,:host{${o}}`}let w=(0,o.createMemo)(()=>k(Object.assign({},p(),h(),x(),v(),{"--bg":"transparent","--disable-color":"rgb(0 0 0 / 25%)","--disable-bg":"rgb(0 0 0 / 4%)","--disable-border":"#d9d9d9","--border-color":"var(--primary-border)","--component-bg":"var(--primary-bg)"}))),M=(0,o.createMemo)(()=>k(Object.assign({},f(),y(),S(),$(),{"--bg":"#1c1c1c","--disable-color":"rgb(255 255 255 / 25%)","--disable-bg":"rgb(255 255 255 / 8%)","--disable-border":"#424242","--border-color":"#303030","--component-bg":"#141414","--primary-shadow":"rgb(0 0 0 / 12%)","--primary-selection":"rgb(255 255 255 / 5%)","--primary-details-bg":"rgb(255 255 255 / 3%)","--primary-component-bg":"#000","--modal-component-bg":"rgb(30 30 30 / 80%)"})));function z(e){m(e.matches)}(0,o.createEffect)(()=>{let e=n();m("dark"===e||"auto"===e&&t.matches)});let C=(0,o.createMemo)(()=>s()?M():w());return(0,o.createEffect)(()=>{"auto"===n()?t.addEventListener("change",z):t.removeEventListener("change",z),localStorage.setItem("color-scheme",n())}),{baseStyle:C,dark:g,setDark:u,light:b,setLight:d,scheme:n,setScheme:c,isDark:s}},(0,o.getOwner)());
1
+ "use strict";var e,r;Object.defineProperty(exports,"__esModule",{value:!0}),function(e,r){for(var o in r)Object.defineProperty(e,o,{enumerable:!0,get:r[o]})}(exports,{ColorScheme:function(){return e},default:function(){return m},generateColor:function(){return l},toneColor:function(){return c.toneColor}});const o=require("solid-js"),a=s(require("@moneko/common/lib/colorParse")),t=s(require("@moneko/common/lib/mixColor")),n=s(require("@moneko/common/lib/toneColor")),i=require("@moneko/css"),c=require("@moneko/common");function s(e){return e&&e.__esModule?e:{default:e}}function l(e,r){let o=(0,n.default)(e,r?.dark),i=(0,a.default)(o[5]),c=(0,a.default)(e);return{[`--${r.name}-text`]:i.setAlpha(.65).toRgbaString(),[`--${r.name}-secondary`]:i.setAlpha(.45).toRgbaString(),[`--${r.name}-heading`]:o[5],[`--${r.name}-active`]:o[30],[`--${r.name}-color`]:o[40],[`--${r.name}-hover`]:(0,t.default)(o[40],o[30],15),[`--${r.name}-secondary-bg`]:o[70],[`--${r.name}-border`]:o[80],[`--${r.name}-outline`]:(0,t.default)(o[90],o[40],5),[`--${r.name}-selection`]:o[90],[`--${r.name}-notify-bg`]:(0,a.default)(o[90]).setAlpha(.8).toRgbaString(),[`--on-${r.name}-selection`]:o[10],[`--${r.name}-shadow`]:c.setAlpha(.12).toRgbaString(),[`--${r.name}-shadow-1`]:c.setAlpha(.08).toRgbaString(),[`--${r.name}-shadow-2`]:c.setAlpha(.05).toRgbaString(),[`--${r.name}-details-bg`]:o[95],[`--${r.name}-component-bg`]:o[98],[`--${r.name}-bg`]:o[99],[`--on-${r.name}-bg`]:o[5]}}(r=e||(e={})).light="light",r.dark="dark",r.auto="auto";const m=(0,o.createRoot)(function(){let r=(0,i.css)({":root,:host":{"--scrollbar-size":"4px","--font-size":"14px","--font-size-sm":"12px","--font-size-xs":"10px","--font-size-lg":"16px","--border-base":"1px solid var(--border-color)","--border-radius":"8px","--text-color":"var(--primary-text)","--text-secondary":"var(--primary-secondary)","--text-heading":"var(--primary-heading)","--text-selection":"var(--primary-selection)","--transition-duration":"0.3s","--mask-bg":"rgb(0 0 0 / 5%)","--modal-component-bg":"rgb(255 255 255 / 80%)","--modal-box-shadow":"0 5px 35px rgb(0 0 0 / 10%)","--notification-box-shadow":"0 4px 16px rgb(0 0 0 / 5%)","--transition-timing-function":"cubic-bezier(0.645, 0.045, 0.355, 1)",fontSize:"var(--font-size)",fontFamily:"-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji', Helvetica, Oxygen, Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans'",color:"var(--text-color, rgb(0 0 0 / 65%))",lineHeight:1.8},'[disabled]:not([disabled="false"]):not(n-img)':{cursor:"not-allowed",color:"var(--disable-color)"},"::selection":{backgroundColor:"var(--text-selection)"},"::-webkit-scrollbar":{inlineSize:"var(--scrollbar-size)",blockSize:"var(--scrollbar-size)"}}),a=e[localStorage.getItem("color-scheme")]||"auto",t=window.matchMedia("(prefers-color-scheme: dark)"),[n,c]=(0,o.createSignal)(a),[s,m]=(0,o.createSignal)(t.matches),[b,d]=(0,o.createSignal)({primary:"#5794ff",warning:"#faad14",error:"#ff4d4f",success:"#52c41a"}),[g,u]=(0,o.createSignal)({primary:"#4d81dc",warning:"#bb8314",error:"#901c22",success:"#419418"}),p=(0,o.createMemo)(()=>l(b().primary,{name:"primary"})),f=(0,o.createMemo)(()=>l(g().primary,{name:"primary",dark:!0})),h=(0,o.createMemo)(()=>l(b().warning,{name:"warning"})),y=(0,o.createMemo)(()=>l(g().warning,{name:"warning",dark:!0})),x=(0,o.createMemo)(()=>l(b().success,{name:"success"})),S=(0,o.createMemo)(()=>l(g().success,{name:"success",dark:!0})),v=(0,o.createMemo)(()=>l(b().error,{name:"error"})),$=(0,o.createMemo)(()=>l(g().error,{name:"error",dark:!0}));function k(e){let o="";for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&(o+=`${r}:${e[r]};`);return`${r}:root,:host{${o}}`}let w=(0,o.createMemo)(()=>k(Object.assign({},p(),h(),x(),v(),{"--bg":"transparent","--disable-color":"rgb(0 0 0 / 25%)","--disable-bg":"rgb(0 0 0 / 4%)","--disable-border":"#d9d9d9","--border-color":"var(--primary-border)","--component-bg":"var(--primary-bg)"}))),M=(0,o.createMemo)(()=>k(Object.assign({},f(),y(),S(),$(),{"--bg":"#1c1c1c","--disable-color":"rgb(255 255 255 / 25%)","--disable-bg":"rgb(255 255 255 / 8%)","--disable-border":"#424242","--border-color":"#303030","--component-bg":"#141414","--primary-shadow":"rgb(0 0 0 / 12%)","--primary-selection":"rgb(255 255 255 / 5%)","--primary-details-bg":"rgb(255 255 255 / 3%)","--primary-component-bg":"#000","--modal-component-bg":"rgb(30 30 30 / 80%)"})));function z(e){m(e.matches)}(0,o.createEffect)(()=>{let e=n();m("dark"===e||"auto"===e&&t.matches)});let C=(0,o.createMemo)(()=>s()?M():w());return(0,o.createEffect)(()=>{"auto"===n()?t.addEventListener("change",z):t.removeEventListener("change",z),localStorage.setItem("color-scheme",n())}),{baseStyle:C,dark:g,setDark:u,light:b,setLight:d,scheme:n,setScheme:c,isDark:s}},(0,o.getOwner)());
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/theme/index.ts"],"sourcesContent":["import {\n type Accessor,\n type Setter,\n createEffect,\n createMemo,\n createRoot,\n createSignal,\n getOwner,\n} from 'solid-js';\nimport { colorParse, mixColor, toneColor } from '@moneko/common';\nimport { CSSObject, css } from '@moneko/css';\nexport { toneColor } from '@moneko/common';\n\n/** 生成主题色调\n * @param {string} base 基础颜色\n * @param {ThemeOption} option 配置项\n * @returns {Record<string, string>} 主题色调\n */\nexport function generateColor(base: string, option: ThemeOption): Record<string, string> {\n const obj = toneColor(base, option?.dark);\n const textColor = colorParse(obj[5]);\n const baseColor = colorParse(base);\n\n return {\n [`--${option.name}-text`]: textColor.setAlpha(0.65).toRgbaString(),\n [`--${option.name}-secondary`]: textColor.setAlpha(0.45).toRgbaString(),\n [`--${option.name}-heading`]: obj[5],\n [`--${option.name}-active`]: obj[30],\n [`--${option.name}-color`]: obj[40],\n [`--${option.name}-hover`]: mixColor(obj[40], obj[30], 15),\n [`--${option.name}-secondary-bg`]: obj[70],\n [`--${option.name}-border`]: obj[80],\n [`--${option.name}-outline`]: mixColor(obj[90], obj[40], 5),\n [`--${option.name}-selection`]: obj[90],\n [`--${option.name}-notify-bg`]: colorParse(obj[90]).setAlpha(0.8).toRgbaString(),\n [`--on-${option.name}-selection`]: obj[10],\n [`--${option.name}-shadow`]: baseColor.setAlpha(0.12).toRgbaString(),\n [`--${option.name}-shadow-1`]: baseColor.setAlpha(0.08).toRgbaString(),\n [`--${option.name}-shadow-2`]: baseColor.setAlpha(0.05).toRgbaString(),\n [`--${option.name}-details-bg`]: obj[95],\n [`--${option.name}-component-bg`]: obj[98],\n [`--${option.name}-bg`]: obj[99],\n [`--on-${option.name}-bg`]: obj[5],\n };\n}\n\n/** 颜色模式 */\nexport enum ColorScheme {\n /** 明亮 */\n light = 'light',\n /** 暗黑 */\n dark = 'dark',\n /** 跟随系统 */\n auto = 'auto',\n}\n\nfunction createTheme() {\n const baseTokens = css({\n ':root,:host': {\n '--scrollbar-size': '4px',\n '--font-size': '14px',\n '--font-size-sm': '12px',\n '--font-size-xs': '10px',\n '--font-size-lg': '16px',\n '--border-base': '1px solid var(--border-color)',\n '--border-radius': '8px',\n '--text-color': 'var(--primary-text)',\n '--text-secondary': 'var(--primary-secondary)',\n '--text-heading': 'var(--primary-heading)',\n '--text-selection': 'var(--primary-selection)',\n '--transition-duration': '0.3s',\n '--mask-bg': 'rgb(0 0 0 / 5%)',\n '--modal-component-bg': 'rgb(255 255 255 / 80%)',\n '--modal-box-shadow': '0 5px 35px rgb(0 0 0 / 10%)',\n '--notification-box-shadow': '0 4px 16px rgb(0 0 0 / 5%)',\n '--transition-timing-function': 'cubic-bezier(0.645, 0.045, 0.355, 1)',\n fontSize: 'var(--font-size)',\n fontFamily:\n \"-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji', Helvetica, Oxygen, Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans'\",\n color: 'var(--text-color, rgb(0 0 0 / 65%))',\n lineHeight: 1.8,\n },\n '[disabled]:not([disabled=\"false\"])': {\n cursor: 'not-allowed',\n color: 'var(--disable-color)',\n },\n '::selection': {\n backgroundColor: 'var(--text-selection)',\n },\n '::-webkit-scrollbar': {\n inlineSize: 'var(--scrollbar-size)',\n blockSize: 'var(--scrollbar-size)',\n },\n });\n const preset =\n ColorScheme[localStorage.getItem('color-scheme') as keyof typeof ColorScheme] || 'auto';\n /** 检测 prefers-color-scheme 媒体查询是否为 light 模式 */\n const media = window.matchMedia('(prefers-color-scheme: dark)');\n const [scheme, setScheme] = createSignal<keyof typeof ColorScheme>(preset);\n const [isDark, setIsDark] = createSignal(media.matches);\n const [light, setLight] = createSignal({\n primary: '#5794ff',\n warning: '#faad14',\n error: '#ff4d4f',\n success: '#52c41a',\n });\n const [dark, setDark] = createSignal({\n primary: '#4d81dc',\n warning: '#bb8314',\n error: '#901c22',\n success: '#419418',\n });\n const primary = createMemo(() => generateColor(light().primary, { name: 'primary' }));\n const darkPrimary = createMemo(() =>\n generateColor(dark().primary, { name: 'primary', dark: true }),\n );\n const warning = createMemo(() => generateColor(light().warning, { name: 'warning' }));\n const darkWarning = createMemo(() =>\n generateColor(dark().warning, { name: 'warning', dark: true }),\n );\n const success = createMemo(() => generateColor(light().success, { name: 'success' }));\n const darkSuccess = createMemo(() =>\n generateColor(dark().success, { name: 'success', dark: true }),\n );\n const error = createMemo(() => generateColor(light().error, { name: 'error' }));\n const darkError = createMemo(() => generateColor(dark().error, { name: 'error', dark: true }));\n\n function getHostCss(tokens: CSSObject) {\n let str = '';\n\n for (const key in tokens) {\n if (Object.prototype.hasOwnProperty.call(tokens, key)) {\n str += `${key}:${tokens[key]};`;\n }\n }\n return `${baseTokens}:root,:host{${str}}`;\n }\n const lightCss = createMemo(() => {\n const tokens = Object.assign({}, primary(), warning(), success(), error(), {\n '--bg': 'transparent',\n '--disable-color': 'rgb(0 0 0 / 25%)',\n '--disable-bg': 'rgb(0 0 0 / 4%)',\n '--disable-border': '#d9d9d9',\n '--border-color': 'var(--primary-border)',\n '--component-bg': 'var(--primary-bg)',\n });\n\n return getHostCss(tokens);\n });\n const darkCss = createMemo(() => {\n const tokens = Object.assign({}, darkPrimary(), darkWarning(), darkSuccess(), darkError(), {\n '--bg': '#1c1c1c',\n '--disable-color': 'rgb(255 255 255 / 25%)',\n '--disable-bg': 'rgb(255 255 255 / 8%)',\n '--disable-border': '#424242',\n '--border-color': '#303030',\n '--component-bg': '#141414',\n '--primary-shadow': 'rgb(0 0 0 / 12%)',\n '--primary-selection': 'rgb(255 255 255 / 5%)',\n '--primary-details-bg': 'rgb(255 255 255 / 3%)',\n '--primary-component-bg': '#000',\n '--modal-component-bg': 'rgb(30 30 30 / 80%)',\n });\n\n return getHostCss(tokens);\n });\n\n function update(e: MediaQueryListEvent) {\n setIsDark(e.matches);\n }\n createEffect(() => {\n const _ = scheme();\n\n setIsDark(_ === 'dark' || (_ === 'auto' && media.matches));\n });\n const baseStyle = createMemo(() => (isDark() ? darkCss() : lightCss()));\n\n createEffect(() => {\n if (scheme() === 'auto') {\n // 监听 prefers-color-scheme 媒体查询变化,自动更新颜色方案\n media.addEventListener('change', update);\n } else {\n media.removeEventListener('change', update);\n }\n localStorage.setItem('color-scheme', scheme());\n });\n\n return {\n baseStyle,\n dark,\n setDark,\n light,\n setLight,\n scheme,\n setScheme,\n isDark,\n };\n}\n\n/** API */\nexport interface Theme {\n /** 亮色样式的主要色 */\n light: Accessor<Color>;\n /** 设置亮色样式的主要色 */\n setLight: Setter<Color>;\n /** 黑色样式的主要色 */\n dark: Accessor<Color>;\n /** 设置黑色样式的主要色 */\n setDark: Setter<Color>;\n /** 颜色模式\n * @default 'auto'\n */\n scheme: Accessor<keyof typeof ColorScheme>;\n /** 设置颜色模式 */\n setScheme: Setter<keyof typeof ColorScheme>;\n /** 是否为色模式 */\n isDark: Accessor<boolean>;\n /** 基本都样式表, 响应 scheme 变化 */\n baseStyle: Accessor<string>;\n}\n\n/** 主要色 */\ninterface Color {\n /** 主要\n * @default '#5794ff'\n */\n primary: string;\n /** 警告\n * @default '#faad14'\n */\n warning: string;\n /** 错误\n * @default '#ff4d4f'\n */\n error: string;\n /** 成功\n * @default '#52c41a'\n */\n success: string;\n}\n\nexport interface ThemeOption {\n /** 是否采用暗色算法\n * @default false\n */\n dark?: boolean;\n /** 颜色名称 */\n name: string;\n}\n\nexport default createRoot<Theme>(createTheme, getOwner());\n"],"names":["ColorScheme","generateColor","toneColor","base","option","obj","dark","textColor","colorParse","baseColor","name","setAlpha","toRgbaString","mixColor","createRoot","baseTokens","css","fontSize","fontFamily","color","lineHeight","cursor","backgroundColor","inlineSize","blockSize","preset","localStorage","getItem","media","window","matchMedia","scheme","setScheme","createSignal","isDark","setIsDark","matches","light","setLight","primary","warning","error","success","setDark","createMemo","darkPrimary","darkWarning","darkSuccess","darkError","getHostCss","tokens","str","key","Object","prototype","hasOwnProperty","call","lightCss","assign","darkCss","update","e","createEffect","_","baseStyle","addEventListener","removeEventListener","setItem","getOwner"],"rangeMappings":"","mappings":"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"}
1
+ {"version":3,"sources":["../../components/theme/index.ts"],"sourcesContent":["import {\n type Accessor,\n type Setter,\n createEffect,\n createMemo,\n createRoot,\n createSignal,\n getOwner,\n} from 'solid-js';\nimport { colorParse, mixColor, toneColor } from '@moneko/common';\nimport { CSSObject, css } from '@moneko/css';\nexport { toneColor } from '@moneko/common';\n\n/** 生成主题色调\n * @param {string} base 基础颜色\n * @param {ThemeOption} option 配置项\n * @returns {Record<string, string>} 主题色调\n */\nexport function generateColor(base: string, option: ThemeOption): Record<string, string> {\n const obj = toneColor(base, option?.dark);\n const textColor = colorParse(obj[5]);\n const baseColor = colorParse(base);\n\n return {\n [`--${option.name}-text`]: textColor.setAlpha(0.65).toRgbaString(),\n [`--${option.name}-secondary`]: textColor.setAlpha(0.45).toRgbaString(),\n [`--${option.name}-heading`]: obj[5],\n [`--${option.name}-active`]: obj[30],\n [`--${option.name}-color`]: obj[40],\n [`--${option.name}-hover`]: mixColor(obj[40], obj[30], 15),\n [`--${option.name}-secondary-bg`]: obj[70],\n [`--${option.name}-border`]: obj[80],\n [`--${option.name}-outline`]: mixColor(obj[90], obj[40], 5),\n [`--${option.name}-selection`]: obj[90],\n [`--${option.name}-notify-bg`]: colorParse(obj[90]).setAlpha(0.8).toRgbaString(),\n [`--on-${option.name}-selection`]: obj[10],\n [`--${option.name}-shadow`]: baseColor.setAlpha(0.12).toRgbaString(),\n [`--${option.name}-shadow-1`]: baseColor.setAlpha(0.08).toRgbaString(),\n [`--${option.name}-shadow-2`]: baseColor.setAlpha(0.05).toRgbaString(),\n [`--${option.name}-details-bg`]: obj[95],\n [`--${option.name}-component-bg`]: obj[98],\n [`--${option.name}-bg`]: obj[99],\n [`--on-${option.name}-bg`]: obj[5],\n };\n}\n\n/** 颜色模式 */\nexport enum ColorScheme {\n /** 明亮 */\n light = 'light',\n /** 暗黑 */\n dark = 'dark',\n /** 跟随系统 */\n auto = 'auto',\n}\n\nfunction createTheme() {\n const baseTokens = css({\n ':root,:host': {\n '--scrollbar-size': '4px',\n '--font-size': '14px',\n '--font-size-sm': '12px',\n '--font-size-xs': '10px',\n '--font-size-lg': '16px',\n '--border-base': '1px solid var(--border-color)',\n '--border-radius': '8px',\n '--text-color': 'var(--primary-text)',\n '--text-secondary': 'var(--primary-secondary)',\n '--text-heading': 'var(--primary-heading)',\n '--text-selection': 'var(--primary-selection)',\n '--transition-duration': '0.3s',\n '--mask-bg': 'rgb(0 0 0 / 5%)',\n '--modal-component-bg': 'rgb(255 255 255 / 80%)',\n '--modal-box-shadow': '0 5px 35px rgb(0 0 0 / 10%)',\n '--notification-box-shadow': '0 4px 16px rgb(0 0 0 / 5%)',\n '--transition-timing-function': 'cubic-bezier(0.645, 0.045, 0.355, 1)',\n fontSize: 'var(--font-size)',\n fontFamily:\n \"-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji', Helvetica, Oxygen, Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans'\",\n color: 'var(--text-color, rgb(0 0 0 / 65%))',\n lineHeight: 1.8,\n },\n '[disabled]:not([disabled=\"false\"]):not(n-img)': {\n cursor: 'not-allowed',\n color: 'var(--disable-color)',\n },\n '::selection': {\n backgroundColor: 'var(--text-selection)',\n },\n '::-webkit-scrollbar': {\n inlineSize: 'var(--scrollbar-size)',\n blockSize: 'var(--scrollbar-size)',\n },\n });\n const preset =\n ColorScheme[localStorage.getItem('color-scheme') as keyof typeof ColorScheme] || 'auto';\n /** 检测 prefers-color-scheme 媒体查询是否为 light 模式 */\n const media = window.matchMedia('(prefers-color-scheme: dark)');\n const [scheme, setScheme] = createSignal<keyof typeof ColorScheme>(preset);\n const [isDark, setIsDark] = createSignal(media.matches);\n const [light, setLight] = createSignal({\n primary: '#5794ff',\n warning: '#faad14',\n error: '#ff4d4f',\n success: '#52c41a',\n });\n const [dark, setDark] = createSignal({\n primary: '#4d81dc',\n warning: '#bb8314',\n error: '#901c22',\n success: '#419418',\n });\n const primary = createMemo(() => generateColor(light().primary, { name: 'primary' }));\n const darkPrimary = createMemo(() =>\n generateColor(dark().primary, { name: 'primary', dark: true }),\n );\n const warning = createMemo(() => generateColor(light().warning, { name: 'warning' }));\n const darkWarning = createMemo(() =>\n generateColor(dark().warning, { name: 'warning', dark: true }),\n );\n const success = createMemo(() => generateColor(light().success, { name: 'success' }));\n const darkSuccess = createMemo(() =>\n generateColor(dark().success, { name: 'success', dark: true }),\n );\n const error = createMemo(() => generateColor(light().error, { name: 'error' }));\n const darkError = createMemo(() => generateColor(dark().error, { name: 'error', dark: true }));\n\n function getHostCss(tokens: CSSObject) {\n let str = '';\n\n for (const key in tokens) {\n if (Object.prototype.hasOwnProperty.call(tokens, key)) {\n str += `${key}:${tokens[key]};`;\n }\n }\n return `${baseTokens}:root,:host{${str}}`;\n }\n const lightCss = createMemo(() => {\n const tokens = Object.assign({}, primary(), warning(), success(), error(), {\n '--bg': 'transparent',\n '--disable-color': 'rgb(0 0 0 / 25%)',\n '--disable-bg': 'rgb(0 0 0 / 4%)',\n '--disable-border': '#d9d9d9',\n '--border-color': 'var(--primary-border)',\n '--component-bg': 'var(--primary-bg)',\n });\n\n return getHostCss(tokens);\n });\n const darkCss = createMemo(() => {\n const tokens = Object.assign({}, darkPrimary(), darkWarning(), darkSuccess(), darkError(), {\n '--bg': '#1c1c1c',\n '--disable-color': 'rgb(255 255 255 / 25%)',\n '--disable-bg': 'rgb(255 255 255 / 8%)',\n '--disable-border': '#424242',\n '--border-color': '#303030',\n '--component-bg': '#141414',\n '--primary-shadow': 'rgb(0 0 0 / 12%)',\n '--primary-selection': 'rgb(255 255 255 / 5%)',\n '--primary-details-bg': 'rgb(255 255 255 / 3%)',\n '--primary-component-bg': '#000',\n '--modal-component-bg': 'rgb(30 30 30 / 80%)',\n });\n\n return getHostCss(tokens);\n });\n\n function update(e: MediaQueryListEvent) {\n setIsDark(e.matches);\n }\n createEffect(() => {\n const _ = scheme();\n\n setIsDark(_ === 'dark' || (_ === 'auto' && media.matches));\n });\n const baseStyle = createMemo(() => (isDark() ? darkCss() : lightCss()));\n\n createEffect(() => {\n if (scheme() === 'auto') {\n // 监听 prefers-color-scheme 媒体查询变化,自动更新颜色方案\n media.addEventListener('change', update);\n } else {\n media.removeEventListener('change', update);\n }\n localStorage.setItem('color-scheme', scheme());\n });\n\n return {\n baseStyle,\n dark,\n setDark,\n light,\n setLight,\n scheme,\n setScheme,\n isDark,\n };\n}\n\n/** API */\nexport interface Theme {\n /** 亮色样式的主要色 */\n light: Accessor<Color>;\n /** 设置亮色样式的主要色 */\n setLight: Setter<Color>;\n /** 黑色样式的主要色 */\n dark: Accessor<Color>;\n /** 设置黑色样式的主要色 */\n setDark: Setter<Color>;\n /** 颜色模式\n * @default 'auto'\n */\n scheme: Accessor<keyof typeof ColorScheme>;\n /** 设置颜色模式 */\n setScheme: Setter<keyof typeof ColorScheme>;\n /** 是否为色模式 */\n isDark: Accessor<boolean>;\n /** 基本都样式表, 响应 scheme 变化 */\n baseStyle: Accessor<string>;\n}\n\n/** 主要色 */\ninterface Color {\n /** 主要\n * @default '#5794ff'\n */\n primary: string;\n /** 警告\n * @default '#faad14'\n */\n warning: string;\n /** 错误\n * @default '#ff4d4f'\n */\n error: string;\n /** 成功\n * @default '#52c41a'\n */\n success: string;\n}\n\nexport interface ThemeOption {\n /** 是否采用暗色算法\n * @default false\n */\n dark?: boolean;\n /** 颜色名称 */\n name: string;\n}\n\nexport default createRoot<Theme>(createTheme, getOwner());\n"],"names":["ColorScheme","generateColor","toneColor","base","option","obj","dark","textColor","colorParse","baseColor","name","setAlpha","toRgbaString","mixColor","createRoot","baseTokens","css","fontSize","fontFamily","color","lineHeight","cursor","backgroundColor","inlineSize","blockSize","preset","localStorage","getItem","media","window","matchMedia","scheme","setScheme","createSignal","isDark","setIsDark","matches","light","setLight","primary","warning","error","success","setDark","createMemo","darkPrimary","darkWarning","darkSuccess","darkError","getHostCss","tokens","str","key","Object","prototype","hasOwnProperty","call","lightCss","assign","darkCss","update","e","createEffect","_","baseStyle","addEventListener","removeEventListener","setItem","getOwner"],"rangeMappings":"","mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "neko-ui",
3
- "version": "2.8.2",
3
+ "version": "2.8.4",
4
4
  "description": "WebComponents UI Libraries",
5
5
  "main": "es/index.js",
6
6
  "scripts": {
@@ -44,12 +44,13 @@
44
44
  "@commitlint/cli": "19.3.0",
45
45
  "@commitlint/config-conventional": "19.2.2",
46
46
  "@moneko/cli": "2.11.1",
47
- "@moneko/core": "3.16.5",
47
+ "@moneko/core": "3.16.6",
48
48
  "@moneko/solid": "1.8.0",
49
49
  "@solidjs/testing-library": "0.8.8",
50
50
  "@swc/jest": "0.2.36",
51
51
  "@testing-library/jest-dom": "6.4.5",
52
52
  "@types/jest": "29.5.12",
53
+ "@types/prismjs": "1.26.4",
53
54
  "eslint-config-neko": "2.7.6",
54
55
  "eslint-plugin-solid": "0.14.0",
55
56
  "husky": "9.0.11",
@@ -66,11 +67,13 @@
66
67
  "custom-element-type": "1.0.4",
67
68
  "dayjs": "1.11.11",
68
69
  "marked-completed": "1.2.14",
70
+ "prismjs": "1.29.0",
69
71
  "solid-element": "1.8.0",
70
72
  "solid-js": "1.8.17"
71
73
  },
72
74
  "browserslist": [
73
- "Chrome >= 86",
74
- "Safari >= 15"
75
+ ">0.3%, defaults",
76
+ "fully supports es6-module",
77
+ "maintained node versions"
75
78
  ]
76
79
  }