yuyeon 0.1.0-rc.14 → 0.1.0-rc.17
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/dist/abstract/items.d.ts +49 -0
- package/dist/components/alert/YAlert.d.ts +24 -0
- package/dist/components/alert/index.d.ts +1 -0
- package/dist/components/app/YApp.d.ts +8 -0
- package/dist/components/app/index.d.ts +1 -0
- package/dist/components/badge/YBadge.d.ts +142 -0
- package/dist/components/badge/index.d.ts +1 -0
- package/dist/components/bench/YBench.d.ts +4 -0
- package/dist/components/bench/index.d.ts +1 -0
- package/dist/components/button/YButton.d.ts +248 -0
- package/dist/components/button/index.d.ts +1 -0
- package/dist/components/card/YCard.d.ts +12 -0
- package/dist/components/card/YCardBody.d.ts +2 -0
- package/dist/components/card/YCardFooter.d.ts +2 -0
- package/dist/components/card/YCardHeader.d.ts +2 -0
- package/dist/components/card/index.d.ts +4 -0
- package/dist/components/checkbox/YCheckbox.d.ts +48 -0
- package/dist/components/checkbox/YInputCheckbox.d.ts +55 -0
- package/dist/components/checkbox/index.d.ts +3 -0
- package/dist/components/chip/YChip.d.ts +36 -0
- package/dist/components/chip/index.d.ts +1 -0
- package/dist/components/date-picker/YDateCalendar.d.ts +143 -0
- package/dist/components/date-picker/YDatePicker.d.ts +123 -0
- package/dist/components/date-picker/YDatePickerControl.d.ts +129 -0
- package/dist/components/date-picker/YMonthPicker.d.ts +29 -0
- package/dist/components/date-picker/YYearPicker.d.ts +44 -0
- package/dist/components/date-picker/index.d.ts +3 -0
- package/dist/components/default-provider/YDefaultProvider.d.ts +0 -0
- package/dist/components/default-provider/index.d.ts +0 -0
- package/dist/components/dialog/YDialog.d.ts +2346 -0
- package/dist/components/dialog/index.d.ts +1 -0
- package/dist/components/divider/YDivider.d.ts +16 -0
- package/dist/components/divider/index.d.ts +1 -0
- package/dist/components/dropdown/YDropdown.d.ts +651 -0
- package/dist/components/dropdown/index.d.ts +1 -0
- package/dist/components/field-input/YFieldInput.d.ts +416 -0
- package/dist/components/field-input/index.d.ts +1 -0
- package/dist/components/form/YForm.d.ts +42 -0
- package/dist/components/form/index.d.ts +1 -0
- package/dist/components/hover/YHover.d.ts +75 -0
- package/dist/components/icon/YIcon.d.ts +82 -0
- package/dist/components/icon/index.d.ts +1 -0
- package/dist/components/icons/YIconCheckbox.d.ts +14 -0
- package/dist/components/icons/YIconClear.d.ts +1 -0
- package/dist/components/icons/YIconDropdown.d.ts +1 -0
- package/dist/components/icons/YIconExpand.d.ts +1 -0
- package/dist/components/icons/YIconPageControl.d.ts +21 -0
- package/dist/components/icons/YIconSort.d.ts +19 -0
- package/dist/components/icons/index.d.ts +89 -0
- package/dist/components/index.d.ts +33 -0
- package/dist/components/input/YInput.d.ts +336 -0
- package/dist/components/input/index.d.ts +1 -0
- package/dist/components/layer/YLayer.d.ts +2089 -0
- package/dist/components/layer/active-delay.d.ts +4 -0
- package/dist/components/layer/active-stack.d.ts +16 -0
- package/dist/components/layer/base.d.ts +22 -0
- package/dist/components/layer/content.d.ts +21 -0
- package/dist/components/layer/index.d.ts +1 -0
- package/dist/components/layer/scroll-strategies.d.ts +41 -0
- package/dist/components/list/YList.d.ts +24 -0
- package/dist/components/list/YListItem.d.ts +55 -0
- package/dist/components/list/index.d.ts +2 -0
- package/dist/components/loading/YSpinnerRing.d.ts +3 -0
- package/dist/components/loading/index.d.ts +1 -0
- package/dist/components/menu/YMenu.d.ts +2176 -0
- package/dist/components/menu/index.d.ts +1 -0
- package/dist/components/navigation/YNavigation.d.ts +1 -0
- package/dist/components/navigation/index.d.ts +1 -0
- package/dist/components/pagination/YPagination.d.ts +177 -0
- package/dist/components/pagination/index.d.ts +1 -0
- package/dist/components/panel/YDividePanel.d.ts +5 -0
- package/dist/components/panel/index.d.ts +1 -0
- package/dist/components/plate/YPlate.d.ts +11 -0
- package/dist/components/plate/index.d.ts +1 -0
- package/dist/components/progress-bar/YProgressBar.d.ts +78 -0
- package/dist/components/progress-bar/index.d.ts +1 -0
- package/dist/components/select/YSelect.d.ts +7244 -0
- package/dist/components/select/index.d.ts +1 -0
- package/dist/components/snackbar/YSnackbar.d.ts +90 -0
- package/dist/components/snackbar/index.d.ts +1 -0
- package/dist/components/switch/YSwitch.d.ts +108 -0
- package/dist/components/switch/index.d.ts +1 -0
- package/dist/components/tab/YTab.d.ts +284 -0
- package/dist/components/tab/YTabs.d.ts +131 -0
- package/dist/components/tab/index.d.ts +3 -0
- package/dist/components/tab/shared.d.ts +4 -0
- package/dist/components/tab/types.d.ts +5 -0
- package/dist/components/table/YDataTable.d.ts +453 -0
- package/dist/components/table/YDataTableBody.d.ts +110 -0
- package/dist/components/table/YDataTableCell.d.ts +57 -0
- package/dist/components/table/YDataTableControl.d.ts +71 -0
- package/dist/components/table/YDataTableHead.d.ts +72 -0
- package/dist/components/table/YDataTableLayer.d.ts +12 -0
- package/dist/components/table/YDataTableRow.d.ts +49 -0
- package/dist/components/table/YDataTableServer.d.ts +490 -0
- package/dist/components/table/YTable.d.ts +84 -0
- package/dist/components/table/composibles/header.d.ts +69 -0
- package/dist/components/table/composibles/items.d.ts +55 -0
- package/dist/components/table/composibles/options.d.ts +11 -0
- package/dist/components/table/composibles/pagination.d.ts +81 -0
- package/dist/components/table/composibles/selection.d.ts +82 -0
- package/dist/components/table/composibles/sorting.d.ts +44 -0
- package/dist/components/table/index.d.ts +3 -0
- package/dist/components/table/types/common.d.ts +2 -0
- package/dist/components/table/types/header.d.ts +23 -0
- package/dist/components/table/types/index.d.ts +57 -0
- package/dist/components/table/types/item.d.ts +21 -0
- package/dist/components/table/types/row.d.ts +4 -0
- package/dist/components/text-ellipsis/YTextEllipsis.d.ts +15 -0
- package/dist/components/text-ellipsis/index.d.ts +1 -0
- package/dist/components/text-highlighter/YTextHighlighter.d.ts +41 -0
- package/dist/components/text-highlighter/index.d.ts +1 -0
- package/dist/components/textarea/YTextarea.d.ts +589 -0
- package/dist/components/textarea/index.d.ts +1 -0
- package/dist/components/toggle-button/YToggleButton.d.ts +4 -0
- package/dist/components/toggle-button/index.d.ts +1 -0
- package/dist/components/tooltip/YTooltip.d.ts +3875 -0
- package/dist/components/tooltip/index.d.ts +1 -0
- package/dist/components/transitions/expand-transition.d.ts +17 -0
- package/dist/components/transitions/index.d.ts +32 -0
- package/dist/components/tree-view/YTreeView.d.ts +154 -0
- package/dist/components/tree-view/YTreeViewNode.d.ts +202 -0
- package/dist/components/tree-view/index.d.ts +2 -0
- package/dist/components/tree-view/types.d.ts +15 -0
- package/dist/components/tree-view/util.d.ts +6 -0
- package/dist/composables/choice-link.d.ts +3 -0
- package/dist/composables/choice.d.ts +113 -0
- package/dist/composables/communication.d.ts +8 -0
- package/dist/composables/component.d.ts +3 -0
- package/dist/composables/coordinate/arrangement.d.ts +7 -0
- package/dist/composables/coordinate/index.d.ts +1672 -0
- package/dist/composables/coordinate/levitation.d.ts +7 -0
- package/dist/composables/coordinate/types.d.ts +7 -0
- package/dist/composables/coordinate/utils/point.d.ts +22 -0
- package/dist/composables/date/factory.d.ts +3 -0
- package/dist/composables/date/index.d.ts +12 -0
- package/dist/composables/date/setting.d.ts +5 -0
- package/dist/composables/date/types.d.ts +13 -0
- package/dist/composables/dimension.d.ts +54 -0
- package/dist/composables/focus.d.ts +30 -0
- package/dist/composables/form.d.ts +127 -0
- package/dist/composables/i18n/index.d.ts +9 -0
- package/dist/composables/i18n/locale.d.ts +3 -0
- package/dist/composables/i18n/rtl.d.ts +21 -0
- package/dist/composables/i18n/share.d.ts +1 -0
- package/dist/composables/icon.d.ts +95 -0
- package/dist/composables/index.d.ts +9 -0
- package/dist/composables/layer-group.d.ts +8 -0
- package/dist/composables/layout.d.ts +10 -0
- package/dist/composables/list-items.d.ts +111 -0
- package/dist/composables/progress.d.ts +3 -0
- package/dist/composables/ref.d.ts +6 -0
- package/dist/composables/resize-observer.d.ts +14 -0
- package/dist/composables/scope.d.ts +3 -0
- package/dist/composables/theme/factory.d.ts +4 -0
- package/dist/composables/theme/helper.d.ts +3 -0
- package/dist/composables/theme/index.d.ts +56 -0
- package/dist/composables/theme/setting.d.ts +10 -0
- package/dist/composables/theme/types.d.ts +28 -0
- package/dist/composables/timing.d.ts +20 -0
- package/dist/composables/transition.d.ts +22 -0
- package/dist/composables/validation.d.ts +82 -0
- package/dist/composables/vue-router.d.ts +43 -0
- package/dist/directives/complement-click/index.d.ts +26 -0
- package/dist/directives/plate-wave/index.d.ts +14 -0
- package/dist/directives/theme-class.d.ts +4 -0
- package/dist/etc/index.d.ts +1 -0
- package/dist/globals.d.ts +20 -0
- package/dist/i18n/built-in.d.ts +3 -0
- package/dist/i18n/config.d.ts +81 -0
- package/dist/i18n/types.d.ts +20 -0
- package/dist/index.d.ts +13 -0
- package/dist/locales/en.d.ts +6 -0
- package/dist/locales/index.d.ts +2 -0
- package/dist/locales/ko.d.ts +6 -0
- package/dist/mixins/di.d.ts +2 -0
- package/dist/mixins/rebind-attrs.d.ts +5 -0
- package/dist/shims.d.ts +51 -0
- package/dist/style.css +1 -1
- package/dist/types/index.d.ts +7 -0
- package/dist/util/anchor.d.ts +23 -0
- package/dist/util/array.d.ts +2 -0
- package/dist/util/collection.d.ts +1 -0
- package/dist/util/color/apca.d.ts +29 -0
- package/dist/util/color/const.d.ts +5 -0
- package/dist/util/color/contrast/contrast.d.ts +74 -0
- package/dist/util/color/conversion.d.ts +131 -0
- package/dist/util/color/hct/cam16.d.ts +116 -0
- package/dist/util/color/hct/hct-solver.d.ts +131 -0
- package/dist/util/color/hct/hct.d.ts +71 -0
- package/dist/util/color/hct/viewing-conditions.d.ts +58 -0
- package/dist/util/color/index.d.ts +4 -0
- package/dist/util/color/palettes/core-palette.d.ts +44 -0
- package/dist/util/color/palettes/tonal-palette.d.ts +40 -0
- package/dist/util/color/types.d.ts +14 -0
- package/dist/util/color/utils/math-utils.d.ts +82 -0
- package/dist/util/common.d.ts +13 -0
- package/dist/util/date/adapters/yuyeon-date-adapter.d.ts +43 -0
- package/dist/util/date/built-in.d.ts +41 -0
- package/dist/util/date/index.d.ts +3 -0
- package/dist/util/date/types.d.ts +167 -0
- package/dist/util/debounce.d.ts +11 -0
- package/dist/util/dom.d.ts +3 -0
- package/dist/util/frame-scheduler.d.ts +7 -0
- package/dist/util/index.d.ts +16 -0
- package/dist/util/reactivity.d.ts +7 -0
- package/dist/util/rect.d.ts +36 -0
- package/dist/util/scroll.d.ts +3 -0
- package/dist/util/string.d.ts +4 -0
- package/dist/util/ui.d.ts +4 -0
- package/dist/util/validation.d.ts +3 -0
- package/dist/util/vue-component.d.ts +39 -0
- package/dist/yuyeon.js +2979 -2972
- package/dist/yuyeon.umd.cjs +13 -13
- package/lib/components/badge/YBadge.scss +0 -1
- package/lib/components/dialog/YDialog.mjs +4 -1
- package/lib/components/dialog/YDialog.mjs.map +1 -1
- package/lib/components/field-input/YFieldInput.scss +1 -1
- package/lib/components/layer/YLayer.mjs +15 -7
- package/lib/components/layer/YLayer.mjs.map +1 -1
- package/lib/components/layer/content.mjs +22 -0
- package/lib/components/layer/content.mjs.map +1 -0
- package/lib/components/menu/YMenu.mjs +2 -9
- package/lib/components/menu/YMenu.mjs.map +1 -1
- package/lib/components/select/YSelect.mjs +8 -5
- package/lib/components/select/YSelect.mjs.map +1 -1
- package/lib/composables/icon.mjs.map +1 -1
- package/lib/index.mjs +1 -1
- package/lib/index.mjs.map +1 -1
- package/package.json +11 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icon.mjs","names":["h","computed","defineComponent","inject","mergeProps","unref","builtSet","mergeDeep","propsFactory","IconPropOption","String","Function","Object","Array","IconValue","pressIconPropsOptions","icon","type","tag","required","YComponentIcon","name","props","setup","_ref","slots","Icon","_createVNode","_Fragment","iconProps","component","default","YSvgIcon","inheritAttrs","_ref2","attrs","isArray","map","path","YUYEON_ICON_KEY","Symbol","for","createIconModule","options","defaultSet","sets","svg","aliases","useIcon","iconProp","iconModule","Error","iconData","iconMeta","alias","trim","startsWith","slice","iconValue","iconSetName","keys","find","setName","iconName","length","iconSet","text","DOMParser","parseFromString","svgNode","querySelector","mounted","childNodes","forEach","child","$el","appendChild","render","hasAttributes","i","attributes","attr","item","value","node"],"sources":["../../src/composables/icon.tsx"],"sourcesContent":["import { HTMLAttributes } from '@vue/runtime-dom';\nimport { Component, InjectionKey, PropType, Ref, h } from 'vue';\nimport { computed, defineComponent, inject, mergeProps, unref } from 'vue';\n\nimport { builtSet } from '../components';\nimport { JSXComponent } from '../types';\nimport { mergeDeep, propsFactory } from '../util';\n\ntype IconComponent = JSXComponent<IconProps>;\n\nexport type IconValue =\n | string\n | (string | [path: string, opacity: number])[]\n | IconComponent\n | { component: JSXComponent; props?: any }\n | { alias: string; iconProps?: any };\n\nexport const IconPropOption = [\n String,\n Function,\n Object,\n Array,\n] as PropType<IconValue>;\n\ntype IconProps = {\n tag: string;\n icon?: IconValue;\n disabled?: Boolean;\n};\n\nexport interface IconSet {\n component: IconComponent;\n}\n\nexport const IconValue = [\n String,\n Object,\n Array,\n Function,\n] as PropType<IconValue>;\n\nexport type IconModuleOptions = {\n defaultSet?: string;\n sets?: Record<string, IconSet>;\n aliases?: Partial<Record<string, any>>;\n};\n\nexport const pressIconPropsOptions = propsFactory(\n {\n icon: {\n type: IconValue,\n },\n tag: {\n type: String,\n required: true,\n },\n },\n 'icon',\n);\n\nexport const YComponentIcon = defineComponent({\n name: 'YComponentIcon',\n props: pressIconPropsOptions(),\n setup(props, { slots }) {\n return () => {\n const icon = props.icon as unknown;\n let Icon: JSXComponent = () => <></>;\n let iconProps: any = {};\n if (icon instanceof Object) {\n Icon = icon as JSXComponent;\n if ('component' in icon) {\n Icon = icon.component as JSXComponent;\n iconProps = (icon as any)?.props;\n }\n }\n return (\n <props.tag>\n {props.icon ? <Icon {...mergeProps(iconProps)} /> : slots.default?.()}\n </props.tag>\n );\n };\n },\n});\nexport type YComponentIcon = InstanceType<typeof YComponentIcon>;\n\nexport const YSvgIcon = defineComponent({\n name: 'YSvgIcon',\n inheritAttrs: false,\n props: pressIconPropsOptions(),\n setup(props, { attrs }) {\n return () => {\n return (\n <props.tag {...attrs}>\n <svg\n class=\"y-icon__svg\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n role=\"img\"\n aria-hidden=\"true\"\n >\n {Array.isArray(props.icon) ? (\n props.icon.map((path) =>\n Array.isArray(path) ? (\n <path d={path[0] as string} fill-opacity={path[1]}></path>\n ) : (\n <path d={path as string}></path>\n ),\n )\n ) : (\n <path d={props.icon as string}></path>\n )}\n </svg>\n </props.tag>\n );\n };\n },\n});\nexport type YSvgIcon = InstanceType<typeof YSvgIcon>;\n\nexport const YUYEON_ICON_KEY: InjectionKey<Required<IconModuleOptions>> =\n Symbol.for('yuyeon.icon');\n\nexport function createIconModule(options?: IconModuleOptions) {\n return mergeDeep(\n {\n defaultSet: 'built',\n sets: {\n svg: {\n component: YSvgIcon,\n },\n },\n aliases: {\n ...builtSet,\n },\n },\n options,\n );\n}\n\ntype IconInstance = {\n component: IconComponent;\n icon?: IconValue;\n};\n\nexport function useIcon(iconProp: Ref<IconValue | undefined>) {\n const iconModule = inject(YUYEON_ICON_KEY);\n\n if (!iconModule) throw new Error('Not found provided \"IconModule\"');\n\n const iconData = computed<IconInstance>(() => {\n const iconMeta = unref(iconProp);\n\n if (!iconMeta) return { component: YComponentIcon };\n\n let icon: IconValue | undefined = iconMeta;\n\n if (\n typeof icon === 'object' &&\n 'alias' in icon &&\n typeof icon.alias === 'string'\n ) {\n icon = icon.alias;\n }\n\n if (typeof icon === 'string') {\n icon = icon.trim();\n\n if (icon.startsWith('$')) {\n icon = iconModule.aliases?.[icon.slice(1)];\n }\n }\n\n if (!icon) throw new Error(`Could not find aliased icon \"${iconMeta}\"`);\n\n if (Array.isArray(icon)) {\n return {\n component: YSvgIcon,\n icon,\n };\n } else if (typeof icon !== 'string') {\n const iconValue = unref(iconProp);\n if (\n iconValue &&\n typeof iconValue === 'object' &&\n 'iconProps' in iconValue\n ) {\n icon = {\n component:\n 'component' in icon ? icon.component : (icon as JSXComponent),\n props:\n 'props' in icon\n ? mergeDeep(icon.props, iconValue?.iconProps ?? {})\n : iconValue.iconProps,\n };\n }\n\n return {\n component: YComponentIcon,\n icon,\n };\n }\n\n const iconSetName = Object.keys(iconModule.sets).find(\n (setName) => typeof icon === 'string' && icon.startsWith(`${setName}:`),\n );\n\n const iconName = iconSetName ? icon.slice(iconSetName.length + 1) : icon;\n const iconSet = iconModule.sets[iconSetName ?? iconModule.defaultSet];\n\n if (!iconSet?.component && typeof icon === 'string') {\n const text = new DOMParser().parseFromString(icon, 'text/xml');\n const svgNode = text.querySelector('svg');\n if (svgNode) {\n return {\n component: YComponentIcon,\n icon: {\n mounted() {\n svgNode.childNodes.forEach((child) => {\n this.$el?.appendChild(child);\n });\n },\n render: function () {\n const attrs: any = {};\n if (svgNode.hasAttributes()) {\n for (let i = 0; i < svgNode.attributes.length; i += 1) {\n const attr = svgNode.attributes.item(i);\n if (attr) {\n attrs[`^${attr.name}`] = attr.value;\n }\n }\n }\n\n const node = h('svg', { ...attrs }, []);\n return node;\n },\n } as any,\n };\n }\n }\n\n return {\n icon: iconName,\n component: iconSet.component,\n };\n });\n\n return {\n iconData,\n };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"icon.mjs","names":["h","computed","defineComponent","inject","mergeProps","unref","builtSet","mergeDeep","propsFactory","IconPropOption","String","Function","Object","Array","IconValue","pressIconPropsOptions","icon","type","tag","required","YComponentIcon","name","props","setup","_ref","slots","Icon","_createVNode","_Fragment","iconProps","component","default","YSvgIcon","inheritAttrs","_ref2","attrs","isArray","map","path","YUYEON_ICON_KEY","Symbol","for","createIconModule","options","defaultSet","sets","svg","aliases","useIcon","iconProp","iconModule","Error","iconData","iconMeta","alias","trim","startsWith","slice","iconValue","iconSetName","keys","find","setName","iconName","length","iconSet","text","DOMParser","parseFromString","svgNode","querySelector","mounted","childNodes","forEach","child","$el","appendChild","render","hasAttributes","i","attributes","attr","item","value","node"],"sources":["../../src/composables/icon.tsx"],"sourcesContent":["import { HTMLAttributes } from '@vue/runtime-dom';\nimport { Component, InjectionKey, PropType, Ref, h } from 'vue';\nimport { computed, defineComponent, inject, mergeProps, unref } from 'vue';\n\nimport { builtSet } from '../components';\nimport { JSXComponent } from '../types';\nimport { mergeDeep, propsFactory } from '../util';\n\ntype IconComponent = JSXComponent<IconProps>;\n\nexport type IconValue =\n | string\n | (string | [path: string, opacity: number])[]\n | IconComponent\n | { component: JSXComponent; props?: any }\n | { alias: string; iconProps?: any };\n\nexport const IconPropOption = [\n String,\n Function,\n Object,\n Array,\n] as PropType<IconValue>;\n\ntype IconProps = {\n tag: string;\n icon?: IconValue;\n disabled?: Boolean;\n};\n\nexport interface IconSet {\n component: IconComponent;\n}\n\nexport const IconValue = [\n String,\n Object,\n Array,\n Function,\n] as PropType<IconValue>;\n\nexport type IconModuleOptions = {\n defaultSet?: string;\n sets?: Record<string, IconSet>;\n aliases?: Partial<Record<string, any>>;\n};\n\nexport const pressIconPropsOptions = propsFactory(\n {\n icon: {\n type: IconValue,\n },\n tag: {\n type: String,\n required: true,\n },\n },\n 'icon',\n);\n\nexport const YComponentIcon = defineComponent({\n name: 'YComponentIcon',\n props: pressIconPropsOptions(),\n setup(props, { slots }) {\n return () => {\n const icon = props.icon as unknown;\n let Icon: JSXComponent = () => <></>;\n let iconProps: any = {};\n if (icon instanceof Object) {\n Icon = icon as JSXComponent;\n if ('component' in icon) {\n Icon = icon.component as JSXComponent;\n iconProps = (icon as any)?.props;\n }\n }\n return (\n <props.tag>\n {props.icon ? <Icon {...mergeProps(iconProps)} /> : slots.default?.()}\n </props.tag>\n );\n };\n },\n});\nexport type YComponentIcon = InstanceType<typeof YComponentIcon>;\n\nexport const YSvgIcon = defineComponent({\n name: 'YSvgIcon',\n inheritAttrs: false,\n props: pressIconPropsOptions(),\n setup(props, { attrs }) {\n return () => {\n return (\n <props.tag {...attrs}>\n <svg\n class=\"y-icon__svg\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n role=\"img\"\n aria-hidden=\"true\"\n >\n {Array.isArray(props.icon) ? (\n props.icon.map((path) =>\n Array.isArray(path) ? (\n <path d={path[0] as string} fill-opacity={path[1]}></path>\n ) : (\n <path d={path as string}></path>\n ),\n )\n ) : (\n <path d={props.icon as string}></path>\n )}\n </svg>\n </props.tag>\n );\n };\n },\n});\nexport type YSvgIcon = InstanceType<typeof YSvgIcon>;\n\nexport const YUYEON_ICON_KEY: InjectionKey<Required<IconModuleOptions>> =\n Symbol.for('yuyeon.icon');\n\nexport function createIconModule(options?: IconModuleOptions) {\n return mergeDeep(\n {\n defaultSet: 'built',\n sets: {\n svg: {\n component: YSvgIcon,\n },\n },\n aliases: {\n ...builtSet,\n },\n },\n options,\n ) as Required<IconModuleOptions>;\n}\n\ntype IconInstance = {\n component: IconComponent;\n icon?: IconValue;\n};\n\nexport function useIcon(iconProp: Ref<IconValue | undefined>) {\n const iconModule = inject(YUYEON_ICON_KEY);\n\n if (!iconModule) throw new Error('Not found provided \"IconModule\"');\n\n const iconData = computed<IconInstance>(() => {\n const iconMeta = unref(iconProp);\n\n if (!iconMeta) return { component: YComponentIcon };\n\n let icon: IconValue | undefined = iconMeta;\n\n if (\n typeof icon === 'object' &&\n 'alias' in icon &&\n typeof icon.alias === 'string'\n ) {\n icon = icon.alias;\n }\n\n if (typeof icon === 'string') {\n icon = icon.trim();\n\n if (icon.startsWith('$')) {\n icon = iconModule.aliases?.[icon.slice(1)];\n }\n }\n\n if (!icon) throw new Error(`Could not find aliased icon \"${iconMeta}\"`);\n\n if (Array.isArray(icon)) {\n return {\n component: YSvgIcon,\n icon,\n };\n } else if (typeof icon !== 'string') {\n const iconValue = unref(iconProp);\n if (\n iconValue &&\n typeof iconValue === 'object' &&\n 'iconProps' in iconValue\n ) {\n icon = {\n component:\n 'component' in icon ? icon.component : (icon as JSXComponent),\n props:\n 'props' in icon\n ? mergeDeep(icon.props, iconValue?.iconProps ?? {})\n : iconValue.iconProps,\n };\n }\n\n return {\n component: YComponentIcon,\n icon,\n };\n }\n\n const iconSetName = Object.keys(iconModule.sets).find(\n (setName) => typeof icon === 'string' && icon.startsWith(`${setName}:`),\n );\n\n const iconName = iconSetName ? icon.slice(iconSetName.length + 1) : icon;\n const iconSet = iconModule.sets[iconSetName ?? iconModule.defaultSet];\n\n if (!iconSet?.component && typeof icon === 'string') {\n const text = new DOMParser().parseFromString(icon, 'text/xml');\n const svgNode = text.querySelector('svg');\n if (svgNode) {\n return {\n component: YComponentIcon,\n icon: {\n mounted() {\n svgNode.childNodes.forEach((child) => {\n this.$el?.appendChild(child);\n });\n },\n render: function () {\n const attrs: any = {};\n if (svgNode.hasAttributes()) {\n for (let i = 0; i < svgNode.attributes.length; i += 1) {\n const attr = svgNode.attributes.item(i);\n if (attr) {\n attrs[`^${attr.name}`] = attr.value;\n }\n }\n }\n\n const node = h('svg', { ...attrs }, []);\n return node;\n },\n } as any,\n };\n }\n }\n\n return {\n icon: iconName,\n component: iconSet.component,\n };\n });\n\n return {\n iconData,\n };\n}\n"],"mappings":"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"}
|
package/lib/index.mjs
CHANGED
|
@@ -3,11 +3,11 @@ import * as components from "./components/index.mjs";
|
|
|
3
3
|
import { YUYEON_DATE_KEY, YUYEON_DATE_OPTIONS_KEY, createDateModule } from "./composables/date/index.mjs";
|
|
4
4
|
import { createI18nModule } from "./composables/i18n/index.mjs";
|
|
5
5
|
import { YUYEON_I18N_KEY } from "./composables/i18n/share.mjs";
|
|
6
|
+
import { YUYEON_ICON_KEY, createIconModule } from "./composables/icon.mjs";
|
|
6
7
|
import { YUYEON_THEME_KEY, createThemeModule, useTheme } from "./composables/theme/index.mjs";
|
|
7
8
|
import PlateWave from "./directives/plate-wave/index.mjs";
|
|
8
9
|
import { YUYEON_LOGO } from "./etc/index.mjs"; //
|
|
9
10
|
import "./styles/base.scss";
|
|
10
|
-
import { createIconModule, YUYEON_ICON_KEY } from "./composables/icon.mjs";
|
|
11
11
|
const defaultOptions = {
|
|
12
12
|
credit: true
|
|
13
13
|
};
|
package/lib/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["getCurrentInstance","nextTick","reactive","components","YUYEON_DATE_KEY","YUYEON_DATE_OPTIONS_KEY","createDateModule","createI18nModule","YUYEON_I18N_KEY","
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["getCurrentInstance","nextTick","reactive","components","YUYEON_DATE_KEY","YUYEON_DATE_OPTIONS_KEY","createDateModule","createI18nModule","YUYEON_I18N_KEY","YUYEON_ICON_KEY","createIconModule","YUYEON_THEME_KEY","createThemeModule","useTheme","PlateWave","YUYEON_LOGO","defaultOptions","credit","init","options","arguments","length","undefined","themeModule","theme","i18nModule","i18n","dateModule","date","localeModule","iconModule","icon","install","app","yuyeon","root","instance","rtlModule","Object","keys","forEach","componentName","comp","component","directive","provide","config","globalProperties","$yuyeon","_instance","_container","Error","$el","classList","add","setAttribute","console","log","unmount","scope","stop","useYuyeon","vm","appContext"],"sources":["../src/index.ts"],"sourcesContent":["import { Component, ComponentInternalInstance } from '@vue/runtime-core';\r\nimport type { App } from 'vue';\r\nimport { getCurrentInstance, nextTick, reactive } from 'vue';\r\n\r\nimport * as components from './components';\r\nimport {\r\n YUYEON_DATE_KEY,\r\n YUYEON_DATE_OPTIONS_KEY,\r\n createDateModule,\r\n} from './composables/date';\r\nimport { createI18nModule } from './composables/i18n';\r\nimport { YUYEON_I18N_KEY } from './composables/i18n/share';\r\nimport { YUYEON_ICON_KEY, createIconModule } from './composables/icon';\r\nimport {\r\n YUYEON_THEME_KEY,\r\n createThemeModule,\r\n useTheme,\r\n} from './composables/theme';\r\nimport PlateWave from './directives/plate-wave';\r\nimport { YUYEON_LOGO } from './etc';\r\n\r\n//\r\nimport './styles/base.scss';\r\n\r\nconst defaultOptions = {\r\n credit: true,\r\n};\r\n\r\ndeclare module 'vue' {\r\n interface ComponentCustomProperties {\r\n $yuyeon: any;\r\n }\r\n}\r\n\r\nexport function init(options: any = defaultOptions) {\r\n const themeModule = createThemeModule(options?.theme);\r\n const i18nModule = createI18nModule(options?.i18n);\r\n const dateModule = createDateModule(options?.date, i18nModule.localeModule);\r\n const iconModule = createIconModule(options?.icon);\r\n const install = (app: App): any => {\r\n themeModule.install(app);\r\n\r\n const yuyeon = reactive({\r\n app: null as ComponentInternalInstance | null,\r\n root: null as HTMLElement | null,\r\n theme: themeModule.instance,\r\n i18n: {\r\n ...i18nModule.localeModule,\r\n ...i18nModule.rtlModule,\r\n },\r\n date: dateModule,\r\n });\r\n\r\n Object.keys(components).forEach((componentName) => {\r\n const comp = components[componentName as keyof typeof components];\r\n app.component(componentName, comp as Component);\r\n });\r\n\r\n app.directive('plate-wave', PlateWave);\r\n\r\n app.provide(YUYEON_THEME_KEY, themeModule.instance);\r\n app.provide(YUYEON_ICON_KEY, iconModule);\r\n app.provide(YUYEON_I18N_KEY, {\r\n ...i18nModule.localeModule,\r\n ...i18nModule.rtlModule,\r\n });\r\n app.provide(YUYEON_DATE_OPTIONS_KEY, dateModule.options);\r\n app.provide(YUYEON_DATE_KEY, dateModule.instance);\r\n\r\n app.config.globalProperties.$yuyeon = yuyeon;\r\n\r\n nextTick(() => {\r\n yuyeon.app = app._instance as any;\r\n yuyeon.root = app._container;\r\n if (!yuyeon.root) {\r\n throw new Error(`yuyeon: Can't found instance`);\r\n }\r\n const $el = yuyeon.root;\r\n $el.classList.add('y-root');\r\n $el.setAttribute('data-y-root', '');\r\n themeModule.init(yuyeon);\r\n });\r\n if (options?.credit) {\r\n console.log(YUYEON_LOGO);\r\n }\r\n const { unmount } = app;\r\n app.unmount = () => {\r\n unmount();\r\n themeModule.scope.stop();\r\n app.unmount = unmount;\r\n };\r\n };\r\n\r\n return {\r\n install,\r\n };\r\n}\r\n\r\nexport function useYuyeon() {\r\n const vm = getCurrentInstance();\r\n if (!vm) throw new Error('[yuyeon] Called outside of setup context');\r\n\r\n return vm.appContext.config.globalProperties.$yuyeon;\r\n}\r\n\r\nexport { useTheme };\r\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "yuyeon",
|
|
3
|
-
"version": "0.1.0-rc.
|
|
3
|
+
"version": "0.1.0-rc.17",
|
|
4
4
|
"keywords": [
|
|
5
5
|
"UI Library",
|
|
6
6
|
"Vue"
|
|
@@ -75,15 +75,15 @@
|
|
|
75
75
|
"@babel/preset-typescript": "^7.21.0",
|
|
76
76
|
"@rollup/plugin-alias": "^4.0.3",
|
|
77
77
|
"@rollup/plugin-babel": "^6.0.3",
|
|
78
|
-
"@rollup/plugin-node-resolve": "^15.
|
|
78
|
+
"@rollup/plugin-node-resolve": "^15.2.3",
|
|
79
79
|
"@rollup/plugin-typescript": "^11.0.0",
|
|
80
|
-
"@trivago/prettier-plugin-sort-imports": "^4.
|
|
80
|
+
"@trivago/prettier-plugin-sort-imports": "^4.3.0",
|
|
81
81
|
"@types/jest": "^28.1.8",
|
|
82
|
-
"@types/node": "^18.
|
|
82
|
+
"@types/node": "^18.19.1",
|
|
83
83
|
"@types/resize-observer-browser": "^0.1.7",
|
|
84
|
-
"@vitejs/plugin-vue": "^
|
|
85
|
-
"@vitejs/plugin-vue-jsx": "^
|
|
86
|
-
"@vue/babel-plugin-jsx": "^1.
|
|
84
|
+
"@vitejs/plugin-vue": "^5.0.5",
|
|
85
|
+
"@vitejs/plugin-vue-jsx": "^4.0.0",
|
|
86
|
+
"@vue/babel-plugin-jsx": "^1.2.2",
|
|
87
87
|
"@vue/test-utils": "2.4.6",
|
|
88
88
|
"autoprefixer": "^10.4.14",
|
|
89
89
|
"babel-plugin-add-import-extension": "1.5.1",
|
|
@@ -98,10 +98,10 @@
|
|
|
98
98
|
"rollup-plugin-sourcemaps": "^0.6.3",
|
|
99
99
|
"rollup-plugin-terser": "^7.0.2",
|
|
100
100
|
"sass": "^1.63.3",
|
|
101
|
-
"vite": "^5.
|
|
102
|
-
"vite-plugin-dts": "^
|
|
103
|
-
"vue-router": "^4.
|
|
104
|
-
"vue-tsc": "^
|
|
101
|
+
"vite": "^5.3.1",
|
|
102
|
+
"vite-plugin-dts": "^3.9.1",
|
|
103
|
+
"vue-router": "^4.3.3",
|
|
104
|
+
"vue-tsc": "^2.0.21"
|
|
105
105
|
},
|
|
106
106
|
"peerDependencies": {
|
|
107
107
|
"motion": "^10.15.5",
|