@proj-airi/ui 0.4.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/build.config.ts +11 -0
- package/dist/components/Animations/TransitionVertical.vue +95 -0
- package/dist/components/Animations/index.d.ts +1 -0
- package/dist/components/Animations/index.mjs +1 -0
- package/dist/components/Form/Checkbox/Checkbox.vue +26 -0
- package/dist/components/Form/Checkbox/index.d.ts +1 -0
- package/dist/components/Form/Checkbox/index.mjs +1 -0
- package/dist/components/Form/Field/FieldCheckbox.vue +24 -0
- package/dist/components/Form/Field/FieldInput.vue +34 -0
- package/dist/components/Form/Field/FieldKeyValues.vue +54 -0
- package/dist/components/Form/Field/FieldRange.vue +37 -0
- package/dist/components/Form/Field/index.d.ts +4 -0
- package/dist/components/Form/Field/index.mjs +4 -0
- package/dist/components/Form/Input/Input.vue +20 -0
- package/dist/components/Form/Input/InputFile.vue +65 -0
- package/dist/components/Form/Input/InputKeyValue.vue +17 -0
- package/dist/components/Form/Input/index.d.ts +3 -0
- package/dist/components/Form/Input/index.mjs +3 -0
- package/dist/components/Form/Radio/Radio.vue +103 -0
- package/dist/components/Form/Radio/index.d.ts +1 -0
- package/dist/components/Form/Radio/index.mjs +1 -0
- package/dist/components/Form/Range/Range.vue +313 -0
- package/dist/components/Form/Range/index.d.ts +1 -0
- package/dist/components/Form/Range/index.mjs +1 -0
- package/dist/components/Form/Textarea/Basic.vue +32 -0
- package/dist/components/Form/Textarea/Textarea.vue +14 -0
- package/dist/components/Form/Textarea/index.d.ts +2 -0
- package/dist/components/Form/Textarea/index.mjs +2 -0
- package/dist/components/Form/index.d.ts +6 -0
- package/dist/components/Form/index.mjs +6 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.mjs +2 -0
- package/package.json +46 -0
- package/src/components/Animations/TransitionVertical.vue +134 -0
- package/src/components/Animations/index.ts +1 -0
- package/src/components/Form/Checkbox/Checkbox.vue +27 -0
- package/src/components/Form/Checkbox/index.ts +1 -0
- package/src/components/Form/Field/FieldCheckbox.vue +26 -0
- package/src/components/Form/Field/FieldInput.vue +36 -0
- package/src/components/Form/Field/FieldKeyValues.vue +62 -0
- package/src/components/Form/Field/FieldRange.vue +39 -0
- package/src/components/Form/Field/index.ts +4 -0
- package/src/components/Form/Input/Input.vue +21 -0
- package/src/components/Form/Input/InputFile.vue +71 -0
- package/src/components/Form/Input/InputKeyValue.vue +19 -0
- package/src/components/Form/Input/index.ts +3 -0
- package/src/components/Form/Radio/Radio.vue +106 -0
- package/src/components/Form/Radio/index.ts +1 -0
- package/src/components/Form/Range/Range.vue +328 -0
- package/src/components/Form/Range/index.ts +1 -0
- package/src/components/Form/Textarea/Basic.vue +42 -0
- package/src/components/Form/Textarea/Textarea.vue +15 -0
- package/src/components/Form/Textarea/index.ts +2 -0
- package/src/components/Form/index.ts +6 -0
- package/src/index.ts +2 -0
- package/tsconfig.json +42 -0
- package/uno.config.ts +8 -0
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { ref, watch } from 'vue'
|
|
3
|
+
|
|
4
|
+
const events = defineEmits<{
|
|
5
|
+
(event: 'submit', message: string): void
|
|
6
|
+
}>()
|
|
7
|
+
|
|
8
|
+
const input = defineModel<string>({
|
|
9
|
+
default: '',
|
|
10
|
+
})
|
|
11
|
+
|
|
12
|
+
const textareaRef = ref<HTMLTextAreaElement>()
|
|
13
|
+
const textareaHeight = ref('auto')
|
|
14
|
+
|
|
15
|
+
function onKeyDown(e: KeyboardEvent) {
|
|
16
|
+
if (e.code === 'Enter' && !e.shiftKey) { // just block Enter is enough, Shift+Enter by default generates a newline
|
|
17
|
+
e.preventDefault()
|
|
18
|
+
events('submit', input.value)
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
// javascript - Creating a textarea with auto-resize - Stack Overflow
|
|
23
|
+
// https://stackoverflow.com/questions/454202/creating-a-textarea-with-auto-resize
|
|
24
|
+
watch(input, () => {
|
|
25
|
+
textareaHeight.value = 'auto'
|
|
26
|
+
requestAnimationFrame(() => {
|
|
27
|
+
if (!textareaRef.value)
|
|
28
|
+
return
|
|
29
|
+
|
|
30
|
+
textareaHeight.value = `${textareaRef.value.scrollHeight}px`
|
|
31
|
+
})
|
|
32
|
+
}, { immediate: true })
|
|
33
|
+
</script>
|
|
34
|
+
|
|
35
|
+
<template>
|
|
36
|
+
<textarea
|
|
37
|
+
ref="textareaRef"
|
|
38
|
+
v-model="input"
|
|
39
|
+
:style="{ height: textareaHeight }"
|
|
40
|
+
@keydown="onKeyDown"
|
|
41
|
+
/>
|
|
42
|
+
</template>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import BasicTextarea from './Basic.vue'
|
|
3
|
+
|
|
4
|
+
const modelValue = defineModel<string>({ default: '' })
|
|
5
|
+
</script>
|
|
6
|
+
|
|
7
|
+
<template>
|
|
8
|
+
<BasicTextarea
|
|
9
|
+
v-model="modelValue"
|
|
10
|
+
border="neutral-100 dark:neutral-800 solid 2 focus:neutral-200 dark:focus:neutral-700"
|
|
11
|
+
transition="all duration-250 ease-in-out"
|
|
12
|
+
bg="neutral-100 dark:neutral-800 focus:neutral-50 dark:focus:neutral-900"
|
|
13
|
+
rounded-lg px-3 py-2 text-sm outline-none
|
|
14
|
+
/>
|
|
15
|
+
</template>
|
package/src/index.ts
ADDED
package/tsconfig.json
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "ESNext",
|
|
4
|
+
"jsx": "preserve",
|
|
5
|
+
"lib": [
|
|
6
|
+
"DOM",
|
|
7
|
+
"ESNext"
|
|
8
|
+
],
|
|
9
|
+
"module": "ESNext",
|
|
10
|
+
"moduleResolution": "Bundler",
|
|
11
|
+
"resolveJsonModule": true,
|
|
12
|
+
"types": [
|
|
13
|
+
"vite/client"
|
|
14
|
+
],
|
|
15
|
+
"allowJs": true,
|
|
16
|
+
"strict": true,
|
|
17
|
+
"strictNullChecks": true,
|
|
18
|
+
"noUnusedLocals": true,
|
|
19
|
+
"noEmit": true,
|
|
20
|
+
"esModuleInterop": true,
|
|
21
|
+
"forceConsistentCasingInFileNames": true,
|
|
22
|
+
"isolatedModules": true,
|
|
23
|
+
"verbatimModuleSyntax": true,
|
|
24
|
+
"skipLibCheck": true
|
|
25
|
+
},
|
|
26
|
+
"vueCompilerOptions": {
|
|
27
|
+
"plugins": [
|
|
28
|
+
"@vue-macros/volar/define-models",
|
|
29
|
+
"@vue-macros/volar/define-slots"
|
|
30
|
+
]
|
|
31
|
+
},
|
|
32
|
+
"include": [
|
|
33
|
+
"src/**/*.ts",
|
|
34
|
+
"src/**/*.d.ts",
|
|
35
|
+
"src/**/*.mts",
|
|
36
|
+
"src/**/*.vue"
|
|
37
|
+
],
|
|
38
|
+
"exclude": [
|
|
39
|
+
"dist",
|
|
40
|
+
"node_modules"
|
|
41
|
+
]
|
|
42
|
+
}
|