negodesign 0.0.73 → 0.0.74

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 (488) 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/company-profile/shared/ProfileProducts.svelte +2 -2
  6. package/dist/components/pages/company-profile/types.d.ts +1 -1
  7. package/dist/components/pages/product-details/shared/ProductDetailFilesVertical.svelte +103 -103
  8. package/dist/components/pages/product-details/shared/ProductDetailPrice.svelte +3 -2
  9. package/dist/components/pages/product-details/shared/ProductDetailRating.svelte +2 -1
  10. package/dist/components/pages/product-details/shared/ProductDetailReviews.svelte +2 -1
  11. package/dist/components/pages/product-details/shared/ProductDetailTags.svelte +3 -2
  12. package/dist/components/pages/product-details/shared/ProductPromotionDetails.svelte +1 -1
  13. package/dist/components/pages/profile-user/shared/ProfileUserAddress.svelte +83 -83
  14. package/dist/components/pages/profile-user/shared/ProfileUserTabs.svelte +80 -80
  15. package/dist/components/pages/security/forget-password/01/ui/ForgetPasswordCard.svelte +2 -2
  16. package/dist/components/pages/security/forget-password/01/ui/FormForgetPassword.svelte +4 -4
  17. package/dist/components/pages/security/forget-password/01/ui/PageForgetPassword01.svelte +2 -2
  18. package/dist/components/pages/security/login/01/ui/FormLogin.svelte +11 -12
  19. package/dist/components/pages/security/login/01/ui/FormLogin.svelte.d.ts +2 -1
  20. package/dist/components/pages/security/login/01/ui/FormLoginEmailPassword.svelte +4 -3
  21. package/dist/components/pages/security/login/01/ui/FormLoginEmailPassword.svelte.d.ts +2 -1
  22. package/dist/components/pages/security/login/01/ui/FormLoginPhonePassword.svelte +4 -3
  23. package/dist/components/pages/security/login/01/ui/FormLoginPhonePassword.svelte.d.ts +2 -1
  24. package/dist/components/pages/security/login/01/ui/FormLoginUsernamePassword.svelte +4 -3
  25. package/dist/components/pages/security/login/01/ui/FormLoginUsernamePassword.svelte.d.ts +2 -1
  26. package/dist/components/pages/security/login/01/ui/FormRegister.svelte +28 -28
  27. package/dist/components/pages/security/login/01/ui/LoginCard.svelte +109 -107
  28. package/dist/components/pages/security/login/01/ui/LoginCard.svelte.d.ts +2 -1
  29. package/dist/components/pages/security/login/01/ui/PageLogin01.svelte +5 -3
  30. package/dist/components/pages/security/login/02/ui/FormLogin02.svelte +70 -0
  31. package/dist/components/pages/security/login/02/ui/FormLogin02.svelte.d.ts +10 -0
  32. package/dist/components/pages/security/login/02/ui/FormLoginEmailPassword02.svelte +24 -0
  33. package/dist/components/pages/security/login/02/ui/FormLoginEmailPassword02.svelte.d.ts +9 -0
  34. package/dist/components/pages/security/login/02/ui/FormLoginPhonePassword02.svelte +24 -0
  35. package/dist/components/pages/security/login/02/ui/FormLoginPhonePassword02.svelte.d.ts +9 -0
  36. package/dist/components/pages/security/login/02/ui/FormLoginUsernamePassword02.svelte +24 -0
  37. package/dist/components/pages/security/login/02/ui/FormLoginUsernamePassword02.svelte.d.ts +9 -0
  38. package/dist/components/pages/security/login/02/ui/LeftHero02.svelte +111 -0
  39. package/dist/components/pages/security/login/02/ui/LeftHero02.svelte.d.ts +10 -0
  40. package/dist/components/pages/security/login/02/ui/LoginCard02.svelte +96 -0
  41. package/dist/components/pages/security/login/02/ui/LoginCard02.svelte.d.ts +13 -0
  42. package/dist/components/pages/security/login/02/ui/PageLogin02.svelte +69 -0
  43. package/dist/components/pages/security/login/02/ui/PageLogin02.svelte.d.ts +4 -0
  44. package/dist/components/pages/security/login/03/ui/FormLogin03.svelte +87 -0
  45. package/dist/components/pages/security/login/03/ui/FormLogin03.svelte.d.ts +10 -0
  46. package/dist/components/pages/security/login/03/ui/FormLoginEmailPassword03.svelte +24 -0
  47. package/dist/components/pages/security/login/03/ui/FormLoginEmailPassword03.svelte.d.ts +9 -0
  48. package/dist/components/pages/security/login/03/ui/FormLoginPhonePassword03.svelte +24 -0
  49. package/dist/components/pages/security/login/03/ui/FormLoginPhonePassword03.svelte.d.ts +9 -0
  50. package/dist/components/pages/security/login/03/ui/FormLoginUsernamePassword03.svelte +24 -0
  51. package/dist/components/pages/security/login/03/ui/FormLoginUsernamePassword03.svelte.d.ts +9 -0
  52. package/dist/components/pages/security/login/03/ui/LeftHero03.svelte +114 -0
  53. package/dist/components/pages/security/login/03/ui/LeftHero03.svelte.d.ts +10 -0
  54. package/dist/components/pages/security/login/03/ui/LoginCard03.svelte +116 -0
  55. package/dist/components/pages/security/login/03/ui/LoginCard03.svelte.d.ts +13 -0
  56. package/dist/components/pages/security/login/03/ui/PageLogin03.svelte +69 -0
  57. package/dist/components/pages/security/login/03/ui/PageLogin03.svelte.d.ts +4 -0
  58. package/dist/components/pages/security/login/PageLogin.svelte +30 -22
  59. package/dist/components/pages/security/login/PageLogin.svelte.d.ts +1 -1
  60. package/dist/components/pages/security/login/types.d.ts +12 -2
  61. package/dist/components/pages/security/otp-verification/01/ui/FormOtpVerification.svelte +2 -2
  62. package/dist/components/pages/security/otp-verification/01/ui/OtpVerificationCard.svelte +2 -2
  63. package/dist/components/pages/security/otp-verification/01/ui/PageOtpVerification01.svelte +2 -2
  64. package/dist/components/pages/security/reset-password/01/ui/FormResetPassword.svelte +4 -4
  65. package/dist/components/pages/security/reset-password/01/ui/PageResetPassword01.svelte +2 -2
  66. package/dist/components/pages/security/reset-password/01/ui/ResetPasswordCard.svelte +2 -2
  67. package/dist/components/ui/avatar/avatar-fallback.svelte +29 -29
  68. package/dist/components/ui/avatar/avatar-image.svelte +38 -38
  69. package/dist/components/ui/avatar/avatar.svelte +39 -39
  70. package/dist/components/ui/badge/badge.svelte +46 -46
  71. package/dist/components/{core → ui}/banner/AdCardBanner.svelte +74 -74
  72. package/dist/components/{core → ui}/banner/CtaCardBanner.svelte +118 -118
  73. package/dist/components/{core → ui}/banner/CtaCardImageBanner.svelte +94 -94
  74. package/dist/components/{core/breadcrumb → ui/breadcrumb/core}/breadcrumb-list.svelte +31 -31
  75. package/dist/components/{core → ui}/button/ButtonBack.svelte +18 -18
  76. package/dist/components/{core → ui}/button/ButtonBack.svelte.d.ts +1 -1
  77. package/dist/components/{core → ui}/button/ButtonLogin.svelte +15 -15
  78. package/dist/components/{core → ui}/button/ButtonLogin.svelte.d.ts +1 -1
  79. package/dist/components/{core → ui}/button/ButtonLoginWith.svelte +57 -57
  80. package/dist/components/{core → ui}/button/ButtonLoginWith.svelte.d.ts +1 -1
  81. package/dist/components/{core → ui}/button/ButtonSend.svelte +15 -15
  82. package/dist/components/{core → ui}/button/ButtonSend.svelte.d.ts +1 -1
  83. package/dist/components/ui/button/button.svelte +85 -85
  84. package/dist/components/{core/card → ui/card/core}/highlight/01/CardHighlight01.svelte +103 -103
  85. package/dist/components/{core/card → ui/card/core}/highlight/02/CardHighlight02.svelte +99 -99
  86. package/dist/components/{core/card → ui/card/core}/highlight/CardHighlight.svelte +22 -22
  87. package/dist/components/{core/card → ui/card/core}/media/01/CardMedia01.svelte +133 -133
  88. package/dist/components/{core/card → ui/card/core}/media/02/CardMedia02.svelte +127 -127
  89. package/dist/components/{core/card → ui/card/core}/media/CardMedia.svelte +18 -18
  90. package/dist/components/{core/card → ui/card/core}/product/01/CardProduct01.svelte +136 -136
  91. package/dist/components/{core/card → ui/card/core}/product/02/CardProduct02.svelte +124 -124
  92. package/dist/components/{core/card → ui/card/core}/product/CardProduct.svelte +22 -22
  93. package/dist/components/{core/card → ui/card/core}/profile/01/CardProfile01.svelte +134 -134
  94. package/dist/components/{core/card → ui/card/core}/profile/02/CardProfile02.svelte +132 -132
  95. package/dist/components/{core/card → ui/card/core}/profile/CardProfile.svelte +18 -18
  96. package/dist/components/{core/card → ui/card/core}/promotion/CardPromotion.svelte +139 -139
  97. package/dist/components/{core/card → ui/card/core}/promotion/CardPromotionPrice.svelte +32 -32
  98. package/dist/components/{core/card → ui/card/core}/shared/CardButton.svelte +42 -42
  99. package/dist/components/{core/card → ui/card/core}/shared/CardCart.svelte +36 -36
  100. package/dist/components/{core/card → ui/card/core}/shared/CardDescription.svelte +41 -41
  101. package/dist/components/{core/card → ui/card/core}/shared/CardFavorite.svelte +33 -33
  102. package/dist/components/{core/card → ui/card/core}/shared/CardLogo.svelte +19 -19
  103. package/dist/components/{core/card → ui/card/core}/shared/CardPhoneOrWhatsapp.svelte +45 -45
  104. package/dist/components/{core/card → ui/card/core}/shared/CardStarRating.svelte +24 -24
  105. package/dist/components/{core/card → ui/card/core}/shared/CardTags.svelte +95 -95
  106. package/dist/components/{core/card → ui/card/core}/shared/CardThumbnailVideo.svelte +232 -232
  107. package/dist/components/{core/card → ui/card/core}/shared/CardTitlePrice.svelte +24 -24
  108. package/dist/components/{core/card → ui/card/core}/shared/TruncatableText.svelte +49 -49
  109. package/dist/components/ui/carousel/carousel-content.svelte +56 -56
  110. package/dist/components/ui/carousel/carousel-item.svelte +29 -29
  111. package/dist/components/ui/carousel/carousel-next.svelte +40 -40
  112. package/dist/components/ui/carousel/carousel-previous.svelte +40 -40
  113. package/dist/components/ui/carousel/carousel.svelte +225 -225
  114. package/dist/components/{core/carousel → ui/carousel/core}/badge/ui/CarouselBadge.svelte +108 -108
  115. package/dist/components/{core/carousel → ui/carousel/core}/grid/media/types.d.ts +3 -3
  116. package/dist/components/{core/carousel → ui/carousel/core}/grid/media/ui/CarouselGridMedia.svelte +6 -6
  117. package/dist/components/{core/carousel → ui/carousel/core}/grid/media/ui/CarouselGridMedia.svelte.d.ts +1 -1
  118. package/dist/components/{core/carousel → ui/carousel/core}/grid/product/types.d.ts +3 -3
  119. package/dist/components/{core/carousel → ui/carousel/core}/grid/product/ui/CarouselGridProduct.svelte +5 -5
  120. package/dist/components/{core/carousel → ui/carousel/core}/grid/profile/types.d.ts +2 -2
  121. package/dist/components/{core/carousel → ui/carousel/core}/grid/profile/ui/CarouselGridProfile.svelte +6 -6
  122. package/dist/components/{core/carousel → ui/carousel/core}/grid/profile/ui/CarouselGridProfile.svelte.d.ts +1 -1
  123. package/dist/components/{core/carousel → ui/carousel/core}/grid/promotion/types.d.ts +2 -2
  124. package/dist/components/{core/carousel → ui/carousel/core}/grid/promotion/ui/CarouselGridPromotion.svelte +5 -5
  125. package/dist/components/{core/carousel → ui/carousel/core}/grid/shared/ui/CarouselGridSlot.svelte +38 -38
  126. package/dist/components/{core/carousel → ui/carousel/core}/grid/shared/ui/CarouselGridSlot.svelte.d.ts +2 -2
  127. package/dist/components/{core/carousel → ui/carousel/core}/hero/types.d.ts +2 -2
  128. package/dist/components/{core/carousel → ui/carousel/core}/hero/ui/CarouselHero.svelte +181 -181
  129. package/dist/components/{core/carousel → ui/carousel/core}/highlights/types.d.ts +2 -2
  130. package/dist/components/{core/carousel → ui/carousel/core}/highlights/ui/CarouselHighlights.svelte +67 -67
  131. package/dist/components/{core/carousel → ui/carousel/core}/product/types.d.ts +2 -2
  132. package/dist/components/{core/carousel → ui/carousel/core}/product/ui/CarouselProduct.svelte +57 -57
  133. package/dist/components/{core/carousel → ui/carousel/core}/promotion/types.d.ts +2 -2
  134. package/dist/components/{core/carousel → ui/carousel/core}/promotion/ui/CarouselPromotion.svelte +67 -67
  135. package/dist/components/{core/carousel → ui/carousel/core}/shared/ui/CarouselHeader.svelte +59 -59
  136. package/dist/components/ui/checkbox/checkbox.svelte +96 -96
  137. package/dist/components/ui/collapsible/collapsible-content.svelte +30 -30
  138. package/dist/components/ui/collapsible/collapsible-trigger.svelte +51 -51
  139. package/dist/components/ui/collapsible/collapsible.svelte +66 -66
  140. package/dist/components/ui/data-table/flex-render.svelte +40 -40
  141. package/dist/components/{core → ui}/datatable/data/columns-create.d.ts +1 -1
  142. package/dist/components/{core → ui}/datatable/data/columns-create.js +1 -1
  143. package/dist/components/{core → ui}/datatable/data/data-table.d.ts +1 -1
  144. package/dist/components/{core → ui}/datatable/data/resolve-cell-badge.svelte.d.ts +1 -1
  145. package/dist/components/{core → ui}/datatable/data/resolve-cell-badge.svelte.js +2 -2
  146. package/dist/components/{core → ui}/datatable/data/resolve-cell.svelte.d.ts +1 -1
  147. package/dist/components/{core → ui}/datatable/data/resolve-cell.svelte.js +1 -1
  148. package/dist/components/{core → ui}/datatable/data/resolve-header.svelte.d.ts +1 -1
  149. package/dist/components/{core → ui}/datatable/data/resolve-header.svelte.js +1 -1
  150. package/dist/components/{core → ui}/datatable/ui/DataTableActions.svelte +28 -28
  151. package/dist/components/{core → ui}/datatable/ui/DataTableActions.svelte.d.ts +1 -1
  152. package/dist/components/{core → ui}/datatable/ui/DataTableCheckbox.svelte +22 -22
  153. package/dist/components/{core → ui}/datatable/ui/DataTableContent.svelte +59 -59
  154. package/dist/components/{core → ui}/datatable/ui/DataTableContent.svelte.d.ts +1 -1
  155. package/dist/components/{core → ui}/datatable/ui/DataTableCore.svelte +148 -148
  156. package/dist/components/{core → ui}/datatable/ui/DataTableDragHandle.svelte +8 -8
  157. package/dist/components/{core → ui}/datatable/ui/DataTableListFilter.svelte +60 -60
  158. package/dist/components/{core → ui}/datatable/ui/DataTableListFilter.svelte.d.ts +1 -1
  159. package/dist/components/{core → ui}/datatable/ui/DataTableListPagination.svelte +35 -35
  160. package/dist/components/{core → ui}/datatable/ui/DataTableListPagination.svelte.d.ts +1 -1
  161. package/dist/components/{core → ui}/datatable/ui/columns-create.svelte.d.ts +1 -1
  162. package/dist/components/{core → ui}/datatable/ui/columns-create.svelte.js +1 -1
  163. package/dist/components/ui/drawer/drawer-close.svelte +41 -41
  164. package/dist/components/ui/drawer/drawer-content.svelte +81 -81
  165. package/dist/components/ui/drawer/drawer-description.svelte +19 -19
  166. package/dist/components/ui/drawer/drawer-footer.svelte +20 -20
  167. package/dist/components/ui/drawer/drawer-header.svelte +20 -20
  168. package/dist/components/ui/drawer/drawer-nested.svelte +34 -34
  169. package/dist/components/ui/drawer/drawer-overlay.svelte +25 -25
  170. package/dist/components/ui/drawer/drawer-portal.svelte +19 -19
  171. package/dist/components/ui/drawer/drawer-title.svelte +19 -19
  172. package/dist/components/ui/drawer/drawer-trigger.svelte +42 -42
  173. package/dist/components/ui/drawer/drawer.svelte +74 -74
  174. package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-group.svelte +25 -25
  175. package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte +69 -69
  176. package/dist/components/ui/dropdown-menu/dropdown-menu-content.svelte +106 -106
  177. package/dist/components/ui/dropdown-menu/dropdown-menu-group-heading.svelte +27 -27
  178. package/dist/components/ui/dropdown-menu/dropdown-menu-group.svelte +21 -21
  179. package/dist/components/ui/dropdown-menu/dropdown-menu-item.svelte +60 -60
  180. package/dist/components/ui/dropdown-menu/dropdown-menu-label.svelte +27 -27
  181. package/dist/components/ui/dropdown-menu/dropdown-menu-portal.svelte +6 -6
  182. package/dist/components/ui/dropdown-menu/dropdown-menu-radio-group.svelte +43 -43
  183. package/dist/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte +70 -70
  184. package/dist/components/ui/dropdown-menu/dropdown-menu-separator.svelte +20 -20
  185. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-content.svelte +33 -33
  186. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte +57 -57
  187. package/dist/components/ui/dropdown-menu/dropdown-menu-sub.svelte +76 -76
  188. package/dist/components/ui/dropdown-menu/dropdown-menu-trigger.svelte +68 -68
  189. package/dist/components/ui/dropdown-menu/dropdown-menu.svelte +53 -53
  190. package/dist/components/ui/empty/empty-content.svelte +19 -19
  191. package/dist/components/ui/empty/empty-description.svelte +19 -19
  192. package/dist/components/ui/empty/empty-header.svelte +19 -19
  193. package/dist/components/ui/empty/empty-media.svelte +41 -41
  194. package/dist/components/ui/empty/empty-title.svelte +19 -19
  195. package/dist/components/ui/empty/empty.svelte +19 -19
  196. package/dist/components/{core → ui}/footer/ui/Footer.svelte +18 -18
  197. package/dist/components/{core → ui}/form/ui/input-base.svelte +81 -81
  198. package/dist/components/{core → ui}/form/ui/input-base.svelte.d.ts +1 -1
  199. package/dist/components/{core → ui}/form/ui/input-code-otp.svelte +3 -3
  200. package/dist/components/{core → ui}/form/ui/input-code-otp.svelte.d.ts +1 -1
  201. package/dist/components/{core → ui}/form/ui/input-email-or-phone.svelte +23 -23
  202. package/dist/components/{core → ui}/form/ui/input-email-or-phone.svelte.d.ts +1 -1
  203. package/dist/components/{core → ui}/form/ui/input-email.svelte +23 -23
  204. package/dist/components/{core → ui}/form/ui/input-email.svelte.d.ts +1 -1
  205. package/dist/components/{core → ui}/form/ui/input-password-confirm.svelte +23 -23
  206. package/dist/components/{core → ui}/form/ui/input-password-confirm.svelte.d.ts +1 -1
  207. package/dist/components/{core → ui}/form/ui/input-password.svelte +23 -23
  208. package/dist/components/{core → ui}/form/ui/input-password.svelte.d.ts +1 -1
  209. package/dist/components/{core → ui}/form/ui/input-phone.svelte +33 -33
  210. package/dist/components/{core → ui}/form/ui/input-phone.svelte.d.ts +1 -1
  211. package/dist/components/{core → ui}/form/ui/input-username.svelte +22 -22
  212. package/dist/components/{core → ui}/form/ui/input-username.svelte.d.ts +1 -1
  213. package/dist/components/{core/grid → ui/grid/core}/ui/01/Grid01.svelte +30 -30
  214. package/dist/components/{core/grid → ui/grid/core}/ui/02/Grid02.svelte +30 -30
  215. package/dist/components/{core/grid → ui/grid/core}/ui/ItemsPanel.svelte +26 -26
  216. package/dist/components/{core/grid → ui/grid/core}/ui/ItemsPanelCarousel.svelte +37 -37
  217. package/dist/components/{core/grid → ui/grid/core}/ui/ItemsPanelGrid.svelte +43 -43
  218. package/dist/components/{core/grid → ui/grid/core}/ui/ItemsSimpleGrid.svelte +45 -45
  219. package/dist/components/{core/grid → ui/grid/core}/ui/shared/DescriptionGrid.svelte +23 -23
  220. package/dist/components/{core/grid → ui/grid/core}/ui/shared/IconRenderGrid.svelte +23 -23
  221. package/dist/components/{core/grid → ui/grid/core}/ui/shared/TitleGrid.svelte +19 -19
  222. package/dist/components/{core → ui}/hero/SimpleHero.svelte +65 -65
  223. package/dist/components/ui/input-otp/input-otp-group.svelte +22 -22
  224. package/dist/components/ui/input-otp/input-otp-separator.svelte +27 -27
  225. package/dist/components/ui/input-otp/input-otp-slot.svelte +63 -63
  226. package/dist/components/ui/input-otp/input-otp.svelte +181 -181
  227. package/dist/components/{core/label → ui/label/core}/LabelOr.svelte +25 -25
  228. package/dist/components/ui/label/label.svelte +19 -19
  229. package/dist/components/ui/language-switcher/language-switcher.svelte +48 -48
  230. package/dist/components/ui/light-switch/light-switch.svelte +48 -48
  231. package/dist/components/{core → ui}/link/link-forget-password.svelte +12 -12
  232. package/dist/components/{core → ui}/link/link-privacy-polity.svelte +12 -12
  233. package/dist/components/{core → ui}/link/link-terms-of-service.svelte +12 -12
  234. package/dist/components/{core → ui}/nav/ui/ComplexMenu.svelte +51 -51
  235. package/dist/components/{core → ui}/nav/ui/Menu.svelte +72 -72
  236. package/dist/components/{core → ui}/nav/ui/SimpleMenu.svelte +14 -14
  237. package/dist/components/{core → ui}/nav/ui/mobile/ComplexMenuMobile.svelte +125 -125
  238. package/dist/components/{core → ui}/nav/ui/mobile/MenuMobile.svelte +54 -54
  239. package/dist/components/{core → ui}/nav/ui/mobile/SimpleMenuMobile.svelte +1 -1
  240. package/dist/components/{core → ui}/nav/ui/shared/CollapsibleNavMenu.svelte +1 -1
  241. package/dist/components/{core → ui}/nav/ui/shared/MenuButton.svelte +51 -51
  242. package/dist/components/{core → ui}/nav/ui/shared/MenuLinks.svelte +40 -40
  243. package/dist/components/{core → ui}/nav/ui/shared/MenuListItem.svelte +44 -44
  244. package/dist/components/{core → ui}/nav/ui/shared/MenuLogo.svelte +13 -13
  245. package/dist/components/{core → ui}/nav/ui/shared/dropdown/DropdownNavigationMenuItem.svelte +1 -1
  246. package/dist/components/{core → ui}/nav/ui/shared/dropdown/DropdownNavigationMenuItemCard.svelte +1 -1
  247. package/dist/components/{core → ui}/nav/ui/shared/dropdown/DropdownNavigationMenuItemGrid.svelte +30 -30
  248. package/dist/components/{core → ui}/nav/ui/shared/dropdown/DropdownNavigationMenuItemList.svelte +1 -1
  249. package/dist/components/{core → ui}/nav/ui/shared/dropdown/DropdownNavigationMenuItems.svelte +1 -1
  250. package/dist/components/{core → ui}/nav/ui/shared/navigation/NavDropdown.svelte +87 -87
  251. package/dist/components/{core → ui}/nav/ui/shared/navigation/NavigationMenuItem.svelte +17 -17
  252. package/dist/components/{core → ui}/nav/ui/shared/navigation/NavigationMenuItemCard.svelte +53 -53
  253. package/dist/components/{core → ui}/nav/ui/shared/navigation/NavigationMenuItemGrid.svelte +36 -36
  254. package/dist/components/{core → ui}/nav/ui/shared/navigation/NavigationMenuItemList.svelte +24 -24
  255. package/dist/components/{core → ui}/nav/ui/shared/navigation/NavigationMenuItems.svelte +21 -21
  256. package/dist/components/{core → ui}/panel/CarouselSlot.svelte +57 -57
  257. package/dist/components/{core → ui}/panel/LeftHero.svelte +114 -117
  258. package/dist/components/{core → ui}/panel/LeftHero.svelte.d.ts +0 -1
  259. package/dist/components/{core → ui}/panel/NotFoundEmpty.svelte +66 -66
  260. package/dist/components/{core → ui}/panel/type.d.ts +1 -1
  261. package/dist/components/ui/phone-input/country-selector.svelte +86 -86
  262. package/dist/components/ui/phone-input/flag.svelte +11 -11
  263. package/dist/components/ui/phone-input/phone-input.svelte +147 -147
  264. package/dist/components/ui/popover/popover-close.svelte +25 -25
  265. package/dist/components/ui/popover/popover-content.svelte +92 -92
  266. package/dist/components/ui/popover/popover-portal.svelte +6 -6
  267. package/dist/components/ui/popover/popover-trigger.svelte +68 -68
  268. package/dist/components/ui/popover/popover.svelte +53 -53
  269. package/dist/components/{core → ui}/search/SearchInput.svelte +32 -32
  270. package/dist/components/{core → ui}/search/shared/SearchInputCore.svelte +66 -66
  271. package/dist/components/ui/separator/separator.svelte +28 -28
  272. package/dist/components/{core/sidebar → ui/sidebar/core}/MenuBarSidebar.svelte +70 -70
  273. package/dist/components/{core/sidebar → ui/sidebar/core}/MenuBarSidebar.svelte.d.ts +1 -1
  274. package/dist/components/{core/sidebar → ui/sidebar/core}/ui/navbar/NavMenuBarSidebar.svelte +97 -97
  275. package/dist/components/{core/sidebar → ui/sidebar/core}/ui/navbar/NavMenuBottomSidebar.svelte +33 -33
  276. package/dist/components/{core/sidebar → ui/sidebar/core}/ui/navbar/NavMenuBottomSidebar.svelte.d.ts +2 -2
  277. package/dist/components/{core/sidebar → ui/sidebar/core}/ui/navbar/NavMenuTopBarSidebar.svelte +101 -101
  278. package/dist/components/{core/sidebar → ui/sidebar/core}/ui/navbar/NavUserSidebar.svelte +6 -6
  279. package/dist/components/{core/sidebar → ui/sidebar/core}/ui/navbar/NavUserSidebar.svelte.d.ts +1 -1
  280. package/dist/components/{core/sidebar → ui/sidebar/core}/ui/navbar/nav-menu-header-sidebar.svelte +77 -77
  281. package/dist/components/ui/sidebar/sidebar-content.svelte +24 -24
  282. package/dist/components/ui/sidebar/sidebar-footer.svelte +21 -21
  283. package/dist/components/ui/sidebar/sidebar-group-content.svelte +21 -21
  284. package/dist/components/ui/sidebar/sidebar-menu-action.svelte +38 -38
  285. package/dist/components/ui/sidebar/sidebar-menu-button.svelte +70 -70
  286. package/dist/components/ui/sidebar/sidebar-menu-sub-button.svelte +39 -39
  287. package/dist/components/ui/sidebar/sidebar-provider.svelte +62 -62
  288. package/dist/components/ui/sidebar/sidebar-rail.svelte +36 -36
  289. package/dist/components/ui/sidebar/sidebar-separator.svelte +21 -21
  290. package/dist/components/ui/sidebar/sidebar-trigger.svelte +36 -36
  291. package/dist/components/ui/sidebar/sidebar.svelte +118 -118
  292. package/dist/components/ui/skeleton/skeleton.svelte +19 -19
  293. package/dist/components/ui/social-login/social-login.svelte +79 -0
  294. package/dist/components/ui/social-login/social-login.svelte.d.ts +10 -0
  295. package/dist/components/ui/star-rating/star-rating-star.svelte +66 -66
  296. package/dist/components/ui/star-rating/star-rating.svelte +149 -149
  297. package/dist/components/ui/table/table-body.svelte +15 -15
  298. package/dist/components/ui/table/table-caption.svelte +20 -20
  299. package/dist/components/ui/table/table-cell.svelte +15 -15
  300. package/dist/components/ui/table/table-footer.svelte +20 -20
  301. package/dist/components/ui/table/table-head.svelte +15 -15
  302. package/dist/components/ui/table/table-header.svelte +20 -20
  303. package/dist/components/ui/table/table-row.svelte +15 -15
  304. package/dist/components/ui/table/table.svelte +17 -17
  305. package/dist/components/{core → ui}/tabs/ui/tab-underline.svelte +43 -43
  306. package/dist/components/ui/underline-tabs/underline-tabs-content.svelte +33 -33
  307. package/dist/components/ui/underline-tabs/underline-tabs-list.svelte +40 -40
  308. package/dist/components/ui/underline-tabs/underline-tabs-trigger.svelte +91 -91
  309. package/dist/components/ui/underline-tabs/underline-tabs.svelte +61 -61
  310. package/dist/docs/ApiTable.svelte +42 -42
  311. package/dist/docs/CodeBlock.svelte +26 -26
  312. package/dist/docs/DocsHeader.svelte +25 -25
  313. package/dist/docs/DocsSidebar.svelte +98 -98
  314. package/dist/docs/components.js +230 -230
  315. package/dist/globals.css +87 -0
  316. package/dist/i18n/langs/en.d.ts +9 -0
  317. package/dist/i18n/langs/en.js +9 -0
  318. package/dist/i18n/langs/pt.d.ts +9 -0
  319. package/dist/i18n/langs/pt.js +9 -0
  320. package/dist/i18n/translations.d.ts +18 -0
  321. package/dist/index.d.ts +28 -28
  322. package/dist/index.js +28 -28
  323. package/dist/styles/globals.css +283 -283
  324. package/dist/types/index.d.ts +22 -22
  325. package/package.json +81 -81
  326. /package/dist/components/{core → ui}/banner/AdCardBanner.svelte.d.ts +0 -0
  327. /package/dist/components/{core → ui}/banner/CtaCardBanner.svelte.d.ts +0 -0
  328. /package/dist/components/{core → ui}/banner/CtaCardImageBanner.svelte.d.ts +0 -0
  329. /package/dist/components/{core → ui}/banner/NotificationBanner.svelte +0 -0
  330. /package/dist/components/{core → ui}/banner/NotificationBanner.svelte.d.ts +0 -0
  331. /package/dist/components/{core → ui}/banner/types.d.ts +0 -0
  332. /package/dist/components/{core → ui}/banner/types.js +0 -0
  333. /package/dist/components/{core/breadcrumb → ui/breadcrumb/core}/breadcrumb-list.svelte.d.ts +0 -0
  334. /package/dist/components/{core/card → ui/card/core}/highlight/01/CardHighlight01.svelte.d.ts +0 -0
  335. /package/dist/components/{core/card → ui/card/core}/highlight/02/CardHighlight02.svelte.d.ts +0 -0
  336. /package/dist/components/{core/card → ui/card/core}/highlight/CardHighlight.svelte.d.ts +0 -0
  337. /package/dist/components/{core/card → ui/card/core}/highlight/data.d.ts +0 -0
  338. /package/dist/components/{core/card → ui/card/core}/highlight/data.js +0 -0
  339. /package/dist/components/{core/card → ui/card/core}/media/01/CardMedia01.svelte.d.ts +0 -0
  340. /package/dist/components/{core/card → ui/card/core}/media/02/CardMedia02.svelte.d.ts +0 -0
  341. /package/dist/components/{core/card → ui/card/core}/media/CardMedia.svelte.d.ts +0 -0
  342. /package/dist/components/{core/card → ui/card/core}/media/data.d.ts +0 -0
  343. /package/dist/components/{core/card → ui/card/core}/media/data.js +0 -0
  344. /package/dist/components/{core/card → ui/card/core}/product/01/CardProduct01.svelte.d.ts +0 -0
  345. /package/dist/components/{core/card → ui/card/core}/product/02/CardProduct02.svelte.d.ts +0 -0
  346. /package/dist/components/{core/card → ui/card/core}/product/CardProduct.svelte.d.ts +0 -0
  347. /package/dist/components/{core/card → ui/card/core}/product/data.d.ts +0 -0
  348. /package/dist/components/{core/card → ui/card/core}/product/data.js +0 -0
  349. /package/dist/components/{core/card → ui/card/core}/profile/01/CardProfile01.svelte.d.ts +0 -0
  350. /package/dist/components/{core/card → ui/card/core}/profile/02/CardProfile02.svelte.d.ts +0 -0
  351. /package/dist/components/{core/card → ui/card/core}/profile/CardProfile.svelte.d.ts +0 -0
  352. /package/dist/components/{core/card → ui/card/core}/profile/data.d.ts +0 -0
  353. /package/dist/components/{core/card → ui/card/core}/profile/data.js +0 -0
  354. /package/dist/components/{core/card → ui/card/core}/promotion/CardPromotion.svelte.d.ts +0 -0
  355. /package/dist/components/{core/card → ui/card/core}/promotion/CardPromotionPrice.svelte.d.ts +0 -0
  356. /package/dist/components/{core/card → ui/card/core}/promotion/data.d.ts +0 -0
  357. /package/dist/components/{core/card → ui/card/core}/promotion/data.js +0 -0
  358. /package/dist/components/{core/card → ui/card/core}/shared/CardButton.svelte.d.ts +0 -0
  359. /package/dist/components/{core/card → ui/card/core}/shared/CardCart.svelte.d.ts +0 -0
  360. /package/dist/components/{core/card → ui/card/core}/shared/CardDescription.svelte.d.ts +0 -0
  361. /package/dist/components/{core/card → ui/card/core}/shared/CardFavorite.svelte.d.ts +0 -0
  362. /package/dist/components/{core/card → ui/card/core}/shared/CardLogo.svelte.d.ts +0 -0
  363. /package/dist/components/{core/card → ui/card/core}/shared/CardPhoneOrWhatsapp.svelte.d.ts +0 -0
  364. /package/dist/components/{core/card → ui/card/core}/shared/CardStarRating.svelte.d.ts +0 -0
  365. /package/dist/components/{core/card → ui/card/core}/shared/CardTags.svelte.d.ts +0 -0
  366. /package/dist/components/{core/card → ui/card/core}/shared/CardThumbnailVideo.svelte.d.ts +0 -0
  367. /package/dist/components/{core/card → ui/card/core}/shared/CardTitlePrice.svelte.d.ts +0 -0
  368. /package/dist/components/{core/card → ui/card/core}/shared/TruncatableText.svelte.d.ts +0 -0
  369. /package/dist/components/{core/card → ui/card/core}/types.d.ts +0 -0
  370. /package/dist/components/{core/card → ui/card/core}/types.js +0 -0
  371. /package/dist/components/{core/carousel → ui/carousel/core}/badge/type.d.ts +0 -0
  372. /package/dist/components/{core/carousel → ui/carousel/core}/badge/type.js +0 -0
  373. /package/dist/components/{core/carousel → ui/carousel/core}/badge/ui/CarouselBadge.svelte.d.ts +0 -0
  374. /package/dist/components/{core/carousel → ui/carousel/core}/grid/media/types.js +0 -0
  375. /package/dist/components/{core/carousel → ui/carousel/core}/grid/product/types.js +0 -0
  376. /package/dist/components/{core/carousel → ui/carousel/core}/grid/product/ui/CarouselGridProduct.svelte.d.ts +0 -0
  377. /package/dist/components/{core/carousel → ui/carousel/core}/grid/profile/types.js +0 -0
  378. /package/dist/components/{core/carousel → ui/carousel/core}/grid/promotion/types.js +0 -0
  379. /package/dist/components/{core/carousel → ui/carousel/core}/grid/promotion/ui/CarouselGridPromotion.svelte.d.ts +0 -0
  380. /package/dist/components/{core/carousel → ui/carousel/core}/hero/types.js +0 -0
  381. /package/dist/components/{core/carousel → ui/carousel/core}/hero/ui/CarouselHero.svelte.d.ts +0 -0
  382. /package/dist/components/{core/carousel → ui/carousel/core}/highlights/types.js +0 -0
  383. /package/dist/components/{core/carousel → ui/carousel/core}/highlights/ui/CarouselHighlights.svelte.d.ts +0 -0
  384. /package/dist/components/{core/carousel → ui/carousel/core}/product/types.js +0 -0
  385. /package/dist/components/{core/carousel → ui/carousel/core}/product/ui/CarouselProduct.svelte.d.ts +0 -0
  386. /package/dist/components/{core/carousel → ui/carousel/core}/promotion/types.js +0 -0
  387. /package/dist/components/{core/carousel → ui/carousel/core}/promotion/ui/CarouselPromotion.svelte.d.ts +0 -0
  388. /package/dist/components/{core/carousel → ui/carousel/core}/shared/ui/CarouselHeader.svelte.d.ts +0 -0
  389. /package/dist/components/{core/carousel → ui/carousel/core}/types.d.ts +0 -0
  390. /package/dist/components/{core/carousel → ui/carousel/core}/types.js +0 -0
  391. /package/dist/components/{core → ui}/datatable/data/data-table.js +0 -0
  392. /package/dist/components/{core → ui}/datatable/ui/DataTableCheckbox.svelte.d.ts +0 -0
  393. /package/dist/components/{core → ui}/datatable/ui/DataTableCore.svelte.d.ts +0 -0
  394. /package/dist/components/{core → ui}/datatable/ui/DataTableDragHandle.svelte.d.ts +0 -0
  395. /package/dist/components/{core → ui}/footer/types.d.ts +0 -0
  396. /package/dist/components/{core → ui}/footer/types.js +0 -0
  397. /package/dist/components/{core → ui}/footer/ui/01/Footer01.svelte +0 -0
  398. /package/dist/components/{core → ui}/footer/ui/01/Footer01.svelte.d.ts +0 -0
  399. /package/dist/components/{core → ui}/footer/ui/02/Footer02.svelte +0 -0
  400. /package/dist/components/{core → ui}/footer/ui/02/Footer02.svelte.d.ts +0 -0
  401. /package/dist/components/{core → ui}/footer/ui/Footer.svelte.d.ts +0 -0
  402. /package/dist/components/{core → ui}/footer/ui/shared/FooterColumn.svelte +0 -0
  403. /package/dist/components/{core → ui}/footer/ui/shared/FooterColumn.svelte.d.ts +0 -0
  404. /package/dist/components/{core → ui}/footer/ui/shared/FooterNewsLetter.svelte +0 -0
  405. /package/dist/components/{core → ui}/footer/ui/shared/FooterNewsLetter.svelte.d.ts +0 -0
  406. /package/dist/components/{core → ui}/footer/ui/shared/FooterSocialIcon.svelte +0 -0
  407. /package/dist/components/{core → ui}/footer/ui/shared/FooterSocialIcon.svelte.d.ts +0 -0
  408. /package/dist/components/{core → ui}/form/data/InputIconDefault.svelte.d.ts +0 -0
  409. /package/dist/components/{core → ui}/form/data/InputIconDefault.svelte.js +0 -0
  410. /package/dist/components/{core → ui}/form/data/InputLabel.svelte.d.ts +0 -0
  411. /package/dist/components/{core → ui}/form/data/InputLabel.svelte.js +0 -0
  412. /package/dist/components/{core/grid → ui/grid/core}/data/types.d.ts +0 -0
  413. /package/dist/components/{core/grid → ui/grid/core}/data/types.js +0 -0
  414. /package/dist/components/{core/grid → ui/grid/core}/ui/01/Grid01.svelte.d.ts +0 -0
  415. /package/dist/components/{core/grid → ui/grid/core}/ui/02/Grid02.svelte.d.ts +0 -0
  416. /package/dist/components/{core/grid → ui/grid/core}/ui/ItemsPanel.svelte.d.ts +0 -0
  417. /package/dist/components/{core/grid → ui/grid/core}/ui/ItemsPanelCarousel.svelte.d.ts +0 -0
  418. /package/dist/components/{core/grid → ui/grid/core}/ui/ItemsPanelGrid.svelte.d.ts +0 -0
  419. /package/dist/components/{core/grid → ui/grid/core}/ui/ItemsSimpleGrid.svelte.d.ts +0 -0
  420. /package/dist/components/{core/grid → ui/grid/core}/ui/shared/DescriptionGrid.svelte.d.ts +0 -0
  421. /package/dist/components/{core/grid → ui/grid/core}/ui/shared/IconRenderGrid.svelte.d.ts +0 -0
  422. /package/dist/components/{core/grid → ui/grid/core}/ui/shared/TitleGrid.svelte.d.ts +0 -0
  423. /package/dist/components/{core → ui}/hero/SimpleHero.svelte.d.ts +0 -0
  424. /package/dist/components/{core → ui}/hero/types.d.ts +0 -0
  425. /package/dist/components/{core → ui}/hero/types.js +0 -0
  426. /package/dist/components/{core/label → ui/label/core}/LabelOr.svelte.d.ts +0 -0
  427. /package/dist/components/{core → ui}/link/link-forget-password.svelte.d.ts +0 -0
  428. /package/dist/components/{core → ui}/link/link-privacy-polity.svelte.d.ts +0 -0
  429. /package/dist/components/{core → ui}/link/link-terms-of-service.svelte.d.ts +0 -0
  430. /package/dist/components/{core → ui}/nav/data/complex-menu-utils.d.ts +0 -0
  431. /package/dist/components/{core → ui}/nav/data/complex-menu-utils.js +0 -0
  432. /package/dist/components/{core → ui}/nav/data/nav-menu.d.ts +0 -0
  433. /package/dist/components/{core → ui}/nav/data/nav-menu.js +0 -0
  434. /package/dist/components/{core → ui}/nav/data/types.d.ts +0 -0
  435. /package/dist/components/{core → ui}/nav/data/types.js +0 -0
  436. /package/dist/components/{core → ui}/nav/ui/ComplexMenu.svelte.d.ts +0 -0
  437. /package/dist/components/{core → ui}/nav/ui/Menu.svelte.d.ts +0 -0
  438. /package/dist/components/{core → ui}/nav/ui/SimpleMenu.svelte.d.ts +0 -0
  439. /package/dist/components/{core → ui}/nav/ui/mobile/ComplexMenuMobile.svelte.d.ts +0 -0
  440. /package/dist/components/{core → ui}/nav/ui/mobile/MenuMobile.svelte.d.ts +0 -0
  441. /package/dist/components/{core → ui}/nav/ui/mobile/SimpleMenuMobile.svelte.d.ts +0 -0
  442. /package/dist/components/{core → ui}/nav/ui/shared/CollapsibleNavMenu.svelte.d.ts +0 -0
  443. /package/dist/components/{core → ui}/nav/ui/shared/MenuButton.svelte.d.ts +0 -0
  444. /package/dist/components/{core → ui}/nav/ui/shared/MenuLinks.svelte.d.ts +0 -0
  445. /package/dist/components/{core → ui}/nav/ui/shared/MenuListItem.svelte.d.ts +0 -0
  446. /package/dist/components/{core → ui}/nav/ui/shared/MenuLogo.svelte.d.ts +0 -0
  447. /package/dist/components/{core → ui}/nav/ui/shared/NavMenuItem.svelte +0 -0
  448. /package/dist/components/{core → ui}/nav/ui/shared/NavMenuItem.svelte.d.ts +0 -0
  449. /package/dist/components/{core → ui}/nav/ui/shared/dropdown/DropdownMenuListItem.svelte +0 -0
  450. /package/dist/components/{core → ui}/nav/ui/shared/dropdown/DropdownMenuListItem.svelte.d.ts +0 -0
  451. /package/dist/components/{core → ui}/nav/ui/shared/dropdown/DropdownNavigationMenuItem.svelte.d.ts +0 -0
  452. /package/dist/components/{core → ui}/nav/ui/shared/dropdown/DropdownNavigationMenuItemCard.svelte.d.ts +0 -0
  453. /package/dist/components/{core → ui}/nav/ui/shared/dropdown/DropdownNavigationMenuItemGrid.svelte.d.ts +0 -0
  454. /package/dist/components/{core → ui}/nav/ui/shared/dropdown/DropdownNavigationMenuItemList.svelte.d.ts +0 -0
  455. /package/dist/components/{core → ui}/nav/ui/shared/dropdown/DropdownNavigationMenuItems.svelte.d.ts +0 -0
  456. /package/dist/components/{core → ui}/nav/ui/shared/navigation/NavDropdown.svelte.d.ts +0 -0
  457. /package/dist/components/{core → ui}/nav/ui/shared/navigation/NavigationMenuItem.svelte.d.ts +0 -0
  458. /package/dist/components/{core → ui}/nav/ui/shared/navigation/NavigationMenuItemCard.svelte.d.ts +0 -0
  459. /package/dist/components/{core → ui}/nav/ui/shared/navigation/NavigationMenuItemGrid.svelte.d.ts +0 -0
  460. /package/dist/components/{core → ui}/nav/ui/shared/navigation/NavigationMenuItemList.svelte.d.ts +0 -0
  461. /package/dist/components/{core → ui}/nav/ui/shared/navigation/NavigationMenuItems.svelte.d.ts +0 -0
  462. /package/dist/components/{core → ui}/panel/CarouselSlot.svelte.d.ts +0 -0
  463. /package/dist/components/{core → ui}/panel/NotFoundEmpty.svelte.d.ts +0 -0
  464. /package/dist/components/{core → ui}/panel/type.js +0 -0
  465. /package/dist/components/{core → ui}/search/01/Search01.svelte +0 -0
  466. /package/dist/components/{core → ui}/search/01/Search01.svelte.d.ts +0 -0
  467. /package/dist/components/{core → ui}/search/02/Search02.svelte +0 -0
  468. /package/dist/components/{core → ui}/search/02/Search02.svelte.d.ts +0 -0
  469. /package/dist/components/{core → ui}/search/SearchInput.svelte.d.ts +0 -0
  470. /package/dist/components/{core → ui}/search/shared/SearchInputCore.svelte.d.ts +0 -0
  471. /package/dist/components/{core → ui}/search/types.d.ts +0 -0
  472. /package/dist/components/{core → ui}/search/types.js +0 -0
  473. /package/dist/components/{core/sidebar → ui/sidebar/core}/data/nav-menu-sidebar.d.ts +0 -0
  474. /package/dist/components/{core/sidebar → ui/sidebar/core}/data/nav-menu-sidebar.js +0 -0
  475. /package/dist/components/{core/sidebar → ui/sidebar/core}/data/nav-top-bar-sidebar.d.ts +0 -0
  476. /package/dist/components/{core/sidebar → ui/sidebar/core}/data/nav-top-bar-sidebar.js +0 -0
  477. /package/dist/components/{core/sidebar → ui/sidebar/core}/data/nav-user-sidebar.d.ts +0 -0
  478. /package/dist/components/{core/sidebar → ui/sidebar/core}/data/nav-user-sidebar.js +0 -0
  479. /package/dist/components/{core/sidebar → ui/sidebar/core}/types.d.ts +0 -0
  480. /package/dist/components/{core/sidebar → ui/sidebar/core}/types.js +0 -0
  481. /package/dist/components/{core/sidebar → ui/sidebar/core}/ui/navbar/NavMenuBarSidebar.svelte.d.ts +0 -0
  482. /package/dist/components/{core/sidebar → ui/sidebar/core}/ui/navbar/NavMenuTopBarSidebar.svelte.d.ts +0 -0
  483. /package/dist/components/{core/sidebar → ui/sidebar/core}/ui/navbar/nav-menu-header-sidebar.svelte.d.ts +0 -0
  484. /package/dist/components/{core → ui}/tabs/data/TabModel.d.ts +0 -0
  485. /package/dist/components/{core → ui}/tabs/data/TabModel.js +0 -0
  486. /package/dist/components/{core → ui}/tabs/types.d.ts +0 -0
  487. /package/dist/components/{core → ui}/tabs/types.js +0 -0
  488. /package/dist/components/{core → ui}/tabs/ui/tab-underline.svelte.d.ts +0 -0
@@ -1,95 +1,95 @@
1
- <script lang="ts">
2
- import { HugeiconsIcon } from "@hugeicons/svelte";
3
- import type { CardTagsProps } from "../types";
4
- import Skeleton from "../../../ui/skeleton/skeleton.svelte";
5
- import * as Popover from "../../../ui/popover"; // adjust path to your setup
6
-
7
- type Props = {
8
- className?: string;
9
- tags?: CardTagsProps[];
10
- isTagBorderBottom?: boolean;
11
- isWrap?: boolean;
12
- isLoading?: boolean;
13
- };
14
-
15
- const {
16
- tags = [],
17
- className,
18
- isTagBorderBottom,
19
- isWrap = false,
20
- isLoading = false,
21
- }: Props = $props();
22
-
23
- let isJustify = $derived(tags?.length == 2 || tags?.length == 3);
24
- let open = $state(false);
25
- </script>
26
-
27
- {#snippet createBadge(tag: CardTagsProps, clasName?: string)}
28
- <div
29
- class="flex items-center h-5 shrink-0 {isTagBorderBottom
30
- ? 'border border-gray-200 rounded-full px-2 py-1'
31
- : ''} {clasName}"
32
- >
33
- {#if tag.icon}
34
- <HugeiconsIcon icon={tag.icon} class="mr-0.5 h-3.75 w-3.75 shrink-0" />
35
- {/if}
36
- <div class="whitespace-nowrap">{tag.text}</div>
37
- </div>
38
- {/snippet}
39
-
40
- {#snippet skeletonTag()}
41
- <div class="my-2 flex gap-5">
42
- {#each Array.from({ length: 3 }) as it, i (i)}
43
- <Skeleton class="h-5 w-25 bg-black/50" />
44
- {/each}
45
- </div>
46
- {/snippet}
47
-
48
- {#snippet tagsRow()}
49
- {#if isWrap}
50
- <div class="flex flex-wrap gap-2 md:gap-5 {className}">
51
- {#if isLoading}
52
- {@render skeletonTag()}
53
- {:else if tags && tags.length > 0}
54
- {#each tags as tag, i (i)}
55
- {@render createBadge(tag)}
56
- {/each}
57
- {/if}
58
- </div>
59
- {:else}
60
- <div
61
- class="flex overflow-x-auto no-scrollbar w-full min-w-0
62
- {isJustify ? 'justify-between gap-3' : 'gap-4 md:gap-5 lg:gap-10'}
63
- {className}"
64
- >
65
- {#if isLoading}
66
- {@render skeletonTag()}
67
- {:else if tags && tags.length > 0}
68
- {#each tags as tag, i (i)}
69
- {@render createBadge(tag)}
70
- {/each}
71
- {/if}
72
- </div>
73
- {/if}
74
- {/snippet}
75
-
76
- <Popover.Root bind:open>
77
- <Popover.Trigger
78
- onmouseenter={() => (open = true)}
79
- onmouseleave={() => (open = false)}
80
- class="block w-full text-left h-8"
81
- >
82
- {@render tagsRow()}
83
- </Popover.Trigger>
84
- <Popover.Content
85
- class="w-auto max-w-xs p-3"
86
- onmouseenter={() => (open = true)}
87
- onmouseleave={() => (open = false)}
88
- >
89
- <div class="flex flex-col gap-2">
90
- {#each tags as tag, i (i)}
91
- {@render createBadge(tag, "gap-2")}
92
- {/each}
93
- </div>
94
- </Popover.Content>
95
- </Popover.Root>
1
+ <script lang="ts">
2
+ import { HugeiconsIcon } from "@hugeicons/svelte";
3
+ import type { CardTagsProps } from "../types";
4
+ import Skeleton from "../../../skeleton/skeleton.svelte";
5
+ import * as Popover from "../../../popover"; // adjust path to your setup
6
+
7
+ type Props = {
8
+ className?: string;
9
+ tags?: CardTagsProps[];
10
+ isTagBorderBottom?: boolean;
11
+ isWrap?: boolean;
12
+ isLoading?: boolean;
13
+ };
14
+
15
+ const {
16
+ tags = [],
17
+ className,
18
+ isTagBorderBottom,
19
+ isWrap = false,
20
+ isLoading = false,
21
+ }: Props = $props();
22
+
23
+ let isJustify = $derived(tags?.length == 2 || tags?.length == 3);
24
+ let open = $state(false);
25
+ </script>
26
+
27
+ {#snippet createBadge(tag: CardTagsProps, clasName?: string)}
28
+ <div
29
+ class="flex items-center h-5 shrink-0 {isTagBorderBottom
30
+ ? 'border border-gray-200 rounded-full px-2 py-1'
31
+ : ''} {clasName}"
32
+ >
33
+ {#if tag.icon}
34
+ <HugeiconsIcon icon={tag.icon} class="mr-0.5 h-3.75 w-3.75 shrink-0" />
35
+ {/if}
36
+ <div class="whitespace-nowrap">{tag.text}</div>
37
+ </div>
38
+ {/snippet}
39
+
40
+ {#snippet skeletonTag()}
41
+ <div class="my-2 flex gap-5">
42
+ {#each Array.from({ length: 3 }) as it, i (i)}
43
+ <Skeleton class="h-5 w-25 bg-black/50" />
44
+ {/each}
45
+ </div>
46
+ {/snippet}
47
+
48
+ {#snippet tagsRow()}
49
+ {#if isWrap}
50
+ <div class="flex flex-wrap gap-2 md:gap-5 {className}">
51
+ {#if isLoading}
52
+ {@render skeletonTag()}
53
+ {:else if tags && tags.length > 0}
54
+ {#each tags as tag, i (i)}
55
+ {@render createBadge(tag)}
56
+ {/each}
57
+ {/if}
58
+ </div>
59
+ {:else}
60
+ <div
61
+ class="flex overflow-x-auto no-scrollbar w-full min-w-0
62
+ {isJustify ? 'justify-between gap-3' : 'gap-4 md:gap-5 lg:gap-10'}
63
+ {className}"
64
+ >
65
+ {#if isLoading}
66
+ {@render skeletonTag()}
67
+ {:else if tags && tags.length > 0}
68
+ {#each tags as tag, i (i)}
69
+ {@render createBadge(tag)}
70
+ {/each}
71
+ {/if}
72
+ </div>
73
+ {/if}
74
+ {/snippet}
75
+
76
+ <Popover.Root bind:open>
77
+ <Popover.Trigger
78
+ onmouseenter={() => (open = true)}
79
+ onmouseleave={() => (open = false)}
80
+ class="block w-full text-left h-8"
81
+ >
82
+ {@render tagsRow()}
83
+ </Popover.Trigger>
84
+ <Popover.Content
85
+ class="w-auto max-w-xs p-3"
86
+ onmouseenter={() => (open = true)}
87
+ onmouseleave={() => (open = false)}
88
+ >
89
+ <div class="flex flex-col gap-2">
90
+ {#each tags as tag, i (i)}
91
+ {@render createBadge(tag, "gap-2")}
92
+ {/each}
93
+ </div>
94
+ </Popover.Content>
95
+ </Popover.Root>
@@ -1,232 +1,232 @@
1
- <!-- CardMedia.svelte -->
2
- <script lang="ts">
3
- /**
4
- * Image thumbnail with hover-to-play video, lazy loading,
5
- * duration badge, video indicator, and optional maximize overlay.
6
- * @component
7
- */
8
- import { HugeiconsIcon } from "@hugeicons/svelte";
9
- import {
10
- Maximize01Icon,
11
- Cancel01Icon,
12
- VideoReplayIcon,
13
- } from "@hugeicons/core-free-icons";
14
- import Skeleton from "../../../ui/skeleton/skeleton.svelte";
15
- import ImgPlaceholder from "../../../../assets/placeholder-image.png";
16
- import VideoPlaceholder from "../../../../assets/lonely-404.mp4";
17
-
18
- type Props = {
19
- imageUrl?: string;
20
- videoUrl?: string;
21
- class?: string;
22
- isImageButtonMaximized?: boolean;
23
- isVideoButtonMaximized?: boolean;
24
- isLoading?: boolean;
25
- };
26
-
27
- let {
28
- imageUrl,
29
- videoUrl,
30
- class: className = "h-32 w-full md:h-64",
31
- isImageButtonMaximized = false,
32
- isVideoButtonMaximized = false,
33
- isLoading = false,
34
- }: Props = $props();
35
-
36
- let containerEl: HTMLDivElement | undefined = $state();
37
- let videoEl: HTMLVideoElement | undefined = $state();
38
-
39
- let isHovering = $state(false);
40
- let isVisible = $state(false);
41
- let isMaximized = $state(false);
42
- let duration = $state("");
43
-
44
- let showVideo = $derived(!imageUrl || isHovering);
45
- let showMaximize = $derived(
46
- (imageUrl && isImageButtonMaximized) ||
47
- (videoUrl && isVideoButtonMaximized),
48
- );
49
- let showVideoBadge = $derived(!!imageUrl && !!videoUrl && !isHovering);
50
-
51
- function onLoadedMetadata() {
52
- if (!videoEl) return;
53
- const m = Math.floor(videoEl.duration / 60);
54
- const s = Math.floor(videoEl.duration % 60);
55
- duration = `${m}:${s.toString().padStart(2, "0")}`;
56
- }
57
-
58
- function toggleHover(state: boolean) {
59
- if (!videoUrl) return;
60
- isHovering = state;
61
- if (state) videoEl?.play();
62
- else {
63
- videoEl?.pause();
64
- if (imageUrl && videoEl) videoEl.currentTime = 0;
65
- }
66
- }
67
-
68
- $effect(() => {
69
- if (!containerEl) return;
70
- const observer = new IntersectionObserver(
71
- ([entry]) => {
72
- if (entry.isIntersecting) {
73
- isVisible = true;
74
- observer.disconnect();
75
- }
76
- },
77
- { rootMargin: "100px" },
78
- );
79
- observer.observe(containerEl);
80
- return () => observer.disconnect();
81
- });
82
- </script>
83
-
84
- <svelte:window
85
- onkeydown={isMaximized
86
- ? (e) => e.key === "Escape" && (isMaximized = false)
87
- : undefined}
88
- />
89
-
90
- {#snippet maximizeButton()}
91
- <button
92
- type="button"
93
- class="absolute top-2 right-2 z-10 rounded-full bg-black/50 p-1.5 text-white transition-colors hover:bg-black/70"
94
- onclick={(e) => {
95
- e.stopPropagation();
96
- isMaximized = true;
97
- videoEl?.pause();
98
- }}
99
- aria-label="Maximizar"
100
- >
101
- <HugeiconsIcon
102
- icon={Maximize01Icon}
103
- size={16}
104
- color="currentColor"
105
- strokeWidth={1.5}
106
- />
107
- </button>
108
- {/snippet}
109
-
110
- {#if isLoading}
111
- <Skeleton class="w-full h-12.5 md:h-50 bg-gray-500/90" />
112
- {:else}
113
- {#if imageUrl || videoUrl}
114
- <div
115
- bind:this={containerEl}
116
- class="relative w-full {className}"
117
- role="button"
118
- tabindex="0"
119
- onmouseenter={() => toggleHover(true)}
120
- onmouseleave={() => toggleHover(false)}
121
- onfocus={() => toggleHover(true)}
122
- onblur={() => toggleHover(false)}
123
- onkeydown={(e) =>
124
- (e.key === "Enter" || e.key === " ") &&
125
- (e.preventDefault(), toggleHover(!isHovering))}
126
- >
127
- {#if imageUrl}
128
- <img
129
- src={isVisible ? imageUrl : undefined}
130
- loading="lazy"
131
- decoding="async"
132
- alt={imageUrl}
133
- class="absolute inset-0 h-full w-full rounded-md object-cover transition-opacity duration-500"
134
- class:opacity-0={videoUrl && showVideo}
135
- onerror={(e) => ((e.target as HTMLImageElement).src = ImgPlaceholder)}
136
- />
137
- {/if}
138
-
139
- {#if videoUrl && isVisible}
140
- <video
141
- bind:this={videoEl}
142
- src={videoUrl}
143
- preload="metadata"
144
- onloadedmetadata={onLoadedMetadata}
145
- class="absolute inset-0 h-full w-full rounded-md object-cover transition-opacity duration-500"
146
- class:opacity-0={imageUrl && !showVideo}
147
- muted
148
- loop
149
- playsinline
150
- onerror={(e) =>
151
- ((e.target as HTMLImageElement).src = VideoPlaceholder)}
152
- ></video>
153
- {/if}
154
-
155
- {#if showVideoBadge}
156
- <div
157
- class="pointer-events-none absolute inset-0 flex items-center justify-center transition-opacity duration-300"
158
- >
159
- <div
160
- class="flex h-11 w-11 items-center justify-center rounded-full bg-black/50 backdrop-blur-sm"
161
- >
162
- <HugeiconsIcon
163
- icon={VideoReplayIcon}
164
- size={22}
165
- color="white"
166
- strokeWidth={1.5}
167
- />
168
- </div>
169
- </div>
170
- {#if duration}
171
- <span
172
- class="absolute bottom-2 right-2 z-10 rounded bg-black/60 px-1.5 py-0.5 text-xs font-medium text-white"
173
- >
174
- {duration}
175
- </span>
176
- {/if}
177
- {/if}
178
-
179
- {#if showMaximize}
180
- {@render maximizeButton()}
181
- {/if}
182
- </div>
183
- {/if}
184
-
185
- {#if isMaximized}
186
- <div class="fixed inset-0 z-50">
187
- <button
188
- type="button"
189
- class="absolute inset-0 h-full w-full cursor-default bg-black/80"
190
- onclick={() => (isMaximized = false)}
191
- aria-label="Fechar modal"
192
- ></button>
193
-
194
- <div
195
- class="pointer-events-none fixed inset-0 z-50 flex items-center justify-center p-4"
196
- >
197
- <div class="pointer-events-auto relative max-h-[90vh] max-w-4xl">
198
- <button
199
- type="button"
200
- class="absolute top-3 right-3 rounded-full bg-red-900/50 p-2 text-white hover:bg-black/70"
201
- onclick={() => (isMaximized = false)}
202
- aria-label="Fechar"
203
- >
204
- <HugeiconsIcon
205
- icon={Cancel01Icon}
206
- size={20}
207
- color="currentColor"
208
- strokeWidth={1.5}
209
- />
210
- </button>
211
-
212
- {#if videoUrl && showVideo}
213
- <!-- svelte-ignore a11y_media_has_caption -->
214
- <video
215
- src={videoUrl}
216
- class="max-h-[90vh] max-w-full rounded-md"
217
- controls
218
- autoplay
219
- playsinline
220
- ></video>
221
- {:else if imageUrl}
222
- <img
223
- src={imageUrl}
224
- alt={imageUrl}
225
- class="max-h-[90vh] max-w-full rounded-md object-contain"
226
- />
227
- {/if}
228
- </div>
229
- </div>
230
- </div>
231
- {/if}
232
- {/if}
1
+ <!-- CardMedia.svelte -->
2
+ <script lang="ts">
3
+ /**
4
+ * Image thumbnail with hover-to-play video, lazy loading,
5
+ * duration badge, video indicator, and optional maximize overlay.
6
+ * @component
7
+ */
8
+ import { HugeiconsIcon } from "@hugeicons/svelte";
9
+ import {
10
+ Maximize01Icon,
11
+ Cancel01Icon,
12
+ VideoReplayIcon,
13
+ } from "@hugeicons/core-free-icons";
14
+ import Skeleton from "../../../skeleton/skeleton.svelte";
15
+ import ImgPlaceholder from "../../../../../assets/placeholder-image.png";
16
+ import VideoPlaceholder from "../../../../../assets/lonely-404.mp4";
17
+
18
+ type Props = {
19
+ imageUrl?: string;
20
+ videoUrl?: string;
21
+ class?: string;
22
+ isImageButtonMaximized?: boolean;
23
+ isVideoButtonMaximized?: boolean;
24
+ isLoading?: boolean;
25
+ };
26
+
27
+ let {
28
+ imageUrl,
29
+ videoUrl,
30
+ class: className = "h-32 w-full md:h-64",
31
+ isImageButtonMaximized = false,
32
+ isVideoButtonMaximized = false,
33
+ isLoading = false,
34
+ }: Props = $props();
35
+
36
+ let containerEl: HTMLDivElement | undefined = $state();
37
+ let videoEl: HTMLVideoElement | undefined = $state();
38
+
39
+ let isHovering = $state(false);
40
+ let isVisible = $state(false);
41
+ let isMaximized = $state(false);
42
+ let duration = $state("");
43
+
44
+ let showVideo = $derived(!imageUrl || isHovering);
45
+ let showMaximize = $derived(
46
+ (imageUrl && isImageButtonMaximized) ||
47
+ (videoUrl && isVideoButtonMaximized),
48
+ );
49
+ let showVideoBadge = $derived(!!imageUrl && !!videoUrl && !isHovering);
50
+
51
+ function onLoadedMetadata() {
52
+ if (!videoEl) return;
53
+ const m = Math.floor(videoEl.duration / 60);
54
+ const s = Math.floor(videoEl.duration % 60);
55
+ duration = `${m}:${s.toString().padStart(2, "0")}`;
56
+ }
57
+
58
+ function toggleHover(state: boolean) {
59
+ if (!videoUrl) return;
60
+ isHovering = state;
61
+ if (state) videoEl?.play();
62
+ else {
63
+ videoEl?.pause();
64
+ if (imageUrl && videoEl) videoEl.currentTime = 0;
65
+ }
66
+ }
67
+
68
+ $effect(() => {
69
+ if (!containerEl) return;
70
+ const observer = new IntersectionObserver(
71
+ ([entry]) => {
72
+ if (entry.isIntersecting) {
73
+ isVisible = true;
74
+ observer.disconnect();
75
+ }
76
+ },
77
+ { rootMargin: "100px" },
78
+ );
79
+ observer.observe(containerEl);
80
+ return () => observer.disconnect();
81
+ });
82
+ </script>
83
+
84
+ <svelte:window
85
+ onkeydown={isMaximized
86
+ ? (e) => e.key === "Escape" && (isMaximized = false)
87
+ : undefined}
88
+ />
89
+
90
+ {#snippet maximizeButton()}
91
+ <button
92
+ type="button"
93
+ class="absolute top-2 right-2 z-10 rounded-full bg-black/50 p-1.5 text-white transition-colors hover:bg-black/70"
94
+ onclick={(e) => {
95
+ e.stopPropagation();
96
+ isMaximized = true;
97
+ videoEl?.pause();
98
+ }}
99
+ aria-label="Maximizar"
100
+ >
101
+ <HugeiconsIcon
102
+ icon={Maximize01Icon}
103
+ size={16}
104
+ color="currentColor"
105
+ strokeWidth={1.5}
106
+ />
107
+ </button>
108
+ {/snippet}
109
+
110
+ {#if isLoading}
111
+ <Skeleton class="w-full h-12.5 md:h-50 bg-gray-500/90" />
112
+ {:else}
113
+ {#if imageUrl || videoUrl}
114
+ <div
115
+ bind:this={containerEl}
116
+ class="relative w-full {className}"
117
+ role="button"
118
+ tabindex="0"
119
+ onmouseenter={() => toggleHover(true)}
120
+ onmouseleave={() => toggleHover(false)}
121
+ onfocus={() => toggleHover(true)}
122
+ onblur={() => toggleHover(false)}
123
+ onkeydown={(e) =>
124
+ (e.key === "Enter" || e.key === " ") &&
125
+ (e.preventDefault(), toggleHover(!isHovering))}
126
+ >
127
+ {#if imageUrl}
128
+ <img
129
+ src={isVisible ? imageUrl : undefined}
130
+ loading="lazy"
131
+ decoding="async"
132
+ alt={imageUrl}
133
+ class="absolute inset-0 h-full w-full rounded-md object-cover transition-opacity duration-500"
134
+ class:opacity-0={videoUrl && showVideo}
135
+ onerror={(e) => ((e.target as HTMLImageElement).src = ImgPlaceholder)}
136
+ />
137
+ {/if}
138
+
139
+ {#if videoUrl && isVisible}
140
+ <video
141
+ bind:this={videoEl}
142
+ src={videoUrl}
143
+ preload="metadata"
144
+ onloadedmetadata={onLoadedMetadata}
145
+ class="absolute inset-0 h-full w-full rounded-md object-cover transition-opacity duration-500"
146
+ class:opacity-0={imageUrl && !showVideo}
147
+ muted
148
+ loop
149
+ playsinline
150
+ onerror={(e) =>
151
+ ((e.target as HTMLImageElement).src = VideoPlaceholder)}
152
+ ></video>
153
+ {/if}
154
+
155
+ {#if showVideoBadge}
156
+ <div
157
+ class="pointer-events-none absolute inset-0 flex items-center justify-center transition-opacity duration-300"
158
+ >
159
+ <div
160
+ class="flex h-11 w-11 items-center justify-center rounded-full bg-black/50 backdrop-blur-sm"
161
+ >
162
+ <HugeiconsIcon
163
+ icon={VideoReplayIcon}
164
+ size={22}
165
+ color="white"
166
+ strokeWidth={1.5}
167
+ />
168
+ </div>
169
+ </div>
170
+ {#if duration}
171
+ <span
172
+ class="absolute bottom-2 right-2 z-10 rounded bg-black/60 px-1.5 py-0.5 text-xs font-medium text-white"
173
+ >
174
+ {duration}
175
+ </span>
176
+ {/if}
177
+ {/if}
178
+
179
+ {#if showMaximize}
180
+ {@render maximizeButton()}
181
+ {/if}
182
+ </div>
183
+ {/if}
184
+
185
+ {#if isMaximized}
186
+ <div class="fixed inset-0 z-50">
187
+ <button
188
+ type="button"
189
+ class="absolute inset-0 h-full w-full cursor-default bg-black/80"
190
+ onclick={() => (isMaximized = false)}
191
+ aria-label="Fechar modal"
192
+ ></button>
193
+
194
+ <div
195
+ class="pointer-events-none fixed inset-0 z-50 flex items-center justify-center p-4"
196
+ >
197
+ <div class="pointer-events-auto relative max-h-[90vh] max-w-4xl">
198
+ <button
199
+ type="button"
200
+ class="absolute top-3 right-3 rounded-full bg-red-900/50 p-2 text-white hover:bg-black/70"
201
+ onclick={() => (isMaximized = false)}
202
+ aria-label="Fechar"
203
+ >
204
+ <HugeiconsIcon
205
+ icon={Cancel01Icon}
206
+ size={20}
207
+ color="currentColor"
208
+ strokeWidth={1.5}
209
+ />
210
+ </button>
211
+
212
+ {#if videoUrl && showVideo}
213
+ <!-- svelte-ignore a11y_media_has_caption -->
214
+ <video
215
+ src={videoUrl}
216
+ class="max-h-[90vh] max-w-full rounded-md"
217
+ controls
218
+ autoplay
219
+ playsinline
220
+ ></video>
221
+ {:else if imageUrl}
222
+ <img
223
+ src={imageUrl}
224
+ alt={imageUrl}
225
+ class="max-h-[90vh] max-w-full rounded-md object-contain"
226
+ />
227
+ {/if}
228
+ </div>
229
+ </div>
230
+ </div>
231
+ {/if}
232
+ {/if}