negodesign 0.0.80 → 0.0.82

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (278) hide show
  1. package/README.md +133 -133
  2. package/dist/components/NegoDesign.svelte +21 -21
  3. package/dist/components/pages/admin/01/ui/AdminContent.svelte +14 -14
  4. package/dist/components/pages/admin/01/ui/AdminPanel.svelte +46 -46
  5. package/dist/components/pages/product-details/shared/ProductDetailFilesVertical.svelte +103 -103
  6. package/dist/components/pages/profile-user/shared/ProfileUserAddress.svelte +83 -83
  7. package/dist/components/pages/profile-user/shared/ProfileUserTabs.svelte +80 -80
  8. package/dist/components/pages/security/auth/PageAuth01.svelte +62 -62
  9. package/dist/components/pages/security/auth/PageAuth02.svelte +40 -40
  10. package/dist/components/pages/security/auth/PageAuth03.svelte +40 -40
  11. package/dist/components/pages/security/login/01/ui/FormLogin.svelte +91 -63
  12. package/dist/components/pages/security/login/01/ui/FormLogin.svelte.d.ts +2 -0
  13. package/dist/components/pages/security/login/01/ui/FormLoginEmailPassword.svelte +49 -26
  14. package/dist/components/pages/security/login/01/ui/FormLoginEmailPassword.svelte.d.ts +2 -0
  15. package/dist/components/pages/security/login/01/ui/FormLoginPhonePassword.svelte +49 -26
  16. package/dist/components/pages/security/login/01/ui/FormLoginPhonePassword.svelte.d.ts +2 -0
  17. package/dist/components/pages/security/login/01/ui/FormLoginUsernamePassword.svelte +49 -26
  18. package/dist/components/pages/security/login/01/ui/FormLoginUsernamePassword.svelte.d.ts +2 -0
  19. package/dist/components/pages/security/login/01/ui/LoginCard01.svelte +148 -132
  20. package/dist/components/pages/security/login/01/ui/LoginCard01.svelte.d.ts +2 -0
  21. package/dist/components/pages/security/login/01/ui/PageLogin01.svelte +66 -64
  22. package/dist/components/pages/security/login/02/ui/FormLogin02.svelte +82 -72
  23. package/dist/components/pages/security/login/02/ui/FormLogin02.svelte.d.ts +1 -0
  24. package/dist/components/pages/security/login/02/ui/FormLoginEmailPassword02.svelte +27 -26
  25. package/dist/components/pages/security/login/02/ui/FormLoginEmailPassword02.svelte.d.ts +1 -0
  26. package/dist/components/pages/security/login/02/ui/FormLoginPhonePassword02.svelte +27 -26
  27. package/dist/components/pages/security/login/02/ui/FormLoginPhonePassword02.svelte.d.ts +1 -0
  28. package/dist/components/pages/security/login/02/ui/FormLoginUsernamePassword02.svelte +27 -26
  29. package/dist/components/pages/security/login/02/ui/FormLoginUsernamePassword02.svelte.d.ts +1 -0
  30. package/dist/components/pages/security/login/02/ui/LoginCard02.svelte +15 -2
  31. package/dist/components/pages/security/login/02/ui/LoginCard02.svelte.d.ts +1 -0
  32. package/dist/components/pages/security/login/02/ui/PageLogin02.svelte +2 -0
  33. package/dist/components/pages/security/login/03/ui/FormLogin03.svelte +94 -91
  34. package/dist/components/pages/security/login/03/ui/FormLogin03.svelte.d.ts +1 -0
  35. package/dist/components/pages/security/login/03/ui/FormLoginEmailPassword03.svelte +27 -26
  36. package/dist/components/pages/security/login/03/ui/FormLoginEmailPassword03.svelte.d.ts +1 -0
  37. package/dist/components/pages/security/login/03/ui/FormLoginPhonePassword03.svelte +27 -26
  38. package/dist/components/pages/security/login/03/ui/FormLoginPhonePassword03.svelte.d.ts +1 -0
  39. package/dist/components/pages/security/login/03/ui/FormLoginUsernamePassword03.svelte +27 -26
  40. package/dist/components/pages/security/login/03/ui/FormLoginUsernamePassword03.svelte.d.ts +1 -0
  41. package/dist/components/pages/security/login/03/ui/LoginCard03.svelte +15 -2
  42. package/dist/components/pages/security/login/03/ui/LoginCard03.svelte.d.ts +1 -0
  43. package/dist/components/pages/security/login/03/ui/PageLogin03.svelte +2 -0
  44. package/dist/components/pages/security/login/PageLogin.svelte +30 -30
  45. package/dist/components/pages/security/login/types.d.ts +1 -0
  46. package/dist/components/pages/security/register/01/ui/PageRegister01.svelte +78 -76
  47. package/dist/components/pages/security/register/01/ui/RegisterCard01.svelte +107 -104
  48. package/dist/components/pages/security/register/01/ui/RegisterCard01.svelte.d.ts +1 -0
  49. package/dist/components/pages/security/register/02/ui/PageRegister02.svelte +2 -0
  50. package/dist/components/pages/security/register/02/ui/RegisterCard02.svelte +3 -1
  51. package/dist/components/pages/security/register/02/ui/RegisterCard02.svelte.d.ts +1 -0
  52. package/dist/components/pages/security/register/03/ui/PageRegister03.svelte +2 -0
  53. package/dist/components/pages/security/register/03/ui/RegisterCard03.svelte +3 -1
  54. package/dist/components/pages/security/register/03/ui/RegisterCard03.svelte.d.ts +1 -0
  55. package/dist/components/pages/security/register/FormRegister.svelte +148 -146
  56. package/dist/components/pages/security/register/FormRegister.svelte.d.ts +1 -0
  57. package/dist/components/pages/security/register/types.d.ts +1 -0
  58. package/dist/components/ui/avatar/avatar-fallback.svelte +29 -29
  59. package/dist/components/ui/avatar/avatar-image.svelte +38 -38
  60. package/dist/components/ui/avatar/avatar.svelte +39 -39
  61. package/dist/components/ui/badge/badge.svelte +46 -46
  62. package/dist/components/ui/banner/AdCardBanner.svelte +74 -74
  63. package/dist/components/ui/banner/CtaCardBanner.svelte +118 -118
  64. package/dist/components/ui/banner/CtaCardImageBanner.svelte +94 -94
  65. package/dist/components/ui/breadcrumb/core/breadcrumb-list.svelte +31 -31
  66. package/dist/components/ui/button/ButtonBack.svelte +18 -18
  67. package/dist/components/ui/button/ButtonLogin.svelte +19 -15
  68. package/dist/components/ui/button/ButtonLoginWith.svelte +57 -57
  69. package/dist/components/ui/button/ButtonSend.svelte +15 -15
  70. package/dist/components/ui/button/button.svelte +100 -86
  71. package/dist/components/ui/button/button.svelte.d.ts +1 -0
  72. package/dist/components/ui/card/core/highlight/01/CardHighlight01.svelte +103 -103
  73. package/dist/components/ui/card/core/highlight/02/CardHighlight02.svelte +99 -99
  74. package/dist/components/ui/card/core/highlight/CardHighlight.svelte +22 -22
  75. package/dist/components/ui/card/core/media/01/CardMedia01.svelte +133 -133
  76. package/dist/components/ui/card/core/media/02/CardMedia02.svelte +127 -127
  77. package/dist/components/ui/card/core/media/CardMedia.svelte +18 -18
  78. package/dist/components/ui/card/core/product/01/CardProduct01.svelte +136 -136
  79. package/dist/components/ui/card/core/product/02/CardProduct02.svelte +124 -124
  80. package/dist/components/ui/card/core/product/CardProduct.svelte +22 -22
  81. package/dist/components/ui/card/core/profile/01/CardProfile01.svelte +134 -134
  82. package/dist/components/ui/card/core/profile/02/CardProfile02.svelte +132 -132
  83. package/dist/components/ui/card/core/profile/CardProfile.svelte +18 -18
  84. package/dist/components/ui/card/core/promotion/CardPromotion.svelte +139 -139
  85. package/dist/components/ui/card/core/promotion/CardPromotionPrice.svelte +32 -32
  86. package/dist/components/ui/card/core/shared/CardButton.svelte +42 -42
  87. package/dist/components/ui/card/core/shared/CardCart.svelte +36 -36
  88. package/dist/components/ui/card/core/shared/CardDescription.svelte +41 -41
  89. package/dist/components/ui/card/core/shared/CardFavorite.svelte +33 -33
  90. package/dist/components/ui/card/core/shared/CardLogo.svelte +19 -19
  91. package/dist/components/ui/card/core/shared/CardPhoneOrWhatsapp.svelte +45 -45
  92. package/dist/components/ui/card/core/shared/CardStarRating.svelte +24 -24
  93. package/dist/components/ui/card/core/shared/CardTags.svelte +95 -95
  94. package/dist/components/ui/card/core/shared/CardThumbnailVideo.svelte +232 -232
  95. package/dist/components/ui/card/core/shared/CardTitlePrice.svelte +24 -24
  96. package/dist/components/ui/card/core/shared/TruncatableText.svelte +49 -49
  97. package/dist/components/ui/carousel/carousel-content.svelte +56 -56
  98. package/dist/components/ui/carousel/carousel-item.svelte +29 -29
  99. package/dist/components/ui/carousel/carousel-next.svelte +40 -40
  100. package/dist/components/ui/carousel/carousel-previous.svelte +40 -40
  101. package/dist/components/ui/carousel/carousel.svelte +225 -225
  102. package/dist/components/ui/carousel/core/badge/ui/CarouselBadge.svelte +108 -108
  103. package/dist/components/ui/carousel/core/grid/shared/ui/CarouselGridSlot.svelte +38 -38
  104. package/dist/components/ui/carousel/core/hero/ui/CarouselHero.svelte +181 -181
  105. package/dist/components/ui/carousel/core/highlights/ui/CarouselHighlights.svelte +67 -67
  106. package/dist/components/ui/carousel/core/product/ui/CarouselProduct.svelte +57 -57
  107. package/dist/components/ui/carousel/core/promotion/ui/CarouselPromotion.svelte +67 -67
  108. package/dist/components/ui/carousel/core/shared/ui/CarouselHeader.svelte +59 -59
  109. package/dist/components/ui/checkbox/checkbox.svelte +96 -96
  110. package/dist/components/ui/collapsible/collapsible-content.svelte +30 -30
  111. package/dist/components/ui/collapsible/collapsible-trigger.svelte +51 -51
  112. package/dist/components/ui/collapsible/collapsible.svelte +66 -66
  113. package/dist/components/ui/data-table/flex-render.svelte +40 -40
  114. package/dist/components/ui/datatable/ui/DataTableActions.svelte +28 -28
  115. package/dist/components/ui/datatable/ui/DataTableCheckbox.svelte +22 -22
  116. package/dist/components/ui/datatable/ui/DataTableContent.svelte +59 -59
  117. package/dist/components/ui/datatable/ui/DataTableCore.svelte +148 -148
  118. package/dist/components/ui/datatable/ui/DataTableDragHandle.svelte +8 -8
  119. package/dist/components/ui/datatable/ui/DataTableListFilter.svelte +60 -60
  120. package/dist/components/ui/datatable/ui/DataTableListPagination.svelte +35 -35
  121. package/dist/components/ui/drawer/drawer-close.svelte +41 -41
  122. package/dist/components/ui/drawer/drawer-content.svelte +81 -81
  123. package/dist/components/ui/drawer/drawer-description.svelte +19 -19
  124. package/dist/components/ui/drawer/drawer-footer.svelte +20 -20
  125. package/dist/components/ui/drawer/drawer-header.svelte +20 -20
  126. package/dist/components/ui/drawer/drawer-nested.svelte +34 -34
  127. package/dist/components/ui/drawer/drawer-overlay.svelte +25 -25
  128. package/dist/components/ui/drawer/drawer-portal.svelte +19 -19
  129. package/dist/components/ui/drawer/drawer-title.svelte +19 -19
  130. package/dist/components/ui/drawer/drawer-trigger.svelte +42 -42
  131. package/dist/components/ui/drawer/drawer.svelte +74 -74
  132. package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-group.svelte +25 -25
  133. package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte +69 -69
  134. package/dist/components/ui/dropdown-menu/dropdown-menu-content.svelte +106 -106
  135. package/dist/components/ui/dropdown-menu/dropdown-menu-group-heading.svelte +27 -27
  136. package/dist/components/ui/dropdown-menu/dropdown-menu-group.svelte +21 -21
  137. package/dist/components/ui/dropdown-menu/dropdown-menu-item.svelte +60 -60
  138. package/dist/components/ui/dropdown-menu/dropdown-menu-label.svelte +27 -27
  139. package/dist/components/ui/dropdown-menu/dropdown-menu-portal.svelte +6 -6
  140. package/dist/components/ui/dropdown-menu/dropdown-menu-radio-group.svelte +43 -43
  141. package/dist/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte +70 -70
  142. package/dist/components/ui/dropdown-menu/dropdown-menu-separator.svelte +20 -20
  143. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-content.svelte +33 -33
  144. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte +57 -57
  145. package/dist/components/ui/dropdown-menu/dropdown-menu-sub.svelte +76 -76
  146. package/dist/components/ui/dropdown-menu/dropdown-menu-trigger.svelte +68 -68
  147. package/dist/components/ui/dropdown-menu/dropdown-menu.svelte +53 -53
  148. package/dist/components/ui/empty/empty-content.svelte +19 -19
  149. package/dist/components/ui/empty/empty-description.svelte +19 -19
  150. package/dist/components/ui/empty/empty-header.svelte +19 -19
  151. package/dist/components/ui/empty/empty-media.svelte +41 -41
  152. package/dist/components/ui/empty/empty-title.svelte +19 -19
  153. package/dist/components/ui/empty/empty.svelte +19 -19
  154. package/dist/components/ui/footer/ui/Footer.svelte +18 -18
  155. package/dist/components/ui/form/ui/calendar/Calendar.svelte +193 -193
  156. package/dist/components/ui/form/ui/calendar/CalendarCard.svelte +89 -89
  157. package/dist/components/ui/form/ui/calendar/DaysGrid.svelte +75 -75
  158. package/dist/components/ui/form/ui/calendar/MonthSelect.svelte +49 -49
  159. package/dist/components/ui/form/ui/calendar/YearSelect.svelte +116 -116
  160. package/dist/components/ui/form/ui/input-base.svelte +83 -83
  161. package/dist/components/ui/form/ui/input-calendar-interval.svelte +178 -178
  162. package/dist/components/ui/form/ui/input-calendar.svelte +109 -109
  163. package/dist/components/ui/form/ui/input-email-or-phone.svelte +23 -23
  164. package/dist/components/ui/form/ui/input-email.svelte +23 -23
  165. package/dist/components/ui/form/ui/input-password-confirm.svelte +23 -23
  166. package/dist/components/ui/form/ui/input-password.svelte +23 -23
  167. package/dist/components/ui/form/ui/input-phone.svelte +43 -37
  168. package/dist/components/ui/form/ui/input-select.svelte +246 -246
  169. package/dist/components/ui/form/ui/input-username.svelte +22 -22
  170. package/dist/components/ui/grid/core/ui/01/Grid01.svelte +30 -30
  171. package/dist/components/ui/grid/core/ui/02/Grid02.svelte +30 -30
  172. package/dist/components/ui/grid/core/ui/ItemsPanel.svelte +26 -26
  173. package/dist/components/ui/grid/core/ui/ItemsPanelCarousel.svelte +37 -37
  174. package/dist/components/ui/grid/core/ui/ItemsPanelGrid.svelte +43 -43
  175. package/dist/components/ui/grid/core/ui/ItemsSimpleGrid.svelte +45 -45
  176. package/dist/components/ui/grid/core/ui/shared/DescriptionGrid.svelte +23 -23
  177. package/dist/components/ui/grid/core/ui/shared/IconRenderGrid.svelte +23 -23
  178. package/dist/components/ui/grid/core/ui/shared/TitleGrid.svelte +19 -19
  179. package/dist/components/ui/hero/SimpleHero.svelte +65 -65
  180. package/dist/components/ui/input-otp/input-otp-group.svelte +22 -22
  181. package/dist/components/ui/input-otp/input-otp-separator.svelte +27 -27
  182. package/dist/components/ui/input-otp/input-otp-slot.svelte +63 -63
  183. package/dist/components/ui/input-otp/input-otp.svelte +181 -181
  184. package/dist/components/ui/label/core/LabelOr.svelte +25 -25
  185. package/dist/components/ui/label/label.svelte +19 -19
  186. package/dist/components/ui/language-switcher/language-switcher.svelte +48 -48
  187. package/dist/components/ui/light-switch/light-switch.svelte +48 -48
  188. package/dist/components/ui/link/link-forget-password.svelte +12 -12
  189. package/dist/components/ui/link/link-privacy-polity.svelte +12 -12
  190. package/dist/components/ui/link/link-terms-of-service.svelte +12 -12
  191. package/dist/components/ui/modal/core/ui/ModalCore.svelte +132 -132
  192. package/dist/components/ui/modal/form/index.d.ts +3 -2
  193. package/dist/components/ui/modal/form/index.js +2 -1
  194. package/dist/components/ui/modal/form/types.d.ts +41 -0
  195. package/dist/components/ui/modal/form/ui/ModalForm.svelte +11 -6
  196. package/dist/components/ui/modal/form/ui/ModalFormEmailOrPhone.svelte +204 -0
  197. package/dist/components/ui/modal/form/ui/ModalFormEmailOrPhone.svelte.d.ts +4 -0
  198. package/dist/components/ui/modal/grid/ui/02/ModalGridSelection02.svelte +146 -146
  199. package/dist/components/ui/modal/share/ui/ModalShareSelection.svelte +156 -156
  200. package/dist/components/ui/nav/ui/ComplexMenu.svelte +51 -51
  201. package/dist/components/ui/nav/ui/Menu.svelte +72 -72
  202. package/dist/components/ui/nav/ui/SimpleMenu.svelte +14 -14
  203. package/dist/components/ui/nav/ui/mobile/ComplexMenuMobile.svelte +125 -125
  204. package/dist/components/ui/nav/ui/mobile/MenuMobile.svelte +54 -54
  205. package/dist/components/ui/nav/ui/shared/MenuButton.svelte +51 -51
  206. package/dist/components/ui/nav/ui/shared/MenuLinks.svelte +40 -40
  207. package/dist/components/ui/nav/ui/shared/MenuListItem.svelte +44 -44
  208. package/dist/components/ui/nav/ui/shared/MenuLogo.svelte +13 -13
  209. package/dist/components/ui/nav/ui/shared/dropdown/DropdownNavigationMenuItemGrid.svelte +30 -30
  210. package/dist/components/ui/nav/ui/shared/navigation/NavDropdown.svelte +88 -88
  211. package/dist/components/ui/nav/ui/shared/navigation/NavigationMenuItem.svelte +17 -17
  212. package/dist/components/ui/nav/ui/shared/navigation/NavigationMenuItemCard.svelte +53 -53
  213. package/dist/components/ui/nav/ui/shared/navigation/NavigationMenuItemGrid.svelte +35 -36
  214. package/dist/components/ui/nav/ui/shared/navigation/NavigationMenuItemList.svelte +24 -24
  215. package/dist/components/ui/nav/ui/shared/navigation/NavigationMenuItems.svelte +21 -21
  216. package/dist/components/ui/panel/CarouselSlot.svelte +57 -57
  217. package/dist/components/ui/panel/LeftHero.svelte +114 -114
  218. package/dist/components/ui/panel/NotFoundEmpty.svelte +66 -66
  219. package/dist/components/ui/phone-input/country-selector.svelte +87 -87
  220. package/dist/components/ui/phone-input/flag.svelte +11 -11
  221. package/dist/components/ui/phone-input/phone-input.svelte +163 -163
  222. package/dist/components/ui/popover/popover-close.svelte +25 -25
  223. package/dist/components/ui/popover/popover-content.svelte +92 -92
  224. package/dist/components/ui/popover/popover-portal.svelte +6 -6
  225. package/dist/components/ui/popover/popover-trigger.svelte +68 -68
  226. package/dist/components/ui/popover/popover.svelte +53 -53
  227. package/dist/components/ui/search/SearchInput.svelte +32 -32
  228. package/dist/components/ui/search/shared/SearchInputCore.svelte +66 -66
  229. package/dist/components/ui/separator/separator.svelte +28 -28
  230. package/dist/components/ui/sidebar/core/MenuBarSidebar.svelte +70 -70
  231. package/dist/components/ui/sidebar/core/ui/navbar/NavMenuBarSidebar.svelte +97 -97
  232. package/dist/components/ui/sidebar/core/ui/navbar/NavMenuBottomSidebar.svelte +33 -33
  233. package/dist/components/ui/sidebar/core/ui/navbar/NavMenuTopBarSidebar.svelte +101 -101
  234. package/dist/components/ui/sidebar/core/ui/navbar/nav-menu-header-sidebar.svelte +77 -77
  235. package/dist/components/ui/sidebar/sidebar-content.svelte +24 -24
  236. package/dist/components/ui/sidebar/sidebar-footer.svelte +21 -21
  237. package/dist/components/ui/sidebar/sidebar-group-content.svelte +21 -21
  238. package/dist/components/ui/sidebar/sidebar-menu-action.svelte +38 -38
  239. package/dist/components/ui/sidebar/sidebar-menu-button.svelte +70 -70
  240. package/dist/components/ui/sidebar/sidebar-menu-sub-button.svelte +39 -39
  241. package/dist/components/ui/sidebar/sidebar-provider.svelte +62 -62
  242. package/dist/components/ui/sidebar/sidebar-rail.svelte +36 -36
  243. package/dist/components/ui/sidebar/sidebar-separator.svelte +21 -21
  244. package/dist/components/ui/sidebar/sidebar-trigger.svelte +36 -36
  245. package/dist/components/ui/sidebar/sidebar.svelte +118 -118
  246. package/dist/components/ui/skeleton/skeleton.svelte +19 -19
  247. package/dist/components/ui/star-rating/star-rating-star.svelte +66 -66
  248. package/dist/components/ui/star-rating/star-rating.svelte +149 -149
  249. package/dist/components/ui/table/table-body.svelte +15 -15
  250. package/dist/components/ui/table/table-caption.svelte +20 -20
  251. package/dist/components/ui/table/table-cell.svelte +15 -15
  252. package/dist/components/ui/table/table-footer.svelte +20 -20
  253. package/dist/components/ui/table/table-head.svelte +15 -15
  254. package/dist/components/ui/table/table-header.svelte +20 -20
  255. package/dist/components/ui/table/table-row.svelte +15 -15
  256. package/dist/components/ui/table/table.svelte +17 -17
  257. package/dist/components/ui/tabs/data/TabModel.d.ts +1 -0
  258. package/dist/components/ui/tabs/ui/tab-underline.svelte +47 -43
  259. package/dist/components/ui/underline-tabs/underline-tabs-content.svelte +33 -33
  260. package/dist/components/ui/underline-tabs/underline-tabs-list.svelte +40 -40
  261. package/dist/components/ui/underline-tabs/underline-tabs-trigger.svelte +91 -91
  262. package/dist/components/ui/underline-tabs/underline-tabs.svelte +61 -61
  263. package/dist/docs/ApiTable.svelte +42 -42
  264. package/dist/docs/CodeBlock.svelte +26 -26
  265. package/dist/docs/DocsHeader.svelte +25 -25
  266. package/dist/docs/DocsSidebar.svelte +108 -108
  267. package/dist/docs/components.js +624 -584
  268. package/dist/globals.css +27 -7
  269. package/dist/i18n/langs/en.d.ts +3 -1
  270. package/dist/i18n/langs/en.js +3 -1
  271. package/dist/i18n/langs/pt.d.ts +3 -1
  272. package/dist/i18n/langs/pt.js +3 -1
  273. package/dist/i18n/translations.d.ts +6 -2
  274. package/dist/index.d.ts +12 -0
  275. package/dist/index.js +12 -0
  276. package/dist/styles/globals.css +283 -283
  277. package/dist/types/index.d.ts +3 -1
  278. package/package.json +81 -81
@@ -1,179 +1,179 @@
1
- <script lang="ts">
2
- import { Label } from "../../label";
3
- import { Calendar, CalendarCard } from "./calendar";
4
- import { t, locale } from "../../../../i18n";
5
- import { cn } from "../../../../utils.js";
6
-
7
- type Props = {
8
- label?: string;
9
- isLabel?: boolean;
10
- isIcon?: boolean;
11
- labelClass?: string;
12
- inputClass?: string;
13
- disabled?: boolean;
14
- placeholder?: string;
15
- startValue?: string;
16
- endValue?: string;
17
- };
18
-
19
- let {
20
- label,
21
- isLabel = true,
22
- isIcon = true,
23
- labelClass,
24
- inputClass,
25
- disabled = false,
26
- placeholder,
27
- startValue = $bindable(""),
28
- endValue = $bindable(""),
29
- }: Props = $props();
30
-
31
- let open = $state(false);
32
-
33
- const i18nLocale = $derived($locale === "pt" ? "pt-PT" : "en-US");
34
-
35
- function parseISO(dateStr: string): Date | undefined {
36
- const match = dateStr.match(/^(\d{4})-(\d{2})-(\d{2})$/);
37
- if (!match) return undefined;
38
- return new Date(+match[1], +match[2] - 1, +match[3]);
39
- }
40
-
41
- function formatDateISO(date: Date): string {
42
- const y = date.getFullYear();
43
- const m = String(date.getMonth() + 1).padStart(2, "0");
44
- const d = String(date.getDate()).padStart(2, "0");
45
- return `${y}-${m}-${d}`;
46
- }
47
-
48
- function isBeforeDay(a: Date, b: Date): boolean {
49
- return (
50
- a.getFullYear() < b.getFullYear() ||
51
- (a.getFullYear() === b.getFullYear() && a.getMonth() < b.getMonth()) ||
52
- (a.getFullYear() === b.getFullYear() &&
53
- a.getMonth() === b.getMonth() &&
54
- a.getDate() < b.getDate())
55
- );
56
- }
57
-
58
- let startDate = $derived(startValue ? parseISO(startValue) : undefined);
59
- let endDate = $derived(endValue ? parseISO(endValue) : undefined);
60
-
61
- const today = new Date();
62
-
63
- function selectStart(date: Date) {
64
- if (endDate && isBeforeDay(endDate, date)) {
65
- endValue = "";
66
- }
67
- startValue = formatDateISO(date);
68
- }
69
-
70
- function selectEnd(date: Date) {
71
- if (!startDate || isBeforeDay(date, startDate)) {
72
- startValue = formatDateISO(date);
73
- } else {
74
- endValue = formatDateISO(date);
75
- open = false;
76
- }
77
- }
78
-
79
- $effect(() => {
80
- if (startDate && endDate && isBeforeDay(endDate, startDate)) {
81
- startValue = formatDateISO(endDate);
82
- endValue = formatDateISO(startDate);
83
- }
84
- });
85
-
86
- const displayStart = $derived(
87
- startDate
88
- ? new Intl.DateTimeFormat(i18nLocale, {
89
- day: "2-digit",
90
- month: "2-digit",
91
- year: "numeric",
92
- }).format(startDate)
93
- : "",
94
- );
95
-
96
- const displayEnd = $derived(
97
- endDate
98
- ? new Intl.DateTimeFormat(i18nLocale, {
99
- day: "2-digit",
100
- month: "2-digit",
101
- year: "numeric",
102
- }).format(endDate)
103
- : "",
104
- );
105
-
106
- const startYear = $derived(startDate?.getFullYear());
107
- const startMonth = $derived(startDate?.getMonth());
108
- const endYear = $derived(endDate?.getFullYear() ?? startYear ?? today.getFullYear());
109
- const endMonth = $derived(endDate?.getMonth() ?? startMonth ?? today.getMonth());
110
-
111
- const placeholderClasses = $derived(
112
- cn("truncate", !startDate && !endDate && "text-muted-foreground"),
113
- );
114
-
115
- const calendarLabelClass = $derived(
116
- cn("px-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground"),
117
- );
118
- </script>
119
-
120
- <div class="flex w-full flex-col gap-3">
121
- {#if isLabel}
122
- {#if label}
123
- <Label class={labelClass}>{label}</Label>
124
- {:else}
125
- <Label class={labelClass}>{$t("input.date.interval.label")}</Label>
126
- {/if}
127
- {/if}
128
-
129
- <CalendarCard
130
- bind:open
131
- rangeStart={startDate}
132
- rangeEnd={endDate}
133
- {isIcon}
134
- {inputClass}
135
- {disabled}
136
- >
137
- {#snippet content()}
138
- <div
139
- class="grid max-h-[26rem] gap-2 overflow-y-auto p-2 md:max-h-none md:grid-cols-2 md:overflow-visible"
140
- >
141
- <div class="flex flex-col gap-1">
142
- <span class={calendarLabelClass}>
143
- {$t("input.date.start.label")}
144
- </span>
145
- <Calendar
146
- value={startDate}
147
- rangeStart={startDate}
148
- rangeEnd={endDate}
149
- month={startMonth}
150
- year={startYear}
151
- onselect={selectStart}
152
- />
153
- </div>
154
-
155
- <div class="flex flex-col gap-1">
156
- <span class={calendarLabelClass}>
157
- {$t("input.date.end.label")}
158
- </span>
159
- <Calendar
160
- value={endDate}
161
- rangeStart={startDate}
162
- rangeEnd={endDate}
163
- month={endMonth}
164
- year={endYear}
165
- onselect={selectEnd}
166
- />
167
- </div>
168
- </div>
169
- {/snippet}
170
- <span class={placeholderClasses}>
171
- {#if displayStart}
172
- {displayStart}
173
- {#if displayEnd}– {displayEnd}{/if}
174
- {:else}
175
- {placeholder || $t("input.date.interval.label")}
176
- {/if}
177
- </span>
178
- </CalendarCard>
1
+ <script lang="ts">
2
+ import { Label } from "../../label";
3
+ import { Calendar, CalendarCard } from "./calendar";
4
+ import { t, locale } from "../../../../i18n";
5
+ import { cn } from "../../../../utils.js";
6
+
7
+ type Props = {
8
+ label?: string;
9
+ isLabel?: boolean;
10
+ isIcon?: boolean;
11
+ labelClass?: string;
12
+ inputClass?: string;
13
+ disabled?: boolean;
14
+ placeholder?: string;
15
+ startValue?: string;
16
+ endValue?: string;
17
+ };
18
+
19
+ let {
20
+ label,
21
+ isLabel = true,
22
+ isIcon = true,
23
+ labelClass,
24
+ inputClass,
25
+ disabled = false,
26
+ placeholder,
27
+ startValue = $bindable(""),
28
+ endValue = $bindable(""),
29
+ }: Props = $props();
30
+
31
+ let open = $state(false);
32
+
33
+ const i18nLocale = $derived($locale === "pt" ? "pt-PT" : "en-US");
34
+
35
+ function parseISO(dateStr: string): Date | undefined {
36
+ const match = dateStr.match(/^(\d{4})-(\d{2})-(\d{2})$/);
37
+ if (!match) return undefined;
38
+ return new Date(+match[1], +match[2] - 1, +match[3]);
39
+ }
40
+
41
+ function formatDateISO(date: Date): string {
42
+ const y = date.getFullYear();
43
+ const m = String(date.getMonth() + 1).padStart(2, "0");
44
+ const d = String(date.getDate()).padStart(2, "0");
45
+ return `${y}-${m}-${d}`;
46
+ }
47
+
48
+ function isBeforeDay(a: Date, b: Date): boolean {
49
+ return (
50
+ a.getFullYear() < b.getFullYear() ||
51
+ (a.getFullYear() === b.getFullYear() && a.getMonth() < b.getMonth()) ||
52
+ (a.getFullYear() === b.getFullYear() &&
53
+ a.getMonth() === b.getMonth() &&
54
+ a.getDate() < b.getDate())
55
+ );
56
+ }
57
+
58
+ let startDate = $derived(startValue ? parseISO(startValue) : undefined);
59
+ let endDate = $derived(endValue ? parseISO(endValue) : undefined);
60
+
61
+ const today = new Date();
62
+
63
+ function selectStart(date: Date) {
64
+ if (endDate && isBeforeDay(endDate, date)) {
65
+ endValue = "";
66
+ }
67
+ startValue = formatDateISO(date);
68
+ }
69
+
70
+ function selectEnd(date: Date) {
71
+ if (!startDate || isBeforeDay(date, startDate)) {
72
+ startValue = formatDateISO(date);
73
+ } else {
74
+ endValue = formatDateISO(date);
75
+ open = false;
76
+ }
77
+ }
78
+
79
+ $effect(() => {
80
+ if (startDate && endDate && isBeforeDay(endDate, startDate)) {
81
+ startValue = formatDateISO(endDate);
82
+ endValue = formatDateISO(startDate);
83
+ }
84
+ });
85
+
86
+ const displayStart = $derived(
87
+ startDate
88
+ ? new Intl.DateTimeFormat(i18nLocale, {
89
+ day: "2-digit",
90
+ month: "2-digit",
91
+ year: "numeric",
92
+ }).format(startDate)
93
+ : "",
94
+ );
95
+
96
+ const displayEnd = $derived(
97
+ endDate
98
+ ? new Intl.DateTimeFormat(i18nLocale, {
99
+ day: "2-digit",
100
+ month: "2-digit",
101
+ year: "numeric",
102
+ }).format(endDate)
103
+ : "",
104
+ );
105
+
106
+ const startYear = $derived(startDate?.getFullYear());
107
+ const startMonth = $derived(startDate?.getMonth());
108
+ const endYear = $derived(endDate?.getFullYear() ?? startYear ?? today.getFullYear());
109
+ const endMonth = $derived(endDate?.getMonth() ?? startMonth ?? today.getMonth());
110
+
111
+ const placeholderClasses = $derived(
112
+ cn("truncate", !startDate && !endDate && "text-muted-foreground"),
113
+ );
114
+
115
+ const calendarLabelClass = $derived(
116
+ cn("px-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground"),
117
+ );
118
+ </script>
119
+
120
+ <div class="flex w-full flex-col gap-3">
121
+ {#if isLabel}
122
+ {#if label}
123
+ <Label class={labelClass}>{label}</Label>
124
+ {:else}
125
+ <Label class={labelClass}>{$t("input.date.interval.label")}</Label>
126
+ {/if}
127
+ {/if}
128
+
129
+ <CalendarCard
130
+ bind:open
131
+ rangeStart={startDate}
132
+ rangeEnd={endDate}
133
+ {isIcon}
134
+ {inputClass}
135
+ {disabled}
136
+ >
137
+ {#snippet content()}
138
+ <div
139
+ class="grid max-h-[26rem] gap-2 overflow-y-auto p-2 md:max-h-none md:grid-cols-2 md:overflow-visible"
140
+ >
141
+ <div class="flex flex-col gap-1">
142
+ <span class={calendarLabelClass}>
143
+ {$t("input.date.start.label")}
144
+ </span>
145
+ <Calendar
146
+ value={startDate}
147
+ rangeStart={startDate}
148
+ rangeEnd={endDate}
149
+ month={startMonth}
150
+ year={startYear}
151
+ onselect={selectStart}
152
+ />
153
+ </div>
154
+
155
+ <div class="flex flex-col gap-1">
156
+ <span class={calendarLabelClass}>
157
+ {$t("input.date.end.label")}
158
+ </span>
159
+ <Calendar
160
+ value={endDate}
161
+ rangeStart={startDate}
162
+ rangeEnd={endDate}
163
+ month={endMonth}
164
+ year={endYear}
165
+ onselect={selectEnd}
166
+ />
167
+ </div>
168
+ </div>
169
+ {/snippet}
170
+ <span class={placeholderClasses}>
171
+ {#if displayStart}
172
+ {displayStart}
173
+ {#if displayEnd}– {displayEnd}{/if}
174
+ {:else}
175
+ {placeholder || $t("input.date.interval.label")}
176
+ {/if}
177
+ </span>
178
+ </CalendarCard>
179
179
  </div>
@@ -1,110 +1,110 @@
1
- <script lang="ts">
2
- import type { InputLabelProps } from "../data/InputLabel.svelte.js";
3
- import { Label } from "../../label";
4
- import { CalendarCard } from "./calendar";
5
- import { t, locale } from "../../../../i18n";
6
- import { cn } from "../../../../utils.js";
7
-
8
- type Props = InputLabelProps & {
9
- min?: string;
10
- max?: string;
11
- disabled?: boolean;
12
- };
13
-
14
- let {
15
- label,
16
- labelClass,
17
- inputClass,
18
- isLabel = true,
19
- isIcon = true,
20
- value = $bindable(""),
21
- min,
22
- max,
23
- disabled = false,
24
- placeholder,
25
- placeholderClass,
26
- }: Props = $props();
27
-
28
- let open = $state(false);
29
-
30
- const i18nLocale = $derived($locale === "pt" ? "pt-PT" : "en-US");
31
-
32
- function parseISO(dateStr: string): Date | undefined {
33
- const match = dateStr.match(/^(\d{4})-(\d{2})-(\d{2})$/);
34
- if (!match) return undefined;
35
- return new Date(+match[1], +match[2] - 1, +match[3]);
36
- }
37
-
38
- function formatDateISO(date: Date): string {
39
- const y = date.getFullYear();
40
- const m = String(date.getMonth() + 1).padStart(2, "0");
41
- const d = String(date.getDate()).padStart(2, "0");
42
- return `${y}-${m}-${d}`;
43
- }
44
-
45
- const selectedDate = $derived(value ? parseISO(value) : undefined);
46
-
47
- const displayValue = $derived(
48
- selectedDate
49
- ? new Intl.DateTimeFormat(i18nLocale, {
50
- day: "2-digit",
51
- month: "2-digit",
52
- year: "numeric",
53
- }).format(selectedDate)
54
- : "",
55
- );
56
-
57
- const minDate = $derived(min ? parseISO(min) : undefined);
58
- const maxDate = $derived(max ? parseISO(max) : undefined);
59
-
60
- function handleSelect(date: Date) {
61
- value = formatDateISO(date);
62
- open = false;
63
- }
64
-
65
- const placeholderClasses = $derived(
66
- cn(
67
- "truncate",
68
- !displayValue && "text-muted-foreground",
69
- `${placeholderClass}`,
70
- ),
71
- );
72
- </script>
73
-
74
- {#if isLabel}
75
- <div class="flex flex-col gap-3 w-full">
76
- {#if label}
77
- <Label class={labelClass}>{label}</Label>
78
- {/if}
79
-
80
- <CalendarCard
81
- bind:open
82
- value={selectedDate}
83
- min={minDate}
84
- max={maxDate}
85
- {isIcon}
86
- {inputClass}
87
- {disabled}
88
- onselect={handleSelect}
89
- >
90
- <span class={placeholderClasses}>
91
- {displayValue || placeholder || $t("input.date.placeholder")}
92
- </span>
93
- </CalendarCard>
94
- </div>
95
- {:else}
96
- <CalendarCard
97
- bind:open
98
- value={selectedDate}
99
- min={minDate}
100
- max={maxDate}
101
- {isIcon}
102
- {inputClass}
103
- {disabled}
104
- onselect={handleSelect}
105
- >
106
- <span class={placeholderClasses}>
107
- {displayValue || placeholder || $t("input.date.placeholder")}
108
- </span>
109
- </CalendarCard>
1
+ <script lang="ts">
2
+ import type { InputLabelProps } from "../data/InputLabel.svelte.js";
3
+ import { Label } from "../../label";
4
+ import { CalendarCard } from "./calendar";
5
+ import { t, locale } from "../../../../i18n";
6
+ import { cn } from "../../../../utils.js";
7
+
8
+ type Props = InputLabelProps & {
9
+ min?: string;
10
+ max?: string;
11
+ disabled?: boolean;
12
+ };
13
+
14
+ let {
15
+ label,
16
+ labelClass,
17
+ inputClass,
18
+ isLabel = true,
19
+ isIcon = true,
20
+ value = $bindable(""),
21
+ min,
22
+ max,
23
+ disabled = false,
24
+ placeholder,
25
+ placeholderClass,
26
+ }: Props = $props();
27
+
28
+ let open = $state(false);
29
+
30
+ const i18nLocale = $derived($locale === "pt" ? "pt-PT" : "en-US");
31
+
32
+ function parseISO(dateStr: string): Date | undefined {
33
+ const match = dateStr.match(/^(\d{4})-(\d{2})-(\d{2})$/);
34
+ if (!match) return undefined;
35
+ return new Date(+match[1], +match[2] - 1, +match[3]);
36
+ }
37
+
38
+ function formatDateISO(date: Date): string {
39
+ const y = date.getFullYear();
40
+ const m = String(date.getMonth() + 1).padStart(2, "0");
41
+ const d = String(date.getDate()).padStart(2, "0");
42
+ return `${y}-${m}-${d}`;
43
+ }
44
+
45
+ const selectedDate = $derived(value ? parseISO(value) : undefined);
46
+
47
+ const displayValue = $derived(
48
+ selectedDate
49
+ ? new Intl.DateTimeFormat(i18nLocale, {
50
+ day: "2-digit",
51
+ month: "2-digit",
52
+ year: "numeric",
53
+ }).format(selectedDate)
54
+ : "",
55
+ );
56
+
57
+ const minDate = $derived(min ? parseISO(min) : undefined);
58
+ const maxDate = $derived(max ? parseISO(max) : undefined);
59
+
60
+ function handleSelect(date: Date) {
61
+ value = formatDateISO(date);
62
+ open = false;
63
+ }
64
+
65
+ const placeholderClasses = $derived(
66
+ cn(
67
+ "truncate",
68
+ !displayValue && "text-muted-foreground",
69
+ `${placeholderClass}`,
70
+ ),
71
+ );
72
+ </script>
73
+
74
+ {#if isLabel}
75
+ <div class="flex flex-col gap-3 w-full">
76
+ {#if label}
77
+ <Label class={labelClass}>{label}</Label>
78
+ {/if}
79
+
80
+ <CalendarCard
81
+ bind:open
82
+ value={selectedDate}
83
+ min={minDate}
84
+ max={maxDate}
85
+ {isIcon}
86
+ {inputClass}
87
+ {disabled}
88
+ onselect={handleSelect}
89
+ >
90
+ <span class={placeholderClasses}>
91
+ {displayValue || placeholder || $t("input.date.placeholder")}
92
+ </span>
93
+ </CalendarCard>
94
+ </div>
95
+ {:else}
96
+ <CalendarCard
97
+ bind:open
98
+ value={selectedDate}
99
+ min={minDate}
100
+ max={maxDate}
101
+ {isIcon}
102
+ {inputClass}
103
+ {disabled}
104
+ onselect={handleSelect}
105
+ >
106
+ <span class={placeholderClasses}>
107
+ {displayValue || placeholder || $t("input.date.placeholder")}
108
+ </span>
109
+ </CalendarCard>
110
110
  {/if}
@@ -1,23 +1,23 @@
1
- <script lang="ts">
2
- import type { InputLabelProps } from "../data/InputLabel.svelte.js";
3
- import InputBase from "./input-base.svelte";
4
- import { t } from "../../../../i18n";
5
-
6
- /** Email or phone input field with icon and label. */
7
- let {
8
- label,
9
- placeholder,
10
- value = $bindable(""),
11
- ...restProps
12
- }: InputLabelProps = $props();
13
- </script>
14
-
15
- <InputBase
16
- type="text"
17
- label={label || $t("input.email-or-phone.label")}
18
- placeholder={placeholder || $t("input.email-or-phone.placeholder")}
19
- isLabel
20
- isIcon
21
- bind:value
22
- {...restProps}
23
- />
1
+ <script lang="ts">
2
+ import type { InputLabelProps } from "../data/InputLabel.svelte.js";
3
+ import InputBase from "./input-base.svelte";
4
+ import { t } from "../../../../i18n";
5
+
6
+ /** Email or phone input field with icon and label. */
7
+ let {
8
+ label,
9
+ placeholder,
10
+ value = $bindable(""),
11
+ ...restProps
12
+ }: InputLabelProps = $props();
13
+ </script>
14
+
15
+ <InputBase
16
+ type="text"
17
+ label={label || $t("input.email-or-phone.label")}
18
+ placeholder={placeholder || $t("input.email-or-phone.placeholder")}
19
+ isLabel
20
+ isIcon
21
+ bind:value
22
+ {...restProps}
23
+ />
@@ -1,23 +1,23 @@
1
- <script lang="ts">
2
- import type { InputLabelProps } from "../data/InputLabel.svelte.js";
3
- import InputBase from "./input-base.svelte";
4
- import { t } from "../../../../i18n";
5
-
6
- /** Email input field with icon and label. */
7
- let {
8
- label,
9
- placeholder,
10
- value = $bindable(""),
11
- ...restProps
12
- }: InputLabelProps = $props();
13
- </script>
14
-
15
- <InputBase
16
- type="email"
17
- label={label || $t("input.email.label")}
18
- placeholder={placeholder || $t("input.email.placeholder")}
19
- isLabel
20
- isIcon
21
- bind:value
22
- {...restProps}
23
- />
1
+ <script lang="ts">
2
+ import type { InputLabelProps } from "../data/InputLabel.svelte.js";
3
+ import InputBase from "./input-base.svelte";
4
+ import { t } from "../../../../i18n";
5
+
6
+ /** Email input field with icon and label. */
7
+ let {
8
+ label,
9
+ placeholder,
10
+ value = $bindable(""),
11
+ ...restProps
12
+ }: InputLabelProps = $props();
13
+ </script>
14
+
15
+ <InputBase
16
+ type="email"
17
+ label={label || $t("input.email.label")}
18
+ placeholder={placeholder || $t("input.email.placeholder")}
19
+ isLabel
20
+ isIcon
21
+ bind:value
22
+ {...restProps}
23
+ />