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,76 +1,76 @@
1
- <script lang="ts">
2
- import { cn } from "../../../../../utils.js";
3
- import {
4
- isToday,
5
- isSelected,
6
- isInRange,
7
- isOutsideMonth,
8
- isDisabled,
9
- type CalendarToday,
10
- } from "./utils.js";
11
-
12
- type Props = {
13
- year: number;
14
- month: number;
15
- weeks: Date[][];
16
- weekdays: string[];
17
- today: CalendarToday;
18
- value?: Date;
19
- rangeStart?: Date;
20
- rangeEnd?: Date;
21
- min?: Date;
22
- max?: Date;
23
- onselect?: (date: Date) => void;
24
- };
25
-
26
- let {
27
- year,
28
- month,
29
- weeks,
30
- weekdays,
31
- today,
32
- value,
33
- rangeStart,
34
- rangeEnd,
35
- min,
36
- max,
37
- onselect,
38
- }: Props = $props();
39
- </script>
40
-
41
- <div class="grid grid-cols-7">
42
- {#each weekdays as day, i (i)}
43
- <div class="py-1 text-center text-xs font-medium text-muted-foreground">
44
- {day}
45
- </div>
46
- {/each}
47
- </div>
48
-
49
- <div class="grid grid-cols-7 gap-y-0.5">
50
- {#each weeks as week, wi (wi)}
51
- {#each week as day, di (`${wi}-${di}`)}
52
- {@const outside = isOutsideMonth(day, year, month)}
53
- {@const disabled = isDisabled(day, min, max)}
54
- {@const today_ = isToday(day, today)}
55
- {@const selected = isSelected(day, { value, rangeStart, rangeEnd })}
56
- {@const inRange = isInRange(day, rangeStart, rangeEnd)}
57
- <button
58
- type="button"
59
- {disabled}
60
- class={cn(
61
- "flex h-8 w-full items-center justify-center rounded-md text-sm transition-colors",
62
- "hover:bg-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
63
- outside && "text-muted-foreground/40",
64
- !outside && !disabled && !selected && !inRange && "text-foreground",
65
- disabled && "cursor-not-allowed opacity-30",
66
- today_ && !selected && "ring-1 ring-ring",
67
- inRange && !selected && "bg-primary/20 text-primary font-medium",
68
- selected && "bg-primary text-primary-foreground",
69
- )}
70
- onclick={() => onselect?.(day)}
71
- >
72
- {day.getDate()}
73
- </button>
74
- {/each}
75
- {/each}
1
+ <script lang="ts">
2
+ import { cn } from "../../../../../utils.js";
3
+ import {
4
+ isToday,
5
+ isSelected,
6
+ isInRange,
7
+ isOutsideMonth,
8
+ isDisabled,
9
+ type CalendarToday,
10
+ } from "./utils.js";
11
+
12
+ type Props = {
13
+ year: number;
14
+ month: number;
15
+ weeks: Date[][];
16
+ weekdays: string[];
17
+ today: CalendarToday;
18
+ value?: Date;
19
+ rangeStart?: Date;
20
+ rangeEnd?: Date;
21
+ min?: Date;
22
+ max?: Date;
23
+ onselect?: (date: Date) => void;
24
+ };
25
+
26
+ let {
27
+ year,
28
+ month,
29
+ weeks,
30
+ weekdays,
31
+ today,
32
+ value,
33
+ rangeStart,
34
+ rangeEnd,
35
+ min,
36
+ max,
37
+ onselect,
38
+ }: Props = $props();
39
+ </script>
40
+
41
+ <div class="grid grid-cols-7">
42
+ {#each weekdays as day, i (i)}
43
+ <div class="py-1 text-center text-xs font-medium text-muted-foreground">
44
+ {day}
45
+ </div>
46
+ {/each}
47
+ </div>
48
+
49
+ <div class="grid grid-cols-7 gap-y-0.5">
50
+ {#each weeks as week, wi (wi)}
51
+ {#each week as day, di (`${wi}-${di}`)}
52
+ {@const outside = isOutsideMonth(day, year, month)}
53
+ {@const disabled = isDisabled(day, min, max)}
54
+ {@const today_ = isToday(day, today)}
55
+ {@const selected = isSelected(day, { value, rangeStart, rangeEnd })}
56
+ {@const inRange = isInRange(day, rangeStart, rangeEnd)}
57
+ <button
58
+ type="button"
59
+ {disabled}
60
+ class={cn(
61
+ "flex h-8 w-full items-center justify-center rounded-md text-sm transition-colors",
62
+ "hover:bg-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
63
+ outside && "text-muted-foreground/40",
64
+ !outside && !disabled && !selected && !inRange && "text-foreground",
65
+ disabled && "cursor-not-allowed opacity-30",
66
+ today_ && !selected && "ring-1 ring-ring",
67
+ inRange && !selected && "bg-primary/20 text-primary font-medium",
68
+ selected && "bg-primary text-primary-foreground",
69
+ )}
70
+ onclick={() => onselect?.(day)}
71
+ >
72
+ {day.getDate()}
73
+ </button>
74
+ {/each}
75
+ {/each}
76
76
  </div>
@@ -1,50 +1,50 @@
1
- <script lang="ts">
2
- import { HugeiconsIcon } from "@hugeicons/svelte";
3
- import { ChevronDownIcon } from "@hugeicons/core-free-icons";
4
- import { cn } from "../../../../../utils.js";
5
-
6
- type Props = {
7
- months: string[];
8
- month: number;
9
- open: boolean;
10
- onToggle: () => void;
11
- onSelect: (month: number) => void;
12
- };
13
-
14
- let { months, month, open, onToggle, onSelect }: Props = $props();
15
- </script>
16
-
17
- <button
18
- type="button"
19
- data-month-picker
20
- class="flex h-8 w-full items-center justify-between gap-1 rounded px-2 text-sm font-medium capitalize transition-colors hover:bg-muted"
21
- onclick={onToggle}
22
- >
23
- <span>{months[month]}</span>
24
- <HugeiconsIcon icon={ChevronDownIcon} size={14} strokeWidth={1.5} />
25
- </button>
26
-
27
- {#if open}
28
- <div
29
- role="listbox"
30
- aria-label="select-month"
31
- tabindex="-1"
32
- class="absolute left-0 right-0 top-full z-10 mt-1 grid max-h-48 grid-cols-1 gap-0.5 overflow-y-auto rounded-md border bg-popover p-1 shadow-md"
33
- onmousedown={(e) => e.preventDefault()}
34
- >
35
- {#each months as name, i (i)}
36
- <button
37
- type="button"
38
- class={cn(
39
- "rounded px-1 py-1 text-xs capitalize transition-colors hover:bg-muted",
40
- i === month
41
- ? "bg-primary font-medium text-primary-foreground"
42
- : "text-foreground",
43
- )}
44
- onclick={() => onSelect(i)}
45
- >
46
- {name}
47
- </button>
48
- {/each}
49
- </div>
1
+ <script lang="ts">
2
+ import { HugeiconsIcon } from "@hugeicons/svelte";
3
+ import { ChevronDownIcon } from "@hugeicons/core-free-icons";
4
+ import { cn } from "../../../../../utils.js";
5
+
6
+ type Props = {
7
+ months: string[];
8
+ month: number;
9
+ open: boolean;
10
+ onToggle: () => void;
11
+ onSelect: (month: number) => void;
12
+ };
13
+
14
+ let { months, month, open, onToggle, onSelect }: Props = $props();
15
+ </script>
16
+
17
+ <button
18
+ type="button"
19
+ data-month-picker
20
+ class="flex h-8 w-full items-center justify-between gap-1 rounded px-2 text-sm font-medium capitalize transition-colors hover:bg-muted"
21
+ onclick={onToggle}
22
+ >
23
+ <span>{months[month]}</span>
24
+ <HugeiconsIcon icon={ChevronDownIcon} size={14} strokeWidth={1.5} />
25
+ </button>
26
+
27
+ {#if open}
28
+ <div
29
+ role="listbox"
30
+ aria-label="select-month"
31
+ tabindex="-1"
32
+ class="absolute left-0 right-0 top-full z-10 mt-1 grid max-h-48 grid-cols-1 gap-0.5 overflow-y-auto rounded-md border bg-popover p-1 shadow-md"
33
+ onmousedown={(e) => e.preventDefault()}
34
+ >
35
+ {#each months as name, i (i)}
36
+ <button
37
+ type="button"
38
+ class={cn(
39
+ "rounded px-1 py-1 text-xs capitalize transition-colors hover:bg-muted",
40
+ i === month
41
+ ? "bg-primary font-medium text-primary-foreground"
42
+ : "text-foreground",
43
+ )}
44
+ onclick={() => onSelect(i)}
45
+ >
46
+ {name}
47
+ </button>
48
+ {/each}
49
+ </div>
50
50
  {/if}
@@ -1,117 +1,117 @@
1
- <script lang="ts">
2
- import { HugeiconsIcon } from "@hugeicons/svelte";
3
- import { ChevronDownIcon } from "@hugeicons/core-free-icons";
4
- import { cn } from "../../../../../utils.js";
5
-
6
- type Props = {
7
- years: number[];
8
- year: number;
9
- query: string;
10
- open: boolean;
11
- onQueryChange: (query: string) => void;
12
- onFocus: () => void;
13
- onToggle: () => void;
14
- onCommit: () => void;
15
- onCancel: () => void;
16
- onSelect: (year: number) => void;
17
- };
18
-
19
- let {
20
- years,
21
- year,
22
- query,
23
- open,
24
- onQueryChange,
25
- onFocus,
26
- onToggle,
27
- onCommit,
28
- onCancel,
29
- onSelect,
30
- }: Props = $props();
31
-
32
- let yearListRef = $state<HTMLDivElement | null>(null);
33
- let yearInputRef = $state<HTMLInputElement | null>(null);
34
-
35
- function commitYear() {
36
- onCommit();
37
- yearInputRef?.blur();
38
- }
39
-
40
- function handleKeydown(e: KeyboardEvent) {
41
- if (e.key === "Enter") {
42
- e.preventDefault();
43
- commitYear();
44
- } else if (e.key === "Escape") {
45
- e.preventDefault();
46
- onCancel();
47
- }
48
- }
49
-
50
- $effect(() => {
51
- if (!open) return;
52
- const el = yearListRef;
53
- const selected = el?.querySelector<HTMLElement>(
54
- `[data-year="${year}"]`,
55
- );
56
- selected?.scrollIntoView({ block: "nearest" });
57
- });
58
- </script>
59
-
60
- <div class="flex h-8 items-center rounded px-1">
61
- <input
62
- bind:this={yearInputRef}
63
- type="text"
64
- inputmode="numeric"
65
- pattern="[0-9]*"
66
- bind:value={query}
67
- onfocus={onFocus}
68
- oninput={onFocus}
69
- onkeydown={handleKeydown}
70
- onblur={() => {
71
- if (!open) {
72
- onCancel();
73
- }
74
- }}
75
- class="w-full min-w-0 rounded-md border border-transparent bg-transparent px-1 py-1 text-center text-sm font-medium outline-none transition-colors focus:border-ring focus:ring-2 focus:ring-ring/50"
76
- />
77
- <button
78
- type="button"
79
- class="rounded p-0.5 transition-colors hover:bg-muted"
80
- onclick={onToggle}
81
- >
82
- <HugeiconsIcon icon={ChevronDownIcon} size={14} strokeWidth={1.5} />
83
- </button>
84
- </div>
85
-
86
- {#if open}
87
- <div
88
- bind:this={yearListRef}
89
- role="listbox"
90
- aria-label="select-year"
91
- tabindex="-1"
92
- class="absolute left-0 right-0 top-full z-10 mt-1 max-h-56 overflow-y-auto rounded-md border bg-popover p-1 shadow-md"
93
- onmousedown={(e) => e.preventDefault()}
94
- >
95
- {#if years.length === 0}
96
- <div class="px-2 py-1 text-center text-xs text-muted-foreground">
97
- {query}
98
- </div>
99
- {:else}
100
- {#each years as yearItem, i (yearItem)}
101
- <button
102
- type="button"
103
- data-year={yearItem}
104
- class={cn(
105
- "block w-full rounded px-2 py-1 text-left text-sm transition-colors hover:bg-muted",
106
- yearItem === year
107
- ? "bg-primary font-medium text-primary-foreground hover:bg-primary"
108
- : "text-foreground",
109
- )}
110
- onclick={() => onSelect(yearItem)}
111
- >
112
- {yearItem}
113
- </button>
114
- {/each}
115
- {/if}
116
- </div>
1
+ <script lang="ts">
2
+ import { HugeiconsIcon } from "@hugeicons/svelte";
3
+ import { ChevronDownIcon } from "@hugeicons/core-free-icons";
4
+ import { cn } from "../../../../../utils.js";
5
+
6
+ type Props = {
7
+ years: number[];
8
+ year: number;
9
+ query: string;
10
+ open: boolean;
11
+ onQueryChange: (query: string) => void;
12
+ onFocus: () => void;
13
+ onToggle: () => void;
14
+ onCommit: () => void;
15
+ onCancel: () => void;
16
+ onSelect: (year: number) => void;
17
+ };
18
+
19
+ let {
20
+ years,
21
+ year,
22
+ query,
23
+ open,
24
+ onQueryChange,
25
+ onFocus,
26
+ onToggle,
27
+ onCommit,
28
+ onCancel,
29
+ onSelect,
30
+ }: Props = $props();
31
+
32
+ let yearListRef = $state<HTMLDivElement | null>(null);
33
+ let yearInputRef = $state<HTMLInputElement | null>(null);
34
+
35
+ function commitYear() {
36
+ onCommit();
37
+ yearInputRef?.blur();
38
+ }
39
+
40
+ function handleKeydown(e: KeyboardEvent) {
41
+ if (e.key === "Enter") {
42
+ e.preventDefault();
43
+ commitYear();
44
+ } else if (e.key === "Escape") {
45
+ e.preventDefault();
46
+ onCancel();
47
+ }
48
+ }
49
+
50
+ $effect(() => {
51
+ if (!open) return;
52
+ const el = yearListRef;
53
+ const selected = el?.querySelector<HTMLElement>(
54
+ `[data-year="${year}"]`,
55
+ );
56
+ selected?.scrollIntoView({ block: "nearest" });
57
+ });
58
+ </script>
59
+
60
+ <div class="flex h-8 items-center rounded px-1">
61
+ <input
62
+ bind:this={yearInputRef}
63
+ type="text"
64
+ inputmode="numeric"
65
+ pattern="[0-9]*"
66
+ bind:value={query}
67
+ onfocus={onFocus}
68
+ oninput={onFocus}
69
+ onkeydown={handleKeydown}
70
+ onblur={() => {
71
+ if (!open) {
72
+ onCancel();
73
+ }
74
+ }}
75
+ class="w-full min-w-0 rounded-md border border-transparent bg-transparent px-1 py-1 text-center text-sm font-medium outline-none transition-colors focus:border-ring focus:ring-2 focus:ring-ring/50"
76
+ />
77
+ <button
78
+ type="button"
79
+ class="rounded p-0.5 transition-colors hover:bg-muted"
80
+ onclick={onToggle}
81
+ >
82
+ <HugeiconsIcon icon={ChevronDownIcon} size={14} strokeWidth={1.5} />
83
+ </button>
84
+ </div>
85
+
86
+ {#if open}
87
+ <div
88
+ bind:this={yearListRef}
89
+ role="listbox"
90
+ aria-label="select-year"
91
+ tabindex="-1"
92
+ class="absolute left-0 right-0 top-full z-10 mt-1 max-h-56 overflow-y-auto rounded-md border bg-popover p-1 shadow-md"
93
+ onmousedown={(e) => e.preventDefault()}
94
+ >
95
+ {#if years.length === 0}
96
+ <div class="px-2 py-1 text-center text-xs text-muted-foreground">
97
+ {query}
98
+ </div>
99
+ {:else}
100
+ {#each years as yearItem, i (yearItem)}
101
+ <button
102
+ type="button"
103
+ data-year={yearItem}
104
+ class={cn(
105
+ "block w-full rounded px-2 py-1 text-left text-sm transition-colors hover:bg-muted",
106
+ yearItem === year
107
+ ? "bg-primary font-medium text-primary-foreground hover:bg-primary"
108
+ : "text-foreground",
109
+ )}
110
+ onclick={() => onSelect(yearItem)}
111
+ >
112
+ {yearItem}
113
+ </button>
114
+ {/each}
115
+ {/if}
116
+ </div>
117
117
  {/if}
@@ -1,83 +1,83 @@
1
- <script lang="ts">
2
- import Input from "../../input/input.svelte";
3
- import { Label } from "../../label";
4
- import { EyeIcon, EyeOffIcon } from "@hugeicons/core-free-icons";
5
- import { inputIconMap } from "../data/InputIconDefault.svelte.js";
6
- import type { InputLabelProps } from "../data/InputLabel.svelte.js";
7
- import { HugeiconsIcon } from "@hugeicons/svelte";
8
-
9
- let {
10
- label,
11
- labelClass,
12
- inputClass,
13
- isIcon,
14
- isLabel,
15
- value = $bindable(""),
16
- ...restProps
17
- }: InputLabelProps = $props();
18
-
19
- let showPassword = $state(false);
20
-
21
- const isPassword = $derived(restProps.type == "password");
22
-
23
- const inputType = $derived(
24
- isPassword && showPassword ? "text" : restProps.type,
25
- );
26
-
27
- const currentIcon = $derived(
28
- restProps.type ? inputIconMap[restProps.type] : undefined,
29
- );
30
-
31
- function togglePasswordVisibility() {
32
- showPassword = !showPassword;
33
- }
34
- </script>
35
-
36
- {#snippet renderInput()}
37
- <div class="flex items-center relative w-full">
38
- {#if isIcon && currentIcon}
39
- <span class="absolute left-3 flex items-center pointer-events-none">
40
- <HugeiconsIcon
41
- icon={currentIcon}
42
- size={16}
43
- color="#94a3b8"
44
- strokeWidth={1.5}
45
- />
46
- </span>
47
- {/if}
48
-
49
- <Input
50
- class="{isIcon && currentIcon ? 'pl-9' : ''} {isPassword ? 'pr-9' : ''} {inputClass ?? ''}"
51
- bind:value
52
- {...restProps}
53
- type={inputType}
54
- />
55
-
56
- {#if isPassword}
57
- <button
58
- type="button"
59
- onclick={togglePasswordVisibility}
60
- class="absolute right-3 flex items-center cursor-pointer z-10 text-slate-400 hover:text-slate-600 focus:outline-none"
61
- aria-label={showPassword ? "Ocultar senha" : "Ver senha"}
62
- >
63
- <HugeiconsIcon
64
- icon={showPassword ? EyeOffIcon : EyeIcon}
65
- size={16}
66
- color="#94a3b8"
67
- strokeWidth={1.5}
68
- />
69
- </button>
70
- {/if}
71
- </div>
72
- {/snippet}
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
- {@render renderInput()}
80
- </div>
81
- {:else}
82
- {@render renderInput()}
83
- {/if}
1
+ <script lang="ts">
2
+ import Input from "../../input/input.svelte";
3
+ import { Label } from "../../label";
4
+ import { EyeIcon, EyeOffIcon } from "@hugeicons/core-free-icons";
5
+ import { inputIconMap } from "../data/InputIconDefault.svelte.js";
6
+ import type { InputLabelProps } from "../data/InputLabel.svelte.js";
7
+ import { HugeiconsIcon } from "@hugeicons/svelte";
8
+
9
+ let {
10
+ label,
11
+ labelClass,
12
+ inputClass,
13
+ isIcon,
14
+ isLabel,
15
+ value = $bindable(""),
16
+ ...restProps
17
+ }: InputLabelProps = $props();
18
+
19
+ let showPassword = $state(false);
20
+
21
+ const isPassword = $derived(restProps.type == "password");
22
+
23
+ const inputType = $derived(
24
+ isPassword && showPassword ? "text" : restProps.type,
25
+ );
26
+
27
+ const currentIcon = $derived(
28
+ restProps.type ? inputIconMap[restProps.type] : undefined,
29
+ );
30
+
31
+ function togglePasswordVisibility() {
32
+ showPassword = !showPassword;
33
+ }
34
+ </script>
35
+
36
+ {#snippet renderInput()}
37
+ <div class="flex items-center relative w-full">
38
+ {#if isIcon && currentIcon}
39
+ <span class="absolute left-3 flex items-center pointer-events-none">
40
+ <HugeiconsIcon
41
+ icon={currentIcon}
42
+ size={16}
43
+ color="#94a3b8"
44
+ strokeWidth={1.5}
45
+ />
46
+ </span>
47
+ {/if}
48
+
49
+ <Input
50
+ class="{isIcon && currentIcon ? 'pl-9' : ''} {isPassword ? 'pr-9' : ''} {inputClass ?? ''}"
51
+ bind:value
52
+ {...restProps}
53
+ type={inputType}
54
+ />
55
+
56
+ {#if isPassword}
57
+ <button
58
+ type="button"
59
+ onclick={togglePasswordVisibility}
60
+ class="absolute right-3 flex items-center cursor-pointer z-10 text-slate-400 hover:text-slate-600 focus:outline-none"
61
+ aria-label={showPassword ? "Ocultar senha" : "Ver senha"}
62
+ >
63
+ <HugeiconsIcon
64
+ icon={showPassword ? EyeOffIcon : EyeIcon}
65
+ size={16}
66
+ color="#94a3b8"
67
+ strokeWidth={1.5}
68
+ />
69
+ </button>
70
+ {/if}
71
+ </div>
72
+ {/snippet}
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
+ {@render renderInput()}
80
+ </div>
81
+ {:else}
82
+ {@render renderInput()}
83
+ {/if}