@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,97 @@
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 { themeStore } from '@hcengineering/theme'
17
+ import { getPlatformColor } from '../colors'
18
+ export let values: Progress[]
19
+ export let min: number = 0
20
+ export let max: number = 100
21
+
22
+ interface Progress {
23
+ value: number
24
+ color: number
25
+ }
26
+
27
+ $: filtred = values.filter((p) => p.value > min)
28
+
29
+ $: proc = (max - min) / 100
30
+
31
+ const width: number[] = []
32
+ $: width.length = filtred.length
33
+
34
+ function getLeft (width: number[], i: number): number {
35
+ let res = 0
36
+ for (let index = 0; index < width.length; index++) {
37
+ if (index === i) break
38
+ res += width[index]
39
+ }
40
+ return res
41
+ }
42
+
43
+ function getWidth (values: Progress[], i: number): number {
44
+ let value = values[i].value
45
+ if (value > max) value = max
46
+ if (value < min) value = min
47
+
48
+ const res = Math.round((value - min) / proc)
49
+ width[i] = res
50
+ return res
51
+ }
52
+ </script>
53
+
54
+ <div class="container">
55
+ {#each filtred as item, i}
56
+ <div
57
+ class="bar fs-title"
58
+ class:first={i === 0}
59
+ class:last={i === filtred.length - 1}
60
+ style="background-color: {getPlatformColor(item.color, $themeStore.dark)}; left: {getLeft(
61
+ width,
62
+ i
63
+ )}%; width: calc(100% * {proc !== 0 ? getWidth(filtred, i) : 0} / 100);"
64
+ >
65
+ {item.value}
66
+ </div>
67
+ {/each}
68
+ </div>
69
+
70
+ <style lang="scss">
71
+ .container {
72
+ position: relative;
73
+ width: 100%;
74
+ height: 1.5rem;
75
+ background-color: var(--theme-list-row-color);
76
+ border: 1px solid var(--theme-list-divider-color);
77
+ border-radius: 0.25rem;
78
+
79
+ .bar {
80
+ position: absolute;
81
+ display: flex;
82
+ align-items: center;
83
+ top: 0;
84
+ left: 0;
85
+ height: 100%;
86
+ padding-left: 0.5rem;
87
+ &.first {
88
+ border-top-left-radius: 0.25rem;
89
+ border-bottom-left-radius: 0.25rem;
90
+ }
91
+ &.last {
92
+ border-top-right-radius: 0.25rem;
93
+ border-bottom-right-radius: 0.25rem;
94
+ }
95
+ }
96
+ }
97
+ </style>
@@ -0,0 +1,160 @@
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 type { Doc, Ref } from '@hanzo/core'
17
+ import { createEventDispatcher } from 'svelte'
18
+ import type { Asset, IntlString } from '@hanzo/platform'
19
+ import { getEmbeddedLabel } from '@hanzo/platform'
20
+ import type { AnyComponent, IconSize, AnySvelteComponent } from '..'
21
+ import {
22
+ showPopup,
23
+ Menu,
24
+ Action,
25
+ Label,
26
+ Component,
27
+ IconDown,
28
+ IconDownOutline,
29
+ IconOpenedArrow,
30
+ IconFolderCollapsed,
31
+ IconFolderExpanded,
32
+ Icon,
33
+ getTreeCollapsed,
34
+ setTreeCollapsed,
35
+ tooltip
36
+ } from '..'
37
+
38
+ export let icon: Asset | AnySvelteComponent | undefined = undefined
39
+ export let folderIcon: boolean = false
40
+ export let iconProps: any | undefined = undefined
41
+ export let iconSize: IconSize = 'small'
42
+ export let label: IntlString | undefined = undefined
43
+ export let title: string | undefined = undefined
44
+ export let categoryName: string
45
+ export let tools: AnyComponent | undefined = undefined
46
+ export let isOpen: boolean = true
47
+ export let isFold: boolean = false
48
+ export let empty: boolean = false
49
+ export let collapsedPrefix: string = ''
50
+ export let visible: boolean = false
51
+ export let highlighted: boolean = false
52
+ export let selected: boolean = false
53
+ export let type: 'default' | 'nested' | 'nested-selectable' = 'default'
54
+ export let noDivider: boolean = false
55
+ export let showMenu: boolean = false
56
+ export let shouldTooltip: boolean = false
57
+ export let forciblyСollapsed: boolean = false
58
+ export let draggable: boolean = false
59
+ export let actions: Action[] = []
60
+ export let _id: Ref<Doc> | string | undefined = undefined
61
+
62
+ const dispatch = createEventDispatcher()
63
+
64
+ $: id = `navGroup-${categoryName}`
65
+ let pressed: boolean = false
66
+
67
+ const toggle = (): void => {
68
+ if ((!selected || empty) && type === 'nested-selectable') dispatch('click')
69
+ else if (!empty) {
70
+ isOpen = !isOpen
71
+ dispatch('toggle', isOpen)
72
+ }
73
+ }
74
+
75
+ function handleMenuClicked (ev: MouseEvent): void {
76
+ if (actions.length === 0) return
77
+ ev.stopPropagation()
78
+ pressed = true
79
+ showPopup(Menu, { actions }, ev.target as HTMLElement, () => {
80
+ pressed = false
81
+ })
82
+ }
83
+ $: isOpen = !getTreeCollapsed(_id, collapsedPrefix)
84
+ $: setTreeCollapsed(_id, !isOpen, collapsedPrefix)
85
+ $: visibleIcon = folderIcon ? (isOpen && !empty ? IconFolderExpanded : IconFolderCollapsed) : icon
86
+ </script>
87
+
88
+ <div
89
+ class="hulyNavGroup-container"
90
+ class:nested={type === 'nested' || type === 'nested-selectable'}
91
+ class:selectable={type === 'nested-selectable'}
92
+ class:noDivider
93
+ >
94
+ <button
95
+ class="hulyNavGroup-header"
96
+ class:isOpen={(isOpen || visible) && !empty}
97
+ class:highlighted
98
+ class:selected
99
+ class:showMenu={showMenu || pressed}
100
+ on:click={toggle}
101
+ {draggable}
102
+ on:dragstart
103
+ on:dragover
104
+ on:dragend
105
+ on:drop
106
+ >
107
+ {#if isFold && !empty}
108
+ <button class="hulyNavGroup-header__chevron" class:collapsed={!isOpen}>
109
+ <IconDown size={'small'} />
110
+ </button>
111
+ {/if}
112
+ <!-- svelte-ignore a11y-no-static-element-interactions -->
113
+ <!-- svelte-ignore a11y-click-events-have-key-events -->
114
+ <div class="hulyNavGroup-header__label font-medium-12" on:click={handleMenuClicked}>
115
+ {#if visibleIcon}
116
+ <div class="hulyNavGroup-header__icon" class:folder={folderIcon}>
117
+ <Icon icon={visibleIcon} size={iconSize} {iconProps} />
118
+ </div>
119
+ {/if}
120
+ <span
121
+ use:tooltip={shouldTooltip ? { label: label ?? getEmbeddedLabel(title ?? ''), direction: 'top' } : undefined}
122
+ class="overflow-label"
123
+ >
124
+ {#if label}<Label {label} />{/if}
125
+ {#if title}{title}{/if}
126
+ </span>
127
+ {#if actions.length > 0}
128
+ <IconDownOutline size={'tiny'} />
129
+ {/if}
130
+ </div>
131
+ <div class="flex-grow" />
132
+ {#if $$slots.extra}<slot name="extra" />{/if}
133
+ {#if tools || $$slots.tools}
134
+ <div class="hulyNavGroup-header__tools">
135
+ {#if tools}
136
+ <Component
137
+ is={tools}
138
+ props={{
139
+ kind: 'tools',
140
+ categoryName
141
+ }}
142
+ />
143
+ {/if}
144
+ <slot name="tools" />
145
+ </div>
146
+ {/if}
147
+ {#if selected && type === 'nested-selectable'}
148
+ <div class="hulyNavGroup-header__arrow"><IconOpenedArrow size={'small'} /></div>
149
+ {/if}
150
+ </button>
151
+ {#if !empty}
152
+ <div {id} class="hulyNavGroup-content">
153
+ {#if (!isOpen && visible) || forciblyСollapsed}
154
+ <slot name="visible" {isOpen} />
155
+ {:else}
156
+ <slot />
157
+ {/if}
158
+ </div>
159
+ {/if}
160
+ </div>
@@ -0,0 +1,346 @@
1
+ <!--
2
+ // Copyright © 2021, 2023 Hanzo <dev@hanzo.ai>.
3
+ //
4
+ // Licensed under the Eclipse Public License, Version 2.0 (the "License");
5
+ // you may not use this file except in compliance with the License. You may
6
+ // obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ //
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+ -->
15
+ <script lang="ts">
16
+ import type { Asset, IntlString } from '@hanzo/platform'
17
+ import { getEmbeddedLabel } from '@hanzo/platform'
18
+ import {
19
+ Icon,
20
+ Label,
21
+ IconDown,
22
+ AnySvelteComponent,
23
+ IconSize,
24
+ getTreeCollapsed,
25
+ setTreeCollapsed,
26
+ tooltip,
27
+ IconFolderExpanded,
28
+ IconFolderCollapsed
29
+ } from '..'
30
+
31
+ export let icon: Asset | AnySvelteComponent | undefined = undefined
32
+ export let folderIcon: boolean = false
33
+ export let iconProps: any | undefined = undefined
34
+ export let iconSize: IconSize = 'small'
35
+ export let label: IntlString | undefined = undefined
36
+ export let title: string | undefined = undefined
37
+ export let description: string | undefined = undefined
38
+ export let type: 'type-link' | 'type-tag' | 'type-anchor-link' | 'type-object' = 'type-link'
39
+ export let color: string | null = null
40
+ export let count: number | null = null
41
+ export let selected: boolean = false
42
+ export let indent: boolean = false
43
+ export let bold: boolean = false
44
+ export let disabled: boolean = false
45
+ export let isFold: boolean = false
46
+ export let isOpen: boolean = false
47
+ export let withBackground: boolean = false
48
+ export let showMenu: boolean = false
49
+ export let shouldTooltip: boolean = false
50
+ export let empty: boolean = false
51
+ export let collapsedPrefix: string = ''
52
+ export let visible: boolean = false
53
+ export let forciblyСollapsed: boolean = false
54
+ export let level: number = 0
55
+ export let _id: any = undefined
56
+
57
+ export let draggable: boolean = false
58
+
59
+ let labelEl: HTMLSpanElement
60
+ let labelWidth: number
61
+ let levelReset: boolean = false
62
+ let hovered: boolean = false
63
+
64
+ $: if (!showMenu && levelReset && !hovered) levelReset = false
65
+ $: isOpen = !getTreeCollapsed(_id, collapsedPrefix)
66
+ $: setTreeCollapsed(_id, !isOpen, collapsedPrefix)
67
+ $: visibleIcon = folderIcon ? (isOpen && !empty ? IconFolderExpanded : IconFolderCollapsed) : icon
68
+
69
+ const mouseOver = () => {
70
+ if (!hovered) {
71
+ labelWidth = labelEl.getBoundingClientRect().width
72
+ hovered = true
73
+ }
74
+ if (!levelReset && labelWidth < 16 && level > 0) levelReset = true
75
+ }
76
+ </script>
77
+
78
+ <!-- svelte-ignore a11y-mouse-events-have-key-events -->
79
+ <button
80
+ class="hulyNavItem-container line-height-auto {type} {type === 'type-anchor-link'
81
+ ? 'font-regular-12'
82
+ : 'font-regular-14'}"
83
+ class:selected
84
+ class:bold
85
+ class:indent
86
+ class:disabled
87
+ class:showMenu
88
+ {draggable}
89
+ class:noActions={$$slots.actions === undefined}
90
+ on:dragstart
91
+ on:dragover
92
+ on:dragend
93
+ on:drop
94
+ on:mouseover={mouseOver}
95
+ on:mouseleave={() => {
96
+ if (levelReset && !showMenu) levelReset = false
97
+ hovered = false
98
+ }}
99
+ on:click={() => {
100
+ if (selected && isFold) isOpen = !isOpen
101
+ }}
102
+ on:click
103
+ on:contextmenu
104
+ >
105
+ {#if isFold}
106
+ <button
107
+ class="hulyNavItem-chevron"
108
+ class:isOpen
109
+ style:margin-left={`${(levelReset ? 0 : level) * 1.25}rem`}
110
+ disabled={empty}
111
+ on:click|stopPropagation={() => {
112
+ if (!empty) isOpen = !isOpen
113
+ }}
114
+ >
115
+ {#if !empty}<IconDown size={'x-small'} />{/if}
116
+ </button>
117
+ {/if}
118
+ {#if visibleIcon || (type === 'type-tag' && color)}
119
+ <div class="hulyNavItem-icon" class:withBackground class:w-auto={iconSize === 'x-small'}>
120
+ {#if type !== 'type-tag' && visibleIcon}
121
+ <Icon icon={visibleIcon} size={iconSize} {iconProps} />
122
+ {:else if type === 'type-tag'}
123
+ <div style:background-color={color} class="hulyNavItem-icon__tag" />
124
+ {/if}
125
+ </div>
126
+ {/if}
127
+ <span
128
+ bind:this={labelEl}
129
+ use:tooltip={shouldTooltip ? { label: label ?? getEmbeddedLabel(title ?? ''), direction: 'top' } : undefined}
130
+ class="{description ? 'hulyNavItem-wideLabel' : 'hulyNavItem-label'} overflow-label"
131
+ class:flex-grow={!(type === 'type-anchor-link')}
132
+ style:color={type === 'type-tag' && selected ? color : null}
133
+ >
134
+ {#if description}
135
+ <span class="hulyNavItem-label font-medium-12 line-height-auto mr-0-5">
136
+ {#if label}<Label {label} />{/if}
137
+ {#if title}{title}{/if}
138
+ <slot />
139
+ </span>
140
+ {description}
141
+ {:else}
142
+ {#if label}<Label {label} />{/if}
143
+ {#if title}{title}{/if}
144
+ <slot />
145
+ {/if}
146
+ </span>
147
+ {#if $$slots.extra}<slot name="extra" />{/if}
148
+ {#if showMenu || $$slots.actions}
149
+ <div class="hulyNavItem-actions">
150
+ <slot name="actions" />
151
+ </div>
152
+ {/if}
153
+ {#if count !== null}
154
+ <span class="hulyNavItem-count font-bold-12">
155
+ {count}
156
+ </span>
157
+ {/if}
158
+ <slot name="notify" />
159
+ </button>
160
+ {#if (isFold && (isOpen || (!isOpen && visible)) && !empty) || forciblyСollapsed}
161
+ <div class="hulyNavItem-dropbox">
162
+ {#if (!isOpen && visible) || forciblyСollapsed}
163
+ <slot name="visible" {isOpen} />
164
+ {:else}
165
+ <slot name="dropbox" />
166
+ {/if}
167
+ </div>
168
+ {/if}
169
+
170
+ <style lang="scss">
171
+ .hulyNavItem-container {
172
+ overflow: hidden;
173
+ display: flex;
174
+ justify-content: stretch;
175
+ align-items: center;
176
+ padding: 0;
177
+ min-width: 0;
178
+ min-height: var(--global-small-Size);
179
+ border: none;
180
+ border-radius: var(--small-BorderRadius);
181
+ outline: none;
182
+
183
+ .hulyNavItem-chevron,
184
+ .hulyNavItem-icon {
185
+ display: flex;
186
+ justify-content: center;
187
+ align-items: center;
188
+ flex-shrink: 0;
189
+ }
190
+ .hulyNavItem-chevron {
191
+ margin: 0;
192
+ margin-right: var(--spacing-0_75);
193
+ padding: 0;
194
+ width: 0.75rem;
195
+ height: 0.75rem;
196
+ color: var(--global-tertiary-TextColor);
197
+ border: none;
198
+ border-radius: var(--min-BorderRadius);
199
+ outline: none;
200
+
201
+ &:disabled {
202
+ pointer-events: none;
203
+ }
204
+ }
205
+ .hulyNavItem-icon {
206
+ margin-right: var(--spacing-1);
207
+ width: var(--global-min-Size);
208
+ height: var(--global-min-Size);
209
+ color: var(--global-primary-TextColor);
210
+
211
+ &__tag {
212
+ flex-shrink: 0;
213
+ width: 0.625rem;
214
+ height: 0.625rem;
215
+ border-radius: var(--min-BorderRadius);
216
+ }
217
+ &.withBackground {
218
+ width: var(--global-extra-small-Size);
219
+ height: var(--global-extra-small-Size);
220
+ background: var(--global-ui-BackgroundColor);
221
+ border: 1px solid var(--global-subtle-ui-BorderColor);
222
+ border-radius: var(--extra-small-BorderRadius);
223
+ }
224
+ }
225
+ .hulyNavItem-label,
226
+ .hulyNavItem-wideLabel {
227
+ text-align: left;
228
+ color: var(--global-primary-TextColor);
229
+ }
230
+ .hulyNavItem-wideLabel {
231
+ font-size: 0.875rem;
232
+ }
233
+ .hulyNavItem-actions {
234
+ display: none;
235
+ align-items: center;
236
+ flex-shrink: 0;
237
+ min-width: 0;
238
+ min-height: 0;
239
+ gap: var(--spacing-0_25);
240
+ }
241
+ .hulyNavItem-count {
242
+ margin: 0 var(--spacing-1);
243
+ color: var(--global-tertiary-TextColor);
244
+ }
245
+ &:not(.selected):hover,
246
+ &:not(.selected).showMenu {
247
+ background-color: var(--global-ui-hover-highlight-BackgroundColor);
248
+ }
249
+ &.selected {
250
+ cursor: default;
251
+ background-color: var(--global-ui-highlight-BackgroundColor);
252
+
253
+ .hulyNavItem-count {
254
+ color: var(--global-secondary-TextColor);
255
+ }
256
+ }
257
+
258
+ &.type-link {
259
+ padding: 0 var(--spacing-0_5) 0 var(--spacing-1_25);
260
+
261
+ &.selected {
262
+ &.indent {
263
+ padding-left: var(--spacing-4);
264
+ }
265
+ .hulyNavItem-icon {
266
+ color: var(--global-accent-TextColor);
267
+ }
268
+ .hulyNavItem-label:not(.description) {
269
+ color: var(--global-accent-TextColor);
270
+ }
271
+ }
272
+ }
273
+ &.type-tag {
274
+ padding: 0 var(--spacing-1_25);
275
+
276
+ .hulyNavItem-icon {
277
+ width: 0.75rem;
278
+ margin-right: 0.625rem;
279
+ }
280
+ }
281
+ &.type-object {
282
+ padding: 0 var(--spacing-0_5);
283
+
284
+ .hulyNavItem-icon {
285
+ margin-right: var(--spacing-0_75);
286
+ width: var(--global-extra-small-Size);
287
+ height: var(--global-extra-small-Size);
288
+ background-color: var(--global-ui-BackgroundColor);
289
+ border-radius: var(--extra-small-BorderRadius);
290
+ }
291
+ &.selected {
292
+ .hulyNavItem-label:not(.description) {
293
+ color: var(--global-accent-TextColor);
294
+ }
295
+ .hulyNavItem-icon {
296
+ color: var(--global-accent-TextColor);
297
+ }
298
+ }
299
+ }
300
+ &.type-anchor-link {
301
+ padding: 0 var(--spacing-1_5) 0 var(--spacing-1_25);
302
+ width: fit-content;
303
+ min-height: 1.75rem;
304
+
305
+ .hulyNavItem-icon,
306
+ .hulyNavItem-label {
307
+ color: var(--global-secondary-TextColor);
308
+ }
309
+ .hulyNavItem-label {
310
+ font-weight: 500;
311
+ }
312
+ &.selected .hulyNavItem-icon,
313
+ &.selected .hulyNavItem-label {
314
+ color: var(--global-primary-TextColor);
315
+ }
316
+ }
317
+ &.indent {
318
+ padding-left: var(--spacing-4);
319
+ }
320
+ &:hover .hulyNavItem-chevron:enabled {
321
+ color: var(--global-secondary-TextColor);
322
+ background-color: var(--button-tertiary-hover-BackgroundColor);
323
+ }
324
+
325
+ &:not(.noActions):hover .hulyNavItem-actions,
326
+ &:not(.noActions).showMenu .hulyNavItem-actions {
327
+ display: flex;
328
+ }
329
+ &.disabled {
330
+ cursor: not-allowed;
331
+
332
+ .hulyNavItem-icon {
333
+ opacity: 0.5;
334
+ }
335
+ .hulyNavItem-label {
336
+ color: rgb(var(--theme-caption-color) / 40%);
337
+ }
338
+ }
339
+ }
340
+ .hulyNavItem-dropbox {
341
+ display: flex;
342
+ flex-direction: column;
343
+ min-width: 0;
344
+ min-height: 0;
345
+ }
346
+ </style>
@@ -0,0 +1,62 @@
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 { IntlString } from '@hanzo/platform'
17
+ import { createEventDispatcher } from 'svelte'
18
+ import ui from '../plugin'
19
+ import { showPopup } from '../popups'
20
+ import type { DropdownIntlItem } from '../types'
21
+ import Button from './Button.svelte'
22
+ import DropdownIcon from './icons/Dropdown.svelte'
23
+ import NestedMenu from './NestedMenu.svelte'
24
+ import Label from './Label.svelte'
25
+
26
+ export let items: [DropdownIntlItem, DropdownIntlItem[]][]
27
+ export let label: IntlString = ui.string.DropdownDefaultLabel
28
+ export let disabled: boolean = false
29
+ export let selected: DropdownIntlItem | undefined = undefined
30
+
31
+ let container: HTMLElement
32
+ let opened: boolean = false
33
+
34
+ const dispatch = createEventDispatcher()
35
+
36
+ function openPopup (): void {
37
+ if (!opened) {
38
+ opened = true
39
+ showPopup(NestedMenu, { items }, container, (result) => {
40
+ if (result !== undefined) {
41
+ selected = result
42
+ dispatch('selected', result.id)
43
+ }
44
+ opened = false
45
+ })
46
+ }
47
+ }
48
+ </script>
49
+
50
+ <div bind:this={container}>
51
+ <Button width={'min-content'} {disabled} on:click={openPopup}>
52
+ <span slot="content" class="overflow-label disabled flex-grow text-left mr-2">
53
+ <Label label={selected !== undefined ? selected.label : label} />
54
+ </span>
55
+ <svelte:fragment slot="iconRight">
56
+ <DropdownIcon
57
+ size={'small'}
58
+ fill={!disabled ? 'var(--primary-button-content-color)' : 'var(--theme-dark-color)'}
59
+ />
60
+ </svelte:fragment>
61
+ </Button>
62
+ </div>