@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,736 @@
1
+ <!--
2
+ // Copyright © 2023 Hardcore Engineering Inc.
3
+ //
4
+ // Licensed under the Eclipse Public License, Version 2.0 (the "License");
5
+ // you may not use this file except in compliance with the License. You may
6
+ // obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ //
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+ -->
15
+ <script lang="ts">
16
+ import { afterUpdate, onDestroy, onMount } from 'svelte'
17
+ import type { TSeparatedItem, SeparatedItem } from '..'
18
+ import {
19
+ nullSeparatedItem,
20
+ deviceOptionsStore as deviceInfo,
21
+ getSeparators,
22
+ saveSeparator,
23
+ SeparatedElement,
24
+ separatorsStore,
25
+ SeparatorState
26
+ } from '..'
27
+ import { panelstore } from '../panelup'
28
+
29
+ export let prevElementSize: SeparatedItem | undefined = undefined
30
+ export let nextElementSize: SeparatedItem | undefined = undefined
31
+ export let separatorSize: number = 1
32
+ export let color: string = 'var(--theme-divider-color)'
33
+ export let name: string
34
+ export let disabledWhen: string[] = []
35
+ export let index: number // index = -1 ; for custom sizes without saving to a localStorage
36
+ export let float: string | boolean = false // false - default state, true - hidden state for float, name - panel name for resize (float state)
37
+ export let short: boolean = false
38
+
39
+ let sState: SeparatorState
40
+ $: sState = typeof float === 'string' ? SeparatorState.FLOAT : float ? SeparatorState.HIDDEN : SeparatorState.NORMAL
41
+ const checkFullWidth = (): boolean =>
42
+ sState === SeparatorState.FLOAT && $deviceInfo.isMobile && $deviceInfo.isPortrait
43
+
44
+ const direction: 'horizontal' | 'vertical' = 'horizontal'
45
+ let separators: SeparatedItem[] | null = null
46
+ let separatorMap: SeparatedElement[]
47
+ let prevElSize: SeparatedItem
48
+ let nextElSize: SeparatedItem
49
+ let panel: SeparatedItem
50
+ let separator: HTMLElement
51
+ let prevElement: HTMLElement | null
52
+ let nextElement: HTMLElement | null
53
+ let parentElement: HTMLElement | null
54
+ let mounted: boolean = false
55
+ let isSeparate: boolean = false
56
+ let excludedIndexes: number[] = []
57
+ let correctedIndex: number = index
58
+ let realIndex: number = index
59
+ let offset: number = 0
60
+ let separatorsSizes: number[] | null = null
61
+ const separatorsWide: { before: number, after: number, total: number } = { before: 0, after: 0, total: 0 }
62
+ const containers: { minStart: number, minEnd: number, maxStart: number, maxEnd: number } = {
63
+ minStart: -1,
64
+ minEnd: -1,
65
+ maxStart: -1,
66
+ maxEnd: -1
67
+ }
68
+ let parentSize: { start: number, end: number, size: number } | null = null
69
+ let disabled: boolean = false
70
+ let side: 'start' | 'end' | undefined = undefined
71
+
72
+ $: fs = $deviceInfo.fontSize
73
+ const remToPx = (rem: number): number => rem * fs
74
+ const pxToRem = (px: number): number => px / fs
75
+
76
+ const fetchSeparators = (): void => {
77
+ const res = getSeparators(name, float)
78
+ if (res !== null && !Array.isArray(res)) panel = res
79
+ else if (Array.isArray(res)) {
80
+ separators = res
81
+ prevElSize = separators !== null ? separators[index] : nullSeparatedItem
82
+ nextElSize = separators !== null ? separators[index + 1] : nullSeparatedItem
83
+ }
84
+ }
85
+ $: if (name || float) {
86
+ fetchSeparators()
87
+ if (sState === SeparatorState.NORMAL) {
88
+ if (prevElementSize !== undefined) prevElSize = prevElementSize
89
+ if (nextElementSize !== undefined) nextElSize = nextElementSize
90
+ setTimeout(() => {
91
+ if (parentElement === null && separator != null) parentElement = separator.parentElement
92
+ checkSibling(true)
93
+ calculateSeparators()
94
+ })
95
+ }
96
+ checkSizes()
97
+ }
98
+
99
+ const convertSize = (prop: TSeparatedItem): string => (typeof prop === 'number' ? `${prop}px` : '')
100
+
101
+ const setSize = (element: HTMLElement, size: TSeparatedItem, next: boolean = false): void => {
102
+ const s = convertSize(size)
103
+ if (direction === 'horizontal') {
104
+ element.style.minWidth = size === 'auto' ? '0' : s
105
+ element.style.maxWidth = s
106
+ element.style.width = s
107
+ } else {
108
+ element.style.minHeight = size === 'auto' ? '0' : s
109
+ element.style.maxHeight = s
110
+ element.style.height = s
111
+ }
112
+ const rect = element.getBoundingClientRect()
113
+ const sizePx = direction === 'horizontal' ? rect.width : rect.height
114
+ element.setAttribute('data-size', `${sizePx}`)
115
+ if (sState === SeparatorState.NORMAL) {
116
+ if (separators != null) separators[index + (next ? 1 : 0)].size = pxToRem(sizePx)
117
+ if (next) nextElSize.size = typeof size === 'number' ? pxToRem(sizePx) : size
118
+ else prevElSize.size = typeof size === 'number' ? pxToRem(sizePx) : size
119
+ }
120
+ }
121
+
122
+ const getStyles = (
123
+ element: Element | null,
124
+ dropStyles: string[] = ['min-width', 'max-width', 'width']
125
+ ): Map<string, string> => {
126
+ const result = new Map<string, string>()
127
+ const style = element != null ? element.getAttribute('style') : null
128
+ if (style !== null) {
129
+ style
130
+ .replace(/ /g, '')
131
+ .split(';')
132
+ .filter((f) => f !== '')
133
+ .forEach((st) => result.set(st.split(':')[0], st.split(':')[1]))
134
+ dropStyles.forEach((key) => result.delete(key))
135
+ }
136
+ return result
137
+ }
138
+
139
+ const generateMap = (): void => {
140
+ if (parentElement == null || separators === null || separatorsSizes === null) return
141
+ const children: Element[] = Array.from(parentElement.children)
142
+ if (children.length > 1) {
143
+ const hasSep = children.filter((el) => el.hasAttribute('data-float')).map((el) => el.getAttribute('data-float'))
144
+ const excluded = separators
145
+ .filter((separ) => separ.float !== undefined && !hasSep.includes(separ.float))
146
+ .map((separ) => separ.float)
147
+ excludedIndexes = []
148
+ separators.forEach((separ, i) => {
149
+ if (excluded.includes(separ.float)) excludedIndexes.push(i)
150
+ })
151
+ correctedIndex = index - excludedIndexes.filter((i) => i < index).length
152
+ realIndex = correctedIndex
153
+ const sm: SeparatedElement[] = []
154
+ let ind: number = 0
155
+ let drop: number = 0
156
+ children.forEach((element, i) => {
157
+ if (separators != null) {
158
+ if (separators[ind]?.float !== undefined && excluded.includes(separators[ind].float)) {
159
+ ind++
160
+ drop++
161
+ }
162
+ const styles: Map<string, string> = getStyles(element)
163
+ const rect = element.getBoundingClientRect()
164
+ const size = direction === 'horizontal' ? rect.width : rect.height
165
+ const sep = element.classList.contains('antiSeparator')
166
+ const extra = !(sep || element.hasAttribute('data-size') || element.hasAttribute('data-auto'))
167
+ if (extra) realIndex++
168
+ if (!sep) {
169
+ sm.push({
170
+ id: extra ? -1 : ind,
171
+ element,
172
+ styles,
173
+ minSize: extra
174
+ ? size
175
+ : typeof separators[ind].minSize === 'number'
176
+ ? remToPx(separators[ind].minSize as number)
177
+ : remToPx(20),
178
+ maxSize: extra
179
+ ? size
180
+ : typeof separators[ind].maxSize === 'number'
181
+ ? remToPx(separators[ind].maxSize as number)
182
+ : -1,
183
+ size,
184
+ begin: ind - drop <= correctedIndex,
185
+ resize: false,
186
+ float: extra ? undefined : separators[ind].float
187
+ })
188
+ if (!extra) ind++
189
+ }
190
+ }
191
+ })
192
+ separatorMap = sm
193
+ const startBoxes = separatorMap.filter((sm) => sm.begin)
194
+ const endBoxes = separatorMap.filter((sm) => !sm.begin)
195
+ containers.minStart = startBoxes.map((box) => box.minSize).reduce((prev, a) => prev + a, 0)
196
+ containers.minEnd = endBoxes.map((box) => box.minSize).reduce((prev, a) => prev + a, 0)
197
+ containers.maxStart =
198
+ startBoxes.filter((box) => box.maxSize === -1).length > 0
199
+ ? -1
200
+ : startBoxes.map((box) => box.maxSize).reduce((prev, a) => prev + a, 0)
201
+ containers.maxEnd =
202
+ endBoxes.filter((box) => box.maxSize === -1).length > 0
203
+ ? -1
204
+ : endBoxes.map((box) => box.maxSize).reduce((prev, a) => prev + a, 0)
205
+ }
206
+ isSeparate = true
207
+ }
208
+
209
+ const initSize = (element: HTMLElement, props: SeparatedItem, next: boolean = false): void => {
210
+ const minSizePx = props.minSize === 'auto' ? '0' : convertSize(remToPx(props.minSize))
211
+ const maxSizePx = convertSize(props.maxSize === 'auto' ? 'auto' : remToPx(props.maxSize))
212
+ const sizePx = convertSize(props.size === 'auto' ? 'auto' : remToPx(props.size))
213
+
214
+ if (props.size !== 'auto') {
215
+ setSize(element, remToPx(props.size), next)
216
+ return
217
+ }
218
+ const rect = element.getBoundingClientRect()
219
+ if (direction === 'horizontal') {
220
+ element.style.minWidth = minSizePx
221
+ element.style.maxWidth = maxSizePx
222
+ element.style.width = sizePx
223
+ element.setAttribute('data-auto', `${rect.width}`)
224
+ } else {
225
+ element.style.minHeight = minSizePx
226
+ element.style.maxHeight = maxSizePx
227
+ element.style.height = sizePx
228
+ element.setAttribute('data-auto', `${rect.height}`)
229
+ }
230
+ }
231
+
232
+ const checkSizes = (): void => {
233
+ if (sState === SeparatorState.FLOAT) {
234
+ if (checkFullWidth() && panel != null) {
235
+ const s = pxToRem(window.innerWidth)
236
+ panel.size = s
237
+ panel.maxSize = s
238
+ panel.minSize = s
239
+ }
240
+ if (parentElement != null && panel != null) initSize(parentElement, panel)
241
+ } else if (sState === SeparatorState.NORMAL) {
242
+ if (prevElement != null && prevElSize != null) initSize(prevElement, prevElSize)
243
+ if (nextElement != null && nextElSize != null) initSize(nextElement, nextElSize, true)
244
+ }
245
+ }
246
+
247
+ const applyStyles = (final: boolean = false): void => {
248
+ if (separatorMap == null) return
249
+ const side = direction === 'horizontal' ? 'width' : 'height'
250
+ separatorMap.forEach((item) => {
251
+ if (item.resize || final) {
252
+ let style: string = `min-${side}:${
253
+ item.maxSize !== -1 ? item.size + 'px' : item.minSize === -1 ? '0' : item.minSize + 'px'
254
+ };`
255
+ style += item.maxSize === -1 ? '' : `max-${side}:${item.size + 'px'};`
256
+ style += item.maxSize !== -1 ? `${side}:${item.size}px;` : ''
257
+ if (item.styles !== null) {
258
+ item.styles.forEach((value, key) => {
259
+ if (key !== 'pointer-events' || final) style += `${key}:${value};`
260
+ })
261
+ }
262
+ if (isSeparate) style += 'pointer-events:none;'
263
+ item.element.setAttribute('style', style)
264
+ if (final && item.id !== -1) {
265
+ const rect = item.element.getBoundingClientRect()
266
+ item.element.setAttribute(
267
+ item.maxSize === -1 ? 'data-auto' : 'data-size',
268
+ `${direction === 'horizontal' ? rect.width : rect.height}`
269
+ )
270
+ }
271
+ item.resize = false
272
+ }
273
+ })
274
+ }
275
+
276
+ const resizeContainer = (id: number, min: number, max: number, count: number, stretch: boolean = false): number => {
277
+ const diff = max - min
278
+ if (diff !== 0) {
279
+ const size = min + (count >= diff ? (stretch ? diff : 0) : stretch ? count : diff - count)
280
+ separatorMap[id].size = size
281
+ separatorMap[id].resize = true
282
+ count = count - diff <= 0 ? 0 : count - diff
283
+ }
284
+ return count
285
+ }
286
+ const stretchContainer = (id: number, size: number): number => {
287
+ separatorMap[id].size = size
288
+ separatorMap[id].resize = true
289
+ return 0
290
+ }
291
+
292
+ function pointerMove (event: PointerEvent): void {
293
+ if (sState === SeparatorState.NORMAL) normalMouseMove(event)
294
+ else if (sState === SeparatorState.FLOAT) floatMouseMove(event)
295
+ }
296
+
297
+ const preparePanel = (): void => {
298
+ if (parentElement === null || parentSize === null) return
299
+ setSize(parentElement, panel.size === 'auto' ? 'auto' : remToPx(panel.size))
300
+ const s = separator.getBoundingClientRect()
301
+ if (s) {
302
+ const currentPoint = direction === 'horizontal' ? s.x : s.y
303
+ side =
304
+ parentSize.end - separatorSize === currentPoint
305
+ ? 'end'
306
+ : parentSize.start === currentPoint
307
+ ? 'start'
308
+ : undefined
309
+ }
310
+ if (side !== undefined) isSeparate = true
311
+ parentElement.style.pointerEvents = 'none'
312
+ }
313
+
314
+ function floatMouseMove (event: PointerEvent): void {
315
+ if (!isSeparate || parentSize === null || parentElement === null) return
316
+ const coord: number = Math.round(direction === 'horizontal' ? event.x - offset : event.y - offset)
317
+ const parentCoord: number = coord - parentSize.start
318
+ const min = remToPx(panel.minSize === 'auto' ? 10 : panel.minSize)
319
+ const max = remToPx(panel.maxSize === 'auto' ? 30 : panel.maxSize)
320
+ const newCoord =
321
+ side === 'start'
322
+ ? parentSize.size - parentCoord < min - separatorSize
323
+ ? min
324
+ : parentSize.size - parentCoord > max - separatorSize
325
+ ? max
326
+ : parentSize.size - parentCoord
327
+ : parentCoord < min - separatorSize
328
+ ? min
329
+ : parentCoord > max - separatorSize
330
+ ? max
331
+ : parentCoord - separatorSize
332
+ panel.size = pxToRem(newCoord)
333
+ setSize(parentElement, newCoord)
334
+ }
335
+
336
+ function normalMouseMove (event: PointerEvent): void {
337
+ if (!isSeparate || separatorMap === undefined || parentSize === null || separatorsSizes === null) return
338
+ const coord: number = Math.round(direction === 'horizontal' ? event.x - offset : event.y - offset)
339
+ let parentCoord: number = coord - parentSize.start
340
+ let prevCoord: number = separatorMap
341
+ .filter((f) => f.begin)
342
+ .map((m) => m.size)
343
+ .reduce((prev, a) => prev + a, 0)
344
+ prevCoord += separatorsWide.before
345
+ const startSizeMin = containers.minStart + separatorsWide.before
346
+ const startSizeMax = containers.maxStart === -1 ? -1 : containers.maxStart + separatorsWide.before
347
+ if (parentCoord <= startSizeMin) parentCoord = startSizeMin + 1
348
+ if (startSizeMax !== -1 && parentCoord > startSizeMax) parentCoord = startSizeMax
349
+ const endSizeMin = containers.minEnd + separatorsWide.after
350
+ const endSizeMax = containers.maxEnd === -1 ? -1 : containers.maxEnd + separatorsWide.after
351
+ if (parentCoord > parentSize.size - endSizeMin - separatorSize) {
352
+ parentCoord = parentSize.size - endSizeMin - separatorSize
353
+ }
354
+ if (endSizeMax !== -1 && parentCoord < parentSize.size - endSizeMax - separatorSize) {
355
+ parentCoord = parentSize.size - endSizeMax - separatorSize
356
+ }
357
+ const diff = prevCoord - parentCoord // + <- - ->
358
+ let remains = diff
359
+ if (remains !== 0) {
360
+ const reverse = remains < 0
361
+ if (reverse) remains = Math.abs(remains)
362
+ const minusId = realIndex + (reverse ? 1 : 0)
363
+ const plusId = realIndex + (reverse ? 0 : 1)
364
+
365
+ const minusAutoBoxes = separatorMap.filter(
366
+ (s, i) => s.maxSize === -1 && ((!reverse && i < realIndex) || (reverse && i > realIndex + 1))
367
+ )
368
+ const minusBoxes = separatorMap.filter(
369
+ (s, i) => s.maxSize !== -1 && ((!reverse && i < realIndex) || (reverse && i > realIndex + 1))
370
+ )
371
+ const minusBox = separatorMap[minusId]
372
+ const startMinus = separatorMap[minusId].maxSize === -1
373
+ const plusAutoBoxes = separatorMap.filter(
374
+ (s, i) => s.maxSize === -1 && ((!reverse && i > realIndex + 1) || (reverse && i < realIndex))
375
+ )
376
+ const plusBoxes = separatorMap.filter(
377
+ (s, i) => s.maxSize !== -1 && ((!reverse && i > realIndex + 1) || (reverse && i < realIndex))
378
+ )
379
+ const plusBox = separatorMap[plusId]
380
+ const startPlus = separatorMap[plusId].maxSize === -1
381
+
382
+ // Find for crop
383
+ if (startMinus && minusBox.size - minusBox.minSize > 0) {
384
+ remains = resizeContainer(minusId, minusBox.minSize, minusBox.size, remains)
385
+ }
386
+ if (remains > 0 && minusAutoBoxes.length > 0) {
387
+ minusAutoBoxes.forEach((box) => {
388
+ if (remains > 0) remains = resizeContainer(box.id, box.minSize, box.size, remains)
389
+ })
390
+ }
391
+ if (remains > 0 && !startMinus && minusBox.size - minusBox.minSize > 0) {
392
+ remains = resizeContainer(minusId, minusBox.minSize, minusBox.size, remains)
393
+ }
394
+ if (remains > 0 && minusBoxes.length > 0) {
395
+ minusBoxes.forEach((box) => {
396
+ if (remains > 0) remains = resizeContainer(box.id, box.minSize, box.size, remains)
397
+ })
398
+ }
399
+ let needAdd: number = Math.abs(diff) - remains
400
+ // Find for stretch
401
+ if (needAdd > 0 && startPlus) needAdd = stretchContainer(plusId, plusBox.size + needAdd)
402
+ if (needAdd > 0 && plusAutoBoxes.length > 0) {
403
+ const div = needAdd / plusAutoBoxes.length
404
+ plusAutoBoxes.forEach((box) => (needAdd = stretchContainer(box.id, box.size + div)))
405
+ }
406
+ if (needAdd > 0 && plusBox.maxSize - plusBox.size > 0) {
407
+ needAdd = resizeContainer(plusId, plusBox.size, plusBox.maxSize, needAdd, true)
408
+ }
409
+ if (needAdd > 0 && plusBoxes.length > 0) {
410
+ plusBoxes.forEach((box) => {
411
+ if (needAdd > 0) needAdd = resizeContainer(box.id, box.size, box.maxSize, needAdd, true)
412
+ })
413
+ }
414
+ separatorMap = separatorMap
415
+ }
416
+ applyStyles()
417
+ if ($panelstore.panel?.refit !== undefined) $panelstore.panel.refit()
418
+ }
419
+
420
+ function pointerUp (): void {
421
+ finalSeparation()
422
+ document.removeEventListener('pointermove', pointerMove)
423
+ document.removeEventListener('pointerup', pointerUp)
424
+ }
425
+ function finalSeparation (): void {
426
+ isSeparate = false
427
+ if (sState === SeparatorState.NORMAL) {
428
+ applyStyles(true)
429
+ if (index !== -1 && separators != null && separatorMap != null) {
430
+ let ind: number = 0
431
+ const sep: SeparatedItem[] = []
432
+ separatorMap = separatorMap.filter((sm) => sm.id !== -1)
433
+ separators.forEach((sm, i) => {
434
+ let save = false
435
+ if (excludedIndexes.includes(i)) {
436
+ save = true
437
+ ind++
438
+ }
439
+ if (save) sep.push(sm)
440
+ else {
441
+ sep.push({
442
+ size: separatorMap[i - ind].maxSize === -1 ? 'auto' : pxToRem(separatorMap[i - ind].size),
443
+ minSize: pxToRem(separatorMap[i - ind].minSize),
444
+ maxSize: separatorMap[i - ind].maxSize === -1 ? 'auto' : pxToRem(separatorMap[i - ind].maxSize),
445
+ float: separatorMap[i - ind].float
446
+ })
447
+ }
448
+ })
449
+ saveSeparator(name, false, sep)
450
+ }
451
+ } else if (sState === SeparatorState.FLOAT && parentElement != null) {
452
+ parentElement.style.pointerEvents = 'all'
453
+ if (!checkFullWidth()) saveSeparator(name, float, panel)
454
+ }
455
+ document.body.style.cursor = ''
456
+ }
457
+
458
+ function pointerDown (event: PointerEvent): void {
459
+ if (checkFullWidth()) return
460
+ prepareSeparation(event)
461
+ document.addEventListener('pointermove', pointerMove)
462
+ document.addEventListener('pointerup', pointerUp)
463
+ }
464
+ function prepareSeparation (event: PointerEvent): void {
465
+ if (parentElement == null) return
466
+ if (sState === SeparatorState.FLOAT && parentElement === null) {
467
+ checkParent()
468
+ return
469
+ } else if (sState === SeparatorState.NORMAL && (prevElement === null || nextElement === null)) {
470
+ checkSibling()
471
+ return
472
+ }
473
+ offset = Math.round(direction === 'horizontal' ? event.offsetX : event.offsetY)
474
+ const p = parentElement.getBoundingClientRect()
475
+ parentSize =
476
+ direction === 'horizontal'
477
+ ? { start: p.left, end: p.right, size: p.width }
478
+ : { start: p.top, end: p.bottom, size: p.height }
479
+ if (sState === SeparatorState.NORMAL) {
480
+ calculateSeparators()
481
+ generateMap()
482
+ applyStyles(true)
483
+ } else if (sState === SeparatorState.FLOAT) preparePanel()
484
+ document.body.style.cursor = direction === 'horizontal' ? 'col-resize' : 'row-resize'
485
+ }
486
+
487
+ const checkSibling = (start: boolean = false): void => {
488
+ if (separator === null) return
489
+ if ((prevElement === null || start) && separator != null) {
490
+ prevElement = separator.previousElementSibling as HTMLElement
491
+ }
492
+ if ((nextElement === null || start) && separator != null) {
493
+ nextElement = separator.nextElementSibling as HTMLElement
494
+ }
495
+ if (separators != null && prevElement != null && separators[index].float !== undefined) {
496
+ prevElement.setAttribute('data-float', separators[index].float ?? '')
497
+ }
498
+ if (separators != null && nextElement != null && separators[index + 1].float !== undefined) {
499
+ nextElement.setAttribute('data-float', separators[index + 1].float ?? '')
500
+ }
501
+ }
502
+ const checkParent = (): void => {
503
+ if (parentElement === null && separator != null) parentElement = separator.parentElement as HTMLElement
504
+ if (parentElement != null && typeof float === 'string') parentElement.setAttribute('data-float', float)
505
+ }
506
+
507
+ const clearContainer = (container: HTMLElement): void => {
508
+ if (container === null) return
509
+ if (container.hasAttribute('data-float')) container.removeAttribute('data-float')
510
+ if (container.hasAttribute('data-size')) container.removeAttribute('data-size')
511
+ container.style.width = ''
512
+ container.style.minWidth = ''
513
+ container.style.maxWidth = ''
514
+ }
515
+ const clearSibling = (): void => {
516
+ if (separators != null && prevElement != null && separators[index].float !== undefined) {
517
+ clearContainer(prevElement)
518
+ }
519
+ if (separators != null && nextElement != null && separators[index + 1].float !== undefined) {
520
+ clearContainer(nextElement)
521
+ }
522
+ }
523
+ const clearParent = (): void => {
524
+ if (parentElement === null && separator != null) parentElement = separator.parentElement as HTMLElement
525
+ if (parentElement != null && typeof float === 'string') clearContainer(parentElement)
526
+ }
527
+
528
+ const calculateSeparators = (): void => {
529
+ if (parentElement != null) {
530
+ const elements: Element[] = Array.from(parentElement.children)
531
+ separatorsSizes = elements
532
+ .filter((el) => el.classList.contains('antiSeparator'))
533
+ .map((el) => parseInt(el.getAttribute('data-size') ?? '0', 10))
534
+ separatorsWide.total = separatorsSizes.reduce((prev, a) => prev + a, 0)
535
+ separatorsWide.before = separatorsSizes.slice(0, index).reduce((prev, a) => prev + a, 0)
536
+ separatorsWide.after = separatorsSizes.slice(index + 1, separatorsSizes.length).reduce((prev, a) => prev + a, 0)
537
+ }
538
+ }
539
+
540
+ let checkElements: boolean = false
541
+ const resizeDocument = (): void => {
542
+ if (checkFullWidth()) checkSizes()
543
+ if (parentElement == null || checkElements || sState !== SeparatorState.NORMAL) return
544
+ checkElements = true
545
+ setTimeout(() => {
546
+ if (parentElement != null && separators != null) {
547
+ const children: Element[] = Array.from(parentElement.children)
548
+ let totalSize: number = 0
549
+ let ind: number = 0
550
+ const rects = new Map<number, { size: number, element: HTMLElement }>()
551
+ const hasSep: string[] = []
552
+ children.forEach((ch) => {
553
+ const rect = ch.getBoundingClientRect()
554
+ if (
555
+ !ch.classList.contains('antiSeparator') &&
556
+ (ch.hasAttribute('data-size') || ch.hasAttribute('data-auto'))
557
+ ) {
558
+ rects.set(ind++, {
559
+ size: direction === 'horizontal' ? rect.width : rect.height,
560
+ element: ch as HTMLElement
561
+ })
562
+ }
563
+ if (ch.hasAttribute('data-float')) hasSep.push(ch.getAttribute('data-float') ?? '')
564
+ totalSize += direction === 'horizontal' ? rect.width : rect.height
565
+ })
566
+ const parentRect = parentElement.getBoundingClientRect()
567
+ let diff = totalSize - (direction === 'horizontal' ? parentRect.width : parentRect.height)
568
+ if (diff > 0) {
569
+ const excluded = separators
570
+ .filter((separ) => separ.float !== undefined && !hasSep.includes(separ.float))
571
+ .map((separ) => separ.float)
572
+ const reverseSep = [...separators].reverse()
573
+ let ind: number = 0
574
+ reverseSep.forEach((separ, i) => {
575
+ const pass = excluded.includes(separ.float)
576
+ if (diff > 0 && !pass && separators != null) {
577
+ const box = rects.get(reverseSep.length - ind - 1)
578
+ if (box != null) {
579
+ const minSize: number = remToPx(separ.minSize === 'auto' ? 20 : separ.minSize)
580
+ const forCrop = box.size - minSize
581
+ if (forCrop > 0) {
582
+ const newSize = forCrop - diff < 0 ? minSize : box.size - diff
583
+ diff -= forCrop
584
+ if (separ.maxSize !== 'auto') {
585
+ if (direction === 'horizontal') {
586
+ box.element.style.width = `${newSize}px`
587
+ box.element.style.minWidth = `${newSize}px`
588
+ box.element.style.maxWidth = `${newSize}px`
589
+ } else {
590
+ box.element.style.height = `${newSize}px`
591
+ box.element.style.minHeight = `${newSize}px`
592
+ box.element.style.maxHeight = `${newSize}px`
593
+ }
594
+ }
595
+ separators[separators.length - i - 1].size = newSize
596
+ }
597
+ }
598
+ ind++
599
+ }
600
+ })
601
+ }
602
+ }
603
+ checkElements = false
604
+ }, 100)
605
+ }
606
+
607
+ onMount(() => {
608
+ if (separator != null) {
609
+ parentElement = separator.parentElement as HTMLElement
610
+ if (sState === SeparatorState.FLOAT) checkParent()
611
+ else if (sState === SeparatorState.NORMAL) {
612
+ checkSibling(true)
613
+ calculateSeparators()
614
+ }
615
+ checkSizes()
616
+ mounted = true
617
+ }
618
+ window.addEventListener('resize', resizeDocument)
619
+ if (sState !== SeparatorState.FLOAT && $separatorsStore.filter((f) => f === name).length === 0) {
620
+ $separatorsStore = [...$separatorsStore, name]
621
+ }
622
+ })
623
+ onDestroy(() => {
624
+ if (mounted) {
625
+ if (sState === SeparatorState.FLOAT) clearParent()
626
+ else if (sState === SeparatorState.NORMAL) clearSibling()
627
+ }
628
+ window.removeEventListener('resize', resizeDocument)
629
+ if (sState !== SeparatorState.FLOAT && $separatorsStore.filter((f) => f === name).length > 0) {
630
+ $separatorsStore = $separatorsStore.filter((f) => f !== name)
631
+ }
632
+ })
633
+ afterUpdate(() => {
634
+ if (mounted) {
635
+ if (sState === SeparatorState.FLOAT) checkParent()
636
+ else if (sState === SeparatorState.NORMAL) checkSibling()
637
+ }
638
+ })
639
+ $: disabled = $separatorsStore.filter((f) => disabledWhen.findIndex((d) => d === f) !== -1).length > 0
640
+ </script>
641
+
642
+ {#if sState !== SeparatorState.HIDDEN}
643
+ <!-- svelte-ignore a11y-no-static-element-interactions -->
644
+ <div
645
+ bind:this={separator}
646
+ style:--separator-size={`${separatorSize}px`}
647
+ style:background-color={color}
648
+ style:pointer-events={disabled ? 'none' : 'all'}
649
+ class="antiSeparator {direction}"
650
+ class:short
651
+ class:hovered={isSeparate}
652
+ data-size={separatorSize}
653
+ on:pointerdown|stopPropagation={pointerDown}
654
+ />
655
+ {/if}
656
+
657
+ <style lang="scss">
658
+ .antiSeparator {
659
+ position: relative;
660
+ flex-shrink: 0;
661
+
662
+ &::after,
663
+ &::before {
664
+ position: absolute;
665
+ content: '';
666
+ z-index: 402;
667
+ }
668
+ &::after {
669
+ background-color: var(--primary-button-default);
670
+ transform-origin: center;
671
+ transition-property: transform;
672
+ transition-timing-function: ease-in-out;
673
+ transition-duration: 0.1s;
674
+ transition-delay: 0s;
675
+ }
676
+ &.hovered::after,
677
+ &:hover::after {
678
+ transition-duration: 0.15s;
679
+ transition-delay: 0.25s;
680
+ }
681
+ &.horizontal {
682
+ width: var(--separator-size, 1px);
683
+ max-width: var(--separator-size, 1px);
684
+ cursor: col-resize;
685
+
686
+ &:not(.short) {
687
+ height: 100%;
688
+ }
689
+ &.short {
690
+ height: calc(100% - 1rem);
691
+ margin-top: 0.5rem;
692
+ }
693
+ &::after,
694
+ &::before {
695
+ top: 0;
696
+ left: -2px;
697
+ width: calc(4px + var(--separator-size, 1px));
698
+ height: 100%;
699
+ }
700
+ &::after {
701
+ transform: scaleX(0);
702
+ }
703
+ &.hovered::after,
704
+ &:hover::after {
705
+ transform: scaleX(1);
706
+ }
707
+ }
708
+ &.vertical {
709
+ height: var(--separator-size, 1px);
710
+ max-height: var(--separator-size, 1px);
711
+ cursor: row-resize;
712
+
713
+ &:not(.short) {
714
+ width: 100%;
715
+ }
716
+ &.short {
717
+ width: calc(100% - 1rem);
718
+ margin-left: 0.5rem;
719
+ }
720
+ &::after,
721
+ &::before {
722
+ top: -2px;
723
+ left: 0;
724
+ width: 100%;
725
+ height: calc(4px + var(--separator-size, 1px));
726
+ }
727
+ &::after {
728
+ transform: scaleY(0);
729
+ }
730
+ &.hovered::after,
731
+ &:hover::after {
732
+ transform: scaleY(1);
733
+ }
734
+ }
735
+ }
736
+ </style>