@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,779 @@
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 { DateRangeMode } from '@hanzo/core'
17
+ import type { IntlString } from '@hanzo/platform'
18
+ import { afterUpdate, createEventDispatcher } from 'svelte'
19
+ import ui from '../../plugin'
20
+ import { showPopup } from '../../popups'
21
+ import Icon from '../Icon.svelte'
22
+ import Label from '../Label.svelte'
23
+ import IconClose from '../icons/Close.svelte'
24
+ import DatePopup from './DatePopup.svelte'
25
+ import DPCalendar from './icons/DPCalendar.svelte'
26
+ import DPCalendarOver from './icons/DPCalendarOver.svelte'
27
+ import { daysInMonth, getMonthName } from './internal/DateUtils'
28
+
29
+ export let value: number | null | undefined = null
30
+ export let mode: DateRangeMode = DateRangeMode.DATE
31
+ export let editable: boolean = false
32
+ export let iconModifier: 'overdue' | 'critical' | 'warning' | 'normal' = 'normal'
33
+ export let shouldIgnoreOverdue: boolean = false
34
+ export let labelNull: IntlString = ui.string.NoDate
35
+ export let kind: 'default' | 'no-border' | 'link' | 'regular' = 'default'
36
+ export let size: 'small' | 'medium' | 'large' = 'small'
37
+ export let noShift: boolean = false
38
+ export let shouldShowAvatar: boolean = true
39
+ export let accent: boolean = false
40
+ export let inline: boolean = false
41
+ export let width: string | undefined = undefined
42
+
43
+ const dispatch = createEventDispatcher()
44
+
45
+ type TEdits = 'day' | 'month' | 'year' | 'hour' | 'min'
46
+
47
+ interface IEdits {
48
+ id: TEdits
49
+ value: number
50
+ el?: HTMLElement
51
+ }
52
+
53
+ const editsType: TEdits[] = ['day', 'month', 'year', 'hour', 'min']
54
+ const getIndex = (id: TEdits): number => editsType.indexOf(id)
55
+ const today = new Date()
56
+ const startDate = new Date(0)
57
+ const defaultSelected: TEdits = mode === DateRangeMode.TIME ? 'hour' : 'day'
58
+
59
+ let currentDate: Date | null = null
60
+ let selected: TEdits = defaultSelected
61
+
62
+ let edit: boolean = false
63
+ let opened: boolean = false
64
+ let startTyping: boolean = false
65
+ let datePresenter: HTMLElement
66
+ let closeBtn: HTMLElement
67
+
68
+ let edits: IEdits[] = editsType.map((edit) => {
69
+ return { id: edit, value: -1 }
70
+ })
71
+
72
+ $: withTime = mode !== DateRangeMode.DATE
73
+ $: withDate = mode !== DateRangeMode.TIME
74
+
75
+ const getValue = (date: Date | null | undefined = today, id: TEdits): number => {
76
+ switch (id) {
77
+ case 'day':
78
+ return date ? date.getDate() : today.getDate()
79
+ case 'month':
80
+ return date ? date.getMonth() + 1 : today.getMonth() + 1
81
+ case 'year':
82
+ return date ? date.getFullYear() : today.getFullYear()
83
+ case 'hour':
84
+ return date ? date.getHours() : today.getHours()
85
+ case 'min':
86
+ return date ? date.getMinutes() : today.getMinutes()
87
+ }
88
+ }
89
+ const setValue = (val: number, date: Date, id: TEdits): Date => {
90
+ switch (id) {
91
+ case 'day':
92
+ date.setDate(val)
93
+ break
94
+ case 'month':
95
+ date.setMonth(val - 1)
96
+ break
97
+ case 'year':
98
+ date.setFullYear(val)
99
+ break
100
+ case 'hour':
101
+ date.setHours(val)
102
+ break
103
+ case 'min':
104
+ date.setMinutes(val)
105
+ break
106
+ }
107
+ return date
108
+ }
109
+ const getMaxValue = (date: Date, id: TEdits): number => {
110
+ switch (id) {
111
+ case 'day':
112
+ return daysInMonth(date)
113
+ case 'month':
114
+ return 12
115
+ case 'year':
116
+ return 3000
117
+ case 'hour':
118
+ return 23
119
+ case 'min':
120
+ return 59
121
+ }
122
+ }
123
+
124
+ const dateToEdits = (): void => {
125
+ edits.forEach((edit) => {
126
+ edit.value = getValue(currentDate, edit.id)
127
+ })
128
+ edits = edits
129
+ }
130
+ export const saveDate = (): void => {
131
+ if (currentDate === null) {
132
+ value = null
133
+ setEmptyEdits()
134
+ } else {
135
+ currentDate.setSeconds(0, 0)
136
+ value = currentDate.getTime()
137
+ dateToEdits()
138
+ }
139
+ dispatch('change', value)
140
+ }
141
+
142
+ const fixEdits = (): void => {
143
+ const tempValues: number[] = []
144
+ edits.forEach((edit, i) => {
145
+ tempValues[i] = edit.value > 0 || i > 2 ? edit.value : getValue(currentDate, edit.id)
146
+ })
147
+ setCurrentDate(new Date(tempValues[2], tempValues[1] - 1, tempValues[0], tempValues[3], tempValues[4]))
148
+ }
149
+ const isNull = (full: boolean = false): boolean => {
150
+ let result: boolean = false
151
+ edits.forEach((edit, i) => {
152
+ if ((edit.value < 1 || i > 2) && full) result = true
153
+ if (i < 3 && !full && edit.value < 1) result = true
154
+ })
155
+ return result
156
+ }
157
+ const closeDP = (): void => {
158
+ edit = opened = false
159
+ }
160
+
161
+ const keyDown = (ev: KeyboardEvent, ed: TEdits): void => {
162
+ const index = getIndex(ed)
163
+
164
+ if (ev.key >= '0' && ev.key <= '9') {
165
+ const num: number = parseInt(ev.key, 10)
166
+ const date = currentDate ?? new Date()
167
+
168
+ if (startTyping) {
169
+ edits[index].value = num
170
+ } else if (edits[index].value * 10 + num > getMaxValue(date, ed)) {
171
+ edits[index].value = getMaxValue(date, ed)
172
+ } else {
173
+ edits[index].value = edits[index].value * 10 + num
174
+ }
175
+
176
+ if (!isNull() && edits[2].value > 999) {
177
+ fixEdits()
178
+ setCurrentDate(setValue(edits[index].value, date, ed))
179
+ dateToEdits()
180
+ }
181
+ edits = edits
182
+
183
+ if (selected === 'day' && edits[0].value > getMaxValue(date, 'day') / 10) selected = 'month'
184
+ else if (selected === 'month' && edits[1].value > 1) selected = 'year'
185
+ else if (selected === 'year' && withTime && edits[2].value > 999) selected = 'hour'
186
+ else if (selected === 'hour' && (edits[3].value > 2 || !startTyping)) selected = 'min'
187
+ startTyping = false
188
+ }
189
+ if (ev.code === 'Enter') saveDate()
190
+ if (ev.code === 'Backspace') {
191
+ edits[index].value = -1
192
+ startTyping = true
193
+ }
194
+ if (ev.code === 'ArrowUp' || (ev.code === 'ArrowDown' && edits[index].el)) {
195
+ if (edits[index].value !== -1) {
196
+ const val = ev.code === 'ArrowUp' ? edits[index].value + 1 : edits[index].value - 1
197
+ if (currentDate) {
198
+ setCurrentDate(setValue(val, currentDate, ed))
199
+ dateToEdits()
200
+ }
201
+ }
202
+ }
203
+ if (ev.code === 'ArrowLeft' && edits[index].el) {
204
+ if (mode === DateRangeMode.TIME) {
205
+ selected = index === 3 ? edits[4].id : edits[index - 1].id
206
+ } else if (mode === DateRangeMode.DATETIME) {
207
+ selected = index === 0 ? edits[4].id : edits[index - 1].id
208
+ } else {
209
+ selected = index === 0 ? edits[2].id : edits[index - 1].id
210
+ }
211
+ }
212
+ if (ev.code === 'ArrowRight' && edits[index].el) {
213
+ if (mode === DateRangeMode.TIME) {
214
+ selected = index === 4 ? edits[3].id : edits[index + 1].id
215
+ } else if (mode === DateRangeMode.DATETIME) {
216
+ selected = index === 4 ? edits[0].id : edits[index + 1].id
217
+ } else {
218
+ selected = index === 2 ? edits[0].id : edits[index + 1].id
219
+ }
220
+ }
221
+ if (ev.code === 'Tab') {
222
+ if ((ed === 'year' && !withTime) || (ed === 'min' && withTime)) closeDP()
223
+ }
224
+ }
225
+
226
+ const focused = (ed: TEdits): void => {
227
+ selected = ed
228
+ startTyping = true
229
+ }
230
+ const unfocus = (ev: FocusEvent, ed: TEdits | HTMLElement): void => {
231
+ const target = ev.relatedTarget as HTMLElement
232
+ let kl: boolean = false
233
+ edits.forEach((edit) => {
234
+ if (edit.el === target) kl = true
235
+ })
236
+ if (target === closeBtn) kl = true
237
+ if (!kl || target === null) closeDP()
238
+ }
239
+
240
+ $: if (selected && edits[getIndex(selected)].el) edits[getIndex(selected)].el?.focus()
241
+ afterUpdate(() => {
242
+ const tempEl = edits[getIndex(selected)].el
243
+ if (tempEl) tempEl.focus()
244
+ })
245
+
246
+ const setEmptyEdits = () => {
247
+ edits.forEach((edit, index) => {
248
+ if (mode !== DateRangeMode.TIME || index > 2) {
249
+ edit.value = -1
250
+ } else {
251
+ edit.value = getValue(startDate, edit.id)
252
+ }
253
+ })
254
+ edits = edits
255
+ }
256
+
257
+ const setCurrentDate = (date: Date) => {
258
+ if (mode === DateRangeMode.TIME) {
259
+ const resultDate = new Date(startDate)
260
+ resultDate.setHours(date.getHours())
261
+ resultDate.setMinutes(date.getMinutes())
262
+
263
+ currentDate = resultDate
264
+ } else {
265
+ currentDate = date
266
+ }
267
+ }
268
+
269
+ const openPopup = (): void => {
270
+ showPopup(
271
+ DatePopup,
272
+ {
273
+ currentDate,
274
+ withTime,
275
+ noShift,
276
+ label: labelNull
277
+ },
278
+ undefined,
279
+ (result) => {
280
+ !result ? closeDP() : saveDate()
281
+ },
282
+ (result) => {
283
+ if (result !== undefined) {
284
+ currentDate = result
285
+ if (result === null) {
286
+ setEmptyEdits()
287
+ }
288
+ }
289
+ }
290
+ )
291
+ }
292
+
293
+ export const adaptValue = () => {
294
+ setCurrentDate(new Date(value ?? Date.now()))
295
+ currentDate?.setSeconds(0, 0)
296
+ if (value !== null && value !== undefined) {
297
+ dateToEdits()
298
+ } else if (value === null) {
299
+ setEmptyEdits()
300
+ }
301
+ }
302
+
303
+ adaptValue()
304
+ </script>
305
+
306
+ {#if inline}
307
+ <span class:fs-bold={accent}>
308
+ {#if shouldShowAvatar}
309
+ <div class="btn-icon {iconModifier}">
310
+ <Icon icon={iconModifier === 'overdue' && !shouldIgnoreOverdue ? DPCalendarOver : DPCalendar} size={'full'} />
311
+ </div>
312
+ {/if}
313
+ {#if value !== undefined && value !== null && value.toString() !== ''}
314
+ {#if withDate}
315
+ {new Date(value).getDate()}
316
+ {getMonthName(new Date(value), 'short')}
317
+ {#if new Date(value).getFullYear() !== today.getFullYear()}
318
+ {new Date(value).getFullYear()}
319
+ {/if}
320
+ {/if}
321
+ {#if withTime}
322
+ {#if withDate}
323
+ <div class="time-divider" />
324
+ {/if}
325
+ {new Date(value).getHours().toString().padStart(2, '0')}
326
+ <span class="separator">:</span>
327
+ {new Date(value).getMinutes().toString().padStart(2, '0')}
328
+ {/if}
329
+ {:else}
330
+ <div class="overflow-label">
331
+ <Label label={labelNull} />
332
+ </div>
333
+ {/if}
334
+ </span>
335
+ {:else}
336
+ <button
337
+ bind:this={datePresenter}
338
+ class="datetime-button {kind} {size}"
339
+ class:notSelected={!value}
340
+ class:editable
341
+ class:edit
342
+ style:width
343
+ on:click={() => {
344
+ if (editable && !opened && withDate) openPopup()
345
+ else if (editable && !opened && mode === DateRangeMode.TIME) edit = true
346
+ }}
347
+ >
348
+ {#if edit}
349
+ {#if withDate}
350
+ <!-- svelte-ignore a11y-no-noninteractive-tabindex -->
351
+ <!-- svelte-ignore a11y-no-static-element-interactions -->
352
+ <span
353
+ bind:this={edits[0].el}
354
+ class="digit"
355
+ tabindex="0"
356
+ on:keydown={(ev) => {
357
+ keyDown(ev, edits[0].id)
358
+ }}
359
+ on:focus={() => {
360
+ focused(edits[0].id)
361
+ }}
362
+ on:blur={(ev) => {
363
+ unfocus(ev, edits[0].id)
364
+ }}
365
+ >
366
+ {#if edits[0].value > -1}
367
+ {edits[0].value.toString().padStart(2, '0')}
368
+ {:else}<Label label={ui.string.DD} />{/if}
369
+ </span>
370
+ <span class="separator">.</span>
371
+ <!-- svelte-ignore a11y-no-noninteractive-tabindex -->
372
+ <!-- svelte-ignore a11y-no-static-element-interactions -->
373
+ <span
374
+ bind:this={edits[1].el}
375
+ class="digit"
376
+ tabindex="0"
377
+ on:keydown={(ev) => {
378
+ keyDown(ev, edits[1].id)
379
+ }}
380
+ on:focus={() => {
381
+ focused(edits[1].id)
382
+ }}
383
+ on:blur={(ev) => {
384
+ unfocus(ev, edits[1].id)
385
+ }}
386
+ >
387
+ {#if edits[1].value > -1}
388
+ {edits[1].value.toString().padStart(2, '0')}
389
+ {:else}<Label label={ui.string.MM} />{/if}
390
+ </span>
391
+ <span class="separator">.</span>
392
+ <!-- svelte-ignore a11y-no-static-element-interactions -->
393
+ <!-- svelte-ignore a11y-no-noninteractive-tabindex -->
394
+ <span
395
+ bind:this={edits[2].el}
396
+ class="digit"
397
+ tabindex="0"
398
+ on:keydown={(ev) => {
399
+ keyDown(ev, edits[2].id)
400
+ }}
401
+ on:focus={() => {
402
+ focused(edits[2].id)
403
+ }}
404
+ on:blur={(ev) => {
405
+ unfocus(ev, edits[2].id)
406
+ }}
407
+ >
408
+ {#if edits[2].value > -1}
409
+ {edits[2].value.toString().padStart(4, '0')}
410
+ {:else}<Label label={ui.string.YYYY} />{/if}
411
+ </span>
412
+ {/if}
413
+ {#if withTime}
414
+ {#if mode === DateRangeMode.DATETIME}
415
+ <div class="time-divider" />
416
+ {/if}
417
+ <!-- svelte-ignore a11y-no-static-element-interactions -->
418
+ <!-- svelte-ignore a11y-no-noninteractive-tabindex -->
419
+ <span
420
+ bind:this={edits[3].el}
421
+ class="digit"
422
+ tabindex="0"
423
+ on:keydown={(ev) => {
424
+ keyDown(ev, edits[3].id)
425
+ }}
426
+ on:focus={() => {
427
+ focused(edits[3].id)
428
+ }}
429
+ on:blur={(ev) => {
430
+ unfocus(ev, edits[3].id)
431
+ }}
432
+ >
433
+ {#if edits[3].value > -1}
434
+ {edits[3].value.toString().padStart(2, '0')}
435
+ {:else}<Label label={ui.string.HH} />{/if}
436
+ </span>
437
+ <span class="separator">:</span>
438
+ <!-- svelte-ignore a11y-no-noninteractive-tabindex -->
439
+ <!-- svelte-ignore a11y-no-static-element-interactions -->
440
+ <span
441
+ bind:this={edits[4].el}
442
+ class="digit"
443
+ tabindex="0"
444
+ on:keydown={(ev) => {
445
+ keyDown(ev, edits[4].id)
446
+ }}
447
+ on:focus={() => {
448
+ focused(edits[4].id)
449
+ }}
450
+ on:blur={(ev) => {
451
+ unfocus(ev, edits[4].id)
452
+ }}
453
+ >
454
+ {#if edits[4].value > -1}
455
+ {edits[4].value.toString().padStart(2, '0')}
456
+ {:else}<Label label={ui.string.MM} />{/if}
457
+ </span>
458
+ {/if}
459
+ {#if value}
460
+ <!-- svelte-ignore a11y-click-events-have-key-events -->
461
+ <!-- svelte-ignore a11y-no-static-element-interactions -->
462
+ <!-- svelte-ignore a11y-no-noninteractive-tabindex -->
463
+ <div
464
+ bind:this={closeBtn}
465
+ class="close-btn"
466
+ tabindex="0"
467
+ on:click={() => {
468
+ selected = defaultSelected
469
+ startTyping = true
470
+ value = null
471
+ setEmptyEdits()
472
+ const newFocusElement = edits[mode === DateRangeMode.TIME ? 2 : 0].el
473
+ if (newFocusElement) newFocusElement.focus()
474
+ }}
475
+ on:blur={(ev) => {
476
+ unfocus(ev, closeBtn)
477
+ }}
478
+ >
479
+ <Icon icon={IconClose} size={'x-small'} />
480
+ </div>
481
+ {/if}
482
+ {:else}
483
+ {#if shouldShowAvatar}
484
+ <div class="btn-icon {iconModifier}">
485
+ <Icon icon={iconModifier === 'overdue' && !shouldIgnoreOverdue ? DPCalendarOver : DPCalendar} size={'full'} />
486
+ </div>
487
+ {/if}
488
+ {#if value !== undefined && value !== null && value.toString() !== ''}
489
+ {#if withDate}
490
+ {new Date(value).getDate()}
491
+ {getMonthName(new Date(value), 'short')}
492
+ {#if new Date(value).getFullYear() !== today.getFullYear()}
493
+ {new Date(value).getFullYear()}
494
+ {/if}
495
+ {/if}
496
+ {#if withTime}
497
+ {#if withDate}
498
+ <div class="time-divider" />
499
+ {/if}
500
+ {new Date(value).getHours().toString().padStart(2, '0')}
501
+ <span class="separator">:</span>
502
+ {new Date(value).getMinutes().toString().padStart(2, '0')}
503
+ {/if}
504
+ {:else}
505
+ <div class="overflow-label">
506
+ <Label label={labelNull} />
507
+ </div>
508
+ {/if}
509
+ {/if}
510
+ </button>
511
+ {/if}
512
+
513
+ <style lang="scss">
514
+ .datetime-button {
515
+ position: relative;
516
+ display: flex;
517
+ justify-content: flex-start;
518
+ align-items: center;
519
+ flex-shrink: 0;
520
+ padding: 0 0.5rem;
521
+ font-weight: 400;
522
+ min-width: 1.5rem;
523
+ width: min-content;
524
+ white-space: nowrap;
525
+ line-height: 1.5rem;
526
+ cursor: pointer;
527
+ color: var(--theme-content-color);
528
+ border: 1px solid transparent;
529
+ border-radius: 0.375rem;
530
+ transition-property: border, background-color, color, box-shadow;
531
+ transition-duration: 0.15s;
532
+ cursor: default;
533
+
534
+ &.noPadding {
535
+ padding: 0;
536
+ }
537
+
538
+ &.small {
539
+ height: 1.5rem;
540
+ }
541
+
542
+ &.medium {
543
+ height: 2rem;
544
+ }
545
+
546
+ &.large {
547
+ height: 2.25rem;
548
+ }
549
+
550
+ .btn-icon {
551
+ margin-right: 0.375rem;
552
+ width: 1rem;
553
+ height: 1rem;
554
+ transition: color 0.15s;
555
+ pointer-events: none;
556
+
557
+ &.normal {
558
+ color: var(--theme-content-color);
559
+ }
560
+
561
+ &.warning {
562
+ color: var(--theme-warning-color);
563
+ }
564
+
565
+ &.overdue {
566
+ color: var(--theme-error-color);
567
+ }
568
+
569
+ &.critical {
570
+ color: var(--theme-error-color);
571
+ }
572
+ }
573
+
574
+ &.default {
575
+ padding: 0;
576
+ color: var(--theme-content-color);
577
+
578
+ &:hover {
579
+ color: var(--theme-caption-color);
580
+ }
581
+ }
582
+
583
+ &.no-border {
584
+ font-weight: 400;
585
+ color: var(--theme-content-color);
586
+ background-color: var(--theme-button-default);
587
+ box-shadow: var(--button-shadow);
588
+
589
+ &:hover {
590
+ color: var(--theme-caption-color);
591
+ background-color: var(--theme-button-hovered);
592
+ transition-duration: 0;
593
+
594
+ .btn-icon {
595
+ color: var(--theme-caption-color);
596
+ }
597
+ }
598
+
599
+ &:disabled {
600
+ color: var(--theme-trans-color);
601
+ background-color: var(--theme-button-disabled);
602
+ cursor: default;
603
+
604
+ .btn-icon {
605
+ color: var(--theme-trans-color);
606
+ }
607
+
608
+ &:hover {
609
+ color: var(--theme-trans-color);
610
+
611
+ .btn-icon {
612
+ color: var(--theme-trans-color);
613
+ }
614
+ }
615
+ }
616
+
617
+ &.editable {
618
+ cursor: pointer;
619
+
620
+ &:hover {
621
+ background-color: var(--theme-button-hovered);
622
+
623
+ .btn-icon {
624
+ &.normal {
625
+ color: var(--caption-color);
626
+ }
627
+
628
+ &.warning {
629
+ color: var(--theme-warning-color);
630
+ }
631
+
632
+ &.overdue {
633
+ color: var(--theme-error-color);
634
+ }
635
+
636
+ &.critical {
637
+ color: var(--theme-error-color);
638
+ }
639
+ }
640
+
641
+ .time-divider {
642
+ background-color: var(--theme-divider-color);
643
+ }
644
+ }
645
+
646
+ &:focus-within {
647
+ background-color: var(--theme-button-focused);
648
+ border-color: var(--primary-edit-border-color);
649
+
650
+ &:hover {
651
+ background-color: var(--theme-button-hovered);
652
+ }
653
+ }
654
+ }
655
+
656
+ &.edit {
657
+ padding: 0 0.125rem;
658
+ background-color: transparent;
659
+ border-color: var(--primary-edit-border-color);
660
+
661
+ &:hover {
662
+ background-color: transparent;
663
+ }
664
+ }
665
+ }
666
+
667
+ &.link {
668
+ padding: 0 0.75rem;
669
+ width: 100%;
670
+ color: var(--theme-caption-color);
671
+
672
+ &:hover {
673
+ background-color: var(--theme-bg-color);
674
+ border-color: var(--theme-divider-color);
675
+
676
+ .btn-icon {
677
+ color: var(--theme-content-color);
678
+ }
679
+ }
680
+
681
+ &.edit {
682
+ padding: 0 0.5rem;
683
+ }
684
+ }
685
+
686
+ &.regular {
687
+ padding: 0 0.75rem;
688
+ color: var(--theme-caption-color);
689
+ background-color: var(--theme-button-default);
690
+ border-color: var(--theme-button-border);
691
+
692
+ .btn-icon {
693
+ color: var(--theme-content-color);
694
+ }
695
+
696
+ &:hover {
697
+ background-color: var(--theme-button-hovered);
698
+ border-color: var(--theme-divider-color);
699
+
700
+ .btn-icon {
701
+ color: var(--theme-content-color);
702
+ }
703
+ }
704
+
705
+ // &.edit {
706
+ // padding: 0 0.5rem;
707
+ // }
708
+ }
709
+
710
+ .close-btn {
711
+ display: flex;
712
+ justify-content: center;
713
+ align-items: center;
714
+ margin: 0 0.25rem;
715
+ width: 0.75rem;
716
+ height: 0.75rem;
717
+ color: var(--theme-content-color);
718
+ background-color: var(--theme-button-default);
719
+ outline: none;
720
+ border-radius: 50%;
721
+ cursor: pointer;
722
+
723
+ &:hover {
724
+ color: var(--accent-color);
725
+ background-color: var(--theme-button-hovered);
726
+ }
727
+ }
728
+
729
+ .digit {
730
+ position: relative;
731
+ padding: 0 0.125rem;
732
+ height: 1.125rem;
733
+ line-height: 1.125rem;
734
+ color: var(--accent-color);
735
+ outline: none;
736
+ border-radius: 0.125rem;
737
+
738
+ &:focus {
739
+ background-color: var(--primary-bg-color);
740
+ }
741
+
742
+ &::after {
743
+ position: absolute;
744
+ top: 0;
745
+ left: 0;
746
+ width: 100%;
747
+ height: 100%;
748
+ z-index: 11000;
749
+ cursor: pointer;
750
+ }
751
+ }
752
+
753
+ .time-divider {
754
+ flex-shrink: 0;
755
+ margin: 0 0.25rem;
756
+ width: 1px;
757
+ min-width: 1px;
758
+ height: 0.75rem;
759
+ background-color: var(--theme-divider-color);
760
+ }
761
+
762
+ .separator {
763
+ margin: 0 0.1rem;
764
+ }
765
+
766
+ &.notSelected {
767
+ color: var(--theme-dark-color);
768
+
769
+ .btn-icon {
770
+ color: var(--theme-darker-color);
771
+ }
772
+
773
+ &:hover,
774
+ &:hover .btn-icon {
775
+ color: var(--theme-content-color);
776
+ }
777
+ }
778
+ }
779
+ </style>