neko-ui 2.8.21 → 2.8.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/avatar/README.mdx +10 -0
- package/es/avatar/examples/basic.md +14 -0
- package/es/avatar/examples/group.md +57 -0
- package/es/avatar/examples/size.md +21 -0
- package/es/avatar/group.js +2 -2
- package/es/avatar/group.js.map +1 -1
- package/es/avatar/index.js +2 -2
- package/es/avatar/index.js.map +1 -1
- package/es/avatar/style.js +2 -2
- package/es/avatar/style.js.map +1 -1
- package/es/back-top/README.mdx +10 -0
- package/es/back-top/examples/basic.md +19 -0
- package/es/back-top/examples/mount.md +36 -0
- package/es/back-top/examples/target.md +46 -0
- package/es/back-top/index.js +1 -1
- package/es/back-top/index.js.map +1 -1
- package/es/basic-config/README.mdx +11 -0
- package/es/button/README.mdx +10 -0
- package/es/button/examples/basic.md +21 -0
- package/es/button/examples/block.md +33 -0
- package/es/button/examples/circle.md +21 -0
- package/es/button/examples/danger.md +23 -0
- package/es/button/examples/dashed.md +21 -0
- package/es/button/examples/disabled.md +35 -0
- package/es/button/examples/fill.md +21 -0
- package/es/button/examples/flat.md +21 -0
- package/es/button/examples/ghost.md +21 -0
- package/es/button/examples/icon.md +30 -0
- package/es/button/examples/link.md +21 -0
- package/es/button/examples/size.md +23 -0
- package/es/button/index.js +1 -1
- package/es/button/index.js.map +1 -1
- package/es/button/style.js +1 -0
- package/es/button/style.js.map +1 -1
- package/es/capture-screen/README.mdx +10 -0
- package/es/capture-screen/examples/basic.md +13 -0
- package/es/capture-screen/examples/custom-save.md +30 -0
- package/es/capture-screen/examples/preview.md +13 -0
- package/es/capture-screen/examples/recorder-save.md +13 -0
- package/es/capture-screen/index.js +1 -1
- package/es/capture-screen/index.js.map +1 -1
- package/es/carousel/README.mdx +10 -0
- package/es/carousel/examples/autoplay.md +21 -0
- package/es/carousel/examples/basic.md +23 -0
- package/es/carousel/examples/dots.md +23 -0
- package/es/carousel/examples/header.md +38 -0
- package/es/carousel/index.js +1 -1
- package/es/carousel/index.js.map +1 -1
- package/es/checkbox/README.mdx +10 -0
- package/es/checkbox/examples/basic.md +31 -0
- package/es/checkbox/examples/check-all.md +37 -0
- package/es/checkbox/examples/disabled-all.md +28 -0
- package/es/checkbox/examples/disabled-option.md +35 -0
- package/es/checkbox/examples/field-names.md +40 -0
- package/es/checkbox/examples/status.md +37 -0
- package/es/checkbox/examples/vertical.md +36 -0
- package/es/checkbox/index.js +1 -1
- package/es/checkbox/index.js.map +1 -1
- package/es/code/README.mdx +10 -0
- package/es/code/examples/basic.md +19 -0
- package/es/code/examples/diff.md +45 -0
- package/es/code/examples/line-number.md +18 -0
- package/es/code/examples/live-edit.md +20 -0
- package/es/code/examples/toolbar.md +18 -0
- package/es/code/index.js +2 -2
- package/es/code/index.js.map +1 -1
- package/es/code/worker.js.map +1 -1
- package/es/color-palette/README.mdx +10 -0
- package/es/color-palette/examples/default-value.md +25 -0
- package/es/color-palette/examples/hexa.md +13 -0
- package/es/color-palette/examples/hsla.md +13 -0
- package/es/color-palette/examples/rgba.md +13 -0
- package/es/color-palette/index.js +1 -1
- package/es/color-palette/index.js.map +1 -1
- package/es/color-picker/README.mdx +10 -0
- package/es/color-picker/examples/basic.md +12 -0
- package/es/color-picker/examples/default-value.md +20 -0
- package/es/color-picker/examples/size.md +17 -0
- package/es/color-picker/index.js +1 -1
- package/es/color-picker/index.js.map +1 -1
- package/es/cron/README.mdx +10 -0
- package/es/cron/begin-interval.js.map +1 -1
- package/es/cron/day.js.map +1 -1
- package/es/cron/examples/basic.md +19 -0
- package/es/cron/examples/card.md +12 -0
- package/es/cron/examples/show-cron.md +12 -0
- package/es/cron/hour.js +1 -1
- package/es/cron/hour.js.map +1 -1
- package/es/cron/index.js +1 -1
- package/es/cron/index.js.map +1 -1
- package/es/cron/item.js.map +1 -1
- package/es/cron/minute.js +1 -1
- package/es/cron/minute.js.map +1 -1
- package/es/cron/month.js +1 -1
- package/es/cron/month.js.map +1 -1
- package/es/cron/period.js.map +1 -1
- package/es/cron/second.js +1 -1
- package/es/cron/second.js.map +1 -1
- package/es/cron/some.js.map +1 -1
- package/es/date-picker/README.mdx +10 -0
- package/es/date-picker/date.js +1 -1
- package/es/date-picker/date.js.map +1 -1
- package/es/date-picker/dayjs.js +1 -1
- package/es/date-picker/dayjs.js.map +1 -1
- package/es/date-picker/examples/basic.md +24 -0
- package/es/date-picker/examples/date.md +13 -0
- package/es/date-picker/examples/disbaled.md +13 -0
- package/es/date-picker/examples/header.md +13 -0
- package/es/date-picker/examples/month.md +13 -0
- package/es/date-picker/examples/time.md +15 -0
- package/es/date-picker/examples/today.md +13 -0
- package/es/date-picker/examples/year.md +13 -0
- package/es/date-picker/index.js +1 -1
- package/es/date-picker/index.js.map +1 -1
- package/es/date-picker/month.js +1 -1
- package/es/date-picker/month.js.map +1 -1
- package/es/date-picker/panel.js +1 -1
- package/es/date-picker/panel.js.map +1 -1
- package/es/date-picker/time.js +1 -1
- package/es/date-picker/time.js.map +1 -1
- package/es/date-picker/year.js +1 -1
- package/es/date-picker/year.js.map +1 -1
- package/es/dropdown/README.mdx +10 -0
- package/es/dropdown/examples/arrow.md +59 -0
- package/es/dropdown/examples/basic.md +17 -0
- package/es/dropdown/examples/click.md +45 -0
- package/es/dropdown/examples/context-menu.md +66 -0
- package/es/dropdown/examples/field-names.md +44 -0
- package/es/dropdown/examples/icon.md +30 -0
- package/es/dropdown/examples/multiple.md +45 -0
- package/es/dropdown/examples/no-data.md +16 -0
- package/es/dropdown/examples/placement.md +59 -0
- package/es/dropdown/examples/toggle.md +36 -0
- package/es/dropdown/index.js +1 -1
- package/es/dropdown/index.js.map +1 -1
- package/es/empty/index.js.map +1 -1
- package/es/from-schema/index.js +1 -1
- package/es/from-schema/index.js.map +1 -1
- package/es/highlight-text/README.mdx +10 -0
- package/es/highlight-text/examples/basic.md +19 -0
- package/es/highlight-text/examples/mut.md +47 -0
- package/es/highlight-text/examples/not-hightlight.md +19 -0
- package/es/highlight-text/index.js +2 -2
- package/es/highlight-text/index.js.map +1 -1
- package/es/img/README.mdx +10 -0
- package/es/img/examples/basic.md +17 -0
- package/es/img/examples/close-mask.md +21 -0
- package/es/img/examples/disabled.md +16 -0
- package/es/img/examples/error.md +13 -0
- package/es/img/examples/esc.md +21 -0
- package/es/img/examples/open-change.md +25 -0
- package/es/img/index.js +1 -1
- package/es/img/index.js.map +1 -1
- package/es/img/lazy.js +1 -1
- package/es/img/lazy.js.map +1 -1
- package/es/index.js +1 -1
- package/es/index.js.map +1 -1
- package/es/input/README.mdx +10 -0
- package/es/input/examples/basic.md +31 -0
- package/es/input/examples/prefix&suffix.md +33 -0
- package/es/input/examples/size.md +21 -0
- package/es/input/examples/status.md +23 -0
- package/es/input/index.js +1 -1
- package/es/input/index.js.map +1 -1
- package/es/input-number/README.mdx +10 -0
- package/es/input-number/examples/basic.md +26 -0
- package/es/input-number/examples/formatter.md +36 -0
- package/es/input-number/examples/max-min.md +13 -0
- package/es/input-number/index.js.map +1 -1
- package/es/katex/README.mdx +42 -0
- package/es/katex/examples/block.md +25 -0
- package/es/katex/examples/inline.md +19 -0
- package/es/md/README.mdx +10 -0
- package/es/md/examples/in-children.md +23 -0
- package/es/md/examples/in-text.md +32 -0
- package/es/md/examples/math.md +36 -0
- package/es/md/index.js +1 -1
- package/es/md/index.js.map +1 -1
- package/es/menu/README.mdx +10 -0
- package/es/menu/examples/basic.md +17 -0
- package/es/menu/examples/field-names.md +42 -0
- package/es/menu/examples/icon.md +125 -0
- package/es/menu/examples/multiple.md +42 -0
- package/es/menu/index.js +1 -1
- package/es/menu/index.js.map +1 -1
- package/es/modal/README.mdx +10 -0
- package/es/modal/examples/basic.md +56 -0
- package/es/modal/examples/close-icon.md +57 -0
- package/es/modal/examples/esc-closable.md +64 -0
- package/es/modal/examples/mask-blur.md +56 -0
- package/es/modal/examples/mask-closable.md +64 -0
- package/es/modal/index.js +1 -1
- package/es/modal/index.js.map +1 -1
- package/es/notification/README.mdx +11 -0
- package/es/notification/examples/basic.md +35 -0
- package/es/notification/examples/close.md +35 -0
- package/es/notification/examples/type.md +84 -0
- package/es/notification/examples/update.md +52 -0
- package/es/notification/index.js.map +1 -1
- package/es/notification/notification.js +1 -1
- package/es/notification/notification.js.map +1 -1
- package/es/pagination/README.mdx +10 -0
- package/es/pagination/examples/basic.md +13 -0
- package/es/pagination/examples/onchange.md +29 -0
- package/es/pagination/examples/size.md +23 -0
- package/es/pagination/examples/total-text.md +42 -0
- package/es/pagination/index.js +1 -1
- package/es/pagination/index.js.map +1 -1
- package/es/popover/README.mdx +10 -0
- package/es/popover/examples/basic.md +35 -0
- package/es/popover/examples/click.md +15 -0
- package/es/popover/examples/context-menu.md +58 -0
- package/es/popover/examples/controlled.md +47 -0
- package/es/popover/index.js +1 -1
- package/es/popover/index.js.map +1 -1
- package/es/prism/css.js.map +1 -1
- package/es/prism/index.js.map +1 -1
- package/es/provider/README.mdx +10 -0
- package/es/provider/examples/scheme.md +14 -0
- package/es/provider/index.js.map +1 -1
- package/es/radio/README.mdx +10 -0
- package/es/radio/examples/basic.md +19 -0
- package/es/radio/examples/disabled-option.md +19 -0
- package/es/radio/examples/disabled.md +19 -0
- package/es/radio/examples/field-names.md +39 -0
- package/es/radio/examples/layout-vertical.md +19 -0
- package/es/radio/examples/status.md +31 -0
- package/es/radio/index.js +1 -1
- package/es/radio/index.js.map +1 -1
- package/es/segmented/README.mdx +10 -0
- package/es/segmented/examples/basic.md +18 -0
- package/es/segmented/examples/custom-field-names.md +43 -0
- package/es/segmented/examples/disabled-option.md +29 -0
- package/es/segmented/examples/disabled.md +18 -0
- package/es/segmented/examples/icon.md +28 -0
- package/es/segmented/examples/options.md +21 -0
- package/es/segmented/index.js +2 -2
- package/es/segmented/index.js.map +1 -1
- package/es/select/README.mdx +10 -0
- package/es/select/examples/basic.md +44 -0
- package/es/select/examples/disabled-option.md +21 -0
- package/es/select/examples/disabled.md +24 -0
- package/es/select/examples/field-names.md +40 -0
- package/es/select/examples/item-suffix.md +84 -0
- package/es/select/examples/multiple.md +61 -0
- package/es/select/examples/no-data.md +12 -0
- package/es/select/examples/prefix-icon.md +74 -0
- package/es/select/index.js +1 -1
- package/es/select/index.js.map +1 -1
- package/es/skeleton/README.mdx +10 -0
- package/es/skeleton/examples/animation.md +13 -0
- package/es/skeleton/examples/avatar.md +13 -0
- package/es/skeleton/examples/basic.md +12 -0
- package/es/skeleton/examples/rows.md +13 -0
- package/es/skeleton/examples/title.md +12 -0
- package/es/skeleton/index.js +3 -3
- package/es/skeleton/index.js.map +1 -1
- package/es/spin/README.mdx +10 -0
- package/es/spin/examples/basic.md +67 -0
- package/es/spin/index.js +4 -4
- package/es/spin/index.js.map +1 -1
- package/es/switch/README.mdx +10 -0
- package/es/switch/examples/basic.md +24 -0
- package/es/switch/examples/checked-text.md +17 -0
- package/es/switch/examples/disabled.md +15 -0
- package/es/switch/examples/loading.md +17 -0
- package/es/switch/index.js +1 -1
- package/es/switch/index.js.map +1 -1
- package/es/table/README.mdx +10 -0
- package/es/table/examples/basic.md +29 -0
- package/es/table/examples/key.md +29 -0
- package/es/table/examples/order.md +29 -0
- package/es/table/examples/pagination.md +67 -0
- package/es/table/examples/render.md +92 -0
- package/es/table/examples/size.md +52 -0
- package/es/table/examples/summary.md +40 -0
- package/es/table/index.js +1 -1
- package/es/table/index.js.map +1 -1
- package/es/tabs/README.mdx +10 -0
- package/es/tabs/examples/add-remove.md +115 -0
- package/es/tabs/examples/animated.md +33 -0
- package/es/tabs/examples/basic.md +32 -0
- package/es/tabs/examples/card.md +33 -0
- package/es/tabs/examples/center.md +33 -0
- package/es/tabs/examples/disabled-tab.md +34 -0
- package/es/tabs/examples/disabled.md +33 -0
- package/es/tabs/examples/extra.md +65 -0
- package/es/tabs/index.js +2 -2
- package/es/tabs/index.js.map +1 -1
- package/es/tag/README.mdx +10 -0
- package/es/tag/examples/basic.md +28 -0
- package/es/tag/examples/bordered.md +19 -0
- package/es/tag/examples/color.md +25 -0
- package/es/tag/examples/icon.md +21 -0
- package/es/tag/examples/type.md +19 -0
- package/es/tag/index.js +3 -3
- package/es/tag/index.js.map +1 -1
- package/es/theme/README.mdx +10 -0
- package/es/theme/examples/colors.md +123 -0
- package/es/theme/examples/theme.md +19 -0
- package/es/theme/index.js +1 -1
- package/es/theme/index.js.map +1 -1
- package/es/tree/README.mdx +10 -0
- package/es/tree/examples/basic.md +108 -0
- package/es/tree/examples/custom-render.md +115 -0
- package/es/tree/examples/direction.md +100 -0
- package/es/tree/examples/field-names.md +114 -0
- package/es/tree/examples/multiple.md +117 -0
- package/es/tree/examples/readonly.md +90 -0
- package/es/tree/examples/render-tree-string1.md +70 -0
- package/es/tree/examples/render-tree-string2.md +52 -0
- package/es/tree/examples/schema.md +130 -0
- package/es/tree/examples/size.md +125 -0
- package/es/tree/examples/toggle.md +71 -0
- package/es/tree/index.js +1 -1
- package/es/tree/index.js.map +1 -1
- package/es/tree/register.js.map +1 -1
- package/es/typography/README.mdx +10 -0
- package/es/typography/examples/basic.md +27 -0
- package/es/typography/examples/tag.md +25 -0
- package/es/typography/examples/truncated.md +17 -0
- package/es/typography/index.js +3 -3
- package/es/typography/index.js.map +1 -1
- package/eslint.config.mjs +9 -0
- package/lib/avatar/README.mdx +10 -0
- package/lib/avatar/examples/basic.md +14 -0
- package/lib/avatar/examples/group.md +57 -0
- package/lib/avatar/examples/size.md +21 -0
- package/lib/avatar/group.js.map +1 -1
- package/lib/avatar/index.js +2 -2
- package/lib/avatar/index.js.map +1 -1
- package/lib/avatar/style.js +2 -2
- package/lib/avatar/style.js.map +1 -1
- package/lib/back-top/README.mdx +10 -0
- package/lib/back-top/examples/basic.md +19 -0
- package/lib/back-top/examples/mount.md +36 -0
- package/lib/back-top/examples/target.md +46 -0
- package/lib/back-top/index.js +1 -1
- package/lib/back-top/index.js.map +1 -1
- package/lib/basic-config/README.mdx +11 -0
- package/lib/button/README.mdx +10 -0
- package/lib/button/examples/basic.md +21 -0
- package/lib/button/examples/block.md +33 -0
- package/lib/button/examples/circle.md +21 -0
- package/lib/button/examples/danger.md +23 -0
- package/lib/button/examples/dashed.md +21 -0
- package/lib/button/examples/disabled.md +35 -0
- package/lib/button/examples/fill.md +21 -0
- package/lib/button/examples/flat.md +21 -0
- package/lib/button/examples/ghost.md +21 -0
- package/lib/button/examples/icon.md +30 -0
- package/lib/button/examples/link.md +21 -0
- package/lib/button/examples/size.md +23 -0
- package/lib/button/index.js +1 -1
- package/lib/button/index.js.map +1 -1
- package/lib/button/style.js +1 -0
- package/lib/button/style.js.map +1 -1
- package/lib/capture-screen/README.mdx +10 -0
- package/lib/capture-screen/examples/basic.md +13 -0
- package/lib/capture-screen/examples/custom-save.md +30 -0
- package/lib/capture-screen/examples/preview.md +13 -0
- package/lib/capture-screen/examples/recorder-save.md +13 -0
- package/lib/capture-screen/index.js +1 -1
- package/lib/capture-screen/index.js.map +1 -1
- package/lib/carousel/README.mdx +10 -0
- package/lib/carousel/examples/autoplay.md +21 -0
- package/lib/carousel/examples/basic.md +23 -0
- package/lib/carousel/examples/dots.md +23 -0
- package/lib/carousel/examples/header.md +38 -0
- package/lib/carousel/index.js +1 -1
- package/lib/carousel/index.js.map +1 -1
- package/lib/checkbox/README.mdx +10 -0
- package/lib/checkbox/examples/basic.md +31 -0
- package/lib/checkbox/examples/check-all.md +37 -0
- package/lib/checkbox/examples/disabled-all.md +28 -0
- package/lib/checkbox/examples/disabled-option.md +35 -0
- package/lib/checkbox/examples/field-names.md +40 -0
- package/lib/checkbox/examples/status.md +37 -0
- package/lib/checkbox/examples/vertical.md +36 -0
- package/lib/checkbox/index.js +1 -1
- package/lib/checkbox/index.js.map +1 -1
- package/lib/code/README.mdx +10 -0
- package/lib/code/examples/basic.md +19 -0
- package/lib/code/examples/diff.md +45 -0
- package/lib/code/examples/line-number.md +18 -0
- package/lib/code/examples/live-edit.md +20 -0
- package/lib/code/examples/toolbar.md +18 -0
- package/lib/code/index.js +2 -2
- package/lib/code/index.js.map +1 -1
- package/lib/code/worker.js.map +1 -1
- package/lib/color-palette/README.mdx +10 -0
- package/lib/color-palette/examples/default-value.md +25 -0
- package/lib/color-palette/examples/hexa.md +13 -0
- package/lib/color-palette/examples/hsla.md +13 -0
- package/lib/color-palette/examples/rgba.md +13 -0
- package/lib/color-palette/index.js +1 -1
- package/lib/color-palette/index.js.map +1 -1
- package/lib/color-picker/README.mdx +10 -0
- package/lib/color-picker/examples/basic.md +12 -0
- package/lib/color-picker/examples/default-value.md +20 -0
- package/lib/color-picker/examples/size.md +17 -0
- package/lib/color-picker/index.js +1 -1
- package/lib/color-picker/index.js.map +1 -1
- package/lib/cron/README.mdx +10 -0
- package/lib/cron/begin-interval.js.map +1 -1
- package/lib/cron/day.js.map +1 -1
- package/lib/cron/examples/basic.md +19 -0
- package/lib/cron/examples/card.md +12 -0
- package/lib/cron/examples/show-cron.md +12 -0
- package/lib/cron/hour.js +1 -1
- package/lib/cron/hour.js.map +1 -1
- package/lib/cron/index.js.map +1 -1
- package/lib/cron/item.js.map +1 -1
- package/lib/cron/minute.js +1 -1
- package/lib/cron/minute.js.map +1 -1
- package/lib/cron/month.js +1 -1
- package/lib/cron/month.js.map +1 -1
- package/lib/cron/period.js.map +1 -1
- package/lib/cron/second.js +1 -1
- package/lib/cron/second.js.map +1 -1
- package/lib/cron/some.js.map +1 -1
- package/lib/date-picker/README.mdx +10 -0
- package/lib/date-picker/date.js.map +1 -1
- package/lib/date-picker/dayjs.js +1 -1
- package/lib/date-picker/dayjs.js.map +1 -1
- package/lib/date-picker/examples/basic.md +24 -0
- package/lib/date-picker/examples/date.md +13 -0
- package/lib/date-picker/examples/disbaled.md +13 -0
- package/lib/date-picker/examples/header.md +13 -0
- package/lib/date-picker/examples/month.md +13 -0
- package/lib/date-picker/examples/time.md +15 -0
- package/lib/date-picker/examples/today.md +13 -0
- package/lib/date-picker/examples/year.md +13 -0
- package/lib/date-picker/index.js +1 -1
- package/lib/date-picker/index.js.map +1 -1
- package/lib/date-picker/month.js.map +1 -1
- package/lib/date-picker/panel.js +1 -1
- package/lib/date-picker/panel.js.map +1 -1
- package/lib/date-picker/time.js.map +1 -1
- package/lib/date-picker/year.js.map +1 -1
- package/lib/dropdown/README.mdx +10 -0
- package/lib/dropdown/examples/arrow.md +59 -0
- package/lib/dropdown/examples/basic.md +17 -0
- package/lib/dropdown/examples/click.md +45 -0
- package/lib/dropdown/examples/context-menu.md +66 -0
- package/lib/dropdown/examples/field-names.md +44 -0
- package/lib/dropdown/examples/icon.md +30 -0
- package/lib/dropdown/examples/multiple.md +45 -0
- package/lib/dropdown/examples/no-data.md +16 -0
- package/lib/dropdown/examples/placement.md +59 -0
- package/lib/dropdown/examples/toggle.md +36 -0
- package/lib/dropdown/index.js +1 -1
- package/lib/dropdown/index.js.map +1 -1
- package/lib/empty/index.js.map +1 -1
- package/lib/from-schema/index.js +1 -1
- package/lib/from-schema/index.js.map +1 -1
- package/lib/highlight-text/README.mdx +10 -0
- package/lib/highlight-text/examples/basic.md +19 -0
- package/lib/highlight-text/examples/mut.md +47 -0
- package/lib/highlight-text/examples/not-hightlight.md +19 -0
- package/lib/highlight-text/index.js.map +1 -1
- package/lib/img/README.mdx +10 -0
- package/lib/img/examples/basic.md +17 -0
- package/lib/img/examples/close-mask.md +21 -0
- package/lib/img/examples/disabled.md +16 -0
- package/lib/img/examples/error.md +13 -0
- package/lib/img/examples/esc.md +21 -0
- package/lib/img/examples/open-change.md +25 -0
- package/lib/img/index.js +1 -1
- package/lib/img/index.js.map +1 -1
- package/lib/img/lazy.js +1 -1
- package/lib/img/lazy.js.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/input/README.mdx +10 -0
- package/lib/input/examples/basic.md +31 -0
- package/lib/input/examples/prefix&suffix.md +33 -0
- package/lib/input/examples/size.md +21 -0
- package/lib/input/examples/status.md +23 -0
- package/lib/input/index.js +1 -1
- package/lib/input/index.js.map +1 -1
- package/lib/input-number/README.mdx +10 -0
- package/lib/input-number/examples/basic.md +26 -0
- package/lib/input-number/examples/formatter.md +36 -0
- package/lib/input-number/examples/max-min.md +13 -0
- package/lib/input-number/index.js.map +1 -1
- package/lib/katex/README.mdx +42 -0
- package/lib/katex/examples/block.md +25 -0
- package/lib/katex/examples/inline.md +19 -0
- package/lib/md/README.mdx +10 -0
- package/lib/md/examples/in-children.md +23 -0
- package/lib/md/examples/in-text.md +32 -0
- package/lib/md/examples/math.md +36 -0
- package/lib/md/index.js +1 -1
- package/lib/md/index.js.map +1 -1
- package/lib/menu/README.mdx +10 -0
- package/lib/menu/examples/basic.md +17 -0
- package/lib/menu/examples/field-names.md +42 -0
- package/lib/menu/examples/icon.md +125 -0
- package/lib/menu/examples/multiple.md +42 -0
- package/lib/menu/index.js +1 -1
- package/lib/menu/index.js.map +1 -1
- package/lib/modal/README.mdx +10 -0
- package/lib/modal/examples/basic.md +56 -0
- package/lib/modal/examples/close-icon.md +57 -0
- package/lib/modal/examples/esc-closable.md +64 -0
- package/lib/modal/examples/mask-blur.md +56 -0
- package/lib/modal/examples/mask-closable.md +64 -0
- package/lib/modal/index.js.map +1 -1
- package/lib/notification/README.mdx +11 -0
- package/lib/notification/examples/basic.md +35 -0
- package/lib/notification/examples/close.md +35 -0
- package/lib/notification/examples/type.md +84 -0
- package/lib/notification/examples/update.md +52 -0
- package/lib/notification/index.js.map +1 -1
- package/lib/notification/notification.js +1 -1
- package/lib/notification/notification.js.map +1 -1
- package/lib/pagination/README.mdx +10 -0
- package/lib/pagination/examples/basic.md +13 -0
- package/lib/pagination/examples/onchange.md +29 -0
- package/lib/pagination/examples/size.md +23 -0
- package/lib/pagination/examples/total-text.md +42 -0
- package/lib/pagination/index.js +1 -1
- package/lib/pagination/index.js.map +1 -1
- package/lib/popover/README.mdx +10 -0
- package/lib/popover/examples/basic.md +35 -0
- package/lib/popover/examples/click.md +15 -0
- package/lib/popover/examples/context-menu.md +58 -0
- package/lib/popover/examples/controlled.md +47 -0
- package/lib/popover/index.js +1 -1
- package/lib/popover/index.js.map +1 -1
- package/lib/prism/css.js.map +1 -1
- package/lib/prism/index.js.map +1 -1
- package/lib/provider/README.mdx +10 -0
- package/lib/provider/examples/scheme.md +14 -0
- package/lib/provider/index.js.map +1 -1
- package/lib/radio/README.mdx +10 -0
- package/lib/radio/examples/basic.md +19 -0
- package/lib/radio/examples/disabled-option.md +19 -0
- package/lib/radio/examples/disabled.md +19 -0
- package/lib/radio/examples/field-names.md +39 -0
- package/lib/radio/examples/layout-vertical.md +19 -0
- package/lib/radio/examples/status.md +31 -0
- package/lib/radio/index.js +1 -1
- package/lib/radio/index.js.map +1 -1
- package/lib/segmented/README.mdx +10 -0
- package/lib/segmented/examples/basic.md +18 -0
- package/lib/segmented/examples/custom-field-names.md +43 -0
- package/lib/segmented/examples/disabled-option.md +29 -0
- package/lib/segmented/examples/disabled.md +18 -0
- package/lib/segmented/examples/icon.md +28 -0
- package/lib/segmented/examples/options.md +21 -0
- package/lib/segmented/index.js +2 -2
- package/lib/segmented/index.js.map +1 -1
- package/lib/select/README.mdx +10 -0
- package/lib/select/examples/basic.md +44 -0
- package/lib/select/examples/disabled-option.md +21 -0
- package/lib/select/examples/disabled.md +24 -0
- package/lib/select/examples/field-names.md +40 -0
- package/lib/select/examples/item-suffix.md +84 -0
- package/lib/select/examples/multiple.md +61 -0
- package/lib/select/examples/no-data.md +12 -0
- package/lib/select/examples/prefix-icon.md +74 -0
- package/lib/select/index.js +1 -1
- package/lib/select/index.js.map +1 -1
- package/lib/skeleton/README.mdx +10 -0
- package/lib/skeleton/examples/animation.md +13 -0
- package/lib/skeleton/examples/avatar.md +13 -0
- package/lib/skeleton/examples/basic.md +12 -0
- package/lib/skeleton/examples/rows.md +13 -0
- package/lib/skeleton/examples/title.md +12 -0
- package/lib/skeleton/index.js.map +1 -1
- package/lib/spin/README.mdx +10 -0
- package/lib/spin/examples/basic.md +67 -0
- package/lib/spin/index.js +3 -3
- package/lib/spin/index.js.map +1 -1
- package/lib/switch/README.mdx +10 -0
- package/lib/switch/examples/basic.md +24 -0
- package/lib/switch/examples/checked-text.md +17 -0
- package/lib/switch/examples/disabled.md +15 -0
- package/lib/switch/examples/loading.md +17 -0
- package/lib/switch/index.js +1 -1
- package/lib/switch/index.js.map +1 -1
- package/lib/table/README.mdx +10 -0
- package/lib/table/examples/basic.md +29 -0
- package/lib/table/examples/key.md +29 -0
- package/lib/table/examples/order.md +29 -0
- package/lib/table/examples/pagination.md +67 -0
- package/lib/table/examples/render.md +92 -0
- package/lib/table/examples/size.md +52 -0
- package/lib/table/examples/summary.md +40 -0
- package/lib/table/index.js +1 -1
- package/lib/table/index.js.map +1 -1
- package/lib/tabs/README.mdx +10 -0
- package/lib/tabs/examples/add-remove.md +115 -0
- package/lib/tabs/examples/animated.md +33 -0
- package/lib/tabs/examples/basic.md +32 -0
- package/lib/tabs/examples/card.md +33 -0
- package/lib/tabs/examples/center.md +33 -0
- package/lib/tabs/examples/disabled-tab.md +34 -0
- package/lib/tabs/examples/disabled.md +33 -0
- package/lib/tabs/examples/extra.md +65 -0
- package/lib/tabs/index.js +2 -2
- package/lib/tabs/index.js.map +1 -1
- package/lib/tag/README.mdx +10 -0
- package/lib/tag/examples/basic.md +28 -0
- package/lib/tag/examples/bordered.md +19 -0
- package/lib/tag/examples/color.md +25 -0
- package/lib/tag/examples/icon.md +21 -0
- package/lib/tag/examples/type.md +19 -0
- package/lib/tag/index.js +3 -3
- package/lib/tag/index.js.map +1 -1
- package/lib/theme/README.mdx +10 -0
- package/lib/theme/examples/colors.md +123 -0
- package/lib/theme/examples/theme.md +19 -0
- package/lib/theme/index.js +1 -1
- package/lib/theme/index.js.map +1 -1
- package/lib/tree/README.mdx +10 -0
- package/lib/tree/examples/basic.md +108 -0
- package/lib/tree/examples/custom-render.md +115 -0
- package/lib/tree/examples/direction.md +100 -0
- package/lib/tree/examples/field-names.md +114 -0
- package/lib/tree/examples/multiple.md +117 -0
- package/lib/tree/examples/readonly.md +90 -0
- package/lib/tree/examples/render-tree-string1.md +70 -0
- package/lib/tree/examples/render-tree-string2.md +52 -0
- package/lib/tree/examples/schema.md +130 -0
- package/lib/tree/examples/size.md +125 -0
- package/lib/tree/examples/toggle.md +71 -0
- package/lib/tree/index.js +1 -1
- package/lib/tree/index.js.map +1 -1
- package/lib/tree/register.js.map +1 -1
- package/lib/typography/README.mdx +10 -0
- package/lib/typography/examples/basic.md +27 -0
- package/lib/typography/examples/tag.md +25 -0
- package/lib/typography/examples/truncated.md +17 -0
- package/lib/typography/index.js.map +1 -1
- package/package.json +18 -18
- package/types/avatar/group.d.ts +1 -1
- package/types/back-top/index.d.ts +1 -1
- package/types/capture-screen/index.d.ts +1 -1
- package/types/color-palette/index.d.ts +1 -1
- package/types/color-picker/index.d.ts +1 -1
- package/types/cron/begin-interval.d.ts +3 -3
- package/types/cron/index.d.ts +5 -5
- package/types/cron/item.d.ts +4 -4
- package/types/cron/period.d.ts +3 -3
- package/types/cron/some.d.ts +3 -3
- package/types/date-picker/date.d.ts +2 -2
- package/types/date-picker/index.d.ts +2 -2
- package/types/date-picker/month.d.ts +2 -2
- package/types/date-picker/panel.d.ts +3 -3
- package/types/date-picker/time.d.ts +2 -2
- package/types/date-picker/year.d.ts +2 -2
- package/types/dropdown/index.d.ts +1 -1
- package/types/empty/index.d.ts +1 -1
- package/types/from-schema/index.d.ts +4 -4
- package/types/index.d.ts +12 -12
- package/types/md/index.d.ts +1 -1
- package/types/modal/index.d.ts +1 -1
- package/types/notification/index.d.ts +1 -1
- package/types/pagination/index.d.ts +1 -1
- package/types/provider/index.d.ts +1 -1
- package/types/segmented/index.d.ts +1 -1
- package/types/select/index.d.ts +1 -1
- package/types/table/index.d.ts +1 -1
- package/types/tabs/index.d.ts +1 -1
- package/types/tree/index.d.ts +1 -1
- package/umd/assets/svg/favicon.svg +1 -0
- package/umd/index.js +2 -2
- package/umd/js/46e8f96158e59015.js +1 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: 禁用某一项。
|
|
3
|
+
description: 禁用某一项。
|
|
4
|
+
order: 2
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
```html
|
|
8
|
+
<n-tabs></n-tabs>
|
|
9
|
+
<script>
|
|
10
|
+
const el = container.querySelector('n-tabs');
|
|
11
|
+
|
|
12
|
+
el.items = new Array(3).fill(0).map((_, i) => {
|
|
13
|
+
return {
|
|
14
|
+
value: i + 1,
|
|
15
|
+
label: `Tab ${i + 1}`,
|
|
16
|
+
content: `Content of Tab Pane ${i + 1}`,
|
|
17
|
+
disabled: i === 1,
|
|
18
|
+
};
|
|
19
|
+
});
|
|
20
|
+
</script>
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
```jsx
|
|
24
|
+
<n-tabs
|
|
25
|
+
items={new Array(3).fill(0).map((_, i) => {
|
|
26
|
+
return {
|
|
27
|
+
value: i + 1,
|
|
28
|
+
label: `Tab ${i + 1}`,
|
|
29
|
+
content: `Content of Tab Pane ${i + 1}`,
|
|
30
|
+
disabled: i === 1,
|
|
31
|
+
};
|
|
32
|
+
})}
|
|
33
|
+
/>
|
|
34
|
+
```
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: 只读模式
|
|
3
|
+
description: 禁止任何操作。
|
|
4
|
+
order: 8
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
```html
|
|
8
|
+
<n-tabs disabled="true"></n-tabs>
|
|
9
|
+
<script>
|
|
10
|
+
const el = container.querySelector('n-tabs');
|
|
11
|
+
|
|
12
|
+
el.items = new Array(3).fill(0).map((_, i) => {
|
|
13
|
+
return {
|
|
14
|
+
value: i + 1,
|
|
15
|
+
label: `Tab ${i + 1}`,
|
|
16
|
+
content: `Content of Tab Pane ${i + 1}`,
|
|
17
|
+
};
|
|
18
|
+
});
|
|
19
|
+
</script>
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
```jsx
|
|
23
|
+
<n-tabs
|
|
24
|
+
disabled={true}
|
|
25
|
+
items={new Array(3).fill(0).map((_, i) => {
|
|
26
|
+
return {
|
|
27
|
+
value: i + 1,
|
|
28
|
+
label: `Tab ${i + 1}`,
|
|
29
|
+
content: `Content of Tab Pane ${i + 1}`,
|
|
30
|
+
};
|
|
31
|
+
})}
|
|
32
|
+
/>
|
|
33
|
+
```
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: 附加内容
|
|
3
|
+
description: 可以在页签两边添加附加操作
|
|
4
|
+
order: 4
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
```html
|
|
8
|
+
<n-tabs></n-tabs>
|
|
9
|
+
<script>
|
|
10
|
+
const el = container.querySelector('n-tabs');
|
|
11
|
+
|
|
12
|
+
el.extra = {
|
|
13
|
+
left: () => {
|
|
14
|
+
const btn = document.createElement('n-button');
|
|
15
|
+
|
|
16
|
+
btn.textContent = 'Left';
|
|
17
|
+
btn.size = 'small';
|
|
18
|
+
return btn;
|
|
19
|
+
},
|
|
20
|
+
right: () => {
|
|
21
|
+
const btn = document.createElement('n-button');
|
|
22
|
+
|
|
23
|
+
btn.textContent = 'Right';
|
|
24
|
+
btn.size = 'small';
|
|
25
|
+
return btn;
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
el.items = new Array(3).fill(0).map((_, i) => {
|
|
29
|
+
return {
|
|
30
|
+
value: i + 1,
|
|
31
|
+
label: `Tab ${i + 1}`,
|
|
32
|
+
content: () => {
|
|
33
|
+
const md = document.createElement('n-md');
|
|
34
|
+
|
|
35
|
+
md.textContent = `!> Content of Tab Pane ${i + 1}`;
|
|
36
|
+
return md;
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
});
|
|
40
|
+
</script>
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
```jsx
|
|
44
|
+
function Demo() {
|
|
45
|
+
const Content = (props) => {
|
|
46
|
+
return <n-md>!> Content of Tab Pane {props.idx}</n-md>;
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
return (
|
|
50
|
+
<n-tabs
|
|
51
|
+
extra={{
|
|
52
|
+
left: () => <n-button size="small">Left</n-button>,
|
|
53
|
+
right: () => <n-button size="small">Right</n-button>,
|
|
54
|
+
}}
|
|
55
|
+
items={new Array(3).fill(0).map((_, i) => {
|
|
56
|
+
return {
|
|
57
|
+
value: i + 1,
|
|
58
|
+
label: `Tab ${i + 1}`,
|
|
59
|
+
content: () => <Content idx={i + 1} />,
|
|
60
|
+
};
|
|
61
|
+
})}
|
|
62
|
+
/>
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
```
|
package/es/tabs/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{use as e}from"solid-js/web";import{template as t}from"solid-js/web";import{setAttribute as i}from"solid-js/web";import{insert as l}from"solid-js/web";import{getOwner as o}from"solid-js/web";import{effect as r}from"solid-js/web";import{delegateEvents as n}from"solid-js/web";import{createComponent as s}from"solid-js/web";import{className as a}from"solid-js/web";import{classList as d}from"solid-js/web";import{addEventListener as v}from"solid-js/web";let f=t("<style> "),u=t("<style>"),c=t(`<n-button class="tab add">+`,!0,!1),m=t('<div><div class="items">'),p=t('<div class="content">'),b=t(`<span class="remove">⛌`),g=t("<n-button>",!0,!1);import{
|
|
1
|
+
import{use as e}from"solid-js/web";import{template as t}from"solid-js/web";import{setAttribute as i}from"solid-js/web";import{insert as l}from"solid-js/web";import{getOwner as o}from"solid-js/web";import{effect as r}from"solid-js/web";import{delegateEvents as n}from"solid-js/web";import{createComponent as s}from"solid-js/web";import{className as a}from"solid-js/web";import{classList as d}from"solid-js/web";import{addEventListener as v}from"solid-js/web";let f=t("<style> "),u=t("<style>"),c=t(`<n-button class="tab add">+`,!0,!1),m=t('<div><div class="items">'),p=t('<div class="content">'),b=t(`<span class="remove">⛌`),g=t("<n-button>",!0,!1);import{createEffect as h,createMemo as $,createSignal as _,For as w,mergeProps as L,onCleanup as x,onMount as y,Show as j,untrack as k}from"solid-js";import C from"@moneko/common/lib/isFunction";import E from"@moneko/common/lib/passiveSupported";import{css as T,cx as W}from"@moneko/css";import{customElement as A}from"solid-element";import{FieldName as N}from"../basic-config";import V from"../get-options";import D from"../theme";import{addCss as O,btnCss as P,style as X}from"./style";import"../button";function F(t){let n,L,A;let{baseStyle:F,isDark:S}=D,[Y,q]=_(),[z,B]=_(""),[G,H]=_({left:!1,right:!1}),I=$(()=>S()?T`
|
|
2
2
|
:host {
|
|
3
3
|
--tab-current-bg: var(--component-bg);
|
|
4
4
|
--tab-bg: rgb(255 255 255 / 4%);
|
|
@@ -8,5 +8,5 @@ import{use as e}from"solid-js/web";import{template as t}from"solid-js/web";impor
|
|
|
8
8
|
--tab-bg: var(--primary-details-bg);
|
|
9
9
|
--tab-current-bg: var(--component-bg);
|
|
10
10
|
}
|
|
11
|
-
`),J
|
|
11
|
+
`),J=$(()=>Object.assign({},N,t.fieldNames)),K=$(()=>V(t.items,J())),M=$(()=>K().find(e=>e[J().value]===Y()));function Q(e,i){if(!t.disabled&&!e.disabled){let l=e[J().value];void 0===t.value&&q(l),C(t.onChange)&&t.onChange(l,e,i)}}function R(e,t){"Enter"===t.key&&Q(e,t)}function U(e,i,l){l.stopPropagation(),l.preventDefault(),C(t.onEdit)&&t.onEdit(e,i,l)}function Z(e){if(A){var t;let i=n.offsetWidth,l=(null==L?void 0:L.offsetWidth)||0,o=A.scrollWidth;if(o>i-l){let t=0;e&&(E||(e.stopPropagation(),e.preventDefault()),t=0!==e.deltaX?e.deltaX:e.deltaY);let i=A.scrollLeft+t;A.scrollTo({left:i}),H({left:i>0,right:o>i+A.offsetWidth})}else H({left:!1,right:!1});let r=null==(t=k(M))?void 0:t.ref;B(`.tabs {--w: ${r.offsetWidth}px;--left: ${r.offsetLeft-A.scrollLeft+A.offsetLeft}px;--s:${A.scrollLeft}px}`)}}h(()=>{let e=k(Y);void 0!==t.value?e=t.value:void 0!==t.defaultValue?e=t.defaultValue:K()[0]&&(e=K()[0][J().value]),e!==k(Y)&&q(e)}),h(()=>{var e;let t,i;let l=null==(e=M())?void 0:e.ref;l?t=setTimeout(()=>{clearTimeout(t),A&&(H({left:!1,right:!1}),A.scrollTo({left:l.offsetLeft-A.offsetLeft,behavior:"smooth"})),B(`.tabs {--w: ${l.offsetWidth}px;--left: ${l.offsetLeft-A.scrollLeft+A.offsetLeft}px;--s:${A.scrollLeft}px}`),i=setTimeout(()=>{clearTimeout(i),Z()},300)},0):B(""),x(()=>{clearTimeout(t),clearTimeout(i)})});let[ee,et]=_("slide-in");h(()=>{var e;return t.animated&&et("slide-in"),null==(e=M())?void 0:e.content});let ei=$(()=>{var e,i;return C(null==(e=t.extra)?void 0:e.left)?t.extra.left():null==(i=t.extra)?void 0:i.left}),el=$(()=>{var e,i;return C(null==(e=t.extra)?void 0:e.right)?t.extra.right():null==(i=t.extra)?void 0:i.right}),eo=$(()=>{var e;let t=null==(e=M())?void 0:e.content;return C(t)?t():t});function er(){t.animated&&et("")}return y(()=>{null==n||n.addEventListener("wheel",Z,{passive:E})}),x(()=>{null==n||n.removeEventListener("wheel",Z,!1)}),[(()=>{let e=f(),t=e.firstChild;return r(()=>t.data=F()),e})(),(()=>{let e=f(),t=e.firstChild;return r(()=>t.data=I()),e})(),(()=>{let e=u();return e.textContent=X,e})(),(()=>{let e=f(),t=e.firstChild;return r(()=>t.data=z()),e})(),s(j,{get when(){return t.css},get children(){let e=f(),i=e.firstChild;return r(()=>i.data=T(t.css)),e}}),(()=>{let d=m(),f=n,u=d.firstChild,p=A;return"function"==typeof f?e(f,d):n=d,l(d,s(j,{get when(){return ei()},get children(){return ei()}}),u),"function"==typeof p?e(p,u):A=u,l(u,s(w,{get each(){return K()},children:(i,n)=>{let d=$(()=>t.disabled||i.disabled),{icon:f,value:u,label:c}=J(),m=$(()=>void 0!==Y()&&i[u]===Y());return(()=>{let t=g(),u=K()[n()].ref;return"function"==typeof u?e(u,t):K()[n()].ref=t,v(t,"click",Q.bind(null,i),!0),v(t,"keyup",R.bind(null,i),!0),t.link=!0,t.css=P,t._$owner=o(),l(t,()=>i[c],null),l(t,s(j,{get when(){return i.closable},get children(){let e=b();return v(e,"click",U.bind(null,"remove",i),!0),e}}),null),r(e=>{let l=m()?"primary":"default",o=W("tab",i.class),r=!!m(),s=!!(m()&&0===n()),v=d()?-1:0,u=d(),c=i[f];return l!==e._v$6&&(t.type=e._v$6=l),o!==e._v$7&&a(t,e._v$7=o),r!==e._v$8&&t.classList.toggle("active",e._v$8=r),s!==e._v$9&&t.classList.toggle("first-active",e._v$9=s),v!==e._v$10&&(t.tabindex=e._v$10=v),u!==e._v$11&&(t.disabled=e._v$11=u),c!==e._v$12&&(t.icon=e._v$12=c),e},{_v$6:void 0,_v$7:void 0,_v$8:void 0,_v$9:void 0,_v$10:void 0,_v$11:void 0,_v$12:void 0}),t})()}})),l(d,s(j,{get when(){return t.add},get children(){let t=c(),i=L;return v(t,"click",U.bind(null,"add",void 0),!0),"function"==typeof i?e(i,t):L=t,t.link=!0,t.css=O,t._$owner=o(),t}}),null),l(d,s(j,{get when(){return el()},get children(){return el()}}),null),r(e=>{let l=W("tabs",t.type,t.class),o=!!t.centered,r=t.disabled,n=!!G().left,s=!!G().right;return l!==e._v$&&a(d,e._v$=l),o!==e._v$2&&d.classList.toggle("centered",e._v$2=o),r!==e._v$3&&i(d,"aria-disabled",e._v$3=r),n!==e._v$4&&u.classList.toggle("warp-left",e._v$4=n),s!==e._v$5&&u.classList.toggle("warp-right",e._v$5=s),e},{_v$:void 0,_v$2:void 0,_v$3:void 0,_v$4:void 0,_v$5:void 0}),d})(),s(j,{get when(){var en;return null==(en=M())?void 0:en.content},get children(){let e=p();return v(e,"animationend",er),l(e,eo),r(i=>d(e,{[ee()]:t.animated},i)),e}})]}A("n-tabs",{class:void 0,css:void 0,disabled:void 0,value:void 0,defaultValue:void 0,centered:void 0,items:[],type:"line",fieldNames:void 0,add:void 0,extra:void 0,animated:void 0},(e,t)=>{let i=t.element,l=L({onChange(e,t,l){i.dispatchEvent(new CustomEvent("change",{detail:[e,t,l]}))},onEdit(e,t,l){i.dispatchEvent(new CustomEvent("edit",{detail:[e,t,l]}))}},e);return h(()=>{i.removeAttribute("items"),i.removeAttribute("field-names"),i.removeAttribute("css")}),s(F,l)});export default F;n(["click","keyup"]);
|
|
12
12
|
//# sourceMappingURL=index.js.map
|
package/es/tabs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../components/tabs/index.tsx"],"sourcesContent":["import {\n For,\n Show,\n createEffect,\n createMemo,\n createSignal,\n mergeProps,\n onCleanup,\n onMount,\n untrack,\n} from 'solid-js';\nimport { isFunction, passiveSupported } from '@moneko/common';\nimport { css, cx } from '@moneko/css';\nimport { customElement } from 'solid-element';\nimport { addCss, btnCss, style } from './style';\nimport { FieldName } from '../basic-config';\nimport '../button';\nimport getOptions from '../get-options';\nimport theme from '../theme';\nimport type { BaseOption, BasicConfig, ButtonElement, CustomElement } from '..';\n\nexport interface TabsProps {\n /** 自定义类名 */\n class?: string;\n /** 自定义样式表 */\n css?: string;\n /** 只读 */\n disabled?: boolean;\n /** 值(指定值时为受控模式,配合onChange使用) */\n value?: string | number;\n /** 默认值 */\n defaultValue?: string | number;\n /** 选项数据 */\n items?: (TabOption | string)[];\n /** 标签页居中 */\n centered?: boolean;\n /** 自定义节点 'label'、'value'、'options' 的字段 */\n fieldNames?: BasicConfig['fieldName'];\n /** 标签页的显示类型\n * @default 'line'\n */\n type?: 'line' | 'card';\n /** 值修改时的回调方法 */\n onChange?(val: string, item: TabOption, e: Event): void;\n /** 显示添加按钮 */\n add?: boolean;\n /** 删除和添加时的回调方法 */\n onEdit?: (type: 'add' | 'remove', item: TabOption, e: Event) => void;\n /** 给标签页左右添加的附加内容 */\n extra?: {\n left?: JSX.Element | (() => JSX.Element | (() => JSX.Element));\n right?: JSX.Element | (() => JSX.Element | (() => JSX.Element));\n };\n /** 动画\n * @since 2.8.2\n * @default false\n */\n animated?: boolean;\n}\n\nexport interface TabOption extends Omit<BaseOption, 'options'> {\n /** 内容 */\n content?: JSX.Element | (() => JSX.Element | (() => JSX.Element));\n /** 标签可关闭 */\n closable?: boolean;\n}\n\nfunction Tabs(props: TabsProps) {\n const { baseStyle, isDark } = theme;\n let box: HTMLDivElement | undefined;\n let add: ButtonElement | undefined;\n const [value, setValue] = createSignal<string | number>();\n const [offsetStyle, setOffsetStyle] = createSignal('');\n const [wrap, setWrap] = createSignal({ left: false, right: false });\n let wrapRef: HTMLDivElement | undefined;\n\n const cssVar = createMemo(() => {\n if (isDark()) {\n return css`\n :host {\n --tab-current-bg: var(--component-bg);\n --tab-bg: rgb(255 255 255 / 4%);\n }\n `;\n }\n\n return css`\n :host {\n --tab-bg: var(--primary-details-bg);\n --tab-current-bg: var(--component-bg);\n }\n `;\n });\n const fieldNames = createMemo(() => Object.assign({}, FieldName, props.fieldNames));\n const items = createMemo<TabOption[]>(() => {\n return getOptions(props.items, fieldNames());\n });\n const current = createMemo(() => {\n return items().find((o) => o[fieldNames().value] === value());\n });\n\n function onChange(item: TabOption, e: Event) {\n if (!props.disabled && !item.disabled) {\n const next = item[fieldNames().value];\n\n if (props.value === void 0) {\n setValue(next);\n }\n if (isFunction(props.onChange)) {\n props.onChange(next, item, e);\n }\n }\n }\n function onKeyUp(item: TabOption, e: KeyboardEvent) {\n if (e.key === 'Enter') {\n onChange(item, e);\n }\n }\n function handleEdit(type: 'remove' | 'add', item: TabOption | undefined, e: Event) {\n e.stopPropagation();\n e.preventDefault();\n if (isFunction(props.onEdit)) {\n props.onEdit(type, item, e);\n }\n }\n function handleWheel(e?: WheelEvent) {\n if (wrapRef) {\n const pwid = box!.offsetWidth;\n const addWid = add?.offsetWidth || 0;\n const scrollWidth = wrapRef.scrollWidth;\n\n if (scrollWidth > pwid - addWid) {\n let deltaY = 0;\n\n if (e) {\n if (!passiveSupported) {\n e.stopPropagation();\n e.preventDefault();\n }\n deltaY = e.deltaX !== 0 ? e.deltaX : e.deltaY;\n }\n const nl = wrapRef.scrollLeft + deltaY;\n\n wrapRef.scrollTo({\n left: nl,\n });\n setWrap({\n left: nl > 0,\n right: scrollWidth > nl + wrapRef.offsetWidth,\n });\n } else {\n setWrap({\n left: false,\n right: false,\n });\n }\n const el = untrack(current)?.ref;\n\n setOffsetStyle(\n `.tabs {--w: ${el.offsetWidth}px;--left: ${\n el.offsetLeft - wrapRef!.scrollLeft + wrapRef.offsetLeft\n }px;--s:${wrapRef!.scrollLeft}px}`,\n );\n }\n }\n createEffect(() => {\n let _val = untrack(value);\n\n if (props.value !== void 0) {\n _val = props.value;\n } else if (props.defaultValue !== void 0) {\n _val = props.defaultValue;\n } else if (items()[0]) {\n _val = items()[0][fieldNames().value];\n }\n if (_val !== untrack(value)) {\n setValue(_val);\n }\n });\n\n createEffect(() => {\n let timer: NodeJS.Timeout | undefined, whellTimer: NodeJS.Timeout | undefined;\n const el = current()?.ref;\n\n if (el) {\n timer = setTimeout(() => {\n clearTimeout(timer);\n if (wrapRef) {\n setWrap({\n left: false,\n right: false,\n });\n wrapRef.scrollTo({\n left: el.offsetLeft - wrapRef.offsetLeft,\n behavior: 'smooth',\n });\n }\n\n setOffsetStyle(\n `.tabs {--w: ${el.offsetWidth}px;--left: ${\n el.offsetLeft - wrapRef!.scrollLeft + wrapRef!.offsetLeft\n }px;--s:${wrapRef!.scrollLeft}px}`,\n );\n whellTimer = setTimeout(() => {\n clearTimeout(whellTimer);\n handleWheel();\n }, 300);\n }, 0);\n } else {\n setOffsetStyle('');\n }\n onCleanup(() => {\n clearTimeout(timer);\n clearTimeout(whellTimer);\n });\n });\n const [ani, setAni] = createSignal('slide-in');\n\n createEffect(() => {\n if (props.animated) {\n setAni('slide-in');\n }\n return current()?.content;\n });\n const left = createMemo(() =>\n isFunction(props.extra?.left) ? (props.extra!.left() as JSX.Element) : props.extra?.left,\n );\n const right = createMemo(() =>\n isFunction(props.extra?.right) ? (props.extra!.right() as JSX.Element) : props.extra?.right,\n );\n const content = createMemo(() => {\n const _content = current()?.content;\n\n return isFunction(_content) ? (_content() as JSX.Element) : _content;\n });\n\n function onAnimationEnd() {\n if (props.animated) {\n setAni('');\n }\n }\n onMount(() => {\n box?.addEventListener('wheel', handleWheel, {\n passive: passiveSupported,\n });\n });\n onCleanup(() => {\n box?.removeEventListener('wheel', handleWheel, false);\n });\n\n return (\n <>\n <style textContent={baseStyle()} />\n <style textContent={cssVar()} />\n <style textContent={style} />\n <style textContent={offsetStyle()} />\n <Show when={props.css}>\n <style textContent={css(props.css)} />\n </Show>\n <div\n ref={box}\n class={cx('tabs', props.type, props.class)}\n classList={{\n centered: props.centered,\n }}\n aria-disabled={props.disabled}\n >\n <Show when={left()}>{left()}</Show>\n <div\n ref={wrapRef}\n class=\"items\"\n classList={{\n 'warp-left': wrap().left,\n 'warp-right': wrap().right,\n }}\n >\n <For each={items()}>\n {(item, i) => {\n const readOnly = createMemo(() => props.disabled || item.disabled);\n const { icon, value: val, label } = fieldNames();\n const isActive = createMemo(() => value() !== void 0 && item[val] === value());\n\n return (\n <n-button\n link={true}\n type={isActive() ? 'primary' : 'default'}\n class={cx('tab', item.class)}\n classList={{\n active: isActive(),\n 'first-active': isActive() && i() === 0,\n }}\n tabindex={readOnly() ? -1 : 0}\n onKeyUp={onKeyUp.bind(null, item)}\n onClick={onChange.bind(null, item)}\n disabled={readOnly()}\n icon={item[icon]}\n ref={items()[i()].ref}\n css={btnCss}\n >\n {item[label]}\n <Show when={item.closable}>\n <span class=\"remove\" onClick={handleEdit.bind(null, 'remove', item)}>\n ⛌\n </span>\n </Show>\n </n-button>\n );\n }}\n </For>\n </div>\n <Show when={props.add}>\n <n-button\n ref={add}\n link={true}\n class=\"tab add\"\n css={addCss}\n onClick={handleEdit.bind(null, 'add', void 0)}\n >\n +\n </n-button>\n </Show>\n <Show when={right()}>{right()}</Show>\n </div>\n <Show when={current()?.content}>\n <div\n class=\"content\"\n classList={{\n [ani()]: props.animated,\n }}\n onAnimationEnd={onAnimationEnd}\n >\n {content()}\n </div>\n </Show>\n </>\n );\n}\n\nexport type TabsElement = CustomElement<TabsProps, 'onChange' | 'onEdit'>;\n\ncustomElement<TabsProps>(\n 'n-tabs',\n {\n class: void 0,\n css: void 0,\n disabled: void 0,\n value: void 0,\n defaultValue: void 0,\n centered: void 0,\n items: [],\n type: 'line' as TabsProps['type'],\n fieldNames: void 0,\n add: void 0,\n extra: void 0,\n animated: void 0,\n },\n (_, opt) => {\n const el = opt.element;\n const props = mergeProps(\n {\n onChange(next: string, item: TabOption, e: Event) {\n el.dispatchEvent(\n new CustomEvent('change', {\n detail: [next, item, e],\n }),\n );\n },\n onEdit(type: 'add' | 'remove', item: TabOption, e: Event) {\n el.dispatchEvent(\n new CustomEvent('edit', {\n detail: [type, item, e],\n }),\n );\n },\n },\n _,\n );\n\n createEffect(() => {\n el.removeAttribute('items');\n el.removeAttribute('field-names');\n el.removeAttribute('css');\n });\n return <Tabs {...props} />;\n },\n);\nexport default Tabs;\n"],"names":["For","Show","createEffect","createMemo","createSignal","mergeProps","onCleanup","onMount","untrack","isFunction","passiveSupported","css","cx","customElement","addCss","btnCss","style","FieldName","getOptions","theme","Tabs","props","box","add","wrapRef","baseStyle","isDark","value","setValue","offsetStyle","setOffsetStyle","wrap","setWrap","left","right","cssVar","fieldNames","Object","assign","items","current","find","o","onChange","item","e","disabled","next","onKeyUp","key","handleEdit","type","stopPropagation","preventDefault","onEdit","handleWheel","pwid","offsetWidth","addWid","scrollWidth","deltaY","deltaX","nl","scrollLeft","scrollTo","el","ref","offsetLeft","_val","defaultValue","timer","whellTimer","setTimeout","clearTimeout","behavior","ani","setAni","animated","content","extra","_content","onAnimationEnd","addEventListener","passive","removeEventListener","i","readOnly","icon","val","label","isActive","bind","closable","class","centered","_","opt","element","dispatchEvent","CustomEvent","detail","removeAttribute"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../components/tabs/index.tsx"],"sourcesContent":["import {\n createEffect,\n createMemo,\n createSignal,\n For,\n mergeProps,\n onCleanup,\n onMount,\n Show,\n untrack,\n} from 'solid-js';\nimport { isFunction, passiveSupported } from '@moneko/common';\nimport { css, cx } from '@moneko/css';\nimport { customElement } from 'solid-element';\n\nimport type { BaseOption, BasicConfig, ButtonElement, CustomElement } from '..';\nimport { FieldName } from '../basic-config';\nimport getOptions from '../get-options';\nimport theme from '../theme';\n\nimport { addCss, btnCss, style } from './style';\n\nimport '../button';\n\nexport interface TabsProps {\n /** 自定义类名 */\n class?: string;\n /** 自定义样式表 */\n css?: string;\n /** 只读 */\n disabled?: boolean;\n /** 值(指定值时为受控模式,配合onChange使用) */\n value?: string | number;\n /** 默认值 */\n defaultValue?: string | number;\n /** 选项数据 */\n items?: (TabOption | string)[];\n /** 标签页居中 */\n centered?: boolean;\n /** 自定义节点 'label'、'value'、'options' 的字段 */\n fieldNames?: BasicConfig['fieldName'];\n /** 标签页的显示类型\n * @default 'line'\n */\n type?: 'line' | 'card';\n /** 值修改时的回调方法 */\n onChange?(val: string, item: TabOption, e: Event): void;\n /** 显示添加按钮 */\n add?: boolean;\n /** 删除和添加时的回调方法 */\n onEdit?: (type: 'add' | 'remove', item: TabOption, e: Event) => void;\n /** 给标签页左右添加的附加内容 */\n extra?: {\n left?: JSX.Element | (() => JSX.Element | (() => JSX.Element));\n right?: JSX.Element | (() => JSX.Element | (() => JSX.Element));\n };\n /** 动画\n * @since 2.8.2\n * @default false\n */\n animated?: boolean;\n}\n\nexport interface TabOption extends Omit<BaseOption, 'options'> {\n /** 内容 */\n content?: JSX.Element | (() => JSX.Element | (() => JSX.Element));\n /** 标签可关闭 */\n closable?: boolean;\n}\n\nfunction Tabs(props: TabsProps) {\n const { baseStyle, isDark } = theme;\n let box: HTMLDivElement | undefined;\n let add: ButtonElement | undefined;\n const [value, setValue] = createSignal<string | number>();\n const [offsetStyle, setOffsetStyle] = createSignal('');\n const [wrap, setWrap] = createSignal({ left: false, right: false });\n let wrapRef: HTMLDivElement | undefined;\n\n const cssVar = createMemo(() => {\n if (isDark()) {\n return css`\n :host {\n --tab-current-bg: var(--component-bg);\n --tab-bg: rgb(255 255 255 / 4%);\n }\n `;\n }\n\n return css`\n :host {\n --tab-bg: var(--primary-details-bg);\n --tab-current-bg: var(--component-bg);\n }\n `;\n });\n const fieldNames = createMemo(() => Object.assign({}, FieldName, props.fieldNames));\n const items = createMemo<TabOption[]>(() => {\n return getOptions(props.items, fieldNames());\n });\n const current = createMemo(() => {\n return items().find((o) => o[fieldNames().value] === value());\n });\n\n function onChange(item: TabOption, e: Event) {\n if (!props.disabled && !item.disabled) {\n const next = item[fieldNames().value];\n\n if (props.value === void 0) {\n setValue(next);\n }\n if (isFunction(props.onChange)) {\n props.onChange(next, item, e);\n }\n }\n }\n function onKeyUp(item: TabOption, e: KeyboardEvent) {\n if (e.key === 'Enter') {\n onChange(item, e);\n }\n }\n function handleEdit(type: 'remove' | 'add', item: TabOption | undefined, e: Event) {\n e.stopPropagation();\n e.preventDefault();\n if (isFunction(props.onEdit)) {\n props.onEdit(type, item, e);\n }\n }\n function handleWheel(e?: WheelEvent) {\n if (wrapRef) {\n const pwid = box!.offsetWidth;\n const addWid = add?.offsetWidth || 0;\n const scrollWidth = wrapRef.scrollWidth;\n\n if (scrollWidth > pwid - addWid) {\n let deltaY = 0;\n\n if (e) {\n if (!passiveSupported) {\n e.stopPropagation();\n e.preventDefault();\n }\n deltaY = e.deltaX !== 0 ? e.deltaX : e.deltaY;\n }\n const nl = wrapRef.scrollLeft + deltaY;\n\n wrapRef.scrollTo({\n left: nl,\n });\n setWrap({\n left: nl > 0,\n right: scrollWidth > nl + wrapRef.offsetWidth,\n });\n } else {\n setWrap({\n left: false,\n right: false,\n });\n }\n const el = untrack(current)?.ref;\n\n setOffsetStyle(\n `.tabs {--w: ${el.offsetWidth}px;--left: ${\n el.offsetLeft - wrapRef.scrollLeft + wrapRef.offsetLeft\n }px;--s:${wrapRef.scrollLeft}px}`,\n );\n }\n }\n createEffect(() => {\n let _val = untrack(value);\n\n if (props.value !== void 0) {\n _val = props.value;\n } else if (props.defaultValue !== void 0) {\n _val = props.defaultValue;\n } else if (items()[0]) {\n _val = items()[0][fieldNames().value];\n }\n if (_val !== untrack(value)) {\n setValue(_val);\n }\n });\n\n createEffect(() => {\n let timer: NodeJS.Timeout | undefined, whellTimer: NodeJS.Timeout | undefined;\n const el = current()?.ref;\n\n if (el) {\n timer = setTimeout(() => {\n clearTimeout(timer);\n if (wrapRef) {\n setWrap({\n left: false,\n right: false,\n });\n wrapRef.scrollTo({\n left: el.offsetLeft - wrapRef.offsetLeft,\n behavior: 'smooth',\n });\n }\n\n setOffsetStyle(\n `.tabs {--w: ${el.offsetWidth}px;--left: ${\n el.offsetLeft - wrapRef!.scrollLeft + wrapRef!.offsetLeft\n }px;--s:${wrapRef!.scrollLeft}px}`,\n );\n whellTimer = setTimeout(() => {\n clearTimeout(whellTimer);\n handleWheel();\n }, 300);\n }, 0);\n } else {\n setOffsetStyle('');\n }\n onCleanup(() => {\n clearTimeout(timer);\n clearTimeout(whellTimer);\n });\n });\n const [ani, setAni] = createSignal('slide-in');\n\n createEffect(() => {\n if (props.animated) {\n setAni('slide-in');\n }\n return current()?.content;\n });\n const left = createMemo(() =>\n isFunction(props.extra?.left) ? (props.extra.left() as JSX.Element) : props.extra?.left,\n );\n const right = createMemo(() =>\n isFunction(props.extra?.right) ? (props.extra.right() as JSX.Element) : props.extra?.right,\n );\n const content = createMemo(() => {\n const _content = current()?.content;\n\n return isFunction(_content) ? (_content() as JSX.Element) : _content;\n });\n\n function onAnimationEnd() {\n if (props.animated) {\n setAni('');\n }\n }\n onMount(() => {\n box?.addEventListener('wheel', handleWheel, {\n passive: passiveSupported,\n });\n });\n onCleanup(() => {\n box?.removeEventListener('wheel', handleWheel, false);\n });\n\n return (\n <>\n <style textContent={baseStyle()} />\n <style textContent={cssVar()} />\n <style textContent={style} />\n <style textContent={offsetStyle()} />\n <Show when={props.css}>\n <style textContent={css(props.css)} />\n </Show>\n <div\n ref={box}\n class={cx('tabs', props.type, props.class)}\n classList={{\n centered: props.centered,\n }}\n aria-disabled={props.disabled}\n >\n <Show when={left()}>{left()}</Show>\n <div\n ref={wrapRef}\n class=\"items\"\n classList={{\n 'warp-left': wrap().left,\n 'warp-right': wrap().right,\n }}\n >\n <For each={items()}>\n {(item, i) => {\n const readOnly = createMemo(() => props.disabled || item.disabled);\n const { icon, value: val, label } = fieldNames();\n const isActive = createMemo(() => value() !== void 0 && item[val] === value());\n\n return (\n <n-button\n link={true}\n type={isActive() ? 'primary' : 'default'}\n class={cx('tab', item.class)}\n classList={{\n active: isActive(),\n 'first-active': isActive() && i() === 0,\n }}\n tabindex={readOnly() ? -1 : 0}\n onKeyUp={onKeyUp.bind(null, item)}\n onClick={onChange.bind(null, item)}\n disabled={readOnly()}\n icon={item[icon]}\n ref={items()[i()].ref}\n css={btnCss}\n >\n {item[label]}\n <Show when={item.closable}>\n <span class=\"remove\" onClick={handleEdit.bind(null, 'remove', item)}>\n ⛌\n </span>\n </Show>\n </n-button>\n );\n }}\n </For>\n </div>\n <Show when={props.add}>\n <n-button\n ref={add}\n link={true}\n class=\"tab add\"\n css={addCss}\n onClick={handleEdit.bind(null, 'add', void 0)}\n >\n +\n </n-button>\n </Show>\n <Show when={right()}>{right()}</Show>\n </div>\n <Show when={current()?.content}>\n <div\n class=\"content\"\n classList={{\n [ani()]: props.animated,\n }}\n onAnimationEnd={onAnimationEnd}\n >\n {content()}\n </div>\n </Show>\n </>\n );\n}\n\nexport type TabsElement = CustomElement<TabsProps, 'onChange' | 'onEdit'>;\n\ncustomElement<TabsProps>(\n 'n-tabs',\n {\n class: void 0,\n css: void 0,\n disabled: void 0,\n value: void 0,\n defaultValue: void 0,\n centered: void 0,\n items: [],\n type: 'line' as TabsProps['type'],\n fieldNames: void 0,\n add: void 0,\n extra: void 0,\n animated: void 0,\n },\n (_, opt) => {\n const el = opt.element;\n const props = mergeProps(\n {\n onChange(next: string, item: TabOption, e: Event) {\n el.dispatchEvent(\n new CustomEvent('change', {\n detail: [next, item, e],\n }),\n );\n },\n onEdit(type: 'add' | 'remove', item: TabOption, e: Event) {\n el.dispatchEvent(\n new CustomEvent('edit', {\n detail: [type, item, e],\n }),\n );\n },\n },\n _,\n );\n\n createEffect(() => {\n el.removeAttribute('items');\n el.removeAttribute('field-names');\n el.removeAttribute('css');\n });\n return <Tabs {...props} />;\n },\n);\nexport default Tabs;\n"],"names":["createEffect","createMemo","createSignal","For","mergeProps","onCleanup","onMount","Show","untrack","isFunction","passiveSupported","css","cx","customElement","FieldName","getOptions","theme","addCss","btnCss","style","Tabs","props","box","add","wrapRef","baseStyle","isDark","value","setValue","offsetStyle","setOffsetStyle","wrap","setWrap","left","right","cssVar","fieldNames","Object","assign","items","current","find","o","onChange","item","e","disabled","next","onKeyUp","key","handleEdit","type","stopPropagation","preventDefault","onEdit","handleWheel","pwid","offsetWidth","addWid","scrollWidth","deltaY","deltaX","nl","scrollLeft","scrollTo","el","ref","offsetLeft","_val","defaultValue","timer","whellTimer","setTimeout","clearTimeout","behavior","ani","setAni","animated","content","extra","_content","onAnimationEnd","addEventListener","passive","removeEventListener","i","readOnly","icon","val","label","isActive","bind","closable","class","centered","_","opt","element","dispatchEvent","CustomEvent","detail","removeAttribute"],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: 基本使用
|
|
3
|
+
description: 基本标签的用法,可以通过设置 `close-icon` 变为可关闭标签并自定义关闭按钮,设置为 true 时将使用默认关闭按钮
|
|
4
|
+
order: 1
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
```html
|
|
8
|
+
<n-tag>Tag 1</n-tag>
|
|
9
|
+
<n-tag close-icon="true">Close</n-tag>
|
|
10
|
+
<n-tag>Custom Close</n-tag>
|
|
11
|
+
<script>
|
|
12
|
+
const el = container.querySelectorAll('n-tag');
|
|
13
|
+
|
|
14
|
+
el[2].closeIcon = () => {
|
|
15
|
+
const icon = document.createElement('span');
|
|
16
|
+
icon.textContent = '⊖';
|
|
17
|
+
return icon;
|
|
18
|
+
};
|
|
19
|
+
</script>
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
```jsx
|
|
23
|
+
<n-tag>Tag 1</n-tag>
|
|
24
|
+
<n-tag close-icon={true}>Prevent Default</n-tag>
|
|
25
|
+
<n-tag close-icon={() => <span>⊖</span>}>
|
|
26
|
+
Tag 2
|
|
27
|
+
</n-tag>
|
|
28
|
+
```
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: 无边框
|
|
3
|
+
description: 无边框模式。
|
|
4
|
+
order: 5
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
```html
|
|
8
|
+
<n-tag bordered="false" type="primary">primary</n-tag>
|
|
9
|
+
<n-tag bordered="false" color="purple">purple</n-tag>
|
|
10
|
+
<n-tag bordered="false" color="#f50">#f50</n-tag>
|
|
11
|
+
<n-tag bordered="false" color="green">green</n-tag>
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
```jsx
|
|
15
|
+
<n-tag bordered={false} type="primary">primary</n-tag>
|
|
16
|
+
<n-tag bordered={false} color="purple">purple</n-tag>
|
|
17
|
+
<n-tag bordered={false} color="#f50">#f50</n-tag>
|
|
18
|
+
<n-tag bordered={false} color="green">green</n-tag>
|
|
19
|
+
```
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: 自定义色彩
|
|
3
|
+
description: 通过 `color` 设置色彩
|
|
4
|
+
order: 2
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
```html
|
|
8
|
+
<n-tag color="blue">blue</n-tag>
|
|
9
|
+
<n-tag color="red">red</n-tag>
|
|
10
|
+
<n-tag color="purple">purple</n-tag>
|
|
11
|
+
<n-tag color="magenta">magenta</n-tag>
|
|
12
|
+
<n-tag color="black">black</n-tag>
|
|
13
|
+
<n-tag color="#f50">#f50</n-tag>
|
|
14
|
+
<n-tag color="green">green</n-tag>
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
```jsx
|
|
18
|
+
<n-tag color="blue">blue</n-tag>
|
|
19
|
+
<n-tag color="red">red</n-tag>
|
|
20
|
+
<n-tag color="purple">purple</n-tag>
|
|
21
|
+
<n-tag color="magenta">magenta</n-tag>
|
|
22
|
+
<n-tag color="black">black</n-tag>
|
|
23
|
+
<n-tag color="#f50">#f50</n-tag>
|
|
24
|
+
<n-tag color="green">green</n-tag>
|
|
25
|
+
```
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: 图标
|
|
3
|
+
description: 通过 `icon` 在文本前添加一个图标
|
|
4
|
+
order: 4
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
```html
|
|
8
|
+
<n-tag icon="⎋">Default</n-tag>
|
|
9
|
+
<n-tag icon="⌥" type="primary">Primary</n-tag>
|
|
10
|
+
<n-tag icon="⌘" type="warning">Warning</n-tag>
|
|
11
|
+
<n-tag icon="♼" type="success">Success</n-tag>
|
|
12
|
+
<n-tag icon="⚾" type="error">Error</n-tag>
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
```jsx
|
|
16
|
+
<n-tag icon="⎋">Default</n-tag>
|
|
17
|
+
<n-tag icon="⌥" type="primary">Primary</n-tag>
|
|
18
|
+
<n-tag icon="⌘" type="warning">Warning</n-tag>
|
|
19
|
+
<n-tag icon="♼" type="success">Success</n-tag>
|
|
20
|
+
<n-tag icon="⚾" type="error">Error</n-tag>
|
|
21
|
+
```
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: 预设类型
|
|
3
|
+
description: 通过 `type` 更改预设色彩的标签样式
|
|
4
|
+
order: 3
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
```html
|
|
8
|
+
<n-tag close-icon="true" type="primary">primary</n-tag>
|
|
9
|
+
<n-tag close-icon="true" type="warning">warning</n-tag>
|
|
10
|
+
<n-tag close-icon="true" type="success">success</n-tag>
|
|
11
|
+
<n-tag close-icon="true" type="error">error</n-tag>
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
```jsx
|
|
15
|
+
<n-tag close-icon={true} type="primary">primary</n-tag>
|
|
16
|
+
<n-tag close-icon={true} type="warning">warning</n-tag>
|
|
17
|
+
<n-tag close-icon={true} type="success">success</n-tag>
|
|
18
|
+
<n-tag close-icon={true} type="error">error</n-tag>
|
|
19
|
+
```
|
package/es/tag/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import{template as e}from"solid-js/web";import{spread as o}from"solid-js/web";import{mergeProps as t}from"solid-js/web";import"solid-js/web";import{insert as s}from"solid-js/web";import{effect as r}from"solid-js/web";import{delegateEvents as l}from"solid-js/web";import{createComponent as n}from"solid-js/web";import{addEventListener as i}from"solid-js/web";let d=e("<style> "),c=e("<style>"),m=e('<span class="icon">'),a=e('<span class="close">'),p=e("<span>");import{
|
|
1
|
+
import{template as e}from"solid-js/web";import{spread as o}from"solid-js/web";import{mergeProps as t}from"solid-js/web";import"solid-js/web";import{insert as s}from"solid-js/web";import{effect as r}from"solid-js/web";import{delegateEvents as l}from"solid-js/web";import{createComponent as n}from"solid-js/web";import{addEventListener as i}from"solid-js/web";let d=e("<style> "),c=e("<style>"),m=e('<span class="icon">'),a=e('<span class="close">'),p=e("<span>");import{createEffect as u,createMemo as f,createSignal as b,mergeProps as h,Show as g,splitProps as v}from"solid-js";import w from"@moneko/common/lib/isFunction";import{css as C,cx as j}from"@moneko/css";import{customElement as y}from"solid-element";import k,{generateColor as I}from"../theme";import{style as E}from"./style";function x(e){let{baseStyle:l,isDark:u}=k,[h,y]=v(e,["class","css","onClose","color","icon","closeIcon","bordered","type","disabled"]),[x,L]=b(!0),A=f(()=>h.color?C`
|
|
2
2
|
:host {
|
|
3
|
-
${
|
|
3
|
+
${I(h.color,{dark:u(),name:"tag-custom"})}
|
|
4
4
|
}
|
|
5
|
-
`:"");function F(e){w(
|
|
5
|
+
`:"");function F(e){w(h.onClose)&&h.onClose(e),L(!1)}return n(g,{get when(){return x()},get children(){return[(()=>{let e=d(),o=e.firstChild;return r(()=>o.data=l()),e})(),(()=>{let e=d(),o=e.firstChild;return r(()=>o.data=A()),e})(),(()=>{let e=c();return e.textContent=E,e})(),n(g,{get when(){return h.css},get children(){let e=d(),o=e.firstChild;return r(()=>o.data=C(h.css)),e}}),(()=>{let e=p();return o(e,t(y,{get class(){return j("tag",h.type)},get classList(){return{"tag-custom":!!h.color,bordered:h.bordered,disabled:h.disabled}}}),!1,!0),s(e,n(g,{get when(){return h.icon},get children(){let e=m();return s(e,()=>h.icon),e}}),null),s(e,()=>y.children,null),s(e,n(g,{get when(){return h.closeIcon},get children(){let e=a();return i(e,"click",F,!0),s(e,()=>!0===h.closeIcon?"⛌":h.closeIcon),e}}),null),e})()]}})}y("n-tag",{class:void 0,css:void 0,color:void 0,icon:void 0,closeIcon:void 0,onClose:void 0,bordered:!0,disabled:void 0,type:void 0},(e,o)=>{let t=o.element,s=h({css:t.css,children:[...t.childNodes.values()],onClose(e){t.dispatchEvent(new CustomEvent("close",{detail:e}))}},e);return u(()=>{t.replaceChildren(),t.removeAttribute("css")}),n(x,s)});export default x;l(["click"]);
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
package/es/tag/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../components/tag/index.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"sources":["../../components/tag/index.tsx"],"sourcesContent":["import { createEffect, createMemo, createSignal, mergeProps, Show, splitProps } from 'solid-js';\nimport { isFunction } from '@moneko/common';\nimport { css, cx } from '@moneko/css';\nimport { customElement } from 'solid-element';\n\nimport type { CustomElement } from '..';\nimport theme, { generateColor } from '../theme';\n\nimport { style } from './style';\n\nexport interface TagProps {\n /** 自定义样式表 */\n css?: string;\n /** 自定义类名 */\n class?: string;\n /** 自定义颜色 */\n color?: string;\n /** 图标 */\n icon?: JSX.Element;\n /** 内置类型(状态) */\n type?: 'primary' | 'success' | 'error' | 'warning';\n /** 自定义关闭图标 */\n closeIcon?: JSX.Element | boolean;\n /** 显示边框\n * @default true\n */\n bordered?: boolean;\n /** 禁用 */\n disabled?: boolean;\n /** 关闭时的回调方法 */\n onClose?: (e: MouseEvent) => void;\n children?: JSX.Element;\n}\n\nfunction Tag(props: TagProps) {\n const { baseStyle, isDark } = theme;\n const [local, other] = splitProps(props, [\n 'class',\n 'css',\n 'onClose',\n 'color',\n 'icon',\n 'closeIcon',\n 'bordered',\n 'type',\n 'disabled',\n ]);\n const [show, setShow] = createSignal(true);\n\n const customColor = createMemo(() => {\n if (local.color) {\n return css`\n :host {\n ${generateColor(local.color, {\n dark: isDark(),\n name: 'tag-custom',\n })}\n }\n `;\n }\n return '';\n });\n\n function onClose(e: Event) {\n if (isFunction(local.onClose)) {\n local.onClose(e);\n }\n setShow(false);\n }\n\n return (\n <Show when={show()}>\n <style textContent={baseStyle()} />\n <style textContent={customColor()} />\n <style textContent={style} />\n <Show when={local.css}>\n <style textContent={css(local.css)} />\n </Show>\n <span\n {...other}\n class={cx('tag', local.type)}\n classList={{\n 'tag-custom': !!local.color,\n bordered: local.bordered,\n disabled: local.disabled,\n }}\n >\n <Show when={local.icon}>\n <span class=\"icon\">{local.icon}</span>\n </Show>\n {other.children}\n <Show when={local.closeIcon}>\n <span class=\"close\" onClick={onClose}>\n {local.closeIcon === true ? '⛌' : local.closeIcon}\n </span>\n </Show>\n </span>\n </Show>\n );\n}\n\nexport type TagElement = CustomElement<TagProps, 'onClose'>;\n\ncustomElement<TagProps>(\n 'n-tag',\n {\n class: void 0,\n css: void 0,\n color: void 0,\n icon: void 0,\n closeIcon: void 0,\n onClose: void 0,\n bordered: true,\n disabled: void 0,\n type: void 0,\n },\n (_, opt) => {\n const el = opt.element;\n const props = mergeProps(\n {\n css: el.css,\n children: [...el.childNodes.values()],\n onClose(e: Event) {\n el.dispatchEvent(\n new CustomEvent('close', {\n detail: e,\n }),\n );\n },\n },\n _,\n );\n\n createEffect(() => {\n el.replaceChildren();\n el.removeAttribute('css');\n });\n\n return <Tag {...props} />;\n },\n);\n\nexport default Tag;\n"],"names":["createEffect","createMemo","createSignal","mergeProps","Show","splitProps","isFunction","css","cx","customElement","theme","generateColor","style","Tag","props","baseStyle","isDark","local","other","show","setShow","customColor","color","dark","name","onClose","e","type","bordered","disabled","icon","children","closeIcon","class","_","opt","el","element","childNodes","values","dispatchEvent","CustomEvent","detail","replaceChildren","removeAttribute"],"mappings":"6cAAA,QAASA,gBAAAA,CAAY,CAAEC,cAAAA,CAAU,CAAEC,gBAAAA,CAAY,CAAEC,cAAAA,CAAU,CAAEC,QAAAA,CAAI,CAAEC,cAAAA,CAAU,KAAQ,UAAW,AAChG,QAASC,MAAkB,+BAAiB,AAC5C,QAASC,OAAAA,CAAG,CAAEC,MAAAA,CAAE,KAAQ,aAAc,AACtC,QAASC,iBAAAA,CAAa,KAAQ,eAAgB,AAG9C,QAAOC,GAASC,iBAAAA,CAAa,KAAQ,UAAW,AAEhD,QAASC,SAAAA,CAAK,KAAQ,SAAU,CA0BhC,SAASC,EAAIC,CAAe,EAC1B,GAAM,CAAEC,UAAAA,CAAS,CAAEC,OAAAA,CAAM,CAAE,CAAGN,EACxB,CAACO,EAAOC,EAAM,CAAGb,EAAWS,EAAO,CACvC,QACA,MACA,UACA,QACA,OACA,YACA,WACA,OACA,WACD,EACK,CAACK,EAAMC,EAAQ,CAAGlB,EAAa,CAAA,GAE/BmB,EAAcpB,EAAW,IAC7B,AAAIgB,EAAMK,KAAK,CACNf,CAAG,CAAC;;UAEP,EAAEI,EAAcM,EAAMK,KAAK,CAAE,CAC3BC,KAAMP,IACNQ,KAAM,YACR,GAAG;;MAEP,CAAC,CAEI,IAGT,SAASC,EAAQC,CAAQ,EACnBpB,EAAWW,EAAMQ,OAAO,GAC1BR,EAAMQ,OAAO,CAACC,GAEhBN,EAAQ,CAAA,EACV,CAEA,SACGhB,qBAAWe,8EACUJ,8DACAM,gDACAT,UACnBR,qBAAWa,EAAMV,GAAG,8DACCA,EAAIU,EAAMV,GAAG,qCAG7BW,sBACGV,EAAG,MAAOS,EAAMU,IAAI,yBAChB,CACT,aAAc,CAAC,CAACV,EAAMK,KAAK,CAC3BM,SAAUX,EAAMW,QAAQ,CACxBC,SAAUZ,EAAMY,QAAQ,AAC1B,kBAECzB,qBAAWa,EAAMa,IAAI,0CACAb,EAAMa,IAAI,qBAE/BZ,EAAMa,QAAQ,aACd3B,qBAAWa,EAAMe,SAAS,8CACIP,cAC1BR,AAAoB,CAAA,IAApBA,EAAMe,SAAS,CAAY,IAAMf,EAAMe,SAAS,sBAM7D,CAIAvB,EACE,QACA,CACEwB,MAAO,KAAK,EACZ1B,IAAK,KAAK,EACVe,MAAO,KAAK,EACZQ,KAAM,KAAK,EACXE,UAAW,KAAK,EAChBP,QAAS,KAAK,EACdG,SAAU,CAAA,EACVC,SAAU,KAAK,EACfF,KAAM,KAAK,CACb,EACA,CAACO,EAAGC,KACF,IAAMC,EAAKD,EAAIE,OAAO,CAChBvB,EAAQX,EACZ,CACEI,IAAK6B,EAAG7B,GAAG,CACXwB,SAAU,IAAIK,EAAGE,UAAU,CAACC,MAAM,GAAG,CACrCd,QAAQC,CAAQ,EACdU,EAAGI,aAAa,CACd,IAAIC,YAAY,QAAS,CACvBC,OAAQhB,CACV,GAEJ,CACF,EACAQ,GAQF,OALAlC,EAAa,KACXoC,EAAGO,eAAe,GAClBP,EAAGQ,eAAe,CAAC,MACrB,KAEQ/B,EAAQC,EAClB,EAGF,gBAAeD,CAAI"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: 调色板、生成、设置主题色
|
|
3
|
+
description: 通过传入一个基础色生成出主题色调
|
|
4
|
+
order: 1
|
|
5
|
+
col: 100%
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
```jsx
|
|
9
|
+
const { dark, setDark, light, setLight } = NekoUI.theme;
|
|
10
|
+
|
|
11
|
+
function getTextColor(colors) {
|
|
12
|
+
return {
|
|
13
|
+
0: colors['100'],
|
|
14
|
+
1: colors['90'],
|
|
15
|
+
2: colors['90'],
|
|
16
|
+
3: colors['95'],
|
|
17
|
+
4: colors['95'],
|
|
18
|
+
5: colors['99'],
|
|
19
|
+
6: colors['99'],
|
|
20
|
+
7: colors['30'],
|
|
21
|
+
8: colors['30'],
|
|
22
|
+
9: colors['20'],
|
|
23
|
+
10: colors['20'],
|
|
24
|
+
11: colors['10'],
|
|
25
|
+
12: colors['5'],
|
|
26
|
+
13: colors['5'],
|
|
27
|
+
14: colors['0'],
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
function Item({ name, isDark }) {
|
|
32
|
+
const color = createMemo(() => (isDark ? dark() : light())[name]);
|
|
33
|
+
const colors = createMemo(() => NekoUI.toneColor(color(), isDark));
|
|
34
|
+
|
|
35
|
+
return (
|
|
36
|
+
<div
|
|
37
|
+
style={{
|
|
38
|
+
display: 'flex',
|
|
39
|
+
'align-items': 'center',
|
|
40
|
+
'flex-wrap': 'wrap',
|
|
41
|
+
width: '100%',
|
|
42
|
+
'font-size': '8px',
|
|
43
|
+
'font-weight': 100,
|
|
44
|
+
'text-align': 'center',
|
|
45
|
+
}}
|
|
46
|
+
>
|
|
47
|
+
<strong
|
|
48
|
+
style={{
|
|
49
|
+
width: '30px',
|
|
50
|
+
'text-align': 'right',
|
|
51
|
+
'margin-right': '8px',
|
|
52
|
+
color: `var(--${name}-color)`,
|
|
53
|
+
}}
|
|
54
|
+
>
|
|
55
|
+
{name}:
|
|
56
|
+
</strong>
|
|
57
|
+
<n-color-picker
|
|
58
|
+
style={{ 'margin-right': '8px' }}
|
|
59
|
+
value={color()}
|
|
60
|
+
onChange={(e) => {
|
|
61
|
+
if (isDark) {
|
|
62
|
+
setDark((prev) => {
|
|
63
|
+
return { ...prev, [name]: e.detail };
|
|
64
|
+
});
|
|
65
|
+
} else {
|
|
66
|
+
setLight((prev) => {
|
|
67
|
+
return { ...prev, [name]: e.detail };
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
e.target.value = e.detail;
|
|
71
|
+
}}
|
|
72
|
+
/>
|
|
73
|
+
{Object.keys(colors()).slice(1,-1).map((c, i) => {
|
|
74
|
+
let item;
|
|
75
|
+
createEffect(() => {
|
|
76
|
+
item.style.backgroundColor = colors()[c];
|
|
77
|
+
item.style.color = getTextColor(colors())[i];
|
|
78
|
+
});
|
|
79
|
+
return (
|
|
80
|
+
<div
|
|
81
|
+
ref={(e) => (item = e)}
|
|
82
|
+
class="item"
|
|
83
|
+
style={{
|
|
84
|
+
flex: 1,
|
|
85
|
+
padding: '4px',
|
|
86
|
+
}}
|
|
87
|
+
>
|
|
88
|
+
<div>{c}</div>
|
|
89
|
+
<div>{colors()[c]}</div>
|
|
90
|
+
</div>
|
|
91
|
+
);
|
|
92
|
+
})}
|
|
93
|
+
</div>
|
|
94
|
+
);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
render(
|
|
98
|
+
<>
|
|
99
|
+
{['#fff', '#000'].map((c) => {
|
|
100
|
+
const dark = c === '#000';
|
|
101
|
+
|
|
102
|
+
return (
|
|
103
|
+
<div
|
|
104
|
+
style={{
|
|
105
|
+
display: 'flex',
|
|
106
|
+
'flex-direction': 'column',
|
|
107
|
+
padding: '8px',
|
|
108
|
+
'margin-bottom': '16px',
|
|
109
|
+
width: '100%',
|
|
110
|
+
'background-color': c,
|
|
111
|
+
'overflow-x': 'auto',
|
|
112
|
+
}}
|
|
113
|
+
>
|
|
114
|
+
<Item name="primary" isDark={dark} />
|
|
115
|
+
<Item name="warning" isDark={dark} />
|
|
116
|
+
<Item name="error" isDark={dark} />
|
|
117
|
+
<Item name="success" isDark={dark} />
|
|
118
|
+
</div>
|
|
119
|
+
);
|
|
120
|
+
})}
|
|
121
|
+
</>
|
|
122
|
+
);
|
|
123
|
+
```
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: 切换颜色模式
|
|
3
|
+
description: 通过传入一个基础色生成出主题色调
|
|
4
|
+
order: 2
|
|
5
|
+
col: 100%
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
```jsx
|
|
9
|
+
function Demo() {
|
|
10
|
+
const { isDark, scheme, setScheme } = NekoUI.theme;
|
|
11
|
+
function handleChange(e) {
|
|
12
|
+
setScheme(e.detail ? 'dark' : 'light');
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
return (
|
|
16
|
+
<n-switch checked={isDark()} onChange={handleChange} un-checked-text="🌞" checked-text="🌛" />
|
|
17
|
+
);
|
|
18
|
+
}
|
|
19
|
+
```
|
package/es/theme/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var e;import{createEffect as o,createMemo as r,createRoot as a,createSignal as n,getOwner as t}from"solid-js";import i from"@moneko/common/lib/colorParse";import l from"@moneko/common/lib/mixColor";import s from"@moneko/common/lib/toneColor";import{css as m}from"@moneko/css";export{toneColor}from"@moneko/common";export function generateColor(e,o){let r=s(e,
|
|
1
|
+
var e;import{createEffect as o,createMemo as r,createRoot as a,createSignal as n,getOwner as t}from"solid-js";import i from"@moneko/common/lib/colorParse";import l from"@moneko/common/lib/mixColor";import s from"@moneko/common/lib/toneColor";import{css as m}from"@moneko/css";export{toneColor}from"@moneko/common";export function generateColor(e,o){let r=s(e,o.dark),a=i(r[5]),n=i(e);return{[`--${o.name}-text`]:a.setAlpha(.65).toRgbaString(),[`--${o.name}-secondary`]:a.setAlpha(.45).toRgbaString(),[`--${o.name}-heading`]:r[5],[`--${o.name}-active`]:r[30],[`--${o.name}-color`]:r[40],[`--${o.name}-hover`]:l(r[40],r[30],15),[`--${o.name}-secondary-bg`]:r[70],[`--${o.name}-border`]:r[80],[`--${o.name}-outline`]:l(r[90],r[40],5),[`--${o.name}-selection`]:r[90],[`--${o.name}-notify-bg`]:i(r[90]).setAlpha(.8).toRgbaString(),[`--on-${o.name}-selection`]:r[10],[`--${o.name}-shadow`]:n.setAlpha(.12).toRgbaString(),[`--${o.name}-shadow-1`]:n.setAlpha(.08).toRgbaString(),[`--${o.name}-shadow-2`]:n.setAlpha(.05).toRgbaString(),[`--${o.name}-details-bg`]:r[95],[`--${o.name}-component-bg`]:r[98],[`--${o.name}-bg`]:r[99],[`--on-${o.name}-bg`]:r[5]}}export var ColorScheme;(e=ColorScheme||(ColorScheme={})).light="light",e.dark="dark",e.auto="auto";export default a(function(){let e=m({":root,:host":{"--scrollbar-size":"4px","--font-size":"14px","--font-size-sm":"12px","--font-size-xs":"10px","--font-size-lg":"16px","--border-base":"1px solid var(--border-color)","--border-radius":"8px","--text-color":"var(--primary-text)","--text-secondary":"var(--primary-secondary)","--text-heading":"var(--primary-heading)","--text-selection":"var(--primary-selection)","--transition-duration":"0.3s","--mask-bg":"rgb(0 0 0 / 5%)","--modal-component-bg":"rgb(255 255 255 / 80%)","--modal-box-shadow":"0 5px 35px rgb(0 0 0 / 10%)","--notification-box-shadow":"0 4px 16px rgb(0 0 0 / 5%)","--transition-timing-function":"cubic-bezier(0.645, 0.045, 0.355, 1)",fontSize:"var(--font-size)",fontFamily:"-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji', Helvetica, Oxygen, Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans'",color:"var(--text-color, rgb(0 0 0 / 65%))",lineHeight:1.8},'[disabled]:not([disabled="false"]):not(n-img)':{cursor:"not-allowed",color:"var(--disable-color)"},"::selection":{backgroundColor:"var(--text-selection)"},"::-webkit-scrollbar":{inlineSize:"var(--scrollbar-size)",blockSize:"var(--scrollbar-size)"}}),a=ColorScheme[localStorage.getItem("color-scheme")]||"auto",t=window.matchMedia("(prefers-color-scheme: dark)"),[i,l]=n(a),[s,c]=n(t.matches),[g,b]=n({primary:"#5794ff",warning:"#faad14",error:"#ff4d4f",success:"#52c41a"}),[d,p]=n({primary:"#4d81dc",warning:"#bb8314",error:"#901c22",success:"#419418"}),h=r(()=>generateColor(g().primary,{name:"primary"})),f=r(()=>generateColor(d().primary,{name:"primary",dark:!0})),u=r(()=>generateColor(g().warning,{name:"warning"})),x=r(()=>generateColor(d().warning,{name:"warning",dark:!0})),y=r(()=>generateColor(g().success,{name:"success"})),S=r(()=>generateColor(d().success,{name:"success",dark:!0})),$=r(()=>generateColor(g().error,{name:"error"})),v=r(()=>generateColor(d().error,{name:"error",dark:!0}));function C(o){let r="";for(let e in o)Object.prototype.hasOwnProperty.call(o,e)&&(r+=`${e}:${o[e]};`);return`${e}:root,:host{${r}}`}let k=r(()=>C(Object.assign({},h(),u(),y(),$(),{"--bg":"transparent","--disable-color":"rgb(0 0 0 / 25%)","--disable-bg":"rgb(0 0 0 / 4%)","--disable-border":"#d9d9d9","--border-color":"var(--primary-border)","--component-bg":"var(--primary-bg)"}))),w=r(()=>C(Object.assign({},f(),x(),S(),v(),{"--bg":"#1c1c1c","--disable-color":"rgb(255 255 255 / 25%)","--disable-bg":"rgb(255 255 255 / 8%)","--disable-border":"#424242","--border-color":"#303030","--component-bg":"#141414","--primary-shadow":"rgb(0 0 0 / 12%)","--primary-selection":"rgb(255 255 255 / 5%)","--primary-details-bg":"rgb(255 255 255 / 3%)","--primary-component-bg":"#000","--modal-component-bg":"rgb(30 30 30 / 80%)"})));function z(e){c(e.matches)}o(()=>{let e=i();c("dark"===e||"auto"===e&&t.matches)});let A=r(()=>s()?w():k());return o(()=>{"auto"===i()?t.addEventListener("change",z):t.removeEventListener("change",z),localStorage.setItem("color-scheme",i())}),{baseStyle:A,dark:d,setDark:p,light:g,setLight:b,scheme:i,setScheme:l,isDark:s}},t());
|
|
2
2
|
//# sourceMappingURL=index.js.map
|