@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
@@ -1,70 +0,0 @@
1
- import React, { type ComponentType, type ReactNode} from 'react'
2
-
3
- import type * as B from '../def'
4
-
5
- import AccordianBlockComponent from './accordian-block'
6
- import BulletCardsBlockComponent from './bullet-cards-block'
7
- import CTABlockComponent from './cta-block'
8
- import CardBlockComponent from './card-block'
9
- import CarteBlancheBlockComponent from './carte-blanche-block'
10
- import EnhHeadingBlockComponent from './enh-heading-block'
11
- import HeadingBlockComponent from './heading-block'
12
- import GroupBlockComponent from './group-block'
13
- import GridBlockComponent from './grid-block'
14
- import ImageBlockComponent from './image-block'
15
- import SpaceBlockComponent from './space-block'
16
- import VideoBlockComponent from './video-block'
17
-
18
- import type BlockComponentProps from './block-component-props'
19
-
20
- const map = new Map<string, ComponentType<BlockComponentProps>>()
21
- map.set('accordian', AccordianBlockComponent)
22
- map.set('bullet-cards', BulletCardsBlockComponent)
23
- map.set('card', CardBlockComponent)
24
- map.set('carte-blanche', CarteBlancheBlockComponent)
25
- map.set('cta', CTABlockComponent)
26
- map.set('heading', HeadingBlockComponent)
27
- map.set('enh-heading', EnhHeadingBlockComponent as ComponentType<BlockComponentProps>)
28
- map.set('space', SpaceBlockComponent)
29
- map.set('image', ImageBlockComponent)
30
- map.set('video', VideoBlockComponent)
31
- map.set('group', GroupBlockComponent)
32
- map.set('grid', GridBlockComponent)
33
-
34
- const registerBlockType = (key: string, type: ComponentType<BlockComponentProps>): void => {
35
- map.set(key, type)
36
- }
37
-
38
- const renderBlock = (block: B.Block, className: string, agent?: string, keyStr?: string): ReactNode => {
39
- if (block.blockType === 'element') {
40
- return (block as B.ElementBlock).element
41
- }
42
- const CompType = map.get(block.blockType)
43
- if (!CompType) return null
44
- return <CompType block={block} className={className} agent={agent} key={keyStr ?? ''} />
45
- }
46
-
47
- const ContentComponent: React.FC<{
48
- blocks: B.Block | B.Block[] | undefined
49
- className?: string
50
- agent?: string
51
- }> = ({
52
- blocks,
53
- className='',
54
- agent
55
- }) => {
56
- if (!blocks) return null
57
- if (Array.isArray(blocks)) {
58
- return (
59
- blocks.map((block, index) => (
60
- renderBlock(block, className, agent, `content-block-${block.blockType}-${index}`)
61
- ))
62
- )
63
- }
64
- return renderBlock(blocks, className, agent)
65
- }
66
-
67
- export {
68
- ContentComponent as default,
69
- registerBlockType
70
- }
@@ -1,98 +0,0 @@
1
- import React from 'react'
2
-
3
- import type { LinkDef, ButtonDef} from '../../types'
4
- import { type ButtonSizes, ActionButton, LinkElement } from '../../primitives'
5
- import type { CTABlock } from '../def'
6
- import { cn, containsToken } from '../../util'
7
-
8
- import type BlockComponentProps from './block-component-props'
9
-
10
- const CtaBlockComponent: React.FC<BlockComponentProps & {
11
- itemClasses?: string
12
- itemSize?: ButtonSizes,
13
- renderLink?: (def: LinkDef, key: any) => JSX.Element
14
- renderButton?: (def: ButtonDef, key: any) => JSX.Element
15
- }> = ({
16
- block,
17
- className='', // assigned to each item
18
- itemClasses='',
19
- itemSize, // do not provide default. this is an override to the def
20
- renderLink,
21
- renderButton,
22
- agent
23
- }) => {
24
-
25
- if (block.blockType !== 'cta') {
26
- return <>cta block required</>
27
- }
28
-
29
- const { elements, specifiers } = block as CTABlock
30
- let wrapperClasses = ''
31
- let itemclx = ''
32
- if (containsToken(specifiers, 'fill')) {
33
- wrapperClasses += 'w-full '
34
- itemclx += 'grow shrink !min-w-0'
35
- }
36
- else if (containsToken(specifiers, 'left')) {
37
- wrapperClasses += 'md:justify-start '
38
- }
39
- else if (containsToken(specifiers, 'right')) {
40
- wrapperClasses += 'md:justify-end '
41
- }
42
- else {
43
- wrapperClasses += 'md:justify-center '
44
- }
45
-
46
- const mobile2Columns = containsToken(specifiers, 'mobile-2-columns')
47
- const mobileCenterFirstIfOdd = containsToken(specifiers, 'mobile-center-first-if-odd')
48
- const mobileOddFullWidth = containsToken(specifiers, 'mobile-odd-full-width')
49
-
50
- const layoutclx = (mobile2Columns && elements.length > 1) ?
51
- 'grid grid-cols-2 gap-2 self-stretch md:flex md:flex-sm md:justify-center '
52
- :
53
- 'flex flex-col items-stretch gap-2 self-stretch md:flex-row sm:justify-center '
54
-
55
- const getMobileColSpanClx = (index: number, total: number) => {
56
- const indexToCenter = (total % 2 === 0) ? -1 : (mobileCenterFirstIfOdd) ? 0 : total - 1
57
- const widthclx = mobileOddFullWidth ? 'w-full ' : 'w-3/5 mx-auto '
58
- return (
59
- (agent === 'phone' && mobile2Columns && (index === indexToCenter)) ? ('col-span-2 ' + widthclx) : ''
60
- )
61
- }
62
-
63
- return (
64
- <div className={cn(
65
- layoutclx,
66
- wrapperClasses,
67
- className
68
- )}>
69
- {elements.map((element, index) => {
70
- const twoColClx = getMobileColSpanClx(index, elements.length)
71
- if ((element as any).title) {
72
- const def = element as LinkDef
73
- return renderLink ? renderLink(def, index) : (
74
- <LinkElement
75
- def={def}
76
- key={index}
77
- size={itemSize}
78
- className={cn(itemclx, itemClasses, twoColClx)}
79
- />
80
- )
81
- }
82
- else {
83
- const def = element as ButtonDef
84
- return renderButton ? renderButton(def, index) : (
85
- <ActionButton
86
- def={def}
87
- key={index}
88
- size={itemSize}
89
- className={cn(itemclx, itemClasses, twoColClx)}
90
- />
91
- )
92
- }
93
- })}
94
- </div>
95
- )
96
- }
97
-
98
- export default CtaBlockComponent
@@ -1,205 +0,0 @@
1
- import React, {type ElementType} from 'react'
2
-
3
- import type { Icon } from '../../types'
4
- import type { EnhHeadingBlock } from '../def'
5
- import { ApplyTypography } from '../../primitives'
6
- import { cn, containsToken } from '../../util'
7
-
8
- import type BlockComponentProps from './block-component-props'
9
- import InlineIcon from '../../primitives/inline-icon'
10
-
11
- const DEFAULTS = {
12
- preheading: {
13
- tag: 'h4' as ElementType,
14
- mb: 2
15
- },
16
- heading: {
17
- tag: 'h1' as ElementType,
18
- mb: 2
19
- },
20
- byline: {
21
- tag: 'h6' as ElementType,
22
- }
23
- }
24
-
25
- const tagFromLevel = (level: number): ElementType => {
26
- switch (level) {
27
- case 1: {
28
- return 'h1'
29
- }
30
- case 2: {
31
- return 'h2'
32
- }
33
- case 3: {
34
- return 'h3'
35
- }
36
- case 4: {
37
- return 'h4'
38
- }
39
- case 5: {
40
- return 'h5'
41
- }
42
- case 6: {
43
- return 'h6'
44
- }
45
- }
46
- return 'p'
47
- }
48
-
49
- // TODO Impl icon support
50
- const Element: React.FC<{
51
- asTag: ElementType
52
- text: string
53
- icon?: Icon
54
- iconLeft?: boolean
55
- className?: string
56
- }> = ({
57
- asTag: Tag,
58
- text,
59
- icon,
60
- iconLeft=true,
61
- className : elClassName=''
62
- }) => (
63
- <Tag className={elClassName}>{text}</Tag>
64
- )
65
-
66
- const getPositionClx = (
67
- specified: (s: string) => boolean,
68
- agent: string | undefined
69
- ): {
70
- preheading: string
71
- heading: string
72
- byline: string
73
- } => {
74
-
75
- const mobileHeadingCentered = specified('mobile-heading-centered')
76
- const mobileHeadingLeft = specified('mobile-heading-left')
77
- const headingCentered = specified('center')
78
- const headingRight = specified('right')
79
- const bylineCentered = specified('byline-center')
80
- const bylineRight = specified('byline-right')
81
- const mobileBylineLeft = specified('mobile-byline-left')
82
-
83
- let headerclx = ''
84
- let bylineclx = (bylineCentered) ?
85
- 'self-center !text-center' : (bylineRight ? 'self-end !text-right' : 'self-start !text-left')
86
-
87
- if (agent === 'phone') {
88
- if (mobileHeadingLeft) {
89
- headerclx = 'self-start text-left'
90
- } else {
91
- headerclx = (mobileHeadingCentered || headingCentered) ?
92
- 'self-center text-center' : (headingRight ? 'self-end text-right' : 'self-start text-left')
93
- }
94
-
95
- if (mobileBylineLeft) {
96
- bylineclx = 'self-start !text-left'
97
- }
98
- }
99
- else {
100
- const largerclx = (headingCentered) ?
101
- 'self-center text-center' : (headingRight ? 'self-end text-right' : 'self-start text-left')
102
-
103
- if (mobileHeadingCentered) {
104
- headerclx = 'self-center text-center md:' + largerclx.split(' ').join(' md:')
105
- }
106
- else {
107
- headerclx = largerclx
108
- }
109
- }
110
-
111
- return {
112
- preheading: headerclx,
113
- heading: headerclx,
114
- byline: bylineclx
115
- }
116
- }
117
-
118
- const EnhHeadingBlockComponent: React.FC<
119
- BlockComponentProps & {
120
- applyTypography?: boolean
121
- extraSpecifiers?: string
122
- }> = ({
123
- block,
124
- className='',
125
- agent,
126
- applyTypography=true,
127
- extraSpecifiers=''
128
- }) => {
129
-
130
- if (block.blockType !== 'enh-heading') {
131
- return <>enhance heading block required</>
132
- }
133
- const b = block as EnhHeadingBlock
134
- const specified = (s: string) => (containsToken(b.specifiers + extraSpecifiers, s))
135
- const preheadingHeadingFont = specified('preheading-heading-font')
136
- const phFontClx = preheadingHeadingFont ? 'font-heading' : ''
137
- const alignMiddleClx = specified('align-middle') ? 'my-auto' : ''
138
-
139
- const positionclx = getPositionClx(specified, agent)
140
-
141
- const Inner: React.FC = () => {
142
- const toRender = [
143
- {
144
- tag: (b.preheading) ?
145
- (b.preheading.level !== undefined ? tagFromLevel(b.preheading.level) : DEFAULTS.preheading.tag)
146
- :
147
- undefined,
148
- clx: (b.preheading) ?
149
- (b.preheading.mb !== undefined ?
150
- `mb-${b.preheading.mb}` : `mb-${DEFAULTS.preheading.mb}`) + ' ' + positionclx.preheading + ' ' + phFontClx
151
- :
152
- positionclx.preheading + ' ' + phFontClx,
153
- text: (b.preheading) ? (b.preheading.text ) : undefined,
154
- },
155
- {
156
- tag: (b.heading.level !== undefined ? tagFromLevel(b.heading.level) : DEFAULTS.heading.tag),
157
- clx: (b.heading.mb !== undefined ? `mb-${b.heading.mb}` : `mb-${DEFAULTS.heading.mb}`) + ' ' + positionclx.heading,
158
- text: b.heading.text,
159
- },
160
- {
161
- tag: (b.byline) ?
162
- (b.byline.level !== undefined ? tagFromLevel(b.byline.level) : DEFAULTS.byline.tag)
163
- :
164
- undefined,
165
- clx: positionclx.byline,
166
- text: (b.byline) ? (b.byline.text ) : undefined,
167
- },
168
- ] as {
169
- tag: ElementType
170
- clx: string
171
- text: string
172
- }[]
173
-
174
- let iconRendered = false
175
- return <>
176
- {toRender.map(({tag, clx, text}, index) => {
177
- if (!tag) return null
178
- if (b.icon && !iconRendered) {
179
- iconRendered = true
180
- return (
181
- <div className={cn('flex flex-row items-center gap-2 sm:gap-4', clx)} key={`div-${index}`}>
182
- <InlineIcon icon={b.icon} size={b.iconSize ?? 32} agent={agent}/>
183
- <Element asTag={tag} text={text} />
184
- </div>
185
- )
186
- }
187
- return (
188
- (<Element asTag={tag} text={text} className={clx} key={`el-${index}`}/>)
189
- )
190
- })}
191
- </>
192
- }
193
-
194
- return applyTypography ? (
195
- <ApplyTypography className={cn('flex flex-col w-full !gap-0', className, alignMiddleClx)}>
196
- <Inner />
197
- </ApplyTypography>
198
- ) : (
199
- <div className={cn('flex flex-col w-full gap-0', className, alignMiddleClx)}>
200
- <Inner />
201
- </div>
202
- )
203
- }
204
-
205
- export default EnhHeadingBlockComponent
@@ -1,12 +0,0 @@
1
- interface GridBlockMutator {
2
- gapClx?: string
3
- getCellClx?: (
4
- cellIndex: number,
5
- cellCount: number,
6
- colCount: number
7
- ) => string
8
- }
9
-
10
- export {
11
- type GridBlockMutator as default
12
- }
@@ -1,83 +0,0 @@
1
- import React, { type PropsWithChildren } from 'react'
2
-
3
- import { cn, containsToken } from '../../../util'
4
- import type { GridBlock } from '../../def'
5
- import type { GridColumnSpec } from '../../../types'
6
-
7
- import Content from '../content'
8
- import type BlockComponentProps from '../block-component-props'
9
-
10
- import getMutator from './mutator-registry'
11
-
12
- // These must be / are safelisted in tailwind.config
13
- const gridClx = (d: GridColumnSpec, prefix?: string ): string => (
14
- (typeof d === 'number') ?
15
- `${(prefix ?? '')}grid-cols-${d} `
16
- :
17
- `${(prefix ?? '')}grid-cols-${d.columns} ${(prefix ?? '')}gap-${d.gap} `
18
- )
19
-
20
- /**
21
- * A component that lays out the Blocks in 'cells' on a grid.
22
- * If invoked directly, and children are supplied,
23
- * block.cells is ignore and the children are rendered.
24
- */
25
- const GridBlockComponent: React.FC<
26
- BlockComponentProps & PropsWithChildren
27
- > = ({
28
- block,
29
- className='',
30
- agent,
31
- children
32
- }) => {
33
-
34
- if (block.blockType !== 'grid') {
35
- return <>grid block required</>
36
- }
37
-
38
- const { cells, grid, specifiers } = block as GridBlock
39
- const specified = (s: string) => (containsToken(specifiers, s))
40
- const mutator = specified('style-table-borders') ? getMutator('style-table-borders') : undefined
41
-
42
- // https://tailwindcss.com/docs/content-configuration#dynamic-class-names
43
- // All variants in use MUST be in style/safelist.tailwind.js
44
- let clx = 'grid '
45
- if (agent === 'phone') {
46
- const d = (grid.mobile) ? grid.mobile : (grid.at.xs ? grid.at.xs : (grid.at.sm ?? 1))
47
- clx += gridClx(d)
48
- }
49
- else {
50
- let defaultSet = false
51
- for (const [key, value] of Object.entries(grid.at)) {
52
- if (!defaultSet) {
53
- // ts brain fart!
54
- clx += gridClx(value as GridColumnSpec)
55
- defaultSet = true
56
- }
57
- else {
58
- // ts brain fart!
59
- clx += gridClx(value as GridColumnSpec, `${key}:`)
60
- }
61
- }
62
- }
63
-
64
- let getMutatorCellClx = (ignore: number): string => ('')
65
- if (mutator?.getCellClx) {
66
- const colCount = (typeof grid.at.md! === 'number') ? grid.at.md! as number : grid.at.md!.columns
67
- const cellCount = cells?.length
68
- if (!colCount || !cellCount) {
69
- throw new Error('GridBlockComponent: using mutator, but colCount and / or cellCount is invalid!')
70
- }
71
- getMutatorCellClx = (cellIndex: number) => ( mutator!.getCellClx!(cellIndex, cellCount, colCount) )
72
- }
73
-
74
- return (
75
- <div className={cn('grid gap-2 md:gap-4 xl:gap-6', clx, (mutator?.gapClx ?? ''), className)}>
76
- {React.Children.count(children) > 0 ? children : cells?.map((cell, index) => (
77
- <Content blocks={cell} agent={agent} key={`cell-${index}`} className={getMutatorCellClx(index)}/>
78
- ))}
79
- </div>
80
- )
81
- }
82
-
83
- export default GridBlockComponent
@@ -1,10 +0,0 @@
1
- import type GridBlockMutator from './grid-block-mutator'
2
-
3
- import tableBorders from './table-borders.mutator'
4
-
5
- const map = new Map<string, GridBlockMutator>()
6
- map.set('style-table-borders', tableBorders)
7
-
8
- // get
9
- export default (key: string): GridBlockMutator | undefined => (map.get(key))
10
-
@@ -1,47 +0,0 @@
1
- import type GridBlockMutator from './grid-block-mutator'
2
-
3
- const getCellClx = (
4
- cellIndex: number,
5
- cellCount: number,
6
- colCount: number
7
- ): string => {
8
-
9
- const isFirstRow = (): boolean => (cellIndex < colCount)
10
- const isFirstColumn = (): boolean => (cellIndex % colCount === 0)
11
- const isTLCorner = (): boolean => (cellIndex === 0)
12
- const isTRCorner = (): boolean => (cellIndex === colCount -1 )
13
- const isBLCorner = (): boolean => (cellIndex === cellCount - colCount)
14
- const isBRCorner = (): boolean => (cellIndex === cellCount - 1)
15
-
16
- // all get a right and bottom border and padding,
17
- // other borders are a special base
18
- let clx = 'border-b md:border-r p-4 md:p-8 lg:p-12 '
19
- if (isFirstRow()) {
20
- clx += 'border-t '
21
- }
22
- if (isFirstColumn()) {
23
- clx += 'md:border-l '
24
- }
25
- // on mobile this will be the first (top) cell
26
- if (isTLCorner()) {
27
- clx += 'border-t md:rounded-tl-lg '
28
- }
29
- else if (isTRCorner()) {
30
- clx += 'md:rounded-tr-lg '
31
- }
32
- else if (isBLCorner()) {
33
- clx += 'md:rounded-bl-lg '
34
- }
35
- else if (isBRCorner()) {
36
- clx += 'md:rounded-br-lg '
37
- }
38
-
39
- return clx
40
- }
41
-
42
- const gapClx = 'gap-0 md:gap-0 xl:gap-0'
43
-
44
- export default {
45
- getCellClx,
46
- gapClx
47
- } as GridBlockMutator
@@ -1,83 +0,0 @@
1
- import React from 'react'
2
-
3
- import { Breakpoints} from '../../types'
4
- import { cn } from '../../util'
5
-
6
- import type { Block, GroupBlock } from '../def'
7
- import Content from './content'
8
-
9
- // eg: 'layout-grid-2-starting-md'
10
- // see comments below regarding dynamic classes and the safelist
11
- const getLayoutInfo = (s: string): {
12
- layout: string
13
- spec: any
14
- } | undefined => {
15
- const tokenArray = s.split(' ')
16
- const layoutToken = tokenArray.find((tok) => (tok.startsWith('layout-')))
17
- if (layoutToken) {
18
- const subtokens = layoutToken.split('-')
19
- const layout = subtokens[1]
20
- let spec: any = {}
21
- switch (layout) {
22
- case 'grid': {
23
- const columns = parseInt(subtokens[2], 10)
24
- const starting = subtokens[4]
25
- if (Number.isNaN(columns) || columns < 2 || columns > 6 || !Breakpoints.includes(starting)) {
26
- return undefined
27
- }
28
- spec = {
29
- columns,
30
- starting
31
- }
32
- } break
33
- // no other types supported yet
34
- }
35
- return {
36
- layout,
37
- spec
38
- }
39
- }
40
- return undefined
41
- }
42
-
43
- const GroupBlockComponent: React.FC<{
44
- block: Block
45
- className?: string,
46
- }> = ({
47
- block,
48
- className=''
49
- }) => {
50
-
51
- if (block.blockType !== 'group') {
52
- return <>group block required</>
53
- }
54
-
55
- const group = block as GroupBlock
56
-
57
- // only one supported so fat
58
- if (group.specifiers?.includes('layout')) {
59
- const layoutSpec = getLayoutInfo(group.specifiers)
60
- if (!layoutSpec) {
61
- return <>invalid or missing layout specifier in group block!</>
62
- }
63
-
64
- if (layoutSpec.layout === 'grid') {
65
- const { elements } = group
66
- const { spec: {starting, columns} } = layoutSpec
67
-
68
- // https://tailwindcss.com/docs/content-configuration#dynamic-class-names
69
- // All variants in use MUST be in style/safelist.tailwind.js
70
- const clazzName = cn('grid xs:grid-cols-1 gap-2 sm:gap-3',
71
- `${starting}:grid-cols-${columns} `,
72
- className)
73
- return (
74
- <div className={clazzName}>
75
- <Content blocks={elements} />
76
- </div>
77
- )
78
- }
79
- }
80
- return null
81
- }
82
-
83
- export default GroupBlockComponent
@@ -1,88 +0,0 @@
1
- import React from 'react'
2
-
3
- import type { HeadingBlock } from '../def'
4
- import { ApplyTypography } from '../../primitives'
5
-
6
- import type BlockComponentProps from './block-component-props'
7
-
8
- const HeadingBlockComponent: React.FC<BlockComponentProps> = ({
9
- block,
10
- className=''
11
- }) => {
12
-
13
- if (block.blockType !== 'heading') {
14
- return <>heading block required</>
15
- }
16
- const heading = block as HeadingBlock
17
-
18
- let Tag: React.ElementType
19
- let BylineTag: React.ElementType | undefined = undefined
20
-
21
- switch (heading.bylineLevel) {
22
- case 0: {
23
- BylineTag = 'p'
24
- } break
25
- case 1: {
26
- BylineTag = 'h1'
27
- } break
28
- case 2: {
29
- BylineTag = 'h2'
30
- } break
31
- case 3: {
32
- BylineTag = 'h3'
33
- } break
34
- case 4: {
35
- BylineTag = 'h4'
36
- } break
37
- case 5: {
38
- BylineTag = 'h5'
39
- } break
40
- case 6: {
41
- BylineTag = 'h6'
42
- } break
43
- }
44
- // bylineLevel default is two levels below the main heading
45
- switch (heading.level) {
46
- case 0: {
47
- Tag = 'p'
48
- BylineTag = BylineTag ?? 'p'
49
- } break
50
- case 1: {
51
- Tag = 'h1'
52
- BylineTag = BylineTag ?? 'h3'
53
- } break
54
- case 2: {
55
- Tag = 'h2'
56
- BylineTag = BylineTag ?? 'h4'
57
- } break
58
- // 3 is default
59
- case 4: {
60
- Tag = 'h4'
61
- BylineTag = BylineTag ?? 'h6'
62
- } break
63
- case 5: {
64
- Tag = 'h5'
65
- BylineTag = BylineTag ?? 'p'
66
- } break
67
- case 6: {
68
- Tag = 'h6'
69
- BylineTag = BylineTag ?? 'p'
70
- } break
71
- default: {
72
- Tag = 'h3'
73
- BylineTag = BylineTag ?? 'h5'
74
- }
75
- }
76
-
77
- // Had to do this way, since tw typo plugin does support overrding typo styling wiithout .not-typography
78
- return (
79
- <ApplyTypography className={className}>
80
- <Tag >{heading.heading}</Tag>
81
- {heading.spaceBetween && <div className={'w-[1px] ' + `h-${heading.spaceBetween}`} />}
82
- {heading.byline && (<BylineTag>{heading.byline}</BylineTag>)}
83
- {heading.spaceAfter && <div className={'w-[1px] ' + `h-${heading.spaceAfter}`} />}
84
- </ApplyTypography>
85
- )
86
- }
87
-
88
- export default HeadingBlockComponent