@qingmingmu/components 0.1.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +128 -0
- package/es/components/app-layout/index.cjs +14 -0
- package/es/components/app-layout/index.d.cts +10 -0
- package/es/components/app-layout/index.d.mts +8 -0
- package/es/components/app-layout/index.d.ts +10 -0
- package/es/components/app-layout/index.mjs +8 -0
- package/es/components/app-layout/style/index.js +4 -0
- package/es/components/app-layout/style.css +36 -0
- package/es/components/badge/index.cjs +13 -0
- package/es/components/badge/index.d.cts +10 -0
- package/es/components/badge/index.d.mts +8 -0
- package/es/components/badge/index.d.ts +10 -0
- package/es/components/badge/index.mjs +8 -0
- package/es/components/badge/style/index.js +2 -0
- package/es/components/badge/style.css +36 -0
- package/es/components/breadcrumb/index.cjs +16 -0
- package/es/components/breadcrumb/index.d.cts +10 -0
- package/es/components/breadcrumb/index.d.mts +8 -0
- package/es/components/breadcrumb/index.d.ts +10 -0
- package/es/components/breadcrumb/index.mjs +8 -0
- package/es/components/breadcrumb/style/index.js +4 -0
- package/es/components/breadcrumb/style.css +43 -0
- package/es/components/button/index.cjs +14 -0
- package/es/components/button/index.d.cts +10 -0
- package/es/components/button/index.d.mts +10 -0
- package/es/components/button/index.d.ts +10 -0
- package/es/components/button/index.mjs +10 -0
- package/es/components/button/style/index.js +4 -0
- package/es/components/button/style.css +185 -0
- package/es/components/checkbox/index.cjs +18 -0
- package/es/components/checkbox/index.d.cts +8 -0
- package/es/components/checkbox/index.d.mts +8 -0
- package/es/components/checkbox/index.d.ts +8 -0
- package/es/components/checkbox/index.mjs +8 -0
- package/es/components/checkbox/style/index.js +4 -0
- package/es/components/checkbox/style.css +538 -0
- package/es/components/date-picker/index.cjs +22 -0
- package/es/components/date-picker/index.d.cts +13 -0
- package/es/components/date-picker/index.d.mts +11 -0
- package/es/components/date-picker/index.d.ts +13 -0
- package/es/components/date-picker/index.mjs +11 -0
- package/es/components/date-picker/style/index.js +4 -0
- package/es/components/date-picker/style.css +221 -0
- package/es/components/dialog/index.cjs +278 -0
- package/es/components/dialog/index.d.cts +133 -0
- package/es/components/dialog/index.d.mts +131 -0
- package/es/components/dialog/index.d.ts +133 -0
- package/es/components/dialog/index.mjs +269 -0
- package/es/components/dialog/style/index.js +4 -0
- package/es/components/dialog/style.css +157 -0
- package/es/components/divider/index.cjs +13 -0
- package/es/components/divider/index.d.cts +10 -0
- package/es/components/divider/index.d.mts +8 -0
- package/es/components/divider/index.d.ts +10 -0
- package/es/components/divider/index.mjs +8 -0
- package/es/components/divider/style/index.js +2 -0
- package/es/components/divider/style.css +49 -0
- package/es/components/drawer/index.cjs +18 -0
- package/es/components/drawer/index.d.cts +13 -0
- package/es/components/drawer/index.d.mts +11 -0
- package/es/components/drawer/index.d.ts +13 -0
- package/es/components/drawer/index.mjs +11 -0
- package/es/components/drawer/style/index.js +4 -0
- package/es/components/drawer/style.css +126 -0
- package/es/components/dropdown/index.cjs +19 -0
- package/es/components/dropdown/index.d.cts +11 -0
- package/es/components/dropdown/index.d.mts +9 -0
- package/es/components/dropdown/index.d.ts +11 -0
- package/es/components/dropdown/index.mjs +9 -0
- package/es/components/dropdown/style/index.js +4 -0
- package/es/components/dropdown/style.css +50 -0
- package/es/components/empty/index.cjs +15 -0
- package/es/components/empty/index.d.cts +12 -0
- package/es/components/empty/index.d.mts +10 -0
- package/es/components/empty/index.d.ts +12 -0
- package/es/components/empty/index.mjs +10 -0
- package/es/components/empty/style/index.js +4 -0
- package/es/components/empty/style.css +30 -0
- package/es/components/form/index.cjs +22 -0
- package/es/components/form/index.d.cts +10 -0
- package/es/components/form/index.d.mts +8 -0
- package/es/components/form/index.d.ts +10 -0
- package/es/components/form/index.mjs +8 -0
- package/es/components/form/style/index.js +4 -0
- package/es/components/form/style.css +70 -0
- package/es/components/grid/index.cjs +20 -0
- package/es/components/grid/index.d.cts +10 -0
- package/es/components/grid/index.d.mts +8 -0
- package/es/components/grid/index.d.ts +10 -0
- package/es/components/grid/index.mjs +8 -0
- package/es/components/grid/style/index.js +2 -0
- package/es/components/grid/style.css +45 -0
- package/es/components/icon/index.cjs +14 -0
- package/es/components/icon/index.d.cts +11 -0
- package/es/components/icon/index.d.mts +9 -0
- package/es/components/icon/index.d.ts +11 -0
- package/es/components/icon/index.mjs +9 -0
- package/es/components/icon/style/index.js +2 -0
- package/es/components/icon/style.css +437 -0
- package/es/components/input/index.cjs +18 -0
- package/es/components/input/index.d.cts +12 -0
- package/es/components/input/index.d.mts +10 -0
- package/es/components/input/index.d.ts +12 -0
- package/es/components/input/index.mjs +10 -0
- package/es/components/input/style/index.js +4 -0
- package/es/components/input/style.css +108 -0
- package/es/components/layout/index.cjs +13 -0
- package/es/components/layout/index.d.cts +10 -0
- package/es/components/layout/index.d.mts +8 -0
- package/es/components/layout/index.d.ts +10 -0
- package/es/components/layout/index.mjs +8 -0
- package/es/components/layout/style/index.js +2 -0
- package/es/components/layout/style.css +54 -0
- package/es/components/link/index.cjs +13 -0
- package/es/components/link/index.d.cts +10 -0
- package/es/components/link/index.d.mts +8 -0
- package/es/components/link/index.d.ts +10 -0
- package/es/components/link/index.mjs +8 -0
- package/es/components/link/style/index.js +2 -0
- package/es/components/link/style.css +39 -0
- package/es/components/list/index.cjs +13 -0
- package/es/components/list/index.d.cts +10 -0
- package/es/components/list/index.d.mts +8 -0
- package/es/components/list/index.d.ts +10 -0
- package/es/components/list/index.mjs +8 -0
- package/es/components/list/style/index.js +4 -0
- package/es/components/list/style.css +33 -0
- package/es/components/menu/index.cjs +18 -0
- package/es/components/menu/index.d.cts +12 -0
- package/es/components/menu/index.d.mts +10 -0
- package/es/components/menu/index.d.ts +12 -0
- package/es/components/menu/index.mjs +10 -0
- package/es/components/menu/style/index.js +4 -0
- package/es/components/menu/style.css +148 -0
- package/es/components/message/index.cjs +236 -0
- package/es/components/message/index.d.cts +92 -0
- package/es/components/message/index.d.mts +92 -0
- package/es/components/message/index.d.ts +92 -0
- package/es/components/message/index.mjs +232 -0
- package/es/components/message/style/index.js +4 -0
- package/es/components/message/style.css +121 -0
- package/es/components/notification/index.cjs +288 -0
- package/es/components/notification/index.d.cts +90 -0
- package/es/components/notification/index.d.mts +90 -0
- package/es/components/notification/index.d.ts +90 -0
- package/es/components/notification/index.mjs +284 -0
- package/es/components/notification/style/index.js +4 -0
- package/es/components/notification/style.css +191 -0
- package/es/components/pagination/index.cjs +16 -0
- package/es/components/pagination/index.d.cts +12 -0
- package/es/components/pagination/index.d.mts +10 -0
- package/es/components/pagination/index.d.ts +12 -0
- package/es/components/pagination/index.mjs +10 -0
- package/es/components/pagination/style/index.js +4 -0
- package/es/components/pagination/style.css +112 -0
- package/es/components/popover/index.cjs +17 -0
- package/es/components/popover/index.d.cts +11 -0
- package/es/components/popover/index.d.mts +9 -0
- package/es/components/popover/index.d.ts +11 -0
- package/es/components/popover/index.mjs +9 -0
- package/es/components/popover/style/index.js +4 -0
- package/es/components/popover/style.css +111 -0
- package/es/components/progress/index.cjs +15 -0
- package/es/components/progress/index.d.cts +10 -0
- package/es/components/progress/index.d.mts +8 -0
- package/es/components/progress/index.d.ts +10 -0
- package/es/components/progress/index.mjs +8 -0
- package/es/components/progress/style/index.js +4 -0
- package/es/components/progress/style.css +72 -0
- package/es/components/radio/index.cjs +20 -0
- package/es/components/radio/index.d.cts +8 -0
- package/es/components/radio/index.d.mts +8 -0
- package/es/components/radio/index.d.ts +8 -0
- package/es/components/radio/index.mjs +8 -0
- package/es/components/radio/style/index.js +4 -0
- package/es/components/radio/style.css +109 -0
- package/es/components/row/index.cjs +21 -0
- package/es/components/row/index.d.cts +287 -0
- package/es/components/row/index.d.mts +285 -0
- package/es/components/row/index.d.ts +287 -0
- package/es/components/row/index.mjs +3 -0
- package/es/components/row/style/index.js +2 -0
- package/es/components/row/style.css +2 -0
- package/es/components/select/index.cjs +20 -0
- package/es/components/select/index.d.cts +13 -0
- package/es/components/select/index.d.mts +11 -0
- package/es/components/select/index.d.ts +13 -0
- package/es/components/select/index.mjs +11 -0
- package/es/components/select/style/index.js +4 -0
- package/es/components/select/style.css +210 -0
- package/es/components/skeleton/index.cjs +13 -0
- package/es/components/skeleton/index.d.cts +10 -0
- package/es/components/skeleton/index.d.mts +8 -0
- package/es/components/skeleton/index.d.ts +10 -0
- package/es/components/skeleton/index.mjs +8 -0
- package/es/components/skeleton/style/index.js +4 -0
- package/es/components/skeleton/style.css +41 -0
- package/es/components/slider/index.cjs +18 -0
- package/es/components/slider/index.d.cts +10 -0
- package/es/components/slider/index.d.mts +8 -0
- package/es/components/slider/index.d.ts +10 -0
- package/es/components/slider/index.mjs +8 -0
- package/es/components/slider/style/index.js +4 -0
- package/es/components/slider/style.css +131 -0
- package/es/components/space/index.cjs +13 -0
- package/es/components/space/index.d.cts +10 -0
- package/es/components/space/index.d.mts +8 -0
- package/es/components/space/index.d.ts +10 -0
- package/es/components/space/index.mjs +8 -0
- package/es/components/space/style/index.js +2 -0
- package/es/components/space/style.css +38 -0
- package/es/components/splitter/index.cjs +15 -0
- package/es/components/splitter/index.d.cts +10 -0
- package/es/components/splitter/index.d.mts +8 -0
- package/es/components/splitter/index.d.ts +10 -0
- package/es/components/splitter/index.mjs +8 -0
- package/es/components/splitter/style/index.js +2 -0
- package/es/components/splitter/style.css +53 -0
- package/es/components/statistic/index.cjs +14 -0
- package/es/components/statistic/index.d.cts +10 -0
- package/es/components/statistic/index.d.mts +8 -0
- package/es/components/statistic/index.d.ts +10 -0
- package/es/components/statistic/index.mjs +8 -0
- package/es/components/statistic/style/index.js +4 -0
- package/es/components/statistic/style.css +30 -0
- package/es/components/steps/index.cjs +18 -0
- package/es/components/steps/index.d.cts +12 -0
- package/es/components/steps/index.d.mts +10 -0
- package/es/components/steps/index.d.ts +12 -0
- package/es/components/steps/index.mjs +10 -0
- package/es/components/steps/style/index.js +4 -0
- package/es/components/steps/style.css +123 -0
- package/es/components/switch/index.cjs +16 -0
- package/es/components/switch/index.d.cts +12 -0
- package/es/components/switch/index.d.mts +10 -0
- package/es/components/switch/index.d.ts +12 -0
- package/es/components/switch/index.mjs +10 -0
- package/es/components/switch/style/index.js +4 -0
- package/es/components/switch/style.css +128 -0
- package/es/components/table/index.cjs +15 -0
- package/es/components/table/index.d.cts +10 -0
- package/es/components/table/index.d.mts +8 -0
- package/es/components/table/index.d.ts +10 -0
- package/es/components/table/index.mjs +8 -0
- package/es/components/table/style/index.js +4 -0
- package/es/components/table/style.css +52 -0
- package/es/components/tabs/index.cjs +17 -0
- package/es/components/tabs/index.d.cts +12 -0
- package/es/components/tabs/index.d.mts +10 -0
- package/es/components/tabs/index.d.ts +12 -0
- package/es/components/tabs/index.mjs +10 -0
- package/es/components/tabs/style/index.js +4 -0
- package/es/components/tabs/style.css +123 -0
- package/es/components/tag/index.cjs +15 -0
- package/es/components/tag/index.d.cts +12 -0
- package/es/components/tag/index.d.mts +10 -0
- package/es/components/tag/index.d.ts +12 -0
- package/es/components/tag/index.mjs +10 -0
- package/es/components/tag/style/index.js +2 -0
- package/es/components/tag/style.css +160 -0
- package/es/components/theme-toggle/index.cjs +16 -0
- package/es/components/theme-toggle/index.d.cts +13 -0
- package/es/components/theme-toggle/index.d.mts +11 -0
- package/es/components/theme-toggle/index.d.ts +13 -0
- package/es/components/theme-toggle/index.mjs +11 -0
- package/es/components/theme-toggle/style/index.js +4 -0
- package/es/components/theme-toggle/style.css +35 -0
- package/es/components/title-bar/index.cjs +16 -0
- package/es/components/title-bar/index.d.cts +13 -0
- package/es/components/title-bar/index.d.mts +11 -0
- package/es/components/title-bar/index.d.ts +13 -0
- package/es/components/title-bar/index.mjs +11 -0
- package/es/components/title-bar/style/index.js +4 -0
- package/es/components/title-bar/style.css +46 -0
- package/es/components/tooltip/index.cjs +15 -0
- package/es/components/tooltip/index.d.cts +11 -0
- package/es/components/tooltip/index.d.mts +9 -0
- package/es/components/tooltip/index.d.ts +11 -0
- package/es/components/tooltip/index.mjs +9 -0
- package/es/components/tooltip/style/index.js +4 -0
- package/es/components/tooltip/style.css +71 -0
- package/es/components/tree/index.cjs +16 -0
- package/es/components/tree/index.d.cts +12 -0
- package/es/components/tree/index.d.mts +10 -0
- package/es/components/tree/index.d.ts +12 -0
- package/es/components/tree/index.mjs +10 -0
- package/es/components/tree/style/index.js +4 -0
- package/es/components/tree/style.css +62 -0
- package/es/components/window-controls/index.cjs +15 -0
- package/es/components/window-controls/index.d.cts +12 -0
- package/es/components/window-controls/index.d.mts +10 -0
- package/es/components/window-controls/index.d.ts +12 -0
- package/es/components/window-controls/index.mjs +10 -0
- package/es/components/window-controls/style/index.js +4 -0
- package/es/components/window-controls/style.css +35 -0
- package/es/index.cjs +221 -0
- package/es/index.d.cts +47 -0
- package/es/index.d.mts +47 -0
- package/es/index.d.ts +47 -0
- package/es/index.mjs +49 -0
- package/es/package.json +3 -0
- package/es/shared/components.1AjWnZ2u.cjs +557 -0
- package/es/shared/components.1J_ThqaI.d.cts +95 -0
- package/es/shared/components.3dqa2hsp.d.mts +132 -0
- package/es/shared/components.4UjasbrA.d.cts +51 -0
- package/es/shared/components.4UjasbrA.d.mts +51 -0
- package/es/shared/components.4UjasbrA.d.ts +51 -0
- package/es/shared/components.4lt7h-GW.d.ts +86 -0
- package/es/shared/components.54wxKDZE.mjs +156 -0
- package/es/shared/components.6EXCNxk1.cjs +160 -0
- package/es/shared/components.7VJcWbB3.mjs +61 -0
- package/es/shared/components.7wOMpfjy.d.mts +166 -0
- package/es/shared/components.B-epy07L.d.mts +586 -0
- package/es/shared/components.B0eSL1OS.d.cts +73 -0
- package/es/shared/components.B1zwpYHQ.d.cts +439 -0
- package/es/shared/components.B2Ry54jj.d.ts +272 -0
- package/es/shared/components.B4MHkqZP.d.ts +329 -0
- package/es/shared/components.B4xRhtj-.mjs +60 -0
- package/es/shared/components.B5WOm7ey.mjs +126 -0
- package/es/shared/components.B7BmMQPX.d.mts +97 -0
- package/es/shared/components.B7T7B9Ys.d.mts +73 -0
- package/es/shared/components.B8lNpbQ9.cjs +134 -0
- package/es/shared/components.BChm7h4j.d.ts +75 -0
- package/es/shared/components.BDSFrwdm.d.cts +166 -0
- package/es/shared/components.BEYwGpEo.d.ts +586 -0
- package/es/shared/components.BF2nXG8Y.cjs +64 -0
- package/es/shared/components.BG88vlnG.d.ts +159 -0
- package/es/shared/components.BGcESMXM.d.cts +192 -0
- package/es/shared/components.BGw_jYqb.d.cts +67 -0
- package/es/shared/components.BHiG-Upg.d.mts +359 -0
- package/es/shared/components.BIm7FYRN.d.ts +99 -0
- package/es/shared/components.BJSrGDgZ.d.mts +328 -0
- package/es/shared/components.BJz4u6YX.d.ts +359 -0
- package/es/shared/components.BL34tX_n.mjs +338 -0
- package/es/shared/components.BMUce5Uz.cjs +226 -0
- package/es/shared/components.BNXBaiBD.d.mts +269 -0
- package/es/shared/components.BPdCwk8C.d.ts +272 -0
- package/es/shared/components.BPsETG85.mjs +287 -0
- package/es/shared/components.BQFq0PXl.d.ts +298 -0
- package/es/shared/components.BR0HfmAS.d.mts +97 -0
- package/es/shared/components.BRHYPvpL.mjs +76 -0
- package/es/shared/components.BRK5jSxk.d.mts +192 -0
- package/es/shared/components.BUx4k59U.cjs +332 -0
- package/es/shared/components.BW1vukk6.mjs +135 -0
- package/es/shared/components.BWaRX3BY.d.ts +70 -0
- package/es/shared/components.BWrJKYmt.d.ts +338 -0
- package/es/shared/components.BZZxSpn4.d.mts +338 -0
- package/es/shared/components.BZeq4M6i.cjs +83 -0
- package/es/shared/components.B_aXqCE8.d.cts +34 -0
- package/es/shared/components.B_aXqCE8.d.mts +34 -0
- package/es/shared/components.B_aXqCE8.d.ts +34 -0
- package/es/shared/components.BaUizHWz.mjs +270 -0
- package/es/shared/components.Bar0M_1T.d.ts +132 -0
- package/es/shared/components.BcnhVfkA.d.cts +208 -0
- package/es/shared/components.Be0We_QJ.mjs +79 -0
- package/es/shared/components.BhK__sZJ.d.ts +67 -0
- package/es/shared/components.Bjw8eqP-.d.mts +327 -0
- package/es/shared/components.BkakIO1C.cjs +70 -0
- package/es/shared/components.BldJxPSz.cjs +80 -0
- package/es/shared/components.Bm5Cu9W3.mjs +358 -0
- package/es/shared/components.BmII0Zi4.d.cts +109 -0
- package/es/shared/components.Bn206h5z.d.cts +329 -0
- package/es/shared/components.Bo3WVnTy.d.ts +223 -0
- package/es/shared/components.BrbmPZbT.mjs +297 -0
- package/es/shared/components.BwmjBLGS.d.mts +126 -0
- package/es/shared/components.BxBfOAnD.d.cts +359 -0
- package/es/shared/components.BxOtwzkp.cjs +349 -0
- package/es/shared/components.By4TdR07.d.ts +327 -0
- package/es/shared/components.BzO68qwA.d.mts +95 -0
- package/es/shared/components.BzcvYRS3.d.mts +109 -0
- package/es/shared/components.BzhHVs0e.d.cts +338 -0
- package/es/shared/components.C183F57T.mjs +128 -0
- package/es/shared/components.C1PQgace.mjs +96 -0
- package/es/shared/components.C2qFTFYw.cjs +322 -0
- package/es/shared/components.C6sLxXPo.d.ts +96 -0
- package/es/shared/components.C8Nxn3Ut.d.mts +272 -0
- package/es/shared/components.C9TEQ_29.cjs +385 -0
- package/es/shared/components.C9WJVmII.mjs +71 -0
- package/es/shared/components.CAVYcOKF.cjs +132 -0
- package/es/shared/components.CBELcqkf.cjs +182 -0
- package/es/shared/components.CDS8XKPo.d.ts +257 -0
- package/es/shared/components.CDifg15S.cjs +292 -0
- package/es/shared/components.CF8Mj5bD.cjs +370 -0
- package/es/shared/components.CF_GZPuV.cjs +64 -0
- package/es/shared/components.CFfTemQ4.cjs +74 -0
- package/es/shared/components.CIjY6ZtZ.d.ts +499 -0
- package/es/shared/components.CJqqdhuY.d.cts +86 -0
- package/es/shared/components.CKbZKaMO.mjs +221 -0
- package/es/shared/components.CLBPin--.cjs +306 -0
- package/es/shared/components.CMtYH41Z.mjs +326 -0
- package/es/shared/components.CPjbxzIv.mjs +381 -0
- package/es/shared/components.CRZMSxSQ.mjs +77 -0
- package/es/shared/components.CRtd1JMp.cjs +86 -0
- package/es/shared/components.CTP-w8Dp.d.mts +85 -0
- package/es/shared/components.CUxPJ0rN.cjs +177 -0
- package/es/shared/components.CYrhfnMH.d.mts +439 -0
- package/es/shared/components.CZspoBJZ.mjs +314 -0
- package/es/shared/components.CaILt5c4.d.mts +288 -0
- package/es/shared/components.CerI7DmE.d.ts +192 -0
- package/es/shared/components.Cg0qdMDr.d.mts +272 -0
- package/es/shared/components.CgZUcq5d.d.mts +70 -0
- package/es/shared/components.ChFQqcD8.d.cts +99 -0
- package/es/shared/components.ChHlRGOd.d.mts +257 -0
- package/es/shared/components.ChaKATXZ.d.cts +132 -0
- package/es/shared/components.CjJ96MaL.d.cts +586 -0
- package/es/shared/components.CkYdyZh6.d.ts +97 -0
- package/es/shared/components.Cl7hvWLa.d.ts +208 -0
- package/es/shared/components.ClxGCZuy.cjs +67 -0
- package/es/shared/components.CmUTe-Bu.d.cts +314 -0
- package/es/shared/components.Cp1Zsk-X.mjs +231 -0
- package/es/shared/components.CpHuJl8N.cjs +109 -0
- package/es/shared/components.CqRoc5Cb.d.mts +298 -0
- package/es/shared/components.Ct1bqR7L.d.cts +82 -0
- package/es/shared/components.CtUfYC-G.cjs +256 -0
- package/es/shared/components.CtZrM_rh.mjs +58 -0
- package/es/shared/components.CwRwwkrw.mjs +397 -0
- package/es/shared/components.CxFKLC0I.mjs +68 -0
- package/es/shared/components.CxIEbUM8.d.cts +319 -0
- package/es/shared/components.CxuO1-ev.d.cts +272 -0
- package/es/shared/components.CyCDH-Vb.mjs +281 -0
- package/es/shared/components.D02eI26A.d.cts +257 -0
- package/es/shared/components.D0MDcB1D.cjs +276 -0
- package/es/shared/components.D2M7cpo2.d.cts +126 -0
- package/es/shared/components.D3HPYZ31.d.mts +223 -0
- package/es/shared/components.D3on6_fI.mjs +83 -0
- package/es/shared/components.D48GdgdJ.d.mts +208 -0
- package/es/shared/components.D4C1x9UP.cjs +318 -0
- package/es/shared/components.D4HPwnpE.mjs +363 -0
- package/es/shared/components.D4Yu07Ov.mjs +251 -0
- package/es/shared/components.D5-DJd7f.d.cts +328 -0
- package/es/shared/components.D7KK6ZxT.d.mts +67 -0
- package/es/shared/components.D8Ht88FR.mjs +100 -0
- package/es/shared/components.DB4_ULYr.cjs +405 -0
- package/es/shared/components.DCH8muDL.d.cts +75 -0
- package/es/shared/components.DCuPins-.d.mts +96 -0
- package/es/shared/components.DD-6M8N-.d.ts +314 -0
- package/es/shared/components.DDslVxoU.d.mts +86 -0
- package/es/shared/components.DEs15eJe.cjs +687 -0
- package/es/shared/components.DEwy484E.mjs +67 -0
- package/es/shared/components.DFar9ZQj.cjs +285 -0
- package/es/shared/components.DG3K9DCE.d.ts +439 -0
- package/es/shared/components.DG96RpCG.d.cts +288 -0
- package/es/shared/components.DHIKrYhN.d.ts +95 -0
- package/es/shared/components.DHeLTopf.d.mts +143 -0
- package/es/shared/components.DJ0m5kYN.mjs +548 -0
- package/es/shared/components.DJlTQabT.cjs +103 -0
- package/es/shared/components.DKtogC94.mjs +212 -0
- package/es/shared/components.DLVoUYPv.d.ts +328 -0
- package/es/shared/components.DLjhu3mO.cjs +53 -0
- package/es/shared/components.DNZ8j6Sz.d.cts +269 -0
- package/es/shared/components.DOWndnHb.d.ts +82 -0
- package/es/shared/components.DPGfB1k8.d.cts +223 -0
- package/es/shared/components.DScCDEoT.d.cts +97 -0
- package/es/shared/components.DUidQ77e.cjs +11 -0
- package/es/shared/components.Danqf6j7.d.cts +272 -0
- package/es/shared/components.DclwYyRy.mjs +50 -0
- package/es/shared/components.DdczIXhc.d.mts +82 -0
- package/es/shared/components.De49eXQJ.d.cts +97 -0
- package/es/shared/components.Dfe4D-8g.d.mts +99 -0
- package/es/shared/components.DiS0nfa_.d.mts +314 -0
- package/es/shared/components.DlTJ-jbM.cjs +235 -0
- package/es/shared/components.DnCclrOD.d.cts +70 -0
- package/es/shared/components.DnW9eqJM.cjs +79 -0
- package/es/shared/components.DoInWOkI.d.cts +85 -0
- package/es/shared/components.DpN4r8M6.d.ts +85 -0
- package/es/shared/components.DqdBSuxX.mjs +175 -0
- package/es/shared/components.DtZ1M9RX.d.mts +159 -0
- package/es/shared/components.DuT8IQV_.cjs +71 -0
- package/es/shared/components.Dy6mSGFp.d.ts +97 -0
- package/es/shared/components.Dy9SYm12.d.ts +73 -0
- package/es/shared/components.Dz2FXew2.cjs +371 -0
- package/es/shared/components.FNPonG8w.d.ts +269 -0
- package/es/shared/components.FkGOusVh.d.cts +143 -0
- package/es/shared/components.Mnb2AHkq.d.cts +298 -0
- package/es/shared/components.NdJ3_JnU.d.cts +499 -0
- package/es/shared/components.OJRSZE6i.d.cts +9 -0
- package/es/shared/components.OJRSZE6i.d.mts +9 -0
- package/es/shared/components.OJRSZE6i.d.ts +9 -0
- package/es/shared/components.P8ob4csG.d.mts +499 -0
- package/es/shared/components.PG8w8Qmv.mjs +64 -0
- package/es/shared/components.SHnZTfnN.d.ts +143 -0
- package/es/shared/components.VbnCY-yZ.cjs +58 -0
- package/es/shared/components.Xb8fQVYs.d.ts +109 -0
- package/es/shared/components.aCfs5Zx4.mjs +106 -0
- package/es/shared/components.aEHtkYll.mjs +176 -0
- package/es/shared/components.b0j47s07.d.ts +288 -0
- package/es/shared/components.b5GjJzDh.d.cts +96 -0
- package/es/shared/components.dIJZSGar.d.mts +329 -0
- package/es/shared/components.dk3Zmpq5.cjs +61 -0
- package/es/shared/components.e6NGwmyk.mjs +680 -0
- package/es/shared/components.l2LF8U7V.mjs +55 -0
- package/es/shared/components.ls2ruUoQ.cjs +140 -0
- package/es/shared/components.pAb-8zT2.mjs +316 -0
- package/es/shared/components.pcqpp-6-.mjs +9 -0
- package/es/shared/components.qRljarsw.d.cts +159 -0
- package/es/shared/components.r5I_hKLX.cjs +222 -0
- package/es/shared/components.rFCN7LCl.d.mts +75 -0
- package/es/shared/components.tMYsd3jV.d.ts +126 -0
- package/es/shared/components.tM_tp13v.d.mts +319 -0
- package/es/shared/components.uyAvjCWL.d.cts +327 -0
- package/es/shared/components.v_RwCQEf.d.ts +166 -0
- package/es/shared/components.w4bSE8TV.cjs +99 -0
- package/es/shared/components.x9BKOa3W.d.ts +319 -0
- package/package.json +72 -0
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
import { PropType, Ref, ComputedRef, defineComponent, useId, ref, useSlots, computed, watch, onMounted, onBeforeUnmount, openBlock, createElementBlock, Fragment, createCommentVNode, createElementVNode, normalizeClass, renderSlot, createBlock, Teleport, createVNode, Transition, withCtx, normalizeStyle, createTextVNode, toDisplayString } from 'vue';
|
|
2
|
+
import { u as usePositioning } from './components.4UjasbrA.js';
|
|
3
|
+
import { _ as _export_sfc } from './components.OJRSZE6i.js';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* QmPopover 组件类型定义(03-T10:类型先行,组件体系设计 §6.4)
|
|
7
|
+
*
|
|
8
|
+
* 与 QmTooltip 的区别:
|
|
9
|
+
* - Popover 是卡片式浮层(标题 + 内容 + 操作区),默认 click 触发,可承载交互;
|
|
10
|
+
* - Tooltip 是纯文字提示,默认 hover。
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
/** 四向放置方向(与 use-positioning 的 Placement 对齐) */
|
|
14
|
+
type PopoverPlacement = 'top' | 'bottom' | 'left' | 'right';
|
|
15
|
+
/** 触发方式:click 点击切换 / hover 悬停 / focus 聚焦 */
|
|
16
|
+
type PopoverTrigger = 'click' | 'hover' | 'focus';
|
|
17
|
+
/** props 声明 */
|
|
18
|
+
declare const popoverProps: {
|
|
19
|
+
/** 标题文案(也可用 title 插槽覆盖) */
|
|
20
|
+
readonly title: {
|
|
21
|
+
readonly type: StringConstructor;
|
|
22
|
+
readonly default: "";
|
|
23
|
+
};
|
|
24
|
+
/** 弹出位置:top/bottom/left/right,默认 bottom */
|
|
25
|
+
readonly placement: {
|
|
26
|
+
readonly type: PropType<PopoverPlacement>;
|
|
27
|
+
readonly default: "bottom";
|
|
28
|
+
};
|
|
29
|
+
/** 触发方式,默认 click */
|
|
30
|
+
readonly trigger: {
|
|
31
|
+
readonly type: PropType<PopoverTrigger>;
|
|
32
|
+
readonly default: "click";
|
|
33
|
+
};
|
|
34
|
+
/** 禁用整个触发器(不展开) */
|
|
35
|
+
readonly disabled: {
|
|
36
|
+
readonly type: BooleanConstructor;
|
|
37
|
+
readonly default: false;
|
|
38
|
+
};
|
|
39
|
+
/** 是否显示连接箭头,默认 true */
|
|
40
|
+
readonly showArrow: {
|
|
41
|
+
readonly type: BooleanConstructor;
|
|
42
|
+
readonly default: true;
|
|
43
|
+
};
|
|
44
|
+
/** 自定义宽度(CSS 宽度字符串,如 '240px');缺省走 min/max-width Token */
|
|
45
|
+
readonly width: {
|
|
46
|
+
readonly type: StringConstructor;
|
|
47
|
+
readonly default: "";
|
|
48
|
+
};
|
|
49
|
+
/** Teleport 挂载目标,默认 body */
|
|
50
|
+
readonly appendTo: {
|
|
51
|
+
readonly type: StringConstructor;
|
|
52
|
+
readonly default: "body";
|
|
53
|
+
};
|
|
54
|
+
/** 受控显隐(v-model:visible);未传即非受控,组件内自维护 */
|
|
55
|
+
readonly visible: {
|
|
56
|
+
readonly type: BooleanConstructor;
|
|
57
|
+
readonly default: undefined;
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
/** emits 声明 */
|
|
61
|
+
interface PopoverEmits {
|
|
62
|
+
/** 显隐同步(受控 v-model:visible) */
|
|
63
|
+
'update:visible': [value: boolean];
|
|
64
|
+
/** 显示时触发 */
|
|
65
|
+
'show': [];
|
|
66
|
+
/** 隐藏时触发 */
|
|
67
|
+
'hide': [];
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* usePopover 行为层(03-T10)
|
|
72
|
+
*
|
|
73
|
+
* 职责(与视图解耦,可独立单测):
|
|
74
|
+
* - 显隐状态:受控(v-model:visible)/ 非受控双模式,统一由 setOpen 收敛;
|
|
75
|
+
* - 触发管理:click 切换 / hover 悬停(带延迟防抖,移到面板不关闭)/ focus 聚焦;
|
|
76
|
+
* - 关闭契约:点击外部(document mousedown 捕获)、Esc、再次点击 trigger;
|
|
77
|
+
* - disabled 短路:禁用时不展开、不响应触发;
|
|
78
|
+
* - 无泄漏契约:定时器与 document 监听在 close / dispose 时清理。
|
|
79
|
+
*
|
|
80
|
+
* 定位计算不在本层(复用 composables/use-positioning,组件层组合)。
|
|
81
|
+
*/
|
|
82
|
+
|
|
83
|
+
/** hover 展开延迟(ms):避免快速划过时闪烁 */
|
|
84
|
+
declare const HOVER_OPEN_DELAY = 80;
|
|
85
|
+
/** hover 关闭延迟(ms):从触发器移到面板的窗口,期间取消关闭 */
|
|
86
|
+
declare const HOVER_CLOSE_DELAY = 100;
|
|
87
|
+
interface UsePopoverOptions {
|
|
88
|
+
/** 受控显隐(props.visible,未传即 undefined → 非受控) */
|
|
89
|
+
visible: Ref<boolean | undefined>;
|
|
90
|
+
/** 触发方式 */
|
|
91
|
+
trigger: Ref<'click' | 'hover' | 'focus'>;
|
|
92
|
+
/** 禁用 */
|
|
93
|
+
disabled: Ref<boolean>;
|
|
94
|
+
/** 触发器元素(外部点击判定 + 面板包含判定) */
|
|
95
|
+
triggerRef: Ref<HTMLElement | null>;
|
|
96
|
+
/** 浮层面板元素(Teleport 挂载后) */
|
|
97
|
+
panelRef: Ref<HTMLElement | null>;
|
|
98
|
+
emitUpdate: (value: boolean) => void;
|
|
99
|
+
emitShow: () => void;
|
|
100
|
+
emitHide: () => void;
|
|
101
|
+
}
|
|
102
|
+
interface UsePopoverReturn {
|
|
103
|
+
/** 当前是否展开(受控时跟随 props.visible) */
|
|
104
|
+
open: ComputedRef<boolean>;
|
|
105
|
+
/** 展开 */
|
|
106
|
+
show: () => void;
|
|
107
|
+
/** 关闭 */
|
|
108
|
+
hide: () => void;
|
|
109
|
+
/** 切换 */
|
|
110
|
+
toggle: () => void;
|
|
111
|
+
onTriggerClick: () => void;
|
|
112
|
+
onTriggerMouseenter: () => void;
|
|
113
|
+
onTriggerMouseleave: () => void;
|
|
114
|
+
onTriggerFocus: () => void;
|
|
115
|
+
onTriggerBlur: () => void;
|
|
116
|
+
onPanelMouseenter: () => void;
|
|
117
|
+
onPanelMouseleave: () => void;
|
|
118
|
+
/** 卸载清理 */
|
|
119
|
+
dispose: () => void;
|
|
120
|
+
}
|
|
121
|
+
declare function usePopover(options: UsePopoverOptions): UsePopoverReturn;
|
|
122
|
+
|
|
123
|
+
var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
124
|
+
...{ name: "QmPopover" },
|
|
125
|
+
__name: "popover",
|
|
126
|
+
props: popoverProps,
|
|
127
|
+
emits: ["update:visible", "show", "hide"],
|
|
128
|
+
setup(__props, { expose: __expose, emit: __emit }) {
|
|
129
|
+
__expose();
|
|
130
|
+
const props = __props;
|
|
131
|
+
const emit = __emit;
|
|
132
|
+
const uid = useId();
|
|
133
|
+
const panelId = `qm-popover-panel-${uid}`;
|
|
134
|
+
const headerId = `qm-popover-header-${uid}`;
|
|
135
|
+
const triggerRef = ref(null);
|
|
136
|
+
const panelRef = ref(null);
|
|
137
|
+
const popoverSlots = useSlots();
|
|
138
|
+
const visibleRef = computed(() => props.visible);
|
|
139
|
+
const triggerMode = computed(() => props.trigger);
|
|
140
|
+
const disabled = computed(() => props.disabled);
|
|
141
|
+
const popover = usePopover({
|
|
142
|
+
visible: visibleRef,
|
|
143
|
+
trigger: triggerMode,
|
|
144
|
+
disabled,
|
|
145
|
+
triggerRef,
|
|
146
|
+
panelRef,
|
|
147
|
+
emitUpdate: (value) => emit("update:visible", value),
|
|
148
|
+
emitShow: () => emit("show"),
|
|
149
|
+
emitHide: () => emit("hide")
|
|
150
|
+
});
|
|
151
|
+
const { open } = popover;
|
|
152
|
+
const placementRef = computed(() => props.placement);
|
|
153
|
+
const {
|
|
154
|
+
positionStyle,
|
|
155
|
+
updatePosition,
|
|
156
|
+
startAutoReposition,
|
|
157
|
+
stopAutoReposition,
|
|
158
|
+
dispose: disposePositioning
|
|
159
|
+
} = usePositioning({
|
|
160
|
+
triggerRef,
|
|
161
|
+
panelRef,
|
|
162
|
+
placement: placementRef,
|
|
163
|
+
offset: 10,
|
|
164
|
+
// --qm-popover-offset
|
|
165
|
+
flip: true
|
|
166
|
+
});
|
|
167
|
+
const cardStyle = computed(() => {
|
|
168
|
+
const style = { ...positionStyle.value };
|
|
169
|
+
if (props.width)
|
|
170
|
+
style.width = props.width;
|
|
171
|
+
return style;
|
|
172
|
+
});
|
|
173
|
+
const hasHeader = computed(() => Boolean(props.title) || Boolean(popoverSlots.title));
|
|
174
|
+
watch(
|
|
175
|
+
open,
|
|
176
|
+
(val) => {
|
|
177
|
+
if (val) {
|
|
178
|
+
void updatePosition();
|
|
179
|
+
startAutoReposition();
|
|
180
|
+
} else {
|
|
181
|
+
stopAutoReposition();
|
|
182
|
+
}
|
|
183
|
+
},
|
|
184
|
+
{ flush: "post" }
|
|
185
|
+
);
|
|
186
|
+
onMounted(() => {
|
|
187
|
+
if (open.value)
|
|
188
|
+
void updatePosition();
|
|
189
|
+
});
|
|
190
|
+
onBeforeUnmount(() => {
|
|
191
|
+
stopAutoReposition();
|
|
192
|
+
disposePositioning();
|
|
193
|
+
popover.dispose();
|
|
194
|
+
});
|
|
195
|
+
const __returned__ = { props, emit, uid, panelId, headerId, triggerRef, panelRef, popoverSlots, visibleRef, triggerMode, disabled, popover, open, placementRef, positionStyle, updatePosition, startAutoReposition, stopAutoReposition, disposePositioning, cardStyle, hasHeader };
|
|
196
|
+
Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
|
|
197
|
+
return __returned__;
|
|
198
|
+
}
|
|
199
|
+
});
|
|
200
|
+
|
|
201
|
+
const _hoisted_1 = [
|
|
202
|
+
"tabindex",
|
|
203
|
+
"aria-expanded",
|
|
204
|
+
"aria-controls",
|
|
205
|
+
"aria-disabled"
|
|
206
|
+
];
|
|
207
|
+
const _hoisted_2 = ["aria-labelledby", "aria-label"];
|
|
208
|
+
const _hoisted_3 = {
|
|
209
|
+
key: 0,
|
|
210
|
+
class: "qm-popover__arrow",
|
|
211
|
+
"aria-hidden": "true"
|
|
212
|
+
};
|
|
213
|
+
const _hoisted_4 = { class: "qm-popover__body" };
|
|
214
|
+
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
215
|
+
return openBlock(), createElementBlock(
|
|
216
|
+
Fragment,
|
|
217
|
+
null,
|
|
218
|
+
[
|
|
219
|
+
createCommentVNode(" 触发器(default 插槽);包装承担 button 语义以合法携带 aria-expanded/controls "),
|
|
220
|
+
createElementVNode("span", {
|
|
221
|
+
ref: "triggerRef",
|
|
222
|
+
class: normalizeClass(["qm-popover__trigger", { "qm-popover__trigger--disabled": $setup.disabled }]),
|
|
223
|
+
role: "button",
|
|
224
|
+
tabindex: $setup.disabled ? -1 : 0,
|
|
225
|
+
"aria-expanded": $setup.open,
|
|
226
|
+
"aria-controls": $setup.open ? $setup.panelId : undefined,
|
|
227
|
+
"aria-haspopup": "true",
|
|
228
|
+
"aria-disabled": $setup.disabled || undefined,
|
|
229
|
+
onClick: _cache[0] || (_cache[0] = (...args) => $setup.popover.onTriggerClick && $setup.popover.onTriggerClick(...args)),
|
|
230
|
+
onMouseenter: _cache[1] || (_cache[1] = (...args) => $setup.popover.onTriggerMouseenter && $setup.popover.onTriggerMouseenter(...args)),
|
|
231
|
+
onMouseleave: _cache[2] || (_cache[2] = (...args) => $setup.popover.onTriggerMouseleave && $setup.popover.onTriggerMouseleave(...args)),
|
|
232
|
+
onFocus: _cache[3] || (_cache[3] = (...args) => $setup.popover.onTriggerFocus && $setup.popover.onTriggerFocus(...args)),
|
|
233
|
+
onBlur: _cache[4] || (_cache[4] = (...args) => $setup.popover.onTriggerBlur && $setup.popover.onTriggerBlur(...args))
|
|
234
|
+
}, [renderSlot(_ctx.$slots, "default")], 42, _hoisted_1),
|
|
235
|
+
createCommentVNode(" 浮层卡片(Teleport 到 appendTo,fixed 定位) "),
|
|
236
|
+
(openBlock(), createBlock(Teleport, { to: _ctx.appendTo }, [createVNode(Transition, { name: "qm-popover" }, {
|
|
237
|
+
default: withCtx(() => [$setup.open ? (openBlock(), createElementBlock("div", {
|
|
238
|
+
key: 0,
|
|
239
|
+
id: $setup.panelId,
|
|
240
|
+
ref: "panelRef",
|
|
241
|
+
class: normalizeClass(["qm-popover", [`qm-popover--${_ctx.placement}`, { "qm-popover--no-arrow": !_ctx.showArrow }]]),
|
|
242
|
+
style: normalizeStyle($setup.cardStyle),
|
|
243
|
+
role: "dialog",
|
|
244
|
+
"aria-modal": "false",
|
|
245
|
+
"aria-labelledby": $setup.hasHeader ? $setup.headerId : undefined,
|
|
246
|
+
"aria-label": $setup.hasHeader ? undefined : "弹出卡片",
|
|
247
|
+
onMouseenter: _cache[5] || (_cache[5] = (...args) => $setup.popover.onPanelMouseenter && $setup.popover.onPanelMouseenter(...args)),
|
|
248
|
+
onMouseleave: _cache[6] || (_cache[6] = (...args) => $setup.popover.onPanelMouseleave && $setup.popover.onPanelMouseleave(...args))
|
|
249
|
+
}, [
|
|
250
|
+
_ctx.showArrow ? (openBlock(), createElementBlock("div", _hoisted_3)) : createCommentVNode("v-if", true),
|
|
251
|
+
$setup.hasHeader ? (openBlock(), createElementBlock("div", {
|
|
252
|
+
key: 1,
|
|
253
|
+
id: $setup.headerId,
|
|
254
|
+
class: "qm-popover__header"
|
|
255
|
+
}, [renderSlot(_ctx.$slots, "title", {}, () => [createTextVNode(
|
|
256
|
+
toDisplayString(_ctx.title),
|
|
257
|
+
1
|
|
258
|
+
/* TEXT */
|
|
259
|
+
)])])) : createCommentVNode("v-if", true),
|
|
260
|
+
createElementVNode("div", _hoisted_4, [renderSlot(_ctx.$slots, "content")])
|
|
261
|
+
], 46, _hoisted_2)) : createCommentVNode("v-if", true)]),
|
|
262
|
+
_: 3
|
|
263
|
+
})], 8, ["to"]))
|
|
264
|
+
],
|
|
265
|
+
64
|
|
266
|
+
/* STABLE_FRAGMENT */
|
|
267
|
+
);
|
|
268
|
+
}
|
|
269
|
+
var Popover = /*#__PURE__*/ _export_sfc(_sfc_main, [["render", _sfc_render], ["__file", "F:\\软件开发\\青冥组件系统\\packages\\components\\src\\components\\popover\\popover.vue"]]);
|
|
270
|
+
|
|
271
|
+
export { HOVER_CLOSE_DELAY as H, Popover as c, HOVER_OPEN_DELAY as d, popoverProps as p, usePopover as u };
|
|
272
|
+
export type { PopoverEmits as P, UsePopoverOptions as U, PopoverPlacement as a, PopoverTrigger as b, UsePopoverReturn as e };
|
|
@@ -0,0 +1,329 @@
|
|
|
1
|
+
import { PropType, Ref, InjectionKey, ComputedRef, defineComponent, ref, toRef, computed, onMounted, openBlock, createElementBlock, normalizeClass, createCommentVNode, createElementVNode, renderSlot, createTextVNode, toDisplayString } from 'vue';
|
|
2
|
+
import { _ as _export_sfc } from './components.OJRSZE6i.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* QmRadio / QmRadioGroup 组件类型定义(组件体系设计 §6.4:类型先行)
|
|
6
|
+
* 03-T6:单选框 + 单选组、三档尺寸、水平/垂直排列、禁用、键盘方向键导航、可访问性
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
/** 选项值(字符串 / 数字 / 布尔) */
|
|
10
|
+
type RadioValue = string | number | boolean;
|
|
11
|
+
/** 尺寸(§6.3:尺寸枚举统一 small | medium | large) */
|
|
12
|
+
type RadioSize = 'small' | 'medium' | 'large';
|
|
13
|
+
/** 组排列方向 */
|
|
14
|
+
type RadioDirection = 'horizontal' | 'vertical';
|
|
15
|
+
/**
|
|
16
|
+
* ============================================================
|
|
17
|
+
* QmRadio(单选项)props
|
|
18
|
+
* ============================================================
|
|
19
|
+
*/
|
|
20
|
+
declare const radioProps: {
|
|
21
|
+
/** 受控值:单独使用即自身选中态;组模式下由 QmRadioGroup 注入,勿直传 */
|
|
22
|
+
readonly modelValue: {
|
|
23
|
+
readonly type: PropType<RadioValue | undefined>;
|
|
24
|
+
readonly default: undefined;
|
|
25
|
+
};
|
|
26
|
+
/** 选项值(组模式下用于选中比对;必填) */
|
|
27
|
+
readonly value: {
|
|
28
|
+
readonly type: PropType<RadioValue>;
|
|
29
|
+
readonly required: true;
|
|
30
|
+
};
|
|
31
|
+
/** 禁用单项(整组禁用由 group.disabled 统一接管) */
|
|
32
|
+
readonly disabled: {
|
|
33
|
+
readonly type: BooleanConstructor;
|
|
34
|
+
readonly default: false;
|
|
35
|
+
};
|
|
36
|
+
/** 标签文案(缺省时回退默认插槽内容) */
|
|
37
|
+
readonly label: {
|
|
38
|
+
readonly type: StringConstructor;
|
|
39
|
+
readonly default: "";
|
|
40
|
+
};
|
|
41
|
+
/** 尺寸:缺省回退组 size,再回退 medium */
|
|
42
|
+
readonly size: {
|
|
43
|
+
readonly type: PropType<RadioSize | undefined>;
|
|
44
|
+
readonly default: undefined;
|
|
45
|
+
};
|
|
46
|
+
/** 原生 name:组模式下由 group 注入以共享浏览器原生单选行为 */
|
|
47
|
+
readonly name: {
|
|
48
|
+
readonly type: StringConstructor;
|
|
49
|
+
readonly default: "";
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
/** emits 声明 */
|
|
53
|
+
interface RadioEmits {
|
|
54
|
+
'update:modelValue': [value: RadioValue];
|
|
55
|
+
/** 选中变化时触发(携带当前值) */
|
|
56
|
+
'change': [value: RadioValue];
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* ============================================================
|
|
60
|
+
* QmRadioGroup(单选组)props
|
|
61
|
+
* ============================================================
|
|
62
|
+
*/
|
|
63
|
+
declare const radioGroupProps: {
|
|
64
|
+
/** 受控值(v-model):选中项的 value */
|
|
65
|
+
readonly modelValue: {
|
|
66
|
+
readonly type: PropType<RadioValue | undefined>;
|
|
67
|
+
readonly default: undefined;
|
|
68
|
+
};
|
|
69
|
+
/** 整组禁用 */
|
|
70
|
+
readonly disabled: {
|
|
71
|
+
readonly type: BooleanConstructor;
|
|
72
|
+
readonly default: false;
|
|
73
|
+
};
|
|
74
|
+
/** 统一尺寸(子项未单独指定时回退到此) */
|
|
75
|
+
readonly size: {
|
|
76
|
+
readonly type: PropType<RadioSize>;
|
|
77
|
+
readonly default: "medium";
|
|
78
|
+
};
|
|
79
|
+
/** 排列方向 */
|
|
80
|
+
readonly direction: {
|
|
81
|
+
readonly type: PropType<RadioDirection>;
|
|
82
|
+
readonly default: "horizontal";
|
|
83
|
+
};
|
|
84
|
+
/** 原生 name:组内所有 QmRadio 共享,确保浏览器原生单选行为 */
|
|
85
|
+
readonly name: {
|
|
86
|
+
readonly type: StringConstructor;
|
|
87
|
+
readonly default: "";
|
|
88
|
+
};
|
|
89
|
+
};
|
|
90
|
+
/** emits 声明 */
|
|
91
|
+
interface RadioGroupEmits {
|
|
92
|
+
'update:modelValue': [value: RadioValue];
|
|
93
|
+
/** 选中变化时触发(携带当前值) */
|
|
94
|
+
'change': [value: RadioValue];
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* useRadio / useRadioGroup 行为层(03-T6 §3 / §4)
|
|
99
|
+
*
|
|
100
|
+
* 职责(与视图解耦,可独立单测):
|
|
101
|
+
* - 组上下文 provide/inject:modelValue / disabled / size / name 由组统一注入;
|
|
102
|
+
* - 选中态管理:组内 select 触发 update:modelValue + change;单独使用支持受控/非受控;
|
|
103
|
+
* - 键盘契约(无障碍规范 §12.2 / ARIA radio pattern):
|
|
104
|
+
* · roving tabindex——组内选中项 tabindex=0,其余 -1;
|
|
105
|
+
* · ↑↓←→ 在组内循环移动选中并触发 change;Tab 进入组聚焦当前选中项;Space/Enter 选中;
|
|
106
|
+
* - 禁用守卫:整组禁用 / 单项禁用均拦截 select 与键盘移动;
|
|
107
|
+
* - 纯函数(findNextEnabledIndex / 方向键判定)独立导出,便于 jsdom 单测。
|
|
108
|
+
*/
|
|
109
|
+
|
|
110
|
+
interface RadioItem {
|
|
111
|
+
/** 选项值 */
|
|
112
|
+
value: RadioValue;
|
|
113
|
+
/** 单项禁用态(响应式) */
|
|
114
|
+
disabled: Ref<boolean>;
|
|
115
|
+
/** 根 label 元素(键盘导航时 focus() 落点) */
|
|
116
|
+
el: Ref<HTMLElement | null>;
|
|
117
|
+
}
|
|
118
|
+
/** 组上下文(group provide → item inject) */
|
|
119
|
+
interface RadioGroupContext {
|
|
120
|
+
/** 当前选中值(响应式) */
|
|
121
|
+
modelValue: Ref<RadioValue | undefined>;
|
|
122
|
+
/** 整组禁用 */
|
|
123
|
+
disabled: Ref<boolean>;
|
|
124
|
+
/** 统一尺寸 */
|
|
125
|
+
size: Ref<RadioSize>;
|
|
126
|
+
/** 原生 name(组内共享,浏览器原生单选行为) */
|
|
127
|
+
name: Ref<string>;
|
|
128
|
+
/** 子项列表(按注册顺序) */
|
|
129
|
+
items: Ref<RadioItem[]>;
|
|
130
|
+
/** 选中某值(emit update:modelValue + change;禁用守卫) */
|
|
131
|
+
select: (value: RadioValue) => void;
|
|
132
|
+
/** 子项注册 / 注销 */
|
|
133
|
+
register: (item: RadioItem) => void;
|
|
134
|
+
unregister: (item: RadioItem) => void;
|
|
135
|
+
/** 组内键盘导航入口(item keydown 透传到组) */
|
|
136
|
+
onItemKeydown: (item: RadioItem, event: KeyboardEvent) => void;
|
|
137
|
+
}
|
|
138
|
+
/** provide/inject key */
|
|
139
|
+
declare const RADIO_GROUP_KEY: InjectionKey<RadioGroupContext>;
|
|
140
|
+
/**
|
|
141
|
+
* 在 items 中从 fromIndex 起按 delta 循环移动到下一个「非禁用」项,返回新索引。
|
|
142
|
+
* 全禁用 / 空列表返回 -1。
|
|
143
|
+
*/
|
|
144
|
+
declare function findNextEnabledIndex(items: RadioItem[], fromIndex: number, delta: number): number;
|
|
145
|
+
/** 是否为「向后」方向键(Down / Right:索引 +1) */
|
|
146
|
+
declare function isNextKey(key: string): boolean;
|
|
147
|
+
/** 是否为「向前」方向键(Up / Left:索引 -1) */
|
|
148
|
+
declare function isPrevKey(key: string): boolean;
|
|
149
|
+
interface UseRadioGroupOptions {
|
|
150
|
+
modelValue: Ref<RadioValue | undefined>;
|
|
151
|
+
disabled: Ref<boolean>;
|
|
152
|
+
size: Ref<RadioSize>;
|
|
153
|
+
/** 原生 name */
|
|
154
|
+
name: Ref<string>;
|
|
155
|
+
emitUpdate: (value: RadioValue) => void;
|
|
156
|
+
emitChange: (value: RadioValue) => void;
|
|
157
|
+
}
|
|
158
|
+
declare function useRadioGroup(options: UseRadioGroupOptions): RadioGroupContext;
|
|
159
|
+
interface UseRadioItemOptions {
|
|
160
|
+
value: Ref<RadioValue>;
|
|
161
|
+
disabled: Ref<boolean>;
|
|
162
|
+
size: Ref<RadioSize | undefined>;
|
|
163
|
+
name: Ref<string>;
|
|
164
|
+
/** 自身 modelValue(非组模式受控值;组模式下由组覆盖) */
|
|
165
|
+
modelValue: Ref<RadioValue | undefined>;
|
|
166
|
+
/** 根 label 元素 */
|
|
167
|
+
el: Ref<HTMLElement | null>;
|
|
168
|
+
emitUpdate: (value: RadioValue) => void;
|
|
169
|
+
emitChange: (value: RadioValue) => void;
|
|
170
|
+
}
|
|
171
|
+
interface UseRadioItemReturn {
|
|
172
|
+
/** 是否处于 QmRadioGroup 内 */
|
|
173
|
+
inGroup: ComputedRef<boolean>;
|
|
174
|
+
/** 是否选中(组内取组 modelValue,否则自身受控/非受控值) */
|
|
175
|
+
checked: ComputedRef<boolean>;
|
|
176
|
+
/** 实际生效禁用态(组禁用 OR 单项禁用) */
|
|
177
|
+
isDisabled: ComputedRef<boolean>;
|
|
178
|
+
/** 实际生效尺寸(单项 > 组 > medium) */
|
|
179
|
+
effectiveSize: ComputedRef<RadioSize>;
|
|
180
|
+
/** 实际生效原生 name(组内由组注入) */
|
|
181
|
+
effectiveName: ComputedRef<string>;
|
|
182
|
+
/** roving tabindex:组内选中项 0 其余 -1;非组内 0;禁用 -1 */
|
|
183
|
+
tabindex: ComputedRef<number>;
|
|
184
|
+
/** 选中(点击 / Space / Enter) */
|
|
185
|
+
check: () => void;
|
|
186
|
+
/** input keydown 透传(组内走组导航;Space/Enter 选中) */
|
|
187
|
+
onKeydown: (event: KeyboardEvent) => void;
|
|
188
|
+
/** 注册到组(onMounted 调用) */
|
|
189
|
+
registerSelf: () => void;
|
|
190
|
+
}
|
|
191
|
+
declare function useRadioItem(options: UseRadioItemOptions): UseRadioItemReturn;
|
|
192
|
+
|
|
193
|
+
var _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
194
|
+
...{ name: "QmRadio" },
|
|
195
|
+
__name: "radio",
|
|
196
|
+
props: radioProps,
|
|
197
|
+
emits: ["update:modelValue", "change"],
|
|
198
|
+
setup(__props, { expose: __expose, emit: __emit }) {
|
|
199
|
+
__expose();
|
|
200
|
+
const props = __props;
|
|
201
|
+
const emit = __emit;
|
|
202
|
+
const rootRef = ref(null);
|
|
203
|
+
const inputRef = ref(null);
|
|
204
|
+
const item = useRadioItem({
|
|
205
|
+
value: toRef(props, "value"),
|
|
206
|
+
disabled: toRef(props, "disabled"),
|
|
207
|
+
size: toRef(props, "size"),
|
|
208
|
+
name: toRef(props, "name"),
|
|
209
|
+
modelValue: toRef(props, "modelValue"),
|
|
210
|
+
el: rootRef,
|
|
211
|
+
emitUpdate: (value) => emit("update:modelValue", value),
|
|
212
|
+
emitChange: (value) => emit("change", value)
|
|
213
|
+
});
|
|
214
|
+
const { checked, isDisabled, effectiveSize, effectiveName, tabindex, check, onKeydown } = item;
|
|
215
|
+
const rootClass = computed(() => [
|
|
216
|
+
"qm-radio",
|
|
217
|
+
`qm-radio--${effectiveSize.value}`,
|
|
218
|
+
{
|
|
219
|
+
"qm-radio--checked": checked.value,
|
|
220
|
+
"qm-radio--disabled": isDisabled.value
|
|
221
|
+
}
|
|
222
|
+
]);
|
|
223
|
+
function onChange() {
|
|
224
|
+
check();
|
|
225
|
+
}
|
|
226
|
+
onMounted(() => {
|
|
227
|
+
item.registerSelf();
|
|
228
|
+
});
|
|
229
|
+
const __returned__ = { props, emit, rootRef, inputRef, item, checked, isDisabled, effectiveSize, effectiveName, tabindex, check, onKeydown, rootClass, onChange };
|
|
230
|
+
Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
|
|
231
|
+
return __returned__;
|
|
232
|
+
}
|
|
233
|
+
});
|
|
234
|
+
|
|
235
|
+
const _hoisted_1$1 = [
|
|
236
|
+
"name",
|
|
237
|
+
"value",
|
|
238
|
+
"checked",
|
|
239
|
+
"disabled",
|
|
240
|
+
"tabindex",
|
|
241
|
+
"aria-checked"
|
|
242
|
+
];
|
|
243
|
+
const _hoisted_2 = { class: "qm-radio__label" };
|
|
244
|
+
function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
245
|
+
return openBlock(), createElementBlock(
|
|
246
|
+
"label",
|
|
247
|
+
{
|
|
248
|
+
ref: "rootRef",
|
|
249
|
+
class: normalizeClass($setup.rootClass)
|
|
250
|
+
},
|
|
251
|
+
[
|
|
252
|
+
createCommentVNode(" 原生 radio:视觉隐藏但覆盖整个 label,保留聚焦/点击/键盘可访问性 "),
|
|
253
|
+
createElementVNode("input", {
|
|
254
|
+
ref: "inputRef",
|
|
255
|
+
class: "qm-radio__original",
|
|
256
|
+
type: "radio",
|
|
257
|
+
name: $setup.effectiveName,
|
|
258
|
+
value: _ctx.value,
|
|
259
|
+
checked: $setup.checked,
|
|
260
|
+
disabled: $setup.isDisabled,
|
|
261
|
+
tabindex: $setup.tabindex,
|
|
262
|
+
"aria-checked": $setup.checked,
|
|
263
|
+
onChange: $setup.onChange,
|
|
264
|
+
onKeydown: _cache[0] || (_cache[0] = (...args) => $setup.onKeydown && $setup.onKeydown(...args))
|
|
265
|
+
}, null, 40, _hoisted_1$1),
|
|
266
|
+
createCommentVNode(" 自定义圆点(视觉层,aria-hidden 避免与原生 input 语义重复;选中态纯色填满) "),
|
|
267
|
+
_cache[1] || (_cache[1] = createElementVNode(
|
|
268
|
+
"span",
|
|
269
|
+
{
|
|
270
|
+
class: "qm-radio__dot",
|
|
271
|
+
"aria-hidden": "true"
|
|
272
|
+
},
|
|
273
|
+
null,
|
|
274
|
+
-1
|
|
275
|
+
/* CACHED */
|
|
276
|
+
)),
|
|
277
|
+
createCommentVNode(" 文案 "),
|
|
278
|
+
createElementVNode("span", _hoisted_2, [renderSlot(_ctx.$slots, "default", {}, () => [createTextVNode(
|
|
279
|
+
toDisplayString(_ctx.label),
|
|
280
|
+
1
|
|
281
|
+
/* TEXT */
|
|
282
|
+
)])])
|
|
283
|
+
],
|
|
284
|
+
2
|
|
285
|
+
/* CLASS */
|
|
286
|
+
);
|
|
287
|
+
}
|
|
288
|
+
var Radio = /*#__PURE__*/ _export_sfc(_sfc_main$1, [["render", _sfc_render$1], ["__file", "F:\\软件开发\\青冥组件系统\\packages\\components\\src\\components\\radio\\radio.vue"]]);
|
|
289
|
+
|
|
290
|
+
var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
291
|
+
...{ name: "QmRadioGroup" },
|
|
292
|
+
__name: "radio-group",
|
|
293
|
+
props: radioGroupProps,
|
|
294
|
+
emits: ["update:modelValue", "change"],
|
|
295
|
+
setup(__props, { expose: __expose, emit: __emit }) {
|
|
296
|
+
__expose();
|
|
297
|
+
const props = __props;
|
|
298
|
+
const emit = __emit;
|
|
299
|
+
useRadioGroup({
|
|
300
|
+
modelValue: toRef(props, "modelValue"),
|
|
301
|
+
disabled: toRef(props, "disabled"),
|
|
302
|
+
size: toRef(props, "size"),
|
|
303
|
+
name: toRef(props, "name"),
|
|
304
|
+
emitUpdate: (value) => emit("update:modelValue", value),
|
|
305
|
+
emitChange: (value) => emit("change", value)
|
|
306
|
+
});
|
|
307
|
+
const rootClass = computed(() => [
|
|
308
|
+
"qm-radio-group",
|
|
309
|
+
`qm-radio-group--${props.direction}`,
|
|
310
|
+
{ "qm-radio-group--disabled": props.disabled }
|
|
311
|
+
]);
|
|
312
|
+
const __returned__ = { props, emit, rootClass };
|
|
313
|
+
Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
|
|
314
|
+
return __returned__;
|
|
315
|
+
}
|
|
316
|
+
});
|
|
317
|
+
|
|
318
|
+
const _hoisted_1 = ["aria-disabled"];
|
|
319
|
+
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
320
|
+
return openBlock(), createElementBlock("div", {
|
|
321
|
+
class: normalizeClass($setup.rootClass),
|
|
322
|
+
role: "radiogroup",
|
|
323
|
+
"aria-disabled": _ctx.disabled || undefined
|
|
324
|
+
}, [renderSlot(_ctx.$slots, "default")], 10, _hoisted_1);
|
|
325
|
+
}
|
|
326
|
+
var radioGroup = /*#__PURE__*/ _export_sfc(_sfc_main, [["render", _sfc_render], ["__file", "F:\\软件开发\\青冥组件系统\\packages\\components\\src\\components\\radio\\radio-group.vue"]]);
|
|
327
|
+
|
|
328
|
+
export { Radio as R, RADIO_GROUP_KEY as a, findNextEnabledIndex as k, isNextKey as l, isPrevKey as m, radioGroupProps as n, radioProps as o, useRadioItem as p, radioGroup as r, useRadioGroup as u };
|
|
329
|
+
export type { UseRadioGroupOptions as U, RadioDirection as b, RadioEmits as c, RadioGroupContext as d, RadioGroupEmits as e, RadioItem as f, RadioSize as g, RadioValue as h, UseRadioItemOptions as i, UseRadioItemReturn as j };
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { defineComponent, useSlots, computed, openBlock, createElementBlock, normalizeClass, createElementVNode, renderSlot, normalizeStyle, createCommentVNode } from 'vue';
|
|
2
|
+
import { _ as _export_sfc } from './components.pcqpp-6-.mjs';
|
|
3
|
+
|
|
4
|
+
const appLayoutProps = {
|
|
5
|
+
/** 侧边栏宽度(数字 px 或任意 CSS 长度字符串) */
|
|
6
|
+
sidebarWidth: { type: [String, Number], default: 220 },
|
|
7
|
+
/** 是否折叠侧边栏(宽度收为 0,内容隐藏) */
|
|
8
|
+
collapsed: { type: Boolean, default: false }
|
|
9
|
+
};
|
|
10
|
+
function normalizeSidebarWidth(width) {
|
|
11
|
+
return typeof width === "number" ? `${width}px` : width;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
15
|
+
...{ name: "QmAppLayout" },
|
|
16
|
+
__name: "app-layout",
|
|
17
|
+
props: appLayoutProps,
|
|
18
|
+
setup(__props, { expose: __expose }) {
|
|
19
|
+
__expose();
|
|
20
|
+
const props = __props;
|
|
21
|
+
const slots = useSlots();
|
|
22
|
+
const hasSidebar = computed(() => Boolean(slots.sidebar));
|
|
23
|
+
const sidebarStyle = computed(() => {
|
|
24
|
+
const width = props.collapsed ? "0px" : normalizeSidebarWidth(props.sidebarWidth);
|
|
25
|
+
return { width };
|
|
26
|
+
});
|
|
27
|
+
const __returned__ = { props, slots, hasSidebar, sidebarStyle };
|
|
28
|
+
Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
|
|
29
|
+
return __returned__;
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
const _hoisted_1 = { class: "qm-app-layout__titlebar" };
|
|
34
|
+
const _hoisted_2 = { class: "qm-app-layout__body" };
|
|
35
|
+
const _hoisted_3 = { class: "qm-app-layout__content" };
|
|
36
|
+
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
37
|
+
return openBlock(), createElementBlock(
|
|
38
|
+
"div",
|
|
39
|
+
{
|
|
40
|
+
class: normalizeClass(["qm-app-layout", { "qm-app-layout--collapsed": _ctx.collapsed }]),
|
|
41
|
+
"data-qm": "app-layout"
|
|
42
|
+
},
|
|
43
|
+
[createElementVNode("div", _hoisted_1, [renderSlot(_ctx.$slots, "titlebar")]), createElementVNode("div", _hoisted_2, [$setup.hasSidebar ? (openBlock(), createElementBlock(
|
|
44
|
+
"aside",
|
|
45
|
+
{
|
|
46
|
+
key: 0,
|
|
47
|
+
class: "qm-app-layout__sidebar",
|
|
48
|
+
style: normalizeStyle($setup.sidebarStyle)
|
|
49
|
+
},
|
|
50
|
+
[renderSlot(_ctx.$slots, "sidebar")],
|
|
51
|
+
4
|
|
52
|
+
/* STYLE */
|
|
53
|
+
)) : createCommentVNode("v-if", true), createElementVNode("main", _hoisted_3, [renderSlot(_ctx.$slots, "default")])])],
|
|
54
|
+
2
|
|
55
|
+
/* CLASS */
|
|
56
|
+
);
|
|
57
|
+
}
|
|
58
|
+
const AppLayout = /*#__PURE__*/ _export_sfc(_sfc_main, [["render", _sfc_render], ["__file", "F:\\软件开发\\青冥组件系统\\packages\\components\\src\\components\\app-layout\\app-layout.vue"]]);
|
|
59
|
+
|
|
60
|
+
export { AppLayout as A, appLayoutProps as a, normalizeSidebarWidth as n };
|