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.
Files changed (115) hide show
  1. package/dist/assets/placeholder-company.png +0 -0
  2. package/dist/assets/placeholder-image.png +0 -0
  3. package/dist/components/core/breadcrumb/breadcrumb-list.svelte +31 -31
  4. package/dist/components/core/button/ButtonBack.svelte +18 -18
  5. package/dist/components/core/button/ButtonLogin.svelte +15 -15
  6. package/dist/components/core/button/ButtonLoginWith.svelte +57 -57
  7. package/dist/components/core/button/ButtonSend.svelte +15 -15
  8. package/dist/components/core/card/highlight/01/CardHighlight01.svelte +110 -91
  9. package/dist/components/core/card/highlight/02/CardHighlight02.svelte +108 -93
  10. package/dist/components/core/card/highlight/CardHighlight.svelte +22 -22
  11. package/dist/components/core/card/highlight/data.js +4 -1
  12. package/dist/components/core/card/media/01/CardMedia01.svelte +111 -111
  13. package/dist/components/core/card/media/02/CardMedia02.svelte +110 -110
  14. package/dist/components/core/card/media/CardMedia.svelte +17 -17
  15. package/dist/components/core/card/profile/01/CardProfile01.svelte +98 -98
  16. package/dist/components/core/card/profile/02/CardProfile02.svelte +98 -98
  17. package/dist/components/core/card/profile/CardProfile.svelte +17 -17
  18. package/dist/components/core/card/promotion/CardPromotion.svelte +133 -112
  19. package/dist/components/core/card/shared/CardButton.svelte +30 -30
  20. package/dist/components/core/card/shared/CardCart.svelte +36 -36
  21. package/dist/components/core/card/shared/CardDescription.svelte +38 -38
  22. package/dist/components/core/card/shared/CardFavorite.svelte +33 -33
  23. package/dist/components/core/card/shared/CardStarRating.svelte +20 -20
  24. package/dist/components/core/card/shared/CardStartPrice.svelte +32 -34
  25. package/dist/components/core/card/shared/CardTags.svelte +70 -73
  26. package/dist/components/core/card/shared/CardThumbnailVideo.svelte +169 -169
  27. package/dist/components/core/card/shared/TruncatableText.svelte +55 -55
  28. package/dist/components/core/carousel/badge/ui/CarouselBadge.svelte +82 -83
  29. package/dist/components/core/carousel/hero/CarouselHero.svelte +158 -158
  30. package/dist/components/core/carousel/highlights/ui/CarouselHighlights.svelte +65 -63
  31. package/dist/components/core/carousel/promotion/ui/CarouselPromotion.svelte +64 -64
  32. package/dist/components/core/carousel/shared/ui/CarouselHeader.svelte +55 -55
  33. package/dist/components/core/datatable/ui/DataTableActions.svelte +28 -28
  34. package/dist/components/core/datatable/ui/DataTableCheckbox.svelte +22 -22
  35. package/dist/components/core/datatable/ui/DataTableContent.svelte +59 -59
  36. package/dist/components/core/datatable/ui/DataTableCore.svelte +151 -151
  37. package/dist/components/core/datatable/ui/DataTableDragHandle.svelte +8 -8
  38. package/dist/components/core/datatable/ui/DataTableListFilter.svelte +59 -59
  39. package/dist/components/core/datatable/ui/DataTableListPagination.svelte +35 -35
  40. package/dist/components/core/form/ui/input-base.svelte +81 -81
  41. package/dist/components/core/form/ui/input-email-or-phone.svelte +23 -23
  42. package/dist/components/core/form/ui/input-email.svelte +23 -23
  43. package/dist/components/core/form/ui/input-password-confirm.svelte +23 -23
  44. package/dist/components/core/form/ui/input-password.svelte +23 -23
  45. package/dist/components/core/form/ui/input-phone.svelte +33 -33
  46. package/dist/components/core/form/ui/input-username.svelte +22 -22
  47. package/dist/components/core/hero/SimpleHero.svelte +65 -65
  48. package/dist/components/core/label/LabelOr.svelte +25 -25
  49. package/dist/components/core/link/link-forget-password.svelte +12 -12
  50. package/dist/components/core/link/link-privacy-polity.svelte +12 -12
  51. package/dist/components/core/link/link-terms-of-service.svelte +12 -12
  52. package/dist/components/core/nav/ui/menu-links.svelte +27 -27
  53. package/dist/components/core/nav/ui/mobile/nav-menu-drawer.svelte +85 -85
  54. package/dist/components/core/nav/ui/nav-menu-bottom-sidebar.svelte +33 -33
  55. package/dist/components/core/nav/ui/nav-menu-sidebar.svelte +97 -97
  56. package/dist/components/core/nav/ui/nav-menu-top-bar-sidebar.svelte +103 -103
  57. package/dist/components/core/nav/ui/nav-menu.svelte +106 -106
  58. package/dist/components/core/panel/CarouselSlot.svelte +63 -63
  59. package/dist/components/core/panel/LeftHero.svelte +116 -116
  60. package/dist/components/core/search/SearchInput.svelte +32 -32
  61. package/dist/components/core/search/shared/SearchInputCore.svelte +66 -66
  62. package/dist/components/core/sidebar/MenuBarSidebar.svelte +70 -70
  63. package/dist/components/core/tabs/ui/tab-underline.svelte +43 -43
  64. package/dist/components/pages/admin/01/ui/AdminContent.svelte +14 -14
  65. package/dist/components/pages/admin/01/ui/AdminPanel.svelte +46 -46
  66. package/dist/components/pages/security/login/01/ui/FormRegister.svelte +28 -28
  67. package/dist/components/pages/security/login/01/ui/LoginCard.svelte +107 -107
  68. package/dist/components/pages/security/login/PageLogin.svelte +22 -22
  69. package/dist/components/ui/badge/badge.svelte +49 -49
  70. package/dist/components/ui/button/button.svelte +82 -82
  71. package/dist/components/ui/chart/chart-container.svelte +80 -80
  72. package/dist/components/ui/chart/chart-style.svelte +37 -37
  73. package/dist/components/ui/chart/chart-tooltip.svelte +184 -184
  74. package/dist/components/ui/checkbox/checkbox.svelte +40 -40
  75. package/dist/components/ui/data-table/flex-render.svelte +40 -40
  76. package/dist/components/ui/drawer/drawer-close.svelte +7 -7
  77. package/dist/components/ui/drawer/drawer-content.svelte +33 -33
  78. package/dist/components/ui/drawer/drawer-description.svelte +17 -17
  79. package/dist/components/ui/drawer/drawer-footer.svelte +20 -20
  80. package/dist/components/ui/drawer/drawer-header.svelte +20 -20
  81. package/dist/components/ui/drawer/drawer-nested.svelte +12 -12
  82. package/dist/components/ui/drawer/drawer-overlay.svelte +17 -17
  83. package/dist/components/ui/drawer/drawer-portal.svelte +7 -7
  84. package/dist/components/ui/drawer/drawer-title.svelte +17 -17
  85. package/dist/components/ui/drawer/drawer-trigger.svelte +7 -7
  86. package/dist/components/ui/drawer/drawer.svelte +12 -12
  87. package/dist/components/ui/select/select-content.svelte +45 -45
  88. package/dist/components/ui/select/select-group-heading.svelte +21 -21
  89. package/dist/components/ui/select/select-group.svelte +17 -17
  90. package/dist/components/ui/select/select-item.svelte +41 -41
  91. package/dist/components/ui/select/select-label.svelte +20 -20
  92. package/dist/components/ui/select/select-portal.svelte +7 -7
  93. package/dist/components/ui/select/select-scroll-down-button.svelte +21 -21
  94. package/dist/components/ui/select/select-scroll-up-button.svelte +21 -21
  95. package/dist/components/ui/select/select-separator.svelte +18 -18
  96. package/dist/components/ui/select/select-trigger.svelte +30 -30
  97. package/dist/components/ui/select/select.svelte +11 -11
  98. package/dist/components/ui/sidebar/sidebar-menu-sub-button.svelte +39 -39
  99. package/dist/components/ui/star-rating/star-rating-star.svelte +41 -41
  100. package/dist/components/ui/star-rating/star-rating.svelte +20 -20
  101. package/dist/components/ui/table/table-body.svelte +15 -15
  102. package/dist/components/ui/table/table-caption.svelte +20 -20
  103. package/dist/components/ui/table/table-cell.svelte +15 -15
  104. package/dist/components/ui/table/table-footer.svelte +20 -20
  105. package/dist/components/ui/table/table-head.svelte +15 -15
  106. package/dist/components/ui/table/table-header.svelte +20 -20
  107. package/dist/components/ui/table/table-row.svelte +15 -15
  108. package/dist/components/ui/table/table.svelte +17 -17
  109. package/dist/components/ui/tabs/tabs-content.svelte +17 -17
  110. package/dist/components/ui/tabs/tabs-list.svelte +40 -40
  111. package/dist/components/ui/tabs/tabs-trigger.svelte +23 -23
  112. package/dist/components/ui/tabs/tabs.svelte +19 -19
  113. package/dist/globals.css +8 -38
  114. package/dist/styles/globals.css +149 -149
  115. 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}