@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,50 @@
1
+ <!--
2
+ // Copyright © 2020 Hanzo <dev@hanzo.ai>.
3
+ //
4
+ // Licensed under the Eclipse Public License, Version 2.0 (the "License");
5
+ // you may not use this file except in compliance with the License. You may
6
+ // obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ //
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+ -->
15
+ <script lang="ts">
16
+ import { popupstore as popups } from '../popups'
17
+ import { modalStore as modals } from '../modals'
18
+
19
+ import PopupInstance from './PopupInstance.svelte'
20
+
21
+ export let contentPanel: HTMLElement | undefined = undefined
22
+
23
+ const instances: PopupInstance[] = []
24
+
25
+ export function fitPopupInstance (): void {
26
+ instances.forEach((p) => p.fitPopupInstance())
27
+ }
28
+
29
+ $: instances.length = $popups.filter((p) => p.dock !== true).length
30
+ </script>
31
+
32
+ {#if $popups.length > 0}
33
+ <slot name="popup-header" />
34
+ {/if}
35
+ {#each $popups.filter((p) => p.dock !== true) as popup, i (popup.id)}
36
+ <PopupInstance
37
+ bind:this={instances[i]}
38
+ is={popup.is}
39
+ props={popup.props}
40
+ element={popup.element}
41
+ onClose={popup.onClose}
42
+ onUpdate={popup.onUpdate}
43
+ zIndex={($modals.findIndex((modal) => modal.type === 'popup' && modal.id === popup.id) ?? i) + 10000}
44
+ top={$popups.length - 1 === i}
45
+ close={popup.close}
46
+ {contentPanel}
47
+ overlay={popup.options.overlay}
48
+ {popup}
49
+ />
50
+ {/each}
@@ -0,0 +1,390 @@
1
+ <!--
2
+ // Copyright © 2020, 2021 Hanzo <dev@hanzo.ai>.
3
+ // Copyright © 2021 Hardcore Engineering Inc.
4
+ //
5
+ // Licensed under the Eclipse Public License, Version 2.0 (the "License");
6
+ // you may not use this file except in compliance with the License. You may
7
+ // obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ //
13
+ // See the License for the specific language governing permissions and
14
+ // limitations under the License.
15
+ -->
16
+ <script lang="ts">
17
+ import { onMount } from 'svelte'
18
+ import { deviceOptionsStore as deviceInfo, resizeObserver, testing, checkAdaptiveMatching } from '..'
19
+ import { CompAndProps, fitPopupElement, pin } from '../popups'
20
+ import type { AnySvelteComponent, DeviceOptions, PopupAlignment, PopupOptions, PopupPositionElement } from '../types'
21
+
22
+ export let is: AnySvelteComponent
23
+ export let props: Record<string, any>
24
+ export let element: PopupAlignment | undefined
25
+ export let onClose: ((result: any) => void) | undefined
26
+ export let onUpdate: ((result: any) => void) | undefined
27
+ export let overlay: boolean
28
+ export let zIndex: number
29
+ export let top: boolean
30
+ export let close: () => void
31
+ export let contentPanel: HTMLElement | undefined
32
+ export let popup: CompAndProps
33
+
34
+ // We should not update props after popup is created using standard mechanism,
35
+ // since they could be used, and any show will update them
36
+ // So special update callback should be used.
37
+ let initialProps: Record<string, any> = props
38
+
39
+ $: popup.update = (props) => {
40
+ initialProps = Object.assign(initialProps, props)
41
+ }
42
+ const WINDOW_PADDING = 1
43
+
44
+ interface PopupParams {
45
+ x: number
46
+ y: number
47
+ width: number
48
+ height: number
49
+ }
50
+
51
+ let modalHTML: HTMLElement
52
+ let componentInstance: any
53
+ let docSize: boolean = false
54
+ let fullSize: boolean = false
55
+
56
+ let clientWidth = -1
57
+ let clientHeight = -1
58
+
59
+ let options: PopupOptions = {
60
+ props: {
61
+ top: '',
62
+ bottom: '',
63
+ left: '',
64
+ right: '',
65
+ width: '',
66
+ height: '',
67
+ maxWidth: '',
68
+ maxHeight: '',
69
+ minWidth: '',
70
+ minHeight: '',
71
+ transform: ''
72
+ },
73
+ showOverlay: false,
74
+ direction: 'bottom'
75
+ }
76
+
77
+ $: document.body.style.cursor = drag ? 'all-scroll' : ''
78
+ $: docSize = checkAdaptiveMatching($deviceInfo.size, 'md')
79
+ $: isFullMobile =
80
+ $deviceInfo.isMobile &&
81
+ $deviceInfo.isPortrait &&
82
+ ['right', 'top', 'float', 'full', 'content', 'middle', 'centered', 'center', 'full-centered'].some(
83
+ (el) => element === el
84
+ )
85
+
86
+ function _update (result: any): void {
87
+ if (onUpdate !== undefined) onUpdate(result)
88
+ }
89
+
90
+ function _close (result: any): void {
91
+ if (onClose !== undefined) onClose(result)
92
+ overlay = false
93
+ close()
94
+ }
95
+
96
+ function escapeClose (): void {
97
+ if (componentInstance?.canClose) {
98
+ if (!componentInstance.canClose()) return
99
+ }
100
+ _close(undefined)
101
+ }
102
+
103
+ const fitPopup = (
104
+ modalHTML: HTMLElement,
105
+ element: PopupAlignment | undefined,
106
+ contentPanel: HTMLElement | undefined
107
+ ): void => {
108
+ const device: DeviceOptions = $deviceInfo
109
+ if (((fullSize || docSize) && (element === 'float' || element === 'centered')) || isFullMobile) {
110
+ options = fitPopupElement(modalHTML, device, 'full', contentPanel, clientWidth, clientHeight)
111
+ options.props.maxHeight = '100vh'
112
+ if (!modalHTML.classList.contains('fullsize')) modalHTML.classList.add('fullsize')
113
+ } else {
114
+ if (element !== 'movable' || options?.props?.top === undefined || options?.props?.top === '') {
115
+ options = fitPopupElement(modalHTML, device, element, contentPanel, clientWidth, clientHeight)
116
+ }
117
+ if (modalHTML.classList.contains('fullsize')) modalHTML.classList.remove('fullsize')
118
+ }
119
+ options.fullSize = fullSize
120
+ }
121
+
122
+ function handleKeydown (ev: KeyboardEvent) {
123
+ if (ev.key === 'Escape' && is && top) {
124
+ ev.preventDefault()
125
+ ev.stopPropagation()
126
+ escapeClose()
127
+ }
128
+ }
129
+
130
+ const handleOutsideClick = (): void => {
131
+ if (componentInstance?.onOutsideClick) {
132
+ componentInstance.onOutsideClick()
133
+ }
134
+ }
135
+
136
+ const handleOverlayClick = (): void => {
137
+ handleOutsideClick()
138
+ escapeClose()
139
+ }
140
+
141
+ const alignment: PopupPositionElement = element as PopupPositionElement
142
+ let showing: boolean | undefined = alignment?.kind === 'submenu' ? undefined : false
143
+
144
+ let oldModalHTML: HTMLElement | undefined = undefined
145
+
146
+ $: if (modalHTML !== undefined && oldModalHTML !== modalHTML) {
147
+ clientWidth = modalHTML.clientWidth
148
+ clientHeight = modalHTML.clientHeight
149
+ oldModalHTML = modalHTML
150
+ fitPopup(modalHTML, element, contentPanel)
151
+ showing = true
152
+ modalHTML.addEventListener(
153
+ 'transitionend',
154
+ () => {
155
+ showing = undefined
156
+ },
157
+ { once: true }
158
+ )
159
+ }
160
+
161
+ let drag: boolean = false
162
+ let notFit: number = 0
163
+ let locked: boolean = false
164
+
165
+ const windowSize: { width: number, height: number } = { width: 0, height: 0 }
166
+ const dragParams: { offsetX: number, offsetY: number } = { offsetX: 0, offsetY: 0 }
167
+ let popupParams: PopupParams = { x: 0, y: 0, width: 0, height: 0 }
168
+
169
+ const updatedPopupParams = (pp: { x: number, y: number, width: number, height: number }): void => {
170
+ if (pp.width === 0 || pp.height === 0 || element !== 'movable') return
171
+ options.props.left = `${pp.x}px`
172
+ options.props.right = ''
173
+ options.props.top = `${pp.y}px`
174
+ options.props.maxHeight = `${pp.height}px`
175
+ }
176
+ $: updatedPopupParams(popupParams)
177
+
178
+ function mouseDown (e: MouseEvent & { currentTarget: EventTarget & HTMLDivElement }): void {
179
+ if (element !== 'movable') return
180
+ const rect = e.currentTarget.getBoundingClientRect()
181
+ popupParams = { x: rect.left, y: rect.top, width: rect.width, height: rect.height }
182
+ dragParams.offsetX = e.clientX - rect.left
183
+ dragParams.offsetY = e.clientY - rect.top
184
+ drag = true
185
+ window.addEventListener('mousemove', mouseMove)
186
+ window.addEventListener('mouseup', mouseUp)
187
+ }
188
+
189
+ function mouseMove (e: MouseEvent): void {
190
+ if (element !== 'movable' && !drag) return
191
+ let newTop = e.clientY - dragParams.offsetY
192
+ let newLeft = e.clientX - dragParams.offsetX
193
+ if (newTop < WINDOW_PADDING) newTop = WINDOW_PADDING
194
+ if (newTop + popupParams.height > $deviceInfo.docHeight - WINDOW_PADDING) {
195
+ newTop = $deviceInfo.docHeight - popupParams.height - WINDOW_PADDING
196
+ }
197
+ if (newLeft < WINDOW_PADDING) newLeft = WINDOW_PADDING
198
+ if (newLeft + popupParams.width > $deviceInfo.docWidth - WINDOW_PADDING) {
199
+ newLeft = $deviceInfo.docWidth - popupParams.width - WINDOW_PADDING
200
+ }
201
+ popupParams = { ...popupParams, x: newLeft, y: newTop }
202
+ }
203
+
204
+ function mouseUp (): void {
205
+ drag = false
206
+ window.removeEventListener('mousemove', mouseMove)
207
+ window.removeEventListener('mouseup', mouseUp)
208
+ }
209
+
210
+ function checkSize (): void {
211
+ const rect = modalHTML.getBoundingClientRect()
212
+ const newParams: PopupParams = { x: rect.left, y: rect.top, width: rect.width, height: rect.height }
213
+ if (popupParams.width === 0 && popupParams.height === 0) popupParams = newParams
214
+ newParams.x =
215
+ popupParams.x < WINDOW_PADDING
216
+ ? WINDOW_PADDING
217
+ : popupParams.x + popupParams.width > windowSize.width - WINDOW_PADDING * 2
218
+ ? $deviceInfo.docWidth - WINDOW_PADDING - popupParams.width
219
+ : popupParams.x
220
+ newParams.y =
221
+ popupParams.y < WINDOW_PADDING
222
+ ? WINDOW_PADDING
223
+ : popupParams.y + popupParams.height > $deviceInfo.docHeight - WINDOW_PADDING
224
+ ? $deviceInfo.docHeight - WINDOW_PADDING - popupParams.height
225
+ : popupParams.y
226
+ if (newParams.y < WINDOW_PADDING) {
227
+ newParams.height -= WINDOW_PADDING - newParams.y
228
+ newParams.y = WINDOW_PADDING
229
+ }
230
+ if (newParams.height > windowSize.height - WINDOW_PADDING * 2) {
231
+ newParams.height = windowSize.height - WINDOW_PADDING * 2
232
+ newParams.y = WINDOW_PADDING
233
+ }
234
+ const bottomFree: number = $deviceInfo.docHeight - WINDOW_PADDING - popupParams.y - popupParams.height
235
+ const topFree: number = popupParams.y - WINDOW_PADDING
236
+ if (notFit && bottomFree > 0) {
237
+ const dFit: number = bottomFree - notFit
238
+ newParams.height += dFit >= 0 ? notFit : bottomFree
239
+ notFit -= dFit >= 0 ? notFit : bottomFree
240
+ }
241
+ if (notFit && topFree > 0) {
242
+ const dFit: number = topFree - notFit
243
+ newParams.y -= dFit < 0 ? topFree : notFit
244
+ newParams.height += dFit < 0 ? topFree : notFit
245
+ notFit -= dFit < 0 ? topFree : notFit
246
+ }
247
+ popupParams = newParams
248
+ locked = false
249
+ }
250
+
251
+ export function fitPopupInstance (): void {
252
+ if (modalHTML) {
253
+ fitPopup(modalHTML, element, contentPanel)
254
+ }
255
+ }
256
+
257
+ onMount(() => {
258
+ windowSize.width = $deviceInfo.docWidth
259
+ windowSize.height = $deviceInfo.docHeight
260
+ })
261
+ </script>
262
+
263
+ <svelte:window
264
+ on:resize={() => {
265
+ if (modalHTML) fitPopup(modalHTML, element, contentPanel)
266
+ if (element === 'movable' && !locked) {
267
+ locked = true
268
+ if (options.props.right !== '') {
269
+ const rect = modalHTML.getBoundingClientRect()
270
+ popupParams = { x: rect.left, y: rect.top, width: rect.width, height: rect.height }
271
+ }
272
+ checkSize()
273
+ windowSize.width = $deviceInfo.docWidth
274
+ windowSize.height = $deviceInfo.docHeight
275
+ }
276
+ }}
277
+ on:keydown={handleKeydown}
278
+ />
279
+
280
+ <!-- svelte-ignore a11y-no-static-element-interactions -->
281
+ <div
282
+ id={popup.options.refId}
283
+ class="popup {testing ? 'endShow' : showing === undefined ? 'endShow' : !showing ? 'preShow' : 'startShow'}"
284
+ class:testing
285
+ class:anim={(element === 'float' || element === 'centered') && !testing && !drag}
286
+ bind:this={modalHTML}
287
+ style={`z-index: ${zIndex};`}
288
+ style:top={options?.props?.top}
289
+ style:bottom={options?.props?.bottom}
290
+ style:left={options?.props?.left}
291
+ style:right={options?.props?.right}
292
+ style:width={options?.props?.width}
293
+ style:height={options?.props?.height}
294
+ style:max-width={options?.props?.maxWidth}
295
+ style:max-height={options?.props?.maxHeight}
296
+ style:min-width={options?.props?.minWidth}
297
+ style:min-height={options?.props?.minHeight}
298
+ style:transform={options?.props?.transform}
299
+ use:resizeObserver={(element) => {
300
+ clientWidth = element.clientWidth
301
+ clientHeight = element.clientHeight
302
+ fitPopupInstance()
303
+ }}
304
+ on:mousedown={mouseDown}
305
+ >
306
+ <svelte:component
307
+ this={is}
308
+ bind:this={componentInstance}
309
+ {...initialProps}
310
+ bind:popupOptions={options}
311
+ on:update={(ev) => {
312
+ _update(ev.detail)
313
+ }}
314
+ on:close={(ev) => {
315
+ _close(ev?.detail)
316
+ }}
317
+ on:fullsize={(ev) => {
318
+ if (ev.detail === undefined) return
319
+ fullSize = ev.detail
320
+ fitPopup(modalHTML, element, contentPanel)
321
+ }}
322
+ on:dock={() => {
323
+ pin(popup.id)
324
+ }}
325
+ on:changeContent={(ev) => {
326
+ fitPopup(modalHTML, element, contentPanel)
327
+ if (ev.detail?.notFit !== undefined) notFit = ev.detail.notFit
328
+ if (element === 'movable' && showing !== false) checkSize()
329
+ }}
330
+ />
331
+ </div>
332
+
333
+ {#if overlay || drag}
334
+ <!-- svelte-ignore a11y-no-static-element-interactions -->
335
+ <div
336
+ class="modal-overlay"
337
+ class:testing
338
+ class:antiOverlay={options?.showOverlay && !drag}
339
+ style={`z-index: ${zIndex - 1};`}
340
+ on:click={handleOverlayClick}
341
+ on:keydown|stopPropagation|preventDefault={() => {}}
342
+ />
343
+ {/if}
344
+
345
+ <style lang="scss">
346
+ .popup {
347
+ position: fixed;
348
+ display: flex;
349
+ flex-direction: column;
350
+ // justify-content: center;
351
+ min-width: 0;
352
+ min-height: 0;
353
+ max-height: calc(100vh - 32px);
354
+ background-color: transparent;
355
+ transform-origin: center;
356
+ opacity: 0;
357
+
358
+ &.preShow {
359
+ transform: scale(0.9);
360
+ }
361
+ &.endShow {
362
+ opacity: 1;
363
+ }
364
+ &.startShow {
365
+ transform: scale(1);
366
+ opacity: 1;
367
+ transition-property: transform, opacity;
368
+ transition-timing-function: cubic-bezier(0, 1.59, 0.26, 1.01), ease-in-out;
369
+ transition-duration: 0.3s;
370
+ }
371
+
372
+ &.anim {
373
+ transition-property: top, bottom, left, right, width, height;
374
+ transition-duration: 0.15s;
375
+ transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
376
+ }
377
+ }
378
+ .modal-overlay {
379
+ position: fixed;
380
+ top: 0;
381
+ left: 0;
382
+ width: 100%;
383
+ height: 100vh;
384
+ transition: background-color 0.5s ease;
385
+ touch-action: none;
386
+ &.testing {
387
+ transition: background-color 0 ease;
388
+ }
389
+ }
390
+ </style>
@@ -0,0 +1,120 @@
1
+ <!--
2
+ // Copyright © 2020 Hanzo <dev@hanzo.ai>.
3
+ //
4
+ // Licensed under the Eclipse Public License, Version 2.0 (the "License");
5
+ // you may not use this file except in compliance with the License. You may
6
+ // obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ //
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+ -->
15
+ <script lang="ts">
16
+ import { afterUpdate, onDestroy } from 'svelte'
17
+
18
+ export let margin: number = 12
19
+ export let show: boolean
20
+
21
+ let trigger: HTMLElement
22
+ let popup: HTMLElement
23
+ let scrolling: boolean
24
+ let elScroll: Node
25
+
26
+ afterUpdate(() => {
27
+ if (show) showPopup()
28
+ else hidePopup()
29
+ })
30
+
31
+ const showPopup = (): void => {
32
+ fitPopup()
33
+ popup.style.visibility = 'visible'
34
+ elScroll = findNode(trigger, 'scrollBox')
35
+ if (elScroll) elScroll.addEventListener('scroll', startScroll)
36
+ }
37
+ const hidePopup = (): void => {
38
+ if (popup) {
39
+ popup.style.visibility = 'hidden'
40
+ popup.style.maxHeight = ''
41
+ }
42
+ if (elScroll) elScroll.removeEventListener('scroll', startScroll)
43
+ }
44
+
45
+ const fitPopup = (): void => {
46
+ const rectT = trigger.getBoundingClientRect()
47
+ const rectP = popup.getBoundingClientRect()
48
+ scrolling = false
49
+ if (rectT.top > document.body.clientHeight - rectT.bottom) {
50
+ // Up
51
+ if (rectT.top - 10 - margin < rectP.height) {
52
+ scrolling = true
53
+ popup.style.maxHeight = `${rectT.top - margin - 10}px`
54
+ popup.style.top = '10px'
55
+ } else popup.style.top = `${rectT.top - rectP.height - margin}px`
56
+ } else {
57
+ // Down
58
+ if (rectT.bottom + rectP.height + 10 + margin > document.body.clientHeight) {
59
+ scrolling = true
60
+ popup.style.maxHeight = `${document.body.clientHeight - rectT.bottom - margin - 10}px`
61
+ }
62
+ popup.style.top = `${rectT.bottom + margin}px`
63
+ }
64
+ if (rectT.left + rectP.width + 10 > document.body.clientWidth) {
65
+ popup.style.left = `${document.body.clientWidth - rectP.width - 10}px`
66
+ } else popup.style.left = `${rectT.left}px`
67
+ }
68
+
69
+ const findNode = (el: HTMLElement, name: string): any => {
70
+ while (el.parentNode !== null) {
71
+ if (el.classList.contains(name)) return el
72
+ el = el.parentNode as HTMLElement
73
+ }
74
+ return false
75
+ }
76
+ const waitClick = (event: any): void => {
77
+ event.stopPropagation()
78
+ if (show) {
79
+ if (!findNode(event.target, 'popup-menu')) show = false
80
+ }
81
+ }
82
+ const startScroll = (): void => {
83
+ show = false
84
+ }
85
+
86
+ onDestroy(() => {
87
+ if (elScroll) elScroll.removeEventListener('scroll', startScroll)
88
+ })
89
+ </script>
90
+
91
+ <svelte:window on:mouseup={waitClick} on:resize={startScroll} />
92
+ <div class="popup-menu">
93
+ <div bind:this={trigger}>
94
+ <slot name="trigger" />
95
+ </div>
96
+ <div class="popup" bind:this={popup}>
97
+ {#if show}
98
+ <div class="flex-col" class:scrolling><slot /></div>
99
+ {/if}
100
+ </div>
101
+ </div>
102
+
103
+ <style lang="scss">
104
+ .popup {
105
+ position: fixed;
106
+ visibility: hidden;
107
+ display: flex;
108
+ flex-direction: column;
109
+ padding: 1rem;
110
+ color: var(--caption-color);
111
+ background-color: var(--popup-bg-color);
112
+ border-radius: 0.75rem;
113
+ box-shadow: var(--popup-shadow);
114
+ user-select: none;
115
+ z-index: 10;
116
+ }
117
+ .scrolling {
118
+ overflow-y: auto;
119
+ }
120
+ </style>
@@ -0,0 +1,124 @@
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
+ import { createEventDispatcher } from 'svelte'
19
+ import { deviceOptionsStore } from '..'
20
+
21
+ export let value: number
22
+ export let min: number = 0
23
+ export let max: number = 100
24
+ export let color: number | undefined = undefined
25
+ export let editable = false
26
+
27
+ $: proc = (max - min) / 100
28
+ $: if (value > max) value = max
29
+ $: if (value < min) value = min
30
+
31
+ const dispatch = createEventDispatcher()
32
+
33
+ function click (e: MouseEvent): void {
34
+ if (!editable) return
35
+ calcValue(e)
36
+ dispatch('change', value)
37
+ }
38
+
39
+ function calcValue (e: MouseEvent): void {
40
+ const rect = (e.currentTarget as HTMLElement).getBoundingClientRect()
41
+ const x = e.clientX - rect.left - $deviceOptionsStore.fontSize / 2
42
+ let pos = x / (rect.width - $deviceOptionsStore.fontSize)
43
+ if (pos > 100) pos = 100
44
+ if (pos < 0) pos = 0
45
+ value = (max - min) * pos + min
46
+ }
47
+
48
+ function save (): void {
49
+ if (drag) {
50
+ dispatch('change', value)
51
+ drag = false
52
+ }
53
+ }
54
+
55
+ function move (e: MouseEvent): void {
56
+ if (!drag) return
57
+ calcValue(e)
58
+ }
59
+
60
+ let drag: boolean = false
61
+
62
+ $: position = proc !== 0 ? Math.round((value - min) / proc) : 0
63
+ </script>
64
+
65
+ <!-- svelte-ignore a11y-click-events-have-key-events -->
66
+ <!-- svelte-ignore a11y-no-static-element-interactions -->
67
+ <div class="container" class:editable on:click={click} on:mousemove={move} on:mouseleave={save} on:mouseup={save}>
68
+ <div
69
+ class="bar"
70
+ style:width={`calc(calc(100% - 1rem) * ${position} / 100 + .5rem)`}
71
+ style:background-color={color !== undefined
72
+ ? getPlatformColor(color, $themeStore.dark)
73
+ : 'var(--theme-toggle-on-bg-color)'}
74
+ />
75
+ {#if editable}
76
+ <div
77
+ class="control"
78
+ on:mousedown={() => {
79
+ drag = true
80
+ }}
81
+ style:left={`calc(calc(100% - 1rem) * ${position} / 100)`}
82
+ />
83
+ {/if}
84
+ </div>
85
+
86
+ <style lang="scss">
87
+ .container {
88
+ position: relative;
89
+ height: 0.25rem;
90
+ background-color: var(--trans-content-10);
91
+ border-radius: 0.125rem;
92
+
93
+ &.editable {
94
+ height: 1rem;
95
+ border-radius: 0.5rem;
96
+ cursor: pointer;
97
+
98
+ .bar {
99
+ border-radius: 0.5rem 0 0 0.5rem;
100
+ }
101
+
102
+ .control {
103
+ position: absolute;
104
+ top: 0;
105
+ height: 1rem;
106
+ width: 1rem;
107
+ border-radius: 50%;
108
+ background-color: var(--primary-button-color);
109
+ border: 1px solid var(--theme-divider-color);
110
+ box-shadow:
111
+ inset -0.125rem -0.125rem 0.175rem rgba(0, 0, 0, 0.1),
112
+ 0 0 0.25rem rgba(0, 0, 0, 0.25);
113
+ }
114
+ }
115
+
116
+ .bar {
117
+ position: absolute;
118
+ top: 0;
119
+ left: 0;
120
+ height: 100%;
121
+ border-radius: 0.125rem;
122
+ }
123
+ }
124
+ </style>