@flyanra/vue-core 1.2.0 → 1.3.0

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 (66) hide show
  1. package/dist/types/composables/index.d.ts +4 -3
  2. package/dist/types/composables/useFeatureGate/index.d.ts +1 -0
  3. package/dist/types/composables/useFeatureGate/useFeatureGate.d.ts +6 -0
  4. package/dist/types/composables/useFormHider/index.d.ts +1 -0
  5. package/dist/types/composables/useFormHider/useFormHider.d.ts +8 -0
  6. package/dist/types/composables/useLocaleInjector/index.d.ts +2 -0
  7. package/dist/types/composables/useSidebarActiveIndex/index.d.ts +1 -0
  8. package/dist/types/composables/{useSidebarActiveIndex.d.ts → useSidebarActiveIndex/useSidebarActiveIndex.d.ts} +1 -1
  9. package/package.json +158 -158
  10. package/src/components/basic/fly-button/FlyButton.types.ts +28 -28
  11. package/src/components/basic/fly-button/FlyButton.vue +178 -178
  12. package/src/components/basic/typography/FlyCollapseTitleRenderer.vue +46 -46
  13. package/src/components/feedback/tooltip/FlyInfoTooltip.vue +49 -49
  14. package/src/components/feedback/tooltip/FlyTooltip.element.scss +4 -4
  15. package/src/components/feedback/tooltip/FlyTooltip.vue +60 -60
  16. package/src/components/form/form.utils.ts +72 -72
  17. package/src/components/form/index.ts +6 -6
  18. package/src/components/form/input-renderers/boolean/FlyBoolean.vue +48 -48
  19. package/src/components/form/input-renderers/form-item-renderer/FlyFormItemRenderer.vue +48 -48
  20. package/src/components/form/input-renderers/form-item-renderer/index.ts +4 -4
  21. package/src/components/form/input-renderers/form-schema-renderer/FlyFormSchemaRenderer.types.ts +3 -3
  22. package/src/components/form/input-renderers/form-schema-renderer/FlyFormSchemaRenderer.utils.ts +221 -221
  23. package/src/components/form/input-renderers/form-schema-renderer/FlyFormSchemaRenderer.vue +75 -75
  24. package/src/components/form/input-renderers/form-schema-renderer/UseFormSchemaRenderer.ts +97 -97
  25. package/src/components/form/input-renderers/input-renderer/FlyInputRenderer.vue +49 -49
  26. package/src/components/form/input-renderers/input-renderer/index.ts +4 -4
  27. package/src/components/form/input-renderers/input-renderer.utils.ts +18 -18
  28. package/src/components/form/input-renderers/number/FlyNumber.vue +64 -64
  29. package/src/components/form/input-renderers/regional-tenant-form-renderer/FlyRegionalTenantFormRenderer.types.ts +15 -15
  30. package/src/components/form/input-renderers/regional-tenant-form-renderer/FlyRegionalTenantFormRenderer.vue +99 -99
  31. package/src/components/form/input-renderers/select/FlySelect.scss +1 -1
  32. package/src/components/form/input-renderers/select/FlySelect.utils.ts +37 -37
  33. package/src/components/form/input-renderers/text/FlyText.vue +70 -70
  34. package/src/components/form/input-renderers/value-unit/FlyValueUnit.vue +102 -102
  35. package/src/components/form/input-validators.ts +99 -99
  36. package/src/components/general/fly-icon-v2/FlyIconV2.types.ts +6 -6
  37. package/src/components/general/fly-icon-v2/FlyIconV2.vue +17 -17
  38. package/src/components/general/fly-icon-v2/index.ts +6 -6
  39. package/src/components/general/index.ts +5 -5
  40. package/src/components/index.ts +7 -7
  41. package/src/components/navigation/menu/fly-mini-sidebar/FlyMiniSidebar.types.ts +8 -8
  42. package/src/components/navigation/menu/fly-mini-sidebar/FlyMiniSidebarItem.vue +55 -55
  43. package/src/components/navigation/menu/fly-sidebar/FlySidebar.types.ts +49 -49
  44. package/src/components/navigation/menu/fly-sidebar/FlySidebar.vue +146 -146
  45. package/src/components/navigation/menu/fly-sidebar/FlySidebarNode.vue +47 -47
  46. package/src/composables/index.ts +4 -4
  47. package/src/composables/useFeatureGate/index.ts +1 -0
  48. package/src/composables/useFeatureGate/useFeatureGate.ts +19 -0
  49. package/src/composables/useFormHider/index.ts +1 -0
  50. package/src/composables/useFormHider/useFormHider.ts +37 -0
  51. package/src/composables/{UseLocaleInjector.ts → useLocaleInjector/UseLocaleInjector.ts} +37 -37
  52. package/src/composables/useLocaleInjector/index.ts +2 -0
  53. package/src/composables/useSidebarActiveIndex/index.ts +1 -0
  54. package/src/composables/{useSidebarActiveIndex.ts → useSidebarActiveIndex/useSidebarActiveIndex.ts} +103 -103
  55. package/src/styles/_scss-tokens.scss +71 -71
  56. package/src/styles/element/mixins/collapse.scss +61 -61
  57. package/src/styles/element/overrides/form.scss +121 -121
  58. package/src/styles/element/overrides/message-box.scss +2 -2
  59. package/src/styles/element/overrides/radio.scss +2 -2
  60. package/src/styles/element/overrides/select.scss +9 -9
  61. package/src/styles/index.scss +1 -1
  62. package/src/styles/tokens.scss +1 -0
  63. package/src/utils/index.ts +2 -2
  64. package/src/utils/pure-functions.ts +15 -15
  65. package/src/utils/validators.ts +81 -81
  66. /package/dist/types/composables/{UseLocaleInjector.d.ts → useLocaleInjector/UseLocaleInjector.d.ts} +0 -0
@@ -1,3 +1,4 @@
1
- export { initLocaleInjector, UseLocaleInjector } from './UseLocaleInjector';
2
- export type { T_LocaleInjector } from './UseLocaleInjector';
3
- export { useSidebarActiveIndex } from './useSidebarActiveIndex';
1
+ export * from './useLocaleInjector';
2
+ export * from './useSidebarActiveIndex';
3
+ export * from './useFeatureGate';
4
+ export * from './useFormHider';
@@ -0,0 +1 @@
1
+ export * from './useFeatureGate';
@@ -0,0 +1,6 @@
1
+ import { type MaybeRefOrGetter } from 'vue';
2
+ import { type T_FeatureGatingConfig, type T_GateInput } from '@flyanra/js-utils/utils';
3
+ export declare function useFeatureGate(configRefs: MaybeRefOrGetter<(T_FeatureGatingConfig | undefined)[]>): {
4
+ allow: <TModuleKey extends string>(gate: T_GateInput<TModuleKey> | undefined) => import("vue").ComputedRef<boolean>;
5
+ allowNow: <TModuleKey extends string>(gate: T_GateInput<TModuleKey> | undefined) => boolean;
6
+ };
@@ -0,0 +1 @@
1
+ export * from './useFormHider';
@@ -0,0 +1,8 @@
1
+ import { type ComputedRef, type MaybeRefOrGetter } from 'vue';
2
+ import type { T_FeatureGatingConfig, T_FieldUiRule } from '@flyanra/js-utils/utils';
3
+ export declare function useFormHider<TConfig extends T_FeatureGatingConfig, TModuleKey extends string, TFormKey extends string, TFieldKey extends string>(configsRef: MaybeRefOrGetter<(TConfig | undefined)[]>, moduleKey: TModuleKey, formKey: TFormKey): {
4
+ resolved: ComputedRef<{
5
+ fieldRules: Map<TFieldKey, T_FieldUiRule>;
6
+ }>;
7
+ isFieldHidden: (key: TFieldKey) => ComputedRef<boolean>;
8
+ };
@@ -0,0 +1,2 @@
1
+ export { initLocaleInjector, UseLocaleInjector } from './UseLocaleInjector';
2
+ export type { T_LocaleInjector } from './UseLocaleInjector';
@@ -0,0 +1 @@
1
+ export { useSidebarActiveIndex } from './useSidebarActiveIndex';
@@ -1,5 +1,5 @@
1
1
  import { type MaybeRefOrGetter } from 'vue';
2
- import type { T_FlySidebar } from '../components';
2
+ import type { T_FlySidebar } from '../../components';
3
3
  /**
4
4
  * Minimal route shape required by `useSidebarActiveIndex`.
5
5
  *
package/package.json CHANGED
@@ -1,158 +1,158 @@
1
- {
2
- "name": "@flyanra/vue-core",
3
- "version": "1.2.0",
4
- "private": false,
5
- "description": "Source-distributed Vue component library for Vite and Nuxt consumers.",
6
- "sideEffects": false,
7
- "type": "module",
8
- "imports": {
9
- "#storybook/*": "./.storybook/*"
10
- },
11
- "exports": {
12
- ".": {
13
- "types": "./dist/types/index.d.ts",
14
- "import": "./src/index.ts"
15
- },
16
- "./types": {
17
- "types": "./src/types/index.d.ts",
18
- "default": "./src/types/index.ts"
19
- },
20
- "./styles": {
21
- "types": "./src/styles/index.d.ts",
22
- "default": "./src/styles/index.scss"
23
- },
24
- "./styles/*": "./src/styles/*",
25
- "./components": {
26
- "types": "./dist/types/components/index.d.ts",
27
- "import": "./src/components/index.ts"
28
- },
29
- "./components/*": {
30
- "types": "./dist/types/components/*/index.d.ts",
31
- "import": "./src/components/*/index.ts"
32
- },
33
- "./composables": {
34
- "types": "./dist/types/composables/index.d.ts",
35
- "import": "./src/composables/index.ts"
36
- },
37
- "./composables/*": {
38
- "types": "./dist/types/composables/*/index.d.ts",
39
- "import": "./src/composables/*/index.ts"
40
- },
41
- "./utils": {
42
- "types": "./dist/types/utils/index.d.ts",
43
- "import": "./src/utils/index.ts"
44
- },
45
- "./utils/*": {
46
- "types": "./dist/types/utils/*.d.ts",
47
- "import": "./src/utils/*.ts"
48
- },
49
- "./package.json": "./package.json"
50
- },
51
- "types": "./dist/types/index.d.ts",
52
- "files": [
53
- "src/components",
54
- "src/composables",
55
- "src/utils",
56
- "src/styles",
57
- "src/index.ts",
58
- "dist/types",
59
- "README.md",
60
- "package.json",
61
- "!src/**/*.stories.ts",
62
- "!src/**/*.stories.tsx",
63
- "!src/**/*.mdx",
64
- "!dist/types/**/*.stories.d.ts"
65
- ],
66
- "scripts": {
67
- "build:preview": "vite build",
68
- "prebuild:types": "npm run clean:types",
69
- "build:types": "vue-tsc --declaration --emitDeclarationOnly -p tsconfig.build.json",
70
- "build-storybook": "storybook build",
71
- "changeset": "changeset",
72
- "changeset:publish": "changeset publish",
73
- "changeset:version": "changeset version",
74
- "clean:types": "rm -rf dist/types",
75
- "dev": "vite",
76
- "format": "prettier . --write",
77
- "format:check": "prettier . --check",
78
- "lint": "eslint .",
79
- "lint:fix": "eslint . --fix",
80
- "pack": "npm pack",
81
- "pack:check": "npm pack --dry-run",
82
- "postinstall:husky": "husky",
83
- "prepare": "husky",
84
- "preview": "vite preview",
85
- "storybook": "storybook dev -p 6006 --no-open",
86
- "test-storybook": "vitest --project=storybook",
87
- "typecheck": "vue-tsc --noEmit -p tsconfig.lib.json"
88
- },
89
- "lint-staged": {
90
- "*.{js,mjs,cjs,ts,mts,jsx,tsx,vue,css,scss,md,json}": [
91
- "prettier --write"
92
- ],
93
- "*.{js,mjs,cjs,ts,mts,jsx,tsx,vue}": [
94
- "eslint --fix"
95
- ]
96
- },
97
- "devDependencies": {
98
- "@changesets/cli": "^2.30.0",
99
- "@eslint/js": "^10.0.1",
100
- "@flyanra/js-utils": "^1.5.0",
101
- "@iconify-json/mdi": "^1.2.3",
102
- "@iconify-json/ri": "^1.2.10",
103
- "@jamescoyle/vue-icon": "^0.1.2",
104
- "@mdi/js": "^7.4.47",
105
- "@remixicon/vue": "^4.9.0",
106
- "@storybook/addon-a11y": "^10.3.6",
107
- "@storybook/addon-docs": "^10.3.6",
108
- "@storybook/addon-vitest": "^10.3.6",
109
- "@storybook/vue3-vite": "^10.3.6",
110
- "@tailwindcss/vite": "^4.2.2",
111
- "@trivago/prettier-plugin-sort-imports": "^6.0.2",
112
- "@types/node": "^24.12.2",
113
- "@vitejs/plugin-vue": "^6.0.5",
114
- "@vitest/browser-playwright": "^4.1.4",
115
- "@vitest/coverage-v8": "^4.1.4",
116
- "@vue/tsconfig": "^0.9.1",
117
- "dompurify": "^3.4.2",
118
- "element-plus": "^2.13.7",
119
- "eslint": "^10.2.0",
120
- "eslint-config-prettier": "^10.1.8",
121
- "eslint-plugin-storybook": "^10.3.6",
122
- "eslint-plugin-vue": "^10.8.0",
123
- "globals": "^17.5.0",
124
- "husky": "^9.1.7",
125
- "lint-staged": "^16.4.0",
126
- "lodash-es": "^4.18.1",
127
- "maska": "^3.2.0",
128
- "playwright": "^1.59.1",
129
- "prettier": "^3.8.3",
130
- "prettier-plugin-packagejson": "^3.0.2",
131
- "sass": "^1.99.0",
132
- "storybook": "^10.3.6",
133
- "storybook-vue3-router": "^7.0.0",
134
- "tailwindcss": "^4.2.2",
135
- "typescript": "~6.0.2",
136
- "typescript-eslint": "^8.58.2",
137
- "unplugin-icons": "^23.0.1",
138
- "unplugin-vue-components": "^32.1.0",
139
- "vite": "^8.0.4",
140
- "vitest": "^4.1.4",
141
- "vue": "^3.5.32",
142
- "vue-eslint-parser": "^10.4.0",
143
- "vue-i18n": "^11.4.0",
144
- "vue-tsc": "^3.2.6"
145
- },
146
- "peerDependencies": {
147
- "@flyanra/js-utils": "^1.3.2",
148
- "@jamescoyle/vue-icon": "^0.1.2",
149
- "element-plus": "^2.13.7",
150
- "maska": "^3.2.0",
151
- "vue": "^3.5.32",
152
- "vue-i18n": "^11.4.0"
153
- },
154
- "volta": {
155
- "node": "24.12.0",
156
- "yarn": "1.22.22"
157
- }
158
- }
1
+ {
2
+ "name": "@flyanra/vue-core",
3
+ "version": "1.3.0",
4
+ "private": false,
5
+ "description": "Source-distributed Vue component library for Vite and Nuxt consumers.",
6
+ "sideEffects": false,
7
+ "type": "module",
8
+ "imports": {
9
+ "#storybook/*": "./.storybook/*"
10
+ },
11
+ "exports": {
12
+ ".": {
13
+ "types": "./dist/types/index.d.ts",
14
+ "import": "./src/index.ts"
15
+ },
16
+ "./types": {
17
+ "types": "./src/types/index.d.ts",
18
+ "default": "./src/types/index.ts"
19
+ },
20
+ "./styles": {
21
+ "types": "./src/styles/index.d.ts",
22
+ "default": "./src/styles/index.scss"
23
+ },
24
+ "./styles/*": "./src/styles/*",
25
+ "./components": {
26
+ "types": "./dist/types/components/index.d.ts",
27
+ "import": "./src/components/index.ts"
28
+ },
29
+ "./components/*": {
30
+ "types": "./dist/types/components/*/index.d.ts",
31
+ "import": "./src/components/*/index.ts"
32
+ },
33
+ "./composables": {
34
+ "types": "./dist/types/composables/index.d.ts",
35
+ "import": "./src/composables/index.ts"
36
+ },
37
+ "./composables/*": {
38
+ "types": "./dist/types/composables/*/index.d.ts",
39
+ "import": "./src/composables/*/index.ts"
40
+ },
41
+ "./utils": {
42
+ "types": "./dist/types/utils/index.d.ts",
43
+ "import": "./src/utils/index.ts"
44
+ },
45
+ "./utils/*": {
46
+ "types": "./dist/types/utils/*.d.ts",
47
+ "import": "./src/utils/*.ts"
48
+ },
49
+ "./package.json": "./package.json"
50
+ },
51
+ "types": "./dist/types/index.d.ts",
52
+ "files": [
53
+ "src/components",
54
+ "src/composables",
55
+ "src/utils",
56
+ "src/styles",
57
+ "src/index.ts",
58
+ "dist/types",
59
+ "README.md",
60
+ "package.json",
61
+ "!src/**/*.stories.ts",
62
+ "!src/**/*.stories.tsx",
63
+ "!src/**/*.mdx",
64
+ "!dist/types/**/*.stories.d.ts"
65
+ ],
66
+ "scripts": {
67
+ "build:preview": "vite build",
68
+ "prebuild:types": "npm run clean:types",
69
+ "build:types": "vue-tsc --declaration --emitDeclarationOnly -p tsconfig.build.json",
70
+ "build-storybook": "storybook build",
71
+ "changeset": "changeset",
72
+ "changeset:publish": "changeset publish",
73
+ "changeset:version": "changeset version",
74
+ "clean:types": "rm -rf dist/types",
75
+ "dev": "vite",
76
+ "format": "prettier . --write",
77
+ "format:check": "prettier . --check",
78
+ "lint": "eslint .",
79
+ "lint:fix": "eslint . --fix",
80
+ "pack": "npm pack",
81
+ "pack:check": "npm pack --dry-run",
82
+ "postinstall:husky": "husky",
83
+ "prepare": "husky",
84
+ "preview": "vite preview",
85
+ "storybook": "storybook dev -p 6006 --no-open",
86
+ "test-storybook": "vitest --project=storybook",
87
+ "typecheck": "vue-tsc --noEmit -p tsconfig.lib.json"
88
+ },
89
+ "lint-staged": {
90
+ "*.{js,mjs,cjs,ts,mts,jsx,tsx,vue,css,scss,md,json}": [
91
+ "prettier --write"
92
+ ],
93
+ "*.{js,mjs,cjs,ts,mts,jsx,tsx,vue}": [
94
+ "eslint --fix"
95
+ ]
96
+ },
97
+ "devDependencies": {
98
+ "@changesets/cli": "^2.30.0",
99
+ "@eslint/js": "^10.0.1",
100
+ "@flyanra/js-utils": "^1.6.0",
101
+ "@iconify-json/mdi": "^1.2.3",
102
+ "@iconify-json/ri": "^1.2.10",
103
+ "@jamescoyle/vue-icon": "^0.1.2",
104
+ "@mdi/js": "^7.4.47",
105
+ "@remixicon/vue": "^4.9.0",
106
+ "@storybook/addon-a11y": "^10.3.6",
107
+ "@storybook/addon-docs": "^10.3.6",
108
+ "@storybook/addon-vitest": "^10.3.6",
109
+ "@storybook/vue3-vite": "^10.3.6",
110
+ "@tailwindcss/vite": "^4.2.2",
111
+ "@trivago/prettier-plugin-sort-imports": "^6.0.2",
112
+ "@types/node": "^24.12.2",
113
+ "@vitejs/plugin-vue": "^6.0.5",
114
+ "@vitest/browser-playwright": "^4.1.4",
115
+ "@vitest/coverage-v8": "^4.1.4",
116
+ "@vue/tsconfig": "^0.9.1",
117
+ "dompurify": "^3.4.2",
118
+ "element-plus": "^2.13.7",
119
+ "eslint": "^10.2.0",
120
+ "eslint-config-prettier": "^10.1.8",
121
+ "eslint-plugin-storybook": "^10.3.6",
122
+ "eslint-plugin-vue": "^10.8.0",
123
+ "globals": "^17.5.0",
124
+ "husky": "^9.1.7",
125
+ "lint-staged": "^16.4.0",
126
+ "lodash-es": "^4.18.1",
127
+ "maska": "^3.2.0",
128
+ "playwright": "^1.59.1",
129
+ "prettier": "^3.8.3",
130
+ "prettier-plugin-packagejson": "^3.0.2",
131
+ "sass": "^1.99.0",
132
+ "storybook": "^10.3.6",
133
+ "storybook-vue3-router": "^7.0.0",
134
+ "tailwindcss": "^4.2.2",
135
+ "typescript": "~6.0.2",
136
+ "typescript-eslint": "^8.58.2",
137
+ "unplugin-icons": "^23.0.1",
138
+ "unplugin-vue-components": "^32.1.0",
139
+ "vite": "^8.0.4",
140
+ "vitest": "^4.1.4",
141
+ "vue": "^3.5.32",
142
+ "vue-eslint-parser": "^10.4.0",
143
+ "vue-i18n": "^11.4.0",
144
+ "vue-tsc": "^3.2.6"
145
+ },
146
+ "peerDependencies": {
147
+ "@flyanra/js-utils": "^1.3.2",
148
+ "@jamescoyle/vue-icon": "^0.1.2",
149
+ "element-plus": "^2.13.7",
150
+ "maska": "^3.2.0",
151
+ "vue": "^3.5.32",
152
+ "vue-i18n": "^11.4.0"
153
+ },
154
+ "volta": {
155
+ "node": "24.12.0",
156
+ "yarn": "1.22.22"
157
+ }
158
+ }
@@ -1,28 +1,28 @@
1
- import type { ButtonType, ElButton, UseTooltipProps } from 'element-plus'
2
-
3
- import type { T_FlyIconV2Props } from '../../general'
4
-
5
- export type FlyButtonIconPosition = 'left' | 'right'
6
-
7
- export type FlyButtonSizes = InstanceType<typeof ElButton>['$props']['size']
8
- export type FlyButtonTypes = ButtonType
9
-
10
- export type FlyButtonProps = {
11
- active?: boolean
12
- appButtonClass?: string
13
- aspect1?: boolean
14
- /**
15
- * Test
16
- */
17
- clipRound?: boolean
18
- full?: boolean
19
- icon?: T_FlyIconV2Props['icon']
20
- iconPosition?: FlyButtonIconPosition
21
- imageUrl?: string
22
- label?: string
23
- size?: FlyButtonSizes
24
- stop?: boolean
25
- title?: string
26
- tooltip?: UseTooltipProps
27
- type?: FlyButtonTypes
28
- }
1
+ import type { ButtonType, ElButton, UseTooltipProps } from 'element-plus'
2
+
3
+ import type { T_FlyIconV2Props } from '../../general'
4
+
5
+ export type FlyButtonIconPosition = 'left' | 'right'
6
+
7
+ export type FlyButtonSizes = InstanceType<typeof ElButton>['$props']['size']
8
+ export type FlyButtonTypes = ButtonType
9
+
10
+ export type FlyButtonProps = {
11
+ active?: boolean
12
+ appButtonClass?: string
13
+ aspect1?: boolean
14
+ /**
15
+ * Test
16
+ */
17
+ clipRound?: boolean
18
+ full?: boolean
19
+ icon?: T_FlyIconV2Props['icon']
20
+ iconPosition?: FlyButtonIconPosition
21
+ imageUrl?: string
22
+ label?: string
23
+ size?: FlyButtonSizes
24
+ stop?: boolean
25
+ title?: string
26
+ tooltip?: UseTooltipProps
27
+ type?: FlyButtonTypes
28
+ }