@flyanra/vue-core 0.3.0 → 1.0.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 (118) hide show
  1. package/dist/types/components/basic/fly-button/FlyButton.types.d.ts +2 -3
  2. package/dist/types/components/basic/typography/FlyCollapseTitleRenderer.vue.d.ts +16 -0
  3. package/dist/types/components/feedback/tooltip/FlyInfoTooltip.vue.d.ts +36 -0
  4. package/dist/types/components/feedback/tooltip/FlyTooltip.vue.d.ts +1 -0
  5. package/dist/types/components/form/form.utils.d.ts +11 -0
  6. package/dist/types/components/form/index.d.ts +5 -0
  7. package/dist/types/components/form/input-renderers/boolean/FlyBoolean.types.d.ts +14 -0
  8. package/dist/types/components/form/input-renderers/boolean/FlyBoolean.vue.d.ts +15 -0
  9. package/dist/types/components/form/input-renderers/date-time/FlyDateTime.types.d.ts +20 -0
  10. package/dist/types/components/form/input-renderers/date-time/FlyDateTime.vue.d.ts +19 -0
  11. package/dist/types/components/form/input-renderers/form-item-renderer/FlyFormItemRenderer.vue.d.ts +19 -0
  12. package/dist/types/components/form/input-renderers/form-item-renderer/index.d.ts +3 -0
  13. package/dist/types/components/form/input-renderers/form-schema-renderer/FlyFormSchemaRenderer.types.d.ts +2 -0
  14. package/dist/types/components/form/input-renderers/form-schema-renderer/FlyFormSchemaRenderer.utils.d.ts +21 -0
  15. package/dist/types/components/form/input-renderers/form-schema-renderer/FlyFormSchemaRenderer.vue.d.ts +17 -0
  16. package/dist/types/components/form/input-renderers/form-schema-renderer/UseFormSchemaRenderer.d.ts +25 -0
  17. package/dist/types/components/form/input-renderers/form-schema.types.d.ts +77 -0
  18. package/dist/types/components/form/input-renderers/input-renderer/FlyInputRenderer.vue.d.ts +18 -0
  19. package/dist/types/components/form/input-renderers/input-renderer/index.d.ts +3 -0
  20. package/dist/types/components/form/input-renderers/input-renderer.types.d.ts +30 -0
  21. package/dist/types/components/form/input-renderers/input-renderer.utils.d.ts +2 -0
  22. package/dist/types/components/form/input-renderers/number/FlyNumber.types.d.ts +13 -0
  23. package/dist/types/components/form/input-renderers/number/FlyNumber.utils.d.ts +1 -0
  24. package/dist/types/components/form/input-renderers/number/FlyNumber.vue.d.ts +19 -0
  25. package/dist/types/components/form/input-renderers/regional-tenant-form-renderer/FlyRegionalTenantFormRenderer.types.d.ts +13 -0
  26. package/dist/types/components/form/input-renderers/regional-tenant-form-renderer/FlyRegionalTenantFormRenderer.vue.d.ts +20 -0
  27. package/dist/types/components/form/input-renderers/select/FlySelect.types.d.ts +22 -0
  28. package/dist/types/components/form/input-renderers/select/FlySelect.utils.d.ts +2 -0
  29. package/dist/types/components/form/input-renderers/select/FlySelect.vue.d.ts +19 -0
  30. package/dist/types/components/form/input-renderers/text/FlyText.types.d.ts +18 -0
  31. package/dist/types/components/form/input-renderers/text/FlyText.vue.d.ts +19 -0
  32. package/dist/types/components/form/input-renderers/value-unit/FlyValueUnit.types.d.ts +23 -0
  33. package/dist/types/components/form/input-renderers/value-unit/FlyValueUnit.vue.d.ts +19 -0
  34. package/dist/types/components/form/input-validators.d.ts +12 -0
  35. package/dist/types/components/general/fly-icon-v2/FlyIconV2.types.d.ts +5 -0
  36. package/dist/types/components/general/fly-icon-v2/FlyIconV2.vue.d.ts +4 -0
  37. package/dist/types/components/general/fly-icon-v2/index.d.ts +4 -0
  38. package/dist/types/components/general/index.d.ts +2 -0
  39. package/dist/types/components/index.d.ts +1 -4
  40. package/dist/types/components/navigation/menu/fly-mini-sidebar/FlyMiniSidebar.types.d.ts +2 -2
  41. package/dist/types/components/navigation/menu/fly-sidebar/FlySidebar.types.d.ts +2 -2
  42. package/dist/types/composables/UseLocaleInjector.d.ts +8 -0
  43. package/dist/types/composables/index.d.ts +1 -0
  44. package/dist/types/utils/pure-functions.d.ts +1 -0
  45. package/dist/types/utils/validators.d.ts +8 -0
  46. package/package.json +26 -8
  47. package/src/components/basic/fly-button/FlyButton.types.ts +2 -3
  48. package/src/components/basic/fly-button/FlyButton.vue +4 -6
  49. package/src/components/basic/typography/FlyCollapseTitleRenderer.vue +46 -0
  50. package/src/components/feedback/tooltip/FlyInfoTooltip.vue +49 -0
  51. package/src/components/feedback/tooltip/FlyTooltip.element.scss +1 -1
  52. package/src/components/feedback/tooltip/FlyTooltip.vue +1 -0
  53. package/src/components/form/form.utils.ts +72 -0
  54. package/src/components/form/index.ts +6 -0
  55. package/src/components/form/input-renderers/boolean/FlyBoolean.scss +1 -0
  56. package/src/components/form/input-renderers/boolean/FlyBoolean.types.ts +16 -0
  57. package/src/components/form/input-renderers/boolean/FlyBoolean.vue +48 -0
  58. package/src/components/form/input-renderers/date-time/FlyDateTime.scss +1 -0
  59. package/src/components/form/input-renderers/date-time/FlyDateTime.types.ts +21 -0
  60. package/src/components/form/input-renderers/date-time/FlyDateTime.vue +85 -0
  61. package/src/components/form/input-renderers/form-item-renderer/FlyFormItemRenderer.scss +4 -0
  62. package/src/components/form/input-renderers/form-item-renderer/FlyFormItemRenderer.vue +48 -0
  63. package/src/components/form/input-renderers/form-item-renderer/index.ts +4 -0
  64. package/src/components/form/input-renderers/form-schema-renderer/FlyFormSchemaRenderer.types.ts +3 -0
  65. package/src/components/form/input-renderers/form-schema-renderer/FlyFormSchemaRenderer.utils.ts +221 -0
  66. package/src/components/form/input-renderers/form-schema-renderer/FlyFormSchemaRenderer.vue +75 -0
  67. package/src/components/form/input-renderers/form-schema-renderer/UseFormSchemaRenderer.ts +97 -0
  68. package/src/components/form/input-renderers/form-schema.types.ts +95 -0
  69. package/src/components/form/input-renderers/input-renderer/FlyInputRenderer.vue +49 -0
  70. package/src/components/form/input-renderers/input-renderer/index.ts +4 -0
  71. package/src/components/form/input-renderers/input-renderer.types.ts +49 -0
  72. package/src/components/form/input-renderers/input-renderer.utils.ts +18 -0
  73. package/src/components/form/input-renderers/number/FlyNumber.scss +1 -0
  74. package/src/components/form/input-renderers/number/FlyNumber.types.ts +13 -0
  75. package/src/components/form/input-renderers/number/FlyNumber.utils.ts +6 -0
  76. package/src/components/form/input-renderers/number/FlyNumber.vue +64 -0
  77. package/src/components/form/input-renderers/regional-tenant-form-renderer/FlyRegionalTenantFormRenderer.types.ts +15 -0
  78. package/src/components/form/input-renderers/regional-tenant-form-renderer/FlyRegionalTenantFormRenderer.vue +99 -0
  79. package/src/components/form/input-renderers/select/FlySelect.scss +1 -0
  80. package/src/components/form/input-renderers/select/FlySelect.types.ts +25 -0
  81. package/src/components/form/input-renderers/select/FlySelect.utils.ts +37 -0
  82. package/src/components/form/input-renderers/select/FlySelect.vue +48 -0
  83. package/src/components/form/input-renderers/text/FlyText.scss +1 -0
  84. package/src/components/form/input-renderers/text/FlyText.types.ts +20 -0
  85. package/src/components/form/input-renderers/text/FlyText.vue +70 -0
  86. package/src/components/form/input-renderers/value-unit/FlyValueUnit.scss +2 -0
  87. package/src/components/form/input-renderers/value-unit/FlyValueUnit.types.ts +28 -0
  88. package/src/components/form/input-renderers/value-unit/FlyValueUnit.vue +102 -0
  89. package/src/components/form/input-validators.ts +99 -0
  90. package/src/components/general/fly-icon-v2/FlyIconV2.types.ts +6 -0
  91. package/src/components/general/fly-icon-v2/FlyIconV2.vue +17 -0
  92. package/src/components/general/fly-icon-v2/index.ts +6 -0
  93. package/src/components/general/index.ts +3 -0
  94. package/src/components/index.ts +2 -6
  95. package/src/components/navigation/menu/fly-mini-sidebar/FlyMiniSidebar.types.ts +2 -2
  96. package/src/components/navigation/menu/fly-mini-sidebar/FlyMiniSidebarItem.vue +2 -2
  97. package/src/components/navigation/menu/fly-sidebar/FlySidebar.types.ts +2 -2
  98. package/src/components/navigation/menu/fly-sidebar/FlySidebar.vue +5 -4
  99. package/src/components/navigation/menu/fly-sidebar/FlySidebarNode.vue +3 -3
  100. package/src/styles/element/mixins/collapse.scss +2 -2
  101. package/src/styles/element/overrides/date-time.scss +11 -0
  102. package/src/styles/element/overrides/form.scss +26 -12
  103. package/src/styles/element/overrides/message-box.scss +2 -0
  104. package/src/styles/element/overrides/radio.scss +2 -0
  105. package/src/styles/element/overrides/select.scss +9 -0
  106. package/dist/types/components/AppButton/AppButton.types.d.ts +0 -8
  107. package/dist/types/components/AppButton/AppButton.vue.d.ts +0 -20
  108. package/dist/types/components/AppButton/index.d.ts +0 -4
  109. package/dist/types/components/AppCard/AppCard.types.d.ts +0 -5
  110. package/dist/types/components/AppCard/AppCard.vue.d.ts +0 -17
  111. package/dist/types/components/AppCard/index.d.ts +0 -4
  112. package/src/components/AppButton/AppButton.element.scss +0 -2
  113. package/src/components/AppButton/AppButton.types.ts +0 -10
  114. package/src/components/AppButton/AppButton.vue +0 -65
  115. package/src/components/AppButton/index.ts +0 -6
  116. package/src/components/AppCard/AppCard.types.ts +0 -5
  117. package/src/components/AppCard/AppCard.vue +0 -58
  118. package/src/components/AppCard/index.ts +0 -6
@@ -12,19 +12,20 @@
12
12
  </el-scrollbar>
13
13
 
14
14
  <div class="fly_sidebar__collapse-trigger" role="button" @click="toggleCollapse">
15
- <FlyIcon :icon="isCollapsed ? mdiChevronRight : mdiChevronLeft" type="mdi" />
15
+ <FlyIconV2 :icon="isCollapsed ? IconMdiChevronRight : IconMdiChevronLeft" />
16
16
  </div>
17
17
  </div>
18
18
  </template>
19
19
 
20
20
  <script lang="ts" setup>
21
+ import IconMdiChevronLeft from '~icons/mdi/chevron-left'
22
+ import IconMdiChevronRight from '~icons/mdi/chevron-right'
23
+
21
24
  import { ref } from 'vue'
22
25
 
23
26
  import { ElMenu, ElScrollbar } from 'element-plus'
24
27
 
25
- import { mdiChevronLeft, mdiChevronRight } from '@mdi/js'
26
-
27
- import FlyIcon from '../../../general/fly-icon/FlyIcon.vue'
28
+ import FlyIconV2 from '../../../general/fly-icon-v2/FlyIconV2.vue'
28
29
 
29
30
  import './FlySidebar.element.scss'
30
31
  import type { T_FlySidebarProps } from './FlySidebar.types'
@@ -2,7 +2,7 @@
2
2
  <el-menu-item v-if="node.type === 'item'" :index="node.index" :disabled="node.disabled">
3
3
  <template v-if="node.icon">
4
4
  <i class="el-icon">
5
- <FlyIcon :icon="node.icon.icon" :type="node.icon.type" />
5
+ <FlyIconV2 :icon="node.icon" />
6
6
  </i>
7
7
  </template>
8
8
 
@@ -15,7 +15,7 @@
15
15
  <template #title>
16
16
  <template v-if="node.icon">
17
17
  <i class="el-icon">
18
- <FlyIcon :icon="node.icon.icon" :type="node.icon.type" />
18
+ <FlyIconV2 :icon="node.icon" />
19
19
  </i>
20
20
  </template>
21
21
 
@@ -37,7 +37,7 @@
37
37
  <script lang="ts" setup>
38
38
  import { ElMenuItem, ElMenuItemGroup, ElSubMenu } from 'element-plus'
39
39
 
40
- import FlyIcon from '../../../general/fly-icon/FlyIcon.vue'
40
+ import FlyIconV2 from '../../../general/fly-icon-v2/FlyIconV2.vue'
41
41
 
42
42
  import type { T_FlySidebarNode } from './FlySidebar.types'
43
43
 
@@ -1,7 +1,7 @@
1
1
  @mixin el-collapse-operation-style {
2
2
  .el-collapse-item {
3
3
  &__header {
4
- padding: 0.5rem 0rem 0.5rem 0rem;
4
+ padding: 0.5rem 0.5rem 0.5rem 0rem;
5
5
  min-height: 48px;
6
6
  text-align: left;
7
7
  }
@@ -38,7 +38,7 @@
38
38
  .el-collapse-item {
39
39
  border-bottom: 10px solid transparent;
40
40
  &__header {
41
- padding: 0.25rem 0rem 0.25rem 0rem;
41
+ padding: 0.25rem 0.5rem 0.25rem 0rem;
42
42
  // min-height: 30px;
43
43
  text-align: left;
44
44
  border-top: 1px solid var(--el-collapse-border-color);
@@ -0,0 +1,11 @@
1
+ @use 'element-plus/theme-chalk/src/input.scss';
2
+ @use 'element-plus/theme-chalk/src/button.scss';
3
+ @use 'element-plus/theme-chalk/src/icon.scss';
4
+
5
+ @use 'element-plus/theme-chalk/src/date-picker.scss';
6
+ @use 'element-plus/theme-chalk/src/date-picker-panel.scss';
7
+ @use 'element-plus/theme-chalk/src/time-picker.scss';
8
+ @use 'element-plus/theme-chalk/src/time-select.scss';
9
+
10
+ @use 'element-plus/theme-chalk/src/popper.scss';
11
+ @use 'element-plus/theme-chalk/src/scrollbar.scss';
@@ -1,14 +1,29 @@
1
- @use 'element-plus/theme-chalk/src/form.scss' as *;
2
- @use 'element-plus/theme-chalk/src/form-item.scss' as *;
3
- @use 'element-plus/theme-chalk/src/input.scss' as *;
4
- @use 'element-plus/theme-chalk/src/input-number.scss' as *;
5
- @use 'element-plus/theme-chalk/src/option.scss' as *;
6
- @use 'element-plus/theme-chalk/src/select.scss' as *;
7
- @use 'element-plus/theme-chalk/src/radio.scss' as *;
8
- @use 'element-plus/theme-chalk/src/radio-group.scss' as *;
9
- @use 'element-plus/theme-chalk/src/checkbox.scss' as *;
10
- @use 'element-plus/theme-chalk/src/date-picker.scss' as *;
11
- @use 'element-plus/theme-chalk/src/switch.scss' as *;
1
+ @use 'element-plus/theme-chalk/src/form.scss';
2
+ @use 'element-plus/theme-chalk/src/form-item.scss';
3
+ @use 'element-plus/theme-chalk/src/input.scss';
4
+ @use 'element-plus/theme-chalk/src/input-number.scss';
5
+ @use 'element-plus/theme-chalk/src/input-tag.scss';
6
+ @use './select.scss';
7
+ @use './radio.scss';
8
+ @use 'element-plus/theme-chalk/src/checkbox.scss';
9
+ @use './date-time.scss';
10
+ @use 'element-plus/theme-chalk/src/switch.scss';
11
+ @use 'element-plus/theme-chalk/src/icon.scss';
12
+
13
+ :root {
14
+ .el-input,
15
+ .el-textarea,
16
+ .el-date-editor {
17
+ --el-input-border-color: var(--anra-form-input-border);
18
+ }
19
+ .el-input-tag,
20
+ .el-select {
21
+ --el-border-color: var(--anra-form-input-border);
22
+ }
23
+ .el-switch__core {
24
+ --el-switch-border-color: var(--anra-form-input-border);
25
+ }
26
+ }
12
27
 
13
28
  .el-form-item {
14
29
  &__error,
@@ -64,7 +79,6 @@
64
79
 
65
80
  .el-select__wrapper {
66
81
  --el-fill-color-blank: var(--anra-bg-20);
67
- --el-border-color: var(--anra-form-input-border);
68
82
 
69
83
  &.is-disabled {
70
84
  background-color: var(--anra-disabled-bg);
@@ -0,0 +1,2 @@
1
+ @use 'element-plus/theme-chalk/src/overlay.scss' as *;
2
+ @use 'element-plus/theme-chalk/src/message-box.scss' as *;
@@ -0,0 +1,2 @@
1
+ @use 'element-plus/theme-chalk/src/radio.scss';
2
+ @use 'element-plus/theme-chalk/src/radio-group.scss';
@@ -0,0 +1,9 @@
1
+ @use 'element-plus/theme-chalk/src/select.scss';
2
+ @use 'element-plus/theme-chalk/src/option.scss';
3
+
4
+ @use 'element-plus/theme-chalk/src/input.scss';
5
+ @use 'element-plus/theme-chalk/src/tag.scss';
6
+
7
+ @use 'element-plus/theme-chalk/src/popper.scss';
8
+ @use 'element-plus/theme-chalk/src/scrollbar.scss';
9
+ @use 'element-plus/theme-chalk/src/icon.scss';
@@ -1,8 +0,0 @@
1
- export type AppButtonVariant = 'primary' | 'secondary' | 'ghost';
2
- export type AppButtonSize = 'sm' | 'md' | 'lg';
3
- export interface AppButtonProps {
4
- disabled?: boolean;
5
- label?: string;
6
- size?: AppButtonSize;
7
- variant?: AppButtonVariant;
8
- }
@@ -1,20 +0,0 @@
1
- import './AppButton.element.scss';
2
- import type { AppButtonProps } from './AppButton.types';
3
- declare var __VLS_8: {};
4
- type __VLS_Slots = {} & {
5
- default?: (props: typeof __VLS_8) => any;
6
- };
7
- declare const __VLS_base: import("vue").DefineComponent<AppButtonProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<AppButtonProps> & Readonly<{}>, {
8
- disabled: boolean;
9
- label: string;
10
- size: import("./AppButton.types").AppButtonSize;
11
- variant: import("./AppButton.types").AppButtonVariant;
12
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
13
- declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
14
- declare const _default: typeof __VLS_export;
15
- export default _default;
16
- type __VLS_WithSlots<T, S> = T & {
17
- new (): {
18
- $slots: S;
19
- };
20
- };
@@ -1,4 +0,0 @@
1
- import AppButton from './AppButton.vue';
2
- export default AppButton;
3
- export { AppButton };
4
- export type { AppButtonProps, AppButtonSize, AppButtonVariant } from './AppButton.types';
@@ -1,5 +0,0 @@
1
- export interface AppCardProps {
2
- eyebrow?: string;
3
- title: string;
4
- body?: string;
5
- }
@@ -1,17 +0,0 @@
1
- import type { AppCardProps } from './AppCard.types';
2
- declare var __VLS_1: {};
3
- type __VLS_Slots = {} & {
4
- default?: (props: typeof __VLS_1) => any;
5
- };
6
- declare const __VLS_base: import("vue").DefineComponent<AppCardProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<AppCardProps> & Readonly<{}>, {
7
- eyebrow: string;
8
- body: string;
9
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
10
- declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
11
- declare const _default: typeof __VLS_export;
12
- export default _default;
13
- type __VLS_WithSlots<T, S> = T & {
14
- new (): {
15
- $slots: S;
16
- };
17
- };
@@ -1,4 +0,0 @@
1
- import AppCard from './AppCard.vue';
2
- export default AppCard;
3
- export { AppCard };
4
- export type { AppCardProps } from './AppCard.types';
@@ -1,2 +0,0 @@
1
- @use '../../styles/element/common.scss' as *;
2
- @use 'element-plus/theme-chalk/src/button.scss' as *;
@@ -1,10 +0,0 @@
1
- export type AppButtonVariant = 'primary' | 'secondary' | 'ghost'
2
-
3
- export type AppButtonSize = 'sm' | 'md' | 'lg'
4
-
5
- export interface AppButtonProps {
6
- disabled?: boolean
7
- label?: string
8
- size?: AppButtonSize
9
- variant?: AppButtonVariant
10
- }
@@ -1,65 +0,0 @@
1
- <script setup lang="ts">
2
- import { computed } from 'vue'
3
-
4
- import { ElButton } from 'element-plus'
5
-
6
- import './AppButton.element.scss'
7
- import type { AppButtonProps } from './AppButton.types'
8
-
9
- const props = withDefaults(defineProps<AppButtonProps>(), {
10
- disabled: false,
11
- label: 'Button',
12
- size: 'md',
13
- variant: 'primary'
14
- })
15
-
16
- const buttonType = computed(() => {
17
- if (props.variant === 'primary') {
18
- return 'primary'
19
- }
20
-
21
- return 'default'
22
- })
23
-
24
- const buttonSize = computed(() => {
25
- if (props.size === 'sm') {
26
- return 'small'
27
- }
28
-
29
- if (props.size === 'lg') {
30
- return 'large'
31
- }
32
-
33
- return 'default'
34
- })
35
-
36
- const isPlain = computed(() => props.variant === 'secondary')
37
- const isText = computed(() => props.variant === 'ghost')
38
- </script>
39
-
40
- <template>
41
- <ElButton
42
- :disabled="props.disabled"
43
- :plain="isPlain"
44
- :size="buttonSize"
45
- :text="isText"
46
- :type="buttonType"
47
- >
48
- <slot>{{ props.label }}</slot>
49
- </ElButton>
50
- </template>
51
-
52
- <style scoped>
53
- :deep(.el-button) {
54
- font-weight: 600;
55
- box-shadow: 0 10px 24px rgba(23, 32, 51, 0.12);
56
- }
57
-
58
- :deep(.el-button.is-text) {
59
- padding-inline: 0.25rem;
60
- }
61
-
62
- :global(html.dark) :deep(.el-button:not(.is-text)) {
63
- box-shadow: 0 12px 30px rgba(0, 0, 0, 0.28);
64
- }
65
- </style>
@@ -1,6 +0,0 @@
1
- import AppButton from './AppButton.vue'
2
-
3
- export default AppButton
4
- export { AppButton }
5
-
6
- export type { AppButtonProps, AppButtonSize, AppButtonVariant } from './AppButton.types'
@@ -1,5 +0,0 @@
1
- export interface AppCardProps {
2
- eyebrow?: string
3
- title: string
4
- body?: string
5
- }
@@ -1,58 +0,0 @@
1
- <script setup lang="ts">
2
- import type { AppCardProps } from './AppCard.types'
3
-
4
- const props = withDefaults(defineProps<AppCardProps>(), {
5
- eyebrow: 'Featured',
6
- body: ''
7
- })
8
- </script>
9
-
10
- <template>
11
- <article class="app-card">
12
- <p v-if="props.eyebrow" class="app-card__eyebrow">{{ props.eyebrow }}</p>
13
- <h2 class="app-card__title">{{ props.title }}</h2>
14
- <p v-if="props.body" class="app-card__body">{{ props.body }}</p>
15
- <div v-if="$slots.default" class="app-card__content">
16
- <slot />
17
- </div>
18
- </article>
19
- </template>
20
-
21
- <style scoped>
22
- .app-card {
23
- display: grid;
24
- gap: 0.75rem;
25
- padding: 1.25rem;
26
- background: #ffffff;
27
- border: 1px solid #e5e7eb;
28
- border-radius: 1rem;
29
- box-shadow: 0 14px 30px rgba(17, 24, 39, 0.08);
30
- color: #111827;
31
- }
32
-
33
- .app-card__eyebrow {
34
- margin: 0;
35
- font-size: 0.8rem;
36
- font-weight: 700;
37
- letter-spacing: 0.08em;
38
- text-transform: uppercase;
39
- color: #2563eb;
40
- }
41
-
42
- .app-card__title {
43
- margin: 0;
44
- font-size: 1.125rem;
45
- line-height: 1.3;
46
- }
47
-
48
- .app-card__body {
49
- margin: 0;
50
- line-height: 1.6;
51
- color: #4b5563;
52
- }
53
-
54
- .app-card__content {
55
- display: grid;
56
- gap: 0.75rem;
57
- }
58
- </style>
@@ -1,6 +0,0 @@
1
- import AppCard from './AppCard.vue'
2
-
3
- export default AppCard
4
- export { AppCard }
5
-
6
- export type { AppCardProps } from './AppCard.types'