negodesign 0.0.75 → 0.0.77
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/dist/components/pages/security/auth/PageAuth01.svelte +65 -0
- package/dist/components/pages/security/auth/PageAuth01.svelte.d.ts +17 -0
- package/dist/components/pages/security/auth/PageAuth02.svelte +45 -0
- package/dist/components/pages/security/auth/PageAuth02.svelte.d.ts +17 -0
- package/dist/components/pages/security/auth/PageAuth03.svelte +45 -0
- package/dist/components/pages/security/auth/PageAuth03.svelte.d.ts +17 -0
- package/dist/components/pages/security/login/01/ui/PageLogin01.svelte +15 -40
- package/dist/components/pages/security/login/02/ui/PageLogin02.svelte +15 -20
- package/dist/components/pages/security/login/03/ui/PageLogin03.svelte +15 -20
- package/dist/components/pages/security/register/01/ui/PageRegister01.svelte +64 -0
- package/dist/components/pages/security/register/01/ui/PageRegister01.svelte.d.ts +3 -0
- package/dist/components/pages/security/register/01/ui/RegisterCard.svelte +100 -0
- package/dist/components/pages/security/register/01/ui/RegisterCard.svelte.d.ts +12 -0
- package/dist/components/pages/security/register/02/ui/PageRegister02.svelte +76 -0
- package/dist/components/pages/security/register/02/ui/PageRegister02.svelte.d.ts +4 -0
- package/dist/components/pages/security/register/02/ui/RegisterCard02.svelte +98 -0
- package/dist/components/pages/security/register/02/ui/RegisterCard02.svelte.d.ts +12 -0
- package/dist/components/pages/security/register/03/ui/PageRegister03.svelte +76 -0
- package/dist/components/pages/security/register/03/ui/PageRegister03.svelte.d.ts +4 -0
- package/dist/components/pages/security/register/03/ui/RegisterCard03.svelte +103 -0
- package/dist/components/pages/security/register/03/ui/RegisterCard03.svelte.d.ts +12 -0
- package/dist/components/pages/security/register/FormRegister.svelte +120 -0
- package/dist/components/pages/security/register/FormRegister.svelte.d.ts +8 -0
- package/dist/components/pages/security/register/PageRegister.svelte +30 -0
- package/dist/components/pages/security/register/PageRegister.svelte.d.ts +8 -0
- package/dist/components/pages/security/register/types.d.ts +51 -0
- package/dist/components/pages/security/register/types.js +1 -0
- package/dist/components/ui/modal/core/types.d.ts +3 -1
- package/dist/components/ui/modal/core/ui/ModalCore.svelte +132 -129
- package/dist/components/ui/modal/grid/ui/02/ModalGridSelection02.svelte +146 -142
- package/dist/components/ui/modal/share/types.d.ts +16 -1
- package/dist/components/ui/modal/share/ui/ModalShareSelection.svelte +156 -103
- package/dist/docs/DocsSidebar.svelte +58 -1
- package/dist/docs/components.js +94 -8
- package/dist/globals.css +18 -101
- package/dist/i18n/langs/en.d.ts +17 -0
- package/dist/i18n/langs/en.js +17 -0
- package/dist/i18n/langs/pt.d.ts +17 -0
- package/dist/i18n/langs/pt.js +17 -0
- package/dist/i18n/translations.d.ts +34 -0
- package/dist/index.d.ts +17 -1
- package/dist/index.js +17 -1
- package/dist/types/index.d.ts +7 -0
- package/package.json +1 -1
|
@@ -1,129 +1,132 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import { cn } from "../../../../../utils";
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
{
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
{/if}
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { cn } from "../../../../../utils";
|
|
3
|
+
import {
|
|
4
|
+
ArrowLeft01Icon,
|
|
5
|
+
ArrowRight01Icon,
|
|
6
|
+
} from "@hugeicons/core-free-icons";
|
|
7
|
+
import { HugeiconsIcon } from "@hugeicons/svelte";
|
|
8
|
+
import type { ModalCoreProps } from "../types";
|
|
9
|
+
|
|
10
|
+
let {
|
|
11
|
+
isOpen = $bindable(false),
|
|
12
|
+
title,
|
|
13
|
+
subtitle,
|
|
14
|
+
totalSteps = 1,
|
|
15
|
+
currentStep = 1,
|
|
16
|
+
showProgress = true,
|
|
17
|
+
showBack = true,
|
|
18
|
+
showSkip = false,
|
|
19
|
+
skipText = "Skip This Step",
|
|
20
|
+
continueText = "Continue",
|
|
21
|
+
backText = "Back",
|
|
22
|
+
onBack,
|
|
23
|
+
onContinue,
|
|
24
|
+
onSkip,
|
|
25
|
+
onClose,
|
|
26
|
+
content,
|
|
27
|
+
footer,
|
|
28
|
+
class: className,
|
|
29
|
+
}: ModalCoreProps = $props();
|
|
30
|
+
|
|
31
|
+
function handleClose() {
|
|
32
|
+
isOpen = false;
|
|
33
|
+
onClose?.();
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
const progressPercent = $derived(
|
|
37
|
+
totalSteps > 0 ? (currentStep / totalSteps) * 100 : 0,
|
|
38
|
+
);
|
|
39
|
+
</script>
|
|
40
|
+
|
|
41
|
+
{#if isOpen}
|
|
42
|
+
<div class="fixed inset-0 z-50 flex items-center justify-center">
|
|
43
|
+
<!-- svelte-ignore a11y_no_static_element_interactions -->
|
|
44
|
+
<div
|
|
45
|
+
class="absolute inset-0 bg-black/50 backdrop-blur-sm"
|
|
46
|
+
onclick={handleClose}
|
|
47
|
+
onkeydown={(e) => {
|
|
48
|
+
if (e.key === "Escape") handleClose();
|
|
49
|
+
}}
|
|
50
|
+
></div>
|
|
51
|
+
|
|
52
|
+
<div
|
|
53
|
+
class={cn(
|
|
54
|
+
"relative z-10 mx-4 flex max-h-[90vh] w-full max-w-3xl flex-col overflow-hidden rounded-3xl border border-border shadow-lg bg-background",
|
|
55
|
+
"before:absolute before:-inset-px before:z-[-1] before:rounded-3xl",
|
|
56
|
+
"animate-in fade-in zoom-in-95 duration-200",
|
|
57
|
+
className,
|
|
58
|
+
)}
|
|
59
|
+
>
|
|
60
|
+
<!-- Header -->
|
|
61
|
+
<div class="px-8 pt-8">
|
|
62
|
+
<h2 class="text-2xl font-semibold tracking-tight">
|
|
63
|
+
{title}
|
|
64
|
+
</h2>
|
|
65
|
+
{#if subtitle}
|
|
66
|
+
<p class="mt-2 text-sm text-muted-foreground">{subtitle}</p>
|
|
67
|
+
{/if}
|
|
68
|
+
</div>
|
|
69
|
+
|
|
70
|
+
<!-- Content -->
|
|
71
|
+
<div class="flex-1 overflow-y-auto px-8 py-6">
|
|
72
|
+
{#if content}
|
|
73
|
+
{@render content()}
|
|
74
|
+
{/if}
|
|
75
|
+
</div>
|
|
76
|
+
|
|
77
|
+
<!-- Footer -->
|
|
78
|
+
{#if footer}
|
|
79
|
+
<div class="border-t border-border px-8 py-5">
|
|
80
|
+
{@render footer()}
|
|
81
|
+
</div>
|
|
82
|
+
{:else}
|
|
83
|
+
<div class="border-t border-border px-8 py-5">
|
|
84
|
+
{#if showProgress}
|
|
85
|
+
<div class="mb-5 h-1.5 w-full overflow-hidden rounded-full">
|
|
86
|
+
<div
|
|
87
|
+
class="h-full rounded-full transition-all duration-300"
|
|
88
|
+
style="width: {progressPercent}%"
|
|
89
|
+
></div>
|
|
90
|
+
</div>
|
|
91
|
+
{/if}
|
|
92
|
+
|
|
93
|
+
<div class="flex items-center justify-between">
|
|
94
|
+
<div class="flex items-center gap-4">
|
|
95
|
+
{#if showSkip}
|
|
96
|
+
<button
|
|
97
|
+
type="button"
|
|
98
|
+
class="text-sm font-medium text-muted-foreground transition hover:text-foreground"
|
|
99
|
+
onclick={onSkip}
|
|
100
|
+
>
|
|
101
|
+
{skipText}
|
|
102
|
+
</button>
|
|
103
|
+
{/if}
|
|
104
|
+
</div>
|
|
105
|
+
|
|
106
|
+
<div class="flex items-center gap-3">
|
|
107
|
+
{#if showBack && currentStep > 1}
|
|
108
|
+
<button
|
|
109
|
+
type="button"
|
|
110
|
+
class="inline-flex items-center gap-2 rounded-full border border-border px-5 py-2.5 text-sm font-semibold transition"
|
|
111
|
+
onclick={onBack}
|
|
112
|
+
>
|
|
113
|
+
<HugeiconsIcon icon={ArrowLeft01Icon} class="size-4" />
|
|
114
|
+
{backText}
|
|
115
|
+
</button>
|
|
116
|
+
{/if}
|
|
117
|
+
|
|
118
|
+
<button
|
|
119
|
+
type="button"
|
|
120
|
+
class="inline-flex items-center gap-2 rounded-full px-6 py-2.5 text-sm font-semibold bg-primary transition"
|
|
121
|
+
onclick={onContinue}
|
|
122
|
+
>
|
|
123
|
+
{continueText}
|
|
124
|
+
<HugeiconsIcon icon={ArrowRight01Icon} class="size-4" />
|
|
125
|
+
</button>
|
|
126
|
+
</div>
|
|
127
|
+
</div>
|
|
128
|
+
</div>
|
|
129
|
+
{/if}
|
|
130
|
+
</div>
|
|
131
|
+
</div>
|
|
132
|
+
{/if}
|
|
@@ -1,142 +1,146 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import { cn } from "../../../../../../utils";
|
|
3
|
-
import { HugeiconsIcon } from "@hugeicons/svelte";
|
|
4
|
-
import { CheckmarkCircle02Icon } from "@hugeicons/core-free-icons";
|
|
5
|
-
import ModalCore from "../../../core/ui/ModalCore.svelte";
|
|
6
|
-
import type {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
{
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
{
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
{
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
{
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
{
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
</
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { cn } from "../../../../../../utils";
|
|
3
|
+
import { HugeiconsIcon } from "@hugeicons/svelte";
|
|
4
|
+
import { CheckmarkCircle02Icon } from "@hugeicons/core-free-icons";
|
|
5
|
+
import ModalCore from "../../../core/ui/ModalCore.svelte";
|
|
6
|
+
import type {
|
|
7
|
+
ModalGridSelectionProps,
|
|
8
|
+
ModelGridCard,
|
|
9
|
+
ModelGridCategory,
|
|
10
|
+
} from "../../types";
|
|
11
|
+
|
|
12
|
+
let {
|
|
13
|
+
title,
|
|
14
|
+
subtitle,
|
|
15
|
+
categories = [],
|
|
16
|
+
selectedCategory = $bindable(null),
|
|
17
|
+
cards = [],
|
|
18
|
+
selectedCard = $bindable(null),
|
|
19
|
+
selectedCards = $bindable([]),
|
|
20
|
+
multiple = false,
|
|
21
|
+
totalSteps = 1,
|
|
22
|
+
currentStep = 1,
|
|
23
|
+
isOpen = $bindable(false),
|
|
24
|
+
onSelect,
|
|
25
|
+
onSelectCategory,
|
|
26
|
+
onBack,
|
|
27
|
+
onContinue,
|
|
28
|
+
class: className,
|
|
29
|
+
}: ModalGridSelectionProps = $props();
|
|
30
|
+
|
|
31
|
+
function handleSelectCard(card: ModelGridCard) {
|
|
32
|
+
if (multiple) {
|
|
33
|
+
const exists = selectedCards.some(
|
|
34
|
+
(c: ModelGridCard) => c.title === card.title,
|
|
35
|
+
);
|
|
36
|
+
if (exists) {
|
|
37
|
+
selectedCards = selectedCards.filter(
|
|
38
|
+
(c: ModelGridCard) => c.title !== card.title,
|
|
39
|
+
);
|
|
40
|
+
} else {
|
|
41
|
+
selectedCards = [...selectedCards, card];
|
|
42
|
+
}
|
|
43
|
+
onSelect?.(card);
|
|
44
|
+
} else {
|
|
45
|
+
selectedCard = card;
|
|
46
|
+
onSelect?.(card);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
function handleSelectCategory(category: ModelGridCategory) {
|
|
51
|
+
selectedCategory = category;
|
|
52
|
+
onSelectCategory?.(category);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
function isSelectedCard(card: ModelGridCard): boolean {
|
|
56
|
+
if (multiple) {
|
|
57
|
+
return selectedCards.some((c: ModelGridCard) => c.title === card.title);
|
|
58
|
+
}
|
|
59
|
+
return selectedCard?.title === card.title;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
function isSelectedCategory(category: ModelGridCategory): boolean {
|
|
63
|
+
return selectedCategory?.value === category.value;
|
|
64
|
+
}
|
|
65
|
+
</script>
|
|
66
|
+
|
|
67
|
+
<ModalCore
|
|
68
|
+
bind:isOpen
|
|
69
|
+
{title}
|
|
70
|
+
{subtitle}
|
|
71
|
+
{totalSteps}
|
|
72
|
+
{currentStep}
|
|
73
|
+
showProgress={false}
|
|
74
|
+
showBack={currentStep > 1}
|
|
75
|
+
{onBack}
|
|
76
|
+
{onContinue}
|
|
77
|
+
class={cn(className)}
|
|
78
|
+
>
|
|
79
|
+
{#snippet content()}
|
|
80
|
+
<!-- Categories -->
|
|
81
|
+
{#if categories.length > 0}
|
|
82
|
+
<div class="mb-6 flex flex-wrap gap-2">
|
|
83
|
+
{#each categories as cat (cat.value)}
|
|
84
|
+
{@const active = isSelectedCategory(cat)}
|
|
85
|
+
<button
|
|
86
|
+
type="button"
|
|
87
|
+
class={cn(
|
|
88
|
+
"rounded-full border px-4 py-1.5 text-sm font-medium transition-all duration-200",
|
|
89
|
+
active ? "" : "",
|
|
90
|
+
)}
|
|
91
|
+
onclick={() => handleSelectCategory(cat)}
|
|
92
|
+
>
|
|
93
|
+
{cat.label}
|
|
94
|
+
</button>
|
|
95
|
+
{/each}
|
|
96
|
+
</div>
|
|
97
|
+
{/if}
|
|
98
|
+
|
|
99
|
+
<!-- Cards Grid -->
|
|
100
|
+
<div class="grid grid-cols-1 gap-3 md:grid-cols-2">
|
|
101
|
+
{#each cards as card, i (i)}
|
|
102
|
+
{@const selected = isSelectedCard(card)}
|
|
103
|
+
<button
|
|
104
|
+
type="button"
|
|
105
|
+
class={cn(
|
|
106
|
+
"relative flex items-center gap-4 rounded-xl border p-4 text-left transition-all duration-200",
|
|
107
|
+
selected ? "" : "",
|
|
108
|
+
)}
|
|
109
|
+
onclick={() => handleSelectCard(card)}
|
|
110
|
+
>
|
|
111
|
+
<!-- Icon -->
|
|
112
|
+
<div
|
|
113
|
+
class={cn(
|
|
114
|
+
"flex size-10 shrink-0 items-center justify-center rounded-lg",
|
|
115
|
+
selected ? "bg-primary/20" : "bg-primary/40",
|
|
116
|
+
)}
|
|
117
|
+
>
|
|
118
|
+
{#if typeof card.icon === "string"}
|
|
119
|
+
<i class="{card.icon} text-lg"></i>
|
|
120
|
+
{:else}
|
|
121
|
+
<HugeiconsIcon icon={card.icon} class="size-5" />
|
|
122
|
+
{/if}
|
|
123
|
+
</div>
|
|
124
|
+
|
|
125
|
+
<!-- Text -->
|
|
126
|
+
<div class="min-w-0 flex-1">
|
|
127
|
+
<p class="text-sm font-bold">{card.title}</p>
|
|
128
|
+
{#if card.description}
|
|
129
|
+
<p class="mt-0.5 line-clamp-1 text-xs">
|
|
130
|
+
{card.description}
|
|
131
|
+
</p>
|
|
132
|
+
{/if}
|
|
133
|
+
</div>
|
|
134
|
+
|
|
135
|
+
<!-- Checkmark -->
|
|
136
|
+
{#if selected}
|
|
137
|
+
<HugeiconsIcon
|
|
138
|
+
icon={CheckmarkCircle02Icon}
|
|
139
|
+
class="size-5 shrink-0 text-primary"
|
|
140
|
+
/>
|
|
141
|
+
{/if}
|
|
142
|
+
</button>
|
|
143
|
+
{/each}
|
|
144
|
+
</div>
|
|
145
|
+
{/snippet}
|
|
146
|
+
</ModalCore>
|
|
@@ -3,9 +3,17 @@ export type { ModelSocialShare } from "../core/types";
|
|
|
3
3
|
/**
|
|
4
4
|
* Props do componente ModalShareSelection — modal de partilha em redes sociais.
|
|
5
5
|
* Terceira variação do sistema de modais do NegoDesign.
|
|
6
|
+
* Cada rede social pode ser activada/inactivada com as propriedades isX.
|
|
6
7
|
* @property title - Título principal do modal (ex: "Share this design").
|
|
7
8
|
* @property subtitle - Subtítulo/descrição abaixo do título.
|
|
8
9
|
* @property networks - Lista de redes sociais para partilhar.
|
|
10
|
+
* @property isWhatsapp - Mostra a rede social WhatsApp.
|
|
11
|
+
* @property isInstagram - Mostra a rede social Instagram.
|
|
12
|
+
* @property isFacebook - Mostra a rede social Facebook.
|
|
13
|
+
* @property isTwitter - Mostra a rede social Twitter/X.
|
|
14
|
+
* @property isLinkedin - Mostra a rede social LinkedIn.
|
|
15
|
+
* @property isPinterest - Mostra a rede social Pinterest.
|
|
16
|
+
* @property isTumblr - Mostra a rede social Tumblr.
|
|
9
17
|
* @property linkLabel - Texto acima do input de link (ex: "Or copy link").
|
|
10
18
|
* @property linkValue - URL a ser partilhada/copiada.
|
|
11
19
|
* @property copyText - Texto do botão de copiar.
|
|
@@ -19,7 +27,14 @@ export type { ModelSocialShare } from "../core/types";
|
|
|
19
27
|
export type ModalShareSelectionProps = {
|
|
20
28
|
title: string;
|
|
21
29
|
subtitle?: string;
|
|
22
|
-
networks
|
|
30
|
+
networks?: ModelSocialShare[];
|
|
31
|
+
isWhatsapp?: boolean;
|
|
32
|
+
isInstagram?: boolean;
|
|
33
|
+
isFacebook?: boolean;
|
|
34
|
+
isTwitter?: boolean;
|
|
35
|
+
isLinkedin?: boolean;
|
|
36
|
+
isPinterest?: boolean;
|
|
37
|
+
isTumblr?: boolean;
|
|
23
38
|
linkLabel?: string;
|
|
24
39
|
linkValue?: string;
|
|
25
40
|
copyText?: string;
|