negodesign 0.0.26 → 0.0.28
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/assets/placeholder-company.png +0 -0
- package/dist/assets/placeholder-image.png +0 -0
- package/dist/components/core/breadcrumb/breadcrumb-list.svelte +31 -31
- package/dist/components/core/button/ButtonBack.svelte +18 -18
- package/dist/components/core/button/ButtonLogin.svelte +15 -15
- package/dist/components/core/button/ButtonLoginWith.svelte +57 -57
- package/dist/components/core/button/ButtonSend.svelte +15 -15
- package/dist/components/core/card/highlight/01/CardHighlight01.svelte +110 -91
- package/dist/components/core/card/highlight/02/CardHighlight02.svelte +108 -93
- package/dist/components/core/card/highlight/CardHighlight.svelte +22 -22
- package/dist/components/core/card/highlight/data.js +4 -1
- package/dist/components/core/card/media/01/CardMedia01.svelte +111 -111
- package/dist/components/core/card/media/02/CardMedia02.svelte +110 -110
- package/dist/components/core/card/media/CardMedia.svelte +17 -17
- package/dist/components/core/card/profile/01/CardProfile01.svelte +98 -98
- package/dist/components/core/card/profile/02/CardProfile02.svelte +98 -98
- package/dist/components/core/card/profile/CardProfile.svelte +17 -17
- package/dist/components/core/card/promotion/CardPromotion.svelte +133 -112
- package/dist/components/core/card/shared/CardButton.svelte +30 -30
- package/dist/components/core/card/shared/CardCart.svelte +36 -36
- package/dist/components/core/card/shared/CardDescription.svelte +38 -38
- package/dist/components/core/card/shared/CardFavorite.svelte +33 -33
- package/dist/components/core/card/shared/CardStarRating.svelte +20 -20
- package/dist/components/core/card/shared/CardStartPrice.svelte +32 -34
- package/dist/components/core/card/shared/CardTags.svelte +70 -73
- package/dist/components/core/card/shared/CardThumbnailVideo.svelte +169 -169
- package/dist/components/core/card/shared/TruncatableText.svelte +55 -55
- package/dist/components/core/carousel/badge/ui/CarouselBadge.svelte +82 -83
- package/dist/components/core/carousel/hero/CarouselHero.svelte +158 -158
- package/dist/components/core/carousel/highlights/ui/CarouselHighlights.svelte +65 -63
- package/dist/components/core/carousel/promotion/ui/CarouselPromotion.svelte +64 -64
- package/dist/components/core/carousel/shared/ui/CarouselHeader.svelte +55 -55
- package/dist/components/core/datatable/ui/DataTableActions.svelte +28 -28
- package/dist/components/core/datatable/ui/DataTableCheckbox.svelte +22 -22
- package/dist/components/core/datatable/ui/DataTableContent.svelte +59 -59
- package/dist/components/core/datatable/ui/DataTableCore.svelte +151 -151
- package/dist/components/core/datatable/ui/DataTableDragHandle.svelte +8 -8
- package/dist/components/core/datatable/ui/DataTableListFilter.svelte +59 -59
- package/dist/components/core/datatable/ui/DataTableListPagination.svelte +35 -35
- package/dist/components/core/form/ui/input-base.svelte +81 -81
- package/dist/components/core/form/ui/input-email-or-phone.svelte +23 -23
- package/dist/components/core/form/ui/input-email.svelte +23 -23
- package/dist/components/core/form/ui/input-password-confirm.svelte +23 -23
- package/dist/components/core/form/ui/input-password.svelte +23 -23
- package/dist/components/core/form/ui/input-phone.svelte +33 -33
- package/dist/components/core/form/ui/input-username.svelte +22 -22
- package/dist/components/core/hero/SimpleHero.svelte +65 -65
- package/dist/components/core/label/LabelOr.svelte +25 -25
- package/dist/components/core/link/link-forget-password.svelte +12 -12
- package/dist/components/core/link/link-privacy-polity.svelte +12 -12
- package/dist/components/core/link/link-terms-of-service.svelte +12 -12
- package/dist/components/core/nav/ui/menu-links.svelte +27 -27
- package/dist/components/core/nav/ui/mobile/nav-menu-drawer.svelte +85 -85
- package/dist/components/core/nav/ui/nav-menu-bottom-sidebar.svelte +33 -33
- package/dist/components/core/nav/ui/nav-menu-sidebar.svelte +97 -97
- package/dist/components/core/nav/ui/nav-menu-top-bar-sidebar.svelte +103 -103
- package/dist/components/core/nav/ui/nav-menu.svelte +106 -106
- package/dist/components/core/panel/CarouselSlot.svelte +63 -63
- package/dist/components/core/panel/LeftHero.svelte +116 -116
- package/dist/components/core/search/SearchInput.svelte +32 -32
- package/dist/components/core/search/shared/SearchInputCore.svelte +66 -66
- package/dist/components/core/sidebar/MenuBarSidebar.svelte +70 -70
- package/dist/components/core/tabs/ui/tab-underline.svelte +43 -43
- package/dist/components/pages/admin/01/ui/AdminContent.svelte +14 -14
- package/dist/components/pages/admin/01/ui/AdminPanel.svelte +46 -46
- package/dist/components/pages/security/login/01/ui/FormRegister.svelte +28 -28
- package/dist/components/pages/security/login/01/ui/LoginCard.svelte +107 -107
- package/dist/components/pages/security/login/PageLogin.svelte +22 -22
- package/dist/components/ui/badge/badge.svelte +49 -49
- package/dist/components/ui/button/button.svelte +82 -82
- package/dist/components/ui/chart/chart-container.svelte +80 -80
- package/dist/components/ui/chart/chart-style.svelte +37 -37
- package/dist/components/ui/chart/chart-tooltip.svelte +184 -184
- package/dist/components/ui/checkbox/checkbox.svelte +40 -40
- package/dist/components/ui/data-table/flex-render.svelte +40 -40
- package/dist/components/ui/drawer/drawer-close.svelte +7 -7
- package/dist/components/ui/drawer/drawer-content.svelte +33 -33
- package/dist/components/ui/drawer/drawer-description.svelte +17 -17
- package/dist/components/ui/drawer/drawer-footer.svelte +20 -20
- package/dist/components/ui/drawer/drawer-header.svelte +20 -20
- package/dist/components/ui/drawer/drawer-nested.svelte +12 -12
- package/dist/components/ui/drawer/drawer-overlay.svelte +17 -17
- package/dist/components/ui/drawer/drawer-portal.svelte +7 -7
- package/dist/components/ui/drawer/drawer-title.svelte +17 -17
- package/dist/components/ui/drawer/drawer-trigger.svelte +7 -7
- package/dist/components/ui/drawer/drawer.svelte +12 -12
- package/dist/components/ui/select/select-content.svelte +45 -45
- package/dist/components/ui/select/select-group-heading.svelte +21 -21
- package/dist/components/ui/select/select-group.svelte +17 -17
- package/dist/components/ui/select/select-item.svelte +41 -41
- package/dist/components/ui/select/select-label.svelte +20 -20
- package/dist/components/ui/select/select-portal.svelte +7 -7
- package/dist/components/ui/select/select-scroll-down-button.svelte +21 -21
- package/dist/components/ui/select/select-scroll-up-button.svelte +21 -21
- package/dist/components/ui/select/select-separator.svelte +18 -18
- package/dist/components/ui/select/select-trigger.svelte +30 -30
- package/dist/components/ui/select/select.svelte +11 -11
- package/dist/components/ui/sidebar/sidebar-menu-sub-button.svelte +39 -39
- package/dist/components/ui/star-rating/star-rating-star.svelte +41 -41
- package/dist/components/ui/star-rating/star-rating.svelte +20 -20
- package/dist/components/ui/table/table-body.svelte +15 -15
- package/dist/components/ui/table/table-caption.svelte +20 -20
- package/dist/components/ui/table/table-cell.svelte +15 -15
- package/dist/components/ui/table/table-footer.svelte +20 -20
- package/dist/components/ui/table/table-head.svelte +15 -15
- package/dist/components/ui/table/table-header.svelte +20 -20
- package/dist/components/ui/table/table-row.svelte +15 -15
- package/dist/components/ui/table/table.svelte +17 -17
- package/dist/components/ui/tabs/tabs-content.svelte +17 -17
- package/dist/components/ui/tabs/tabs-list.svelte +40 -40
- package/dist/components/ui/tabs/tabs-trigger.svelte +23 -23
- package/dist/components/ui/tabs/tabs.svelte +19 -19
- package/dist/globals.css +8 -38
- package/dist/styles/globals.css +149 -149
- package/package.json +113 -113
|
@@ -1,81 +1,81 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import Input from "../../../ui/input/input.svelte";
|
|
3
|
-
import { Label } from "../../../ui/label";
|
|
4
|
-
import { EyeIcon, EyeOffIcon } from "@hugeicons/core-free-icons";
|
|
5
|
-
import { inputIconMap } from "../data/InputIconDefault.svelte";
|
|
6
|
-
import type { InputLabelProps } from "../data/InputLabel.svelte";
|
|
7
|
-
import { HugeiconsIcon } from "@hugeicons/svelte";
|
|
8
|
-
|
|
9
|
-
let {
|
|
10
|
-
label,
|
|
11
|
-
isIcon,
|
|
12
|
-
isLabel,
|
|
13
|
-
value = $bindable(""),
|
|
14
|
-
...restProps
|
|
15
|
-
}: InputLabelProps = $props();
|
|
16
|
-
|
|
17
|
-
let showPassword = $state(false);
|
|
18
|
-
|
|
19
|
-
const isPassword = $derived(restProps.type == "password");
|
|
20
|
-
|
|
21
|
-
const inputType = $derived(
|
|
22
|
-
isPassword && showPassword ? "text" : restProps.type,
|
|
23
|
-
);
|
|
24
|
-
|
|
25
|
-
const currentIcon = $derived(
|
|
26
|
-
restProps.type ? inputIconMap[restProps.type] : undefined,
|
|
27
|
-
);
|
|
28
|
-
|
|
29
|
-
function togglePasswordVisibility() {
|
|
30
|
-
showPassword = !showPassword;
|
|
31
|
-
}
|
|
32
|
-
</script>
|
|
33
|
-
|
|
34
|
-
{#snippet renderInput()}
|
|
35
|
-
<div class="flex items-center relative w-full">
|
|
36
|
-
{#if isIcon && currentIcon}
|
|
37
|
-
<span class="absolute left-3 flex items-center pointer-events-none">
|
|
38
|
-
<HugeiconsIcon
|
|
39
|
-
icon={currentIcon}
|
|
40
|
-
size={16}
|
|
41
|
-
color="#94a3b8"
|
|
42
|
-
strokeWidth={1.5}
|
|
43
|
-
/>
|
|
44
|
-
</span>
|
|
45
|
-
{/if}
|
|
46
|
-
|
|
47
|
-
<Input
|
|
48
|
-
class="{isIcon && currentIcon ? 'pl-9' : ''} {isPassword ? 'pr-9' : ''}"
|
|
49
|
-
bind:value
|
|
50
|
-
{...restProps}
|
|
51
|
-
type={inputType}
|
|
52
|
-
/>
|
|
53
|
-
|
|
54
|
-
{#if isPassword}
|
|
55
|
-
<button
|
|
56
|
-
type="button"
|
|
57
|
-
onclick={togglePasswordVisibility}
|
|
58
|
-
class="absolute right-3 flex items-center cursor-pointer z-10 text-slate-400 hover:text-slate-600 focus:outline-none"
|
|
59
|
-
aria-label={showPassword ? "Ocultar senha" : "Ver senha"}
|
|
60
|
-
>
|
|
61
|
-
<HugeiconsIcon
|
|
62
|
-
icon={showPassword ? EyeOffIcon : EyeIcon}
|
|
63
|
-
size={16}
|
|
64
|
-
color="#94a3b8"
|
|
65
|
-
strokeWidth={1.5}
|
|
66
|
-
/>
|
|
67
|
-
</button>
|
|
68
|
-
{/if}
|
|
69
|
-
</div>
|
|
70
|
-
{/snippet}
|
|
71
|
-
|
|
72
|
-
{#if isLabel}
|
|
73
|
-
<div class="flex flex-col gap-3 w-full">
|
|
74
|
-
{#if label}
|
|
75
|
-
<Label>{label}</Label>
|
|
76
|
-
{/if}
|
|
77
|
-
{@render renderInput()}
|
|
78
|
-
</div>
|
|
79
|
-
{:else}
|
|
80
|
-
{@render renderInput()}
|
|
81
|
-
{/if}
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import Input from "../../../ui/input/input.svelte";
|
|
3
|
+
import { Label } from "../../../ui/label";
|
|
4
|
+
import { EyeIcon, EyeOffIcon } from "@hugeicons/core-free-icons";
|
|
5
|
+
import { inputIconMap } from "../data/InputIconDefault.svelte";
|
|
6
|
+
import type { InputLabelProps } from "../data/InputLabel.svelte";
|
|
7
|
+
import { HugeiconsIcon } from "@hugeicons/svelte";
|
|
8
|
+
|
|
9
|
+
let {
|
|
10
|
+
label,
|
|
11
|
+
isIcon,
|
|
12
|
+
isLabel,
|
|
13
|
+
value = $bindable(""),
|
|
14
|
+
...restProps
|
|
15
|
+
}: InputLabelProps = $props();
|
|
16
|
+
|
|
17
|
+
let showPassword = $state(false);
|
|
18
|
+
|
|
19
|
+
const isPassword = $derived(restProps.type == "password");
|
|
20
|
+
|
|
21
|
+
const inputType = $derived(
|
|
22
|
+
isPassword && showPassword ? "text" : restProps.type,
|
|
23
|
+
);
|
|
24
|
+
|
|
25
|
+
const currentIcon = $derived(
|
|
26
|
+
restProps.type ? inputIconMap[restProps.type] : undefined,
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
function togglePasswordVisibility() {
|
|
30
|
+
showPassword = !showPassword;
|
|
31
|
+
}
|
|
32
|
+
</script>
|
|
33
|
+
|
|
34
|
+
{#snippet renderInput()}
|
|
35
|
+
<div class="flex items-center relative w-full">
|
|
36
|
+
{#if isIcon && currentIcon}
|
|
37
|
+
<span class="absolute left-3 flex items-center pointer-events-none">
|
|
38
|
+
<HugeiconsIcon
|
|
39
|
+
icon={currentIcon}
|
|
40
|
+
size={16}
|
|
41
|
+
color="#94a3b8"
|
|
42
|
+
strokeWidth={1.5}
|
|
43
|
+
/>
|
|
44
|
+
</span>
|
|
45
|
+
{/if}
|
|
46
|
+
|
|
47
|
+
<Input
|
|
48
|
+
class="{isIcon && currentIcon ? 'pl-9' : ''} {isPassword ? 'pr-9' : ''}"
|
|
49
|
+
bind:value
|
|
50
|
+
{...restProps}
|
|
51
|
+
type={inputType}
|
|
52
|
+
/>
|
|
53
|
+
|
|
54
|
+
{#if isPassword}
|
|
55
|
+
<button
|
|
56
|
+
type="button"
|
|
57
|
+
onclick={togglePasswordVisibility}
|
|
58
|
+
class="absolute right-3 flex items-center cursor-pointer z-10 text-slate-400 hover:text-slate-600 focus:outline-none"
|
|
59
|
+
aria-label={showPassword ? "Ocultar senha" : "Ver senha"}
|
|
60
|
+
>
|
|
61
|
+
<HugeiconsIcon
|
|
62
|
+
icon={showPassword ? EyeOffIcon : EyeIcon}
|
|
63
|
+
size={16}
|
|
64
|
+
color="#94a3b8"
|
|
65
|
+
strokeWidth={1.5}
|
|
66
|
+
/>
|
|
67
|
+
</button>
|
|
68
|
+
{/if}
|
|
69
|
+
</div>
|
|
70
|
+
{/snippet}
|
|
71
|
+
|
|
72
|
+
{#if isLabel}
|
|
73
|
+
<div class="flex flex-col gap-3 w-full">
|
|
74
|
+
{#if label}
|
|
75
|
+
<Label>{label}</Label>
|
|
76
|
+
{/if}
|
|
77
|
+
{@render renderInput()}
|
|
78
|
+
</div>
|
|
79
|
+
{:else}
|
|
80
|
+
{@render renderInput()}
|
|
81
|
+
{/if}
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import type { InputLabelProps } from "../data/InputLabel.svelte";
|
|
3
|
-
import InputBase from "./input-base.svelte";
|
|
4
|
-
import { t } from "../../../../i18n";
|
|
5
|
-
|
|
6
|
-
/** Email or phone input field with icon and label. */
|
|
7
|
-
let {
|
|
8
|
-
label,
|
|
9
|
-
placeholder,
|
|
10
|
-
value = $bindable(""),
|
|
11
|
-
...restProps
|
|
12
|
-
}: InputLabelProps = $props();
|
|
13
|
-
</script>
|
|
14
|
-
|
|
15
|
-
<InputBase
|
|
16
|
-
type="text"
|
|
17
|
-
label={label || $t("input.email-or-phone.label")}
|
|
18
|
-
placeholder={placeholder || $t("input.email-or-phone.placeholder")}
|
|
19
|
-
isLabel
|
|
20
|
-
isIcon
|
|
21
|
-
bind:value
|
|
22
|
-
{...restProps}
|
|
23
|
-
/>
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { InputLabelProps } from "../data/InputLabel.svelte";
|
|
3
|
+
import InputBase from "./input-base.svelte";
|
|
4
|
+
import { t } from "../../../../i18n";
|
|
5
|
+
|
|
6
|
+
/** Email or phone input field with icon and label. */
|
|
7
|
+
let {
|
|
8
|
+
label,
|
|
9
|
+
placeholder,
|
|
10
|
+
value = $bindable(""),
|
|
11
|
+
...restProps
|
|
12
|
+
}: InputLabelProps = $props();
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<InputBase
|
|
16
|
+
type="text"
|
|
17
|
+
label={label || $t("input.email-or-phone.label")}
|
|
18
|
+
placeholder={placeholder || $t("input.email-or-phone.placeholder")}
|
|
19
|
+
isLabel
|
|
20
|
+
isIcon
|
|
21
|
+
bind:value
|
|
22
|
+
{...restProps}
|
|
23
|
+
/>
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import type { InputLabelProps } from "../data/InputLabel.svelte";
|
|
3
|
-
import InputBase from "./input-base.svelte";
|
|
4
|
-
import { t } from "../../../../i18n";
|
|
5
|
-
|
|
6
|
-
/** Email input field with icon and label. */
|
|
7
|
-
let {
|
|
8
|
-
label,
|
|
9
|
-
placeholder,
|
|
10
|
-
value = $bindable(""),
|
|
11
|
-
...restProps
|
|
12
|
-
}: InputLabelProps = $props();
|
|
13
|
-
</script>
|
|
14
|
-
|
|
15
|
-
<InputBase
|
|
16
|
-
type="email"
|
|
17
|
-
label={label || $t("input.email.label")}
|
|
18
|
-
placeholder={placeholder || $t("input.email.placeholder")}
|
|
19
|
-
isLabel
|
|
20
|
-
isIcon
|
|
21
|
-
bind:value
|
|
22
|
-
{...restProps}
|
|
23
|
-
/>
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { InputLabelProps } from "../data/InputLabel.svelte";
|
|
3
|
+
import InputBase from "./input-base.svelte";
|
|
4
|
+
import { t } from "../../../../i18n";
|
|
5
|
+
|
|
6
|
+
/** Email input field with icon and label. */
|
|
7
|
+
let {
|
|
8
|
+
label,
|
|
9
|
+
placeholder,
|
|
10
|
+
value = $bindable(""),
|
|
11
|
+
...restProps
|
|
12
|
+
}: InputLabelProps = $props();
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<InputBase
|
|
16
|
+
type="email"
|
|
17
|
+
label={label || $t("input.email.label")}
|
|
18
|
+
placeholder={placeholder || $t("input.email.placeholder")}
|
|
19
|
+
isLabel
|
|
20
|
+
isIcon
|
|
21
|
+
bind:value
|
|
22
|
+
{...restProps}
|
|
23
|
+
/>
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import type { InputLabelProps } from "../data/InputLabel.svelte";
|
|
3
|
-
import InputBase from "./input-base.svelte";
|
|
4
|
-
import { t } from "../../../../i18n";
|
|
5
|
-
|
|
6
|
-
/** Password confirmation input field with icon and label. */
|
|
7
|
-
let {
|
|
8
|
-
label,
|
|
9
|
-
placeholder,
|
|
10
|
-
value = $bindable(""),
|
|
11
|
-
...restProps
|
|
12
|
-
}: InputLabelProps = $props();
|
|
13
|
-
</script>
|
|
14
|
-
|
|
15
|
-
<InputBase
|
|
16
|
-
type="password"
|
|
17
|
-
label={label || $t("input.password-confirm.label")}
|
|
18
|
-
placeholder={placeholder || $t("input.password-confirm.placeholder")}
|
|
19
|
-
isLabel
|
|
20
|
-
isIcon
|
|
21
|
-
bind:value
|
|
22
|
-
{...restProps}
|
|
23
|
-
/>
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { InputLabelProps } from "../data/InputLabel.svelte";
|
|
3
|
+
import InputBase from "./input-base.svelte";
|
|
4
|
+
import { t } from "../../../../i18n";
|
|
5
|
+
|
|
6
|
+
/** Password confirmation input field with icon and label. */
|
|
7
|
+
let {
|
|
8
|
+
label,
|
|
9
|
+
placeholder,
|
|
10
|
+
value = $bindable(""),
|
|
11
|
+
...restProps
|
|
12
|
+
}: InputLabelProps = $props();
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<InputBase
|
|
16
|
+
type="password"
|
|
17
|
+
label={label || $t("input.password-confirm.label")}
|
|
18
|
+
placeholder={placeholder || $t("input.password-confirm.placeholder")}
|
|
19
|
+
isLabel
|
|
20
|
+
isIcon
|
|
21
|
+
bind:value
|
|
22
|
+
{...restProps}
|
|
23
|
+
/>
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import type { InputLabelProps } from "../data/InputLabel.svelte";
|
|
3
|
-
import InputBase from "./input-base.svelte";
|
|
4
|
-
import { t } from "../../../../i18n";
|
|
5
|
-
|
|
6
|
-
/** Password input field with icon and label. */
|
|
7
|
-
let {
|
|
8
|
-
label,
|
|
9
|
-
placeholder,
|
|
10
|
-
value = $bindable(""),
|
|
11
|
-
...restProps
|
|
12
|
-
}: InputLabelProps = $props();
|
|
13
|
-
</script>
|
|
14
|
-
|
|
15
|
-
<InputBase
|
|
16
|
-
type="password"
|
|
17
|
-
label={label || $t("input.password.label")}
|
|
18
|
-
placeholder={placeholder || $t("input.password.placeholder")}
|
|
19
|
-
isLabel
|
|
20
|
-
isIcon
|
|
21
|
-
bind:value
|
|
22
|
-
{...restProps}
|
|
23
|
-
/>
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { InputLabelProps } from "../data/InputLabel.svelte";
|
|
3
|
+
import InputBase from "./input-base.svelte";
|
|
4
|
+
import { t } from "../../../../i18n";
|
|
5
|
+
|
|
6
|
+
/** Password input field with icon and label. */
|
|
7
|
+
let {
|
|
8
|
+
label,
|
|
9
|
+
placeholder,
|
|
10
|
+
value = $bindable(""),
|
|
11
|
+
...restProps
|
|
12
|
+
}: InputLabelProps = $props();
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<InputBase
|
|
16
|
+
type="password"
|
|
17
|
+
label={label || $t("input.password.label")}
|
|
18
|
+
placeholder={placeholder || $t("input.password.placeholder")}
|
|
19
|
+
isLabel
|
|
20
|
+
isIcon
|
|
21
|
+
bind:value
|
|
22
|
+
{...restProps}
|
|
23
|
+
/>
|
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import { PhoneInput } from "../../../ui/phone-input";
|
|
3
|
-
import type { InputLabelProps } from "../data/InputLabel.svelte";
|
|
4
|
-
import { Label } from "../../../ui/label";
|
|
5
|
-
import { t } from "../../../../i18n";
|
|
6
|
-
|
|
7
|
-
/** Phone input field with icon and label. */
|
|
8
|
-
let {
|
|
9
|
-
label,
|
|
10
|
-
isLabel,
|
|
11
|
-
placeholder,
|
|
12
|
-
value = $bindable(""),
|
|
13
|
-
}: InputLabelProps = $props();
|
|
14
|
-
</script>
|
|
15
|
-
|
|
16
|
-
{#if isLabel}
|
|
17
|
-
<div class="flex flex-col gap-3 w-full">
|
|
18
|
-
{#if label}
|
|
19
|
-
<Label>{label}</Label>
|
|
20
|
-
{:else}
|
|
21
|
-
<Label>{$t("input.email-or-phone.label")}</Label>
|
|
22
|
-
{/if}
|
|
23
|
-
<PhoneInput
|
|
24
|
-
placeholder={placeholder || $t("input.email-or-phone.placeholder")}
|
|
25
|
-
bind:value
|
|
26
|
-
/>
|
|
27
|
-
</div>
|
|
28
|
-
{:else}
|
|
29
|
-
<PhoneInput
|
|
30
|
-
placeholder={placeholder || $t("input.email-or-phone.placeholder")}
|
|
31
|
-
bind:value
|
|
32
|
-
/>
|
|
33
|
-
{/if}
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { PhoneInput } from "../../../ui/phone-input";
|
|
3
|
+
import type { InputLabelProps } from "../data/InputLabel.svelte";
|
|
4
|
+
import { Label } from "../../../ui/label";
|
|
5
|
+
import { t } from "../../../../i18n";
|
|
6
|
+
|
|
7
|
+
/** Phone input field with icon and label. */
|
|
8
|
+
let {
|
|
9
|
+
label,
|
|
10
|
+
isLabel,
|
|
11
|
+
placeholder,
|
|
12
|
+
value = $bindable(""),
|
|
13
|
+
}: InputLabelProps = $props();
|
|
14
|
+
</script>
|
|
15
|
+
|
|
16
|
+
{#if isLabel}
|
|
17
|
+
<div class="flex flex-col gap-3 w-full">
|
|
18
|
+
{#if label}
|
|
19
|
+
<Label>{label}</Label>
|
|
20
|
+
{:else}
|
|
21
|
+
<Label>{$t("input.email-or-phone.label")}</Label>
|
|
22
|
+
{/if}
|
|
23
|
+
<PhoneInput
|
|
24
|
+
placeholder={placeholder || $t("input.email-or-phone.placeholder")}
|
|
25
|
+
bind:value
|
|
26
|
+
/>
|
|
27
|
+
</div>
|
|
28
|
+
{:else}
|
|
29
|
+
<PhoneInput
|
|
30
|
+
placeholder={placeholder || $t("input.email-or-phone.placeholder")}
|
|
31
|
+
bind:value
|
|
32
|
+
/>
|
|
33
|
+
{/if}
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import type { InputLabelProps } from "../data/InputLabel.svelte";
|
|
3
|
-
import InputBase from "./input-base.svelte";
|
|
4
|
-
import { t } from "../../../../i18n";
|
|
5
|
-
|
|
6
|
-
/** Username input field with icon and label. */
|
|
7
|
-
let {
|
|
8
|
-
label,
|
|
9
|
-
placeholder,
|
|
10
|
-
value = $bindable(""),
|
|
11
|
-
...restProps
|
|
12
|
-
}: InputLabelProps = $props();
|
|
13
|
-
</script>
|
|
14
|
-
|
|
15
|
-
<InputBase
|
|
16
|
-
label={label || $t("input.username.label")}
|
|
17
|
-
placeholder={placeholder || $t("input.username.placeholder")}
|
|
18
|
-
isLabel
|
|
19
|
-
isIcon
|
|
20
|
-
bind:value
|
|
21
|
-
{...restProps}
|
|
22
|
-
/>
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { InputLabelProps } from "../data/InputLabel.svelte";
|
|
3
|
+
import InputBase from "./input-base.svelte";
|
|
4
|
+
import { t } from "../../../../i18n";
|
|
5
|
+
|
|
6
|
+
/** Username input field with icon and label. */
|
|
7
|
+
let {
|
|
8
|
+
label,
|
|
9
|
+
placeholder,
|
|
10
|
+
value = $bindable(""),
|
|
11
|
+
...restProps
|
|
12
|
+
}: InputLabelProps = $props();
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<InputBase
|
|
16
|
+
label={label || $t("input.username.label")}
|
|
17
|
+
placeholder={placeholder || $t("input.username.placeholder")}
|
|
18
|
+
isLabel
|
|
19
|
+
isIcon
|
|
20
|
+
bind:value
|
|
21
|
+
{...restProps}
|
|
22
|
+
/>
|
|
@@ -1,65 +1,65 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import { Button } from "../../ui/button/index.js";
|
|
3
|
-
import type { HeroSimpleProps } from "./types";
|
|
4
|
-
let {
|
|
5
|
-
title,
|
|
6
|
-
subTitle,
|
|
7
|
-
description,
|
|
8
|
-
image,
|
|
9
|
-
buttons,
|
|
10
|
-
titleClass,
|
|
11
|
-
subTitleClass,
|
|
12
|
-
descriptionClass,
|
|
13
|
-
imageClass,
|
|
14
|
-
}: HeroSimpleProps = $props();
|
|
15
|
-
</script>
|
|
16
|
-
|
|
17
|
-
<section class="relative flex p-2">
|
|
18
|
-
<div class="w-full grid grid-cols-10 md:grid-cols-2 min-h-50 md:min-h-125">
|
|
19
|
-
<div class="flex justify-center items-center">
|
|
20
|
-
<div class="space-y-1">
|
|
21
|
-
{#if title}
|
|
22
|
-
<h1
|
|
23
|
-
class="font-bold text-[24px] md:text-[60px] lg:text-[80px] {titleClass}"
|
|
24
|
-
>
|
|
25
|
-
{title}
|
|
26
|
-
</h1>
|
|
27
|
-
{/if}
|
|
28
|
-
{#if subTitle}
|
|
29
|
-
<p class="font-semibold text-[16px] md:text-[40px] {subTitleClass}">
|
|
30
|
-
{subTitle}
|
|
31
|
-
</p>
|
|
32
|
-
{/if}
|
|
33
|
-
{#if description}
|
|
34
|
-
<p
|
|
35
|
-
class="text-[12px] md:text-[20px] md:w-8/12 mt-5 {descriptionClass}"
|
|
36
|
-
>
|
|
37
|
-
{description}
|
|
38
|
-
</p>
|
|
39
|
-
{/if}
|
|
40
|
-
{#if buttons}
|
|
41
|
-
<div class="flex flex-wrap gap-2 mt-5 md:mt-10">
|
|
42
|
-
{#each buttons as button, i (i)}
|
|
43
|
-
<Button
|
|
44
|
-
href={button.href}
|
|
45
|
-
class={button.className}
|
|
46
|
-
onclick={button.onClick}
|
|
47
|
-
>
|
|
48
|
-
{button.label}
|
|
49
|
-
</Button>
|
|
50
|
-
{/each}
|
|
51
|
-
</div>
|
|
52
|
-
{/if}
|
|
53
|
-
</div>
|
|
54
|
-
</div>
|
|
55
|
-
<div class="flex justify-center items-center">
|
|
56
|
-
{#if image}
|
|
57
|
-
<img
|
|
58
|
-
src={image}
|
|
59
|
-
alt={image}
|
|
60
|
-
class="rounded-lg h-50 md:h-125 w-[60%] object-cover {imageClass}"
|
|
61
|
-
/>
|
|
62
|
-
{/if}
|
|
63
|
-
</div>
|
|
64
|
-
</div>
|
|
65
|
-
</section>
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { Button } from "../../ui/button/index.js";
|
|
3
|
+
import type { HeroSimpleProps } from "./types";
|
|
4
|
+
let {
|
|
5
|
+
title,
|
|
6
|
+
subTitle,
|
|
7
|
+
description,
|
|
8
|
+
image,
|
|
9
|
+
buttons,
|
|
10
|
+
titleClass,
|
|
11
|
+
subTitleClass,
|
|
12
|
+
descriptionClass,
|
|
13
|
+
imageClass,
|
|
14
|
+
}: HeroSimpleProps = $props();
|
|
15
|
+
</script>
|
|
16
|
+
|
|
17
|
+
<section class="relative flex p-2">
|
|
18
|
+
<div class="w-full grid grid-cols-10 md:grid-cols-2 min-h-50 md:min-h-125">
|
|
19
|
+
<div class="flex justify-center items-center">
|
|
20
|
+
<div class="space-y-1">
|
|
21
|
+
{#if title}
|
|
22
|
+
<h1
|
|
23
|
+
class="font-bold text-[24px] md:text-[60px] lg:text-[80px] {titleClass}"
|
|
24
|
+
>
|
|
25
|
+
{title}
|
|
26
|
+
</h1>
|
|
27
|
+
{/if}
|
|
28
|
+
{#if subTitle}
|
|
29
|
+
<p class="font-semibold text-[16px] md:text-[40px] {subTitleClass}">
|
|
30
|
+
{subTitle}
|
|
31
|
+
</p>
|
|
32
|
+
{/if}
|
|
33
|
+
{#if description}
|
|
34
|
+
<p
|
|
35
|
+
class="text-[12px] md:text-[20px] md:w-8/12 mt-5 {descriptionClass}"
|
|
36
|
+
>
|
|
37
|
+
{description}
|
|
38
|
+
</p>
|
|
39
|
+
{/if}
|
|
40
|
+
{#if buttons}
|
|
41
|
+
<div class="flex flex-wrap gap-2 mt-5 md:mt-10">
|
|
42
|
+
{#each buttons as button, i (i)}
|
|
43
|
+
<Button
|
|
44
|
+
href={button.href}
|
|
45
|
+
class={button.className}
|
|
46
|
+
onclick={button.onClick}
|
|
47
|
+
>
|
|
48
|
+
{button.label}
|
|
49
|
+
</Button>
|
|
50
|
+
{/each}
|
|
51
|
+
</div>
|
|
52
|
+
{/if}
|
|
53
|
+
</div>
|
|
54
|
+
</div>
|
|
55
|
+
<div class="flex justify-center items-center">
|
|
56
|
+
{#if image}
|
|
57
|
+
<img
|
|
58
|
+
src={image}
|
|
59
|
+
alt={image}
|
|
60
|
+
class="rounded-lg h-50 md:h-125 w-[60%] object-cover {imageClass}"
|
|
61
|
+
/>
|
|
62
|
+
{/if}
|
|
63
|
+
</div>
|
|
64
|
+
</div>
|
|
65
|
+
</section>
|
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import Separator from "../../ui/separator/separator.svelte";
|
|
3
|
-
import { t } from "../../../i18n";
|
|
4
|
-
|
|
5
|
-
type Props = {
|
|
6
|
-
variant?: "SEPARATOR";
|
|
7
|
-
};
|
|
8
|
-
|
|
9
|
-
let { variant }: Props = $props();
|
|
10
|
-
</script>
|
|
11
|
-
|
|
12
|
-
{#if variant === "SEPARATOR"}
|
|
13
|
-
<div class="relative my-1 text-center">
|
|
14
|
-
<div class="absolute inset-0 flex items-center">
|
|
15
|
-
<Separator />
|
|
16
|
-
</div>
|
|
17
|
-
<span
|
|
18
|
-
class="relative bg-white dark:bg-primary px-4 text-[10px] uppercase text-slate-400 tracking-wider"
|
|
19
|
-
>
|
|
20
|
-
{$t("label.or")}
|
|
21
|
-
</span>
|
|
22
|
-
</div>
|
|
23
|
-
{:else}
|
|
24
|
-
{$t("label.or")}
|
|
25
|
-
{/if}
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import Separator from "../../ui/separator/separator.svelte";
|
|
3
|
+
import { t } from "../../../i18n";
|
|
4
|
+
|
|
5
|
+
type Props = {
|
|
6
|
+
variant?: "SEPARATOR";
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
let { variant }: Props = $props();
|
|
10
|
+
</script>
|
|
11
|
+
|
|
12
|
+
{#if variant === "SEPARATOR"}
|
|
13
|
+
<div class="relative my-1 text-center">
|
|
14
|
+
<div class="absolute inset-0 flex items-center">
|
|
15
|
+
<Separator />
|
|
16
|
+
</div>
|
|
17
|
+
<span
|
|
18
|
+
class="relative bg-white dark:bg-primary px-4 text-[10px] uppercase text-slate-400 tracking-wider"
|
|
19
|
+
>
|
|
20
|
+
{$t("label.or")}
|
|
21
|
+
</span>
|
|
22
|
+
</div>
|
|
23
|
+
{:else}
|
|
24
|
+
{$t("label.or")}
|
|
25
|
+
{/if}
|