negodesign 0.0.11 → 0.0.12

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 (215) hide show
  1. package/dist/components/NegoDesign.svelte +1 -1
  2. package/dist/components/NegoDesign.svelte.d.ts +1 -1
  3. package/dist/components/core/button/ButtonBack.svelte +1 -1
  4. package/dist/components/core/button/ButtonLogin.svelte +1 -1
  5. package/dist/components/core/button/ButtonLoginWith.svelte +1 -1
  6. package/dist/components/core/button/ButtonSend.svelte +1 -1
  7. package/dist/components/core/card/media/01/CardMedia01.svelte +114 -0
  8. package/dist/components/core/card/media/01/CardMedia01.svelte.d.ts +4 -0
  9. package/dist/components/core/card/media/02/CardMedia02.svelte +113 -0
  10. package/dist/components/core/card/media/02/CardMedia02.svelte.d.ts +4 -0
  11. package/dist/components/core/card/media/CardMedia.svelte +17 -0
  12. package/dist/components/core/card/media/CardMedia.svelte.d.ts +8 -0
  13. package/dist/components/core/card/media/data.d.ts +3 -0
  14. package/dist/components/core/card/media/data.js +117 -0
  15. package/dist/components/core/card/profile/01/CardProfile01.svelte +101 -0
  16. package/dist/components/core/card/profile/01/CardProfile01.svelte.d.ts +4 -0
  17. package/dist/components/core/card/profile/02/CardProfile02.svelte +97 -0
  18. package/dist/components/core/card/profile/02/CardProfile02.svelte.d.ts +4 -0
  19. package/dist/components/core/card/profile/CardProfile.svelte +17 -0
  20. package/dist/components/core/card/profile/CardProfile.svelte.d.ts +8 -0
  21. package/dist/components/core/card/profile/data.d.ts +3 -0
  22. package/dist/components/core/card/profile/data.js +107 -0
  23. package/dist/components/core/card/shared/CardButton.svelte +30 -0
  24. package/dist/components/core/card/shared/CardButton.svelte.d.ts +12 -0
  25. package/dist/components/core/card/shared/CardDescription.svelte +23 -0
  26. package/dist/components/core/card/shared/CardDescription.svelte.d.ts +6 -0
  27. package/dist/components/core/card/shared/CardFavorite.svelte +28 -0
  28. package/dist/components/core/card/shared/CardFavorite.svelte.d.ts +7 -0
  29. package/dist/components/core/card/shared/CardStarRating.svelte +20 -0
  30. package/dist/components/core/card/shared/CardStarRating.svelte.d.ts +7 -0
  31. package/dist/components/core/card/shared/CardTags.svelte +56 -0
  32. package/dist/components/core/card/shared/CardTags.svelte.d.ts +10 -0
  33. package/dist/components/core/card/shared/CardThumbnailVideo.svelte +170 -0
  34. package/dist/components/core/card/shared/CardThumbnailVideo.svelte.d.ts +10 -0
  35. package/dist/components/core/card/shared/TruncatableText.svelte +56 -0
  36. package/dist/components/core/card/shared/TruncatableText.svelte.d.ts +8 -0
  37. package/dist/components/core/card/types.d.ts +44 -0
  38. package/dist/components/core/carousel/types.d.ts +23 -0
  39. package/dist/components/core/carousel/ui/SimpleCarousel.svelte +62 -0
  40. package/dist/components/core/carousel/ui/SimpleCarousel.svelte.d.ts +4 -0
  41. package/dist/components/core/datatable/ui/DataTableCore.svelte +5 -5
  42. package/dist/components/core/form/ui/input-code-otp.svelte +3 -3
  43. package/dist/components/core/form/ui/input-code-otp.svelte.d.ts +2 -2
  44. package/dist/components/core/form/ui/input-email-or-phone.svelte +1 -1
  45. package/dist/components/core/form/ui/input-email.svelte +1 -1
  46. package/dist/components/core/form/ui/input-password-confirm.svelte +1 -1
  47. package/dist/components/core/form/ui/input-password.svelte +1 -1
  48. package/dist/components/core/form/ui/input-phone.svelte +1 -1
  49. package/dist/components/core/form/ui/input-username.svelte +2 -2
  50. package/dist/components/core/nav/data/nav-menu-sidebar.d.ts +7 -7
  51. package/dist/components/core/nav/data/nav-menu.d.ts +31 -0
  52. package/dist/components/core/nav/data/nav-user-sidebar.d.ts +1 -1
  53. package/dist/components/core/nav/ui/menu-links.svelte +28 -0
  54. package/dist/components/core/nav/ui/menu-links.svelte.d.ts +10 -0
  55. package/dist/components/core/nav/ui/mobile/nav-menu-drawer.svelte +85 -0
  56. package/dist/components/core/nav/ui/mobile/nav-menu-drawer.svelte.d.ts +9 -0
  57. package/dist/components/core/nav/ui/{nav-menu-bottom-bar.svelte → nav-menu-bottom-sidebar.svelte} +2 -2
  58. package/dist/components/core/nav/ui/nav-menu-bottom-sidebar.svelte.d.ts +10 -0
  59. package/dist/components/core/nav/ui/nav-menu-header-sidebar.svelte.d.ts +10 -0
  60. package/dist/components/core/nav/ui/{nav-menu-bar.svelte → nav-menu-sidebar.svelte} +7 -7
  61. package/dist/components/core/nav/ui/nav-menu-sidebar.svelte.d.ts +7 -0
  62. package/dist/components/core/nav/ui/nav-menu-top-bar-sidebar.svelte.d.ts +4 -0
  63. package/dist/components/core/nav/ui/nav-menu.svelte +98 -0
  64. package/dist/components/core/nav/ui/nav-menu.svelte.d.ts +4 -0
  65. package/dist/components/core/nav/ui/nav-user-sidebar.svelte +2 -2
  66. package/dist/components/core/nav/ui/nav-user-sidebar.svelte.d.ts +2 -2
  67. package/dist/components/core/panel/LeftHero.svelte +3 -3
  68. package/dist/components/core/panel/LeftHero.svelte.d.ts +2 -2
  69. package/dist/components/core/search/01/Search01.svelte +15 -0
  70. package/dist/components/core/search/01/Search01.svelte.d.ts +4 -0
  71. package/dist/components/core/search/02/Search02.svelte +15 -0
  72. package/dist/components/core/search/02/Search02.svelte.d.ts +4 -0
  73. package/dist/components/core/search/SearchInput.svelte +32 -0
  74. package/dist/components/core/search/SearchInput.svelte.d.ts +4 -0
  75. package/dist/components/core/search/shared/SearchInputCore.svelte +66 -0
  76. package/dist/components/core/search/shared/SearchInputCore.svelte.d.ts +4 -0
  77. package/dist/components/core/search/types.d.ts +15 -0
  78. package/dist/components/core/sidebar/MenuBarSidebar.svelte +14 -14
  79. package/dist/components/core/sidebar/MenuBarSidebar.svelte.d.ts +8 -8
  80. package/dist/components/pages/admin/{ui → 01/ui}/AdminContent.svelte +1 -1
  81. package/dist/components/pages/admin/{ui → 01/ui}/AdminContent.svelte.d.ts +1 -1
  82. package/dist/components/pages/admin/{ui → 01/ui}/AdminPanel.svelte +8 -8
  83. package/dist/components/pages/admin/{ui → 01/ui}/AdminPanel.svelte.d.ts +4 -4
  84. package/dist/components/pages/privacy-policy-or-terms-of-use/01/DocsSidebar.svelte +69 -0
  85. package/dist/components/pages/privacy-policy-or-terms-of-use/01/DocsSidebar.svelte.d.ts +10 -0
  86. package/dist/components/pages/privacy-policy-or-terms-of-use/01/PrivacyPolicyOrTermsOfUse01.svelte +73 -0
  87. package/dist/components/pages/privacy-policy-or-terms-of-use/01/PrivacyPolicyOrTermsOfUse01.svelte.d.ts +7 -0
  88. package/dist/components/pages/privacy-policy-or-terms-of-use/01/TableOfContents.svelte +37 -0
  89. package/dist/components/pages/privacy-policy-or-terms-of-use/01/TableOfContents.svelte.d.ts +8 -0
  90. package/dist/components/pages/privacy-policy-or-terms-of-use/02/DocsPageHero.svelte +59 -0
  91. package/dist/components/pages/privacy-policy-or-terms-of-use/02/DocsPageHero.svelte.d.ts +10 -0
  92. package/dist/components/pages/privacy-policy-or-terms-of-use/02/PageHero.svelte +51 -0
  93. package/dist/components/pages/privacy-policy-or-terms-of-use/02/PageHero.svelte.d.ts +14 -0
  94. package/dist/components/pages/privacy-policy-or-terms-of-use/02/PrivacyPolicyOrTermsOfUse02.svelte +24 -0
  95. package/dist/components/pages/privacy-policy-or-terms-of-use/02/PrivacyPolicyOrTermsOfUse02.svelte.d.ts +7 -0
  96. package/dist/components/pages/privacy-policy-or-terms-of-use/PrivacyPolicyOrTermsOfUse.svelte +32 -0
  97. package/dist/components/pages/privacy-policy-or-terms-of-use/PrivacyPolicyOrTermsOfUse.svelte.d.ts +4 -0
  98. package/dist/components/pages/privacy-policy-or-terms-of-use/shared/ContentBlockView.svelte +26 -0
  99. package/dist/components/pages/privacy-policy-or-terms-of-use/shared/ContentBlockView.svelte.d.ts +7 -0
  100. package/dist/components/pages/privacy-policy-or-terms-of-use/shared/DocSectionView.svelte +44 -0
  101. package/dist/components/pages/privacy-policy-or-terms-of-use/shared/DocSectionView.svelte.d.ts +7 -0
  102. package/dist/components/pages/privacy-policy-or-terms-of-use/shared/PrivacyPolicyOrTermsOfUseBreadcrumb.svelte +34 -0
  103. package/dist/components/pages/privacy-policy-or-terms-of-use/shared/PrivacyPolicyOrTermsOfUseBreadcrumb.svelte.d.ts +7 -0
  104. package/dist/components/pages/privacy-policy-or-terms-of-use/shared/toc.d.ts +8 -0
  105. package/dist/components/pages/privacy-policy-or-terms-of-use/shared/toc.js +14 -0
  106. package/dist/components/pages/privacy-policy-or-terms-of-use/types.d.ts +62 -0
  107. package/dist/components/pages/privacy-policy-or-terms-of-use/types.js +5 -0
  108. package/dist/components/pages/{forget-password → security/forget-password}/01/ui/ForgetPasswordCard.svelte +15 -10
  109. package/dist/components/pages/{forget-password → security/forget-password}/01/ui/ForgetPasswordCard.svelte.d.ts +0 -5
  110. package/dist/components/pages/{forget-password → security/forget-password}/01/ui/FormForgetPassword.svelte +15 -5
  111. package/dist/components/pages/{forget-password → security/forget-password}/01/ui/PageForgetPassword01.svelte +6 -6
  112. package/dist/components/pages/{forget-password → security/forget-password}/PageForgetPassword.svelte +10 -7
  113. package/dist/components/pages/{forget-password → security/forget-password}/PageForgetPassword.svelte.d.ts +0 -7
  114. package/dist/components/pages/{forget-password → security/forget-password}/types.d.ts +3 -3
  115. package/dist/components/pages/{login → security/login}/01/ui/FormLogin.svelte +19 -15
  116. package/dist/components/pages/{login → security/login}/01/ui/FormLogin.svelte.d.ts +0 -6
  117. package/dist/components/pages/{login → security/login}/01/ui/FormLoginEmailPassword.svelte +10 -1
  118. package/dist/components/pages/{login → security/login}/01/ui/FormLoginEmailPassword.svelte.d.ts +0 -1
  119. package/dist/components/pages/{login → security/login}/01/ui/FormLoginPhonePassword.svelte +10 -1
  120. package/dist/components/pages/{login → security/login}/01/ui/FormLoginPhonePassword.svelte.d.ts +0 -1
  121. package/dist/components/pages/{login → security/login}/01/ui/FormLoginUsernamePassword.svelte +10 -1
  122. package/dist/components/pages/{login → security/login}/01/ui/FormLoginUsernamePassword.svelte.d.ts +0 -1
  123. package/dist/components/pages/{login → security/login}/01/ui/FormRegister.svelte +5 -5
  124. package/dist/components/pages/{login → security/login}/01/ui/LoginCard.svelte +28 -20
  125. package/dist/components/pages/security/login/01/ui/LoginCard.svelte.d.ts +13 -0
  126. package/dist/components/pages/{login → security/login}/01/ui/PageLogin01.svelte +12 -11
  127. package/dist/components/pages/security/login/PageLogin.svelte +22 -0
  128. package/dist/components/pages/security/login/PageLogin.svelte.d.ts +8 -0
  129. package/dist/components/pages/security/login/types.d.ts +33 -0
  130. package/dist/components/pages/security/login/types.js +1 -0
  131. package/dist/components/pages/{otp-verification → security/otp-verification}/01/ui/FormOtpVerification.svelte +13 -3
  132. package/dist/components/pages/{otp-verification → security/otp-verification}/01/ui/OtpVerificationCard.svelte +15 -10
  133. package/dist/components/pages/{otp-verification → security/otp-verification}/01/ui/OtpVerificationCard.svelte.d.ts +0 -5
  134. package/dist/components/pages/{otp-verification → security/otp-verification}/01/ui/PageOtpVerification01.svelte +12 -6
  135. package/dist/components/pages/{otp-verification → security/otp-verification}/PageOtpVerification.svelte +10 -4
  136. package/dist/components/pages/{otp-verification → security/otp-verification}/PageOtpVerification.svelte.d.ts +0 -4
  137. package/dist/components/pages/{otp-verification → security/otp-verification}/types.d.ts +3 -3
  138. package/dist/components/pages/security/otp-verification/types.js +1 -0
  139. package/dist/components/pages/{reset-password → security/reset-password}/01/ui/FormResetPassword.svelte +15 -5
  140. package/dist/components/pages/{reset-password → security/reset-password}/01/ui/PageResetPassword01.svelte +12 -6
  141. package/dist/components/pages/{reset-password → security/reset-password}/01/ui/ResetPasswordCard.svelte +15 -10
  142. package/dist/components/pages/{reset-password → security/reset-password}/01/ui/ResetPasswordCard.svelte.d.ts +0 -5
  143. package/dist/components/pages/{reset-password → security/reset-password}/PageResetPassword.svelte +10 -4
  144. package/dist/components/pages/{reset-password → security/reset-password}/PageResetPassword.svelte.d.ts +0 -4
  145. package/dist/components/pages/{reset-password → security/reset-password}/types.d.ts +3 -3
  146. package/dist/components/pages/security/reset-password/types.js +1 -0
  147. package/dist/components/ui/button/button.svelte +82 -101
  148. package/dist/components/ui/button/button.svelte.d.ts +36 -63
  149. package/dist/components/ui/button/index.d.ts +2 -2
  150. package/dist/components/ui/button/index.js +2 -2
  151. package/dist/components/ui/carousel/carousel-content.svelte +43 -0
  152. package/dist/components/ui/carousel/carousel-content.svelte.d.ts +5 -0
  153. package/dist/components/ui/carousel/carousel-item.svelte +30 -0
  154. package/dist/components/ui/carousel/carousel-item.svelte.d.ts +5 -0
  155. package/dist/components/ui/carousel/carousel-next.svelte +40 -0
  156. package/dist/components/ui/carousel/carousel-next.svelte.d.ts +4 -0
  157. package/dist/components/ui/carousel/carousel-previous.svelte +40 -0
  158. package/dist/components/ui/carousel/carousel-previous.svelte.d.ts +4 -0
  159. package/dist/components/ui/carousel/carousel.svelte +94 -0
  160. package/dist/components/ui/carousel/carousel.svelte.d.ts +5 -0
  161. package/dist/components/ui/carousel/context.d.ts +31 -0
  162. package/dist/components/ui/carousel/context.js +12 -0
  163. package/dist/components/ui/carousel/index.d.ts +6 -0
  164. package/dist/components/ui/carousel/index.js +8 -0
  165. package/dist/components/ui/input-group/input-group-addon.svelte +6 -0
  166. package/dist/components/ui/input-group/input-group-addon.svelte.d.ts +6 -0
  167. package/dist/components/ui/light-switch/light-switch.svelte +17 -6
  168. package/dist/components/ui/light-switch/light-switch.svelte.d.ts +2 -2
  169. package/dist/components/ui/star-rating/index.d.ts +2 -0
  170. package/dist/components/ui/star-rating/index.js +2 -0
  171. package/dist/components/ui/star-rating/star-rating-star.svelte +41 -0
  172. package/dist/components/ui/star-rating/star-rating-star.svelte.d.ts +4 -0
  173. package/dist/components/ui/star-rating/star-rating.svelte +20 -0
  174. package/dist/components/ui/star-rating/star-rating.svelte.d.ts +4 -0
  175. package/dist/components/ui/star-rating/types.d.ts +5 -0
  176. package/dist/components/ui/star-rating/types.js +1 -0
  177. package/dist/globals.css +602 -36
  178. package/dist/hooks/responsive.svelte.d.ts +3 -0
  179. package/dist/hooks/responsive.svelte.js +18 -0
  180. package/dist/i18n/index.d.ts +2 -2
  181. package/dist/i18n/index.js +2 -2
  182. package/dist/i18n/langs/en.d.ts +22 -8
  183. package/dist/i18n/langs/en.js +22 -8
  184. package/dist/i18n/langs/pt.d.ts +22 -8
  185. package/dist/i18n/langs/pt.js +22 -8
  186. package/dist/i18n/translations.d.ts +44 -16
  187. package/dist/index.d.ts +14 -9
  188. package/dist/index.js +14 -9
  189. package/dist/styles/globals.css +143 -141
  190. package/dist/types/index.d.ts +4 -4
  191. package/package.json +11 -9
  192. package/dist/components/core/carousel/data/CarouselModel.d.ts +0 -11
  193. package/dist/components/core/nav/ui/nav-menu-bar.svelte.d.ts +0 -7
  194. package/dist/components/core/nav/ui/nav-menu-bottom-bar.svelte.d.ts +0 -10
  195. package/dist/components/core/nav/ui/nav-menu-header.svelte.d.ts +0 -10
  196. package/dist/components/core/nav/ui/nav-menu-top-bar.svelte.d.ts +0 -4
  197. package/dist/components/pages/login/01/ui/LoginCard.svelte.d.ts +0 -21
  198. package/dist/components/pages/login/PageLogin.svelte +0 -21
  199. package/dist/components/pages/login/PageLogin.svelte.d.ts +0 -17
  200. package/dist/components/pages/login/types.d.ts +0 -23
  201. /package/dist/components/{pages/forget-password → core/card}/types.js +0 -0
  202. /package/dist/components/{pages/login → core/carousel}/types.js +0 -0
  203. /package/dist/components/core/{carousel/data/CarouselModel.js → nav/data/nav-menu.js} +0 -0
  204. /package/dist/components/core/nav/ui/{nav-menu-header.svelte → nav-menu-header-sidebar.svelte} +0 -0
  205. /package/dist/components/core/nav/ui/{nav-menu-top-bar.svelte → nav-menu-top-bar-sidebar.svelte} +0 -0
  206. /package/dist/components/{pages/otp-verification → core/search}/types.js +0 -0
  207. /package/dist/components/pages/{forget-password → security/forget-password}/01/ui/FormForgetPassword.svelte.d.ts +0 -0
  208. /package/dist/components/pages/{forget-password → security/forget-password}/01/ui/PageForgetPassword01.svelte.d.ts +0 -0
  209. /package/dist/components/pages/{reset-password → security/forget-password}/types.js +0 -0
  210. /package/dist/components/pages/{login → security/login}/01/ui/FormRegister.svelte.d.ts +0 -0
  211. /package/dist/components/pages/{login → security/login}/01/ui/PageLogin01.svelte.d.ts +0 -0
  212. /package/dist/components/pages/{otp-verification → security/otp-verification}/01/ui/FormOtpVerification.svelte.d.ts +0 -0
  213. /package/dist/components/pages/{otp-verification → security/otp-verification}/01/ui/PageOtpVerification01.svelte.d.ts +0 -0
  214. /package/dist/components/pages/{reset-password → security/reset-password}/01/ui/FormResetPassword.svelte.d.ts +0 -0
  215. /package/dist/components/pages/{reset-password → security/reset-password}/01/ui/PageResetPassword01.svelte.d.ts +0 -0
@@ -0,0 +1,62 @@
1
+ <script lang="ts">
2
+ import * as Carousel from "../../../ui/carousel/index.js";
3
+ import type { SimpleCarouselProps } from "../types.js";
4
+ import { HugeiconsIcon } from "@hugeicons/svelte";
5
+
6
+ const {
7
+ items,
8
+ imageClass,
9
+ iconClass,
10
+ labelClass,
11
+ activeClass,
12
+ valueActive,
13
+ orientation = "horizontal",
14
+ isBorderItem = true,
15
+ isBorderBottom = true,
16
+ isButtonPreviousAndNext = true,
17
+ buttonPreviousAndNextClass = "",
18
+ }: SimpleCarouselProps = $props();
19
+
20
+ const DEFAULT_IMG_OR_ICON_CLASS = "size-5 rounded-lg";
21
+ </script>
22
+
23
+ <nav class={`relative py-3 px-2 ${isBorderBottom ? "border-b" : ""}`}>
24
+ <Carousel.Root>
25
+ <Carousel.Content class="ml-10">
26
+ {#each items as item (item.value)}
27
+ <Carousel.Item
28
+ onclick={() => item.onClick?.(item.value)}
29
+ class={`
30
+ flex cursor-pointer items-center justify-center gap-1 basis-auto mx-3 pl-0
31
+ ${isBorderItem ? "border border-solid border-gray-300 rounded-lg" : ""}
32
+ ${item.value === valueActive ? activeClass : ""}`}
33
+ >
34
+ <div class={`
35
+ flex gap-1 mx-2 p-0.5 justify-center items-center
36
+ ${orientation === "horizontal" ? "flex-row" : "flex-col"}
37
+ `}>
38
+ {#if item.image}
39
+ <img
40
+ src={item.image}
41
+ alt={item.label}
42
+ class={imageClass || DEFAULT_IMG_OR_ICON_CLASS}
43
+ />
44
+ {:else if item.icon}
45
+ <HugeiconsIcon
46
+ icon={item.icon}
47
+ class={iconClass || DEFAULT_IMG_OR_ICON_CLASS}
48
+ />
49
+ {/if}
50
+ <div class={`${labelClass}`}>{item.label}</div>
51
+ </div>
52
+ </Carousel.Item>
53
+ {/each}
54
+ </Carousel.Content>
55
+ {#if isButtonPreviousAndNext}
56
+ <Carousel.Previous
57
+ class={`absolute top-1/2 -translate-y-1/2 left-1 mt-0.5 ${buttonPreviousAndNextClass}`}
58
+ />
59
+ <Carousel.Next class={`absolute top-1/2 -translate-y-1/2 right-1 mt-0.5 ${buttonPreviousAndNextClass}`} />
60
+ {/if}
61
+ </Carousel.Root>
62
+ </nav>
@@ -0,0 +1,4 @@
1
+ import type { SimpleCarouselProps } from "../types.js";
2
+ declare const SimpleCarousel: import("svelte").Component<SimpleCarouselProps, {}, "">;
3
+ type SimpleCarousel = ReturnType<typeof SimpleCarousel>;
4
+ export default SimpleCarousel;
@@ -28,11 +28,11 @@
28
28
  import DataTableListPagination from "./DataTableListPagination.svelte";
29
29
 
30
30
  /**
31
- * Tabela de dados genérica com paginação, ordenação e filtros.
32
- * @property {DataTableItem<T>["config"]} config - Definição das colunas
33
- * @property {keyof T} columnFilter - Chave para filtro por coluna
34
- * @property {Component} actions - Componente de ações por linha
35
- * @property {T[]} items - Dados da tabela
31
+ * Generic data table with pagination, sorting, and filtering.
32
+ * @property {DataTableItem<T>["config"]} config - Column definitions
33
+ * @property {keyof T} columnFilter - Key for column filtering
34
+ * @property {Component} actions - Per-row actions component
35
+ * @property {T[]} items - Table data
36
36
  */
37
37
  let { config, columnFilter, actions, items = [] }: DataTableItem<T> = $props();
38
38
 
@@ -4,7 +4,7 @@
4
4
  import { Label } from "../../../ui/label";
5
5
  import { t } from "../../../../i18n";
6
6
 
7
- /** Campo de input para código OTP com caixas configuráveis. */
7
+ /** OTP code input field with configurable boxes. */
8
8
  let {
9
9
  label,
10
10
  isLabel,
@@ -13,9 +13,9 @@
13
13
  separator = true,
14
14
  value = $bindable(""),
15
15
  }: InputLabelProps & {
16
- /** Quantidade de caixas do código OTP. Padrão: 6 */
16
+ /** Number of OTP code boxes. Default: 6 */
17
17
  length?: number;
18
- /** Exibir separador entre os grupos. Padrão: true */
18
+ /** Show separator between groups. Default: true */
19
19
  separator?: boolean;
20
20
  } = $props();
21
21
 
@@ -1,8 +1,8 @@
1
1
  import type { InputLabelProps } from "../data/InputLabel.svelte";
2
2
  type $$ComponentProps = InputLabelProps & {
3
- /** Quantidade de caixas do código OTP. Padrão: 6 */
3
+ /** Number of OTP code boxes. Default: 6 */
4
4
  length?: number;
5
- /** Exibir separador entre os grupos. Padrão: true */
5
+ /** Show separator between groups. Default: true */
6
6
  separator?: boolean;
7
7
  };
8
8
  declare const InputCodeOtp: import("svelte").Component<$$ComponentProps, {}, "value">;
@@ -3,7 +3,7 @@
3
3
  import InputBase from "./input-base.svelte";
4
4
  import { t } from "../../../../i18n";
5
5
 
6
- /** Campo de input para email com ícone e label. */
6
+ /** Email or phone input field with icon and label. */
7
7
  let {
8
8
  label,
9
9
  placeholder,
@@ -3,7 +3,7 @@
3
3
  import InputBase from "./input-base.svelte";
4
4
  import { t } from "../../../../i18n";
5
5
 
6
- /** Campo de input para email com ícone e label. */
6
+ /** Email input field with icon and label. */
7
7
  let {
8
8
  label,
9
9
  placeholder,
@@ -3,7 +3,7 @@
3
3
  import InputBase from "./input-base.svelte";
4
4
  import { t } from "../../../../i18n";
5
5
 
6
- /** Campo de input para confirmação de senha com ícone e label. */
6
+ /** Password confirmation input field with icon and label. */
7
7
  let {
8
8
  label,
9
9
  placeholder,
@@ -3,7 +3,7 @@
3
3
  import InputBase from "./input-base.svelte";
4
4
  import { t } from "../../../../i18n";
5
5
 
6
- /** Campo de input para senha com ícone e label. */
6
+ /** Password input field with icon and label. */
7
7
  let {
8
8
  label,
9
9
  placeholder,
@@ -4,7 +4,7 @@
4
4
  import { Label } from "../../../ui/label";
5
5
  import { t } from "../../../../i18n";
6
6
 
7
- /** Campo de input para telefone com ícone e label. */
7
+ /** Phone input field with icon and label. */
8
8
  let {
9
9
  label,
10
10
  isLabel,
@@ -3,7 +3,7 @@
3
3
  import InputBase from "./input-base.svelte";
4
4
  import { t } from "../../../../i18n";
5
5
 
6
- /** Campo de input para nome de usuário com ícone e label. */
6
+ /** Username input field with icon and label. */
7
7
  let {
8
8
  label,
9
9
  placeholder,
@@ -13,7 +13,7 @@
13
13
  </script>
14
14
 
15
15
  <InputBase
16
- label={label || $t("input.usename.label")}
16
+ label={label || $t("input.username.label")}
17
17
  placeholder={placeholder || $t("input.username.placeholder")}
18
18
  isLabel
19
19
  isIcon
@@ -1,21 +1,21 @@
1
1
  import type { IconSvgElement } from "@hugeicons/svelte";
2
- export interface GroupMenuSidebar {
2
+ export interface GroupMenuSidebarProps {
3
3
  name: string;
4
4
  }
5
- export interface SubMenuSidebar {
5
+ export interface SubMenuSidebarProps {
6
6
  title: string;
7
7
  url: string;
8
8
  icon: IconSvgElement;
9
9
  isActive?: boolean;
10
10
  }
11
- export interface NavMenuSidebar {
11
+ export interface NavMenuSidebarProps {
12
12
  title: string;
13
13
  url?: string;
14
14
  icon: IconSvgElement;
15
15
  isActive?: boolean;
16
- group?: GroupMenuSidebar;
16
+ group?: GroupMenuSidebarProps;
17
17
  }
18
- export interface NavMenuAndSubmenuSidebar extends NavMenuSidebar {
19
- submenus?: SubMenuSidebar[];
18
+ export interface NavMenuAndSubmenuSidebarProps extends NavMenuSidebarProps {
19
+ submenus?: SubMenuSidebarProps[];
20
20
  }
21
- export type NavMenuItem = NavMenuSidebar | NavMenuAndSubmenuSidebar;
21
+ export type NavMenuItem = NavMenuSidebarProps | NavMenuAndSubmenuSidebarProps;
@@ -0,0 +1,31 @@
1
+ import type { IconSvgElement } from "@hugeicons/svelte";
2
+ export interface NavMenuLogoProps {
3
+ img?: string;
4
+ label: string;
5
+ className?: string;
6
+ onclick?: () => void;
7
+ }
8
+ export interface NavMenuLinksProps {
9
+ url?: string;
10
+ label: string;
11
+ icon?: IconSvgElement;
12
+ onclick?: () => void;
13
+ }
14
+ export interface NavMenuActionsProps {
15
+ url?: string;
16
+ label: string;
17
+ type?: 'BUTTON' | 'LINK';
18
+ className?: string;
19
+ icon?: IconSvgElement;
20
+ onclick?: () => void;
21
+ }
22
+ export interface NavMenuProps {
23
+ linkClass?: string;
24
+ buttonClass?: string;
25
+ logo?: NavMenuLogoProps;
26
+ links: NavMenuLinksProps[];
27
+ actions: NavMenuActionsProps[];
28
+ align?: 'LINK_SEPARATED_ACTIONS' | 'LINK_INTO_ACTIONS';
29
+ onclickButtonLogin?: () => void;
30
+ onclickButtonRegister?: () => void;
31
+ }
@@ -1,5 +1,5 @@
1
1
  import type { IconSvgElement } from "@hugeicons/svelte";
2
- export interface NavUserSidebarItem {
2
+ export interface NavUserSidebarProps {
3
3
  user: {
4
4
  name: string;
5
5
  email: string;
@@ -0,0 +1,28 @@
1
+ <script lang="ts">
2
+ import { HugeiconsIcon } from "@hugeicons/svelte";
3
+ import type { NavMenuLinksProps } from "../data/nav-menu";
4
+
5
+ type Props = {
6
+ links: NavMenuLinksProps[];
7
+ linkClass?: string;
8
+ groupClass?: string;
9
+ orientation?: "horizontal" | "vertical";
10
+ };
11
+
12
+ let { links, linkClass, groupClass, orientation }: Props = $props();
13
+ </script>
14
+ <ul class={`flex ${orientation === "vertical" ? "flex-col" : "items-center"} gap-2 md:gap-5 lg:gap-15 ${groupClass}`}>
15
+ {#each links as item (item.label)}
16
+ <li>
17
+ <a
18
+ class={`flex items-center gap-1 ${linkClass}`}
19
+ href={item.url || "#"}
20
+ >
21
+ {#if item.icon}
22
+ <HugeiconsIcon icon={item.icon} size={15} />
23
+ {/if}
24
+ {item.label}
25
+ </a>
26
+ </li>
27
+ {/each}
28
+ </ul>
@@ -0,0 +1,10 @@
1
+ import type { NavMenuLinksProps } from "../data/nav-menu";
2
+ type Props = {
3
+ links: NavMenuLinksProps[];
4
+ linkClass?: string;
5
+ groupClass?: string;
6
+ orientation?: "horizontal" | "vertical";
7
+ };
8
+ declare const MenuLinks: import("svelte").Component<Props, {}, "">;
9
+ type MenuLinks = ReturnType<typeof MenuLinks>;
10
+ export default MenuLinks;
@@ -0,0 +1,85 @@
1
+ <script lang="ts">
2
+ import * as Drawer from "../../../../ui/drawer/index.js";
3
+ import { Button } from "../../../../ui/button/index.js";
4
+ import type { NavMenuLinksProps } from "../../data/nav-menu";
5
+ import { buttonVariants } from "../../../../ui/button/index.js";
6
+ import { cn } from "../../../../../utils.js";
7
+ import { HugeiconsIcon } from "@hugeicons/svelte";
8
+ import { Login03Icon, Menu, User03Icon } from "@hugeicons/core-free-icons";
9
+ import MenuLinks from "../menu-links.svelte";
10
+ import LightSwitch from "../../../../ui/light-switch/light-switch.svelte";
11
+ import LanguageSwitcher from "../../../../ui/language-switcher/language-switcher.svelte";
12
+ import { t } from "../../../../../i18n";
13
+
14
+ type Props = {
15
+ links: NavMenuLinksProps[];
16
+ onclickButtonLogin?: () => void;
17
+ onclickButtonRegister?: () => void;
18
+ };
19
+
20
+ const { links, onclickButtonLogin, onclickButtonRegister }: Props =
21
+ $props();
22
+ </script>
23
+
24
+ <div class="flex flex-wrap gap-2">
25
+ <Drawer.Root direction="right">
26
+ <Drawer.Trigger
27
+ class={cn(buttonVariants({ variant: "outline" }), "capitalize")}
28
+ >
29
+ <HugeiconsIcon icon={Menu} />
30
+ </Drawer.Trigger>
31
+ <Drawer.Content
32
+ class="data-[vaul-drawer-direction=bottom]:max-h-[50vh] data-[vaul-drawer-direction=top]:max-h-[50vh]"
33
+ >
34
+ <Drawer.Header>
35
+ <Drawer.Title>{$t("label.menu")}</Drawer.Title>
36
+ <Drawer.Description>
37
+ {$t("label.navigation.text")}
38
+ </Drawer.Description>
39
+ </Drawer.Header>
40
+ <div class="no-scrollbar overflow-y-auto px-4">
41
+ <nav>
42
+ <div class="mt-5 mb-4 font-semibold">{$t("label.navigation")}</div>
43
+ <MenuLinks
44
+ {links}
45
+ groupClass="space-y-3"
46
+ orientation="vertical"
47
+ />
48
+ </nav>
49
+
50
+ <div class="mt-5">
51
+ <div class="mt-5 mb-4 font-semibold">{$t("label.action")}</div>
52
+ <section >
53
+ {#if onclickButtonRegister}
54
+ <Button
55
+ variant="outline"
56
+ onclick={onclickButtonRegister}
57
+ >
58
+ <HugeiconsIcon icon={User03Icon} />
59
+ {$t("label.register")}
60
+ </Button>
61
+ {/if}
62
+ {#if onclickButtonLogin}
63
+ <Button
64
+ variant="outline"
65
+ onclick={onclickButtonLogin}
66
+ >
67
+ <HugeiconsIcon icon={Login03Icon} />
68
+ {$t("label.login")}
69
+ </Button>
70
+ {/if}
71
+ </section>
72
+ </div>
73
+ </div>
74
+ <Drawer.Footer>
75
+ <div class="flex justify-center gap-5 py-5">
76
+ <LightSwitch />
77
+ <LanguageSwitcher />
78
+ </div>
79
+ <Drawer.Close class={buttonVariants({ variant: "outline" })}>
80
+ {$t("label.close")}
81
+ </Drawer.Close>
82
+ </Drawer.Footer>
83
+ </Drawer.Content>
84
+ </Drawer.Root>
85
+ </div>
@@ -0,0 +1,9 @@
1
+ import type { NavMenuLinksProps } from "../../data/nav-menu";
2
+ type Props = {
3
+ links: NavMenuLinksProps[];
4
+ onclickButtonLogin?: () => void;
5
+ onclickButtonRegister?: () => void;
6
+ };
7
+ declare const NavMenuDrawer: import("svelte").Component<Props, {}, "">;
8
+ type NavMenuDrawer = ReturnType<typeof NavMenuDrawer>;
9
+ export default NavMenuDrawer;
@@ -2,13 +2,13 @@
2
2
  import * as Sidebar from "../../../ui/sidebar/index.js";
3
3
  import type { WithoutChildren } from "../../../../utils.js";
4
4
  import type { ComponentProps } from "svelte";
5
- import type { NavMenuSidebar } from "../data/nav-menu-sidebar";
5
+ import type { NavMenuSidebarProps } from "../data/nav-menu-sidebar";
6
6
  import { HugeiconsIcon } from "@hugeicons/svelte";
7
7
 
8
8
  let {
9
9
  items,
10
10
  ...restProps
11
- }: { items?: NavMenuSidebar[] } & WithoutChildren<
11
+ }: { items?: NavMenuSidebarProps[] } & WithoutChildren<
12
12
  ComponentProps<typeof Sidebar.Group>
13
13
  > = $props();
14
14
  </script>
@@ -0,0 +1,10 @@
1
+ import * as Sidebar from "../../../ui/sidebar/index.js";
2
+ import type { WithoutChildren } from "../../../../utils.js";
3
+ import type { ComponentProps } from "svelte";
4
+ import type { NavMenuSidebarProps } from "../data/nav-menu-sidebar";
5
+ type $$ComponentProps = {
6
+ items?: NavMenuSidebarProps[];
7
+ } & WithoutChildren<ComponentProps<typeof Sidebar.Group>>;
8
+ declare const NavMenuBottomSidebar: import("svelte").Component<$$ComponentProps, {}, "">;
9
+ type NavMenuBottomSidebar = ReturnType<typeof NavMenuBottomSidebar>;
10
+ export default NavMenuBottomSidebar;
@@ -0,0 +1,10 @@
1
+ type $$ComponentProps = {
2
+ teams: {
3
+ name: string;
4
+ logo: any;
5
+ plan: string;
6
+ }[];
7
+ };
8
+ declare const NavMenuHeaderSidebar: import("svelte").Component<$$ComponentProps, {}, "">;
9
+ type NavMenuHeaderSidebar = ReturnType<typeof NavMenuHeaderSidebar>;
10
+ export default NavMenuHeaderSidebar;
@@ -1,13 +1,13 @@
1
- <script lang="ts">
1
+ <script lang="ts">
2
2
  /* eslint-disable @typescript-eslint/no-explicit-any */
3
3
  import * as Collapsible from "../../../ui/collapsible/index.js";
4
4
  import * as Sidebar from "../../../ui/sidebar/index.js";
5
5
  import ChevronRightIcon from "@lucide/svelte/icons/chevron-right";
6
6
  import { HugeiconsIcon } from "@hugeicons/svelte";
7
7
  import type {
8
- NavMenuAndSubmenuSidebar,
8
+ NavMenuAndSubmenuSidebarProps,
9
9
  NavMenuItem,
10
- NavMenuSidebar,
10
+ NavMenuSidebarProps,
11
11
  } from "../data/nav-menu-sidebar";
12
12
 
13
13
  let {
@@ -16,13 +16,13 @@
16
16
  items: NavMenuItem[];
17
17
  } = $props();
18
18
 
19
- // Chave interna para itens sem group; nunca colide com um nome real
20
- // porque não é uma string acessível a quem define os itens.
19
+ // Internal key for items without a group; never collides with a real name
20
+ // because it's not a string accessible to whoever defines the items.
21
21
  const UNGROUPED = Symbol("ungrouped");
22
22
 
23
23
  function hasSubmenus(
24
- item: NavMenuSidebar | NavMenuAndSubmenuSidebar,
25
- ): item is NavMenuAndSubmenuSidebar {
24
+ item: NavMenuSidebarProps | NavMenuAndSubmenuSidebarProps,
25
+ ): item is NavMenuAndSubmenuSidebarProps {
26
26
  return "submenus" in item && Array.isArray(item.submenus);
27
27
  }
28
28
 
@@ -0,0 +1,7 @@
1
+ import type { NavMenuItem } from "../data/nav-menu-sidebar";
2
+ type $$ComponentProps = {
3
+ items: NavMenuItem[];
4
+ };
5
+ declare const NavMenuSidebar: import("svelte").Component<$$ComponentProps, {}, "">;
6
+ type NavMenuSidebar = ReturnType<typeof NavMenuSidebar>;
7
+ export default NavMenuSidebar;
@@ -0,0 +1,4 @@
1
+ import type { NavTopBarSidebarItem } from "../data/nav-top-bar-sidebar";
2
+ declare const NavMenuTopBarSidebar: import("svelte").Component<NavTopBarSidebarItem, {}, "">;
3
+ type NavMenuTopBarSidebar = ReturnType<typeof NavMenuTopBarSidebar>;
4
+ export default NavMenuTopBarSidebar;
@@ -0,0 +1,98 @@
1
+ <script lang="ts">
2
+ import { Button } from "../../../ui/button/index.js";
3
+ import { HugeiconsIcon } from "@hugeicons/svelte";
4
+ import type { NavMenuProps } from "../data/nav-menu";
5
+ import LightSwitch from "../../../ui/light-switch/light-switch.svelte";
6
+ import LanguageSwitcher from "../../../ui/language-switcher/language-switcher.svelte";
7
+ import { t } from "../../../../i18n";
8
+ import { Login03Icon, User03Icon } from "@hugeicons/core-free-icons";
9
+ import { useIsMobile } from "../../../../hooks/responsive.svelte";
10
+ import NavMenuDrawer from "./mobile/nav-menu-drawer.svelte";
11
+ import MenuLinks from "./menu-links.svelte";
12
+
13
+ let {
14
+ logo,
15
+ links,
16
+ actions,
17
+ linkClass = "",
18
+ buttonClass = "",
19
+ align = "LINK_SEPARATED_ACTIONS",
20
+ onclickButtonLogin,
21
+ onclickButtonRegister,
22
+ }: NavMenuProps = $props();
23
+
24
+ const responsive = useIsMobile();
25
+ </script>
26
+
27
+ {#snippet actionButtons()}
28
+ <div class="flex items-center gap-2">
29
+ <LightSwitch />
30
+ <LanguageSwitcher />
31
+ {#each actions as item (item.label)}
32
+ <Button
33
+ variant={item.type === "LINK" ? "ghost" : "outline"}
34
+ class={item.className}
35
+ onclick={item.onclick}
36
+ >
37
+ {#if item.icon}
38
+ <HugeiconsIcon icon={item.icon} />
39
+ {/if}
40
+ {item.label}
41
+ </Button>
42
+ {/each}
43
+ {#if onclickButtonRegister}
44
+ <Button
45
+ variant="outline"
46
+ onclick={onclickButtonRegister}
47
+ class={buttonClass}
48
+ >
49
+ <HugeiconsIcon icon={User03Icon} />
50
+ {$t("label.register")}
51
+ </Button>
52
+ {/if}
53
+ {#if onclickButtonLogin}
54
+ <Button
55
+ variant="outline"
56
+ onclick={onclickButtonLogin}
57
+ class={buttonClass}
58
+ >
59
+ <HugeiconsIcon icon={Login03Icon} />
60
+ {$t("label.login")}
61
+ </Button>
62
+ {/if}
63
+ </div>
64
+ {/snippet}
65
+
66
+ <nav class="flex items-center justify-between container py-5 md:px-5">
67
+ {#if logo}
68
+ <div>
69
+ {#if logo.img}
70
+ <img
71
+ src={logo.img}
72
+ alt="logo of site"
73
+ class={`max-h-50 ${logo.className}`}
74
+ />
75
+ {:else if logo.label}
76
+ <span class={logo.className}>{logo.label}</span>
77
+ {/if}
78
+ </div>
79
+ {:else}
80
+ <div>
81
+ <span class="hidden">Logo</span>
82
+ </div>
83
+ {/if}
84
+
85
+ {#if responsive.isMobile}
86
+ <NavMenuDrawer {links} {onclickButtonLogin} {onclickButtonRegister} />
87
+ {:else}
88
+ {#if align === "LINK_SEPARATED_ACTIONS"}
89
+ <MenuLinks {links} {linkClass} orientation="horizontal" />
90
+ {@render actionButtons()}
91
+ {:else if align === "LINK_INTO_ACTIONS"}
92
+ <div class="flex items-center gap-2">
93
+ <MenuLinks {links} {linkClass} orientation="vertical" />
94
+ {@render actionButtons()}
95
+ </div>
96
+ {/if}
97
+ {/if}
98
+ </nav>
@@ -0,0 +1,4 @@
1
+ import type { NavMenuProps } from "../data/nav-menu";
2
+ declare const NavMenu: import("svelte").Component<NavMenuProps, {}, "">;
3
+ type NavMenu = ReturnType<typeof NavMenu>;
4
+ export default NavMenu;
@@ -2,7 +2,7 @@
2
2
  import * as Avatar from "../../../ui/avatar/index.js";
3
3
  import * as DropdownMenu from "../../../ui/dropdown-menu/index.js";
4
4
  import * as Sidebar from "../../../ui/sidebar/index.js";
5
- import type { NavUserSidebarItem } from "../data/nav-user-sidebar";
5
+ import type { NavUserSidebarProps } from "../data/nav-user-sidebar";
6
6
  import { useSidebar } from "../../../ui/sidebar/index.js";
7
7
  import { HugeiconsIcon } from "@hugeicons/svelte";
8
8
  import {
@@ -12,7 +12,7 @@
12
12
  } from "@hugeicons/core-free-icons";
13
13
  import { t } from "../../../../i18n";
14
14
 
15
- let { user: userLogged }: { user: NavUserSidebarItem } = $props();
15
+ let { user: userLogged }: { user: NavUserSidebarProps } = $props();
16
16
 
17
17
  const sidebar = useSidebar();
18
18
  </script>
@@ -1,6 +1,6 @@
1
- import type { NavUserSidebarItem } from "../data/nav-user-sidebar";
1
+ import type { NavUserSidebarProps } from "../data/nav-user-sidebar";
2
2
  type $$ComponentProps = {
3
- user: NavUserSidebarItem;
3
+ user: NavUserSidebarProps;
4
4
  };
5
5
  declare const NavUserSidebar: import("svelte").Component<$$ComponentProps, {}, "">;
6
6
  type NavUserSidebar = ReturnType<typeof NavUserSidebar>;
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">
2
2
  import { HugeiconsIcon } from "@hugeicons/svelte";
3
3
  import { ArrowRight01Icon } from "@hugeicons/core-free-icons";
4
- import type { CarouselProps } from "../carousel/data/CarouselModel";
4
+ import type { LoginCarouselProps } from "../../pages/security/login/types";
5
5
  import type { Snippet } from "svelte";
6
6
  import Button from "../../ui/button/button.svelte";
7
7
  import { t } from "../../../i18n";
@@ -18,7 +18,7 @@
18
18
  items = [],
19
19
  variant = "DOT",
20
20
  autoPlayInterval = 5000,
21
- }: Props & CarouselProps = $props();
21
+ }: Props & LoginCarouselProps = $props();
22
22
 
23
23
  let currentIndex = $state(0);
24
24
  let currentItem = $derived(items[currentIndex] ?? items[0]);
@@ -53,7 +53,7 @@
53
53
  </div>
54
54
 
55
55
  <section class="flex flex-col gap-5">
56
- <div class="my-auto max-w-sm md:max-w-md lg:max-w-[430px]">
56
+ <div class="my-auto max-w-sm md:max-w-md lg:max-w-100">
57
57
  {#if currentItem}
58
58
  {#key currentIndex}
59
59
  <div