negodesign 0.0.73 → 0.0.75

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 (573) hide show
  1. package/README.md +133 -133
  2. package/dist/components/NegoDesign.svelte +21 -21
  3. package/dist/components/pages/admin/01/ui/AdminContent.svelte +14 -14
  4. package/dist/components/pages/admin/01/ui/AdminPanel.svelte +46 -46
  5. package/dist/components/pages/company-profile/shared/ProfileProducts.svelte +2 -2
  6. package/dist/components/pages/company-profile/types.d.ts +1 -1
  7. package/dist/components/pages/product-details/shared/ProductDetailFilesVertical.svelte +103 -103
  8. package/dist/components/pages/product-details/shared/ProductDetailPrice.svelte +3 -2
  9. package/dist/components/pages/product-details/shared/ProductDetailRating.svelte +2 -1
  10. package/dist/components/pages/product-details/shared/ProductDetailReviews.svelte +2 -1
  11. package/dist/components/pages/product-details/shared/ProductDetailTags.svelte +3 -2
  12. package/dist/components/pages/product-details/shared/ProductPromotionDetails.svelte +1 -1
  13. package/dist/components/pages/profile-user/shared/ProfileUserAddress.svelte +83 -83
  14. package/dist/components/pages/profile-user/shared/ProfileUserTabs.svelte +80 -80
  15. package/dist/components/pages/security/forget-password/01/ui/ForgetPasswordCard.svelte +2 -2
  16. package/dist/components/pages/security/forget-password/01/ui/FormForgetPassword.svelte +4 -4
  17. package/dist/components/pages/security/forget-password/01/ui/PageForgetPassword01.svelte +2 -2
  18. package/dist/components/pages/security/login/01/ui/FormLogin.svelte +11 -12
  19. package/dist/components/pages/security/login/01/ui/FormLogin.svelte.d.ts +2 -1
  20. package/dist/components/pages/security/login/01/ui/FormLoginEmailPassword.svelte +4 -3
  21. package/dist/components/pages/security/login/01/ui/FormLoginEmailPassword.svelte.d.ts +2 -1
  22. package/dist/components/pages/security/login/01/ui/FormLoginPhonePassword.svelte +4 -3
  23. package/dist/components/pages/security/login/01/ui/FormLoginPhonePassword.svelte.d.ts +2 -1
  24. package/dist/components/pages/security/login/01/ui/FormLoginUsernamePassword.svelte +4 -3
  25. package/dist/components/pages/security/login/01/ui/FormLoginUsernamePassword.svelte.d.ts +2 -1
  26. package/dist/components/pages/security/login/01/ui/FormRegister.svelte +28 -28
  27. package/dist/components/pages/security/login/01/ui/LoginCard.svelte +109 -107
  28. package/dist/components/pages/security/login/01/ui/LoginCard.svelte.d.ts +2 -1
  29. package/dist/components/pages/security/login/01/ui/PageLogin01.svelte +5 -3
  30. package/dist/components/pages/security/login/02/ui/FormLogin02.svelte +70 -0
  31. package/dist/components/pages/security/login/02/ui/FormLogin02.svelte.d.ts +10 -0
  32. package/dist/components/pages/security/login/02/ui/FormLoginEmailPassword02.svelte +24 -0
  33. package/dist/components/pages/security/login/02/ui/FormLoginEmailPassword02.svelte.d.ts +9 -0
  34. package/dist/components/pages/security/login/02/ui/FormLoginPhonePassword02.svelte +24 -0
  35. package/dist/components/pages/security/login/02/ui/FormLoginPhonePassword02.svelte.d.ts +9 -0
  36. package/dist/components/pages/security/login/02/ui/FormLoginUsernamePassword02.svelte +24 -0
  37. package/dist/components/pages/security/login/02/ui/FormLoginUsernamePassword02.svelte.d.ts +9 -0
  38. package/dist/components/pages/security/login/02/ui/LeftHero02.svelte +111 -0
  39. package/dist/components/pages/security/login/02/ui/LeftHero02.svelte.d.ts +10 -0
  40. package/dist/components/pages/security/login/02/ui/LoginCard02.svelte +107 -0
  41. package/dist/components/pages/security/login/02/ui/LoginCard02.svelte.d.ts +13 -0
  42. package/dist/components/pages/security/login/02/ui/PageLogin02.svelte +69 -0
  43. package/dist/components/pages/security/login/02/ui/PageLogin02.svelte.d.ts +4 -0
  44. package/dist/components/pages/security/login/03/ui/FormLogin03.svelte +87 -0
  45. package/dist/components/pages/security/login/03/ui/FormLogin03.svelte.d.ts +10 -0
  46. package/dist/components/pages/security/login/03/ui/FormLoginEmailPassword03.svelte +24 -0
  47. package/dist/components/pages/security/login/03/ui/FormLoginEmailPassword03.svelte.d.ts +9 -0
  48. package/dist/components/pages/security/login/03/ui/FormLoginPhonePassword03.svelte +24 -0
  49. package/dist/components/pages/security/login/03/ui/FormLoginPhonePassword03.svelte.d.ts +9 -0
  50. package/dist/components/pages/security/login/03/ui/FormLoginUsernamePassword03.svelte +24 -0
  51. package/dist/components/pages/security/login/03/ui/FormLoginUsernamePassword03.svelte.d.ts +9 -0
  52. package/dist/components/pages/security/login/03/ui/LeftHero03.svelte +114 -0
  53. package/dist/components/pages/security/login/03/ui/LeftHero03.svelte.d.ts +10 -0
  54. package/dist/components/pages/security/login/03/ui/LoginCard03.svelte +134 -0
  55. package/dist/components/pages/security/login/03/ui/LoginCard03.svelte.d.ts +13 -0
  56. package/dist/components/pages/security/login/03/ui/PageLogin03.svelte +69 -0
  57. package/dist/components/pages/security/login/03/ui/PageLogin03.svelte.d.ts +4 -0
  58. package/dist/components/pages/security/login/PageLogin.svelte +30 -22
  59. package/dist/components/pages/security/login/PageLogin.svelte.d.ts +1 -1
  60. package/dist/components/pages/security/login/types.d.ts +12 -2
  61. package/dist/components/pages/security/otp-verification/01/ui/FormOtpVerification.svelte +2 -2
  62. package/dist/components/pages/security/otp-verification/01/ui/OtpVerificationCard.svelte +2 -2
  63. package/dist/components/pages/security/otp-verification/01/ui/PageOtpVerification01.svelte +2 -2
  64. package/dist/components/pages/security/reset-password/01/ui/FormResetPassword.svelte +4 -4
  65. package/dist/components/pages/security/reset-password/01/ui/PageResetPassword01.svelte +2 -2
  66. package/dist/components/pages/security/reset-password/01/ui/ResetPasswordCard.svelte +2 -2
  67. package/dist/components/ui/avatar/avatar-fallback.svelte +29 -29
  68. package/dist/components/ui/avatar/avatar-image.svelte +38 -38
  69. package/dist/components/ui/avatar/avatar.svelte +39 -39
  70. package/dist/components/ui/badge/badge.svelte +46 -46
  71. package/dist/components/{core → ui}/banner/AdCardBanner.svelte +74 -74
  72. package/dist/components/{core → ui}/banner/CtaCardBanner.svelte +118 -118
  73. package/dist/components/{core → ui}/banner/CtaCardImageBanner.svelte +94 -94
  74. package/dist/components/{core/breadcrumb → ui/breadcrumb/core}/breadcrumb-list.svelte +31 -31
  75. package/dist/components/{core → ui}/button/ButtonBack.svelte +18 -18
  76. package/dist/components/{core → ui}/button/ButtonBack.svelte.d.ts +1 -1
  77. package/dist/components/{core → ui}/button/ButtonLogin.svelte +15 -15
  78. package/dist/components/{core → ui}/button/ButtonLogin.svelte.d.ts +1 -1
  79. package/dist/components/{core → ui}/button/ButtonLoginWith.svelte +57 -57
  80. package/dist/components/{core → ui}/button/ButtonLoginWith.svelte.d.ts +1 -1
  81. package/dist/components/{core → ui}/button/ButtonSend.svelte +15 -15
  82. package/dist/components/{core → ui}/button/ButtonSend.svelte.d.ts +1 -1
  83. package/dist/components/ui/button/button.svelte +85 -85
  84. package/dist/components/{core/card → ui/card/core}/highlight/01/CardHighlight01.svelte +103 -103
  85. package/dist/components/{core/card → ui/card/core}/highlight/02/CardHighlight02.svelte +99 -99
  86. package/dist/components/{core/card → ui/card/core}/highlight/CardHighlight.svelte +22 -22
  87. package/dist/components/{core/card → ui/card/core}/media/01/CardMedia01.svelte +133 -133
  88. package/dist/components/{core/card → ui/card/core}/media/02/CardMedia02.svelte +127 -127
  89. package/dist/components/{core/card → ui/card/core}/media/CardMedia.svelte +18 -18
  90. package/dist/components/{core/card → ui/card/core}/product/01/CardProduct01.svelte +136 -136
  91. package/dist/components/{core/card → ui/card/core}/product/02/CardProduct02.svelte +124 -124
  92. package/dist/components/{core/card → ui/card/core}/product/CardProduct.svelte +22 -22
  93. package/dist/components/{core/card → ui/card/core}/profile/01/CardProfile01.svelte +134 -134
  94. package/dist/components/{core/card → ui/card/core}/profile/02/CardProfile02.svelte +132 -132
  95. package/dist/components/{core/card → ui/card/core}/profile/CardProfile.svelte +18 -18
  96. package/dist/components/{core/card → ui/card/core}/promotion/CardPromotion.svelte +139 -139
  97. package/dist/components/{core/card → ui/card/core}/promotion/CardPromotionPrice.svelte +32 -32
  98. package/dist/components/{core/card → ui/card/core}/shared/CardButton.svelte +42 -42
  99. package/dist/components/{core/card → ui/card/core}/shared/CardCart.svelte +36 -36
  100. package/dist/components/{core/card → ui/card/core}/shared/CardDescription.svelte +41 -41
  101. package/dist/components/{core/card → ui/card/core}/shared/CardFavorite.svelte +33 -33
  102. package/dist/components/{core/card → ui/card/core}/shared/CardLogo.svelte +19 -19
  103. package/dist/components/{core/card → ui/card/core}/shared/CardPhoneOrWhatsapp.svelte +45 -45
  104. package/dist/components/{core/card → ui/card/core}/shared/CardStarRating.svelte +24 -24
  105. package/dist/components/{core/card → ui/card/core}/shared/CardTags.svelte +95 -95
  106. package/dist/components/{core/card → ui/card/core}/shared/CardThumbnailVideo.svelte +232 -232
  107. package/dist/components/{core/card → ui/card/core}/shared/CardTitlePrice.svelte +24 -24
  108. package/dist/components/{core/card → ui/card/core}/shared/TruncatableText.svelte +49 -49
  109. package/dist/components/ui/carousel/carousel-content.svelte +56 -56
  110. package/dist/components/ui/carousel/carousel-item.svelte +29 -29
  111. package/dist/components/ui/carousel/carousel-next.svelte +40 -40
  112. package/dist/components/ui/carousel/carousel-previous.svelte +40 -40
  113. package/dist/components/ui/carousel/carousel.svelte +225 -225
  114. package/dist/components/{core/carousel → ui/carousel/core}/badge/ui/CarouselBadge.svelte +108 -108
  115. package/dist/components/{core/carousel → ui/carousel/core}/grid/media/types.d.ts +3 -3
  116. package/dist/components/{core/carousel → ui/carousel/core}/grid/media/ui/CarouselGridMedia.svelte +6 -6
  117. package/dist/components/{core/carousel → ui/carousel/core}/grid/media/ui/CarouselGridMedia.svelte.d.ts +1 -1
  118. package/dist/components/{core/carousel → ui/carousel/core}/grid/product/types.d.ts +3 -3
  119. package/dist/components/{core/carousel → ui/carousel/core}/grid/product/ui/CarouselGridProduct.svelte +5 -5
  120. package/dist/components/{core/carousel → ui/carousel/core}/grid/profile/types.d.ts +2 -2
  121. package/dist/components/{core/carousel → ui/carousel/core}/grid/profile/ui/CarouselGridProfile.svelte +6 -6
  122. package/dist/components/{core/carousel → ui/carousel/core}/grid/profile/ui/CarouselGridProfile.svelte.d.ts +1 -1
  123. package/dist/components/{core/carousel → ui/carousel/core}/grid/promotion/types.d.ts +2 -2
  124. package/dist/components/{core/carousel → ui/carousel/core}/grid/promotion/ui/CarouselGridPromotion.svelte +5 -5
  125. package/dist/components/{core/carousel → ui/carousel/core}/grid/shared/ui/CarouselGridSlot.svelte +38 -38
  126. package/dist/components/{core/carousel → ui/carousel/core}/grid/shared/ui/CarouselGridSlot.svelte.d.ts +2 -2
  127. package/dist/components/{core/carousel → ui/carousel/core}/hero/types.d.ts +2 -2
  128. package/dist/components/{core/carousel → ui/carousel/core}/hero/ui/CarouselHero.svelte +181 -181
  129. package/dist/components/{core/carousel → ui/carousel/core}/highlights/types.d.ts +2 -2
  130. package/dist/components/{core/carousel → ui/carousel/core}/highlights/ui/CarouselHighlights.svelte +67 -67
  131. package/dist/components/{core/carousel → ui/carousel/core}/product/types.d.ts +2 -2
  132. package/dist/components/{core/carousel → ui/carousel/core}/product/ui/CarouselProduct.svelte +57 -57
  133. package/dist/components/{core/carousel → ui/carousel/core}/promotion/types.d.ts +2 -2
  134. package/dist/components/{core/carousel → ui/carousel/core}/promotion/ui/CarouselPromotion.svelte +67 -67
  135. package/dist/components/{core/carousel → ui/carousel/core}/shared/ui/CarouselHeader.svelte +59 -59
  136. package/dist/components/ui/checkbox/checkbox.svelte +96 -96
  137. package/dist/components/ui/collapsible/collapsible-content.svelte +30 -30
  138. package/dist/components/ui/collapsible/collapsible-trigger.svelte +51 -51
  139. package/dist/components/ui/collapsible/collapsible.svelte +66 -66
  140. package/dist/components/ui/data-table/flex-render.svelte +40 -40
  141. package/dist/components/{core → ui}/datatable/data/columns-create.d.ts +1 -1
  142. package/dist/components/{core → ui}/datatable/data/columns-create.js +1 -1
  143. package/dist/components/{core → ui}/datatable/data/data-table.d.ts +1 -1
  144. package/dist/components/{core → ui}/datatable/data/resolve-cell-badge.svelte.d.ts +1 -1
  145. package/dist/components/{core → ui}/datatable/data/resolve-cell-badge.svelte.js +2 -2
  146. package/dist/components/{core → ui}/datatable/data/resolve-cell.svelte.d.ts +1 -1
  147. package/dist/components/{core → ui}/datatable/data/resolve-cell.svelte.js +1 -1
  148. package/dist/components/{core → ui}/datatable/data/resolve-header.svelte.d.ts +1 -1
  149. package/dist/components/{core → ui}/datatable/data/resolve-header.svelte.js +1 -1
  150. package/dist/components/{core → ui}/datatable/ui/DataTableActions.svelte +28 -28
  151. package/dist/components/{core → ui}/datatable/ui/DataTableActions.svelte.d.ts +1 -1
  152. package/dist/components/{core → ui}/datatable/ui/DataTableCheckbox.svelte +22 -22
  153. package/dist/components/{core → ui}/datatable/ui/DataTableContent.svelte +59 -59
  154. package/dist/components/{core → ui}/datatable/ui/DataTableContent.svelte.d.ts +1 -1
  155. package/dist/components/{core → ui}/datatable/ui/DataTableCore.svelte +148 -148
  156. package/dist/components/{core → ui}/datatable/ui/DataTableDragHandle.svelte +8 -8
  157. package/dist/components/{core → ui}/datatable/ui/DataTableListFilter.svelte +60 -60
  158. package/dist/components/{core → ui}/datatable/ui/DataTableListFilter.svelte.d.ts +1 -1
  159. package/dist/components/{core → ui}/datatable/ui/DataTableListPagination.svelte +35 -35
  160. package/dist/components/{core → ui}/datatable/ui/DataTableListPagination.svelte.d.ts +1 -1
  161. package/dist/components/{core → ui}/datatable/ui/columns-create.svelte.d.ts +1 -1
  162. package/dist/components/{core → ui}/datatable/ui/columns-create.svelte.js +1 -1
  163. package/dist/components/ui/drawer/drawer-close.svelte +41 -41
  164. package/dist/components/ui/drawer/drawer-content.svelte +81 -81
  165. package/dist/components/ui/drawer/drawer-description.svelte +19 -19
  166. package/dist/components/ui/drawer/drawer-footer.svelte +20 -20
  167. package/dist/components/ui/drawer/drawer-header.svelte +20 -20
  168. package/dist/components/ui/drawer/drawer-nested.svelte +34 -34
  169. package/dist/components/ui/drawer/drawer-overlay.svelte +25 -25
  170. package/dist/components/ui/drawer/drawer-portal.svelte +19 -19
  171. package/dist/components/ui/drawer/drawer-title.svelte +19 -19
  172. package/dist/components/ui/drawer/drawer-trigger.svelte +42 -42
  173. package/dist/components/ui/drawer/drawer.svelte +74 -74
  174. package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-group.svelte +25 -25
  175. package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte +69 -69
  176. package/dist/components/ui/dropdown-menu/dropdown-menu-content.svelte +106 -106
  177. package/dist/components/ui/dropdown-menu/dropdown-menu-group-heading.svelte +27 -27
  178. package/dist/components/ui/dropdown-menu/dropdown-menu-group.svelte +21 -21
  179. package/dist/components/ui/dropdown-menu/dropdown-menu-item.svelte +60 -60
  180. package/dist/components/ui/dropdown-menu/dropdown-menu-label.svelte +27 -27
  181. package/dist/components/ui/dropdown-menu/dropdown-menu-portal.svelte +6 -6
  182. package/dist/components/ui/dropdown-menu/dropdown-menu-radio-group.svelte +43 -43
  183. package/dist/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte +70 -70
  184. package/dist/components/ui/dropdown-menu/dropdown-menu-separator.svelte +20 -20
  185. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-content.svelte +33 -33
  186. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte +57 -57
  187. package/dist/components/ui/dropdown-menu/dropdown-menu-sub.svelte +76 -76
  188. package/dist/components/ui/dropdown-menu/dropdown-menu-trigger.svelte +68 -68
  189. package/dist/components/ui/dropdown-menu/dropdown-menu.svelte +53 -53
  190. package/dist/components/ui/empty/empty-content.svelte +19 -19
  191. package/dist/components/ui/empty/empty-description.svelte +19 -19
  192. package/dist/components/ui/empty/empty-header.svelte +19 -19
  193. package/dist/components/ui/empty/empty-media.svelte +41 -41
  194. package/dist/components/ui/empty/empty-title.svelte +19 -19
  195. package/dist/components/ui/empty/empty.svelte +19 -19
  196. package/dist/components/{core → ui}/footer/ui/Footer.svelte +18 -18
  197. package/dist/components/ui/form/Form.svelte +171 -0
  198. package/dist/components/ui/form/Form.svelte.d.ts +4 -0
  199. package/dist/components/ui/form/types.d.ts +78 -0
  200. package/dist/components/ui/form/ui/input-badges.svelte +214 -0
  201. package/dist/components/ui/form/ui/input-badges.svelte.d.ts +14 -0
  202. package/dist/components/{core → ui}/form/ui/input-base.svelte +81 -81
  203. package/dist/components/{core → ui}/form/ui/input-base.svelte.d.ts +1 -1
  204. package/dist/components/ui/form/ui/input-checkbox.svelte +86 -0
  205. package/dist/components/ui/form/ui/input-checkbox.svelte.d.ts +17 -0
  206. package/dist/components/{core → ui}/form/ui/input-code-otp.svelte +3 -3
  207. package/dist/components/{core → ui}/form/ui/input-code-otp.svelte.d.ts +1 -1
  208. package/dist/components/{core → ui}/form/ui/input-email-or-phone.svelte +23 -23
  209. package/dist/components/{core → ui}/form/ui/input-email-or-phone.svelte.d.ts +1 -1
  210. package/dist/components/{core → ui}/form/ui/input-email.svelte +23 -23
  211. package/dist/components/{core → ui}/form/ui/input-email.svelte.d.ts +1 -1
  212. package/dist/components/{core → ui}/form/ui/input-password-confirm.svelte +23 -23
  213. package/dist/components/{core → ui}/form/ui/input-password-confirm.svelte.d.ts +1 -1
  214. package/dist/components/{core → ui}/form/ui/input-password.svelte +23 -23
  215. package/dist/components/{core → ui}/form/ui/input-password.svelte.d.ts +1 -1
  216. package/dist/components/{core → ui}/form/ui/input-phone.svelte +33 -33
  217. package/dist/components/{core → ui}/form/ui/input-phone.svelte.d.ts +1 -1
  218. package/dist/components/ui/form/ui/input-radio.svelte +82 -0
  219. package/dist/components/ui/form/ui/input-radio.svelte.d.ts +17 -0
  220. package/dist/components/ui/form/ui/input-select.svelte +195 -0
  221. package/dist/components/ui/form/ui/input-select.svelte.d.ts +17 -0
  222. package/dist/components/ui/form/ui/input-textarea.svelte +61 -0
  223. package/dist/components/ui/form/ui/input-textarea.svelte.d.ts +13 -0
  224. package/dist/components/ui/form/ui/input-toggle.svelte +89 -0
  225. package/dist/components/ui/form/ui/input-toggle.svelte.d.ts +11 -0
  226. package/dist/components/{core → ui}/form/ui/input-username.svelte +22 -22
  227. package/dist/components/{core → ui}/form/ui/input-username.svelte.d.ts +1 -1
  228. package/dist/components/{core/grid → ui/grid/core}/ui/01/Grid01.svelte +30 -30
  229. package/dist/components/{core/grid → ui/grid/core}/ui/02/Grid02.svelte +30 -30
  230. package/dist/components/{core/grid → ui/grid/core}/ui/ItemsPanel.svelte +26 -26
  231. package/dist/components/{core/grid → ui/grid/core}/ui/ItemsPanelCarousel.svelte +37 -37
  232. package/dist/components/{core/grid → ui/grid/core}/ui/ItemsPanelGrid.svelte +43 -43
  233. package/dist/components/{core/grid → ui/grid/core}/ui/ItemsSimpleGrid.svelte +45 -45
  234. package/dist/components/{core/grid → ui/grid/core}/ui/shared/DescriptionGrid.svelte +23 -23
  235. package/dist/components/{core/grid → ui/grid/core}/ui/shared/IconRenderGrid.svelte +23 -23
  236. package/dist/components/{core/grid → ui/grid/core}/ui/shared/TitleGrid.svelte +19 -19
  237. package/dist/components/{core → ui}/hero/SimpleHero.svelte +65 -65
  238. package/dist/components/ui/input-otp/input-otp-group.svelte +22 -22
  239. package/dist/components/ui/input-otp/input-otp-separator.svelte +27 -27
  240. package/dist/components/ui/input-otp/input-otp-slot.svelte +63 -63
  241. package/dist/components/ui/input-otp/input-otp.svelte +181 -181
  242. package/dist/components/{core/label → ui/label/core}/LabelOr.svelte +25 -25
  243. package/dist/components/ui/label/label.svelte +19 -19
  244. package/dist/components/ui/language-switcher/language-switcher.svelte +48 -48
  245. package/dist/components/ui/light-switch/light-switch.svelte +48 -48
  246. package/dist/components/{core → ui}/link/link-forget-password.svelte +12 -12
  247. package/dist/components/{core → ui}/link/link-privacy-polity.svelte +12 -12
  248. package/dist/components/{core → ui}/link/link-terms-of-service.svelte +12 -12
  249. package/dist/components/ui/modal/badge/index.d.ts +3 -0
  250. package/dist/components/ui/modal/badge/index.js +2 -0
  251. package/dist/components/ui/modal/badge/types.d.ts +35 -0
  252. package/dist/components/ui/modal/badge/ui/ModalBadgeSelection.svelte +87 -0
  253. package/dist/components/ui/modal/badge/ui/ModalBadgeSelection.svelte.d.ts +4 -0
  254. package/dist/components/ui/modal/core/index.d.ts +3 -0
  255. package/dist/components/ui/modal/core/index.js +2 -0
  256. package/dist/components/ui/modal/core/types.d.ts +82 -0
  257. package/dist/components/ui/modal/core/ui/ModalCore.svelte +129 -0
  258. package/dist/components/ui/modal/core/ui/ModalCore.svelte.d.ts +4 -0
  259. package/dist/components/ui/modal/feedback/index.d.ts +3 -0
  260. package/dist/components/ui/modal/feedback/index.js +2 -0
  261. package/dist/components/ui/modal/feedback/types.d.ts +32 -0
  262. package/dist/components/ui/modal/feedback/ui/ModalFeedback.svelte +135 -0
  263. package/dist/components/ui/modal/feedback/ui/ModalFeedback.svelte.d.ts +4 -0
  264. package/dist/components/ui/modal/form/index.d.ts +3 -0
  265. package/dist/components/ui/modal/form/index.js +2 -0
  266. package/dist/components/ui/modal/form/types.d.ts +38 -0
  267. package/dist/components/ui/modal/form/ui/ModalForm.svelte +67 -0
  268. package/dist/components/ui/modal/form/ui/ModalForm.svelte.d.ts +4 -0
  269. package/dist/components/ui/modal/grid/index.d.ts +5 -0
  270. package/dist/components/ui/modal/grid/index.js +4 -0
  271. package/dist/components/ui/modal/grid/types.d.ts +51 -0
  272. package/dist/components/ui/modal/grid/ui/01/ModalGridSelection01.svelte +83 -0
  273. package/dist/components/ui/modal/grid/ui/01/ModalGridSelection01.svelte.d.ts +4 -0
  274. package/dist/components/ui/modal/grid/ui/02/ModalGridSelection02.svelte +142 -0
  275. package/dist/components/ui/modal/grid/ui/02/ModalGridSelection02.svelte.d.ts +4 -0
  276. package/dist/components/ui/modal/grid/ui/ModalGridSelection.svelte +60 -0
  277. package/dist/components/ui/modal/grid/ui/ModalGridSelection.svelte.d.ts +4 -0
  278. package/dist/components/ui/modal/map/index.d.ts +3 -0
  279. package/dist/components/ui/modal/map/index.js +2 -0
  280. package/dist/components/ui/modal/map/types.d.ts +48 -0
  281. package/dist/components/ui/modal/map/ui/ModalMap.svelte +187 -0
  282. package/dist/components/ui/modal/map/ui/ModalMap.svelte.d.ts +4 -0
  283. package/dist/components/ui/modal/notification/index.d.ts +3 -0
  284. package/dist/components/ui/modal/notification/index.js +2 -0
  285. package/dist/components/ui/modal/notification/types.d.ts +26 -0
  286. package/dist/components/ui/modal/notification/ui/ModalNotification.svelte +65 -0
  287. package/dist/components/ui/modal/notification/ui/ModalNotification.svelte.d.ts +4 -0
  288. package/dist/components/ui/modal/share/index.d.ts +3 -0
  289. package/dist/components/ui/modal/share/index.js +2 -0
  290. package/dist/components/ui/modal/share/types.d.ts +32 -0
  291. package/dist/components/ui/modal/share/ui/ModalShareSelection.svelte +103 -0
  292. package/dist/components/ui/modal/share/ui/ModalShareSelection.svelte.d.ts +4 -0
  293. package/dist/components/ui/modal/upload/index.d.ts +3 -0
  294. package/dist/components/ui/modal/upload/index.js +2 -0
  295. package/dist/components/ui/modal/upload/types.d.ts +79 -0
  296. package/dist/components/ui/modal/upload/ui/ModalUpload.svelte +268 -0
  297. package/dist/components/ui/modal/upload/ui/ModalUpload.svelte.d.ts +4 -0
  298. package/dist/components/ui/nav/data/nav-menu.js +1 -0
  299. package/dist/components/ui/nav/data/types.js +1 -0
  300. package/dist/components/{core → ui}/nav/ui/ComplexMenu.svelte +51 -51
  301. package/dist/components/{core → ui}/nav/ui/Menu.svelte +72 -72
  302. package/dist/components/{core → ui}/nav/ui/SimpleMenu.svelte +14 -14
  303. package/dist/components/{core → ui}/nav/ui/mobile/ComplexMenuMobile.svelte +125 -125
  304. package/dist/components/{core → ui}/nav/ui/mobile/MenuMobile.svelte +54 -54
  305. package/dist/components/{core → ui}/nav/ui/mobile/SimpleMenuMobile.svelte +1 -1
  306. package/dist/components/{core → ui}/nav/ui/shared/CollapsibleNavMenu.svelte +1 -1
  307. package/dist/components/{core → ui}/nav/ui/shared/MenuButton.svelte +51 -51
  308. package/dist/components/{core → ui}/nav/ui/shared/MenuLinks.svelte +40 -40
  309. package/dist/components/{core → ui}/nav/ui/shared/MenuListItem.svelte +44 -44
  310. package/dist/components/{core → ui}/nav/ui/shared/MenuLogo.svelte +13 -13
  311. package/dist/components/{core → ui}/nav/ui/shared/dropdown/DropdownNavigationMenuItem.svelte +1 -1
  312. package/dist/components/{core → ui}/nav/ui/shared/dropdown/DropdownNavigationMenuItemCard.svelte +1 -1
  313. package/dist/components/{core → ui}/nav/ui/shared/dropdown/DropdownNavigationMenuItemGrid.svelte +30 -30
  314. package/dist/components/{core → ui}/nav/ui/shared/dropdown/DropdownNavigationMenuItemList.svelte +1 -1
  315. package/dist/components/{core → ui}/nav/ui/shared/dropdown/DropdownNavigationMenuItems.svelte +1 -1
  316. package/dist/components/{core → ui}/nav/ui/shared/navigation/NavDropdown.svelte +87 -87
  317. package/dist/components/{core → ui}/nav/ui/shared/navigation/NavigationMenuItem.svelte +17 -17
  318. package/dist/components/{core → ui}/nav/ui/shared/navigation/NavigationMenuItemCard.svelte +53 -53
  319. package/dist/components/{core → ui}/nav/ui/shared/navigation/NavigationMenuItemGrid.svelte +36 -36
  320. package/dist/components/{core → ui}/nav/ui/shared/navigation/NavigationMenuItemList.svelte +24 -24
  321. package/dist/components/{core → ui}/nav/ui/shared/navigation/NavigationMenuItems.svelte +21 -21
  322. package/dist/components/{core → ui}/panel/CarouselSlot.svelte +57 -57
  323. package/dist/components/{core → ui}/panel/LeftHero.svelte +114 -117
  324. package/dist/components/{core → ui}/panel/LeftHero.svelte.d.ts +0 -1
  325. package/dist/components/{core → ui}/panel/NotFoundEmpty.svelte +66 -66
  326. package/dist/components/{core → ui}/panel/type.d.ts +1 -1
  327. package/dist/components/ui/panel/type.js +1 -0
  328. package/dist/components/ui/phone-input/country-selector.svelte +86 -86
  329. package/dist/components/ui/phone-input/flag.svelte +11 -11
  330. package/dist/components/ui/phone-input/phone-input.svelte +147 -147
  331. package/dist/components/ui/popover/popover-close.svelte +25 -25
  332. package/dist/components/ui/popover/popover-content.svelte +92 -92
  333. package/dist/components/ui/popover/popover-portal.svelte +6 -6
  334. package/dist/components/ui/popover/popover-trigger.svelte +68 -68
  335. package/dist/components/ui/popover/popover.svelte +53 -53
  336. package/dist/components/{core → ui}/search/SearchInput.svelte +32 -32
  337. package/dist/components/{core → ui}/search/shared/SearchInputCore.svelte +66 -66
  338. package/dist/components/ui/search/types.js +1 -0
  339. package/dist/components/ui/section/Section01.svelte +90 -0
  340. package/dist/components/ui/section/Section01.svelte.d.ts +4 -0
  341. package/dist/components/ui/section/Section02.svelte +68 -0
  342. package/dist/components/ui/section/Section02.svelte.d.ts +4 -0
  343. package/dist/components/ui/section/Section03.svelte +52 -0
  344. package/dist/components/ui/section/Section03.svelte.d.ts +4 -0
  345. package/dist/components/ui/section/index.d.ts +4 -0
  346. package/dist/components/ui/section/index.js +3 -0
  347. package/dist/components/ui/section/types.d.ts +46 -0
  348. package/dist/components/ui/section/types.js +1 -0
  349. package/dist/components/ui/separator/separator.svelte +28 -28
  350. package/dist/components/{core/sidebar → ui/sidebar/core}/MenuBarSidebar.svelte +70 -70
  351. package/dist/components/{core/sidebar → ui/sidebar/core}/MenuBarSidebar.svelte.d.ts +1 -1
  352. package/dist/components/ui/sidebar/core/data/nav-menu-sidebar.js +1 -0
  353. package/dist/components/ui/sidebar/core/data/nav-top-bar-sidebar.js +1 -0
  354. package/dist/components/ui/sidebar/core/data/nav-user-sidebar.js +1 -0
  355. package/dist/components/ui/sidebar/core/types.js +1 -0
  356. package/dist/components/{core/sidebar → ui/sidebar/core}/ui/navbar/NavMenuBarSidebar.svelte +97 -97
  357. package/dist/components/{core/sidebar → ui/sidebar/core}/ui/navbar/NavMenuBottomSidebar.svelte +33 -33
  358. package/dist/components/{core/sidebar → ui/sidebar/core}/ui/navbar/NavMenuBottomSidebar.svelte.d.ts +2 -2
  359. package/dist/components/{core/sidebar → ui/sidebar/core}/ui/navbar/NavMenuTopBarSidebar.svelte +101 -101
  360. package/dist/components/{core/sidebar → ui/sidebar/core}/ui/navbar/NavUserSidebar.svelte +6 -6
  361. package/dist/components/{core/sidebar → ui/sidebar/core}/ui/navbar/NavUserSidebar.svelte.d.ts +1 -1
  362. package/dist/components/{core/sidebar → ui/sidebar/core}/ui/navbar/nav-menu-header-sidebar.svelte +77 -77
  363. package/dist/components/ui/sidebar/sidebar-content.svelte +24 -24
  364. package/dist/components/ui/sidebar/sidebar-footer.svelte +21 -21
  365. package/dist/components/ui/sidebar/sidebar-group-content.svelte +21 -21
  366. package/dist/components/ui/sidebar/sidebar-menu-action.svelte +38 -38
  367. package/dist/components/ui/sidebar/sidebar-menu-button.svelte +70 -70
  368. package/dist/components/ui/sidebar/sidebar-menu-sub-button.svelte +39 -39
  369. package/dist/components/ui/sidebar/sidebar-provider.svelte +62 -62
  370. package/dist/components/ui/sidebar/sidebar-rail.svelte +36 -36
  371. package/dist/components/ui/sidebar/sidebar-separator.svelte +21 -21
  372. package/dist/components/ui/sidebar/sidebar-trigger.svelte +36 -36
  373. package/dist/components/ui/sidebar/sidebar.svelte +118 -118
  374. package/dist/components/ui/skeleton/skeleton.svelte +19 -19
  375. package/dist/components/ui/social-login/social-login.svelte +79 -0
  376. package/dist/components/ui/social-login/social-login.svelte.d.ts +10 -0
  377. package/dist/components/ui/star-rating/star-rating-star.svelte +66 -66
  378. package/dist/components/ui/star-rating/star-rating.svelte +149 -149
  379. package/dist/components/ui/table/table-body.svelte +15 -15
  380. package/dist/components/ui/table/table-caption.svelte +20 -20
  381. package/dist/components/ui/table/table-cell.svelte +15 -15
  382. package/dist/components/ui/table/table-footer.svelte +20 -20
  383. package/dist/components/ui/table/table-head.svelte +15 -15
  384. package/dist/components/ui/table/table-header.svelte +20 -20
  385. package/dist/components/ui/table/table-row.svelte +15 -15
  386. package/dist/components/ui/table/table.svelte +17 -17
  387. package/dist/components/ui/tabs/data/TabModel.js +1 -0
  388. package/dist/components/ui/tabs/types.js +1 -0
  389. package/dist/components/{core → ui}/tabs/ui/tab-underline.svelte +43 -43
  390. package/dist/components/ui/underline-tabs/underline-tabs-content.svelte +33 -33
  391. package/dist/components/ui/underline-tabs/underline-tabs-list.svelte +40 -40
  392. package/dist/components/ui/underline-tabs/underline-tabs-trigger.svelte +91 -91
  393. package/dist/components/ui/underline-tabs/underline-tabs.svelte +61 -61
  394. package/dist/docs/ApiTable.svelte +42 -42
  395. package/dist/docs/CodeBlock.svelte +26 -26
  396. package/dist/docs/DocsHeader.svelte +25 -25
  397. package/dist/docs/DocsSidebar.svelte +98 -98
  398. package/dist/docs/components.d.ts +1 -1
  399. package/dist/docs/components.js +1112 -230
  400. package/dist/globals.css +530 -0
  401. package/dist/i18n/langs/en.d.ts +9 -0
  402. package/dist/i18n/langs/en.js +9 -0
  403. package/dist/i18n/langs/pt.d.ts +9 -0
  404. package/dist/i18n/langs/pt.js +9 -0
  405. package/dist/i18n/translations.d.ts +18 -0
  406. package/dist/index.d.ts +197 -28
  407. package/dist/index.js +197 -28
  408. package/dist/styles/globals.css +283 -283
  409. package/dist/types/index.d.ts +68 -22
  410. package/package.json +81 -81
  411. /package/dist/components/{core → ui}/banner/AdCardBanner.svelte.d.ts +0 -0
  412. /package/dist/components/{core → ui}/banner/CtaCardBanner.svelte.d.ts +0 -0
  413. /package/dist/components/{core → ui}/banner/CtaCardImageBanner.svelte.d.ts +0 -0
  414. /package/dist/components/{core → ui}/banner/NotificationBanner.svelte +0 -0
  415. /package/dist/components/{core → ui}/banner/NotificationBanner.svelte.d.ts +0 -0
  416. /package/dist/components/{core → ui}/banner/types.d.ts +0 -0
  417. /package/dist/components/{core → ui}/banner/types.js +0 -0
  418. /package/dist/components/{core/breadcrumb → ui/breadcrumb/core}/breadcrumb-list.svelte.d.ts +0 -0
  419. /package/dist/components/{core/card → ui/card/core}/highlight/01/CardHighlight01.svelte.d.ts +0 -0
  420. /package/dist/components/{core/card → ui/card/core}/highlight/02/CardHighlight02.svelte.d.ts +0 -0
  421. /package/dist/components/{core/card → ui/card/core}/highlight/CardHighlight.svelte.d.ts +0 -0
  422. /package/dist/components/{core/card → ui/card/core}/highlight/data.d.ts +0 -0
  423. /package/dist/components/{core/card → ui/card/core}/highlight/data.js +0 -0
  424. /package/dist/components/{core/card → ui/card/core}/media/01/CardMedia01.svelte.d.ts +0 -0
  425. /package/dist/components/{core/card → ui/card/core}/media/02/CardMedia02.svelte.d.ts +0 -0
  426. /package/dist/components/{core/card → ui/card/core}/media/CardMedia.svelte.d.ts +0 -0
  427. /package/dist/components/{core/card → ui/card/core}/media/data.d.ts +0 -0
  428. /package/dist/components/{core/card → ui/card/core}/media/data.js +0 -0
  429. /package/dist/components/{core/card → ui/card/core}/product/01/CardProduct01.svelte.d.ts +0 -0
  430. /package/dist/components/{core/card → ui/card/core}/product/02/CardProduct02.svelte.d.ts +0 -0
  431. /package/dist/components/{core/card → ui/card/core}/product/CardProduct.svelte.d.ts +0 -0
  432. /package/dist/components/{core/card → ui/card/core}/product/data.d.ts +0 -0
  433. /package/dist/components/{core/card → ui/card/core}/product/data.js +0 -0
  434. /package/dist/components/{core/card → ui/card/core}/profile/01/CardProfile01.svelte.d.ts +0 -0
  435. /package/dist/components/{core/card → ui/card/core}/profile/02/CardProfile02.svelte.d.ts +0 -0
  436. /package/dist/components/{core/card → ui/card/core}/profile/CardProfile.svelte.d.ts +0 -0
  437. /package/dist/components/{core/card → ui/card/core}/profile/data.d.ts +0 -0
  438. /package/dist/components/{core/card → ui/card/core}/profile/data.js +0 -0
  439. /package/dist/components/{core/card → ui/card/core}/promotion/CardPromotion.svelte.d.ts +0 -0
  440. /package/dist/components/{core/card → ui/card/core}/promotion/CardPromotionPrice.svelte.d.ts +0 -0
  441. /package/dist/components/{core/card → ui/card/core}/promotion/data.d.ts +0 -0
  442. /package/dist/components/{core/card → ui/card/core}/promotion/data.js +0 -0
  443. /package/dist/components/{core/card → ui/card/core}/shared/CardButton.svelte.d.ts +0 -0
  444. /package/dist/components/{core/card → ui/card/core}/shared/CardCart.svelte.d.ts +0 -0
  445. /package/dist/components/{core/card → ui/card/core}/shared/CardDescription.svelte.d.ts +0 -0
  446. /package/dist/components/{core/card → ui/card/core}/shared/CardFavorite.svelte.d.ts +0 -0
  447. /package/dist/components/{core/card → ui/card/core}/shared/CardLogo.svelte.d.ts +0 -0
  448. /package/dist/components/{core/card → ui/card/core}/shared/CardPhoneOrWhatsapp.svelte.d.ts +0 -0
  449. /package/dist/components/{core/card → ui/card/core}/shared/CardStarRating.svelte.d.ts +0 -0
  450. /package/dist/components/{core/card → ui/card/core}/shared/CardTags.svelte.d.ts +0 -0
  451. /package/dist/components/{core/card → ui/card/core}/shared/CardThumbnailVideo.svelte.d.ts +0 -0
  452. /package/dist/components/{core/card → ui/card/core}/shared/CardTitlePrice.svelte.d.ts +0 -0
  453. /package/dist/components/{core/card → ui/card/core}/shared/TruncatableText.svelte.d.ts +0 -0
  454. /package/dist/components/{core/card → ui/card/core}/types.d.ts +0 -0
  455. /package/dist/components/{core/card → ui/card/core}/types.js +0 -0
  456. /package/dist/components/{core/carousel → ui/carousel/core}/badge/type.d.ts +0 -0
  457. /package/dist/components/{core/carousel → ui/carousel/core}/badge/type.js +0 -0
  458. /package/dist/components/{core/carousel → ui/carousel/core}/badge/ui/CarouselBadge.svelte.d.ts +0 -0
  459. /package/dist/components/{core/carousel → ui/carousel/core}/grid/media/types.js +0 -0
  460. /package/dist/components/{core/carousel → ui/carousel/core}/grid/product/types.js +0 -0
  461. /package/dist/components/{core/carousel → ui/carousel/core}/grid/product/ui/CarouselGridProduct.svelte.d.ts +0 -0
  462. /package/dist/components/{core/carousel → ui/carousel/core}/grid/profile/types.js +0 -0
  463. /package/dist/components/{core/carousel → ui/carousel/core}/grid/promotion/types.js +0 -0
  464. /package/dist/components/{core/carousel → ui/carousel/core}/grid/promotion/ui/CarouselGridPromotion.svelte.d.ts +0 -0
  465. /package/dist/components/{core/carousel → ui/carousel/core}/hero/types.js +0 -0
  466. /package/dist/components/{core/carousel → ui/carousel/core}/hero/ui/CarouselHero.svelte.d.ts +0 -0
  467. /package/dist/components/{core/carousel → ui/carousel/core}/highlights/types.js +0 -0
  468. /package/dist/components/{core/carousel → ui/carousel/core}/highlights/ui/CarouselHighlights.svelte.d.ts +0 -0
  469. /package/dist/components/{core/carousel → ui/carousel/core}/product/types.js +0 -0
  470. /package/dist/components/{core/carousel → ui/carousel/core}/product/ui/CarouselProduct.svelte.d.ts +0 -0
  471. /package/dist/components/{core/carousel → ui/carousel/core}/promotion/types.js +0 -0
  472. /package/dist/components/{core/carousel → ui/carousel/core}/promotion/ui/CarouselPromotion.svelte.d.ts +0 -0
  473. /package/dist/components/{core/carousel → ui/carousel/core}/shared/ui/CarouselHeader.svelte.d.ts +0 -0
  474. /package/dist/components/{core/carousel → ui/carousel/core}/types.d.ts +0 -0
  475. /package/dist/components/{core/carousel → ui/carousel/core}/types.js +0 -0
  476. /package/dist/components/{core → ui}/datatable/data/data-table.js +0 -0
  477. /package/dist/components/{core → ui}/datatable/ui/DataTableCheckbox.svelte.d.ts +0 -0
  478. /package/dist/components/{core → ui}/datatable/ui/DataTableCore.svelte.d.ts +0 -0
  479. /package/dist/components/{core → ui}/datatable/ui/DataTableDragHandle.svelte.d.ts +0 -0
  480. /package/dist/components/{core → ui}/footer/types.d.ts +0 -0
  481. /package/dist/components/{core → ui}/footer/types.js +0 -0
  482. /package/dist/components/{core → ui}/footer/ui/01/Footer01.svelte +0 -0
  483. /package/dist/components/{core → ui}/footer/ui/01/Footer01.svelte.d.ts +0 -0
  484. /package/dist/components/{core → ui}/footer/ui/02/Footer02.svelte +0 -0
  485. /package/dist/components/{core → ui}/footer/ui/02/Footer02.svelte.d.ts +0 -0
  486. /package/dist/components/{core → ui}/footer/ui/Footer.svelte.d.ts +0 -0
  487. /package/dist/components/{core → ui}/footer/ui/shared/FooterColumn.svelte +0 -0
  488. /package/dist/components/{core → ui}/footer/ui/shared/FooterColumn.svelte.d.ts +0 -0
  489. /package/dist/components/{core → ui}/footer/ui/shared/FooterNewsLetter.svelte +0 -0
  490. /package/dist/components/{core → ui}/footer/ui/shared/FooterNewsLetter.svelte.d.ts +0 -0
  491. /package/dist/components/{core → ui}/footer/ui/shared/FooterSocialIcon.svelte +0 -0
  492. /package/dist/components/{core → ui}/footer/ui/shared/FooterSocialIcon.svelte.d.ts +0 -0
  493. /package/dist/components/{core → ui}/form/data/InputIconDefault.svelte.d.ts +0 -0
  494. /package/dist/components/{core → ui}/form/data/InputIconDefault.svelte.js +0 -0
  495. /package/dist/components/{core → ui}/form/data/InputLabel.svelte.d.ts +0 -0
  496. /package/dist/components/{core → ui}/form/data/InputLabel.svelte.js +0 -0
  497. /package/dist/components/{core/grid/data → ui/form}/types.js +0 -0
  498. /package/dist/components/{core/grid → ui/grid/core}/data/types.d.ts +0 -0
  499. /package/dist/components/{core/hero → ui/grid/core/data}/types.js +0 -0
  500. /package/dist/components/{core/grid → ui/grid/core}/ui/01/Grid01.svelte.d.ts +0 -0
  501. /package/dist/components/{core/grid → ui/grid/core}/ui/02/Grid02.svelte.d.ts +0 -0
  502. /package/dist/components/{core/grid → ui/grid/core}/ui/ItemsPanel.svelte.d.ts +0 -0
  503. /package/dist/components/{core/grid → ui/grid/core}/ui/ItemsPanelCarousel.svelte.d.ts +0 -0
  504. /package/dist/components/{core/grid → ui/grid/core}/ui/ItemsPanelGrid.svelte.d.ts +0 -0
  505. /package/dist/components/{core/grid → ui/grid/core}/ui/ItemsSimpleGrid.svelte.d.ts +0 -0
  506. /package/dist/components/{core/grid → ui/grid/core}/ui/shared/DescriptionGrid.svelte.d.ts +0 -0
  507. /package/dist/components/{core/grid → ui/grid/core}/ui/shared/IconRenderGrid.svelte.d.ts +0 -0
  508. /package/dist/components/{core/grid → ui/grid/core}/ui/shared/TitleGrid.svelte.d.ts +0 -0
  509. /package/dist/components/{core → ui}/hero/SimpleHero.svelte.d.ts +0 -0
  510. /package/dist/components/{core → ui}/hero/types.d.ts +0 -0
  511. /package/dist/components/{core/nav/data → ui/hero}/types.js +0 -0
  512. /package/dist/components/{core/label → ui/label/core}/LabelOr.svelte.d.ts +0 -0
  513. /package/dist/components/{core → ui}/link/link-forget-password.svelte.d.ts +0 -0
  514. /package/dist/components/{core → ui}/link/link-privacy-polity.svelte.d.ts +0 -0
  515. /package/dist/components/{core → ui}/link/link-terms-of-service.svelte.d.ts +0 -0
  516. /package/dist/components/{core/search → ui/modal/badge}/types.js +0 -0
  517. /package/dist/components/{core/sidebar → ui/modal/core}/types.js +0 -0
  518. /package/dist/components/{core/tabs → ui/modal/feedback}/types.js +0 -0
  519. /package/dist/components/{core/nav/data/nav-menu.js → ui/modal/form/types.js} +0 -0
  520. /package/dist/components/{core/panel/type.js → ui/modal/grid/types.js} +0 -0
  521. /package/dist/components/{core/sidebar/data/nav-menu-sidebar.js → ui/modal/map/types.js} +0 -0
  522. /package/dist/components/{core/sidebar/data/nav-top-bar-sidebar.js → ui/modal/notification/types.js} +0 -0
  523. /package/dist/components/{core/sidebar/data/nav-user-sidebar.js → ui/modal/share/types.js} +0 -0
  524. /package/dist/components/{core/tabs/data/TabModel.js → ui/modal/upload/types.js} +0 -0
  525. /package/dist/components/{core → ui}/nav/data/complex-menu-utils.d.ts +0 -0
  526. /package/dist/components/{core → ui}/nav/data/complex-menu-utils.js +0 -0
  527. /package/dist/components/{core → ui}/nav/data/nav-menu.d.ts +0 -0
  528. /package/dist/components/{core → ui}/nav/data/types.d.ts +0 -0
  529. /package/dist/components/{core → ui}/nav/ui/ComplexMenu.svelte.d.ts +0 -0
  530. /package/dist/components/{core → ui}/nav/ui/Menu.svelte.d.ts +0 -0
  531. /package/dist/components/{core → ui}/nav/ui/SimpleMenu.svelte.d.ts +0 -0
  532. /package/dist/components/{core → ui}/nav/ui/mobile/ComplexMenuMobile.svelte.d.ts +0 -0
  533. /package/dist/components/{core → ui}/nav/ui/mobile/MenuMobile.svelte.d.ts +0 -0
  534. /package/dist/components/{core → ui}/nav/ui/mobile/SimpleMenuMobile.svelte.d.ts +0 -0
  535. /package/dist/components/{core → ui}/nav/ui/shared/CollapsibleNavMenu.svelte.d.ts +0 -0
  536. /package/dist/components/{core → ui}/nav/ui/shared/MenuButton.svelte.d.ts +0 -0
  537. /package/dist/components/{core → ui}/nav/ui/shared/MenuLinks.svelte.d.ts +0 -0
  538. /package/dist/components/{core → ui}/nav/ui/shared/MenuListItem.svelte.d.ts +0 -0
  539. /package/dist/components/{core → ui}/nav/ui/shared/MenuLogo.svelte.d.ts +0 -0
  540. /package/dist/components/{core → ui}/nav/ui/shared/NavMenuItem.svelte +0 -0
  541. /package/dist/components/{core → ui}/nav/ui/shared/NavMenuItem.svelte.d.ts +0 -0
  542. /package/dist/components/{core → ui}/nav/ui/shared/dropdown/DropdownMenuListItem.svelte +0 -0
  543. /package/dist/components/{core → ui}/nav/ui/shared/dropdown/DropdownMenuListItem.svelte.d.ts +0 -0
  544. /package/dist/components/{core → ui}/nav/ui/shared/dropdown/DropdownNavigationMenuItem.svelte.d.ts +0 -0
  545. /package/dist/components/{core → ui}/nav/ui/shared/dropdown/DropdownNavigationMenuItemCard.svelte.d.ts +0 -0
  546. /package/dist/components/{core → ui}/nav/ui/shared/dropdown/DropdownNavigationMenuItemGrid.svelte.d.ts +0 -0
  547. /package/dist/components/{core → ui}/nav/ui/shared/dropdown/DropdownNavigationMenuItemList.svelte.d.ts +0 -0
  548. /package/dist/components/{core → ui}/nav/ui/shared/dropdown/DropdownNavigationMenuItems.svelte.d.ts +0 -0
  549. /package/dist/components/{core → ui}/nav/ui/shared/navigation/NavDropdown.svelte.d.ts +0 -0
  550. /package/dist/components/{core → ui}/nav/ui/shared/navigation/NavigationMenuItem.svelte.d.ts +0 -0
  551. /package/dist/components/{core → ui}/nav/ui/shared/navigation/NavigationMenuItemCard.svelte.d.ts +0 -0
  552. /package/dist/components/{core → ui}/nav/ui/shared/navigation/NavigationMenuItemGrid.svelte.d.ts +0 -0
  553. /package/dist/components/{core → ui}/nav/ui/shared/navigation/NavigationMenuItemList.svelte.d.ts +0 -0
  554. /package/dist/components/{core → ui}/nav/ui/shared/navigation/NavigationMenuItems.svelte.d.ts +0 -0
  555. /package/dist/components/{core → ui}/panel/CarouselSlot.svelte.d.ts +0 -0
  556. /package/dist/components/{core → ui}/panel/NotFoundEmpty.svelte.d.ts +0 -0
  557. /package/dist/components/{core → ui}/search/01/Search01.svelte +0 -0
  558. /package/dist/components/{core → ui}/search/01/Search01.svelte.d.ts +0 -0
  559. /package/dist/components/{core → ui}/search/02/Search02.svelte +0 -0
  560. /package/dist/components/{core → ui}/search/02/Search02.svelte.d.ts +0 -0
  561. /package/dist/components/{core → ui}/search/SearchInput.svelte.d.ts +0 -0
  562. /package/dist/components/{core → ui}/search/shared/SearchInputCore.svelte.d.ts +0 -0
  563. /package/dist/components/{core → ui}/search/types.d.ts +0 -0
  564. /package/dist/components/{core/sidebar → ui/sidebar/core}/data/nav-menu-sidebar.d.ts +0 -0
  565. /package/dist/components/{core/sidebar → ui/sidebar/core}/data/nav-top-bar-sidebar.d.ts +0 -0
  566. /package/dist/components/{core/sidebar → ui/sidebar/core}/data/nav-user-sidebar.d.ts +0 -0
  567. /package/dist/components/{core/sidebar → ui/sidebar/core}/types.d.ts +0 -0
  568. /package/dist/components/{core/sidebar → ui/sidebar/core}/ui/navbar/NavMenuBarSidebar.svelte.d.ts +0 -0
  569. /package/dist/components/{core/sidebar → ui/sidebar/core}/ui/navbar/NavMenuTopBarSidebar.svelte.d.ts +0 -0
  570. /package/dist/components/{core/sidebar → ui/sidebar/core}/ui/navbar/nav-menu-header-sidebar.svelte.d.ts +0 -0
  571. /package/dist/components/{core → ui}/tabs/data/TabModel.d.ts +0 -0
  572. /package/dist/components/{core → ui}/tabs/types.d.ts +0 -0
  573. /package/dist/components/{core → ui}/tabs/ui/tab-underline.svelte.d.ts +0 -0
@@ -1,35 +1,41 @@
1
1
  export const categories = [
2
2
  "Navigation",
3
3
  "Hero",
4
+ "Sections",
4
5
  "Banners",
5
6
  "Cards",
6
7
  "Carousels",
7
8
  "Item Grid",
9
+ "Tabs",
10
+ "Form Inputs",
11
+ "Forms",
12
+ "Modals",
13
+ "Empty States",
8
14
  "Footer",
9
15
  "Admin Panel",
10
16
  "Login / Security",
11
17
  "Full Pages",
12
18
  ];
13
- const navButtonExample = `import { Menu } from "negodesign"
14
-
15
- <Menu
16
- isBorder
17
- isLightSwitch
18
- isLanguageSwitcher
19
- logo={{ label: "Negoturismo" }}
20
- navMenuButton={{
21
- textButtonLogin: "Sign in",
22
- textButtonRegister: "Register",
23
- onclickButtonLogin: () => {},
24
- onclickButtonRegister: () => {},
25
- buttonClass: "bg-primary text-white",
26
- }}
27
- navMenu={{
28
- links: [
29
- { label: "Home", url: "/", icon: Home01Icon },
30
- { label: "Accommodation", url: "/hospedagem", icon: Hotel01Icon },
31
- ],
32
- }}
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
+ }}
33
39
  />`;
34
40
  export const components = [
35
41
  {
@@ -59,12 +65,12 @@ export const components = [
59
65
  examples: [
60
66
  {
61
67
  title: "Search Field",
62
- code: `import { SearchInput } from "negodesign"
63
-
64
- <SearchInput
65
- variant={1}
66
- placeholder="Search..."
67
- 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)}
68
74
  />`,
69
75
  },
70
76
  ],
@@ -87,14 +93,14 @@ export const components = [
87
93
  examples: [
88
94
  {
89
95
  title: "Simple Hero",
90
- code: `import { SimpleHero } from "negodesign"
91
-
92
- <SimpleHero
93
- title="Find your ideal stay"
94
- subTitle="Welcome"
95
- description="Verified hotels, guest houses and apartments."
96
- image="/images/hero.jpg"
97
- 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" }]}
98
104
  />`,
99
105
  href: "/hero",
100
106
  },
@@ -121,24 +127,24 @@ export const components = [
121
127
  examples: [
122
128
  {
123
129
  title: "Carousel Hero",
124
- code: `import { CarouselHero } from "negodesign"
125
-
126
- <CarouselHero
127
- titleClass="md:text-2xl lg:text-4xl"
128
- descriptionClass="text-xs md:text-lg"
129
- simpleMenu={{
130
- logo: { url: "/", label: "Negoturismo", className: "text-white" },
131
- links: [{ label: "Accommodation", url: "#", icon: Hotel01Icon }],
132
- isLanguageSwitcher: false,
133
- isLightSwitch: false,
134
- }}
135
- items={[
136
- {
137
- title: "Find your ideal stay",
138
- description: "Verified hotels, guest houses and apartments.",
139
- image: "https://images.unsplash.com/photo-1566073771259",
140
- },
141
- ]}
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
+ ]}
142
148
  />`,
143
149
  href: "/hero/carousel",
144
150
  },
@@ -168,14 +174,14 @@ export const components = [
168
174
  examples: [
169
175
  {
170
176
  title: "CTA Image Banner",
171
- code: `import { CtaCardImageBanner } from "negodesign"
172
-
173
- <CtaCardImageBanner
174
- title="Let's get in touch"
175
- description="Talk to us and discover the best offers."
176
- primaryText="Contact"
177
- primaryHref="#"
178
- 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"
179
185
  />`,
180
186
  href: "/banner",
181
187
  },
@@ -206,13 +212,13 @@ export const components = [
206
212
  examples: [
207
213
  {
208
214
  title: "Notification Banner",
209
- code: `import { NotificationBanner } from "negodesign"
210
-
211
- <NotificationBanner
212
- strongText="New"
213
- description="New offers available!"
214
- ctaText="View offers"
215
- 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")}
216
222
  />`,
217
223
  },
218
224
  ],
@@ -239,14 +245,14 @@ export const components = [
239
245
  examples: [
240
246
  {
241
247
  title: "Ad Banner",
242
- code: `import { AdCardBanner } from "negodesign"
243
-
244
- <AdCardBanner
245
- tagText="This ad could be yours."
246
- titleHighlight="This ad"
247
- titleMain="could be yours."
248
- buttonText="Learn more"
249
- 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")}
250
256
  />`,
251
257
  href: "/banner/cad-add",
252
258
  },
@@ -272,13 +278,13 @@ export const components = [
272
278
  examples: [
273
279
  {
274
280
  title: "CTA Banner",
275
- code: `import { CtaCardBanner } from "negodesign"
276
-
277
- <CtaCardBanner
278
- title="Let's get in touch"
279
- description="We have the ideal solution for you."
280
- primaryText="Contact"
281
- 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"
282
288
  />`,
283
289
  href: "/banner/card-contact-cta",
284
290
  },
@@ -306,16 +312,16 @@ export const components = [
306
312
  examples: [
307
313
  {
308
314
  title: "Media Card",
309
- code: `import { CardMedia } from "negodesign"
310
-
311
- <CardMedia
312
- {...item}
313
- variant={2}
314
- isImageButtonMaximized
315
- isVideoButtonMaximized
316
- onFavoriteClick={(id) => console.log(id)}
317
- onButtonProfile={(id) => console.log(id)}
318
- 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)}
319
325
  />`,
320
326
  href: "/card/media",
321
327
  },
@@ -353,13 +359,13 @@ export const components = [
353
359
  examples: [
354
360
  {
355
361
  title: "Profile Card",
356
- code: `import { CardProfile } from "negodesign"
357
-
358
- <CardProfile
359
- {...item}
360
- variant={1}
361
- onFavoriteClick={(id) => console.log(id)}
362
- 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)}
363
369
  />`,
364
370
  href: "/card/profile",
365
371
  },
@@ -394,16 +400,16 @@ export const components = [
394
400
  examples: [
395
401
  {
396
402
  title: "Badge Carousel",
397
- code: `import { CarouselBadge } from "negodesign"
398
-
399
- <CarouselBadge
400
- orientation="horizontal"
401
- itemStyle="BORDER"
402
- items={[
403
- { label: "Hotels", value: "hotel", icon: Hotel01Icon },
404
- { label: "Pensions", value: "pensao", icon: BedDoubleIcon },
405
- ]}
406
- 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)}
407
413
  />`,
408
414
  href: "/carousel/badge",
409
415
  },
@@ -435,18 +441,18 @@ export const components = [
435
441
  examples: [
436
442
  {
437
443
  title: "Highlights Carousel",
438
- code: `import { CarouselHighlights } from "negodesign"
439
-
440
- <CarouselHighlights
441
- varient={2}
442
- headerProps={{
443
- title: "Highlights",
444
- description: "The best organizations",
445
- onButtonViewAll: () => {},
446
- }}
447
- items={highlights}
448
- onClickBtn={(id) => console.log(id)}
449
- 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)}
450
456
  />`,
451
457
  href: "/carousel/highlights",
452
458
  },
@@ -473,16 +479,16 @@ export const components = [
473
479
  examples: [
474
480
  {
475
481
  title: "Promotion Carousel",
476
- code: `import { CarouselPromotion } from "negodesign"
477
-
478
- <CarouselPromotion
479
- items={promotions}
480
- headerProps={{
481
- title: "Promotions",
482
- onButtonViewAll: () => {},
483
- }}
484
- onClickBuy={(id) => console.log(id)}
485
- 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)}
486
492
  />`,
487
493
  href: "/carousel/promotion",
488
494
  },
@@ -509,15 +515,15 @@ export const components = [
509
515
  examples: [
510
516
  {
511
517
  title: "Media Grid",
512
- code: `import { CarouselGridMedia } from "negodesign"
513
-
514
- <CarouselGridMedia
515
- items={media}
516
- headerProps={{
517
- title: "Explore",
518
- onButtonViewAll: () => {},
519
- }}
520
- 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)}
521
527
  />`,
522
528
  href: "/carousel/grid/media",
523
529
  },
@@ -548,14 +554,14 @@ export const components = [
548
554
  examples: [
549
555
  {
550
556
  title: "Simple Grid",
551
- code: `import { ItemsSimpleGrid } from "negodesign"
552
-
553
- <ItemsSimpleGrid
554
- variant={1}
555
- items={[
556
- { icon: Coffee03Icon, title: "Coffee", description: "Start your day right" },
557
- ]}
558
- 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)}
559
565
  />`,
560
566
  href: "/grid/simple",
561
567
  },
@@ -579,13 +585,13 @@ export const components = [
579
585
  examples: [
580
586
  {
581
587
  title: "Panel Grid",
582
- code: `import { ItemsPanel } from "negodesign"
583
-
584
- <ItemsPanel
585
- style="grid"
586
- variant={1}
587
- items={items}
588
- 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)}
589
595
  />`,
590
596
  href: "/grid/panel",
591
597
  },
@@ -600,6 +606,501 @@ export const components = [
600
606
  { name: "isLoading", type: "boolean", description: "Shows skeletons" },
601
607
  ],
602
608
  },
609
+ {
610
+ slug: "modal-grid-selection",
611
+ name: "ModalGridSelection",
612
+ category: "Modals",
613
+ description: "Selection modal with a responsive grid of clickable cards. Supports two visual variants: 1 (centered 3-column grid) and 2 (dark 2-column grid with category filters).",
614
+ path: "src/lib/components/ui/modal/grid/ui/ModalGridSelection.svelte",
615
+ importPath: "ModalGridSelection",
616
+ examples: [
617
+ {
618
+ title: "Variant 1 — Centered Grid",
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")}
640
+ />`,
641
+ },
642
+ {
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")}
667
+ />`,
668
+ },
669
+ ],
670
+ props: [
671
+ { name: "variant", type: "1 | 2", description: "Visual variant (1: centered grid, 2: dark grid with categories)", default: "1" },
672
+ { name: "title", type: "string", description: "Required. Modal title", required: true },
673
+ { name: "subtitle", type: "string", description: "Subtitle below the title" },
674
+ { name: "categories", type: "ModelGridCategory[]", description: "Category pills at the top (variant 2 only): { label, value }" },
675
+ { name: "selectedCategory", type: "ModelGridCategory | null", description: "Currently selected category (variant 2, bindable)" },
676
+ { name: "cards", type: "ModelGridCard[]", description: "Required. Selectable cards: { title, description?, icon }", required: true },
677
+ { name: "selectedCard", type: "ModelGridCard | null", description: "Currently selected card (bindable)" },
678
+ { name: "selectedCards", type: "ModelGridCard[]", description: "Selected cards for multiple mode (variant 2, bindable)" },
679
+ { name: "multiple", type: "boolean", description: "Allows multiple card selection (variant 2)", default: "false" },
680
+ { name: "isOpen", type: "boolean", description: "Controls modal visibility (bindable)" },
681
+ { name: "totalSteps", type: "number", description: "Total number of steps for pagination dots", default: "1" },
682
+ { name: "currentStep", type: "number", description: "Current step index", default: "1" },
683
+ { name: "onSelect", type: "(card: ModelGridCard) => void", description: "Called when a card is selected" },
684
+ { name: "onSelectCategory", type: "(category: ModelGridCategory) => void", description: "Called when a category is selected (variant 2)" },
685
+ { name: "onBack", type: "() => void", description: "Called when the Back button is clicked" },
686
+ { name: "onContinue", type: "() => void", description: "Called when the Continue button is clicked" },
687
+ { name: "class", type: "string", description: "Extra container CSS class" },
688
+ ],
689
+ },
690
+ {
691
+ slug: "modal-badge-selection",
692
+ name: "ModalBadgeSelection",
693
+ category: "Modals",
694
+ description: "Selection modal with clickable badge/pill tags, progress bar, and Skip/Continue navigation. Second variation of the modal system.",
695
+ path: "src/lib/components/ui/modal/badge/ui/ModalBadgeSelection.svelte",
696
+ importPath: "ModalBadgeSelection",
697
+ examples: [
698
+ {
699
+ title: "Modal Badge Selection",
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")}
722
+ />`,
723
+ },
724
+ ],
725
+ props: [
726
+ { name: "title", type: "string", description: "Required. Modal title", required: true },
727
+ { name: "subtitle", type: "string", description: "Subtitle below the title" },
728
+ { name: "badges", type: "ModelBadge[]", description: "Required. Selectable badges: { label, value, icon? }", required: true },
729
+ { name: "selectedBadge", type: "ModelBadge | null", description: "Currently selected badge (bindable)" },
730
+ { name: "selectedBadges", type: "ModelBadge[]", description: "Selected badges for multiple mode (bindable)" },
731
+ { name: "multiple", type: "boolean", description: "Allows multiple selection", default: "false" },
732
+ { name: "isOpen", type: "boolean", description: "Controls modal visibility (bindable)" },
733
+ { name: "totalSteps", type: "number", description: "Total number of steps for progress bar", default: "1" },
734
+ { name: "currentStep", type: "number", description: "Current step index", default: "1" },
735
+ { name: "onSelect", type: "(badge: ModelBadge) => void", description: "Called when a badge is selected" },
736
+ { name: "onBack", type: "() => void", description: "Called when the Back button is clicked" },
737
+ { name: "onContinue", type: "() => void", description: "Called when the Continue button is clicked" },
738
+ { name: "onSkip", type: "() => void", description: "Called when Skip This Step is clicked" },
739
+ { name: "class", type: "string", description: "Extra container CSS class" },
740
+ ],
741
+ },
742
+ {
743
+ slug: "modal-share-selection",
744
+ name: "ModalShareSelection",
745
+ category: "Modals",
746
+ description: "Social share modal with network icons, copy-to-clipboard link input, and close button. Third variation of the modal system.",
747
+ path: "src/lib/components/ui/modal/share/ui/ModalShareSelection.svelte",
748
+ importPath: "ModalShareSelection",
749
+ examples: [
750
+ {
751
+ title: "Modal Share Selection",
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
+ networks={[
762
+ { name: "Pinterest", icon: "nd-pinterest-icon", color: "#E60023" },
763
+ { name: "Twitter", icon: "nd-twitter-icon", color: "#1DA1F2" },
764
+ { name: "Instagram", icon: "nd-instagram-icon", color: "#E4405F" },
765
+ { name: "Facebook", icon: "nd-facebook-icon", color: "#1877F2" },
766
+ ]}
767
+ onShare={(network) => console.log(network)}
768
+ onCopy={(link) => console.log(link)}
769
+ />`,
770
+ },
771
+ ],
772
+ props: [
773
+ { name: "title", type: "string", description: "Required. Modal title", required: true },
774
+ { name: "subtitle", type: "string", description: "Subtitle below the title" },
775
+ { name: "networks", type: "ModelSocialShare[]", description: "Required. Social networks: { name, icon, color?, url? }", required: true },
776
+ { name: "linkLabel", type: "string", description: "Text above the link input", default: "Or copy link" },
777
+ { name: "linkValue", type: "string", description: "URL to share/copy" },
778
+ { name: "copyText", type: "string", description: "Copy button text", default: "Copy" },
779
+ { name: "copiedText", type: "string", description: "Text after successful copy", default: "Copied!" },
780
+ { name: "isOpen", type: "boolean", description: "Controls modal visibility (bindable)" },
781
+ { name: "onShare", type: "(network: ModelSocialShare) => void", description: "Called when a social network is clicked" },
782
+ { name: "onCopy", type: "(link: string) => void", description: "Called when the link is copied" },
783
+ { name: "onClose", type: "() => void", description: "Called when the modal is closed" },
784
+ { name: "class", type: "string", description: "Extra container CSS class" },
785
+ ],
786
+ },
787
+ {
788
+ slug: "modal-notification",
789
+ name: "ModalNotification",
790
+ category: "Modals",
791
+ description: "Email subscription/notification modal with input field and CTA button. Fourth variation of the modal system.",
792
+ path: "src/lib/components/ui/modal/notification/ui/ModalNotification.svelte",
793
+ importPath: "ModalNotification",
794
+ examples: [
795
+ {
796
+ title: "Modal Notification",
797
+ href: "/modal",
798
+ code: `import { ModalNotification } from "negodesign"
799
+
800
+ let isOpen = $state(false);
801
+
802
+ <ModalNotification
803
+ bind:isOpen
804
+ title="Be the first to know when new content is available"
805
+ description="Sign up to receive tips and tricks on how to create online designs that make people take action."
806
+ placeholder="Your email address"
807
+ buttonText="Sign me up"
808
+ onSubmit={(email) => console.log(email)}
809
+ />`,
810
+ },
811
+ ],
812
+ props: [
813
+ { name: "title", type: "string", description: "Required. Modal title", required: true },
814
+ { name: "description", type: "string", description: "Description text below the title" },
815
+ { name: "placeholder", type: "string", description: "Email input placeholder", default: "Your email address" },
816
+ { name: "buttonText", type: "string", description: "Submit button text", default: "Sign me up" },
817
+ { name: "buttonLoadingText", type: "string", description: "Loading state button text", default: "Signing up..." },
818
+ { name: "isLoading", type: "boolean", description: "Loading state", default: "false" },
819
+ { name: "isOpen", type: "boolean", description: "Controls modal visibility (bindable)" },
820
+ { name: "onSubmit", type: "(email: string) => void", description: "Called when the email is submitted" },
821
+ { name: "onClose", type: "() => void", description: "Called when the modal is closed" },
822
+ { name: "class", type: "string", description: "Extra container CSS class" },
823
+ ],
824
+ },
825
+ {
826
+ slug: "modal-feedback",
827
+ name: "ModalFeedback",
828
+ category: "Modals",
829
+ description: "Feedback modal with a rich text editor toolbar (bold, italic, underline, lists, alignment) and image upload button. Fifth variation of the modal system.",
830
+ path: "src/lib/components/ui/modal/feedback/ui/ModalFeedback.svelte",
831
+ importPath: "ModalFeedback",
832
+ examples: [
833
+ {
834
+ title: "Modal Feedback",
835
+ href: "/modal",
836
+ code: `import { ModalFeedback } from "negodesign"
837
+
838
+ let isOpen = $state(false);
839
+
840
+ <ModalFeedback
841
+ bind:isOpen
842
+ title="Your Feedback"
843
+ icon="🔥"
844
+ onSubmit={(content, images) => console.log(content, images)}
845
+ onAddImage={() => console.log("add image")}
846
+ />`,
847
+ },
848
+ ],
849
+ props: [
850
+ { name: "title", type: "string", description: "Modal title", default: "Your Feedback" },
851
+ { name: "icon", type: "string", description: "Emoji/icon next to the title", default: "🔥" },
852
+ { name: "placeholder", type: "string", description: "Editor placeholder text", default: "Write your feedback here..." },
853
+ { name: "buttonText", type: "string", description: "Submit button text", default: "Send" },
854
+ { name: "buttonLoadingText", type: "string", description: "Loading state button text", default: "Sending..." },
855
+ { name: "cancelText", type: "string", description: "Cancel button text", default: "Cancel" },
856
+ { name: "addImageText", type: "string", description: "Add image button text", default: "Add an Image" },
857
+ { name: "isLoading", type: "boolean", description: "Loading state", default: "false" },
858
+ { name: "isOpen", type: "boolean", description: "Controls modal visibility (bindable)" },
859
+ { name: "onSubmit", type: "(content: string, images: File[]) => void", description: "Called when feedback is submitted" },
860
+ { name: "onAddImage", type: "() => void", description: "Called when Add Image is clicked" },
861
+ { name: "onClose", type: "() => void", description: "Called when the modal is closed" },
862
+ { name: "class", type: "string", description: "Extra container CSS class" },
863
+ ],
864
+ },
865
+ {
866
+ slug: "form",
867
+ name: "Form",
868
+ category: "Forms",
869
+ description: "Responsive form component with a 2-column grid layout. Supports text, email, password, date, phone, select, radio, checkbox, textarea, toggle, and badges inputs. Each field can span 1 or 2 columns via the `fill` property.",
870
+ path: "src/lib/components/ui/form/Form.svelte",
871
+ importPath: "Form",
872
+ examples: [
873
+ {
874
+ title: "Form with multiple input types",
875
+ href: "/form",
876
+ code: `import { Form } from "negodesign"
877
+
878
+ <Form
879
+ onSubmit={(data) => console.log(data)}
880
+ submitText="Save"
881
+ inputs={[
882
+ { type: "text", name: "name", label: "Full Name", placeholder: "John Doe", required: true },
883
+ { type: "email", name: "email", label: "Email", placeholder: "john@example.com", required: true },
884
+ { type: "select", name: "role", label: "Role", options: [
885
+ { value: "ADMIN", label: "Admin" },
886
+ { value: "USER", label: "User" },
887
+ ]},
888
+ { type: "toggle", name: "active", label: "Active", description: "Enable this account" },
889
+ { type: "textarea", name: "bio", label: "Bio", placeholder: "Tell us about yourself", fill: true },
890
+ { type: "badges", name: "tags", label: "Tags", placeholder: "Add tags...", suggestions: ["React", "Svelte", "Vue"] },
891
+ ]}
892
+ />`,
893
+ },
894
+ ],
895
+ props: [
896
+ { name: "inputs", type: "FormInputConfig[]", description: "Required. Array of input configurations: { type, name, value?, label?, placeholder?, onChange?, disabled?, required?, fill?, options?, multiple?, rows?, description?, suggestions?, maxTags? }", required: true },
897
+ { name: "onSubmit", type: "(data: Record<string, string | string[] | boolean>) => void", description: "Called when the form is submitted" },
898
+ { name: "submitText", type: "string", description: "Submit button text", default: "Submit" },
899
+ { name: "submitLoadingText", type: "string", description: "Loading state button text", default: "Submitting..." },
900
+ { name: "isLoading", type: "boolean", description: "Loading state", default: "false" },
901
+ { name: "columns", type: "1 | 2", description: "Number of grid columns", default: "2" },
902
+ { name: "gap", type: "string", description: "Gap between fields", default: "gap-4" },
903
+ { name: "class", type: "string", description: "Extra container CSS class" },
904
+ ],
905
+ },
906
+ {
907
+ slug: "modal-form",
908
+ name: "ModalForm",
909
+ category: "Forms",
910
+ description: "Form inside a modal dialog. Same API as Form with added title, subtitle, and modal controls.",
911
+ path: "src/lib/components/ui/modal/form/ui/ModalForm.svelte",
912
+ importPath: "ModalForm",
913
+ examples: [
914
+ {
915
+ title: "Modal Form",
916
+ href: "/modal",
917
+ code: `import { ModalForm } from "negodesign"
918
+
919
+ let isOpen = $state(false);
920
+
921
+ <ModalForm
922
+ bind:isOpen
923
+ title="Edit Profile"
924
+ subtitle="Update your personal information"
925
+ submitText="Save Changes"
926
+ inputs={[
927
+ { type: "text", name: "name", label: "Name", value: "John Doe", required: true },
928
+ { type: "email", name: "email", label: "Email", value: "john@example.com" },
929
+ { type: "toggle", name: "newsletter", label: "Newsletter", description: "Receive updates" },
930
+ ]}
931
+ onSubmit={(data) => console.log(data)}
932
+ onCancel={() => console.log("cancelled")}
933
+ />`,
934
+ },
935
+ ],
936
+ props: [
937
+ { name: "title", type: "string", description: "Required. Modal title", required: true },
938
+ { name: "subtitle", type: "string", description: "Subtitle below the title" },
939
+ { name: "inputs", type: "FormInputConfig[]", description: "Required. Same as Form inputs", required: true },
940
+ { name: "isOpen", type: "boolean", description: "Controls modal visibility (bindable)" },
941
+ { name: "submitText", type: "string", description: "Submit button text", default: "Submit" },
942
+ { name: "submitLoadingText", type: "string", description: "Loading state button text", default: "Submitting..." },
943
+ { name: "cancelText", type: "string", description: "Cancel button text", default: "Cancel" },
944
+ { name: "isLoading", type: "boolean", description: "Loading state", default: "false" },
945
+ { name: "showCancel", type: "boolean", description: "Shows the cancel button", default: "true" },
946
+ { name: "columns", type: "1 | 2", description: "Number of grid columns", default: "2" },
947
+ { name: "onSubmit", type: "(data) => void", description: "Called when the form is submitted" },
948
+ { name: "onCancel", type: "() => void", description: "Called when Cancel is clicked" },
949
+ { name: "onClose", type: "() => void", description: "Called when the modal is closed" },
950
+ { name: "class", type: "string", description: "Extra container CSS class" },
951
+ ],
952
+ },
953
+ {
954
+ slug: "modal-upload",
955
+ name: "ModalUpload",
956
+ category: "Modals",
957
+ description: "File upload modal with drag and drop area, file list with progress bars, status indicators (uploading/completed/failed), and retry/remove actions.",
958
+ path: "src/lib/components/ui/modal/upload/ui/ModalUpload.svelte",
959
+ importPath: "ModalUpload",
960
+ examples: [
961
+ {
962
+ title: "Modal Upload",
963
+ href: "/modal",
964
+ code: `import { ModalUpload } from "negodesign"
965
+ import type { UploadFile } from "negodesign"
966
+
967
+ let isOpen = $state(false);
968
+ let files = $state<UploadFile[]>([]);
969
+
970
+ <ModalUpload
971
+ bind:isOpen
972
+ bind:files
973
+ acceptedFormats="csv, xlsx, xls"
974
+ multiple
975
+ onFilesSelected={(f) => console.log("selected", f)}
976
+ onUpload={(f) => console.log("upload", f)}
977
+ onRemoveFile={(id) => console.log("remove", id)}
978
+ onDownload={() => console.log("download sample")}
979
+ />`,
980
+ },
981
+ ],
982
+ props: [
983
+ { name: "title", type: "string", description: "Modal title", default: "Upload File" },
984
+ { name: "accept", type: "string", description: "Accepted MIME types" },
985
+ { name: "acceptedFormats", type: "string", description: "Displayed accepted formats text" },
986
+ { name: "files", type: "UploadFile[]", description: "File list (bindable)" },
987
+ { name: "isOpen", type: "boolean", description: "Controls modal visibility (bindable)" },
988
+ { name: "multiple", type: "boolean", description: "Allows multiple files", default: "true" },
989
+ { name: "maxSize", type: "number", description: "Max file size in bytes (0 = unlimited)", default: "0" },
990
+ { name: "isLoading", type: "boolean", description: "Upload loading state" },
991
+ { name: "onFilesSelected", type: "(files: File[]) => void", description: "Called when files are selected" },
992
+ { name: "onUpload", type: "(files: UploadFile[]) => void", description: "Called when Upload is clicked" },
993
+ { name: "onCancel", type: "() => void", description: "Called when Cancel is clicked" },
994
+ { name: "onRemoveFile", type: "(id: string) => void", description: "Called when a file is removed" },
995
+ { name: "onRetryFile", type: "(id: string) => void", description: "Called when retry is clicked on a failed file" },
996
+ { name: "onDownload", type: "() => void", description: "Called when the download sample link is clicked" },
997
+ { name: "onClose", type: "() => void", description: "Called when the modal is closed" },
998
+ { name: "class", type: "string", description: "Extra container CSS class" },
999
+ ],
1000
+ },
1001
+ {
1002
+ slug: "modal-core",
1003
+ name: "ModalCore",
1004
+ category: "Modals",
1005
+ description: "Reusable base shell for all modals. Provides overlay, gradient-bordered container, header, and footer with progress bar and navigation buttons. Supports custom content and footer snippets.",
1006
+ path: "src/lib/components/ui/modal/core/ui/ModalCore.svelte",
1007
+ importPath: "ModalCore",
1008
+ examples: [
1009
+ {
1010
+ title: "Modal Core",
1011
+ code: `import { ModalCore } from "negodesign"
1012
+
1013
+ let isOpen = $state(false);
1014
+
1015
+ <ModalCore
1016
+ bind:isOpen
1017
+ title="Custom Modal"
1018
+ subtitle="With custom content"
1019
+ totalSteps={3}
1020
+ currentStep={1}
1021
+ showProgress
1022
+ showBack
1023
+ showSkip
1024
+ onContinue={() => console.log("continue")}
1025
+ onSkip={() => console.log("skip")}
1026
+ >
1027
+ {#snippet content()}
1028
+ <p>Your custom content here</p>
1029
+ {/snippet}
1030
+ </ModalCore>`,
1031
+ },
1032
+ ],
1033
+ props: [
1034
+ { name: "isOpen", type: "boolean", description: "Required. Controls modal visibility (bindable)", required: true },
1035
+ { name: "title", type: "string", description: "Required. Modal title", required: true },
1036
+ { name: "subtitle", type: "string", description: "Subtitle below the title" },
1037
+ { name: "totalSteps", type: "number", description: "Total number of steps for progress bar", default: "1" },
1038
+ { name: "currentStep", type: "number", description: "Current step index", default: "1" },
1039
+ { name: "showProgress", type: "boolean", description: "Shows the progress bar", default: "true" },
1040
+ { name: "showBack", type: "boolean", description: "Shows the Back button", default: "true" },
1041
+ { name: "showSkip", type: "boolean", description: "Shows the Skip link", default: "false" },
1042
+ { name: "skipText", type: "string", description: "Skip link text", default: "Skip This Step" },
1043
+ { name: "continueText", type: "string", description: "Continue button text", default: "Continue" },
1044
+ { name: "backText", type: "string", description: "Back button text", default: "Back" },
1045
+ { name: "onBack", type: "() => void", description: "Called when Back is clicked" },
1046
+ { name: "onContinue", type: "() => void", description: "Called when Continue is clicked" },
1047
+ { name: "onSkip", type: "() => void", description: "Called when Skip is clicked" },
1048
+ { name: "onClose", type: "() => void", description: "Called when the modal is closed" },
1049
+ { name: "content", type: "Snippet", description: "Custom content snippet" },
1050
+ { name: "footer", type: "Snippet", description: "Custom footer snippet (replaces default)" },
1051
+ { name: "class", type: "string", description: "Extra container CSS class" },
1052
+ ],
1053
+ },
1054
+ {
1055
+ slug: "modal-map",
1056
+ name: "ModalMap",
1057
+ category: "Modals",
1058
+ description: "Location picker modal with a map area, search bar, address/description popup, and business location checkbox. Sixth variation of the modal system.",
1059
+ path: "src/lib/components/ui/modal/map/ui/ModalMap.svelte",
1060
+ importPath: "ModalMap",
1061
+ examples: [
1062
+ {
1063
+ title: "Modal Map",
1064
+ href: "/modal",
1065
+ code: `import { ModalMap } from "negodesign"
1066
+
1067
+ let isOpen = $state(false);
1068
+
1069
+ <ModalMap
1070
+ bind:isOpen
1071
+ title="Location"
1072
+ address="211 Throop Ave Brooklyn, New York City"
1073
+ description="New York is served by three airports."
1074
+ onSearch={(q) => console.log(q)}
1075
+ onApply={(addr, desc) => console.log(addr, desc)}
1076
+ onCancel={() => console.log("cancel")}
1077
+ />`,
1078
+ },
1079
+ ],
1080
+ props: [
1081
+ { name: "title", type: "string", description: "Location popup title", default: "Location" },
1082
+ { name: "searchPlaceholder", type: "string", description: "Search bar placeholder", default: "Search address..." },
1083
+ { name: "address", type: "string", description: "Current address value" },
1084
+ { name: "addressLabel", type: "string", description: "Address field label", default: "Address" },
1085
+ { name: "description", type: "string", description: "Location description/notes" },
1086
+ { name: "descriptionLabel", type: "string", description: "Description field label", default: "Description" },
1087
+ { name: "editButtonText", type: "string", description: "Edit button text", default: "Edit" },
1088
+ { name: "useLocationText", type: "string", description: "Checkbox label text", default: "Use your business location" },
1089
+ { name: "useLocationChecked", type: "boolean", description: "Checkbox state (bindable)" },
1090
+ { name: "cancelText", type: "string", description: "Cancel button text", default: "Cancel" },
1091
+ { name: "applyText", type: "string", description: "Apply button text", default: "Apply" },
1092
+ { name: "isLoading", type: "boolean", description: "Loading state", default: "false" },
1093
+ { name: "isOpen", type: "boolean", description: "Controls modal visibility (bindable)" },
1094
+ { name: "onSearch", type: "(query: string) => void", description: "Called when searching an address" },
1095
+ { name: "onEdit", type: "() => void", description: "Called when Edit is clicked" },
1096
+ { name: "onApply", type: "(address: string, description: string) => void", description: "Called when Apply is clicked" },
1097
+ { name: "onCancel", type: "() => void", description: "Called when Cancel is clicked" },
1098
+ { name: "onToggleLocation", type: "(checked: boolean) => void", description: "Called when the checkbox is toggled" },
1099
+ { name: "onClose", type: "() => void", description: "Called when the modal is closed" },
1100
+ { name: "mapSlot", type: "Snippet", description: "Custom map content snippet" },
1101
+ { name: "class", type: "string", description: "Extra container CSS class" },
1102
+ ],
1103
+ },
603
1104
  {
604
1105
  slug: "footer",
605
1106
  name: "Footer",
@@ -610,17 +1111,17 @@ export const components = [
610
1111
  examples: [
611
1112
  {
612
1113
  title: "Footer",
613
- code: `import { Footer } from "negodesign"
614
-
615
- <Footer
616
- isNewsletter={true}
617
- items={[
618
- { title: "Solutions", items: [{ text: "Marketing" }] },
619
- ]}
620
- socialsMedia={[
621
- { icon: "facebook", text: "Facebook", href: "#" },
622
- ]}
623
- companyName="Negoturismo"
1114
+ code: `import { Footer } from "negodesign"
1115
+
1116
+ <Footer
1117
+ isNewsletter={true}
1118
+ items={[
1119
+ { title: "Solutions", items: [{ text: "Marketing" }] },
1120
+ ]}
1121
+ socialsMedia={[
1122
+ { icon: "facebook", text: "Facebook", href: "#" },
1123
+ ]}
1124
+ companyName="Negoturismo"
624
1125
  />`,
625
1126
  href: "/footer",
626
1127
  },
@@ -647,15 +1148,15 @@ export const components = [
647
1148
  examples: [
648
1149
  {
649
1150
  title: "Admin Panel",
650
- code: `import { AdminPanel } from "negodesign"
651
-
652
- <AdminPanel>
653
- {#snippet appsidebar()}
654
- <MenuBarSidebar {user} {menus} {menusButtons} />
655
- {/snippet}
656
- {#snippet content()}
657
- <AdminContent>...content...</AdminContent>
658
- {/snippet}
1151
+ code: `import { AdminPanel } from "negodesign"
1152
+
1153
+ <AdminPanel>
1154
+ {#snippet appsidebar()}
1155
+ <MenuBarSidebar {user} {menus} {menusButtons} />
1156
+ {/snippet}
1157
+ {#snippet content()}
1158
+ <AdminContent>...content...</AdminContent>
1159
+ {/snippet}
659
1160
  </AdminPanel>`,
660
1161
  href: "/admin/01",
661
1162
  },
@@ -676,13 +1177,13 @@ export const components = [
676
1177
  examples: [
677
1178
  {
678
1179
  title: "Data Table",
679
- code: `import { DataTableCore } from "negodesign"
680
-
681
- <DataTableCore
682
- items={rows}
683
- config={columns}
684
- columnFilter="name"
685
- actions={RowActions}
1180
+ code: `import { DataTableCore } from "negodesign"
1181
+
1182
+ <DataTableCore
1183
+ items={rows}
1184
+ config={columns}
1185
+ columnFilter="name"
1186
+ actions={RowActions}
686
1187
  />`,
687
1188
  href: "/datatable/01",
688
1189
  },
@@ -704,12 +1205,12 @@ export const components = [
704
1205
  examples: [
705
1206
  {
706
1207
  title: "Sidebar",
707
- code: `import { MenuBarSidebar } from "negodesign"
708
-
709
- <MenuBarSidebar
710
- {menus}
711
- {user}
712
- {menusButtons}
1208
+ code: `import { MenuBarSidebar } from "negodesign"
1209
+
1210
+ <MenuBarSidebar
1211
+ {menus}
1212
+ {user}
1213
+ {menusButtons}
713
1214
  />`,
714
1215
  },
715
1216
  ],
@@ -732,15 +1233,15 @@ export const components = [
732
1233
  examples: [
733
1234
  {
734
1235
  title: "Login Page",
735
- code: `import { PageLogin } from "negodesign"
736
-
737
- <PageLogin
738
- title="Negodesign"
739
- formType="EMAIL_PASSWORD"
740
- carousel={[
741
- { title: "Welcome", description: "Access your account", buttonText: "Sign in" },
742
- ]}
743
- onSubmit={(credential) => console.log(credential)}
1236
+ code: `import { PageLogin } from "negodesign"
1237
+
1238
+ <PageLogin
1239
+ title="Negodesign"
1240
+ formType="EMAIL_PASSWORD"
1241
+ carousel={[
1242
+ { title: "Welcome", description: "Access your account", buttonText: "Sign in" },
1243
+ ]}
1244
+ onSubmit={(credential) => console.log(credential)}
744
1245
  />`,
745
1246
  href: "/login/admin/01",
746
1247
  },
@@ -767,13 +1268,13 @@ export const components = [
767
1268
  examples: [
768
1269
  {
769
1270
  title: "Company Profile",
770
- code: `import { CompanyProfile } from "negodesign"
771
-
772
- <CompanyProfile
773
- data={data}
774
- isLoading={false}
775
- onWhatsapp={(id) => console.log(id)}
776
- onEmail={(id) => console.log(id)}
1271
+ code: `import { CompanyProfile } from "negodesign"
1272
+
1273
+ <CompanyProfile
1274
+ data={data}
1275
+ isLoading={false}
1276
+ onWhatsapp={(id) => console.log(id)}
1277
+ onEmail={(id) => console.log(id)}
777
1278
  />`,
778
1279
  href: "/company-profile",
779
1280
  },
@@ -797,14 +1298,14 @@ export const components = [
797
1298
  examples: [
798
1299
  {
799
1300
  title: "Privacy Policy",
800
- code: `import { PrivacyPolicyOrTermsOfUse } from "negodesign"
801
-
802
- <PrivacyPolicyOrTermsOfUse
803
- variant={1}
804
- title="Privacy Policy"
805
- lastUpdated="August 15, 2026"
806
- breadcrumb={[{ label: "Home", href: "/" }]}
807
- sections={[{ id: "intro", title: "Introduction", blocks: [] }]}
1301
+ code: `import { PrivacyPolicyOrTermsOfUse } from "negodesign"
1302
+
1303
+ <PrivacyPolicyOrTermsOfUse
1304
+ variant={1}
1305
+ title="Privacy Policy"
1306
+ lastUpdated="August 15, 2026"
1307
+ breadcrumb={[{ label: "Home", href: "/" }]}
1308
+ sections={[{ id: "intro", title: "Introduction", blocks: [] }]}
808
1309
  />`,
809
1310
  href: "/privacy-policy-or-terms-of-use",
810
1311
  },
@@ -829,15 +1330,15 @@ export const components = [
829
1330
  examples: [
830
1331
  {
831
1332
  title: "Product Details",
832
- code: `import { ProductDetails } from "negodesign"
833
-
834
- <ProductDetails
835
- varient={1}
836
- data={productData}
837
- isLoading={false}
838
- onBuy={(id) => alert("Buy " + id)}
839
- onFavorite={(id) => alert("Favorite " + id)}
840
- onCart={(id) => alert("Cart " + id)}
1333
+ code: `import { ProductDetails } from "negodesign"
1334
+
1335
+ <ProductDetails
1336
+ varient={1}
1337
+ data={productData}
1338
+ isLoading={false}
1339
+ onBuy={(id) => alert("Buy " + id)}
1340
+ onFavorite={(id) => alert("Favorite " + id)}
1341
+ onCart={(id) => alert("Cart " + id)}
841
1342
  />`,
842
1343
  href: "/product-details/01",
843
1344
  },
@@ -863,15 +1364,15 @@ export const components = [
863
1364
  examples: [
864
1365
  {
865
1366
  title: "User Profile",
866
- code: `import { ProfileUser } from "negodesign"
867
-
868
- <ProfileUser
869
- varient={1}
870
- data={userData}
871
- isLoading={false}
872
- onLoginAsUser={(id) => alert(id)}
873
- onAddAddress={() => alert("Add")}
874
- onChangePassword={(p) => alert(JSON.stringify(p))}
1367
+ code: `import { ProfileUser } from "negodesign"
1368
+
1369
+ <ProfileUser
1370
+ varient={1}
1371
+ data={userData}
1372
+ isLoading={false}
1373
+ onLoginAsUser={(id) => alert(id)}
1374
+ onAddAddress={() => alert("Add")}
1375
+ onChangePassword={(p) => alert(JSON.stringify(p))}
875
1376
  />`,
876
1377
  href: "/profile-user/01",
877
1378
  },
@@ -888,6 +1389,387 @@ export const components = [
888
1389
  { name: "userTabs", type: "ProfileUserTabsProps", description: "Tabs style: underline | pill" },
889
1390
  ],
890
1391
  },
1392
+ {
1393
+ slug: "tab-underline",
1394
+ name: "TabUnderline",
1395
+ category: "Tabs",
1396
+ description: "Tab component with underline style. Switches content (Snippet) based on the selected tab.",
1397
+ path: "src/lib/components/ui/tabs/ui/tab-underline.svelte",
1398
+ importPath: "TabUnderline",
1399
+ examples: [
1400
+ {
1401
+ title: "Tab Underline",
1402
+ href: "/tab",
1403
+ code: `import { TabUnderline } from "negodesign"
1404
+
1405
+ <TabUnderline
1406
+ items={[
1407
+ { label: "Tab 1", value: "tab1" },
1408
+ { label: "Tab 2", value: "tab2" },
1409
+ ]}
1410
+ contents={{
1411
+ tab1: () => <p>Content 1</p>,
1412
+ tab2: () => <p>Content 2</p>,
1413
+ }}
1414
+ />`,
1415
+ },
1416
+ ],
1417
+ props: [
1418
+ { name: "items", type: "TabProps[]", description: "Required. Tabs: { item: { label, value }, children? }", required: true },
1419
+ { name: "contents", type: "Record<string, Snippet>", description: "Content snippets keyed by tab value" },
1420
+ { name: "className", type: "string", description: "Extra CSS class" },
1421
+ ],
1422
+ },
1423
+ {
1424
+ slug: "not-found-empty",
1425
+ name: "NotFoundEmpty",
1426
+ category: "Empty States",
1427
+ description: "Empty state with icon, title, description and an action (link or button) for when there is no content to display.",
1428
+ path: "src/lib/components/ui/panel/NotFoundEmpty.svelte",
1429
+ importPath: "NotFoundEmpty",
1430
+ examples: [
1431
+ {
1432
+ title: "Empty State",
1433
+ code: `import { NotFoundEmpty } from "negodesign"
1434
+
1435
+ <NotFoundEmpty
1436
+ title="No results found"
1437
+ description="Try adjusting your search or filter to find what you're looking for."
1438
+ showAction
1439
+ actionLabel="Clear filters"
1440
+ onAction={() => console.log("clear")}
1441
+ />`,
1442
+ },
1443
+ ],
1444
+ props: [
1445
+ { name: "title", type: "string", description: "Required. Empty state title", required: true },
1446
+ { name: "description", type: "string", description: "Supporting text" },
1447
+ { name: "icon", type: "IconSvgElement", description: "Icon displayed in the media area" },
1448
+ { name: "actionHref", type: "string", description: "Action URL (renders a link)" },
1449
+ { name: "actionLabel", type: "string", description: "Action label text" },
1450
+ { name: "onAction", type: "() => void", description: "Called when the action is clicked" },
1451
+ { name: "showAction", type: "boolean", description: "Shows the action" },
1452
+ { name: "children", type: "Snippet", description: "Custom content replacing the default action" },
1453
+ ],
1454
+ },
1455
+ {
1456
+ slug: "admin-content",
1457
+ name: "AdminContent",
1458
+ category: "Admin Panel",
1459
+ description: "Wrapper for admin page content. Applies padding, flex column layout and consistent gaps between sections.",
1460
+ path: "src/lib/components/pages/admin/01/ui/AdminContent.svelte",
1461
+ importPath: "AdminContent",
1462
+ examples: [
1463
+ {
1464
+ title: "Admin Content",
1465
+ code: `import { AdminContent } from "negodesign"
1466
+
1467
+ <AdminContent>
1468
+ <h1>Dashboard</h1>
1469
+ <p>Content goes here</p>
1470
+ </AdminContent>`,
1471
+ },
1472
+ ],
1473
+ props: [
1474
+ { name: "children", type: "Snippet", description: "Required. Page content", required: true },
1475
+ ],
1476
+ },
1477
+ {
1478
+ slug: "input-email",
1479
+ name: "InputEmail",
1480
+ category: "Form Inputs",
1481
+ description: "Email input field with icon and label, using InputBase. Supports two-way binding via value.",
1482
+ path: "src/lib/components/ui/form/ui/input-email.svelte",
1483
+ importPath: "InputEmail",
1484
+ examples: [
1485
+ {
1486
+ title: "Input Email",
1487
+ code: `import { InputEmail } from "negodesign"
1488
+
1489
+ <InputEmail
1490
+ label="Email"
1491
+ placeholder="john@example.com"
1492
+ bind:value={email}
1493
+ />`,
1494
+ },
1495
+ ],
1496
+ props: [
1497
+ { name: "value", type: "string", description: "Bound value" },
1498
+ { name: "label", type: "string", description: "Field label" },
1499
+ { name: "placeholder", type: "string", description: "Placeholder text" },
1500
+ ],
1501
+ },
1502
+ {
1503
+ slug: "input-phone",
1504
+ name: "InputPhone",
1505
+ category: "Form Inputs",
1506
+ description: "Phone input with country selector (code + flag) and format validation.",
1507
+ path: "src/lib/components/ui/form/ui/input-phone.svelte",
1508
+ importPath: "InputPhone",
1509
+ examples: [
1510
+ {
1511
+ title: "Input Phone",
1512
+ code: `import { InputPhone } from "negodesign"
1513
+
1514
+ <InputPhone
1515
+ label="Phone"
1516
+ placeholder="+1 234 567 890"
1517
+ bind:value={phone}
1518
+ />`,
1519
+ },
1520
+ ],
1521
+ props: [
1522
+ { name: "value", type: "string", description: "Bound value" },
1523
+ { name: "label", type: "string", description: "Field label" },
1524
+ { name: "placeholder", type: "string", description: "Placeholder text" },
1525
+ ],
1526
+ },
1527
+ {
1528
+ slug: "input-password",
1529
+ name: "InputPassword",
1530
+ category: "Form Inputs",
1531
+ description: "Password input with visibility toggle (eye icon). Supports two-way binding.",
1532
+ path: "src/lib/components/ui/form/ui/input-password.svelte",
1533
+ importPath: "InputPassword",
1534
+ examples: [
1535
+ {
1536
+ title: "Input Password",
1537
+ code: `import { InputPassword } from "negodesign"
1538
+
1539
+ <InputPassword
1540
+ label="Password"
1541
+ placeholder="Enter your password"
1542
+ bind:value={password}
1543
+ />`,
1544
+ },
1545
+ ],
1546
+ props: [
1547
+ { name: "value", type: "string", description: "Bound value" },
1548
+ { name: "label", type: "string", description: "Field label" },
1549
+ { name: "placeholder", type: "string", description: "Placeholder text" },
1550
+ ],
1551
+ },
1552
+ {
1553
+ slug: "input-username",
1554
+ name: "InputUsername",
1555
+ category: "Form Inputs",
1556
+ description: "Username input field with icon and label.",
1557
+ path: "src/lib/components/ui/form/ui/input-username.svelte",
1558
+ importPath: "InputUsername",
1559
+ examples: [
1560
+ {
1561
+ title: "Input Username",
1562
+ code: `import { InputUsername } from "negodesign"
1563
+
1564
+ <InputUsername
1565
+ label="Username"
1566
+ placeholder="john_doe"
1567
+ bind:value={username}
1568
+ />`,
1569
+ },
1570
+ ],
1571
+ props: [
1572
+ { name: "value", type: "string", description: "Bound value" },
1573
+ { name: "label", type: "string", description: "Field label" },
1574
+ { name: "placeholder", type: "string", description: "Placeholder text" },
1575
+ ],
1576
+ },
1577
+ {
1578
+ slug: "page-forget-password",
1579
+ name: "PageForgetPassword",
1580
+ category: "Login / Security",
1581
+ description: "Password recovery page with hero carousel and form card for requesting a recovery link by email.",
1582
+ path: "src/lib/components/pages/security/forget-password/PageForgetPassword.svelte",
1583
+ importPath: "PageForgetPassword",
1584
+ examples: [
1585
+ {
1586
+ title: "Forget Password Page",
1587
+ code: `import { PageForgetPassword } from "negodesign"
1588
+
1589
+ <PageForgetPassword
1590
+ title="Negodesign"
1591
+ onSubmit={(data) => console.log(data)}
1592
+ />`,
1593
+ href: "/login/forget-password/01",
1594
+ },
1595
+ ],
1596
+ props: [
1597
+ { name: "title", type: "string", description: "Title shown in the hero/header" },
1598
+ { name: "variant", type: "ForgetPasswordVariant", description: "Form variant" },
1599
+ { name: "onSubmit", type: "(data) => Promise<void>", description: "Called on submit" },
1600
+ ],
1601
+ },
1602
+ {
1603
+ slug: "page-reset-password",
1604
+ name: "PageResetPassword",
1605
+ category: "Login / Security",
1606
+ description: "Password reset page with hero carousel and form card for entering and confirming a new password.",
1607
+ path: "src/lib/components/pages/security/reset-password/PageResetPassword.svelte",
1608
+ importPath: "PageResetPassword",
1609
+ examples: [
1610
+ {
1611
+ title: "Reset Password Page",
1612
+ code: `import { PageResetPassword } from "negodesign"
1613
+
1614
+ <PageResetPassword
1615
+ onSubmit={(data) => console.log(data)}
1616
+ />`,
1617
+ href: "/login/reset-password/01",
1618
+ },
1619
+ ],
1620
+ props: [
1621
+ { name: "onSubmit", type: "(data) => Promise<void>", description: "Called on submit" },
1622
+ ],
1623
+ },
1624
+ {
1625
+ slug: "page-otp-verification",
1626
+ name: "PageOtpVerification",
1627
+ category: "Login / Security",
1628
+ description: "OTP verification page with hero carousel and 6-digit code input for login or recovery validation.",
1629
+ path: "src/lib/components/pages/security/otp-verification/PageOtpVerification.svelte",
1630
+ importPath: "PageOtpVerification",
1631
+ examples: [
1632
+ {
1633
+ title: "OTP Verification Page",
1634
+ code: `import { PageOtpVerification } from "negodesign"
1635
+
1636
+ <PageOtpVerification
1637
+ onSubmit={(data) => console.log(data)}
1638
+ />`,
1639
+ href: "/login/otp/01",
1640
+ },
1641
+ ],
1642
+ props: [
1643
+ { name: "initialData", type: "OtpVerificationRequestDto", description: "Initial values" },
1644
+ { name: "onSubmit", type: "(data) => Promise<void>", description: "Called when OTP is validated" },
1645
+ ],
1646
+ },
1647
+ {
1648
+ slug: "section-01",
1649
+ name: "Section01",
1650
+ category: "Sections",
1651
+ description: "Section with a large title, description, navigation arrows, and a horizontal row of selectable cards with icons. Ideal for showcasing business sectors or service categories.",
1652
+ path: "src/lib/components/ui/section/Section01.svelte",
1653
+ importPath: "Section01",
1654
+ examples: [
1655
+ {
1656
+ title: "Tailored Logistics Cards",
1657
+ code: `import { Section01 } from "negodesign"
1658
+ import {
1659
+ ShoppingBag01Icon,
1660
+ FactoryIcon,
1661
+ Stethoscope02Icon,
1662
+ ComputerNetworkIcon,
1663
+ } from "@hugeicons/core-free-icons";
1664
+
1665
+ <Section01
1666
+ title="Tailored Logistics for Every Business"
1667
+ description="At /XION, we understand that every industry has unique logistics challenges."
1668
+ items={[
1669
+ { id: "1", icon: ShoppingBag01Icon, title: "Retail & E-commerce", description: "Streamline your fulfillment process." },
1670
+ { id: "2", icon: FactoryIcon, title: "Manufacturing", description: "Optimize your supply chain.", isActive: true },
1671
+ { id: "3", icon: Stethoscope02Icon, title: "Healthcare & Pharmacy", description: "Ensure the safe delivery of products." },
1672
+ { id: "4", icon: ComputerNetworkIcon, title: "Technology & Electronics", description: "Handle high-value, sensitive products." },
1673
+ ]}
1674
+ onSelect={(id) => console.log(id)}
1675
+ onPrev={() => console.log("prev")}
1676
+ onNext={() => console.log("next")}
1677
+ />`,
1678
+ href: "/section/01",
1679
+ },
1680
+ ],
1681
+ props: [
1682
+ { name: "title", type: "string", description: "Required. Section title", required: true },
1683
+ { name: "description", type: "string", description: "Description text on the right side" },
1684
+ { name: "items", type: "SectionCardItem[]", description: "Cards to display: { id?, icon, title, description?, isActive? }" },
1685
+ { name: "selectedKey", type: "string | number", description: "Currently selected card key" },
1686
+ { name: "titleClass", type: "string", description: "Title CSS class" },
1687
+ { name: "descriptionClass", type: "string", description: "Description CSS class" },
1688
+ { name: "className", type: "string", description: "Section container CSS class" },
1689
+ { name: "onSelect", type: "(id: string | number) => void", description: "Called when a card is clicked" },
1690
+ { name: "onPrev", type: "() => void", description: "Called when the left arrow is clicked" },
1691
+ { name: "onNext", type: "() => void", description: "Called when the right arrow is clicked" },
1692
+ ],
1693
+ },
1694
+ {
1695
+ slug: "section-02",
1696
+ name: "Section02",
1697
+ category: "Sections",
1698
+ description: "Split section with title and image on the left, description and a 2x2 feature grid on the right. Each feature can have a 'Learn More' link.",
1699
+ path: "src/lib/components/ui/section/Section02.svelte",
1700
+ importPath: "Section02",
1701
+ examples: [
1702
+ {
1703
+ title: "Innovation Features Section",
1704
+ code: `import { Section02 } from "negodesign"
1705
+
1706
+ <Section02
1707
+ title="Innovation that Moves Your Business"
1708
+ description="We leverage the latest technology to improve the way we manage your shipments."
1709
+ image="/images/container.jpg"
1710
+ imageAlt="Shipping container"
1711
+ features={[
1712
+ { title: "Real-Time Tracking", description: "Stay up-to-date with your shipments from pick-up to delivery.", link: "/tracking", linkLabel: "Learn More" },
1713
+ { title: "Data Analytics", description: "Gain insights into your supply chain.", link: "/analytics" },
1714
+ { title: "Automated Updates", description: "Receive timely notifications about your shipments.", link: "/updates" },
1715
+ { title: "Secure Portal", description: "Access your account anytime with our secure online portal.", link: "/portal" },
1716
+ ]}
1717
+ />`,
1718
+ href: "/section/02",
1719
+ },
1720
+ ],
1721
+ props: [
1722
+ { name: "title", type: "string", description: "Required. Section title", required: true },
1723
+ { name: "description", type: "string", description: "Description text above the features" },
1724
+ { name: "image", type: "string", description: "Image URL displayed on the left" },
1725
+ { name: "imageAlt", type: "string", description: "Image alt text" },
1726
+ { name: "features", type: "SectionFeatureItem[]", description: "Feature items: { title, description?, link?, linkLabel? }" },
1727
+ { name: "titleClass", type: "string", description: "Title CSS class" },
1728
+ { name: "descriptionClass", type: "string", description: "Description CSS class" },
1729
+ { name: "className", type: "string", description: "Section container CSS class" },
1730
+ { name: "imageClass", type: "string", description: "Image CSS class" },
1731
+ ],
1732
+ },
1733
+ {
1734
+ slug: "section-03",
1735
+ name: "Section03",
1736
+ category: "Sections",
1737
+ description: "Full-width section with a large title, description, and a 4-column feature grid with icons. Perfect for highlighting key value propositions or company strengths.",
1738
+ path: "src/lib/components/ui/section/Section03.svelte",
1739
+ importPath: "Section03",
1740
+ examples: [
1741
+ {
1742
+ title: "Solutions Section",
1743
+ code: `import { Section03 } from "negodesign"
1744
+ import {
1745
+ Globe01Icon,
1746
+ CustomServiceIcon,
1747
+ ArtificialIntelligence02Icon,
1748
+ Award01Icon,
1749
+ } from "@hugeicons/core-free-icons";
1750
+
1751
+ <Section03
1752
+ title="We specialize in providing reliable and efficient solutions"
1753
+ 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."
1754
+ items={[
1755
+ { id: "1", icon: Globe01Icon, title: "Global Reach", description: "With a network, we ensure that your business can reach new markets effortlessly." },
1756
+ { 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." },
1757
+ { id: "3", icon: ArtificialIntelligence02Icon, title: "Technology-Driven", description: "Our cutting-edge technology enables real-time tracking, data analytics, and seamless coordination." },
1758
+ { 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." },
1759
+ ]}
1760
+ />`,
1761
+ href: "/section/03",
1762
+ },
1763
+ ],
1764
+ props: [
1765
+ { name: "title", type: "string", description: "Required. Section title", required: true },
1766
+ { name: "description", type: "string", description: "Description text on the right" },
1767
+ { name: "items", type: "SectionCardItem[]", description: "Feature items: { id?, icon, title, description? }" },
1768
+ { name: "titleClass", type: "string", description: "Title CSS class" },
1769
+ { name: "descriptionClass", type: "string", description: "Description CSS class" },
1770
+ { name: "className", type: "string", description: "Section container CSS class" },
1771
+ ],
1772
+ },
891
1773
  ];
892
1774
  export function getComponent(slug) {
893
1775
  return components.find((c) => c.slug === slug);