negodesign 0.0.77 → 0.0.79

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 (278) hide show
  1. package/README.md +133 -133
  2. package/dist/components/NegoDesign.svelte +21 -21
  3. package/dist/components/pages/admin/01/ui/AdminContent.svelte +14 -14
  4. package/dist/components/pages/admin/01/ui/AdminPanel.svelte +46 -46
  5. package/dist/components/pages/product-details/shared/ProductDetailFilesVertical.svelte +103 -103
  6. package/dist/components/pages/profile-user/shared/ProfileUserAddress.svelte +83 -83
  7. package/dist/components/pages/profile-user/shared/ProfileUserTabs.svelte +80 -80
  8. package/dist/components/pages/security/auth/PageAuth01.svelte +21 -24
  9. package/dist/components/pages/security/auth/PageAuth02.svelte +11 -16
  10. package/dist/components/pages/security/auth/PageAuth03.svelte +11 -16
  11. package/dist/components/pages/security/login/01/ui/FormLogin.svelte +7 -5
  12. package/dist/components/pages/security/login/01/ui/FormLogin.svelte.d.ts +2 -0
  13. package/dist/components/pages/security/login/01/ui/FormLoginEmailPassword.svelte +4 -2
  14. package/dist/components/pages/security/login/01/ui/FormLoginEmailPassword.svelte.d.ts +2 -0
  15. package/dist/components/pages/security/login/01/ui/FormLoginPhonePassword.svelte +4 -2
  16. package/dist/components/pages/security/login/01/ui/FormLoginPhonePassword.svelte.d.ts +2 -0
  17. package/dist/components/pages/security/login/01/ui/FormLoginUsernamePassword.svelte +4 -2
  18. package/dist/components/pages/security/login/01/ui/FormLoginUsernamePassword.svelte.d.ts +2 -0
  19. package/dist/components/pages/security/login/01/ui/{LoginCard.svelte → LoginCard01.svelte} +132 -109
  20. package/dist/components/pages/security/login/01/ui/{LoginCard.svelte.d.ts → LoginCard01.svelte.d.ts} +3 -3
  21. package/dist/components/pages/security/login/01/ui/PageLogin01.svelte +2 -2
  22. package/dist/components/pages/security/login/02/ui/FormLogin02.svelte +7 -5
  23. package/dist/components/pages/security/login/02/ui/FormLogin02.svelte.d.ts +2 -0
  24. package/dist/components/pages/security/login/02/ui/FormLoginEmailPassword02.svelte +4 -2
  25. package/dist/components/pages/security/login/02/ui/FormLoginEmailPassword02.svelte.d.ts +2 -0
  26. package/dist/components/pages/security/login/02/ui/FormLoginPhonePassword02.svelte +4 -2
  27. package/dist/components/pages/security/login/02/ui/FormLoginPhonePassword02.svelte.d.ts +2 -0
  28. package/dist/components/pages/security/login/02/ui/FormLoginUsernamePassword02.svelte +4 -2
  29. package/dist/components/pages/security/login/02/ui/FormLoginUsernamePassword02.svelte.d.ts +2 -0
  30. package/dist/components/pages/security/login/03/ui/FormLogin03.svelte +8 -4
  31. package/dist/components/pages/security/login/03/ui/FormLogin03.svelte.d.ts +2 -0
  32. package/dist/components/pages/security/login/03/ui/FormLoginEmailPassword03.svelte +4 -2
  33. package/dist/components/pages/security/login/03/ui/FormLoginEmailPassword03.svelte.d.ts +2 -0
  34. package/dist/components/pages/security/login/03/ui/FormLoginPhonePassword03.svelte +4 -2
  35. package/dist/components/pages/security/login/03/ui/FormLoginPhonePassword03.svelte.d.ts +2 -0
  36. package/dist/components/pages/security/login/03/ui/FormLoginUsernamePassword03.svelte +4 -2
  37. package/dist/components/pages/security/login/03/ui/FormLoginUsernamePassword03.svelte.d.ts +2 -0
  38. package/dist/components/pages/security/login/PageLogin.svelte +30 -30
  39. package/dist/components/pages/security/register/01/ui/PageRegister01.svelte +21 -9
  40. package/dist/components/pages/security/register/01/ui/PageRegister01.svelte.d.ts +1 -0
  41. package/dist/components/pages/security/register/01/ui/{RegisterCard.svelte → RegisterCard01.svelte} +26 -22
  42. package/dist/components/pages/security/register/01/ui/{RegisterCard.svelte.d.ts → RegisterCard01.svelte.d.ts} +3 -3
  43. package/dist/components/pages/security/register/FormRegister.svelte +40 -14
  44. package/dist/components/pages/security/register/FormRegister.svelte.d.ts +3 -0
  45. package/dist/components/ui/avatar/avatar-fallback.svelte +29 -29
  46. package/dist/components/ui/avatar/avatar-image.svelte +38 -38
  47. package/dist/components/ui/avatar/avatar.svelte +39 -39
  48. package/dist/components/ui/badge/badge.svelte +46 -46
  49. package/dist/components/ui/banner/AdCardBanner.svelte +74 -74
  50. package/dist/components/ui/banner/CtaCardBanner.svelte +118 -118
  51. package/dist/components/ui/banner/CtaCardImageBanner.svelte +94 -94
  52. package/dist/components/ui/breadcrumb/core/breadcrumb-list.svelte +31 -31
  53. package/dist/components/ui/button/ButtonBack.svelte +18 -18
  54. package/dist/components/ui/button/ButtonLogin.svelte +15 -15
  55. package/dist/components/ui/button/ButtonLoginWith.svelte +57 -57
  56. package/dist/components/ui/button/ButtonSend.svelte +15 -15
  57. package/dist/components/ui/button/button.svelte +85 -85
  58. package/dist/components/ui/card/core/highlight/01/CardHighlight01.svelte +103 -103
  59. package/dist/components/ui/card/core/highlight/02/CardHighlight02.svelte +99 -99
  60. package/dist/components/ui/card/core/highlight/CardHighlight.svelte +22 -22
  61. package/dist/components/ui/card/core/media/01/CardMedia01.svelte +133 -133
  62. package/dist/components/ui/card/core/media/02/CardMedia02.svelte +127 -127
  63. package/dist/components/ui/card/core/media/CardMedia.svelte +18 -18
  64. package/dist/components/ui/card/core/product/01/CardProduct01.svelte +136 -136
  65. package/dist/components/ui/card/core/product/02/CardProduct02.svelte +124 -124
  66. package/dist/components/ui/card/core/product/CardProduct.svelte +22 -22
  67. package/dist/components/ui/card/core/profile/01/CardProfile01.svelte +134 -134
  68. package/dist/components/ui/card/core/profile/02/CardProfile02.svelte +132 -132
  69. package/dist/components/ui/card/core/profile/CardProfile.svelte +18 -18
  70. package/dist/components/ui/card/core/promotion/CardPromotion.svelte +139 -139
  71. package/dist/components/ui/card/core/promotion/CardPromotionPrice.svelte +32 -32
  72. package/dist/components/ui/card/core/shared/CardButton.svelte +42 -42
  73. package/dist/components/ui/card/core/shared/CardCart.svelte +36 -36
  74. package/dist/components/ui/card/core/shared/CardDescription.svelte +41 -41
  75. package/dist/components/ui/card/core/shared/CardFavorite.svelte +33 -33
  76. package/dist/components/ui/card/core/shared/CardLogo.svelte +19 -19
  77. package/dist/components/ui/card/core/shared/CardPhoneOrWhatsapp.svelte +45 -45
  78. package/dist/components/ui/card/core/shared/CardStarRating.svelte +24 -24
  79. package/dist/components/ui/card/core/shared/CardTags.svelte +95 -95
  80. package/dist/components/ui/card/core/shared/CardThumbnailVideo.svelte +232 -232
  81. package/dist/components/ui/card/core/shared/CardTitlePrice.svelte +24 -24
  82. package/dist/components/ui/card/core/shared/TruncatableText.svelte +49 -49
  83. package/dist/components/ui/carousel/carousel-content.svelte +56 -56
  84. package/dist/components/ui/carousel/carousel-item.svelte +29 -29
  85. package/dist/components/ui/carousel/carousel-next.svelte +40 -40
  86. package/dist/components/ui/carousel/carousel-previous.svelte +40 -40
  87. package/dist/components/ui/carousel/carousel.svelte +225 -225
  88. package/dist/components/ui/carousel/core/badge/ui/CarouselBadge.svelte +108 -108
  89. package/dist/components/ui/carousel/core/grid/shared/ui/CarouselGridSlot.svelte +38 -38
  90. package/dist/components/ui/carousel/core/hero/ui/CarouselHero.svelte +181 -181
  91. package/dist/components/ui/carousel/core/highlights/ui/CarouselHighlights.svelte +67 -67
  92. package/dist/components/ui/carousel/core/product/ui/CarouselProduct.svelte +57 -57
  93. package/dist/components/ui/carousel/core/promotion/ui/CarouselPromotion.svelte +67 -67
  94. package/dist/components/ui/carousel/core/shared/ui/CarouselHeader.svelte +59 -59
  95. package/dist/components/ui/checkbox/checkbox.svelte +96 -96
  96. package/dist/components/ui/collapsible/collapsible-content.svelte +30 -30
  97. package/dist/components/ui/collapsible/collapsible-trigger.svelte +51 -51
  98. package/dist/components/ui/collapsible/collapsible.svelte +66 -66
  99. package/dist/components/ui/data-table/flex-render.svelte +40 -40
  100. package/dist/components/ui/datatable/ui/DataTableActions.svelte +28 -28
  101. package/dist/components/ui/datatable/ui/DataTableCheckbox.svelte +22 -22
  102. package/dist/components/ui/datatable/ui/DataTableContent.svelte +59 -59
  103. package/dist/components/ui/datatable/ui/DataTableCore.svelte +148 -148
  104. package/dist/components/ui/datatable/ui/DataTableDragHandle.svelte +8 -8
  105. package/dist/components/ui/datatable/ui/DataTableListFilter.svelte +60 -60
  106. package/dist/components/ui/datatable/ui/DataTableListPagination.svelte +35 -35
  107. package/dist/components/ui/drawer/drawer-close.svelte +41 -41
  108. package/dist/components/ui/drawer/drawer-content.svelte +81 -81
  109. package/dist/components/ui/drawer/drawer-description.svelte +19 -19
  110. package/dist/components/ui/drawer/drawer-footer.svelte +20 -20
  111. package/dist/components/ui/drawer/drawer-header.svelte +20 -20
  112. package/dist/components/ui/drawer/drawer-nested.svelte +34 -34
  113. package/dist/components/ui/drawer/drawer-overlay.svelte +25 -25
  114. package/dist/components/ui/drawer/drawer-portal.svelte +19 -19
  115. package/dist/components/ui/drawer/drawer-title.svelte +19 -19
  116. package/dist/components/ui/drawer/drawer-trigger.svelte +42 -42
  117. package/dist/components/ui/drawer/drawer.svelte +74 -74
  118. package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-group.svelte +25 -25
  119. package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte +69 -69
  120. package/dist/components/ui/dropdown-menu/dropdown-menu-content.svelte +106 -106
  121. package/dist/components/ui/dropdown-menu/dropdown-menu-group-heading.svelte +27 -27
  122. package/dist/components/ui/dropdown-menu/dropdown-menu-group.svelte +21 -21
  123. package/dist/components/ui/dropdown-menu/dropdown-menu-item.svelte +60 -60
  124. package/dist/components/ui/dropdown-menu/dropdown-menu-label.svelte +27 -27
  125. package/dist/components/ui/dropdown-menu/dropdown-menu-portal.svelte +6 -6
  126. package/dist/components/ui/dropdown-menu/dropdown-menu-radio-group.svelte +43 -43
  127. package/dist/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte +70 -70
  128. package/dist/components/ui/dropdown-menu/dropdown-menu-separator.svelte +20 -20
  129. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-content.svelte +33 -33
  130. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte +57 -57
  131. package/dist/components/ui/dropdown-menu/dropdown-menu-sub.svelte +76 -76
  132. package/dist/components/ui/dropdown-menu/dropdown-menu-trigger.svelte +68 -68
  133. package/dist/components/ui/dropdown-menu/dropdown-menu.svelte +53 -53
  134. package/dist/components/ui/empty/empty-content.svelte +19 -19
  135. package/dist/components/ui/empty/empty-description.svelte +19 -19
  136. package/dist/components/ui/empty/empty-header.svelte +19 -19
  137. package/dist/components/ui/empty/empty-media.svelte +41 -41
  138. package/dist/components/ui/empty/empty-title.svelte +19 -19
  139. package/dist/components/ui/empty/empty.svelte +19 -19
  140. package/dist/components/ui/footer/ui/Footer.svelte +18 -18
  141. package/dist/components/ui/form/data/InputIconDefault.svelte.js +2 -1
  142. package/dist/components/ui/form/data/InputLabel.svelte.d.ts +3 -0
  143. package/dist/components/ui/form/ui/calendar/Calendar.svelte +194 -0
  144. package/dist/components/ui/form/ui/calendar/Calendar.svelte.d.ts +15 -0
  145. package/dist/components/ui/form/ui/calendar/CalendarCard.svelte +90 -0
  146. package/dist/components/ui/form/ui/calendar/CalendarCard.svelte.d.ts +20 -0
  147. package/dist/components/ui/form/ui/calendar/DaysGrid.svelte +76 -0
  148. package/dist/components/ui/form/ui/calendar/DaysGrid.svelte.d.ts +17 -0
  149. package/dist/components/ui/form/ui/calendar/MonthSelect.svelte +50 -0
  150. package/dist/components/ui/form/ui/calendar/MonthSelect.svelte.d.ts +10 -0
  151. package/dist/components/ui/form/ui/calendar/YearSelect.svelte +117 -0
  152. package/dist/components/ui/form/ui/calendar/YearSelect.svelte.d.ts +15 -0
  153. package/dist/components/ui/form/ui/calendar/index.d.ts +5 -0
  154. package/dist/components/ui/form/ui/calendar/index.js +5 -0
  155. package/dist/components/ui/form/ui/calendar/utils.d.ts +26 -0
  156. package/dist/components/ui/form/ui/calendar/utils.js +89 -0
  157. package/dist/components/ui/form/ui/input-base.svelte +83 -81
  158. package/dist/components/ui/form/ui/input-calendar-interval.svelte +179 -0
  159. package/dist/components/ui/form/ui/input-calendar-interval.svelte.d.ts +14 -0
  160. package/dist/components/ui/form/ui/input-calendar.svelte +110 -0
  161. package/dist/components/ui/form/ui/input-calendar.svelte.d.ts +9 -0
  162. package/dist/components/ui/form/ui/input-email-or-phone.svelte +23 -23
  163. package/dist/components/ui/form/ui/input-email.svelte +23 -23
  164. package/dist/components/ui/form/ui/input-password-confirm.svelte +23 -23
  165. package/dist/components/ui/form/ui/input-password.svelte +23 -23
  166. package/dist/components/ui/form/ui/input-phone.svelte +37 -33
  167. package/dist/components/ui/form/ui/input-select.svelte +210 -158
  168. package/dist/components/ui/form/ui/input-select.svelte.d.ts +5 -9
  169. package/dist/components/ui/form/ui/input-username.svelte +22 -22
  170. package/dist/components/ui/grid/core/ui/01/Grid01.svelte +30 -30
  171. package/dist/components/ui/grid/core/ui/02/Grid02.svelte +30 -30
  172. package/dist/components/ui/grid/core/ui/ItemsPanel.svelte +26 -26
  173. package/dist/components/ui/grid/core/ui/ItemsPanelCarousel.svelte +37 -37
  174. package/dist/components/ui/grid/core/ui/ItemsPanelGrid.svelte +43 -43
  175. package/dist/components/ui/grid/core/ui/ItemsSimpleGrid.svelte +45 -45
  176. package/dist/components/ui/grid/core/ui/shared/DescriptionGrid.svelte +23 -23
  177. package/dist/components/ui/grid/core/ui/shared/IconRenderGrid.svelte +23 -23
  178. package/dist/components/ui/grid/core/ui/shared/TitleGrid.svelte +19 -19
  179. package/dist/components/ui/hero/SimpleHero.svelte +65 -65
  180. package/dist/components/ui/input-otp/input-otp-group.svelte +22 -22
  181. package/dist/components/ui/input-otp/input-otp-separator.svelte +27 -27
  182. package/dist/components/ui/input-otp/input-otp-slot.svelte +63 -63
  183. package/dist/components/ui/input-otp/input-otp.svelte +181 -181
  184. package/dist/components/ui/label/core/LabelOr.svelte +25 -25
  185. package/dist/components/ui/label/label.svelte +19 -19
  186. package/dist/components/ui/language-switcher/language-switcher.svelte +48 -48
  187. package/dist/components/ui/light-switch/light-switch.svelte +48 -48
  188. package/dist/components/ui/link/link-forget-password.svelte +12 -12
  189. package/dist/components/ui/link/link-privacy-polity.svelte +12 -12
  190. package/dist/components/ui/link/link-terms-of-service.svelte +12 -12
  191. package/dist/components/ui/modal/core/index.d.ts +1 -1
  192. package/dist/components/ui/modal/core/types.d.ts +2 -1
  193. package/dist/components/ui/modal/core/ui/ModalCore.svelte +132 -132
  194. package/dist/components/ui/modal/grid/types.d.ts +6 -5
  195. package/dist/components/ui/modal/grid/ui/02/ModalGridSelection02.svelte +146 -146
  196. package/dist/components/ui/modal/share/ui/ModalShareSelection.svelte +156 -156
  197. package/dist/components/ui/nav/ui/ComplexMenu.svelte +51 -51
  198. package/dist/components/ui/nav/ui/Menu.svelte +72 -72
  199. package/dist/components/ui/nav/ui/SimpleMenu.svelte +14 -14
  200. package/dist/components/ui/nav/ui/mobile/ComplexMenuMobile.svelte +125 -125
  201. package/dist/components/ui/nav/ui/mobile/MenuMobile.svelte +54 -54
  202. package/dist/components/ui/nav/ui/shared/MenuButton.svelte +51 -51
  203. package/dist/components/ui/nav/ui/shared/MenuLinks.svelte +40 -40
  204. package/dist/components/ui/nav/ui/shared/MenuListItem.svelte +44 -44
  205. package/dist/components/ui/nav/ui/shared/MenuLogo.svelte +13 -13
  206. package/dist/components/ui/nav/ui/shared/dropdown/DropdownNavigationMenuItemGrid.svelte +30 -30
  207. package/dist/components/ui/nav/ui/shared/navigation/NavDropdown.svelte +87 -87
  208. package/dist/components/ui/nav/ui/shared/navigation/NavigationMenuItem.svelte +17 -17
  209. package/dist/components/ui/nav/ui/shared/navigation/NavigationMenuItemCard.svelte +53 -53
  210. package/dist/components/ui/nav/ui/shared/navigation/NavigationMenuItemGrid.svelte +36 -36
  211. package/dist/components/ui/nav/ui/shared/navigation/NavigationMenuItemList.svelte +24 -24
  212. package/dist/components/ui/nav/ui/shared/navigation/NavigationMenuItems.svelte +21 -21
  213. package/dist/components/ui/panel/CarouselSlot.svelte +57 -57
  214. package/dist/components/ui/panel/LeftHero.svelte +114 -114
  215. package/dist/components/ui/panel/NotFoundEmpty.svelte +66 -66
  216. package/dist/components/ui/phone-input/country-selector.svelte +87 -87
  217. package/dist/components/ui/phone-input/country-selector.svelte.d.ts +2 -2
  218. package/dist/components/ui/phone-input/flag.svelte +11 -11
  219. package/dist/components/ui/phone-input/phone-input.svelte +163 -148
  220. package/dist/components/ui/phone-input/phone-input.svelte.d.ts +2 -2
  221. package/dist/components/ui/popover/popover-close.svelte +25 -25
  222. package/dist/components/ui/popover/popover-content.svelte +92 -92
  223. package/dist/components/ui/popover/popover-portal.svelte +6 -6
  224. package/dist/components/ui/popover/popover-trigger.svelte +68 -68
  225. package/dist/components/ui/popover/popover.svelte +53 -53
  226. package/dist/components/ui/search/SearchInput.svelte +32 -32
  227. package/dist/components/ui/search/shared/SearchInputCore.svelte +66 -66
  228. package/dist/components/ui/separator/separator.svelte +28 -28
  229. package/dist/components/ui/sidebar/core/MenuBarSidebar.svelte +70 -70
  230. package/dist/components/ui/sidebar/core/ui/navbar/NavMenuBarSidebar.svelte +97 -97
  231. package/dist/components/ui/sidebar/core/ui/navbar/NavMenuBottomSidebar.svelte +33 -33
  232. package/dist/components/ui/sidebar/core/ui/navbar/NavMenuTopBarSidebar.svelte +101 -101
  233. package/dist/components/ui/sidebar/core/ui/navbar/nav-menu-header-sidebar.svelte +77 -77
  234. package/dist/components/ui/sidebar/sidebar-content.svelte +24 -24
  235. package/dist/components/ui/sidebar/sidebar-footer.svelte +21 -21
  236. package/dist/components/ui/sidebar/sidebar-group-content.svelte +21 -21
  237. package/dist/components/ui/sidebar/sidebar-menu-action.svelte +38 -38
  238. package/dist/components/ui/sidebar/sidebar-menu-button.svelte +70 -70
  239. package/dist/components/ui/sidebar/sidebar-menu-sub-button.svelte +39 -39
  240. package/dist/components/ui/sidebar/sidebar-provider.svelte +62 -62
  241. package/dist/components/ui/sidebar/sidebar-rail.svelte +36 -36
  242. package/dist/components/ui/sidebar/sidebar-separator.svelte +21 -21
  243. package/dist/components/ui/sidebar/sidebar-trigger.svelte +36 -36
  244. package/dist/components/ui/sidebar/sidebar.svelte +118 -118
  245. package/dist/components/ui/skeleton/skeleton.svelte +19 -19
  246. package/dist/components/ui/star-rating/star-rating-star.svelte +66 -66
  247. package/dist/components/ui/star-rating/star-rating.svelte +149 -149
  248. package/dist/components/ui/table/table-body.svelte +15 -15
  249. package/dist/components/ui/table/table-caption.svelte +20 -20
  250. package/dist/components/ui/table/table-cell.svelte +15 -15
  251. package/dist/components/ui/table/table-footer.svelte +20 -20
  252. package/dist/components/ui/table/table-head.svelte +15 -15
  253. package/dist/components/ui/table/table-header.svelte +20 -20
  254. package/dist/components/ui/table/table-row.svelte +15 -15
  255. package/dist/components/ui/table/table.svelte +17 -17
  256. package/dist/components/ui/tabs/ui/tab-underline.svelte +43 -43
  257. package/dist/components/ui/underline-tabs/underline-tabs-content.svelte +33 -33
  258. package/dist/components/ui/underline-tabs/underline-tabs-list.svelte +40 -40
  259. package/dist/components/ui/underline-tabs/underline-tabs-trigger.svelte +91 -91
  260. package/dist/components/ui/underline-tabs/underline-tabs.svelte +61 -61
  261. package/dist/docs/ApiTable.svelte +42 -42
  262. package/dist/docs/CodeBlock.svelte +26 -26
  263. package/dist/docs/DocsHeader.svelte +25 -25
  264. package/dist/docs/DocsSidebar.svelte +108 -156
  265. package/dist/docs/components.js +638 -563
  266. package/dist/globals.css +68 -10
  267. package/dist/i18n/langs/en.d.ts +7 -0
  268. package/dist/i18n/langs/en.js +7 -0
  269. package/dist/i18n/langs/pt.d.ts +7 -0
  270. package/dist/i18n/langs/pt.js +7 -0
  271. package/dist/i18n/translations.d.ts +14 -0
  272. package/dist/index.d.ts +23 -0
  273. package/dist/index.js +23 -0
  274. package/dist/styles/globals.css +283 -283
  275. package/dist/types/index.d.ts +3 -1
  276. package/package.json +81 -81
  277. package/dist/components/pages/security/login/01/ui/FormRegister.svelte +0 -28
  278. package/dist/components/pages/security/login/01/ui/FormRegister.svelte.d.ts +0 -3
@@ -1,125 +1,125 @@
1
- <script lang="ts">
2
- import type {
3
- ComplexMenuProps,
4
- NavigationMenuItemCardProps,
5
- NavigationMenuItemGridProps,
6
- NavigationMenuItemListProps,
7
- NavigationMenuItemsProps,
8
- NavigationMenuItemProps,
9
- } from "../../data/types";
10
- import {
11
- isCard,
12
- isGrid,
13
- isList,
14
- isItems,
15
- isItem,
16
- } from "../../data/complex-menu-utils";
17
- import CollapsibleNavMenu from "../shared/CollapsibleNavMenu.svelte";
18
- import NavMenuItem from "../shared/NavMenuItem.svelte";
19
- import MenuMobile from "./MenuMobile.svelte";
20
-
21
- let { menus: links }: ComplexMenuProps = $props();
22
- </script>
23
-
24
- {#snippet headerSnippet(
25
- header: NonNullable<NavigationMenuItemCardProps["header"]>,
26
- )}
27
- <div class="mt-4 mb-2 text-lg font-medium {header.labelClass}">
28
- {header.label}
29
- </div>
30
- <p
31
- class="text-sm leading-tight {header.descriptionClass ||
32
- 'text-muted-foreground'}"
33
- >
34
- {header.description}
35
- </p>
36
- {/snippet}
37
-
38
- <MenuMobile>
39
- <div class="flex flex-col gap-1">
40
- {#each links as link, i (i)}
41
- {#if isCard(link)}
42
- {@const card = link as NavigationMenuItemCardProps}
43
- <CollapsibleNavMenu label={card.label ?? card.header?.label ?? ""}>
44
- <ul class="grid gap-2 p-2">
45
- {#if card.header}
46
- <li
47
- class="relative row-span-3"
48
- style={card.header.imgUrl
49
- ? `background-image: url(${card.header.imgUrl}); background-repeat: no-repeat; background-size: cover; background-position: center; border-radius: 12px;`
50
- : ""}
51
- >
52
- <a
53
- href={card.header.href ?? "#"}
54
- class="flex h-full w-full flex-col justify-end p-4 {card
55
- .header.imgUrl
56
- ? 'no-underline outline-hidden select-none'
57
- : 'bg-linear-to-b from-muted/50 to-muted rounded-md'}"
58
- >
59
- {@render headerSnippet(card.header)}
60
- </a>
61
- </li>
62
- {/if}
63
- {#if card.cards}
64
- {#each card.cards as item, j (j)}
65
- <NavMenuItem {...item} />
66
- {/each}
67
- {/if}
68
- </ul>
69
- </CollapsibleNavMenu>
70
- {:else if isGrid(link)}
71
- {@const grid = link as NavigationMenuItemGridProps}
72
- <CollapsibleNavMenu label={grid.label}>
73
- <ul class="grid grid-cols-2 gap-2 max-h-37.5 overflow-y-auto p-2">
74
- {#each grid.grids ?? [] as item, j (j)}
75
- <NavMenuItem {...item} />
76
- {/each}
77
- </ul>
78
- </CollapsibleNavMenu>
79
- {:else if isList(link)}
80
- {@const list = link as NavigationMenuItemListProps}
81
- <CollapsibleNavMenu label={list.label}>
82
- <ul class="grid gap-4 p-2">
83
- {#each list.list ?? [] as item, j (j)}
84
- <li>
85
- <a
86
- href={item.href}
87
- class="block rounded-md p-2 no-underline hover:bg-accent"
88
- >
89
- <div class="font-medium">{item.title ?? ""}</div>
90
- <div class="text-sm text-muted-foreground">
91
- {item.content}
92
- </div>
93
- </a>
94
- </li>
95
- {/each}
96
- </ul>
97
- </CollapsibleNavMenu>
98
- {:else if isItems(link)}
99
- {@const items = link as NavigationMenuItemsProps}
100
- <CollapsibleNavMenu label={items.label}>
101
- <ul class="grid min-w-50 gap-4 p-2">
102
- {#each items.items ?? [] as item, j (j)}
103
- <li>
104
- <a
105
- href={item.href}
106
- class="block rounded-md px-3 py-2 text-sm font-medium no-underline hover:bg-accent"
107
- >
108
- {item.title}
109
- </a>
110
- </li>
111
- {/each}
112
- </ul>
113
- </CollapsibleNavMenu>
114
- {:else if isItem(link)}
115
- {@const item = link as NavigationMenuItemProps}
116
- <a
117
- href={item.href}
118
- class="block w-full rounded-xl px-3 py-2 text-sm font-medium no-underline hover:bg-accent focus:bg-accent"
119
- >
120
- {item.label}
121
- </a>
122
- {/if}
123
- {/each}
124
- </div>
125
- </MenuMobile>
1
+ <script lang="ts">
2
+ import type {
3
+ ComplexMenuProps,
4
+ NavigationMenuItemCardProps,
5
+ NavigationMenuItemGridProps,
6
+ NavigationMenuItemListProps,
7
+ NavigationMenuItemsProps,
8
+ NavigationMenuItemProps,
9
+ } from "../../data/types";
10
+ import {
11
+ isCard,
12
+ isGrid,
13
+ isList,
14
+ isItems,
15
+ isItem,
16
+ } from "../../data/complex-menu-utils";
17
+ import CollapsibleNavMenu from "../shared/CollapsibleNavMenu.svelte";
18
+ import NavMenuItem from "../shared/NavMenuItem.svelte";
19
+ import MenuMobile from "./MenuMobile.svelte";
20
+
21
+ let { menus: links }: ComplexMenuProps = $props();
22
+ </script>
23
+
24
+ {#snippet headerSnippet(
25
+ header: NonNullable<NavigationMenuItemCardProps["header"]>,
26
+ )}
27
+ <div class="mt-4 mb-2 text-lg font-medium {header.labelClass}">
28
+ {header.label}
29
+ </div>
30
+ <p
31
+ class="text-sm leading-tight {header.descriptionClass ||
32
+ 'text-muted-foreground'}"
33
+ >
34
+ {header.description}
35
+ </p>
36
+ {/snippet}
37
+
38
+ <MenuMobile>
39
+ <div class="flex flex-col gap-1">
40
+ {#each links as link, i (i)}
41
+ {#if isCard(link)}
42
+ {@const card = link as NavigationMenuItemCardProps}
43
+ <CollapsibleNavMenu label={card.label ?? card.header?.label ?? ""}>
44
+ <ul class="grid gap-2 p-2">
45
+ {#if card.header}
46
+ <li
47
+ class="relative row-span-3"
48
+ style={card.header.imgUrl
49
+ ? `background-image: url(${card.header.imgUrl}); background-repeat: no-repeat; background-size: cover; background-position: center; border-radius: 12px;`
50
+ : ""}
51
+ >
52
+ <a
53
+ href={card.header.href ?? "#"}
54
+ class="flex h-full w-full flex-col justify-end p-4 {card
55
+ .header.imgUrl
56
+ ? 'no-underline outline-hidden select-none'
57
+ : 'bg-linear-to-b from-muted/50 to-muted rounded-md'}"
58
+ >
59
+ {@render headerSnippet(card.header)}
60
+ </a>
61
+ </li>
62
+ {/if}
63
+ {#if card.cards}
64
+ {#each card.cards as item, j (j)}
65
+ <NavMenuItem {...item} />
66
+ {/each}
67
+ {/if}
68
+ </ul>
69
+ </CollapsibleNavMenu>
70
+ {:else if isGrid(link)}
71
+ {@const grid = link as NavigationMenuItemGridProps}
72
+ <CollapsibleNavMenu label={grid.label}>
73
+ <ul class="grid grid-cols-2 gap-2 max-h-37.5 overflow-y-auto p-2">
74
+ {#each grid.grids ?? [] as item, j (j)}
75
+ <NavMenuItem {...item} />
76
+ {/each}
77
+ </ul>
78
+ </CollapsibleNavMenu>
79
+ {:else if isList(link)}
80
+ {@const list = link as NavigationMenuItemListProps}
81
+ <CollapsibleNavMenu label={list.label}>
82
+ <ul class="grid gap-4 p-2">
83
+ {#each list.list ?? [] as item, j (j)}
84
+ <li>
85
+ <a
86
+ href={item.href}
87
+ class="block rounded-md p-2 no-underline hover:bg-accent"
88
+ >
89
+ <div class="font-medium">{item.title ?? ""}</div>
90
+ <div class="text-sm text-muted-foreground">
91
+ {item.content}
92
+ </div>
93
+ </a>
94
+ </li>
95
+ {/each}
96
+ </ul>
97
+ </CollapsibleNavMenu>
98
+ {:else if isItems(link)}
99
+ {@const items = link as NavigationMenuItemsProps}
100
+ <CollapsibleNavMenu label={items.label}>
101
+ <ul class="grid min-w-50 gap-4 p-2">
102
+ {#each items.items ?? [] as item, j (j)}
103
+ <li>
104
+ <a
105
+ href={item.href}
106
+ class="block rounded-md px-3 py-2 text-sm font-medium no-underline hover:bg-accent"
107
+ >
108
+ {item.title}
109
+ </a>
110
+ </li>
111
+ {/each}
112
+ </ul>
113
+ </CollapsibleNavMenu>
114
+ {:else if isItem(link)}
115
+ {@const item = link as NavigationMenuItemProps}
116
+ <a
117
+ href={item.href}
118
+ class="block w-full rounded-xl px-3 py-2 text-sm font-medium no-underline hover:bg-accent focus:bg-accent"
119
+ >
120
+ {item.label}
121
+ </a>
122
+ {/if}
123
+ {/each}
124
+ </div>
125
+ </MenuMobile>
@@ -1,54 +1,54 @@
1
- <script lang="ts">
2
- import * as Drawer from "../../../drawer/index.js";
3
- import type { NavMenuButtonProps } from "../../data/nav-menu";
4
- import { buttonVariants } from "../../../button/index.js";
5
- import { cn } from "../../../../../utils.js";
6
- import { HugeiconsIcon } from "@hugeicons/svelte";
7
- import { Menu } from "@hugeicons/core-free-icons";
8
- import LightSwitch from "../../../light-switch/light-switch.svelte";
9
- import LanguageSwitcher from "../../../language-switcher/language-switcher.svelte";
10
- import { t } from "../../../../../i18n";
11
- import type { Snippet } from "svelte";
12
-
13
- type Props = {
14
- navMenuButton?: NavMenuButtonProps;
15
- isLightSwitch?: boolean;
16
- isLanguageSwitcher?: boolean;
17
- children: Snippet;
18
- };
19
-
20
- const { navMenuButton, isLightSwitch, isLanguageSwitcher, children }: 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
- {@render children()}
42
- </div>
43
- <Drawer.Footer>
44
- <div class="flex justify-center gap-5 py-5">
45
- <LightSwitch />
46
- <LanguageSwitcher />
47
- </div>
48
- <Drawer.Close class={buttonVariants({ variant: "outline" })}>
49
- {$t("label.close")}
50
- </Drawer.Close>
51
- </Drawer.Footer>
52
- </Drawer.Content>
53
- </Drawer.Root>
54
- </div>
1
+ <script lang="ts">
2
+ import * as Drawer from "../../../drawer/index.js";
3
+ import type { NavMenuButtonProps } from "../../data/nav-menu";
4
+ import { buttonVariants } from "../../../button/index.js";
5
+ import { cn } from "../../../../../utils.js";
6
+ import { HugeiconsIcon } from "@hugeicons/svelte";
7
+ import { Menu } from "@hugeicons/core-free-icons";
8
+ import LightSwitch from "../../../light-switch/light-switch.svelte";
9
+ import LanguageSwitcher from "../../../language-switcher/language-switcher.svelte";
10
+ import { t } from "../../../../../i18n";
11
+ import type { Snippet } from "svelte";
12
+
13
+ type Props = {
14
+ navMenuButton?: NavMenuButtonProps;
15
+ isLightSwitch?: boolean;
16
+ isLanguageSwitcher?: boolean;
17
+ children: Snippet;
18
+ };
19
+
20
+ const { navMenuButton, isLightSwitch, isLanguageSwitcher, children }: 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
+ {@render children()}
42
+ </div>
43
+ <Drawer.Footer>
44
+ <div class="flex justify-center gap-5 py-5">
45
+ <LightSwitch />
46
+ <LanguageSwitcher />
47
+ </div>
48
+ <Drawer.Close class={buttonVariants({ variant: "outline" })}>
49
+ {$t("label.close")}
50
+ </Drawer.Close>
51
+ </Drawer.Footer>
52
+ </Drawer.Content>
53
+ </Drawer.Root>
54
+ </div>
@@ -1,51 +1,51 @@
1
- <script lang="ts">
2
- import type { NavMenuButtonProps } from "../../data/nav-menu";
3
- import { Login03Icon, User03Icon } from "@hugeicons/core-free-icons";
4
- import { HugeiconsIcon, type IconSvgElement } from "@hugeicons/svelte";
5
- import { Button } from "../../../button/index.js";
6
- import { t } from "../../../../../i18n";
7
-
8
- let {
9
- buttonClass,
10
- textButtonLogin,
11
- textButtonRegister,
12
- onclickButtonLogin,
13
- onclickButtonRegister,
14
- }: NavMenuButtonProps = $props();
15
- </script>
16
-
17
- {#if onclickButtonRegister}
18
- {@render actionButtons({
19
- text: textButtonRegister || $t("label.register"),
20
- icon: User03Icon,
21
- onclick: onclickButtonRegister,
22
- })}
23
- {/if}
24
- {#if onclickButtonLogin}
25
- {@render actionButtons({
26
- text: textButtonLogin || $t("label.login"),
27
- icon: Login03Icon,
28
- onclick: onclickButtonLogin,
29
- })}
30
- {/if}
31
-
32
- {#snippet actionButtons({
33
- text,
34
- icon,
35
- onclick,
36
- }: Readonly<{
37
- text: string;
38
- icon: IconSvgElement;
39
- onclick: () => void;
40
- }>)}
41
- <Button
42
- {onclick}
43
- variant="outline"
44
- class="flex justify-between items-center gap-3 rounded-full border p-5 md:p-5 cursor-pointer md:text-md"
45
- >
46
- <div>{text}</div>
47
- <div class="border p-2 rounded-full bg-white dark:bg-background mr-0">
48
- <HugeiconsIcon {icon} />
49
- </div>
50
- </Button>
51
- {/snippet}
1
+ <script lang="ts">
2
+ import type { NavMenuButtonProps } from "../../data/nav-menu";
3
+ import { Login03Icon, User03Icon } from "@hugeicons/core-free-icons";
4
+ import { HugeiconsIcon, type IconSvgElement } from "@hugeicons/svelte";
5
+ import { Button } from "../../../button/index.js";
6
+ import { t } from "../../../../../i18n";
7
+
8
+ let {
9
+ buttonClass,
10
+ textButtonLogin,
11
+ textButtonRegister,
12
+ onclickButtonLogin,
13
+ onclickButtonRegister,
14
+ }: NavMenuButtonProps = $props();
15
+ </script>
16
+
17
+ {#if onclickButtonRegister}
18
+ {@render actionButtons({
19
+ text: textButtonRegister || $t("label.register"),
20
+ icon: User03Icon,
21
+ onclick: onclickButtonRegister,
22
+ })}
23
+ {/if}
24
+ {#if onclickButtonLogin}
25
+ {@render actionButtons({
26
+ text: textButtonLogin || $t("label.login"),
27
+ icon: Login03Icon,
28
+ onclick: onclickButtonLogin,
29
+ })}
30
+ {/if}
31
+
32
+ {#snippet actionButtons({
33
+ text,
34
+ icon,
35
+ onclick,
36
+ }: Readonly<{
37
+ text: string;
38
+ icon: IconSvgElement;
39
+ onclick: () => void;
40
+ }>)}
41
+ <Button
42
+ {onclick}
43
+ variant="outline"
44
+ class="flex justify-between items-center gap-3 rounded-full border p-5 md:p-5 cursor-pointer md:text-md"
45
+ >
46
+ <div>{text}</div>
47
+ <div class="border p-2 rounded-full bg-white dark:bg-background mr-0">
48
+ <HugeiconsIcon {icon} />
49
+ </div>
50
+ </Button>
51
+ {/snippet}
@@ -1,40 +1,40 @@
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
- menuKey?: string;
10
- activeClass?: string;
11
- orientation?: "horizontal" | "vertical";
12
- };
13
-
14
- let {
15
- links,
16
- linkClass,
17
- groupClass,
18
- menuKey,
19
- activeClass = "bg-gradient text-white",
20
- orientation,
21
- }: Props = $props();
22
- </script>
23
-
24
- <ul
25
- class={`flex ${orientation === "vertical" ? "flex-col" : "items-center"} gap-2 md:gap-5 lg:gap-15 ${groupClass}`}
26
- >
27
- {#each links as item (item.label)}
28
- <li>
29
- <a
30
- class={`flex items-center gap-1 ${linkClass} ${item.key && menuKey === item.key ? activeClass : ""}`}
31
- href={item.url ?? item.href ?? "#"}
32
- >
33
- {#if item.icon}
34
- <HugeiconsIcon icon={item.icon} size={15} />
35
- {/if}
36
- {item.label}
37
- </a>
38
- </li>
39
- {/each}
40
- </ul>
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
+ menuKey?: string;
10
+ activeClass?: string;
11
+ orientation?: "horizontal" | "vertical";
12
+ };
13
+
14
+ let {
15
+ links,
16
+ linkClass,
17
+ groupClass,
18
+ menuKey,
19
+ activeClass = "bg-gradient text-white",
20
+ orientation,
21
+ }: Props = $props();
22
+ </script>
23
+
24
+ <ul
25
+ class={`flex ${orientation === "vertical" ? "flex-col" : "items-center"} gap-2 md:gap-5 lg:gap-15 ${groupClass}`}
26
+ >
27
+ {#each links as item (item.label)}
28
+ <li>
29
+ <a
30
+ class={`flex items-center gap-1 ${linkClass} ${item.key && menuKey === item.key ? activeClass : ""}`}
31
+ href={item.url ?? item.href ?? "#"}
32
+ >
33
+ {#if item.icon}
34
+ <HugeiconsIcon icon={item.icon} size={15} />
35
+ {/if}
36
+ {item.label}
37
+ </a>
38
+ </li>
39
+ {/each}
40
+ </ul>
@@ -1,44 +1,44 @@
1
- <script lang="ts">
2
- import { cn } from "../../../../../utils";
3
- import type { ListItemProps } from "../../data/types";
4
- let {
5
- title,
6
- content,
7
- href,
8
- icon,
9
- textClass,
10
- subTextClass,
11
- class: className,
12
- ...restProps
13
- }: ListItemProps & {
14
- textClass?: string;
15
- subTextClass?: string;
16
- } = $props();
17
- </script>
18
-
19
- <li>
20
- <a
21
- {href}
22
- class={cn(
23
- "block space-y-1 rounded-md p-3 leading-none no-underline transition-colors outline-none select-none hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground",
24
- className,
25
- )}
26
- {...restProps}
27
- >
28
- {#if icon}
29
- <div class="flex gap-1 items-center">
30
- <div>
31
- <i class={`${icon} size-8 md:size-10`}></i>
32
- </div>
33
- <div class="-mt-1">
34
- <div class="leading-none font-medium">{title}</div>
35
- </div>
36
- </div>
37
- {:else}
38
- <div class="leading-none font-medium">{title}</div>
39
- {/if}
40
- <p class="line-clamp-2 text-sm leading-snug text-muted-foreground">
41
- {content}
42
- </p>
43
- </a>
44
- </li>
1
+ <script lang="ts">
2
+ import { cn } from "../../../../../utils";
3
+ import type { ListItemProps } from "../../data/types";
4
+ let {
5
+ title,
6
+ content,
7
+ href,
8
+ icon,
9
+ textClass,
10
+ subTextClass,
11
+ class: className,
12
+ ...restProps
13
+ }: ListItemProps & {
14
+ textClass?: string;
15
+ subTextClass?: string;
16
+ } = $props();
17
+ </script>
18
+
19
+ <li>
20
+ <a
21
+ {href}
22
+ class={cn(
23
+ "block space-y-1 rounded-md p-3 leading-none no-underline transition-colors outline-none select-none hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground",
24
+ className,
25
+ )}
26
+ {...restProps}
27
+ >
28
+ {#if icon}
29
+ <div class="flex gap-1 items-center">
30
+ <div>
31
+ <i class={`${icon} size-8 md:size-10`}></i>
32
+ </div>
33
+ <div class="-mt-1">
34
+ <div class="leading-none font-medium">{title}</div>
35
+ </div>
36
+ </div>
37
+ {:else}
38
+ <div class="leading-none font-medium">{title}</div>
39
+ {/if}
40
+ <p class="line-clamp-2 text-sm leading-snug text-muted-foreground">
41
+ {content}
42
+ </p>
43
+ </a>
44
+ </li>
@@ -1,13 +1,13 @@
1
- <script lang="ts">
2
- import type { NavMenuLogoProps } from "../../../../../types";
3
-
4
- let { img, url, label, className, onclick }: NavMenuLogoProps = $props();
5
- </script>
6
-
7
- <a href={url} {onclick}>
8
- {#if img}
9
- <img src={img} alt="logo of site" class={`max-h-50 ${className}`} />
10
- {:else if label}
11
- <span class={className}>{label}</span>
12
- {/if}
13
- </a>
1
+ <script lang="ts">
2
+ import type { NavMenuLogoProps } from "../../../../../types";
3
+
4
+ let { img, url, label, className, onclick }: NavMenuLogoProps = $props();
5
+ </script>
6
+
7
+ <a href={url} {onclick}>
8
+ {#if img}
9
+ <img src={img} alt="logo of site" class={`max-h-50 ${className}`} />
10
+ {:else if label}
11
+ <span class={className}>{label}</span>
12
+ {/if}
13
+ </a>