@finema/core 1.4.90 → 1.4.91

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 (54) hide show
  1. package/README.md +63 -63
  2. package/dist/module.json +1 -1
  3. package/dist/module.mjs +3 -2
  4. package/dist/runtime/components/Alert.vue +48 -48
  5. package/dist/runtime/components/Avatar.vue +27 -27
  6. package/dist/runtime/components/Badge.vue +53 -53
  7. package/dist/runtime/components/Breadcrumb.vue +44 -44
  8. package/dist/runtime/components/Button/Group.vue +37 -37
  9. package/dist/runtime/components/Button/index.vue +76 -76
  10. package/dist/runtime/components/Card.vue +38 -38
  11. package/dist/runtime/components/Core.vue +13 -13
  12. package/dist/runtime/components/Dialog/index.vue +108 -108
  13. package/dist/runtime/components/Dropdown/index.vue +70 -70
  14. package/dist/runtime/components/FlexDeck/Base.vue +90 -90
  15. package/dist/runtime/components/FlexDeck/index.vue +66 -66
  16. package/dist/runtime/components/Form/FieldWrapper.vue +23 -23
  17. package/dist/runtime/components/Form/Fields.vue +160 -160
  18. package/dist/runtime/components/Form/InputCheckbox/index.vue +21 -21
  19. package/dist/runtime/components/Form/InputDateTime/index.vue +60 -60
  20. package/dist/runtime/components/Form/InputNumber/index.vue +27 -27
  21. package/dist/runtime/components/Form/InputRadio/index.vue +27 -27
  22. package/dist/runtime/components/Form/InputSelect/index.vue +36 -36
  23. package/dist/runtime/components/Form/InputStatic/index.vue +16 -16
  24. package/dist/runtime/components/Form/InputText/index.vue +67 -67
  25. package/dist/runtime/components/Form/InputTextarea/index.vue +25 -25
  26. package/dist/runtime/components/Form/InputToggle/index.vue +14 -14
  27. package/dist/runtime/components/Form/InputUploadDropzone/index.vue +213 -158
  28. package/dist/runtime/components/Form/InputUploadDropzoneAuto/index.vue +349 -243
  29. package/dist/runtime/components/Form/InputUploadDropzoneAuto/types.d.ts +3 -0
  30. package/dist/runtime/components/Form/InputUploadFileClassic/index.vue +101 -101
  31. package/dist/runtime/components/Form/InputUploadFileClassicAuto/index.vue +174 -174
  32. package/dist/runtime/components/Form/index.vue +6 -6
  33. package/dist/runtime/components/Icon.vue +23 -23
  34. package/dist/runtime/components/Image.vue +36 -36
  35. package/dist/runtime/components/Loader.vue +27 -27
  36. package/dist/runtime/components/Modal/index.vue +146 -146
  37. package/dist/runtime/components/SimplePagination.vue +96 -96
  38. package/dist/runtime/components/Slideover/index.vue +110 -110
  39. package/dist/runtime/components/Table/Base.vue +139 -139
  40. package/dist/runtime/components/Table/ColumnDate.vue +16 -16
  41. package/dist/runtime/components/Table/ColumnDateTime.vue +18 -18
  42. package/dist/runtime/components/Table/ColumnImage.vue +15 -15
  43. package/dist/runtime/components/Table/ColumnNumber.vue +14 -14
  44. package/dist/runtime/components/Table/ColumnText.vue +25 -25
  45. package/dist/runtime/components/Table/Simple.vue +69 -69
  46. package/dist/runtime/components/Table/index.vue +65 -65
  47. package/dist/runtime/components/Tabs/index.vue +64 -64
  48. package/dist/runtime/helpers/componentHelper.d.ts +9 -0
  49. package/dist/runtime/helpers/componentHelper.mjs +30 -0
  50. package/dist/runtime/ui.config/uploadFileDropzone.d.ts +36 -13
  51. package/dist/runtime/ui.config/uploadFileDropzone.mjs +42 -19
  52. package/dist/runtime/utils/StringHelper.d.ts +1 -0
  53. package/dist/runtime/utils/StringHelper.mjs +6 -0
  54. package/package.json +88 -88
package/README.md CHANGED
@@ -1,63 +1,63 @@
1
- # @finema/core Nuxt Module
2
-
3
- [✨  Release Notes](/CHANGELOG.md)
4
-
5
- ## Features
6
-
7
- - UI components
8
- - Useful composables
9
- - Security
10
-
11
- ## Remark
12
- - Temporary use resolutions for vue 3.3.13 instead of ^3.4.0 due to [this issue](https://github.com/nuxt/ui/issues/1171) and planned to be fixed in the next vue 3.5 version.
13
-
14
- ## Quick Setup
15
-
16
- 1. Add `@finema/core` dependency to your project
17
-
18
- ```bash
19
- # Using pnpm
20
- pnpm add -D @finema/core
21
-
22
- # Using yarn
23
- yarn add --dev @finema/core
24
-
25
- ```
26
-
27
- 1. Add `@finema/core` to the `modules` section of `nuxt.config.ts`
28
-
29
- ```js
30
- export default defineNuxtConfig({
31
- modules: [
32
- '@finema/core'
33
- ]
34
- })
35
- ```
36
-
37
- That's it! You can now use @finema/core in your Nuxt app ✨
38
-
39
- ## Development
40
-
41
- ```bash
42
- # Install dependencies
43
- pnpm install
44
-
45
- # Generate type stubs
46
- pnpm dev:prepare
47
-
48
- # Develop with the playground
49
- pnpm dev
50
-
51
- # Build the playground
52
- pnpm dev:build
53
-
54
- # Run ESLint
55
- pnpm lint
56
-
57
- # Run Vitest
58
- pnpm test
59
- pnpm test:watch
60
-
61
- # Release new version
62
- pnpm release
63
- ```
1
+ # @finema/core Nuxt Module
2
+
3
+ [✨  Release Notes](/CHANGELOG.md)
4
+
5
+ ## Features
6
+
7
+ - UI components
8
+ - Useful composables
9
+ - Security
10
+
11
+ ## Remark
12
+ - Temporary use resolutions for vue 3.3.13 instead of ^3.4.0 due to [this issue](https://github.com/nuxt/ui/issues/1171) and planned to be fixed in the next vue 3.5 version.
13
+
14
+ ## Quick Setup
15
+
16
+ 1. Add `@finema/core` dependency to your project
17
+
18
+ ```bash
19
+ # Using pnpm
20
+ pnpm add -D @finema/core
21
+
22
+ # Using yarn
23
+ yarn add --dev @finema/core
24
+
25
+ ```
26
+
27
+ 1. Add `@finema/core` to the `modules` section of `nuxt.config.ts`
28
+
29
+ ```js
30
+ export default defineNuxtConfig({
31
+ modules: [
32
+ '@finema/core'
33
+ ]
34
+ })
35
+ ```
36
+
37
+ That's it! You can now use @finema/core in your Nuxt app ✨
38
+
39
+ ## Development
40
+
41
+ ```bash
42
+ # Install dependencies
43
+ pnpm install
44
+
45
+ # Generate type stubs
46
+ pnpm dev:prepare
47
+
48
+ # Develop with the playground
49
+ pnpm dev
50
+
51
+ # Build the playground
52
+ pnpm dev:build
53
+
54
+ # Run ESLint
55
+ pnpm lint
56
+
57
+ # Run Vitest
58
+ pnpm test
59
+ pnpm test:watch
60
+
61
+ # Release new version
62
+ pnpm release
63
+ ```
package/dist/module.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@finema/core",
3
- "version": "1.4.90",
3
+ "version": "1.4.91",
4
4
  "configKey": "core",
5
5
  "compatibility": {
6
6
  "nuxt": "^3.7.4"
package/dist/module.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  import { defineNuxtModule, createResolver, installModule, addPlugin, addComponentsDir, addImportsDir } from '@nuxt/kit';
2
2
 
3
3
  const name = "@finema/core";
4
- const version = "1.4.90";
4
+ const version = "1.4.91";
5
5
 
6
6
  const colors = {
7
7
  black: "#20243E",
@@ -341,7 +341,8 @@ const module = defineNuxtModule({
341
341
  files: [
342
342
  ...tailwindConfig.content.files || [],
343
343
  resolve(runtimeDir, "components/**/*.{vue,mjs,ts}"),
344
- resolve(runtimeDir, "ui.config/**/*.{mjs,js,ts}")
344
+ resolve(runtimeDir, "ui.config/**/*.{mjs,js,ts}"),
345
+ resolve(runtimeDir, "presets/**/*.{mjs,js,ts}")
345
346
  ]
346
347
  };
347
348
  tailwindConfig.theme.extend.colors = {
@@ -1,48 +1,48 @@
1
- <template>
2
- <UAlert v-bind="$props">
3
- <template #title><slot name="title" :title="title" /></template>
4
- <template #description><slot name="description" :description="description" /></template>
5
- </UAlert>
6
- </template>
7
- <script lang="ts" setup>
8
- import { type PropType } from 'vue'
9
- import { type alert } from '#ui/ui.config'
10
- import type { AlertColor, AlertVariant, Avatar, Button, Strategy } from '#ui/types'
11
-
12
- defineProps({
13
- title: {
14
- type: String,
15
- required: true,
16
- },
17
- description: {
18
- type: String,
19
- default: null,
20
- },
21
- icon: {
22
- type: String,
23
- },
24
- avatar: {
25
- type: Object as PropType<Avatar>,
26
- default: null,
27
- },
28
- closeButton: {
29
- type: Object as PropType<Button>,
30
- },
31
- actions: {
32
- // eslint-disable-next-line @typescript-eslint/ban-types
33
- type: Array as PropType<Array<Button & { click?: Function }>>,
34
- },
35
- color: {
36
- type: String as PropType<AlertColor>,
37
- },
38
- variant: {
39
- type: String as PropType<AlertVariant>,
40
- },
41
- class: {
42
- type: [String, Object, Array] as PropType<any>,
43
- },
44
- ui: {
45
- type: Object as PropType<Partial<typeof alert> & { strategy?: Strategy }>,
46
- },
47
- })
48
- </script>
1
+ <template>
2
+ <UAlert v-bind="$props">
3
+ <template #title><slot name="title" :title="title" /></template>
4
+ <template #description><slot name="description" :description="description" /></template>
5
+ </UAlert>
6
+ </template>
7
+ <script lang="ts" setup>
8
+ import { type PropType } from 'vue'
9
+ import { type alert } from '#ui/ui.config'
10
+ import type { AlertColor, AlertVariant, Avatar, Button, Strategy } from '#ui/types'
11
+
12
+ defineProps({
13
+ title: {
14
+ type: String,
15
+ required: true,
16
+ },
17
+ description: {
18
+ type: String,
19
+ default: null,
20
+ },
21
+ icon: {
22
+ type: String,
23
+ },
24
+ avatar: {
25
+ type: Object as PropType<Avatar>,
26
+ default: null,
27
+ },
28
+ closeButton: {
29
+ type: Object as PropType<Button>,
30
+ },
31
+ actions: {
32
+ // eslint-disable-next-line @typescript-eslint/ban-types
33
+ type: Array as PropType<Array<Button & { click?: Function }>>,
34
+ },
35
+ color: {
36
+ type: String as PropType<AlertColor>,
37
+ },
38
+ variant: {
39
+ type: String as PropType<AlertVariant>,
40
+ },
41
+ class: {
42
+ type: [String, Object, Array] as PropType<any>,
43
+ },
44
+ ui: {
45
+ type: Object as PropType<Partial<typeof alert> & { strategy?: Strategy }>,
46
+ },
47
+ })
48
+ </script>
@@ -1,27 +1,27 @@
1
- <template>
2
- <UAvatar v-bind="$attrs" :src="src" :alt="alt" :size="size" />
3
- </template>
4
-
5
- <script lang="ts" setup>
6
- import type { AvatarSize } from '#ui/types'
7
- import type { PropType } from 'vue'
8
-
9
- defineOptions({
10
- inheritAttrs: true,
11
- })
12
-
13
- defineProps({
14
- src: {
15
- type: String,
16
- required: true,
17
- },
18
- alt: {
19
- type: String,
20
- required: true,
21
- },
22
- size: {
23
- type: String as PropType<AvatarSize>,
24
- default: 'sm',
25
- },
26
- })
27
- </script>
1
+ <template>
2
+ <UAvatar v-bind="$attrs" :src="src" :alt="alt" :size="size" />
3
+ </template>
4
+
5
+ <script lang="ts" setup>
6
+ import type { AvatarSize } from '#ui/types'
7
+ import type { PropType } from 'vue'
8
+
9
+ defineOptions({
10
+ inheritAttrs: true,
11
+ })
12
+
13
+ defineProps({
14
+ src: {
15
+ type: String,
16
+ required: true,
17
+ },
18
+ alt: {
19
+ type: String,
20
+ required: true,
21
+ },
22
+ size: {
23
+ type: String as PropType<AvatarSize>,
24
+ default: 'sm',
25
+ },
26
+ })
27
+ </script>
@@ -1,53 +1,53 @@
1
- <template>
2
- <UBadge
3
- v-bind="attrs"
4
- :class="$props.class"
5
- :label="label"
6
- :size="size"
7
- :color="color"
8
- :variant="variant"
9
- :ui="ui"
10
- >
11
- <slot />
12
- </UBadge>
13
- </template>
14
-
15
- <script setup lang="ts">
16
- import { useUiConfig, type PropType, useUI, toRef } from '#imports'
17
- import { badge } from '#core/ui.config'
18
- import type { BadgeColor, BadgeSize, BadgeVariant, Strategy } from '#ui/types'
19
-
20
- const config = useUiConfig<typeof badge>(badge, 'badge')
21
-
22
- const props = defineProps({
23
- size: {
24
- type: String as PropType<BadgeSize>,
25
- default: () => badge.default.size,
26
- validator(value: string) {
27
- return Object.keys(badge.size).includes(value)
28
- },
29
- },
30
- color: {
31
- type: String as PropType<BadgeColor>,
32
- default: () => badge.default.color,
33
- },
34
- variant: {
35
- type: String as PropType<BadgeVariant>,
36
- default: () => badge.default.variant,
37
- },
38
- label: {
39
- type: [String, Number],
40
- default: null,
41
- },
42
- class: {
43
- type: [String, Object, Array] as PropType<any>,
44
- default: () => '',
45
- },
46
- ui: {
47
- type: Object as PropType<Partial<typeof config> & { strategy?: Strategy }>,
48
- default: () => ({}),
49
- },
50
- })
51
-
52
- const { ui, attrs } = useUI('badge', toRef(props, 'ui'), config, toRef(props, 'class'))
53
- </script>
1
+ <template>
2
+ <UBadge
3
+ v-bind="attrs"
4
+ :class="$props.class"
5
+ :label="label"
6
+ :size="size"
7
+ :color="color"
8
+ :variant="variant"
9
+ :ui="ui"
10
+ >
11
+ <slot />
12
+ </UBadge>
13
+ </template>
14
+
15
+ <script setup lang="ts">
16
+ import { useUiConfig, type PropType, useUI, toRef } from '#imports'
17
+ import { badge } from '#core/ui.config'
18
+ import type { BadgeColor, BadgeSize, BadgeVariant, Strategy } from '#ui/types'
19
+
20
+ const config = useUiConfig<typeof badge>(badge, 'badge')
21
+
22
+ const props = defineProps({
23
+ size: {
24
+ type: String as PropType<BadgeSize>,
25
+ default: () => badge.default.size,
26
+ validator(value: string) {
27
+ return Object.keys(badge.size).includes(value)
28
+ },
29
+ },
30
+ color: {
31
+ type: String as PropType<BadgeColor>,
32
+ default: () => badge.default.color,
33
+ },
34
+ variant: {
35
+ type: String as PropType<BadgeVariant>,
36
+ default: () => badge.default.variant,
37
+ },
38
+ label: {
39
+ type: [String, Number],
40
+ default: null,
41
+ },
42
+ class: {
43
+ type: [String, Object, Array] as PropType<any>,
44
+ default: () => '',
45
+ },
46
+ ui: {
47
+ type: Object as PropType<Partial<typeof config> & { strategy?: Strategy }>,
48
+ default: () => ({}),
49
+ },
50
+ })
51
+
52
+ const { ui, attrs } = useUI('badge', toRef(props, 'ui'), config, toRef(props, 'class'))
53
+ </script>
@@ -1,44 +1,44 @@
1
- <template>
2
- <UBreadcrumb v-bind="attrs" :class="$props.class" :links="links" :divider="divider" :ui="ui">
3
- <template #default="{ link, isActive, index }">
4
- <slot name="default" :link="link" :is-active="isActive" :index="index" />
5
- </template>
6
-
7
- <template #icon="{ link, index, isActive }">
8
- <slot name="icon" :link="link" :is-active="isActive" :index="index" />
9
- </template>
10
-
11
- <template #divider>
12
- <slot name="divider" />
13
- </template>
14
- </UBreadcrumb>
15
- </template>
16
-
17
- <script setup lang="ts">
18
- import { useUiConfig, type PropType, useUI, toRef } from '#imports'
19
- import { breadcrumb } from '#core/ui.config'
20
- import type { BreadcrumbLink, Strategy } from '#ui/types'
21
-
22
- const config = useUiConfig<typeof breadcrumb>(breadcrumb, 'breadcrumb')
23
-
24
- const props = defineProps({
25
- links: {
26
- type: Array as PropType<BreadcrumbLink[]>,
27
- default: () => [],
28
- },
29
- divider: {
30
- type: String,
31
- default: () => breadcrumb.default.divider,
32
- },
33
- class: {
34
- type: [String, Object, Array] as PropType<any>,
35
- default: () => '',
36
- },
37
- ui: {
38
- type: Object as PropType<Partial<typeof config> & { strategy?: Strategy }>,
39
- default: () => ({}),
40
- },
41
- })
42
-
43
- const { ui, attrs } = useUI('breadcrumb', toRef(props, 'ui'), config, toRef(props, 'class'))
44
- </script>
1
+ <template>
2
+ <UBreadcrumb v-bind="attrs" :class="$props.class" :links="links" :divider="divider" :ui="ui">
3
+ <template #default="{ link, isActive, index }">
4
+ <slot name="default" :link="link" :is-active="isActive" :index="index" />
5
+ </template>
6
+
7
+ <template #icon="{ link, index, isActive }">
8
+ <slot name="icon" :link="link" :is-active="isActive" :index="index" />
9
+ </template>
10
+
11
+ <template #divider>
12
+ <slot name="divider" />
13
+ </template>
14
+ </UBreadcrumb>
15
+ </template>
16
+
17
+ <script setup lang="ts">
18
+ import { useUiConfig, type PropType, useUI, toRef } from '#imports'
19
+ import { breadcrumb } from '#core/ui.config'
20
+ import type { BreadcrumbLink, Strategy } from '#ui/types'
21
+
22
+ const config = useUiConfig<typeof breadcrumb>(breadcrumb, 'breadcrumb')
23
+
24
+ const props = defineProps({
25
+ links: {
26
+ type: Array as PropType<BreadcrumbLink[]>,
27
+ default: () => [],
28
+ },
29
+ divider: {
30
+ type: String,
31
+ default: () => breadcrumb.default.divider,
32
+ },
33
+ class: {
34
+ type: [String, Object, Array] as PropType<any>,
35
+ default: () => '',
36
+ },
37
+ ui: {
38
+ type: Object as PropType<Partial<typeof config> & { strategy?: Strategy }>,
39
+ default: () => ({}),
40
+ },
41
+ })
42
+
43
+ const { ui, attrs } = useUI('breadcrumb', toRef(props, 'ui'), config, toRef(props, 'class'))
44
+ </script>
@@ -1,37 +1,37 @@
1
- <template>
2
- <UButtonGroup v-bind="$props">
3
- <slot />
4
- </UButtonGroup>
5
- </template>
6
-
7
- <script lang="ts" setup>
8
- import type { PropType } from 'vue'
9
- import type { ButtonSize } from '#ui/types/button'
10
- import { button, type buttonGroup } from '#ui/ui.config'
11
- import type { Strategy } from '#ui/types'
12
-
13
- defineProps({
14
- size: {
15
- type: String as PropType<ButtonSize>,
16
- default: () => button.default.size,
17
- validator(value: string) {
18
- return Object.keys(button.size).includes(value)
19
- },
20
- },
21
- orientation: {
22
- type: String as PropType<'horizontal' | 'vertical'>,
23
- default: 'horizontal',
24
- validator(value: string) {
25
- return ['horizontal', 'vertical'].includes(value)
26
- },
27
- },
28
- class: {
29
- type: [String, Object, Array] as PropType<any>,
30
- default: undefined,
31
- },
32
- ui: {
33
- type: Object as PropType<Partial<typeof buttonGroup> & { strategy?: Strategy }>,
34
- default: undefined,
35
- },
36
- })
37
- </script>
1
+ <template>
2
+ <UButtonGroup v-bind="$props">
3
+ <slot />
4
+ </UButtonGroup>
5
+ </template>
6
+
7
+ <script lang="ts" setup>
8
+ import type { PropType } from 'vue'
9
+ import type { ButtonSize } from '#ui/types/button'
10
+ import { button, type buttonGroup } from '#ui/ui.config'
11
+ import type { Strategy } from '#ui/types'
12
+
13
+ defineProps({
14
+ size: {
15
+ type: String as PropType<ButtonSize>,
16
+ default: () => button.default.size,
17
+ validator(value: string) {
18
+ return Object.keys(button.size).includes(value)
19
+ },
20
+ },
21
+ orientation: {
22
+ type: String as PropType<'horizontal' | 'vertical'>,
23
+ default: 'horizontal',
24
+ validator(value: string) {
25
+ return ['horizontal', 'vertical'].includes(value)
26
+ },
27
+ },
28
+ class: {
29
+ type: [String, Object, Array] as PropType<any>,
30
+ default: undefined,
31
+ },
32
+ ui: {
33
+ type: Object as PropType<Partial<typeof buttonGroup> & { strategy?: Strategy }>,
34
+ default: undefined,
35
+ },
36
+ })
37
+ </script>