negodesign 0.0.81 → 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 -35
  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,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
- /** Password confirmation 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="password"
17
- label={label || $t("input.password-confirm.label")}
18
- placeholder={placeholder || $t("input.password-confirm.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
+ /** Password confirmation 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="password"
17
+ label={label || $t("input.password-confirm.label")}
18
+ placeholder={placeholder || $t("input.password-confirm.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
- /** Password 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="password"
17
- label={label || $t("input.password.label")}
18
- placeholder={placeholder || $t("input.password.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
+ /** Password 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="password"
17
+ label={label || $t("input.password.label")}
18
+ placeholder={placeholder || $t("input.password.placeholder")}
19
+ isLabel
20
+ isIcon
21
+ bind:value
22
+ {...restProps}
23
+ />
@@ -1,37 +1,43 @@
1
- <script lang="ts">
2
- import { PhoneInput } from "../../phone-input";
3
- import type { InputLabelProps } from "../data/InputLabel.svelte.js";
4
- import { Label } from "../../label";
5
- import { t } from "../../../../i18n";
6
-
7
- /** Phone input field with icon and label. */
8
- let {
9
- label,
10
- labelClass,
11
- inputClass,
12
- isLabel,
13
- placeholder,
14
- value = $bindable(""),
15
- }: InputLabelProps = $props();
16
- </script>
17
-
18
- {#if isLabel}
19
- <div class="flex flex-col gap-3 w-full">
20
- {#if label}
21
- <Label class={labelClass}>{label}</Label>
22
- {:else}
23
- <Label class={labelClass}>{$t("input.phone.label")}</Label>
24
- {/if}
25
- <PhoneInput
26
- class={inputClass}
27
- placeholder={placeholder || $t("input.phone.placeholder")}
28
- bind:value
29
- />
30
- </div>
31
- {:else}
32
- <PhoneInput
33
- class={inputClass}
34
- placeholder={placeholder || $t("input.phone.placeholder")}
35
- bind:value
36
- />
37
- {/if}
1
+ <script lang="ts">
2
+ import { PhoneInput } from "../../phone-input";
3
+ import type { InputLabelProps } from "../data/InputLabel.svelte.js";
4
+ import { Label } from "../../label";
5
+ import { t } from "../../../../i18n";
6
+
7
+ /** Phone input field with icon and label. */
8
+ let {
9
+ label,
10
+ labelClass,
11
+ inputClass,
12
+ isLabel,
13
+ placeholder,
14
+ value = $bindable(""),
15
+ disabled = false,
16
+ ...restProps
17
+ }: InputLabelProps = $props();
18
+ </script>
19
+
20
+ {#if isLabel}
21
+ <div class="flex flex-col gap-3 w-full">
22
+ {#if label}
23
+ <Label class={labelClass}>{label}</Label>
24
+ {:else}
25
+ <Label class={labelClass}>{$t("input.phone.label")}</Label>
26
+ {/if}
27
+ <PhoneInput
28
+ class={inputClass}
29
+ placeholder={placeholder || $t("input.phone.placeholder")}
30
+ bind:value
31
+ {disabled}
32
+ {...restProps}
33
+ />
34
+ </div>
35
+ {:else}
36
+ <PhoneInput
37
+ class={inputClass}
38
+ placeholder={placeholder || $t("input.phone.placeholder")}
39
+ bind:value
40
+ {disabled}
41
+ {...restProps}
42
+ />
43
+ {/if}
@@ -1,247 +1,247 @@
1
- <script lang="ts">
2
- import type { InputLabelProps } from "../data/InputLabel.svelte.js";
3
- import { Label } from "../../label";
4
- import { HugeiconsIcon } from "@hugeicons/svelte";
5
- import { ChevronDownIcon, Search01Icon, Cancel01Icon } from "@hugeicons/core-free-icons";
6
- import { cn } from "../../../../utils.js";
7
-
8
- type SelectOption = { value: string; label: string };
9
- type SelectOptions = SelectOption[] | Record<string, string>;
10
-
11
- type Props = InputLabelProps & {
12
- options?: SelectOptions;
13
- disabled?: boolean;
14
- };
15
-
16
- let {
17
- label,
18
- labelClass,
19
- inputClass,
20
- isLabel = true,
21
- isIcon = false,
22
- placeholder,
23
- options = {},
24
- value = $bindable(""),
25
- disabled = false,
26
- }: Props = $props();
27
-
28
- const optionList = $derived(
29
- Array.isArray(options)
30
- ? options.map((o) => (typeof o === "string" ? { value: o, label: o } : o))
31
- : Object.entries(options).map(([value, label]) => ({ value, label })),
32
- );
33
-
34
- let query = $state("");
35
- let open = $state(false);
36
-
37
- const selectedLabel = $derived(
38
- optionList.find((o) => o.value === value)?.label ?? "",
39
- );
40
-
41
- const filteredOptions = $derived.by(() => {
42
- const q = query.trim().toLocaleLowerCase();
43
- if (!q) return optionList;
44
- return optionList.filter(
45
- (o) =>
46
- o.label.toLocaleLowerCase().includes(q) ||
47
- o.value.toLocaleLowerCase().includes(q),
48
- );
49
- });
50
-
51
- function handleFocus() {
52
- if (disabled) return;
53
- open = true;
54
- query = selectedLabel;
55
- }
56
-
57
- function handleInput() {
58
- open = true;
59
- }
60
-
61
- function selectOption(option: SelectOption) {
62
- value = option.value;
63
- query = option.label;
64
- open = false;
65
- }
66
-
67
- function clearSelection() {
68
- value = "";
69
- query = "";
70
- open = false;
71
- }
72
-
73
- function handleBlur(e: FocusEvent) {
74
- query = selectedLabel;
75
- }
76
-
77
- const inputClasses = $derived(
78
- cn(
79
- "h-9 w-full min-w-0 rounded-md border bg-transparent py-1 text-base shadow-xs",
80
- "transition-colors outline-none md:text-sm cursor-text",
81
- "border-input dark:bg-input/30 text-foreground placeholder:text-muted-foreground",
82
- "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-3",
83
- "disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50",
84
- "pr-9",
85
- isIcon ? "pl-9" : "pl-2.5",
86
- inputClass,
87
- ),
88
- );
89
- </script>
90
-
91
- {#if isLabel}
92
- <div class="flex flex-col gap-3 w-full">
93
- {#if label}
94
- <Label class={labelClass}>{label}</Label>
95
- {/if}
96
-
97
- <div class="relative">
98
- {#if isIcon && !disabled}
99
- <span
100
- class="absolute left-3 top-1/2 -translate-y-1/2 pointer-events-none text-slate-400"
101
- >
102
- <HugeiconsIcon icon={Search01Icon} size={16} strokeWidth={1.5} />
103
- </span>
104
- {/if}
105
-
106
- {#if !disabled && value}
107
- <button
108
- type="button"
109
- aria-label="clear"
110
- class="absolute right-3 top-1/2 -translate-y-1/2 flex items-center cursor-pointer z-10 text-slate-400 hover:text-slate-600"
111
- onmousedown={(e) => e.preventDefault()}
112
- onclick={clearSelection}
113
- >
114
- <HugeiconsIcon icon={Cancel01Icon} size={16} strokeWidth={1.5} />
115
- </button>
116
- {:else}
117
- <span
118
- class="absolute right-3 top-1/2 -translate-y-1/2 pointer-events-none text-slate-400"
119
- >
120
- <HugeiconsIcon icon={ChevronDownIcon} size={16} strokeWidth={1.5} />
121
- </span>
122
- {/if}
123
-
124
- <input
125
- type="text"
126
- class={inputClasses}
127
- placeholder={placeholder}
128
- {disabled}
129
- bind:value={query}
130
- onfocus={handleFocus}
131
- oninput={handleInput}
132
- onblur={handleBlur}
133
- onkeydown={(e) => {
134
- if (e.key === "Escape") open = false;
135
- if (e.key === "Enter") open = false;
136
- }}
137
- />
138
-
139
- {#if open && !disabled}
140
- <div
141
- role="listbox"
142
- tabindex="-1"
143
- 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"
144
- onmousedown={(e) => e.preventDefault()}
145
- >
146
- {#if filteredOptions.length === 0}
147
- <div class="px-2 py-1.5 text-center text-xs text-muted-foreground">
148
- {placeholder}
149
- </div>
150
- {:else}
151
- {#each filteredOptions as option, i (option.value)}
152
- <button
153
- type="button"
154
- role="option"
155
- aria-selected={option.value === value}
156
- class={cn(
157
- "block w-full rounded px-2 py-1.5 text-left text-sm transition-colors hover:bg-muted",
158
- option.value === value
159
- ? "bg-primary font-medium text-primary-foreground hover:bg-primary"
160
- : "text-foreground",
161
- )}
162
- onclick={() => selectOption(option)}
163
- >
164
- {option.label}
165
- </button>
166
- {/each}
167
- {/if}
168
- </div>
169
- {/if}
170
- </div>
171
- </div>
172
- {:else}
173
- <div class="relative">
174
- {#if isIcon && !disabled}
175
- <span
176
- class="absolute left-3 top-1/2 -translate-y-1/2 pointer-events-none text-slate-400"
177
- >
178
- <HugeiconsIcon icon={Search01Icon} size={16} strokeWidth={1.5} />
179
- </span>
180
- {/if}
181
-
182
- {#if !disabled && value}
183
- <button
184
- type="button"
185
- aria-label="clear"
186
- class="absolute right-3 top-1/2 -translate-y-1/2 flex items-center cursor-pointer z-10 text-slate-400 hover:text-slate-600"
187
- onmousedown={(e) => e.preventDefault()}
188
- onclick={clearSelection}
189
- >
190
- <HugeiconsIcon icon={Cancel01Icon} size={16} strokeWidth={1.5} />
191
- </button>
192
- {:else}
193
- <span
194
- class="absolute right-3 top-1/2 -translate-y-1/2 pointer-events-none text-slate-400"
195
- >
196
- <HugeiconsIcon icon={ChevronDownIcon} size={16} strokeWidth={1.5} />
197
- </span>
198
- {/if}
199
-
200
- <input
201
- type="text"
202
- class={inputClasses}
203
- placeholder={placeholder}
204
- {disabled}
205
- bind:value={query}
206
- onfocus={handleFocus}
207
- oninput={handleInput}
208
- onblur={handleBlur}
209
- onkeydown={(e) => {
210
- if (e.key === "Escape") open = false;
211
- if (e.key === "Enter") open = false;
212
- }}
213
- />
214
-
215
- {#if open && !disabled}
216
- <div
217
- role="listbox"
218
- tabindex="-1"
219
- 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"
220
- onmousedown={(e) => e.preventDefault()}
221
- >
222
- {#if filteredOptions.length === 0}
223
- <div class="px-2 py-1.5 text-center text-xs text-muted-foreground">
224
- {placeholder}
225
- </div>
226
- {:else}
227
- {#each filteredOptions as option, i (option.value)}
228
- <button
229
- type="button"
230
- role="option"
231
- aria-selected={option.value === value}
232
- class={cn(
233
- "block w-full rounded px-2 py-1.5 text-left text-sm transition-colors hover:bg-muted",
234
- option.value === value
235
- ? "bg-primary font-medium text-primary-foreground hover:bg-primary"
236
- : "text-foreground",
237
- )}
238
- onclick={() => selectOption(option)}
239
- >
240
- {option.label}
241
- </button>
242
- {/each}
243
- {/if}
244
- </div>
245
- {/if}
246
- </div>
1
+ <script lang="ts">
2
+ import type { InputLabelProps } from "../data/InputLabel.svelte.js";
3
+ import { Label } from "../../label";
4
+ import { HugeiconsIcon } from "@hugeicons/svelte";
5
+ import { ChevronDownIcon, Search01Icon, Cancel01Icon } from "@hugeicons/core-free-icons";
6
+ import { cn } from "../../../../utils.js";
7
+
8
+ type SelectOption = { value: string; label: string };
9
+ type SelectOptions = SelectOption[] | Record<string, string>;
10
+
11
+ type Props = InputLabelProps & {
12
+ options?: SelectOptions;
13
+ disabled?: boolean;
14
+ };
15
+
16
+ let {
17
+ label,
18
+ labelClass,
19
+ inputClass,
20
+ isLabel = true,
21
+ isIcon = false,
22
+ placeholder,
23
+ options = {},
24
+ value = $bindable(""),
25
+ disabled = false,
26
+ }: Props = $props();
27
+
28
+ const optionList = $derived(
29
+ Array.isArray(options)
30
+ ? options.map((o) => (typeof o === "string" ? { value: o, label: o } : o))
31
+ : Object.entries(options).map(([value, label]) => ({ value, label })),
32
+ );
33
+
34
+ let query = $state("");
35
+ let open = $state(false);
36
+
37
+ const selectedLabel = $derived(
38
+ optionList.find((o) => o.value === value)?.label ?? "",
39
+ );
40
+
41
+ const filteredOptions = $derived.by(() => {
42
+ const q = query.trim().toLocaleLowerCase();
43
+ if (!q) return optionList;
44
+ return optionList.filter(
45
+ (o) =>
46
+ o.label.toLocaleLowerCase().includes(q) ||
47
+ o.value.toLocaleLowerCase().includes(q),
48
+ );
49
+ });
50
+
51
+ function handleFocus() {
52
+ if (disabled) return;
53
+ open = true;
54
+ query = selectedLabel;
55
+ }
56
+
57
+ function handleInput() {
58
+ open = true;
59
+ }
60
+
61
+ function selectOption(option: SelectOption) {
62
+ value = option.value;
63
+ query = option.label;
64
+ open = false;
65
+ }
66
+
67
+ function clearSelection() {
68
+ value = "";
69
+ query = "";
70
+ open = false;
71
+ }
72
+
73
+ function handleBlur(e: FocusEvent) {
74
+ query = selectedLabel;
75
+ }
76
+
77
+ const inputClasses = $derived(
78
+ cn(
79
+ "h-9 w-full min-w-0 rounded-md border bg-transparent py-1 text-base shadow-xs",
80
+ "transition-colors outline-none md:text-sm cursor-text",
81
+ "border-input dark:bg-input/30 text-foreground placeholder:text-muted-foreground",
82
+ "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-3",
83
+ "disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50",
84
+ "pr-9",
85
+ isIcon ? "pl-9" : "pl-2.5",
86
+ inputClass,
87
+ ),
88
+ );
89
+ </script>
90
+
91
+ {#if isLabel}
92
+ <div class="flex flex-col gap-3 w-full">
93
+ {#if label}
94
+ <Label class={labelClass}>{label}</Label>
95
+ {/if}
96
+
97
+ <div class="relative">
98
+ {#if isIcon && !disabled}
99
+ <span
100
+ class="absolute left-3 top-1/2 -translate-y-1/2 pointer-events-none text-slate-400"
101
+ >
102
+ <HugeiconsIcon icon={Search01Icon} size={16} strokeWidth={1.5} />
103
+ </span>
104
+ {/if}
105
+
106
+ {#if !disabled && value}
107
+ <button
108
+ type="button"
109
+ aria-label="clear"
110
+ class="absolute right-3 top-1/2 -translate-y-1/2 flex items-center cursor-pointer z-10 text-slate-400 hover:text-slate-600"
111
+ onmousedown={(e) => e.preventDefault()}
112
+ onclick={clearSelection}
113
+ >
114
+ <HugeiconsIcon icon={Cancel01Icon} size={16} strokeWidth={1.5} />
115
+ </button>
116
+ {:else}
117
+ <span
118
+ class="absolute right-3 top-1/2 -translate-y-1/2 pointer-events-none text-slate-400"
119
+ >
120
+ <HugeiconsIcon icon={ChevronDownIcon} size={16} strokeWidth={1.5} />
121
+ </span>
122
+ {/if}
123
+
124
+ <input
125
+ type="text"
126
+ class={inputClasses}
127
+ placeholder={placeholder}
128
+ {disabled}
129
+ bind:value={query}
130
+ onfocus={handleFocus}
131
+ oninput={handleInput}
132
+ onblur={handleBlur}
133
+ onkeydown={(e) => {
134
+ if (e.key === "Escape") open = false;
135
+ if (e.key === "Enter") open = false;
136
+ }}
137
+ />
138
+
139
+ {#if open && !disabled}
140
+ <div
141
+ role="listbox"
142
+ tabindex="-1"
143
+ 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"
144
+ onmousedown={(e) => e.preventDefault()}
145
+ >
146
+ {#if filteredOptions.length === 0}
147
+ <div class="px-2 py-1.5 text-center text-xs text-muted-foreground">
148
+ {placeholder}
149
+ </div>
150
+ {:else}
151
+ {#each filteredOptions as option, i (option.value)}
152
+ <button
153
+ type="button"
154
+ role="option"
155
+ aria-selected={option.value === value}
156
+ class={cn(
157
+ "block w-full rounded px-2 py-1.5 text-left text-sm transition-colors hover:bg-muted",
158
+ option.value === value
159
+ ? "bg-primary font-medium text-primary-foreground hover:bg-primary"
160
+ : "text-foreground",
161
+ )}
162
+ onclick={() => selectOption(option)}
163
+ >
164
+ {option.label}
165
+ </button>
166
+ {/each}
167
+ {/if}
168
+ </div>
169
+ {/if}
170
+ </div>
171
+ </div>
172
+ {:else}
173
+ <div class="relative">
174
+ {#if isIcon && !disabled}
175
+ <span
176
+ class="absolute left-3 top-1/2 -translate-y-1/2 pointer-events-none text-slate-400"
177
+ >
178
+ <HugeiconsIcon icon={Search01Icon} size={16} strokeWidth={1.5} />
179
+ </span>
180
+ {/if}
181
+
182
+ {#if !disabled && value}
183
+ <button
184
+ type="button"
185
+ aria-label="clear"
186
+ class="absolute right-3 top-1/2 -translate-y-1/2 flex items-center cursor-pointer z-10 text-slate-400 hover:text-slate-600"
187
+ onmousedown={(e) => e.preventDefault()}
188
+ onclick={clearSelection}
189
+ >
190
+ <HugeiconsIcon icon={Cancel01Icon} size={16} strokeWidth={1.5} />
191
+ </button>
192
+ {:else}
193
+ <span
194
+ class="absolute right-3 top-1/2 -translate-y-1/2 pointer-events-none text-slate-400"
195
+ >
196
+ <HugeiconsIcon icon={ChevronDownIcon} size={16} strokeWidth={1.5} />
197
+ </span>
198
+ {/if}
199
+
200
+ <input
201
+ type="text"
202
+ class={inputClasses}
203
+ placeholder={placeholder}
204
+ {disabled}
205
+ bind:value={query}
206
+ onfocus={handleFocus}
207
+ oninput={handleInput}
208
+ onblur={handleBlur}
209
+ onkeydown={(e) => {
210
+ if (e.key === "Escape") open = false;
211
+ if (e.key === "Enter") open = false;
212
+ }}
213
+ />
214
+
215
+ {#if open && !disabled}
216
+ <div
217
+ role="listbox"
218
+ tabindex="-1"
219
+ 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"
220
+ onmousedown={(e) => e.preventDefault()}
221
+ >
222
+ {#if filteredOptions.length === 0}
223
+ <div class="px-2 py-1.5 text-center text-xs text-muted-foreground">
224
+ {placeholder}
225
+ </div>
226
+ {:else}
227
+ {#each filteredOptions as option, i (option.value)}
228
+ <button
229
+ type="button"
230
+ role="option"
231
+ aria-selected={option.value === value}
232
+ class={cn(
233
+ "block w-full rounded px-2 py-1.5 text-left text-sm transition-colors hover:bg-muted",
234
+ option.value === value
235
+ ? "bg-primary font-medium text-primary-foreground hover:bg-primary"
236
+ : "text-foreground",
237
+ )}
238
+ onclick={() => selectOption(option)}
239
+ >
240
+ {option.label}
241
+ </button>
242
+ {/each}
243
+ {/if}
244
+ </div>
245
+ {/if}
246
+ </div>
247
247
  {/if}