negodesign 0.0.11 → 0.0.13

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 (223) 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/promotion/CardPromotion.svelte +44 -0
  24. package/dist/components/core/card/promotion/CardPromotion.svelte.d.ts +8 -0
  25. package/dist/components/core/card/promotion/data.d.ts +3 -0
  26. package/dist/components/core/card/promotion/data.js +31 -0
  27. package/dist/components/core/card/shared/CardButton.svelte +30 -0
  28. package/dist/components/core/card/shared/CardButton.svelte.d.ts +12 -0
  29. package/dist/components/core/card/shared/CardDescription.svelte +23 -0
  30. package/dist/components/core/card/shared/CardDescription.svelte.d.ts +6 -0
  31. package/dist/components/core/card/shared/CardFavorite.svelte +28 -0
  32. package/dist/components/core/card/shared/CardFavorite.svelte.d.ts +7 -0
  33. package/dist/components/core/card/shared/CardStarRating.svelte +20 -0
  34. package/dist/components/core/card/shared/CardStarRating.svelte.d.ts +7 -0
  35. package/dist/components/core/card/shared/CardTags.svelte +56 -0
  36. package/dist/components/core/card/shared/CardTags.svelte.d.ts +10 -0
  37. package/dist/components/core/card/shared/CardThumbnailVideo.svelte +170 -0
  38. package/dist/components/core/card/shared/CardThumbnailVideo.svelte.d.ts +10 -0
  39. package/dist/components/core/card/shared/TruncatableText.svelte +56 -0
  40. package/dist/components/core/card/shared/TruncatableText.svelte.d.ts +8 -0
  41. package/dist/components/core/card/types.d.ts +54 -0
  42. package/dist/components/core/carousel/promotion/ui/CarouselPromotion.svelte +53 -0
  43. package/dist/components/core/carousel/promotion/ui/CarouselPromotion.svelte.d.ts +4 -0
  44. package/dist/components/core/carousel/shared/ui/SimpleBadgeCarousel.svelte +59 -0
  45. package/dist/components/core/carousel/shared/ui/SimpleBadgeCarousel.svelte.d.ts +4 -0
  46. package/dist/components/core/carousel/types.d.ts +34 -0
  47. package/dist/components/core/datatable/ui/DataTableCore.svelte +5 -5
  48. package/dist/components/core/form/ui/input-code-otp.svelte +3 -3
  49. package/dist/components/core/form/ui/input-code-otp.svelte.d.ts +2 -2
  50. package/dist/components/core/form/ui/input-email-or-phone.svelte +1 -1
  51. package/dist/components/core/form/ui/input-email.svelte +1 -1
  52. package/dist/components/core/form/ui/input-password-confirm.svelte +1 -1
  53. package/dist/components/core/form/ui/input-password.svelte +1 -1
  54. package/dist/components/core/form/ui/input-phone.svelte +1 -1
  55. package/dist/components/core/form/ui/input-username.svelte +2 -2
  56. package/dist/components/core/nav/data/nav-menu-sidebar.d.ts +7 -7
  57. package/dist/components/core/nav/data/nav-menu.d.ts +31 -0
  58. package/dist/components/core/nav/data/nav-user-sidebar.d.ts +1 -1
  59. package/dist/components/core/nav/ui/menu-links.svelte +28 -0
  60. package/dist/components/core/nav/ui/menu-links.svelte.d.ts +10 -0
  61. package/dist/components/core/nav/ui/mobile/nav-menu-drawer.svelte +85 -0
  62. package/dist/components/core/nav/ui/mobile/nav-menu-drawer.svelte.d.ts +9 -0
  63. package/dist/components/core/nav/ui/{nav-menu-bottom-bar.svelte → nav-menu-bottom-sidebar.svelte} +2 -2
  64. package/dist/components/core/nav/ui/nav-menu-bottom-sidebar.svelte.d.ts +10 -0
  65. package/dist/components/core/nav/ui/nav-menu-header-sidebar.svelte.d.ts +10 -0
  66. package/dist/components/core/nav/ui/{nav-menu-bar.svelte → nav-menu-sidebar.svelte} +7 -7
  67. package/dist/components/core/nav/ui/nav-menu-sidebar.svelte.d.ts +7 -0
  68. package/dist/components/core/nav/ui/nav-menu-top-bar-sidebar.svelte.d.ts +4 -0
  69. package/dist/components/core/nav/ui/nav-menu.svelte +98 -0
  70. package/dist/components/core/nav/ui/nav-menu.svelte.d.ts +4 -0
  71. package/dist/components/core/nav/ui/nav-user-sidebar.svelte +2 -2
  72. package/dist/components/core/nav/ui/nav-user-sidebar.svelte.d.ts +2 -2
  73. package/dist/components/core/panel/CarouselSlot.svelte +38 -0
  74. package/dist/components/core/panel/CarouselSlot.svelte.d.ts +11 -0
  75. package/dist/components/core/panel/LeftHero.svelte +3 -3
  76. package/dist/components/core/panel/LeftHero.svelte.d.ts +2 -2
  77. package/dist/components/core/search/01/Search01.svelte +15 -0
  78. package/dist/components/core/search/01/Search01.svelte.d.ts +4 -0
  79. package/dist/components/core/search/02/Search02.svelte +15 -0
  80. package/dist/components/core/search/02/Search02.svelte.d.ts +4 -0
  81. package/dist/components/core/search/SearchInput.svelte +32 -0
  82. package/dist/components/core/search/SearchInput.svelte.d.ts +4 -0
  83. package/dist/components/core/search/shared/SearchInputCore.svelte +66 -0
  84. package/dist/components/core/search/shared/SearchInputCore.svelte.d.ts +4 -0
  85. package/dist/components/core/search/types.d.ts +15 -0
  86. package/dist/components/core/sidebar/MenuBarSidebar.svelte +14 -14
  87. package/dist/components/core/sidebar/MenuBarSidebar.svelte.d.ts +8 -8
  88. package/dist/components/pages/admin/{ui → 01/ui}/AdminContent.svelte +1 -1
  89. package/dist/components/pages/admin/{ui → 01/ui}/AdminContent.svelte.d.ts +1 -1
  90. package/dist/components/pages/admin/{ui → 01/ui}/AdminPanel.svelte +8 -8
  91. package/dist/components/pages/admin/{ui → 01/ui}/AdminPanel.svelte.d.ts +4 -4
  92. package/dist/components/pages/privacy-policy-or-terms-of-use/01/DocsSidebar.svelte +69 -0
  93. package/dist/components/pages/privacy-policy-or-terms-of-use/01/DocsSidebar.svelte.d.ts +10 -0
  94. package/dist/components/pages/privacy-policy-or-terms-of-use/01/PrivacyPolicyOrTermsOfUse01.svelte +73 -0
  95. package/dist/components/pages/privacy-policy-or-terms-of-use/01/PrivacyPolicyOrTermsOfUse01.svelte.d.ts +7 -0
  96. package/dist/components/pages/privacy-policy-or-terms-of-use/01/TableOfContents.svelte +37 -0
  97. package/dist/components/pages/privacy-policy-or-terms-of-use/01/TableOfContents.svelte.d.ts +8 -0
  98. package/dist/components/pages/privacy-policy-or-terms-of-use/02/DocsPageHero.svelte +59 -0
  99. package/dist/components/pages/privacy-policy-or-terms-of-use/02/DocsPageHero.svelte.d.ts +10 -0
  100. package/dist/components/pages/privacy-policy-or-terms-of-use/02/PageHero.svelte +51 -0
  101. package/dist/components/pages/privacy-policy-or-terms-of-use/02/PageHero.svelte.d.ts +14 -0
  102. package/dist/components/pages/privacy-policy-or-terms-of-use/02/PrivacyPolicyOrTermsOfUse02.svelte +24 -0
  103. package/dist/components/pages/privacy-policy-or-terms-of-use/02/PrivacyPolicyOrTermsOfUse02.svelte.d.ts +7 -0
  104. package/dist/components/pages/privacy-policy-or-terms-of-use/PrivacyPolicyOrTermsOfUse.svelte +32 -0
  105. package/dist/components/pages/privacy-policy-or-terms-of-use/PrivacyPolicyOrTermsOfUse.svelte.d.ts +4 -0
  106. package/dist/components/pages/privacy-policy-or-terms-of-use/shared/ContentBlockView.svelte +26 -0
  107. package/dist/components/pages/privacy-policy-or-terms-of-use/shared/ContentBlockView.svelte.d.ts +7 -0
  108. package/dist/components/pages/privacy-policy-or-terms-of-use/shared/DocSectionView.svelte +44 -0
  109. package/dist/components/pages/privacy-policy-or-terms-of-use/shared/DocSectionView.svelte.d.ts +7 -0
  110. package/dist/components/pages/privacy-policy-or-terms-of-use/shared/PrivacyPolicyOrTermsOfUseBreadcrumb.svelte +34 -0
  111. package/dist/components/pages/privacy-policy-or-terms-of-use/shared/PrivacyPolicyOrTermsOfUseBreadcrumb.svelte.d.ts +7 -0
  112. package/dist/components/pages/privacy-policy-or-terms-of-use/shared/toc.d.ts +8 -0
  113. package/dist/components/pages/privacy-policy-or-terms-of-use/shared/toc.js +14 -0
  114. package/dist/components/pages/privacy-policy-or-terms-of-use/types.d.ts +62 -0
  115. package/dist/components/pages/privacy-policy-or-terms-of-use/types.js +5 -0
  116. package/dist/components/pages/{forget-password → security/forget-password}/01/ui/ForgetPasswordCard.svelte +15 -10
  117. package/dist/components/pages/{forget-password → security/forget-password}/01/ui/ForgetPasswordCard.svelte.d.ts +0 -5
  118. package/dist/components/pages/{forget-password → security/forget-password}/01/ui/FormForgetPassword.svelte +15 -5
  119. package/dist/components/pages/{forget-password → security/forget-password}/01/ui/PageForgetPassword01.svelte +6 -6
  120. package/dist/components/pages/{forget-password → security/forget-password}/PageForgetPassword.svelte +10 -7
  121. package/dist/components/pages/{forget-password → security/forget-password}/PageForgetPassword.svelte.d.ts +0 -7
  122. package/dist/components/pages/{forget-password → security/forget-password}/types.d.ts +3 -3
  123. package/dist/components/pages/{login → security/login}/01/ui/FormLogin.svelte +19 -15
  124. package/dist/components/pages/{login → security/login}/01/ui/FormLogin.svelte.d.ts +0 -6
  125. package/dist/components/pages/{login → security/login}/01/ui/FormLoginEmailPassword.svelte +10 -1
  126. package/dist/components/pages/{login → security/login}/01/ui/FormLoginEmailPassword.svelte.d.ts +0 -1
  127. package/dist/components/pages/{login → security/login}/01/ui/FormLoginPhonePassword.svelte +10 -1
  128. package/dist/components/pages/{login → security/login}/01/ui/FormLoginPhonePassword.svelte.d.ts +0 -1
  129. package/dist/components/pages/{login → security/login}/01/ui/FormLoginUsernamePassword.svelte +10 -1
  130. package/dist/components/pages/{login → security/login}/01/ui/FormLoginUsernamePassword.svelte.d.ts +0 -1
  131. package/dist/components/pages/{login → security/login}/01/ui/FormRegister.svelte +5 -5
  132. package/dist/components/pages/{login → security/login}/01/ui/LoginCard.svelte +28 -20
  133. package/dist/components/pages/security/login/01/ui/LoginCard.svelte.d.ts +13 -0
  134. package/dist/components/pages/{login → security/login}/01/ui/PageLogin01.svelte +12 -11
  135. package/dist/components/pages/security/login/PageLogin.svelte +22 -0
  136. package/dist/components/pages/security/login/PageLogin.svelte.d.ts +8 -0
  137. package/dist/components/pages/security/login/types.d.ts +33 -0
  138. package/dist/components/pages/security/login/types.js +1 -0
  139. package/dist/components/pages/{otp-verification → security/otp-verification}/01/ui/FormOtpVerification.svelte +13 -3
  140. package/dist/components/pages/{otp-verification → security/otp-verification}/01/ui/OtpVerificationCard.svelte +15 -10
  141. package/dist/components/pages/{otp-verification → security/otp-verification}/01/ui/OtpVerificationCard.svelte.d.ts +0 -5
  142. package/dist/components/pages/{otp-verification → security/otp-verification}/01/ui/PageOtpVerification01.svelte +12 -6
  143. package/dist/components/pages/{otp-verification → security/otp-verification}/PageOtpVerification.svelte +10 -4
  144. package/dist/components/pages/{otp-verification → security/otp-verification}/PageOtpVerification.svelte.d.ts +0 -4
  145. package/dist/components/pages/{otp-verification → security/otp-verification}/types.d.ts +3 -3
  146. package/dist/components/pages/security/otp-verification/types.js +1 -0
  147. package/dist/components/pages/{reset-password → security/reset-password}/01/ui/FormResetPassword.svelte +15 -5
  148. package/dist/components/pages/{reset-password → security/reset-password}/01/ui/PageResetPassword01.svelte +12 -6
  149. package/dist/components/pages/{reset-password → security/reset-password}/01/ui/ResetPasswordCard.svelte +15 -10
  150. package/dist/components/pages/{reset-password → security/reset-password}/01/ui/ResetPasswordCard.svelte.d.ts +0 -5
  151. package/dist/components/pages/{reset-password → security/reset-password}/PageResetPassword.svelte +10 -4
  152. package/dist/components/pages/{reset-password → security/reset-password}/PageResetPassword.svelte.d.ts +0 -4
  153. package/dist/components/pages/{reset-password → security/reset-password}/types.d.ts +3 -3
  154. package/dist/components/pages/security/reset-password/types.js +1 -0
  155. package/dist/components/ui/button/button.svelte +82 -101
  156. package/dist/components/ui/button/button.svelte.d.ts +36 -63
  157. package/dist/components/ui/button/index.d.ts +2 -2
  158. package/dist/components/ui/button/index.js +2 -2
  159. package/dist/components/ui/carousel/carousel-content.svelte +43 -0
  160. package/dist/components/ui/carousel/carousel-content.svelte.d.ts +5 -0
  161. package/dist/components/ui/carousel/carousel-item.svelte +30 -0
  162. package/dist/components/ui/carousel/carousel-item.svelte.d.ts +5 -0
  163. package/dist/components/ui/carousel/carousel-next.svelte +40 -0
  164. package/dist/components/ui/carousel/carousel-next.svelte.d.ts +4 -0
  165. package/dist/components/ui/carousel/carousel-previous.svelte +40 -0
  166. package/dist/components/ui/carousel/carousel-previous.svelte.d.ts +4 -0
  167. package/dist/components/ui/carousel/carousel.svelte +94 -0
  168. package/dist/components/ui/carousel/carousel.svelte.d.ts +5 -0
  169. package/dist/components/ui/carousel/context.d.ts +31 -0
  170. package/dist/components/ui/carousel/context.js +12 -0
  171. package/dist/components/ui/carousel/index.d.ts +6 -0
  172. package/dist/components/ui/carousel/index.js +8 -0
  173. package/dist/components/ui/input-group/input-group-addon.svelte +6 -0
  174. package/dist/components/ui/input-group/input-group-addon.svelte.d.ts +6 -0
  175. package/dist/components/ui/light-switch/light-switch.svelte +17 -6
  176. package/dist/components/ui/light-switch/light-switch.svelte.d.ts +2 -2
  177. package/dist/components/ui/star-rating/index.d.ts +2 -0
  178. package/dist/components/ui/star-rating/index.js +2 -0
  179. package/dist/components/ui/star-rating/star-rating-star.svelte +41 -0
  180. package/dist/components/ui/star-rating/star-rating-star.svelte.d.ts +4 -0
  181. package/dist/components/ui/star-rating/star-rating.svelte +20 -0
  182. package/dist/components/ui/star-rating/star-rating.svelte.d.ts +4 -0
  183. package/dist/components/ui/star-rating/types.d.ts +5 -0
  184. package/dist/components/ui/star-rating/types.js +1 -0
  185. package/dist/globals.css +645 -36
  186. package/dist/hooks/responsive.svelte.d.ts +3 -0
  187. package/dist/hooks/responsive.svelte.js +18 -0
  188. package/dist/i18n/index.d.ts +2 -2
  189. package/dist/i18n/index.js +2 -2
  190. package/dist/i18n/langs/en.d.ts +23 -8
  191. package/dist/i18n/langs/en.js +23 -8
  192. package/dist/i18n/langs/pt.d.ts +23 -8
  193. package/dist/i18n/langs/pt.js +23 -8
  194. package/dist/i18n/translations.d.ts +46 -16
  195. package/dist/index.d.ts +15 -9
  196. package/dist/index.js +15 -9
  197. package/dist/styles/globals.css +147 -141
  198. package/dist/types/index.d.ts +4 -4
  199. package/package.json +11 -9
  200. package/dist/components/core/carousel/data/CarouselModel.d.ts +0 -11
  201. package/dist/components/core/nav/ui/nav-menu-bar.svelte.d.ts +0 -7
  202. package/dist/components/core/nav/ui/nav-menu-bottom-bar.svelte.d.ts +0 -10
  203. package/dist/components/core/nav/ui/nav-menu-header.svelte.d.ts +0 -10
  204. package/dist/components/core/nav/ui/nav-menu-top-bar.svelte.d.ts +0 -4
  205. package/dist/components/pages/login/01/ui/LoginCard.svelte.d.ts +0 -21
  206. package/dist/components/pages/login/PageLogin.svelte +0 -21
  207. package/dist/components/pages/login/PageLogin.svelte.d.ts +0 -17
  208. package/dist/components/pages/login/types.d.ts +0 -23
  209. /package/dist/components/{pages/forget-password → core/card}/types.js +0 -0
  210. /package/dist/components/{pages/login → core/carousel}/types.js +0 -0
  211. /package/dist/components/core/{carousel/data/CarouselModel.js → nav/data/nav-menu.js} +0 -0
  212. /package/dist/components/core/nav/ui/{nav-menu-header.svelte → nav-menu-header-sidebar.svelte} +0 -0
  213. /package/dist/components/core/nav/ui/{nav-menu-top-bar.svelte → nav-menu-top-bar-sidebar.svelte} +0 -0
  214. /package/dist/components/{pages/otp-verification → core/search}/types.js +0 -0
  215. /package/dist/components/pages/{forget-password → security/forget-password}/01/ui/FormForgetPassword.svelte.d.ts +0 -0
  216. /package/dist/components/pages/{forget-password → security/forget-password}/01/ui/PageForgetPassword01.svelte.d.ts +0 -0
  217. /package/dist/components/pages/{reset-password → security/forget-password}/types.js +0 -0
  218. /package/dist/components/pages/{login → security/login}/01/ui/FormRegister.svelte.d.ts +0 -0
  219. /package/dist/components/pages/{login → security/login}/01/ui/PageLogin01.svelte.d.ts +0 -0
  220. /package/dist/components/pages/{otp-verification → security/otp-verification}/01/ui/FormOtpVerification.svelte.d.ts +0 -0
  221. /package/dist/components/pages/{otp-verification → security/otp-verification}/01/ui/PageOtpVerification01.svelte.d.ts +0 -0
  222. /package/dist/components/pages/{reset-password → security/reset-password}/01/ui/FormResetPassword.svelte.d.ts +0 -0
  223. /package/dist/components/pages/{reset-password → security/reset-password}/01/ui/PageResetPassword01.svelte.d.ts +0 -0
@@ -0,0 +1,73 @@
1
+ <script lang="ts" module>
2
+ /**
3
+ * Variant 01 of the Privacy Policy / Terms of Use page.
4
+ * Three-column layout: navigation sidebar, main content, and TOC.
5
+ * Includes scroll-spy with IntersectionObserver to highlight the active section.
6
+ * @component
7
+ * @example
8
+ * ```svelte
9
+ * <PrivacyPolicyOrTermsOfUse01 data={pageData} />
10
+ * ```
11
+ */
12
+ </script>
13
+
14
+ <script lang="ts">
15
+ import type { DocPageData } from "../types";
16
+ import { buildToc } from "../shared/toc";
17
+ import PrivacyPolicyOrTermsOfUseBreadcrumb from "../shared/PrivacyPolicyOrTermsOfUseBreadcrumb.svelte";
18
+ import DocSectionView from "../shared/DocSectionView.svelte";
19
+ import DocsSidebar from "./DocsSidebar.svelte";
20
+ import TableOfContents from "./TableOfContents.svelte";
21
+
22
+ let { data }: { data: DocPageData } = $props();
23
+
24
+ const toc = $derived(buildToc(data.sections));
25
+
26
+ /** Currently visible section, for highlighting in the TOC (simple scroll-spy). */
27
+ let activeId = $state<string | undefined>(undefined);
28
+
29
+ $effect(() => {
30
+ const headingEls = toc
31
+ .map((item) => document.getElementById(item.id))
32
+ .filter((el): el is HTMLElement => el !== null);
33
+
34
+ if (headingEls.length === 0) return;
35
+
36
+ const observer = new IntersectionObserver(
37
+ (entries) => {
38
+ const visible = entries.find((entry) => entry.isIntersecting);
39
+ if (visible) activeId = visible.target.id;
40
+ },
41
+ { rootMargin: "0px 0px -70% 0px", threshold: 0 },
42
+ );
43
+
44
+ headingEls.forEach((el) => observer.observe(el));
45
+ return () => observer.disconnect();
46
+ });
47
+ </script>
48
+
49
+ <div class="mx-auto max-w-7xl px-6 py-10">
50
+ <div class="flex gap-10">
51
+ <DocsSidebar sections={data.sections} {activeId} />
52
+
53
+ <main class="min-w-0 flex-1 flex flex-col gap-8">
54
+ <header class="flex flex-col gap-4">
55
+ <div>
56
+ <h1 class="text-3xl font-bold tracking-tight">{data.title}</h1>
57
+ <p class="mt-1 text-sm text-muted-foreground">
58
+ Latest update: {data.lastUpdated}
59
+ </p>
60
+ </div>
61
+ <PrivacyPolicyOrTermsOfUseBreadcrumb items={data.breadcrumb} />
62
+ </header>
63
+
64
+ <div class="flex flex-col gap-10">
65
+ {#each data.sections as section (section.id)}
66
+ <DocSectionView {section} />
67
+ {/each}
68
+ </div>
69
+ </main>
70
+
71
+ <TableOfContents items={toc} {activeId} />
72
+ </div>
73
+ </div>
@@ -0,0 +1,7 @@
1
+ import type { DocPageData } from "../types";
2
+ type $$ComponentProps = {
3
+ data: DocPageData;
4
+ };
5
+ declare const PrivacyPolicyOrTermsOfUse01: import("svelte").Component<$$ComponentProps, {}, "">;
6
+ type PrivacyPolicyOrTermsOfUse01 = ReturnType<typeof PrivacyPolicyOrTermsOfUse01>;
7
+ export default PrivacyPolicyOrTermsOfUse01;
@@ -0,0 +1,37 @@
1
+ <script lang="ts" module>
2
+ /**
3
+ * Table of contents (TOC) panel with scroll-spy.
4
+ * Displays links to document sections with the active section highlighted.
5
+ * @component
6
+ * @example
7
+ * ```svelte
8
+ * <TableOfContents items={tocItems} activeId="introduction" />
9
+ * ```
10
+ */
11
+ </script>
12
+
13
+ <script lang="ts">
14
+ import type { TocItem } from "../types";
15
+
16
+ let { items, activeId }: { items: TocItem[]; activeId?: string } = $props();
17
+ </script>
18
+
19
+ <aside class="w-56 shrink-0 hidden xl:block">
20
+ <nav
21
+ aria-label="Table of contents"
22
+ class="sticky top-8 flex flex-col gap-1 text-sm"
23
+ >
24
+ {#each items as item (item.id)}
25
+ <a
26
+ href="#{item.id}"
27
+ class="border-l-2 py-1 transition-colors {item.level === 2
28
+ ? 'pl-6 text-muted-foreground/80'
29
+ : 'pl-3'} {activeId === item.id
30
+ ? 'border-foreground text-foreground font-medium'
31
+ : 'border-border text-muted-foreground hover:text-foreground'}"
32
+ >
33
+ {item.label}
34
+ </a>
35
+ {/each}
36
+ </nav>
37
+ </aside>
@@ -0,0 +1,8 @@
1
+ import type { TocItem } from "../types";
2
+ type $$ComponentProps = {
3
+ items: TocItem[];
4
+ activeId?: string;
5
+ };
6
+ declare const TableOfContents: import("svelte").Component<$$ComponentProps, {}, "">;
7
+ type TableOfContents = ReturnType<typeof TableOfContents>;
8
+ export default TableOfContents;
@@ -0,0 +1,59 @@
1
+ <script lang="ts" module>
2
+ /**
3
+ * Documentation page hero with banner and content sections.
4
+ * Combines PageHero with document section rendering.
5
+ * @component
6
+ * @example
7
+ * ```svelte
8
+ * <DocsPageHero data={pageData} accent="#f0400f" />
9
+ * ```
10
+ */
11
+ </script>
12
+
13
+ <script lang="ts">
14
+ import DocSectionView from "../shared/DocSectionView.svelte";
15
+ import type { DocPageData } from "../types";
16
+ import PageHero from "./PageHero.svelte";
17
+
18
+ let {
19
+ data,
20
+ accent,
21
+ }: {
22
+ /** Page data — uses title, lastUpdated, and sections. */
23
+ data: Pick<DocPageData, "title" | "lastUpdated" | "sections">;
24
+ /** Hero banner background color. */
25
+ accent?: string;
26
+ } = $props();
27
+ </script>
28
+
29
+ <div class="min-h-screen bg-background">
30
+ <PageHero title={data.title} lastUpdated={data.lastUpdated} {accent}>
31
+ {#snippet action()}
32
+ <button
33
+ type="button"
34
+ aria-label="Search"
35
+ class="flex h-9 w-9 items-center justify-center rounded-md bg-white/15 hover:bg-white/25 transition-colors"
36
+ >
37
+ <svg
38
+ xmlns="http://www.w3.org/2000/svg"
39
+ viewBox="0 0 24 24"
40
+ fill="none"
41
+ stroke="currentColor"
42
+ stroke-width="2"
43
+ stroke-linecap="round"
44
+ stroke-linejoin="round"
45
+ class="h-4 w-4"
46
+ >
47
+ <circle cx="11" cy="11" r="8" />
48
+ <path d="m21 21-4.3-4.3" />
49
+ </svg>
50
+ </button>
51
+ {/snippet}
52
+ </PageHero>
53
+
54
+ <main class="mx-auto max-w-3xl px-6 py-12 flex flex-col gap-10">
55
+ {#each data.sections as section (section.id)}
56
+ <DocSectionView {section} />
57
+ {/each}
58
+ </main>
59
+ </div>
@@ -0,0 +1,10 @@
1
+ import type { DocPageData } from "../types";
2
+ type $$ComponentProps = {
3
+ /** Page data — uses title, lastUpdated, and sections. */
4
+ data: Pick<DocPageData, "title" | "lastUpdated" | "sections">;
5
+ /** Hero banner background color. */
6
+ accent?: string;
7
+ };
8
+ declare const DocsPageHero: import("svelte").Component<$$ComponentProps, {}, "">;
9
+ type DocsPageHero = ReturnType<typeof DocsPageHero>;
10
+ export default DocsPageHero;
@@ -0,0 +1,51 @@
1
+ <script lang="ts" module>
2
+ /**
3
+ * Documentation page hero with colored banner and optional action.
4
+ * Displays title, last update date, and a search button in the top-right corner.
5
+ * @component
6
+ * @example
7
+ * ```svelte
8
+ * <PageHero title="Privacy Policy" lastUpdated="24 June 2024" accent="#f0400f">
9
+ * {#snippet action()}
10
+ * <button>Search</button>
11
+ * {/snippet}
12
+ * </PageHero>
13
+ * ```
14
+ */
15
+ </script>
16
+
17
+ <script lang="ts">
18
+ import type { Snippet } from "svelte";
19
+
20
+ let {
21
+ title,
22
+ lastUpdated,
23
+ accent = "#f0400f",
24
+ action,
25
+ }: {
26
+ /** Page title. */
27
+ title: string;
28
+ /** Last update date of the document. */
29
+ lastUpdated: string;
30
+ /** Banner background color. */
31
+ accent?: string;
32
+ /** Optional action in the top-right corner (e.g., search button). */
33
+ action?: Snippet;
34
+ } = $props();
35
+ </script>
36
+
37
+ <header
38
+ class="relative px-6 py-10 sm:px-10 sm:py-14 text-white"
39
+ style="background-color: {accent}"
40
+ >
41
+ <div class="mx-auto max-w-3xl">
42
+ <h1 class="text-3xl sm:text-4xl font-bold tracking-tight">{title}</h1>
43
+ <p class="mt-2 text-sm text-white/80">Latest update: {lastUpdated}</p>
44
+ </div>
45
+
46
+ {#if action}
47
+ <div class="absolute right-4 top-4 sm:right-6 sm:top-6">
48
+ {@render action()}
49
+ </div>
50
+ {/if}
51
+ </header>
@@ -0,0 +1,14 @@
1
+ import type { Snippet } from "svelte";
2
+ type $$ComponentProps = {
3
+ /** Page title. */
4
+ title: string;
5
+ /** Last update date of the document. */
6
+ lastUpdated: string;
7
+ /** Banner background color. */
8
+ accent?: string;
9
+ /** Optional action in the top-right corner (e.g., search button). */
10
+ action?: Snippet;
11
+ };
12
+ declare const PageHero: import("svelte").Component<$$ComponentProps, {}, "">;
13
+ type PageHero = ReturnType<typeof PageHero>;
14
+ export default PageHero;
@@ -0,0 +1,24 @@
1
+ <script lang="ts" module>
2
+ /**
3
+ * Variant 02 of the Privacy Policy / Terms of Use page.
4
+ * Simple layout with colored hero and centered content in a single column.
5
+ * @component
6
+ * @example
7
+ * ```svelte
8
+ * <PrivacyPolicyOrTermsOfUse02 data={pageData} />
9
+ * ```
10
+ */
11
+ </script>
12
+
13
+ <script lang="ts">
14
+ import type { DocPageData } from "../types";
15
+ import DocsPageHero from "./DocsPageHero.svelte";
16
+
17
+ let { data }: { data: DocPageData } = $props();
18
+ </script>
19
+
20
+ <svelte:head>
21
+ <title>{data.title}</title>
22
+ </svelte:head>
23
+
24
+ <DocsPageHero data={data} />
@@ -0,0 +1,7 @@
1
+ import type { DocPageData } from "../types";
2
+ type $$ComponentProps = {
3
+ data: DocPageData;
4
+ };
5
+ declare const PrivacyPolicyOrTermsOfUse02: import("svelte").Component<$$ComponentProps, {}, "">;
6
+ type PrivacyPolicyOrTermsOfUse02 = ReturnType<typeof PrivacyPolicyOrTermsOfUse02>;
7
+ export default PrivacyPolicyOrTermsOfUse02;
@@ -0,0 +1,32 @@
1
+ <script lang="ts" module>
2
+ /**
3
+ * Main Privacy Policy / Terms of Use component.
4
+ * Allows choosing between two layout variants:
5
+ * - **1**: Three-column layout with sidebar, content, and TOC (scroll-spy).
6
+ * - **2**: Simple layout with colored hero and centered content.
7
+ *
8
+ * @component
9
+ * @example
10
+ * ```svelte
11
+ * <!-- Variant 1 (default) — docs layout with sidebar -->
12
+ * <PrivacyPolicyOrTermsOfUse variant={1} data={pageData} />
13
+ *
14
+ * <!-- Variant 2 — layout with hero -->
15
+ * <PrivacyPolicyOrTermsOfUse variant={2} data={pageData} />
16
+ * ```
17
+ */
18
+ </script>
19
+
20
+ <script lang="ts">
21
+ import type { PrivacyPolicyOrTermsOfUseProps } from "./types";
22
+ import PrivacyPolicyOrTermsOfUse01 from "./01/PrivacyPolicyOrTermsOfUse01.svelte";
23
+ import PrivacyPolicyOrTermsOfUse02 from "./02/PrivacyPolicyOrTermsOfUse02.svelte";
24
+
25
+ let { variant = 1, data }: PrivacyPolicyOrTermsOfUseProps = $props();
26
+ </script>
27
+
28
+ {#if variant === 2}
29
+ <PrivacyPolicyOrTermsOfUse02 {data} />
30
+ {:else}
31
+ <PrivacyPolicyOrTermsOfUse01 {data} />
32
+ {/if}
@@ -0,0 +1,4 @@
1
+ import type { PrivacyPolicyOrTermsOfUseProps } from "./types";
2
+ declare const PrivacyPolicyOrTermsOfUse: import("svelte").Component<PrivacyPolicyOrTermsOfUseProps, {}, "">;
3
+ type PrivacyPolicyOrTermsOfUse = ReturnType<typeof PrivacyPolicyOrTermsOfUse>;
4
+ export default PrivacyPolicyOrTermsOfUse;
@@ -0,0 +1,26 @@
1
+ <script lang="ts" module>
2
+ /**
3
+ * Renders a content block (paragraph or list).
4
+ * @component
5
+ * @example
6
+ * ```svelte
7
+ * <ContentBlockView block={{ type: "paragraph", text: "Hello world" }} />
8
+ * ```
9
+ */
10
+ </script>
11
+
12
+ <script lang="ts">
13
+ import type { ContentBlock } from "../types";
14
+
15
+ let { block }: { block: ContentBlock } = $props();
16
+ </script>
17
+
18
+ {#if block.type === "paragraph"}
19
+ <p class="leading-7 text-foreground/90">{block.text}</p>
20
+ {:else if block.type === "list"}
21
+ <ul class="list-disc pl-6 flex flex-col gap-1.5 text-foreground/90">
22
+ {#each block.items as item, i (i)}
23
+ <li class="leading-7">{item}</li>
24
+ {/each}
25
+ </ul>
26
+ {/if}
@@ -0,0 +1,7 @@
1
+ import type { ContentBlock } from "../types";
2
+ type $$ComponentProps = {
3
+ block: ContentBlock;
4
+ };
5
+ declare const ContentBlockView: import("svelte").Component<$$ComponentProps, {}, "">;
6
+ type ContentBlockView = ReturnType<typeof ContentBlockView>;
7
+ export default ContentBlockView;
@@ -0,0 +1,44 @@
1
+ <script lang="ts" module>
2
+ /**
3
+ * Renders a document section with title, content blocks, and recursive subsections.
4
+ * @component
5
+ * @example
6
+ * ```svelte
7
+ * <DocSectionView section={sectionData} />
8
+ * ```
9
+ */
10
+ </script>
11
+
12
+ <script lang="ts">
13
+ import type { DocSection } from "../types";
14
+ import ContentBlockView from "./ContentBlockView.svelte";
15
+
16
+ let { section }: { section: DocSection } = $props();
17
+
18
+ const level = $derived(section.level ?? 1);
19
+ const heading = $derived(
20
+ section.number
21
+ ? `${section.number}. ${section.title}`
22
+ : section.title,
23
+ );
24
+ </script>
25
+
26
+ <section id={section.id} class="scroll-mt-24 flex flex-col gap-4">
27
+ {#if level === 1}
28
+ <h2 class="text-2xl font-semibold tracking-tight">{heading}</h2>
29
+ {:else}
30
+ <h3 class="text-xl font-semibold tracking-tight">{heading}</h3>
31
+ {/if}
32
+
33
+ {#each section.blocks ?? [] as block, i (i)}
34
+ <ContentBlockView {block} />
35
+ {/each}
36
+
37
+ {#if section.subsections}
38
+ <div class="flex flex-col gap-6 mt-2">
39
+ {#each section.subsections as subsection (subsection.id)}
40
+ <svelte:self section={subsection} />
41
+ {/each}
42
+ </div>
43
+ {/if}
44
+ </section>
@@ -0,0 +1,7 @@
1
+ import type { DocSection } from "../types";
2
+ type $$ComponentProps = {
3
+ section: DocSection;
4
+ };
5
+ declare const DocSectionView: import("svelte").Component<$$ComponentProps, {}, "">;
6
+ type DocSectionView = ReturnType<typeof DocSectionView>;
7
+ export default DocSectionView;
@@ -0,0 +1,34 @@
1
+ <script lang="ts" module>
2
+ /**
3
+ * Renders the breadcrumb navigation (e.g., Blog / Current).
4
+ * @component
5
+ * @example
6
+ * ```svelte
7
+ * <PrivacyPolicyOrTermsOfUseBreadcrumb items={[{ label: "Blog", href: "/blog" }, { label: "Current" }]} />
8
+ * ```
9
+ */
10
+ </script>
11
+
12
+ <script lang="ts">
13
+ import type { BreadcrumbItem } from "../types";
14
+
15
+ let { items }: { items: BreadcrumbItem[] } = $props();
16
+ </script>
17
+
18
+ <nav
19
+ aria-label="Breadcrumb"
20
+ class="flex items-center gap-1.5 text-sm text-muted-foreground"
21
+ >
22
+ {#each items as item, i (item.label)}
23
+ {#if item.href}
24
+ <a href={item.href} class="hover:text-foreground transition-colors"
25
+ >{item.label}</a
26
+ >
27
+ {:else}
28
+ <span class="text-foreground font-medium">{item.label}</span>
29
+ {/if}
30
+ {#if i < items.length - 1}
31
+ <span class="select-none">/</span>
32
+ {/if}
33
+ {/each}
34
+ </nav>
@@ -0,0 +1,7 @@
1
+ import type { BreadcrumbItem } from "../types";
2
+ type $$ComponentProps = {
3
+ items: BreadcrumbItem[];
4
+ };
5
+ declare const PrivacyPolicyOrTermsOfUseBreadcrumb: import("svelte").Component<$$ComponentProps, {}, "">;
6
+ type PrivacyPolicyOrTermsOfUseBreadcrumb = ReturnType<typeof PrivacyPolicyOrTermsOfUseBreadcrumb>;
7
+ export default PrivacyPolicyOrTermsOfUseBreadcrumb;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Constrói a tabela de conteúdos (TOC) a partir das secções do documento.
3
+ * Achata a árvore de secções (com subsections) numa lista plana.
4
+ * @param sections - Secções do documento
5
+ * @returns Lista de itens para a TOC
6
+ */
7
+ import type { DocSection, TocItem } from "../types";
8
+ export declare function buildToc(sections: DocSection[]): TocItem[];
@@ -0,0 +1,14 @@
1
+ export function buildToc(sections) {
2
+ const result = [];
3
+ for (const section of sections) {
4
+ result.push({
5
+ id: section.id,
6
+ label: section.number ? `${section.number}. ${section.title}` : section.title,
7
+ level: section.level ?? 1,
8
+ });
9
+ if (section.subsections) {
10
+ result.push(...buildToc(section.subsections));
11
+ }
12
+ }
13
+ return result;
14
+ }
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Tipagem partilhada por todos os componentes da página de documentação/política.
3
+ * @module types
4
+ */
5
+ /** Um item do breadcrumb no topo da página (ex: Blog / Current). */
6
+ export interface BreadcrumbItem {
7
+ label: string;
8
+ href?: string;
9
+ }
10
+ /**
11
+ * Um bloco de conteúdo dentro de uma secção: parágrafo de texto
12
+ * ou lista de pontos (bullets).
13
+ */
14
+ export type ContentBlock = {
15
+ type: "paragraph";
16
+ text: string;
17
+ } | {
18
+ type: "list";
19
+ items: string[];
20
+ };
21
+ /**
22
+ * Uma secção de conteúdo (ex: "1. Introduction", "2.1 Personal Data").
23
+ * `level` define o tamanho do título (1 = h2, 2 = h3).
24
+ * `subsections` permite aninhar secções (2 -> 2.1, 2.2, ...).
25
+ */
26
+ export interface DocSection {
27
+ /** id único, usado para o link/scroll da sidebar e TOC (#id) */
28
+ id: string;
29
+ /** número exibido antes do título, ex: "1", "2.1" */
30
+ number?: string;
31
+ /** título da secção */
32
+ title: string;
33
+ /** nível do título (1 = h2, 2 = h3). Padrão: 1 */
34
+ level?: 1 | 2;
35
+ /** blocos de conteúdo (parágrafos, listas) */
36
+ blocks?: ContentBlock[];
37
+ /** subsecções aninhadas */
38
+ subsections?: DocSection[];
39
+ }
40
+ /** Dados completos de uma página de documentação/política. */
41
+ export interface DocPageData {
42
+ /** título da página */
43
+ title: string;
44
+ /** data da última atualização */
45
+ lastUpdated: string;
46
+ /** itens do breadcrumb */
47
+ breadcrumb: BreadcrumbItem[];
48
+ /** secções de conteúdo (usadas pela sidebar, TOC e renderização) */
49
+ sections: DocSection[];
50
+ }
51
+ /** Item derivado automaticamente das secções, para a tabela de conteúdos (TOC). */
52
+ export interface TocItem {
53
+ id: string;
54
+ label: string;
55
+ level: 1 | 2;
56
+ }
57
+ export interface PrivacyPolicyOrTermsOfUseProps {
58
+ /** Variante do layout: 1 = sidebar+TOC, 2 = hero+coluna. */
59
+ variant?: 1 | 2;
60
+ /** Dados completos da página de documento. */
61
+ data: DocPageData;
62
+ }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Tipagem partilhada por todos os componentes da página de documentação/política.
3
+ * @module types
4
+ */
5
+ export {};
@@ -1,21 +1,26 @@
1
+ <script lang="ts" module>
2
+ /**
3
+ * @component ForgetPasswordCard
4
+ * Password recovery card with tabs, back button, and light switch.
5
+ *
6
+ * @example svelte
7
+ * <ForgetPasswordCard formType="EMAIL" onSubmit={(req) => console.log(req)} />
8
+ */
9
+ </script>
10
+
1
11
  <script lang="ts">
2
- import LanguageSwitcher from "../../../../ui/language-switcher/language-switcher.svelte";
3
- import ButtonBack from "../../../../core/button/ButtonBack.svelte";
12
+ import LanguageSwitcher from "../../../../../ui/language-switcher/language-switcher.svelte";
13
+ import ButtonBack from "../../../../../core/button/ButtonBack.svelte";
4
14
  import type { Snippet } from "svelte";
5
- import { LightSwitch } from "../../../../ui/light-switch";
6
- import { t } from "../../../../../i18n";
15
+ import { LightSwitch } from "../../../../../ui/light-switch";
16
+ import { t } from "../../../../../../i18n";
7
17
  import type {
8
18
  ForgetPasswordRequestDto,
9
19
  ForgetPasswordVariant,
10
20
  } from "../../types";
11
21
  import FormForgetPassword from "./FormForgetPassword.svelte";
12
- import TabUnderline from "../../../../core/tabs/ui/tab-underline.svelte";
22
+ import TabUnderline from "../../../../../core/tabs/ui/tab-underline.svelte";
13
23
 
14
- /**
15
- * Card de recuperação de senha.
16
- * @property {ForgetPasswordVariant} formType - Tipo do input (EMAIL, PHONE)
17
- * @property {(req: ForgetPasswordRequestDto) => void} onSubmit - Callback ao submeter
18
- */
19
24
  type Props = {
20
25
  formType?: ForgetPasswordVariant;
21
26
  onSubmit?: (request: ForgetPasswordRequestDto) => void;
@@ -1,10 +1,5 @@
1
1
  import type { Snippet } from "svelte";
2
2
  import type { ForgetPasswordRequestDto, ForgetPasswordVariant } from "../../types";
3
- /**
4
- * Card de recuperação de senha.
5
- * @property {ForgetPasswordVariant} formType - Tipo do input (EMAIL, PHONE)
6
- * @property {(req: ForgetPasswordRequestDto) => void} onSubmit - Callback ao submeter
7
- */
8
3
  type Props = {
9
4
  formType?: ForgetPasswordVariant;
10
5
  onSubmit?: (request: ForgetPasswordRequestDto) => void;
@@ -1,10 +1,20 @@
1
+ <script lang="ts" module>
2
+ /**
3
+ * @component FormForgetPassword
4
+ * Password recovery form with email, phone, or both input.
5
+ *
6
+ * @example svelte
7
+ * <FormForgetPassword variant="EMAIL" onSubmit={(req) => console.log(req)} />
8
+ */
9
+ </script>
10
+
1
11
  <script lang="ts">
2
- import InputEmail from "../../../../core/form/ui/input-email.svelte";
3
- import InputPhone from "../../../../core/form/ui/input-phone.svelte";
4
- import InputEmailOrPhone from "../../../../core/form/ui/input-email-or-phone.svelte";
5
- import { t } from "../../../../../i18n";
12
+ import InputEmail from "../../../../../core/form/ui/input-email.svelte";
13
+ import InputPhone from "../../../../../core/form/ui/input-phone.svelte";
14
+ import InputEmailOrPhone from "../../../../../core/form/ui/input-email-or-phone.svelte";
15
+ import { t } from "../../../../../../i18n";
6
16
  import type { ForgetPasswordRequestDto, ForgetPasswordVariant } from "../../types";
7
- import ButtonSend from "../../../../core/button/ButtonSend.svelte";
17
+ import ButtonSend from "../../../../../core/button/ButtonSend.svelte";
8
18
 
9
19
  type Props = {
10
20
  variant?: ForgetPasswordVariant;