@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,245 @@
1
+ import './ThemeSettings.css';
2
+ import { useTheme as H } from "./useTheme.js";
3
+ import { Checkbox as Q } from "../Checkbox/Checkbox2.js";
4
+ import { Dropdown as V } from "../Dropdown/Dropdown2.js";
5
+ import { InputSearch as W } from "../InputSearch/InputSearch2.js";
6
+ import { Drawer as K } from "../Drawer/Drawer2.js";
7
+ import { FAVORITE_THEMES as L, THEME_CONFIGS as U, getThemeAppearance as B } from "./themeConfig.js";
8
+ import { ToggleSwitch as k } from "../ToggleSwitch/ToggleSwitch2.js";
9
+ /* empty css */
10
+ import { useEffect as x, useMemo as J, useRef as R, useState as v } from "react";
11
+ import { Fragment as X, jsx as t, jsxs as a } from "react/jsx-runtime";
12
+ import { previewPalettes as Y } from "@memobit/themes";
13
+ var Z = [
14
+ {
15
+ value: "all",
16
+ label: "All"
17
+ },
18
+ {
19
+ value: "light",
20
+ label: "Light"
21
+ },
22
+ {
23
+ value: "dark",
24
+ label: "Dark"
25
+ }
26
+ ], de = ({ isOpen: r, onClose: g, allowedThemes: d, currentApp: o, showEffects: I = !0, showSearch: w = !0, showFavorites: b = !0, showAppearanceFilter: P = !0 }) => {
27
+ const { theme: f, effects: n, setPreviewTheme: $, setPreviewEffects: N, commitPreview: M, clearPreview: D } = H(), O = ["Card", "Modal"], j = [
28
+ {
29
+ label: "None",
30
+ value: ""
31
+ },
32
+ {
33
+ label: "Note Container",
34
+ value: "note-container-effect"
35
+ },
36
+ {
37
+ label: "Infuse",
38
+ value: "infuse-effect"
39
+ },
40
+ {
41
+ label: "Up Lift",
42
+ value: "up-lift-effect"
43
+ },
44
+ {
45
+ label: "Glow",
46
+ value: "glow-effect"
47
+ }
48
+ ], [i, C] = v(""), [m, y] = v(!1), [h, S] = v(!1), [c, F] = v("all"), E = R(null), p = R(!1), _ = o?.trim().toLowerCase() ?? "", T = J(() => {
49
+ let e = U;
50
+ if (d && d.length > 0) {
51
+ const s = new Set(d);
52
+ e = e.filter((l) => s.has(l.value));
53
+ }
54
+ if (m && (e = e.filter((s) => L.has(s.value))), h && _ && (e = e.filter((s) => (s.recommendedApps ?? []).some((l) => l.toLowerCase() === _))), c !== "all" && (e = e.filter((s) => B(s.value) === c)), i.trim()) {
55
+ const s = i.toLowerCase().trim();
56
+ e = e.filter((l) => l.label.toLowerCase().includes(s) || (l.recommendedApps ?? []).some((u) => u.toLowerCase().includes(s)));
57
+ }
58
+ return e;
59
+ }, [
60
+ i,
61
+ m,
62
+ h,
63
+ _,
64
+ c,
65
+ d
66
+ ]);
67
+ x(() => {
68
+ r ? (C(""), y(!1), S(!1), F("all")) : p.current = !1;
69
+ }, [r]), x(() => {
70
+ if (!r || i || m || h || c !== "all" || p.current) return;
71
+ const e = window.requestAnimationFrame(() => {
72
+ E.current?.scrollIntoView({
73
+ block: "center",
74
+ inline: "nearest"
75
+ }), p.current = !0;
76
+ });
77
+ return () => window.cancelAnimationFrame(e);
78
+ }, [
79
+ r,
80
+ i,
81
+ m,
82
+ h,
83
+ c,
84
+ f
85
+ ]);
86
+ const q = (e) => {
87
+ $(e);
88
+ }, z = (e) => {
89
+ const s = !e || Array.isArray(e) ? "" : e.value;
90
+ N({
91
+ effect: s,
92
+ components: n.components
93
+ });
94
+ }, G = (e, s) => {
95
+ const l = s ? [...n.components, e] : n.components.filter((u) => u !== e);
96
+ N({
97
+ effect: n.effect,
98
+ components: l
99
+ });
100
+ }, A = () => {
101
+ D(), g();
102
+ };
103
+ return /* @__PURE__ */ t(K, {
104
+ isOpen: r,
105
+ onClose: A,
106
+ title: "Theme Settings",
107
+ position: "right",
108
+ width: "520px",
109
+ maxWidth: "calc(100vw - 32px)",
110
+ className: "theme-settings-drawer",
111
+ secondary: {
112
+ text: "Cancel",
113
+ variant: "default",
114
+ onClick: A,
115
+ icon: "clear"
116
+ },
117
+ primary: {
118
+ text: "Save changes",
119
+ variant: "success",
120
+ onClick: () => {
121
+ M(), g();
122
+ },
123
+ icon: "save"
124
+ },
125
+ children: /* @__PURE__ */ t("div", {
126
+ className: "theme-settings",
127
+ children: /* @__PURE__ */ a("div", {
128
+ className: "theme-settings__content",
129
+ children: [/* @__PURE__ */ a("div", {
130
+ className: "theme-settings__section",
131
+ children: [
132
+ /* @__PURE__ */ t("label", { children: "Select Theme" }),
133
+ (w || b || o) && /* @__PURE__ */ a("div", {
134
+ className: "theme-settings__toolbar",
135
+ children: [
136
+ w && /* @__PURE__ */ t(W, {
137
+ placeholder: "Search themes...",
138
+ value: i,
139
+ onChange: C
140
+ }),
141
+ o && /* @__PURE__ */ t(k, {
142
+ checked: h,
143
+ onChange: S,
144
+ onLabel: `For ${o}`,
145
+ offLabel: `For ${o}`,
146
+ size: "small"
147
+ }),
148
+ b && /* @__PURE__ */ t(k, {
149
+ checked: m,
150
+ onChange: y,
151
+ onLabel: "Favorites",
152
+ offLabel: "Favorites",
153
+ size: "small"
154
+ })
155
+ ]
156
+ }),
157
+ P && /* @__PURE__ */ t("div", {
158
+ className: "theme-settings__appearance",
159
+ children: Z.map((e) => /* @__PURE__ */ t("button", {
160
+ type: "button",
161
+ className: `theme-settings__appearance-option ${c === e.value ? "theme-settings__appearance-option--active" : ""}`,
162
+ onClick: () => F(e.value),
163
+ children: e.label
164
+ }, e.value))
165
+ }),
166
+ /* @__PURE__ */ t("div", {
167
+ className: "theme-settings__grid",
168
+ children: T.length === 0 ? /* @__PURE__ */ t("div", {
169
+ className: "theme-settings__empty",
170
+ children: "No themes found"
171
+ }) : T.map((e) => /* @__PURE__ */ a("button", {
172
+ ref: f === e.value ? E : null,
173
+ type: "button",
174
+ className: `theme-settings__swatch ${f === e.value ? "theme-settings__swatch--active" : ""}`,
175
+ onClick: () => q(e.value),
176
+ children: [/* @__PURE__ */ a("div", {
177
+ className: "theme-settings__preview",
178
+ style: Y[e.value],
179
+ children: [
180
+ L.has(e.value) && /* @__PURE__ */ t("span", {
181
+ className: "theme-settings__favorite-badge",
182
+ children: "⭐"
183
+ }),
184
+ /* @__PURE__ */ t("div", { className: "theme-settings__preview-header" }),
185
+ /* @__PURE__ */ a("div", {
186
+ className: "theme-settings__preview-body",
187
+ children: [/* @__PURE__ */ a("div", {
188
+ className: "theme-settings__preview-card",
189
+ children: [
190
+ /* @__PURE__ */ t("div", { className: "theme-settings__preview-line theme-settings__preview-line--accent" }),
191
+ /* @__PURE__ */ t("div", { className: "theme-settings__preview-line" }),
192
+ /* @__PURE__ */ t("div", { className: "theme-settings__preview-line theme-settings__preview-line--short" })
193
+ ]
194
+ }), /* @__PURE__ */ a("div", {
195
+ className: "theme-settings__preview-sidebar",
196
+ children: [
197
+ /* @__PURE__ */ t("div", { className: "theme-settings__preview-dot" }),
198
+ /* @__PURE__ */ t("div", { className: "theme-settings__preview-dot" }),
199
+ /* @__PURE__ */ t("div", { className: "theme-settings__preview-dot" })
200
+ ]
201
+ })]
202
+ })
203
+ ]
204
+ }), /* @__PURE__ */ t("div", {
205
+ className: "theme-settings__swatch-meta",
206
+ children: /* @__PURE__ */ t("span", {
207
+ className: "theme-settings__swatch-label",
208
+ children: e.label
209
+ })
210
+ })]
211
+ }, e.value))
212
+ })
213
+ ]
214
+ }), I && /* @__PURE__ */ a(X, { children: [/* @__PURE__ */ a("div", {
215
+ className: "theme-settings__section",
216
+ children: [/* @__PURE__ */ t("label", {
217
+ htmlFor: "effect-selector",
218
+ children: "Component Effect"
219
+ }), /* @__PURE__ */ t(V, {
220
+ id: "effect-selector",
221
+ name: "effect",
222
+ options: j,
223
+ value: n.effect,
224
+ onChange: z,
225
+ placeholder: "Choose an effect"
226
+ })]
227
+ }), /* @__PURE__ */ a("div", {
228
+ className: "theme-settings__section",
229
+ children: [/* @__PURE__ */ t("label", { children: "Apply Effect To:" }), /* @__PURE__ */ t("div", {
230
+ className: "theme-settings__components",
231
+ children: O.map((e) => /* @__PURE__ */ t(Q, {
232
+ label: e,
233
+ checked: n.components.includes(e),
234
+ onChange: (s) => G(e, s),
235
+ disabled: !n.effect
236
+ }, e))
237
+ })]
238
+ })] })]
239
+ })
240
+ })
241
+ });
242
+ };
243
+ export {
244
+ de as ThemeSettings
245
+ };
@@ -0,0 +1,7 @@
1
+ import { FAVORITE_THEMES as E, THEME_CONFIGS as T, getThemeAppearance as m, getThemeConfig as o } from "@memobit/themes";
2
+ export {
3
+ E as FAVORITE_THEMES,
4
+ T as THEME_CONFIGS,
5
+ m as getThemeAppearance,
6
+ o as getThemeConfig
7
+ };
@@ -0,0 +1,10 @@
1
+ import { ThemeContext as r } from "./ThemeContextValue.js";
2
+ import { useContext as t } from "react";
3
+ var i = () => {
4
+ const e = t(r);
5
+ if (e === void 0) throw new Error("useTheme must be used within a ThemeProvider");
6
+ return e;
7
+ };
8
+ export {
9
+ i as useTheme
10
+ };
@@ -0,0 +1 @@
1
+ :root{--radius-sm:4px;--radius:8px;--radius-full:9999px;--checkbox-size:18px;--radio-size:18px;--body-background-glow:none;--spacing-1:1px;--spacing-2:2px;--spacing-4:4px;--spacing-6:6px;--spacing-8:8px;--spacing-12:12px;--spacing-16:16px;--spacing-20:20px;--spacing-24:24px;--spacing-32:32px;--spacing-40:40px;--spacing-48:48px;--spacing-60:60px;--spacing-64:64px;--spacing-80:80px;--spacing-100:100px;--spacing-200:200px;--spacing-300:300px;--spacing-400:400px;--font-size-xxs:.625rem;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-md:1rem;--font-size-lg:1.25rem;--font-size-xl:1.5rem;--font-size-xxl:2rem;--font-size-xxxl:3rem;--font-family-display:var(--font-family,sans-serif);--font-family-mono:ui-monospace, SFMono-Regular, "JetBrains Mono", Menlo, Consolas, monospace;--form-control-font-family:var(--font-family,sans-serif);--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-none:1;--line-height-tight:1.2;--line-height-normal:1.5;--line-height-loose:1.8;--duration-hover:.2s;--duration-fade:.3s;--duration-slide:.4s;--transition-fast:.15s ease-in-out;--transition-moderate:.3s ease-in-out;--transition-slow:.5s ease-in-out}.time-picker{gap:var(--spacing-8);flex-direction:column;display:flex}.time-picker__header{justify-content:space-between;align-items:center;gap:var(--spacing-8);display:flex}.time-picker--with-clock .time-picker__fields{justify-content:center}.time-picker__label{color:var(--calendar-header-color);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.time-picker__clock-toggle{border:var(--spacing-1) solid var(--calendar-border-color);border-radius:var(--radius-sm);color:var(--calendar-day-color);cursor:pointer;font-size:var(--font-size-sm);padding:var(--spacing-4) var(--spacing-6);transition:background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);background-color:#0000;justify-content:center;align-items:center;line-height:1;display:flex}.time-picker__clock-toggle:hover:not(:disabled){border-color:var(--calendar-day-selected-background-color)}.time-picker__clock-toggle--active{background-color:var(--calendar-day-selected-background-color);border-color:var(--calendar-day-selected-background-color);color:var(--calendar-day-selected-color)}.time-picker__clock-toggle:disabled{cursor:not-allowed;opacity:.5}.time-picker__fields{align-items:center;gap:var(--spacing-6);display:flex}.time-picker__separator{color:var(--calendar-day-disabled-color);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold)}.time-picker__period{background-color:var(--datepicker-input-background-color);border:var(--spacing-1) solid var(--calendar-border-color);border-radius:var(--radius-sm);color:var(--calendar-day-color);cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);margin-left:var(--spacing-2);padding:var(--spacing-8) var(--spacing-12);transition:background-color var(--transition-fast), border-color var(--transition-fast)}.time-picker__period:hover:not(:disabled){background-color:var(--calendar-day-hover-background-color);border-color:var(--calendar-day-selected-background-color)}.time-picker__period:disabled{cursor:not-allowed;opacity:.5}.time-spinner{background-color:var(--datepicker-input-background-color);border:var(--spacing-1) solid var(--calendar-border-color);border-radius:var(--radius-sm);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);align-items:stretch;display:flex;overflow:hidden}.time-spinner:hover:not(.time-spinner--disabled),.time-spinner--active,.time-spinner:focus-within{border-color:var(--calendar-day-selected-background-color)}.time-spinner--disabled{cursor:not-allowed;opacity:.5}.time-spinner__input{color:var(--calendar-day-color);font-family:inherit;font-size:var(--font-size-md);font-weight:var(--font-weight-medium);font-variant-numeric:tabular-nums;padding:var(--spacing-8) var(--spacing-4) var(--spacing-8) var(--spacing-8);text-align:center;width:var(--spacing-40);background-color:#0000;border:none}.time-spinner__input:focus{outline:none}.time-spinner__input:disabled{cursor:not-allowed}.time-spinner__steppers{border-left:var(--spacing-1) solid var(--calendar-border-color);flex-direction:column;display:flex}.time-spinner__step{color:var(--calendar-day-color);cursor:pointer;font-size:var(--font-size-xs);padding:0 var(--spacing-4);transition:background-color var(--transition-fast), color var(--transition-fast);background-color:#0000;border:none;flex:1;justify-content:center;align-items:center;line-height:0;display:flex}.time-spinner__step:first-child{border-bottom:var(--spacing-1) solid var(--calendar-border-color)}.time-spinner__step:hover:not(:disabled){background-color:var(--calendar-day-selected-background-color);color:var(--calendar-day-selected-color)}.time-spinner__step:disabled{cursor:not-allowed}
@@ -0,0 +1,118 @@
1
+ import './TimePicker.css';
2
+ import { Icon as $ } from "../Icon/Icon2.js";
3
+ import { AnalogClock as w } from "../AnalogClock/AnalogClock2.js";
4
+ import { TimeSpinner as l } from "./TimeSpinner.js";
5
+ /* empty css */
6
+ import { useState as x } from "react";
7
+ import { Fragment as j, jsx as s, jsxs as h } from "react/jsx-runtime";
8
+ var S = ({ className: M = "", clockSize: F = 208, collapsibleClock: k = !0, disabled: o = !1, format: c = "24h", label: a = "Time", minuteStep: u = 1, onChange: i, value: e, withClock: d = !1, withSeconds: _ = !1 }) => {
9
+ const [r, n] = x("hours"), [m, H] = x(!0), p = e.hours >= 12, g = d && (!k || m), N = d && k, P = !!a || N, C = (t) => {
10
+ if (c === "12h") {
11
+ const f = t % 12;
12
+ i({
13
+ ...e,
14
+ hours: p ? f + 12 : f
15
+ });
16
+ return;
17
+ }
18
+ i({
19
+ ...e,
20
+ hours: t
21
+ });
22
+ }, T = () => {
23
+ i({
24
+ ...e,
25
+ hours: p ? e.hours % 12 : e.hours % 12 + 12
26
+ });
27
+ };
28
+ return /* @__PURE__ */ h("div", {
29
+ className: `time-picker${g ? " time-picker--with-clock" : ""} ${M}`.trim(),
30
+ children: [
31
+ P && /* @__PURE__ */ h("div", {
32
+ className: "time-picker__header",
33
+ children: [a && /* @__PURE__ */ s("span", {
34
+ className: "time-picker__label",
35
+ children: a
36
+ }), N && /* @__PURE__ */ s("button", {
37
+ className: `time-picker__clock-toggle${m ? " time-picker__clock-toggle--active" : ""}`,
38
+ disabled: o,
39
+ onClick: () => H(!m),
40
+ title: m ? "Hide clock" : "Pick on a clock",
41
+ type: "button",
42
+ children: /* @__PURE__ */ s($, { name: "time" })
43
+ })]
44
+ }),
45
+ /* @__PURE__ */ h("div", {
46
+ className: "time-picker__fields",
47
+ children: [
48
+ /* @__PURE__ */ s(l, {
49
+ active: r === "hours",
50
+ disabled: o,
51
+ max: c === "12h" ? 12 : 23,
52
+ min: c === "12h" ? 1 : 0,
53
+ onChange: C,
54
+ onFocus: () => n("hours"),
55
+ title: "Hours",
56
+ value: c === "12h" ? e.hours % 12 || 12 : e.hours
57
+ }),
58
+ /* @__PURE__ */ s("span", {
59
+ className: "time-picker__separator",
60
+ children: ":"
61
+ }),
62
+ /* @__PURE__ */ s(l, {
63
+ active: r === "minutes",
64
+ disabled: o,
65
+ max: 59,
66
+ min: 0,
67
+ onChange: (t) => i({
68
+ ...e,
69
+ minutes: t
70
+ }),
71
+ onFocus: () => n("minutes"),
72
+ step: u,
73
+ title: "Minutes",
74
+ value: e.minutes
75
+ }),
76
+ _ && /* @__PURE__ */ h(j, { children: [/* @__PURE__ */ s("span", {
77
+ className: "time-picker__separator",
78
+ children: ":"
79
+ }), /* @__PURE__ */ s(l, {
80
+ active: r === "seconds",
81
+ disabled: o,
82
+ max: 59,
83
+ min: 0,
84
+ onChange: (t) => i({
85
+ ...e,
86
+ seconds: t
87
+ }),
88
+ onFocus: () => n("seconds"),
89
+ title: "Seconds",
90
+ value: e.seconds
91
+ })] }),
92
+ c === "12h" && /* @__PURE__ */ s("button", {
93
+ className: "time-picker__period",
94
+ disabled: o,
95
+ onClick: T,
96
+ type: "button",
97
+ children: p ? "PM" : "AM"
98
+ })
99
+ ]
100
+ }),
101
+ g && /* @__PURE__ */ s(w, {
102
+ disabled: o,
103
+ format: c,
104
+ minuteStep: u,
105
+ mode: r,
106
+ onChange: i,
107
+ onModeChange: n,
108
+ showHeader: !1,
109
+ size: F,
110
+ value: e,
111
+ withSeconds: _
112
+ })
113
+ ]
114
+ });
115
+ };
116
+ export {
117
+ S as TimePicker
118
+ };
@@ -0,0 +1,59 @@
1
+ import { Icon as d } from "../Icon/Icon2.js";
2
+ import { useState as D } from "react";
3
+ import { jsx as a, jsxs as f } from "react/jsx-runtime";
4
+ var _ = (o) => o.toString().padStart(2, "0"), B = ({ active: o, disabled: n, max: p, min: r, onChange: c, onFocus: h, step: v = 1, title: w, value: m }) => {
5
+ const [i, u] = D(void 0), y = (e) => {
6
+ const t = p - r + 1;
7
+ return ((e - r) % t + t) % t + r;
8
+ }, s = (e) => {
9
+ n || (u(void 0), c(y(m + e * v)));
10
+ };
11
+ return /* @__PURE__ */ f("div", {
12
+ className: `time-spinner${o ? " time-spinner--active" : ""}${n ? " time-spinner--disabled" : ""}`,
13
+ children: [/* @__PURE__ */ a("input", {
14
+ className: "time-spinner__input",
15
+ disabled: n,
16
+ inputMode: "numeric",
17
+ onBlur: () => {
18
+ i !== void 0 && i !== "" && c(Math.min(Math.max(Number(i), r), p)), u(void 0);
19
+ },
20
+ onChange: (e) => {
21
+ const t = e.target.value.replace(/\D/g, "").slice(-2);
22
+ if (u(t), t === "") return;
23
+ const l = Number(t);
24
+ l >= r && l <= p && c(l);
25
+ },
26
+ onFocus: h,
27
+ onKeyDown: (e) => {
28
+ if (e.key === "ArrowUp") {
29
+ e.preventDefault(), s(1);
30
+ return;
31
+ }
32
+ e.key === "ArrowDown" && (e.preventDefault(), s(-1));
33
+ },
34
+ title: w,
35
+ type: "text",
36
+ value: i ?? _(m)
37
+ }), /* @__PURE__ */ f("span", {
38
+ className: "time-spinner__steppers",
39
+ children: [/* @__PURE__ */ a("button", {
40
+ className: "time-spinner__step",
41
+ disabled: n,
42
+ onClick: () => s(1),
43
+ tabIndex: -1,
44
+ type: "button",
45
+ children: /* @__PURE__ */ a(d, { name: "caret-up" })
46
+ }), /* @__PURE__ */ a("button", {
47
+ className: "time-spinner__step",
48
+ disabled: n,
49
+ onClick: () => s(-1),
50
+ tabIndex: -1,
51
+ type: "button",
52
+ children: /* @__PURE__ */ a(d, { name: "caret-down" })
53
+ })]
54
+ })]
55
+ });
56
+ };
57
+ export {
58
+ B as TimeSpinner
59
+ };
@@ -0,0 +1 @@
1
+ .timeline{--item-index:0;margin:0;padding:0;list-style:none;display:flex;position:relative}.timeline--vertical{flex-direction:column;gap:0}.timeline--vertical .timeline__item{gap:0 var(--spacing-16);grid-template-columns:28px 1fr;display:grid;position:relative}.timeline--vertical .timeline__node{flex-direction:column;align-items:center;width:28px;display:flex}.timeline--vertical .timeline__connector{background:linear-gradient(to bottom, var(--border-color) 0%, transparent 100%);width:2px;margin-top:var(--spacing-4);min-height:var(--spacing-20);flex:1}.timeline--vertical .timeline__content{padding-bottom:var(--spacing-24)}.timeline--horizontal{padding-bottom:var(--spacing-8);flex-direction:row;align-items:flex-start;gap:0;overflow-x:auto}.timeline--horizontal .timeline__item{flex-direction:column;flex:1;align-items:center;min-width:120px;display:flex;position:relative}.timeline--horizontal .timeline__node{width:100%;margin-bottom:var(--spacing-12);flex-direction:row;align-items:center;display:flex}.timeline--horizontal .timeline__connector{background:linear-gradient(to right, var(--border-color) 0%, transparent 100%);height:2px;margin-left:var(--spacing-4);flex:1}.timeline--horizontal .timeline__content{text-align:center;padding:0 var(--spacing-8)}.timeline--horizontal .timeline__header{align-items:center;gap:var(--spacing-4);flex-direction:column}.timeline--horizontal .timeline__timestamp{text-align:center;display:block}.timeline--sm .timeline__dot{width:10px;height:10px}.timeline--sm .timeline__title,.timeline--sm .timeline__description{font-size:var(--font-size-xs)}.timeline--sm.timeline--horizontal .timeline__item{min-width:90px}.timeline--md .timeline__dot{width:14px;height:14px}.timeline--md .timeline__title,.timeline--md .timeline__description{font-size:var(--font-size-sm)}.timeline--md.timeline--horizontal .timeline__item{min-width:120px}.timeline--lg .timeline__dot{width:18px;height:18px}.timeline--lg .timeline__title,.timeline--lg .timeline__description{font-size:var(--font-size-md)}.timeline--lg.timeline--horizontal .timeline__item{min-width:160px}.timeline__item{transition:opacity var(--transition-moderate)}.timeline__item--active .timeline__title{color:var(--body-accent-color);font-weight:var(--font-weight-semibold)}.timeline__item--muted{opacity:.45}.timeline__dot{border-radius:var(--radius-full);border:2px solid var(--border-color);background:var(--card-background-color);z-index:1;transition:box-shadow var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;display:flex;position:relative}.timeline__dot--default{background:var(--card-background-color);border-color:var(--border-color)}.timeline__dot--info{background:var(--button-info-background-color);border-color:var(--button-info-border-color);box-shadow:0 0 0 3px #60a5fa66}.timeline__dot--success{background:var(--button-success-background-color);border-color:var(--button-success-border-color);box-shadow:0 0 0 3px #34d39966}.timeline__dot--warning{background:var(--button-warning-background-color);border-color:var(--button-warning-border-color);box-shadow:0 0 0 3px #fbbf2466}.timeline__dot--danger{background:var(--button-danger-background-color);border-color:var(--button-danger-border-color);box-shadow:0 0 0 3px #f8717166}.timeline__dot-icon{color:#fff;justify-content:center;align-items:center;font-size:.6em;line-height:1;display:flex}.timeline__connector{transition:background var(--transition-moderate)}.timeline__content{gap:var(--spacing-4);flex-direction:column;display:flex}.timeline__header{align-items:center;gap:var(--spacing-8);flex-wrap:wrap;display:flex}.timeline__title{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--body-color);line-height:var(--line-height-tight);transition:color var(--transition-fast)}.timeline__description{font-size:var(--font-size-sm);color:var(--body-color-muted);line-height:var(--line-height-normal);margin:0}.timeline__timestamp{font-size:var(--font-size-xs);color:var(--body-color-muted);font-weight:var(--font-weight-light);letter-spacing:.02em}.timeline__badge{padding:1px var(--spacing-8);border-radius:var(--radius-full);font-size:var(--font-size-xxs);font-weight:var(--font-weight-semibold);letter-spacing:.04em;text-transform:uppercase;align-items:center;display:inline-flex}.timeline__badge--default{background:var(--card-background-color);color:var(--body-color-muted)}.timeline__badge--info{color:#93c5fd;background:#3b82f633}.timeline__badge--success{color:#34d399;background:#10b98126}.timeline__badge--warning{color:#fbbf24;background:#f59e0b26}.timeline__badge--danger{color:#f87171;background:#ef444426}.timeline--animated .timeline__item{opacity:0;animation:timeline-fade-in var(--duration-slide) ease forwards;animation-delay:calc(var(--item-index) * 80ms);transform:translateY(8px)}.timeline--animated.timeline--horizontal .timeline__item{transform:translate(-8px)}@keyframes timeline-fade-in{to{opacity:1;transform:translate(0)}}.timeline--animated .timeline__item--muted{animation-name:timeline-fade-in-muted}@keyframes timeline-fade-in-muted{to{opacity:.45;transform:translate(0)}}
@@ -0,0 +1,57 @@
1
+ import './Timeline.css';
2
+ /* empty css */
3
+ import "react";
4
+ import { jsx as i, jsxs as n } from "react/jsx-runtime";
5
+ var d = (l = "default") => `timeline__dot timeline__dot--${l}`, v = ({ items: l, orientation: m = "vertical", size: s = "md", connected: a = !0, animated: c = !0, className: r = "" }) => /* @__PURE__ */ i("ol", {
6
+ className: [
7
+ "timeline",
8
+ `timeline--${m}`,
9
+ `timeline--${s}`,
10
+ a ? "timeline--connected" : "",
11
+ c ? "timeline--animated" : "",
12
+ r
13
+ ].filter(Boolean).join(" "),
14
+ children: l.map((e, t) => /* @__PURE__ */ n("li", {
15
+ className: [
16
+ "timeline__item",
17
+ e.active ? "timeline__item--active" : "",
18
+ e.muted ? "timeline__item--muted" : ""
19
+ ].filter(Boolean).join(" "),
20
+ style: { "--item-index": t },
21
+ children: [/* @__PURE__ */ n("div", {
22
+ className: "timeline__node",
23
+ children: [/* @__PURE__ */ i("div", {
24
+ className: d(e.variant),
25
+ children: e.icon ? /* @__PURE__ */ i("span", {
26
+ className: "timeline__dot-icon",
27
+ children: e.icon
28
+ }) : null
29
+ }), a && t < l.length - 1 && /* @__PURE__ */ i("div", { className: "timeline__connector" })]
30
+ }), /* @__PURE__ */ n("div", {
31
+ className: "timeline__content",
32
+ children: [
33
+ /* @__PURE__ */ n("div", {
34
+ className: "timeline__header",
35
+ children: [/* @__PURE__ */ i("span", {
36
+ className: "timeline__title",
37
+ children: e.title
38
+ }), e.badge && /* @__PURE__ */ i("span", {
39
+ className: `timeline__badge timeline__badge--${e.variant ?? "default"}`,
40
+ children: e.badge
41
+ })]
42
+ }),
43
+ e.description && /* @__PURE__ */ i("p", {
44
+ className: "timeline__description",
45
+ children: e.description
46
+ }),
47
+ e.timestamp && /* @__PURE__ */ i("time", {
48
+ className: "timeline__timestamp",
49
+ children: e.timestamp
50
+ })
51
+ ]
52
+ })]
53
+ }, e.id))
54
+ });
55
+ export {
56
+ v as Timeline
57
+ };
@@ -0,0 +1 @@
1
+ .timeline-markers{margin-left:var(--spacing-100);position:relative}.timeline-markers__track{left:calc(-1 * var(--spacing-16));width:var(--spacing-2);background:var(--delimiter-color);border-radius:var(--spacing-1);position:absolute;top:0;bottom:0}.timeline-markers__marker{left:calc(-1 * var(--spacing-100));z-index:1;width:var(--spacing-100);padding-right:var(--spacing-8);cursor:default;justify-content:flex-end;align-items:center;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.timeline-markers__dot{border-radius:50%;flex-shrink:0}.timeline-markers__dot--year{width:var(--spacing-12);height:var(--spacing-12);background:var(--body-accent-color);border:var(--spacing-2) solid var(--card-background-color);box-shadow:0 0 0 var(--spacing-2) var(--body-accent-color)}.timeline-markers__dot--date{width:var(--spacing-8);height:var(--spacing-8);background:var(--body-color-muted)}.timeline-markers__dot--small{width:var(--spacing-4);height:var(--spacing-4);background:var(--delimiter-color)}.timeline-markers__labels{align-items:flex-end;gap:var(--spacing-2);margin-right:var(--spacing-8);flex-direction:column;display:flex}.timeline-markers__label{white-space:nowrap}.timeline-markers__label--year{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);color:var(--body-accent-color);background:var(--card-background-color);padding:var(--spacing-2) var(--spacing-8);border-radius:var(--radius-sm);border:var(--spacing-1) solid var(--body-accent-color)}.timeline-markers__label--date{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--body-color-muted)}.timeline-markers__marker--date .timeline-markers__label{margin-right:var(--spacing-8)}.timeline-markers__separator{display:none}@media (width<=1024px){.timeline-markers{margin-left:var(--spacing-80)}.timeline-markers__track{left:calc(-1 * var(--spacing-12))}.timeline-markers__marker{left:calc(-1 * var(--spacing-80));width:var(--spacing-80);padding-right:var(--spacing-4)}.timeline-markers__label{margin-right:var(--spacing-4)}.timeline-markers__label--year{font-size:var(--font-size-xxs);padding:var(--spacing-1) var(--spacing-4)}.timeline-markers__label--date{font-size:var(--font-size-xxs)}.timeline-markers__dot--year{width:var(--spacing-8);height:var(--spacing-8)}}@media (width<=768px){.timeline-markers{margin-left:0}.timeline-markers__track,.timeline-markers__marker{display:none}.timeline-markers__separator{align-items:center;gap:var(--spacing-12);padding:var(--spacing-12) var(--spacing-16);display:flex}.timeline-markers__separator:before,.timeline-markers__separator:after{content:"";height:var(--spacing-1);background:var(--delimiter-color);flex:1}.timeline-markers__separator-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--body-accent-color);white-space:nowrap}}@media print{.timeline-markers__track{background:#ccc}.timeline-markers__dot--year{box-shadow:0 0 0 var(--spacing-2) #333;background:#333}.timeline-markers__dot--date{background:#666}.timeline-markers__dot--small{background:#ccc}.timeline-markers__label--year{color:#333;background:#fff;border-color:#333}.timeline-markers__label--date{color:#666}}
@@ -0,0 +1,73 @@
1
+ import './TimelineMarkers.css';
2
+ /* empty css */
3
+ import { useMemo as h } from "react";
4
+ import { jsx as t, jsxs as m } from "react/jsx-runtime";
5
+ var u = (e) => {
6
+ const [a, r, l] = e.split("-").map(Number);
7
+ return new Date(a, r - 1, l);
8
+ }, p = (e, a) => a === "month" ? e.toLocaleDateString("en-US", { month: "long" }) : e.toLocaleDateString("en-US", {
9
+ day: "2-digit",
10
+ month: "short"
11
+ }), v = (e, a) => a === "month" ? `${e.getFullYear()}-${e.getMonth()}` : `${e.getFullYear()}-${e.getMonth()}-${e.getDate()}`, b = (e) => e.getFullYear().toString(), g = (e, a = "day") => {
12
+ const r = /* @__PURE__ */ new Map();
13
+ let l = null, i = null;
14
+ return e.forEach((o, n) => {
15
+ const s = u(o.date), c = b(s), _ = v(s, a), d = c !== l, k = _ !== i;
16
+ r.set(n, {
17
+ showYear: d,
18
+ showDate: k,
19
+ yearLabel: d ? s.getFullYear().toString() : "",
20
+ dateLabel: k ? p(s, a) : ""
21
+ }), l = c, i = _;
22
+ }), r;
23
+ }, f = ({ marker: e, onClick: a }) => {
24
+ const r = (l) => {
25
+ l.stopPropagation(), a?.(l);
26
+ };
27
+ return e.showYear ? /* @__PURE__ */ m("div", {
28
+ className: "timeline-markers__marker timeline-markers__marker--year",
29
+ onClick: r,
30
+ children: [/* @__PURE__ */ m("div", {
31
+ className: "timeline-markers__labels",
32
+ children: [/* @__PURE__ */ t("span", {
33
+ className: "timeline-markers__label timeline-markers__label--year",
34
+ children: e.yearLabel
35
+ }), /* @__PURE__ */ t("span", {
36
+ className: "timeline-markers__label timeline-markers__label--date",
37
+ children: e.dateLabel
38
+ })]
39
+ }), /* @__PURE__ */ t("div", { className: "timeline-markers__dot timeline-markers__dot--year" })]
40
+ }) : e.showDate ? /* @__PURE__ */ m("div", {
41
+ className: "timeline-markers__marker timeline-markers__marker--date",
42
+ onClick: r,
43
+ children: [/* @__PURE__ */ t("span", {
44
+ className: "timeline-markers__label timeline-markers__label--date",
45
+ children: e.dateLabel
46
+ }), /* @__PURE__ */ t("div", { className: "timeline-markers__dot timeline-markers__dot--date" })]
47
+ }) : /* @__PURE__ */ t("div", {
48
+ className: "timeline-markers__marker timeline-markers__marker--empty",
49
+ onClick: r,
50
+ children: /* @__PURE__ */ t("div", { className: "timeline-markers__dot timeline-markers__dot--small" })
51
+ });
52
+ }, L = ({ marker: e }) => !e.showYear && !e.showDate ? null : /* @__PURE__ */ t("div", {
53
+ className: "timeline-markers__separator",
54
+ children: /* @__PURE__ */ t("span", {
55
+ className: "timeline-markers__separator-label",
56
+ children: e.showYear ? e.yearLabel : e.dateLabel
57
+ })
58
+ }), Y = ({ items: e, renderItem: a, className: r }) => {
59
+ const l = h(() => g(e), [e]);
60
+ return /* @__PURE__ */ m("div", {
61
+ className: `timeline-markers${r ? ` ${r}` : ""}`,
62
+ children: [/* @__PURE__ */ t("div", { className: "timeline-markers__track" }), e.map((i, o) => {
63
+ const n = l.get(o);
64
+ return n ? a(i, n) : null;
65
+ })]
66
+ });
67
+ };
68
+ export {
69
+ f as TimelineMarkerDot,
70
+ Y as TimelineMarkers,
71
+ L as TimelineMobileSeparator,
72
+ g as calculateTimelineMarkers
73
+ };
@@ -0,0 +1 @@
1
+ .tips-of-the-day{text-align:center}.tips-of-the-day h3,.tips-of-the-day h4{margin:var(--spacing-8) 0}
@@ -0,0 +1,24 @@
1
+ import './TipsOfTheDay.css';
2
+ import { Icon as e } from "../Icon/Icon2.js";
3
+ import { Card as m } from "../Card/Card2.js";
4
+ /* empty css */
5
+ import "react";
6
+ import { jsx as o, jsxs as t } from "react/jsx-runtime";
7
+ var n = (r, a) => Math.floor(Math.random() * (a - r + 1) + r), l = ({ list: r }) => {
8
+ const a = n(0, r.length - 1);
9
+ return /* @__PURE__ */ t(m, {
10
+ className: "tips-of-the-day",
11
+ children: [
12
+ /* @__PURE__ */ t("h3", { children: [
13
+ /* @__PURE__ */ o(e, { name: "sparkle" }),
14
+ " Tip Of The Day ",
15
+ /* @__PURE__ */ o(e, { name: "sparkle" })
16
+ ] }),
17
+ " ",
18
+ /* @__PURE__ */ o("h4", { children: r[a] })
19
+ ]
20
+ });
21
+ };
22
+ export {
23
+ l as TipsOfTheDay
24
+ };
@@ -0,0 +1 @@
1
+ .toast.toast--fixed{padding:var(--spacing-16);border-radius:var(--radius);box-shadow:0 4px var(--spacing-12) var(--box-shadow);z-index:9999;text-shadow:1px 1px 1px var(--text-shadow);align-items:center;gap:var(--spacing-16);border:1px solid;animation:.3s slideIn;display:flex;position:fixed}.toast.toast--top-left{top:var(--spacing-16);left:var(--spacing-16)}.toast.toast--top-right{top:var(--spacing-16);right:var(--spacing-16)}.toast.toast--bottom-left{bottom:var(--spacing-16);left:var(--spacing-16)}.toast.toast--bottom-right{right:var(--spacing-16);bottom:var(--spacing-16)}.toast.toast--top{top:var(--spacing-16);left:50%;transform:translate(-50%)}.toast.toast--bottom{bottom:var(--spacing-16);left:50%;transform:translate(-50%)}.toast.toast--left{top:50%;left:var(--spacing-16);transform:translateY(-50%)}.toast.toast--right{top:50%;right:var(--spacing-16);transform:translateY(-50%)}.toast__message{flex:1}.toast__action{padding:var(--spacing-8) var(--spacing-16);border-radius:var(--radius);color:inherit;font-weight:var(--font-weight-semibold);cursor:pointer;background:#fff3;border:1px solid #ffffff4d;transition:background-color .2s}.toast__action:hover{background:#ffffff4d}.toast__close{width:24px;height:24px;color:inherit;cursor:pointer;opacity:.7;background:0 0;border:none;padding:0;font-size:24px;line-height:1;transition:opacity .2s}.toast__close:hover{opacity:1}.toast.toast-success{background-color:var(--toast-success-background-color);border-color:var(--toast-success-border-color);color:var(--toast-success-color)}.toast.toast-danger{background-color:var(--toast-danger-background-color);border-color:var(--toast-danger-border-color);color:var(--toast-danger-color)}.toast.toast-warning{background-color:var(--toast-warning-background-color);border-color:var(--toast-warning-border-color);color:var(--toast-warning-color)}.toast.toast-info{background-color:var(--toast-info-background-color);border-color:var(--toast-info-border-color);color:var(--toast-info-color)}@keyframes slideIn{0%{opacity:0}to{opacity:1}}