negodesign 0.0.78 → 0.0.79

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (274) hide show
  1. package/README.md +133 -133
  2. package/dist/components/NegoDesign.svelte +21 -21
  3. package/dist/components/pages/admin/01/ui/AdminContent.svelte +14 -14
  4. package/dist/components/pages/admin/01/ui/AdminPanel.svelte +46 -46
  5. package/dist/components/pages/product-details/shared/ProductDetailFilesVertical.svelte +103 -103
  6. package/dist/components/pages/profile-user/shared/ProfileUserAddress.svelte +83 -83
  7. package/dist/components/pages/profile-user/shared/ProfileUserTabs.svelte +80 -80
  8. package/dist/components/pages/security/auth/PageAuth01.svelte +21 -24
  9. package/dist/components/pages/security/auth/PageAuth02.svelte +11 -16
  10. package/dist/components/pages/security/auth/PageAuth03.svelte +11 -16
  11. package/dist/components/pages/security/login/01/ui/FormLogin.svelte +7 -5
  12. package/dist/components/pages/security/login/01/ui/FormLogin.svelte.d.ts +2 -0
  13. package/dist/components/pages/security/login/01/ui/FormLoginEmailPassword.svelte +4 -2
  14. package/dist/components/pages/security/login/01/ui/FormLoginEmailPassword.svelte.d.ts +2 -0
  15. package/dist/components/pages/security/login/01/ui/FormLoginPhonePassword.svelte +4 -2
  16. package/dist/components/pages/security/login/01/ui/FormLoginPhonePassword.svelte.d.ts +2 -0
  17. package/dist/components/pages/security/login/01/ui/FormLoginUsernamePassword.svelte +4 -2
  18. package/dist/components/pages/security/login/01/ui/FormLoginUsernamePassword.svelte.d.ts +2 -0
  19. package/dist/components/pages/security/login/01/ui/{LoginCard.svelte → LoginCard01.svelte} +132 -109
  20. package/dist/components/pages/security/login/01/ui/{LoginCard.svelte.d.ts → LoginCard01.svelte.d.ts} +3 -3
  21. package/dist/components/pages/security/login/01/ui/PageLogin01.svelte +2 -2
  22. package/dist/components/pages/security/login/02/ui/FormLogin02.svelte +7 -5
  23. package/dist/components/pages/security/login/02/ui/FormLogin02.svelte.d.ts +2 -0
  24. package/dist/components/pages/security/login/02/ui/FormLoginEmailPassword02.svelte +4 -2
  25. package/dist/components/pages/security/login/02/ui/FormLoginEmailPassword02.svelte.d.ts +2 -0
  26. package/dist/components/pages/security/login/02/ui/FormLoginPhonePassword02.svelte +4 -2
  27. package/dist/components/pages/security/login/02/ui/FormLoginPhonePassword02.svelte.d.ts +2 -0
  28. package/dist/components/pages/security/login/02/ui/FormLoginUsernamePassword02.svelte +4 -2
  29. package/dist/components/pages/security/login/02/ui/FormLoginUsernamePassword02.svelte.d.ts +2 -0
  30. package/dist/components/pages/security/login/03/ui/FormLogin03.svelte +8 -4
  31. package/dist/components/pages/security/login/03/ui/FormLogin03.svelte.d.ts +2 -0
  32. package/dist/components/pages/security/login/03/ui/FormLoginEmailPassword03.svelte +4 -2
  33. package/dist/components/pages/security/login/03/ui/FormLoginEmailPassword03.svelte.d.ts +2 -0
  34. package/dist/components/pages/security/login/03/ui/FormLoginPhonePassword03.svelte +4 -2
  35. package/dist/components/pages/security/login/03/ui/FormLoginPhonePassword03.svelte.d.ts +2 -0
  36. package/dist/components/pages/security/login/03/ui/FormLoginUsernamePassword03.svelte +4 -2
  37. package/dist/components/pages/security/login/03/ui/FormLoginUsernamePassword03.svelte.d.ts +2 -0
  38. package/dist/components/pages/security/login/PageLogin.svelte +30 -30
  39. package/dist/components/pages/security/register/01/ui/PageRegister01.svelte +21 -9
  40. package/dist/components/pages/security/register/01/ui/PageRegister01.svelte.d.ts +1 -0
  41. package/dist/components/pages/security/register/01/ui/{RegisterCard.svelte → RegisterCard01.svelte} +26 -22
  42. package/dist/components/pages/security/register/01/ui/{RegisterCard.svelte.d.ts → RegisterCard01.svelte.d.ts} +3 -3
  43. package/dist/components/pages/security/register/FormRegister.svelte +40 -14
  44. package/dist/components/pages/security/register/FormRegister.svelte.d.ts +3 -0
  45. package/dist/components/ui/avatar/avatar-fallback.svelte +29 -29
  46. package/dist/components/ui/avatar/avatar-image.svelte +38 -38
  47. package/dist/components/ui/avatar/avatar.svelte +39 -39
  48. package/dist/components/ui/badge/badge.svelte +46 -46
  49. package/dist/components/ui/banner/AdCardBanner.svelte +74 -74
  50. package/dist/components/ui/banner/CtaCardBanner.svelte +118 -118
  51. package/dist/components/ui/banner/CtaCardImageBanner.svelte +94 -94
  52. package/dist/components/ui/breadcrumb/core/breadcrumb-list.svelte +31 -31
  53. package/dist/components/ui/button/ButtonBack.svelte +18 -18
  54. package/dist/components/ui/button/ButtonLogin.svelte +15 -15
  55. package/dist/components/ui/button/ButtonLoginWith.svelte +57 -57
  56. package/dist/components/ui/button/ButtonSend.svelte +15 -15
  57. package/dist/components/ui/button/button.svelte +85 -85
  58. package/dist/components/ui/card/core/highlight/01/CardHighlight01.svelte +103 -103
  59. package/dist/components/ui/card/core/highlight/02/CardHighlight02.svelte +99 -99
  60. package/dist/components/ui/card/core/highlight/CardHighlight.svelte +22 -22
  61. package/dist/components/ui/card/core/media/01/CardMedia01.svelte +133 -133
  62. package/dist/components/ui/card/core/media/02/CardMedia02.svelte +127 -127
  63. package/dist/components/ui/card/core/media/CardMedia.svelte +18 -18
  64. package/dist/components/ui/card/core/product/01/CardProduct01.svelte +136 -136
  65. package/dist/components/ui/card/core/product/02/CardProduct02.svelte +124 -124
  66. package/dist/components/ui/card/core/product/CardProduct.svelte +22 -22
  67. package/dist/components/ui/card/core/profile/01/CardProfile01.svelte +134 -134
  68. package/dist/components/ui/card/core/profile/02/CardProfile02.svelte +132 -132
  69. package/dist/components/ui/card/core/profile/CardProfile.svelte +18 -18
  70. package/dist/components/ui/card/core/promotion/CardPromotion.svelte +139 -139
  71. package/dist/components/ui/card/core/promotion/CardPromotionPrice.svelte +32 -32
  72. package/dist/components/ui/card/core/shared/CardButton.svelte +42 -42
  73. package/dist/components/ui/card/core/shared/CardCart.svelte +36 -36
  74. package/dist/components/ui/card/core/shared/CardDescription.svelte +41 -41
  75. package/dist/components/ui/card/core/shared/CardFavorite.svelte +33 -33
  76. package/dist/components/ui/card/core/shared/CardLogo.svelte +19 -19
  77. package/dist/components/ui/card/core/shared/CardPhoneOrWhatsapp.svelte +45 -45
  78. package/dist/components/ui/card/core/shared/CardStarRating.svelte +24 -24
  79. package/dist/components/ui/card/core/shared/CardTags.svelte +95 -95
  80. package/dist/components/ui/card/core/shared/CardThumbnailVideo.svelte +232 -232
  81. package/dist/components/ui/card/core/shared/CardTitlePrice.svelte +24 -24
  82. package/dist/components/ui/card/core/shared/TruncatableText.svelte +49 -49
  83. package/dist/components/ui/carousel/carousel-content.svelte +56 -56
  84. package/dist/components/ui/carousel/carousel-item.svelte +29 -29
  85. package/dist/components/ui/carousel/carousel-next.svelte +40 -40
  86. package/dist/components/ui/carousel/carousel-previous.svelte +40 -40
  87. package/dist/components/ui/carousel/carousel.svelte +225 -225
  88. package/dist/components/ui/carousel/core/badge/ui/CarouselBadge.svelte +108 -108
  89. package/dist/components/ui/carousel/core/grid/shared/ui/CarouselGridSlot.svelte +38 -38
  90. package/dist/components/ui/carousel/core/hero/ui/CarouselHero.svelte +181 -181
  91. package/dist/components/ui/carousel/core/highlights/ui/CarouselHighlights.svelte +67 -67
  92. package/dist/components/ui/carousel/core/product/ui/CarouselProduct.svelte +57 -57
  93. package/dist/components/ui/carousel/core/promotion/ui/CarouselPromotion.svelte +67 -67
  94. package/dist/components/ui/carousel/core/shared/ui/CarouselHeader.svelte +59 -59
  95. package/dist/components/ui/checkbox/checkbox.svelte +96 -96
  96. package/dist/components/ui/collapsible/collapsible-content.svelte +30 -30
  97. package/dist/components/ui/collapsible/collapsible-trigger.svelte +51 -51
  98. package/dist/components/ui/collapsible/collapsible.svelte +66 -66
  99. package/dist/components/ui/data-table/flex-render.svelte +40 -40
  100. package/dist/components/ui/datatable/ui/DataTableActions.svelte +28 -28
  101. package/dist/components/ui/datatable/ui/DataTableCheckbox.svelte +22 -22
  102. package/dist/components/ui/datatable/ui/DataTableContent.svelte +59 -59
  103. package/dist/components/ui/datatable/ui/DataTableCore.svelte +148 -148
  104. package/dist/components/ui/datatable/ui/DataTableDragHandle.svelte +8 -8
  105. package/dist/components/ui/datatable/ui/DataTableListFilter.svelte +60 -60
  106. package/dist/components/ui/datatable/ui/DataTableListPagination.svelte +35 -35
  107. package/dist/components/ui/drawer/drawer-close.svelte +41 -41
  108. package/dist/components/ui/drawer/drawer-content.svelte +81 -81
  109. package/dist/components/ui/drawer/drawer-description.svelte +19 -19
  110. package/dist/components/ui/drawer/drawer-footer.svelte +20 -20
  111. package/dist/components/ui/drawer/drawer-header.svelte +20 -20
  112. package/dist/components/ui/drawer/drawer-nested.svelte +34 -34
  113. package/dist/components/ui/drawer/drawer-overlay.svelte +25 -25
  114. package/dist/components/ui/drawer/drawer-portal.svelte +19 -19
  115. package/dist/components/ui/drawer/drawer-title.svelte +19 -19
  116. package/dist/components/ui/drawer/drawer-trigger.svelte +42 -42
  117. package/dist/components/ui/drawer/drawer.svelte +74 -74
  118. package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-group.svelte +25 -25
  119. package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte +69 -69
  120. package/dist/components/ui/dropdown-menu/dropdown-menu-content.svelte +106 -106
  121. package/dist/components/ui/dropdown-menu/dropdown-menu-group-heading.svelte +27 -27
  122. package/dist/components/ui/dropdown-menu/dropdown-menu-group.svelte +21 -21
  123. package/dist/components/ui/dropdown-menu/dropdown-menu-item.svelte +60 -60
  124. package/dist/components/ui/dropdown-menu/dropdown-menu-label.svelte +27 -27
  125. package/dist/components/ui/dropdown-menu/dropdown-menu-portal.svelte +6 -6
  126. package/dist/components/ui/dropdown-menu/dropdown-menu-radio-group.svelte +43 -43
  127. package/dist/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte +70 -70
  128. package/dist/components/ui/dropdown-menu/dropdown-menu-separator.svelte +20 -20
  129. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-content.svelte +33 -33
  130. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte +57 -57
  131. package/dist/components/ui/dropdown-menu/dropdown-menu-sub.svelte +76 -76
  132. package/dist/components/ui/dropdown-menu/dropdown-menu-trigger.svelte +68 -68
  133. package/dist/components/ui/dropdown-menu/dropdown-menu.svelte +53 -53
  134. package/dist/components/ui/empty/empty-content.svelte +19 -19
  135. package/dist/components/ui/empty/empty-description.svelte +19 -19
  136. package/dist/components/ui/empty/empty-header.svelte +19 -19
  137. package/dist/components/ui/empty/empty-media.svelte +41 -41
  138. package/dist/components/ui/empty/empty-title.svelte +19 -19
  139. package/dist/components/ui/empty/empty.svelte +19 -19
  140. package/dist/components/ui/footer/ui/Footer.svelte +18 -18
  141. package/dist/components/ui/form/data/InputIconDefault.svelte.js +2 -1
  142. package/dist/components/ui/form/data/InputLabel.svelte.d.ts +3 -0
  143. package/dist/components/ui/form/ui/calendar/Calendar.svelte +194 -0
  144. package/dist/components/ui/form/ui/calendar/Calendar.svelte.d.ts +15 -0
  145. package/dist/components/ui/form/ui/calendar/CalendarCard.svelte +90 -0
  146. package/dist/components/ui/form/ui/calendar/CalendarCard.svelte.d.ts +20 -0
  147. package/dist/components/ui/form/ui/calendar/DaysGrid.svelte +76 -0
  148. package/dist/components/ui/form/ui/calendar/DaysGrid.svelte.d.ts +17 -0
  149. package/dist/components/ui/form/ui/calendar/MonthSelect.svelte +50 -0
  150. package/dist/components/ui/form/ui/calendar/MonthSelect.svelte.d.ts +10 -0
  151. package/dist/components/ui/form/ui/calendar/YearSelect.svelte +117 -0
  152. package/dist/components/ui/form/ui/calendar/YearSelect.svelte.d.ts +15 -0
  153. package/dist/components/ui/form/ui/calendar/index.d.ts +5 -0
  154. package/dist/components/ui/form/ui/calendar/index.js +5 -0
  155. package/dist/components/ui/form/ui/calendar/utils.d.ts +26 -0
  156. package/dist/components/ui/form/ui/calendar/utils.js +89 -0
  157. package/dist/components/ui/form/ui/input-base.svelte +83 -81
  158. package/dist/components/ui/form/ui/input-calendar-interval.svelte +179 -0
  159. package/dist/components/ui/form/ui/input-calendar-interval.svelte.d.ts +14 -0
  160. package/dist/components/ui/form/ui/input-calendar.svelte +110 -0
  161. package/dist/components/ui/form/ui/input-calendar.svelte.d.ts +9 -0
  162. package/dist/components/ui/form/ui/input-email-or-phone.svelte +23 -23
  163. package/dist/components/ui/form/ui/input-email.svelte +23 -23
  164. package/dist/components/ui/form/ui/input-password-confirm.svelte +23 -23
  165. package/dist/components/ui/form/ui/input-password.svelte +23 -23
  166. package/dist/components/ui/form/ui/input-phone.svelte +37 -33
  167. package/dist/components/ui/form/ui/input-select.svelte +210 -158
  168. package/dist/components/ui/form/ui/input-select.svelte.d.ts +5 -9
  169. package/dist/components/ui/form/ui/input-username.svelte +22 -22
  170. package/dist/components/ui/grid/core/ui/01/Grid01.svelte +30 -30
  171. package/dist/components/ui/grid/core/ui/02/Grid02.svelte +30 -30
  172. package/dist/components/ui/grid/core/ui/ItemsPanel.svelte +26 -26
  173. package/dist/components/ui/grid/core/ui/ItemsPanelCarousel.svelte +37 -37
  174. package/dist/components/ui/grid/core/ui/ItemsPanelGrid.svelte +43 -43
  175. package/dist/components/ui/grid/core/ui/ItemsSimpleGrid.svelte +45 -45
  176. package/dist/components/ui/grid/core/ui/shared/DescriptionGrid.svelte +23 -23
  177. package/dist/components/ui/grid/core/ui/shared/IconRenderGrid.svelte +23 -23
  178. package/dist/components/ui/grid/core/ui/shared/TitleGrid.svelte +19 -19
  179. package/dist/components/ui/hero/SimpleHero.svelte +65 -65
  180. package/dist/components/ui/input-otp/input-otp-group.svelte +22 -22
  181. package/dist/components/ui/input-otp/input-otp-separator.svelte +27 -27
  182. package/dist/components/ui/input-otp/input-otp-slot.svelte +63 -63
  183. package/dist/components/ui/input-otp/input-otp.svelte +181 -181
  184. package/dist/components/ui/label/core/LabelOr.svelte +25 -25
  185. package/dist/components/ui/label/label.svelte +19 -19
  186. package/dist/components/ui/language-switcher/language-switcher.svelte +48 -48
  187. package/dist/components/ui/light-switch/light-switch.svelte +48 -48
  188. package/dist/components/ui/link/link-forget-password.svelte +12 -12
  189. package/dist/components/ui/link/link-privacy-polity.svelte +12 -12
  190. package/dist/components/ui/link/link-terms-of-service.svelte +12 -12
  191. package/dist/components/ui/modal/core/ui/ModalCore.svelte +132 -132
  192. package/dist/components/ui/modal/grid/ui/02/ModalGridSelection02.svelte +146 -146
  193. package/dist/components/ui/modal/share/ui/ModalShareSelection.svelte +156 -156
  194. package/dist/components/ui/nav/ui/ComplexMenu.svelte +51 -51
  195. package/dist/components/ui/nav/ui/Menu.svelte +72 -72
  196. package/dist/components/ui/nav/ui/SimpleMenu.svelte +14 -14
  197. package/dist/components/ui/nav/ui/mobile/ComplexMenuMobile.svelte +125 -125
  198. package/dist/components/ui/nav/ui/mobile/MenuMobile.svelte +54 -54
  199. package/dist/components/ui/nav/ui/shared/MenuButton.svelte +51 -51
  200. package/dist/components/ui/nav/ui/shared/MenuLinks.svelte +40 -40
  201. package/dist/components/ui/nav/ui/shared/MenuListItem.svelte +44 -44
  202. package/dist/components/ui/nav/ui/shared/MenuLogo.svelte +13 -13
  203. package/dist/components/ui/nav/ui/shared/dropdown/DropdownNavigationMenuItemGrid.svelte +30 -30
  204. package/dist/components/ui/nav/ui/shared/navigation/NavDropdown.svelte +87 -87
  205. package/dist/components/ui/nav/ui/shared/navigation/NavigationMenuItem.svelte +17 -17
  206. package/dist/components/ui/nav/ui/shared/navigation/NavigationMenuItemCard.svelte +53 -53
  207. package/dist/components/ui/nav/ui/shared/navigation/NavigationMenuItemGrid.svelte +36 -36
  208. package/dist/components/ui/nav/ui/shared/navigation/NavigationMenuItemList.svelte +24 -24
  209. package/dist/components/ui/nav/ui/shared/navigation/NavigationMenuItems.svelte +21 -21
  210. package/dist/components/ui/panel/CarouselSlot.svelte +57 -57
  211. package/dist/components/ui/panel/LeftHero.svelte +114 -114
  212. package/dist/components/ui/panel/NotFoundEmpty.svelte +66 -66
  213. package/dist/components/ui/phone-input/country-selector.svelte +87 -87
  214. package/dist/components/ui/phone-input/country-selector.svelte.d.ts +2 -2
  215. package/dist/components/ui/phone-input/flag.svelte +11 -11
  216. package/dist/components/ui/phone-input/phone-input.svelte +163 -148
  217. package/dist/components/ui/phone-input/phone-input.svelte.d.ts +2 -2
  218. package/dist/components/ui/popover/popover-close.svelte +25 -25
  219. package/dist/components/ui/popover/popover-content.svelte +92 -92
  220. package/dist/components/ui/popover/popover-portal.svelte +6 -6
  221. package/dist/components/ui/popover/popover-trigger.svelte +68 -68
  222. package/dist/components/ui/popover/popover.svelte +53 -53
  223. package/dist/components/ui/search/SearchInput.svelte +32 -32
  224. package/dist/components/ui/search/shared/SearchInputCore.svelte +66 -66
  225. package/dist/components/ui/separator/separator.svelte +28 -28
  226. package/dist/components/ui/sidebar/core/MenuBarSidebar.svelte +70 -70
  227. package/dist/components/ui/sidebar/core/ui/navbar/NavMenuBarSidebar.svelte +97 -97
  228. package/dist/components/ui/sidebar/core/ui/navbar/NavMenuBottomSidebar.svelte +33 -33
  229. package/dist/components/ui/sidebar/core/ui/navbar/NavMenuTopBarSidebar.svelte +101 -101
  230. package/dist/components/ui/sidebar/core/ui/navbar/nav-menu-header-sidebar.svelte +77 -77
  231. package/dist/components/ui/sidebar/sidebar-content.svelte +24 -24
  232. package/dist/components/ui/sidebar/sidebar-footer.svelte +21 -21
  233. package/dist/components/ui/sidebar/sidebar-group-content.svelte +21 -21
  234. package/dist/components/ui/sidebar/sidebar-menu-action.svelte +38 -38
  235. package/dist/components/ui/sidebar/sidebar-menu-button.svelte +70 -70
  236. package/dist/components/ui/sidebar/sidebar-menu-sub-button.svelte +39 -39
  237. package/dist/components/ui/sidebar/sidebar-provider.svelte +62 -62
  238. package/dist/components/ui/sidebar/sidebar-rail.svelte +36 -36
  239. package/dist/components/ui/sidebar/sidebar-separator.svelte +21 -21
  240. package/dist/components/ui/sidebar/sidebar-trigger.svelte +36 -36
  241. package/dist/components/ui/sidebar/sidebar.svelte +118 -118
  242. package/dist/components/ui/skeleton/skeleton.svelte +19 -19
  243. package/dist/components/ui/star-rating/star-rating-star.svelte +66 -66
  244. package/dist/components/ui/star-rating/star-rating.svelte +149 -149
  245. package/dist/components/ui/table/table-body.svelte +15 -15
  246. package/dist/components/ui/table/table-caption.svelte +20 -20
  247. package/dist/components/ui/table/table-cell.svelte +15 -15
  248. package/dist/components/ui/table/table-footer.svelte +20 -20
  249. package/dist/components/ui/table/table-head.svelte +15 -15
  250. package/dist/components/ui/table/table-header.svelte +20 -20
  251. package/dist/components/ui/table/table-row.svelte +15 -15
  252. package/dist/components/ui/table/table.svelte +17 -17
  253. package/dist/components/ui/tabs/ui/tab-underline.svelte +43 -43
  254. package/dist/components/ui/underline-tabs/underline-tabs-content.svelte +33 -33
  255. package/dist/components/ui/underline-tabs/underline-tabs-list.svelte +40 -40
  256. package/dist/components/ui/underline-tabs/underline-tabs-trigger.svelte +91 -91
  257. package/dist/components/ui/underline-tabs/underline-tabs.svelte +61 -61
  258. package/dist/docs/ApiTable.svelte +42 -42
  259. package/dist/docs/CodeBlock.svelte +26 -26
  260. package/dist/docs/DocsHeader.svelte +25 -25
  261. package/dist/docs/DocsSidebar.svelte +108 -156
  262. package/dist/docs/components.js +638 -563
  263. package/dist/globals.css +68 -10
  264. package/dist/i18n/langs/en.d.ts +7 -0
  265. package/dist/i18n/langs/en.js +7 -0
  266. package/dist/i18n/langs/pt.d.ts +7 -0
  267. package/dist/i18n/langs/pt.js +7 -0
  268. package/dist/i18n/translations.d.ts +14 -0
  269. package/dist/index.d.ts +23 -0
  270. package/dist/index.js +23 -0
  271. package/dist/styles/globals.css +283 -283
  272. package/package.json +81 -81
  273. package/dist/components/pages/security/login/01/ui/FormRegister.svelte +0 -28
  274. package/dist/components/pages/security/login/01/ui/FormRegister.svelte.d.ts +0 -3
@@ -16,26 +16,26 @@ export const categories = [
16
16
  "Login / Security",
17
17
  "Full Pages",
18
18
  ];
19
- const navButtonExample = `import { Menu } from "negodesign"
20
-
21
- <Menu
22
- isBorder
23
- isLightSwitch
24
- isLanguageSwitcher
25
- logo={{ label: "Negoturismo" }}
26
- navMenuButton={{
27
- textButtonLogin: "Sign in",
28
- textButtonRegister: "Register",
29
- onclickButtonLogin: () => {},
30
- onclickButtonRegister: () => {},
31
- buttonClass: "bg-primary text-white",
32
- }}
33
- navMenu={{
34
- links: [
35
- { label: "Home", url: "/", icon: Home01Icon },
36
- { label: "Accommodation", url: "/hospedagem", icon: Hotel01Icon },
37
- ],
38
- }}
19
+ const navButtonExample = `import { Menu } from "negodesign"
20
+
21
+ <Menu
22
+ isBorder
23
+ isLightSwitch
24
+ isLanguageSwitcher
25
+ logo={{ label: "Negoturismo" }}
26
+ navMenuButton={{
27
+ textButtonLogin: "Sign in",
28
+ textButtonRegister: "Register",
29
+ onclickButtonLogin: () => {},
30
+ onclickButtonRegister: () => {},
31
+ buttonClass: "bg-primary text-white",
32
+ }}
33
+ navMenu={{
34
+ links: [
35
+ { label: "Home", url: "/", icon: Home01Icon },
36
+ { label: "Accommodation", url: "/hospedagem", icon: Hotel01Icon },
37
+ ],
38
+ }}
39
39
  />`;
40
40
  export const components = [
41
41
  {
@@ -65,12 +65,12 @@ export const components = [
65
65
  examples: [
66
66
  {
67
67
  title: "Search Field",
68
- code: `import { SearchInput } from "negodesign"
69
-
70
- <SearchInput
71
- variant={1}
72
- placeholder="Search..."
73
- onSubmit={(q) => console.log(q)}
68
+ code: `import { SearchInput } from "negodesign"
69
+
70
+ <SearchInput
71
+ variant={1}
72
+ placeholder="Search..."
73
+ onSubmit={(q) => console.log(q)}
74
74
  />`,
75
75
  },
76
76
  ],
@@ -93,14 +93,14 @@ export const components = [
93
93
  examples: [
94
94
  {
95
95
  title: "Simple Hero",
96
- code: `import { SimpleHero } from "negodesign"
97
-
98
- <SimpleHero
99
- title="Find your ideal stay"
100
- subTitle="Welcome"
101
- description="Verified hotels, guest houses and apartments."
102
- image="/images/hero.jpg"
103
- buttons={[{ label: "Explore", variant: "default" }]}
96
+ code: `import { SimpleHero } from "negodesign"
97
+
98
+ <SimpleHero
99
+ title="Find your ideal stay"
100
+ subTitle="Welcome"
101
+ description="Verified hotels, guest houses and apartments."
102
+ image="/images/hero.jpg"
103
+ buttons={[{ label: "Explore", variant: "default" }]}
104
104
  />`,
105
105
  href: "/hero",
106
106
  },
@@ -127,24 +127,24 @@ export const components = [
127
127
  examples: [
128
128
  {
129
129
  title: "Carousel Hero",
130
- code: `import { CarouselHero } from "negodesign"
131
-
132
- <CarouselHero
133
- titleClass="md:text-2xl lg:text-4xl"
134
- descriptionClass="text-xs md:text-lg"
135
- simpleMenu={{
136
- logo: { url: "/", label: "Negoturismo", className: "text-white" },
137
- links: [{ label: "Accommodation", url: "#", icon: Hotel01Icon }],
138
- isLanguageSwitcher: false,
139
- isLightSwitch: false,
140
- }}
141
- items={[
142
- {
143
- title: "Find your ideal stay",
144
- description: "Verified hotels, guest houses and apartments.",
145
- image: "https://images.unsplash.com/photo-1566073771259",
146
- },
147
- ]}
130
+ code: `import { CarouselHero } from "negodesign"
131
+
132
+ <CarouselHero
133
+ titleClass="md:text-2xl lg:text-4xl"
134
+ descriptionClass="text-xs md:text-lg"
135
+ simpleMenu={{
136
+ logo: { url: "/", label: "Negoturismo", className: "text-white" },
137
+ links: [{ label: "Accommodation", url: "#", icon: Hotel01Icon }],
138
+ isLanguageSwitcher: false,
139
+ isLightSwitch: false,
140
+ }}
141
+ items={[
142
+ {
143
+ title: "Find your ideal stay",
144
+ description: "Verified hotels, guest houses and apartments.",
145
+ image: "https://images.unsplash.com/photo-1566073771259",
146
+ },
147
+ ]}
148
148
  />`,
149
149
  href: "/hero/carousel",
150
150
  },
@@ -174,14 +174,14 @@ export const components = [
174
174
  examples: [
175
175
  {
176
176
  title: "CTA Image Banner",
177
- code: `import { CtaCardImageBanner } from "negodesign"
178
-
179
- <CtaCardImageBanner
180
- title="Let's get in touch"
181
- description="Talk to us and discover the best offers."
182
- primaryText="Contact"
183
- primaryHref="#"
184
- imageSrc="/images/banner.jpg"
177
+ code: `import { CtaCardImageBanner } from "negodesign"
178
+
179
+ <CtaCardImageBanner
180
+ title="Let's get in touch"
181
+ description="Talk to us and discover the best offers."
182
+ primaryText="Contact"
183
+ primaryHref="#"
184
+ imageSrc="/images/banner.jpg"
185
185
  />`,
186
186
  href: "/banner",
187
187
  },
@@ -212,13 +212,13 @@ export const components = [
212
212
  examples: [
213
213
  {
214
214
  title: "Notification Banner",
215
- code: `import { NotificationBanner } from "negodesign"
216
-
217
- <NotificationBanner
218
- strongText="New"
219
- description="New offers available!"
220
- ctaText="View offers"
221
- onDismiss={() => console.log("dismissed")}
215
+ code: `import { NotificationBanner } from "negodesign"
216
+
217
+ <NotificationBanner
218
+ strongText="New"
219
+ description="New offers available!"
220
+ ctaText="View offers"
221
+ onDismiss={() => console.log("dismissed")}
222
222
  />`,
223
223
  },
224
224
  ],
@@ -245,14 +245,14 @@ export const components = [
245
245
  examples: [
246
246
  {
247
247
  title: "Ad Banner",
248
- code: `import { AdCardBanner } from "negodesign"
249
-
250
- <AdCardBanner
251
- tagText="This ad could be yours."
252
- titleHighlight="This ad"
253
- titleMain="could be yours."
254
- buttonText="Learn more"
255
- onClickButton={() => console.log("clicked")}
248
+ code: `import { AdCardBanner } from "negodesign"
249
+
250
+ <AdCardBanner
251
+ tagText="This ad could be yours."
252
+ titleHighlight="This ad"
253
+ titleMain="could be yours."
254
+ buttonText="Learn more"
255
+ onClickButton={() => console.log("clicked")}
256
256
  />`,
257
257
  href: "/banner/cad-add",
258
258
  },
@@ -278,13 +278,13 @@ export const components = [
278
278
  examples: [
279
279
  {
280
280
  title: "CTA Banner",
281
- code: `import { CtaCardBanner } from "negodesign"
282
-
283
- <CtaCardBanner
284
- title="Let's get in touch"
285
- description="We have the ideal solution for you."
286
- primaryText="Contact"
287
- secondaryText="Learn more"
281
+ code: `import { CtaCardBanner } from "negodesign"
282
+
283
+ <CtaCardBanner
284
+ title="Let's get in touch"
285
+ description="We have the ideal solution for you."
286
+ primaryText="Contact"
287
+ secondaryText="Learn more"
288
288
  />`,
289
289
  href: "/banner/card-contact-cta",
290
290
  },
@@ -312,16 +312,16 @@ export const components = [
312
312
  examples: [
313
313
  {
314
314
  title: "Media Card",
315
- code: `import { CardMedia } from "negodesign"
316
-
317
- <CardMedia
318
- {...item}
319
- variant={2}
320
- isImageButtonMaximized
321
- isVideoButtonMaximized
322
- onFavoriteClick={(id) => console.log(id)}
323
- onButtonProfile={(id) => console.log(id)}
324
- onButtonDetails={(id) => console.log(id)}
315
+ code: `import { CardMedia } from "negodesign"
316
+
317
+ <CardMedia
318
+ {...item}
319
+ variant={2}
320
+ isImageButtonMaximized
321
+ isVideoButtonMaximized
322
+ onFavoriteClick={(id) => console.log(id)}
323
+ onButtonProfile={(id) => console.log(id)}
324
+ onButtonDetails={(id) => console.log(id)}
325
325
  />`,
326
326
  href: "/card/media",
327
327
  },
@@ -359,13 +359,13 @@ export const components = [
359
359
  examples: [
360
360
  {
361
361
  title: "Profile Card",
362
- code: `import { CardProfile } from "negodesign"
363
-
364
- <CardProfile
365
- {...item}
366
- variant={1}
367
- onFavoriteClick={(id) => console.log(id)}
368
- onWhatsappClick={(id) => console.log(id)}
362
+ code: `import { CardProfile } from "negodesign"
363
+
364
+ <CardProfile
365
+ {...item}
366
+ variant={1}
367
+ onFavoriteClick={(id) => console.log(id)}
368
+ onWhatsappClick={(id) => console.log(id)}
369
369
  />`,
370
370
  href: "/card/profile",
371
371
  },
@@ -400,16 +400,16 @@ export const components = [
400
400
  examples: [
401
401
  {
402
402
  title: "Badge Carousel",
403
- code: `import { CarouselBadge } from "negodesign"
404
-
405
- <CarouselBadge
406
- orientation="horizontal"
407
- itemStyle="BORDER"
408
- items={[
409
- { label: "Hotels", value: "hotel", icon: Hotel01Icon },
410
- { label: "Pensions", value: "pensao", icon: BedDoubleIcon },
411
- ]}
412
- onClick={(value) => console.log(value)}
403
+ code: `import { CarouselBadge } from "negodesign"
404
+
405
+ <CarouselBadge
406
+ orientation="horizontal"
407
+ itemStyle="BORDER"
408
+ items={[
409
+ { label: "Hotels", value: "hotel", icon: Hotel01Icon },
410
+ { label: "Pensions", value: "pensao", icon: BedDoubleIcon },
411
+ ]}
412
+ onClick={(value) => console.log(value)}
413
413
  />`,
414
414
  href: "/carousel/badge",
415
415
  },
@@ -441,18 +441,18 @@ export const components = [
441
441
  examples: [
442
442
  {
443
443
  title: "Highlights Carousel",
444
- code: `import { CarouselHighlights } from "negodesign"
445
-
446
- <CarouselHighlights
447
- varient={2}
448
- headerProps={{
449
- title: "Highlights",
450
- description: "The best organizations",
451
- onButtonViewAll: () => {},
452
- }}
453
- items={highlights}
454
- onClickBtn={(id) => console.log(id)}
455
- onClickFavorite={(id) => console.log(id)}
444
+ code: `import { CarouselHighlights } from "negodesign"
445
+
446
+ <CarouselHighlights
447
+ varient={2}
448
+ headerProps={{
449
+ title: "Highlights",
450
+ description: "The best organizations",
451
+ onButtonViewAll: () => {},
452
+ }}
453
+ items={highlights}
454
+ onClickBtn={(id) => console.log(id)}
455
+ onClickFavorite={(id) => console.log(id)}
456
456
  />`,
457
457
  href: "/carousel/highlights",
458
458
  },
@@ -479,16 +479,16 @@ export const components = [
479
479
  examples: [
480
480
  {
481
481
  title: "Promotion Carousel",
482
- code: `import { CarouselPromotion } from "negodesign"
483
-
484
- <CarouselPromotion
485
- items={promotions}
486
- headerProps={{
487
- title: "Promotions",
488
- onButtonViewAll: () => {},
489
- }}
490
- onClickBuy={(id) => console.log(id)}
491
- onClickShop={(id) => console.log(id)}
482
+ code: `import { CarouselPromotion } from "negodesign"
483
+
484
+ <CarouselPromotion
485
+ items={promotions}
486
+ headerProps={{
487
+ title: "Promotions",
488
+ onButtonViewAll: () => {},
489
+ }}
490
+ onClickBuy={(id) => console.log(id)}
491
+ onClickShop={(id) => console.log(id)}
492
492
  />`,
493
493
  href: "/carousel/promotion",
494
494
  },
@@ -515,15 +515,15 @@ export const components = [
515
515
  examples: [
516
516
  {
517
517
  title: "Media Grid",
518
- code: `import { CarouselGridMedia } from "negodesign"
519
-
520
- <CarouselGridMedia
521
- items={media}
522
- headerProps={{
523
- title: "Explore",
524
- onButtonViewAll: () => {},
525
- }}
526
- onFavoriteClick={(id) => console.log(id)}
518
+ code: `import { CarouselGridMedia } from "negodesign"
519
+
520
+ <CarouselGridMedia
521
+ items={media}
522
+ headerProps={{
523
+ title: "Explore",
524
+ onButtonViewAll: () => {},
525
+ }}
526
+ onFavoriteClick={(id) => console.log(id)}
527
527
  />`,
528
528
  href: "/carousel/grid/media",
529
529
  },
@@ -554,14 +554,14 @@ export const components = [
554
554
  examples: [
555
555
  {
556
556
  title: "Simple Grid",
557
- code: `import { ItemsSimpleGrid } from "negodesign"
558
-
559
- <ItemsSimpleGrid
560
- variant={1}
561
- items={[
562
- { icon: Coffee03Icon, title: "Coffee", description: "Start your day right" },
563
- ]}
564
- onClick={(id) => console.log(id)}
557
+ code: `import { ItemsSimpleGrid } from "negodesign"
558
+
559
+ <ItemsSimpleGrid
560
+ variant={1}
561
+ items={[
562
+ { icon: Coffee03Icon, title: "Coffee", description: "Start your day right" },
563
+ ]}
564
+ onClick={(id) => console.log(id)}
565
565
  />`,
566
566
  href: "/grid/simple",
567
567
  },
@@ -585,13 +585,13 @@ export const components = [
585
585
  examples: [
586
586
  {
587
587
  title: "Panel Grid",
588
- code: `import { ItemsPanel } from "negodesign"
589
-
590
- <ItemsPanel
591
- style="grid"
592
- variant={1}
593
- items={items}
594
- onClick={(id) => console.log(id)}
588
+ code: `import { ItemsPanel } from "negodesign"
589
+
590
+ <ItemsPanel
591
+ style="grid"
592
+ variant={1}
593
+ items={items}
594
+ onClick={(id) => console.log(id)}
595
595
  />`,
596
596
  href: "/grid/panel",
597
597
  },
@@ -617,53 +617,53 @@ export const components = [
617
617
  {
618
618
  title: "Variant 1 — Centered Grid",
619
619
  href: "/modal",
620
- code: `import { ModalGridSelection } from "negodesign"
621
-
622
- let isOpen = $state(false);
623
- let selected = $state(null);
624
-
625
- <ModalGridSelection
626
- bind:isOpen
627
- bind:selectedCard={selected}
628
- title="What will you be using this for?"
629
- subtitle="We'll use this to recommend you our personalized features"
630
- totalSteps={3}
631
- currentStep={1}
632
- cards={[
633
- { title: "Student", description: "You're here to impress your teachers.", icon: "nd-cap-icon" },
634
- { title: "Business", description: "You're here to grow your brand.", icon: "nd-briefcase-icon" },
635
- { title: "Personal", description: "You're here to make anything.", icon: "nd-user-icon" },
636
- ]}
637
- onSelect={(card) => console.log(card)}
638
- onBack={() => console.log("back")}
639
- onContinue={() => console.log("continue")}
620
+ code: `import { ModalGridSelection } from "negodesign"
621
+
622
+ let isOpen = $state(false);
623
+ let selected = $state(null);
624
+
625
+ <ModalGridSelection
626
+ bind:isOpen
627
+ bind:selectedCard={selected}
628
+ title="What will you be using this for?"
629
+ subtitle="We'll use this to recommend you our personalized features"
630
+ totalSteps={3}
631
+ currentStep={1}
632
+ cards={[
633
+ { title: "Student", description: "You're here to impress your teachers.", icon: "nd-cap-icon" },
634
+ { title: "Business", description: "You're here to grow your brand.", icon: "nd-briefcase-icon" },
635
+ { title: "Personal", description: "You're here to make anything.", icon: "nd-user-icon" },
636
+ ]}
637
+ onSelect={(card) => console.log(card)}
638
+ onBack={() => console.log("back")}
639
+ onContinue={() => console.log("continue")}
640
640
  />`,
641
641
  },
642
642
  {
643
643
  title: "Variant 2 — Dark Grid with Categories",
644
- code: `import { ModalGridSelection } from "negodesign"
645
-
646
- let isOpen = $state(false);
647
- let selected = $state(null);
648
-
649
- <ModalGridSelection
650
- variant={2}
651
- bind:isOpen
652
- bind:selectedCard={selected}
653
- title="What are you planning to use this app for?"
654
- categories={[
655
- { label: "Marketing", value: "marketing" },
656
- { label: "Product", value: "product" },
657
- { label: "Engineering", value: "engineering" },
658
- ]}
659
- cards={[
660
- { title: "Work Stuff", description: "Just the usual boring work stuff.", icon: "nd-briefcase-icon" },
661
- { title: "UI/UX Design", description: "Design apps and prototypes.", icon: "nd-palette-icon" },
662
- { title: "Finance", description: "Because I need money.", icon: "nd-money-icon" },
663
- { title: "Productivity", description: "Sometimes we need to be productive.", icon: "nd-clock-icon" },
664
- ]}
665
- onSelect={(card) => console.log(card)}
666
- onContinue={() => console.log("continue")}
644
+ code: `import { ModalGridSelection } from "negodesign"
645
+
646
+ let isOpen = $state(false);
647
+ let selected = $state(null);
648
+
649
+ <ModalGridSelection
650
+ variant={2}
651
+ bind:isOpen
652
+ bind:selectedCard={selected}
653
+ title="What are you planning to use this app for?"
654
+ categories={[
655
+ { label: "Marketing", value: "marketing" },
656
+ { label: "Product", value: "product" },
657
+ { label: "Engineering", value: "engineering" },
658
+ ]}
659
+ cards={[
660
+ { title: "Work Stuff", description: "Just the usual boring work stuff.", icon: "nd-briefcase-icon" },
661
+ { title: "UI/UX Design", description: "Design apps and prototypes.", icon: "nd-palette-icon" },
662
+ { title: "Finance", description: "Because I need money.", icon: "nd-money-icon" },
663
+ { title: "Productivity", description: "Sometimes we need to be productive.", icon: "nd-clock-icon" },
664
+ ]}
665
+ onSelect={(card) => console.log(card)}
666
+ onContinue={() => console.log("continue")}
667
667
  />`,
668
668
  },
669
669
  ],
@@ -698,27 +698,27 @@ let selected = $state(null);
698
698
  {
699
699
  title: "Modal Badge Selection",
700
700
  href: "/modal",
701
- code: `import { ModalBadgeSelection } from "negodesign"
702
-
703
- let isOpen = $state(false);
704
- let selected = $state(null);
705
-
706
- <ModalBadgeSelection
707
- bind:isOpen
708
- bind:selectedBadge={selected}
709
- title="What team are you currently on?"
710
- subtitle="Please select one answer only."
711
- totalSteps={5}
712
- currentStep={2}
713
- badges={[
714
- { label: "Marketing", value: "marketing" },
715
- { label: "Engineering", value: "engineering" },
716
- { label: "Design", value: "design" },
717
- { label: "Operations", value: "operations" },
718
- ]}
719
- onSelect={(badge) => console.log(badge)}
720
- onContinue={() => console.log("continue")}
721
- onSkip={() => console.log("skip")}
701
+ code: `import { ModalBadgeSelection } from "negodesign"
702
+
703
+ let isOpen = $state(false);
704
+ let selected = $state(null);
705
+
706
+ <ModalBadgeSelection
707
+ bind:isOpen
708
+ bind:selectedBadge={selected}
709
+ title="What team are you currently on?"
710
+ subtitle="Please select one answer only."
711
+ totalSteps={5}
712
+ currentStep={2}
713
+ badges={[
714
+ { label: "Marketing", value: "marketing" },
715
+ { label: "Engineering", value: "engineering" },
716
+ { label: "Design", value: "design" },
717
+ { label: "Operations", value: "operations" },
718
+ ]}
719
+ onSelect={(badge) => console.log(badge)}
720
+ onContinue={() => console.log("continue")}
721
+ onSkip={() => console.log("skip")}
722
722
  />`,
723
723
  },
724
724
  ],
@@ -750,44 +750,44 @@ let selected = $state(null);
750
750
  {
751
751
  title: "Modal Share Selection",
752
752
  href: "/modal",
753
- code: `import { ModalShareSelection } from "negodesign"
754
-
755
- let isOpen = $state(false);
756
-
757
- <ModalShareSelection
758
- bind:isOpen
759
- title="Share this design"
760
- linkValue="https://example.com/design/123"
761
- isWhatsapp
762
- isInstagram
763
- isFacebook
764
- isTwitter
765
- isLinkedin
766
- isPinterest
767
- isTumblr
768
- onShare={(network) => console.log(network)}
769
- onCopy={(link) => console.log(link)}
753
+ code: `import { ModalShareSelection } from "negodesign"
754
+
755
+ let isOpen = $state(false);
756
+
757
+ <ModalShareSelection
758
+ bind:isOpen
759
+ title="Share this design"
760
+ linkValue="https://example.com/design/123"
761
+ isWhatsapp
762
+ isInstagram
763
+ isFacebook
764
+ isTwitter
765
+ isLinkedin
766
+ isPinterest
767
+ isTumblr
768
+ onShare={(network) => console.log(network)}
769
+ onCopy={(link) => console.log(link)}
770
770
  />`,
771
771
  },
772
772
  {
773
773
  title: "Modal Share Selection — custom networks",
774
- code: `import { ModalShareSelection } from "negodesign"
775
- import type { ModelSocialShare } from "negodesign"
776
-
777
- let isOpen = $state(false);
778
-
779
- const networks: ModelSocialShare[] = [
780
- { name: "WhatsApp", img: "/img/icons8-whatsapp-48.png", color: "#25D366" },
781
- { name: "Facebook", img: "/img/icons8-facebook-48.png", color: "#1877F2" },
782
- ];
783
-
784
- <ModalShareSelection
785
- bind:isOpen
786
- title="Share this design"
787
- linkValue="https://example.com/design/123"
788
- {networks}
789
- onShare={(network) => console.log(network)}
790
- onCopy={(link) => console.log(link)}
774
+ code: `import { ModalShareSelection } from "negodesign"
775
+ import type { ModelSocialShare } from "negodesign"
776
+
777
+ let isOpen = $state(false);
778
+
779
+ const networks: ModelSocialShare[] = [
780
+ { name: "WhatsApp", img: "/img/icons8-whatsapp-48.png", color: "#25D366" },
781
+ { name: "Facebook", img: "/img/icons8-facebook-48.png", color: "#1877F2" },
782
+ ];
783
+
784
+ <ModalShareSelection
785
+ bind:isOpen
786
+ title="Share this design"
787
+ linkValue="https://example.com/design/123"
788
+ {networks}
789
+ onShare={(network) => console.log(network)}
790
+ onCopy={(link) => console.log(link)}
791
791
  />`,
792
792
  },
793
793
  ],
@@ -824,17 +824,17 @@ const networks: ModelSocialShare[] = [
824
824
  {
825
825
  title: "Modal Notification",
826
826
  href: "/modal",
827
- code: `import { ModalNotification } from "negodesign"
828
-
829
- let isOpen = $state(false);
830
-
831
- <ModalNotification
832
- bind:isOpen
833
- title="Be the first to know when new content is available"
834
- description="Sign up to receive tips and tricks on how to create online designs that make people take action."
835
- placeholder="Your email address"
836
- buttonText="Sign me up"
837
- onSubmit={(email) => console.log(email)}
827
+ code: `import { ModalNotification } from "negodesign"
828
+
829
+ let isOpen = $state(false);
830
+
831
+ <ModalNotification
832
+ bind:isOpen
833
+ title="Be the first to know when new content is available"
834
+ description="Sign up to receive tips and tricks on how to create online designs that make people take action."
835
+ placeholder="Your email address"
836
+ buttonText="Sign me up"
837
+ onSubmit={(email) => console.log(email)}
838
838
  />`,
839
839
  },
840
840
  ],
@@ -862,16 +862,16 @@ let isOpen = $state(false);
862
862
  {
863
863
  title: "Modal Feedback",
864
864
  href: "/modal",
865
- code: `import { ModalFeedback } from "negodesign"
866
-
867
- let isOpen = $state(false);
868
-
869
- <ModalFeedback
870
- bind:isOpen
871
- title="Your Feedback"
872
- icon="🔥"
873
- onSubmit={(content, images) => console.log(content, images)}
874
- onAddImage={() => console.log("add image")}
865
+ code: `import { ModalFeedback } from "negodesign"
866
+
867
+ let isOpen = $state(false);
868
+
869
+ <ModalFeedback
870
+ bind:isOpen
871
+ title="Your Feedback"
872
+ icon="🔥"
873
+ onSubmit={(content, images) => console.log(content, images)}
874
+ onAddImage={() => console.log("add image")}
875
875
  />`,
876
876
  },
877
877
  ],
@@ -902,22 +902,22 @@ let isOpen = $state(false);
902
902
  {
903
903
  title: "Form with multiple input types",
904
904
  href: "/form",
905
- code: `import { Form } from "negodesign"
906
-
907
- <Form
908
- onSubmit={(data) => console.log(data)}
909
- submitText="Save"
910
- inputs={[
911
- { type: "text", name: "name", label: "Full Name", placeholder: "John Doe", required: true },
912
- { type: "email", name: "email", label: "Email", placeholder: "john@example.com", required: true },
913
- { type: "select", name: "role", label: "Role", options: [
914
- { value: "ADMIN", label: "Admin" },
915
- { value: "USER", label: "User" },
916
- ]},
917
- { type: "toggle", name: "active", label: "Active", description: "Enable this account" },
918
- { type: "textarea", name: "bio", label: "Bio", placeholder: "Tell us about yourself", fill: true },
919
- { type: "badges", name: "tags", label: "Tags", placeholder: "Add tags...", suggestions: ["React", "Svelte", "Vue"] },
920
- ]}
905
+ code: `import { Form } from "negodesign"
906
+
907
+ <Form
908
+ onSubmit={(data) => console.log(data)}
909
+ submitText="Save"
910
+ inputs={[
911
+ { type: "text", name: "name", label: "Full Name", placeholder: "John Doe", required: true },
912
+ { type: "email", name: "email", label: "Email", placeholder: "john@example.com", required: true },
913
+ { type: "select", name: "role", label: "Role", options: [
914
+ { value: "ADMIN", label: "Admin" },
915
+ { value: "USER", label: "User" },
916
+ ]},
917
+ { type: "toggle", name: "active", label: "Active", description: "Enable this account" },
918
+ { type: "textarea", name: "bio", label: "Bio", placeholder: "Tell us about yourself", fill: true },
919
+ { type: "badges", name: "tags", label: "Tags", placeholder: "Add tags...", suggestions: ["React", "Svelte", "Vue"] },
920
+ ]}
921
921
  />`,
922
922
  },
923
923
  ],
@@ -943,22 +943,22 @@ let isOpen = $state(false);
943
943
  {
944
944
  title: "Modal Form",
945
945
  href: "/modal",
946
- code: `import { ModalForm } from "negodesign"
947
-
948
- let isOpen = $state(false);
949
-
950
- <ModalForm
951
- bind:isOpen
952
- title="Edit Profile"
953
- subtitle="Update your personal information"
954
- submitText="Save Changes"
955
- inputs={[
956
- { type: "text", name: "name", label: "Name", value: "John Doe", required: true },
957
- { type: "email", name: "email", label: "Email", value: "john@example.com" },
958
- { type: "toggle", name: "newsletter", label: "Newsletter", description: "Receive updates" },
959
- ]}
960
- onSubmit={(data) => console.log(data)}
961
- onCancel={() => console.log("cancelled")}
946
+ code: `import { ModalForm } from "negodesign"
947
+
948
+ let isOpen = $state(false);
949
+
950
+ <ModalForm
951
+ bind:isOpen
952
+ title="Edit Profile"
953
+ subtitle="Update your personal information"
954
+ submitText="Save Changes"
955
+ inputs={[
956
+ { type: "text", name: "name", label: "Name", value: "John Doe", required: true },
957
+ { type: "email", name: "email", label: "Email", value: "john@example.com" },
958
+ { type: "toggle", name: "newsletter", label: "Newsletter", description: "Receive updates" },
959
+ ]}
960
+ onSubmit={(data) => console.log(data)}
961
+ onCancel={() => console.log("cancelled")}
962
962
  />`,
963
963
  },
964
964
  ],
@@ -990,21 +990,21 @@ let isOpen = $state(false);
990
990
  {
991
991
  title: "Modal Upload",
992
992
  href: "/modal",
993
- code: `import { ModalUpload } from "negodesign"
994
- import type { UploadFile } from "negodesign"
995
-
996
- let isOpen = $state(false);
997
- let files = $state<UploadFile[]>([]);
998
-
999
- <ModalUpload
1000
- bind:isOpen
1001
- bind:files
1002
- acceptedFormats="csv, xlsx, xls"
1003
- multiple
1004
- onFilesSelected={(f) => console.log("selected", f)}
1005
- onUpload={(f) => console.log("upload", f)}
1006
- onRemoveFile={(id) => console.log("remove", id)}
1007
- onDownload={() => console.log("download sample")}
993
+ code: `import { ModalUpload } from "negodesign"
994
+ import type { UploadFile } from "negodesign"
995
+
996
+ let isOpen = $state(false);
997
+ let files = $state<UploadFile[]>([]);
998
+
999
+ <ModalUpload
1000
+ bind:isOpen
1001
+ bind:files
1002
+ acceptedFormats="csv, xlsx, xls"
1003
+ multiple
1004
+ onFilesSelected={(f) => console.log("selected", f)}
1005
+ onUpload={(f) => console.log("upload", f)}
1006
+ onRemoveFile={(id) => console.log("remove", id)}
1007
+ onDownload={() => console.log("download sample")}
1008
1008
  />`,
1009
1009
  },
1010
1010
  ],
@@ -1037,25 +1037,25 @@ let files = $state<UploadFile[]>([]);
1037
1037
  examples: [
1038
1038
  {
1039
1039
  title: "Modal Core",
1040
- code: `import { ModalCore } from "negodesign"
1041
-
1042
- let isOpen = $state(false);
1043
-
1044
- <ModalCore
1045
- bind:isOpen
1046
- title="Custom Modal"
1047
- subtitle="With custom content"
1048
- totalSteps={3}
1049
- currentStep={1}
1050
- showProgress
1051
- showBack
1052
- showSkip
1053
- onContinue={() => console.log("continue")}
1054
- onSkip={() => console.log("skip")}
1055
- >
1056
- {#snippet content()}
1057
- <p>Your custom content here</p>
1058
- {/snippet}
1040
+ code: `import { ModalCore } from "negodesign"
1041
+
1042
+ let isOpen = $state(false);
1043
+
1044
+ <ModalCore
1045
+ bind:isOpen
1046
+ title="Custom Modal"
1047
+ subtitle="With custom content"
1048
+ totalSteps={3}
1049
+ currentStep={1}
1050
+ showProgress
1051
+ showBack
1052
+ showSkip
1053
+ onContinue={() => console.log("continue")}
1054
+ onSkip={() => console.log("skip")}
1055
+ >
1056
+ {#snippet content()}
1057
+ <p>Your custom content here</p>
1058
+ {/snippet}
1059
1059
  </ModalCore>`,
1060
1060
  },
1061
1061
  ],
@@ -1091,18 +1091,18 @@ let isOpen = $state(false);
1091
1091
  {
1092
1092
  title: "Modal Map",
1093
1093
  href: "/modal",
1094
- code: `import { ModalMap } from "negodesign"
1095
-
1096
- let isOpen = $state(false);
1097
-
1098
- <ModalMap
1099
- bind:isOpen
1100
- title="Location"
1101
- address="211 Throop Ave Brooklyn, New York City"
1102
- description="New York is served by three airports."
1103
- onSearch={(q) => console.log(q)}
1104
- onApply={(addr, desc) => console.log(addr, desc)}
1105
- onCancel={() => console.log("cancel")}
1094
+ code: `import { ModalMap } from "negodesign"
1095
+
1096
+ let isOpen = $state(false);
1097
+
1098
+ <ModalMap
1099
+ bind:isOpen
1100
+ title="Location"
1101
+ address="211 Throop Ave Brooklyn, New York City"
1102
+ description="New York is served by three airports."
1103
+ onSearch={(q) => console.log(q)}
1104
+ onApply={(addr, desc) => console.log(addr, desc)}
1105
+ onCancel={() => console.log("cancel")}
1106
1106
  />`,
1107
1107
  },
1108
1108
  ],
@@ -1140,17 +1140,17 @@ let isOpen = $state(false);
1140
1140
  examples: [
1141
1141
  {
1142
1142
  title: "Footer",
1143
- code: `import { Footer } from "negodesign"
1144
-
1145
- <Footer
1146
- isNewsletter={true}
1147
- items={[
1148
- { title: "Solutions", items: [{ text: "Marketing" }] },
1149
- ]}
1150
- socialsMedia={[
1151
- { icon: "facebook", text: "Facebook", href: "#" },
1152
- ]}
1153
- companyName="Negoturismo"
1143
+ code: `import { Footer } from "negodesign"
1144
+
1145
+ <Footer
1146
+ isNewsletter={true}
1147
+ items={[
1148
+ { title: "Solutions", items: [{ text: "Marketing" }] },
1149
+ ]}
1150
+ socialsMedia={[
1151
+ { icon: "facebook", text: "Facebook", href: "#" },
1152
+ ]}
1153
+ companyName="Negoturismo"
1154
1154
  />`,
1155
1155
  href: "/footer",
1156
1156
  },
@@ -1177,15 +1177,15 @@ let isOpen = $state(false);
1177
1177
  examples: [
1178
1178
  {
1179
1179
  title: "Admin Panel",
1180
- code: `import { AdminPanel } from "negodesign"
1181
-
1182
- <AdminPanel>
1183
- {#snippet appsidebar()}
1184
- <MenuBarSidebar {user} {menus} {menusButtons} />
1185
- {/snippet}
1186
- {#snippet content()}
1187
- <AdminContent>...content...</AdminContent>
1188
- {/snippet}
1180
+ code: `import { AdminPanel } from "negodesign"
1181
+
1182
+ <AdminPanel>
1183
+ {#snippet appsidebar()}
1184
+ <MenuBarSidebar {user} {menus} {menusButtons} />
1185
+ {/snippet}
1186
+ {#snippet content()}
1187
+ <AdminContent>...content...</AdminContent>
1188
+ {/snippet}
1189
1189
  </AdminPanel>`,
1190
1190
  href: "/admin/01",
1191
1191
  },
@@ -1206,13 +1206,13 @@ let isOpen = $state(false);
1206
1206
  examples: [
1207
1207
  {
1208
1208
  title: "Data Table",
1209
- code: `import { DataTableCore } from "negodesign"
1210
-
1211
- <DataTableCore
1212
- items={rows}
1213
- config={columns}
1214
- columnFilter="name"
1215
- actions={RowActions}
1209
+ code: `import { DataTableCore } from "negodesign"
1210
+
1211
+ <DataTableCore
1212
+ items={rows}
1213
+ config={columns}
1214
+ columnFilter="name"
1215
+ actions={RowActions}
1216
1216
  />`,
1217
1217
  href: "/datatable/01",
1218
1218
  },
@@ -1234,12 +1234,12 @@ let isOpen = $state(false);
1234
1234
  examples: [
1235
1235
  {
1236
1236
  title: "Sidebar",
1237
- code: `import { MenuBarSidebar } from "negodesign"
1238
-
1239
- <MenuBarSidebar
1240
- {menus}
1241
- {user}
1242
- {menusButtons}
1237
+ code: `import { MenuBarSidebar } from "negodesign"
1238
+
1239
+ <MenuBarSidebar
1240
+ {menus}
1241
+ {user}
1242
+ {menusButtons}
1243
1243
  />`,
1244
1244
  },
1245
1245
  ],
@@ -1262,15 +1262,15 @@ let isOpen = $state(false);
1262
1262
  examples: [
1263
1263
  {
1264
1264
  title: "Login Page",
1265
- code: `import { PageLogin } from "negodesign"
1266
-
1267
- <PageLogin
1268
- title="Negodesign"
1269
- formType="EMAIL_PASSWORD"
1270
- carousel={[
1271
- { title: "Welcome", description: "Access your account", buttonText: "Sign in" },
1272
- ]}
1273
- onSubmit={(credential) => console.log(credential)}
1265
+ code: `import { PageLogin } from "negodesign"
1266
+
1267
+ <PageLogin
1268
+ title="Negodesign"
1269
+ formType="EMAIL_PASSWORD"
1270
+ carousel={[
1271
+ { title: "Welcome", description: "Access your account", buttonText: "Sign in" },
1272
+ ]}
1273
+ onSubmit={(credential) => console.log(credential)}
1274
1274
  />`,
1275
1275
  href: "/login/admin/01",
1276
1276
  },
@@ -1297,36 +1297,36 @@ let isOpen = $state(false);
1297
1297
  examples: [
1298
1298
  {
1299
1299
  title: "Register Page — All Fields",
1300
- code: `import { PageRegister } from "negodesign"
1301
-
1302
- <PageRegister
1303
- title="Negodesign"
1304
- fields={{
1305
- isName: true,
1306
- isEmail: true,
1307
- isPassword: true,
1308
- isConfirmPassword: true,
1309
- isBirthday: true,
1310
- isGender: true,
1311
- isPhone: true,
1312
- }}
1313
- onSubmit={(data) => console.log(data)}
1300
+ code: `import { PageRegister } from "negodesign"
1301
+
1302
+ <PageRegister
1303
+ title="Negodesign"
1304
+ fields={{
1305
+ isName: true,
1306
+ isEmail: true,
1307
+ isPassword: true,
1308
+ isConfirmPassword: true,
1309
+ isBirthday: true,
1310
+ isGender: true,
1311
+ isPhone: true,
1312
+ }}
1313
+ onSubmit={(data) => console.log(data)}
1314
1314
  />`,
1315
1315
  href: "/register/admin/01",
1316
1316
  },
1317
1317
  {
1318
1318
  title: "Register Page — Minimal (email + password)",
1319
- code: `import { PageRegister } from "negodesign"
1320
-
1321
- <PageRegister
1322
- variant={2}
1323
- title="Negodesign"
1324
- fields={{
1325
- isEmail: true,
1326
- isPassword: true,
1327
- isConfirmPassword: true,
1328
- }}
1329
- onSubmit={(data) => console.log(data)}
1319
+ code: `import { PageRegister } from "negodesign"
1320
+
1321
+ <PageRegister
1322
+ variant={2}
1323
+ title="Negodesign"
1324
+ fields={{
1325
+ isEmail: true,
1326
+ isPassword: true,
1327
+ isConfirmPassword: true,
1328
+ }}
1329
+ onSubmit={(data) => console.log(data)}
1330
1330
  />`,
1331
1331
  },
1332
1332
  ],
@@ -1354,13 +1354,13 @@ let isOpen = $state(false);
1354
1354
  examples: [
1355
1355
  {
1356
1356
  title: "Company Profile",
1357
- code: `import { CompanyProfile } from "negodesign"
1358
-
1359
- <CompanyProfile
1360
- data={data}
1361
- isLoading={false}
1362
- onWhatsapp={(id) => console.log(id)}
1363
- onEmail={(id) => console.log(id)}
1357
+ code: `import { CompanyProfile } from "negodesign"
1358
+
1359
+ <CompanyProfile
1360
+ data={data}
1361
+ isLoading={false}
1362
+ onWhatsapp={(id) => console.log(id)}
1363
+ onEmail={(id) => console.log(id)}
1364
1364
  />`,
1365
1365
  href: "/company-profile",
1366
1366
  },
@@ -1384,14 +1384,14 @@ let isOpen = $state(false);
1384
1384
  examples: [
1385
1385
  {
1386
1386
  title: "Privacy Policy",
1387
- code: `import { PrivacyPolicyOrTermsOfUse } from "negodesign"
1388
-
1389
- <PrivacyPolicyOrTermsOfUse
1390
- variant={1}
1391
- title="Privacy Policy"
1392
- lastUpdated="August 15, 2026"
1393
- breadcrumb={[{ label: "Home", href: "/" }]}
1394
- sections={[{ id: "intro", title: "Introduction", blocks: [] }]}
1387
+ code: `import { PrivacyPolicyOrTermsOfUse } from "negodesign"
1388
+
1389
+ <PrivacyPolicyOrTermsOfUse
1390
+ variant={1}
1391
+ title="Privacy Policy"
1392
+ lastUpdated="August 15, 2026"
1393
+ breadcrumb={[{ label: "Home", href: "/" }]}
1394
+ sections={[{ id: "intro", title: "Introduction", blocks: [] }]}
1395
1395
  />`,
1396
1396
  href: "/privacy-policy-or-terms-of-use",
1397
1397
  },
@@ -1416,15 +1416,15 @@ let isOpen = $state(false);
1416
1416
  examples: [
1417
1417
  {
1418
1418
  title: "Product Details",
1419
- code: `import { ProductDetails } from "negodesign"
1420
-
1421
- <ProductDetails
1422
- varient={1}
1423
- data={productData}
1424
- isLoading={false}
1425
- onBuy={(id) => alert("Buy " + id)}
1426
- onFavorite={(id) => alert("Favorite " + id)}
1427
- onCart={(id) => alert("Cart " + id)}
1419
+ code: `import { ProductDetails } from "negodesign"
1420
+
1421
+ <ProductDetails
1422
+ varient={1}
1423
+ data={productData}
1424
+ isLoading={false}
1425
+ onBuy={(id) => alert("Buy " + id)}
1426
+ onFavorite={(id) => alert("Favorite " + id)}
1427
+ onCart={(id) => alert("Cart " + id)}
1428
1428
  />`,
1429
1429
  href: "/product-details/01",
1430
1430
  },
@@ -1450,15 +1450,15 @@ let isOpen = $state(false);
1450
1450
  examples: [
1451
1451
  {
1452
1452
  title: "User Profile",
1453
- code: `import { ProfileUser } from "negodesign"
1454
-
1455
- <ProfileUser
1456
- varient={1}
1457
- data={userData}
1458
- isLoading={false}
1459
- onLoginAsUser={(id) => alert(id)}
1460
- onAddAddress={() => alert("Add")}
1461
- onChangePassword={(p) => alert(JSON.stringify(p))}
1453
+ code: `import { ProfileUser } from "negodesign"
1454
+
1455
+ <ProfileUser
1456
+ varient={1}
1457
+ data={userData}
1458
+ isLoading={false}
1459
+ onLoginAsUser={(id) => alert(id)}
1460
+ onAddAddress={() => alert("Add")}
1461
+ onChangePassword={(p) => alert(JSON.stringify(p))}
1462
1462
  />`,
1463
1463
  href: "/profile-user/01",
1464
1464
  },
@@ -1486,17 +1486,17 @@ let isOpen = $state(false);
1486
1486
  {
1487
1487
  title: "Tab Underline",
1488
1488
  href: "/tab",
1489
- code: `import { TabUnderline } from "negodesign"
1490
-
1491
- <TabUnderline
1492
- items={[
1493
- { label: "Tab 1", value: "tab1" },
1494
- { label: "Tab 2", value: "tab2" },
1495
- ]}
1496
- contents={{
1497
- tab1: () => <p>Content 1</p>,
1498
- tab2: () => <p>Content 2</p>,
1499
- }}
1489
+ code: `import { TabUnderline } from "negodesign"
1490
+
1491
+ <TabUnderline
1492
+ items={[
1493
+ { label: "Tab 1", value: "tab1" },
1494
+ { label: "Tab 2", value: "tab2" },
1495
+ ]}
1496
+ contents={{
1497
+ tab1: () => <p>Content 1</p>,
1498
+ tab2: () => <p>Content 2</p>,
1499
+ }}
1500
1500
  />`,
1501
1501
  },
1502
1502
  ],
@@ -1516,14 +1516,14 @@ let isOpen = $state(false);
1516
1516
  examples: [
1517
1517
  {
1518
1518
  title: "Empty State",
1519
- code: `import { NotFoundEmpty } from "negodesign"
1520
-
1521
- <NotFoundEmpty
1522
- title="No results found"
1523
- description="Try adjusting your search or filter to find what you're looking for."
1524
- showAction
1525
- actionLabel="Clear filters"
1526
- onAction={() => console.log("clear")}
1519
+ code: `import { NotFoundEmpty } from "negodesign"
1520
+
1521
+ <NotFoundEmpty
1522
+ title="No results found"
1523
+ description="Try adjusting your search or filter to find what you're looking for."
1524
+ showAction
1525
+ actionLabel="Clear filters"
1526
+ onAction={() => console.log("clear")}
1527
1527
  />`,
1528
1528
  },
1529
1529
  ],
@@ -1548,11 +1548,11 @@ let isOpen = $state(false);
1548
1548
  examples: [
1549
1549
  {
1550
1550
  title: "Admin Content",
1551
- code: `import { AdminContent } from "negodesign"
1552
-
1553
- <AdminContent>
1554
- <h1>Dashboard</h1>
1555
- <p>Content goes here</p>
1551
+ code: `import { AdminContent } from "negodesign"
1552
+
1553
+ <AdminContent>
1554
+ <h1>Dashboard</h1>
1555
+ <p>Content goes here</p>
1556
1556
  </AdminContent>`,
1557
1557
  },
1558
1558
  ],
@@ -1570,12 +1570,12 @@ let isOpen = $state(false);
1570
1570
  examples: [
1571
1571
  {
1572
1572
  title: "Input Email",
1573
- code: `import { InputEmail } from "negodesign"
1574
-
1575
- <InputEmail
1576
- label="Email"
1577
- placeholder="john@example.com"
1578
- bind:value={email}
1573
+ code: `import { InputEmail } from "negodesign"
1574
+
1575
+ <InputEmail
1576
+ label="Email"
1577
+ placeholder="john@example.com"
1578
+ bind:value={email}
1579
1579
  />`,
1580
1580
  },
1581
1581
  ],
@@ -1595,12 +1595,12 @@ let isOpen = $state(false);
1595
1595
  examples: [
1596
1596
  {
1597
1597
  title: "Input Phone",
1598
- code: `import { InputPhone } from "negodesign"
1599
-
1600
- <InputPhone
1601
- label="Phone"
1602
- placeholder="+1 234 567 890"
1603
- bind:value={phone}
1598
+ code: `import { InputPhone } from "negodesign"
1599
+
1600
+ <InputPhone
1601
+ label="Phone"
1602
+ placeholder="+1 234 567 890"
1603
+ bind:value={phone}
1604
1604
  />`,
1605
1605
  },
1606
1606
  ],
@@ -1620,12 +1620,12 @@ let isOpen = $state(false);
1620
1620
  examples: [
1621
1621
  {
1622
1622
  title: "Input Password",
1623
- code: `import { InputPassword } from "negodesign"
1624
-
1625
- <InputPassword
1626
- label="Password"
1627
- placeholder="Enter your password"
1628
- bind:value={password}
1623
+ code: `import { InputPassword } from "negodesign"
1624
+
1625
+ <InputPassword
1626
+ label="Password"
1627
+ placeholder="Enter your password"
1628
+ bind:value={password}
1629
1629
  />`,
1630
1630
  },
1631
1631
  ],
@@ -1645,12 +1645,12 @@ let isOpen = $state(false);
1645
1645
  examples: [
1646
1646
  {
1647
1647
  title: "Input Username",
1648
- code: `import { InputUsername } from "negodesign"
1649
-
1650
- <InputUsername
1651
- label="Username"
1652
- placeholder="john_doe"
1653
- bind:value={username}
1648
+ code: `import { InputUsername } from "negodesign"
1649
+
1650
+ <InputUsername
1651
+ label="Username"
1652
+ placeholder="john_doe"
1653
+ bind:value={username}
1654
1654
  />`,
1655
1655
  },
1656
1656
  ],
@@ -1660,6 +1660,81 @@ let isOpen = $state(false);
1660
1660
  { name: "placeholder", type: "string", description: "Placeholder text" },
1661
1661
  ],
1662
1662
  },
1663
+ {
1664
+ slug: "input-calendar",
1665
+ name: "InputCalendar",
1666
+ category: "Form Inputs",
1667
+ description: "Date input with a reusable popover calendar (month and year selectors). Opens a calendar card on click; the value is bound as an ISO `yyyy-mm-dd` string and displayed in the localized format.",
1668
+ path: "src/lib/components/ui/form/ui/input-calendar.svelte",
1669
+ importPath: "InputCalendar",
1670
+ examples: [
1671
+ {
1672
+ title: "Input Calendar",
1673
+ href: "/input-calendar",
1674
+ code: `import { InputCalendar } from "negodesign"
1675
+
1676
+ <script lang="ts">
1677
+ let birthDate = $state("");
1678
+ </script>
1679
+
1680
+ <InputCalendar
1681
+ label="Birth date"
1682
+ placeholder="dd/mm/yyyy"
1683
+ bind:value={birthDate}
1684
+ />`,
1685
+ },
1686
+ ],
1687
+ props: [
1688
+ { name: "value", type: "string", description: "Bound value as ISO yyyy-mm-dd" },
1689
+ { name: "label", type: "string", description: "Field label" },
1690
+ { name: "placeholder", type: "string", description: "Placeholder text" },
1691
+ { name: "labelClass", type: "string", description: "Label CSS class" },
1692
+ { name: "inputClass", type: "string", description: "Trigger CSS class" },
1693
+ { name: "isLabel", type: "boolean", description: "Renders the label wrapper", default: "true" },
1694
+ { name: "isIcon", type: "boolean", description: "Shows the calendar icon on the left", default: "true" },
1695
+ { name: "placeholderClass", type: "string", description: "Trigger text CSS class" },
1696
+ { name: "min", type: "string", description: "Minimum accepted date (ISO yyyy-mm-dd)" },
1697
+ { name: "max", type: "string", description: "Maximum accepted date (ISO yyyy-mm-dd)" },
1698
+ { name: "disabled", type: "boolean", description: "Disables the trigger", default: "false" },
1699
+ ],
1700
+ },
1701
+ {
1702
+ slug: "input-calendar-interval",
1703
+ name: "InputCalendarInterval",
1704
+ category: "Form Inputs",
1705
+ description: "Date range input built on the same reusable calendar card as InputCalendar. The popover opens two calendars (start and end) side by side on desktop and stacked on mobile, and always guarantees the start date is less than or equal to the end date.",
1706
+ path: "src/lib/components/ui/form/ui/input-calendar-interval.svelte",
1707
+ importPath: "InputCalendarInterval",
1708
+ examples: [
1709
+ {
1710
+ title: "Input Calendar Interval",
1711
+ href: "/input-calendar-interval",
1712
+ code: `import { InputCalendarInterval } from "negodesign"
1713
+
1714
+ <script lang="ts">
1715
+ let startDate = $state("");
1716
+ let endDate = $state("");
1717
+ </script>
1718
+
1719
+ <InputCalendarInterval
1720
+ label="Travel period"
1721
+ bind:startValue={startDate}
1722
+ bind:endValue={endDate}
1723
+ />`,
1724
+ },
1725
+ ],
1726
+ props: [
1727
+ { name: "startValue", type: "string", description: "Bound start date as ISO yyyy-mm-dd" },
1728
+ { name: "endValue", type: "string", description: "Bound end date as ISO yyyy-mm-dd" },
1729
+ { name: "label", type: "string", description: "Field label" },
1730
+ { name: "isLabel", type: "boolean", description: "Renders the label wrapper", default: "true" },
1731
+ { name: "isIcon", type: "boolean", description: "Shows the calendar icon on the left", default: "true" },
1732
+ { name: "labelClass", type: "string", description: "Label CSS class" },
1733
+ { name: "inputClass", type: "string", description: "Trigger CSS class" },
1734
+ { name: "placeholder", type: "string", description: "Placeholder text when empty" },
1735
+ { name: "disabled", type: "boolean", description: "Disables the trigger", default: "false" },
1736
+ ],
1737
+ },
1663
1738
  {
1664
1739
  slug: "page-forget-password",
1665
1740
  name: "PageForgetPassword",
@@ -1670,11 +1745,11 @@ let isOpen = $state(false);
1670
1745
  examples: [
1671
1746
  {
1672
1747
  title: "Forget Password Page",
1673
- code: `import { PageForgetPassword } from "negodesign"
1674
-
1675
- <PageForgetPassword
1676
- title="Negodesign"
1677
- onSubmit={(data) => console.log(data)}
1748
+ code: `import { PageForgetPassword } from "negodesign"
1749
+
1750
+ <PageForgetPassword
1751
+ title="Negodesign"
1752
+ onSubmit={(data) => console.log(data)}
1678
1753
  />`,
1679
1754
  href: "/login/forget-password/01",
1680
1755
  },
@@ -1695,10 +1770,10 @@ let isOpen = $state(false);
1695
1770
  examples: [
1696
1771
  {
1697
1772
  title: "Reset Password Page",
1698
- code: `import { PageResetPassword } from "negodesign"
1699
-
1700
- <PageResetPassword
1701
- onSubmit={(data) => console.log(data)}
1773
+ code: `import { PageResetPassword } from "negodesign"
1774
+
1775
+ <PageResetPassword
1776
+ onSubmit={(data) => console.log(data)}
1702
1777
  />`,
1703
1778
  href: "/login/reset-password/01",
1704
1779
  },
@@ -1717,10 +1792,10 @@ let isOpen = $state(false);
1717
1792
  examples: [
1718
1793
  {
1719
1794
  title: "OTP Verification Page",
1720
- code: `import { PageOtpVerification } from "negodesign"
1721
-
1722
- <PageOtpVerification
1723
- onSubmit={(data) => console.log(data)}
1795
+ code: `import { PageOtpVerification } from "negodesign"
1796
+
1797
+ <PageOtpVerification
1798
+ onSubmit={(data) => console.log(data)}
1724
1799
  />`,
1725
1800
  href: "/login/otp/01",
1726
1801
  },
@@ -1740,26 +1815,26 @@ let isOpen = $state(false);
1740
1815
  examples: [
1741
1816
  {
1742
1817
  title: "Tailored Logistics Cards",
1743
- code: `import { Section01 } from "negodesign"
1744
- import {
1745
- ShoppingBag01Icon,
1746
- FactoryIcon,
1747
- Stethoscope02Icon,
1748
- ComputerNetworkIcon,
1749
- } from "@hugeicons/core-free-icons";
1750
-
1751
- <Section01
1752
- title="Tailored Logistics for Every Business"
1753
- description="At /XION, we understand that every industry has unique logistics challenges."
1754
- items={[
1755
- { id: "1", icon: ShoppingBag01Icon, title: "Retail & E-commerce", description: "Streamline your fulfillment process." },
1756
- { id: "2", icon: FactoryIcon, title: "Manufacturing", description: "Optimize your supply chain.", isActive: true },
1757
- { id: "3", icon: Stethoscope02Icon, title: "Healthcare & Pharmacy", description: "Ensure the safe delivery of products." },
1758
- { id: "4", icon: ComputerNetworkIcon, title: "Technology & Electronics", description: "Handle high-value, sensitive products." },
1759
- ]}
1760
- onSelect={(id) => console.log(id)}
1761
- onPrev={() => console.log("prev")}
1762
- onNext={() => console.log("next")}
1818
+ code: `import { Section01 } from "negodesign"
1819
+ import {
1820
+ ShoppingBag01Icon,
1821
+ FactoryIcon,
1822
+ Stethoscope02Icon,
1823
+ ComputerNetworkIcon,
1824
+ } from "@hugeicons/core-free-icons";
1825
+
1826
+ <Section01
1827
+ title="Tailored Logistics for Every Business"
1828
+ description="At /XION, we understand that every industry has unique logistics challenges."
1829
+ items={[
1830
+ { id: "1", icon: ShoppingBag01Icon, title: "Retail & E-commerce", description: "Streamline your fulfillment process." },
1831
+ { id: "2", icon: FactoryIcon, title: "Manufacturing", description: "Optimize your supply chain.", isActive: true },
1832
+ { id: "3", icon: Stethoscope02Icon, title: "Healthcare & Pharmacy", description: "Ensure the safe delivery of products." },
1833
+ { id: "4", icon: ComputerNetworkIcon, title: "Technology & Electronics", description: "Handle high-value, sensitive products." },
1834
+ ]}
1835
+ onSelect={(id) => console.log(id)}
1836
+ onPrev={() => console.log("prev")}
1837
+ onNext={() => console.log("next")}
1763
1838
  />`,
1764
1839
  href: "/section/01",
1765
1840
  },
@@ -1787,19 +1862,19 @@ import {
1787
1862
  examples: [
1788
1863
  {
1789
1864
  title: "Innovation Features Section",
1790
- code: `import { Section02 } from "negodesign"
1791
-
1792
- <Section02
1793
- title="Innovation that Moves Your Business"
1794
- description="We leverage the latest technology to improve the way we manage your shipments."
1795
- image="/images/container.jpg"
1796
- imageAlt="Shipping container"
1797
- features={[
1798
- { title: "Real-Time Tracking", description: "Stay up-to-date with your shipments from pick-up to delivery.", link: "/tracking", linkLabel: "Learn More" },
1799
- { title: "Data Analytics", description: "Gain insights into your supply chain.", link: "/analytics" },
1800
- { title: "Automated Updates", description: "Receive timely notifications about your shipments.", link: "/updates" },
1801
- { title: "Secure Portal", description: "Access your account anytime with our secure online portal.", link: "/portal" },
1802
- ]}
1865
+ code: `import { Section02 } from "negodesign"
1866
+
1867
+ <Section02
1868
+ title="Innovation that Moves Your Business"
1869
+ description="We leverage the latest technology to improve the way we manage your shipments."
1870
+ image="/images/container.jpg"
1871
+ imageAlt="Shipping container"
1872
+ features={[
1873
+ { title: "Real-Time Tracking", description: "Stay up-to-date with your shipments from pick-up to delivery.", link: "/tracking", linkLabel: "Learn More" },
1874
+ { title: "Data Analytics", description: "Gain insights into your supply chain.", link: "/analytics" },
1875
+ { title: "Automated Updates", description: "Receive timely notifications about your shipments.", link: "/updates" },
1876
+ { title: "Secure Portal", description: "Access your account anytime with our secure online portal.", link: "/portal" },
1877
+ ]}
1803
1878
  />`,
1804
1879
  href: "/section/02",
1805
1880
  },
@@ -1826,23 +1901,23 @@ import {
1826
1901
  examples: [
1827
1902
  {
1828
1903
  title: "Solutions Section",
1829
- code: `import { Section03 } from "negodesign"
1830
- import {
1831
- Globe01Icon,
1832
- CustomServiceIcon,
1833
- ArtificialIntelligence02Icon,
1834
- Award01Icon,
1835
- } from "@hugeicons/core-free-icons";
1836
-
1837
- <Section03
1838
- title="We specialize in providing reliable and efficient solutions"
1839
- description="Whether you need to streamline your supply chain, improve delivery times, or expand your reach globally, we're here to help you achieve your goals with precision and speed."
1840
- items={[
1841
- { id: "1", icon: Globe01Icon, title: "Global Reach", description: "With a network, we ensure that your business can reach new markets effortlessly." },
1842
- { id: "2", icon: CustomServiceIcon, title: "Custom Solutions", description: "We don't believe in a one-size-fits-all. We design logistics solutions tailored to your business needs." },
1843
- { id: "3", icon: ArtificialIntelligence02Icon, title: "Technology-Driven", description: "Our cutting-edge technology enables real-time tracking, data analytics, and seamless coordination." },
1844
- { id: "4", icon: Award01Icon, title: "Proven Expertise", description: "With over 10 years in the logistics industry, we have mastered the art of moving goods efficiently." },
1845
- ]}
1904
+ code: `import { Section03 } from "negodesign"
1905
+ import {
1906
+ Globe01Icon,
1907
+ CustomServiceIcon,
1908
+ ArtificialIntelligence02Icon,
1909
+ Award01Icon,
1910
+ } from "@hugeicons/core-free-icons";
1911
+
1912
+ <Section03
1913
+ title="We specialize in providing reliable and efficient solutions"
1914
+ description="Whether you need to streamline your supply chain, improve delivery times, or expand your reach globally, we're here to help you achieve your goals with precision and speed."
1915
+ items={[
1916
+ { id: "1", icon: Globe01Icon, title: "Global Reach", description: "With a network, we ensure that your business can reach new markets effortlessly." },
1917
+ { id: "2", icon: CustomServiceIcon, title: "Custom Solutions", description: "We don't believe in a one-size-fits-all. We design logistics solutions tailored to your business needs." },
1918
+ { id: "3", icon: ArtificialIntelligence02Icon, title: "Technology-Driven", description: "Our cutting-edge technology enables real-time tracking, data analytics, and seamless coordination." },
1919
+ { id: "4", icon: Award01Icon, title: "Proven Expertise", description: "With over 10 years in the logistics industry, we have mastered the art of moving goods efficiently." },
1920
+ ]}
1846
1921
  />`,
1847
1922
  href: "/section/03",
1848
1923
  },