yuyeon 0.0.22 → 0.0.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/dist/style.css +1 -1
  2. package/dist/yuyeon.js +638 -601
  3. package/dist/yuyeon.umd.cjs +3 -3
  4. package/lib/components/button/YButton.mjs +4 -4
  5. package/lib/components/button/YButton.mjs.map +1 -1
  6. package/lib/components/card/YCard.scss +36 -36
  7. package/lib/components/checkbox/YInputCheckbox.scss +86 -86
  8. package/lib/components/field-input/YFieldInput.mjs +2 -1
  9. package/lib/components/field-input/YFieldInput.mjs.map +1 -1
  10. package/lib/components/field-input/YFieldInput.scss +11 -1
  11. package/lib/components/icons/YIconCheckbox.scss +1 -1
  12. package/lib/components/input/YInput.mjs +15 -7
  13. package/lib/components/input/YInput.mjs.map +1 -1
  14. package/lib/components/input/YInput.scss +256 -245
  15. package/lib/components/layer/YLayer.scss +33 -33
  16. package/lib/components/menu/YMenu.scss +22 -22
  17. package/lib/components/panel/YDividePanel.scss +2 -2
  18. package/lib/components/progress-bar/YProgressBar.mjs +1 -1
  19. package/lib/components/progress-bar/YProgressBar.mjs.map +1 -1
  20. package/lib/components/switch/YSwitch.scss +198 -198
  21. package/lib/components/table/YTable.scss +114 -114
  22. package/lib/components/tree-view/YTreeView.mjs +1 -1
  23. package/lib/components/tree-view/YTreeView.mjs.map +1 -1
  24. package/lib/composables/theme/factory.mjs +4 -2
  25. package/lib/composables/theme/factory.mjs.map +1 -1
  26. package/lib/styles/base.scss +6 -2
  27. package/package.json +1 -1
  28. package/types/components/field-input/YFieldInput.d.ts +27 -0
  29. package/types/components/input/YInput.d.ts +30 -3
  30. package/types/components/select/YSelect.d.ts +27 -0
@@ -1 +1 @@
1
- {"version":3,"file":"YInput.mjs","names":["defineComponent","h","getSlot","propsFactory","pressThemePropsOptions","useLocalTheme","pressFocusPropsOptions","useFocus","NAME","uidCounter","pressYInputPropsOptions","name","String","width","type","Number","height","displayTag","default","label","modelValue","autoSelect","Boolean","floated","placeholder","loading","variation","outlined","filled","ceramic","readonly","disabled","status","validator","value","includes","validators","Array","YInput","props","emits","data","iid","toString","lazyValue","undefined","inValue","hasMouseDown","errorResult","inError","computed","classes","variations","isFocused","isError","isSuccess","themeClasses","displayStyles","isNaN","getDisplayHeight","attrId","$attrs","id","isFloatedLabel","formLoading","split","map","trim","methods","createPrepend","slot","class","createAppend","createLabelSlot","createLabel","show","createDefaultChildren","createDefault","slotContent","onFocus","onBlur","createLeading","error","onClick","onClickLeading","createTrailing","createDisplay","onMousedown","onMouseup","ref","style","createHelperText","helperTextSlot","children","push","createStackChildren","createStack","createContent","event","target","window","getSelection","selectAllChildren","$emit","e","whenFocus","whenBlur","invokeValidators","onChange","required","resetError","flag","isArray","some","result","getClasses","watch","neo","created","setup","focused","focusedClasses","render"],"sources":["../../../src/components/input/YInput.ts"],"sourcesContent":["\r\nimport {\r\n PropType,\r\n VNode,\r\n defineComponent,\r\n h,\r\n withDirectives, resolveDirective\r\n} from \"vue\";\r\n\r\nimport DiMixin from '../../mixins/di';\r\nimport { getSlot, propsFactory } from \"../../util/vue-component\";\r\nimport './YInput.scss';\r\nimport { pressThemePropsOptions, useLocalTheme } from \"../../composables/theme\";\r\nimport { pressFocusPropsOptions, useFocus } from \"../../composables/focus\";\r\n\r\nconst NAME = 'y-input';\r\nlet uidCounter = 0;\r\n\r\nexport const pressYInputPropsOptions = propsFactory({\r\n name: String,\r\n width: {\r\n type: [String, Number] as PropType<string | number>,\r\n },\r\n height: [Number, String],\r\n displayTag: {\r\n type: String as PropType<string>,\r\n default: 'div',\r\n },\r\n label: String as PropType<string>,\r\n modelValue: { type: [String, Number] as PropType<string | number> },\r\n autoSelect: {\r\n type: Boolean as PropType<boolean>,\r\n default: true,\r\n },\r\n floated: { type: Boolean as PropType<boolean>, default: () => false },\r\n placeholder: String as PropType<string>,\r\n loading: Boolean as PropType<boolean>,\r\n // variations\r\n variation: String as PropType<string>,\r\n outlined: Boolean as PropType<boolean>,\r\n filled: Boolean as PropType<boolean>,\r\n ceramic: Boolean as PropType<boolean>,\r\n // validate\r\n readonly: Boolean as PropType<boolean>,\r\n disabled: Boolean as PropType<boolean>,\r\n status: {\r\n type: String as PropType<'success' | 'warning' | 'error' | undefined>,\r\n validator(value: string) {\r\n return ['success', 'warning', 'error'].includes(value);\r\n }\r\n },\r\n validators: Array as PropType<((v: any) => boolean | string)[] | string[]>,\r\n ...pressFocusPropsOptions(),\r\n}, 'YInput');\r\n\r\nexport const YInput = defineComponent({\r\n name: 'YInput',\r\n\r\n props: {\r\n ...pressThemePropsOptions(),\r\n ...pressYInputPropsOptions(),\r\n },\r\n emits: ['error', 'click', 'mousedown', 'mouseup', 'focus', 'blur', 'mousedown:display', 'mouseup:display', 'click:leading', 'update:modelValue', 'update:focused'],\r\n data() {\r\n const iid = uidCounter.toString();\r\n uidCounter += 1;\r\n return {\r\n iid,\r\n lazyValue: undefined as string | undefined,\r\n inValue: '' as string | number | undefined,\r\n hasMouseDown: false,\r\n errorResult: undefined as string | undefined,\r\n inError: false,\r\n };\r\n },\r\n computed: {\r\n classes(): Record<string, boolean> {\r\n return {\r\n 'y-input--ceramic': !!this.ceramic,\r\n 'y-input--outlined': !this.ceramic && (this.variations.includes('outlined') || !!this.outlined),\r\n 'y-input--filled': this.variations.includes('filled') || !!this.filled,\r\n 'y-input--focused': this.isFocused,\r\n 'y-input--readonly': !!this.readonly,\r\n 'y-input--has-value': !!this.inValue,\r\n 'y-input--disabled': !!this.disabled,\r\n 'y-input--error': this.isError,\r\n 'y-input--success': this.isSuccess,\r\n [this.themeClasses as string]: true,\r\n };\r\n },\r\n displayStyles(): Record<string, any> {\r\n let { width } = this;\r\n if (!Number.isNaN(Number(width))) {\r\n width = `${width}px`;\r\n }\r\n return {\r\n width,\r\n height: this.getDisplayHeight(),\r\n };\r\n },\r\n attrId(): string {\r\n return (this.$attrs.id as string) ?? `y-input--${this.iid}`;\r\n },\r\n isFloatedLabel(): boolean {\r\n return (\r\n this.floated ||\r\n !!this.placeholder ||\r\n (!this.placeholder && this.isFocused) ||\r\n !!this.inValue\r\n );\r\n },\r\n formLoading(): boolean {\r\n // TODO: composable `form` binding\r\n // const form$ = (this as any)?.form$ as any;\r\n // if (form$) {\r\n // return form$.loading;\r\n // }\r\n return false;\r\n },\r\n isError(): boolean {\r\n return this.status === 'error' || this.inError;\r\n },\r\n isSuccess(): boolean {\r\n return !this.isError && this.status === 'success';\r\n },\r\n variations(): string[] {\r\n const { variation } = this;\r\n if (variation) {\r\n return variation.split(',').map((value) => {\r\n return value.trim();\r\n });\r\n }\r\n return [];\r\n }\r\n },\r\n methods: {\r\n createPrepend(): VNode | undefined {\r\n const slot = getSlot(this, 'prepend');\r\n return slot\r\n ? h('div', { class: `${NAME}__prepend` }, slot)\r\n : undefined;\r\n },\r\n createAppend(): VNode | undefined {\r\n const slot = getSlot(this, 'append');\r\n return slot\r\n ? h('div', { class: `${NAME}__append` }, slot)\r\n : undefined;\r\n },\r\n createLabelSlot(): (VNode | string | VNode[])[] {\r\n const slot: VNode[] | undefined = getSlot(this, 'label');\r\n if (!slot) {\r\n if (this.label) {\r\n return [this.label];\r\n }\r\n if (this.placeholder && !this.inValue) {\r\n return [this.placeholder];\r\n }\r\n }\r\n\r\n return slot ? [slot] : [];\r\n },\r\n createLabel(): VNode | undefined {\r\n const show = !!this.label || !!getSlot(this, 'label');\r\n if (!show) {\r\n return undefined;\r\n }\r\n return h(\r\n 'label',\r\n {\r\n class: {\r\n [`${NAME}__label`]: true,\r\n 'y-input__label--floated': this.isFloatedLabel,\r\n },\r\n '.for': this.attrId,\r\n },\r\n this.createLabelSlot(),\r\n );\r\n },\r\n createDefaultChildren(): (VNode | undefined | VNode[] | string)[] {\r\n const { modelValue } = this;\r\n return [this.createLabel(), modelValue?.toString()];\r\n },\r\n createDefault(): VNode[] | VNode {\r\n const { modelValue, formLoading, attrId } = this;\r\n const slotContent = getSlot(this, 'default', { value: modelValue, formLoading, attrId });\r\n return slotContent ?? h(\r\n 'div',\r\n {\r\n [`.${NAME}__value`]: true,\r\n '.data-id': this.attrId,\r\n '.tabindex': 0,\r\n onFocus: this.onFocus,\r\n onBlur: this.onBlur,\r\n },\r\n this.createDefaultChildren(),\r\n );\r\n },\r\n createLeading(): VNode | undefined {\r\n const slot = getSlot(this, 'leading', { error: this.isError });\r\n return slot\r\n ? h(\r\n 'div',\r\n {\r\n class: 'y-input__leading',\r\n onClick: this.onClickLeading,\r\n },\r\n slot,\r\n )\r\n : undefined;\r\n },\r\n createTrailing(): VNode | VNode[] | undefined {\r\n return getSlot(this, 'trailing');\r\n },\r\n getDisplayHeight() {\r\n const { height } = this;\r\n if (!isNaN(Number(height))) {\r\n return `${height}px`;\r\n }\r\n return height;\r\n },\r\n createDisplay(): VNode {\r\n return h(\r\n 'div',\r\n {\r\n class: {\r\n [`${NAME}__display`]: true,\r\n },\r\n // onClick: this.onClick,\r\n onMousedown: this.onMousedown,\r\n onMouseup: this.onMouseup,\r\n ref: 'display',\r\n style: {\r\n ...this.displayStyles,\r\n },\r\n },\r\n [\r\n h('div', { class: `${NAME}__plate` }),\r\n this.createLeading(),\r\n this.createDefault(),\r\n this.createTrailing(),\r\n ],\r\n );\r\n },\r\n createHelperText(): VNode {\r\n const helperTextSlot = getSlot(this, 'helper-text', {\r\n error: this.status === 'error' || this.inError,\r\n errorResult: this.errorResult,\r\n });\r\n const children = [];\r\n if (helperTextSlot) {\r\n children.push(h('span', {}, helperTextSlot));\r\n } else {\r\n children.push(this.errorResult);\r\n }\r\n return h('div', { class: `${NAME}__helper-text` }, children);\r\n },\r\n createStackChildren(): VNode[] {\r\n return [this.createDisplay(), this.createHelperText()];\r\n },\r\n createStack(): VNode {\r\n return h(\r\n 'div',\r\n {\r\n class: `${NAME}__stack`,\r\n ref: 'stack',\r\n },\r\n this.createStackChildren(),\r\n );\r\n },\r\n createContent(): (VNode | undefined)[] {\r\n return [\r\n this.createPrepend(),\r\n this.createStack(),\r\n this.createAppend(),\r\n ];\r\n },\r\n //\r\n onClick(event: MouseEvent) {\r\n if (this.autoSelect) {\r\n if (event.target) {\r\n window.getSelection()?.selectAllChildren(event.target as HTMLElement);\r\n }\r\n }\r\n this.$emit('click', event);\r\n },\r\n onMousedown(e: Event) {\r\n this.hasMouseDown = true;\r\n this.$emit('mousedown:display', e);\r\n },\r\n onMouseup(e: Event) {\r\n this.hasMouseDown = false;\r\n this.$emit('mouseup:display', e);\r\n },\r\n onFocus(event: FocusEvent) {\r\n this.whenFocus();\r\n this.$emit('focus', event);\r\n },\r\n onBlur(event: FocusEvent) {\r\n this.whenBlur();\r\n this.invokeValidators();\r\n this.$emit('blur', event);\r\n },\r\n onClickLeading(event: MouseEvent) {\r\n this.$emit('click:leading', event);\r\n },\r\n onChange(event?: Event) {\r\n this.invokeValidators();\r\n },\r\n //\r\n invokeValidators(): boolean {\r\n const { validators, inValue, $attrs } = this;\r\n const { required } = $attrs;\r\n this.resetError();\r\n let flag = true;\r\n if (Array.isArray(validators)) {\r\n validators.some((validator: any) => {\r\n const result = validator(inValue);\r\n if (typeof result === 'string') {\r\n this.inError = true;\r\n this.errorResult = result;\r\n flag = false;\r\n return true;\r\n }\r\n if (result === false) {\r\n this.inError = true;\r\n this.errorResult = '';\r\n flag = false;\r\n return true;\r\n }\r\n return false;\r\n });\r\n }\r\n if (flag && required && !inValue) {\r\n this.inError = true;\r\n return false;\r\n }\r\n return flag;\r\n },\r\n resetError() {\r\n this.inError = false;\r\n this.errorResult = undefined;\r\n },\r\n getClasses() {\r\n return this.classes;\r\n },\r\n },\r\n watch: {\r\n modelValue(neo: string) {\r\n if (!this.readonly) {\r\n this.inValue = neo;\r\n }\r\n },\r\n readonly(neo: boolean) {\r\n if (!neo) {\r\n this.inValue = this.modelValue;\r\n }\r\n },\r\n inValue(neo: string) {\r\n if (!this.readonly) {\r\n this.$emit('update:modelValue', neo);\r\n }\r\n },\r\n isError(neo: boolean) {\r\n this.$emit('error', neo);\r\n },\r\n },\r\n created() {\r\n this.inValue = this.modelValue;\r\n },\r\n setup(props) {\r\n const { themeClasses } = useLocalTheme(props);\r\n const { focused: isFocused, focusedClasses, whenFocus, whenBlur } = useFocus(props, 'y-input');\r\n return {\r\n themeClasses,\r\n isFocused,\r\n focusedClasses,\r\n whenFocus,\r\n whenBlur,\r\n }\r\n },\r\n render(): VNode {\r\n return h(\r\n 'div',\r\n {\r\n class: { ...this.getClasses(), [`${NAME}`]: true },\r\n },\r\n this.createContent(),\r\n );\r\n },\r\n});\r\n\r\nexport type YInput = InstanceType<typeof YInput>;\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"YInput.mjs","names":["defineComponent","h","pressFocusPropsOptions","useFocus","pressThemePropsOptions","useLocalTheme","getSlot","propsFactory","NAME","uidCounter","pressYInputPropsOptions","name","String","width","type","Number","height","displayTag","default","label","modelValue","autoSelect","Boolean","floating","floated","placeholder","required","loading","variation","outlined","filled","ceramic","readonly","disabled","status","validator","value","includes","validators","Array","YInput","props","emits","data","iid","toString","lazyValue","undefined","inValue","hasMouseDown","errorResult","inError","computed","classes","variations","isFocused","isError","isSuccess","themeClasses","displayStyles","isNaN","getDisplayHeight","attrId","$attrs","id","isFloatedLabel","formLoading","split","map","trim","methods","createPrepend","slot","class","createAppend","createLabelSlot","createLabel","show","createDefaultChildren","createDefault","slotContent","onFocus","onBlur","createLeading","error","onClick","onClickLeading","createTrailing","createDisplay","onMousedown","onMouseup","ref","style","createHelperText","helperTextSlot","children","push","createStackChildren","createStack","createContent","event","target","window","getSelection","selectAllChildren","$emit","e","whenFocus","whenBlur","invokeValidators","onChange","resetError","flag","isArray","some","result","getClasses","watch","neo","created","setup","focused","focusedClasses","render"],"sources":["../../../src/components/input/YInput.ts"],"sourcesContent":["import {\n PropType,\n VNode,\n defineComponent,\n h,\n resolveDirective,\n withDirectives,\n} from 'vue';\n\nimport { pressFocusPropsOptions, useFocus } from '../../composables/focus';\nimport { pressThemePropsOptions, useLocalTheme } from '../../composables/theme';\nimport DiMixin from '../../mixins/di';\nimport { getSlot, propsFactory } from '../../util/vue-component';\n\nimport './YInput.scss';\n\nconst NAME = 'y-input';\nlet uidCounter = 0;\n\nexport const pressYInputPropsOptions = propsFactory(\n {\n name: String,\n width: {\n type: [String, Number] as PropType<string | number>,\n },\n height: [Number, String],\n displayTag: {\n type: String as PropType<string>,\n default: 'div',\n },\n label: String as PropType<string>,\n modelValue: { type: [String, Number] as PropType<string | number> },\n autoSelect: {\n type: Boolean as PropType<boolean>,\n default: true,\n },\n floating: { type: Boolean as PropType<boolean>, default: false },\n floated: { type: Boolean as PropType<boolean>, default: () => false },\n placeholder: String as PropType<string>,\n required: Boolean as PropType<boolean>,\n loading: Boolean as PropType<boolean>,\n // variations\n variation: String as PropType<string>,\n outlined: Boolean as PropType<boolean>,\n filled: Boolean as PropType<boolean>,\n ceramic: Boolean as PropType<boolean>,\n // validate\n readonly: Boolean as PropType<boolean>,\n disabled: Boolean as PropType<boolean>,\n status: {\n type: String as PropType<'success' | 'warning' | 'error' | undefined>,\n validator(value: string) {\n return ['success', 'warning', 'error'].includes(value);\n },\n },\n validators: Array as PropType<((v: any) => boolean | string)[] | string[]>,\n ...pressFocusPropsOptions(),\n },\n 'YInput',\n);\n\nexport const YInput = defineComponent({\n name: 'YInput',\n\n props: {\n ...pressThemePropsOptions(),\n ...pressYInputPropsOptions(),\n },\n emits: [\n 'error',\n 'click',\n 'mousedown',\n 'mouseup',\n 'focus',\n 'blur',\n 'mousedown:display',\n 'mouseup:display',\n 'click:leading',\n 'update:modelValue',\n 'update:focused',\n ],\n data() {\n const iid = uidCounter.toString();\n uidCounter += 1;\n return {\n iid,\n lazyValue: undefined as string | undefined,\n inValue: '' as string | number | undefined,\n hasMouseDown: false,\n errorResult: undefined as string | undefined,\n inError: false,\n };\n },\n computed: {\n classes(): Record<string, boolean> {\n return {\n 'y-input--ceramic': !!this.ceramic,\n 'y-input--outlined':\n !this.ceramic &&\n (this.variations.includes('outlined') || !!this.outlined),\n 'y-input--filled': this.variations.includes('filled') || !!this.filled,\n 'y-input--focused': this.isFocused,\n 'y-input--readonly': !!this.readonly,\n 'y-input--has-value': !!this.inValue,\n 'y-input--disabled': !!this.disabled,\n 'y-input--error': this.isError,\n 'y-input--success': this.isSuccess,\n [this.themeClasses as string]: true,\n };\n },\n displayStyles(): Record<string, any> {\n let { width } = this;\n if (!Number.isNaN(Number(width))) {\n width = `${width}px`;\n }\n return {\n width,\n height: this.getDisplayHeight(),\n };\n },\n attrId(): string {\n return (this.$attrs.id as string) ?? `y-input--${this.iid}`;\n },\n isFloatedLabel(): boolean {\n return (\n this.floated ||\n !!this.placeholder ||\n (!this.placeholder && this.isFocused) ||\n !!this.inValue\n );\n },\n formLoading(): boolean {\n // TODO: composable `form` binding\n // const form$ = (this as any)?.form$ as any;\n // if (form$) {\n // return form$.loading;\n // }\n return false;\n },\n isError(): boolean {\n return this.status === 'error' || this.inError;\n },\n isSuccess(): boolean {\n return !this.isError && this.status === 'success';\n },\n variations(): string[] {\n const { variation } = this;\n if (variation) {\n return variation.split(',').map((value) => {\n return value.trim();\n });\n }\n return [];\n },\n },\n methods: {\n createPrepend(): VNode | undefined {\n const slot = getSlot(this, 'prepend');\n return slot ? h('div', { class: `${NAME}__prepend` }, slot) : undefined;\n },\n createAppend(): VNode | undefined {\n const slot = getSlot(this, 'append');\n return slot ? h('div', { class: `${NAME}__append` }, slot) : undefined;\n },\n createLabelSlot(): (VNode | string | VNode[] | undefined)[] {\n const slot: VNode[] | undefined = getSlot(this, 'label');\n if (!slot) {\n if (this.label) {\n return [\n this.label,\n this.required ? h('span', { class: 'y-input__required-mark' }, '*') : undefined,\n ];\n }\n if (this.placeholder && !this.inValue) {\n return [this.placeholder];\n }\n }\n\n return slot ? [slot] : [];\n },\n createLabel(): VNode | undefined {\n const show = !!this.label || !!getSlot(this, 'label');\n if (!show) {\n return undefined;\n }\n return h(\n 'label',\n {\n class: {\n [`${NAME}__label`]: true,\n 'y-input__floating-label': this.floating,\n 'y-input__floating-label--floated':\n this.floating && this.isFloatedLabel,\n },\n '.for': this.attrId,\n },\n this.createLabelSlot(),\n );\n },\n createDefaultChildren(): (VNode | undefined | VNode[] | string)[] {\n const { modelValue } = this;\n return [\n this.floating ? this.createLabel() : undefined,\n modelValue?.toString(),\n ];\n },\n createDefault(): VNode[] | VNode {\n const { modelValue, formLoading, attrId } = this;\n const slotContent = getSlot(this, 'default', {\n value: modelValue,\n formLoading,\n attrId,\n });\n return (\n slotContent ??\n h(\n 'div',\n {\n [`.${NAME}__value`]: true,\n '.data-id': this.attrId,\n '.tabindex': 0,\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n },\n this.createDefaultChildren(),\n )\n );\n },\n createLeading(): VNode | undefined {\n const slot = getSlot(this, 'leading', { error: this.isError });\n return slot\n ? h(\n 'div',\n {\n class: 'y-input__leading',\n onClick: this.onClickLeading,\n },\n slot,\n )\n : undefined;\n },\n createTrailing(): VNode | VNode[] | undefined {\n return getSlot(this, 'trailing');\n },\n getDisplayHeight() {\n const { height } = this;\n if (!isNaN(Number(height))) {\n return `${height}px`;\n }\n return height;\n },\n createDisplay(): VNode {\n return h(\n 'div',\n {\n class: {\n [`${NAME}__display`]: true,\n },\n // onClick: this.onClick,\n onMousedown: this.onMousedown,\n onMouseup: this.onMouseup,\n ref: 'display',\n style: {\n ...this.displayStyles,\n },\n },\n [\n h('div', { class: `${NAME}__plate` }),\n this.createLeading(),\n this.createDefault(),\n this.createTrailing(),\n ],\n );\n },\n createHelperText(): VNode {\n const helperTextSlot = getSlot(this, 'helper-text', {\n error: this.status === 'error' || this.inError,\n errorResult: this.errorResult,\n });\n const children = [];\n if (helperTextSlot) {\n children.push(h('span', {}, helperTextSlot));\n } else {\n children.push(this.errorResult);\n }\n return h('div', { class: `${NAME}__helper-text` }, children);\n },\n createStackChildren(): (VNode | undefined)[] {\n return [\n !this.floating ? this.createLabel() : undefined,\n this.createDisplay(),\n this.createHelperText(),\n ];\n },\n createStack(): VNode {\n return h(\n 'div',\n {\n class: `${NAME}__stack`,\n ref: 'stack',\n },\n this.createStackChildren(),\n );\n },\n createContent(): (VNode | undefined)[] {\n return [this.createPrepend(), this.createStack(), this.createAppend()];\n },\n //\n onClick(event: MouseEvent) {\n if (this.autoSelect) {\n if (event.target) {\n window.getSelection()?.selectAllChildren(event.target as HTMLElement);\n }\n }\n this.$emit('click', event);\n },\n onMousedown(e: Event) {\n this.hasMouseDown = true;\n this.$emit('mousedown:display', e);\n },\n onMouseup(e: Event) {\n this.hasMouseDown = false;\n this.$emit('mouseup:display', e);\n },\n onFocus(event: FocusEvent) {\n this.whenFocus();\n this.$emit('focus', event);\n },\n onBlur(event: FocusEvent) {\n this.whenBlur();\n this.invokeValidators();\n this.$emit('blur', event);\n },\n onClickLeading(event: MouseEvent) {\n this.$emit('click:leading', event);\n },\n onChange(event?: Event) {\n this.invokeValidators();\n },\n //\n invokeValidators(): boolean {\n const { validators, inValue, $attrs } = this;\n const { required } = $attrs;\n this.resetError();\n let flag = true;\n if (Array.isArray(validators)) {\n validators.some((validator: any) => {\n const result = validator(inValue);\n if (typeof result === 'string') {\n this.inError = true;\n this.errorResult = result;\n flag = false;\n return true;\n }\n if (result === false) {\n this.inError = true;\n this.errorResult = '';\n flag = false;\n return true;\n }\n return false;\n });\n }\n if (flag && required && !inValue) {\n this.inError = true;\n return false;\n }\n return flag;\n },\n resetError() {\n this.inError = false;\n this.errorResult = undefined;\n },\n getClasses() {\n return this.classes;\n },\n },\n watch: {\n modelValue(neo: string) {\n if (!this.readonly) {\n this.inValue = neo;\n }\n },\n readonly(neo: boolean) {\n if (!neo) {\n this.inValue = this.modelValue;\n }\n },\n inValue(neo: string) {\n if (!this.readonly) {\n this.$emit('update:modelValue', neo);\n }\n },\n isError(neo: boolean) {\n this.$emit('error', neo);\n },\n },\n created() {\n this.inValue = this.modelValue;\n },\n setup(props) {\n const { themeClasses } = useLocalTheme(props);\n const {\n focused: isFocused,\n focusedClasses,\n whenFocus,\n whenBlur,\n } = useFocus(props, 'y-input');\n return {\n themeClasses,\n isFocused,\n focusedClasses,\n whenFocus,\n whenBlur,\n };\n },\n render(): VNode {\n return h(\n 'div',\n {\n class: { ...this.getClasses(), [`${NAME}`]: true },\n },\n this.createContent(),\n );\n },\n});\n\nexport type YInput = InstanceType<typeof YInput>;\n"],"mappings":"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"}
@@ -1,245 +1,256 @@
1
-
2
- @use '../../styles/palette';
3
- @use '../../styles/variables';
4
-
5
- $input-border-radius: variables.$border-radius-root !default;
6
-
7
- .y-input {
8
- font-size: 14px;
9
- flex: 1 1 auto;
10
- display: flex;
11
- align-items: flex-start;
12
- letter-spacing: normal;
13
- text-align: left;
14
-
15
- --y-input-focused-color: var(--y-theme-primary);
16
-
17
- &__prepend,
18
- &__append {
19
- height: 100%;
20
- }
21
-
22
- &__stack {
23
- display: flex;
24
- flex-direction: column;
25
- height: 100%; // auto
26
- flex: 1;
27
- flex-wrap: wrap;
28
- min-width: 0;
29
- width: 100%;
30
- }
31
-
32
- &__display {
33
- display: flex;
34
- position: relative;
35
- cursor: text;
36
- flex: 1 1 auto;
37
- border-radius: $input-border-radius;
38
- }
39
-
40
- &__plate {
41
- position: absolute;
42
- inset: 0;
43
- border-bottom: 1px solid transparent;
44
- contain: paint;
45
- border-radius: $input-border-radius;
46
- outline: 0 solid rgba(0, 0, 0, 0);
47
- transition: 140ms ease;
48
- }
49
-
50
- &__value {
51
- position: relative;
52
- flex: 1 0 auto;
53
- padding: 0.5rem 0.875rem;
54
- display: flex;
55
- align-items: center;
56
- line-height: 1em;
57
- }
58
-
59
- &__helper-text {
60
- font-size: 14px;
61
- font-weight: 320;
62
- color: #444;
63
- }
64
-
65
- @keyframes label-float {
66
- 0% {
67
- opacity: 0;
68
- }
69
- 100% {
70
- opacity: 1;
71
- transform: translateY(-26px) scale(0.74);
72
- }
73
- }
74
-
75
- @keyframes label-sink {
76
- 0% {
77
- opacity: 1;
78
- transform: translateY(-26px) scale(0.74);
79
- }
80
- 30% {
81
- opacity: 0;
82
- }
83
- 80% {
84
- opacity: 0;
85
- transform: translateY(-8px) scale(1);
86
- }
87
- 100% {
88
- opacity: 1;
89
- transform: translateY(0) scale(1);
90
- }
91
- }
92
-
93
- &__label {
94
- position: absolute;
95
- color: #5e5e5e;
96
- max-width: 90%;
97
- overflow: hidden;
98
- text-overflow: ellipsis;
99
- white-space: nowrap;
100
- pointer-events: none;
101
- left: 0;
102
- top: 6px;
103
- transform-origin: left center;
104
-
105
- &--floated {
106
- animation: label-float 200ms ease-in-out forwards;
107
- }
108
-
109
- &:not(&--floated) {
110
- animation: label-sink 200ms linear;
111
- }
112
- }
113
-
114
- &__leading {
115
- position: relative;
116
- display: inline-flex;
117
- margin-top: 10px;
118
- padding-right: 4px;
119
- align-self: flex-start;
120
-
121
- > * {
122
- width: 24px;
123
- height: 24px;
124
- user-select: none;
125
- }
126
- }
127
-
128
- &__trailing {
129
- position: relative;
130
- display: inline-flex;
131
- justify-content: center;
132
- align-items: center;
133
- }
134
-
135
- &--labeled {
136
- padding-top: 12px;
137
- margin-top: 4px;
138
- }
139
-
140
- &--filled {
141
- --y-input-default-filled: 242, 242, 242;
142
- --y-input-filled-opacity: 0.04;
143
- --y-input-filled-opacity-hover: 0.08;
144
-
145
- .y-input {
146
- &__prepend {
147
- padding-left: 12px;
148
- }
149
- //
150
- &__plate {
151
- background: rgba(var(--y-theme-on-surface, var(--y-input-default-filled)), var(--y-input-filled-opacity));
152
- }
153
-
154
- &__display:hover {
155
- --y-input-filled-opacity: var(--y-input-filled-opacity-hover);
156
- }
157
- }
158
- }
159
-
160
- &--outlined {
161
- --y-input-outlined-opacity: 0.64;
162
- --y-input-outlined-opacity-hover: 0.87;
163
-
164
- .y-input {
165
- &__plate {
166
- border: 1px solid rgba(var(--y-theme-outline), var(--y-input-outlined-opacity));
167
- box-sizing: border-box;
168
- inset: 0;
169
-
170
- &:before {
171
- top: 0;
172
- height: 100%;
173
- background: transparent;
174
- border-radius: inherit;
175
- }
176
- }
177
-
178
- &__display:hover {
179
- --y-input-outlined-opacity: var(--y-input-outlined-opacity-hover);
180
- }
181
- }
182
- }
183
-
184
- &--ceramic {
185
- .y-input__plate {
186
- border: 1px solid #e4e4e4;
187
- box-sizing: border-box;
188
- inset: 0;
189
- border-top-color: transparent;
190
- border-left-width: 0;
191
- border-right-width: 0;
192
- box-shadow: 1px 2px 8px -1px rgb(0 0 0 / 12%), -1px -1px 2px 1px rgba(0, 0, 0, 0.04),
193
- inset 1px 1px 8px -4px rgb(0 0 0 / 11%);
194
- outline: 0 solid rgba(0, 0, 0, 0);
195
- }
196
-
197
- .y-input__plate:before {
198
- inset: -1px;
199
- height: 100%;
200
- background: transparent;
201
- border-radius: inherit;
202
- }
203
- }
204
-
205
- &--focused {
206
- .y-input__value {
207
- outline: none;
208
- }
209
-
210
- .y-input__plate {
211
- outline: 1px solid rgba(var(--y-theme-primary, #4f97dc), 0.1);
212
- border-color: rgba(var(--y-input-focused-color), 1);
213
- }
214
-
215
- .y-input__leading {
216
- color: currentColor;
217
- }
218
-
219
- &.y-input--outlined {
220
- //
221
- }
222
- }
223
-
224
- &--error {
225
- &.y-input--outlined {
226
- .y-input__plate {
227
- border-color: palette.$alert-negative !important;
228
- }
229
- }
230
- .y-input__helper-text {
231
- color: palette.$alert-negative;
232
- }
233
- }
234
-
235
- &--success {
236
- &.y-input--outlined {
237
- .y-input__plate {
238
- border-color: palette.$alert-positive !important;
239
- }
240
- }
241
- .y-input__helper-text {
242
- color: palette.$alert-positive;
243
- }
244
- }
245
- }
1
+
2
+ @use '../../styles/palette';
3
+ @use '../../styles/variables';
4
+
5
+ $input-border-radius: variables.$border-radius-root !default;
6
+
7
+ .y-input {
8
+ font-size: 14px;
9
+ flex: 1 1 auto;
10
+ display: flex;
11
+ align-items: flex-start;
12
+ letter-spacing: normal;
13
+ text-align: left;
14
+
15
+ --y-input-focused-color: var(--y-theme-primary);
16
+ --y-input-label-color: var(--y-theme-on-surface-variant);
17
+
18
+ &__prepend,
19
+ &__append {
20
+ height: 100%;
21
+ }
22
+
23
+ &__stack {
24
+ display: flex;
25
+ flex-direction: column;
26
+ height: 100%; // auto
27
+ flex: 1;
28
+ flex-wrap: wrap;
29
+ min-width: 0;
30
+ width: 100%;
31
+ }
32
+
33
+ &__display {
34
+ display: flex;
35
+ position: relative;
36
+ cursor: text;
37
+ flex: 1 1 auto;
38
+ border-radius: $input-border-radius;
39
+ }
40
+
41
+ &__plate {
42
+ position: absolute;
43
+ inset: 0;
44
+ border-bottom: 1px solid transparent;
45
+ contain: paint;
46
+ border-radius: $input-border-radius;
47
+ outline: 0 solid rgba(0, 0, 0, 0);
48
+ transition: 140ms ease;
49
+ }
50
+
51
+ &__value {
52
+ position: relative;
53
+ flex: 1 0 auto;
54
+ padding: 0.5rem 0.875rem;
55
+ display: flex;
56
+ align-items: center;
57
+ line-height: 1em;
58
+ }
59
+
60
+ &__helper-text {
61
+ font-size: 14px;
62
+ font-weight: 320;
63
+ color: #444;
64
+ }
65
+
66
+ @keyframes label-float {
67
+ 0% {
68
+ opacity: 0;
69
+ }
70
+ 100% {
71
+ opacity: 1;
72
+ transform: translateY(-26px) scale(0.94);
73
+ }
74
+ }
75
+
76
+ @keyframes label-sink {
77
+ 0% {
78
+ opacity: 1;
79
+ transform: translateY(-26px) scale(0.74);
80
+ }
81
+ 30% {
82
+ opacity: 0;
83
+ }
84
+ 80% {
85
+ opacity: 0;
86
+ transform: translateY(-8px) scale(1);
87
+ }
88
+ 100% {
89
+ opacity: 1;
90
+ transform: translateY(0) scale(1);
91
+ }
92
+ }
93
+
94
+ &__label {
95
+ color: var(--y-input-label-color);
96
+ padding-bottom: 4px;
97
+ font-weight: 500;
98
+ }
99
+
100
+ &__floating-label {
101
+ position: absolute;
102
+ max-width: 90%;
103
+ overflow: hidden;
104
+ text-overflow: ellipsis;
105
+ white-space: nowrap;
106
+ pointer-events: none;
107
+ padding-bottom: unset;
108
+ left: 0;
109
+ top: 6px;
110
+ transform-origin: left center;
111
+
112
+ &--floated {
113
+ animation: label-float 200ms ease-in-out forwards;
114
+ }
115
+
116
+ &:not(&--floated) {
117
+ animation: label-sink 200ms linear;
118
+ }
119
+ }
120
+
121
+ &__leading {
122
+ position: relative;
123
+ display: inline-flex;
124
+ margin-top: 10px;
125
+ padding-right: 4px;
126
+ align-self: flex-start;
127
+
128
+ > * {
129
+ width: 24px;
130
+ height: 24px;
131
+ user-select: none;
132
+ }
133
+ }
134
+
135
+ &__required-mark {
136
+ color: var(--y-theme-error);
137
+ }
138
+
139
+ &__trailing {
140
+ position: relative;
141
+ display: inline-flex;
142
+ justify-content: center;
143
+ align-items: center;
144
+ }
145
+
146
+ &--labeled {
147
+ padding-top: 12px;
148
+ margin-top: 4px;
149
+ }
150
+
151
+ &--filled {
152
+ --y-input-default-filled: 242, 242, 242;
153
+ --y-input-filled-opacity: 0.04;
154
+ --y-input-filled-opacity-hover: 0.08;
155
+
156
+ .y-input {
157
+ &__prepend {
158
+ padding-left: 12px;
159
+ }
160
+ //
161
+ &__plate {
162
+ background: rgba(var(--y-theme-on-surface-rgb, var(--y-input-default-filled)), var(--y-input-filled-opacity));
163
+ }
164
+
165
+ &__display:hover {
166
+ --y-input-filled-opacity: var(--y-input-filled-opacity-hover);
167
+ }
168
+ }
169
+ }
170
+
171
+ &--outlined {
172
+ --y-input-outlined-opacity: 0.64;
173
+ --y-input-outlined-opacity-hover: 0.87;
174
+
175
+ .y-input {
176
+ &__plate {
177
+ border: 1px solid rgba(var(--y-theme-outline-rgb), var(--y-input-outlined-opacity));
178
+ box-sizing: border-box;
179
+ inset: 0;
180
+
181
+ &:before {
182
+ top: 0;
183
+ height: 100%;
184
+ background: transparent;
185
+ border-radius: inherit;
186
+ }
187
+ }
188
+
189
+ &__display:hover {
190
+ --y-input-outlined-opacity: var(--y-input-outlined-opacity-hover);
191
+ }
192
+ }
193
+ }
194
+
195
+ &--ceramic {
196
+ .y-input__plate {
197
+ border: 1px solid #e4e4e4;
198
+ box-sizing: border-box;
199
+ inset: 0;
200
+ border-top-color: transparent;
201
+ border-left-width: 0;
202
+ border-right-width: 0;
203
+ box-shadow: 1px 2px 8px -1px rgb(0 0 0 / 12%), -1px -1px 2px 1px rgba(0, 0, 0, 0.04),
204
+ inset 1px 1px 8px -4px rgb(0 0 0 / 11%);
205
+ outline: 0 solid rgba(0, 0, 0, 0);
206
+ }
207
+
208
+ .y-input__plate:before {
209
+ inset: -1px;
210
+ height: 100%;
211
+ background: transparent;
212
+ border-radius: inherit;
213
+ }
214
+ }
215
+
216
+ &--focused {
217
+ .y-input__value {
218
+ outline: none;
219
+ }
220
+
221
+ .y-input__plate {
222
+ outline: 1px solid rgba(var(--y-theme-primary, #4f97dc), 0.1);
223
+ border-color: var(--y-input-focused-color);
224
+ }
225
+
226
+ .y-input__leading {
227
+ color: currentColor;
228
+ }
229
+
230
+ &.y-input--outlined {
231
+ //
232
+ }
233
+ }
234
+
235
+ &--error {
236
+ &.y-input--outlined {
237
+ .y-input__plate {
238
+ border-color: var(--y-palette-negative) !important;
239
+ }
240
+ }
241
+ .y-input__helper-text {
242
+ color: var(--y-palette-negative);
243
+ }
244
+ }
245
+
246
+ &--success {
247
+ &.y-input--outlined {
248
+ .y-input__plate {
249
+ border-color: var(--y-palette-positive) !important;
250
+ }
251
+ }
252
+ .y-input__helper-text {
253
+ color: var(--y-palette-positive);
254
+ }
255
+ }
256
+ }