@flyanra/vue-core 0.4.0 → 0.4.2

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 (161) hide show
  1. package/README.md +176 -176
  2. package/package.json +137 -138
  3. package/src/components/basic/fly-button/FlyButton.element.scss +3 -3
  4. package/src/components/basic/fly-button/FlyButton.mixins.scss +58 -58
  5. package/src/components/basic/fly-button/FlyButton.types.ts +29 -29
  6. package/src/components/basic/fly-button/FlyButton.vue +180 -180
  7. package/src/components/basic/fly-button/index.ts +11 -11
  8. package/src/components/basic/index.ts +2 -2
  9. package/src/components/basic/typography/FlyCollapseTitleRenderer.vue +46 -46
  10. package/src/components/feedback/index.ts +2 -2
  11. package/src/components/feedback/tooltip/FlyInfoTooltip.vue +48 -48
  12. package/src/components/feedback/tooltip/FlyTooltip.element.scss +4 -4
  13. package/src/components/feedback/tooltip/FlyTooltip.types.ts +5 -5
  14. package/src/components/feedback/tooltip/FlyTooltip.vue +60 -60
  15. package/src/components/feedback/tooltip/index.ts +6 -6
  16. package/src/components/form/form.utils.ts +57 -57
  17. package/src/components/form/input-renderers/boolean/FlyBoolean.scss +1 -1
  18. package/src/components/form/input-renderers/boolean/FlyBoolean.types.ts +16 -16
  19. package/src/components/form/input-renderers/boolean/FlyBoolean.vue +35 -35
  20. package/src/components/form/input-renderers/date-time/FlyDateTime.scss +1 -1
  21. package/src/components/form/input-renderers/date-time/FlyDateTime.types.ts +21 -21
  22. package/src/components/form/input-renderers/date-time/FlyDateTime.vue +85 -85
  23. package/src/components/form/input-renderers/form-item-renderer/FlyFormItemRenderer.scss +4 -4
  24. package/src/components/form/input-renderers/form-item-renderer/FlyFormItemRenderer.vue +48 -48
  25. package/src/components/form/input-renderers/form-schema-renderer/FlyFormSchemaRenderer.types.ts +3 -3
  26. package/src/components/form/input-renderers/form-schema-renderer/FlyFormSchemaRenderer.utils.ts +246 -246
  27. package/src/components/form/input-renderers/form-schema-renderer/FlyFormSchemaRenderer.vue +75 -75
  28. package/src/components/form/input-renderers/form-schema-renderer/UseFormSchemaRenderer.ts +97 -97
  29. package/src/components/form/input-renderers/form-schema.types.ts +95 -95
  30. package/src/components/form/input-renderers/input-renderer/FlyInputRenderer.vue +49 -49
  31. package/src/components/form/input-renderers/input-renderer.types.ts +49 -49
  32. package/src/components/form/input-renderers/input-renderer.utils.ts +18 -18
  33. package/src/components/form/input-renderers/number/FlyNumber.scss +1 -1
  34. package/src/components/form/input-renderers/number/FlyNumber.types.ts +13 -13
  35. package/src/components/form/input-renderers/number/FlyNumber.utils.ts +6 -6
  36. package/src/components/form/input-renderers/number/FlyNumber.vue +48 -48
  37. package/src/components/form/input-renderers/regional-tenant-form-renderer/FlyRegionalTenantFormRenderer.types.ts +15 -15
  38. package/src/components/form/input-renderers/regional-tenant-form-renderer/FlyRegionalTenantFormRenderer.vue +99 -99
  39. package/src/components/form/input-renderers/select/FlySelect.scss +1 -1
  40. package/src/components/form/input-renderers/select/FlySelect.types.ts +25 -25
  41. package/src/components/form/input-renderers/select/FlySelect.utils.ts +37 -37
  42. package/src/components/form/input-renderers/select/FlySelect.vue +48 -48
  43. package/src/components/form/input-renderers/text/FlyText.scss +1 -1
  44. package/src/components/form/input-renderers/text/FlyText.types.ts +20 -20
  45. package/src/components/form/input-renderers/text/FlyText.vue +56 -56
  46. package/src/components/form/input-renderers/value-unit/FlyValueUnit.scss +2 -2
  47. package/src/components/form/input-renderers/value-unit/FlyValueUnit.types.ts +28 -28
  48. package/src/components/form/input-renderers/value-unit/FlyValueUnit.vue +101 -101
  49. package/src/components/form/input-validators.ts +121 -121
  50. package/src/components/general/fly-icon/FlyIcon.types.ts +12 -12
  51. package/src/components/general/fly-icon/FlyIcon.vue +24 -24
  52. package/src/components/general/fly-icon/index.ts +6 -6
  53. package/src/components/general/index.ts +2 -2
  54. package/src/components/index.ts +5 -5
  55. package/src/components/navigation/fly-steps/FlySteps.element.scss +100 -100
  56. package/src/components/navigation/fly-steps/FlySteps.types.ts +10 -10
  57. package/src/components/navigation/fly-steps/FlySteps.vue +30 -30
  58. package/src/components/navigation/fly-steps/index.ts +6 -6
  59. package/src/components/navigation/index.ts +2 -2
  60. package/src/components/navigation/menu/fly-mini-sidebar/FlyMiniSidebar.element.scss +2 -2
  61. package/src/components/navigation/menu/fly-mini-sidebar/FlyMiniSidebar.types.ts +8 -8
  62. package/src/components/navigation/menu/fly-mini-sidebar/FlyMiniSidebar.vue +46 -46
  63. package/src/components/navigation/menu/fly-mini-sidebar/FlyMiniSidebarItem.vue +55 -55
  64. package/src/components/navigation/menu/fly-mini-sidebar/index.ts +6 -6
  65. package/src/components/navigation/menu/fly-sidebar/FlySidebar.element.scss +9 -9
  66. package/src/components/navigation/menu/fly-sidebar/FlySidebar.types.ts +36 -36
  67. package/src/components/navigation/menu/fly-sidebar/FlySidebar.vue +150 -150
  68. package/src/components/navigation/menu/fly-sidebar/FlySidebarNode.vue +47 -47
  69. package/src/components/navigation/menu/fly-sidebar/index.ts +12 -12
  70. package/src/components/navigation/menu/index.ts +5 -5
  71. package/src/index.ts +1 -1
  72. package/src/styles/_scss-tokens.scss +76 -76
  73. package/src/styles/core/animations.scss +40 -40
  74. package/src/styles/core/index.scss +36 -36
  75. package/src/styles/core/scrollbar.scss +36 -36
  76. package/src/styles/core/typography-utils.scss +9 -9
  77. package/src/styles/element/common.scss +56 -56
  78. package/src/styles/element/dark.scss +38 -38
  79. package/src/styles/element/mixins/collapse.scss +61 -61
  80. package/src/styles/element/mixins/dialog.scss +101 -101
  81. package/src/styles/element/overrides/alerts.scss +28 -28
  82. package/src/styles/element/overrides/badge.scss +6 -6
  83. package/src/styles/element/overrides/cascader.scss +2 -2
  84. package/src/styles/element/overrides/collapse.scss +2 -2
  85. package/src/styles/element/overrides/date-time.scss +11 -11
  86. package/src/styles/element/overrides/dialog.scss +2 -2
  87. package/src/styles/element/overrides/dropdown.scss +11 -11
  88. package/src/styles/element/overrides/form.scss +105 -105
  89. package/src/styles/element/overrides/message-box.scss +2 -2
  90. package/src/styles/element/overrides/message.scss +39 -39
  91. package/src/styles/element/overrides/notification.scss +46 -46
  92. package/src/styles/element/overrides/radio.scss +2 -2
  93. package/src/styles/element/overrides/segmented.scss +17 -17
  94. package/src/styles/element/overrides/select.scss +9 -9
  95. package/src/styles/element/overrides/table.scss +2 -2
  96. package/src/styles/element/overrides/tag.scss +19 -19
  97. package/src/styles/index.d.ts +1 -1
  98. package/src/styles/index.scss +5 -5
  99. package/src/styles/mixins/shadows.scss +15 -15
  100. package/src/styles/tokens.scss +84 -83
  101. package/dist/types/components/basic/fly-button/FlyButton.types.d.ts +0 -25
  102. package/dist/types/components/basic/fly-button/FlyButton.vue.d.ts +0 -26
  103. package/dist/types/components/basic/fly-button/index.d.ts +0 -4
  104. package/dist/types/components/basic/index.d.ts +0 -2
  105. package/dist/types/components/basic/typography/FlyCollapseTitleRenderer.vue.d.ts +0 -16
  106. package/dist/types/components/feedback/index.d.ts +0 -2
  107. package/dist/types/components/feedback/tooltip/FlyInfoTooltip.vue.d.ts +0 -36
  108. package/dist/types/components/feedback/tooltip/FlyTooltip.types.d.ts +0 -4
  109. package/dist/types/components/feedback/tooltip/FlyTooltip.vue.d.ts +0 -17
  110. package/dist/types/components/feedback/tooltip/index.d.ts +0 -4
  111. package/dist/types/components/form/form.utils.d.ts +0 -10
  112. package/dist/types/components/form/index.d.ts +0 -1
  113. package/dist/types/components/form/input-renderers/boolean/FlyBoolean.types.d.ts +0 -14
  114. package/dist/types/components/form/input-renderers/boolean/FlyBoolean.vue.d.ts +0 -15
  115. package/dist/types/components/form/input-renderers/date-time/FlyDateTime.types.d.ts +0 -20
  116. package/dist/types/components/form/input-renderers/date-time/FlyDateTime.vue.d.ts +0 -19
  117. package/dist/types/components/form/input-renderers/form-item-renderer/FlyFormItemRenderer.vue.d.ts +0 -19
  118. package/dist/types/components/form/input-renderers/form-schema-renderer/FlyFormSchemaRenderer.types.d.ts +0 -2
  119. package/dist/types/components/form/input-renderers/form-schema-renderer/FlyFormSchemaRenderer.utils.d.ts +0 -23
  120. package/dist/types/components/form/input-renderers/form-schema-renderer/FlyFormSchemaRenderer.vue.d.ts +0 -17
  121. package/dist/types/components/form/input-renderers/form-schema-renderer/UseFormSchemaRenderer.d.ts +0 -25
  122. package/dist/types/components/form/input-renderers/form-schema.types.d.ts +0 -77
  123. package/dist/types/components/form/input-renderers/input-renderer/FlyInputRenderer.vue.d.ts +0 -18
  124. package/dist/types/components/form/input-renderers/input-renderer.types.d.ts +0 -30
  125. package/dist/types/components/form/input-renderers/input-renderer.utils.d.ts +0 -2
  126. package/dist/types/components/form/input-renderers/number/FlyNumber.types.d.ts +0 -13
  127. package/dist/types/components/form/input-renderers/number/FlyNumber.utils.d.ts +0 -1
  128. package/dist/types/components/form/input-renderers/number/FlyNumber.vue.d.ts +0 -19
  129. package/dist/types/components/form/input-renderers/regional-tenant-form-renderer/FlyRegionalTenantFormRenderer.types.d.ts +0 -13
  130. package/dist/types/components/form/input-renderers/regional-tenant-form-renderer/FlyRegionalTenantFormRenderer.vue.d.ts +0 -20
  131. package/dist/types/components/form/input-renderers/select/FlySelect.types.d.ts +0 -22
  132. package/dist/types/components/form/input-renderers/select/FlySelect.utils.d.ts +0 -2
  133. package/dist/types/components/form/input-renderers/select/FlySelect.vue.d.ts +0 -19
  134. package/dist/types/components/form/input-renderers/text/FlyText.types.d.ts +0 -18
  135. package/dist/types/components/form/input-renderers/text/FlyText.vue.d.ts +0 -19
  136. package/dist/types/components/form/input-renderers/value-unit/FlyValueUnit.types.d.ts +0 -23
  137. package/dist/types/components/form/input-renderers/value-unit/FlyValueUnit.vue.d.ts +0 -19
  138. package/dist/types/components/form/input-validators.d.ts +0 -13
  139. package/dist/types/components/general/fly-icon/FlyIcon.types.d.ts +0 -7
  140. package/dist/types/components/general/fly-icon/FlyIcon.vue.d.ts +0 -6
  141. package/dist/types/components/general/fly-icon/index.d.ts +0 -4
  142. package/dist/types/components/general/index.d.ts +0 -2
  143. package/dist/types/components/index.d.ts +0 -4
  144. package/dist/types/components/navigation/fly-steps/FlySteps.types.d.ts +0 -9
  145. package/dist/types/components/navigation/fly-steps/FlySteps.vue.d.ts +0 -9
  146. package/dist/types/components/navigation/fly-steps/index.d.ts +0 -4
  147. package/dist/types/components/navigation/index.d.ts +0 -2
  148. package/dist/types/components/navigation/menu/fly-mini-sidebar/FlyMiniSidebar.types.d.ts +0 -7
  149. package/dist/types/components/navigation/menu/fly-mini-sidebar/FlyMiniSidebar.vue.d.ts +0 -8
  150. package/dist/types/components/navigation/menu/fly-mini-sidebar/FlyMiniSidebarItem.vue.d.ts +0 -7
  151. package/dist/types/components/navigation/menu/fly-mini-sidebar/index.d.ts +0 -4
  152. package/dist/types/components/navigation/menu/fly-sidebar/FlySidebar.types.d.ts +0 -29
  153. package/dist/types/components/navigation/menu/fly-sidebar/FlySidebar.vue.d.ts +0 -8
  154. package/dist/types/components/navigation/menu/fly-sidebar/FlySidebarNode.vue.d.ts +0 -7
  155. package/dist/types/components/navigation/menu/fly-sidebar/index.d.ts +0 -4
  156. package/dist/types/components/navigation/menu/index.d.ts +0 -4
  157. package/dist/types/composables/UseLocaleInjector.d.ts +0 -6
  158. package/dist/types/index.d.ts +0 -1
  159. package/dist/types/types/index.d.ts +0 -1
  160. package/dist/types/utils/pure-functions.d.ts +0 -1
  161. package/dist/types/utils/validators.d.ts +0 -9
package/README.md CHANGED
@@ -1,176 +1,176 @@
1
- # @flyanra/vue-core
2
-
3
- Source-distributed Vue component library for Vite and Nuxt consumers.
4
-
5
- This package publishes raw Vue SFC and TypeScript source instead of a bundled runtime build. Consumers import documented package subpaths and let their own toolchain compile the source.
6
-
7
- ## Supported consumers
8
-
9
- - Vite apps with Vue SFC support
10
- - Nuxt apps with Vue SFC support
11
-
12
- ## Package contract
13
-
14
- - Consumers install and configure `vue` in their own app.
15
- - Consumers install required peer UI libraries for components that depend on them.
16
- - Consumers should import documented package subpaths rather than deep internal files.
17
- - This package publishes source `.vue` and `.ts` files plus generated declarations in `dist/types`.
18
-
19
- `AppButton` depends on `element-plus`, so consumers using that component must install `element-plus` in their app.
20
-
21
- Element Plus theme variables are customized through the SCSS `@forward` method in `src/styles/element/common.scss` and `src/styles/element/dark.scss`.
22
-
23
- ## Consumer styles
24
-
25
- Consumers that want the library's Element Plus theme layer should import:
26
-
27
- ```ts
28
- import '@flyanra/vue-core/styles'
29
- ```
30
-
31
- That entry provides the global Element Plus CSS vars for light and dark mode. Consumers can skip it and provide their own Element Plus theme layer instead.
32
-
33
- Consumers importing `@flyanra/vue-core/styles` should do so once in their global app entry, for example `src/main.ts` in a Vite app.
34
-
35
- ```ts
36
- import { createApp } from 'vue'
37
-
38
- import '@flyanra/vue-core/styles'
39
-
40
- import App from './App.vue'
41
-
42
- createApp(App).mount('#app')
43
- ```
44
-
45
- ## Consumer custom theming
46
-
47
- Consumers do not need to use the library's global theme entry. They can provide their own Element Plus light and dark theme layer and still use the library components.
48
-
49
- This is useful when a consumer already has:
50
-
51
- - a brand color system
52
- - custom Element Plus tokens
53
- - a light theme and dark theme that should override the library defaults
54
-
55
- In that case, they should:
56
-
57
- 1. install the required peer dependencies
58
- 2. skip `@flyanra/vue-core/styles`
59
- 3. create their own Element Plus SCSS theme entry
60
- 4. import that theme entry once in their app root
61
-
62
- ### Important SCSS structure
63
-
64
- Do not put both Element Plus `@forward` overrides in the same file. Sass will fail because both forwarded modules export variables such as `$colors`.
65
-
66
- Use three files instead:
67
-
68
- - one file for the light/common override
69
- - one file for the dark override
70
- - one entry file that `@use`s both and generates the final CSS vars
71
-
72
- ### Example custom theme
73
-
74
- `src/styles/element/common.scss`
75
-
76
- ```scss
77
- @forward 'element-plus/theme-chalk/src/common/var.scss' with (
78
- $colors: (
79
- 'primary': (
80
- 'base': #2563eb
81
- )
82
- )
83
- );
84
- ```
85
-
86
- `src/styles/element/dark.scss`
87
-
88
- ```scss
89
- @forward 'element-plus/theme-chalk/src/dark/var.scss' with (
90
- $colors: (
91
- 'primary': (
92
- 'base': #14b8a6
93
- )
94
- )
95
- );
96
- ```
97
-
98
- `src/styles/element-theme.scss`
99
-
100
- ```scss
101
- @use './element/common.scss' as *;
102
- @use 'element-plus/theme-chalk/src/var.scss' as *;
103
-
104
- @use './element/dark.scss' as *;
105
- @use 'element-plus/theme-chalk/src/dark/css-vars.scss' as *;
106
- ```
107
-
108
- Then import that entry once in the consumer app:
109
-
110
- ```ts
111
- import './styles/element-theme.scss'
112
- ```
113
-
114
- ### Dark mode behavior
115
-
116
- The Element Plus dark CSS vars are emitted under `html.dark`, so the consumer app should toggle the `dark` class on the root HTML element when switching themes.
117
-
118
- ### What the library still provides
119
-
120
- Even when consumers provide their own global theme layer, component-local SCSS imported by the library components still loads the required Element Plus component styles. The consumer theme file is responsible for the global CSS variables and design tokens, not the per-component structure styles.
121
-
122
- ## Public imports
123
-
124
- ```ts
125
- import { AppButton as AppButtonNamed } from '@flyanra/vue-core/components'
126
- import AppButton from '@flyanra/vue-core/components/AppButton'
127
- import type { AppButtonProps } from '@flyanra/vue-core/components/AppButton'
128
- import AppCard from '@flyanra/vue-core/components/AppCard'
129
- ```
130
-
131
- Add new components under `src/components/<ComponentName>/index.ts` and they will resolve through the `@flyanra/vue-core/components/<ComponentName>` subpath pattern.
132
-
133
- ## Development checks
134
-
135
- ```sh
136
- npm run typecheck
137
- npm run build:types
138
- npm run pack:check
139
- ```
140
-
141
- ## Local preview
142
-
143
- Use Vite to preview components locally without publishing the package:
144
-
145
- ```sh
146
- npm run dev
147
- ```
148
-
149
- The preview page imports components through the package-style paths so local development exercises the same import contract as consumers.
150
-
151
- ## Storybook
152
-
153
- Use Storybook for isolated component exploration and docs:
154
-
155
- ```sh
156
- npm run storybook
157
- ```
158
-
159
- Use the Storybook toolbar theme control to switch between light and dark mode for both the canvas and docs view.
160
-
161
- Build the static Storybook site with:
162
-
163
- ```sh
164
- npm run build-storybook
165
- ```
166
-
167
- Run Storybook component tests with:
168
-
169
- ```sh
170
- npm run test-storybook
171
- ```
172
-
173
- ## Publishing notes
174
-
175
- - Verify `npm pack --dry-run` only includes intended source and type artifacts.
176
- - Keep Storybook, fixtures, and tests out of the published payload until they are intentionally added.
1
+ # @flyanra/vue-core
2
+
3
+ Source-distributed Vue component library for Vite and Nuxt consumers.
4
+
5
+ This package publishes raw Vue SFC and TypeScript source instead of a bundled runtime build. Consumers import documented package subpaths and let their own toolchain compile the source.
6
+
7
+ ## Supported consumers
8
+
9
+ - Vite apps with Vue SFC support
10
+ - Nuxt apps with Vue SFC support
11
+
12
+ ## Package contract
13
+
14
+ - Consumers install and configure `vue` in their own app.
15
+ - Consumers install required peer UI libraries for components that depend on them.
16
+ - Consumers should import documented package subpaths rather than deep internal files.
17
+ - This package publishes source `.vue` and `.ts` files plus generated declarations in `dist/types`.
18
+
19
+ `AppButton` depends on `element-plus`, so consumers using that component must install `element-plus` in their app.
20
+
21
+ Element Plus theme variables are customized through the SCSS `@forward` method in `src/styles/element/common.scss` and `src/styles/element/dark.scss`.
22
+
23
+ ## Consumer styles
24
+
25
+ Consumers that want the library's Element Plus theme layer should import:
26
+
27
+ ```ts
28
+ import '@flyanra/vue-core/styles'
29
+ ```
30
+
31
+ That entry provides the global Element Plus CSS vars for light and dark mode. Consumers can skip it and provide their own Element Plus theme layer instead.
32
+
33
+ Consumers importing `@flyanra/vue-core/styles` should do so once in their global app entry, for example `src/main.ts` in a Vite app.
34
+
35
+ ```ts
36
+ import { createApp } from 'vue'
37
+
38
+ import '@flyanra/vue-core/styles'
39
+
40
+ import App from './App.vue'
41
+
42
+ createApp(App).mount('#app')
43
+ ```
44
+
45
+ ## Consumer custom theming
46
+
47
+ Consumers do not need to use the library's global theme entry. They can provide their own Element Plus light and dark theme layer and still use the library components.
48
+
49
+ This is useful when a consumer already has:
50
+
51
+ - a brand color system
52
+ - custom Element Plus tokens
53
+ - a light theme and dark theme that should override the library defaults
54
+
55
+ In that case, they should:
56
+
57
+ 1. install the required peer dependencies
58
+ 2. skip `@flyanra/vue-core/styles`
59
+ 3. create their own Element Plus SCSS theme entry
60
+ 4. import that theme entry once in their app root
61
+
62
+ ### Important SCSS structure
63
+
64
+ Do not put both Element Plus `@forward` overrides in the same file. Sass will fail because both forwarded modules export variables such as `$colors`.
65
+
66
+ Use three files instead:
67
+
68
+ - one file for the light/common override
69
+ - one file for the dark override
70
+ - one entry file that `@use`s both and generates the final CSS vars
71
+
72
+ ### Example custom theme
73
+
74
+ `src/styles/element/common.scss`
75
+
76
+ ```scss
77
+ @forward 'element-plus/theme-chalk/src/common/var.scss' with (
78
+ $colors: (
79
+ 'primary': (
80
+ 'base': #2563eb
81
+ )
82
+ )
83
+ );
84
+ ```
85
+
86
+ `src/styles/element/dark.scss`
87
+
88
+ ```scss
89
+ @forward 'element-plus/theme-chalk/src/dark/var.scss' with (
90
+ $colors: (
91
+ 'primary': (
92
+ 'base': #14b8a6
93
+ )
94
+ )
95
+ );
96
+ ```
97
+
98
+ `src/styles/element-theme.scss`
99
+
100
+ ```scss
101
+ @use './element/common.scss' as *;
102
+ @use 'element-plus/theme-chalk/src/var.scss' as *;
103
+
104
+ @use './element/dark.scss' as *;
105
+ @use 'element-plus/theme-chalk/src/dark/css-vars.scss' as *;
106
+ ```
107
+
108
+ Then import that entry once in the consumer app:
109
+
110
+ ```ts
111
+ import './styles/element-theme.scss'
112
+ ```
113
+
114
+ ### Dark mode behavior
115
+
116
+ The Element Plus dark CSS vars are emitted under `html.dark`, so the consumer app should toggle the `dark` class on the root HTML element when switching themes.
117
+
118
+ ### What the library still provides
119
+
120
+ Even when consumers provide their own global theme layer, component-local SCSS imported by the library components still loads the required Element Plus component styles. The consumer theme file is responsible for the global CSS variables and design tokens, not the per-component structure styles.
121
+
122
+ ## Public imports
123
+
124
+ ```ts
125
+ import { AppButton as AppButtonNamed } from '@flyanra/vue-core/components'
126
+ import AppButton from '@flyanra/vue-core/components/AppButton'
127
+ import type { AppButtonProps } from '@flyanra/vue-core/components/AppButton'
128
+ import AppCard from '@flyanra/vue-core/components/AppCard'
129
+ ```
130
+
131
+ Add new components under `src/components/<ComponentName>/index.ts` and they will resolve through the `@flyanra/vue-core/components/<ComponentName>` subpath pattern.
132
+
133
+ ## Development checks
134
+
135
+ ```sh
136
+ npm run typecheck
137
+ npm run build:types
138
+ npm run pack:check
139
+ ```
140
+
141
+ ## Local preview
142
+
143
+ Use Vite to preview components locally without publishing the package:
144
+
145
+ ```sh
146
+ npm run dev
147
+ ```
148
+
149
+ The preview page imports components through the package-style paths so local development exercises the same import contract as consumers.
150
+
151
+ ## Storybook
152
+
153
+ Use Storybook for isolated component exploration and docs:
154
+
155
+ ```sh
156
+ npm run storybook
157
+ ```
158
+
159
+ Use the Storybook toolbar theme control to switch between light and dark mode for both the canvas and docs view.
160
+
161
+ Build the static Storybook site with:
162
+
163
+ ```sh
164
+ npm run build-storybook
165
+ ```
166
+
167
+ Run Storybook component tests with:
168
+
169
+ ```sh
170
+ npm run test-storybook
171
+ ```
172
+
173
+ ## Publishing notes
174
+
175
+ - Verify `npm pack --dry-run` only includes intended source and type artifacts.
176
+ - Keep Storybook, fixtures, and tests out of the published payload until they are intentionally added.
package/package.json CHANGED
@@ -1,138 +1,137 @@
1
- {
2
- "name": "@flyanra/vue-core",
3
- "version": "0.4.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
- "./package.json": "./package.json"
34
- },
35
- "types": "./dist/types/index.d.ts",
36
- "files": [
37
- "src/components",
38
- "src/styles",
39
- "src/index.ts",
40
- "dist/types",
41
- "README.md",
42
- "package.json",
43
- "!src/**/*.stories.ts",
44
- "!src/**/*.stories.tsx",
45
- "!src/**/*.mdx",
46
- "!dist/types/**/*.stories.d.ts"
47
- ],
48
- "scripts": {
49
- "build:preview": "vite build",
50
- "prebuild:types": "npm run clean:types",
51
- "build:types": "vue-tsc --declaration --emitDeclarationOnly -p tsconfig.build.json",
52
- "build-storybook": "storybook build",
53
- "changeset": "changeset",
54
- "changeset:publish": "changeset publish",
55
- "changeset:version": "changeset version",
56
- "clean:types": "rm -rf dist/types",
57
- "dev": "vite",
58
- "format": "prettier . --write",
59
- "format:check": "prettier . --check",
60
- "lint": "eslint .",
61
- "lint:fix": "eslint . --fix",
62
- "pack": "npm pack",
63
- "pack:check": "npm pack --dry-run",
64
- "postinstall:husky": "husky",
65
- "prepare": "husky",
66
- "preview": "vite preview",
67
- "storybook": "storybook dev -p 6006 --no-open",
68
- "test-storybook": "vitest --project=storybook",
69
- "typecheck": "vue-tsc --noEmit -p tsconfig.lib.json"
70
- },
71
- "lint-staged": {
72
- "*.{js,mjs,cjs,ts,mts,jsx,tsx,vue,css,scss,md,json}": [
73
- "prettier --write"
74
- ],
75
- "*.{js,mjs,cjs,ts,mts,jsx,tsx,vue}": [
76
- "eslint --fix"
77
- ]
78
- },
79
- "dependencies": {},
80
- "devDependencies": {
81
- "@changesets/cli": "^2.30.0",
82
- "@eslint/js": "^10.0.1",
83
- "@flyanra/js-utils": "^1.3.2",
84
- "@jamescoyle/vue-icon": "^0.1.2",
85
- "@mdi/js": "^7.4.47",
86
- "@remixicon/vue": "^4.9.0",
87
- "@storybook/addon-a11y": "^10.3.6",
88
- "@storybook/addon-docs": "^10.3.6",
89
- "@storybook/addon-vitest": "^10.3.6",
90
- "@storybook/vue3-vite": "^10.3.6",
91
- "@tailwindcss/vite": "^4.2.2",
92
- "@trivago/prettier-plugin-sort-imports": "^6.0.2",
93
- "@types/node": "^24.12.2",
94
- "@vitejs/plugin-vue": "^6.0.5",
95
- "@vitest/browser-playwright": "^4.1.4",
96
- "@vitest/coverage-v8": "^4.1.4",
97
- "@vue/tsconfig": "^0.9.1",
98
- "dompurify": "^3.4.2",
99
- "element-plus": "^2.13.7",
100
- "eslint": "^10.2.0",
101
- "eslint-config-prettier": "^10.1.8",
102
- "eslint-plugin-storybook": "^10.3.6",
103
- "eslint-plugin-vue": "^10.8.0",
104
- "globals": "^17.5.0",
105
- "husky": "^9.1.7",
106
- "lint-staged": "^16.4.0",
107
- "lodash": "^4.18.1",
108
- "maska": "^3.2.0",
109
- "playwright": "^1.59.1",
110
- "prettier": "^3.8.3",
111
- "prettier-plugin-packagejson": "^3.0.2",
112
- "sass": "^1.99.0",
113
- "storybook": "^10.3.6",
114
- "storybook-vue3-router": "^7.0.0",
115
- "tailwindcss": "^4.2.2",
116
- "typescript": "~6.0.2",
117
- "typescript-eslint": "^8.58.2",
118
- "vite": "^8.0.4",
119
- "vitest": "^4.1.4",
120
- "vue": "^3.5.32",
121
- "vue-eslint-parser": "^10.4.0",
122
- "vue-i18n": "^11.4.0",
123
- "vue-tsc": "^3.2.6"
124
- },
125
- "peerDependencies": {
126
- "@flyanra/js-utils": "^1.3.2",
127
- "@jamescoyle/vue-icon": "^0.1.2",
128
- "element-plus": "^2.13.7",
129
- "lodash": "^4.18.1",
130
- "maska": "^3.2.0",
131
- "vue": "^3.5.32",
132
- "vue-i18n": "^11.4.0"
133
- },
134
- "volta": {
135
- "node": "24.12.0",
136
- "yarn": "1.22.22"
137
- }
138
- }
1
+ {
2
+ "name": "@flyanra/vue-core",
3
+ "version": "0.4.2",
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
+ "./package.json": "./package.json"
34
+ },
35
+ "types": "./dist/types/index.d.ts",
36
+ "files": [
37
+ "src/components",
38
+ "src/styles",
39
+ "src/index.ts",
40
+ "dist/types",
41
+ "README.md",
42
+ "package.json",
43
+ "!src/**/*.stories.ts",
44
+ "!src/**/*.stories.tsx",
45
+ "!src/**/*.mdx",
46
+ "!dist/types/**/*.stories.d.ts"
47
+ ],
48
+ "scripts": {
49
+ "build:preview": "vite build",
50
+ "prebuild:types": "npm run clean:types",
51
+ "build:types": "vue-tsc --declaration --emitDeclarationOnly -p tsconfig.build.json",
52
+ "build-storybook": "storybook build",
53
+ "changeset": "changeset",
54
+ "changeset:publish": "changeset publish",
55
+ "changeset:version": "changeset version",
56
+ "clean:types": "rm -rf dist/types",
57
+ "dev": "vite",
58
+ "format": "prettier . --write",
59
+ "format:check": "prettier . --check",
60
+ "lint": "eslint .",
61
+ "lint:fix": "eslint . --fix",
62
+ "pack": "npm pack",
63
+ "pack:check": "npm pack --dry-run",
64
+ "postinstall:husky": "husky",
65
+ "prepare": "husky",
66
+ "preview": "vite preview",
67
+ "storybook": "storybook dev -p 6006 --no-open",
68
+ "test-storybook": "vitest --project=storybook",
69
+ "typecheck": "vue-tsc --noEmit -p tsconfig.lib.json"
70
+ },
71
+ "lint-staged": {
72
+ "*.{js,mjs,cjs,ts,mts,jsx,tsx,vue,css,scss,md,json}": [
73
+ "prettier --write"
74
+ ],
75
+ "*.{js,mjs,cjs,ts,mts,jsx,tsx,vue}": [
76
+ "eslint --fix"
77
+ ]
78
+ },
79
+ "devDependencies": {
80
+ "@changesets/cli": "^2.30.0",
81
+ "@eslint/js": "^10.0.1",
82
+ "@flyanra/js-utils": "^1.3.2",
83
+ "@jamescoyle/vue-icon": "^0.1.2",
84
+ "@mdi/js": "^7.4.47",
85
+ "@remixicon/vue": "^4.9.0",
86
+ "@storybook/addon-a11y": "^10.3.6",
87
+ "@storybook/addon-docs": "^10.3.6",
88
+ "@storybook/addon-vitest": "^10.3.6",
89
+ "@storybook/vue3-vite": "^10.3.6",
90
+ "@tailwindcss/vite": "^4.2.2",
91
+ "@trivago/prettier-plugin-sort-imports": "^6.0.2",
92
+ "@types/node": "^24.12.2",
93
+ "@vitejs/plugin-vue": "^6.0.5",
94
+ "@vitest/browser-playwright": "^4.1.4",
95
+ "@vitest/coverage-v8": "^4.1.4",
96
+ "@vue/tsconfig": "^0.9.1",
97
+ "dompurify": "^3.4.2",
98
+ "element-plus": "^2.13.7",
99
+ "eslint": "^10.2.0",
100
+ "eslint-config-prettier": "^10.1.8",
101
+ "eslint-plugin-storybook": "^10.3.6",
102
+ "eslint-plugin-vue": "^10.8.0",
103
+ "globals": "^17.5.0",
104
+ "husky": "^9.1.7",
105
+ "lint-staged": "^16.4.0",
106
+ "lodash": "^4.18.1",
107
+ "maska": "^3.2.0",
108
+ "playwright": "^1.59.1",
109
+ "prettier": "^3.8.3",
110
+ "prettier-plugin-packagejson": "^3.0.2",
111
+ "sass": "^1.99.0",
112
+ "storybook": "^10.3.6",
113
+ "storybook-vue3-router": "^7.0.0",
114
+ "tailwindcss": "^4.2.2",
115
+ "typescript": "~6.0.2",
116
+ "typescript-eslint": "^8.58.2",
117
+ "vite": "^8.0.4",
118
+ "vitest": "^4.1.4",
119
+ "vue": "^3.5.32",
120
+ "vue-eslint-parser": "^10.4.0",
121
+ "vue-i18n": "^11.4.0",
122
+ "vue-tsc": "^3.2.6"
123
+ },
124
+ "peerDependencies": {
125
+ "@flyanra/js-utils": "^1.3.2",
126
+ "@jamescoyle/vue-icon": "^0.1.2",
127
+ "element-plus": "^2.13.7",
128
+ "lodash": "^4.18.1",
129
+ "maska": "^3.2.0",
130
+ "vue": "^3.5.32",
131
+ "vue-i18n": "^11.4.0"
132
+ },
133
+ "volta": {
134
+ "node": "24.12.0",
135
+ "yarn": "1.22.22"
136
+ }
137
+ }
@@ -1,3 +1,3 @@
1
- @use '../../../styles/element/common.scss' as *;
2
-
3
- @use 'element-plus/theme-chalk/src/button.scss' as *;
1
+ @use '../../../styles/element/common.scss' as *;
2
+
3
+ @use 'element-plus/theme-chalk/src/button.scss' as *;