@hanzo/ui 0.5.24 → 0.6.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (568) hide show
  1. package/.eslintrc.js +4 -0
  2. package/.prettierrc +22 -0
  3. package/.rush/temp/chunked-rush-logs/ui._phase_build.chunks.jsonl +2 -0
  4. package/.rush/temp/chunked-rush-logs/ui._phase_validate.chunks.jsonl +11 -0
  5. package/.rush/temp/hcengineering+ui-_phase_build-16380278e5d28b32a6666092bd103ddbd2c66a56.tar.log +12 -0
  6. package/.rush/temp/hcengineering+ui-_phase_build-16380278e5d28b32a6666092bd103ddbd2c66a56.untar.log +10 -0
  7. package/.rush/temp/hcengineering+ui-_phase_validate-8f047ca66e6a4a177eee65782e723a7dc128d73e.tar.log +65 -0
  8. package/.rush/temp/hcengineering+ui-_phase_validate-8f047ca66e6a4a177eee65782e723a7dc128d73e.untar.log +10 -0
  9. package/.rush/temp/operation/_phase_build/all.log +2 -0
  10. package/.rush/temp/operation/_phase_build/log-chunks.jsonl +2 -0
  11. package/.rush/temp/operation/_phase_build/state.json +3 -0
  12. package/.rush/temp/operation/_phase_validate/all.log +11 -0
  13. package/.rush/temp/operation/_phase_validate/log-chunks.jsonl +11 -0
  14. package/.rush/temp/operation/_phase_validate/state.json +3 -0
  15. package/.rush/temp/shrinkwrap-deps.json +585 -0
  16. package/.validate/tsBuildInfoFile.info +1 -0
  17. package/.validate/validate-err.log +0 -0
  18. package/.validate/validate.log +0 -0
  19. package/CHANGELOG.json +17 -0
  20. package/CHANGELOG.md +9 -0
  21. package/config/rig.json +5 -0
  22. package/jest.config.js +5 -0
  23. package/lang/cs.json +119 -0
  24. package/lang/de.json +119 -0
  25. package/lang/en.json +120 -0
  26. package/lang/es.json +120 -0
  27. package/lang/fr.json +120 -0
  28. package/lang/it.json +120 -0
  29. package/lang/pt.json +120 -0
  30. package/lang/ru.json +120 -0
  31. package/lang/zh.json +120 -0
  32. package/package.json +52 -100
  33. package/postcss.config.js +5 -0
  34. package/rush-logs/ui._phase_build.cache.log +4 -0
  35. package/rush-logs/ui._phase_build.log +2 -0
  36. package/rush-logs/ui._phase_validate.cache.log +4 -0
  37. package/rush-logs/ui._phase_validate.log +11 -0
  38. package/src/__test__/location.test.ts +12 -0
  39. package/src/colors.ts +552 -0
  40. package/src/components/AccordionItem.svelte +132 -0
  41. package/src/components/ActionIcon.svelte +88 -0
  42. package/src/components/BarDashboard.svelte +47 -0
  43. package/src/components/BooleanIcon.svelte +31 -0
  44. package/src/components/Breadcrumb.svelte +102 -0
  45. package/src/components/Breadcrumbs.svelte +73 -0
  46. package/src/components/Button.svelte +196 -0
  47. package/src/components/ButtonBase.svelte +117 -0
  48. package/src/components/ButtonGroup.svelte +48 -0
  49. package/src/components/ButtonIcon.svelte +63 -0
  50. package/src/components/ButtonMenu.svelte +103 -0
  51. package/src/components/ButtonWithDropdown.svelte +120 -0
  52. package/src/components/CheckBox.svelte +239 -0
  53. package/src/components/CheckBoxList.svelte.txt +88 -0
  54. package/src/components/CheckBoxWithLabel.svelte.txt +147 -0
  55. package/src/components/Chevron.svelte +85 -0
  56. package/src/components/Chip.svelte +109 -0
  57. package/src/components/CircleButton.svelte +165 -0
  58. package/src/components/CodeForm.svelte +164 -0
  59. package/src/components/CodeInput.svelte +86 -0
  60. package/src/components/ColorPopup.svelte +119 -0
  61. package/src/components/Component.svelte +152 -0
  62. package/src/components/Dialog.svelte +105 -0
  63. package/src/components/Dock.svelte +53 -0
  64. package/src/components/Dropdown.svelte +91 -0
  65. package/src/components/DropdownLabels.svelte +156 -0
  66. package/src/components/DropdownLabelsIntl.svelte +108 -0
  67. package/src/components/DropdownLabelsPopup.svelte +148 -0
  68. package/src/components/DropdownLabelsPopupIntl.svelte +72 -0
  69. package/src/components/DropdownPopup.svelte +146 -0
  70. package/src/components/DropdownRecord.svelte +50 -0
  71. package/src/components/DropdownRecordPopup.svelte +82 -0
  72. package/src/components/EditBox.svelte +211 -0
  73. package/src/components/EditWithIcon.svelte +130 -0
  74. package/src/components/EmbeddedPDF.svelte +88 -0
  75. package/src/components/ErrorPopup.svelte +27 -0
  76. package/src/components/ErrorPresenter.svelte +32 -0
  77. package/src/components/ExpandCollapse.svelte +42 -0
  78. package/src/components/Expandable.svelte +90 -0
  79. package/src/components/FocusHandler.svelte +21 -0
  80. package/src/components/Fold.svelte +52 -0
  81. package/src/components/Grid.svelte +39 -0
  82. package/src/components/Header.svelte +260 -0
  83. package/src/components/HlsVideo.svelte +170 -0
  84. package/src/components/Hotkey.svelte +50 -0
  85. package/src/components/HotkeyGroup.svelte +25 -0
  86. package/src/components/Html.svelte +24 -0
  87. package/src/components/Icon.svelte +45 -0
  88. package/src/components/IconWithEmoji.svelte +74 -0
  89. package/src/components/Image.svelte +71 -0
  90. package/src/components/Label.svelte +38 -0
  91. package/src/components/Lazy.svelte +29 -0
  92. package/src/components/Like.svelte +73 -0
  93. package/src/components/Link.svelte +75 -0
  94. package/src/components/LinkWrapper.svelte +35 -0
  95. package/src/components/ListView.svelte +153 -0
  96. package/src/components/ListViewItem.svelte +84 -0
  97. package/src/components/Loading.svelte +88 -0
  98. package/src/components/Menu.svelte +205 -0
  99. package/src/components/MiniToggle.svelte +125 -0
  100. package/src/components/Modal.svelte +117 -0
  101. package/src/components/ModeSelector.svelte +37 -0
  102. package/src/components/ModernButton.svelte +61 -0
  103. package/src/components/ModernCheckbox.svelte +123 -0
  104. package/src/components/ModernDialog.svelte +258 -0
  105. package/src/components/ModernEditbox.svelte +256 -0
  106. package/src/components/ModernPopup.svelte +105 -0
  107. package/src/components/ModernRadioButton.svelte +111 -0
  108. package/src/components/ModernTab.svelte +184 -0
  109. package/src/components/ModernToggle.svelte +153 -0
  110. package/src/components/MouseSpeedTracker.svelte +74 -0
  111. package/src/components/MultiProgress.svelte +97 -0
  112. package/src/components/NavGroup.svelte +160 -0
  113. package/src/components/NavItem.svelte +346 -0
  114. package/src/components/NestedDropdown.svelte +62 -0
  115. package/src/components/NestedMenu.svelte +119 -0
  116. package/src/components/NotificationToast.svelte +112 -0
  117. package/src/components/NumberInput.svelte +200 -0
  118. package/src/components/Panel.svelte +324 -0
  119. package/src/components/PanelInstance.svelte +254 -0
  120. package/src/components/PlainTextEditor.svelte +100 -0
  121. package/src/components/Popup.svelte +50 -0
  122. package/src/components/PopupInstance.svelte +390 -0
  123. package/src/components/PopupMenu.svelte +120 -0
  124. package/src/components/Progress.svelte +124 -0
  125. package/src/components/ProgressCircle.svelte +71 -0
  126. package/src/components/RadioButton.svelte +69 -0
  127. package/src/components/RadioGroup.svelte +42 -0
  128. package/src/components/RootStatusComponent.svelte +65 -0
  129. package/src/components/Row.svelte +25 -0
  130. package/src/components/ScrollBox.svelte +98 -0
  131. package/src/components/Scroller.svelte +1063 -0
  132. package/src/components/ScrollerBar.svelte +181 -0
  133. package/src/components/SearchEdit.svelte +46 -0
  134. package/src/components/SearchInput.svelte +213 -0
  135. package/src/components/SearchPicker.svelte +114 -0
  136. package/src/components/Section.svelte +49 -0
  137. package/src/components/SectionEmpty.svelte +38 -0
  138. package/src/components/SelectBox.svelte +76 -0
  139. package/src/components/SelectPopup.svelte +217 -0
  140. package/src/components/Separator.svelte +736 -0
  141. package/src/components/ShowMore.svelte +99 -0
  142. package/src/components/Spinner.svelte +72 -0
  143. package/src/components/SplitButton.svelte +100 -0
  144. package/src/components/StateTag.svelte +79 -0
  145. package/src/components/Status.svelte +33 -0
  146. package/src/components/StepsDialog.svelte +290 -0
  147. package/src/components/StylishEdit.svelte +127 -0
  148. package/src/components/Submenu.svelte +68 -0
  149. package/src/components/Switcher.svelte +55 -0
  150. package/src/components/SwitcherBase.svelte +116 -0
  151. package/src/components/TabList.svelte +290 -0
  152. package/src/components/Tabs.svelte +45 -0
  153. package/src/components/TabsControl.svelte +113 -0
  154. package/src/components/TextArea.svelte +110 -0
  155. package/src/components/TextAreaEditor.svelte +78 -0
  156. package/src/components/TimeLeft.svelte +66 -0
  157. package/src/components/TimeShiftPicker.svelte +84 -0
  158. package/src/components/TimeShiftPopup.svelte +64 -0
  159. package/src/components/TimeShiftPresenter.svelte +59 -0
  160. package/src/components/TimeSince.svelte +86 -0
  161. package/src/components/TimeZonesPopup.svelte +185 -0
  162. package/src/components/Timeline.svelte +754 -0
  163. package/src/components/Toggle.svelte +116 -0
  164. package/src/components/ToggleButton.svelte +176 -0
  165. package/src/components/ToggleWithLabel.svelte +58 -0
  166. package/src/components/TooltipInstance.svelte +613 -0
  167. package/src/components/Video.svelte +40 -0
  168. package/src/components/calendar/DateInputBox.svelte +430 -0
  169. package/src/components/calendar/DatePicker.svelte +46 -0
  170. package/src/components/calendar/DatePopup.svelte +274 -0
  171. package/src/components/calendar/DatePresenter.svelte +392 -0
  172. package/src/components/calendar/DateRangePicker.svelte +50 -0
  173. package/src/components/calendar/DateRangePopup.svelte +76 -0
  174. package/src/components/calendar/DateRangePresenter.svelte +779 -0
  175. package/src/components/calendar/DateTimePresenter.svelte +23 -0
  176. package/src/components/calendar/DateTimeRangePresenter.svelte +28 -0
  177. package/src/components/calendar/DueDatePopup.svelte +93 -0
  178. package/src/components/calendar/DueDatePresenter.svelte +83 -0
  179. package/src/components/calendar/Month.svelte +243 -0
  180. package/src/components/calendar/MonthCalendar.svelte +138 -0
  181. package/src/components/calendar/MonthSquare.svelte +315 -0
  182. package/src/components/calendar/RangeDatePopup.svelte +231 -0
  183. package/src/components/calendar/Shifts.svelte +114 -0
  184. package/src/components/calendar/SimpleDatePopup.svelte +42 -0
  185. package/src/components/calendar/SimpleTimePopup.svelte +41 -0
  186. package/src/components/calendar/TimeInputBox.svelte +282 -0
  187. package/src/components/calendar/TimePopup.svelte +62 -0
  188. package/src/components/calendar/WeekCalendar.svelte +116 -0
  189. package/src/components/calendar/YearCalendar.svelte +67 -0
  190. package/src/components/calendar/icons/DPCalendar.svelte +12 -0
  191. package/src/components/calendar/icons/DPCalendarOver.svelte +15 -0
  192. package/src/components/calendar/icons/DPClock.svelte +13 -0
  193. package/src/components/calendar/icons/DPClockBold.svelte +10 -0
  194. package/src/components/calendar/icons/DPEnd.svelte +13 -0
  195. package/src/components/calendar/icons/DPSetCalendar.svelte +10 -0
  196. package/src/components/calendar/icons/DPStart.svelte +13 -0
  197. package/src/components/calendar/internal/DateUtils.ts +186 -0
  198. package/src/components/emoji/ActionsPopup.svelte +116 -0
  199. package/src/components/emoji/EmojiButton.svelte +146 -0
  200. package/src/components/emoji/EmojiGroup.svelte +105 -0
  201. package/src/components/emoji/EmojiGroupPalette.svelte +58 -0
  202. package/src/components/emoji/EmojiPopup.svelte +430 -0
  203. package/src/components/emoji/SkinTonePopup.svelte +40 -0
  204. package/src/components/emoji/SkinToneTooltip.svelte +36 -0
  205. package/src/components/emoji/icons/Activities.svelte +20 -0
  206. package/src/components/emoji/icons/AnimalsAndNature.svelte +16 -0
  207. package/src/components/emoji/icons/Flags.svelte +14 -0
  208. package/src/components/emoji/icons/FoodAndDrink.svelte +20 -0
  209. package/src/components/emoji/icons/FrequentlyUsed.svelte +17 -0
  210. package/src/components/emoji/icons/GettingWorkDone.svelte +14 -0
  211. package/src/components/emoji/icons/Objects.svelte +15 -0
  212. package/src/components/emoji/icons/Search.svelte +14 -0
  213. package/src/components/emoji/icons/SmileysAndPeople.svelte +23 -0
  214. package/src/components/emoji/icons/Symbols.svelte +23 -0
  215. package/src/components/emoji/icons/TravelAndPlaces.svelte +17 -0
  216. package/src/components/emoji/index.ts +97 -0
  217. package/src/components/emoji/store.ts +44 -0
  218. package/src/components/emoji/types.ts +34 -0
  219. package/src/components/emoji/utils.ts +182 -0
  220. package/src/components/icons/Activity.svelte +16 -0
  221. package/src/components/icons/ActivityEdit.svelte +25 -0
  222. package/src/components/icons/Add.svelte +10 -0
  223. package/src/components/icons/ArrowLeft.svelte +25 -0
  224. package/src/components/icons/ArrowRight.svelte +25 -0
  225. package/src/components/icons/Attachment.svelte +29 -0
  226. package/src/components/icons/Back.svelte +32 -0
  227. package/src/components/icons/BlueCheck.svelte +11 -0
  228. package/src/components/icons/Calendar.svelte +10 -0
  229. package/src/components/icons/Check.svelte +12 -0
  230. package/src/components/icons/CheckAll.svelte +27 -0
  231. package/src/components/icons/CheckCircle.svelte +12 -0
  232. package/src/components/icons/Checkmark.svelte +26 -0
  233. package/src/components/icons/ChevronDown.svelte +27 -0
  234. package/src/components/icons/ChevronLeft.svelte +22 -0
  235. package/src/components/icons/ChevronRight.svelte +22 -0
  236. package/src/components/icons/CircleAdd.svelte +13 -0
  237. package/src/components/icons/Circles.svelte +43 -0
  238. package/src/components/icons/Close.svelte +10 -0
  239. package/src/components/icons/ColStar.svelte +31 -0
  240. package/src/components/icons/CollapseArrow.svelte +8 -0
  241. package/src/components/icons/Copy.svelte +10 -0
  242. package/src/components/icons/Delete.svelte +18 -0
  243. package/src/components/icons/Description.svelte +31 -0
  244. package/src/components/icons/Details.svelte +36 -0
  245. package/src/components/icons/DetailsFilled.svelte +27 -0
  246. package/src/components/icons/Down.svelte +8 -0
  247. package/src/components/icons/DownOutline.svelte +8 -0
  248. package/src/components/icons/Dropdown.svelte +8 -0
  249. package/src/components/icons/DropdownDown.svelte +24 -0
  250. package/src/components/icons/DropdownRight.svelte +24 -0
  251. package/src/components/icons/Edit.svelte +26 -0
  252. package/src/components/icons/Emoji.svelte +10 -0
  253. package/src/components/icons/Error.svelte +27 -0
  254. package/src/components/icons/Expand.svelte +10 -0
  255. package/src/components/icons/File.svelte +25 -0
  256. package/src/components/icons/Filter.svelte +26 -0
  257. package/src/components/icons/Folder.svelte +13 -0
  258. package/src/components/icons/FolderCollapsed.svelte +34 -0
  259. package/src/components/icons/FolderExpanded.svelte +34 -0
  260. package/src/components/icons/Forward.svelte +8 -0
  261. package/src/components/icons/HalfUpDown.svelte +7 -0
  262. package/src/components/icons/History.svelte +10 -0
  263. package/src/components/icons/Info.svelte +26 -0
  264. package/src/components/icons/KeyCommand.svelte +12 -0
  265. package/src/components/icons/KeyOption.svelte +8 -0
  266. package/src/components/icons/KeyShift.svelte +8 -0
  267. package/src/components/icons/Left.svelte +10 -0
  268. package/src/components/icons/Like.svelte +25 -0
  269. package/src/components/icons/Link.svelte +10 -0
  270. package/src/components/icons/MaxWidth.svelte +27 -0
  271. package/src/components/icons/Maximize.svelte +25 -0
  272. package/src/components/icons/MenuClose.svelte +28 -0
  273. package/src/components/icons/MenuOpen.svelte +26 -0
  274. package/src/components/icons/MinWidth.svelte +27 -0
  275. package/src/components/icons/Minimize.svelte +28 -0
  276. package/src/components/icons/Mixin.svelte +38 -0
  277. package/src/components/icons/MoreH.svelte +16 -0
  278. package/src/components/icons/MoreV.svelte +16 -0
  279. package/src/components/icons/MoreV2.svelte +29 -0
  280. package/src/components/icons/NavNext.svelte +10 -0
  281. package/src/components/icons/NavPrev.svelte +10 -0
  282. package/src/components/icons/Open.svelte +11 -0
  283. package/src/components/icons/OpenedArrow.svelte +26 -0
  284. package/src/components/icons/Options.svelte +12 -0
  285. package/src/components/icons/Redo.svelte +10 -0
  286. package/src/components/icons/Right.svelte +26 -0
  287. package/src/components/icons/Scale.svelte +13 -0
  288. package/src/components/icons/ScaleFull.svelte +13 -0
  289. package/src/components/icons/Scribble.svelte +10 -0
  290. package/src/components/icons/Search.svelte +12 -0
  291. package/src/components/icons/Send.svelte +10 -0
  292. package/src/components/icons/Settings.svelte +13 -0
  293. package/src/components/icons/Share.svelte +13 -0
  294. package/src/components/icons/SquareExpand.svelte +13 -0
  295. package/src/components/icons/Start.svelte +10 -0
  296. package/src/components/icons/Stop.svelte +8 -0
  297. package/src/components/icons/TableOfContents.svelte +35 -0
  298. package/src/components/icons/Thread.svelte +29 -0
  299. package/src/components/icons/ToDetails.svelte +28 -0
  300. package/src/components/icons/Undo.svelte +10 -0
  301. package/src/components/icons/Up.svelte +8 -0
  302. package/src/components/icons/UpOutline.svelte +8 -0
  303. package/src/components/internal/Clock.svelte +42 -0
  304. package/src/components/internal/ClockFace.svelte +148 -0
  305. package/src/components/internal/ClockPopup.svelte +91 -0
  306. package/src/components/internal/ErrorBoundary.ts +33 -0
  307. package/src/components/internal/ErrorComponent.svelte +37 -0
  308. package/src/components/internal/Root.svelte +323 -0
  309. package/src/components/internal/RootBarExtension.svelte +32 -0
  310. package/src/components/internal/Settings.svelte +39 -0
  311. package/src/components/internal/SettingsPopup.svelte +196 -0
  312. package/src/components/internal/ThemeButton.svelte +151 -0
  313. package/src/components/internal/icons/CheckCircled.svelte +11 -0
  314. package/src/components/internal/icons/Computer.svelte +15 -0
  315. package/src/components/internal/icons/FontSize.svelte +13 -0
  316. package/src/components/internal/icons/Language.svelte +17 -0
  317. package/src/components/internal/icons/Phone.svelte +18 -0
  318. package/src/components/internal/icons/Search.svelte +12 -0
  319. package/src/components/internal/icons/Settings.svelte +13 -0
  320. package/src/components/internal/icons/Theme.svelte +9 -0
  321. package/src/components/internal/icons/WiFi.svelte +21 -0
  322. package/src/components/notifications/Notification.svelte +34 -0
  323. package/src/components/notifications/Notification.ts +16 -0
  324. package/src/components/notifications/NotificationPosition.ts +6 -0
  325. package/src/components/notifications/NotificationSeverity.ts +6 -0
  326. package/src/components/notifications/Notifications.svelte +53 -0
  327. package/src/components/notifications/actions.ts +42 -0
  328. package/src/components/notifications/store.ts +16 -0
  329. package/src/components/wizard/ModernWizardBar.svelte +105 -0
  330. package/src/components/wizard/ModernWizardDialog.svelte +144 -0
  331. package/src/components/wizard/Wizard.svelte +59 -0
  332. package/src/components/wizard/WizardStep.svelte +144 -0
  333. package/src/focus.ts +139 -0
  334. package/src/index.ts +338 -0
  335. package/src/lazy.ts +93 -0
  336. package/src/location.ts +259 -0
  337. package/src/modals.ts +5 -0
  338. package/src/panelup.ts +70 -0
  339. package/src/plugin.ts +156 -0
  340. package/src/popups.ts +486 -0
  341. package/src/resize.ts +179 -0
  342. package/src/svg.d.ts +4 -0
  343. package/src/tooltips.ts +152 -0
  344. package/src/types.ts +545 -0
  345. package/src/utils.ts +420 -0
  346. package/svelte.config.js +5 -0
  347. package/tsconfig.json +9 -0
  348. package/types/__test__/location.test.d.ts +2 -0
  349. package/types/__test__/location.test.d.ts.map +1 -0
  350. package/types/colors.d.ts +163 -0
  351. package/types/colors.d.ts.map +1 -0
  352. package/types/components/calendar/internal/DateUtils.d.ts +34 -0
  353. package/types/components/calendar/internal/DateUtils.d.ts.map +1 -0
  354. package/types/components/emoji/index.d.ts +11 -0
  355. package/types/components/emoji/index.d.ts.map +1 -0
  356. package/types/components/emoji/store.d.ts +12 -0
  357. package/types/components/emoji/store.d.ts.map +1 -0
  358. package/types/components/emoji/types.d.ts +20 -0
  359. package/types/components/emoji/types.d.ts.map +1 -0
  360. package/types/components/emoji/utils.d.ts +17 -0
  361. package/types/components/emoji/utils.d.ts.map +1 -0
  362. package/types/components/internal/ErrorBoundary.d.ts +5 -0
  363. package/types/components/internal/ErrorBoundary.d.ts.map +1 -0
  364. package/types/components/notifications/Notification.d.ts +16 -0
  365. package/types/components/notifications/Notification.d.ts.map +1 -0
  366. package/types/components/notifications/NotificationPosition.d.ts +7 -0
  367. package/types/components/notifications/NotificationPosition.d.ts.map +1 -0
  368. package/types/components/notifications/NotificationSeverity.d.ts +7 -0
  369. package/types/components/notifications/NotificationSeverity.d.ts.map +1 -0
  370. package/types/components/notifications/actions.d.ts +6 -0
  371. package/types/components/notifications/actions.d.ts.map +1 -0
  372. package/types/components/notifications/store.d.ts +9 -0
  373. package/types/components/notifications/store.d.ts.map +1 -0
  374. package/types/focus.d.ts +32 -0
  375. package/types/focus.d.ts.map +1 -0
  376. package/types/index.d.ts +254 -0
  377. package/types/index.d.ts.map +1 -0
  378. package/types/lazy.d.ts +6 -0
  379. package/types/lazy.d.ts.map +1 -0
  380. package/types/location.d.ts +38 -0
  381. package/types/location.d.ts.map +1 -0
  382. package/types/modals.d.ts +5 -0
  383. package/types/modals.d.ts.map +1 -0
  384. package/types/panelup.d.ts +17 -0
  385. package/types/panelup.d.ts.map +1 -0
  386. package/types/plugin.d.ts +135 -0
  387. package/types/plugin.d.ts.map +1 -0
  388. package/types/popups.d.ts +65 -0
  389. package/types/popups.d.ts.map +1 -0
  390. package/types/resize.d.ts +32 -0
  391. package/types/resize.d.ts.map +1 -0
  392. package/types/tooltips.d.ts +8 -0
  393. package/types/tooltips.d.ts.map +1 -0
  394. package/types/types.d.ts +373 -0
  395. package/types/types.d.ts.map +1 -0
  396. package/types/utils.d.ts +125 -0
  397. package/types/utils.d.ts.map +1 -0
  398. package/assets/lux-site-icons/android-chrome-192x192.png +0 -0
  399. package/assets/lux-site-icons/android-chrome-512x512.png +0 -0
  400. package/assets/lux-site-icons/apple-touch-icon.png +0 -0
  401. package/assets/lux-site-icons/favicon-16x16.png +0 -0
  402. package/assets/lux-site-icons/favicon-32x32.png +0 -0
  403. package/assets/lux-site-icons/favicon.ico +0 -0
  404. package/assets/standard-docs/LUX-NFT-Terms-and-Conditions.pdf +0 -0
  405. package/assets/standard-docs/LUX-Privacy-Policy.pdf +0 -0
  406. package/blocks/components/accordian-block.tsx +0 -48
  407. package/blocks/components/block-component-props.ts +0 -11
  408. package/blocks/components/bullet-cards-block.tsx +0 -45
  409. package/blocks/components/card-block.tsx +0 -213
  410. package/blocks/components/carte-blanche-block/index.tsx +0 -127
  411. package/blocks/components/carte-blanche-block/variant-content-left.tsx +0 -49
  412. package/blocks/components/content.tsx +0 -70
  413. package/blocks/components/cta-block.tsx +0 -98
  414. package/blocks/components/enh-heading-block.tsx +0 -205
  415. package/blocks/components/grid-block/grid-block-mutator.ts +0 -12
  416. package/blocks/components/grid-block/index.tsx +0 -83
  417. package/blocks/components/grid-block/mutator-registry.ts +0 -10
  418. package/blocks/components/grid-block/table-borders.mutator.ts +0 -47
  419. package/blocks/components/group-block.tsx +0 -83
  420. package/blocks/components/heading-block.tsx +0 -88
  421. package/blocks/components/image-block.tsx +0 -108
  422. package/blocks/components/index.ts +0 -30
  423. package/blocks/components/screenful-block/content.tsx +0 -120
  424. package/blocks/components/screenful-block/index.tsx +0 -79
  425. package/blocks/components/screenful-block/poster-background.tsx +0 -34
  426. package/blocks/components/screenful-block/video-background.tsx +0 -45
  427. package/blocks/components/space-block.tsx +0 -66
  428. package/blocks/components/video-block.tsx +0 -137
  429. package/blocks/def/accordian-block.ts +0 -14
  430. package/blocks/def/block.ts +0 -7
  431. package/blocks/def/bullet-cards-block.ts +0 -21
  432. package/blocks/def/card-block.ts +0 -24
  433. package/blocks/def/carte-blanche-block.ts +0 -21
  434. package/blocks/def/cta-block.ts +0 -19
  435. package/blocks/def/element-block.ts +0 -11
  436. package/blocks/def/enh-heading-block.ts +0 -45
  437. package/blocks/def/grid-block.ts +0 -16
  438. package/blocks/def/group-block.ts +0 -11
  439. package/blocks/def/heading-block.ts +0 -15
  440. package/blocks/def/image-block.ts +0 -31
  441. package/blocks/def/index.ts +0 -35
  442. package/blocks/def/screenful-block.ts +0 -54
  443. package/blocks/def/space-block.ts +0 -64
  444. package/blocks/def/video-block.ts +0 -28
  445. package/blocks/index.ts +0 -2
  446. package/common/chat-widget.tsx +0 -75
  447. package/common/contact-dialog/contact-form.tsx +0 -111
  448. package/common/contact-dialog/disclaimer.tsx +0 -13
  449. package/common/contact-dialog/index.tsx +0 -48
  450. package/common/copyright.tsx +0 -21
  451. package/common/drawer-menu.tsx +0 -51
  452. package/common/footer.tsx +0 -77
  453. package/common/head-metadata/from-next/metadata-types.ts +0 -158
  454. package/common/head-metadata/from-next/opengraph-types.ts +0 -267
  455. package/common/head-metadata/from-next/twitter-types.ts +0 -92
  456. package/common/head-metadata/index.tsx +0 -208
  457. package/common/header/index.tsx +0 -57
  458. package/common/header/mobile-nav.tsx +0 -72
  459. package/common/header/theme-toggle.tsx +0 -26
  460. package/common/icons/github.tsx +0 -14
  461. package/common/icons/index.tsx +0 -34
  462. package/common/icons/lux-logo.tsx +0 -10
  463. package/common/icons/secure-delivery.tsx +0 -13
  464. package/common/icons/social-icon.tsx +0 -35
  465. package/common/icons/youtube-logo.tsx +0 -59
  466. package/common/index.ts +0 -14
  467. package/common/logo.tsx +0 -71
  468. package/common/mini-chart/index.tsx +0 -8
  469. package/common/mini-chart/mini-chart-props.ts +0 -44
  470. package/common/mini-chart/mini-chart.tsx +0 -76
  471. package/common/mini-chart/wrapper.tsx +0 -23
  472. package/context-providers/index.ts +0 -1
  473. package/context-providers/theme-provider.tsx +0 -20
  474. package/next/README.md +0 -11
  475. package/next/analytics/fpixel.ts +0 -16
  476. package/next/analytics/pixel-analytics.tsx +0 -55
  477. package/next/determine-device-middleware.ts +0 -16
  478. package/next/fonts/DrukTextWide-Bold-Trial.otf +0 -0
  479. package/next/fonts/DrukTextWide-Heavy-Trial.otf +0 -0
  480. package/next/fonts/DrukTextWide-Medium-Trial.otf +0 -0
  481. package/next/fonts/DrukWide-Bold-Trial.otf +0 -0
  482. package/next/fonts/DrukWide-Heavy-Trial.otf +0 -0
  483. package/next/fonts/DrukWide-Medium-Trial.otf +0 -0
  484. package/next/get-app-router-font-classes.ts +0 -12
  485. package/next/load-and-return-lux-next-fonts-on-import.ts +0 -94
  486. package/next/next-font-desc.ts +0 -28
  487. package/next/not-found-content.mdx +0 -4
  488. package/next/not-found.tsx +0 -23
  489. package/next/pages-router-font-vars.tsx +0 -18
  490. package/next/root-layout.tsx +0 -60
  491. package/primitives/accordion.tsx +0 -61
  492. package/primitives/action-button.tsx +0 -46
  493. package/primitives/apply-typography.tsx +0 -55
  494. package/primitives/avatar.tsx +0 -49
  495. package/primitives/badge.tsx +0 -36
  496. package/primitives/button.tsx +0 -73
  497. package/primitives/calendar.tsx +0 -72
  498. package/primitives/card.tsx +0 -83
  499. package/primitives/checkbox.tsx +0 -32
  500. package/primitives/command.tsx +0 -155
  501. package/primitives/dialog-video-controller.tsx +0 -38
  502. package/primitives/dialog.tsx +0 -152
  503. package/primitives/form.tsx +0 -179
  504. package/primitives/index.ts +0 -144
  505. package/primitives/inline-icon.tsx +0 -37
  506. package/primitives/input.tsx +0 -30
  507. package/primitives/label.tsx +0 -28
  508. package/primitives/link-element.tsx +0 -104
  509. package/primitives/main.tsx +0 -17
  510. package/primitives/mdx-link.tsx +0 -22
  511. package/primitives/nav-items.tsx +0 -48
  512. package/primitives/popover.tsx +0 -35
  513. package/primitives/progress.tsx +0 -27
  514. package/primitives/scroll-area.tsx +0 -47
  515. package/primitives/select.tsx +0 -169
  516. package/primitives/separator.tsx +0 -29
  517. package/primitives/sheet.tsx +0 -175
  518. package/primitives/skeleton.tsx +0 -15
  519. package/primitives/switch.tsx +0 -33
  520. package/primitives/table.tsx +0 -117
  521. package/primitives/tabs.tsx +0 -60
  522. package/primitives/tailwind-indicator.tsx +0 -19
  523. package/primitives/text-area.tsx +0 -26
  524. package/primitives/toast.tsx +0 -129
  525. package/primitives/toaster.tsx +0 -37
  526. package/primitives/use-toast.ts +0 -192
  527. package/primitives/video-player.tsx +0 -26
  528. package/primitives/youtube-embed.tsx +0 -83
  529. package/siteDef/footer/community.tsx +0 -67
  530. package/siteDef/footer/company.ts +0 -37
  531. package/siteDef/footer/ecosystem.ts +0 -37
  532. package/siteDef/footer/index.tsx +0 -26
  533. package/siteDef/footer/legal.ts +0 -28
  534. package/siteDef/footer/network.ts +0 -33
  535. package/siteDef/footer/svg/warpcast-logo.svg +0 -12
  536. package/siteDef/main-nav.ts +0 -35
  537. package/style/globals.css +0 -13
  538. package/style/hanzo-common.css +0 -32
  539. package/style/hanzo-default-colors.css +0 -79
  540. package/style/social-svg.css +0 -3
  541. package/tailwind/colors.tailwind.js +0 -46
  542. package/tailwind/fonts.tailwind.ts +0 -31
  543. package/tailwind/index.ts +0 -18
  544. package/tailwind/lux-tw-fonts.ts +0 -37
  545. package/tailwind/safelist.tailwind.js +0 -26
  546. package/tailwind/screens.tailwind.js +0 -8
  547. package/tailwind/spacing.tailwind.js +0 -65
  548. package/tailwind/tailwind.config.base.js +0 -906
  549. package/tailwind/tw-font-desc.ts +0 -15
  550. package/tailwind/typo-plugin/get-plugin-styles.js +0 -676
  551. package/tailwind/typo-plugin/index.d.ts +0 -9
  552. package/tailwind/typo-plugin/index.js +0 -141
  553. package/tailwind/typo-plugin/utils.js +0 -60
  554. package/tailwind/typography-test.mdx +0 -36
  555. package/types/breakpoints.ts +0 -11
  556. package/types/bullet-item.ts +0 -10
  557. package/types/button-def.ts +0 -39
  558. package/types/contact-info.ts +0 -11
  559. package/types/dimensions.ts +0 -20
  560. package/types/grid-def.ts +0 -56
  561. package/types/icon.ts +0 -10
  562. package/types/image-def.ts +0 -28
  563. package/types/index.ts +0 -29
  564. package/types/link-def.ts +0 -59
  565. package/types/site-def.ts +0 -34
  566. package/types/t-shirt-size.ts +0 -5
  567. package/util/index.ts +0 -81
  568. package/util/specifier.ts +0 -43
@@ -0,0 +1,324 @@
1
+ <!--
2
+ // Copyright © 2022, 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 { afterUpdate, createEventDispatcher, onMount } from 'svelte'
17
+ import {
18
+ deviceOptionsStore as deviceInfo,
19
+ Separator,
20
+ defineSeparators,
21
+ resizeObserver,
22
+ Button,
23
+ ButtonGroup,
24
+ Scroller,
25
+ panelSeparators,
26
+ ButtonItem,
27
+ Header,
28
+ HeaderAdaptive
29
+ } from '../../'
30
+ import IconClose from './icons/Close.svelte'
31
+ import IconDetails from './icons/Details.svelte'
32
+ import IconMaxWidth from './icons/MaxWidth.svelte'
33
+ import IconMinWidth from './icons/MinWidth.svelte'
34
+ import IconScale from './icons/Scale.svelte'
35
+ import IconScaleFull from './icons/ScaleFull.svelte'
36
+
37
+ import plugin from '../plugin'
38
+
39
+ export let innerWidth: number = 0
40
+ export let panelWidth: number = 0
41
+ export let isHeader: boolean = true
42
+ export let isAside: boolean = true
43
+ export let isFullSize: boolean = false
44
+ export let withoutTitle: boolean = false
45
+ export let floatAside: boolean = false
46
+ export let allowClose: boolean = true
47
+ export let embedded: boolean = false
48
+ export let useMaxWidth: boolean | undefined = undefined
49
+ export let customAside: ButtonItem[] | undefined = undefined
50
+ export let selectedAside: string | boolean = customAside ? customAside[0].id : isAside
51
+ export let printHeader = true
52
+ export let printAside = false
53
+ export let adaptive: HeaderAdaptive = 'default'
54
+ export let hideBefore: boolean = false
55
+ export let hideSearch: boolean = true
56
+ export let hideActions: boolean = false
57
+ export let hideExtra: boolean = false
58
+ export let overflowExtra: boolean = false
59
+
60
+ export function getAside (): string | boolean {
61
+ if (customAside) return selectedAside
62
+ return asideShown
63
+ }
64
+ export function setAside (id: string | boolean): void {
65
+ if (typeof id === 'string' && customAside) {
66
+ const i = customAside.findIndex((as) => as.id === id)
67
+ if (i === -1) return
68
+ handleSelectAside({ detail: id })
69
+ } else {
70
+ asideShown = id !== false
71
+ hideAside = !asideShown
72
+ if (id === false) selectedAside = false
73
+ }
74
+ }
75
+
76
+ const dispatch = createEventDispatcher()
77
+
78
+ let el: HTMLElement
79
+ let asideFloat: boolean = false
80
+ let asideShown: boolean = selectedAside !== false
81
+ let hideAside: boolean = !asideShown
82
+ let fullSize: boolean = false
83
+ let oldAside: string | boolean = selectedAside
84
+
85
+ $: if (typeof selectedAside === 'string' && oldAside !== selectedAside) oldAside = selectedAside
86
+ $: setAside(selectedAside)
87
+ $: if (el !== undefined) {
88
+ panelWidth = el.clientWidth
89
+ checkPanel()
90
+ }
91
+
92
+ let oldWidth = ''
93
+ let hideTimer: any | undefined
94
+
95
+ const checkPanel = (): void => {
96
+ const k = `${panelWidth}-${asideFloat}`
97
+ if (oldWidth === k) {
98
+ return
99
+ }
100
+ oldWidth = k
101
+ if (floatAside) {
102
+ asideFloat = true
103
+ } else if (panelWidth <= 900 && !asideFloat) {
104
+ asideFloat = true
105
+ if (asideShown) {
106
+ asideShown = false
107
+ if (customAside) handleSelectAside({ detail: false }, false)
108
+ }
109
+ } else if (panelWidth > 900) {
110
+ if (asideFloat) asideFloat = false
111
+ if (!asideShown && !hideAside) {
112
+ asideShown = true
113
+ if (customAside) handleSelectAside({ detail: oldAside }, false)
114
+ }
115
+ }
116
+ }
117
+
118
+ afterUpdate(() => {
119
+ if (hideTimer) {
120
+ clearTimeout(hideTimer)
121
+ }
122
+ hideTimer = setTimeout(() => {
123
+ checkPanel()
124
+ }, 500)
125
+ })
126
+
127
+ onMount(() => dispatch('open'))
128
+
129
+ defineSeparators('panel-aside', panelSeparators)
130
+
131
+ const handleAside = (): void => {
132
+ asideShown = !asideShown
133
+ hideAside = !asideShown
134
+ }
135
+
136
+ const handleSelectAside = (result: { detail: any }, sw: boolean = true): void => {
137
+ selectedAside = result.detail
138
+ if (sw) {
139
+ asideShown = selectedAside !== false
140
+ hideAside = !asideShown
141
+ }
142
+ dispatch('select', result.detail)
143
+ }
144
+
145
+ let isPrinting = false
146
+ </script>
147
+
148
+ <svelte:window
149
+ on:beforeprint={() => {
150
+ isPrinting = true
151
+ }}
152
+ on:afterprint={() => {
153
+ isPrinting = false
154
+ }}
155
+ />
156
+
157
+ <div
158
+ bind:this={el}
159
+ class="popupPanel panel"
160
+ class:withPageHeader={$$slots['page-header'] !== undefined}
161
+ class:withPageFooter={$$slots['page-footer'] !== undefined}
162
+ class:embedded
163
+ use:resizeObserver={(element) => {
164
+ panelWidth = element.clientWidth
165
+ checkPanel()
166
+ }}
167
+ >
168
+ <Header
169
+ type={'type-panel'}
170
+ noPrint={!printHeader}
171
+ adaptive={$deviceInfo.isMobile ? 'disabled' : adaptive}
172
+ {hideBefore}
173
+ {hideSearch}
174
+ {hideActions}
175
+ {hideExtra}
176
+ {overflowExtra}
177
+ >
178
+ <svelte:fragment slot="beforeTitle">
179
+ {#if allowClose}
180
+ <Button
181
+ id={'btnPClose'}
182
+ focusIndex={10001}
183
+ icon={IconClose}
184
+ iconProps={{ size: 'medium' }}
185
+ kind={'icon'}
186
+ noPrint
187
+ on:click={() => {
188
+ dispatch('close')
189
+ }}
190
+ />
191
+ {#if $$slots.beforeTitle}
192
+ <div class="hulyHeader-divider short no-print" />
193
+ {/if}
194
+ {/if}
195
+ <slot name="beforeTitle" />
196
+ </svelte:fragment>
197
+
198
+ {#if !withoutTitle}<slot name="title" />{/if}
199
+
200
+ <svelte:fragment slot="search">
201
+ <slot name="search" />
202
+ </svelte:fragment>
203
+ <svelte:fragment slot="actions">
204
+ <slot name="actions" />
205
+ <slot name="presence" />
206
+ <slot name="pre-utils" />
207
+ <slot name="utils" />
208
+ {#if useMaxWidth !== undefined}
209
+ <Button
210
+ focusIndex={10009}
211
+ icon={useMaxWidth ? IconMaxWidth : IconMinWidth}
212
+ iconProps={{ size: 'medium' }}
213
+ kind={'icon'}
214
+ selected={useMaxWidth}
215
+ showTooltip={{ label: plugin.string.UseMaxWidth, direction: 'bottom' }}
216
+ on:click={() => {
217
+ useMaxWidth = !useMaxWidth
218
+ dispatch('maxWidth', useMaxWidth)
219
+ }}
220
+ />
221
+ {/if}
222
+ {#if isFullSize}
223
+ <Button
224
+ focusIndex={100010}
225
+ icon={fullSize ? IconScale : IconScaleFull}
226
+ iconProps={{ size: 'medium' }}
227
+ kind={'icon'}
228
+ selected={fullSize}
229
+ showTooltip={{ label: plugin.string.FullSize, direction: 'bottom' }}
230
+ on:click={() => {
231
+ fullSize = !fullSize
232
+ dispatch('fullsize')
233
+ }}
234
+ />
235
+ {/if}
236
+ {#if $$slots.aside && isAside}
237
+ {#if customAside}
238
+ <ButtonGroup
239
+ items={customAside}
240
+ props={{ kind: 'icon', iconProps: { size: 'medium' } }}
241
+ bind:selected={selectedAside}
242
+ on:select={handleSelectAside}
243
+ />
244
+ {:else}
245
+ <Button
246
+ id={'btnPAside'}
247
+ focusIndex={10008}
248
+ icon={IconDetails}
249
+ iconProps={{ size: 'medium', filled: asideShown }}
250
+ kind={'icon'}
251
+ selected={asideShown}
252
+ showTooltip={{ label: plugin.string.Sidebar, direction: 'bottom' }}
253
+ on:click={handleAside}
254
+ />
255
+ {/if}
256
+ {/if}
257
+ <slot name="post-utils" />
258
+ </svelte:fragment>
259
+ <svelte:fragment slot="extra">
260
+ <slot name="extra" />
261
+ </svelte:fragment>
262
+ </Header>
263
+ <div class="popupPanel-body {$deviceInfo.isMobile ? 'mobile' : 'main'}" class:asideShown>
264
+ {#if $deviceInfo.isMobile}
265
+ <div
266
+ class="popupPanel-body__mobile"
267
+ use:resizeObserver={(element) => {
268
+ innerWidth = element.clientWidth
269
+ }}
270
+ >
271
+ <Scroller horizontal padding={'.5rem .75rem'}>
272
+ {#if $$slots.header && isHeader}
273
+ <div class="popupPanel-body__header mobile bottom-divider" class:max={useMaxWidth}>
274
+ <slot name="header" />
275
+ </div>
276
+ {/if}
277
+ <slot />
278
+ </Scroller>
279
+ </div>
280
+ {:else}
281
+ <div
282
+ class="popupPanel-body__main"
283
+ use:resizeObserver={(element) => {
284
+ innerWidth = element.clientWidth
285
+ }}
286
+ >
287
+ {#if $$slots.header && isHeader}
288
+ <div class="popupPanel-body__header-wrapper">
289
+ <div class="popupPanel-body__header main" class:max={useMaxWidth}>
290
+ <slot name="header" />
291
+ </div>
292
+ </div>
293
+ {/if}
294
+ <slot />
295
+ {#if isPrinting && printAside}
296
+ <div class="only-print pagebreak">
297
+ <slot name="aside" />
298
+ </div>
299
+ {/if}
300
+ </div>
301
+ {/if}
302
+
303
+ {#if $$slots.aside && isAside && asideShown}
304
+ <Separator name={'panel-aside'} float={asideFloat} index={0} />
305
+ <div class="popupPanel-body__aside no-print" class:float={asideFloat} class:shown={asideShown}>
306
+ <Separator name={'panel-aside'} float={asideFloat ? 'aside' : true} index={0} />
307
+ <div class="antiPanel-wrap__content">
308
+ <slot name="aside" />
309
+ </div>
310
+ </div>
311
+ {/if}
312
+ </div>
313
+ {#if $$slots['panel-footer']}
314
+ <div class="popupPanel-footer">
315
+ <slot name="panel-footer" />
316
+ </div>
317
+ {/if}
318
+ <div class="popupPanel-pageHeader only-print" id="page-header">
319
+ <slot name="page-header" />
320
+ </div>
321
+ <div class="popupPanel-pageFooter only-print" id="page-footer">
322
+ <slot name="page-footer" />
323
+ </div>
324
+ </div>
@@ -0,0 +1,254 @@
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 { getResourceC } from '@hanzo/platform'
18
+ import { afterUpdate, onMount } from 'svelte'
19
+
20
+ import { deviceOptionsStore as deviceInfo, resizeObserver } from '..'
21
+ import { closePanel, PanelProps, panelstore } from '../panelup'
22
+ import { fitPopupElement, popupstore } from '../popups'
23
+ import type { AnySvelteComponent, DeviceOptions, PopupOptions } from '../types'
24
+ import Spinner from './Spinner.svelte'
25
+
26
+ export let contentPanel: HTMLElement | undefined
27
+ export let embedded: boolean = false
28
+ export let readonly: boolean = false
29
+
30
+ let modalHTML: HTMLElement
31
+ let oldPanel: HTMLElement | undefined
32
+ let componentInstance: any
33
+
34
+ let options: PopupOptions = {
35
+ props: {
36
+ top: '',
37
+ bottom: '',
38
+ left: '',
39
+ right: '',
40
+ width: '',
41
+ height: '',
42
+ maxWidth: '',
43
+ maxHeight: '',
44
+ minWidth: ''
45
+ },
46
+ showOverlay: false,
47
+ direction: 'bottom'
48
+ }
49
+
50
+ let component: AnySvelteComponent | undefined
51
+ let keepSize: boolean = false
52
+
53
+ let props: PanelProps | undefined
54
+ function _close (): void {
55
+ closePanel()
56
+ }
57
+
58
+ $: if ($panelstore.panel !== undefined) {
59
+ if ($panelstore.panel.component === undefined) {
60
+ props = $panelstore.panel
61
+ } else {
62
+ getResourceC($panelstore.panel.component, (r) => {
63
+ component = r
64
+ props = $panelstore.panel
65
+ })
66
+ }
67
+ $panelstore.panel.refit = fitPopupInstance
68
+ } else {
69
+ props = undefined
70
+ }
71
+
72
+ function escapeClose (): void {
73
+ // Check if there is popup visible, then ignore
74
+ if ($popupstore.length > 0) {
75
+ return
76
+ }
77
+
78
+ if (componentInstance?.canClose !== undefined) {
79
+ if (!(componentInstance as { canClose: () => boolean }).canClose()) {
80
+ return
81
+ }
82
+ }
83
+ _close()
84
+ }
85
+
86
+ const fitPopup = (props: PanelProps, contentPanel: HTMLElement): void => {
87
+ if (modalHTML != null) {
88
+ const device: DeviceOptions = $deviceInfo
89
+ options =
90
+ device.isMobile && device.docWidth <= 480
91
+ ? {
92
+ props: {
93
+ top: 'var(--status-bar-height)',
94
+ bottom: '4.25rem',
95
+ left: '0',
96
+ right: '3.5rem',
97
+ width: '',
98
+ height: 'calc(100dvh - var(--status-bar-height) - var(--app-panel-width))',
99
+ maxWidth: '100%',
100
+ maxHeight: '100%',
101
+ minWidth: '0'
102
+ },
103
+ showOverlay: true,
104
+ direction: 'bottom'
105
+ }
106
+ : fitPopupElement(modalHTML, device, props.element, contentPanel)
107
+ }
108
+ }
109
+
110
+ function handleKeydown (ev: KeyboardEvent): void {
111
+ if (ev.key === 'Escape') {
112
+ escapeClose()
113
+ }
114
+ }
115
+
116
+ function _open (): void {
117
+ if (modalHTML != null && props != null) {
118
+ if (props.element === 'content') {
119
+ modalHTML.classList.add('bg')
120
+ } else {
121
+ modalHTML.classList.remove('bg')
122
+ }
123
+ }
124
+ }
125
+
126
+ const _update = (): void => {
127
+ if (props != null && contentPanel != null) {
128
+ fitPopup(props, contentPanel)
129
+ }
130
+ }
131
+
132
+ const checkResize = (): void => {
133
+ if (props != null && contentPanel != null) fitPopup(props, contentPanel)
134
+ }
135
+
136
+ onMount(() => {
137
+ if (props != null && contentPanel != null) fitPopup(props, contentPanel)
138
+ })
139
+
140
+ afterUpdate(() => {
141
+ if (props != null && contentPanel != null) fitPopup(props, contentPanel)
142
+ })
143
+
144
+ $: if (contentPanel !== oldPanel) {
145
+ oldPanel = contentPanel
146
+ keepSize = false
147
+ }
148
+ $: if (props != null && contentPanel !== undefined) {
149
+ fitPopup(props, contentPanel)
150
+ if (!keepSize && props?.element === 'content') {
151
+ keepSize = true
152
+ resizeObserver(contentPanel, checkResize)
153
+ if (!contentPanel.hasAttribute('data-id')) contentPanel.setAttribute('data-id', 'contentPanel')
154
+ }
155
+ }
156
+
157
+ export function fitPopupInstance (): void {
158
+ if (props != null && contentPanel != null) fitPopup(props, contentPanel)
159
+ }
160
+ </script>
161
+
162
+ <svelte:window
163
+ on:resize={() => {
164
+ if (props != null && contentPanel != null) fitPopup(props, contentPanel)
165
+ }}
166
+ on:keydown={(evt) => {
167
+ if (props != null) handleKeydown(evt)
168
+ }}
169
+ on:beforeprint={() => {
170
+ if (props != null && contentPanel != null) fitPopup(props, contentPanel)
171
+ }}
172
+ on:afterprint={() => {
173
+ if (props != null && contentPanel != null) fitPopup(props, contentPanel)
174
+ }}
175
+ />
176
+ {#if props}
177
+ {#if !(component != null)}
178
+ <Spinner />
179
+ {:else}
180
+ <slot name="panel-header" />
181
+ <div
182
+ class="panel-instance"
183
+ bind:this={modalHTML}
184
+ style:top={options?.props?.top}
185
+ style:bottom={options?.props?.bottom}
186
+ style:left={options?.props?.left}
187
+ style:right={options?.props?.right}
188
+ style:width={options?.props?.width}
189
+ style:height={options?.props?.height}
190
+ style:max-width={options?.props?.maxWidth}
191
+ style:max-height={options?.props?.maxHeight}
192
+ style:min-width={options?.props?.minWidth}
193
+ style:transform={options?.props?.transform}
194
+ >
195
+ <svelte:component
196
+ this={component}
197
+ bind:this={componentInstance}
198
+ _id={props._id}
199
+ _class={props._class}
200
+ rightSection={props.rightSection}
201
+ position={props.element}
202
+ {readonly}
203
+ {embedded}
204
+ bind:popupOptions={options}
205
+ on:open={_open}
206
+ on:close={_close}
207
+ on:update={_update}
208
+ />
209
+ </div>
210
+ {#if props.element !== 'content'}
211
+ <!-- svelte-ignore a11y-no-static-element-interactions -->
212
+ <div
213
+ class="modal-overlay"
214
+ class:show={options.showOverlay}
215
+ on:click={() => {
216
+ escapeClose()
217
+ }}
218
+ on:keydown={() => {}}
219
+ on:keyup={() => {}}
220
+ />
221
+ {/if}
222
+ {/if}
223
+ {/if}
224
+
225
+ <style lang="scss">
226
+ .panel-instance {
227
+ z-index: 401;
228
+ position: fixed;
229
+ background-color: transparent;
230
+ border-top-right-radius: 0;
231
+ border-bottom-right-radius: 0;
232
+
233
+ @media print {
234
+ position: static;
235
+ z-index: initial;
236
+ width: auto !important;
237
+ height: auto !important;
238
+ }
239
+ }
240
+
241
+ .modal-overlay {
242
+ z-index: 400;
243
+ position: fixed;
244
+ top: 0;
245
+ left: 0;
246
+ width: 100%;
247
+ height: 100%;
248
+ touch-action: none;
249
+
250
+ &.show {
251
+ background: rgba(0, 0, 0, 0.5);
252
+ }
253
+ }
254
+ </style>
@@ -0,0 +1,100 @@
1
+ <!--
2
+ // Copyright © 2020 Hanzo <dev@hanzo.ai>.
3
+ //
4
+ // Licensed under the Eclipse Public License, Version 2.0 (the "License");
5
+ // you may not use this file except in compliance with the License. You may
6
+ // obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ //
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+ -->
15
+ <script lang="ts">
16
+ import type { IntlString } from '@hanzo/platform'
17
+ import { translateCB } from '@hanzo/platform'
18
+ import { themeStore } from '@hcengineering/theme'
19
+ import { afterUpdate, onMount } from 'svelte'
20
+
21
+ import ui from '../plugin'
22
+ import { DelayedCaller } from '../utils'
23
+
24
+ export let value: string | undefined = undefined
25
+ export let placeholder: IntlString = ui.string.TypeHere
26
+ export let placeholderParam: any | undefined = undefined
27
+ export let disabled: boolean = false
28
+
29
+ let input: HTMLTextAreaElement
30
+ let phTranslate: string = ''
31
+
32
+ $: translateCB(placeholder, placeholderParam ?? {}, $themeStore.language, (res) => {
33
+ phTranslate = res
34
+ })
35
+
36
+ onMount(() => {
37
+ const throttle = new DelayedCaller(50)
38
+ const observer = new ResizeObserver(() => {
39
+ throttle.call(adjustHeight)
40
+ })
41
+ observer.observe(input)
42
+
43
+ return () => {
44
+ observer.disconnect()
45
+ }
46
+ })
47
+
48
+ afterUpdate(adjustHeight)
49
+
50
+ function adjustHeight (): void {
51
+ if (input == null) {
52
+ return
53
+ }
54
+
55
+ input.style.height = 'auto'
56
+ input.style.height = `${input.scrollHeight + 2}px`
57
+ }
58
+
59
+ export function focus (): void {
60
+ input.focus()
61
+ }
62
+ </script>
63
+
64
+ <textarea
65
+ class="root"
66
+ bind:value
67
+ bind:this={input}
68
+ {disabled}
69
+ placeholder={phTranslate}
70
+ on:keydown
71
+ on:change
72
+ on:keydown
73
+ on:keypress
74
+ on:blur
75
+ />
76
+
77
+ <style lang="scss">
78
+ .root {
79
+ width: 100%;
80
+ padding: 0.375rem 0.75rem;
81
+ min-height: 3.25rem;
82
+ font-family: inherit;
83
+ font-size: inherit;
84
+ line-height: 1.25rem;
85
+ color: var(--theme-text-primary-color);
86
+ background-color: var(--theme-button-default);
87
+ border: 1px solid var(--theme-refinput-border);
88
+ border-radius: 0.375rem;
89
+ outline: none;
90
+ resize: none;
91
+
92
+ &:focus {
93
+ border-color: var(--primary-button-default);
94
+ }
95
+
96
+ &::placeholder {
97
+ color: var(--theme-text-placeholder-color);
98
+ }
99
+ }
100
+ </style>