@saasmakers/ui 0.1.57 → 0.1.59

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 (40) hide show
  1. package/app/app.config.ts +1 -0
  2. package/app/components/bases/BaseChart.vue +1 -1
  3. package/app/components/bases/BaseEmoji.vue +66 -0
  4. package/app/components/bases/BasePower.vue +53 -0
  5. package/app/types/bases.d.ts +50 -0
  6. package/app/types/global.d.ts +1 -0
  7. package/package.json +2 -1
  8. package/public/images/bases/BasePower/power-401.svg +271 -0
  9. package/public/images/bases/BasePower/power-404.svg +227 -0
  10. package/public/images/bases/BasePower/power-500.svg +227 -0
  11. package/public/images/bases/BasePower/power-angry.svg +66 -0
  12. package/public/images/bases/BasePower/power-bag.svg +98 -0
  13. package/public/images/bases/BasePower/power-bank.svg +508 -0
  14. package/public/images/bases/BasePower/power-book.svg +162 -0
  15. package/public/images/bases/BasePower/power-browser.svg +141 -0
  16. package/public/images/bases/BasePower/power-chair.svg +184 -0
  17. package/public/images/bases/BasePower/power-christmas.svg +678 -0
  18. package/public/images/bases/BasePower/power-city-bis.svg +1076 -0
  19. package/public/images/bases/BasePower/power-city.svg +1052 -0
  20. package/public/images/bases/BasePower/power-coffee.svg +123 -0
  21. package/public/images/bases/BasePower/power-computer-book.svg +264 -0
  22. package/public/images/bases/BasePower/power-computer-coffee.svg +263 -0
  23. package/public/images/bases/BasePower/power-dead.svg +68 -0
  24. package/public/images/bases/BasePower/power-easter.svg +473 -0
  25. package/public/images/bases/BasePower/power-hourglass.svg +362 -0
  26. package/public/images/bases/BasePower/power-invite.svg +226 -0
  27. package/public/images/bases/BasePower/power-ko.svg +66 -0
  28. package/public/images/bases/BasePower/power-love.svg +66 -0
  29. package/public/images/bases/BasePower/power-magic.svg +340 -0
  30. package/public/images/bases/BasePower/power-popcorn.svg +235 -0
  31. package/public/images/bases/BasePower/power-radar.svg +1 -0
  32. package/public/images/bases/BasePower/power-rocket.svg +615 -0
  33. package/public/images/bases/BasePower/power-smiling.svg +66 -0
  34. package/public/images/bases/BasePower/power-social-networks.svg +1 -0
  35. package/public/images/bases/BasePower/power-starwars.svg +607 -0
  36. package/public/images/bases/BasePower/power-teach.svg +148 -0
  37. package/public/images/bases/BasePower/power-typewriter.svg +358 -0
  38. package/public/images/bases/BasePower/power-website.svg +114 -0
  39. package/public/images/bases/BasePower/power-welcome.svg +525 -0
  40. package/public/images/bases/BasePower/power-writer.svg +199 -0
@@ -0,0 +1 @@
1
+ export default defineAppConfig({ urls: { storage: 'https://resilienceclub.s3.fr-par.scw.cloud' } })
@@ -1,5 +1,5 @@
1
1
  <script lang="ts" setup>
2
- import type { BaseChart } from '@/types/bases'
2
+ import type { BaseChart } from '../../types/bases'
3
3
  import { BarChart, LineChart, PieChart } from 'chartist'
4
4
 
5
5
  const props = withDefaults(defineProps<BaseChart>(), {
@@ -0,0 +1,66 @@
1
+ <script lang="ts" setup>
2
+ import type { BaseEmoji } from '../../types/bases'
3
+
4
+ const props = withDefaults(defineProps<BaseEmoji>(), {
5
+ clickable: true,
6
+ emoji: undefined,
7
+ hasBox: false,
8
+ size: 'base',
9
+ })
10
+
11
+ const emit = defineEmits<{
12
+ click: [event: MouseEvent, emoji?: string]
13
+ }>()
14
+
15
+ const { urls } = useAppConfig()
16
+
17
+ function onClick(event: MouseEvent) {
18
+ emit('click', event, props.emoji)
19
+ }
20
+ </script>
21
+
22
+ <template>
23
+ <span
24
+ class="flex items-center justify-center transition"
25
+ :class="{
26
+ 'border border-gray-200 dark:border-gray-800 bg-gray-100 dark:bg-gray-900 shadow-inner': hasBox,
27
+ 'cursor-pointer hover:border-gray-400 dark:hover:border-gray-600': clickable,
28
+
29
+ 'rounded': ['xs'].includes(size) && hasBox,
30
+ 'rounded-md': ['sm', 'base'].includes(size) && hasBox,
31
+ 'rounded-lg': ['lg', 'xl'].includes(size) && hasBox,
32
+
33
+ 'h-2 w-2': size === '3xs' && hasBox,
34
+ 'h-4 w-4': size === '2xs' && hasBox,
35
+ 'h-5 w-5': size === 'xs' && hasBox,
36
+ 'h-6 w-6': size === 'sm' && hasBox,
37
+ 'h-8.5 w-8.5': size === 'base' && hasBox,
38
+ 'h-10 w-10': size === 'lg' && hasBox,
39
+ 'h-12 w-12': size === 'xl' && hasBox,
40
+ 'h-14 w-14': size === '2xl' && hasBox,
41
+ 'h-16 w-16': size === '3xl' && hasBox,
42
+ 'h-18 w-18': size === '4xl' && hasBox,
43
+ }"
44
+ @click="onClick"
45
+ >
46
+ <img
47
+ v-if="emoji"
48
+ class="flex"
49
+ :class="{
50
+ 'h-2.5 w-2.5': size === '3xs',
51
+ 'h-3 w-3': size === '2xs',
52
+ 'h-3.5 w-3.5': size === 'xs',
53
+ 'h-4 w-4': size === 'sm',
54
+ 'h-5 w-5': size === 'base',
55
+ 'h-5.5 w-5.5': size === 'lg',
56
+ 'h-6 w-6': size === 'xl',
57
+ 'h-8 w-8': size === '2xl',
58
+ 'h-10 w-10': size === '3xl',
59
+ 'h-12 w-12': size === '4xl',
60
+ }"
61
+ loading="lazy"
62
+ :src="`${urls.storage}/images/emojis/${emoji}.svg`"
63
+ @click.stop="onClick"
64
+ >
65
+ </span>
66
+ </template>
@@ -0,0 +1,53 @@
1
+ <script lang="ts" setup>
2
+ import type { BasePower } from '../../types/bases'
3
+ // import lottie from 'lottie-web'
4
+
5
+ const props = withDefaults(defineProps<BasePower>(), {
6
+ animated: false,
7
+ power: 'welcome',
8
+ size: 'base',
9
+ })
10
+
11
+ const animationLoaded = ref(false)
12
+ const animationPlaceholder = ref<HTMLElement>()
13
+
14
+ onMounted(() => {
15
+ if (props.animated && ['radar'].includes(props.power) && animationPlaceholder.value) {
16
+ // lottie.loadAnimation({
17
+ // autoplay: true,
18
+ // container: animationPlaceholder.value,
19
+ // loop: true,
20
+ // path: `/animations/bases/BasePower/power-${props.power}.json`,
21
+ // renderer: 'svg',
22
+ // })
23
+
24
+ // setTimeout(() => (animationLoaded.value = true), 1 * 1000)
25
+ }
26
+ })
27
+ </script>
28
+
29
+ <template>
30
+ <div
31
+ class="pointer-events-none select-none"
32
+ :class="{
33
+ 'h-12 sm:h-16': size === 'xs',
34
+ 'h-16 sm:h-20': size === 'sm',
35
+ 'h-20 sm:h-24': size === 'base',
36
+ 'h-24 sm:h-32': size === 'lg',
37
+ }"
38
+ >
39
+ <img
40
+ v-show="!animationLoaded"
41
+ :alt="power"
42
+ class="h-full w-full"
43
+ loading="lazy"
44
+ :src="`/images/bases/BasePower/power-${power}.svg`"
45
+ >
46
+
47
+ <div
48
+ v-show="animationLoaded"
49
+ ref="animationPlaceholder"
50
+ class="h-full w-full"
51
+ />
52
+ </div>
53
+ </template>
@@ -111,6 +111,13 @@ export type BaseDividerBorderStyle = 'dashed' | 'dotted' | 'solid'
111
111
 
112
112
  export type BaseDividerSize = 'base' | 'sm'
113
113
 
114
+ export interface BaseEmoji {
115
+ clickable?: boolean
116
+ emoji?: string
117
+ hasBox?: boolean
118
+ size?: BaseSize
119
+ }
120
+
114
121
  export interface BaseHeading {
115
122
  alignment?: BaseHeadingAlignment
116
123
  size?: BaseHeadingSize
@@ -184,6 +191,49 @@ export type BaseParagraphAlignment = 'center' | 'left' | 'right'
184
191
 
185
192
  export type BaseParagraphSize = 'base' | 'lg' | 'sm'
186
193
 
194
+ export interface BasePower {
195
+ animated?: boolean
196
+ power?: BasePowerPower
197
+ size?: BasePowerSize
198
+ }
199
+
200
+ export type BasePowerPower
201
+ = | '401'
202
+ | '404'
203
+ | '500'
204
+ | 'angry'
205
+ | 'bag'
206
+ | 'bank'
207
+ | 'book'
208
+ | 'browser'
209
+ | 'chair'
210
+ | 'christmas'
211
+ | 'city'
212
+ | 'city-bis'
213
+ | 'coffee'
214
+ | 'computer-book'
215
+ | 'computer-coffee'
216
+ | 'dead'
217
+ | 'easter'
218
+ | 'hourglass'
219
+ | 'invite'
220
+ | 'ko'
221
+ | 'love'
222
+ | 'magic'
223
+ | 'popcorn'
224
+ | 'radar'
225
+ | 'rocket'
226
+ | 'smiling'
227
+ | 'social-networks'
228
+ | 'starwars'
229
+ | 'teach'
230
+ | 'typewriter'
231
+ | 'website'
232
+ | 'welcome'
233
+ | 'writer'
234
+
235
+ export type BasePowerSize = 'base' | 'lg' | 'sm' | 'xs'
236
+
187
237
  export interface BaseQuote {
188
238
  background?: BaseQuoteBackground
189
239
  character?: BaseCharacterCharacter
@@ -27,6 +27,7 @@ declare global {
27
27
  type BaseDivider = Bases.BaseDivider
28
28
  type BaseDividerBorderStyle = Bases.BaseDividerBorderStyle
29
29
  type BaseDividerSize = Bases.BaseDividerSize
30
+ type BaseEmoji = Bases.BaseEmoji
30
31
  type BaseHeading = Bases.BaseHeading
31
32
  type BaseHeadingAlignment = Bases.BaseHeadingAlignment
32
33
  type BaseHeadingSize = Bases.BaseHeadingSize
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@saasmakers/ui",
3
3
  "type": "module",
4
- "version": "0.1.57",
4
+ "version": "0.1.59",
5
5
  "private": false,
6
6
  "description": "Reusable Nuxt UI components for SaaS Makers projects",
7
7
  "license": "MIT",
@@ -43,6 +43,7 @@
43
43
  "@unocss/reset": "66.5.10",
44
44
  "chartist": "1.5.0",
45
45
  "floating-vue": "5.2.2",
46
+ "lottie-web": "5.13.0",
46
47
  "motion-v": "1.7.4",
47
48
  "numbro": "2.5.0",
48
49
  "snarkdown": "2.0.0",