@hanzo/ui 0.5.24 → 0.6.15

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 (568) hide show
  1. package/.eslintrc.js +4 -0
  2. package/.prettierrc +22 -0
  3. package/.rush/temp/chunked-rush-logs/ui._phase_build.chunks.jsonl +2 -0
  4. package/.rush/temp/chunked-rush-logs/ui._phase_validate.chunks.jsonl +11 -0
  5. package/.rush/temp/hcengineering+ui-_phase_build-16380278e5d28b32a6666092bd103ddbd2c66a56.tar.log +12 -0
  6. package/.rush/temp/hcengineering+ui-_phase_build-16380278e5d28b32a6666092bd103ddbd2c66a56.untar.log +10 -0
  7. package/.rush/temp/hcengineering+ui-_phase_validate-8f047ca66e6a4a177eee65782e723a7dc128d73e.tar.log +65 -0
  8. package/.rush/temp/hcengineering+ui-_phase_validate-8f047ca66e6a4a177eee65782e723a7dc128d73e.untar.log +10 -0
  9. package/.rush/temp/operation/_phase_build/all.log +2 -0
  10. package/.rush/temp/operation/_phase_build/log-chunks.jsonl +2 -0
  11. package/.rush/temp/operation/_phase_build/state.json +3 -0
  12. package/.rush/temp/operation/_phase_validate/all.log +11 -0
  13. package/.rush/temp/operation/_phase_validate/log-chunks.jsonl +11 -0
  14. package/.rush/temp/operation/_phase_validate/state.json +3 -0
  15. package/.rush/temp/shrinkwrap-deps.json +585 -0
  16. package/.validate/tsBuildInfoFile.info +1 -0
  17. package/.validate/validate-err.log +0 -0
  18. package/.validate/validate.log +0 -0
  19. package/CHANGELOG.json +17 -0
  20. package/CHANGELOG.md +9 -0
  21. package/config/rig.json +5 -0
  22. package/jest.config.js +5 -0
  23. package/lang/cs.json +119 -0
  24. package/lang/de.json +119 -0
  25. package/lang/en.json +120 -0
  26. package/lang/es.json +120 -0
  27. package/lang/fr.json +120 -0
  28. package/lang/it.json +120 -0
  29. package/lang/pt.json +120 -0
  30. package/lang/ru.json +120 -0
  31. package/lang/zh.json +120 -0
  32. package/package.json +52 -100
  33. package/postcss.config.js +5 -0
  34. package/rush-logs/ui._phase_build.cache.log +4 -0
  35. package/rush-logs/ui._phase_build.log +2 -0
  36. package/rush-logs/ui._phase_validate.cache.log +4 -0
  37. package/rush-logs/ui._phase_validate.log +11 -0
  38. package/src/__test__/location.test.ts +12 -0
  39. package/src/colors.ts +552 -0
  40. package/src/components/AccordionItem.svelte +132 -0
  41. package/src/components/ActionIcon.svelte +88 -0
  42. package/src/components/BarDashboard.svelte +47 -0
  43. package/src/components/BooleanIcon.svelte +31 -0
  44. package/src/components/Breadcrumb.svelte +102 -0
  45. package/src/components/Breadcrumbs.svelte +73 -0
  46. package/src/components/Button.svelte +196 -0
  47. package/src/components/ButtonBase.svelte +117 -0
  48. package/src/components/ButtonGroup.svelte +48 -0
  49. package/src/components/ButtonIcon.svelte +63 -0
  50. package/src/components/ButtonMenu.svelte +103 -0
  51. package/src/components/ButtonWithDropdown.svelte +120 -0
  52. package/src/components/CheckBox.svelte +239 -0
  53. package/src/components/CheckBoxList.svelte.txt +88 -0
  54. package/src/components/CheckBoxWithLabel.svelte.txt +147 -0
  55. package/src/components/Chevron.svelte +85 -0
  56. package/src/components/Chip.svelte +109 -0
  57. package/src/components/CircleButton.svelte +165 -0
  58. package/src/components/CodeForm.svelte +164 -0
  59. package/src/components/CodeInput.svelte +86 -0
  60. package/src/components/ColorPopup.svelte +119 -0
  61. package/src/components/Component.svelte +152 -0
  62. package/src/components/Dialog.svelte +105 -0
  63. package/src/components/Dock.svelte +53 -0
  64. package/src/components/Dropdown.svelte +91 -0
  65. package/src/components/DropdownLabels.svelte +156 -0
  66. package/src/components/DropdownLabelsIntl.svelte +108 -0
  67. package/src/components/DropdownLabelsPopup.svelte +148 -0
  68. package/src/components/DropdownLabelsPopupIntl.svelte +72 -0
  69. package/src/components/DropdownPopup.svelte +146 -0
  70. package/src/components/DropdownRecord.svelte +50 -0
  71. package/src/components/DropdownRecordPopup.svelte +82 -0
  72. package/src/components/EditBox.svelte +211 -0
  73. package/src/components/EditWithIcon.svelte +130 -0
  74. package/src/components/EmbeddedPDF.svelte +88 -0
  75. package/src/components/ErrorPopup.svelte +27 -0
  76. package/src/components/ErrorPresenter.svelte +32 -0
  77. package/src/components/ExpandCollapse.svelte +42 -0
  78. package/src/components/Expandable.svelte +90 -0
  79. package/src/components/FocusHandler.svelte +21 -0
  80. package/src/components/Fold.svelte +52 -0
  81. package/src/components/Grid.svelte +39 -0
  82. package/src/components/Header.svelte +260 -0
  83. package/src/components/HlsVideo.svelte +170 -0
  84. package/src/components/Hotkey.svelte +50 -0
  85. package/src/components/HotkeyGroup.svelte +25 -0
  86. package/src/components/Html.svelte +24 -0
  87. package/src/components/Icon.svelte +45 -0
  88. package/src/components/IconWithEmoji.svelte +74 -0
  89. package/src/components/Image.svelte +71 -0
  90. package/src/components/Label.svelte +38 -0
  91. package/src/components/Lazy.svelte +29 -0
  92. package/src/components/Like.svelte +73 -0
  93. package/src/components/Link.svelte +75 -0
  94. package/src/components/LinkWrapper.svelte +35 -0
  95. package/src/components/ListView.svelte +153 -0
  96. package/src/components/ListViewItem.svelte +84 -0
  97. package/src/components/Loading.svelte +88 -0
  98. package/src/components/Menu.svelte +205 -0
  99. package/src/components/MiniToggle.svelte +125 -0
  100. package/src/components/Modal.svelte +117 -0
  101. package/src/components/ModeSelector.svelte +37 -0
  102. package/src/components/ModernButton.svelte +61 -0
  103. package/src/components/ModernCheckbox.svelte +123 -0
  104. package/src/components/ModernDialog.svelte +258 -0
  105. package/src/components/ModernEditbox.svelte +256 -0
  106. package/src/components/ModernPopup.svelte +105 -0
  107. package/src/components/ModernRadioButton.svelte +111 -0
  108. package/src/components/ModernTab.svelte +184 -0
  109. package/src/components/ModernToggle.svelte +153 -0
  110. package/src/components/MouseSpeedTracker.svelte +74 -0
  111. package/src/components/MultiProgress.svelte +97 -0
  112. package/src/components/NavGroup.svelte +160 -0
  113. package/src/components/NavItem.svelte +346 -0
  114. package/src/components/NestedDropdown.svelte +62 -0
  115. package/src/components/NestedMenu.svelte +119 -0
  116. package/src/components/NotificationToast.svelte +112 -0
  117. package/src/components/NumberInput.svelte +200 -0
  118. package/src/components/Panel.svelte +324 -0
  119. package/src/components/PanelInstance.svelte +254 -0
  120. package/src/components/PlainTextEditor.svelte +100 -0
  121. package/src/components/Popup.svelte +50 -0
  122. package/src/components/PopupInstance.svelte +390 -0
  123. package/src/components/PopupMenu.svelte +120 -0
  124. package/src/components/Progress.svelte +124 -0
  125. package/src/components/ProgressCircle.svelte +71 -0
  126. package/src/components/RadioButton.svelte +69 -0
  127. package/src/components/RadioGroup.svelte +42 -0
  128. package/src/components/RootStatusComponent.svelte +65 -0
  129. package/src/components/Row.svelte +25 -0
  130. package/src/components/ScrollBox.svelte +98 -0
  131. package/src/components/Scroller.svelte +1063 -0
  132. package/src/components/ScrollerBar.svelte +181 -0
  133. package/src/components/SearchEdit.svelte +46 -0
  134. package/src/components/SearchInput.svelte +213 -0
  135. package/src/components/SearchPicker.svelte +114 -0
  136. package/src/components/Section.svelte +49 -0
  137. package/src/components/SectionEmpty.svelte +38 -0
  138. package/src/components/SelectBox.svelte +76 -0
  139. package/src/components/SelectPopup.svelte +217 -0
  140. package/src/components/Separator.svelte +736 -0
  141. package/src/components/ShowMore.svelte +99 -0
  142. package/src/components/Spinner.svelte +72 -0
  143. package/src/components/SplitButton.svelte +100 -0
  144. package/src/components/StateTag.svelte +79 -0
  145. package/src/components/Status.svelte +33 -0
  146. package/src/components/StepsDialog.svelte +290 -0
  147. package/src/components/StylishEdit.svelte +127 -0
  148. package/src/components/Submenu.svelte +68 -0
  149. package/src/components/Switcher.svelte +55 -0
  150. package/src/components/SwitcherBase.svelte +116 -0
  151. package/src/components/TabList.svelte +290 -0
  152. package/src/components/Tabs.svelte +45 -0
  153. package/src/components/TabsControl.svelte +113 -0
  154. package/src/components/TextArea.svelte +110 -0
  155. package/src/components/TextAreaEditor.svelte +78 -0
  156. package/src/components/TimeLeft.svelte +66 -0
  157. package/src/components/TimeShiftPicker.svelte +84 -0
  158. package/src/components/TimeShiftPopup.svelte +64 -0
  159. package/src/components/TimeShiftPresenter.svelte +59 -0
  160. package/src/components/TimeSince.svelte +86 -0
  161. package/src/components/TimeZonesPopup.svelte +185 -0
  162. package/src/components/Timeline.svelte +754 -0
  163. package/src/components/Toggle.svelte +116 -0
  164. package/src/components/ToggleButton.svelte +176 -0
  165. package/src/components/ToggleWithLabel.svelte +58 -0
  166. package/src/components/TooltipInstance.svelte +613 -0
  167. package/src/components/Video.svelte +40 -0
  168. package/src/components/calendar/DateInputBox.svelte +430 -0
  169. package/src/components/calendar/DatePicker.svelte +46 -0
  170. package/src/components/calendar/DatePopup.svelte +274 -0
  171. package/src/components/calendar/DatePresenter.svelte +392 -0
  172. package/src/components/calendar/DateRangePicker.svelte +50 -0
  173. package/src/components/calendar/DateRangePopup.svelte +76 -0
  174. package/src/components/calendar/DateRangePresenter.svelte +779 -0
  175. package/src/components/calendar/DateTimePresenter.svelte +23 -0
  176. package/src/components/calendar/DateTimeRangePresenter.svelte +28 -0
  177. package/src/components/calendar/DueDatePopup.svelte +93 -0
  178. package/src/components/calendar/DueDatePresenter.svelte +83 -0
  179. package/src/components/calendar/Month.svelte +243 -0
  180. package/src/components/calendar/MonthCalendar.svelte +138 -0
  181. package/src/components/calendar/MonthSquare.svelte +315 -0
  182. package/src/components/calendar/RangeDatePopup.svelte +231 -0
  183. package/src/components/calendar/Shifts.svelte +114 -0
  184. package/src/components/calendar/SimpleDatePopup.svelte +42 -0
  185. package/src/components/calendar/SimpleTimePopup.svelte +41 -0
  186. package/src/components/calendar/TimeInputBox.svelte +282 -0
  187. package/src/components/calendar/TimePopup.svelte +62 -0
  188. package/src/components/calendar/WeekCalendar.svelte +116 -0
  189. package/src/components/calendar/YearCalendar.svelte +67 -0
  190. package/src/components/calendar/icons/DPCalendar.svelte +12 -0
  191. package/src/components/calendar/icons/DPCalendarOver.svelte +15 -0
  192. package/src/components/calendar/icons/DPClock.svelte +13 -0
  193. package/src/components/calendar/icons/DPClockBold.svelte +10 -0
  194. package/src/components/calendar/icons/DPEnd.svelte +13 -0
  195. package/src/components/calendar/icons/DPSetCalendar.svelte +10 -0
  196. package/src/components/calendar/icons/DPStart.svelte +13 -0
  197. package/src/components/calendar/internal/DateUtils.ts +186 -0
  198. package/src/components/emoji/ActionsPopup.svelte +116 -0
  199. package/src/components/emoji/EmojiButton.svelte +146 -0
  200. package/src/components/emoji/EmojiGroup.svelte +105 -0
  201. package/src/components/emoji/EmojiGroupPalette.svelte +58 -0
  202. package/src/components/emoji/EmojiPopup.svelte +430 -0
  203. package/src/components/emoji/SkinTonePopup.svelte +40 -0
  204. package/src/components/emoji/SkinToneTooltip.svelte +36 -0
  205. package/src/components/emoji/icons/Activities.svelte +20 -0
  206. package/src/components/emoji/icons/AnimalsAndNature.svelte +16 -0
  207. package/src/components/emoji/icons/Flags.svelte +14 -0
  208. package/src/components/emoji/icons/FoodAndDrink.svelte +20 -0
  209. package/src/components/emoji/icons/FrequentlyUsed.svelte +17 -0
  210. package/src/components/emoji/icons/GettingWorkDone.svelte +14 -0
  211. package/src/components/emoji/icons/Objects.svelte +15 -0
  212. package/src/components/emoji/icons/Search.svelte +14 -0
  213. package/src/components/emoji/icons/SmileysAndPeople.svelte +23 -0
  214. package/src/components/emoji/icons/Symbols.svelte +23 -0
  215. package/src/components/emoji/icons/TravelAndPlaces.svelte +17 -0
  216. package/src/components/emoji/index.ts +97 -0
  217. package/src/components/emoji/store.ts +44 -0
  218. package/src/components/emoji/types.ts +34 -0
  219. package/src/components/emoji/utils.ts +182 -0
  220. package/src/components/icons/Activity.svelte +16 -0
  221. package/src/components/icons/ActivityEdit.svelte +25 -0
  222. package/src/components/icons/Add.svelte +10 -0
  223. package/src/components/icons/ArrowLeft.svelte +25 -0
  224. package/src/components/icons/ArrowRight.svelte +25 -0
  225. package/src/components/icons/Attachment.svelte +29 -0
  226. package/src/components/icons/Back.svelte +32 -0
  227. package/src/components/icons/BlueCheck.svelte +11 -0
  228. package/src/components/icons/Calendar.svelte +10 -0
  229. package/src/components/icons/Check.svelte +12 -0
  230. package/src/components/icons/CheckAll.svelte +27 -0
  231. package/src/components/icons/CheckCircle.svelte +12 -0
  232. package/src/components/icons/Checkmark.svelte +26 -0
  233. package/src/components/icons/ChevronDown.svelte +27 -0
  234. package/src/components/icons/ChevronLeft.svelte +22 -0
  235. package/src/components/icons/ChevronRight.svelte +22 -0
  236. package/src/components/icons/CircleAdd.svelte +13 -0
  237. package/src/components/icons/Circles.svelte +43 -0
  238. package/src/components/icons/Close.svelte +10 -0
  239. package/src/components/icons/ColStar.svelte +31 -0
  240. package/src/components/icons/CollapseArrow.svelte +8 -0
  241. package/src/components/icons/Copy.svelte +10 -0
  242. package/src/components/icons/Delete.svelte +18 -0
  243. package/src/components/icons/Description.svelte +31 -0
  244. package/src/components/icons/Details.svelte +36 -0
  245. package/src/components/icons/DetailsFilled.svelte +27 -0
  246. package/src/components/icons/Down.svelte +8 -0
  247. package/src/components/icons/DownOutline.svelte +8 -0
  248. package/src/components/icons/Dropdown.svelte +8 -0
  249. package/src/components/icons/DropdownDown.svelte +24 -0
  250. package/src/components/icons/DropdownRight.svelte +24 -0
  251. package/src/components/icons/Edit.svelte +26 -0
  252. package/src/components/icons/Emoji.svelte +10 -0
  253. package/src/components/icons/Error.svelte +27 -0
  254. package/src/components/icons/Expand.svelte +10 -0
  255. package/src/components/icons/File.svelte +25 -0
  256. package/src/components/icons/Filter.svelte +26 -0
  257. package/src/components/icons/Folder.svelte +13 -0
  258. package/src/components/icons/FolderCollapsed.svelte +34 -0
  259. package/src/components/icons/FolderExpanded.svelte +34 -0
  260. package/src/components/icons/Forward.svelte +8 -0
  261. package/src/components/icons/HalfUpDown.svelte +7 -0
  262. package/src/components/icons/History.svelte +10 -0
  263. package/src/components/icons/Info.svelte +26 -0
  264. package/src/components/icons/KeyCommand.svelte +12 -0
  265. package/src/components/icons/KeyOption.svelte +8 -0
  266. package/src/components/icons/KeyShift.svelte +8 -0
  267. package/src/components/icons/Left.svelte +10 -0
  268. package/src/components/icons/Like.svelte +25 -0
  269. package/src/components/icons/Link.svelte +10 -0
  270. package/src/components/icons/MaxWidth.svelte +27 -0
  271. package/src/components/icons/Maximize.svelte +25 -0
  272. package/src/components/icons/MenuClose.svelte +28 -0
  273. package/src/components/icons/MenuOpen.svelte +26 -0
  274. package/src/components/icons/MinWidth.svelte +27 -0
  275. package/src/components/icons/Minimize.svelte +28 -0
  276. package/src/components/icons/Mixin.svelte +38 -0
  277. package/src/components/icons/MoreH.svelte +16 -0
  278. package/src/components/icons/MoreV.svelte +16 -0
  279. package/src/components/icons/MoreV2.svelte +29 -0
  280. package/src/components/icons/NavNext.svelte +10 -0
  281. package/src/components/icons/NavPrev.svelte +10 -0
  282. package/src/components/icons/Open.svelte +11 -0
  283. package/src/components/icons/OpenedArrow.svelte +26 -0
  284. package/src/components/icons/Options.svelte +12 -0
  285. package/src/components/icons/Redo.svelte +10 -0
  286. package/src/components/icons/Right.svelte +26 -0
  287. package/src/components/icons/Scale.svelte +13 -0
  288. package/src/components/icons/ScaleFull.svelte +13 -0
  289. package/src/components/icons/Scribble.svelte +10 -0
  290. package/src/components/icons/Search.svelte +12 -0
  291. package/src/components/icons/Send.svelte +10 -0
  292. package/src/components/icons/Settings.svelte +13 -0
  293. package/src/components/icons/Share.svelte +13 -0
  294. package/src/components/icons/SquareExpand.svelte +13 -0
  295. package/src/components/icons/Start.svelte +10 -0
  296. package/src/components/icons/Stop.svelte +8 -0
  297. package/src/components/icons/TableOfContents.svelte +35 -0
  298. package/src/components/icons/Thread.svelte +29 -0
  299. package/src/components/icons/ToDetails.svelte +28 -0
  300. package/src/components/icons/Undo.svelte +10 -0
  301. package/src/components/icons/Up.svelte +8 -0
  302. package/src/components/icons/UpOutline.svelte +8 -0
  303. package/src/components/internal/Clock.svelte +42 -0
  304. package/src/components/internal/ClockFace.svelte +148 -0
  305. package/src/components/internal/ClockPopup.svelte +91 -0
  306. package/src/components/internal/ErrorBoundary.ts +33 -0
  307. package/src/components/internal/ErrorComponent.svelte +37 -0
  308. package/src/components/internal/Root.svelte +323 -0
  309. package/src/components/internal/RootBarExtension.svelte +32 -0
  310. package/src/components/internal/Settings.svelte +39 -0
  311. package/src/components/internal/SettingsPopup.svelte +196 -0
  312. package/src/components/internal/ThemeButton.svelte +151 -0
  313. package/src/components/internal/icons/CheckCircled.svelte +11 -0
  314. package/src/components/internal/icons/Computer.svelte +15 -0
  315. package/src/components/internal/icons/FontSize.svelte +13 -0
  316. package/src/components/internal/icons/Language.svelte +17 -0
  317. package/src/components/internal/icons/Phone.svelte +18 -0
  318. package/src/components/internal/icons/Search.svelte +12 -0
  319. package/src/components/internal/icons/Settings.svelte +13 -0
  320. package/src/components/internal/icons/Theme.svelte +9 -0
  321. package/src/components/internal/icons/WiFi.svelte +21 -0
  322. package/src/components/notifications/Notification.svelte +34 -0
  323. package/src/components/notifications/Notification.ts +16 -0
  324. package/src/components/notifications/NotificationPosition.ts +6 -0
  325. package/src/components/notifications/NotificationSeverity.ts +6 -0
  326. package/src/components/notifications/Notifications.svelte +53 -0
  327. package/src/components/notifications/actions.ts +42 -0
  328. package/src/components/notifications/store.ts +16 -0
  329. package/src/components/wizard/ModernWizardBar.svelte +105 -0
  330. package/src/components/wizard/ModernWizardDialog.svelte +144 -0
  331. package/src/components/wizard/Wizard.svelte +59 -0
  332. package/src/components/wizard/WizardStep.svelte +144 -0
  333. package/src/focus.ts +139 -0
  334. package/src/index.ts +338 -0
  335. package/src/lazy.ts +93 -0
  336. package/src/location.ts +259 -0
  337. package/src/modals.ts +5 -0
  338. package/src/panelup.ts +70 -0
  339. package/src/plugin.ts +156 -0
  340. package/src/popups.ts +486 -0
  341. package/src/resize.ts +179 -0
  342. package/src/svg.d.ts +4 -0
  343. package/src/tooltips.ts +152 -0
  344. package/src/types.ts +545 -0
  345. package/src/utils.ts +420 -0
  346. package/svelte.config.js +5 -0
  347. package/tsconfig.json +9 -0
  348. package/types/__test__/location.test.d.ts +2 -0
  349. package/types/__test__/location.test.d.ts.map +1 -0
  350. package/types/colors.d.ts +163 -0
  351. package/types/colors.d.ts.map +1 -0
  352. package/types/components/calendar/internal/DateUtils.d.ts +34 -0
  353. package/types/components/calendar/internal/DateUtils.d.ts.map +1 -0
  354. package/types/components/emoji/index.d.ts +11 -0
  355. package/types/components/emoji/index.d.ts.map +1 -0
  356. package/types/components/emoji/store.d.ts +12 -0
  357. package/types/components/emoji/store.d.ts.map +1 -0
  358. package/types/components/emoji/types.d.ts +20 -0
  359. package/types/components/emoji/types.d.ts.map +1 -0
  360. package/types/components/emoji/utils.d.ts +17 -0
  361. package/types/components/emoji/utils.d.ts.map +1 -0
  362. package/types/components/internal/ErrorBoundary.d.ts +5 -0
  363. package/types/components/internal/ErrorBoundary.d.ts.map +1 -0
  364. package/types/components/notifications/Notification.d.ts +16 -0
  365. package/types/components/notifications/Notification.d.ts.map +1 -0
  366. package/types/components/notifications/NotificationPosition.d.ts +7 -0
  367. package/types/components/notifications/NotificationPosition.d.ts.map +1 -0
  368. package/types/components/notifications/NotificationSeverity.d.ts +7 -0
  369. package/types/components/notifications/NotificationSeverity.d.ts.map +1 -0
  370. package/types/components/notifications/actions.d.ts +6 -0
  371. package/types/components/notifications/actions.d.ts.map +1 -0
  372. package/types/components/notifications/store.d.ts +9 -0
  373. package/types/components/notifications/store.d.ts.map +1 -0
  374. package/types/focus.d.ts +32 -0
  375. package/types/focus.d.ts.map +1 -0
  376. package/types/index.d.ts +254 -0
  377. package/types/index.d.ts.map +1 -0
  378. package/types/lazy.d.ts +6 -0
  379. package/types/lazy.d.ts.map +1 -0
  380. package/types/location.d.ts +38 -0
  381. package/types/location.d.ts.map +1 -0
  382. package/types/modals.d.ts +5 -0
  383. package/types/modals.d.ts.map +1 -0
  384. package/types/panelup.d.ts +17 -0
  385. package/types/panelup.d.ts.map +1 -0
  386. package/types/plugin.d.ts +135 -0
  387. package/types/plugin.d.ts.map +1 -0
  388. package/types/popups.d.ts +65 -0
  389. package/types/popups.d.ts.map +1 -0
  390. package/types/resize.d.ts +32 -0
  391. package/types/resize.d.ts.map +1 -0
  392. package/types/tooltips.d.ts +8 -0
  393. package/types/tooltips.d.ts.map +1 -0
  394. package/types/types.d.ts +373 -0
  395. package/types/types.d.ts.map +1 -0
  396. package/types/utils.d.ts +125 -0
  397. package/types/utils.d.ts.map +1 -0
  398. package/assets/lux-site-icons/android-chrome-192x192.png +0 -0
  399. package/assets/lux-site-icons/android-chrome-512x512.png +0 -0
  400. package/assets/lux-site-icons/apple-touch-icon.png +0 -0
  401. package/assets/lux-site-icons/favicon-16x16.png +0 -0
  402. package/assets/lux-site-icons/favicon-32x32.png +0 -0
  403. package/assets/lux-site-icons/favicon.ico +0 -0
  404. package/assets/standard-docs/LUX-NFT-Terms-and-Conditions.pdf +0 -0
  405. package/assets/standard-docs/LUX-Privacy-Policy.pdf +0 -0
  406. package/blocks/components/accordian-block.tsx +0 -48
  407. package/blocks/components/block-component-props.ts +0 -11
  408. package/blocks/components/bullet-cards-block.tsx +0 -45
  409. package/blocks/components/card-block.tsx +0 -213
  410. package/blocks/components/carte-blanche-block/index.tsx +0 -127
  411. package/blocks/components/carte-blanche-block/variant-content-left.tsx +0 -49
  412. package/blocks/components/content.tsx +0 -70
  413. package/blocks/components/cta-block.tsx +0 -98
  414. package/blocks/components/enh-heading-block.tsx +0 -205
  415. package/blocks/components/grid-block/grid-block-mutator.ts +0 -12
  416. package/blocks/components/grid-block/index.tsx +0 -83
  417. package/blocks/components/grid-block/mutator-registry.ts +0 -10
  418. package/blocks/components/grid-block/table-borders.mutator.ts +0 -47
  419. package/blocks/components/group-block.tsx +0 -83
  420. package/blocks/components/heading-block.tsx +0 -88
  421. package/blocks/components/image-block.tsx +0 -108
  422. package/blocks/components/index.ts +0 -30
  423. package/blocks/components/screenful-block/content.tsx +0 -120
  424. package/blocks/components/screenful-block/index.tsx +0 -79
  425. package/blocks/components/screenful-block/poster-background.tsx +0 -34
  426. package/blocks/components/screenful-block/video-background.tsx +0 -45
  427. package/blocks/components/space-block.tsx +0 -66
  428. package/blocks/components/video-block.tsx +0 -137
  429. package/blocks/def/accordian-block.ts +0 -14
  430. package/blocks/def/block.ts +0 -7
  431. package/blocks/def/bullet-cards-block.ts +0 -21
  432. package/blocks/def/card-block.ts +0 -24
  433. package/blocks/def/carte-blanche-block.ts +0 -21
  434. package/blocks/def/cta-block.ts +0 -19
  435. package/blocks/def/element-block.ts +0 -11
  436. package/blocks/def/enh-heading-block.ts +0 -45
  437. package/blocks/def/grid-block.ts +0 -16
  438. package/blocks/def/group-block.ts +0 -11
  439. package/blocks/def/heading-block.ts +0 -15
  440. package/blocks/def/image-block.ts +0 -31
  441. package/blocks/def/index.ts +0 -35
  442. package/blocks/def/screenful-block.ts +0 -54
  443. package/blocks/def/space-block.ts +0 -64
  444. package/blocks/def/video-block.ts +0 -28
  445. package/blocks/index.ts +0 -2
  446. package/common/chat-widget.tsx +0 -75
  447. package/common/contact-dialog/contact-form.tsx +0 -111
  448. package/common/contact-dialog/disclaimer.tsx +0 -13
  449. package/common/contact-dialog/index.tsx +0 -48
  450. package/common/copyright.tsx +0 -21
  451. package/common/drawer-menu.tsx +0 -51
  452. package/common/footer.tsx +0 -77
  453. package/common/head-metadata/from-next/metadata-types.ts +0 -158
  454. package/common/head-metadata/from-next/opengraph-types.ts +0 -267
  455. package/common/head-metadata/from-next/twitter-types.ts +0 -92
  456. package/common/head-metadata/index.tsx +0 -208
  457. package/common/header/index.tsx +0 -57
  458. package/common/header/mobile-nav.tsx +0 -72
  459. package/common/header/theme-toggle.tsx +0 -26
  460. package/common/icons/github.tsx +0 -14
  461. package/common/icons/index.tsx +0 -34
  462. package/common/icons/lux-logo.tsx +0 -10
  463. package/common/icons/secure-delivery.tsx +0 -13
  464. package/common/icons/social-icon.tsx +0 -35
  465. package/common/icons/youtube-logo.tsx +0 -59
  466. package/common/index.ts +0 -14
  467. package/common/logo.tsx +0 -71
  468. package/common/mini-chart/index.tsx +0 -8
  469. package/common/mini-chart/mini-chart-props.ts +0 -44
  470. package/common/mini-chart/mini-chart.tsx +0 -76
  471. package/common/mini-chart/wrapper.tsx +0 -23
  472. package/context-providers/index.ts +0 -1
  473. package/context-providers/theme-provider.tsx +0 -20
  474. package/next/README.md +0 -11
  475. package/next/analytics/fpixel.ts +0 -16
  476. package/next/analytics/pixel-analytics.tsx +0 -55
  477. package/next/determine-device-middleware.ts +0 -16
  478. package/next/fonts/DrukTextWide-Bold-Trial.otf +0 -0
  479. package/next/fonts/DrukTextWide-Heavy-Trial.otf +0 -0
  480. package/next/fonts/DrukTextWide-Medium-Trial.otf +0 -0
  481. package/next/fonts/DrukWide-Bold-Trial.otf +0 -0
  482. package/next/fonts/DrukWide-Heavy-Trial.otf +0 -0
  483. package/next/fonts/DrukWide-Medium-Trial.otf +0 -0
  484. package/next/get-app-router-font-classes.ts +0 -12
  485. package/next/load-and-return-lux-next-fonts-on-import.ts +0 -94
  486. package/next/next-font-desc.ts +0 -28
  487. package/next/not-found-content.mdx +0 -4
  488. package/next/not-found.tsx +0 -23
  489. package/next/pages-router-font-vars.tsx +0 -18
  490. package/next/root-layout.tsx +0 -60
  491. package/primitives/accordion.tsx +0 -61
  492. package/primitives/action-button.tsx +0 -46
  493. package/primitives/apply-typography.tsx +0 -55
  494. package/primitives/avatar.tsx +0 -49
  495. package/primitives/badge.tsx +0 -36
  496. package/primitives/button.tsx +0 -73
  497. package/primitives/calendar.tsx +0 -72
  498. package/primitives/card.tsx +0 -83
  499. package/primitives/checkbox.tsx +0 -32
  500. package/primitives/command.tsx +0 -155
  501. package/primitives/dialog-video-controller.tsx +0 -38
  502. package/primitives/dialog.tsx +0 -152
  503. package/primitives/form.tsx +0 -179
  504. package/primitives/index.ts +0 -144
  505. package/primitives/inline-icon.tsx +0 -37
  506. package/primitives/input.tsx +0 -30
  507. package/primitives/label.tsx +0 -28
  508. package/primitives/link-element.tsx +0 -104
  509. package/primitives/main.tsx +0 -17
  510. package/primitives/mdx-link.tsx +0 -22
  511. package/primitives/nav-items.tsx +0 -48
  512. package/primitives/popover.tsx +0 -35
  513. package/primitives/progress.tsx +0 -27
  514. package/primitives/scroll-area.tsx +0 -47
  515. package/primitives/select.tsx +0 -169
  516. package/primitives/separator.tsx +0 -29
  517. package/primitives/sheet.tsx +0 -175
  518. package/primitives/skeleton.tsx +0 -15
  519. package/primitives/switch.tsx +0 -33
  520. package/primitives/table.tsx +0 -117
  521. package/primitives/tabs.tsx +0 -60
  522. package/primitives/tailwind-indicator.tsx +0 -19
  523. package/primitives/text-area.tsx +0 -26
  524. package/primitives/toast.tsx +0 -129
  525. package/primitives/toaster.tsx +0 -37
  526. package/primitives/use-toast.ts +0 -192
  527. package/primitives/video-player.tsx +0 -26
  528. package/primitives/youtube-embed.tsx +0 -83
  529. package/siteDef/footer/community.tsx +0 -67
  530. package/siteDef/footer/company.ts +0 -37
  531. package/siteDef/footer/ecosystem.ts +0 -37
  532. package/siteDef/footer/index.tsx +0 -26
  533. package/siteDef/footer/legal.ts +0 -28
  534. package/siteDef/footer/network.ts +0 -33
  535. package/siteDef/footer/svg/warpcast-logo.svg +0 -12
  536. package/siteDef/main-nav.ts +0 -35
  537. package/style/globals.css +0 -13
  538. package/style/hanzo-common.css +0 -32
  539. package/style/hanzo-default-colors.css +0 -79
  540. package/style/social-svg.css +0 -3
  541. package/tailwind/colors.tailwind.js +0 -46
  542. package/tailwind/fonts.tailwind.ts +0 -31
  543. package/tailwind/index.ts +0 -18
  544. package/tailwind/lux-tw-fonts.ts +0 -37
  545. package/tailwind/safelist.tailwind.js +0 -26
  546. package/tailwind/screens.tailwind.js +0 -8
  547. package/tailwind/spacing.tailwind.js +0 -65
  548. package/tailwind/tailwind.config.base.js +0 -906
  549. package/tailwind/tw-font-desc.ts +0 -15
  550. package/tailwind/typo-plugin/get-plugin-styles.js +0 -676
  551. package/tailwind/typo-plugin/index.d.ts +0 -9
  552. package/tailwind/typo-plugin/index.js +0 -141
  553. package/tailwind/typo-plugin/utils.js +0 -60
  554. package/tailwind/typography-test.mdx +0 -36
  555. package/types/breakpoints.ts +0 -11
  556. package/types/bullet-item.ts +0 -10
  557. package/types/button-def.ts +0 -39
  558. package/types/contact-info.ts +0 -11
  559. package/types/dimensions.ts +0 -20
  560. package/types/grid-def.ts +0 -56
  561. package/types/icon.ts +0 -10
  562. package/types/image-def.ts +0 -28
  563. package/types/index.ts +0 -29
  564. package/types/link-def.ts +0 -59
  565. package/types/site-def.ts +0 -34
  566. package/types/t-shirt-size.ts +0 -5
  567. package/util/index.ts +0 -81
  568. package/util/specifier.ts +0 -43
@@ -0,0 +1,113 @@
1
+ <!--
2
+ // Copyright © 2020 Hanzo <dev@hanzo.ai>.
3
+ //
4
+ // Licensed under the Eclipse Public License, Version 2.0 (the "License");
5
+ // you may not use this file except in compliance with the License. You may
6
+ // obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ //
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+ -->
15
+ <script lang="ts">
16
+ import { Icon, TabBase } from '..'
17
+ import Label from './Label.svelte'
18
+
19
+ export let model: TabBase[]
20
+ export let selected = 0
21
+ export let padding: string | undefined = undefined
22
+ export let noMargin: boolean = false
23
+ export let size: 'small' | 'medium' | 'large' = 'medium'
24
+ export let gap: 'small' | 'medium' | 'large' = 'large'
25
+ </script>
26
+
27
+ <div class="flex-stretch tabs-container no-print {size} gap-{gap}" style:padding class:noMargin>
28
+ {#each model as tab, i}
29
+ <!-- svelte-ignore a11y-click-events-have-key-events -->
30
+ <!-- svelte-ignore a11y-no-static-element-interactions -->
31
+ <div
32
+ class="flex-row-center tab"
33
+ class:selected={i === selected}
34
+ on:click={() => {
35
+ selected = i
36
+ }}
37
+ >
38
+ {#if tab.icon !== undefined}
39
+ <div class="mr-2" class:ml-2={tab.label === ''}>
40
+ <Icon icon={tab.icon} size={'small'} />
41
+ </div>
42
+ {/if}
43
+ {#if tab.label !== ''}
44
+ <Label label={tab.label} />
45
+ {/if}
46
+ </div>
47
+ {/each}
48
+ <div class="grow" />
49
+ <slot name="rightButtons" />
50
+ </div>
51
+
52
+ <slot name="content" {selected} />
53
+
54
+ <style lang="scss">
55
+ .tabs-container {
56
+ flex-shrink: 0;
57
+ flex-wrap: nowrap;
58
+ align-items: center;
59
+ width: 100%;
60
+ height: 4.5rem;
61
+ min-width: 0;
62
+ min-height: 0;
63
+ border-bottom: 1px solid var(--theme-divider-color);
64
+
65
+ &.gap-small {
66
+ gap: 0.5rem;
67
+ }
68
+ &.gap-medium {
69
+ gap: 1.5rem;
70
+ }
71
+ &.gap-large {
72
+ gap: 2.5rem;
73
+ }
74
+ &:not(.noMargin) {
75
+ margin-bottom: 0.5rem;
76
+ }
77
+ &.small {
78
+ height: 3.25rem;
79
+
80
+ .tab {
81
+ height: 3.25rem;
82
+ }
83
+ }
84
+ &.large {
85
+ height: 3.5rem;
86
+
87
+ .tab {
88
+ height: 3.5rem;
89
+ }
90
+ }
91
+
92
+ .tab {
93
+ height: 4.5rem;
94
+ color: var(--theme-dark-color);
95
+ cursor: pointer;
96
+ user-select: none;
97
+
98
+ &.selected {
99
+ border-top: 0.125rem solid transparent;
100
+ border-bottom: 0.125rem solid var(--theme-tablist-plain-color);
101
+ color: var(--theme-caption-color);
102
+ cursor: default;
103
+ }
104
+ &:not(.selected):hover {
105
+ color: var(--theme-content-color);
106
+ }
107
+ }
108
+ .grow {
109
+ min-width: 2.5rem;
110
+ flex-grow: 1;
111
+ }
112
+ }
113
+ </style>
@@ -0,0 +1,110 @@
1
+ <!--
2
+ // Copyright © 2020 Hanzo <dev@hanzo.ai>.
3
+ //
4
+ // Licensed under the Eclipse Public License, Version 2.0 (the "License");
5
+ // you may not use this file except in compliance with the License. You may
6
+ // obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ //
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+ -->
15
+ <script lang="ts">
16
+ import type { IntlString } from '@hanzo/platform'
17
+ import { translateCB } from '@hanzo/platform'
18
+ import { themeStore } from '@hcengineering/theme'
19
+ import plugin from '../plugin'
20
+ import Label from './Label.svelte'
21
+
22
+ export let label: IntlString | undefined = undefined
23
+ export let width: string | undefined = undefined
24
+ export let height: string | undefined = undefined
25
+ export let margin: string | undefined = undefined
26
+ export let value: string | undefined = undefined
27
+ export let placeholder: IntlString = plugin.string.EditBoxPlaceholder
28
+ export let placeholderParam: any | undefined = undefined
29
+ export let noFocusBorder: boolean = false
30
+ export let disabled: boolean = false
31
+
32
+ let input: HTMLTextAreaElement
33
+ let phTranslate: string = ''
34
+
35
+ $: translateCB(placeholder, placeholderParam ?? {}, $themeStore.language, (res) => {
36
+ phTranslate = res
37
+ })
38
+
39
+ export function focus () {
40
+ input.focus()
41
+ }
42
+ </script>
43
+
44
+ <div class="textarea" class:no-focus-border={noFocusBorder} style:width style:height style:margin>
45
+ {#if label}<div class="label"><Label {label} /></div>{/if}
46
+ <textarea
47
+ bind:value
48
+ bind:this={input}
49
+ {disabled}
50
+ placeholder={phTranslate}
51
+ on:keydown
52
+ on:change
53
+ on:keydown
54
+ on:keypress
55
+ on:blur
56
+ />
57
+ </div>
58
+
59
+ <style lang="scss">
60
+ .textarea {
61
+ display: flex;
62
+ flex-direction: column;
63
+ min-width: 3.125rem;
64
+ min-height: 2.25rem;
65
+
66
+ .label {
67
+ margin-bottom: 0.25rem;
68
+ font-size: 0.75rem;
69
+ font-weight: 500;
70
+ color: var(--accent-color);
71
+ pointer-events: none;
72
+ user-select: none;
73
+ }
74
+
75
+ textarea {
76
+ width: auto;
77
+ min-height: 4.5rem;
78
+ margin: -4px;
79
+ padding: 2px;
80
+ font-family: inherit;
81
+ font-size: inherit;
82
+ line-height: 150%;
83
+ color: var(--caption-color);
84
+ background-color: transparent;
85
+ border: 2px solid transparent;
86
+ border-radius: 0.125rem;
87
+ outline: none;
88
+ overflow-y: scroll;
89
+ resize: none;
90
+
91
+ &:focus {
92
+ border-color: var(--primary-button-default);
93
+ }
94
+ &::placeholder {
95
+ color: var(--dark-color);
96
+ }
97
+ }
98
+ }
99
+
100
+ .no-focus-border {
101
+ textarea {
102
+ font-weight: 500;
103
+ font-size: 1rem;
104
+
105
+ &:focus {
106
+ border-color: transparent;
107
+ }
108
+ }
109
+ }
110
+ </style>
@@ -0,0 +1,78 @@
1
+ <script lang="ts">
2
+ import type { IntlString } from '@hanzo/platform'
3
+ import { createEventDispatcher } from 'svelte'
4
+ import ui from '../plugin'
5
+ import IconClose from './icons/Close.svelte'
6
+ import ActionIcon from './ActionIcon.svelte'
7
+ import Button from './Button.svelte'
8
+ import TextArea from './TextArea.svelte'
9
+
10
+ export let inputRef: TextArea | undefined = undefined
11
+ export let value: string = ''
12
+ export let width: string | undefined = undefined
13
+ export let height: string | undefined = undefined
14
+ export let submitLabel: IntlString = ui.string.Save
15
+ export let placeholder: IntlString | undefined = undefined
16
+ export let disabled: boolean = false
17
+
18
+ const dispatch = createEventDispatcher()
19
+ let isEditing = false
20
+ let openedContainerRef: HTMLDivElement
21
+
22
+ async function onClickOutside (e: any) {
23
+ if (openedContainerRef && !openedContainerRef.contains(e.target) && !e.defaultPrevented && isEditing) {
24
+ if (value) {
25
+ submit()
26
+ }
27
+ }
28
+ }
29
+
30
+ const submit = () => {
31
+ dispatch('submit', value)
32
+ }
33
+ const cancel = () => {
34
+ dispatch('cancel')
35
+ }
36
+ const onKeydown = (e: any) => {
37
+ if (e.detail.key !== 'Enter') {
38
+ return
39
+ }
40
+
41
+ e.detail.preventDefault()
42
+ submit()
43
+ }
44
+
45
+ $: if (inputRef && !value) {
46
+ isEditing = true
47
+ inputRef.focus()
48
+ }
49
+ </script>
50
+
51
+ <svelte:window on:click={onClickOutside} />
52
+ <div bind:this={openedContainerRef}>
53
+ <div
54
+ class="flex-col background-accent-bg-color border-divider-color border-radius-1 pt-1 pb-1 pr-2 pl-2"
55
+ style:user-select="none"
56
+ >
57
+ <TextArea
58
+ {placeholder}
59
+ {height}
60
+ {width}
61
+ {disabled}
62
+ bind:this={inputRef}
63
+ bind:value
64
+ on:keydown={onKeydown}
65
+ noFocusBorder={true}
66
+ />
67
+ </div>
68
+ {#if !disabled}
69
+ <div class="flex-row-center mt-3">
70
+ <Button label={submitLabel} kind="no-border" size="medium" on:click={submit} />
71
+ <!-- svelte-ignore a11y-click-events-have-key-events -->
72
+ <!-- svelte-ignore a11y-no-static-element-interactions -->
73
+ <div class="ml-2" on:click={cancel}>
74
+ <ActionIcon icon={IconClose} size="medium" action={cancel} />
75
+ </div>
76
+ </div>
77
+ {/if}
78
+ </div>
@@ -0,0 +1,66 @@
1
+ <!--
2
+ // Copyright © 2024 Hardcore Engineering Inc.
3
+ //
4
+ // Licensed under the Eclipse Public License, Version 2.0 (the "License");
5
+ // you may not use this file except in compliance with the License. You may
6
+ // obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ //
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+ -->
15
+
16
+ <script lang="ts">
17
+ import { createEventDispatcher, onDestroy } from 'svelte'
18
+ import { Timestamp } from '@hanzo/core'
19
+
20
+ export let time: Timestamp
21
+
22
+ const dispatch = createEventDispatcher()
23
+
24
+ let displayTime = time
25
+ let notified = false
26
+ let intervalId: any | undefined = undefined
27
+
28
+ function applyTimer (time: number): void {
29
+ if (intervalId !== undefined) {
30
+ clearInterval(intervalId)
31
+ }
32
+
33
+ displayTime = Math.max(0, time - Date.now())
34
+ notified = false
35
+ intervalId = setInterval(() => {
36
+ displayTime = Math.max(0, time - Date.now())
37
+
38
+ if (displayTime === 0 && !notified) {
39
+ notified = true
40
+ dispatch('timeout')
41
+ }
42
+ }, 1000)
43
+ }
44
+
45
+ export function restart (time: number): void {
46
+ applyTimer(time)
47
+ }
48
+
49
+ $: applyTimer(time)
50
+
51
+ onDestroy(() => {
52
+ if (intervalId !== undefined) {
53
+ clearInterval(intervalId)
54
+ }
55
+ })
56
+
57
+ function getDisplayTime (time: number): string {
58
+ const options: Intl.DateTimeFormatOptions = { minute: 'numeric', second: 'numeric' }
59
+
60
+ return new Date(time).toLocaleString('default', options)
61
+ }
62
+ </script>
63
+
64
+ {#if displayTime > 0}
65
+ {getDisplayTime(displayTime)}
66
+ {/if}
@@ -0,0 +1,84 @@
1
+ <!--
2
+ // Copyright © 2022 Hardcore Engineering Inc.
3
+ //
4
+ // Licensed under the Eclipse Public License, Version 2.0 (the "License");
5
+ // you may not use this file except in compliance with the License. You may
6
+ // obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ //
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+ -->
15
+ <script lang="ts">
16
+ import { DateRangeMode } from '@hanzo/core'
17
+ import type { IntlString } from '@hanzo/platform'
18
+ import { createEventDispatcher, onMount } from 'svelte'
19
+ import { showPopup } from '../popups'
20
+ import { DateOrShift } from '../types'
21
+ import DateRangePresenter from './calendar/DateRangePresenter.svelte'
22
+ import Calendar from './icons/Calendar.svelte'
23
+ import Close from './icons/Close.svelte'
24
+ import Label from './Label.svelte'
25
+ import TimeShiftPopup from './TimeShiftPopup.svelte'
26
+ import TimeShiftPresenter from './TimeShiftPresenter.svelte'
27
+
28
+ export let title: IntlString
29
+ export let value: DateOrShift | undefined
30
+ export let show: boolean = false
31
+ export let direction: 'before' | 'after' = 'before'
32
+
33
+ const dispatch = createEventDispatcher()
34
+
35
+ let opened: boolean = false
36
+ let container: HTMLElement
37
+ let btn: HTMLElement
38
+
39
+ const changeValue = (result: DateOrShift): void => {
40
+ if (result !== undefined) {
41
+ value = result
42
+ dispatch('change', result)
43
+ }
44
+ }
45
+
46
+ onMount(() => {
47
+ if (btn && show) {
48
+ btn.click()
49
+ show = false
50
+ }
51
+ })
52
+ </script>
53
+
54
+ <!-- svelte-ignore a11y-click-events-have-key-events -->
55
+ <!-- svelte-ignore a11y-no-static-element-interactions -->
56
+ <div
57
+ class="antiSelect"
58
+ bind:this={container}
59
+ on:click|preventDefault={() => {
60
+ btn.focus()
61
+ if (!opened) {
62
+ opened = true
63
+ showPopup(TimeShiftPopup, { title, value, direction }, container, (ev) => {
64
+ changeValue(ev)
65
+ opened = false
66
+ })
67
+ }
68
+ }}
69
+ >
70
+ <button bind:this={btn} class="button round-2" class:selected={value?.shift}>
71
+ <div class="icon">
72
+ {#if show}<Close size={'small'} />{:else}<Calendar size={'medium'} />{/if}
73
+ </div>
74
+ </button>
75
+
76
+ <div class="group">
77
+ <span class="label"><Label label={title} /></span>
78
+ {#if value?.shift !== undefined}
79
+ <TimeShiftPresenter value={value.shift} />
80
+ {:else}
81
+ <DateRangePresenter value={value?.date} mode={DateRangeMode.DATETIME} editable={false} />
82
+ {/if}
83
+ </div>
84
+ </div>
@@ -0,0 +1,64 @@
1
+ <!--
2
+ // Copyright © 2022 Hardcore Engineering Inc.
3
+ //
4
+ // Licensed under the Eclipse Public License, Version 2.0 (the "License");
5
+ // you may not use this file except in compliance with the License. You may
6
+ // obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ //
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+ -->
15
+ <script lang="ts">
16
+ import { DateRangeMode } from '@hanzo/core'
17
+ import { createEventDispatcher } from 'svelte'
18
+ import ui from '../plugin'
19
+ import { DAY, DateOrShift, HOUR, MINUTE } from '../types'
20
+ import DateRangePresenter from './calendar/DateRangePresenter.svelte'
21
+ import TimeShiftPresenter from './TimeShiftPresenter.svelte'
22
+
23
+ export let direction: 'before' | 'after'
24
+ export let value: DateOrShift | undefined = undefined
25
+ export let minutes: number[] = [5, 15, 30]
26
+ export let hours: number[] = [1, 2, 4]
27
+ export let days: number[] = [1, 3, 7, 30]
28
+
29
+ let date = value?.date
30
+ const dispatch = createEventDispatcher()
31
+
32
+ $: base = direction === 'before' ? -1 : 1
33
+
34
+ $: values = [...minutes.map((m) => m * MINUTE), ...hours.map((m) => m * HOUR), ...days.map((m) => m * DAY)]
35
+ </script>
36
+
37
+ <div class="antiPopup">
38
+ <div class="flex-center mt-1 mb-1">
39
+ <DateRangePresenter
40
+ bind:value={date}
41
+ mode={DateRangeMode.DATETIME}
42
+ editable={true}
43
+ labelNull={ui.string.SelectDate}
44
+ on:change={() => {
45
+ if (date) {
46
+ dispatch('close', { date })
47
+ }
48
+ }}
49
+ />
50
+ </div>
51
+ <div class="bottom-divider mb-2" />
52
+ <!-- svelte-ignore a11y-no-static-element-interactions -->
53
+ <!-- svelte-ignore a11y-click-events-have-key-events -->
54
+ {#each values as value}
55
+ <div
56
+ class="ap-menuItem"
57
+ on:click={() => {
58
+ dispatch('close', { shift: value })
59
+ }}
60
+ >
61
+ <TimeShiftPresenter value={value * base} />
62
+ </div>
63
+ {/each}
64
+ </div>
@@ -0,0 +1,59 @@
1
+ <!--
2
+ // Copyright © 2022 Hardcore Engineering Inc.
3
+ //
4
+ // Licensed under the Eclipse Public License, Version 2.0 (the "License");
5
+ // you may not use this file except in compliance with the License. You may
6
+ // obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ //
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+ -->
15
+ <script lang="ts">
16
+ import { translate } from '@hanzo/platform'
17
+ import ui from '../plugin'
18
+ import { themeStore } from '@hcengineering/theme'
19
+ import { DAY, HOUR, MINUTE } from '../types'
20
+
21
+ export let value: number
22
+ export let exact: boolean = false
23
+
24
+ let time: string = ''
25
+
26
+ async function formatTime (value: number) {
27
+ if (value > 0) {
28
+ if (exact) {
29
+ const d = Math.floor(value / DAY)
30
+ time = d ? await translate(ui.string.DaysShort, { value: d }, $themeStore.language) : ''
31
+ const h = Math.floor((value - d * DAY) / HOUR)
32
+ time += h ? ` ${await translate(ui.string.HoursShort, { value: h }, $themeStore.language)}` : ''
33
+ const m = Math.floor((value - d * DAY - h * HOUR) / MINUTE)
34
+ time += m ? ` ${await translate(ui.string.MinutesShort, { value: m }, $themeStore.language)}` : ''
35
+ } else {
36
+ if (value < HOUR) {
37
+ time = await translate(ui.string.MinutesAfter, { minutes: Math.floor(value / MINUTE) }, $themeStore.language)
38
+ } else if (value < DAY) {
39
+ time = await translate(ui.string.HoursAfter, { hours: Math.floor(value / HOUR) }, $themeStore.language)
40
+ } else {
41
+ time = await translate(ui.string.DaysAfter, { days: Math.floor(value / DAY) }, $themeStore.language)
42
+ }
43
+ }
44
+ } else {
45
+ const abs = Math.abs(value)
46
+ if (abs < HOUR) {
47
+ time = await translate(ui.string.MinutesBefore, { minutes: Math.floor(abs / MINUTE) }, $themeStore.language)
48
+ } else if (abs < DAY) {
49
+ time = await translate(ui.string.HoursBefore, { hours: Math.floor(abs / HOUR) }, $themeStore.language)
50
+ } else {
51
+ time = await translate(ui.string.DaysBefore, { days: Math.floor(abs / DAY) }, $themeStore.language)
52
+ }
53
+ }
54
+ }
55
+
56
+ $: formatTime(value)
57
+ </script>
58
+
59
+ <span style="white-space: nowrap;">{time}</span>
@@ -0,0 +1,86 @@
1
+ <!--
2
+ // Copyright © 2020, 2021 Hanzo <dev@hanzo.ai>.
3
+ // Copyright © 2021 Hardcore Engineering Inc.
4
+ //
5
+ // Licensed under the Eclipse Public License, Version 2.0 (the "License");
6
+ // you may not use this file except in compliance with the License. You may
7
+ // obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ //
13
+ // See the License for the specific language governing permissions and
14
+ // limitations under the License.
15
+ -->
16
+ <script lang="ts">
17
+ import { translateCB } from '@hanzo/platform'
18
+ import { themeStore } from '@hcengineering/theme'
19
+ import { ticker } from '..'
20
+ import ui from '../plugin'
21
+ import { tooltip } from '../tooltips'
22
+ import { DAY, HOUR, MINUTE, MONTH, YEAR } from '../types'
23
+
24
+ export let value: number | undefined
25
+ export let kind: 'no-border' | 'list' = 'no-border'
26
+
27
+ let time: string = ''
28
+
29
+ function calculateMonthsPassed (now: number, value: number): number {
30
+ const startDate: Date = new Date(value)
31
+ const endDate: Date = new Date(now)
32
+ const startYear = startDate.getFullYear()
33
+ const startMonth = startDate.getMonth()
34
+ const endYear = endDate.getFullYear()
35
+ const endMonth = endDate.getMonth()
36
+
37
+ return (endYear - startYear) * 12 + (endMonth - startMonth)
38
+ }
39
+
40
+ function formatTime (now: number, value: number): void {
41
+ let passed = now - value
42
+ if (passed < 0) passed = 0
43
+ if (passed < HOUR) {
44
+ translateCB(ui.string.MinutesAgo, { minutes: Math.floor(passed / MINUTE) }, $themeStore.language, (res) => {
45
+ time = res
46
+ })
47
+ } else if (passed < DAY) {
48
+ translateCB(ui.string.HoursAgo, { hours: Math.floor(passed / HOUR) }, $themeStore.language, (res) => {
49
+ time = res
50
+ })
51
+ } else if (passed < MONTH) {
52
+ translateCB(ui.string.DaysAgo, { days: Math.floor(passed / DAY) }, $themeStore.language, (res) => {
53
+ time = res
54
+ })
55
+ } else if (passed < YEAR) {
56
+ translateCB(ui.string.MonthsAgo, { months: calculateMonthsPassed(now, value) }, $themeStore.language, (res) => {
57
+ time = res
58
+ })
59
+ } else {
60
+ translateCB(ui.string.YearsAgo, { years: Math.floor(passed / YEAR) }, $themeStore.language, (res) => {
61
+ time = res
62
+ })
63
+ }
64
+ }
65
+
66
+ $: value && formatTime($ticker, value)
67
+
68
+ $: tooltipValue = value
69
+ ? new Date(value).toLocaleString('default', {
70
+ minute: '2-digit',
71
+ hour: 'numeric',
72
+ day: '2-digit',
73
+ month: 'short',
74
+ year: 'numeric'
75
+ })
76
+ : undefined
77
+ </script>
78
+
79
+ <span
80
+ use:tooltip={{ label: ui.string.TimeTooltip, props: { value: tooltipValue } }}
81
+ class="overflow-label"
82
+ class:text-sm={kind === 'list'}
83
+ class:content-dark-color={kind === 'list'}
84
+ >
85
+ {time}
86
+ </span>