rappel-ui 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. package/cjs/_virtual/_plugin-vue_export-helper.js +1 -0
  2. package/cjs/components/button/index.d.ts +33 -0
  3. package/cjs/components/button/index.js +1 -0
  4. package/cjs/components/button/src/button.d.ts +3 -0
  5. package/cjs/components/button/src/button.vue.js +1 -0
  6. package/cjs/components/button/src/button.vue2.js +1 -0
  7. package/cjs/components/button/src/constants.d.ts +4 -0
  8. package/cjs/components/button/src/constants.js +1 -0
  9. package/cjs/components/button/src/types.d.ts +16 -0
  10. package/cjs/components/button/style/css.d.ts +0 -0
  11. package/cjs/components/button/style/index.d.ts +0 -0
  12. package/cjs/components/colors/index.d.ts +7 -0
  13. package/cjs/components/colors/index.js +1 -0
  14. package/cjs/components/colors/src/colors.vue.js +1 -0
  15. package/cjs/components/colors/src/colors.vue2.js +1 -0
  16. package/cjs/components/colors/src/neutral-color.css +1 -0
  17. package/cjs/components/colors/src/neutral-color.vue.js +1 -0
  18. package/cjs/components/colors/src/neutral-color.vue2.js +1 -0
  19. package/cjs/components/colors/src/primary-color.css +1 -0
  20. package/cjs/components/colors/src/primary-color.vue.js +1 -0
  21. package/cjs/components/colors/src/primary-color.vue2.js +1 -0
  22. package/cjs/components/colors/src/secondary-color.css +1 -0
  23. package/cjs/components/colors/src/secondary-color.vue.js +1 -0
  24. package/cjs/components/colors/src/secondary-color.vue2.js +1 -0
  25. package/cjs/components/index.d.ts +4 -0
  26. package/cjs/components/index.js +1 -0
  27. package/cjs/components/input/index.d.ts +25 -0
  28. package/cjs/components/input/index.js +1 -0
  29. package/cjs/components/input/src/input.vue.js +1 -0
  30. package/cjs/components/input/src/input.vue2.js +1 -0
  31. package/cjs/components/tabs/index.d.ts +20 -0
  32. package/cjs/components/tabs/index.js +1 -0
  33. package/cjs/components/tabs/src/tabs.vue.js +1 -0
  34. package/cjs/composables/index.d.ts +6 -0
  35. package/cjs/composables/use-namespace/index.d.ts +12 -0
  36. package/cjs/composables/use-namespace/index.js +1 -0
  37. package/cjs/composables/useDateFormat.d.ts +7 -0
  38. package/cjs/composables/useDateFormat.js +1 -0
  39. package/cjs/composables/useDraggable.d.ts +10 -0
  40. package/cjs/composables/useDraggable.js +1 -0
  41. package/cjs/composables/useOnceFn.d.ts +24 -0
  42. package/cjs/composables/useOnceFn.js +1 -0
  43. package/cjs/composables/useTimeNodes.d.ts +3 -0
  44. package/cjs/composables/useTimeNodes.js +1 -0
  45. package/cjs/composables/useWaterFallLayout.d.ts +10 -0
  46. package/cjs/composables/useWaterFallLayout.js +1 -0
  47. package/cjs/constants/index.d.ts +1 -0
  48. package/cjs/constants/svgLoading.d.ts +2 -0
  49. package/cjs/constants/svgLoading.js +36 -0
  50. package/cjs/directives/index.d.ts +3 -0
  51. package/cjs/directives/vDraggable.d.ts +2 -0
  52. package/cjs/directives/vDraggable.js +1 -0
  53. package/cjs/directives/vResizable.d.ts +14 -0
  54. package/cjs/directives/vResizable.js +21 -0
  55. package/cjs/directives/vSvgLoading.d.ts +4 -0
  56. package/cjs/directives/vSvgLoading.js +1 -0
  57. package/cjs/index.d.ts +86 -0
  58. package/cjs/index.js +1 -0
  59. package/cjs/package.json.js +1 -0
  60. package/cjs/purple-ui/index.d.ts +1 -0
  61. package/cjs/purple-ui/resolver.d.ts +2 -0
  62. package/cjs/purple-ui/resolver.js +1 -0
  63. package/cjs/theme-chalk/src/base.css +1 -0
  64. package/cjs/theme-chalk/src/button.css +1 -0
  65. package/cjs/utils/index.d.ts +2 -0
  66. package/cjs/utils/util.d.ts +143 -0
  67. package/cjs/utils/util.js +3 -0
  68. package/cjs/utils/vue/index.d.ts +17 -0
  69. package/cjs/utils/vue/index.js +1 -0
  70. package/es/_virtual/_plugin-vue_export-helper.mjs +9 -0
  71. package/es/components/button/index.d.ts +33 -0
  72. package/es/components/button/index.mjs +6 -0
  73. package/es/components/button/src/button.d.ts +3 -0
  74. package/es/components/button/src/button.vue.mjs +74 -0
  75. package/es/components/button/src/button.vue2.mjs +4 -0
  76. package/es/components/button/src/constants.d.ts +4 -0
  77. package/es/components/button/src/constants.mjs +5 -0
  78. package/es/components/button/src/types.d.ts +16 -0
  79. package/es/components/button/style/css.d.ts +0 -0
  80. package/es/components/button/style/index.d.ts +0 -0
  81. package/es/components/colors/index.d.ts +7 -0
  82. package/es/components/colors/index.mjs +16 -0
  83. package/es/components/colors/src/colors.vue.mjs +21 -0
  84. package/es/components/colors/src/colors.vue2.mjs +4 -0
  85. package/es/components/colors/src/neutral-color.css +1 -0
  86. package/es/components/colors/src/neutral-color.vue.mjs +7 -0
  87. package/es/components/colors/src/neutral-color.vue2.mjs +195 -0
  88. package/es/components/colors/src/primary-color.css +1 -0
  89. package/es/components/colors/src/primary-color.vue.mjs +7 -0
  90. package/es/components/colors/src/primary-color.vue2.mjs +33 -0
  91. package/es/components/colors/src/secondary-color.css +1 -0
  92. package/es/components/colors/src/secondary-color.vue.mjs +7 -0
  93. package/es/components/colors/src/secondary-color.vue2.mjs +54 -0
  94. package/es/components/index.d.ts +4 -0
  95. package/es/components/index.mjs +20 -0
  96. package/es/components/input/index.d.ts +25 -0
  97. package/es/components/input/index.mjs +6 -0
  98. package/es/components/input/src/input.vue.mjs +15 -0
  99. package/es/components/input/src/input.vue2.mjs +4 -0
  100. package/es/components/tabs/index.d.ts +20 -0
  101. package/es/components/tabs/index.mjs +6 -0
  102. package/es/components/tabs/src/tabs.vue.mjs +17 -0
  103. package/es/composables/index.d.ts +6 -0
  104. package/es/composables/use-namespace/index.d.ts +12 -0
  105. package/es/composables/use-namespace/index.mjs +21 -0
  106. package/es/composables/useDateFormat.d.ts +7 -0
  107. package/es/composables/useDateFormat.mjs +20 -0
  108. package/es/composables/useDraggable.d.ts +10 -0
  109. package/es/composables/useDraggable.mjs +55 -0
  110. package/es/composables/useOnceFn.d.ts +24 -0
  111. package/es/composables/useOnceFn.mjs +32 -0
  112. package/es/composables/useTimeNodes.d.ts +3 -0
  113. package/es/composables/useTimeNodes.mjs +24 -0
  114. package/es/composables/useWaterFallLayout.d.ts +10 -0
  115. package/es/composables/useWaterFallLayout.mjs +51 -0
  116. package/es/constants/index.d.ts +1 -0
  117. package/es/constants/svgLoading.d.ts +2 -0
  118. package/es/constants/svgLoading.mjs +39 -0
  119. package/es/directives/index.d.ts +3 -0
  120. package/es/directives/vDraggable.d.ts +2 -0
  121. package/es/directives/vDraggable.mjs +13 -0
  122. package/es/directives/vResizable.d.ts +14 -0
  123. package/es/directives/vResizable.mjs +136 -0
  124. package/es/directives/vSvgLoading.d.ts +4 -0
  125. package/es/directives/vSvgLoading.mjs +48 -0
  126. package/es/index.d.ts +86 -0
  127. package/es/index.mjs +76 -0
  128. package/es/package.json.mjs +4 -0
  129. package/es/purple-ui/index.d.ts +1 -0
  130. package/es/purple-ui/resolver.d.ts +2 -0
  131. package/es/purple-ui/resolver.mjs +18 -0
  132. package/es/theme-chalk/src/base.css +1 -0
  133. package/es/theme-chalk/src/button.css +1 -0
  134. package/es/utils/index.d.ts +2 -0
  135. package/es/utils/util.d.ts +143 -0
  136. package/es/utils/util.mjs +151 -0
  137. package/es/utils/vue/index.d.ts +17 -0
  138. package/es/utils/vue/index.mjs +36 -0
  139. package/global.d.ts +7 -0
  140. package/package.json +65 -0
  141. package/theme-chalk/base.css +148 -0
  142. package/theme-chalk/css-vars/_button.css +35 -0
  143. package/theme-chalk/css-vars/_colors.css +51 -0
  144. package/theme-chalk/function/_button.css +35 -0
  145. package/theme-chalk/function/index.css +35 -0
  146. package/theme-chalk/index.css +560 -0
  147. package/theme-chalk/mixins/_button.css +35 -0
  148. package/theme-chalk/mixins/index.css +35 -0
  149. package/theme-chalk/pu-button.css +446 -0
  150. package/theme-chalk/root-vars.css +132 -0
  151. package/theme-chalk/src/base.scss +30 -0
  152. package/theme-chalk/src/button.scss +104 -0
  153. package/theme-chalk/src/common/_function.scss +46 -0
  154. package/theme-chalk/src/css-vars/_button.scss +47 -0
  155. package/theme-chalk/src/css-vars/_colors.scss +82 -0
  156. package/theme-chalk/src/css-vars/_namespace.scss +12 -0
  157. package/theme-chalk/src/function/_button.scss +2 -0
  158. package/theme-chalk/src/function/index.scss +155 -0
  159. package/theme-chalk/src/index.scss +2 -0
  160. package/theme-chalk/src/mixins/_button.scss +140 -0
  161. package/theme-chalk/src/mixins/index.scss +25 -0
  162. package/theme-chalk/src/root-vars.scss +13 -0
  163. package/umd/index.js +59 -0
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const u=(e,o)=>{const t=e.__vccOpts||e;for(const[r,s]of o)t[r]=s;return t};exports.default=u;
@@ -0,0 +1,33 @@
1
+ import { default as Button } from './src/button.vue';
2
+ export * from './src/types';
3
+ export { Button as PuButton };
4
+ declare const _default: {
5
+ new (...args: any[]): import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('.').ButtonProps> & Readonly<{
6
+ onClick?: ((evt: MouseEvent) => any) | undefined;
7
+ }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
8
+ click: (evt: MouseEvent) => any;
9
+ }, import('vue').PublicProps, {}, false, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {}, HTMLButtonElement, import('vue').ComponentProvideOptions, {
10
+ P: {};
11
+ B: {};
12
+ D: {};
13
+ C: {};
14
+ M: {};
15
+ Defaults: {};
16
+ }, Readonly<import('.').ButtonProps> & Readonly<{
17
+ onClick?: ((evt: MouseEvent) => any) | undefined;
18
+ }>, {}, {}, {}, {}, {}>;
19
+ __isFragment?: never;
20
+ __isTeleport?: never;
21
+ __isSuspense?: never;
22
+ } & import('vue').ComponentOptionsBase<Readonly<import('.').ButtonProps> & Readonly<{
23
+ onClick?: ((evt: MouseEvent) => any) | undefined;
24
+ }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
25
+ click: (evt: MouseEvent) => any;
26
+ }, string, {}, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & (new () => {
27
+ $slots: {
28
+ loading?(_: {}): any;
29
+ icon?(_: {}): any;
30
+ default?(_: {}): any;
31
+ };
32
+ });
33
+ export default _default;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../../utils/vue/index.js"),t=require("./src/button.vue.js");e.withInstall(t.default);exports.PuButton=t.default;
@@ -0,0 +1,3 @@
1
+ import { ExtractPropTypes } from 'vue';
2
+ export declare const buttonProps: {};
3
+ export type ButtonProps = ExtractPropTypes<typeof buttonProps>;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue");;/* empty css */;/* empty css */const o=require("./constants.js"),m=require("../../../composables/use-namespace/index.js"),y=["type","disabled"],b=e.defineComponent({name:"PuButton",__name:"button",props:{type:{default:""},size:{default:"default"},plain:{type:Boolean,default:!1},round:{type:Boolean,default:!1},circle:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},icon:{default:""},loading:{type:Boolean,default:!1},loadingIcon:{default:""},text:{type:Boolean,default:!1},link:{type:Boolean,default:!1},nativeType:{default:"button"}},emits:["click"],setup(t,{emit:d}){const u=d,{n:s,nm:i,ns:a,is:n}=m.useNamespace("button"),c=e.useAttrs(),r=e.computed(()=>[s(""),t.type&&o.buttonTypes.includes(t.type)?i("",t.type):"",t.size!=="default"&&o.buttonSizes.includes(t.size)?i("",t.size):"",n("text",t.text),n("link",t.link),n("plain",t.plain),n("round",t.round),n("circle",t.circle),n("loading",t.loading),n("disabled",t.disabled)]);function f(l){if(t.disabled||t.loading){l.preventDefault(),l.stopImmediatePropagation();return}u("click",l)}return(l,k)=>(e.openBlock(),e.createElementBlock("button",e.mergeProps({class:r.value,type:t.nativeType,disabled:t.disabled||t.loading,onClick:e.withModifiers(f,["stop"])},e.unref(c)),[e.renderSlot(l.$slots,"loading",{},()=>[t.loading?(e.openBlock(),e.createElementBlock("i",{key:0,class:e.normalizeClass([e.unref(a)("","loading"),t.loadingIcon]),"aria-hidden":"true"},null,2)):e.createCommentVNode("",!0)]),e.renderSlot(l.$slots,"icon",{},()=>[t.icon?(e.openBlock(),e.createElementBlock("i",{key:0,class:e.normalizeClass([e.unref(a)("","icon"),t.icon]),"aria-hidden":"true"},null,2)):e.createCommentVNode("",!0)]),e.createElementVNode("span",{class:e.normalizeClass([e.unref(a)("","content")])},[e.renderSlot(l.$slots,"default")],2)],16,y))}});exports.default=b;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./button.vue.js");exports.default=e.default;
@@ -0,0 +1,4 @@
1
+ declare const buttonTypes: readonly ["primary", "success", "warning", "danger", "info", ""];
2
+ declare const buttonSizes: readonly ["mini", "small", "default", "large"];
3
+ declare const buttonNativeTypes: readonly ["button", "submit", "reset"];
4
+ export { buttonTypes, buttonSizes, buttonNativeTypes };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=["primary","success","warning","danger","info",""],e=["mini","small","default","large"];exports.buttonSizes=e;exports.buttonTypes=t;
@@ -0,0 +1,16 @@
1
+ import { buttonTypes, buttonSizes, buttonNativeTypes } from './constants';
2
+ interface ButtonProps {
3
+ type?: (typeof buttonTypes)[number];
4
+ size?: (typeof buttonSizes)[number];
5
+ plain?: boolean;
6
+ round?: boolean;
7
+ circle?: boolean;
8
+ disabled?: boolean;
9
+ icon?: string;
10
+ loading?: boolean;
11
+ loadingIcon?: string;
12
+ text?: boolean;
13
+ link?: boolean;
14
+ nativeType?: (typeof buttonNativeTypes)[number];
15
+ }
16
+ export type { ButtonProps };
File without changes
File without changes
@@ -0,0 +1,7 @@
1
+ import { default as Colors } from './src/colors.vue';
2
+ import { default as PrimaryColor } from './src/primary-color.vue';
3
+ import { default as SecondaryColor } from './src/secondary-color.vue';
4
+ import { default as NeutralColor } from './src/neutral-color.vue';
5
+ export { Colors as PuColors, PrimaryColor as PuPrimaryColor, SecondaryColor as PuSecondaryColor, NeutralColor as PuNeutralColor };
6
+ declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
7
+ export default _default;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("../../utils/vue/index.js"),r=require("./src/colors.vue.js"),e=require("./src/primary-color.vue.js"),o=require("./src/secondary-color.vue.js"),l=require("./src/neutral-color.vue.js");t.withInstall(r.default,{PrimaryColor:e.default,SecondaryColor:o.default,NeutralColor:l.default});exports.PuColors=r.default;exports.PuPrimaryColor=e.default;exports.PuSecondaryColor=o.default;exports.PuNeutralColor=l.default;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),t=require("./primary-color.vue.js"),o=require("./secondary-color.vue.js"),l=require("./neutral-color.vue.js"),n=e.defineComponent({name:"PuColors",__name:"colors",setup(u){return(a,r)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[r[0]||(r[0]=e.createElementVNode("h2",null,"Primary 主色",-1)),e.createVNode(t.default),r[1]||(r[1]=e.createElementVNode("h2",null,"Secondary 状态色",-1)),e.createVNode(o.default),r[2]||(r[2]=e.createElementVNode("h2",null,"Neutral 文本、边框、背景色",-1)),e.createVNode(l.default)],64))}});exports.default=n;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./colors.vue.js");exports.default=e.default;
@@ -0,0 +1 @@
1
+ @charset "UTF-8";.text-colors[data-v-c3bcd835]{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.text-colors .shade[data-v-c3bcd835]{border-radius:4px;overflow:hidden;margin-bottom:1rem;height:7rem;padding:1rem}.text-colors .shade.border-blocks[data-v-c3bcd835]{display:flex;justify-content:space-between}.text-colors .shade.border-blocks .content[data-v-c3bcd835]{border-radius:50%;margin-left:1rem;background-color:#fff;height:5rem;width:5rem;display:flex;justify-content:center;align-items:center;flex-shrink:0}.checkerboard-bg[data-v-c3bcd835]{background-color:#fff;background-image:linear-gradient(45deg,#ededf0 25%,transparent 25%),linear-gradient(-45deg,#ededf0 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#ededf0 75%),linear-gradient(-45deg,transparent 75%,#ededf0 75%);background-size:22px 22px;background-position:0 0,0 11px,11px -11px,-11px 0px}
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./neutral-color.vue2.js");;/* empty css */const t=require("../../../_virtual/_plugin-vue_export-helper.js"),u=t.default(e.default,[["__scopeId","data-v-c3bcd835"]]);exports.default=u;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),o=require("../../../utils/util.js"),c={class:"text-colors"},a={key:0,class:"content"},d=e.defineComponent({name:"PuNeutralColor",__name:"neutral-color",setup(n){const l=[{shades:[{color:"#000000",text:"Darkest Text",textcolor:"#fff"},{color:"#303131",text:"Base Text",textcolor:"#fff"},{color:"#606062",text:"Secondary Text",textcolor:"#fff"},{color:"#909093",text:"Neutral Text",textcolor:"#fff"},{color:"#b2b2b6",text:"Placeholder Text",textcolor:"#fff"},{color:"#cdcdd1",text:"Disabled Text",textcolor:"#fff"}]},{shades:[{color:"#c3c3cb",text:"Darker Border",extraclass:"border-blocks"},{color:"#d0d0d8",text:"Dark Border",extraclass:"border-blocks"},{color:"#dbdbe0",text:"Base Border",extraclass:"border-blocks"},{color:"#e4e4e8",text:"Light Border",extraclass:"border-blocks"},{color:"#ededef",text:"Lighter Border",extraclass:"border-blocks"},{color:"#efeff3",text:"Extra-Light Border",extraclass:"border-blocks"},{color:o.getEqualOpacityColor("#937bff",.4),text:"Primary Alpha 40% Border",extraclass:"border-blocks"}]},{shades:[{color:"#d7d7dc",text:"Darker Fill Background"},{color:"#e8e8ec",text:"Dark Fill Background"},{color:"#ededf0",text:"Base Fill Background"},{color:"#f1f1f4",text:"Light Fill Background"},{color:"#f6f6f7",text:"Lighter Fill Background"},{color:"#f8f8f9",text:"Extra-light Fill Background"},{color:"#f7f7fb",text:"Theme Fill Background"},{color:"#ffffff",text:"Blank Fill Background",bordercolor:o.getEqualOpacityColor("#937bff",.4)},{color:"transparent",text:"Transparent Fill Background",extraclass:"checkerboard-bg"}]},{shades:[{color:o.getEqualOpacityColor("#937bff",.9),textcolor:"#fff",text:"Primary Alpha 90% Fill Background"},{color:o.getEqualOpacityColor("#937bff",.8),textcolor:"#fff",text:"Primary Alpha 80% Fill Background"},{color:o.getEqualOpacityColor("#937bff",.7),text:"Primary Alpha 70% Fill Background"},{color:o.getEqualOpacityColor("#937bff",.6),text:"Primary Alpha 60% Fill Background"},{color:o.getEqualOpacityColor("#937bff",.5),text:"Primary Alpha 50% Fill Background"},{color:o.getEqualOpacityColor("#937bff",.4),text:"Primary Alpha 40% Fill Background"},{color:o.getEqualOpacityColor("#937bff",.3),text:"Primary Alpha 30% Fill Background"},{color:o.getEqualOpacityColor("#937bff",.2),text:"Primary Alpha 20% Fill Background"},{color:o.getEqualOpacityColor("#937bff",.1),text:"Primary Alpha 10% Fill Background"}]}];return(i,f)=>(e.openBlock(),e.createElementBlock("div",c,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(l,t=>e.createElementVNode("div",{class:"panel",key:t.shades[0].color},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.shades,r=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["shade",[r?.extraclass]]),style:e.normalizeStyle({"background-color":r.color,color:r?.textcolor,border:r?.bordercolor?"1px solid "+r.bordercolor:"none"}),key:r.text},[e.createElementVNode("div",null,[e.createElementVNode("div",null,e.toDisplayString(r.text),1),e.createElementVNode("div",null,e.toDisplayString(r.color.toUpperCase()),1)]),r.extraclass?(e.openBlock(),e.createElementBlock("div",a,"#FFFFFF")):e.createCommentVNode("",!0)],6))),128))])),64))]))}});exports.default=d;
@@ -0,0 +1 @@
1
+ .theme-colors[data-v-7bd7347b]{width:60rem;border-radius:4px;overflow:hidden;color:#fff}.theme-colors .base[data-v-7bd7347b]{color:#fff;height:6rem;box-shadow:10px 10px;padding:1rem}.theme-colors .shades[data-v-7bd7347b]{display:flex;align-items:center;flex-wrap:nowrap}.theme-colors .shades .shade[data-v-7bd7347b]{flex:1;height:3.2rem;padding:.2rem}
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./primary-color.vue2.js");;/* empty css */const r=require("../../../_virtual/_plugin-vue_export-helper.js"),t=r.default(e.default,[["__scopeId","data-v-7bd7347b"]]);exports.default=t;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),l=require("../../../utils/util.js"),s={class:"shades"},a=e.defineComponent({name:"PuPrimaryColor",__name:"primary-color",setup(n){const o=[{base:"#937bff",shades:l.createColors("#937bff")}];return(c,i)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(o,t=>e.createElementVNode("div",{class:"theme-colors",key:t.base},[e.createElementVNode("div",{class:"base",style:e.normalizeStyle({"background-color":t.base})},e.toDisplayString(t.base.toUpperCase()),5),e.createElementVNode("div",s,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.shades,r=>(e.openBlock(),e.createElementBlock("div",{class:"shade",style:e.normalizeStyle({"background-color":r}),key:r},null,4))),128))])])),64))}});exports.default=a;
@@ -0,0 +1 @@
1
+ .status-colors[data-v-3e9bfdfb]{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.status-colors .panel[data-v-3e9bfdfb]{border-radius:4px;overflow:hidden;color:#fff}.status-colors .panel .base[data-v-3e9bfdfb]{color:#fff;height:6rem;box-shadow:5px 5px;padding:1rem}.status-colors .panel .shades[data-v-3e9bfdfb]{display:flex;align-items:center;flex-wrap:nowrap}.status-colors .panel .shades .shade[data-v-3e9bfdfb]{overflow:hidden;flex:1;height:3rem;padding:.2rem}
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./secondary-color.vue2.js");;/* empty css */const r=require("../../../_virtual/_plugin-vue_export-helper.js"),t=r.default(e.default,[["__scopeId","data-v-3e9bfdfb"]]);exports.default=t;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),s=require("../../../utils/util.js"),r={class:"status-colors"},l={class:"shades"},n=e.defineComponent({name:"PuSecondaryColor",__name:"secondary-color",setup(c){const a=[{base:"#06b56d",text:"Success",shades:s.createColors("#06b56d")},{base:"#ee6979",text:"Danger/Error ",shades:s.createColors("#ee6979")},{base:"#cd9a0a",text:"Warning",shades:s.createColors("#cd9a0a")},{base:"#8e8e91",text:"Info",shades:s.createColors("#8e8e91")}];return(d,i)=>(e.openBlock(),e.createElementBlock("div",r,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(a,t=>e.createElementVNode("div",{class:"panel",key:t.base},[e.createElementVNode("div",{class:"base",style:e.normalizeStyle({"background-color":t.base})},[e.createElementVNode("div",null,e.toDisplayString(t.text),1),e.createElementVNode("div",null,e.toDisplayString(t.base.toUpperCase()),1)],4),e.createElementVNode("div",l,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.shades,o=>(e.openBlock(),e.createElementBlock("div",{class:"shade",style:e.normalizeStyle({"background-color":o}),key:o},null,4))),128))])])),64))]))}});exports.default=n;
@@ -0,0 +1,4 @@
1
+ export * from './button';
2
+ export * from './input';
3
+ export * from './tabs';
4
+ export * from './colors';
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("./button/index.js");require("./input/index.js");require("./tabs/index.js");require("./colors/index.js");const e=require("./button/src/button.vue.js"),r=require("./input/src/input.vue.js"),u=require("./colors/src/colors.vue.js"),t=require("./tabs/src/tabs.vue.js"),o=require("./colors/src/primary-color.vue.js"),l=require("./colors/src/secondary-color.vue.js"),_=require("./colors/src/neutral-color.vue.js");exports.PuButton=e.default;exports.PuInput=r.default;exports.PuColors=u.default;exports.PuTabs=t.default;exports.PuPrimaryColor=o.default;exports.PuSecondaryColor=l.default;exports.PuNeutralColor=_.default;
@@ -0,0 +1,25 @@
1
+ import { default as Input } from './src/input.vue';
2
+ export { Input as PuInput };
3
+ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
4
+ type: {
5
+ type: StringConstructor;
6
+ default: string;
7
+ };
8
+ size: {
9
+ type: StringConstructor;
10
+ default: string;
11
+ };
12
+ }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
13
+ type: {
14
+ type: StringConstructor;
15
+ default: string;
16
+ };
17
+ size: {
18
+ type: StringConstructor;
19
+ default: string;
20
+ };
21
+ }>> & Readonly<{}>, {
22
+ size: string;
23
+ type: string;
24
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLInputElement>;
25
+ export default _default;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("../../utils/vue/index.js"),e=require("./src/input.vue.js");t.withInstall(e.default);exports.PuInput=e.default;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),n=e.defineComponent({name:"PuInput",__name:"input",props:{type:{type:String,default:"text"},size:{type:String,default:"default"}},setup(u){return(t,r)=>(e.openBlock(),e.createElementBlock("input",e.mergeProps({class:"pinput"},t.$attrs),null,16))}});exports.default=n;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./input.vue.js");exports.default=e.default;
@@ -0,0 +1,20 @@
1
+ import { default as tabs } from './src/tabs.vue';
2
+ export { tabs as PuTabs };
3
+ declare const _default: {
4
+ new (...args: any[]): import('vue').CreateComponentPublicInstanceWithMixins<Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, import('vue').PublicProps, {}, true, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {}, HTMLDivElement, import('vue').ComponentProvideOptions, {
5
+ P: {};
6
+ B: {};
7
+ D: {};
8
+ C: {};
9
+ M: {};
10
+ Defaults: {};
11
+ }, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, {}>;
12
+ __isFragment?: never;
13
+ __isTeleport?: never;
14
+ __isSuspense?: never;
15
+ } & import('vue').ComponentOptionsBase<Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, {}, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & (new () => {
16
+ $slots: {
17
+ 'prev-button'?(_: {}): any;
18
+ };
19
+ });
20
+ export default _default;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("../../utils/vue/index.js"),e=require("./src/tabs.vue.js");t.withInstall(e.default);exports.PuTabs=e.default;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),n=require("../../../_virtual/_plugin-vue_export-helper.js"),r={},s={class:"p-tabs"},c={class:"p-tabs__header"};function u(t,_){const o=e.resolveComponent("pu-button");return e.openBlock(),e.createElementBlock("div",s,[e.createElementVNode("div",c,[e.renderSlot(t.$slots,"prev-button",{},()=>[e.createVNode(o)])])])}const l=n.default(r,[["render",u]]);exports.default=l;
@@ -0,0 +1,6 @@
1
+ export * from './useDraggable';
2
+ export * from './useDateFormat';
3
+ export * from './useOnceFn';
4
+ export * from './useTimeNodes';
5
+ export * from './useWaterFallLayout';
6
+ export * from './use-namespace';
@@ -0,0 +1,12 @@
1
+ export declare function useNamespace(compName: string): {
2
+ prefix: string;
3
+ statePrefix: string;
4
+ n: (name: string) => string;
5
+ ng: (name: string, groupName: string) => string;
6
+ nm: (name: string, modifier: string) => string;
7
+ ngm: (name: string, groupName: string, modifier: string) => string;
8
+ ns: (name: string, subName: string) => string;
9
+ ngs: (name: string, groupName: string, subName: string) => string;
10
+ cls: (name: string, groupName?: string, modifier?: string, subName?: string) => string;
11
+ is: (state: string, bool?: boolean | undefined | "") => string;
12
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function r(o){const t=(n,s,e,i)=>{let c=`pu-${n||o}`;return s&&(c+=`-${s}`),e&&(c+=`--${e}`),i&&(c+=`__${i}`),c.toLowerCase()};return{prefix:"pu",statePrefix:"is",n:n=>t(n),ng:(n,s)=>t(n,s),nm:(n,s)=>t(n,"",s),ngm:(n,s,e)=>t(n,s,e),ns:(n,s)=>t(n,"","",s),ngs:(n,s,e)=>t(n,s,"",e),cls:t,is:(n,s=!0)=>s?`is-${n}`:""}}exports.useNamespace=r;
@@ -0,0 +1,7 @@
1
+ /**
2
+ *时间格式化方法 YYYY-MM-DD HH:mm:ss
3
+ * @param {Date} date 日期实例对象
4
+ * @param {String} fmtStr 格式化字符串
5
+ * @returns {String} 格式化后的日期字符串
6
+ */
7
+ export declare function useDateFormat(date: Date, fmtStr: string): string;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function c(t,S){const n=t.getFullYear(),r=t.getMonth()+1,s=t.getDate(),e=t.getHours(),g=t.getMinutes(),o=t.getSeconds(),i={YYYY:String(n),YY:String(n).substring(2),MM:String(r).padStart(2,"0"),M:String(r),DD:String(s).padStart(2,"0"),D:String(s),HH:String(e).padStart(2,"0"),H:String(e),mm:String(g).padStart(2,"0"),m:String(g),ss:String(o).padStart(2,"0"),s:String(o)};return S.replace(/(YYYY|YY|MM|M|DD|D|HH|H|mm|m|ss|s)/g,a=>i[a])}exports.useDateFormat=c;
@@ -0,0 +1,10 @@
1
+ export declare function useDraggable(el: HTMLElement, options?: {
2
+ preventDefault?: boolean;
3
+ customHandler?: HTMLElement | null;
4
+ autoTopHandler?: boolean;
5
+ topHandlerHeight?: number;
6
+ isAllHandler?: boolean;
7
+ }): {
8
+ updatePos: () => void;
9
+ cleanup: () => void;
10
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function C(r,w){if(!r)return{updatePos:()=>{},cleanup:()=>{}};const o=Object.assign({},{preventDefault:!0,customHandler:null,autoTopHandler:!1,topHandlerHeight:20,isAllHandler:!0},w||{}),h=()=>{const e=document.createElement("div");return e.style.cssText=`user-select:none;height: ${o.topHandlerHeight}px; z-index:3000;cursor: move; position: absolute; top: 0; left: 0;right:0;background-color: transparent;opacity: 1;`,e.classList.add("v-draggable-top-handler"),r.appendChild(e),e},s=o.customHandler?o.customHandler:o.autoTopHandler?h():r;let d=!1,m=0,v=0,l=0,c=0,f=0,g=0,E=0,L=0;const T=e=>window.getComputedStyle(e).transform,H=e=>{const t=T(e);if(t&&t!=="none"){const{e:n,f:D,m41:M,m42:A}=new DOMMatrix(t);return{x:n||M||0,y:D||A||0}}return{x:0,y:0}},i=()=>{const e=r.getBoundingClientRect(),{x:t,y:n}=H(r);l=t,c=n,f=-e.left+t,g=-e.top+n,E=window.innerWidth-e.right+t,L=window.innerHeight-e.bottom+n},b=e=>{const t=e.target;return!t||t.isContentEditable||t.closest('input, textarea, button, select, a,[contenteditable], [contenteditable="true"]')||["TEXTAREA","INPUT","BUTTON","A","SELECT"].includes(t?.tagName)?!1:!!o.isAllHandler||t===s},u=e=>{b(e)&&(d=!0,o.preventDefault&&e.preventDefault(),i(),m=e.clientX-l,v=e.clientY-c,document.removeEventListener("pointermove",p),document.removeEventListener("pointerup",a),document.removeEventListener("pointercancel",a),document.addEventListener("pointermove",p),document.addEventListener("pointerup",a),document.addEventListener("pointercancel",a))},p=e=>{if(!d)return;let t=e.clientX-m,n=e.clientY-v;t<l?t=Math.max(t,f):t=Math.min(t,E),n<c?n=Math.max(n,g):n=Math.min(n,L),r.style.transform=`translate(${t}px, ${n}px)`,l=t,c=n},a=()=>{d=!1,document.removeEventListener("pointermove",p),document.removeEventListener("pointerup",a),document.removeEventListener("pointercancel",a)},x=()=>{if(a(),s.removeEventListener("pointerdown",u),window.removeEventListener("resize",i),o.autoTopHandler&&!o.customHandler){const e=r.querySelector(".v-draggable-top-handler");e&&e.remove()}};i(),s.removeEventListener("pointerdown",u),s.addEventListener("pointerdown",u),window.removeEventListener("resize",i),window.addEventListener("resize",i);const y=r._cleanup=x;return{updatePos:i,cleanup:y}}exports.useDraggable=C;
@@ -0,0 +1,24 @@
1
+ /**
2
+ * 防止接口重复请求的方法<需保证方法名全局唯一>
3
+ * @param {Function} funcName 方法名
4
+ * @param {...Array<any>} funcParams 方法参数(剩余参数),原方法怎么传,这里就怎么传
5
+ * @description 适用于返回Promise的所有方法,支持多个方法
6
+ * @example
7
+ * 1、基本用法:
8
+ * import {getUserList} from "@/api/user"
9
+ * const res = await useOnceFn(getUserList, params, data)
10
+ *
11
+ * 2、多个方法
12
+ * import {getUserList} from "@/api/user"
13
+ * import {getOrgTree} from "@/api/org"
14
+ *
15
+ * const res1 = await useOnceFn(getUserList, params, data)
16
+ * const res2 = await useOnceFn(getOrgTree)
17
+ *
18
+ * 3、用于async方法
19
+ * async function demo(){...}
20
+ * const res = await useOnceFn(demo)
21
+ *
22
+ * @returns {Promise<any>}
23
+ */
24
+ export declare function useOnceFn(funcName: Function, ...funcParams: any[]): Promise<any>;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});class n{res;isFetching;isSuccess;queues;constructor(){this.res=null,this.isFetching=!1,this.isSuccess=!1,this.queues=[]}useOnceFn(e,...s){return new Promise(u=>{if(this.isSuccess){u(this.res);return}this.queues.push(u),this.isFetching||(this.isFetching=!0,Promise.resolve(e(...s)).then(c=>{this.res=c,this.loopQueues(),this.isSuccess=!0}))})}loopQueues(){for(;this.queues.length>0;)this.queues.shift()?.(this.res)}}const i={};function h(t,...e){const s=t.toString().replace(/[^a-zA-Z]/g,"");return i[s]||(i[s]=new n),i[s].useOnceFn(t,...e)}exports.useOnceFn=h;
@@ -0,0 +1,3 @@
1
+ export declare function useTimeNodes(start?: string, end?: string, step?: string, fmt?: string): {
2
+ timeNodes: string[];
3
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("./useDateFormat.js");require("vue");function b(a="00:00",d="23:00",i="02:00",T="HH:mm"){const s=e=>{const[t,n,o]=e.split(":").map(Number);return[t||0,n||0,o||0]},c=e=>{const[t,n,o]=s(e),u=new Date;return new Date(u.getFullYear(),u.getMonth()+1,u.getDate(),t,n,o)},g=e=>p.useDateFormat(e,T),h=e=>{const[t,n,o]=s(i);return new Date(e.getTime()+t*36e5+n*6e4+o*1e3)},m=[],[l,w,D]=s(i);if(l===0&&w===0&&D===0)throw new Error("时间步长不能为0");let r=c(a);const N=c(d);for(;r<=N;)m.push(g(r)),r=h(r);return{timeNodes:m}}exports.useTimeNodes=b;
@@ -0,0 +1,10 @@
1
+ import { Ref } from 'vue';
2
+ export declare function useWaterFallLayout(containerRef: Ref<HTMLElement | null>, itemSelector: string): {
3
+ init: (isRearrange?: boolean) => void;
4
+ column: Ref<number, number>;
5
+ rowSpacing: Ref<number, number>;
6
+ columnSpacing: Ref<number, number>;
7
+ oddColumnBgColor: Ref<string, string>;
8
+ evenColumnBgColor: Ref<string, string>;
9
+ getItems: (selector?: string) => any;
10
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("vue");function k(u,F){const o=n.ref(3),d=n.ref(2),a=n.ref(2),r=n.ref("#F5F8F8"),i=n.ref("#FFFFFF"),C=n.ref("top 300ms ease-in-out, left 300ms ease-in-out"),m=n.ref(0),c=n.ref(0),v=n.ref(0),f=t=>document.querySelectorAll(t||F),x=()=>{u.value.style.position="relative"},W=()=>{x(),m.value=u.value.clientWidth},I=()=>{v.value=(m.value-a.value*(o.value-1))/o.value},T=t=>{const e=t%o.value;return e===0?0:e*(v.value+a.value)},p=t=>{const{style:e,offsetHeight:s}=t;return parseFloat(e.top)+s+d.value},S=(t,e)=>t>=o.value?p(e[t-o.value]):0,b=t=>{const e=p(t);e>c.value&&(c.value=e,u.value.style.height=e+"px")},h=n.ref("is-dealed"),w=(t=!1)=>{const e=f(),s=f("."+h.value);let g=0;s.length>0&&(g=s.length),t&&(g=0,c.value=0);for(let l=g;l<e.length;l++)e[l].style.position="absolute",e[l].style.transition=C.value,e[l].style.width=v.value+"px",e[l].style.backgroundColor=L(l),e[l].style.left=T(l)+"px",e[l].style.top=S(l,e)+"px",e[l].classList.add(h.value),b(e[l])},L=t=>{const e=t+1;return o.value%2===0?e%2===0?i.value:r.value:e%o.value!==0&&e%o.value%2===0?i.value:r.value},y=(t=!1)=>{W(),I(),n.nextTick(()=>{w(t)})};return n.watch(()=>o.value,()=>{n.nextTick(()=>{y(!0)})}),{init:y,column:o,rowSpacing:d,columnSpacing:a,oddColumnBgColor:r,evenColumnBgColor:i,getItems:f}}exports.useWaterFallLayout=k;
@@ -0,0 +1 @@
1
+ export * from './svgLoading';
@@ -0,0 +1,2 @@
1
+ declare const svgLoadingContent = "<svg viewBox=\"0 0 800 800\" xmlns=\"http://www.w3.org/2000/svg\">\n<style>\n @keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n@keyframes spin2 {\n 0% {\n stroke-dasharray: 1, 800;\n stroke-dashoffset: 0;\n }\n 50% {\n stroke-dasharray: 200, 200;\n stroke-dashoffset: 100px;\n }\n 100% {\n stroke-dasharray: 800, 1;\n stroke-dashoffset: -800px;\n }\n}\n\n.spin2 {\n transform-origin: center;\n animation: spin2 1.5s ease-in-out infinite,\n spin 2s linear infinite;\n animation-direction: alternate;\n}\n</style>\n <circle class=\"spin2\" cx=\"400\" cy=\"400\" fill=\"none\"\n r=\"200\" stroke-width=\"40\" stroke=\"#E387FF\"\n stroke-dasharray=\"800 1400\"\n stroke-linecap=\"round\"\n />\n</svg>";
2
+ export { svgLoadingContent };
@@ -0,0 +1,36 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=`<svg viewBox="0 0 800 800" xmlns="http://www.w3.org/2000/svg">
2
+ <style>
3
+ @keyframes spin {
4
+ to {
5
+ transform: rotate(360deg);
6
+ }
7
+ }
8
+
9
+ @keyframes spin2 {
10
+ 0% {
11
+ stroke-dasharray: 1, 800;
12
+ stroke-dashoffset: 0;
13
+ }
14
+ 50% {
15
+ stroke-dasharray: 200, 200;
16
+ stroke-dashoffset: 100px;
17
+ }
18
+ 100% {
19
+ stroke-dasharray: 800, 1;
20
+ stroke-dashoffset: -800px;
21
+ }
22
+ }
23
+
24
+ .spin2 {
25
+ transform-origin: center;
26
+ animation: spin2 1.5s ease-in-out infinite,
27
+ spin 2s linear infinite;
28
+ animation-direction: alternate;
29
+ }
30
+ </style>
31
+ <circle class="spin2" cx="400" cy="400" fill="none"
32
+ r="200" stroke-width="40" stroke="#E387FF"
33
+ stroke-dasharray="800 1400"
34
+ stroke-linecap="round"
35
+ />
36
+ </svg>`;exports.svgLoadingContent=s;
@@ -0,0 +1,3 @@
1
+ export * from './vDraggable';
2
+ export * from './vResizable';
3
+ export * from './vSvgLoading';
@@ -0,0 +1,2 @@
1
+ import { Directive } from 'vue';
2
+ export declare const vDraggable: Directive;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../composables/useDraggable.js");require("vue");const u={mounted(e,a){r.useDraggable(e,a.value||{})},unmounted(e){e._cleanup?.()}};exports.vDraggable=u;
@@ -0,0 +1,14 @@
1
+ import { DirectiveBinding } from 'vue';
2
+ interface ResizeOptions {
3
+ minWidth?: number;
4
+ minHeight?: number;
5
+ maxWidth?: number;
6
+ maxHeight?: number;
7
+ }
8
+ /** main directive */
9
+ declare const vResizable: {
10
+ mounted(el: HTMLElement, binding: DirectiveBinding): void;
11
+ beforeUnmount(el: HTMLElement): void;
12
+ };
13
+ declare function applyResizable(el: HTMLElement, options?: ResizeOptions): () => void;
14
+ export { vResizable, applyResizable };
@@ -0,0 +1,21 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=4,u="v-resizable-handle",M="v-resizable-handle-style";function P(){if(document.getElementById(M))return;const t=document.createElement("style");t.id=M,t.textContent=`
2
+ .${u} {
3
+ position: absolute;
4
+ background: transparent;
5
+ z-index: 9999;
6
+ user-select: none;
7
+ touch-action: none;
8
+ opacity: 0;
9
+ }
10
+ .${u}::after {
11
+ content: '';
12
+ display:block;
13
+ width:100%;
14
+ height:100%;
15
+ border-radius:2px;
16
+ background: rgba(0,0,0,0.12);
17
+ }
18
+ .${u}.hr { cursor: ew-resize; }
19
+ .${u}.vr { cursor: ns-resize; }
20
+ .${u}.corner { cursor: nwse-resize; }
21
+ `,document.head.appendChild(t)}function x(t,i,r){let n=0,p=0;switch(t){case"hr":n=c,p=r.height-c*2;break;case"vr":n=r.width-c*2,p=c;break;case"corner":n=c*2,p=c*2;break}return i.style.width=`${n}px`,i.style.height=`${p}px`,i}function f(t,i){const r=document.createElement("div"),n=i.getBoundingClientRect();return r.className=`${u} ${t}`,x(t,r,n)}function z(t,i,r){const n=c/2;switch(i){case"left":t.style.left=`${-n}px`,t.style.top=`${c}px`,x("hr",t,r);break;case"right":t.style.left=`${r.width-n}px`,t.style.top=`${c}px`,x("hr",t,r);break;case"top":t.style.left=`${c}px`,t.style.top=`${-n}px`,x("vr",t,r);break;case"bottom":t.style.left=`${c}px`,t.style.top=`${r.height-n}px`,x("vr",t,r);break;case"bottom-right":t.style.left=`${r.width-n}px`,t.style.top=`${r.height-n}px`;break}}function _(t,i){P(),getComputedStyle(t).position==="static"&&(t.style.position="relative"),t.style.boxSizing=t.style.boxSizing||"border-box";const n={startX:0,startY:0,startW:0,startH:0,startL:0,startT:0,minW:i?.minWidth??40,minH:i?.minHeight??24,maxW:i?.maxWidth,maxH:i?.maxHeight,handlers:[]},p=f("hr",t),v=f("hr",t),b=f("vr",t),y=f("vr",t),w=f("corner",t);p.dataset.side="left",v.dataset.side="right",b.dataset.side="top",y.dataset.side="bottom",w.dataset.side="bottom-right",t.appendChild(p),t.appendChild(v),t.appendChild(b),t.appendChild(y),t.appendChild(w),n.handlers.push(p,v,b,y,w);const H=o=>{const a=o.target;if(!a||!a.dataset?.side)return;const e=a.dataset.side;o.target.setPointerCapture?.(o.pointerId),n.side=e,n.pointerId=o.pointerId;const l=t.getBoundingClientRect();n.startX=o.clientX,n.startY=o.clientY,n.startW=l.width,n.startH=l.height;const m=getComputedStyle(t),s=parseFloat(m.left||"0"),d=parseFloat(m.top||"0");n.startL=s,n.startT=d,n.onMove=h=>C(h,t,n),n.onUp=h=>S(h,t,n),window.addEventListener("pointermove",n.onMove),window.addEventListener("pointerup",n.onUp),window.addEventListener("pointercancel",n.onUp),o.preventDefault()},C=(o,a,e)=>{if(e.side===void 0)return;const l=o.clientX-e.startX,m=o.clientY-e.startY;let s=e.startW,d=e.startH,h=e.startL,L=e.startT;e.side==="right"?(s=Math.max(e.minW,e.startW+l),e.maxW&&(s=Math.min(s,e.maxW))):e.side==="left"?(s=Math.max(e.minW,e.startW-l),e.maxW&&(s=Math.min(s,e.maxW)),h=e.startL+(e.startW-s)):e.side==="bottom"?(d=Math.max(e.minH,e.startH+m),e.maxH&&(d=Math.min(d,e.maxH))):e.side==="top"?(d=Math.max(e.minH,e.startH-m),e.maxH&&(d=Math.min(d,e.maxH)),L=e.startT+(e.startH-d)):e.side==="bottom-right"&&(s=Math.max(e.minW,e.startW+l),d=Math.max(e.minH,e.startH+m),e.maxW&&(s=Math.min(s,e.maxW)),e.maxH&&(d=Math.min(d,e.maxH))),a.style.width=`${s}px`,a.style.height=`${d}px`;const g=getComputedStyle(a).position;(g==="absolute"||g==="relative"||g==="fixed")&&(a.style.left=`${h}px`,a.style.top=`${L}px`);const k=a.getBoundingClientRect();e.handlers.forEach(W=>{const U=W.dataset.side;z(W,U,k)}),o.preventDefault()},S=(o,a,e)=>{e.onMove&&(window.removeEventListener("pointermove",e.onMove),window.removeEventListener("pointerup",e.onUp),window.removeEventListener("pointercancel",e.onUp)),e.side=void 0,e.pointerId=void 0},E=()=>{const o=t.getBoundingClientRect();n.handlers.forEach(a=>{const e=a.dataset.side;a.style.position="absolute",a.style.boxSizing="content-box",z(a,e,o)})};n.handlers.forEach(o=>o.addEventListener("pointerdown",H));const $=new ResizeObserver(E);return $.observe(t),n.ro=$,E(),{destroy:()=>{n.handlers.forEach(o=>{o.removeEventListener("pointerdown",H),o.parentElement===t&&t.removeChild(o)}),n.onMove&&(window.removeEventListener("pointermove",n.onMove),window.removeEventListener("pointerup",n.onUp),window.removeEventListener("pointercancel",n.onUp)),n.ro&&n.ro.disconnect()}}}const D={mounted(t,i){const r=i.value,{destroy:n}=_(t,r);t.__v_resizable_cleanup=n},beforeUnmount(t){const i=t.__v_resizable_cleanup;i&&(i(),delete t.__v_resizable_cleanup)}};function I(t,i){const{destroy:r}=_(t,i);return r}exports.applyResizable=I;exports.vResizable=D;
@@ -0,0 +1,4 @@
1
+ export declare const vSvgLoading: {
2
+ mounted(el: HTMLElement, binding: any, vNode: any): void;
3
+ updated(el: HTMLElement, binding: any, vNode: any): void;
4
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const C=require("../constants/svgLoading.js"),y=require("vue"),v=y.ref(1e3),b=y.ref(2e3),h={mounted(l,r,t){const o=(s,a,u)=>{const c={svgClass:"",svgContent:C.svgLoadingContent,svgViewBox:"",markBgColor:"rgba(255,255,255,0.8)",markClass:"",spinnerClass:"",spinnerH:300,spinnerContent:"",zIndex:b.value++},e=Object.assign({},c,a?.arg||{}),p=`background-color:${e.markBgColor};top:0;right:0;bottom:0;left:0;margin:0;position:absolute;transition:opacity 0.3s;overflow: hidden;`,d=`position:absolute;text-align:center;left:50%;top:50%;width:100%;height:${e.spinnerH}px;`,i=document.createElement("div"),n=document.createElement("div");v.value++,i.className=`svg-loading ${e.markClass} uid-${v.value}`,n.className=`svg-loading-spinner ${e.spinnerClass}`,n.innerHTML=`${e.svgContent}`;const g=n.getElementsByTagName("svg")[0];if(e.spinnerH&&(g.setAttribute("width",`${e.spinnerH}px`),g.setAttribute("height",`${e.spinnerH}px`)),e.svgClass&&g.setAttribute("class",e.svgClass),e.svgViewBox&&g.setAttribute("viewBox",e.svgViewBox),u.ctx.markSelector=".svg-loading",e.spinnerContent){const m=document.createElement("div");m.setAttribute("style","text-align:center;"),m.innerHTML=e.spinnerContent,n.appendChild(m)}n.setAttribute("style",d),n.style.setProperty("margin-top",`${-(e.spinnerH/2)}px`),n.style.setProperty("margin-left",`${-(e.spinnerH/2)}px`),i.setAttribute("style",p),i.style.setProperty("z-index",e.zIndex),i.appendChild(n),s.style.setProperty("position","relative"),s.appendChild(i)},x=s=>1-(1-s)**3,f=(s,a=150)=>{const u=performance.now(),c=e=>{const p=e-u;if(p>=a){s.style.setProperty("opacity","0"),s?.remove();return}const d=a?x(p/a):1;s.style.setProperty("opacity",String(1-d)),requestAnimationFrame(c)};requestAnimationFrame(c)};t.ctx.fadeOut=f,t.ctx.createLoading=o,r.value&&o(l,r,t)},updated(l,r,t){if(r.value!==r.oldValue){const o=l.querySelector(t.ctx.markSelector);r.value?!o&&t.ctx.createLoading(l,r,t):o&&t.ctx.fadeOut(o)}}};exports.vSvgLoading=h;
package/cjs/index.d.ts ADDED
@@ -0,0 +1,86 @@
1
+ export * from './components';
2
+ export * from './constants';
3
+ export * from './directives';
4
+ export * from './composables';
5
+ export * from './utils';
6
+ export * from './purple-ui/index';
7
+ import * as components from './components';
8
+ export declare const install: (app: import('vue').App) => void;
9
+ export declare const version: string;
10
+ declare const _default: {
11
+ PuButton: {
12
+ new (...args: any[]): import('vue').CreateComponentPublicInstanceWithMixins<Readonly<components.ButtonProps> & Readonly<{
13
+ onClick?: ((evt: MouseEvent) => any) | undefined;
14
+ }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
15
+ click: (evt: MouseEvent) => any;
16
+ }, import('vue').PublicProps, {}, false, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {}, HTMLButtonElement, import('vue').ComponentProvideOptions, {
17
+ P: {};
18
+ B: {};
19
+ D: {};
20
+ C: {};
21
+ M: {};
22
+ Defaults: {};
23
+ }, Readonly<components.ButtonProps> & Readonly<{
24
+ onClick?: ((evt: MouseEvent) => any) | undefined;
25
+ }>, {}, {}, {}, {}, {}>;
26
+ __isFragment?: never;
27
+ __isTeleport?: never;
28
+ __isSuspense?: never;
29
+ } & import('vue').ComponentOptionsBase<Readonly<components.ButtonProps> & Readonly<{
30
+ onClick?: ((evt: MouseEvent) => any) | undefined;
31
+ }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
32
+ click: (evt: MouseEvent) => any;
33
+ }, string, {}, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & (new () => {
34
+ $slots: {
35
+ loading?(_: {}): any;
36
+ icon?(_: {}): any;
37
+ default?(_: {}): any;
38
+ };
39
+ });
40
+ PuInput: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
41
+ type: {
42
+ type: StringConstructor;
43
+ default: string;
44
+ };
45
+ size: {
46
+ type: StringConstructor;
47
+ default: string;
48
+ };
49
+ }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
50
+ type: {
51
+ type: StringConstructor;
52
+ default: string;
53
+ };
54
+ size: {
55
+ type: StringConstructor;
56
+ default: string;
57
+ };
58
+ }>> & Readonly<{}>, {
59
+ size: string;
60
+ type: string;
61
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLInputElement>;
62
+ PuTabs: {
63
+ new (...args: any[]): import('vue').CreateComponentPublicInstanceWithMixins<Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, import('vue').PublicProps, {}, true, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {}, HTMLDivElement, import('vue').ComponentProvideOptions, {
64
+ P: {};
65
+ B: {};
66
+ D: {};
67
+ C: {};
68
+ M: {};
69
+ Defaults: {};
70
+ }, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, {}>;
71
+ __isFragment?: never;
72
+ __isTeleport?: never;
73
+ __isSuspense?: never;
74
+ } & import('vue').ComponentOptionsBase<Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, {}, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & (new () => {
75
+ $slots: {
76
+ 'prev-button'?(_: {}): any;
77
+ };
78
+ });
79
+ PuColors: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
80
+ PuPrimaryColor: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
81
+ PuSecondaryColor: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLDivElement>;
82
+ PuNeutralColor: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLDivElement>;
83
+ install: (app: import('vue').App) => void;
84
+ version: string;
85
+ };
86
+ export default _default;
package/cjs/index.js ADDED
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("./components/index.js"),u=require("./constants/svgLoading.js"),n=require("./directives/vDraggable.js"),a=require("./directives/vResizable.js"),i=require("./directives/vSvgLoading.js"),c=require("./composables/useDraggable.js"),d=require("./composables/useDateFormat.js"),g=require("./composables/useOnceFn.js"),v=require("./composables/useTimeNodes.js"),p=require("./composables/useWaterFallLayout.js"),m=require("./composables/use-namespace/index.js"),r=require("./utils/vue/index.js"),e=require("./utils/util.js"),y=require("./components/button/src/button.vue.js"),_=require("./components/input/src/input.vue.js"),b=require("./components/colors/src/colors.vue.js"),q=require("./components/tabs/src/tabs.vue.js"),C=require("./components/colors/src/primary-color.vue.js"),L=require("./components/colors/src/secondary-color.vue.js"),P=require("./components/colors/src/neutral-color.vue.js"),T=require("./purple-ui/resolver.js");console.log(t);const o=r.createGlobalInstaller(Object.values(t)),l=o.install,s=o.version,F={install:l,version:s,...t};exports.svgLoadingContent=u.svgLoadingContent;exports.vDraggable=n.vDraggable;exports.applyResizable=a.applyResizable;exports.vResizable=a.vResizable;exports.vSvgLoading=i.vSvgLoading;exports.useDraggable=c.useDraggable;exports.useDateFormat=d.useDateFormat;exports.useOnceFn=g.useOnceFn;exports.useTimeNodes=v.useTimeNodes;exports.useWaterFallLayout=p.useWaterFallLayout;exports.useNamespace=m.useNamespace;exports.INSTALLED_KEY=r.INSTALLED_KEY;exports.createGlobalInstaller=r.createGlobalInstaller;exports.toLowerCase=r.toLowerCase;exports.withInstall=r.withInstall;exports.withMultiInstall=r.withMultiInstall;exports.autoCalcFileSize=e.autoCalcFileSize;exports.buildTree=e.buildTree;exports.createColors=e.createColors;exports.createOverload=e.createOverload;exports.darkenColor=e.darkenColor;exports.deepClone=e.deepClone;exports.deleteKeys=e.deleteKeys;exports.flatArr=e.flatArr;exports.getEqualOpacityColor=e.getEqualOpacityColor;exports.hasOwnProperty=e.hasOwnProperty;exports.isPlainObject=e.isPlainObject;exports.joinURLs=e.joinURLs;exports.lineBreakToComma=e.lineBreakToComma;exports.omitEmptyKeys=e.omitEmptyKeys;exports.paramsToFormData=e.paramsToFormData;exports.readTxtByEncodes=e.readTxtByEncodes;exports.readTxtFile=e.readTxtFile;exports.setURLSearchParams=e.setURLSearchParams;exports.singleton=e.singleton;exports.PuButton=y.default;exports.PuInput=_.default;exports.PuColors=b.default;exports.PuTabs=q.default;exports.PuPrimaryColor=C.default;exports.PuSecondaryColor=L.default;exports.PuNeutralColor=P.default;exports.PurpleUIResolver=T.PurpleUIResolver;exports.default=F;exports.install=l;exports.version=s;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="1.0.0";exports.version=e;
@@ -0,0 +1 @@
1
+ export * from './resolver';
@@ -0,0 +1,2 @@
1
+ import { ComponentResolver } from 'unplugin-vue-components';
2
+ export declare function PurpleUIResolver(): ComponentResolver;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../utils/vue/index.js");function t(){return{type:"component",resolve:e=>{if(e.match(/^Pu[A-Z]/))return{name:e,from:"purple-ui",sideEffects:[`purple-ui/dist/es/${r.toLowerCase(e.replace("Pu",""))}/style.css`]}}}}exports.PurpleUIResolver=t;
@@ -0,0 +1 @@
1
+ @charset "UTF-8";:root{--pu-color-primary: #937bff;--pu-color-text-darkest: #000000;--pu-color-text-base: #303131;--pu-color-text-secondary: #606062;--pu-color-text-neutral: #909093;--pu-color-text-placeholder: #b2b2b6;--pu-color-text-disabled: #cdcdd1;--pu-color-text-lightest: #ffffff;--pu-color-border-darker: #c3c3cb;--pu-color-border-dark: #d0d0d8;--pu-color-border-base: #dbdbe0;--pu-color-border-light: #e4e4e8;--pu-color-border-lighter: #ededef;--pu-color-border-extra-light: #efeff3;--pu-color-border-theme: #d4caff;--pu-color-fill-darker: #d7d7dc;--pu-color-fill-dark: #e8e8ec;--pu-color-fill-base: #ededf0;--pu-color-fill-light: #f1f1f4;--pu-color-fill-lighter: #f6f6f7;--pu-color-fill-extra-light: #f8f8f9;--pu-color-fill-theme: #f7f7fb;--pu-color-fill-blank: #ffffff;--pu-color-fill-transparent: transparent;--pu-color-primary-base: #937bff;--pu-color-primary-hover: #7d69d9;--pu-color-primary-shade-9: #9e88ff;--pu-color-primary-shade-8: #a995ff;--pu-color-primary-shade-7: #b3a3ff;--pu-color-primary-shade-6: #beb0ff;--pu-color-primary-shade-5: #c9bdff;--pu-color-primary-shade-4: #d4caff;--pu-color-primary-shade-3: #dfd7ff;--pu-color-primary-shade-2: #e9e5ff;--pu-color-primary-shade-1: #f4f2ff;--pu-color-success-base: #06b56d;--pu-color-success-hover: #059a5d;--pu-color-success-shade-9: #1fbc7c;--pu-color-success-shade-8: #38c48a;--pu-color-success-shade-7: #51cb99;--pu-color-success-shade-6: #6ad3a7;--pu-color-success-shade-5: #83dab6;--pu-color-success-shade-4: #9be1c5;--pu-color-success-shade-3: #b4e9d3;--pu-color-success-shade-2: #cdf0e2;--pu-color-success-shade-1: #e6f8f0;--pu-color-danger-base: #ee6979;--pu-color-danger-hover: #ca5967;--pu-color-danger-shade-9: #f07886;--pu-color-danger-shade-8: #f18794;--pu-color-danger-shade-7: #f396a1;--pu-color-danger-shade-6: #f5a5af;--pu-color-danger-shade-5: #f7b4bc;--pu-color-danger-shade-4: #f8c3c9;--pu-color-danger-shade-3: #fad2d7;--pu-color-danger-shade-2: #fce1e4;--pu-color-danger-shade-1: #fdf0f2;--pu-color-warning-base: #cd9a0a;--pu-color-warning-hover: #ae8309;--pu-color-warning-shade-9: #d2a422;--pu-color-warning-shade-8: #d7ae3b;--pu-color-warning-shade-7: #dcb853;--pu-color-warning-shade-6: #e1c26c;--pu-color-warning-shade-5: #e6cd85;--pu-color-warning-shade-4: #ebd79d;--pu-color-warning-shade-3: #f0e1b6;--pu-color-warning-shade-2: #f5ebce;--pu-color-warning-shade-1: #faf5e7;--pu-color-info-base: #8e8e91;--pu-color-info-hover: #79797b;--pu-color-info-shade-9: #99999c;--pu-color-info-shade-8: #a5a5a7;--pu-color-info-shade-7: #b0b0b2;--pu-color-info-shade-6: #bbbbbd;--pu-color-info-shade-5: #c7c7c8;--pu-color-info-shade-4: #d2d2d3;--pu-color-info-shade-3: #ddddde;--pu-color-info-shade-2: #e8e8e9;--pu-color-info-shade-1: #f4f4f4}*,*:before,*:after{box-sizing:border-box;font-weight:400;-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased}body{margin:0;padding:0;font-size:14px;font-family:-apple-system,BlinkMacSystemFont,Microsoft YaHei,微软雅黑,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}