negodesign 0.0.80 → 0.0.82

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 +62 -62
  9. package/dist/components/pages/security/auth/PageAuth02.svelte +40 -40
  10. package/dist/components/pages/security/auth/PageAuth03.svelte +40 -40
  11. package/dist/components/pages/security/login/01/ui/FormLogin.svelte +91 -63
  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 +49 -26
  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 +49 -26
  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 +49 -26
  18. package/dist/components/pages/security/login/01/ui/FormLoginUsernamePassword.svelte.d.ts +2 -0
  19. package/dist/components/pages/security/login/01/ui/LoginCard01.svelte +148 -132
  20. package/dist/components/pages/security/login/01/ui/LoginCard01.svelte.d.ts +2 -0
  21. package/dist/components/pages/security/login/01/ui/PageLogin01.svelte +66 -64
  22. package/dist/components/pages/security/login/02/ui/FormLogin02.svelte +82 -72
  23. package/dist/components/pages/security/login/02/ui/FormLogin02.svelte.d.ts +1 -0
  24. package/dist/components/pages/security/login/02/ui/FormLoginEmailPassword02.svelte +27 -26
  25. package/dist/components/pages/security/login/02/ui/FormLoginEmailPassword02.svelte.d.ts +1 -0
  26. package/dist/components/pages/security/login/02/ui/FormLoginPhonePassword02.svelte +27 -26
  27. package/dist/components/pages/security/login/02/ui/FormLoginPhonePassword02.svelte.d.ts +1 -0
  28. package/dist/components/pages/security/login/02/ui/FormLoginUsernamePassword02.svelte +27 -26
  29. package/dist/components/pages/security/login/02/ui/FormLoginUsernamePassword02.svelte.d.ts +1 -0
  30. package/dist/components/pages/security/login/02/ui/LoginCard02.svelte +15 -2
  31. package/dist/components/pages/security/login/02/ui/LoginCard02.svelte.d.ts +1 -0
  32. package/dist/components/pages/security/login/02/ui/PageLogin02.svelte +2 -0
  33. package/dist/components/pages/security/login/03/ui/FormLogin03.svelte +94 -91
  34. package/dist/components/pages/security/login/03/ui/FormLogin03.svelte.d.ts +1 -0
  35. package/dist/components/pages/security/login/03/ui/FormLoginEmailPassword03.svelte +27 -26
  36. package/dist/components/pages/security/login/03/ui/FormLoginEmailPassword03.svelte.d.ts +1 -0
  37. package/dist/components/pages/security/login/03/ui/FormLoginPhonePassword03.svelte +27 -26
  38. package/dist/components/pages/security/login/03/ui/FormLoginPhonePassword03.svelte.d.ts +1 -0
  39. package/dist/components/pages/security/login/03/ui/FormLoginUsernamePassword03.svelte +27 -26
  40. package/dist/components/pages/security/login/03/ui/FormLoginUsernamePassword03.svelte.d.ts +1 -0
  41. package/dist/components/pages/security/login/03/ui/LoginCard03.svelte +15 -2
  42. package/dist/components/pages/security/login/03/ui/LoginCard03.svelte.d.ts +1 -0
  43. package/dist/components/pages/security/login/03/ui/PageLogin03.svelte +2 -0
  44. package/dist/components/pages/security/login/PageLogin.svelte +30 -30
  45. package/dist/components/pages/security/login/types.d.ts +1 -0
  46. package/dist/components/pages/security/register/01/ui/PageRegister01.svelte +78 -76
  47. package/dist/components/pages/security/register/01/ui/RegisterCard01.svelte +107 -104
  48. package/dist/components/pages/security/register/01/ui/RegisterCard01.svelte.d.ts +1 -0
  49. package/dist/components/pages/security/register/02/ui/PageRegister02.svelte +2 -0
  50. package/dist/components/pages/security/register/02/ui/RegisterCard02.svelte +3 -1
  51. package/dist/components/pages/security/register/02/ui/RegisterCard02.svelte.d.ts +1 -0
  52. package/dist/components/pages/security/register/03/ui/PageRegister03.svelte +2 -0
  53. package/dist/components/pages/security/register/03/ui/RegisterCard03.svelte +3 -1
  54. package/dist/components/pages/security/register/03/ui/RegisterCard03.svelte.d.ts +1 -0
  55. package/dist/components/pages/security/register/FormRegister.svelte +148 -146
  56. package/dist/components/pages/security/register/FormRegister.svelte.d.ts +1 -0
  57. package/dist/components/pages/security/register/types.d.ts +1 -0
  58. package/dist/components/ui/avatar/avatar-fallback.svelte +29 -29
  59. package/dist/components/ui/avatar/avatar-image.svelte +38 -38
  60. package/dist/components/ui/avatar/avatar.svelte +39 -39
  61. package/dist/components/ui/badge/badge.svelte +46 -46
  62. package/dist/components/ui/banner/AdCardBanner.svelte +74 -74
  63. package/dist/components/ui/banner/CtaCardBanner.svelte +118 -118
  64. package/dist/components/ui/banner/CtaCardImageBanner.svelte +94 -94
  65. package/dist/components/ui/breadcrumb/core/breadcrumb-list.svelte +31 -31
  66. package/dist/components/ui/button/ButtonBack.svelte +18 -18
  67. package/dist/components/ui/button/ButtonLogin.svelte +19 -15
  68. package/dist/components/ui/button/ButtonLoginWith.svelte +57 -57
  69. package/dist/components/ui/button/ButtonSend.svelte +15 -15
  70. package/dist/components/ui/button/button.svelte +100 -86
  71. package/dist/components/ui/button/button.svelte.d.ts +1 -0
  72. package/dist/components/ui/card/core/highlight/01/CardHighlight01.svelte +103 -103
  73. package/dist/components/ui/card/core/highlight/02/CardHighlight02.svelte +99 -99
  74. package/dist/components/ui/card/core/highlight/CardHighlight.svelte +22 -22
  75. package/dist/components/ui/card/core/media/01/CardMedia01.svelte +133 -133
  76. package/dist/components/ui/card/core/media/02/CardMedia02.svelte +127 -127
  77. package/dist/components/ui/card/core/media/CardMedia.svelte +18 -18
  78. package/dist/components/ui/card/core/product/01/CardProduct01.svelte +136 -136
  79. package/dist/components/ui/card/core/product/02/CardProduct02.svelte +124 -124
  80. package/dist/components/ui/card/core/product/CardProduct.svelte +22 -22
  81. package/dist/components/ui/card/core/profile/01/CardProfile01.svelte +134 -134
  82. package/dist/components/ui/card/core/profile/02/CardProfile02.svelte +132 -132
  83. package/dist/components/ui/card/core/profile/CardProfile.svelte +18 -18
  84. package/dist/components/ui/card/core/promotion/CardPromotion.svelte +139 -139
  85. package/dist/components/ui/card/core/promotion/CardPromotionPrice.svelte +32 -32
  86. package/dist/components/ui/card/core/shared/CardButton.svelte +42 -42
  87. package/dist/components/ui/card/core/shared/CardCart.svelte +36 -36
  88. package/dist/components/ui/card/core/shared/CardDescription.svelte +41 -41
  89. package/dist/components/ui/card/core/shared/CardFavorite.svelte +33 -33
  90. package/dist/components/ui/card/core/shared/CardLogo.svelte +19 -19
  91. package/dist/components/ui/card/core/shared/CardPhoneOrWhatsapp.svelte +45 -45
  92. package/dist/components/ui/card/core/shared/CardStarRating.svelte +24 -24
  93. package/dist/components/ui/card/core/shared/CardTags.svelte +95 -95
  94. package/dist/components/ui/card/core/shared/CardThumbnailVideo.svelte +232 -232
  95. package/dist/components/ui/card/core/shared/CardTitlePrice.svelte +24 -24
  96. package/dist/components/ui/card/core/shared/TruncatableText.svelte +49 -49
  97. package/dist/components/ui/carousel/carousel-content.svelte +56 -56
  98. package/dist/components/ui/carousel/carousel-item.svelte +29 -29
  99. package/dist/components/ui/carousel/carousel-next.svelte +40 -40
  100. package/dist/components/ui/carousel/carousel-previous.svelte +40 -40
  101. package/dist/components/ui/carousel/carousel.svelte +225 -225
  102. package/dist/components/ui/carousel/core/badge/ui/CarouselBadge.svelte +108 -108
  103. package/dist/components/ui/carousel/core/grid/shared/ui/CarouselGridSlot.svelte +38 -38
  104. package/dist/components/ui/carousel/core/hero/ui/CarouselHero.svelte +181 -181
  105. package/dist/components/ui/carousel/core/highlights/ui/CarouselHighlights.svelte +67 -67
  106. package/dist/components/ui/carousel/core/product/ui/CarouselProduct.svelte +57 -57
  107. package/dist/components/ui/carousel/core/promotion/ui/CarouselPromotion.svelte +67 -67
  108. package/dist/components/ui/carousel/core/shared/ui/CarouselHeader.svelte +59 -59
  109. package/dist/components/ui/checkbox/checkbox.svelte +96 -96
  110. package/dist/components/ui/collapsible/collapsible-content.svelte +30 -30
  111. package/dist/components/ui/collapsible/collapsible-trigger.svelte +51 -51
  112. package/dist/components/ui/collapsible/collapsible.svelte +66 -66
  113. package/dist/components/ui/data-table/flex-render.svelte +40 -40
  114. package/dist/components/ui/datatable/ui/DataTableActions.svelte +28 -28
  115. package/dist/components/ui/datatable/ui/DataTableCheckbox.svelte +22 -22
  116. package/dist/components/ui/datatable/ui/DataTableContent.svelte +59 -59
  117. package/dist/components/ui/datatable/ui/DataTableCore.svelte +148 -148
  118. package/dist/components/ui/datatable/ui/DataTableDragHandle.svelte +8 -8
  119. package/dist/components/ui/datatable/ui/DataTableListFilter.svelte +60 -60
  120. package/dist/components/ui/datatable/ui/DataTableListPagination.svelte +35 -35
  121. package/dist/components/ui/drawer/drawer-close.svelte +41 -41
  122. package/dist/components/ui/drawer/drawer-content.svelte +81 -81
  123. package/dist/components/ui/drawer/drawer-description.svelte +19 -19
  124. package/dist/components/ui/drawer/drawer-footer.svelte +20 -20
  125. package/dist/components/ui/drawer/drawer-header.svelte +20 -20
  126. package/dist/components/ui/drawer/drawer-nested.svelte +34 -34
  127. package/dist/components/ui/drawer/drawer-overlay.svelte +25 -25
  128. package/dist/components/ui/drawer/drawer-portal.svelte +19 -19
  129. package/dist/components/ui/drawer/drawer-title.svelte +19 -19
  130. package/dist/components/ui/drawer/drawer-trigger.svelte +42 -42
  131. package/dist/components/ui/drawer/drawer.svelte +74 -74
  132. package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-group.svelte +25 -25
  133. package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte +69 -69
  134. package/dist/components/ui/dropdown-menu/dropdown-menu-content.svelte +106 -106
  135. package/dist/components/ui/dropdown-menu/dropdown-menu-group-heading.svelte +27 -27
  136. package/dist/components/ui/dropdown-menu/dropdown-menu-group.svelte +21 -21
  137. package/dist/components/ui/dropdown-menu/dropdown-menu-item.svelte +60 -60
  138. package/dist/components/ui/dropdown-menu/dropdown-menu-label.svelte +27 -27
  139. package/dist/components/ui/dropdown-menu/dropdown-menu-portal.svelte +6 -6
  140. package/dist/components/ui/dropdown-menu/dropdown-menu-radio-group.svelte +43 -43
  141. package/dist/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte +70 -70
  142. package/dist/components/ui/dropdown-menu/dropdown-menu-separator.svelte +20 -20
  143. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-content.svelte +33 -33
  144. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte +57 -57
  145. package/dist/components/ui/dropdown-menu/dropdown-menu-sub.svelte +76 -76
  146. package/dist/components/ui/dropdown-menu/dropdown-menu-trigger.svelte +68 -68
  147. package/dist/components/ui/dropdown-menu/dropdown-menu.svelte +53 -53
  148. package/dist/components/ui/empty/empty-content.svelte +19 -19
  149. package/dist/components/ui/empty/empty-description.svelte +19 -19
  150. package/dist/components/ui/empty/empty-header.svelte +19 -19
  151. package/dist/components/ui/empty/empty-media.svelte +41 -41
  152. package/dist/components/ui/empty/empty-title.svelte +19 -19
  153. package/dist/components/ui/empty/empty.svelte +19 -19
  154. package/dist/components/ui/footer/ui/Footer.svelte +18 -18
  155. package/dist/components/ui/form/ui/calendar/Calendar.svelte +193 -193
  156. package/dist/components/ui/form/ui/calendar/CalendarCard.svelte +89 -89
  157. package/dist/components/ui/form/ui/calendar/DaysGrid.svelte +75 -75
  158. package/dist/components/ui/form/ui/calendar/MonthSelect.svelte +49 -49
  159. package/dist/components/ui/form/ui/calendar/YearSelect.svelte +116 -116
  160. package/dist/components/ui/form/ui/input-base.svelte +83 -83
  161. package/dist/components/ui/form/ui/input-calendar-interval.svelte +178 -178
  162. package/dist/components/ui/form/ui/input-calendar.svelte +109 -109
  163. package/dist/components/ui/form/ui/input-email-or-phone.svelte +23 -23
  164. package/dist/components/ui/form/ui/input-email.svelte +23 -23
  165. package/dist/components/ui/form/ui/input-password-confirm.svelte +23 -23
  166. package/dist/components/ui/form/ui/input-password.svelte +23 -23
  167. package/dist/components/ui/form/ui/input-phone.svelte +43 -37
  168. package/dist/components/ui/form/ui/input-select.svelte +246 -246
  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/ui/ModalCore.svelte +132 -132
  192. package/dist/components/ui/modal/form/index.d.ts +3 -2
  193. package/dist/components/ui/modal/form/index.js +2 -1
  194. package/dist/components/ui/modal/form/types.d.ts +41 -0
  195. package/dist/components/ui/modal/form/ui/ModalForm.svelte +11 -6
  196. package/dist/components/ui/modal/form/ui/ModalFormEmailOrPhone.svelte +204 -0
  197. package/dist/components/ui/modal/form/ui/ModalFormEmailOrPhone.svelte.d.ts +4 -0
  198. package/dist/components/ui/modal/grid/ui/02/ModalGridSelection02.svelte +146 -146
  199. package/dist/components/ui/modal/share/ui/ModalShareSelection.svelte +156 -156
  200. package/dist/components/ui/nav/ui/ComplexMenu.svelte +51 -51
  201. package/dist/components/ui/nav/ui/Menu.svelte +72 -72
  202. package/dist/components/ui/nav/ui/SimpleMenu.svelte +14 -14
  203. package/dist/components/ui/nav/ui/mobile/ComplexMenuMobile.svelte +125 -125
  204. package/dist/components/ui/nav/ui/mobile/MenuMobile.svelte +54 -54
  205. package/dist/components/ui/nav/ui/shared/MenuButton.svelte +51 -51
  206. package/dist/components/ui/nav/ui/shared/MenuLinks.svelte +40 -40
  207. package/dist/components/ui/nav/ui/shared/MenuListItem.svelte +44 -44
  208. package/dist/components/ui/nav/ui/shared/MenuLogo.svelte +13 -13
  209. package/dist/components/ui/nav/ui/shared/dropdown/DropdownNavigationMenuItemGrid.svelte +30 -30
  210. package/dist/components/ui/nav/ui/shared/navigation/NavDropdown.svelte +88 -88
  211. package/dist/components/ui/nav/ui/shared/navigation/NavigationMenuItem.svelte +17 -17
  212. package/dist/components/ui/nav/ui/shared/navigation/NavigationMenuItemCard.svelte +53 -53
  213. package/dist/components/ui/nav/ui/shared/navigation/NavigationMenuItemGrid.svelte +35 -36
  214. package/dist/components/ui/nav/ui/shared/navigation/NavigationMenuItemList.svelte +24 -24
  215. package/dist/components/ui/nav/ui/shared/navigation/NavigationMenuItems.svelte +21 -21
  216. package/dist/components/ui/panel/CarouselSlot.svelte +57 -57
  217. package/dist/components/ui/panel/LeftHero.svelte +114 -114
  218. package/dist/components/ui/panel/NotFoundEmpty.svelte +66 -66
  219. package/dist/components/ui/phone-input/country-selector.svelte +87 -87
  220. package/dist/components/ui/phone-input/flag.svelte +11 -11
  221. package/dist/components/ui/phone-input/phone-input.svelte +163 -163
  222. package/dist/components/ui/popover/popover-close.svelte +25 -25
  223. package/dist/components/ui/popover/popover-content.svelte +92 -92
  224. package/dist/components/ui/popover/popover-portal.svelte +6 -6
  225. package/dist/components/ui/popover/popover-trigger.svelte +68 -68
  226. package/dist/components/ui/popover/popover.svelte +53 -53
  227. package/dist/components/ui/search/SearchInput.svelte +32 -32
  228. package/dist/components/ui/search/shared/SearchInputCore.svelte +66 -66
  229. package/dist/components/ui/separator/separator.svelte +28 -28
  230. package/dist/components/ui/sidebar/core/MenuBarSidebar.svelte +70 -70
  231. package/dist/components/ui/sidebar/core/ui/navbar/NavMenuBarSidebar.svelte +97 -97
  232. package/dist/components/ui/sidebar/core/ui/navbar/NavMenuBottomSidebar.svelte +33 -33
  233. package/dist/components/ui/sidebar/core/ui/navbar/NavMenuTopBarSidebar.svelte +101 -101
  234. package/dist/components/ui/sidebar/core/ui/navbar/nav-menu-header-sidebar.svelte +77 -77
  235. package/dist/components/ui/sidebar/sidebar-content.svelte +24 -24
  236. package/dist/components/ui/sidebar/sidebar-footer.svelte +21 -21
  237. package/dist/components/ui/sidebar/sidebar-group-content.svelte +21 -21
  238. package/dist/components/ui/sidebar/sidebar-menu-action.svelte +38 -38
  239. package/dist/components/ui/sidebar/sidebar-menu-button.svelte +70 -70
  240. package/dist/components/ui/sidebar/sidebar-menu-sub-button.svelte +39 -39
  241. package/dist/components/ui/sidebar/sidebar-provider.svelte +62 -62
  242. package/dist/components/ui/sidebar/sidebar-rail.svelte +36 -36
  243. package/dist/components/ui/sidebar/sidebar-separator.svelte +21 -21
  244. package/dist/components/ui/sidebar/sidebar-trigger.svelte +36 -36
  245. package/dist/components/ui/sidebar/sidebar.svelte +118 -118
  246. package/dist/components/ui/skeleton/skeleton.svelte +19 -19
  247. package/dist/components/ui/star-rating/star-rating-star.svelte +66 -66
  248. package/dist/components/ui/star-rating/star-rating.svelte +149 -149
  249. package/dist/components/ui/table/table-body.svelte +15 -15
  250. package/dist/components/ui/table/table-caption.svelte +20 -20
  251. package/dist/components/ui/table/table-cell.svelte +15 -15
  252. package/dist/components/ui/table/table-footer.svelte +20 -20
  253. package/dist/components/ui/table/table-head.svelte +15 -15
  254. package/dist/components/ui/table/table-header.svelte +20 -20
  255. package/dist/components/ui/table/table-row.svelte +15 -15
  256. package/dist/components/ui/table/table.svelte +17 -17
  257. package/dist/components/ui/tabs/data/TabModel.d.ts +1 -0
  258. package/dist/components/ui/tabs/ui/tab-underline.svelte +47 -43
  259. package/dist/components/ui/underline-tabs/underline-tabs-content.svelte +33 -33
  260. package/dist/components/ui/underline-tabs/underline-tabs-list.svelte +40 -40
  261. package/dist/components/ui/underline-tabs/underline-tabs-trigger.svelte +91 -91
  262. package/dist/components/ui/underline-tabs/underline-tabs.svelte +61 -61
  263. package/dist/docs/ApiTable.svelte +42 -42
  264. package/dist/docs/CodeBlock.svelte +26 -26
  265. package/dist/docs/DocsHeader.svelte +25 -25
  266. package/dist/docs/DocsSidebar.svelte +108 -108
  267. package/dist/docs/components.js +624 -584
  268. package/dist/globals.css +27 -7
  269. package/dist/i18n/langs/en.d.ts +3 -1
  270. package/dist/i18n/langs/en.js +3 -1
  271. package/dist/i18n/langs/pt.d.ts +3 -1
  272. package/dist/i18n/langs/pt.js +3 -1
  273. package/dist/i18n/translations.d.ts +6 -2
  274. package/dist/index.d.ts +12 -0
  275. package/dist/index.js +12 -0
  276. package/dist/styles/globals.css +283 -283
  277. package/dist/types/index.d.ts +3 -1
  278. package/package.json +81 -81
@@ -1,66 +1,66 @@
1
- <script lang="ts" module>
2
- /**
3
- * Reusable search input component used by Search01 and Search02.
4
- * Renders a text input with a search icon and submit button.
5
- * @component
6
- */
7
- </script>
8
-
9
- <script lang="ts">
10
- import { HugeiconsIcon } from "@hugeicons/svelte";
11
- import { Search01Icon } from "@hugeicons/core-free-icons";
12
- import Button from "../../button/button.svelte";
13
- import { Separator } from "../../separator/index";
14
- import { t } from "../../../../i18n";
15
- import type { SearchInputProps } from "../types";
16
-
17
- let { onSubmit, placeholder, variant = 1, buttonClass, inputClass, iconClass }: SearchInputProps = $props();
18
-
19
- let value = $state("");
20
-
21
- function handleKeydown(e: KeyboardEvent) {
22
- if (e.key === "Enter") onSubmit?.(value);
23
- }
24
- </script>
25
-
26
- <div class="container relative">
27
- <div
28
- class="mx-auto md:w-11/12 z-10 {variant === 2
29
- ? 'border-b'
30
- : 'border bg-input rounded-lg shadow'} m-auto"
31
- >
32
- <div class="flex items-center gap-2 py-1 px-2 w-full md:min-h-15">
33
- <div class="items-center gap-2 hidden md:flex">
34
- <HugeiconsIcon
35
- icon={Search01Icon}
36
- size={20}
37
- color="currentColor"
38
- strokeWidth={1.5}
39
- class={iconClass}
40
- />
41
- </div>
42
- <input
43
- type="search"
44
- bind:value
45
- onkeydown={handleKeydown}
46
- class="text-sm w-full bg-transparent border-none outline-none focus:outline-none focus:ring-0 focus:border-transparent {inputClass}"
47
- placeholder={placeholder || $t("label.search.placeholder")}
48
- />
49
- <div class="flex gap-1">
50
- <Separator class="w-full" orientation="vertical" />
51
- <Button
52
- onclick={() => onSubmit?.(value)}
53
- class={`flex justify-center items-center cursor-pointer ${buttonClass}`}
54
- >
55
- <HugeiconsIcon
56
- icon={Search01Icon}
57
- size={15}
58
- color="currentColor"
59
- strokeWidth={2}
60
- />
61
- <span class="hidden md:block">{$t("label.search")}</span>
62
- </Button>
63
- </div>
64
- </div>
65
- </div>
66
- </div>
1
+ <script lang="ts" module>
2
+ /**
3
+ * Reusable search input component used by Search01 and Search02.
4
+ * Renders a text input with a search icon and submit button.
5
+ * @component
6
+ */
7
+ </script>
8
+
9
+ <script lang="ts">
10
+ import { HugeiconsIcon } from "@hugeicons/svelte";
11
+ import { Search01Icon } from "@hugeicons/core-free-icons";
12
+ import Button from "../../button/button.svelte";
13
+ import { Separator } from "../../separator/index";
14
+ import { t } from "../../../../i18n";
15
+ import type { SearchInputProps } from "../types";
16
+
17
+ let { onSubmit, placeholder, variant = 1, buttonClass, inputClass, iconClass }: SearchInputProps = $props();
18
+
19
+ let value = $state("");
20
+
21
+ function handleKeydown(e: KeyboardEvent) {
22
+ if (e.key === "Enter") onSubmit?.(value);
23
+ }
24
+ </script>
25
+
26
+ <div class="container relative">
27
+ <div
28
+ class="mx-auto md:w-11/12 z-10 {variant === 2
29
+ ? 'border-b'
30
+ : 'border bg-input rounded-lg shadow'} m-auto"
31
+ >
32
+ <div class="flex items-center gap-2 py-1 px-2 w-full md:min-h-15">
33
+ <div class="items-center gap-2 hidden md:flex">
34
+ <HugeiconsIcon
35
+ icon={Search01Icon}
36
+ size={20}
37
+ color="currentColor"
38
+ strokeWidth={1.5}
39
+ class={iconClass}
40
+ />
41
+ </div>
42
+ <input
43
+ type="search"
44
+ bind:value
45
+ onkeydown={handleKeydown}
46
+ class="text-sm w-full bg-transparent border-none outline-none focus:outline-none focus:ring-0 focus:border-transparent {inputClass}"
47
+ placeholder={placeholder || $t("label.search.placeholder")}
48
+ />
49
+ <div class="flex gap-1">
50
+ <Separator class="w-full" orientation="vertical" />
51
+ <Button
52
+ onclick={() => onSubmit?.(value)}
53
+ class={`flex justify-center items-center cursor-pointer ${buttonClass}`}
54
+ >
55
+ <HugeiconsIcon
56
+ icon={Search01Icon}
57
+ size={15}
58
+ color="currentColor"
59
+ strokeWidth={2}
60
+ />
61
+ <span class="hidden md:block">{$t("label.search")}</span>
62
+ </Button>
63
+ </div>
64
+ </div>
65
+ </div>
66
+ </div>
@@ -1,29 +1,29 @@
1
- <script lang="ts">
2
- import { cn, type WithElementRef } from "../../../utils.js";
3
- import type { HTMLAttributes } from "svelte/elements";
4
-
5
- let {
6
- ref = $bindable(null),
7
- orientation = "horizontal",
8
- decorative = false,
9
- class: className,
10
- ...restProps
11
- }: WithElementRef<HTMLAttributes<HTMLDivElement>> & {
12
- orientation?: "horizontal" | "vertical";
13
- decorative?: boolean;
14
- } = $props();
15
- </script>
16
-
17
- <div
18
- bind:this={ref}
19
- data-slot="separator"
20
- data-orientation={orientation}
21
- role={decorative ? undefined : "separator"}
22
- aria-orientation={decorative ? undefined : orientation}
23
- class={cn(
24
- "shrink-0 bg-border",
25
- orientation === "horizontal" ? "h-px w-full" : "h-full w-px",
26
- className
27
- )}
28
- {...restProps}
1
+ <script lang="ts">
2
+ import { cn, type WithElementRef } from "../../../utils.js";
3
+ import type { HTMLAttributes } from "svelte/elements";
4
+
5
+ let {
6
+ ref = $bindable(null),
7
+ orientation = "horizontal",
8
+ decorative = false,
9
+ class: className,
10
+ ...restProps
11
+ }: WithElementRef<HTMLAttributes<HTMLDivElement>> & {
12
+ orientation?: "horizontal" | "vertical";
13
+ decorative?: boolean;
14
+ } = $props();
15
+ </script>
16
+
17
+ <div
18
+ bind:this={ref}
19
+ data-slot="separator"
20
+ data-orientation={orientation}
21
+ role={decorative ? undefined : "separator"}
22
+ aria-orientation={decorative ? undefined : orientation}
23
+ class={cn(
24
+ "shrink-0 bg-border",
25
+ orientation === "horizontal" ? "h-px w-full" : "h-full w-px",
26
+ className
27
+ )}
28
+ {...restProps}
29
29
  ></div>
@@ -1,70 +1,70 @@
1
- <script lang="ts">
2
- import * as Sidebar from "../index.js";
3
- import type { ComponentProps } from "svelte";
4
-
5
- import type { NavUserSidebarProps } from "./data/nav-user-sidebar";
6
- import type {
7
- NavMenuItem,
8
- NavMenuSidebarProps,
9
- } from "./data/nav-menu-sidebar";
10
- import type { Snippet } from "svelte";
11
- import NavMenuTopBarSidebar from "./ui/navbar/NavMenuTopBarSidebar.svelte";
12
- import NavMenuBottomSidebar from "./ui/navbar/NavMenuBottomSidebar.svelte";
13
- import NavMenuBarSidebar from "./ui/navbar/NavMenuBarSidebar.svelte";
14
- import NavUserSidebar from "./ui/navbar/NavUserSidebar.svelte";
15
- import { t } from "../../../../i18n";
16
-
17
- /**
18
- * Navigation sidebar with menus, user, and buttons.
19
- * @property {NavMenuSidebar[]} menusButtons - Footer buttons (e.g., logout)
20
- * @property {NavMenuItem[]} menus - Main navigation items
21
- * @property {NavUserSidebarItem} user - Logged-in user data
22
- * @property {Snippet} footer - Snippet customizado do footer
23
- * @property {Snippet} header - Snippet customizado do header
24
- */
25
- type Props = {
26
- menusButtons?: NavMenuSidebarProps[];
27
- menus: NavMenuItem[];
28
- user: NavUserSidebarProps;
29
- footer?: Snippet;
30
- header?: Snippet;
31
- };
32
-
33
- let {
34
- ref = $bindable(null),
35
- collapsible = "icon",
36
- menusButtons,
37
- menus,
38
- user,
39
- footer,
40
- header,
41
- ...restProps
42
- }: ComponentProps<typeof Sidebar.Root> & Props = $props();
43
- </script>
44
-
45
- <Sidebar.Root bind:ref {collapsible} {...restProps}>
46
- <Sidebar.Header>
47
- {#if header}
48
- {@render header?.()}
49
- {:else}
50
- <NavMenuTopBarSidebar
51
- content={{
52
- title: $t("label.panel"),
53
- subtitle: $t("label.administrative"),
54
- }}
55
- />
56
- {/if}
57
- </Sidebar.Header>
58
- <Sidebar.Content>
59
- <NavMenuBarSidebar items={menus} />
60
- </Sidebar.Content>
61
- <Sidebar.Footer>
62
- {#if footer}
63
- {@render footer?.()}
64
- {:else if menusButtons && menusButtons.length > 0}
65
- <NavMenuBottomSidebar items={menusButtons} class="mt-auto" />
66
- {/if}
67
- <NavUserSidebar {user} />
68
- </Sidebar.Footer>
69
- <Sidebar.Rail />
70
- </Sidebar.Root>
1
+ <script lang="ts">
2
+ import * as Sidebar from "../index.js";
3
+ import type { ComponentProps } from "svelte";
4
+
5
+ import type { NavUserSidebarProps } from "./data/nav-user-sidebar";
6
+ import type {
7
+ NavMenuItem,
8
+ NavMenuSidebarProps,
9
+ } from "./data/nav-menu-sidebar";
10
+ import type { Snippet } from "svelte";
11
+ import NavMenuTopBarSidebar from "./ui/navbar/NavMenuTopBarSidebar.svelte";
12
+ import NavMenuBottomSidebar from "./ui/navbar/NavMenuBottomSidebar.svelte";
13
+ import NavMenuBarSidebar from "./ui/navbar/NavMenuBarSidebar.svelte";
14
+ import NavUserSidebar from "./ui/navbar/NavUserSidebar.svelte";
15
+ import { t } from "../../../../i18n";
16
+
17
+ /**
18
+ * Navigation sidebar with menus, user, and buttons.
19
+ * @property {NavMenuSidebar[]} menusButtons - Footer buttons (e.g., logout)
20
+ * @property {NavMenuItem[]} menus - Main navigation items
21
+ * @property {NavUserSidebarItem} user - Logged-in user data
22
+ * @property {Snippet} footer - Snippet customizado do footer
23
+ * @property {Snippet} header - Snippet customizado do header
24
+ */
25
+ type Props = {
26
+ menusButtons?: NavMenuSidebarProps[];
27
+ menus: NavMenuItem[];
28
+ user: NavUserSidebarProps;
29
+ footer?: Snippet;
30
+ header?: Snippet;
31
+ };
32
+
33
+ let {
34
+ ref = $bindable(null),
35
+ collapsible = "icon",
36
+ menusButtons,
37
+ menus,
38
+ user,
39
+ footer,
40
+ header,
41
+ ...restProps
42
+ }: ComponentProps<typeof Sidebar.Root> & Props = $props();
43
+ </script>
44
+
45
+ <Sidebar.Root bind:ref {collapsible} {...restProps}>
46
+ <Sidebar.Header>
47
+ {#if header}
48
+ {@render header?.()}
49
+ {:else}
50
+ <NavMenuTopBarSidebar
51
+ content={{
52
+ title: $t("label.panel"),
53
+ subtitle: $t("label.administrative"),
54
+ }}
55
+ />
56
+ {/if}
57
+ </Sidebar.Header>
58
+ <Sidebar.Content>
59
+ <NavMenuBarSidebar items={menus} />
60
+ </Sidebar.Content>
61
+ <Sidebar.Footer>
62
+ {#if footer}
63
+ {@render footer?.()}
64
+ {:else if menusButtons && menusButtons.length > 0}
65
+ <NavMenuBottomSidebar items={menusButtons} class="mt-auto" />
66
+ {/if}
67
+ <NavUserSidebar {user} />
68
+ </Sidebar.Footer>
69
+ <Sidebar.Rail />
70
+ </Sidebar.Root>
@@ -1,97 +1,97 @@
1
- <script lang="ts">
2
- import * as Collapsible from "../../../../collapsible/index.js";
3
- import * as Sidebar from "../../../index.js";
4
- import { ChevronRightIcon } from "@hugeicons/core-free-icons";
5
- import { HugeiconsIcon } from "@hugeicons/svelte";
6
- import type {
7
- NavMenuAndSubmenuSidebarProps,
8
- NavMenuItem,
9
- NavMenuSidebarProps,
10
- } from "../../data/nav-menu-sidebar";
11
-
12
- let {
13
- items,
14
- }: {
15
- items: NavMenuItem[];
16
- } = $props();
17
-
18
- // Internal key for items without a group; never collides with a real name
19
- // because it's not a string accessible to whoever defines the items.
20
- const UNGROUPED = Symbol("ungrouped");
21
-
22
- function hasSubmenus(
23
- item: NavMenuSidebarProps | NavMenuAndSubmenuSidebarProps,
24
- ): item is NavMenuAndSubmenuSidebarProps {
25
- return "submenus" in item && Array.isArray(item.submenus);
26
- }
27
-
28
- let groupedItems = $derived(
29
- Map.groupBy(items, (item) => item.group?.name ?? UNGROUPED),
30
- );
31
- </script>
32
-
33
- {#snippet menuItem(item: NavMenuItem)}
34
- {#if hasSubmenus(item)}
35
- <Collapsible.Root open={item.isActive} class="group/collapsible">
36
- {#snippet child({ props })}
37
- <Sidebar.MenuItem {...props}>
38
- <Collapsible.Trigger>
39
- {#snippet child({ props })}
40
- <Sidebar.MenuButton {...props} tooltipContent={item.title}>
41
- {#if item.icon}
42
- <HugeiconsIcon icon={item.icon} />
43
- {/if}
44
- <span>{item.title}</span>
45
- <HugeiconsIcon
46
- icon={ChevronRightIcon}
47
- class="ms-auto transition-transform duration-200 group-data-[state=open]/collapsible:rotate-90"
48
- />
49
- </Sidebar.MenuButton>
50
- {/snippet}
51
- </Collapsible.Trigger>
52
- <Collapsible.Content>
53
- <Sidebar.MenuSub>
54
- {#each item.submenus ?? [] as subItem (subItem.title)}
55
- <Sidebar.MenuSubItem>
56
- <Sidebar.MenuSubButton>
57
- {#snippet child({ props })}
58
- <a href={subItem.url} {...props}>
59
- <span>{subItem.title}</span>
60
- </a>
61
- {/snippet}
62
- </Sidebar.MenuSubButton>
63
- </Sidebar.MenuSubItem>
64
- {/each}
65
- </Sidebar.MenuSub>
66
- </Collapsible.Content>
67
- </Sidebar.MenuItem>
68
- {/snippet}
69
- </Collapsible.Root>
70
- {:else}
71
- <Sidebar.MenuItem>
72
- <Sidebar.MenuButton>
73
- {#snippet child({ props })}
74
- <a href={item.url} {...props}>
75
- {#if item.icon}
76
- <HugeiconsIcon icon={item.icon} />
77
- {/if}
78
- <span>{item.title}</span>
79
- </a>
80
- {/snippet}
81
- </Sidebar.MenuButton>
82
- </Sidebar.MenuItem>
83
- {/if}
84
- {/snippet}
85
-
86
- {#each groupedItems as [groupLabel, groupItems] (typeof groupLabel === "string" ? groupLabel : "ungrouped")}
87
- <Sidebar.Group>
88
- {#if typeof groupLabel === "string"}
89
- <Sidebar.GroupLabel>{groupLabel}</Sidebar.GroupLabel>
90
- {/if}
91
- <Sidebar.Menu>
92
- {#each groupItems as item (item.title)}
93
- {@render menuItem(item)}
94
- {/each}
95
- </Sidebar.Menu>
96
- </Sidebar.Group>
97
- {/each}
1
+ <script lang="ts">
2
+ import * as Collapsible from "../../../../collapsible/index.js";
3
+ import * as Sidebar from "../../../index.js";
4
+ import { ChevronRightIcon } from "@hugeicons/core-free-icons";
5
+ import { HugeiconsIcon } from "@hugeicons/svelte";
6
+ import type {
7
+ NavMenuAndSubmenuSidebarProps,
8
+ NavMenuItem,
9
+ NavMenuSidebarProps,
10
+ } from "../../data/nav-menu-sidebar";
11
+
12
+ let {
13
+ items,
14
+ }: {
15
+ items: NavMenuItem[];
16
+ } = $props();
17
+
18
+ // Internal key for items without a group; never collides with a real name
19
+ // because it's not a string accessible to whoever defines the items.
20
+ const UNGROUPED = Symbol("ungrouped");
21
+
22
+ function hasSubmenus(
23
+ item: NavMenuSidebarProps | NavMenuAndSubmenuSidebarProps,
24
+ ): item is NavMenuAndSubmenuSidebarProps {
25
+ return "submenus" in item && Array.isArray(item.submenus);
26
+ }
27
+
28
+ let groupedItems = $derived(
29
+ Map.groupBy(items, (item) => item.group?.name ?? UNGROUPED),
30
+ );
31
+ </script>
32
+
33
+ {#snippet menuItem(item: NavMenuItem)}
34
+ {#if hasSubmenus(item)}
35
+ <Collapsible.Root open={item.isActive} class="group/collapsible">
36
+ {#snippet child({ props })}
37
+ <Sidebar.MenuItem {...props}>
38
+ <Collapsible.Trigger>
39
+ {#snippet child({ props })}
40
+ <Sidebar.MenuButton {...props} tooltipContent={item.title}>
41
+ {#if item.icon}
42
+ <HugeiconsIcon icon={item.icon} />
43
+ {/if}
44
+ <span>{item.title}</span>
45
+ <HugeiconsIcon
46
+ icon={ChevronRightIcon}
47
+ class="ms-auto transition-transform duration-200 group-data-[state=open]/collapsible:rotate-90"
48
+ />
49
+ </Sidebar.MenuButton>
50
+ {/snippet}
51
+ </Collapsible.Trigger>
52
+ <Collapsible.Content>
53
+ <Sidebar.MenuSub>
54
+ {#each item.submenus ?? [] as subItem (subItem.title)}
55
+ <Sidebar.MenuSubItem>
56
+ <Sidebar.MenuSubButton>
57
+ {#snippet child({ props })}
58
+ <a href={subItem.url} {...props}>
59
+ <span>{subItem.title}</span>
60
+ </a>
61
+ {/snippet}
62
+ </Sidebar.MenuSubButton>
63
+ </Sidebar.MenuSubItem>
64
+ {/each}
65
+ </Sidebar.MenuSub>
66
+ </Collapsible.Content>
67
+ </Sidebar.MenuItem>
68
+ {/snippet}
69
+ </Collapsible.Root>
70
+ {:else}
71
+ <Sidebar.MenuItem>
72
+ <Sidebar.MenuButton>
73
+ {#snippet child({ props })}
74
+ <a href={item.url} {...props}>
75
+ {#if item.icon}
76
+ <HugeiconsIcon icon={item.icon} />
77
+ {/if}
78
+ <span>{item.title}</span>
79
+ </a>
80
+ {/snippet}
81
+ </Sidebar.MenuButton>
82
+ </Sidebar.MenuItem>
83
+ {/if}
84
+ {/snippet}
85
+
86
+ {#each groupedItems as [groupLabel, groupItems] (typeof groupLabel === "string" ? groupLabel : "ungrouped")}
87
+ <Sidebar.Group>
88
+ {#if typeof groupLabel === "string"}
89
+ <Sidebar.GroupLabel>{groupLabel}</Sidebar.GroupLabel>
90
+ {/if}
91
+ <Sidebar.Menu>
92
+ {#each groupItems as item (item.title)}
93
+ {@render menuItem(item)}
94
+ {/each}
95
+ </Sidebar.Menu>
96
+ </Sidebar.Group>
97
+ {/each}
@@ -1,33 +1,33 @@
1
- <script lang="ts">
2
- import * as Sidebar from "../../../index.js";
3
- import type { WithoutChildren } from "../../../../../../utils.js";
4
- import type { ComponentProps } from "svelte";
5
- import type { NavMenuSidebarProps } from "../../data/nav-menu-sidebar";
6
- import { HugeiconsIcon } from "@hugeicons/svelte";
7
-
8
- let {
9
- items,
10
- ...restProps
11
- }: { items?: NavMenuSidebarProps[] } & WithoutChildren<
12
- ComponentProps<typeof Sidebar.Group>
13
- > = $props();
14
- </script>
15
-
16
- <Sidebar.Group {...restProps}>
17
- <Sidebar.GroupContent>
18
- <Sidebar.Menu>
19
- {#each items as item (item.title)}
20
- <Sidebar.MenuItem>
21
- <Sidebar.MenuButton>
22
- {#snippet child({ props })}
23
- <a href={item.url} {...props}>
24
- <HugeiconsIcon icon={item.icon} size={16} />
25
- <span>{item.title}</span>
26
- </a>
27
- {/snippet}
28
- </Sidebar.MenuButton>
29
- </Sidebar.MenuItem>
30
- {/each}
31
- </Sidebar.Menu>
32
- </Sidebar.GroupContent>
33
- </Sidebar.Group>
1
+ <script lang="ts">
2
+ import * as Sidebar from "../../../index.js";
3
+ import type { WithoutChildren } from "../../../../../../utils.js";
4
+ import type { ComponentProps } from "svelte";
5
+ import type { NavMenuSidebarProps } from "../../data/nav-menu-sidebar";
6
+ import { HugeiconsIcon } from "@hugeicons/svelte";
7
+
8
+ let {
9
+ items,
10
+ ...restProps
11
+ }: { items?: NavMenuSidebarProps[] } & WithoutChildren<
12
+ ComponentProps<typeof Sidebar.Group>
13
+ > = $props();
14
+ </script>
15
+
16
+ <Sidebar.Group {...restProps}>
17
+ <Sidebar.GroupContent>
18
+ <Sidebar.Menu>
19
+ {#each items as item (item.title)}
20
+ <Sidebar.MenuItem>
21
+ <Sidebar.MenuButton>
22
+ {#snippet child({ props })}
23
+ <a href={item.url} {...props}>
24
+ <HugeiconsIcon icon={item.icon} size={16} />
25
+ <span>{item.title}</span>
26
+ </a>
27
+ {/snippet}
28
+ </Sidebar.MenuButton>
29
+ </Sidebar.MenuItem>
30
+ {/each}
31
+ </Sidebar.Menu>
32
+ </Sidebar.GroupContent>
33
+ </Sidebar.Group>