@hanzo/ui 0.5.23 → 0.6.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (568) hide show
  1. package/.eslintrc.js +4 -0
  2. package/.prettierrc +22 -0
  3. package/.rush/temp/chunked-rush-logs/ui._phase_build.chunks.jsonl +2 -0
  4. package/.rush/temp/chunked-rush-logs/ui._phase_validate.chunks.jsonl +11 -0
  5. package/.rush/temp/hcengineering+ui-_phase_build-16380278e5d28b32a6666092bd103ddbd2c66a56.tar.log +12 -0
  6. package/.rush/temp/hcengineering+ui-_phase_build-16380278e5d28b32a6666092bd103ddbd2c66a56.untar.log +10 -0
  7. package/.rush/temp/hcengineering+ui-_phase_validate-8f047ca66e6a4a177eee65782e723a7dc128d73e.tar.log +65 -0
  8. package/.rush/temp/hcengineering+ui-_phase_validate-8f047ca66e6a4a177eee65782e723a7dc128d73e.untar.log +10 -0
  9. package/.rush/temp/operation/_phase_build/all.log +2 -0
  10. package/.rush/temp/operation/_phase_build/log-chunks.jsonl +2 -0
  11. package/.rush/temp/operation/_phase_build/state.json +3 -0
  12. package/.rush/temp/operation/_phase_validate/all.log +11 -0
  13. package/.rush/temp/operation/_phase_validate/log-chunks.jsonl +11 -0
  14. package/.rush/temp/operation/_phase_validate/state.json +3 -0
  15. package/.rush/temp/shrinkwrap-deps.json +585 -0
  16. package/.validate/tsBuildInfoFile.info +1 -0
  17. package/.validate/validate-err.log +0 -0
  18. package/.validate/validate.log +0 -0
  19. package/CHANGELOG.json +17 -0
  20. package/CHANGELOG.md +9 -0
  21. package/config/rig.json +5 -0
  22. package/jest.config.js +5 -0
  23. package/lang/cs.json +119 -0
  24. package/lang/de.json +119 -0
  25. package/lang/en.json +120 -0
  26. package/lang/es.json +120 -0
  27. package/lang/fr.json +120 -0
  28. package/lang/it.json +120 -0
  29. package/lang/pt.json +120 -0
  30. package/lang/ru.json +120 -0
  31. package/lang/zh.json +120 -0
  32. package/package.json +52 -100
  33. package/postcss.config.js +5 -0
  34. package/rush-logs/ui._phase_build.cache.log +4 -0
  35. package/rush-logs/ui._phase_build.log +2 -0
  36. package/rush-logs/ui._phase_validate.cache.log +4 -0
  37. package/rush-logs/ui._phase_validate.log +11 -0
  38. package/src/__test__/location.test.ts +12 -0
  39. package/src/colors.ts +552 -0
  40. package/src/components/AccordionItem.svelte +132 -0
  41. package/src/components/ActionIcon.svelte +88 -0
  42. package/src/components/BarDashboard.svelte +47 -0
  43. package/src/components/BooleanIcon.svelte +31 -0
  44. package/src/components/Breadcrumb.svelte +102 -0
  45. package/src/components/Breadcrumbs.svelte +73 -0
  46. package/src/components/Button.svelte +196 -0
  47. package/src/components/ButtonBase.svelte +117 -0
  48. package/src/components/ButtonGroup.svelte +48 -0
  49. package/src/components/ButtonIcon.svelte +63 -0
  50. package/src/components/ButtonMenu.svelte +103 -0
  51. package/src/components/ButtonWithDropdown.svelte +120 -0
  52. package/src/components/CheckBox.svelte +239 -0
  53. package/src/components/CheckBoxList.svelte.txt +88 -0
  54. package/src/components/CheckBoxWithLabel.svelte.txt +147 -0
  55. package/src/components/Chevron.svelte +85 -0
  56. package/src/components/Chip.svelte +109 -0
  57. package/src/components/CircleButton.svelte +165 -0
  58. package/src/components/CodeForm.svelte +164 -0
  59. package/src/components/CodeInput.svelte +86 -0
  60. package/src/components/ColorPopup.svelte +119 -0
  61. package/src/components/Component.svelte +152 -0
  62. package/src/components/Dialog.svelte +105 -0
  63. package/src/components/Dock.svelte +53 -0
  64. package/src/components/Dropdown.svelte +91 -0
  65. package/src/components/DropdownLabels.svelte +156 -0
  66. package/src/components/DropdownLabelsIntl.svelte +108 -0
  67. package/src/components/DropdownLabelsPopup.svelte +148 -0
  68. package/src/components/DropdownLabelsPopupIntl.svelte +72 -0
  69. package/src/components/DropdownPopup.svelte +146 -0
  70. package/src/components/DropdownRecord.svelte +50 -0
  71. package/src/components/DropdownRecordPopup.svelte +82 -0
  72. package/src/components/EditBox.svelte +211 -0
  73. package/src/components/EditWithIcon.svelte +130 -0
  74. package/src/components/EmbeddedPDF.svelte +88 -0
  75. package/src/components/ErrorPopup.svelte +27 -0
  76. package/src/components/ErrorPresenter.svelte +32 -0
  77. package/src/components/ExpandCollapse.svelte +42 -0
  78. package/src/components/Expandable.svelte +90 -0
  79. package/src/components/FocusHandler.svelte +21 -0
  80. package/src/components/Fold.svelte +52 -0
  81. package/src/components/Grid.svelte +39 -0
  82. package/src/components/Header.svelte +260 -0
  83. package/src/components/HlsVideo.svelte +170 -0
  84. package/src/components/Hotkey.svelte +50 -0
  85. package/src/components/HotkeyGroup.svelte +25 -0
  86. package/src/components/Html.svelte +24 -0
  87. package/src/components/Icon.svelte +45 -0
  88. package/src/components/IconWithEmoji.svelte +74 -0
  89. package/src/components/Image.svelte +71 -0
  90. package/src/components/Label.svelte +38 -0
  91. package/src/components/Lazy.svelte +29 -0
  92. package/src/components/Like.svelte +73 -0
  93. package/src/components/Link.svelte +75 -0
  94. package/src/components/LinkWrapper.svelte +35 -0
  95. package/src/components/ListView.svelte +153 -0
  96. package/src/components/ListViewItem.svelte +84 -0
  97. package/src/components/Loading.svelte +88 -0
  98. package/src/components/Menu.svelte +205 -0
  99. package/src/components/MiniToggle.svelte +125 -0
  100. package/src/components/Modal.svelte +117 -0
  101. package/src/components/ModeSelector.svelte +37 -0
  102. package/src/components/ModernButton.svelte +61 -0
  103. package/src/components/ModernCheckbox.svelte +123 -0
  104. package/src/components/ModernDialog.svelte +258 -0
  105. package/src/components/ModernEditbox.svelte +256 -0
  106. package/src/components/ModernPopup.svelte +105 -0
  107. package/src/components/ModernRadioButton.svelte +111 -0
  108. package/src/components/ModernTab.svelte +184 -0
  109. package/src/components/ModernToggle.svelte +153 -0
  110. package/src/components/MouseSpeedTracker.svelte +74 -0
  111. package/src/components/MultiProgress.svelte +97 -0
  112. package/src/components/NavGroup.svelte +160 -0
  113. package/src/components/NavItem.svelte +346 -0
  114. package/src/components/NestedDropdown.svelte +62 -0
  115. package/src/components/NestedMenu.svelte +119 -0
  116. package/src/components/NotificationToast.svelte +112 -0
  117. package/src/components/NumberInput.svelte +200 -0
  118. package/src/components/Panel.svelte +324 -0
  119. package/src/components/PanelInstance.svelte +254 -0
  120. package/src/components/PlainTextEditor.svelte +100 -0
  121. package/src/components/Popup.svelte +50 -0
  122. package/src/components/PopupInstance.svelte +390 -0
  123. package/src/components/PopupMenu.svelte +120 -0
  124. package/src/components/Progress.svelte +124 -0
  125. package/src/components/ProgressCircle.svelte +71 -0
  126. package/src/components/RadioButton.svelte +69 -0
  127. package/src/components/RadioGroup.svelte +42 -0
  128. package/src/components/RootStatusComponent.svelte +65 -0
  129. package/src/components/Row.svelte +25 -0
  130. package/src/components/ScrollBox.svelte +98 -0
  131. package/src/components/Scroller.svelte +1063 -0
  132. package/src/components/ScrollerBar.svelte +181 -0
  133. package/src/components/SearchEdit.svelte +46 -0
  134. package/src/components/SearchInput.svelte +213 -0
  135. package/src/components/SearchPicker.svelte +114 -0
  136. package/src/components/Section.svelte +49 -0
  137. package/src/components/SectionEmpty.svelte +38 -0
  138. package/src/components/SelectBox.svelte +76 -0
  139. package/src/components/SelectPopup.svelte +217 -0
  140. package/src/components/Separator.svelte +736 -0
  141. package/src/components/ShowMore.svelte +99 -0
  142. package/src/components/Spinner.svelte +72 -0
  143. package/src/components/SplitButton.svelte +100 -0
  144. package/src/components/StateTag.svelte +79 -0
  145. package/src/components/Status.svelte +33 -0
  146. package/src/components/StepsDialog.svelte +290 -0
  147. package/src/components/StylishEdit.svelte +127 -0
  148. package/src/components/Submenu.svelte +68 -0
  149. package/src/components/Switcher.svelte +55 -0
  150. package/src/components/SwitcherBase.svelte +116 -0
  151. package/src/components/TabList.svelte +290 -0
  152. package/src/components/Tabs.svelte +45 -0
  153. package/src/components/TabsControl.svelte +113 -0
  154. package/src/components/TextArea.svelte +110 -0
  155. package/src/components/TextAreaEditor.svelte +78 -0
  156. package/src/components/TimeLeft.svelte +66 -0
  157. package/src/components/TimeShiftPicker.svelte +84 -0
  158. package/src/components/TimeShiftPopup.svelte +64 -0
  159. package/src/components/TimeShiftPresenter.svelte +59 -0
  160. package/src/components/TimeSince.svelte +86 -0
  161. package/src/components/TimeZonesPopup.svelte +185 -0
  162. package/src/components/Timeline.svelte +754 -0
  163. package/src/components/Toggle.svelte +116 -0
  164. package/src/components/ToggleButton.svelte +176 -0
  165. package/src/components/ToggleWithLabel.svelte +58 -0
  166. package/src/components/TooltipInstance.svelte +613 -0
  167. package/src/components/Video.svelte +40 -0
  168. package/src/components/calendar/DateInputBox.svelte +430 -0
  169. package/src/components/calendar/DatePicker.svelte +46 -0
  170. package/src/components/calendar/DatePopup.svelte +274 -0
  171. package/src/components/calendar/DatePresenter.svelte +392 -0
  172. package/src/components/calendar/DateRangePicker.svelte +50 -0
  173. package/src/components/calendar/DateRangePopup.svelte +76 -0
  174. package/src/components/calendar/DateRangePresenter.svelte +779 -0
  175. package/src/components/calendar/DateTimePresenter.svelte +23 -0
  176. package/src/components/calendar/DateTimeRangePresenter.svelte +28 -0
  177. package/src/components/calendar/DueDatePopup.svelte +93 -0
  178. package/src/components/calendar/DueDatePresenter.svelte +83 -0
  179. package/src/components/calendar/Month.svelte +243 -0
  180. package/src/components/calendar/MonthCalendar.svelte +138 -0
  181. package/src/components/calendar/MonthSquare.svelte +315 -0
  182. package/src/components/calendar/RangeDatePopup.svelte +231 -0
  183. package/src/components/calendar/Shifts.svelte +114 -0
  184. package/src/components/calendar/SimpleDatePopup.svelte +42 -0
  185. package/src/components/calendar/SimpleTimePopup.svelte +41 -0
  186. package/src/components/calendar/TimeInputBox.svelte +282 -0
  187. package/src/components/calendar/TimePopup.svelte +62 -0
  188. package/src/components/calendar/WeekCalendar.svelte +116 -0
  189. package/src/components/calendar/YearCalendar.svelte +67 -0
  190. package/src/components/calendar/icons/DPCalendar.svelte +12 -0
  191. package/src/components/calendar/icons/DPCalendarOver.svelte +15 -0
  192. package/src/components/calendar/icons/DPClock.svelte +13 -0
  193. package/src/components/calendar/icons/DPClockBold.svelte +10 -0
  194. package/src/components/calendar/icons/DPEnd.svelte +13 -0
  195. package/src/components/calendar/icons/DPSetCalendar.svelte +10 -0
  196. package/src/components/calendar/icons/DPStart.svelte +13 -0
  197. package/src/components/calendar/internal/DateUtils.ts +186 -0
  198. package/src/components/emoji/ActionsPopup.svelte +116 -0
  199. package/src/components/emoji/EmojiButton.svelte +146 -0
  200. package/src/components/emoji/EmojiGroup.svelte +105 -0
  201. package/src/components/emoji/EmojiGroupPalette.svelte +58 -0
  202. package/src/components/emoji/EmojiPopup.svelte +430 -0
  203. package/src/components/emoji/SkinTonePopup.svelte +40 -0
  204. package/src/components/emoji/SkinToneTooltip.svelte +36 -0
  205. package/src/components/emoji/icons/Activities.svelte +20 -0
  206. package/src/components/emoji/icons/AnimalsAndNature.svelte +16 -0
  207. package/src/components/emoji/icons/Flags.svelte +14 -0
  208. package/src/components/emoji/icons/FoodAndDrink.svelte +20 -0
  209. package/src/components/emoji/icons/FrequentlyUsed.svelte +17 -0
  210. package/src/components/emoji/icons/GettingWorkDone.svelte +14 -0
  211. package/src/components/emoji/icons/Objects.svelte +15 -0
  212. package/src/components/emoji/icons/Search.svelte +14 -0
  213. package/src/components/emoji/icons/SmileysAndPeople.svelte +23 -0
  214. package/src/components/emoji/icons/Symbols.svelte +23 -0
  215. package/src/components/emoji/icons/TravelAndPlaces.svelte +17 -0
  216. package/src/components/emoji/index.ts +97 -0
  217. package/src/components/emoji/store.ts +44 -0
  218. package/src/components/emoji/types.ts +34 -0
  219. package/src/components/emoji/utils.ts +182 -0
  220. package/src/components/icons/Activity.svelte +16 -0
  221. package/src/components/icons/ActivityEdit.svelte +25 -0
  222. package/src/components/icons/Add.svelte +10 -0
  223. package/src/components/icons/ArrowLeft.svelte +25 -0
  224. package/src/components/icons/ArrowRight.svelte +25 -0
  225. package/src/components/icons/Attachment.svelte +29 -0
  226. package/src/components/icons/Back.svelte +32 -0
  227. package/src/components/icons/BlueCheck.svelte +11 -0
  228. package/src/components/icons/Calendar.svelte +10 -0
  229. package/src/components/icons/Check.svelte +12 -0
  230. package/src/components/icons/CheckAll.svelte +27 -0
  231. package/src/components/icons/CheckCircle.svelte +12 -0
  232. package/src/components/icons/Checkmark.svelte +26 -0
  233. package/src/components/icons/ChevronDown.svelte +27 -0
  234. package/src/components/icons/ChevronLeft.svelte +22 -0
  235. package/src/components/icons/ChevronRight.svelte +22 -0
  236. package/src/components/icons/CircleAdd.svelte +13 -0
  237. package/src/components/icons/Circles.svelte +43 -0
  238. package/src/components/icons/Close.svelte +10 -0
  239. package/src/components/icons/ColStar.svelte +31 -0
  240. package/src/components/icons/CollapseArrow.svelte +8 -0
  241. package/src/components/icons/Copy.svelte +10 -0
  242. package/src/components/icons/Delete.svelte +18 -0
  243. package/src/components/icons/Description.svelte +31 -0
  244. package/src/components/icons/Details.svelte +36 -0
  245. package/src/components/icons/DetailsFilled.svelte +27 -0
  246. package/src/components/icons/Down.svelte +8 -0
  247. package/src/components/icons/DownOutline.svelte +8 -0
  248. package/src/components/icons/Dropdown.svelte +8 -0
  249. package/src/components/icons/DropdownDown.svelte +24 -0
  250. package/src/components/icons/DropdownRight.svelte +24 -0
  251. package/src/components/icons/Edit.svelte +26 -0
  252. package/src/components/icons/Emoji.svelte +10 -0
  253. package/src/components/icons/Error.svelte +27 -0
  254. package/src/components/icons/Expand.svelte +10 -0
  255. package/src/components/icons/File.svelte +25 -0
  256. package/src/components/icons/Filter.svelte +26 -0
  257. package/src/components/icons/Folder.svelte +13 -0
  258. package/src/components/icons/FolderCollapsed.svelte +34 -0
  259. package/src/components/icons/FolderExpanded.svelte +34 -0
  260. package/src/components/icons/Forward.svelte +8 -0
  261. package/src/components/icons/HalfUpDown.svelte +7 -0
  262. package/src/components/icons/History.svelte +10 -0
  263. package/src/components/icons/Info.svelte +26 -0
  264. package/src/components/icons/KeyCommand.svelte +12 -0
  265. package/src/components/icons/KeyOption.svelte +8 -0
  266. package/src/components/icons/KeyShift.svelte +8 -0
  267. package/src/components/icons/Left.svelte +10 -0
  268. package/src/components/icons/Like.svelte +25 -0
  269. package/src/components/icons/Link.svelte +10 -0
  270. package/src/components/icons/MaxWidth.svelte +27 -0
  271. package/src/components/icons/Maximize.svelte +25 -0
  272. package/src/components/icons/MenuClose.svelte +28 -0
  273. package/src/components/icons/MenuOpen.svelte +26 -0
  274. package/src/components/icons/MinWidth.svelte +27 -0
  275. package/src/components/icons/Minimize.svelte +28 -0
  276. package/src/components/icons/Mixin.svelte +38 -0
  277. package/src/components/icons/MoreH.svelte +16 -0
  278. package/src/components/icons/MoreV.svelte +16 -0
  279. package/src/components/icons/MoreV2.svelte +29 -0
  280. package/src/components/icons/NavNext.svelte +10 -0
  281. package/src/components/icons/NavPrev.svelte +10 -0
  282. package/src/components/icons/Open.svelte +11 -0
  283. package/src/components/icons/OpenedArrow.svelte +26 -0
  284. package/src/components/icons/Options.svelte +12 -0
  285. package/src/components/icons/Redo.svelte +10 -0
  286. package/src/components/icons/Right.svelte +26 -0
  287. package/src/components/icons/Scale.svelte +13 -0
  288. package/src/components/icons/ScaleFull.svelte +13 -0
  289. package/src/components/icons/Scribble.svelte +10 -0
  290. package/src/components/icons/Search.svelte +12 -0
  291. package/src/components/icons/Send.svelte +10 -0
  292. package/src/components/icons/Settings.svelte +13 -0
  293. package/src/components/icons/Share.svelte +13 -0
  294. package/src/components/icons/SquareExpand.svelte +13 -0
  295. package/src/components/icons/Start.svelte +10 -0
  296. package/src/components/icons/Stop.svelte +8 -0
  297. package/src/components/icons/TableOfContents.svelte +35 -0
  298. package/src/components/icons/Thread.svelte +29 -0
  299. package/src/components/icons/ToDetails.svelte +28 -0
  300. package/src/components/icons/Undo.svelte +10 -0
  301. package/src/components/icons/Up.svelte +8 -0
  302. package/src/components/icons/UpOutline.svelte +8 -0
  303. package/src/components/internal/Clock.svelte +42 -0
  304. package/src/components/internal/ClockFace.svelte +148 -0
  305. package/src/components/internal/ClockPopup.svelte +91 -0
  306. package/src/components/internal/ErrorBoundary.ts +33 -0
  307. package/src/components/internal/ErrorComponent.svelte +37 -0
  308. package/src/components/internal/Root.svelte +323 -0
  309. package/src/components/internal/RootBarExtension.svelte +32 -0
  310. package/src/components/internal/Settings.svelte +39 -0
  311. package/src/components/internal/SettingsPopup.svelte +196 -0
  312. package/src/components/internal/ThemeButton.svelte +151 -0
  313. package/src/components/internal/icons/CheckCircled.svelte +11 -0
  314. package/src/components/internal/icons/Computer.svelte +15 -0
  315. package/src/components/internal/icons/FontSize.svelte +13 -0
  316. package/src/components/internal/icons/Language.svelte +17 -0
  317. package/src/components/internal/icons/Phone.svelte +18 -0
  318. package/src/components/internal/icons/Search.svelte +12 -0
  319. package/src/components/internal/icons/Settings.svelte +13 -0
  320. package/src/components/internal/icons/Theme.svelte +9 -0
  321. package/src/components/internal/icons/WiFi.svelte +21 -0
  322. package/src/components/notifications/Notification.svelte +34 -0
  323. package/src/components/notifications/Notification.ts +16 -0
  324. package/src/components/notifications/NotificationPosition.ts +6 -0
  325. package/src/components/notifications/NotificationSeverity.ts +6 -0
  326. package/src/components/notifications/Notifications.svelte +53 -0
  327. package/src/components/notifications/actions.ts +42 -0
  328. package/src/components/notifications/store.ts +16 -0
  329. package/src/components/wizard/ModernWizardBar.svelte +105 -0
  330. package/src/components/wizard/ModernWizardDialog.svelte +144 -0
  331. package/src/components/wizard/Wizard.svelte +59 -0
  332. package/src/components/wizard/WizardStep.svelte +144 -0
  333. package/src/focus.ts +139 -0
  334. package/src/index.ts +338 -0
  335. package/src/lazy.ts +93 -0
  336. package/src/location.ts +259 -0
  337. package/src/modals.ts +5 -0
  338. package/src/panelup.ts +70 -0
  339. package/src/plugin.ts +156 -0
  340. package/src/popups.ts +486 -0
  341. package/src/resize.ts +179 -0
  342. package/src/svg.d.ts +4 -0
  343. package/src/tooltips.ts +152 -0
  344. package/src/types.ts +545 -0
  345. package/src/utils.ts +420 -0
  346. package/svelte.config.js +5 -0
  347. package/tsconfig.json +9 -0
  348. package/types/__test__/location.test.d.ts +2 -0
  349. package/types/__test__/location.test.d.ts.map +1 -0
  350. package/types/colors.d.ts +163 -0
  351. package/types/colors.d.ts.map +1 -0
  352. package/types/components/calendar/internal/DateUtils.d.ts +34 -0
  353. package/types/components/calendar/internal/DateUtils.d.ts.map +1 -0
  354. package/types/components/emoji/index.d.ts +11 -0
  355. package/types/components/emoji/index.d.ts.map +1 -0
  356. package/types/components/emoji/store.d.ts +12 -0
  357. package/types/components/emoji/store.d.ts.map +1 -0
  358. package/types/components/emoji/types.d.ts +20 -0
  359. package/types/components/emoji/types.d.ts.map +1 -0
  360. package/types/components/emoji/utils.d.ts +17 -0
  361. package/types/components/emoji/utils.d.ts.map +1 -0
  362. package/types/components/internal/ErrorBoundary.d.ts +5 -0
  363. package/types/components/internal/ErrorBoundary.d.ts.map +1 -0
  364. package/types/components/notifications/Notification.d.ts +16 -0
  365. package/types/components/notifications/Notification.d.ts.map +1 -0
  366. package/types/components/notifications/NotificationPosition.d.ts +7 -0
  367. package/types/components/notifications/NotificationPosition.d.ts.map +1 -0
  368. package/types/components/notifications/NotificationSeverity.d.ts +7 -0
  369. package/types/components/notifications/NotificationSeverity.d.ts.map +1 -0
  370. package/types/components/notifications/actions.d.ts +6 -0
  371. package/types/components/notifications/actions.d.ts.map +1 -0
  372. package/types/components/notifications/store.d.ts +9 -0
  373. package/types/components/notifications/store.d.ts.map +1 -0
  374. package/types/focus.d.ts +32 -0
  375. package/types/focus.d.ts.map +1 -0
  376. package/types/index.d.ts +254 -0
  377. package/types/index.d.ts.map +1 -0
  378. package/types/lazy.d.ts +6 -0
  379. package/types/lazy.d.ts.map +1 -0
  380. package/types/location.d.ts +38 -0
  381. package/types/location.d.ts.map +1 -0
  382. package/types/modals.d.ts +5 -0
  383. package/types/modals.d.ts.map +1 -0
  384. package/types/panelup.d.ts +17 -0
  385. package/types/panelup.d.ts.map +1 -0
  386. package/types/plugin.d.ts +135 -0
  387. package/types/plugin.d.ts.map +1 -0
  388. package/types/popups.d.ts +65 -0
  389. package/types/popups.d.ts.map +1 -0
  390. package/types/resize.d.ts +32 -0
  391. package/types/resize.d.ts.map +1 -0
  392. package/types/tooltips.d.ts +8 -0
  393. package/types/tooltips.d.ts.map +1 -0
  394. package/types/types.d.ts +373 -0
  395. package/types/types.d.ts.map +1 -0
  396. package/types/utils.d.ts +125 -0
  397. package/types/utils.d.ts.map +1 -0
  398. package/assets/lux-site-icons/android-chrome-192x192.png +0 -0
  399. package/assets/lux-site-icons/android-chrome-512x512.png +0 -0
  400. package/assets/lux-site-icons/apple-touch-icon.png +0 -0
  401. package/assets/lux-site-icons/favicon-16x16.png +0 -0
  402. package/assets/lux-site-icons/favicon-32x32.png +0 -0
  403. package/assets/lux-site-icons/favicon.ico +0 -0
  404. package/assets/standard-docs/LUX-NFT-Terms-and-Conditions.pdf +0 -0
  405. package/assets/standard-docs/LUX-Privacy-Policy.pdf +0 -0
  406. package/blocks/components/accordian-block.tsx +0 -48
  407. package/blocks/components/block-component-props.ts +0 -11
  408. package/blocks/components/bullet-cards-block.tsx +0 -45
  409. package/blocks/components/card-block.tsx +0 -213
  410. package/blocks/components/carte-blanche-block/index.tsx +0 -127
  411. package/blocks/components/carte-blanche-block/variant-content-left.tsx +0 -49
  412. package/blocks/components/content.tsx +0 -70
  413. package/blocks/components/cta-block.tsx +0 -98
  414. package/blocks/components/enh-heading-block.tsx +0 -205
  415. package/blocks/components/grid-block/grid-block-mutator.ts +0 -12
  416. package/blocks/components/grid-block/index.tsx +0 -83
  417. package/blocks/components/grid-block/mutator-registry.ts +0 -10
  418. package/blocks/components/grid-block/table-borders.mutator.ts +0 -47
  419. package/blocks/components/group-block.tsx +0 -83
  420. package/blocks/components/heading-block.tsx +0 -88
  421. package/blocks/components/image-block.tsx +0 -108
  422. package/blocks/components/index.ts +0 -30
  423. package/blocks/components/screenful-block/content.tsx +0 -120
  424. package/blocks/components/screenful-block/index.tsx +0 -79
  425. package/blocks/components/screenful-block/poster-background.tsx +0 -34
  426. package/blocks/components/screenful-block/video-background.tsx +0 -45
  427. package/blocks/components/space-block.tsx +0 -66
  428. package/blocks/components/video-block.tsx +0 -137
  429. package/blocks/def/accordian-block.ts +0 -14
  430. package/blocks/def/block.ts +0 -7
  431. package/blocks/def/bullet-cards-block.ts +0 -21
  432. package/blocks/def/card-block.ts +0 -24
  433. package/blocks/def/carte-blanche-block.ts +0 -21
  434. package/blocks/def/cta-block.ts +0 -19
  435. package/blocks/def/element-block.ts +0 -11
  436. package/blocks/def/enh-heading-block.ts +0 -45
  437. package/blocks/def/grid-block.ts +0 -16
  438. package/blocks/def/group-block.ts +0 -11
  439. package/blocks/def/heading-block.ts +0 -15
  440. package/blocks/def/image-block.ts +0 -31
  441. package/blocks/def/index.ts +0 -35
  442. package/blocks/def/screenful-block.ts +0 -54
  443. package/blocks/def/space-block.ts +0 -64
  444. package/blocks/def/video-block.ts +0 -28
  445. package/blocks/index.ts +0 -2
  446. package/common/chat-widget.tsx +0 -75
  447. package/common/contact-dialog/contact-form.tsx +0 -111
  448. package/common/contact-dialog/disclaimer.tsx +0 -13
  449. package/common/contact-dialog/index.tsx +0 -48
  450. package/common/copyright.tsx +0 -21
  451. package/common/drawer-menu.tsx +0 -51
  452. package/common/footer.tsx +0 -77
  453. package/common/head-metadata/from-next/metadata-types.ts +0 -158
  454. package/common/head-metadata/from-next/opengraph-types.ts +0 -267
  455. package/common/head-metadata/from-next/twitter-types.ts +0 -92
  456. package/common/head-metadata/index.tsx +0 -208
  457. package/common/header/index.tsx +0 -57
  458. package/common/header/mobile-nav.tsx +0 -72
  459. package/common/header/theme-toggle.tsx +0 -26
  460. package/common/icons/github.tsx +0 -14
  461. package/common/icons/index.tsx +0 -34
  462. package/common/icons/lux-logo.tsx +0 -10
  463. package/common/icons/secure-delivery.tsx +0 -13
  464. package/common/icons/social-icon.tsx +0 -35
  465. package/common/icons/youtube-logo.tsx +0 -59
  466. package/common/index.ts +0 -14
  467. package/common/logo.tsx +0 -71
  468. package/common/mini-chart/index.tsx +0 -8
  469. package/common/mini-chart/mini-chart-props.ts +0 -44
  470. package/common/mini-chart/mini-chart.tsx +0 -76
  471. package/common/mini-chart/wrapper.tsx +0 -23
  472. package/context-providers/index.ts +0 -1
  473. package/context-providers/theme-provider.tsx +0 -20
  474. package/next/README.md +0 -11
  475. package/next/analytics/fpixel.ts +0 -16
  476. package/next/analytics/pixel-analytics.tsx +0 -55
  477. package/next/determine-device-middleware.ts +0 -16
  478. package/next/fonts/DrukTextWide-Bold-Trial.otf +0 -0
  479. package/next/fonts/DrukTextWide-Heavy-Trial.otf +0 -0
  480. package/next/fonts/DrukTextWide-Medium-Trial.otf +0 -0
  481. package/next/fonts/DrukWide-Bold-Trial.otf +0 -0
  482. package/next/fonts/DrukWide-Heavy-Trial.otf +0 -0
  483. package/next/fonts/DrukWide-Medium-Trial.otf +0 -0
  484. package/next/get-app-router-font-classes.ts +0 -12
  485. package/next/load-and-return-lux-next-fonts-on-import.ts +0 -94
  486. package/next/next-font-desc.ts +0 -28
  487. package/next/not-found-content.mdx +0 -4
  488. package/next/not-found.tsx +0 -23
  489. package/next/pages-router-font-vars.tsx +0 -18
  490. package/next/root-layout.tsx +0 -60
  491. package/primitives/accordion.tsx +0 -61
  492. package/primitives/action-button.tsx +0 -46
  493. package/primitives/apply-typography.tsx +0 -55
  494. package/primitives/avatar.tsx +0 -49
  495. package/primitives/badge.tsx +0 -36
  496. package/primitives/button.tsx +0 -73
  497. package/primitives/calendar.tsx +0 -72
  498. package/primitives/card.tsx +0 -83
  499. package/primitives/checkbox.tsx +0 -32
  500. package/primitives/command.tsx +0 -155
  501. package/primitives/dialog-video-controller.tsx +0 -38
  502. package/primitives/dialog.tsx +0 -152
  503. package/primitives/form.tsx +0 -179
  504. package/primitives/index.ts +0 -144
  505. package/primitives/inline-icon.tsx +0 -37
  506. package/primitives/input.tsx +0 -30
  507. package/primitives/label.tsx +0 -28
  508. package/primitives/link-element.tsx +0 -104
  509. package/primitives/main.tsx +0 -17
  510. package/primitives/mdx-link.tsx +0 -22
  511. package/primitives/nav-items.tsx +0 -48
  512. package/primitives/popover.tsx +0 -35
  513. package/primitives/progress.tsx +0 -27
  514. package/primitives/scroll-area.tsx +0 -47
  515. package/primitives/select.tsx +0 -169
  516. package/primitives/separator.tsx +0 -29
  517. package/primitives/sheet.tsx +0 -175
  518. package/primitives/skeleton.tsx +0 -15
  519. package/primitives/switch.tsx +0 -33
  520. package/primitives/table.tsx +0 -117
  521. package/primitives/tabs.tsx +0 -60
  522. package/primitives/tailwind-indicator.tsx +0 -19
  523. package/primitives/text-area.tsx +0 -26
  524. package/primitives/toast.tsx +0 -129
  525. package/primitives/toaster.tsx +0 -37
  526. package/primitives/use-toast.ts +0 -192
  527. package/primitives/video-player.tsx +0 -26
  528. package/primitives/youtube-embed.tsx +0 -83
  529. package/siteDef/footer/community.tsx +0 -67
  530. package/siteDef/footer/company.ts +0 -37
  531. package/siteDef/footer/ecosystem.ts +0 -37
  532. package/siteDef/footer/index.tsx +0 -26
  533. package/siteDef/footer/legal.ts +0 -28
  534. package/siteDef/footer/network.ts +0 -33
  535. package/siteDef/footer/svg/warpcast-logo.svg +0 -12
  536. package/siteDef/main-nav.ts +0 -35
  537. package/style/globals.css +0 -13
  538. package/style/hanzo-common.css +0 -32
  539. package/style/hanzo-default-colors.css +0 -79
  540. package/style/social-svg.css +0 -3
  541. package/tailwind/colors.tailwind.js +0 -46
  542. package/tailwind/fonts.tailwind.ts +0 -31
  543. package/tailwind/index.ts +0 -18
  544. package/tailwind/lux-tw-fonts.ts +0 -37
  545. package/tailwind/safelist.tailwind.js +0 -26
  546. package/tailwind/screens.tailwind.js +0 -8
  547. package/tailwind/spacing.tailwind.js +0 -65
  548. package/tailwind/tailwind.config.base.js +0 -906
  549. package/tailwind/tw-font-desc.ts +0 -15
  550. package/tailwind/typo-plugin/get-plugin-styles.js +0 -676
  551. package/tailwind/typo-plugin/index.d.ts +0 -9
  552. package/tailwind/typo-plugin/index.js +0 -141
  553. package/tailwind/typo-plugin/utils.js +0 -60
  554. package/tailwind/typography-test.mdx +0 -36
  555. package/types/breakpoints.ts +0 -11
  556. package/types/bullet-item.ts +0 -10
  557. package/types/button-def.ts +0 -39
  558. package/types/contact-info.ts +0 -11
  559. package/types/dimensions.ts +0 -20
  560. package/types/grid-def.ts +0 -56
  561. package/types/icon.ts +0 -10
  562. package/types/image-def.ts +0 -28
  563. package/types/index.ts +0 -29
  564. package/types/link-def.ts +0 -59
  565. package/types/site-def.ts +0 -34
  566. package/types/t-shirt-size.ts +0 -5
  567. package/util/index.ts +0 -81
  568. package/util/specifier.ts +0 -43
@@ -0,0 +1,88 @@
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 { Asset, IntlString } from '@hanzo/platform'
17
+ import { ComponentType } from 'svelte'
18
+ import type { AnySvelteComponent, TooltipAlignment } from '../types'
19
+
20
+ import { tooltip } from '../tooltips'
21
+ import Icon from './Icon.svelte'
22
+
23
+ export let label: IntlString = '' as IntlString
24
+ export let labelProps: any = undefined
25
+ export let direction: TooltipAlignment | undefined = undefined
26
+ export let icon: Asset | AnySvelteComponent | ComponentType
27
+ export let iconProps: any | undefined = undefined
28
+ export let size: 'x-small' | 'small' | 'medium' | 'large'
29
+ export let action: (ev: MouseEvent) => Promise<void> | void = async () => {}
30
+ export let invisible: boolean = false
31
+ export let disabled: boolean = false
32
+ export let keys: string[] | undefined = undefined
33
+ </script>
34
+
35
+ <button
36
+ class="button {size}"
37
+ use:tooltip={{ label, direction, props: labelProps, keys }}
38
+ tabindex="0"
39
+ on:click|stopPropagation|preventDefault={action}
40
+ on:contextmenu
41
+ {disabled}
42
+ >
43
+ <div class="icon {size}" class:invisible>
44
+ <Icon {icon} {size} {iconProps} />
45
+ </div>
46
+ </button>
47
+
48
+ <style lang="scss">
49
+ .button {
50
+ color: inherit;
51
+ border: none;
52
+ border-radius: 0.125rem;
53
+ cursor: pointer;
54
+
55
+ .icon {
56
+ color: var(--theme-halfcontent-color);
57
+ &.invisible {
58
+ opacity: 0;
59
+ }
60
+ }
61
+ &:not(:disabled):hover .icon {
62
+ color: var(--theme-caption-color);
63
+ opacity: 1;
64
+ }
65
+ &:focus-visible {
66
+ box-shadow: 0 0 0 2px var(--primary-button-outline);
67
+ .icon {
68
+ color: var(--theme-caption-color);
69
+ opacity: 1;
70
+ }
71
+ }
72
+ &:disabled {
73
+ cursor: default;
74
+ }
75
+ }
76
+ .small {
77
+ width: 1rem;
78
+ height: 1rem;
79
+ }
80
+ .medium {
81
+ width: 1.25rem;
82
+ height: 1.25rem;
83
+ }
84
+ .large {
85
+ width: 1.5rem;
86
+ height: 1.5rem;
87
+ }
88
+ </style>
@@ -0,0 +1,47 @@
1
+ <!--
2
+ // Copyright © 2022 Hardcore Engineering Inc.
3
+ //
4
+ // Licensed under the Eclipse Public License, Version 2.0 (the "License");
5
+ // you may not use this file except in compliance with the License. You may
6
+ // obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ //
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+ -->
15
+ <script lang="ts">
16
+ import { DashboardItem } from '../types'
17
+ import MultiProgress from './MultiProgress.svelte'
18
+
19
+ export let items: DashboardItem[] = []
20
+
21
+ $: max = Math.max(...items.map((p) => p.values.reduce((acc, val) => (acc += val.value), 0)))
22
+ </script>
23
+
24
+ <div class="grid">
25
+ {#each items as item (item._id)}
26
+ <div>
27
+ {item.label}
28
+ </div>
29
+ <div class="w-full max-w-240">
30
+ <MultiProgress {max} values={item.values} />
31
+ </div>
32
+ {/each}
33
+ </div>
34
+
35
+ <style lang="scss">
36
+ .grid {
37
+ display: grid;
38
+ grid-auto-flow: column;
39
+ justify-content: flex-start;
40
+ align-items: center;
41
+ row-gap: 1rem;
42
+ column-gap: 1rem;
43
+
44
+ grid-template-columns: 1fr 5fr;
45
+ grid-auto-flow: row;
46
+ }
47
+ </style>
@@ -0,0 +1,31 @@
1
+ <script lang="ts">
2
+ export let value: any
3
+ </script>
4
+
5
+ <div class="container" class:yes={value === true} class:no={value === false}>
6
+ <svg class="svg-small" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
7
+ <circle class:yes={value === true} class:no={value === false} cx="8" cy="8" r="6" />
8
+ {#if value === true}
9
+ <polygon fill="#fff" points="7.4,10.9 4.9,8.4 5.7,7.6 7.3,9.1 10.2,5.6 11.1,6.4 " />
10
+ {:else if value === false}
11
+ <polygon fill="#fff" points="10.7,6 10,5.3 8,7.3 6,5.3 5.3,6 7.3,8 5.3,10 6,10.7 8,8.7 10,10.7 10.7,10 8.7,8 " />
12
+ {:else}
13
+ <path
14
+ fill="#fff"
15
+ d="M7.3,9.3h1.3V9c0.1-0.5,0.6-0.9,1.1-1.4c0.4-0.4,0.8-0.9,0.8-1.6c0-1.1-0.8-1.8-2.2-1.8c-1.4,0-2.4,0.8-2.5,2.2 h1.4c0.1-0.6,0.4-1,1-1C8.8,5.4,9,5.7,9,6.2c0,0.4-0.3,0.7-0.7,1.1c-0.5,0.5-1,0.9-1,1.7V9.3z M8,11.6c0.5,0,0.9-0.4,0.9-0.9 c0-0.5-0.4-0.9-0.9-0.9c-0.5,0-0.9,0.4-0.9,0.9C7.1,11.2,7.5,11.6,8,11.6z"
16
+ />
17
+ {/if}
18
+ </svg>
19
+ </div>
20
+
21
+ <style lang="scss">
22
+ .container {
23
+ fill: #77818e;
24
+ &.yes {
25
+ fill: #77c07b;
26
+ }
27
+ &.no {
28
+ fill: #f96e50;
29
+ }
30
+ }
31
+ </style>
@@ -0,0 +1,102 @@
1
+ <!--
2
+ // Copyright © 2023 Hardcore Engineering Inc.
3
+ //
4
+ // Licensed under the Eclipse Public License, Version 2.0 (the "License");
5
+ // you may not use this file except in compliance with the License. You may
6
+ // obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ //
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+ -->
15
+ <script lang="ts">
16
+ import type { Asset, IntlString } from '@hanzo/platform'
17
+ import { AnySvelteComponent } from '../types'
18
+ import { ComponentType } from 'svelte'
19
+ import Icon from './Icon.svelte'
20
+ import Label from './Label.svelte'
21
+
22
+ export let icon: Asset | AnySvelteComponent | ComponentType | undefined = undefined
23
+ export let iconProps: any | undefined = undefined
24
+ export let iconWidth: string | undefined = undefined
25
+ export let iconMargin: string | undefined = undefined
26
+ export let withoutIconBackground = false
27
+ export let label: IntlString | undefined = undefined
28
+ export let title: string | undefined = undefined
29
+ export let size: 'large' | 'small'
30
+ export let isCurrent: boolean = false
31
+ </script>
32
+
33
+ <button class="hulyBreadcrumb-container {size}" class:current={isCurrent} on:click>
34
+ {#if size === 'large' && icon}
35
+ <div
36
+ class="hulyBreadcrumb-avatar"
37
+ style:width={iconWidth ?? null}
38
+ style:margin={iconMargin}
39
+ class:withoutIconBackground
40
+ >
41
+ <Icon {icon} size={'small'} {iconProps} />
42
+ </div>
43
+ {/if}
44
+ <span
45
+ class="{size === 'large'
46
+ ? 'heading-medium-16'
47
+ : 'font-regular-14'} line-height-auto hulyBreadcrumb-label overflow-label"
48
+ >
49
+ {#if label}<Label {label} />{/if}
50
+ {#if title}{title}{/if}
51
+ </span>
52
+ </button>
53
+
54
+ <style lang="scss">
55
+ .hulyBreadcrumb-container {
56
+ display: flex;
57
+ align-items: center;
58
+ gap: var(--spacing-0_75);
59
+ margin: 0;
60
+ padding: 0 var(--spacing-1);
61
+ min-width: 0;
62
+ border: none;
63
+ outline: none;
64
+ cursor: default;
65
+
66
+ .hulyBreadcrumb-avatar {
67
+ display: flex;
68
+ justify-content: center;
69
+ align-items: center;
70
+ flex-shrink: 0;
71
+ padding: var(--spacing-0_5);
72
+ width: var(--global-extra-small-Size);
73
+ height: var(--global-extra-small-Size);
74
+ color: var(--global-secondary-TextColor);
75
+ background-color: var(--global-ui-BackgroundColor);
76
+ border-radius: var(--extra-small-BorderRadius);
77
+
78
+ &.withoutIconBackground {
79
+ background-color: transparent;
80
+ }
81
+ }
82
+ .hulyBreadcrumb-label {
83
+ padding: var(--spacing-0_5) 0;
84
+ color: var(--global-secondary-TextColor);
85
+ }
86
+ &.current .hulyBreadcrumb-label {
87
+ font-weight: 700;
88
+ }
89
+ &:not(.current) {
90
+ cursor: pointer;
91
+
92
+ &:hover {
93
+ .hulyBreadcrumb-avatar {
94
+ background-color: var(--global-ui-hover-BackgroundColor);
95
+ }
96
+ .hulyBreadcrumb-label {
97
+ color: var(--global-primary-LinkColor);
98
+ }
99
+ }
100
+ }
101
+ }
102
+ </style>
@@ -0,0 +1,73 @@
1
+ <!--
2
+ // Copyright © 2023 Hardcore Engineering Inc.
3
+ //
4
+ // Licensed under the Eclipse Public License, Version 2.0 (the "License");
5
+ // you may not use this file except in compliance with the License. You may
6
+ // obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ //
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+ -->
15
+ <script lang="ts">
16
+ import type { IntlString } from '@hanzo/platform'
17
+ import { createEventDispatcher } from 'svelte'
18
+ import { BreadcrumbItem } from '../types'
19
+ import Breadcrumb from './Breadcrumb.svelte'
20
+ import ChevronRight from './icons/ChevronRight.svelte'
21
+ import Label from './Label.svelte'
22
+
23
+ export let items: BreadcrumbItem[]
24
+ export let afterLabel: IntlString | undefined = undefined
25
+ export let size: 'large' | 'small' = 'large'
26
+ export let selected: number | null = null
27
+ export let currentOnly: boolean = false
28
+ export let hideAfter: boolean = false
29
+
30
+ const dispatch = createEventDispatcher()
31
+ </script>
32
+
33
+ <div class="hulyBreadcrumbs-container {size}">
34
+ {#each items as item, i}
35
+ {#if i !== 0}<ChevronRight size={'small'} />{/if}
36
+ <Breadcrumb
37
+ {...item}
38
+ {size}
39
+ isCurrent={selected === i || currentOnly}
40
+ on:click={() => {
41
+ if (selected !== i) dispatch('select', i)
42
+ }}
43
+ />
44
+ {/each}
45
+ {#if (afterLabel || $$slots.afterLabel) && !hideAfter}
46
+ <span class="hulyBreadcrumbs-afterLabel font-medium-12">
47
+ {#if afterLabel}<Label label={afterLabel} />{/if}
48
+ <slot name="afterLabel" />
49
+ </span>
50
+ {/if}
51
+ </div>
52
+
53
+ <style lang="scss">
54
+ .hulyBreadcrumbs-container {
55
+ display: flex;
56
+ align-items: center;
57
+ height: var(--global-small-Size);
58
+ min-width: 0;
59
+
60
+ .hulyBreadcrumbs-afterLabel {
61
+ max-width: 10rem;
62
+ white-space: nowrap;
63
+ word-break: break-all;
64
+ text-overflow: ellipsis;
65
+ overflow: hidden;
66
+ padding: var(--spacing-0_25) var(--spacing-0_5);
67
+ text-transform: uppercase;
68
+ background-color: var(--global-ui-hover-BackgroundColor);
69
+ color: var(--global-secondary-TextColor);
70
+ border-radius: 0.25rem;
71
+ }
72
+ }
73
+ </style>
@@ -0,0 +1,196 @@
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 { Asset, IntlString } from '@hanzo/platform'
17
+ import { ComponentType, onMount } from 'svelte'
18
+ import { checkAdaptiveMatching, deviceOptionsStore as deviceInfo } from '..'
19
+ import { registerFocus } from '../focus'
20
+ import { tooltip } from '../tooltips'
21
+ import type {
22
+ AnySvelteComponent,
23
+ ButtonKind,
24
+ ButtonShape,
25
+ ButtonSize,
26
+ IconProps,
27
+ LabelAndProps,
28
+ WidthType
29
+ } from '../types'
30
+ import Icon from './Icon.svelte'
31
+ import Label from './Label.svelte'
32
+ import Spinner from './Spinner.svelte'
33
+ import { Analytics } from '@hanzo/analytics'
34
+
35
+ export let label: IntlString | undefined = undefined
36
+ export let labelParams: Record<string, any> = {}
37
+ export let kind: ButtonKind = 'regular'
38
+ export let size: ButtonSize = 'medium'
39
+ export let shape: ButtonShape = undefined
40
+ export let icon: Asset | AnySvelteComponent | ComponentType | undefined = undefined
41
+ export let iconProps: IconProps = {}
42
+ export let iconRight: Asset | AnySvelteComponent | ComponentType | undefined = undefined
43
+ export let iconRightProps: IconProps = {}
44
+ export let justify: 'left' | 'center' = 'center'
45
+ export let padding: string = '0 .75rem'
46
+ export let disabled: boolean = false
47
+ export let loading: boolean = false
48
+ export let width: string | undefined = undefined
49
+ export let minWidth: string | undefined = undefined
50
+ export let height: string | undefined = undefined
51
+ export let resetIconSize: 'none' | 'icon' | 'full' = 'none'
52
+ export let highlight: boolean = false
53
+ export let pressed: boolean = false
54
+ export let selected: boolean = false
55
+ export let notSelected: boolean = false
56
+ export let focus: boolean = false
57
+ export let click: boolean = false
58
+ export let title: string | undefined = undefined
59
+ export let borderStyle: 'solid' | 'dashed' | 'none' = 'solid'
60
+ export let id: string | undefined = undefined
61
+ export let dataId: string | undefined = undefined
62
+ export let input: HTMLButtonElement | undefined = undefined
63
+ export let showTooltip: LabelAndProps | undefined = undefined
64
+ export let short: boolean = false
65
+ export let shrink: number = 0
66
+ export let flex: string | undefined = undefined
67
+ export let accent: boolean = false
68
+ export let noFocus: boolean = false
69
+ export let noPrint: boolean = false
70
+ export let adaptiveShrink: WidthType | null = null
71
+ export let gap: 'medium' | 'large' = 'medium'
72
+ export let stopPropagation: boolean = true
73
+ export let event: string | undefined = undefined
74
+
75
+ $: iconSize = iconProps?.size !== undefined ? iconProps.size : size && size === 'inline' ? 'inline' : 'small'
76
+ $: iconRightSize = iconRightProps?.size !== undefined ? iconRightProps.size : 'x-small'
77
+ let iconOnly: boolean = false
78
+ $: iconOnly =
79
+ label === undefined &&
80
+ $$slots.content === undefined &&
81
+ (icon !== undefined || iconRight !== undefined || $$slots.icon || $$slots.iconRight)
82
+ $: primary = ['primary', 'secondary', 'positive', 'negative'].some((p) => p === kind)
83
+
84
+ $: devSize = $deviceInfo.size
85
+ $: adaptive = adaptiveShrink !== null ? checkAdaptiveMatching(devSize, adaptiveShrink) : false
86
+
87
+ onMount(() => {
88
+ if (focus && input) {
89
+ input.focus()
90
+ focus = false
91
+ }
92
+ if (click && input) {
93
+ input.click()
94
+ click = false
95
+ }
96
+ })
97
+
98
+ // Focusable control with index
99
+ export let focusIndex = -1
100
+ const { idx, focusManager } = registerFocus(focusIndex, {
101
+ focus: () => {
102
+ if (!disabled) {
103
+ input?.focus()
104
+ }
105
+ return !disabled && input != null
106
+ },
107
+ isFocus: () => document.activeElement === input
108
+ })
109
+
110
+ $: if (idx !== -1 && focusManager) {
111
+ focusManager.updateFocus(idx, focusIndex)
112
+ }
113
+
114
+ const updateFocus = () => {
115
+ focusManager?.setFocus(idx)
116
+ }
117
+ $: if (input != null) {
118
+ input.addEventListener('focus', updateFocus, { once: true })
119
+ }
120
+
121
+ function preventHandler (e: MouseEvent) {
122
+ if (stopPropagation) {
123
+ e.preventDefault()
124
+ e.stopPropagation()
125
+ }
126
+ }
127
+ </script>
128
+
129
+ <!-- {focusIndex} -->
130
+ <button
131
+ use:tooltip={showTooltip}
132
+ bind:this={input}
133
+ class="antiButton {kind} {size} jf-{justify} sh-{shape ?? 'no-shape'} bs-{borderStyle} gap-{gap}"
134
+ class:only-icon={iconOnly || adaptive}
135
+ class:no-focus={noFocus}
136
+ class:no-print={noPrint}
137
+ class:accent
138
+ class:highlight
139
+ class:pressed
140
+ class:selected
141
+ class:notSelected
142
+ class:iconL={(icon || $$slots.icon) && (label || $$slots.content)}
143
+ class:iconR={(iconRight || $$slots.iconRight) && (label || $$slots.content)}
144
+ disabled={disabled || loading}
145
+ class:short
146
+ class:resetIconSize={resetIconSize === 'full'}
147
+ style:min-width={minWidth}
148
+ style:width
149
+ style:height
150
+ style:flex
151
+ style:flex-shrink={shrink}
152
+ style:padding
153
+ {title}
154
+ type={kind === 'primary' ? 'submit' : 'button'}
155
+ on:click={preventHandler}
156
+ on:click={() => {
157
+ if (event) {
158
+ Analytics.handleEvent(event)
159
+ }
160
+ }}
161
+ on:click
162
+ on:focus
163
+ on:blur
164
+ on:mousemove
165
+ on:mouseleave
166
+ {id}
167
+ data-id={dataId}
168
+ >
169
+ {#if icon && !loading}
170
+ <div class="btn-icon pointer-events-none" class:resetIconSize={resetIconSize === 'icon'}>
171
+ <Icon bind:icon size={iconSize} {iconProps} />
172
+ </div>
173
+ {/if}
174
+ {#if loading}
175
+ <div
176
+ class="btn-icon pointer-events-none spinner"
177
+ class:resetIconSize={resetIconSize === 'icon'}
178
+ style:color={primary ? 'var(--primary-button-color)' : 'var(--theme-caption-color)'}
179
+ >
180
+ <Spinner size={iconSize === 'inline' ? 'inline' : 'small'} />
181
+ </div>
182
+ {/if}
183
+ {#if label && !adaptive}
184
+ <span class="overflow-label label disabled pointer-events-none" class:ml-2={loading}>
185
+ <Label {label} params={labelParams} />
186
+ </span>
187
+ {/if}
188
+ {#if iconRight}
189
+ <div class="btn-right-icon pointer-events-none" class:resetIconSize={resetIconSize === 'icon'}>
190
+ <Icon bind:icon={iconRight} size={iconRightSize} iconProps={iconRightProps} />
191
+ </div>
192
+ {/if}
193
+ {#if $$slots.icon}<slot name="icon" />{/if}
194
+ {#if $$slots.content}<slot name="content" />{/if}
195
+ {#if $$slots.iconRight}<slot name="iconRight" />{/if}
196
+ </button>
@@ -0,0 +1,117 @@
1
+ <!--
2
+ // Copyright © 2023 Hardcore Engineering Inc.
3
+ //
4
+ // Licensed under the Eclipse Public License, Version 2.0 (the "License");
5
+ // you may not use this file except in compliance with the License. You may
6
+ // obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ //
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+ -->
15
+ <script lang="ts">
16
+ import type { Asset, IntlString } from '@hanzo/platform'
17
+ import { AnySvelteComponent, ButtonBaseKind, ButtonBaseSize, ButtonBaseType, IconSize, LabelAndProps } from '../types'
18
+ import { tooltip as tp } from '../tooltips'
19
+ import { registerFocus } from '../focus'
20
+ import { ComponentType, onMount } from 'svelte'
21
+ import Spinner from './Spinner.svelte'
22
+ import Icon from './Icon.svelte'
23
+ import Label from './Label.svelte'
24
+
25
+ export let title: string | undefined = undefined
26
+ export let label: IntlString | undefined = undefined
27
+ export let labelParams: Record<string, any> = {}
28
+ export let icon: Asset | AnySvelteComponent | ComponentType | undefined = undefined
29
+ export let iconSize: IconSize | undefined = undefined
30
+ export let iconProps: any | undefined = undefined
31
+ export let kind: ButtonBaseKind
32
+ export let size: ButtonBaseSize
33
+ export let disabled: boolean = false
34
+ export let loading: boolean = false
35
+ export let pressed: boolean = false
36
+ export let hasMenu: boolean = false
37
+ export let noPrint: boolean = false
38
+ export let autoFocus: boolean = false
39
+ export let type: ButtonBaseType
40
+ export let inheritColor: boolean = false
41
+ export let inheritFont: boolean = false
42
+ export let tooltip: LabelAndProps | undefined = undefined
43
+ export let element: HTMLButtonElement | undefined = undefined
44
+ export let shape: 'rectangle' | 'round' = 'rectangle'
45
+ export let id: string | undefined = undefined
46
+ export let dataId: string | undefined = undefined
47
+
48
+ let actualIconSize: IconSize = 'small'
49
+
50
+ $: if (iconSize) {
51
+ actualIconSize = iconSize
52
+ } else if (type === 'type-button' && !hasMenu && iconProps?.size === undefined) {
53
+ actualIconSize = 'medium'
54
+ }
55
+ $: iconOnly = title === undefined && label === undefined && $$slots.default === undefined && icon !== undefined
56
+
57
+ export function focus () {
58
+ element?.focus()
59
+ }
60
+
61
+ onMount(() => {
62
+ if (autoFocus && element) {
63
+ element.focus()
64
+ autoFocus = false
65
+ }
66
+ })
67
+
68
+ // Focusable control with index
69
+ export let focusIndex = -1
70
+ const { idx, focusManager } = registerFocus(focusIndex, {
71
+ focus: () => {
72
+ if (!disabled) {
73
+ element?.focus()
74
+ }
75
+ return !disabled && element != null
76
+ },
77
+ isFocus: () => document.activeElement === element
78
+ })
79
+
80
+ $: if (idx !== -1 && focusManager) {
81
+ focusManager.updateFocus(idx, focusIndex)
82
+ }
83
+
84
+ const updateFocus = () => {
85
+ focusManager?.setFocus(idx)
86
+ }
87
+ $: if (element != null) {
88
+ element.addEventListener('focus', updateFocus, { once: true })
89
+ }
90
+ </script>
91
+
92
+ <button
93
+ {id}
94
+ bind:this={element}
95
+ class="hulyButton font-medium-14 {kind} {size} {type} {shape}"
96
+ class:loading
97
+ class:pressed
98
+ class:inheritColor
99
+ class:inheritFont
100
+ class:menu={hasMenu}
101
+ class:iconOnly
102
+ class:no-print={noPrint}
103
+ disabled={loading || disabled}
104
+ data-id={dataId}
105
+ use:tp={tooltip}
106
+ on:click|stopPropagation|preventDefault
107
+ on:keydown
108
+ >
109
+ {#if loading}
110
+ <div class="icon no-gap"><Spinner size={'small'} /></div>
111
+ {:else if icon}
112
+ <div class="icon no-gap"><Icon {icon} {iconProps} size={actualIconSize} /></div>
113
+ {/if}
114
+ {#if label}<span><Label {label} params={labelParams} /></span>{/if}
115
+ {#if title}<span>{title}</span>{/if}
116
+ <slot />
117
+ </button>