@memobit/libs 3.0.0 → 3.1.0

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 (300) hide show
  1. package/dist/components/Accordion/Accordion.css +1 -0
  2. package/dist/components/Accordion/Accordion2.js +79 -0
  3. package/dist/components/AlertDialog/AlertDialog.css +1 -0
  4. package/dist/components/AlertDialog/AlertDialog2.js +26 -0
  5. package/dist/components/AnalogClock/AnalogClock.css +1 -0
  6. package/dist/components/AnalogClock/AnalogClock2.js +293 -0
  7. package/dist/components/AngleSlider/AngleSlider.css +1 -0
  8. package/dist/components/AngleSlider/AngleSlider2.js +135 -0
  9. package/dist/components/AppHeader/AppHeader.css +1 -0
  10. package/dist/components/AppHeader/AppHeader2.js +44 -0
  11. package/dist/components/Auth/ChangePasswordModal/ChangePasswordModal.css +1 -0
  12. package/dist/components/Auth/ChangePasswordModal/ChangePasswordModal2.js +138 -0
  13. package/dist/components/Auth/Login/Login.css +1 -0
  14. package/dist/components/Auth/Login/Login2.js +155 -0
  15. package/dist/components/Auth/MfaSetupModal/MfaSetupModal.css +1 -0
  16. package/dist/components/Auth/MfaSetupModal/MfaSetupModal2.js +327 -0
  17. package/dist/components/AvatarInitials/AvatarInitials.css +1 -0
  18. package/dist/components/AvatarInitials/AvatarInitials2.js +73 -0
  19. package/dist/components/BMI/BMI.css +1 -0
  20. package/dist/components/BMI/BMI2.js +53 -0
  21. package/dist/components/BMI/bmiUtils.js +265 -0
  22. package/dist/components/Badge/Badge.css +1 -0
  23. package/dist/components/Badge/Badge2.js +30 -0
  24. package/dist/components/Banner/Banner.css +1 -0
  25. package/dist/components/Banner/Banner2.js +57 -0
  26. package/dist/components/Blockquote/Blockquote.css +1 -0
  27. package/dist/components/Blockquote/Blockquote2.js +55 -0
  28. package/dist/components/Breadcrumb/Breadcrumb.css +1 -0
  29. package/dist/components/Breadcrumb/Breadcrumb2.js +36 -0
  30. package/dist/components/BulkActionBar/BulkActionBar.css +1 -0
  31. package/dist/components/BulkActionBar/BulkActionBar2.js +39 -0
  32. package/dist/components/Button/Button.css +1 -0
  33. package/dist/components/Button/Button2.js +32 -0
  34. package/dist/components/Calendar/Calendar.css +1 -0
  35. package/dist/components/Calendar/Calendar2.js +279 -0
  36. package/dist/components/CalendarHeatmap/CalendarHeatmap.css +1 -0
  37. package/dist/components/CalendarHeatmap/CalendarHeatmap2.js +91 -0
  38. package/dist/components/Card/Card.css +1 -0
  39. package/dist/components/Card/Card2.js +47 -0
  40. package/dist/components/Checkbox/Checkbox.css +1 -0
  41. package/dist/components/Checkbox/Checkbox2.js +35 -0
  42. package/dist/components/Chip/Chip.css +1 -0
  43. package/dist/components/Chip/Chip2.js +31 -0
  44. package/dist/components/CollapsibleSection/CollapsibleSection.css +1 -0
  45. package/dist/components/CollapsibleSection/CollapsibleSection2.js +68 -0
  46. package/dist/components/ColorPicker/ColorPicker.css +1 -0
  47. package/dist/components/ColorPicker/ColorPicker2.js +257 -0
  48. package/dist/components/CommandPalette/CommandPalette.css +1 -0
  49. package/dist/components/CommandPalette/CommandPalette2.js +97 -0
  50. package/dist/components/Confetti/Confetti.css +1 -0
  51. package/dist/components/Confetti/Confetti2.js +175 -0
  52. package/dist/components/ConfirmDialog/ConfirmDialog.css +1 -0
  53. package/dist/components/ConfirmDialog/ConfirmDialog2.js +37 -0
  54. package/dist/components/ConfirmPopover/ConfirmPopover.css +1 -0
  55. package/dist/components/ConfirmPopover/ConfirmPopover2.js +55 -0
  56. package/dist/components/ContextMenu/ContextMenu.css +1 -0
  57. package/dist/components/ContextMenu/ContextMenu2.js +53 -0
  58. package/dist/components/ContextToast/ContextToast.css +1 -0
  59. package/dist/components/ContextToast/ContextToast2.js +96 -0
  60. package/dist/components/ControlPanel/ControlPanel.css +1 -0
  61. package/dist/components/ControlPanel/ControlPanel.types.js +21 -0
  62. package/dist/components/ControlPanel/ControlPanel2.js +137 -0
  63. package/dist/components/ControlPanel/ControlPanelContext.js +31 -0
  64. package/dist/components/ControlPanel/ControlPanelFilter.js +386 -0
  65. package/dist/components/ControlPanel/ControlPanelNav.js +74 -0
  66. package/dist/components/ControlPanel/ControlPanelOptions.js +197 -0
  67. package/dist/components/CopyButton/CopyButton.css +1 -0
  68. package/dist/components/CopyButton/CopyButton2.js +48 -0
  69. package/dist/components/CountryWithFlag/CountryWithFlag.css +1 -0
  70. package/dist/components/CountryWithFlag/CountryWithFlag2.js +21 -0
  71. package/dist/components/DataView/DataView.CardView.js +189 -0
  72. package/dist/components/DataView/DataView.ColumnSelector.js +51 -0
  73. package/dist/components/DataView/DataView.MiniSort.js +25 -0
  74. package/dist/components/DataView/DataView.css +1 -0
  75. package/dist/components/DataView/DataView2.js +433 -0
  76. package/dist/components/DatePicker/DatePicker.css +1 -0
  77. package/dist/components/DatePicker/DatePicker2.js +151 -0
  78. package/dist/components/DateRangePicker/DateRangePicker.css +1 -0
  79. package/dist/components/DateRangePicker/DateRangePicker2.js +223 -0
  80. package/dist/components/DayAgenda/DayAgenda.css +1 -0
  81. package/dist/components/DayAgenda/DayAgenda2.js +120 -0
  82. package/dist/components/DiffViewer/DiffViewer.css +1 -0
  83. package/dist/components/DiffViewer/DiffViewer2.js +270 -0
  84. package/dist/components/Drawer/Drawer.css +1 -0
  85. package/dist/components/Drawer/Drawer2.js +119 -0
  86. package/dist/components/Dropdown/Dropdown.css +1 -0
  87. package/dist/components/Dropdown/Dropdown2.js +413 -0
  88. package/dist/components/EmojiPicker/EmojiPicker.css +1 -0
  89. package/dist/components/EmojiPicker/EmojiPicker2.js +789 -0
  90. package/dist/components/EmojiPicker/emojiKeywords/activities.js +508 -0
  91. package/dist/components/EmojiPicker/emojiKeywords/animals.js +501 -0
  92. package/dist/components/EmojiPicker/emojiKeywords/food.js +540 -0
  93. package/dist/components/EmojiPicker/emojiKeywords/index.js +21 -0
  94. package/dist/components/EmojiPicker/emojiKeywords/objects.js +652 -0
  95. package/dist/components/EmojiPicker/emojiKeywords/people.js +488 -0
  96. package/dist/components/EmojiPicker/emojiKeywords/smileys.js +538 -0
  97. package/dist/components/EmojiPicker/emojiKeywords/symbols.js +597 -0
  98. package/dist/components/EmojiPicker/emojiKeywords/travel.js +507 -0
  99. package/dist/components/EmptyState/EmptyState.css +1 -0
  100. package/dist/components/EmptyState/EmptyState2.js +47 -0
  101. package/dist/components/ErrorBoundary/ErrorBoundary.css +1 -0
  102. package/dist/components/ErrorBoundary/ErrorBoundary2.js +37 -0
  103. package/dist/components/EventCalendar/EventCalendar.Chip.js +45 -0
  104. package/dist/components/EventCalendar/EventCalendar.Month.js +118 -0
  105. package/dist/components/EventCalendar/EventCalendar.Week.js +131 -0
  106. package/dist/components/EventCalendar/EventCalendar.css +1 -0
  107. package/dist/components/EventCalendar/EventCalendar.helpers.js +72 -0
  108. package/dist/components/EventCalendar/EventCalendar2.js +157 -0
  109. package/dist/components/FileDropzone/FileDropzone.css +1 -0
  110. package/dist/components/FileDropzone/FileDropzone2.js +71 -0
  111. package/dist/components/Flag/Flag.css +1 -0
  112. package/dist/components/Flag/Flag2.js +36 -0
  113. package/dist/components/FloatButton/FloatButton.css +1 -0
  114. package/dist/components/FloatButton/FloatButton2.js +68 -0
  115. package/dist/components/FloatingWindow/FloatingWindow.css +1 -0
  116. package/dist/components/FloatingWindow/FloatingWindow2.js +203 -0
  117. package/dist/components/FolderBrowserModal/FolderBrowserModal.css +1 -0
  118. package/dist/components/FolderBrowserModal/FolderBrowserModal2.js +144 -0
  119. package/dist/components/Grid/Col.js +17 -0
  120. package/dist/components/Grid/Grid.css +1 -0
  121. package/dist/components/Grid/Grid2.js +28 -0
  122. package/dist/components/Icon/Icon.css +1 -0
  123. package/dist/components/Icon/Icon2.js +23 -0
  124. package/dist/components/IconPicker/IconPicker.css +1 -0
  125. package/dist/components/IconPicker/IconPicker2.js +51 -0
  126. package/dist/components/InfiniteScroll/InfiniteScroll.css +1 -0
  127. package/dist/components/InfiniteScroll/InfiniteScroll2.js +66 -0
  128. package/dist/components/InputDate/InputDate.css +1 -0
  129. package/dist/components/InputDate/InputDate2.js +87 -0
  130. package/dist/components/InputEmail/InputEmail.css +1 -0
  131. package/dist/components/InputEmail/InputEmail2.js +73 -0
  132. package/dist/components/InputFile/InputFile.css +1 -0
  133. package/dist/components/InputFile/InputFile2.js +41 -0
  134. package/dist/components/InputMask/InputMask.css +1 -0
  135. package/dist/components/InputMask/InputMask2.js +163 -0
  136. package/dist/components/InputNumber/InputNumber.css +1 -0
  137. package/dist/components/InputNumber/InputNumber2.js +60 -0
  138. package/dist/components/InputPIN/InputPIN.css +1 -0
  139. package/dist/components/InputPIN/InputPIN2.js +121 -0
  140. package/dist/components/InputPassword/InputPassword.css +1 -0
  141. package/dist/components/InputPassword/InputPassword2.js +47 -0
  142. package/dist/components/InputPhone/InputPhone.css +1 -0
  143. package/dist/components/InputPhone/InputPhone2.js +82 -0
  144. package/dist/components/InputSearch/InputSearch.css +1 -0
  145. package/dist/components/InputSearch/InputSearch2.js +53 -0
  146. package/dist/components/InputText/InputText.css +1 -0
  147. package/dist/components/InputText/InputText2.js +47 -0
  148. package/dist/components/InputTextarea/InputTextarea.css +1 -0
  149. package/dist/components/InputTextarea/InputTextarea2.js +46 -0
  150. package/dist/components/InputTime/InputTime.css +1 -0
  151. package/dist/components/InputTime/InputTime2.js +85 -0
  152. package/dist/components/InputUrl/InputUrl.css +1 -0
  153. package/dist/components/InputUrl/InputUrl2.js +65 -0
  154. package/dist/components/JourneyWizard/JourneyWizard.css +1 -0
  155. package/dist/components/JourneyWizard/JourneyWizard2.js +147 -0
  156. package/dist/components/List/List.css +1 -0
  157. package/dist/components/List/List2.js +28 -0
  158. package/dist/components/Loading/Loading.css +1 -0
  159. package/dist/components/Loading/Loading2.js +11 -0
  160. package/dist/components/MenuHamburger/MenuHamburger.css +1 -0
  161. package/dist/components/MenuHamburger/MenuHamburger2.js +65 -0
  162. package/dist/components/MiniSort/MiniSort.css +1 -0
  163. package/dist/components/MiniSort/MiniSort2.js +52 -0
  164. package/dist/components/MiniStatsCard/MiniStatsCard.css +1 -0
  165. package/dist/components/MiniStatsCard/MiniStatsCard2.js +67 -0
  166. package/dist/components/Minimap/Minimap.css +1 -0
  167. package/dist/components/Minimap/Minimap2.js +62 -0
  168. package/dist/components/Modal/Modal.css +1 -0
  169. package/dist/components/Modal/Modal2.js +87 -0
  170. package/dist/components/NavBar/NavBar.css +1 -0
  171. package/dist/components/NavBar/NavBar2.js +64 -0
  172. package/dist/components/NotificationPanel/NotificationPanel.css +1 -0
  173. package/dist/components/NotificationPanel/NotificationPanel2.js +66 -0
  174. package/dist/components/Pagination/Pagination.css +1 -0
  175. package/dist/components/Pagination/Pagination2.js +92 -0
  176. package/dist/components/PieChart/PieChart.css +1 -0
  177. package/dist/components/PieChart/PieChart2.js +142 -0
  178. package/dist/components/Popover/Popover.css +1 -0
  179. package/dist/components/Popover/Popover2.js +109 -0
  180. package/dist/components/Popover/hooks/Popover.hook.js +33 -0
  181. package/dist/components/ProgressBar/ProgressBar.css +1 -0
  182. package/dist/components/ProgressBar/ProgressBar2.js +48 -0
  183. package/dist/components/ProgressRing/ProgressRing.css +1 -0
  184. package/dist/components/ProgressRing/ProgressRing2.js +54 -0
  185. package/dist/components/QuantitySelector/QuantitySelector.css +1 -0
  186. package/dist/components/QuantitySelector/QuantitySelector2.js +94 -0
  187. package/dist/components/QuickAdd/QuickAdd.css +1 -0
  188. package/dist/components/QuickAdd/QuickAdd2.js +56 -0
  189. package/dist/components/QuickNumberUpdate/QuickNumberUpdate.css +1 -0
  190. package/dist/components/QuickNumberUpdate/QuickNumberUpdate2.js +52 -0
  191. package/dist/components/QuickOptionUpdate/QuickOptionUpdate.css +1 -0
  192. package/dist/components/QuickOptionUpdate/QuickOptionUpdate2.js +67 -0
  193. package/dist/components/Radio/Radio.css +1 -0
  194. package/dist/components/Radio/Radio2.js +36 -0
  195. package/dist/components/RangeSlider/RangeSlider.css +1 -0
  196. package/dist/components/RangeSlider/RangeSlider2.js +157 -0
  197. package/dist/components/Rating/Rating.css +1 -0
  198. package/dist/components/Rating/Rating2.js +148 -0
  199. package/dist/components/Rating/RatingIcon.js +102 -0
  200. package/dist/components/RichTextEditor/RichTextEditor.css +1 -0
  201. package/dist/components/RichTextEditor/RichTextEditor2.js +212 -0
  202. package/dist/components/RichTextEditor/RteLinkPrompt.js +42 -0
  203. package/dist/components/RichTextEditor/RteTableToolbar.js +95 -0
  204. package/dist/components/RichTextEditor/RteToolbar.js +106 -0
  205. package/dist/components/RichTextEditor/helpers.js +73 -0
  206. package/dist/components/RichTextEditor/hooks/useEditorHistory.js +39 -0
  207. package/dist/components/RichTextEditor/hooks/useLinkPrompt.js +61 -0
  208. package/dist/components/RichTextEditor/hooks/useTableOps.js +134 -0
  209. package/dist/components/RollingNumber/RollingNumber.css +1 -0
  210. package/dist/components/RollingNumber/RollingNumber2.js +71 -0
  211. package/dist/components/ScrollToTop/ScrollToTop.css +1 -0
  212. package/dist/components/ScrollToTop/ScrollToTop2.js +40 -0
  213. package/dist/components/Separator/Separator.css +1 -0
  214. package/dist/components/Separator/Separator2.js +39 -0
  215. package/dist/components/Sidebar/Sidebar.css +1 -0
  216. package/dist/components/Sidebar/Sidebar2.js +115 -0
  217. package/dist/components/Sidebar/SidebarContext.js +31 -0
  218. package/dist/components/SignalStrength/SignalStrength.css +1 -0
  219. package/dist/components/SignalStrength/SignalStrength2.js +56 -0
  220. package/dist/components/Skeleton/Skeleton.css +1 -0
  221. package/dist/components/Skeleton/Skeleton2.js +50 -0
  222. package/dist/components/Slider/Slider.css +1 -0
  223. package/dist/components/Slider/Slider2.js +39 -0
  224. package/dist/components/SplitPanel/SplitPanel.css +1 -0
  225. package/dist/components/SplitPanel/SplitPanel2.js +69 -0
  226. package/dist/components/Splitter/Splitter.css +1 -0
  227. package/dist/components/Splitter/Splitter2.js +89 -0
  228. package/dist/components/StackedBar/StackedBar.css +1 -0
  229. package/dist/components/StackedBar/StackedBar2.js +50 -0
  230. package/dist/components/Stats/Stats.css +1 -0
  231. package/dist/components/Stats/Stats2.js +26 -0
  232. package/dist/components/StickyBar/StickyBar.css +1 -0
  233. package/dist/components/StickyBar/StickyBar2.js +29 -0
  234. package/dist/components/SuggestionsList/SuggestionsList.css +1 -0
  235. package/dist/components/SuggestionsList/SuggestionsList2.js +121 -0
  236. package/dist/components/ThemeSettings/ThemeContext.js +138 -0
  237. package/dist/components/ThemeSettings/ThemeContextValue.js +5 -0
  238. package/dist/components/ThemeSettings/ThemeSettings.css +1 -0
  239. package/dist/components/ThemeSettings/ThemeSettings2.js +245 -0
  240. package/dist/components/ThemeSettings/themeConfig.js +7 -0
  241. package/dist/components/ThemeSettings/useTheme.js +10 -0
  242. package/dist/components/TimePicker/TimePicker.css +1 -0
  243. package/dist/components/TimePicker/TimePicker2.js +118 -0
  244. package/dist/components/TimePicker/TimeSpinner.js +59 -0
  245. package/dist/components/Timeline/Timeline.css +1 -0
  246. package/dist/components/Timeline/Timeline2.js +57 -0
  247. package/dist/components/TimelineMarkers/TimelineMarkers.css +1 -0
  248. package/dist/components/TimelineMarkers/TimelineMarkers2.js +73 -0
  249. package/dist/components/TipsOfTheDay/TipsOfTheDay.css +1 -0
  250. package/dist/components/TipsOfTheDay/TipsOfTheDay2.js +24 -0
  251. package/dist/components/Toast/Toast.css +1 -0
  252. package/dist/components/Toast/Toast2.js +39 -0
  253. package/dist/components/ToggleButtons/ToggleButtons.css +1 -0
  254. package/dist/components/ToggleButtons/ToggleButtons2.js +47 -0
  255. package/dist/components/ToggleSwitch/ToggleSwitch.css +1 -0
  256. package/dist/components/ToggleSwitch/ToggleSwitch2.js +27 -0
  257. package/dist/components/Toolbar/Toolbar.css +1 -0
  258. package/dist/components/Toolbar/Toolbar2.js +129 -0
  259. package/dist/components/Tooltip/Tooltip.css +1 -0
  260. package/dist/components/Tooltip/Tooltip2.js +93 -0
  261. package/dist/components/TourHud/TourHud.css +1 -0
  262. package/dist/components/TourHud/TourHud2.js +70 -0
  263. package/dist/components/Transition/Transition.css +1 -0
  264. package/dist/components/Transition/Transition2.js +68 -0
  265. package/dist/components/Tree/Tree.css +1 -0
  266. package/dist/components/Tree/Tree2.js +95 -0
  267. package/dist/components/VirtualList/VirtualList.css +1 -0
  268. package/dist/components/VirtualList/VirtualList2.js +64 -0
  269. package/dist/components/WHtR/WHtR.css +1 -0
  270. package/dist/components/WHtR/WHtR2.js +115 -0
  271. package/dist/contexts/AuthContext/AuthContext.js +113 -0
  272. package/dist/helpers/AppPersistenceStorage.js +50 -0
  273. package/dist/helpers/Datetime.js +114 -0
  274. package/dist/helpers/Format.js +21 -0
  275. package/dist/helpers/Highlight.js +36 -0
  276. package/dist/helpers/HtmlContent.js +118 -0
  277. package/dist/helpers/LogicalOperators.js +15 -0
  278. package/dist/helpers/Numbers.js +15 -0
  279. package/dist/helpers/Pagination.js +7 -0
  280. package/dist/helpers/Search.js +15 -0
  281. package/dist/helpers/Strings.js +10 -0
  282. package/dist/helpers/Urls.js +68 -0
  283. package/dist/helpers/VersionInfo.js +36 -0
  284. package/dist/hooks/useAppPersistence.js +51 -0
  285. package/dist/hooks/useAuth/useAuth.js +10 -0
  286. package/dist/hooks/useBodyScrollLock.js +31 -0
  287. package/dist/hooks/useBreakpoint.js +65 -0
  288. package/dist/hooks/useComponentEffect.js +8 -0
  289. package/dist/hooks/useSwipe.js +45 -0
  290. package/dist/index.css +1 -2
  291. package/dist/index.esm.js +1 -17211
  292. package/dist/index.js +348 -0
  293. package/dist/mfa.js +4 -0
  294. package/dist/node_modules/qrcode.react/lib/esm/index.js +979 -0
  295. package/dist/validators/Vin.js +69 -0
  296. package/dist/version.js +8 -0
  297. package/dist/version.json +4 -4
  298. package/package.json +8 -7
  299. package/dist/mfa.esm.js +0 -1293
  300. package/dist/useAuth-BBqdDG2z.js +0 -467
@@ -0,0 +1,87 @@
1
+ import './InputDate.css';
2
+ import { Icon as f } from "../Icon/Icon2.js";
3
+ import { Tooltip as N } from "../Tooltip/Tooltip2.js";
4
+ /* empty css */
5
+ import { forwardRef as j, useRef as z } from "react";
6
+ import { jsx as e, jsxs as s } from "react/jsx-runtime";
7
+ var E = j(({ autoComplete: v = "on", autoFocus: k, clearable: b, disabled: a, error: c, highlighted: g, id: l, label: o, max: R, min: w, onBlur: x, onChange: p, onClick: C, onKeyDown: $, onKeyUp: I, readOnly: n = !1, required: d = !1, success: r, type: P = "date", value: u }, i) => {
8
+ const m = b && u && !a && !n, h = z(null);
9
+ return /* @__PURE__ */ s("div", {
10
+ className: `input-date-wrapper${g ? " input-date-highlighted" : ""}`,
11
+ children: [
12
+ o && /* @__PURE__ */ s("label", {
13
+ htmlFor: l,
14
+ className: "input-date-label",
15
+ children: [o, d && /* @__PURE__ */ e("span", {
16
+ className: "input-date-required",
17
+ children: "*"
18
+ })]
19
+ }),
20
+ /* @__PURE__ */ s("div", {
21
+ className: "input-date-field",
22
+ children: [/* @__PURE__ */ e("input", {
23
+ autoComplete: v,
24
+ autoFocus: k,
25
+ disabled: a,
26
+ type: P === "date" ? "date" : "datetime-local",
27
+ className: `input-date${c ? " input-date-error" : ""}${r ? " input-date-success" : ""}${m ? " input-date--clearable" : ""}`,
28
+ id: l,
29
+ max: R,
30
+ min: w,
31
+ ref: (t) => {
32
+ h.current = t, typeof i == "function" ? i(t) : i && (i.current = t);
33
+ },
34
+ value: u ?? "",
35
+ onBlur: x,
36
+ onChange: (t) => p?.(t.target.value || void 0),
37
+ onClick: C,
38
+ onKeyDown: $,
39
+ onKeyUp: I,
40
+ readOnly: n,
41
+ required: d
42
+ }), /* @__PURE__ */ s("div", {
43
+ className: "input-date-actions",
44
+ children: [m && /* @__PURE__ */ e(N, {
45
+ title: "Clear date",
46
+ children: /* @__PURE__ */ e("button", {
47
+ type: "button",
48
+ className: "input-date-clear",
49
+ onClick: () => p?.(void 0),
50
+ children: /* @__PURE__ */ e(f, {
51
+ name: "clear",
52
+ size: "sm"
53
+ })
54
+ })
55
+ }), /* @__PURE__ */ e(N, {
56
+ title: "Open calendar",
57
+ children: /* @__PURE__ */ e("button", {
58
+ type: "button",
59
+ className: "input-date-picker",
60
+ onClick: () => {
61
+ const t = h.current;
62
+ t && !a && !n && t.showPicker();
63
+ },
64
+ disabled: a || n,
65
+ tabIndex: -1,
66
+ children: /* @__PURE__ */ e(f, {
67
+ name: "calendar",
68
+ size: "sm"
69
+ })
70
+ })
71
+ })]
72
+ })]
73
+ }),
74
+ c && /* @__PURE__ */ e("span", {
75
+ className: "input-date-error-message",
76
+ children: c
77
+ }),
78
+ r && /* @__PURE__ */ e("span", {
79
+ className: "input-date-success-message",
80
+ children: r
81
+ })
82
+ ]
83
+ });
84
+ });
85
+ export {
86
+ E as InputDate
87
+ };
@@ -0,0 +1 @@
1
+ .input-email-wrapper{gap:var(--spacing-8);flex-direction:column;width:100%;display:flex}.input-email-wrapper .input-email-label{color:var(--form-control-label-color,var(--form-control-color));font-size:var(--form-control-label-font-size,var(--font-size-sm));font-weight:var(--form-control-label-font-weight,var(--font-weight-medium));letter-spacing:var(--form-control-label-letter-spacing,normal);text-transform:var(--form-control-label-text-transform,none)}.input-email-wrapper .input-email-label .input-email-required{color:var(--body-danger-color,#dc2626);margin-left:var(--spacing-2)}.input-email-wrapper .input-email{background-color:var(--form-control-background-color);color:var(--form-control-color);border:var(--spacing-1) solid var(--form-control-border-color);border-radius:var(--radius-sm);padding:var(--spacing-12);font-family:var(--form-control-font-family);font-size:var(--font-size-sm);line-height:var(--line-height-normal);box-sizing:border-box;width:100%}.input-email-wrapper .input-email:focus{background-color:var(--form-control-focus-background-color);border-color:var(--form-control-focus-border-color);color:var(--form-control-focus-color);box-shadow:0 0 0 var(--spacing-2) var(--box-shadow);outline:none}.input-email-wrapper .input-email::placeholder{color:var(--form-control-placeholder-color)}.input-email-wrapper .input-email--error{background-color:var(--form-control-error-background-color);border-color:var(--form-control-error-border-color);color:var(--form-control-error-color)}.input-email-wrapper .input-email--error:focus{background-color:var(--form-control-error-background-color);border-color:var(--form-control-error-border-color);box-shadow:0 0 0 var(--spacing-2) var(--box-shadow)}.input-email-wrapper .input-email--valid{border-color:var(--progress-success-bar-fill-color)}.input-email-wrapper .input-email--valid:focus{border-color:var(--progress-success-bar-fill-color);box-shadow:0 0 0 var(--spacing-2) var(--progress-success-bar-fill-color) 33}.input-email-wrapper .input-email.input-email-error{background-color:var(--form-control-error-background-color);border-color:var(--form-control-error-border-color);color:var(--form-control-error-color)}.input-email-wrapper .input-email.input-email-error:focus{background-color:var(--form-control-error-background-color);border-color:var(--form-control-error-border-color);box-shadow:0 0 0 var(--spacing-2) var(--box-shadow)}.input-email-wrapper .input-email.input-email-success:focus{background-color:var(--form-control-success-background-color);border-color:var(--form-control-success-border-color);box-shadow:0 0 0 var(--spacing-2) var(--box-shadow)}.input-email-wrapper.input-email-highlighted .input-email{border-color:var(--form-control-focus-border-color)}.input-email-wrapper .input-email-error-message{font-size:var(--font-size-xs);color:var(--form-control-error-color)}.input-email-wrapper .input-email-success-message{font-size:var(--font-size-xs);color:var(--form-control-success-color)}.input-email-wrapper .input-email.input-email-success,.input-email-wrapper .input-email.input-email-success:focus{background-color:var(--form-control-success-background-color)!important;border-color:var(--form-control-success-border-color)!important;color:var(--form-control-success-color)!important}.input-email-wrapper .input-email-error-message{margin-top:calc(var(--spacing-4) * -1)}
@@ -0,0 +1,73 @@
1
+ import './InputEmail.css';
2
+ /* empty css */
3
+ import { forwardRef as F, useEffect as G, useState as N } from "react";
4
+ import { jsx as n, jsxs as b } from "react/jsx-runtime";
5
+ var L = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/, M = (r) => !r || r.trim() === "" ? !0 : L.test(r.trim()), k = F(({ autoComplete: r = "on", autoFocus: A, disabled: I, error: $ = "Please enter a valid email address", highlighted: v, id: o, label: p, maxLength: x, onBlur: z, onChange: Z, onClick: j, onKeyDown: B, onKeyUp: C, onValidate: s, placeholder: R, readOnly: T = !1, required: a = !1, showValidation: h = !1, success: m, validateOn: i = "blur", value: l }, _) => {
6
+ const [f, u] = N(!0), [d, g] = N(!1), c = (e) => a && (!e || e.trim() === "") ? !1 : !e || e.trim() === "" ? !0 : M(e);
7
+ G(() => {
8
+ if (l !== void 0) {
9
+ const e = c(l);
10
+ u(e), s?.(e);
11
+ }
12
+ }, [
13
+ l,
14
+ s,
15
+ a
16
+ ]);
17
+ const w = (e) => {
18
+ if (Z?.(e), i === "change" || i === "both") {
19
+ const t = c(e);
20
+ u(t), g(!0), s?.(t);
21
+ }
22
+ }, y = (e) => {
23
+ if (g(!0), i === "blur" || i === "both") {
24
+ const t = c(e.target.value);
25
+ u(t), s?.(t);
26
+ }
27
+ z?.(e);
28
+ }, E = h && d && !f;
29
+ return /* @__PURE__ */ b("div", {
30
+ className: `input-email-wrapper${v ? " input-email-highlighted" : ""}`,
31
+ children: [
32
+ p && /* @__PURE__ */ b("label", {
33
+ htmlFor: o,
34
+ className: "input-email-label",
35
+ children: [p, a && /* @__PURE__ */ n("span", {
36
+ className: "input-email-required",
37
+ children: "*"
38
+ })]
39
+ }),
40
+ /* @__PURE__ */ n("input", {
41
+ autoComplete: r,
42
+ autoFocus: A,
43
+ disabled: I,
44
+ type: "email",
45
+ className: `input-email${E ? " input-email--error" : ""}${m ? " input-email-success" : f && d && h ? " input-email--valid" : ""}`,
46
+ id: o,
47
+ maxLength: x,
48
+ placeholder: R,
49
+ ref: _,
50
+ value: l,
51
+ onBlur: y,
52
+ onChange: (e) => w(e.target.value),
53
+ onClick: j,
54
+ onKeyDown: B,
55
+ onKeyUp: C,
56
+ readOnly: T,
57
+ required: a
58
+ }),
59
+ E && /* @__PURE__ */ n("span", {
60
+ className: "input-email-error-message",
61
+ children: $
62
+ }),
63
+ m && /* @__PURE__ */ n("span", {
64
+ className: "input-email-success-message",
65
+ children: m
66
+ })
67
+ ]
68
+ });
69
+ });
70
+ export {
71
+ k as InputEmail,
72
+ M as validateEmail
73
+ };
@@ -0,0 +1 @@
1
+ .input-file-wrapper{gap:var(--spacing-8);flex-direction:column;display:flex}.input-file-wrapper .input-file-label{color:var(--form-control-label-color,var(--form-control-color));font-size:var(--form-control-label-font-size,var(--font-size-sm));font-weight:var(--form-control-label-font-weight,var(--font-weight-medium));letter-spacing:var(--form-control-label-letter-spacing,normal);text-transform:var(--form-control-label-text-transform,none)}.input-file-wrapper .input-file-label .input-file-required{color:var(--body-danger-color,#dc2626);margin-left:var(--spacing-2)}.input-file-wrapper .input-file{background-color:var(--form-control-background-color);color:var(--form-control-color);border:var(--spacing-1) solid var(--form-control-border-color);border-radius:var(--radius-sm);padding:var(--spacing-12);font-family:var(--form-control-font-family);font-size:var(--font-size-sm);line-height:var(--line-height-normal);box-sizing:border-box;width:100%}.input-file-wrapper .input-file:focus{background-color:var(--form-control-focus-background-color);border-color:var(--form-control-focus-border-color);color:var(--form-control-focus-color);box-shadow:0 0 0 var(--spacing-2) var(--box-shadow);outline:none}.input-file-wrapper .input-file::placeholder{color:var(--form-control-placeholder-color)}.input-file-wrapper .input-file.input-file-error{background-color:var(--form-control-error-background-color);border-color:var(--form-control-error-border-color);color:var(--form-control-error-color)}.input-file-wrapper .input-file.input-file-error:focus{background-color:var(--form-control-error-background-color);border-color:var(--form-control-error-border-color);box-shadow:0 0 0 var(--spacing-2) var(--box-shadow)}.input-file-wrapper .input-file.input-file-success{background-color:var(--form-control-success-background-color);border-color:var(--form-control-success-border-color);color:var(--form-control-success-color)}.input-file-wrapper .input-file.input-file-success:focus{background-color:var(--form-control-success-background-color);border-color:var(--form-control-success-border-color);box-shadow:0 0 0 var(--spacing-2) var(--box-shadow)}.input-file-wrapper.input-file-highlighted .input-file{border-color:var(--form-control-focus-border-color)}.input-file-wrapper .input-file-error-message{font-size:var(--font-size-xs);color:var(--form-control-error-color)}.input-file-wrapper .input-file-success-message{font-size:var(--font-size-xs);color:var(--form-control-success-color)}
@@ -0,0 +1,41 @@
1
+ import './InputFile.css';
2
+ /* empty css */
3
+ import { forwardRef as N } from "react";
4
+ import { jsx as e, jsxs as n } from "react/jsx-runtime";
5
+ var v = N(({ accept: r, disabled: p, error: i, highlighted: t, id: a, label: s, onChange: f, onClick: m, onKeyDown: u, placeholder: c, required: h, success: l, value: o }, d) => /* @__PURE__ */ n("div", {
6
+ className: `input-file-wrapper${t ? " input-file-highlighted" : ""}`,
7
+ children: [
8
+ s && /* @__PURE__ */ n("label", {
9
+ htmlFor: a,
10
+ className: "input-file-label",
11
+ children: [s, h && /* @__PURE__ */ e("span", {
12
+ className: "input-file-required",
13
+ children: "*"
14
+ })]
15
+ }),
16
+ /* @__PURE__ */ e("input", {
17
+ accept: r,
18
+ disabled: p,
19
+ type: "file",
20
+ className: `input-file${i ? " input-file-error" : ""}${l ? " input-file-success" : ""}`,
21
+ id: a,
22
+ placeholder: c,
23
+ ref: d,
24
+ value: o,
25
+ onChange: (g) => f?.(g.target.files),
26
+ onClick: m,
27
+ onKeyDown: u
28
+ }),
29
+ i && /* @__PURE__ */ e("span", {
30
+ className: "input-file-error-message",
31
+ children: i
32
+ }),
33
+ l && /* @__PURE__ */ e("span", {
34
+ className: "input-file-success-message",
35
+ children: l
36
+ })
37
+ ]
38
+ }));
39
+ export {
40
+ v as InputFile
41
+ };
@@ -0,0 +1 @@
1
+ .input-mask{gap:var(--spacing-8);flex-direction:column;width:100%;display:flex}.input-mask__label{color:var(--form-control-label-color,var(--form-control-color));font-size:var(--form-control-label-font-size,var(--font-size-sm));font-weight:var(--form-control-label-font-weight,var(--font-weight-medium));letter-spacing:var(--form-control-label-letter-spacing,normal);text-transform:var(--form-control-label-text-transform,none);line-height:var(--line-height-tight);cursor:pointer}.input-mask__field{align-items:center;display:flex;position:relative}.input-mask__input{background-color:var(--form-control-background-color);color:var(--form-control-color);border:var(--spacing-1) solid var(--form-control-border-color);border-radius:var(--radius-sm);padding:var(--spacing-12);font-family:var(--form-control-font-family);font-size:var(--font-size-sm);line-height:var(--line-height-normal);box-sizing:border-box;width:100%}.input-mask__input:focus{background-color:var(--form-control-focus-background-color);border-color:var(--form-control-focus-border-color);color:var(--form-control-focus-color);box-shadow:0 0 0 var(--spacing-2) var(--box-shadow);outline:none}.input-mask__input::placeholder{color:var(--form-control-placeholder-color)}.input-mask__input{transition:border-color var(--transition-fast), box-shadow var(--transition-fast), background var(--transition-fast)}.input-mask__input::placeholder{color:var(--form-control-placeholder-color);opacity:.5}.input-mask__input:focus{background:var(--form-control-focus-background-color);border-color:var(--form-control-focus-border-color);box-shadow:0 0 0 3px var(--form-control-focus-ring)}.input-mask__input--filled{border-color:var(--button-success-border-color)}.input-mask--mono .input-mask__input{font-family:var(--font-family-mono);letter-spacing:.08em}.input-mask--sm .input-mask__input{height:34px;font-size:var(--font-size-xs);padding:0 var(--spacing-8)}.input-mask--sm.input-mask--has-icon .input-mask__input{padding-left:calc(var(--spacing-8) + 14px + var(--spacing-8))}.input-mask--sm .input-mask__input{padding-right:calc(var(--spacing-8) + 40px)}.input-mask--sm.input-mask--has-suffix .input-mask__input{padding-right:calc(var(--spacing-8) + 40px + 32px)}.input-mask--sm .input-mask__icon{left:var(--spacing-8);width:14px;height:14px;font-size:14px}.input-mask--md .input-mask__input{height:40px;font-size:var(--font-size-sm);padding:0 var(--spacing-12)}.input-mask--md.input-mask--has-icon .input-mask__input{padding-left:calc(var(--spacing-12) + 16px + var(--spacing-8))}.input-mask--md .input-mask__input{padding-right:calc(var(--spacing-12) + 40px)}.input-mask--md.input-mask--has-suffix .input-mask__input{padding-right:calc(var(--spacing-12) + 40px + 32px)}.input-mask--md .input-mask__icon{left:var(--spacing-12);width:16px;height:16px;font-size:16px}.input-mask--lg .input-mask__input{height:48px;font-size:var(--font-size-md);padding:0 var(--spacing-16)}.input-mask--lg.input-mask--has-icon .input-mask__input{padding-left:calc(var(--spacing-16) + 18px + var(--spacing-8))}.input-mask--lg .input-mask__input{padding-right:calc(var(--spacing-16) + 40px)}.input-mask--lg.input-mask--has-suffix .input-mask__input{padding-right:calc(var(--spacing-16) + 40px + 32px)}.input-mask--lg .input-mask__icon{left:var(--spacing-16);width:18px;height:18px;font-size:18px}.input-mask--default .input-mask__input{border-color:var(--form-control-border-color)}.input-mask--default .input-mask__input:focus{border-color:var(--form-control-focus-border-color);box-shadow:0 0 0 3px var(--form-control-focus-ring)}.input-mask--default .input-mask__counter{color:var(--body-color-muted)}.input-mask--success .input-mask__input{border-color:var(--button-success-border-color)}.input-mask--success .input-mask__input:focus{border-color:var(--button-success-border-color);box-shadow:0 0 0 3px #34d3994d}.input-mask--success .input-mask__counter{color:var(--button-success-border-color)}.input-mask--danger .input-mask__input{border-color:var(--button-danger-border-color)}.input-mask--danger .input-mask__input:focus{border-color:var(--button-danger-border-color);box-shadow:0 0 0 3px #f871714d}.input-mask--danger .input-mask__counter{color:var(--button-danger-border-color)}.input-mask--highlighted .input-mask__input{border-color:var(--form-control-focus-border-color)}.input-mask__icon{color:var(--body-color-muted);pointer-events:none;transition:color var(--transition-fast);justify-content:center;align-items:center;display:flex;position:absolute}.input-mask__input:focus~.input-mask__icon,.input-mask__field:focus-within .input-mask__icon{color:var(--body-accent-color)}.input-mask__counter{right:var(--spacing-12);font-size:var(--font-size-xxs);font-weight:var(--font-weight-medium);color:var(--body-color-muted);pointer-events:none;white-space:nowrap;font-family:var(--font-family-mono);letter-spacing:.04em;transition:color var(--transition-fast);position:absolute}.input-mask--has-suffix .input-mask__counter{right:calc(var(--spacing-12) + 36px)}.input-mask__suffix{right:var(--spacing-8);align-items:center;gap:var(--spacing-4);display:flex;position:absolute}.input-mask__hint{font-size:var(--font-size-xs);color:var(--body-color-muted);line-height:var(--line-height-normal);margin:0}.input-mask__error{font-size:var(--font-size-xs);color:var(--form-control-error-color);line-height:var(--line-height-normal);margin:0}.input-mask--disabled{opacity:.45;pointer-events:none}.input-mask--disabled .input-mask__input{cursor:not-allowed}.input-mask--readonly .input-mask__input{background:var(--card-background-accent-color);cursor:default}.input-mask--readonly .input-mask__input:focus{box-shadow:none;border-color:var(--form-control-border-color)}
@@ -0,0 +1,163 @@
1
+ import './InputMask.css';
2
+ /* empty css */
3
+ import A, { forwardRef as U, useCallback as W, useId as X, useImperativeHandle as Y, useRef as O, useState as C } from "react";
4
+ import { jsx as m, jsxs as M } from "react/jsx-runtime";
5
+ var D = {
6
+ 9: /\d/,
7
+ a: /[a-zA-Z]/,
8
+ "*": /[a-zA-Z0-9]/
9
+ };
10
+ function ee(e) {
11
+ return e in D;
12
+ }
13
+ function te(e) {
14
+ const n = [];
15
+ let t = 0;
16
+ for (; t < e.length; ) e[t] === "\\" && t + 1 < e.length ? (n.push({
17
+ type: "literal",
18
+ char: e[t + 1]
19
+ }), t += 2) : ee(e[t]) ? (n.push({
20
+ type: "token",
21
+ key: e[t]
22
+ }), t++) : (n.push({
23
+ type: "literal",
24
+ char: e[t]
25
+ }), t++);
26
+ return n;
27
+ }
28
+ function N(e, n, t) {
29
+ let u = 0, c = "", p = "";
30
+ for (const d of n) if (d.type === "literal") c += d.char;
31
+ else if (u < e.length) {
32
+ const r = e[u];
33
+ c += r, p += r, u++;
34
+ } else c += t;
35
+ return {
36
+ masked: c,
37
+ rawAccepted: p
38
+ };
39
+ }
40
+ function ne(e) {
41
+ return e.filter((n) => n.type === "token").length;
42
+ }
43
+ var se = U(({ mask: e, value: n, onChange: t, onComplete: u, placeholder: c, label: p, hint: d, error: r, highlighted: S, size: $ = "md", variant: b = "default", disabled: h = !1, readOnly: k = !1, maskChar: l = "_", mono: B = !0, icon: y, suffix: g, className: V = "", id: z, name: E, autoComplete: F }, P) => {
44
+ const i = A.useMemo(() => te(e), [e]), f = A.useMemo(() => ne(i), [i]), T = X(), x = z ?? T, [a, w] = C(() => n !== void 0 ? n : ""), I = O(null);
45
+ Y(P, () => ({
46
+ focus: () => I.current?.focus(),
47
+ clear: () => {
48
+ w(""), t?.("", "");
49
+ },
50
+ getRawValue: () => a
51
+ }));
52
+ const { masked: v } = N(a, i, l), Z = v.includes(l) ? v.replace(new RegExp(l.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), "g"), l) : v, H = r ? "danger" : b, L = [
53
+ "input-mask",
54
+ `input-mask--${$}`,
55
+ `input-mask--${H}`,
56
+ S ? "input-mask--highlighted" : "",
57
+ h ? "input-mask--disabled" : "",
58
+ k ? "input-mask--readonly" : "",
59
+ B ? "input-mask--mono" : "",
60
+ y ? "input-mask--has-icon" : "",
61
+ g ? "input-mask--has-suffix" : "",
62
+ V
63
+ ].filter(Boolean).join(" "), q = W((s) => {
64
+ if (h || k) return;
65
+ if (s.key === "Backspace") {
66
+ s.preventDefault();
67
+ const o = a.slice(0, -1), { masked: Q } = N(o, i, l);
68
+ w(o), t?.(o, Q);
69
+ return;
70
+ }
71
+ if (s.key.length !== 1 || s.ctrlKey || s.metaKey || (s.preventDefault(), a.length >= f)) return;
72
+ const R = s.key;
73
+ let K = 0;
74
+ for (const o of i) if (o.type === "token") {
75
+ if (K === a.length) {
76
+ if (!D[o.key].test(R)) return;
77
+ break;
78
+ }
79
+ K++;
80
+ }
81
+ const { masked: j, rawAccepted: _ } = N(a + R, i, l);
82
+ w(_), t?.(_, j), _.length === f && u?.(_, j);
83
+ }, [
84
+ h,
85
+ k,
86
+ a,
87
+ i,
88
+ l,
89
+ f,
90
+ t,
91
+ u
92
+ ]), G = c ?? i.map((s) => s.type === "literal" ? s.char : l).join(""), J = a.length === f;
93
+ return /* @__PURE__ */ M("div", {
94
+ className: L,
95
+ children: [
96
+ p && /* @__PURE__ */ m("label", {
97
+ className: "input-mask__label",
98
+ htmlFor: x,
99
+ children: p
100
+ }),
101
+ /* @__PURE__ */ M("div", {
102
+ className: "input-mask__field",
103
+ children: [
104
+ y && /* @__PURE__ */ m("span", {
105
+ className: "input-mask__icon",
106
+ children: y
107
+ }),
108
+ /* @__PURE__ */ m("input", {
109
+ ref: I,
110
+ id: x,
111
+ name: E,
112
+ type: "text",
113
+ inputMode: "text",
114
+ autoComplete: F,
115
+ className: ["input-mask__input", J ? "input-mask__input--filled" : ""].filter(Boolean).join(" "),
116
+ value: Z,
117
+ placeholder: G,
118
+ disabled: h,
119
+ readOnly: k,
120
+ maxLength: e.length,
121
+ onChange: () => {
122
+ },
123
+ onKeyDown: q
124
+ }),
125
+ /* @__PURE__ */ M("span", {
126
+ className: "input-mask__counter",
127
+ children: [
128
+ a.length,
129
+ "/",
130
+ f
131
+ ]
132
+ }),
133
+ g && /* @__PURE__ */ m("span", {
134
+ className: "input-mask__suffix",
135
+ children: g
136
+ })
137
+ ]
138
+ }),
139
+ (d || r) && /* @__PURE__ */ m("p", {
140
+ className: r ? "input-mask__error" : "input-mask__hint",
141
+ children: r ?? d
142
+ })
143
+ ]
144
+ });
145
+ });
146
+ se.displayName = "InputMask";
147
+ var re = {
148
+ creditCard: "9999 9999 9999 9999",
149
+ iban: "aa99 9999 9999 9999 9999 99",
150
+ cvv: "999",
151
+ expiry: "99/99",
152
+ phone: "+99 (999) 999-9999",
153
+ ssn: "999-99-9999",
154
+ ipv4: "999.999.999.999",
155
+ serialNumber: "***-***-***-***",
156
+ date: "99/99/9999",
157
+ time: "99:99",
158
+ uuid: "********-****-****-****-************"
159
+ };
160
+ export {
161
+ se as InputMask,
162
+ re as InputMaskPresets
163
+ };
@@ -0,0 +1 @@
1
+ .input-number-wrapper{gap:var(--spacing-8);flex-direction:column;display:flex}.input-number-wrapper .input-number-label{color:var(--form-control-label-color,var(--form-control-color));font-size:var(--form-control-label-font-size,var(--font-size-sm));font-weight:var(--form-control-label-font-weight,var(--font-weight-medium));letter-spacing:var(--form-control-label-letter-spacing,normal);text-transform:var(--form-control-label-text-transform,none)}.input-number-wrapper .input-number-label .input-number-required{color:var(--body-danger-color,#dc2626);margin-left:var(--spacing-2)}.input-number-wrapper .input-number{background-color:var(--form-control-background-color);color:var(--form-control-color);border:var(--spacing-1) solid var(--form-control-border-color);border-radius:var(--radius-sm);padding:var(--spacing-12);font-family:var(--form-control-font-family);font-size:var(--font-size-sm);line-height:var(--line-height-normal);box-sizing:border-box;width:100%}.input-number-wrapper .input-number:focus{background-color:var(--form-control-focus-background-color);border-color:var(--form-control-focus-border-color);color:var(--form-control-focus-color);box-shadow:0 0 0 var(--spacing-2) var(--box-shadow);outline:none}.input-number-wrapper .input-number::placeholder{color:var(--form-control-placeholder-color)}.input-number-wrapper .input-number.input-number-hide-native-controls{appearance:textfield}.input-number-wrapper .input-number.input-number-hide-native-controls::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.input-number-wrapper .input-number.input-number-hide-native-controls::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.input-number-wrapper .input-number.input-number-error{background-color:var(--form-control-error-background-color);border-color:var(--form-control-error-border-color);color:var(--form-control-error-color)}.input-number-wrapper .input-number.input-number-error:focus{background-color:var(--form-control-error-background-color);border-color:var(--form-control-error-border-color);box-shadow:0 0 0 var(--spacing-2) var(--box-shadow)}.input-number-wrapper .input-number.input-number-success{background-color:var(--form-control-success-background-color);border-color:var(--form-control-success-border-color);color:var(--form-control-success-color)}.input-number-wrapper .input-number.input-number-success:focus{background-color:var(--form-control-success-background-color);border-color:var(--form-control-success-border-color);box-shadow:0 0 0 var(--spacing-2) var(--box-shadow)}.input-number-wrapper.input-number-highlighted .input-number{border-color:var(--form-control-focus-border-color)}.input-number-wrapper .input-number-error-message{font-size:var(--font-size-xs);color:var(--form-control-error-color)}.input-number-wrapper .input-number-success-message{font-size:var(--font-size-xs);color:var(--form-control-success-color)}
@@ -0,0 +1,60 @@
1
+ import './InputNumber.css';
2
+ /* empty css */
3
+ import { forwardRef as V } from "react";
4
+ import { jsx as i, jsxs as o } from "react/jsx-runtime";
5
+ var E = V(({ autoComplete: c = "on", autoFocus: d, disabled: b, error: a, hideNativeControls: h, highlighted: f, id: p, label: s, onChange: m, onClick: v, onKeyDown: N, required: g, success: l, value: n, min: u, max: t, placeholder: y, step: $ }, w) => {
6
+ const B = (e) => {
7
+ if (e === void 0) return;
8
+ let r = e;
9
+ return u !== void 0 && r < u && (r = u), t !== void 0 && r > t && (r = t), r;
10
+ };
11
+ return /* @__PURE__ */ o("div", {
12
+ className: `input-number-wrapper${f ? " input-number-highlighted" : ""}`,
13
+ children: [
14
+ s && /* @__PURE__ */ o("label", {
15
+ htmlFor: p,
16
+ className: "input-number-label",
17
+ children: [s, g && /* @__PURE__ */ i("span", {
18
+ className: "input-number-required",
19
+ children: "*"
20
+ })]
21
+ }),
22
+ /* @__PURE__ */ i("input", {
23
+ autoComplete: c,
24
+ autoFocus: d,
25
+ disabled: b,
26
+ className: `input-number${a ? " input-number-error" : ""}${l ? " input-number-success" : ""}${h ? " input-number-hide-native-controls" : ""}`,
27
+ id: p,
28
+ max: t,
29
+ min: u,
30
+ onBlur: () => {
31
+ if (n !== void 0) {
32
+ const e = B(n);
33
+ e !== n && m?.(e);
34
+ }
35
+ },
36
+ onChange: (e) => m?.(e.target.value ? Number(e.target.value) : void 0),
37
+ onClick: v,
38
+ onKeyDown: (e) => {
39
+ (e.key === "e" || e.key === "E") && e.preventDefault(), N?.(e);
40
+ },
41
+ placeholder: y,
42
+ ref: w,
43
+ step: $,
44
+ type: "number",
45
+ value: n ?? ""
46
+ }),
47
+ a && /* @__PURE__ */ i("span", {
48
+ className: "input-number-error-message",
49
+ children: a
50
+ }),
51
+ l && /* @__PURE__ */ i("span", {
52
+ className: "input-number-success-message",
53
+ children: l
54
+ })
55
+ ]
56
+ });
57
+ });
58
+ export {
59
+ E as InputNumber
60
+ };
@@ -0,0 +1 @@
1
+ .input-pin-wrapper{gap:var(--spacing-8);flex-direction:column;display:flex}.input-pin-wrapper .input-pin-label{color:var(--form-control-label-color,var(--form-control-color));font-size:var(--form-control-label-font-size,var(--font-size-sm));font-weight:var(--form-control-label-font-weight,var(--font-weight-medium));letter-spacing:var(--form-control-label-letter-spacing,normal);text-transform:var(--form-control-label-text-transform,none)}.input-pin-wrapper .input-pin-cells{align-items:center;gap:var(--spacing-8);display:flex}.input-pin-wrapper .input-pin-cell{background-color:var(--form-control-background-color);color:var(--form-control-color);border:var(--spacing-1) solid var(--form-control-border-color);border-radius:var(--radius-sm);padding:var(--spacing-12);font-family:var(--form-control-font-family);font-size:var(--font-size-sm);line-height:var(--line-height-normal);box-sizing:border-box;width:100%}.input-pin-wrapper .input-pin-cell:focus{background-color:var(--form-control-focus-background-color);border-color:var(--form-control-focus-border-color);color:var(--form-control-focus-color);box-shadow:0 0 0 var(--spacing-2) var(--box-shadow);outline:none}.input-pin-wrapper .input-pin-cell::placeholder{color:var(--form-control-placeholder-color)}.input-pin-wrapper .input-pin-cell{width:var(--spacing-48);padding:var(--spacing-12) 0;text-align:center;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;letter-spacing:normal;flex:none}.input-pin-wrapper .input-pin-cell--filled{border-color:var(--form-control-focus-border-color)}.input-pin-wrapper .input-pin-cell--group-start{margin-left:var(--spacing-12)}.input-pin-wrapper .input-pin-cell:disabled{opacity:.6;cursor:not-allowed}.input-pin-wrapper--error .input-pin-cell{background-color:var(--form-control-error-background-color);border-color:var(--form-control-error-border-color);color:var(--form-control-error-color)}.input-pin-wrapper--error .input-pin-cell:focus{background-color:var(--form-control-error-background-color);border-color:var(--form-control-error-border-color);box-shadow:0 0 0 var(--spacing-2) var(--box-shadow)}.input-pin-wrapper--success .input-pin-cell{background-color:var(--form-control-success-background-color);border-color:var(--form-control-success-border-color);color:var(--form-control-success-color)}.input-pin-wrapper--success .input-pin-cell:focus{background-color:var(--form-control-success-background-color);border-color:var(--form-control-success-border-color);box-shadow:0 0 0 var(--spacing-2) var(--box-shadow)}.input-pin-wrapper .input-pin-error-message{font-size:var(--font-size-xs);color:var(--form-control-error-color)}.input-pin-wrapper .input-pin-success-message{font-size:var(--font-size-xs);color:var(--form-control-success-color)}@media (width<=768px){.input-pin-wrapper .input-pin-cell{width:var(--spacing-40);font-size:var(--font-size-md)}}
@@ -0,0 +1,121 @@
1
+ import './InputPIN.css';
2
+ /* empty css */
3
+ import { useCallback as o, useEffect as P, useRef as j } from "react";
4
+ import { jsx as f, jsxs as B } from "react/jsx-runtime";
5
+ var K = /[^0-9]/g, U = /[^0-9a-zA-Z]/g, W = ({ autoFocus: y = !1, disabled: M = !1, error: N, id: m, label: C, length: s = 6, groupSize: E, onChange: g, onComplete: k, secret: $ = !1, success: D, type: A = "numeric", value: I }) => {
6
+ const R = j([]), v = j(!1), n = o((r) => r.replace(A === "numeric" ? K : U, "").slice(0, s), [s, A]), p = n(I), c = p.split("");
7
+ P(() => {
8
+ p.length === s && !v.current && (v.current = !0, k?.(p)), p.length < s && (v.current = !1);
9
+ }, [
10
+ p,
11
+ s,
12
+ k
13
+ ]), P(() => {
14
+ y && R.current[0]?.focus();
15
+ }, [y]);
16
+ const a = o((r) => {
17
+ const t = R.current[Math.min(Math.max(r, 0), s - 1)];
18
+ t?.focus(), t?.select();
19
+ }, [s]), l = o((r) => {
20
+ const t = r.join("").replace(/\s/g, "");
21
+ g(n(t));
22
+ }, [g, n]), T = o((r, t) => {
23
+ const e = c[r] ?? "", h = e && t.startsWith(e) ? t.slice(e.length) : t, i = n(h);
24
+ if (!i) return;
25
+ const u = [...c];
26
+ i.split("").forEach((_, w) => {
27
+ r + w < s && (u[r + w] = _);
28
+ }), l(u), a(r + i.length);
29
+ }, [
30
+ c,
31
+ l,
32
+ a,
33
+ s,
34
+ n
35
+ ]), b = o((r, t) => {
36
+ if (r.key === "Backspace") {
37
+ r.preventDefault();
38
+ const e = [...c];
39
+ if (e[t]) {
40
+ e.splice(t, 1), l(e);
41
+ return;
42
+ }
43
+ t > 0 && (e.splice(t - 1, 1), l(e), a(t - 1));
44
+ return;
45
+ }
46
+ if (r.key === "Delete") {
47
+ r.preventDefault();
48
+ const e = [...c];
49
+ e.splice(t, 1), l(e);
50
+ return;
51
+ }
52
+ if (r.key === "ArrowLeft") {
53
+ r.preventDefault(), a(t - 1);
54
+ return;
55
+ }
56
+ r.key === "ArrowRight" && (r.preventDefault(), a(t + 1));
57
+ }, [
58
+ c,
59
+ l,
60
+ a
61
+ ]), L = o((r, t) => {
62
+ r.preventDefault();
63
+ const e = n(r.clipboardData.getData("text"));
64
+ if (!e) return;
65
+ const h = [...c];
66
+ e.split("").forEach((i, u) => {
67
+ t + u < s && (h[t + u] = i);
68
+ }), l(h), a(t + e.length);
69
+ }, [
70
+ c,
71
+ l,
72
+ a,
73
+ s,
74
+ n
75
+ ]);
76
+ return /* @__PURE__ */ B("div", {
77
+ className: [
78
+ "input-pin-wrapper",
79
+ N ? "input-pin-wrapper--error" : "",
80
+ D ? "input-pin-wrapper--success" : ""
81
+ ].filter(Boolean).join(" "),
82
+ children: [
83
+ C && /* @__PURE__ */ f("label", {
84
+ className: "input-pin-label",
85
+ htmlFor: m ? `${m}-0` : void 0,
86
+ children: C
87
+ }),
88
+ /* @__PURE__ */ f("div", {
89
+ className: "input-pin-cells",
90
+ children: Array.from({ length: s }, (r, t) => /* @__PURE__ */ f("input", {
91
+ autoComplete: t === 0 ? "one-time-code" : "off",
92
+ className: `input-pin-cell${c[t] ? " input-pin-cell--filled" : ""}${E && t > 0 && t % E === 0 ? " input-pin-cell--group-start" : ""}`,
93
+ disabled: M,
94
+ id: m ? `${m}-${t}` : void 0,
95
+ inputMode: A === "numeric" ? "numeric" : "text",
96
+ maxLength: s,
97
+ onChange: (e) => T(t, e.target.value),
98
+ onFocus: (e) => e.target.select(),
99
+ onKeyDown: (e) => b(e, t),
100
+ onPaste: (e) => L(e, t),
101
+ type: $ ? "password" : "text",
102
+ ref: (e) => {
103
+ R.current[t] = e;
104
+ },
105
+ value: c[t] ?? ""
106
+ }, t))
107
+ }),
108
+ N && /* @__PURE__ */ f("span", {
109
+ className: "input-pin-error-message",
110
+ children: N
111
+ }),
112
+ D && /* @__PURE__ */ f("span", {
113
+ className: "input-pin-success-message",
114
+ children: D
115
+ })
116
+ ]
117
+ });
118
+ };
119
+ export {
120
+ W as InputPIN
121
+ };
@@ -0,0 +1 @@
1
+ .input-password-wrapper{gap:var(--spacing-8);flex-direction:column;display:flex}.input-password-wrapper .input-password-label{color:var(--form-control-label-color,var(--form-control-color));font-size:var(--form-control-label-font-size,var(--font-size-sm));font-weight:var(--form-control-label-font-weight,var(--font-weight-medium));letter-spacing:var(--form-control-label-letter-spacing,normal);text-transform:var(--form-control-label-text-transform,none)}.input-password-wrapper .input-password-label .input-password-required{color:var(--body-danger-color,#dc2626);margin-left:var(--spacing-2)}.input-password-wrapper .input-password{background-color:var(--form-control-background-color);color:var(--form-control-color);border:var(--spacing-1) solid var(--form-control-border-color);border-radius:var(--radius-sm);padding:var(--spacing-12);font-family:var(--form-control-font-family);font-size:var(--font-size-sm);line-height:var(--line-height-normal);box-sizing:border-box;width:100%}.input-password-wrapper .input-password:focus{background-color:var(--form-control-focus-background-color);border-color:var(--form-control-focus-border-color);color:var(--form-control-focus-color);box-shadow:0 0 0 var(--spacing-2) var(--box-shadow);outline:none}.input-password-wrapper .input-password::placeholder{color:var(--form-control-placeholder-color)}.input-password-wrapper .input-password.input-password-error{background-color:var(--form-control-error-background-color);border-color:var(--form-control-error-border-color);color:var(--form-control-error-color)}.input-password-wrapper .input-password.input-password-error:focus{background-color:var(--form-control-error-background-color);border-color:var(--form-control-error-border-color);box-shadow:0 0 0 var(--spacing-2) var(--box-shadow)}.input-password-wrapper .input-password.input-password-success{background-color:var(--form-control-success-background-color);border-color:var(--form-control-success-border-color);color:var(--form-control-success-color)}.input-password-wrapper .input-password.input-password-success:focus{background-color:var(--form-control-success-background-color);border-color:var(--form-control-success-border-color);box-shadow:0 0 0 var(--spacing-2) var(--box-shadow)}.input-password-wrapper.input-password-highlighted .input-password{border-color:var(--form-control-focus-border-color)}.input-password-wrapper .input-password-error-message{font-size:var(--font-size-xs);color:var(--form-control-error-color)}.input-password-wrapper .input-password-success-message{font-size:var(--font-size-xs);color:var(--form-control-success-color)}
@@ -0,0 +1,47 @@
1
+ import './InputPassword.css';
2
+ /* empty css */
3
+ import { forwardRef as j } from "react";
4
+ import { jsx as s, jsxs as o } from "react/jsx-runtime";
5
+ var F = j(({ autoComplete: t = "on", autoFocus: i, disabled: d, error: a, highlighted: l, id: r, label: e, maxLength: m, onBlur: u, onChange: w, onClick: c, onKeyDown: h, onKeyUp: f, placeholder: g, readOnly: N = !1, required: n = !1, success: p, value: v }, x) => /* @__PURE__ */ o("div", {
6
+ className: `input-password-wrapper${l ? " input-password-highlighted" : ""}`,
7
+ children: [
8
+ e && /* @__PURE__ */ o("label", {
9
+ htmlFor: r,
10
+ className: "input-password-label",
11
+ children: [e, n && /* @__PURE__ */ s("span", {
12
+ className: "input-password-required",
13
+ children: "*"
14
+ })]
15
+ }),
16
+ /* @__PURE__ */ s("input", {
17
+ autoComplete: t,
18
+ autoFocus: i,
19
+ disabled: d,
20
+ type: "password",
21
+ className: `input-password${a ? " input-password-error" : ""}${p ? " input-password-success" : ""}`,
22
+ id: r,
23
+ maxLength: m,
24
+ placeholder: g,
25
+ ref: x,
26
+ value: v,
27
+ onBlur: u,
28
+ onChange: ($) => w?.($.target.value),
29
+ onClick: c,
30
+ onKeyDown: h,
31
+ onKeyUp: f,
32
+ readOnly: N,
33
+ required: n
34
+ }),
35
+ a && /* @__PURE__ */ s("span", {
36
+ className: "input-password-error-message",
37
+ children: a
38
+ }),
39
+ p && /* @__PURE__ */ s("span", {
40
+ className: "input-password-success-message",
41
+ children: p
42
+ })
43
+ ]
44
+ }));
45
+ export {
46
+ F as InputPassword
47
+ };
@@ -0,0 +1 @@
1
+ .input-phone-wrapper{gap:var(--spacing-8);flex-direction:column;display:flex}.input-phone-label{align-items:center;gap:var(--spacing-4);color:var(--form-control-label-color,var(--form-control-color));font-size:var(--form-control-label-font-size,var(--font-size-sm));font-weight:var(--form-control-label-font-weight,var(--font-weight-medium));letter-spacing:var(--form-control-label-letter-spacing,normal);text-transform:var(--form-control-label-text-transform,none);line-height:var(--line-height-normal);display:inline-flex}.input-phone-required{color:var(--body-danger-color,#dc2626);margin-left:var(--spacing-2)}.input-phone-field{background-color:var(--form-control-background-color);border:1px solid var(--form-control-border-color);border-radius:var(--radius-sm);padding:0 var(--spacing-12);transition:border-color var(--transition-fast), background-color var(--transition-fast), box-shadow var(--transition-fast);align-items:center;display:flex}.input-phone-field:focus-within{background-color:var(--form-control-focus-background-color);border-color:var(--form-control-focus-border-color);box-shadow:0 0 0 3px var(--form-control-focus-ring);outline:none}.input-phone-field--error{background-color:var(--form-control-error-background-color);border-color:var(--form-control-error-border-color)}.input-phone-field--error .input-phone{color:var(--form-control-error-color)}.input-phone-field--error:focus-within{background-color:var(--form-control-error-background-color);box-shadow:0 0 0 3px #db524b40}.input-phone-field--success{background-color:var(--form-control-success-background-color);border-color:var(--form-control-success-border-color)}.input-phone-field--success .input-phone{color:var(--form-control-success-color)}.input-phone-field--success:focus-within{background-color:var(--form-control-success-background-color);box-shadow:0 0 0 3px #22c55e40}.input-phone-field--highlighted{border-color:var(--form-control-focus-border-color)}.input-phone-field--disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.input-phone-icon{color:var(--form-control-placeholder-color);margin-right:var(--spacing-8);pointer-events:none;flex-shrink:0;align-items:center;display:flex}.input-phone{color:var(--form-control-color);font-size:var(--font-size-sm);font-family:inherit;line-height:var(--line-height-normal);padding:var(--spacing-8) 0;background:0 0;border:none;outline:none;flex:1;width:100%}.input-phone::placeholder{color:var(--form-control-placeholder-color)}.input-phone:disabled{cursor:not-allowed}.input-phone::-webkit-outer-spin-button{-webkit-appearance:none}.input-phone::-webkit-inner-spin-button{-webkit-appearance:none}.input-phone-error-message{font-size:var(--font-size-xs);color:var(--form-control-error-color);line-height:var(--line-height-normal)}.input-phone-success-message{font-size:var(--font-size-xs);color:var(--form-control-success-color);line-height:var(--line-height-normal)}