@hanzo/ui 0.5.24 → 0.6.16

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,90 @@
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 type { Asset, IntlString } from '@hanzo/platform'
17
+ import ExpandCollapse from './ExpandCollapse.svelte'
18
+ import Icon from './Icon.svelte'
19
+ import Label from './Label.svelte'
20
+ import Chevron from './Chevron.svelte'
21
+
22
+ export let icon: Asset | undefined = undefined
23
+ export let label: IntlString | undefined = undefined
24
+ export let expanded: boolean = false
25
+ export let bordered: boolean = false
26
+ export let expandable = true
27
+ export let contentColor = false
28
+ export let showChevron = true
29
+
30
+ let wasExpanded = expanded
31
+ $: if (expanded) wasExpanded = true
32
+ </script>
33
+
34
+ <div class="flex-col">
35
+ <div class="expandable-header flex-between" class:expanded class:bordered>
36
+ <!-- svelte-ignore a11y-click-events-have-key-events -->
37
+ <!-- svelte-ignore a11y-no-static-element-interactions -->
38
+ <div
39
+ class="flex-row-center mr-4"
40
+ class:cursor-pointer={expandable}
41
+ on:click|stopPropagation={() => {
42
+ if (expandable) expanded = !expanded
43
+ }}
44
+ >
45
+ <Chevron {expanded} marginRight={'.5rem'} fill={!showChevron ? 'transparent' : undefined} />
46
+ {#if icon}
47
+ <div class="min-w-4 mr-2">
48
+ <Icon {icon} size={'small'} />
49
+ </div>
50
+ {/if}
51
+ <span class="fs-title overflow-label" class:content-color={contentColor}>
52
+ {#if label}<Label {label} />{/if}<slot name="title" />
53
+ </span>
54
+ {#if $$slots['title-tools']}
55
+ <div class="buttons-group small-gap">
56
+ <slot name="title-tools" />
57
+ </div>
58
+ {/if}
59
+ </div>
60
+ {#if $$slots.tools}
61
+ <div class="buttons-group small-gap">
62
+ <slot name="tools" />
63
+ </div>
64
+ {/if}
65
+ </div>
66
+ <ExpandCollapse isExpanded={expanded}>
67
+ {#if wasExpanded}
68
+ <slot />
69
+ {/if}
70
+ </ExpandCollapse>
71
+ </div>
72
+
73
+ <style lang="scss">
74
+ .expandable-header {
75
+ transition: margin-bottom 0.15s var(--timing-main);
76
+
77
+ &:not(.expanded) {
78
+ margin-bottom: 0;
79
+ }
80
+ &.expanded {
81
+ margin-bottom: 0.75rem;
82
+ }
83
+ &.bordered {
84
+ padding: 0.25rem 0.5rem;
85
+ background-color: var(--theme-comp-header-color);
86
+ border: 1px solid var(--theme-divider-color);
87
+ border-radius: 0.25rem;
88
+ }
89
+ }
90
+ </style>
@@ -0,0 +1,21 @@
1
+ <script lang="ts">
2
+ import { FocusManager } from '../focus'
3
+
4
+ export let manager: FocusManager
5
+ export let isEnabled: boolean = true
6
+
7
+ function handleKey (evt: KeyboardEvent): void {
8
+ if (evt.code === 'Tab' && isEnabled) {
9
+ evt.preventDefault()
10
+ evt.stopPropagation()
11
+ manager.next(evt.shiftKey ? -1 : 1)
12
+ }
13
+ }
14
+ </script>
15
+
16
+ <svelte:window
17
+ on:keydown={(evt) => {
18
+ handleKey(evt)
19
+ }}
20
+ />
21
+ <slot />
@@ -0,0 +1,52 @@
1
+ <!--
2
+ // Copyright © 2023 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
+ export let isOpen: boolean
17
+ export let empty: boolean = false
18
+ export let level: number = 0
19
+ </script>
20
+
21
+ <div class="hulyFold-container" class:opened={isOpen && !empty} style:margin-left={`${level * 1.5}rem`}>
22
+ <svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
23
+ {#if empty}
24
+ <path
25
+ d="M8 8.99988C8.55228 8.99988 9 8.55216 9 7.99988C9 7.44759 8.55228 6.99988 8 6.99988C7.44772 6.99988 7 7.44759 7 7.99988C7 8.55216 7.44772 8.99988 8 8.99988Z"
26
+ />
27
+ {:else}
28
+ <path d="M11 8L5.99995 3L5.29285 3.70711L9.58574 8L5.29285 12.2929L5.99995 13L11 8Z" />
29
+ {/if}
30
+ </svg>
31
+ </div>
32
+
33
+ <style lang="scss">
34
+ .hulyFold-container {
35
+ display: flex;
36
+ justify-content: center;
37
+ align-items: center;
38
+ flex-shrink: 0;
39
+ padding: 0.25rem;
40
+ width: 1.5rem;
41
+ height: 1.5rem;
42
+ border-radius: 0.25rem;
43
+ color: var(--button-disabled-IconColor);
44
+ transform-origin: center;
45
+ transform: rotate(0deg);
46
+ transition: transform 0.15s ease-in-out;
47
+
48
+ &.opened {
49
+ transform: rotate(90deg);
50
+ }
51
+ }
52
+ </style>
@@ -0,0 +1,39 @@
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
+ export let column: number = 2
17
+ export let rowGap: number = 2.5
18
+ export let columnGap: number = 1.5
19
+ export let topGap: boolean = false
20
+ export let equalHeight: boolean = false
21
+ export let alignItems: 'start' | 'center' | 'end' | 'stretch' = 'center'
22
+
23
+ $: style = `grid-template-columns: repeat(${column}, 1fr); row-gap: ${rowGap}rem; column-gap: ${columnGap}rem;${
24
+ equalHeight ? ' grid-auto-rows: 1fr;' : ''
25
+ }`
26
+ </script>
27
+
28
+ <div class="grid" {style} style:margin-top={topGap ? `${rowGap}rem` : 0} style:align-items={alignItems}>
29
+ <slot />
30
+ </div>
31
+
32
+ <style lang="scss">
33
+ .grid {
34
+ display: grid;
35
+ grid-template-columns: 1fr 1fr;
36
+ row-gap: 2.5rem;
37
+ column-gap: 1.5rem;
38
+ }
39
+ </style>
@@ -0,0 +1,260 @@
1
+ <!--
2
+ // Copyright © 2023 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 { createEventDispatcher, onMount, onDestroy } from 'svelte'
17
+ import {
18
+ IconMaximize,
19
+ IconMinimize,
20
+ IconClose,
21
+ ButtonIcon,
22
+ deviceOptionsStore as deviceInfo,
23
+ resizeObserver,
24
+ HeaderAdaptive,
25
+ popupstore
26
+ } from '..'
27
+
28
+ export let type: 'type-aside' | 'type-popup' | 'type-component' | 'type-panel' = 'type-component'
29
+ export let allowFullsize: boolean = false
30
+ export let hideSeparator: boolean = false
31
+ export let topIndent: boolean = false
32
+ export let adaptive: HeaderAdaptive = 'default'
33
+ export let hideBefore: boolean = false
34
+ export let hideDescription: boolean = false
35
+ export let hideSearch: boolean = false
36
+ export let hideActions: boolean = false
37
+ export let hideExtra: boolean = false
38
+ export let hidePresence: boolean = false
39
+ export let overflowExtra: boolean = false
40
+ export let noPrint: boolean = false
41
+ export let freezeBefore: boolean = false
42
+ export let doubleRowWidth: number = 768
43
+ export let closeOnEscape: boolean = true
44
+ export let realWidth: number | undefined = undefined
45
+
46
+ const dispatch = createEventDispatcher()
47
+
48
+ const closeButton: boolean = ['type-popup', 'type-aside'].some((v) => v === type)
49
+ let spaceFiller: HTMLElement
50
+ let doubleRow: boolean = false
51
+ let doubleExtra: boolean = false
52
+ let extraWidth: number = 0
53
+ let spaceWidth: number = 0
54
+ $: _doubleRow =
55
+ adaptive === 'doubleRow' ||
56
+ (adaptive !== 'disabled' && doubleRow) ||
57
+ (adaptive === 'autoExtra' && (doubleRow || doubleExtra))
58
+
59
+ onMount(() => {
60
+ if (closeButton) window.addEventListener('keydown', _close)
61
+ })
62
+ onDestroy(() => {
63
+ if (closeButton) window.removeEventListener('keydown', _close)
64
+ })
65
+
66
+ function _close (ev: KeyboardEvent): void {
67
+ if (closeButton && ev.key === 'Escape' && closeOnEscape) {
68
+ ev.preventDefault()
69
+ ev.stopPropagation()
70
+
71
+ if (type === 'type-aside' && $popupstore.length > 0) {
72
+ return
73
+ }
74
+
75
+ dispatch('close')
76
+ }
77
+ }
78
+ </script>
79
+
80
+ <!-- svelte-ignore a11y-no-static-element-interactions -->
81
+ <div
82
+ use:resizeObserver={(element) => {
83
+ realWidth = element.clientWidth
84
+ if (!doubleRow && element.clientWidth <= doubleRowWidth) doubleRow = true
85
+ else if (doubleRow && element.clientWidth > doubleRowWidth) doubleRow = false
86
+ }}
87
+ class="hulyHeader-container"
88
+ class:doubleRow={_doubleRow}
89
+ class:topIndent
90
+ class:clearPadding={$$slots.description}
91
+ class:hideSeparator
92
+ class:no-print={noPrint}
93
+ >
94
+ {#if _doubleRow}
95
+ <div class="hulyHeader-row">
96
+ {#if allowFullsize}
97
+ <ButtonIcon
98
+ icon={$deviceInfo.navigator.visible ? IconMaximize : IconMinimize}
99
+ kind={'tertiary'}
100
+ size={'small'}
101
+ noPrint
102
+ on:click={() => ($deviceInfo.navigator.visible = !$deviceInfo.navigator.visible)}
103
+ />
104
+ <div class="hulyHeader-divider no-print" />
105
+ {/if}
106
+ {#if $$slots.beforeTitle && !hideBefore}
107
+ <div class="hulyHeader-buttonsGroup before mr-2 no-print" class:freezeBefore>
108
+ <slot name="beforeTitle" {doubleRow} />
109
+ </div>
110
+ {/if}
111
+ <!-- svelte-ignore a11y-click-events-have-key-events -->
112
+ <!-- svelte-ignore a11y-no-static-element-interactions -->
113
+ <div
114
+ class="hulyHeader-titleGroup"
115
+ class:withDescription={$$slots.description && !hideDescription}
116
+ class:notGrow={adaptive === 'autoExtra'}
117
+ on:click
118
+ >
119
+ {#if $$slots.description && !hideDescription}
120
+ <div class="hulyHeader-titleGroup"><slot /></div>
121
+ <div class="hulyHeader-titleGroup"><slot name="description" /></div>
122
+ {:else}
123
+ <slot />
124
+ {/if}
125
+ </div>
126
+
127
+ {#if adaptive === 'autoExtra'}
128
+ <div
129
+ class="hulyHeader-spaceFiller"
130
+ bind:this={spaceFiller}
131
+ use:resizeObserver={(element) => {
132
+ if (spaceWidth !== element.clientWidth) spaceWidth = element.clientWidth
133
+ if (doubleExtra && element.clientWidth > extraWidth + 42) doubleExtra = false
134
+ }}
135
+ />
136
+ {/if}
137
+
138
+ {#if $$slots.actions && !hideActions && (adaptive === 'freezeActions' || adaptive === 'doubleRow' || adaptive === 'autoExtra')}
139
+ <div class="hulyHeader-buttonsGroup actions no-print">
140
+ <slot name="actions" {doubleRow} />
141
+ </div>
142
+ {/if}
143
+ {#if closeButton}
144
+ {#if type !== 'type-popup'}<div class="hulyHeader-divider no-print" />{/if}
145
+ {#if closeOnEscape}
146
+ <div class="hulyHotKey-item no-print">Esc</div>
147
+ {/if}
148
+ <ButtonIcon icon={IconClose} kind={'tertiary'} size={'small'} noPrint on:click={() => dispatch('close')} />
149
+ {/if}
150
+ </div>
151
+ <!-- <div class="hulyHeader-row__divider" /> -->
152
+ <div class="hulyHeader-row no-print" class:between={$$slots.search} class:reverse={!$$slots.search}>
153
+ {#if $$slots.presence && !hidePresence}
154
+ <div class="hulyHeader-buttonsGroup presence no-print">
155
+ <slot name="presence" {doubleRow} />
156
+ </div>
157
+ {/if}
158
+ {#if $$slots.search}
159
+ <div class="hulyHeader-buttonsGroup search">
160
+ <slot name="search" {doubleRow} />
161
+ </div>
162
+ {/if}
163
+ {#if $$slots.extra && !hideExtra && (adaptive === 'doubleRow' || adaptive === 'autoExtra')}
164
+ <div
165
+ class="hulyHeader-buttonsGroup extra"
166
+ class:overflow={overflowExtra}
167
+ use:resizeObserver={(element) => {
168
+ if (extraWidth !== element.clientWidth) extraWidth = element.clientWidth
169
+ }}
170
+ >
171
+ <slot name="extra" {doubleRow} />
172
+ </div>
173
+ {/if}
174
+ {#if $$slots.actions && !hideActions && !(adaptive === 'freezeActions' || adaptive === 'doubleRow' || adaptive === 'autoExtra')}
175
+ <div class="hulyHeader-buttonsGroup actions">
176
+ <slot name="actions" {doubleRow} />
177
+ </div>
178
+ {/if}
179
+ </div>
180
+ {:else}
181
+ {#if allowFullsize}
182
+ <ButtonIcon
183
+ icon={$deviceInfo.navigator.visible ? IconMaximize : IconMinimize}
184
+ kind={'tertiary'}
185
+ size={'small'}
186
+ noPrint
187
+ on:click={() => ($deviceInfo.navigator.visible = !$deviceInfo.navigator.visible)}
188
+ />
189
+ <div class="hulyHeader-divider no-print" />
190
+ {/if}
191
+ {#if $$slots.beforeTitle && !hideBefore}
192
+ <div class="hulyHeader-buttonsGroup before mr-2 no-print">
193
+ <slot name="beforeTitle" {doubleRow} />
194
+ </div>
195
+ {/if}
196
+ <!-- svelte-ignore a11y-click-events-have-key-events -->
197
+ <!-- svelte-ignore a11y-no-static-element-interactions -->
198
+ <div
199
+ class="hulyHeader-titleGroup"
200
+ class:withDescription={$$slots.description && !hideDescription}
201
+ class:notGrow={adaptive === 'autoExtra'}
202
+ on:click
203
+ >
204
+ {#if $$slots.description && !hideDescription}
205
+ <slot />
206
+ <slot name="description" />
207
+ {:else}
208
+ <slot />
209
+ {/if}
210
+ </div>
211
+
212
+ {#if adaptive === 'autoExtra'}
213
+ <div
214
+ class="hulyHeader-spaceFiller"
215
+ bind:this={spaceFiller}
216
+ use:resizeObserver={(element) => {
217
+ if (spaceWidth !== element.clientWidth) spaceWidth = element.clientWidth
218
+ if (!doubleExtra && element.clientWidth <= 16) doubleExtra = true
219
+ }}
220
+ />
221
+ {/if}
222
+
223
+ {#if $$slots.presence && !hidePresence}
224
+ <div class="hulyHeader-buttonsGroup presence no-print">
225
+ <slot name="presence" {doubleRow} />
226
+ </div>
227
+ {/if}
228
+
229
+ {#if $$slots.search && !hideSearch}
230
+ <div class="hulyHeader-buttonsGroup search no-print">
231
+ <slot name="search" {doubleRow} />
232
+ </div>
233
+ {#if $$slots.actions && !hideActions}<div class="hulyHeader-divider no-print" />{/if}
234
+ {/if}
235
+
236
+ {#if $$slots.extra && !hideExtra}
237
+ <div
238
+ class="hulyHeader-buttonsGroup extra"
239
+ class:overflow={overflowExtra}
240
+ use:resizeObserver={(element) => {
241
+ if (extraWidth !== element.clientWidth) extraWidth = element.clientWidth
242
+ }}
243
+ >
244
+ <slot name="extra" {doubleRow} />
245
+ </div>
246
+ {/if}
247
+ {#if $$slots.actions && !hideActions}
248
+ <div class="hulyHeader-buttonsGroup actions no-print">
249
+ <slot name="actions" {doubleRow} />
250
+ </div>
251
+ {/if}
252
+ {#if closeButton}
253
+ {#if type !== 'type-popup'}<div class="hulyHeader-divider no-print" />{/if}
254
+ {#if closeOnEscape}
255
+ <div class="hulyHotKey-item no-print">Esc</div>
256
+ {/if}
257
+ <ButtonIcon icon={IconClose} kind={'tertiary'} size={'small'} noPrint on:click={() => dispatch('close')} />
258
+ {/if}
259
+ {/if}
260
+ </div>
@@ -0,0 +1,170 @@
1
+ <!--
2
+ // Copyright © 2025 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 HLS, { LoadPolicy } from 'hls.js'
18
+ import { onDestroy, onMount } from 'svelte'
19
+ import Plyr from 'plyr'
20
+
21
+ export let src: string
22
+ export let hlsSrc: string
23
+ export let hlsThumbnail = ''
24
+ export let name: string | undefined = undefined
25
+ export let preload = true
26
+
27
+ let video: HTMLVideoElement | null = null
28
+ let hls: HLS | null = null
29
+ let player: Plyr | null = null
30
+
31
+ const options: Plyr.Options = {}
32
+
33
+ function initialize (src: string): void {
34
+ if (video === null) {
35
+ return
36
+ }
37
+
38
+ if (!HLS.isSupported()) {
39
+ video.src = src
40
+ player = new Plyr(video, options)
41
+ return
42
+ }
43
+ const originalUrl = new URL(src)
44
+ hls?.destroy()
45
+ player?.destroy()
46
+ const loadPolicy: LoadPolicy = {
47
+ default: {
48
+ maxTimeToFirstByteMs: Infinity,
49
+ maxLoadTimeMs: 1000 * 60,
50
+ timeoutRetry: {
51
+ maxNumRetry: 20,
52
+ retryDelayMs: 100,
53
+ maxRetryDelayMs: 250
54
+ },
55
+ errorRetry: {
56
+ maxNumRetry: 20,
57
+ retryDelayMs: 100,
58
+ maxRetryDelayMs: 250,
59
+ shouldRetry: (retryConfig, retryCount) => retryCount < (retryConfig?.maxNumRetry ?? 10)
60
+ }
61
+ }
62
+ }
63
+ hls = new HLS({
64
+ manifestLoadPolicy: loadPolicy,
65
+ playlistLoadPolicy: loadPolicy,
66
+ autoStartLoad: preload,
67
+ xhrSetup: (xhr, url) => {
68
+ const urlObj = new URL(url)
69
+ if (urlObj.searchParams.size > 1) {
70
+ return
71
+ }
72
+ const workspace = originalUrl.searchParams.get('workspace')
73
+ if (workspace == null) {
74
+ return
75
+ }
76
+ xhr.withCredentials = true
77
+ const fileName = urlObj.href.substring(urlObj.href.lastIndexOf('/') + 1)
78
+ urlObj.searchParams.append('file', fileName)
79
+ urlObj.searchParams.append('workspace', workspace)
80
+ xhr.open('GET', urlObj.toString(), true)
81
+ }
82
+ })
83
+ hls.loadSource(hlsSrc)
84
+ hls.attachMedia(video)
85
+ video.poster = hlsThumbnail
86
+ if (!preload) {
87
+ video.onplay = () => {
88
+ if (video === null) {
89
+ return
90
+ }
91
+ video.onplay = null
92
+ hls?.startLoad()
93
+ }
94
+ }
95
+ hls.on(HLS.Events.MANIFEST_PARSED, () => {
96
+ if (hls === null) {
97
+ return
98
+ }
99
+ const availableQualities = hls?.levels.map((l) => l.height)
100
+ availableQualities.unshift(0)
101
+
102
+ options.quality = {
103
+ default: 0,
104
+ options: availableQualities,
105
+ forced: true,
106
+ onChange: (e) => {
107
+ updateQuality(e)
108
+ }
109
+ }
110
+
111
+ options.captions = {
112
+ active: false
113
+ }
114
+ options.i18n = {
115
+ qualityLabel: {
116
+ 0: 'Auto'
117
+ }
118
+ }
119
+ if (video === null) {
120
+ return
121
+ }
122
+ player = new Plyr(video, options)
123
+ })
124
+ }
125
+
126
+ $: initialize(src)
127
+
128
+ onMount(() => {
129
+ initialize(src)
130
+ })
131
+
132
+ onDestroy(() => {
133
+ hls?.destroy()
134
+ player?.destroy()
135
+ })
136
+
137
+ function updateQuality (newQuality: number): void {
138
+ if (hls === null) {
139
+ return
140
+ }
141
+ if (newQuality === 0) {
142
+ hls.currentLevel = -1
143
+ } else {
144
+ hls.levels.forEach((level, levelIndex) => {
145
+ if (level.height === newQuality && hls !== null) {
146
+ hls.currentLevel = levelIndex
147
+ }
148
+ })
149
+ }
150
+ }
151
+ </script>
152
+
153
+ <!-- svelte-ignore a11y-media-has-caption -->
154
+ <video bind:this={video} width="100%" height="100%" preload={preload ? 'auto' : 'none'} controls />
155
+
156
+ <style lang="scss">
157
+ video {
158
+ border-radius: inherit;
159
+ object-fit: contain;
160
+ }
161
+
162
+ video::-webkit-media-controls {
163
+ visibility: hidden;
164
+ }
165
+
166
+ video::-webkit-media-controls-enclosure {
167
+ visibility: visible;
168
+ }
169
+ @import 'plyr/dist/plyr.css';
170
+ </style>
@@ -0,0 +1,50 @@
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
+ <script lang="ts">
16
+ import type { AnySvelteComponent } from '../types'
17
+ import Icon from './Icon.svelte'
18
+ import KeyShift from './icons/KeyShift.svelte'
19
+ import KeyOption from './icons/KeyOption.svelte'
20
+ import KeyCommand from './icons/KeyCommand.svelte'
21
+
22
+ export let key: string
23
+
24
+ const predefinedKeys: Record<string, AnySvelteComponent> = {
25
+ shift: KeyShift,
26
+ option: KeyOption,
27
+ command: KeyCommand
28
+ }
29
+
30
+ $: isPredefinedKey = key in predefinedKeys
31
+ </script>
32
+
33
+ <span class="hotkey flex-center min-w-4 h-4 font-regular-11" class:text={!isPredefinedKey}>
34
+ {#if isPredefinedKey}
35
+ <Icon icon={predefinedKeys[key]} size="x-small" />
36
+ {:else}
37
+ {key}
38
+ {/if}
39
+ </span>
40
+
41
+ <style lang="scss">
42
+ .hotkey {
43
+ border-radius: var(--min-BorderRadius);
44
+ background-color: var(--global-ui-hover-BackgroundColor);
45
+
46
+ &.text {
47
+ padding: 0 var(--spacing-0_5);
48
+ }
49
+ }
50
+ </style>