@bobbykim/mcl-cards 0.2.0 → 0.4.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.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,30 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [0.4.0](https://github.com/bobbykim89/manguito-component-library/compare/@bobbykim/mcl-cards@0.3.0...@bobbykim/mcl-cards@0.4.0) (2024-03-21)
7
+
8
+
9
+ ### Features
10
+
11
+ * code refactor ([8a025e7](https://github.com/bobbykim89/manguito-component-library/commit/8a025e7cf870ff3dd0cb35878a08793e99ec5cef))
12
+ * **mcl-header:** move deprecated items to deprecated folder in root dir, update configs, init mcl-header-b component ([19aa842](https://github.com/bobbykim89/manguito-component-library/commit/19aa842faa7f1594f7be030b97d5093014efe7cb))
13
+ * tsconfig update, slots and emits update ([c30ff80](https://github.com/bobbykim89/manguito-component-library/commit/c30ff804c961d205ac097e20cd51285a15ca8966))
14
+
15
+
16
+
17
+
18
+
19
+ # [0.3.0](https://github.com/bobbykim89/manguito-component-library/compare/@bobbykim/mcl-cards@0.2.0...@bobbykim/mcl-cards@0.3.0) (2024-02-27)
20
+
21
+
22
+ ### Features
23
+
24
+ * **/components/**/README.md,/deprecated:** update readme files, move deprecated packages to deprecated folder ([c0f8f7d](https://github.com/bobbykim89/manguito-component-library/commit/c0f8f7df158b8fcd99b4e3d191e02e3c8a9c144d))
25
+
26
+
27
+
28
+
29
+
6
30
  # 0.2.0 (2024-02-27)
7
31
 
8
32
 
package/README.md CHANGED
@@ -1,16 +1,45 @@
1
1
  # @bobbykim/mcl-cards
2
2
 
3
- Add description
4
-
5
3
  ## Demo
6
4
 
7
- [MCL Histoire Page](https://manguito-component-library.vercel.app/story/{%story-link%})
5
+ [MCL Storybook Page](https://manguito-component-library.vercel.app/)
6
+
7
+ - [MCL Card A](https://manguito-component-library.vercel.app/?path=/docs/components-cards-mclcarda--mclcarda)
8
+
9
+ - [MCL Card B](https://manguito-component-library.vercel.app/?path=/docs/components-cards-mclcardb--mclcardb)
10
+
11
+ - [MCL Card C](https://manguito-component-library.vercel.app/?path=/docs/components-cards-mclcardc--mclcardc)
12
+
13
+ - [MCL Card D](https://manguito-component-library.vercel.app/?path=/docs/components-cards-mclcardd--mclcardd)
8
14
 
9
15
  ## Install
10
16
 
17
+ ```sh
18
+ npm i @bobbykim/mcl-cards
19
+ ```
20
+
11
21
  ## Usage
12
22
 
13
- `import MclCards from "@bobbykim/mcl-cards"`;
23
+ `import { MclCardA, MclCardB, MclCardC, MclCardD } from "@bobbykim/mcl-cards"`;
24
+
25
+ ```vue
26
+ <script setup lang="ts">
27
+ ...
28
+ import { MclCardA, MclCardB, MclCardC, MclCardD } from '@bobbykim/card-alpha'
29
+ ...
30
+ </script>
31
+
32
+ <template>
33
+ <mcl-card-a></mcl-card-a>
34
+ <mcl-card-b></mcl-card-b>
35
+ <mcl-card-c></mcl-card-c>
36
+ <mcl-card-d></mcl-card-d>
37
+ </template>
38
+ ```
39
+
40
+ ## Dependencies
41
+
42
+ - @bobbykim/manguito-theme
14
43
 
15
44
  ## Maintainer
16
45
 
@@ -1,6 +1,5 @@
1
1
  import type { CtaTarget } from '@bobbykim/manguito-theme';
2
2
  export interface CardClickEvent {
3
- event: Event;
4
3
  title: string;
5
4
  url: string;
6
5
  target?: CtaTarget;
@@ -1,7 +1,6 @@
1
1
  import type { CtaTarget } from '@bobbykim/manguito-theme'
2
2
 
3
3
  export interface CardClickEvent {
4
- event: Event
5
4
  title: string
6
5
  url: string
7
6
  target?: CtaTarget
@@ -60,7 +60,13 @@ const props = withDefaults(
60
60
  }
61
61
  )
62
62
 
63
- const emit = defineEmits(['card-click', 'card-btn-click'])
63
+ const slots = defineSlots<{
64
+ default: any
65
+ }>()
66
+ const emit = defineEmits<{
67
+ (e: 'card-click', event: Event, item: CardClickEvent): void
68
+ (e: 'card-btn-click', event: Event, item: CardClickEvent): void
69
+ }>()
64
70
 
65
71
  const getBorderClass = (
66
72
  border: ColorPalette,
@@ -150,37 +156,24 @@ const getCtaClass = (color: ColorPalette, round: boolean): string => {
150
156
 
151
157
  return classArray.join(' ')
152
158
  }
153
- const handleButtonClick = (
154
- e: Event,
155
- title: string,
156
- link: string,
157
- target: CtaTarget = '_self',
158
- btnLink: boolean
159
- ): void => {
160
- /**
161
- * @title - title
162
- * @link - ctaLink
163
- * @target - ctaTarget
164
- * @btnLink - ctaAsLink
165
- */
159
+ const handleButtonClick = (e: Event): void => {
160
+ const { title, ctaLink, ctaTarget, ctaAsLink } = props
166
161
  const cardEvent: CardClickEvent = {
167
- event: e,
168
162
  title,
169
- url: link,
170
- target: target ? target : '_self',
163
+ url: ctaLink,
164
+ target: ctaTarget ? ctaTarget : '_self',
171
165
  }
172
- !btnLink && e.preventDefault()
173
- emit('card-btn-click', cardEvent)
166
+ !ctaAsLink && e.preventDefault()
167
+ emit('card-btn-click', e, cardEvent)
174
168
  }
175
169
  const handleCardClick = (e: Event): void => {
176
170
  const { title, ctaLink, ctaTarget } = props
177
171
  const cardEvent: CardClickEvent = {
178
- event: e,
179
172
  title,
180
173
  url: ctaLink,
181
174
  target: ctaTarget ? ctaTarget : '_self',
182
175
  }
183
- emit('card-click', cardEvent)
176
+ emit('card-click', e, cardEvent)
184
177
  }
185
178
  </script>
186
179
 
@@ -242,9 +235,7 @@ const handleCardClick = (e: Event): void => {
242
235
  :target="ctaTarget"
243
236
  class="btn btn-full"
244
237
  :class="getCtaClass(ctaColor, rounded)"
245
- @click="
246
- handleButtonClick($event, title, ctaLink, ctaTarget, ctaAsLink)
247
- "
238
+ @click="handleButtonClick($event)"
248
239
  >{{ ctaText }}</a
249
240
  >
250
241
  </div>
@@ -1,4 +1,5 @@
1
1
  import type { ColorPalette, CrossOrigin, CtaTarget, HeadingSize } from '@bobbykim/manguito-theme';
2
+ import type { CardClickEvent } from '../common/index.types';
2
3
  declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
3
4
  title: string;
4
5
  titleSize?: HeadingSize | undefined;
@@ -47,8 +48,8 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
47
48
  rounded: boolean;
48
49
  displayShadow: boolean;
49
50
  }>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
50
- "card-click": (...args: any[]) => void;
51
- "card-btn-click": (...args: any[]) => void;
51
+ "card-click": (event: Event, item: CardClickEvent) => void;
52
+ "card-btn-click": (event: Event, item: CardClickEvent) => void;
52
53
  }, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
53
54
  title: string;
54
55
  titleSize?: HeadingSize | undefined;
@@ -97,13 +98,13 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
97
98
  rounded: boolean;
98
99
  displayShadow: boolean;
99
100
  }>>> & {
100
- "onCard-click"?: ((...args: any[]) => any) | undefined;
101
- "onCard-btn-click"?: ((...args: any[]) => any) | undefined;
101
+ "onCard-click"?: ((event: Event, item: CardClickEvent) => any) | undefined;
102
+ "onCard-btn-click"?: ((event: Event, item: CardClickEvent) => any) | undefined;
102
103
  }, {
104
+ bgColor: ColorPalette;
103
105
  titleColor: ColorPalette;
104
106
  titleSize: HeadingSize;
105
107
  borderColor: ColorPalette;
106
- bgColor: ColorPalette;
107
108
  displayImage: boolean;
108
109
  imageCors: CrossOrigin;
109
110
  displayCta: boolean;
@@ -121,9 +122,9 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
121
122
  highlightColor: ColorPalette;
122
123
  rounded: boolean;
123
124
  displayShadow: boolean;
124
- }, {}>, {
125
- default?(_: {}): any;
126
- }>;
125
+ }, {}>, Readonly<{
126
+ default: any;
127
+ }>>;
127
128
  export default _default;
128
129
  type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
129
130
  type __VLS_TypePropsToRuntimeProps<T> = {
@@ -8,7 +8,7 @@ import type {
8
8
  import generateClass from '@bobbykim/manguito-theme'
9
9
  import type { CardClickEvent } from '../common/index.types'
10
10
 
11
- withDefaults(
11
+ const props = withDefaults(
12
12
  defineProps<{
13
13
  title: string
14
14
  titleSize?: HeadingSize
@@ -38,7 +38,12 @@ withDefaults(
38
38
  }
39
39
  )
40
40
 
41
- const emit = defineEmits(['card-click'])
41
+ const slots = defineSlots<{
42
+ default: any
43
+ }>()
44
+ const emit = defineEmits<{
45
+ (e: 'card-click', event: Event, item: CardClickEvent): void
46
+ }>()
42
47
 
43
48
  const getBorderClass = (bColor: ColorPalette, rounded: boolean): string => {
44
49
  /**
@@ -85,29 +90,19 @@ const handleTitleClass = (
85
90
  return classArray.join(' ')
86
91
  }
87
92
 
88
- const handleCardClick = (
89
- e: Event,
90
- title: string,
91
- link: string,
92
- target: CtaTarget = '_self',
93
- ctaLink: boolean
94
- ): void => {
93
+ const handleCardClick = (e: Event): void => {
95
94
  /**
96
95
  * @e - Event
97
- * @title - title
98
- * @link - ctaLink
99
- * @target - ctaTarget
100
- * @ctaLink - ctaAsLink
101
96
  */
102
- !ctaLink && e.preventDefault()
97
+ const { title, ctaLink, ctaTarget, ctaAsLink } = props
98
+ !ctaAsLink && e.preventDefault()
103
99
  const cardEvent: CardClickEvent = {
104
- event: e,
105
100
  title,
106
- url: link,
107
- target: target ? target : '_self',
101
+ url: ctaLink,
102
+ target: ctaTarget ? ctaTarget : '_self',
108
103
  }
109
104
  console.log(cardEvent)
110
- emit('card-click', cardEvent)
105
+ emit('card-click', e, cardEvent)
111
106
  }
112
107
  </script>
113
108
 
@@ -116,11 +111,7 @@ const handleCardClick = (
116
111
  class="relative max-w-[450px] sm:max-w-[350px] w-full xs:w-auto flex-grow flex-shrink-0 cursor-pointer overflow-hidden border border-light-3"
117
112
  :class="getBorderClass(borderColor, rounded)"
118
113
  >
119
- <a
120
- :href="ctaLink"
121
- :target="ctaTarget"
122
- @click="handleCardClick($event, title, ctaLink, ctaTarget, ctaAsLink)"
123
- >
114
+ <a :href="ctaLink" :target="ctaTarget" @click="handleCardClick($event)">
124
115
  <div
125
116
  class="absolute z-[15] flex flex-col justify-end items-start inset-0 p-xs [@media(hover:hover)]:opacity-0 hover:opacity-100 peer transition-opacity duration-200"
126
117
  >
@@ -141,5 +132,3 @@ const handleCardClick = (
141
132
  </a>
142
133
  </div>
143
134
  </template>
144
-
145
- <style lang="scss" scoped></style>
@@ -1,4 +1,5 @@
1
1
  import type { ColorPalette, CrossOrigin, CtaTarget, HeadingSize } from '@bobbykim/manguito-theme';
2
+ import type { CardClickEvent } from '../common/index.types';
2
3
  declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
3
4
  title: string;
4
5
  titleSize?: HeadingSize | undefined;
@@ -25,7 +26,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
25
26
  ctaTarget: string;
26
27
  rounded: boolean;
27
28
  }>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
28
- "card-click": (...args: any[]) => void;
29
+ "card-click": (event: Event, item: CardClickEvent) => void;
29
30
  }, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
30
31
  title: string;
31
32
  titleSize?: HeadingSize | undefined;
@@ -52,7 +53,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
52
53
  ctaTarget: string;
53
54
  rounded: boolean;
54
55
  }>>> & {
55
- "onCard-click"?: ((...args: any[]) => any) | undefined;
56
+ "onCard-click"?: ((event: Event, item: CardClickEvent) => any) | undefined;
56
57
  }, {
57
58
  titleColor: ColorPalette;
58
59
  titleSize: HeadingSize;
@@ -64,9 +65,9 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
64
65
  rounded: boolean;
65
66
  titleBlockColor: ColorPalette;
66
67
  displayGrayScale: boolean;
67
- }, {}>, {
68
- default?(_: {}): any;
69
- }>;
68
+ }, {}>, Readonly<{
69
+ default: any;
70
+ }>>;
70
71
  export default _default;
71
72
  type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
72
73
  type __VLS_TypePropsToRuntimeProps<T> = {
@@ -1,12 +1,12 @@
1
1
  <script setup lang="ts">
2
- import { ref, computed } from 'vue'
3
- import generateClass from '@bobbykim/manguito-theme'
4
2
  import type {
5
3
  ColorPalette,
6
4
  CrossOrigin,
7
5
  HeadingSize,
8
6
  OpacityRange,
9
7
  } from '@bobbykim/manguito-theme'
8
+ import generateClass from '@bobbykim/manguito-theme'
9
+ import { computed, ref } from 'vue'
10
10
 
11
11
  const props = withDefaults(
12
12
  defineProps<{
@@ -34,8 +34,13 @@ const props = withDefaults(
34
34
  }
35
35
  )
36
36
 
37
+ const slots = defineSlots<{
38
+ 'card-body': any
39
+ }>()
37
40
  const cardFlipped = ref<boolean>(false)
38
- const emit = defineEmits(['card-click'])
41
+ const emit = defineEmits<{
42
+ (e: 'card-click', event: Event): void
43
+ }>()
39
44
 
40
45
  const cardClass = computed(() => {
41
46
  const classArray: string[] = [generateClass('BGCOLOR', props.cardColor)]
@@ -21,7 +21,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
21
21
  cardColor: string;
22
22
  imageCors: string;
23
23
  }>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
24
- "card-click": (...args: any[]) => void;
24
+ "card-click": (event: Event) => void;
25
25
  }, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
26
26
  imageSource: string;
27
27
  imageAlt?: string | undefined;
@@ -44,7 +44,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
44
44
  cardColor: string;
45
45
  imageCors: string;
46
46
  }>>> & {
47
- "onCard-click"?: ((...args: any[]) => any) | undefined;
47
+ "onCard-click"?: ((event: Event) => any) | undefined;
48
48
  }, {
49
49
  titleColor: ColorPalette;
50
50
  titleSize: HeadingSize;
@@ -54,9 +54,9 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
54
54
  highlightOpacity: OpacityRange;
55
55
  displayTitle: boolean;
56
56
  cardColor: ColorPalette;
57
- }, {}>, {
58
- "card-body"?(_: {}): any;
59
- }>;
57
+ }, {}>, Readonly<{
58
+ 'card-body': any;
59
+ }>>;
60
60
  export default _default;
61
61
  type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
62
62
  type __VLS_TypePropsToRuntimeProps<T> = {
@@ -117,7 +117,12 @@ const props = withDefaults(
117
117
  }
118
118
  )
119
119
 
120
- const emit = defineEmits(['card-click'])
120
+ const slots = defineSlots<{
121
+ default: any
122
+ }>()
123
+ const emit = defineEmits<{
124
+ (e: 'card-click', event: Event, item: CardClickEvent): void
125
+ }>()
121
126
 
122
127
  const titleClass = (size: HeadingSize, color: ColorPalette): string => {
123
128
  /**
@@ -187,13 +192,12 @@ const handleCardClick = (e: Event) => {
187
192
 
188
193
  const { title, ctaLink, ctaLinkTarget, ctaAsLink } = props
189
194
  const cardEvent: CardClickEvent = {
190
- event: e,
191
195
  title,
192
196
  url: ctaLink,
193
197
  target: ctaLinkTarget ? ctaLinkTarget : '_self',
194
198
  }
195
199
  !ctaAsLink && e.preventDefault()
196
- emit('card-click', cardEvent)
200
+ emit('card-click', e, cardEvent)
197
201
  }
198
202
  </script>
199
203
 
@@ -1,4 +1,5 @@
1
1
  import type { ColorPalette, CrossOrigin, CtaTarget, HeadingSize } from '@bobbykim/manguito-theme';
2
+ import type { CardClickEvent } from '../common/index.types';
2
3
  import type { ColorMap } from './index.types';
3
4
  declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
4
5
  displayImage?: boolean | undefined;
@@ -43,7 +44,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
43
44
  gradient1: string;
44
45
  gradient2: string;
45
46
  }>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
46
- "card-click": (...args: any[]) => void;
47
+ "card-click": (event: Event, item: CardClickEvent) => void;
47
48
  }, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
48
49
  displayImage?: boolean | undefined;
49
50
  imageSource?: string | undefined;
@@ -87,12 +88,12 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
87
88
  gradient1: string;
88
89
  gradient2: string;
89
90
  }>>> & {
90
- "onCard-click"?: ((...args: any[]) => any) | undefined;
91
+ "onCard-click"?: ((event: Event, item: CardClickEvent) => any) | undefined;
91
92
  }, {
93
+ bgColor: ColorPalette;
92
94
  titleColor: ColorPalette;
93
95
  titleSize: HeadingSize;
94
96
  borderColor: ColorPalette;
95
- bgColor: ColorPalette;
96
97
  displayImage: boolean;
97
98
  imageAlt: string;
98
99
  imageCors: CrossOrigin;
@@ -107,9 +108,9 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
107
108
  borderWidth: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10;
108
109
  gradient1: ColorPalette;
109
110
  gradient2: ColorPalette;
110
- }, {}>, {
111
- default?(_: {}): any;
112
- }>;
111
+ }, {}>, Readonly<{
112
+ default: any;
113
+ }>>;
113
114
  export default _default;
114
115
  type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
115
116
  type __VLS_TypePropsToRuntimeProps<T> = {
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@bobbykim/mcl-cards",
3
- "version": "0.2.0",
3
+ "version": "0.4.0",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "main": "index.ts",
7
7
  "scripts": {
8
- "build": "vue-tsc --project tsconfig.vue.json && tsc"
8
+ "build": "vue-tsc --project tsconfig.vue.json && tsc --project tsconfig.ts.json"
9
9
  },
10
10
  "author": {
11
11
  "name": "Bobby Kim",
@@ -21,7 +21,7 @@
21
21
  },
22
22
  "license": "MIT",
23
23
  "dependencies": {
24
- "@bobbykim/manguito-theme": "^0.14.0"
24
+ "@bobbykim/manguito-theme": "^0.16.0"
25
25
  },
26
- "gitHead": "4d94a8d34988d926c8d465891fd7aa535cffdf33"
26
+ "gitHead": "5b81953e5108fd166c0b89ebc6a24e6de9499635"
27
27
  }
package/tsconfig.json CHANGED
@@ -1,9 +1,5 @@
1
1
  {
2
- "extends": "../../../tsconfig.json",
3
- "include": ["./**/*.ts"],
4
- "exclude": ["node_modules", "./**/*.vue.d.ts", "./**/*.vue"],
5
- "compilerOptions": {
6
- "skipLibCheck": true,
7
- "declaration": true
8
- }
2
+ "extends": "../../../tsconfig.json",
3
+ "include": ["./**/*.ts", "./**/*.vue"],
4
+ "exclude": ["node_modules", "./**/*.vue.d.ts"]
9
5
  }
@@ -0,0 +1,9 @@
1
+ {
2
+ "extends": "../../../tsconfig.json",
3
+ "include": ["./**/*.ts"],
4
+ "exclude": ["node_modules", "./**/*.vue.d.ts", "./**/*.vue"],
5
+ "compilerOptions": {
6
+ "skipLibCheck": true,
7
+ "declaration": true
8
+ }
9
+ }