yuyeon 0.2.2-rc.3 → 0.2.2-rc.5
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/style.css +1 -1
- package/dist/yuyeon.js +5 -3
- package/dist/yuyeon.umd.cjs +1 -1
- package/lib/components/chip/YChip.scss +1 -1
- package/lib/components/dialog/YDialog.mjs +0 -1
- package/lib/components/dialog/YDialog.mjs.map +1 -1
- package/lib/components/text-highlighter/YTextHighlighter.scss +1 -1
- package/lib/composables/theme/setting.mjs +4 -2
- package/lib/composables/theme/setting.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -5,7 +5,7 @@ $chip-border-radius: variables.$border-radius-root;
|
|
|
5
5
|
.y-chip {
|
|
6
6
|
--y-chip__background-opacity: 0.14;
|
|
7
7
|
--y-chip__color: var(--y-theme-on-surface);
|
|
8
|
-
--y-chip__background: rgba(var(--y-theme-on-surface), var(--y-chip__background-opacity));
|
|
8
|
+
--y-chip__background: rgba(var(--y-theme-on-surface-rgb), var(--y-chip__background-opacity));
|
|
9
9
|
|
|
10
10
|
display: inline-flex;
|
|
11
11
|
position: relative;
|
|
@@ -147,7 +147,6 @@ export const YDialog = defineComponent({
|
|
|
147
147
|
document.documentElement.classList.remove('y-dialog--prevent-scroll');
|
|
148
148
|
root$.style.top = '';
|
|
149
149
|
root$.style.left = '';
|
|
150
|
-
console.log(tempScrollTop.value);
|
|
151
150
|
requestAnimationFrame(() => {
|
|
152
151
|
document.documentElement.scrollTop = tempScrollTop.value;
|
|
153
152
|
document.documentElement.scrollLeft = tempScrollLeft.value;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YDialog.mjs","names":["computed","getCurrentInstance","onBeforeUnmount","ref","shallowRef","watch","useModelDuplex","useRender","omit","bindClasses","chooseProps","defineComponent","propsFactory","toStyleSizeValue","YCard","YLayer","pressYLayerProps","useActiveStack","pressYDialogPropsOptions","persistent","type","Boolean","default","dialogClasses","Array","String","Object","maximized","focusTrap","offset","scrim","YDialog","name","components","props","emits","setup","_ref","emit","slots","vm","$yuyeon","appContext","config","globalProperties","active","classes","boundClasses","styles","contentStyles","paddingTop","layer$","children","onFocusin","e","prevTarget","relatedTarget","target","excludeTarget","document","querySelector","isArray","excluded","some","exclude","testChildrenContains","layers","layer","content$","contains","value","includes","focusableSelector","focusables","querySelectorAll","filter","el","hasAttribute","matches","length","firstChild","lastChild","isSameNode","focus","installFocusTrap","addEventListener","dismantleFocusTrap","removeEventListener","tempScrollTop","tempScrollLeft","preventInteractionBackground","toggle","root$","root","activeLayers","getActiveLayers","filtered","ctx","modal","classList","scrollTop","documentElement","scrollLeft","add","style","top","left","isMe","remove","console","log","requestAnimationFrame","onUpdate","v","onClick","currentActive","disabled","baseEl","neo","old","immediate","_createVNode","_Fragment","_mergeProps","$event","_len","arguments","args","_key","base"],"sources":["../../../src/components/dialog/YDialog.tsx"],"sourcesContent":["import {\r\n type PropType,\r\n computed,\r\n getCurrentInstance,\r\n onBeforeUnmount,\r\n ref,\r\n shallowRef,\r\n watch,\r\n} from 'vue';\r\n\r\nimport { useModelDuplex } from '@/composables/communication';\r\nimport { useRender } from '@/composables/component';\r\nimport { omit } from '@/util/common';\r\nimport {\r\n bindClasses,\r\n chooseProps,\r\n defineComponent,\r\n propsFactory,\r\n} from '@/util/component';\r\nimport { toStyleSizeValue } from '@/util/ui';\r\n\r\nimport { YCard } from '../card';\r\nimport { YLayer, pressYLayerProps } from '../layer';\r\nimport { useActiveStack } from '../layer/active-stack';\r\n\r\nimport './YDialog.scss';\r\n\r\nexport const pressYDialogPropsOptions = propsFactory(\r\n {\r\n persistent: {\r\n type: Boolean as PropType<boolean>,\r\n default: true,\r\n },\r\n dialogClasses: {\r\n type: [Array, String, Object] as PropType<\r\n string[] | string | Record<string, any>\r\n >,\r\n },\r\n maximized: Boolean as PropType<boolean>,\r\n focusTrap: {\r\n type: [Boolean, String, Object, Array] as PropType<\r\n false | string | string[] | HTMLElement\r\n >,\r\n default: true,\r\n },\r\n offset: {\r\n type: String as PropType<string>,\r\n },\r\n ...omit(\r\n pressYLayerProps({\r\n scrim: true,\r\n }),\r\n ['offset', 'classes'],\r\n ),\r\n },\r\n 'YDialog',\r\n);\r\n\r\nexport const YDialog = defineComponent({\r\n name: 'YDialog',\r\n components: {\r\n YLayer,\r\n YCard,\r\n },\r\n props: pressYDialogPropsOptions(),\r\n emits: ['update:modelValue'],\r\n setup(props, { emit, slots }) {\r\n const vm = getCurrentInstance();\r\n const $yuyeon = vm?.appContext.config.globalProperties.$yuyeon;\r\n const active = useModelDuplex(props);\r\n\r\n const classes = computed(() => {\r\n const boundClasses = bindClasses(props.dialogClasses);\r\n return {\r\n ...boundClasses,\r\n 'y-dialog': true,\r\n 'y-dialog--maximized': props.maximized,\r\n };\r\n });\r\n\r\n const styles = computed(() => {\r\n return {\r\n ...(props.contentStyles ?? {}),\r\n paddingTop: toStyleSizeValue(props.offset),\r\n };\r\n });\r\n\r\n const layer$ = ref<typeof YLayer>();\r\n const { children } = useActiveStack(layer$, active, shallowRef(true));\r\n\r\n function onFocusin(e: FocusEvent) {\r\n if (props.focusTrap === false) {\r\n return;\r\n }\r\n\r\n const prevTarget = e.relatedTarget as HTMLElement | null;\r\n const target = e.target as HTMLElement | null;\r\n\r\n const excludeTarget = props.focusTrap;\r\n\r\n if (\r\n typeof excludeTarget === 'string' &&\r\n document.querySelector(excludeTarget) == target\r\n ) {\r\n return;\r\n }\r\n\r\n if (typeof excludeTarget === 'object') {\r\n if (Array.isArray(excludeTarget)) {\r\n const excluded = excludeTarget.some((exclude) => {\r\n if (typeof exclude === 'string') {\r\n return document.querySelector(exclude) == target;\r\n }\r\n if (typeof exclude === 'object') {\r\n return exclude == target;\r\n }\r\n });\r\n if (excluded) {\r\n return;\r\n }\r\n } else if (excludeTarget == target) {\r\n return;\r\n }\r\n }\r\n\r\n function testChildrenContains(layers: YLayer[]) {\r\n return layers.some((layer) => {\r\n return !layer.content$?.contains(target);\r\n });\r\n }\r\n\r\n if (\r\n prevTarget !== target &&\r\n layer$.value?.content$ &&\r\n ![document, layer$.value?.content$].includes(target) &&\r\n !layer$.value?.content$.contains(target) &&\r\n !testChildrenContains(children.value)\r\n ) {\r\n const focusableSelector =\r\n 'button, [href], input:not([type=\"hidden\"]), select, textarea, [tabindex]:not([tabindex=\"-1\"])';\r\n const focusables = [\r\n ...layer$.value.content$.querySelectorAll(focusableSelector),\r\n ].filter(\r\n (el) =>\r\n !el.hasAttribute('disabled') && !el.matches('[tabindex=\"-1\"]'),\r\n ) as HTMLElement[];\r\n if (!focusables.length) return;\r\n const firstChild = focusables[0];\r\n const lastChild = focusables[focusables.length - 1];\r\n if (target?.isSameNode(firstChild) || target?.isSameNode(lastChild)) {\r\n return;\r\n }\r\n if (firstChild === lastChild) {\r\n lastChild.focus();\r\n } else {\r\n firstChild.focus();\r\n }\r\n }\r\n }\r\n\r\n function installFocusTrap() {\r\n document.addEventListener('focusin', onFocusin);\r\n }\r\n\r\n function dismantleFocusTrap() {\r\n document.removeEventListener('focusin', onFocusin);\r\n }\r\n\r\n const tempScrollTop = ref(0);\r\n const tempScrollLeft = ref(0);\r\n\r\n function preventInteractionBackground(toggle: boolean) {\r\n const root$ = $yuyeon.root as HTMLElement;\r\n const activeLayers = layer$.value?.getActiveLayers();\r\n if (toggle) {\r\n const filtered = activeLayers?.filter((layer: any) => {\r\n return layer.ctx.modal;\r\n });\r\n if (\r\n (filtered && !filtered.length) ||\r\n !root$.classList.contains('y-dialog--virtual-scroll')\r\n ) {\r\n const scrollTop = document.documentElement.scrollTop;\r\n const scrollLeft = document.documentElement.scrollLeft;\r\n tempScrollTop.value = scrollTop;\r\n tempScrollLeft.value = scrollLeft;\r\n if (props.maximized) {\r\n document.documentElement.classList.add('y-dialog--prevent-scroll');\r\n }\r\n root$.classList.add('y-dialog--virtual-scroll');\r\n root$.style.top = toStyleSizeValue(-1 * scrollTop) || '';\r\n root$.style.left = toStyleSizeValue(-1 * scrollLeft) || '';\r\n }\r\n } else {\r\n const filtered = activeLayers?.filter((layer: any) => {\r\n return !layer$.value?.isMe(layer) && layer.ctx.modal;\r\n });\r\n if (filtered && !filtered.length) {\r\n root$.classList.remove('y-dialog--virtual-scroll');\r\n document.documentElement.classList.remove('y-dialog--prevent-scroll');\r\n root$.style.top = '';\r\n root$.style.left = '';\r\n console.log(tempScrollTop.value);\r\n requestAnimationFrame(() => {\r\n document.documentElement.scrollTop = tempScrollTop.value;\r\n document.documentElement.scrollLeft = tempScrollLeft.value;\r\n });\r\n }\r\n }\r\n }\r\n\r\n function onUpdate(v: boolean) {\r\n active.value = v;\r\n }\r\n\r\n function onClick(e: MouseEvent) {\r\n const currentActive = active.value;\r\n if (!props.disabled) {\r\n active.value = !currentActive;\r\n }\r\n }\r\n\r\n watch(\r\n () => layer$.value?.baseEl,\r\n (neo, old) => {\r\n if (neo) {\r\n neo.addEventListener('click', onClick);\r\n } else if (old) {\r\n old.removeEventListener('click', onClick);\r\n }\r\n },\r\n );\r\n\r\n watch(\r\n () => active.value,\r\n (neo) => {\r\n neo ? installFocusTrap() : dismantleFocusTrap();\r\n preventInteractionBackground(neo);\r\n },\r\n { immediate: true },\r\n );\r\n\r\n onBeforeUnmount(() => {\r\n if (active.value) {\r\n active.value = false;\r\n }\r\n });\r\n\r\n useRender(() => {\r\n return (\r\n <>\r\n <YLayer\r\n v-model={active.value}\r\n classes={classes.value}\r\n content-styles={styles.value}\r\n modal\r\n ref={layer$}\r\n {...omit(chooseProps(props, YLayer.props), ['contentStyles'])}\r\n >\r\n {{\r\n default: (...args: any[]) => slots.default?.(...args),\r\n base: slots.base,\r\n }}\r\n </YLayer>\r\n </>\r\n );\r\n });\r\n\r\n return {\r\n active,\r\n layer: layer$,\r\n classes,\r\n };\r\n },\r\n});\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"YDialog.mjs","names":["computed","getCurrentInstance","onBeforeUnmount","ref","shallowRef","watch","useModelDuplex","useRender","omit","bindClasses","chooseProps","defineComponent","propsFactory","toStyleSizeValue","YCard","YLayer","pressYLayerProps","useActiveStack","pressYDialogPropsOptions","persistent","type","Boolean","default","dialogClasses","Array","String","Object","maximized","focusTrap","offset","scrim","YDialog","name","components","props","emits","setup","_ref","emit","slots","vm","$yuyeon","appContext","config","globalProperties","active","classes","boundClasses","styles","contentStyles","paddingTop","layer$","children","onFocusin","e","prevTarget","relatedTarget","target","excludeTarget","document","querySelector","isArray","excluded","some","exclude","testChildrenContains","layers","layer","content$","contains","value","includes","focusableSelector","focusables","querySelectorAll","filter","el","hasAttribute","matches","length","firstChild","lastChild","isSameNode","focus","installFocusTrap","addEventListener","dismantleFocusTrap","removeEventListener","tempScrollTop","tempScrollLeft","preventInteractionBackground","toggle","root$","root","activeLayers","getActiveLayers","filtered","ctx","modal","classList","scrollTop","documentElement","scrollLeft","add","style","top","left","isMe","remove","requestAnimationFrame","onUpdate","v","onClick","currentActive","disabled","baseEl","neo","old","immediate","_createVNode","_Fragment","_mergeProps","$event","_len","arguments","args","_key","base"],"sources":["../../../src/components/dialog/YDialog.tsx"],"sourcesContent":["import {\r\n type PropType,\r\n computed,\r\n getCurrentInstance,\r\n onBeforeUnmount,\r\n ref,\r\n shallowRef,\r\n watch,\r\n} from 'vue';\r\n\r\nimport { useModelDuplex } from '@/composables/communication';\r\nimport { useRender } from '@/composables/component';\r\nimport { omit } from '@/util/common';\r\nimport {\r\n bindClasses,\r\n chooseProps,\r\n defineComponent,\r\n propsFactory,\r\n} from '@/util/component';\r\nimport { toStyleSizeValue } from '@/util/ui';\r\n\r\nimport { YCard } from '../card';\r\nimport { YLayer, pressYLayerProps } from '../layer';\r\nimport { useActiveStack } from '../layer/active-stack';\r\n\r\nimport './YDialog.scss';\r\n\r\nexport const pressYDialogPropsOptions = propsFactory(\r\n {\r\n persistent: {\r\n type: Boolean as PropType<boolean>,\r\n default: true,\r\n },\r\n dialogClasses: {\r\n type: [Array, String, Object] as PropType<\r\n string[] | string | Record<string, any>\r\n >,\r\n },\r\n maximized: Boolean as PropType<boolean>,\r\n focusTrap: {\r\n type: [Boolean, String, Object, Array] as PropType<\r\n false | string | string[] | HTMLElement\r\n >,\r\n default: true,\r\n },\r\n offset: {\r\n type: String as PropType<string>,\r\n },\r\n ...omit(\r\n pressYLayerProps({\r\n scrim: true,\r\n }),\r\n ['offset', 'classes'],\r\n ),\r\n },\r\n 'YDialog',\r\n);\r\n\r\nexport const YDialog = defineComponent({\r\n name: 'YDialog',\r\n components: {\r\n YLayer,\r\n YCard,\r\n },\r\n props: pressYDialogPropsOptions(),\r\n emits: ['update:modelValue'],\r\n setup(props, { emit, slots }) {\r\n const vm = getCurrentInstance();\r\n const $yuyeon = vm?.appContext.config.globalProperties.$yuyeon;\r\n const active = useModelDuplex(props);\r\n\r\n const classes = computed(() => {\r\n const boundClasses = bindClasses(props.dialogClasses);\r\n return {\r\n ...boundClasses,\r\n 'y-dialog': true,\r\n 'y-dialog--maximized': props.maximized,\r\n };\r\n });\r\n\r\n const styles = computed(() => {\r\n return {\r\n ...(props.contentStyles ?? {}),\r\n paddingTop: toStyleSizeValue(props.offset),\r\n };\r\n });\r\n\r\n const layer$ = ref<typeof YLayer>();\r\n const { children } = useActiveStack(layer$, active, shallowRef(true));\r\n\r\n function onFocusin(e: FocusEvent) {\r\n if (props.focusTrap === false) {\r\n return;\r\n }\r\n\r\n const prevTarget = e.relatedTarget as HTMLElement | null;\r\n const target = e.target as HTMLElement | null;\r\n\r\n const excludeTarget = props.focusTrap;\r\n\r\n if (\r\n typeof excludeTarget === 'string' &&\r\n document.querySelector(excludeTarget) == target\r\n ) {\r\n return;\r\n }\r\n\r\n if (typeof excludeTarget === 'object') {\r\n if (Array.isArray(excludeTarget)) {\r\n const excluded = excludeTarget.some((exclude) => {\r\n if (typeof exclude === 'string') {\r\n return document.querySelector(exclude) == target;\r\n }\r\n if (typeof exclude === 'object') {\r\n return exclude == target;\r\n }\r\n });\r\n if (excluded) {\r\n return;\r\n }\r\n } else if (excludeTarget == target) {\r\n return;\r\n }\r\n }\r\n\r\n function testChildrenContains(layers: YLayer[]) {\r\n return layers.some((layer) => {\r\n return !layer.content$?.contains(target);\r\n });\r\n }\r\n\r\n if (\r\n prevTarget !== target &&\r\n layer$.value?.content$ &&\r\n ![document, layer$.value?.content$].includes(target) &&\r\n !layer$.value?.content$.contains(target) &&\r\n !testChildrenContains(children.value)\r\n ) {\r\n const focusableSelector =\r\n 'button, [href], input:not([type=\"hidden\"]), select, textarea, [tabindex]:not([tabindex=\"-1\"])';\r\n const focusables = [\r\n ...layer$.value.content$.querySelectorAll(focusableSelector),\r\n ].filter(\r\n (el) =>\r\n !el.hasAttribute('disabled') && !el.matches('[tabindex=\"-1\"]'),\r\n ) as HTMLElement[];\r\n if (!focusables.length) return;\r\n const firstChild = focusables[0];\r\n const lastChild = focusables[focusables.length - 1];\r\n if (target?.isSameNode(firstChild) || target?.isSameNode(lastChild)) {\r\n return;\r\n }\r\n if (firstChild === lastChild) {\r\n lastChild.focus();\r\n } else {\r\n firstChild.focus();\r\n }\r\n }\r\n }\r\n\r\n function installFocusTrap() {\r\n document.addEventListener('focusin', onFocusin);\r\n }\r\n\r\n function dismantleFocusTrap() {\r\n document.removeEventListener('focusin', onFocusin);\r\n }\r\n\r\n const tempScrollTop = ref(0);\r\n const tempScrollLeft = ref(0);\r\n\r\n function preventInteractionBackground(toggle: boolean) {\r\n const root$ = $yuyeon.root as HTMLElement;\r\n const activeLayers = layer$.value?.getActiveLayers();\r\n if (toggle) {\r\n const filtered = activeLayers?.filter((layer: any) => {\r\n return layer.ctx.modal;\r\n });\r\n if (\r\n (filtered && !filtered.length) ||\r\n !root$.classList.contains('y-dialog--virtual-scroll')\r\n ) {\r\n const scrollTop = document.documentElement.scrollTop;\r\n const scrollLeft = document.documentElement.scrollLeft;\r\n tempScrollTop.value = scrollTop;\r\n tempScrollLeft.value = scrollLeft;\r\n if (props.maximized) {\r\n document.documentElement.classList.add('y-dialog--prevent-scroll');\r\n }\r\n root$.classList.add('y-dialog--virtual-scroll');\r\n root$.style.top = toStyleSizeValue(-1 * scrollTop) || '';\r\n root$.style.left = toStyleSizeValue(-1 * scrollLeft) || '';\r\n }\r\n } else {\r\n const filtered = activeLayers?.filter((layer: any) => {\r\n return !layer$.value?.isMe(layer) && layer.ctx.modal;\r\n });\r\n if (filtered && !filtered.length) {\r\n root$.classList.remove('y-dialog--virtual-scroll');\r\n document.documentElement.classList.remove('y-dialog--prevent-scroll');\r\n root$.style.top = '';\r\n root$.style.left = '';\r\n requestAnimationFrame(() => {\r\n document.documentElement.scrollTop = tempScrollTop.value;\r\n document.documentElement.scrollLeft = tempScrollLeft.value;\r\n });\r\n }\r\n }\r\n }\r\n\r\n function onUpdate(v: boolean) {\r\n active.value = v;\r\n }\r\n\r\n function onClick(e: MouseEvent) {\r\n const currentActive = active.value;\r\n if (!props.disabled) {\r\n active.value = !currentActive;\r\n }\r\n }\r\n\r\n watch(\r\n () => layer$.value?.baseEl,\r\n (neo, old) => {\r\n if (neo) {\r\n neo.addEventListener('click', onClick);\r\n } else if (old) {\r\n old.removeEventListener('click', onClick);\r\n }\r\n },\r\n );\r\n\r\n watch(\r\n () => active.value,\r\n (neo) => {\r\n neo ? installFocusTrap() : dismantleFocusTrap();\r\n preventInteractionBackground(neo);\r\n },\r\n { immediate: true },\r\n );\r\n\r\n onBeforeUnmount(() => {\r\n if (active.value) {\r\n active.value = false;\r\n }\r\n });\r\n\r\n useRender(() => {\r\n return (\r\n <>\r\n <YLayer\r\n v-model={active.value}\r\n classes={classes.value}\r\n content-styles={styles.value}\r\n modal\r\n ref={layer$}\r\n {...omit(chooseProps(props, YLayer.props), ['contentStyles'])}\r\n >\r\n {{\r\n default: (...args: any[]) => slots.default?.(...args),\r\n base: slots.base,\r\n }}\r\n </YLayer>\r\n </>\r\n );\r\n });\r\n\r\n return {\r\n active,\r\n layer: layer$,\r\n classes,\r\n };\r\n },\r\n});\r\n"],"mappings":"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"}
|
|
@@ -40,7 +40,8 @@ export const defaultThemesValues = {
|
|
|
40
40
|
'on-info': '#ffffff',
|
|
41
41
|
success: '#006d42',
|
|
42
42
|
'on-success': '#ffffff',
|
|
43
|
-
shadow: '#000000'
|
|
43
|
+
shadow: '#000000',
|
|
44
|
+
highlighter: '#ffff00'
|
|
44
45
|
},
|
|
45
46
|
variables: {
|
|
46
47
|
'outline-opacity': 0.14,
|
|
@@ -73,7 +74,8 @@ export const defaultThemesValues = {
|
|
|
73
74
|
'on-info': '#002c72',
|
|
74
75
|
success: '#61dd9a',
|
|
75
76
|
'on-success': '#003920',
|
|
76
|
-
shadow: '#000000'
|
|
77
|
+
shadow: '#000000',
|
|
78
|
+
highlighter: '#51510d'
|
|
77
79
|
},
|
|
78
80
|
variables: {
|
|
79
81
|
'outline-opacity': 0.14,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setting.mjs","names":["mergeDeep","ThemeScheme","light","dark","defaultTonalLuminance","defaultPalette","scaleMethod","colors","primary","secondary","tertiary","neutral","positive","negative","warning","info","defaultThemesValues","isDark","background","surface","outline","error","success","shadow","variables","configureOptions","options","scheme","theme","themes","palette","separation"],"sources":["../../../src/composables/theme/setting.ts"],"sourcesContent":["import { mergeDeep } from '@/util/common';\r\n\r\nimport type { PaletteOption, ThemeOptions } from './types';\r\n\r\nexport const ThemeScheme = {\r\n light: 'light',\r\n dark: 'dark',\r\n} as const;\r\n\r\nexport const defaultTonalLuminance = [\r\n 0, 10, 20, 25, 30, 35, 40, 50, 60, 70, 80, 90, 95, 98, 99, 100,\r\n];\r\n\r\nexport const defaultPalette: PaletteOption = {\r\n scaleMethod: 'tonal',\r\n colors: {\r\n primary: '#0062a1',\r\n secondary: '#6251a6',\r\n tertiary: '#3c691b',\r\n neutral: '#5d5e61',\r\n positive: '#009d61',\r\n negative: '#ba1a1a',\r\n warning: '#f69400',\r\n info: '#0d62e6',\r\n },\r\n};\r\n\r\nexport const defaultThemesValues: any = {\r\n light: {\r\n isDark: false,\r\n colors: {\r\n primary: '#0062a1',\r\n secondary: '#6251a6',\r\n tertiary: '#3c691b',\r\n background: '#fdfbff',\r\n 'on-background': '#1a1c1e',\r\n surface: '#fdfbff',\r\n 'on-surface': '#1a1c1e',\r\n 'surface-variant': '#dfe3eb',\r\n 'on-surface-variant': '#42474e',\r\n outline: '#73777f',\r\n 'outline-variant': '#c2c7cf',\r\n error: '#ba1a1a',\r\n 'on-error': '#ffffff',\r\n warning: '#8a5100',\r\n 'on-warning': '#ffffff',\r\n info: '#0056d0',\r\n 'on-info': '#ffffff',\r\n success: '#006d42',\r\n 'on-success': '#ffffff',\r\n shadow: '#000000',\r\n },\r\n variables: {\r\n 'outline-opacity': 0.14,\r\n 'base-shadow-opacity': 0.14,\r\n 'base-font': '#141414',\r\n },\r\n },\r\n dark: {\r\n isDark: true,\r\n colors: {\r\n primary: '#9ccaff',\r\n 'on-primary': '#003257',\r\n secondary: '#cbbeff',\r\n 'on-secondary': '#332074',\r\n tertiary: '#a1d57a',\r\n 'on-tertiary': '#173800',\r\n background: '#1a1c1e',\r\n 'on-background': '#e2e2e6',\r\n surface: '#1a1c1e',\r\n 'on-surface': '#e2e2e6',\r\n 'surface-variant': '#42474e',\r\n 'on-surface-variant': '#c2c7cf',\r\n outline: '#8c9199',\r\n 'outline-variant': '#42474e',\r\n error: '#ffb4ab',\r\n 'on-error': '#690005',\r\n warning: '#ffb86e',\r\n 'on-warning': '#492900',\r\n info: '#b1c5ff',\r\n 'on-info': '#002c72',\r\n success: '#61dd9a',\r\n 'on-success': '#003920',\r\n shadow: '#000000',\r\n },\r\n variables: {\r\n 'outline-opacity': 0.14,\r\n 'base-shadow-opacity': 0.14,\r\n 'base-font': '#f5f5f5',\r\n },\r\n },\r\n};\r\n\r\nexport function configureOptions(options?: ThemeOptions): any {\r\n if (!options) {\r\n return {\r\n scheme: ThemeScheme.light,\r\n theme: ['light', 'dark'],\r\n themes: { ...mergeDeep(defaultThemesValues) },\r\n palette: { ...mergeDeep(defaultPalette) },\r\n };\r\n }\r\n return {\r\n scheme: ThemeScheme.light,\r\n theme: ['light', 'dark'],\r\n themes: { ...mergeDeep(defaultThemesValues, options.themes) },\r\n palette: { ...mergeDeep(defaultPalette, options.palette) },\r\n separation: options?.separation,\r\n };\r\n}\r\n"],"mappings":"SAASA,SAAS;AAIlB,OAAO,MAAMC,WAAW,GAAG;EACzBC,KAAK,EAAE,OAAO;EACdC,IAAI,EAAE;AACR,CAAU;AAEV,OAAO,MAAMC,qBAAqB,GAAG,CACnC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAC/D;AAED,OAAO,MAAMC,cAA6B,GAAG;EAC3CC,WAAW,EAAE,OAAO;EACpBC,MAAM,EAAE;IACNC,OAAO,EAAE,SAAS;IAClBC,SAAS,EAAE,SAAS;IACpBC,QAAQ,EAAE,SAAS;IACnBC,OAAO,EAAE,SAAS;IAClBC,QAAQ,EAAE,SAAS;IACnBC,QAAQ,EAAE,SAAS;IACnBC,OAAO,EAAE,SAAS;IAClBC,IAAI,EAAE;EACR;AACF,CAAC;AAED,OAAO,MAAMC,mBAAwB,GAAG;EACtCd,KAAK,EAAE;IACLe,MAAM,EAAE,KAAK;IACbV,MAAM,EAAE;MACNC,OAAO,EAAE,SAAS;MAClBC,SAAS,EAAE,SAAS;MACpBC,QAAQ,EAAE,SAAS;MACnBQ,UAAU,EAAE,SAAS;MACrB,eAAe,EAAE,SAAS;MAC1BC,OAAO,EAAE,SAAS;MAClB,YAAY,EAAE,SAAS;MACvB,iBAAiB,EAAE,SAAS;MAC5B,oBAAoB,EAAE,SAAS;MAC/BC,OAAO,EAAE,SAAS;MAClB,iBAAiB,EAAE,SAAS;MAC5BC,KAAK,EAAE,SAAS;MAChB,UAAU,EAAE,SAAS;MACrBP,OAAO,EAAE,SAAS;MAClB,YAAY,EAAE,SAAS;MACvBC,IAAI,EAAE,SAAS;MACf,SAAS,EAAE,SAAS;MACpBO,OAAO,EAAE,SAAS;MAClB,YAAY,EAAE,SAAS;MACvBC,MAAM,EAAE;
|
|
1
|
+
{"version":3,"file":"setting.mjs","names":["mergeDeep","ThemeScheme","light","dark","defaultTonalLuminance","defaultPalette","scaleMethod","colors","primary","secondary","tertiary","neutral","positive","negative","warning","info","defaultThemesValues","isDark","background","surface","outline","error","success","shadow","highlighter","variables","configureOptions","options","scheme","theme","themes","palette","separation"],"sources":["../../../src/composables/theme/setting.ts"],"sourcesContent":["import { mergeDeep } from '@/util/common';\r\n\r\nimport type { PaletteOption, ThemeOptions } from './types';\r\n\r\nexport const ThemeScheme = {\r\n light: 'light',\r\n dark: 'dark',\r\n} as const;\r\n\r\nexport const defaultTonalLuminance = [\r\n 0, 10, 20, 25, 30, 35, 40, 50, 60, 70, 80, 90, 95, 98, 99, 100,\r\n];\r\n\r\nexport const defaultPalette: PaletteOption = {\r\n scaleMethod: 'tonal',\r\n colors: {\r\n primary: '#0062a1',\r\n secondary: '#6251a6',\r\n tertiary: '#3c691b',\r\n neutral: '#5d5e61',\r\n positive: '#009d61',\r\n negative: '#ba1a1a',\r\n warning: '#f69400',\r\n info: '#0d62e6',\r\n },\r\n};\r\n\r\nexport const defaultThemesValues: any = {\r\n light: {\r\n isDark: false,\r\n colors: {\r\n primary: '#0062a1',\r\n secondary: '#6251a6',\r\n tertiary: '#3c691b',\r\n background: '#fdfbff',\r\n 'on-background': '#1a1c1e',\r\n surface: '#fdfbff',\r\n 'on-surface': '#1a1c1e',\r\n 'surface-variant': '#dfe3eb',\r\n 'on-surface-variant': '#42474e',\r\n outline: '#73777f',\r\n 'outline-variant': '#c2c7cf',\r\n error: '#ba1a1a',\r\n 'on-error': '#ffffff',\r\n warning: '#8a5100',\r\n 'on-warning': '#ffffff',\r\n info: '#0056d0',\r\n 'on-info': '#ffffff',\r\n success: '#006d42',\r\n 'on-success': '#ffffff',\r\n shadow: '#000000',\r\n highlighter: '#ffff00',\r\n },\r\n variables: {\r\n 'outline-opacity': 0.14,\r\n 'base-shadow-opacity': 0.14,\r\n 'base-font': '#141414',\r\n },\r\n },\r\n dark: {\r\n isDark: true,\r\n colors: {\r\n primary: '#9ccaff',\r\n 'on-primary': '#003257',\r\n secondary: '#cbbeff',\r\n 'on-secondary': '#332074',\r\n tertiary: '#a1d57a',\r\n 'on-tertiary': '#173800',\r\n background: '#1a1c1e',\r\n 'on-background': '#e2e2e6',\r\n surface: '#1a1c1e',\r\n 'on-surface': '#e2e2e6',\r\n 'surface-variant': '#42474e',\r\n 'on-surface-variant': '#c2c7cf',\r\n outline: '#8c9199',\r\n 'outline-variant': '#42474e',\r\n error: '#ffb4ab',\r\n 'on-error': '#690005',\r\n warning: '#ffb86e',\r\n 'on-warning': '#492900',\r\n info: '#b1c5ff',\r\n 'on-info': '#002c72',\r\n success: '#61dd9a',\r\n 'on-success': '#003920',\r\n shadow: '#000000',\r\n highlighter: '#51510d',\r\n },\r\n variables: {\r\n 'outline-opacity': 0.14,\r\n 'base-shadow-opacity': 0.14,\r\n 'base-font': '#f5f5f5',\r\n },\r\n },\r\n};\r\n\r\nexport function configureOptions(options?: ThemeOptions): any {\r\n if (!options) {\r\n return {\r\n scheme: ThemeScheme.light,\r\n theme: ['light', 'dark'],\r\n themes: { ...mergeDeep(defaultThemesValues) },\r\n palette: { ...mergeDeep(defaultPalette) },\r\n };\r\n }\r\n return {\r\n scheme: ThemeScheme.light,\r\n theme: ['light', 'dark'],\r\n themes: { ...mergeDeep(defaultThemesValues, options.themes) },\r\n palette: { ...mergeDeep(defaultPalette, options.palette) },\r\n separation: options?.separation,\r\n };\r\n}\r\n"],"mappings":"SAASA,SAAS;AAIlB,OAAO,MAAMC,WAAW,GAAG;EACzBC,KAAK,EAAE,OAAO;EACdC,IAAI,EAAE;AACR,CAAU;AAEV,OAAO,MAAMC,qBAAqB,GAAG,CACnC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAC/D;AAED,OAAO,MAAMC,cAA6B,GAAG;EAC3CC,WAAW,EAAE,OAAO;EACpBC,MAAM,EAAE;IACNC,OAAO,EAAE,SAAS;IAClBC,SAAS,EAAE,SAAS;IACpBC,QAAQ,EAAE,SAAS;IACnBC,OAAO,EAAE,SAAS;IAClBC,QAAQ,EAAE,SAAS;IACnBC,QAAQ,EAAE,SAAS;IACnBC,OAAO,EAAE,SAAS;IAClBC,IAAI,EAAE;EACR;AACF,CAAC;AAED,OAAO,MAAMC,mBAAwB,GAAG;EACtCd,KAAK,EAAE;IACLe,MAAM,EAAE,KAAK;IACbV,MAAM,EAAE;MACNC,OAAO,EAAE,SAAS;MAClBC,SAAS,EAAE,SAAS;MACpBC,QAAQ,EAAE,SAAS;MACnBQ,UAAU,EAAE,SAAS;MACrB,eAAe,EAAE,SAAS;MAC1BC,OAAO,EAAE,SAAS;MAClB,YAAY,EAAE,SAAS;MACvB,iBAAiB,EAAE,SAAS;MAC5B,oBAAoB,EAAE,SAAS;MAC/BC,OAAO,EAAE,SAAS;MAClB,iBAAiB,EAAE,SAAS;MAC5BC,KAAK,EAAE,SAAS;MAChB,UAAU,EAAE,SAAS;MACrBP,OAAO,EAAE,SAAS;MAClB,YAAY,EAAE,SAAS;MACvBC,IAAI,EAAE,SAAS;MACf,SAAS,EAAE,SAAS;MACpBO,OAAO,EAAE,SAAS;MAClB,YAAY,EAAE,SAAS;MACvBC,MAAM,EAAE,SAAS;MACjBC,WAAW,EAAE;IACf,CAAC;IACDC,SAAS,EAAE;MACT,iBAAiB,EAAE,IAAI;MACvB,qBAAqB,EAAE,IAAI;MAC3B,WAAW,EAAE;IACf;EACF,CAAC;EACDtB,IAAI,EAAE;IACJc,MAAM,EAAE,IAAI;IACZV,MAAM,EAAE;MACNC,OAAO,EAAE,SAAS;MAClB,YAAY,EAAE,SAAS;MACvBC,SAAS,EAAE,SAAS;MACpB,cAAc,EAAE,SAAS;MACzBC,QAAQ,EAAE,SAAS;MACnB,aAAa,EAAE,SAAS;MACxBQ,UAAU,EAAE,SAAS;MACrB,eAAe,EAAE,SAAS;MAC1BC,OAAO,EAAE,SAAS;MAClB,YAAY,EAAE,SAAS;MACvB,iBAAiB,EAAE,SAAS;MAC5B,oBAAoB,EAAE,SAAS;MAC/BC,OAAO,EAAE,SAAS;MAClB,iBAAiB,EAAE,SAAS;MAC5BC,KAAK,EAAE,SAAS;MAChB,UAAU,EAAE,SAAS;MACrBP,OAAO,EAAE,SAAS;MAClB,YAAY,EAAE,SAAS;MACvBC,IAAI,EAAE,SAAS;MACf,SAAS,EAAE,SAAS;MACpBO,OAAO,EAAE,SAAS;MAClB,YAAY,EAAE,SAAS;MACvBC,MAAM,EAAE,SAAS;MACjBC,WAAW,EAAE;IACf,CAAC;IACDC,SAAS,EAAE;MACT,iBAAiB,EAAE,IAAI;MACvB,qBAAqB,EAAE,IAAI;MAC3B,WAAW,EAAE;IACf;EACF;AACF,CAAC;AAED,OAAO,SAASC,gBAAgBA,CAACC,OAAsB,EAAO;EAC5D,IAAI,CAACA,OAAO,EAAE;IACZ,OAAO;MACLC,MAAM,EAAE3B,WAAW,CAACC,KAAK;MACzB2B,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;MACxBC,MAAM,EAAE;QAAE,GAAG9B,SAAS,CAACgB,mBAAmB;MAAE,CAAC;MAC7Ce,OAAO,EAAE;QAAE,GAAG/B,SAAS,CAACK,cAAc;MAAE;IAC1C,CAAC;EACH;EACA,OAAO;IACLuB,MAAM,EAAE3B,WAAW,CAACC,KAAK;IACzB2B,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;IACxBC,MAAM,EAAE;MAAE,GAAG9B,SAAS,CAACgB,mBAAmB,EAAEW,OAAO,CAACG,MAAM;IAAE,CAAC;IAC7DC,OAAO,EAAE;MAAE,GAAG/B,SAAS,CAACK,cAAc,EAAEsB,OAAO,CAACI,OAAO;IAAE,CAAC;IAC1DC,UAAU,EAAEL,OAAO,EAAEK;EACvB,CAAC;AACH"}
|