@hanzo/ui 0.5.24 → 0.6.16

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,127 @@
1
+ <!--
2
+ // Copyright © 2020 Hanzo <dev@hanzo.ai>.
3
+ //
4
+ // Licensed under the Eclipse Public License, Version 2.0 (the "License");
5
+ // you may not use this file except in compliance with the License. You may
6
+ // obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ //
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+ -->
15
+ <script lang="ts">
16
+ import type { IntlString } from '@hanzo/platform'
17
+ import Label from './Label.svelte'
18
+
19
+ export let label: IntlString | undefined = undefined
20
+ export let width: string | undefined = undefined
21
+ export let value: string | undefined = undefined
22
+ export let error: string | undefined = undefined
23
+ export let password: boolean | undefined = undefined
24
+ export let id: string | undefined = undefined
25
+ export let name: string | undefined = undefined
26
+ export let disabled: boolean = false
27
+ </script>
28
+
29
+ <div class="editbox{error ? ' error' : ''}" style={width ? 'width: ' + width : ''}>
30
+ {#if password}
31
+ <input
32
+ type="password"
33
+ class:nolabel={!label}
34
+ {id}
35
+ {name}
36
+ bind:value
37
+ on:blur
38
+ on:change
39
+ on:keyup
40
+ on:input
41
+ autocomplete="off"
42
+ placeholder=" "
43
+ spellcheck="false"
44
+ autocapitalize="off"
45
+ {disabled}
46
+ />
47
+ {:else}
48
+ <input
49
+ type="text"
50
+ class:nolabel={!label}
51
+ {id}
52
+ {name}
53
+ bind:value
54
+ on:blur
55
+ on:change
56
+ on:keyup
57
+ on:input
58
+ autocomplete="off"
59
+ placeholder=" "
60
+ spellcheck="false"
61
+ autocapitalize="off"
62
+ {disabled}
63
+ />
64
+ {/if}
65
+ {#if label}
66
+ <div class="label"><Label {label} /></div>
67
+ {/if}
68
+ </div>
69
+
70
+ <style lang="scss">
71
+ .editbox {
72
+ position: relative;
73
+ display: flex;
74
+ flex-direction: column;
75
+ padding: 0;
76
+ min-width: 3rem;
77
+ height: 3.25rem;
78
+ background-color: var(--theme-button-default);
79
+ border: 1px solid var(--theme-button-border);
80
+ border-radius: 0.75rem;
81
+ caret-color: var(--theme-caret-color);
82
+
83
+ &:focus-within {
84
+ background-color: var(--theme-button-focused);
85
+ border-color: var(--theme-list-divider-color);
86
+ }
87
+
88
+ input {
89
+ height: 3.25rem;
90
+ margin: 0;
91
+ padding: 0.875rem 1.25rem 0px;
92
+ background-color: transparent;
93
+ border: none;
94
+ border-radius: 0.75rem;
95
+
96
+ &:disabled {
97
+ background-color: var(--theme-button-pressed);
98
+ }
99
+ }
100
+
101
+ .nolabel {
102
+ padding-top: 0;
103
+ }
104
+
105
+ .label {
106
+ position: absolute;
107
+ top: 1rem;
108
+ left: 1.25rem;
109
+ font-size: 0.75rem;
110
+ color: var(--theme-caption-color);
111
+ opacity: 0.8;
112
+ transition: top 200ms;
113
+ pointer-events: none;
114
+ user-select: none;
115
+ }
116
+ input:focus + .label,
117
+ input:not(:placeholder-shown) + .label {
118
+ top: 0.5rem;
119
+ }
120
+ }
121
+ .error {
122
+ border: 1px solid var(--system-error-60-color);
123
+ &:focus-within {
124
+ border-color: var(--system-error-color);
125
+ }
126
+ }
127
+ </style>
@@ -0,0 +1,68 @@
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 { Asset, IntlString } from '@hanzo/platform'
17
+ import { tooltip } from '../tooltips'
18
+ import type { LabelAndProps, AnySvelteComponent, AnyComponent } from '../types'
19
+ import Component from './Component.svelte'
20
+ import Icon from './Icon.svelte'
21
+ import Label from './Label.svelte'
22
+ import Menu from './Menu.svelte'
23
+
24
+ export let component: AnySvelteComponent | AnyComponent | undefined = undefined
25
+ export let props: any = {}
26
+ export let options: LabelAndProps = { kind: 'submenu' }
27
+ export let focusIndex = -1
28
+
29
+ export let icon: Asset | AnySvelteComponent | undefined = undefined
30
+ export let text: string | undefined = undefined
31
+ export let label: IntlString | undefined = undefined
32
+ export let labelProps: Record<string, any> = {}
33
+ export let withHover: boolean = false
34
+ export let element: HTMLElement | undefined = undefined
35
+
36
+ let optionsMod: LabelAndProps
37
+ $: optionsMod = { component: options.component ?? Menu, props, element, kind: 'submenu' }
38
+ </script>
39
+
40
+ <!-- svelte-ignore a11y-no-noninteractive-tabindex -->
41
+ <!-- svelte-ignore a11y-mouse-events-have-key-events -->
42
+ <!-- svelte-ignore a11y-no-static-element-interactions -->
43
+ <div
44
+ bind:this={element}
45
+ on:keydown
46
+ on:mouseover
47
+ on:click
48
+ use:tooltip={optionsMod}
49
+ class="antiPopup-submenu"
50
+ class:withHover
51
+ tabindex={focusIndex}
52
+ >
53
+ {#if component}
54
+ {#if typeof component === 'string'}
55
+ <Component is={component} {props} />
56
+ {:else}
57
+ <svelte:component this={component} {...props} />
58
+ {/if}
59
+ {:else}
60
+ {#if icon}
61
+ <div class="icon"><Icon {icon} size={'small'} /></div>
62
+ {/if}
63
+ <span class="overflow-label pr-1">
64
+ {#if label}<Label {label} params={labelProps} />
65
+ {:else if text}{text}{/if}
66
+ </span>
67
+ {/if}
68
+ </div>
@@ -0,0 +1,55 @@
1
+ <script lang="ts">
2
+ //
3
+ // © 2023 Hardcore Engineering, Inc. All Rights Reserved.
4
+ // Licensed under the Eclipse Public License v2.0 (SPDX: EPL-2.0).
5
+ //
6
+
7
+ import { createEventDispatcher } from 'svelte'
8
+ import type { TabItem } from '../types'
9
+ import SwitcherBase from './SwitcherBase.svelte'
10
+
11
+ export let items: TabItem[]
12
+ export let selected: string | number = ''
13
+ export let kind: 'nuance' | 'subtle' = 'nuance'
14
+ export let name: string
15
+ export let onlyIcons: boolean = false
16
+
17
+ const dispatch = createEventDispatcher()
18
+ </script>
19
+
20
+ <div class="switcher-container {kind}">
21
+ {#each items as item}
22
+ <SwitcherBase
23
+ id={item.id}
24
+ {name}
25
+ {kind}
26
+ checked={selected === item.id}
27
+ icon={item.icon}
28
+ color={item.color}
29
+ title={onlyIcons ? undefined : item.label}
30
+ label={onlyIcons ? undefined : item.labelIntl}
31
+ labelParams={onlyIcons ? undefined : item.labelParams}
32
+ tooltip={item.tooltip ? { label: item.tooltip } : undefined}
33
+ on:change={() => {
34
+ dispatch('select', item)
35
+ if (item.action !== undefined) item.action()
36
+ }}
37
+ />
38
+ {/each}
39
+ </div>
40
+
41
+ <style lang="scss">
42
+ .switcher-container {
43
+ display: flex;
44
+ align-items: center;
45
+ flex-wrap: nowrap;
46
+ flex-shrink: 0;
47
+ min-width: 0;
48
+ gap: var(--spacing-0_5);
49
+ border-radius: var(--small-BorderRadius);
50
+
51
+ &.subtle {
52
+ background-color: var(--selector-BackgroundColor);
53
+ }
54
+ }
55
+ </style>
@@ -0,0 +1,116 @@
1
+ <script lang="ts">
2
+ //
3
+ // © 2023 Hardcore Engineering, Inc. All Rights Reserved.
4
+ // Licensed under the Eclipse Public License v2.0 (SPDX: EPL-2.0).
5
+ //
6
+
7
+ import type { Asset, IntlString } from '@hanzo/platform'
8
+ import type { AnySvelteComponent, LabelAndProps } from '../types'
9
+ import type { ComponentType } from 'svelte'
10
+ import Icon from './Icon.svelte'
11
+ import Label from './Label.svelte'
12
+ import { tooltip as tp } from '..'
13
+
14
+ export let id: string | number
15
+ export let icon: Asset | AnySvelteComponent | ComponentType | undefined = undefined
16
+ export let color: string | undefined = undefined
17
+ export let label: IntlString | undefined = undefined
18
+ export let labelParams: Record<string, any> = {}
19
+ export let title: string | undefined = undefined
20
+ export let kind: 'nuance' | 'subtle' = 'nuance'
21
+ export let name: string
22
+ export let checked: boolean = false
23
+ export let tooltip: LabelAndProps | undefined = undefined
24
+
25
+ $: woTitle = title === undefined && label === undefined
26
+ </script>
27
+
28
+ <label use:tp={tooltip} class="switcher-element__wrapper" data-view={tooltip?.label} data-id={`tab-${id}`}>
29
+ <input type="radio" class="switcher" {name} {checked} on:change />
30
+ <div class="switcher-element {kind}" class:woTitle>
31
+ {#if icon}<div class="icon"><Icon {icon} size={'small'} fill={color} /></div>{/if}
32
+ {#if label}<span><Label {label} params={labelParams} /></span>{/if}
33
+ {#if title}<span>{title}</span>{/if}
34
+ </div>
35
+ </label>
36
+
37
+ <style lang="scss">
38
+ .switcher-element,
39
+ .switcher-element__wrapper {
40
+ display: flex;
41
+ min-width: var(--global-small-Size);
42
+ min-height: var(--global-small-Size);
43
+ }
44
+ .switcher-element {
45
+ justify-content: center;
46
+ align-items: center;
47
+ flex-wrap: nowrap;
48
+ flex-shrink: 0;
49
+ gap: var(--spacing-0_75);
50
+ border-radius: var(--small-BorderRadius);
51
+
52
+ &:not(.woTitle) {
53
+ padding: 0 var(--spacing-1_5);
54
+ }
55
+ &.woTitle {
56
+ padding: 0 var(--spacing-1);
57
+ }
58
+ .icon {
59
+ width: var(--spacing-2);
60
+ height: var(--spacing-2);
61
+ color: var(--global-secondary-IconColor);
62
+ }
63
+ span {
64
+ text-wrap: nowrap;
65
+ color: var(--global-secondary-TextColor);
66
+ user-select: none;
67
+ }
68
+ }
69
+ .switcher {
70
+ overflow: hidden;
71
+ position: absolute;
72
+ margin: -1px;
73
+ padding: 0;
74
+ width: 1px;
75
+ height: 1px;
76
+ border: 0;
77
+ clip: rect(0 0 0 0);
78
+
79
+ &:checked + .switcher-element.nuance {
80
+ background-color: var(--global-accent-BackgroundColor);
81
+
82
+ .icon {
83
+ color: var(--global-on-nuance-TextColor);
84
+ }
85
+ span {
86
+ color: var(--global-on-nuance-TextColor);
87
+ }
88
+ }
89
+ &:checked + .switcher-element.subtle {
90
+ background-color: var(--global-ui-active-BackgroundColor);
91
+
92
+ .icon {
93
+ color: var(--global-primary-IconColor);
94
+ }
95
+ span {
96
+ color: var(--global-primary-TextColor);
97
+ }
98
+ }
99
+ &:focus + .switcher-element {
100
+ box-shadow: 0 0 0 var(--spacing-0_25) var(--global-focus-inset-BorderColor);
101
+ outline: var(--spacing-0_25) solid var(--global-focus-BorderColor);
102
+ outline-offset: var(--spacing-0_25);
103
+ }
104
+ }
105
+ .switcher-element__wrapper:hover .switcher-element {
106
+ background-color: var(--selector-BackgroundColor);
107
+ cursor: pointer;
108
+
109
+ .icon {
110
+ color: var(--global-primary-IconColor);
111
+ }
112
+ span {
113
+ color: var(--global-primary-TextColor);
114
+ }
115
+ }
116
+ </style>
@@ -0,0 +1,290 @@
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 { createEventDispatcher } from 'svelte'
17
+ import { tooltip } from '../tooltips'
18
+ import type { TabItem, IconSize, WidthType, DropdownIntlItem } from '../types'
19
+ import Icon from './Icon.svelte'
20
+ import Label from './Label.svelte'
21
+ import DropdownLabelsIntl from './DropdownLabelsIntl.svelte'
22
+ import { Scroller, checkAdaptiveMatching, deviceOptionsStore as deviceInfo } from '..'
23
+
24
+ export let selected: string | number | Array<string | number> = ''
25
+ export let multiselect: boolean = false
26
+ export let items: TabItem[]
27
+ export let kind: 'normal' | 'regular' | 'plain' | 'separated' | 'separated-free' = 'normal'
28
+ export let expansion: 'stretch' | 'default' = 'default'
29
+ export let onlyIcons: boolean = false
30
+ export let size: 'small' | 'medium' = 'medium'
31
+ export let adaptiveShrink: WidthType | null = null
32
+ export let padding: string | undefined = undefined
33
+ export let bottomPadding: string | undefined = undefined
34
+
35
+ const dispatch = createEventDispatcher()
36
+
37
+ if (multiselect && selected === '') selected = []
38
+ if (selected === '') selected = items[0].id
39
+
40
+ const getSelected = (id: string | number, selected: string | number | Array<string | number>): boolean => {
41
+ let res: boolean = false
42
+ if (multiselect && Array.isArray(selected)) res = selected.filter((it) => it === id).length > 0
43
+ else if (selected === id) res = true
44
+ return res
45
+ }
46
+ const tabs: HTMLElement[] = []
47
+
48
+ let iconSize: IconSize
49
+ $: iconSize = onlyIcons ? (size === 'small' ? 'small' : 'medium') : size === 'small' ? 'x-small' : 'small'
50
+
51
+ $: devSize = $deviceInfo.size
52
+ $: adaptive = adaptiveShrink !== null ? checkAdaptiveMatching(devSize, adaptiveShrink) : false
53
+
54
+ let ddItems: DropdownIntlItem[]
55
+ $: ddItems = items.map((it) => ({ id: it.id, label: it.labelIntl, params: it.labelParams })) as DropdownIntlItem[]
56
+ </script>
57
+
58
+ {#if items.length > 0}
59
+ {#if adaptive}
60
+ <DropdownLabelsIntl
61
+ items={ddItems}
62
+ {size}
63
+ selected={Array.isArray(selected) ? selected[0] : selected}
64
+ on:selected={(e) => {
65
+ const item = items.filter((it) => it.id === e.detail)[0]
66
+ if (Array.isArray(selected)) selected[0] = item.id
67
+ else selected = item.id
68
+ dispatch('select', item)
69
+ }}
70
+ />
71
+ {:else}
72
+ <Scroller horizontal stickedScrollBars {padding} {bottomPadding}>
73
+ <div class="tablist-container {kind} {size} {expansion}">
74
+ {#each items as item, i}
75
+ <!-- svelte-ignore a11y-click-events-have-key-events -->
76
+ <!-- svelte-ignore a11y-no-static-element-interactions -->
77
+ <div
78
+ bind:this={tabs[i]}
79
+ class={kind === 'normal' || kind === 'regular' ? 'button' : 'plain'}
80
+ class:separated={kind === 'separated' || kind === 'separated-free'}
81
+ class:free={kind === 'separated-free'}
82
+ class:onlyIcons
83
+ class:selected={getSelected(item.id, selected)}
84
+ class:stretch={expansion === 'stretch'}
85
+ data-view={item.tooltip}
86
+ data-id={`tab-${item.id}`}
87
+ use:tooltip={{ label: item.tooltip ?? undefined, element: tabs[i] ?? undefined }}
88
+ on:click={() => {
89
+ if (multiselect) {
90
+ if (Array.isArray(selected)) {
91
+ if (selected.includes(item.id)) selected = selected.filter((it) => it !== item.id)
92
+ else selected.push(item.id)
93
+ }
94
+ } else selected = item.id
95
+ dispatch('select', item)
96
+ items = items
97
+ }}
98
+ >
99
+ {#if item.icon}
100
+ <div class="icon">
101
+ <Icon icon={item.icon} size={iconSize} fill={item.color ?? 'currentColor'} />
102
+ </div>
103
+ {:else if item.color}
104
+ <div class="color" style:background-color={item.color} />
105
+ {/if}
106
+ {#if item.label || item.labelIntl}
107
+ <span class="overflow-label" class:ml-1-5={item.icon || item.color}>
108
+ {#if item.label}
109
+ {item.label}
110
+ {:else if item.labelIntl}
111
+ <Label label={item.labelIntl} params={item.labelParams} />
112
+ {/if}
113
+ </span>
114
+ {/if}
115
+ </div>
116
+ {/each}
117
+ </div>
118
+ </Scroller>
119
+ {/if}
120
+ {/if}
121
+
122
+ <style lang="scss">
123
+ .tablist-container {
124
+ display: flex;
125
+ align-items: center;
126
+ width: fit-content;
127
+
128
+ &.stretch {
129
+ width: 100%;
130
+ }
131
+
132
+ .button {
133
+ position: relative;
134
+ display: inline-flex;
135
+ justify-content: center;
136
+ align-items: center;
137
+ width: fit-content;
138
+ min-height: 1.375rem;
139
+ max-width: 12.5rem;
140
+ font-size: 0.8125rem;
141
+ transition-property: background-color, color;
142
+ transition-duration: 0.15s;
143
+
144
+ &:not(.selected) {
145
+ cursor: pointer;
146
+ }
147
+ .color {
148
+ width: 0.5rem;
149
+ height: 0.5rem;
150
+ border-radius: 0.25rem;
151
+ }
152
+ &::before {
153
+ position: absolute;
154
+ top: 50%;
155
+ left: -1.5px;
156
+ height: 70%;
157
+ border-left: 1px solid var(--button-border-color);
158
+ transform: translateY(-50%);
159
+ }
160
+ }
161
+ .button:not(.selected) + .button:not(.selected)::before {
162
+ content: '';
163
+ }
164
+
165
+ &.small {
166
+ .button {
167
+ padding: 0 0.5rem;
168
+
169
+ &.onlyIcons {
170
+ padding: 0.375rem;
171
+ }
172
+ }
173
+ &.normal .button {
174
+ height: 1.5rem;
175
+ }
176
+ &.regular .button {
177
+ height: 1.375rem;
178
+ }
179
+ }
180
+ &.medium .button {
181
+ height: 2rem;
182
+ padding: 0.25rem 0.75rem;
183
+
184
+ &.onlyIcons {
185
+ padding: 0.375rem;
186
+ }
187
+ }
188
+ &.normal {
189
+ background-color: var(--theme-tablist-color);
190
+ border-radius: 0.25rem;
191
+
192
+ &.stretch {
193
+ flex-grow: 1;
194
+ }
195
+
196
+ .button {
197
+ color: var(--theme-trans-color);
198
+ border: 1px solid transparent;
199
+ border-radius: 0.25rem;
200
+
201
+ &.selected {
202
+ color: var(--theme-caption-color);
203
+ background-color: var(--theme-button-default);
204
+ border-color: var(--theme-button-border);
205
+
206
+ &:hover {
207
+ background-color: var(--theme-button-hovered);
208
+ }
209
+ }
210
+ }
211
+ }
212
+ &.regular {
213
+ background-color: var(--theme-button-default);
214
+ border: 1px solid var(--theme-button-border);
215
+ border-radius: 0.25rem;
216
+
217
+ &.stretch {
218
+ flex-grow: 1;
219
+ }
220
+
221
+ .button {
222
+ background-color: transparent;
223
+ border-radius: calc(0.25rem - 1px);
224
+
225
+ &:hover {
226
+ color: var(--theme-caption-color);
227
+ }
228
+ &.selected {
229
+ color: var(--theme-caption-color);
230
+ background-color: var(--theme-button-pressed);
231
+ }
232
+ &:not(:first-child) {
233
+ margin-left: 0.125rem;
234
+ }
235
+ }
236
+ }
237
+
238
+ &.plain,
239
+ &.separated {
240
+ margin-bottom: -1px;
241
+ height: 100%;
242
+ }
243
+ .plain {
244
+ display: inline-flex;
245
+ justify-content: center;
246
+ align-items: center;
247
+ flex-shrink: 0;
248
+ width: fit-content;
249
+ height: 100%;
250
+ max-width: 12.5rem;
251
+ min-height: 3.25rem;
252
+ color: var(--theme-dark-color);
253
+ border-top: 2px solid transparent;
254
+ border-bottom: 2px solid transparent;
255
+
256
+ &.stretch {
257
+ flex-grow: 1;
258
+ }
259
+
260
+ &:not(.selected) {
261
+ cursor: pointer;
262
+ }
263
+ &.selected {
264
+ color: var(--theme-caption-color);
265
+ border-bottom-color: var(--theme-tablist-plain-color);
266
+ }
267
+ &:not(:first-child, .separated) {
268
+ margin-left: 2rem;
269
+ }
270
+ &.separated {
271
+ position: relative;
272
+ margin: 0 1.25rem;
273
+
274
+ &::before {
275
+ position: absolute;
276
+ content: '';
277
+ top: 50%;
278
+ left: -1.25rem;
279
+ width: 1px;
280
+ height: 2rem;
281
+ background-color: var(--theme-tablist-plain-divider);
282
+ transform: translateY(-50%);
283
+ }
284
+ &.free:first-child::before {
285
+ content: none;
286
+ }
287
+ }
288
+ }
289
+ }
290
+ </style>
@@ -0,0 +1,45 @@
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 { TabModel } from '../types'
17
+ import Component from './Component.svelte'
18
+ import TabsControl from './TabsControl.svelte'
19
+
20
+ export let model: TabModel
21
+ export let selected = 0
22
+ export let padding: string | undefined = undefined
23
+ export let noMargin: boolean = false
24
+ export let size: 'small' | 'medium' | 'large' = 'medium'
25
+ </script>
26
+
27
+ <TabsControl {model} {padding} {noMargin} {size} bind:selected>
28
+ <svelte:fragment slot="rightButtons">
29
+ {#if $$slots.rightButtons}
30
+ <div class="flex">
31
+ <slot name="rightButtons" />
32
+ </div>
33
+ {/if}
34
+ </svelte:fragment>
35
+ <svelte:fragment slot="content" let:selected>
36
+ {@const tab = model[selected]}
37
+ {#if tab}
38
+ {#if typeof tab.component === 'string'}
39
+ <Component is={tab.component} props={tab.props} on:change on:open />
40
+ {:else}
41
+ <svelte:component this={tab.component} {...tab.props} on:change on:open />
42
+ {/if}
43
+ {/if}
44
+ </svelte:fragment>
45
+ </TabsControl>