@hanzo/ui 0.5.23 → 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,754 @@
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 { fly } from 'svelte/transition'
17
+ import { Timestamp } from '@hanzo/core'
18
+ import { TimelinePoint, TimelineRow, TimelineState } from '../types'
19
+ import ui, {
20
+ CheckBox,
21
+ Icon,
22
+ Scroller,
23
+ Button,
24
+ resizeObserver,
25
+ MILLISECONDS_IN_DAY,
26
+ MILLISECONDS_IN_WEEK,
27
+ IconArrowLeft,
28
+ IconArrowRight,
29
+ IconAdd
30
+ } from '..'
31
+ import { createEventDispatcher, onMount } from 'svelte'
32
+
33
+ export let selectedRows: number[] = []
34
+ export let selectedRow: number | undefined = undefined
35
+ export let lines: TimelineRow[] | undefined = undefined
36
+ export let currentTime: Timestamp = new Date().setHours(0, 0, 0, 0)
37
+
38
+ const dispatch = createEventDispatcher()
39
+ const NOT_ENDED = MILLISECONDS_IN_WEEK * 4
40
+ let currentDate: Date = new Date(currentTime)
41
+ $: currentDate = new Date(currentTime)
42
+
43
+ export const onObjectChecked = (row: number, value: boolean) => {
44
+ dispatch('check', { row, value })
45
+ }
46
+ export const selectRow = (row: number) => {
47
+ selectedRow = row
48
+ }
49
+ const handleRowFocused = (row: number) => {
50
+ dispatch('row-focus', row)
51
+ }
52
+
53
+ let panelWidth: number = 320
54
+ const dayWidth: number = 5
55
+ let container: HTMLElement
56
+ let viewbox: HTMLElement
57
+ let scroller: Scroller
58
+ let scrollDir: 'horizontal' | 'vertical' | 'none' = 'none'
59
+
60
+ const locale = new Intl.NumberFormat().resolvedOptions().locale
61
+ const nillPoint: TimelinePoint = { label: '', date: currentDate, x: 0 }
62
+ const nillRect: DOMRect = { x: 0, y: 0, width: 0, height: 0, left: 0, right: 0, top: 0, bottom: 0, toJSON: () => {} }
63
+ const time: TimelineState = {
64
+ todayMarker: nillPoint,
65
+ offsetView: 0,
66
+ renderedRange: { left: nillPoint, right: nillPoint, firstDays: [] },
67
+ rows: undefined,
68
+ months: [],
69
+ days: [],
70
+ timelineBox: nillRect,
71
+ viewBox: nillRect
72
+ }
73
+
74
+ const checkRange = (reverse: boolean) => {
75
+ if (reverse) {
76
+ if (time.offsetView * -1 - time.viewBox.width <= time.renderedRange.left.x) renderPrevMonth()
77
+ } else {
78
+ if (time.offsetView * -1 + time.viewBox.width * 2 >= time.renderedRange.right.x) renderNextMonth()
79
+ }
80
+ }
81
+
82
+ const getDateByOffset = (x: number): { date: Date, delta: number } => {
83
+ const deltaDays = Math.floor(x / dayWidth)
84
+ const calcDay = new Date(currentTime + deltaDays * MILLISECONDS_IN_DAY)
85
+ return { date: calcDay, delta: deltaDays }
86
+ }
87
+ const getOffsetByDate = (date: Timestamp | Date): number => {
88
+ const tempDay = new Date(date).setHours(0, 0, 0, 0)
89
+ const deltaDays = Math.floor((tempDay - currentTime) / MILLISECONDS_IN_DAY)
90
+ return deltaDays * dayWidth
91
+ }
92
+ const getNextMonth = (date: Date): TimelinePoint => {
93
+ const fDate = new Date(date.getFullYear(), date.getMonth() + 1, 1, 0, 0)
94
+ const offDate = getOffsetByDate(fDate)
95
+ const lDate = Intl.DateTimeFormat(locale, { month: 'long' }).format(fDate)
96
+ return { date: fDate, x: offDate, label: lDate }
97
+ }
98
+ const getNextWeek = (date: Date, reverse?: boolean): TimelinePoint => {
99
+ const fDate = new Date(date.getTime() + MILLISECONDS_IN_WEEK * (reverse ? -1 : 1))
100
+ const offDate = getOffsetByDate(fDate)
101
+ const lDate = fDate.getDate().toString()
102
+ return { date: fDate, x: offDate, label: lDate }
103
+ }
104
+
105
+ const renderPrevMonth = () => {
106
+ const oldRange: TimelinePoint = time.renderedRange.left
107
+ const newDate: Date = new Date(oldRange.date.getFullYear(), oldRange.date.getMonth() - 1, 1, 0, 0)
108
+ const newRange: number = getOffsetByDate(newDate)
109
+ const newLabel: string = Intl.DateTimeFormat(locale, { month: 'long' }).format(newDate)
110
+ const newPoint: TimelinePoint = {
111
+ x: newRange,
112
+ date: newDate,
113
+ label: newLabel
114
+ }
115
+ time.renderedRange.left = newPoint
116
+ time.months = [newPoint, ...time.months]
117
+ while (getNextWeek(time.days[0].date, true).x > newPoint.x) {
118
+ const prevDay: TimelinePoint = getNextWeek(time.days[0].date, true)
119
+ time.days = [prevDay, ...time.days]
120
+ }
121
+ }
122
+ const renderNextMonth = () => {
123
+ const oldRange: TimelinePoint = time.renderedRange.right
124
+ const newDate: Date = new Date(oldRange.date.getFullYear(), oldRange.date.getMonth() + 1, 1, 0, 0)
125
+ const newRange: number = getOffsetByDate(newDate)
126
+ const newLabel: string = Intl.DateTimeFormat(locale, { month: 'long' }).format(newDate)
127
+ const newPoint: TimelinePoint = {
128
+ x: newRange,
129
+ date: newDate,
130
+ label: newLabel
131
+ }
132
+ time.renderedRange.right = newPoint
133
+ time.months = [...time.months, newPoint]
134
+ while (getNextWeek(time.days[time.days.length - 1].date).x < newPoint.x) {
135
+ const nextDay: TimelinePoint = getNextWeek(time.days[time.days.length - 1].date)
136
+ time.days = [...time.days, nextDay]
137
+ }
138
+ }
139
+
140
+ const wheelEvent = (e: WheelEvent) => {
141
+ e = e || window.event
142
+ const deltaX = -e.deltaX
143
+ const deltaY = e.deltaY
144
+ if (scrollDir === 'none' && (Math.abs(deltaX) > 2 || Math.abs(deltaY) > 2)) {
145
+ if (Math.abs(deltaX) > Math.abs(deltaY)) scrollDir = 'horizontal'
146
+ else scrollDir = 'vertical'
147
+ } else if (Math.abs(deltaX) <= 4 && Math.abs(deltaY) <= 4) scrollDir = 'none'
148
+ time.offsetView += deltaX
149
+ if (scrollDir === 'horizontal') {
150
+ mouseMoveEvent(e)
151
+ checkRange(deltaX > 0)
152
+ }
153
+ if (scrollDir === 'vertical') scroller.scrollBy(deltaY)
154
+ e.preventDefault ? e.preventDefault() : (e.returnValue = false)
155
+ }
156
+ const mouseMoveEvent = (e: MouseEvent) => {
157
+ const cur = e.x - time.viewBox.left
158
+ if (cur >= 0 && cur <= time.viewBox.width) {
159
+ const offset = cur - time.offsetView
160
+ const t = getDateByOffset(offset)
161
+ time.cursorMarker = {
162
+ label: t.date.getDate().toString(),
163
+ x: offset,
164
+ date: t.date
165
+ }
166
+ }
167
+ }
168
+ const mouseOutEvent = (e: MouseEvent) => {
169
+ time.cursorMarker = undefined
170
+ }
171
+ const clickEvent = (e: MouseEvent) => {}
172
+
173
+ onMount(() => {
174
+ container.addEventListener('wheel', wheelEvent)
175
+ container.addEventListener('mousemove', mouseMoveEvent)
176
+ container.addEventListener('mouseout', mouseOutEvent)
177
+ container.addEventListener('click', clickEvent)
178
+
179
+ time.timelineBox = container.getBoundingClientRect()
180
+ time.viewBox = viewbox.getBoundingClientRect()
181
+ time.offsetView = Math.floor(time.viewBox.width / 2)
182
+ time.todayMarker.x = 0
183
+ time.todayMarker.date = currentDate
184
+ time.todayMarker.label = Intl.DateTimeFormat(locale, { day: 'numeric', month: 'short' }).format(currentDate)
185
+
186
+ let mass: number[] = [currentTime]
187
+ lines?.forEach((line) => {
188
+ if (line.items !== undefined) {
189
+ let tr: number[] = []
190
+ line.items.forEach((it) => {
191
+ if (it.startDate) tr = [...tr, it.startDate]
192
+ if (it.targetDate) tr = [...tr, it.targetDate]
193
+ else if (it.startDate) tr = [...tr, it.startDate + NOT_ENDED]
194
+ })
195
+ if (tr.length > 0) {
196
+ mass = [...mass, ...tr]
197
+ tr.sort((a, b) => a - b)
198
+ const minD: Date = new Date(tr[0])
199
+ const maxD: Date = new Date(tr[tr.length - 1])
200
+ const r = {
201
+ min: {
202
+ date: minD,
203
+ x: getOffsetByDate(minD)
204
+ },
205
+ max: {
206
+ date: maxD,
207
+ x: getOffsetByDate(maxD)
208
+ }
209
+ }
210
+ time.rows ? time.rows.push(r) : (time.rows = [r])
211
+ } else time.rows ? time.rows.push(null) : (time.rows = [null])
212
+ } else time.rows ? time.rows.push(null) : (time.rows = [null])
213
+ })
214
+ mass.sort((a, b) => a - b)
215
+
216
+ let leftRange: number = getOffsetByDate(mass[0]) - time.viewBox.width * 1.5
217
+ const leftDate: Date = new Date(getDateByOffset(leftRange).date.setDate(1))
218
+ leftRange = getOffsetByDate(leftDate)
219
+ time.renderedRange.left = {
220
+ x: leftRange,
221
+ date: leftDate,
222
+ label: Intl.DateTimeFormat(locale, { month: 'long' }).format(leftDate)
223
+ }
224
+ let rightRange: number = getOffsetByDate(mass[mass.length - 1]) + time.viewBox.width * 1.5
225
+ const tr: Date = new Date(getDateByOffset(rightRange).date)
226
+ const rightDate: Date = new Date(new Date(tr.getFullYear(), tr.getMonth() + 1, 1, 0, 0).getTime() - 1)
227
+ rightRange = getOffsetByDate(rightDate)
228
+ time.renderedRange.right = {
229
+ x: rightRange,
230
+ date: rightDate,
231
+ label: Intl.DateTimeFormat(locale, { month: 'long' }).format(rightDate)
232
+ }
233
+
234
+ time.months = [time.renderedRange.left]
235
+ let i = 0
236
+ do {
237
+ const nextMonth: TimelinePoint = getNextMonth(time.months[i].date)
238
+ time.months = [...time.months, nextMonth]
239
+ i++
240
+ } while (getNextMonth(time.months[i].date).x <= time.renderedRange.right.x)
241
+ time.days = [
242
+ {
243
+ x: time.renderedRange.left.x,
244
+ date: time.renderedRange.left.date,
245
+ label: '1'
246
+ }
247
+ ]
248
+ i = 0
249
+ do {
250
+ const nextWeek: TimelinePoint = getNextWeek(time.days[i].date)
251
+ time.days = [...time.days, nextWeek]
252
+ i++
253
+ } while (getNextWeek(time.days[i].date).x <= time.renderedRange.right.x)
254
+ })
255
+
256
+ let moving: boolean = false
257
+ let sX: number
258
+ const splitterStart = (e: MouseEvent) => {
259
+ if (time.timelineBox.width <= 450) return
260
+ sX = (e.x - time.viewBox.left) * -1
261
+ document.addEventListener('mouseup', splitterEnd)
262
+ document.addEventListener('mousemove', splitterMove)
263
+ moving = true
264
+ }
265
+ const splitterMove = (e: MouseEvent) => {
266
+ if (e.x - time.timelineBox.left + sX < 300) panelWidth = 300
267
+ else if (time.timelineBox.right - e.x + sX < 150) panelWidth = time.timelineBox.width - 150
268
+ else panelWidth = e.x - time.timelineBox.left + sX
269
+ }
270
+ const splitterEnd = (e: MouseEvent) => {
271
+ document.removeEventListener('mousemove', splitterMove)
272
+ document.removeEventListener('mouseup', splitterEnd)
273
+ time.viewBox = viewbox.getBoundingClientRect()
274
+ moving = false
275
+ }
276
+ </script>
277
+
278
+ <div
279
+ class="timeline-container"
280
+ bind:this={container}
281
+ use:resizeObserver={() => {
282
+ time.timelineBox = container.getBoundingClientRect()
283
+ time.viewBox = viewbox.getBoundingClientRect()
284
+ }}
285
+ >
286
+ <div class="timeline-header">
287
+ <div class="timeline-header__title" style:width={`${panelWidth}px`}>
288
+ <Button
289
+ label={ui.string.Today}
290
+ on:click={() => {
291
+ time.offsetView = Math.floor(time.viewBox.width / 2)
292
+ }}
293
+ />
294
+ </div>
295
+ <div class="timeline-header__time" bind:this={viewbox}>
296
+ <div class="timeline-header__time-content" style:transform={`translateX(${time.offsetView}px)`}>
297
+ {#if time.months}
298
+ {#each time.months as month}
299
+ <div class="month firstLetter" style:left={`${month.x}px`}>
300
+ {#if month.date.getMonth() === 0}
301
+ <b class="caption-color">{month.date.getFullYear()}</b>
302
+ {/if}
303
+ <span style="firstLetter">{month.label}</span>
304
+ </div>
305
+ {/each}
306
+ {/if}
307
+ {#if time.days}
308
+ {#each time.days as day}
309
+ <div class="day" style:left={`${day.x}px`}>{day.label}</div>
310
+ {/each}
311
+ {/if}
312
+ <div class="cursor" style:left={`${time.todayMarker.x}px`}>{time.todayMarker.date.getDate()}</div>
313
+ <!-- {#if time.cursorMarker}
314
+ <div class="cursor" style:left={`${time.cursorMarker.x}px`}>{time.cursorMarker.label}</div>
315
+ {/if} -->
316
+ </div>
317
+ </div>
318
+ </div>
319
+ <div class="timeline-background__headers" style:width={`${panelWidth}px`} />
320
+ <div class="timeline-background__viewbox" style:left={`${panelWidth}px`}>
321
+ <div class="timeline-wrapped_content" style:transform={`translateX(${time.offsetView}px)`}>
322
+ {#if time.months}
323
+ {#each time.months as month}
324
+ <div class="monthMarker" style:left={`${month.x}px`} />
325
+ {/each}
326
+ {/if}
327
+ </div>
328
+ </div>
329
+ {#if lines}
330
+ <Scroller bind:this={scroller}>
331
+ {#each lines as line, row}
332
+ {@const rangeRow = time.rows ? time.rows[row] : null}
333
+ <!-- svelte-ignore a11y-no-static-element-interactions -->
334
+ <div
335
+ class="listGrid"
336
+ class:mListGridChecked={selectedRows.find((x) => x === row) !== undefined}
337
+ class:mListGridSelected={selectedRow === row}
338
+ on:focus={() => {}}
339
+ on:mousemove={(ev) => {
340
+ if (row !== selectedRow) {
341
+ handleRowFocused(row)
342
+ }
343
+ ev.preventDefault()
344
+ }}
345
+ >
346
+ <div class="headerWrapper" style:width={`${panelWidth}px`}>
347
+ <div class="gridElement">
348
+ <div class="eListGridCheckBox">
349
+ <CheckBox
350
+ checked={selectedRows.filter((i) => i === row).length > 0}
351
+ on:value={(event) => {
352
+ onObjectChecked(row, event.detail)
353
+ }}
354
+ />
355
+ </div>
356
+ </div>
357
+ <slot {row} />
358
+ </div>
359
+ <div class="contentWrapper" class:nullRow={rangeRow === null && !moving}>
360
+ <div class="timeline-wrapped_content" style:transform={`translateX(${time.offsetView}px)`}>
361
+ {#if line.items}
362
+ {#each line.items as item}
363
+ {#if item.startDate}
364
+ {@const target = item.targetDate ?? item.startDate + NOT_ENDED}
365
+ <div
366
+ class="component-item"
367
+ class:noTarget={item.targetDate === null}
368
+ style:left={`${getOffsetByDate(item.startDate)}px`}
369
+ style:right={`${getOffsetByDate(target) + dayWidth - 1}px`}
370
+ style:width={`${getOffsetByDate(target) - getOffsetByDate(item.startDate) + dayWidth - 1}px`}
371
+ >
372
+ <div class="component-presenter gap-2">
373
+ {#if item.icon}<Icon
374
+ icon={item.icon}
375
+ size={item.iconSize ?? 'small'}
376
+ iconProps={item.iconProps}
377
+ />{/if}
378
+ {#if item.presenter}<svelte:component this={item.presenter} {...item.props} />{/if}
379
+ {#if item.label}<span>{item.label}</span>{/if}
380
+ </div>
381
+ </div>
382
+ {/if}
383
+ {/each}
384
+ {/if}
385
+ </div>
386
+ {#if line.items}
387
+ {#if rangeRow !== null && -time.offsetView + time.viewBox.width < rangeRow.min.x}
388
+ <button
389
+ transition:fly={{ duration: 150, x: 50, opacity: 0 }}
390
+ class="timeline-action__button right"
391
+ on:click={() => {
392
+ if (rangeRow !== null) time.offsetView = -getOffsetByDate(rangeRow.min.date) + dayWidth * 5
393
+ }}
394
+ >
395
+ <IconArrowRight size={'small'} />
396
+ </button>
397
+ {/if}
398
+ {#if rangeRow !== null && -time.offsetView > rangeRow.max.x}
399
+ <button
400
+ transition:fly={{ duration: 150, x: -50, opacity: 0 }}
401
+ class="timeline-action__button left"
402
+ on:click={() => {
403
+ if (rangeRow !== null) time.offsetView = -getOffsetByDate(rangeRow.min.date) + dayWidth * 5
404
+ }}
405
+ >
406
+ <IconArrowLeft size={'small'} />
407
+ </button>
408
+ {/if}
409
+ {/if}
410
+ {#if rangeRow === null && selectedRow === row && time.cursorMarker && !moving}
411
+ <button class="timeline-action__button add" style:left={`${time.offsetView + time.cursorMarker.x}px`}>
412
+ <IconAdd size={'small'} />
413
+ </button>
414
+ {/if}
415
+ </div>
416
+ </div>
417
+ {/each}
418
+ </Scroller>
419
+ <div class="timeline-foreground__viewbox" style:left={`${panelWidth}px`}>
420
+ <div class="timeline-wrapped_content" style:transform={`translateX(${time.offsetView}px)`}>
421
+ <div class="todayMarker" style:left={`${time.todayMarker.x}px`} />
422
+ </div>
423
+ </div>
424
+ {/if}
425
+ <!-- svelte-ignore a11y-no-static-element-interactions -->
426
+ <div class="timeline-splitter" class:moving style:left={`${panelWidth}px`} on:mousedown={splitterStart} />
427
+ </div>
428
+
429
+ <style lang="scss">
430
+ .timeline-container {
431
+ overflow: hidden;
432
+ position: relative;
433
+ display: flex;
434
+ flex-direction: column;
435
+ width: 100%;
436
+ height: 100%;
437
+ min-width: 0;
438
+ min-height: 0;
439
+
440
+ & > * {
441
+ overscroll-behavior-x: contain;
442
+ }
443
+ }
444
+ .timeline-header {
445
+ display: flex;
446
+ align-items: center;
447
+ min-height: 4rem;
448
+ border-bottom: 1px solid var(--divider-color);
449
+ }
450
+ .timeline-header__title {
451
+ display: flex;
452
+ align-items: center;
453
+ flex-shrink: 0;
454
+ padding: 0 2.25rem;
455
+ height: 100%;
456
+ background-color: var(--theme-comp-header-color);
457
+ box-shadow: var(--accent-shadow);
458
+ // z-index: 2;
459
+ }
460
+ .timeline-header__time {
461
+ // overflow: hidden;
462
+ position: relative;
463
+ flex-grow: 1;
464
+ height: 100%;
465
+ background-color: var(--theme-bg-color);
466
+ mask-image: linear-gradient(
467
+ 90deg,
468
+ rgba(0, 0, 0, 0) 0,
469
+ rgba(0, 0, 0, 1) 2rem,
470
+ rgba(0, 0, 0, 1) calc(100% - 2rem),
471
+ rgba(0, 0, 0, 0) 100%
472
+ );
473
+
474
+ &-content {
475
+ width: 100%;
476
+ height: 100%;
477
+ will-change: transform;
478
+
479
+ .day,
480
+ .month {
481
+ position: absolute;
482
+ pointer-events: none;
483
+ }
484
+ .month {
485
+ width: max-content;
486
+ top: 0.25rem;
487
+ font-size: 1rem;
488
+ color: var(--accent-color);
489
+
490
+ &:first-letter {
491
+ text-transform: uppercase;
492
+ }
493
+ }
494
+ .day {
495
+ bottom: 0.5rem;
496
+ font-size: 1rem;
497
+ color: var(--content-color);
498
+ transform: translateX(-50%);
499
+ }
500
+ .cursor {
501
+ position: absolute;
502
+ display: flex;
503
+ justify-content: center;
504
+ align-items: center;
505
+ padding-bottom: 1px;
506
+ width: 1.75rem;
507
+ height: 1.75rem;
508
+ bottom: 0.375rem;
509
+ font-size: 1rem;
510
+ font-weight: 600;
511
+ color: #fff;
512
+ background-color: var(--primary-bg-color);
513
+ border-radius: 50%;
514
+ transform: translateX(-50%);
515
+ pointer-events: none;
516
+ }
517
+ }
518
+ }
519
+ .todayMarker,
520
+ .monthMarker {
521
+ position: absolute;
522
+ top: 0;
523
+ bottom: 0;
524
+ width: 0;
525
+ height: 100%;
526
+ pointer-events: none;
527
+ }
528
+ .monthMarker {
529
+ border-left: 1px dashed var(--highlight-select);
530
+ }
531
+ .todayMarker {
532
+ border-left: 1px solid var(--primary-bg-color);
533
+ }
534
+
535
+ .timeline-background__headers,
536
+ .timeline-background__viewbox,
537
+ .timeline-foreground__viewbox {
538
+ overflow: hidden;
539
+ position: absolute;
540
+ top: 4rem;
541
+ bottom: 0;
542
+ height: 100%;
543
+ z-index: -1;
544
+ }
545
+ .timeline-background__headers {
546
+ left: 0;
547
+ background-color: var(--theme-comp-header-color);
548
+ }
549
+ .timeline-background__viewbox,
550
+ .timeline-foreground__viewbox {
551
+ right: 0;
552
+ mask-image: linear-gradient(
553
+ 90deg,
554
+ rgba(0, 0, 0, 0) 0,
555
+ rgba(0, 0, 0, 1) 2rem,
556
+ rgba(0, 0, 0, 1) calc(100% - 2rem),
557
+ rgba(0, 0, 0, 0) 100%
558
+ );
559
+ }
560
+ .timeline-foreground__viewbox {
561
+ z-index: 1;
562
+ pointer-events: none;
563
+ }
564
+
565
+ .timeline-splitter,
566
+ .timeline-splitter::before {
567
+ position: absolute;
568
+ top: 0;
569
+ bottom: 0;
570
+ height: 100%;
571
+ transform: translateX(-50%);
572
+ }
573
+ .timeline-splitter {
574
+ width: 1px;
575
+ background-color: var(--divider-color);
576
+ cursor: col-resize;
577
+ z-index: 3;
578
+ transition-property: width, background-color;
579
+ transition-timing-function: var(--timing-main);
580
+ transition-duration: 0.1s;
581
+ transition-delay: 0s;
582
+
583
+ &:hover {
584
+ width: 3px;
585
+ background-color: var(--button-border-hover);
586
+ transition-duration: 0.15s;
587
+ transition-delay: 0.3s;
588
+ }
589
+ &::before {
590
+ content: '';
591
+ width: 10px;
592
+ left: 50%;
593
+ }
594
+ &.moving {
595
+ width: 2px;
596
+ background-color: var(--primary-edit-border-color);
597
+ transition-duration: 0.1s;
598
+ transition-delay: 0s;
599
+ }
600
+ }
601
+
602
+ .headerWrapper {
603
+ display: flex;
604
+ align-items: center;
605
+ height: 100%;
606
+ min-width: 0;
607
+ padding-left: 0.75rem;
608
+ padding-right: 1.15rem;
609
+ // border-bottom: 1px solid var(--accent-bg-color);
610
+ }
611
+ .contentWrapper {
612
+ overflow: hidden;
613
+ position: relative;
614
+ display: flex;
615
+ align-items: center;
616
+ flex-grow: 1;
617
+ height: 100%;
618
+ min-width: 0;
619
+ min-height: 0;
620
+ mask-image: linear-gradient(
621
+ 90deg,
622
+ rgba(0, 0, 0, 0) 0,
623
+ rgba(0, 0, 0, 1) 2rem,
624
+ rgba(0, 0, 0, 1) calc(100% - 2rem),
625
+ rgba(0, 0, 0, 0) 100%
626
+ );
627
+
628
+ &.nullRow {
629
+ cursor: pointer;
630
+ }
631
+ }
632
+ .timeline-wrapped_content {
633
+ width: 100%;
634
+ height: 100%;
635
+ min-width: 0;
636
+ min-height: 0;
637
+ will-change: transform;
638
+ }
639
+
640
+ .timeline-action__button,
641
+ .component-item {
642
+ position: absolute;
643
+ display: flex;
644
+ align-items: center;
645
+ padding: 0.5rem;
646
+ box-shadow: var(--button-shadow);
647
+ }
648
+ .component-item {
649
+ top: 0.25rem;
650
+ bottom: 0.25rem;
651
+ background-color: var(--button-bg-color);
652
+ border: 1px solid var(--button-border-color);
653
+ border-radius: 0.75rem;
654
+
655
+ &:hover {
656
+ background-color: var(--button-bg-hover);
657
+ border-color: var(--button-border-hover);
658
+ }
659
+ &.noTarget {
660
+ mask-image: linear-gradient(to left, rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 1) 2rem);
661
+ border-right-color: transparent;
662
+ }
663
+
664
+ .component-presenter {
665
+ display: flex;
666
+ align-items: center;
667
+ }
668
+ }
669
+ .timeline-action__button {
670
+ top: 0.625rem;
671
+ bottom: 0.625rem;
672
+ width: 2rem;
673
+ color: var(--content-color);
674
+ background-color: var(--button-bg-color);
675
+ border: 1px solid var(--button-border-color);
676
+ border-radius: 0.5rem;
677
+
678
+ // color: var(--caption-color);
679
+ // font-size: 0.65rem;
680
+ // font-weight: 600;
681
+
682
+ &:hover {
683
+ color: var(--accent-color);
684
+ background-color: var(--button-bg-hover);
685
+ border-color: var(--button-border-hover);
686
+ }
687
+
688
+ &.left {
689
+ left: 1rem;
690
+ }
691
+ &.right {
692
+ right: 1rem;
693
+ }
694
+ &.add {
695
+ transform: translateX(-50%);
696
+ pointer-events: none;
697
+ }
698
+ }
699
+
700
+ .listGrid {
701
+ display: flex;
702
+ justify-content: stretch;
703
+ align-items: center;
704
+ flex-shrink: 0;
705
+ width: 100%;
706
+ height: 3.25rem;
707
+ min-height: 0;
708
+ color: var(--caption-color);
709
+ z-index: 2;
710
+
711
+ &.mListGridChecked {
712
+ .headerWrapper {
713
+ background-color: var(--highlight-select);
714
+ }
715
+ .contentWrapper {
716
+ background-color: var(--trans-content-05);
717
+ }
718
+ .eListGridCheckBox {
719
+ opacity: 1;
720
+ }
721
+ }
722
+
723
+ &.mListGridSelected {
724
+ .headerWrapper {
725
+ background-color: var(--highlight-select-hover);
726
+ }
727
+ .contentWrapper {
728
+ background-color: var(--trans-content-10);
729
+ }
730
+ }
731
+
732
+ .eListGridCheckBox {
733
+ display: flex;
734
+ align-items: center;
735
+ justify-content: center;
736
+ opacity: 0;
737
+ }
738
+
739
+ &:hover .eListGridCheckBox {
740
+ opacity: 1;
741
+ }
742
+ }
743
+
744
+ .gridElement {
745
+ display: flex;
746
+ align-items: center;
747
+ justify-content: flex-start;
748
+ margin-left: 0.5rem;
749
+
750
+ &:first-child {
751
+ margin-left: 0;
752
+ }
753
+ }
754
+ </style>