negodesign 0.0.55 → 0.0.57

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 (216) hide show
  1. package/dist/components/core/banner/AdCardBanner.svelte +74 -74
  2. package/dist/components/core/banner/CtaCardBanner.svelte +118 -118
  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 +103 -103
  9. package/dist/components/core/card/highlight/02/CardHighlight02.svelte +99 -99
  10. package/dist/components/core/card/highlight/CardHighlight.svelte +22 -22
  11. package/dist/components/core/card/media/01/CardMedia01.svelte +133 -133
  12. package/dist/components/core/card/media/02/CardMedia02.svelte +127 -127
  13. package/dist/components/core/card/media/CardMedia.svelte +18 -18
  14. package/dist/components/core/card/product/01/CardProduct01.svelte +136 -136
  15. package/dist/components/core/card/product/02/CardProduct02.svelte +124 -124
  16. package/dist/components/core/card/product/CardProduct.svelte +22 -22
  17. package/dist/components/core/card/profile/01/CardProfile01.svelte +134 -134
  18. package/dist/components/core/card/profile/02/CardProfile02.svelte +132 -132
  19. package/dist/components/core/card/profile/CardProfile.svelte +18 -18
  20. package/dist/components/core/card/promotion/CardPromotion.svelte +139 -139
  21. package/dist/components/core/card/promotion/CardPromotionPrice.svelte +32 -32
  22. package/dist/components/core/card/shared/CardButton.svelte +42 -42
  23. package/dist/components/core/card/shared/CardCart.svelte +36 -36
  24. package/dist/components/core/card/shared/CardDescription.svelte +41 -41
  25. package/dist/components/core/card/shared/CardFavorite.svelte +33 -33
  26. package/dist/components/core/card/shared/CardLogo.svelte +19 -19
  27. package/dist/components/core/card/shared/CardPhoneOrWhatsapp.svelte +45 -45
  28. package/dist/components/core/card/shared/CardStarRating.svelte +24 -24
  29. package/dist/components/core/card/shared/CardTags.svelte +95 -95
  30. package/dist/components/core/card/shared/CardThumbnailVideo.svelte +232 -232
  31. package/dist/components/core/card/shared/CardTitlePrice.svelte +24 -24
  32. package/dist/components/core/card/shared/TruncatableText.svelte +49 -49
  33. package/dist/components/core/card/types.d.ts +4 -0
  34. package/dist/components/core/carousel/badge/type.d.ts +27 -0
  35. package/dist/components/core/carousel/badge/ui/CarouselBadge.svelte +109 -109
  36. package/dist/components/core/carousel/grid/media/types.d.ts +3 -0
  37. package/dist/components/core/carousel/grid/media/ui/CarouselGridMedia.svelte +2 -1
  38. package/dist/components/core/carousel/grid/product/types.d.ts +8 -0
  39. package/dist/components/core/carousel/grid/product/ui/CarouselGridProduct.svelte +14 -4
  40. package/dist/components/core/carousel/grid/profile/ui/CarouselGridProfile.svelte +1 -1
  41. package/dist/components/core/carousel/grid/promotion/ui/CarouselGridPromotion.svelte +1 -1
  42. package/dist/components/core/carousel/grid/shared/ui/CarouselGridSlot.svelte +8 -3
  43. package/dist/components/core/carousel/grid/shared/ui/CarouselGridSlot.svelte.d.ts +2 -1
  44. package/dist/components/core/carousel/hero/types.d.ts +30 -0
  45. package/dist/components/core/carousel/hero/{CarouselHero.svelte → ui/CarouselHero.svelte} +163 -161
  46. package/dist/components/core/carousel/shared/ui/CarouselHeader.svelte +60 -60
  47. package/dist/components/core/carousel/types.d.ts +2 -56
  48. package/dist/components/core/datatable/ui/DataTableActions.svelte +28 -28
  49. package/dist/components/core/datatable/ui/DataTableCheckbox.svelte +22 -22
  50. package/dist/components/core/datatable/ui/DataTableContent.svelte +59 -59
  51. package/dist/components/core/datatable/ui/DataTableCore.svelte +151 -151
  52. package/dist/components/core/datatable/ui/DataTableDragHandle.svelte +8 -8
  53. package/dist/components/core/datatable/ui/DataTableListFilter.svelte +59 -59
  54. package/dist/components/core/datatable/ui/DataTableListPagination.svelte +35 -35
  55. package/dist/components/core/footer/ui/Footer.svelte +18 -18
  56. package/dist/components/core/form/ui/input-base.svelte +81 -81
  57. package/dist/components/core/form/ui/input-email-or-phone.svelte +23 -23
  58. package/dist/components/core/form/ui/input-email.svelte +23 -23
  59. package/dist/components/core/form/ui/input-password-confirm.svelte +23 -23
  60. package/dist/components/core/form/ui/input-password.svelte +23 -23
  61. package/dist/components/core/form/ui/input-phone.svelte +33 -33
  62. package/dist/components/core/form/ui/input-username.svelte +22 -22
  63. package/dist/components/core/grid/data/types.d.ts +16 -0
  64. package/dist/components/core/grid/ui/01/Grid01.svelte +27 -0
  65. package/dist/components/core/grid/ui/01/Grid01.svelte.d.ts +4 -0
  66. package/dist/components/core/grid/ui/02/Grid02.svelte +27 -0
  67. package/dist/components/core/grid/ui/02/Grid02.svelte.d.ts +4 -0
  68. package/dist/components/core/grid/ui/PanelGrid.svelte +27 -0
  69. package/dist/components/core/grid/ui/PanelGrid.svelte.d.ts +4 -0
  70. package/dist/components/core/grid/ui/SimpleGrid.svelte +35 -0
  71. package/dist/components/core/grid/ui/SimpleGrid.svelte.d.ts +4 -0
  72. package/dist/components/core/grid/ui/shared/DescriptionGrid.svelte +17 -0
  73. package/dist/components/core/grid/ui/shared/DescriptionGrid.svelte.d.ts +7 -0
  74. package/dist/components/core/grid/ui/shared/IconRenderGrid.svelte +16 -0
  75. package/dist/components/core/grid/ui/shared/IconRenderGrid.svelte.d.ts +7 -0
  76. package/dist/components/core/grid/ui/shared/TitleGrid.svelte +11 -0
  77. package/dist/components/core/grid/ui/shared/TitleGrid.svelte.d.ts +7 -0
  78. package/dist/components/core/hero/SimpleHero.svelte +65 -65
  79. package/dist/components/core/label/LabelOr.svelte +25 -25
  80. package/dist/components/core/link/link-forget-password.svelte +12 -12
  81. package/dist/components/core/link/link-privacy-polity.svelte +12 -12
  82. package/dist/components/core/link/link-terms-of-service.svelte +12 -12
  83. package/dist/components/core/nav/data/complex-menu-utils.d.ts +7 -0
  84. package/dist/components/core/nav/data/complex-menu-utils.js +15 -0
  85. package/dist/components/core/nav/data/nav-menu.d.ts +21 -7
  86. package/dist/components/core/nav/{ui/shared → data}/types.d.ts +15 -2
  87. package/dist/components/core/nav/ui/ComplexMenu.svelte +36 -0
  88. package/dist/components/core/nav/ui/ComplexMenu.svelte.d.ts +4 -0
  89. package/dist/components/core/nav/ui/Menu.svelte +70 -66
  90. package/dist/components/core/nav/ui/Menu.svelte.d.ts +1 -1
  91. package/dist/components/core/nav/ui/SimpleMenu.svelte +14 -0
  92. package/dist/components/core/nav/ui/SimpleMenu.svelte.d.ts +4 -0
  93. package/dist/components/core/nav/ui/mobile/ComplexMenuMobile.svelte +98 -0
  94. package/dist/components/core/nav/ui/mobile/ComplexMenuMobile.svelte.d.ts +4 -0
  95. package/dist/components/core/nav/ui/mobile/MenuMobile.svelte +54 -0
  96. package/dist/components/core/nav/ui/mobile/MenuMobile.svelte.d.ts +11 -0
  97. package/dist/components/core/nav/ui/mobile/SimpleMenuMobile.svelte +42 -0
  98. package/dist/components/core/nav/ui/mobile/{nav-menu-drawer.svelte.d.ts → SimpleMenuMobile.svelte.d.ts} +3 -3
  99. package/dist/components/core/nav/ui/shared/CollapsibleNavMenu.svelte +24 -0
  100. package/dist/components/core/nav/ui/shared/CollapsibleNavMenu.svelte.d.ts +8 -0
  101. package/dist/components/core/nav/ui/shared/MenuButton.svelte +51 -0
  102. package/dist/components/core/nav/ui/shared/MenuButton.svelte.d.ts +4 -0
  103. package/dist/components/core/nav/ui/shared/MenuLinks.svelte +40 -40
  104. package/dist/components/core/nav/ui/shared/MenuListItem.svelte +48 -48
  105. package/dist/components/core/nav/ui/shared/MenuListItem.svelte.d.ts +1 -1
  106. package/dist/components/core/nav/ui/shared/MenuLogo.svelte +13 -0
  107. package/dist/components/core/nav/ui/shared/MenuLogo.svelte.d.ts +4 -0
  108. package/dist/components/core/nav/ui/shared/NavMenuItem.svelte +28 -0
  109. package/dist/components/core/nav/ui/shared/NavMenuItem.svelte.d.ts +4 -0
  110. package/dist/components/core/nav/ui/shared/dropdown/DropdownMenuListItem.svelte +40 -0
  111. package/dist/components/core/nav/ui/shared/dropdown/DropdownMenuListItem.svelte.d.ts +4 -0
  112. package/dist/components/core/nav/ui/shared/dropdown/DropdownNavigationMenuItem.svelte +12 -0
  113. package/dist/components/core/nav/ui/shared/dropdown/DropdownNavigationMenuItem.svelte.d.ts +4 -0
  114. package/dist/components/core/nav/ui/shared/dropdown/DropdownNavigationMenuItemCard.svelte +49 -0
  115. package/dist/components/core/nav/ui/shared/dropdown/DropdownNavigationMenuItemCard.svelte.d.ts +4 -0
  116. package/dist/components/core/nav/ui/shared/dropdown/DropdownNavigationMenuItemGrid.svelte +30 -0
  117. package/dist/components/core/nav/ui/shared/dropdown/DropdownNavigationMenuItemGrid.svelte.d.ts +4 -0
  118. package/dist/components/core/nav/ui/shared/dropdown/DropdownNavigationMenuItemList.svelte +24 -0
  119. package/dist/components/core/nav/ui/shared/dropdown/DropdownNavigationMenuItemList.svelte.d.ts +4 -0
  120. package/dist/components/core/nav/ui/shared/dropdown/DropdownNavigationMenuItems.svelte +24 -0
  121. package/dist/components/core/nav/ui/shared/dropdown/DropdownNavigationMenuItems.svelte.d.ts +4 -0
  122. package/dist/components/core/nav/ui/shared/{NavigationMenuItem.svelte → navigation/NavigationMenuItem.svelte} +15 -15
  123. package/dist/components/core/nav/ui/shared/{NavigationMenuItem.svelte.d.ts → navigation/NavigationMenuItem.svelte.d.ts} +1 -1
  124. package/dist/components/core/nav/ui/shared/{NavigationMenuItemCard.svelte → navigation/NavigationMenuItemCard.svelte} +62 -62
  125. package/dist/components/core/nav/ui/shared/{NavigationMenuItemCard.svelte.d.ts → navigation/NavigationMenuItemCard.svelte.d.ts} +1 -1
  126. package/dist/components/core/nav/ui/shared/{NavigationMenuItemGrid.svelte → navigation/NavigationMenuItemGrid.svelte} +32 -32
  127. package/dist/components/core/nav/ui/shared/{NavigationMenuItemGrid.svelte.d.ts → navigation/NavigationMenuItemGrid.svelte.d.ts} +1 -1
  128. package/dist/components/core/nav/ui/shared/{NavigationMenuItemList.svelte → navigation/NavigationMenuItemList.svelte} +24 -24
  129. package/dist/components/core/nav/ui/shared/{NavigationMenuItemList.svelte.d.ts → navigation/NavigationMenuItemList.svelte.d.ts} +1 -1
  130. package/dist/components/core/nav/ui/shared/{NavigationMenuItems.svelte → navigation/NavigationMenuItems.svelte} +21 -21
  131. package/dist/components/core/nav/ui/shared/{NavigationMenuItems.svelte.d.ts → navigation/NavigationMenuItems.svelte.d.ts} +1 -1
  132. package/dist/components/core/panel/CarouselSlot.svelte +57 -57
  133. package/dist/components/core/panel/LeftHero.svelte +117 -117
  134. package/dist/components/core/search/SearchInput.svelte +32 -32
  135. package/dist/components/core/search/shared/SearchInputCore.svelte +66 -66
  136. package/dist/components/core/sidebar/MenuBarSidebar.svelte +70 -70
  137. package/dist/components/core/sidebar/MenuBarSidebar.svelte.d.ts +2 -2
  138. package/dist/components/core/sidebar/data/nav-menu-sidebar.js +1 -0
  139. package/dist/components/core/sidebar/data/nav-top-bar-sidebar.js +1 -0
  140. package/dist/components/core/sidebar/data/nav-user-sidebar.js +1 -0
  141. package/dist/components/core/sidebar/types.d.ts +2 -2
  142. package/dist/components/core/sidebar/ui/navbar/NavMenuBarSidebar.svelte +97 -97
  143. package/dist/components/core/sidebar/ui/navbar/NavMenuBarSidebar.svelte.d.ts +1 -1
  144. package/dist/components/core/sidebar/ui/navbar/NavMenuBottomSidebar.svelte +33 -33
  145. package/dist/components/core/sidebar/ui/navbar/NavMenuBottomSidebar.svelte.d.ts +1 -1
  146. package/dist/components/core/sidebar/ui/navbar/NavMenuTopBarSidebar.svelte +103 -103
  147. package/dist/components/core/sidebar/ui/navbar/NavMenuTopBarSidebar.svelte.d.ts +1 -1
  148. package/dist/components/core/tabs/ui/tab-underline.svelte +43 -43
  149. package/dist/components/pages/admin/01/ui/AdminContent.svelte +14 -14
  150. package/dist/components/pages/admin/01/ui/AdminPanel.svelte +46 -46
  151. package/dist/components/pages/privacy-policy-or-terms-of-use/types.d.ts +2 -0
  152. package/dist/components/pages/security/login/01/ui/FormRegister.svelte +28 -28
  153. package/dist/components/pages/security/login/01/ui/LoginCard.svelte +107 -107
  154. package/dist/components/pages/security/login/PageLogin.svelte +22 -22
  155. package/dist/components/ui/badge/badge.svelte +49 -49
  156. package/dist/components/ui/button/button.svelte +82 -82
  157. package/dist/components/ui/chart/chart-container.svelte +80 -80
  158. package/dist/components/ui/chart/chart-style.svelte +37 -37
  159. package/dist/components/ui/chart/chart-tooltip.svelte +184 -184
  160. package/dist/components/ui/checkbox/checkbox.svelte +40 -40
  161. package/dist/components/ui/data-table/flex-render.svelte +40 -40
  162. package/dist/components/ui/drawer/drawer-close.svelte +7 -7
  163. package/dist/components/ui/drawer/drawer-content.svelte +33 -33
  164. package/dist/components/ui/drawer/drawer-description.svelte +17 -17
  165. package/dist/components/ui/drawer/drawer-footer.svelte +20 -20
  166. package/dist/components/ui/drawer/drawer-header.svelte +20 -20
  167. package/dist/components/ui/drawer/drawer-nested.svelte +12 -12
  168. package/dist/components/ui/drawer/drawer-overlay.svelte +17 -17
  169. package/dist/components/ui/drawer/drawer-portal.svelte +7 -7
  170. package/dist/components/ui/drawer/drawer-title.svelte +17 -17
  171. package/dist/components/ui/drawer/drawer-trigger.svelte +7 -7
  172. package/dist/components/ui/drawer/drawer.svelte +12 -12
  173. package/dist/components/ui/select/select-content.svelte +45 -45
  174. package/dist/components/ui/select/select-group-heading.svelte +21 -21
  175. package/dist/components/ui/select/select-group.svelte +17 -17
  176. package/dist/components/ui/select/select-item.svelte +41 -41
  177. package/dist/components/ui/select/select-label.svelte +20 -20
  178. package/dist/components/ui/select/select-portal.svelte +7 -7
  179. package/dist/components/ui/select/select-scroll-down-button.svelte +21 -21
  180. package/dist/components/ui/select/select-scroll-up-button.svelte +21 -21
  181. package/dist/components/ui/select/select-separator.svelte +18 -18
  182. package/dist/components/ui/select/select-trigger.svelte +30 -30
  183. package/dist/components/ui/select/select.svelte +11 -11
  184. package/dist/components/ui/sidebar/sidebar-menu-sub-button.svelte +39 -39
  185. package/dist/components/ui/star-rating/star-rating-star.svelte +41 -41
  186. package/dist/components/ui/star-rating/star-rating.svelte +20 -20
  187. package/dist/components/ui/table/table-body.svelte +15 -15
  188. package/dist/components/ui/table/table-caption.svelte +20 -20
  189. package/dist/components/ui/table/table-cell.svelte +15 -15
  190. package/dist/components/ui/table/table-footer.svelte +20 -20
  191. package/dist/components/ui/table/table-head.svelte +15 -15
  192. package/dist/components/ui/table/table-header.svelte +20 -20
  193. package/dist/components/ui/table/table-row.svelte +15 -15
  194. package/dist/components/ui/table/table.svelte +17 -17
  195. package/dist/components/ui/tabs/tabs-content.svelte +17 -17
  196. package/dist/components/ui/tabs/tabs-list.svelte +40 -40
  197. package/dist/components/ui/tabs/tabs-trigger.svelte +23 -23
  198. package/dist/components/ui/tabs/tabs.svelte +19 -19
  199. package/dist/globals.css +56 -2
  200. package/dist/index.d.ts +1 -8
  201. package/dist/index.js +1 -8
  202. package/dist/styles/globals.css +149 -149
  203. package/dist/styles/hgi-stroke-rounded.css +1 -1
  204. package/dist/types/index.d.ts +9 -7
  205. package/package.json +113 -113
  206. package/dist/components/core/nav/ui/NavMenu.svelte +0 -122
  207. package/dist/components/core/nav/ui/NavMenu.svelte.d.ts +0 -4
  208. package/dist/components/core/nav/ui/mobile/nav-menu-drawer.svelte +0 -85
  209. package/dist/components/core/{nav/data/nav-menu-sidebar.js → carousel/badge/type.js} +0 -0
  210. package/dist/components/core/{nav/ui/shared → carousel/hero}/types.js +0 -0
  211. package/dist/components/core/carousel/hero/{CarouselHero.svelte.d.ts → ui/CarouselHero.svelte.d.ts} +1 -1
  212. /package/dist/components/core/{nav/data/nav-top-bar-sidebar.js → grid/data/types.js} +0 -0
  213. /package/dist/components/core/nav/data/{nav-user-sidebar.js → types.js} +0 -0
  214. /package/dist/components/core/{nav → sidebar}/data/nav-menu-sidebar.d.ts +0 -0
  215. /package/dist/components/core/{nav → sidebar}/data/nav-top-bar-sidebar.d.ts +0 -0
  216. /package/dist/components/core/{nav → sidebar}/data/nav-user-sidebar.d.ts +0 -0
@@ -1,18 +1,18 @@
1
- <script lang="ts">
2
- import Footer01 from "./01/Footer01.svelte";
3
- import Footer02 from "./02/Footer02.svelte";
4
- import type { FooterProps } from "../types";
5
-
6
- let {
7
- variant = 1,
8
- ...restProps
9
- }: FooterProps & {
10
- variant?: 1 | 2;
11
- } = $props();
12
- </script>
13
-
14
- {#if variant === 2}
15
- <Footer02 {...restProps} />
16
- {:else}
17
- <Footer01 {...restProps} />
18
- {/if}
1
+ <script lang="ts">
2
+ import Footer01 from "./01/Footer01.svelte";
3
+ import Footer02 from "./02/Footer02.svelte";
4
+ import type { FooterProps } from "../types";
5
+
6
+ let {
7
+ variant = 1,
8
+ ...restProps
9
+ }: FooterProps & {
10
+ variant?: 1 | 2;
11
+ } = $props();
12
+ </script>
13
+
14
+ {#if variant === 2}
15
+ <Footer02 {...restProps} />
16
+ {:else}
17
+ <Footer01 {...restProps} />
18
+ {/if}
@@ -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
+ />
@@ -0,0 +1,16 @@
1
+ import type { IconSvgElement } from "@hugeicons/svelte";
2
+ export interface ItemGridProps {
3
+ id?: string | number;
4
+ title: string;
5
+ description?: string;
6
+ titleClass?: string;
7
+ descriptionClass?: string;
8
+ icon: string | IconSvgElement;
9
+ onClick?: (id: string | number) => void;
10
+ }
11
+ export interface GridProps {
12
+ items?: ItemGridProps[];
13
+ className?: string;
14
+ variant?: 1 | 2;
15
+ onClick?: (id: string | number) => void;
16
+ }
@@ -0,0 +1,27 @@
1
+ <script lang="ts">
2
+ import type { ItemGridProps } from "../../data/types";
3
+ import DescriptionGrid from "../shared/DescriptionGrid.svelte";
4
+ import IconRenderGrid from "../shared/IconRenderGrid.svelte";
5
+ import TitleGrid from "../shared/TitleGrid.svelte";
6
+
7
+ let {
8
+ id,
9
+ icon,
10
+ title,
11
+ description,
12
+ titleClass,
13
+ descriptionClass,
14
+ onClick,
15
+ }: ItemGridProps = $props();
16
+ </script>
17
+
18
+ <button
19
+ onclick={() => {
20
+ if (id && onClick) onClick(id);
21
+ }}
22
+ class="flex flex-col justify-center items-center gap-2"
23
+ >
24
+ <IconRenderGrid {icon} />
25
+ <TitleGrid {titleClass} {title} />
26
+ <DescriptionGrid {descriptionClass} {description} />
27
+ </button>
@@ -0,0 +1,4 @@
1
+ import type { ItemGridProps } from "../../data/types";
2
+ declare const Grid01: import("svelte").Component<ItemGridProps, {}, "">;
3
+ type Grid01 = ReturnType<typeof Grid01>;
4
+ export default Grid01;
@@ -0,0 +1,27 @@
1
+ <script lang="ts">
2
+ import type { ItemGridProps } from "../../data/types";
3
+ import DescriptionGrid from "../shared/DescriptionGrid.svelte";
4
+ import IconRenderGrid from "../shared/IconRenderGrid.svelte";
5
+ import TitleGrid from "../shared/TitleGrid.svelte";
6
+
7
+ let {
8
+ id,
9
+ icon,
10
+ title,
11
+ description,
12
+ titleClass,
13
+ descriptionClass,
14
+ onClick,
15
+ }: ItemGridProps = $props();
16
+ </script>
17
+
18
+ <button
19
+ onclick={() => {
20
+ if (id && onClick) onClick(id);
21
+ }}
22
+ class="flex flex-col justify-center items-center gap-2 border rounded-lg p-2 cursor-pointer"
23
+ >
24
+ <IconRenderGrid {icon} />
25
+ <TitleGrid {titleClass} {title} />
26
+ <DescriptionGrid {descriptionClass} {description} />
27
+ </button>
@@ -0,0 +1,4 @@
1
+ import type { ItemGridProps } from "../../data/types";
2
+ declare const Grid02: import("svelte").Component<ItemGridProps, {}, "">;
3
+ type Grid02 = ReturnType<typeof Grid02>;
4
+ export default Grid02;
@@ -0,0 +1,27 @@
1
+ <script lang="ts">
2
+ import { useDevice } from "../../../../hooks/responsive.svelte";
3
+ import type { GridProps } from "../data/types";
4
+ import Grid02 from "./02/Grid02.svelte";
5
+ import Grid01 from "./01/Grid01.svelte";
6
+
7
+ let { variant, className, onClick, items }: GridProps = $props();
8
+
9
+ const styleMobile = "flex justify-between overflow-x-auto no-scrollbar";
10
+
11
+ const responsive = useDevice();
12
+ </script>
13
+
14
+ <div
15
+ class="gap-4 my-2 {responsive.isMobile
16
+ ? styleMobile
17
+ : 'grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 max-h-237.5 overflow-y-auto'}
18
+ {className}"
19
+ >
20
+ {#each items as item, i (i)}
21
+ {#if variant == 2}
22
+ <Grid02 {...item} {onClick} />
23
+ {:else}
24
+ <Grid01 {...item} {onClick} />
25
+ {/if}
26
+ {/each}
27
+ </div>
@@ -0,0 +1,4 @@
1
+ import type { GridProps } from "../data/types";
2
+ declare const PanelGrid: import("svelte").Component<GridProps, {}, "">;
3
+ type PanelGrid = ReturnType<typeof PanelGrid>;
4
+ export default PanelGrid;
@@ -0,0 +1,35 @@
1
+ <script lang="ts">
2
+ import { useDevice } from "../../../../hooks/responsive.svelte";
3
+ import type { GridProps } from "../data/types";
4
+ import Grid02 from "./02/Grid02.svelte";
5
+ import Grid01 from "./01/Grid01.svelte";
6
+
7
+ let { variant, className, items }: GridProps = $props();
8
+
9
+ const styleMobile = "flex justify-between overflow-x-auto no-scrollbar";
10
+
11
+ const cols = (): string => {
12
+ const len = items?.length ?? 0;
13
+ if (len <= 3) return "grid grid-cols-3";
14
+ if (len <= 4) return "grid grid-cols-4";
15
+ if (len <= 5) return "grid grid-cols-5";
16
+ if (len <= 6) return "grid grid-cols-6";
17
+ if (len <= 7) return "grid grid-cols-7";
18
+ if (len > 7) return styleMobile;
19
+ return "grid grid-cols-1";
20
+ };
21
+
22
+ const responsive = useDevice();
23
+ </script>
24
+
25
+ <div
26
+ class="{responsive.isMobile ? styleMobile : cols()} gap-4 my-2 {className}"
27
+ >
28
+ {#each items as item, i (i)}
29
+ {#if variant == 2}
30
+ <Grid02 {...item} />
31
+ {:else}
32
+ <Grid01 {...item} />
33
+ {/if}
34
+ {/each}
35
+ </div>
@@ -0,0 +1,4 @@
1
+ import type { GridProps } from "../data/types";
2
+ declare const SimpleGrid: import("svelte").Component<GridProps, {}, "">;
3
+ type SimpleGrid = ReturnType<typeof SimpleGrid>;
4
+ export default SimpleGrid;