@bitrise/bitkit-v2 0.3.475 → 0.3.476

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 (341) hide show
  1. package/README.md +5 -6
  2. package/dist/atoms/DatePicker/DatePicker.js.map +1 -1
  3. package/dist/atoms/ImageCropper/ImageCropper.js.map +1 -1
  4. package/dist/components/BitkitActionMenu/BitkitActionMenu.js.map +1 -1
  5. package/dist/components/BitkitAvatar/BitkitAvatar.js.map +1 -1
  6. package/dist/components/BitkitButton/BitkitButton.js.map +1 -1
  7. package/dist/components/BitkitCollapsible/BitkitCollapsible.js.map +1 -1
  8. package/dist/components/BitkitColorButton/BitkitColorButton.js.map +1 -1
  9. package/dist/components/BitkitDialog/BitkitStepsDialog.js.map +1 -1
  10. package/dist/components/BitkitDialog/BitkitStepsDialogStep.js.map +1 -1
  11. package/dist/components/BitkitDialog/DialogBodyContext.js.map +1 -1
  12. package/dist/components/BitkitExpandableCard/BitkitExpandableCard.js.map +1 -1
  13. package/dist/components/BitkitFileInput/BitkitFileInput.js.map +1 -1
  14. package/dist/components/BitkitIconButton/BitkitIconButton.js.map +1 -1
  15. package/dist/components/BitkitLabeledData/BitkitLabeledData.js.map +1 -1
  16. package/dist/components/BitkitList/BitkitList.js.map +1 -1
  17. package/dist/components/BitkitMarkdown/BitkitMarkdown.js.map +1 -1
  18. package/dist/components/BitkitMarkdownCard/BitkitMarkdownCard.js.map +1 -1
  19. package/dist/components/BitkitMultiselect/BitkitMultiselect.js.map +1 -1
  20. package/dist/components/BitkitNoteCard/BitkitNoteCard.js.map +1 -1
  21. package/dist/components/BitkitOverflowContent/BitkitOverflowContent.js.map +1 -1
  22. package/dist/components/BitkitPageSidebar/BitkitPageSidebar.js.map +1 -1
  23. package/dist/components/BitkitPagination/BitkitPagination.js.map +1 -1
  24. package/dist/components/BitkitPaginationLoadMore/BitkitPaginationLoadMore.js.map +1 -1
  25. package/dist/components/BitkitPopover/BitkitPopover.js.map +1 -1
  26. package/dist/components/BitkitPromoBanner/BitkitPromoBanner.js.map +1 -1
  27. package/dist/components/BitkitSegmentedControl/BitkitSegmentedControl.js.map +1 -1
  28. package/dist/components/BitkitSelectMenu/BitkitSelectMenuAction.js.map +1 -1
  29. package/dist/components/BitkitSettingsCard/BitkitSettingsCard.js.map +1 -1
  30. package/dist/components/BitkitSplitButton/BitkitSplitButton.js.map +1 -1
  31. package/dist/components/BitkitStat/BitkitStat.js.map +1 -1
  32. package/dist/components/BitkitStepsCard/BitkitStepsCard.js.map +1 -1
  33. package/dist/components/BitkitTable/BitkitExpandableRow.js.map +1 -1
  34. package/dist/components/BitkitTable/BitkitRowActionsCell.js.map +1 -1
  35. package/dist/components/BitkitTable/BitkitSortableColumnHeader.js.map +1 -1
  36. package/dist/components/BitkitTabs/BitkitTabs.js.map +1 -1
  37. package/dist/components/BitkitToggletip/BitkitToggletip.js.map +1 -1
  38. package/dist/components/BitkitTour/BitkitTour.js.map +1 -1
  39. package/dist/components/BitkitTreeView/BitkitTreeView.js.map +1 -1
  40. package/dist/components/BitkitUISideNav/UISideNavLink.js.map +1 -1
  41. package/dist/components/common/NotificationContent.js.map +1 -1
  42. package/dist/icons/IconAbortCircle.js.map +1 -1
  43. package/dist/icons/IconAbortCircleFilled.js.map +1 -1
  44. package/dist/icons/IconAddons.js.map +1 -1
  45. package/dist/icons/IconAgent.js.map +1 -1
  46. package/dist/icons/IconAnchor.js.map +1 -1
  47. package/dist/icons/IconAndroid.js.map +1 -1
  48. package/dist/icons/IconApp.js.map +1 -1
  49. package/dist/icons/IconAppSettings.js.map +1 -1
  50. package/dist/icons/IconAppStore.js.map +1 -1
  51. package/dist/icons/IconAppStoreColor.js.map +1 -1
  52. package/dist/icons/IconApple.js.map +1 -1
  53. package/dist/icons/IconArchive.js.map +1 -1
  54. package/dist/icons/IconArchiveDelete.js.map +1 -1
  55. package/dist/icons/IconArchiveRestore.js.map +1 -1
  56. package/dist/icons/IconArrowBackAndDown.js.map +1 -1
  57. package/dist/icons/IconArrowBackAndUp.js.map +1 -1
  58. package/dist/icons/IconArrowDown.js.map +1 -1
  59. package/dist/icons/IconArrowForwardAndDown.js.map +1 -1
  60. package/dist/icons/IconArrowForwardAndUp.js.map +1 -1
  61. package/dist/icons/IconArrowLeft.js.map +1 -1
  62. package/dist/icons/IconArrowNortheast.js.map +1 -1
  63. package/dist/icons/IconArrowNorthwest.js.map +1 -1
  64. package/dist/icons/IconArrowRight.js.map +1 -1
  65. package/dist/icons/IconArrowUp.js.map +1 -1
  66. package/dist/icons/IconArrowsHorizontal.js.map +1 -1
  67. package/dist/icons/IconArrowsVertical.js.map +1 -1
  68. package/dist/icons/IconAutomation.js.map +1 -1
  69. package/dist/icons/IconAws.js.map +1 -1
  70. package/dist/icons/IconAwsColor.js.map +1 -1
  71. package/dist/icons/IconBadge3RdParty.js.map +1 -1
  72. package/dist/icons/IconBadgeBitrise.js.map +1 -1
  73. package/dist/icons/IconBadgeUpgrade.js.map +1 -1
  74. package/dist/icons/IconBadgeVersionOk.js.map +1 -1
  75. package/dist/icons/IconBazel.js.map +1 -1
  76. package/dist/icons/IconBell.js.map +1 -1
  77. package/dist/icons/IconBitbot.js.map +1 -1
  78. package/dist/icons/IconBitbotError.js.map +1 -1
  79. package/dist/icons/IconBitbucket.js.map +1 -1
  80. package/dist/icons/IconBitbucketColor.js.map +1 -1
  81. package/dist/icons/IconBitbucketNeutral.js.map +1 -1
  82. package/dist/icons/IconBitbucketWhite.js.map +1 -1
  83. package/dist/icons/IconBlockCircle.js.map +1 -1
  84. package/dist/icons/IconBook.js.map +1 -1
  85. package/dist/icons/IconBoxArrowDown.js.map +1 -1
  86. package/dist/icons/IconBoxDot.js.map +1 -1
  87. package/dist/icons/IconBoxLinesOverflow.js.map +1 -1
  88. package/dist/icons/IconBoxLinesWrap.js.map +1 -1
  89. package/dist/icons/IconBranch.js.map +1 -1
  90. package/dist/icons/IconBrowserstackColor.js.map +1 -1
  91. package/dist/icons/IconBug.js.map +1 -1
  92. package/dist/icons/IconBuild.js.map +1 -1
  93. package/dist/icons/IconBuildCache.js.map +1 -1
  94. package/dist/icons/IconBuildCacheFilled.js.map +1 -1
  95. package/dist/icons/IconBuildEnvSetup.js.map +1 -1
  96. package/dist/icons/IconBuildHub.js.map +1 -1
  97. package/dist/icons/IconBuildHubFilled.js.map +1 -1
  98. package/dist/icons/IconCalendar.js.map +1 -1
  99. package/dist/icons/IconChangePlan.js.map +1 -1
  100. package/dist/icons/IconChat.js.map +1 -1
  101. package/dist/icons/IconCheck.js.map +1 -1
  102. package/dist/icons/IconCheckCircle.js.map +1 -1
  103. package/dist/icons/IconCheckCircleFilled.js.map +1 -1
  104. package/dist/icons/IconChevronDown.js.map +1 -1
  105. package/dist/icons/IconChevronLeft.js.map +1 -1
  106. package/dist/icons/IconChevronRight.js.map +1 -1
  107. package/dist/icons/IconChevronUp.js.map +1 -1
  108. package/dist/icons/IconCi.js.map +1 -1
  109. package/dist/icons/IconCiFilled.js.map +1 -1
  110. package/dist/icons/IconCircle.js.map +1 -1
  111. package/dist/icons/IconCircleDashed.js.map +1 -1
  112. package/dist/icons/IconCircleHalfFilled.js.map +1 -1
  113. package/dist/icons/IconClaude.js.map +1 -1
  114. package/dist/icons/IconClaudeColor.js.map +1 -1
  115. package/dist/icons/IconClock.js.map +1 -1
  116. package/dist/icons/IconCode.js.map +1 -1
  117. package/dist/icons/IconCodePush.js.map +1 -1
  118. package/dist/icons/IconCodeSigning.js.map +1 -1
  119. package/dist/icons/IconCoffee.js.map +1 -1
  120. package/dist/icons/IconCommit.js.map +1 -1
  121. package/dist/icons/IconConfigure.js.map +1 -1
  122. package/dist/icons/IconConnectedAccounts.js.map +1 -1
  123. package/dist/icons/IconContainer.js.map +1 -1
  124. package/dist/icons/IconCopilot.js.map +1 -1
  125. package/dist/icons/IconCopy.js.map +1 -1
  126. package/dist/icons/IconCordova.js.map +1 -1
  127. package/dist/icons/IconCpu.js.map +1 -1
  128. package/dist/icons/IconCreditcard.js.map +1 -1
  129. package/dist/icons/IconCredits.js.map +1 -1
  130. package/dist/icons/IconCross.js.map +1 -1
  131. package/dist/icons/IconCrossCircle.js.map +1 -1
  132. package/dist/icons/IconCrossCircleFilled.js.map +1 -1
  133. package/dist/icons/IconCrown.js.map +1 -1
  134. package/dist/icons/IconCursor.js.map +1 -1
  135. package/dist/icons/IconCycle.js.map +1 -1
  136. package/dist/icons/IconDashboard.js.map +1 -1
  137. package/dist/icons/IconDashboardFilled.js.map +1 -1
  138. package/dist/icons/IconDeployment.js.map +1 -1
  139. package/dist/icons/IconDetails.js.map +1 -1
  140. package/dist/icons/IconDoc.js.map +1 -1
  141. package/dist/icons/IconDollar.js.map +1 -1
  142. package/dist/icons/IconDot.js.map +1 -1
  143. package/dist/icons/IconDotnet.js.map +1 -1
  144. package/dist/icons/IconDotnetColor.js.map +1 -1
  145. package/dist/icons/IconDotnetText.js.map +1 -1
  146. package/dist/icons/IconDotnetTextColor.js.map +1 -1
  147. package/dist/icons/IconDoubleCircle.js.map +1 -1
  148. package/dist/icons/IconDownload.js.map +1 -1
  149. package/dist/icons/IconDragHandle.js.map +1 -1
  150. package/dist/icons/IconEc2Ami.js.map +1 -1
  151. package/dist/icons/IconEnterprise.js.map +1 -1
  152. package/dist/icons/IconErrorCircle.js.map +1 -1
  153. package/dist/icons/IconErrorCircleFilled.js.map +1 -1
  154. package/dist/icons/IconExpand.js.map +1 -1
  155. package/dist/icons/IconExtraBuildCapacity.js.map +1 -1
  156. package/dist/icons/IconEye.js.map +1 -1
  157. package/dist/icons/IconEyeSlash.js.map +1 -1
  158. package/dist/icons/IconFastlane.js.map +1 -1
  159. package/dist/icons/IconFile.js.map +1 -1
  160. package/dist/icons/IconFileDoc.js.map +1 -1
  161. package/dist/icons/IconFilePdf.js.map +1 -1
  162. package/dist/icons/IconFilePlist.js.map +1 -1
  163. package/dist/icons/IconFileYml.js.map +1 -1
  164. package/dist/icons/IconFileZip.js.map +1 -1
  165. package/dist/icons/IconFilter.js.map +1 -1
  166. package/dist/icons/IconFlag.js.map +1 -1
  167. package/dist/icons/IconFlutter.js.map +1 -1
  168. package/dist/icons/IconFolder.js.map +1 -1
  169. package/dist/icons/IconFullscreen.js.map +1 -1
  170. package/dist/icons/IconFullscreenExit.js.map +1 -1
  171. package/dist/icons/IconGauge.js.map +1 -1
  172. package/dist/icons/IconGit.js.map +1 -1
  173. package/dist/icons/IconGithub.js.map +1 -1
  174. package/dist/icons/IconGitlab.js.map +1 -1
  175. package/dist/icons/IconGitlabColor.js.map +1 -1
  176. package/dist/icons/IconGitlabWhite.js.map +1 -1
  177. package/dist/icons/IconGlobe.js.map +1 -1
  178. package/dist/icons/IconGo.js.map +1 -1
  179. package/dist/icons/IconGoogleColor.js.map +1 -1
  180. package/dist/icons/IconGooglePlay.js.map +1 -1
  181. package/dist/icons/IconGooglePlayColor.js.map +1 -1
  182. package/dist/icons/IconGradle.js.map +1 -1
  183. package/dist/icons/IconGroup.js.map +1 -1
  184. package/dist/icons/IconHashtag.js.map +1 -1
  185. package/dist/icons/IconHeadset.js.map +1 -1
  186. package/dist/icons/IconHeart.js.map +1 -1
  187. package/dist/icons/IconHistory.js.map +1 -1
  188. package/dist/icons/IconHourglass.js.map +1 -1
  189. package/dist/icons/IconImage.js.map +1 -1
  190. package/dist/icons/IconInfoCircle.js.map +1 -1
  191. package/dist/icons/IconInfoCircleFilled.js.map +1 -1
  192. package/dist/icons/IconInsights.js.map +1 -1
  193. package/dist/icons/IconInsightsFilled.js.map +1 -1
  194. package/dist/icons/IconInstall.js.map +1 -1
  195. package/dist/icons/IconInteraction.js.map +1 -1
  196. package/dist/icons/IconInvoice.js.map +1 -1
  197. package/dist/icons/IconIonic.js.map +1 -1
  198. package/dist/icons/IconJapanese.js.map +1 -1
  199. package/dist/icons/IconJava.js.map +1 -1
  200. package/dist/icons/IconJavaColor.js.map +1 -1
  201. package/dist/icons/IconJavaDuke.js.map +1 -1
  202. package/dist/icons/IconJavaDukeColor.js.map +1 -1
  203. package/dist/icons/IconKey.js.map +1 -1
  204. package/dist/icons/IconKiroColor.js.map +1 -1
  205. package/dist/icons/IconKotlin.js.map +1 -1
  206. package/dist/icons/IconKotlinColor.js.map +1 -1
  207. package/dist/icons/IconKotlinWhite.js.map +1 -1
  208. package/dist/icons/IconLaptop.js.map +1 -1
  209. package/dist/icons/IconLaunchdarkly.js.map +1 -1
  210. package/dist/icons/IconLegacyApp.js.map +1 -1
  211. package/dist/icons/IconLightbulb.js.map +1 -1
  212. package/dist/icons/IconLink.js.map +1 -1
  213. package/dist/icons/IconLinux.js.map +1 -1
  214. package/dist/icons/IconLock.js.map +1 -1
  215. package/dist/icons/IconLockOpen.js.map +1 -1
  216. package/dist/icons/IconLogin.js.map +1 -1
  217. package/dist/icons/IconLogout.js.map +1 -1
  218. package/dist/icons/IconMacos.js.map +1 -1
  219. package/dist/icons/IconMagicWand.js.map +1 -1
  220. package/dist/icons/IconMagnifier.js.map +1 -1
  221. package/dist/icons/IconMail.js.map +1 -1
  222. package/dist/icons/IconMcp.js.map +1 -1
  223. package/dist/icons/IconMedal.js.map +1 -1
  224. package/dist/icons/IconMemory.js.map +1 -1
  225. package/dist/icons/IconMenuGrid.js.map +1 -1
  226. package/dist/icons/IconMenuHamburger.js.map +1 -1
  227. package/dist/icons/IconMessage.js.map +1 -1
  228. package/dist/icons/IconMessageAlert.js.map +1 -1
  229. package/dist/icons/IconMessageQuestion.js.map +1 -1
  230. package/dist/icons/IconMicrophone.js.map +1 -1
  231. package/dist/icons/IconMinus.js.map +1 -1
  232. package/dist/icons/IconMinusCircle.js.map +1 -1
  233. package/dist/icons/IconMinusCircleFilled.js.map +1 -1
  234. package/dist/icons/IconMobile.js.map +1 -1
  235. package/dist/icons/IconMobileLandscape.js.map +1 -1
  236. package/dist/icons/IconMonitorChart.js.map +1 -1
  237. package/dist/icons/IconMoreHorizontal.js.map +1 -1
  238. package/dist/icons/IconMoreVertical.js.map +1 -1
  239. package/dist/icons/IconNews.js.map +1 -1
  240. package/dist/icons/IconNextjs.js.map +1 -1
  241. package/dist/icons/IconNodejs.js.map +1 -1
  242. package/dist/icons/IconOpenInNew.js.map +1 -1
  243. package/dist/icons/IconOther.js.map +1 -1
  244. package/dist/icons/IconOutsideContributor.js.map +1 -1
  245. package/dist/icons/IconOverview.js.map +1 -1
  246. package/dist/icons/IconPause.js.map +1 -1
  247. package/dist/icons/IconPencil.js.map +1 -1
  248. package/dist/icons/IconPeople.js.map +1 -1
  249. package/dist/icons/IconPercent.js.map +1 -1
  250. package/dist/icons/IconPerson.js.map +1 -1
  251. package/dist/icons/IconPersonWithDesk.js.map +1 -1
  252. package/dist/icons/IconPin.js.map +1 -1
  253. package/dist/icons/IconPlay.js.map +1 -1
  254. package/dist/icons/IconPlus.js.map +1 -1
  255. package/dist/icons/IconPlusCircle.js.map +1 -1
  256. package/dist/icons/IconPlusCircleFilled.js.map +1 -1
  257. package/dist/icons/IconPower.js.map +1 -1
  258. package/dist/icons/IconProject.js.map +1 -1
  259. package/dist/icons/IconProjectSettings.js.map +1 -1
  260. package/dist/icons/IconPull.js.map +1 -1
  261. package/dist/icons/IconPush.js.map +1 -1
  262. package/dist/icons/IconPuzzle.js.map +1 -1
  263. package/dist/icons/IconPython.js.map +1 -1
  264. package/dist/icons/IconPythonColor.js.map +1 -1
  265. package/dist/icons/IconQuestionCircle.js.map +1 -1
  266. package/dist/icons/IconQuestionCircleFilled.js.map +1 -1
  267. package/dist/icons/IconReact.js.map +1 -1
  268. package/dist/icons/IconRefresh.js.map +1 -1
  269. package/dist/icons/IconRegex.js.map +1 -1
  270. package/dist/icons/IconRelease.js.map +1 -1
  271. package/dist/icons/IconReleaseFilled.js.map +1 -1
  272. package/dist/icons/IconRemoteAccess.js.map +1 -1
  273. package/dist/icons/IconReplace.js.map +1 -1
  274. package/dist/icons/IconResponsiveness.js.map +1 -1
  275. package/dist/icons/IconReviewerApproved.js.map +1 -1
  276. package/dist/icons/IconReviewerAssigned.js.map +1 -1
  277. package/dist/icons/IconReviewerRejected.js.map +1 -1
  278. package/dist/icons/IconRuby.js.map +1 -1
  279. package/dist/icons/IconRubyColor.js.map +1 -1
  280. package/dist/icons/IconSave.js.map +1 -1
  281. package/dist/icons/IconSecurityShield.js.map +1 -1
  282. package/dist/icons/IconSettings.js.map +1 -1
  283. package/dist/icons/IconSettingsFilled.js.map +1 -1
  284. package/dist/icons/IconShuffle.js.map +1 -1
  285. package/dist/icons/IconSiren.js.map +1 -1
  286. package/dist/icons/IconSkip.js.map +1 -1
  287. package/dist/icons/IconSkipCircle.js.map +1 -1
  288. package/dist/icons/IconSkipCircleFilled.js.map +1 -1
  289. package/dist/icons/IconSlack.js.map +1 -1
  290. package/dist/icons/IconSlackColor.js.map +1 -1
  291. package/dist/icons/IconSparkle.js.map +1 -1
  292. package/dist/icons/IconSparkleFilled.js.map +1 -1
  293. package/dist/icons/IconSpinnerOnDisabled.js.map +1 -1
  294. package/dist/icons/IconSpinnerPurple.js.map +1 -1
  295. package/dist/icons/IconSpinnerPurpleDouble.js.map +1 -1
  296. package/dist/icons/IconSpinnerWhite.js.map +1 -1
  297. package/dist/icons/IconStability.js.map +1 -1
  298. package/dist/icons/IconStack.js.map +1 -1
  299. package/dist/icons/IconStar.js.map +1 -1
  300. package/dist/icons/IconStep.js.map +1 -1
  301. package/dist/icons/IconStop.js.map +1 -1
  302. package/dist/icons/IconStopwatch.js.map +1 -1
  303. package/dist/icons/IconTabPlus.js.map +1 -1
  304. package/dist/icons/IconTag.js.map +1 -1
  305. package/dist/icons/IconTasks.js.map +1 -1
  306. package/dist/icons/IconTeams.js.map +1 -1
  307. package/dist/icons/IconTeamsColor.js.map +1 -1
  308. package/dist/icons/IconTemplateCode.js.map +1 -1
  309. package/dist/icons/IconTerminal.js.map +1 -1
  310. package/dist/icons/IconTerminalFilled.js.map +1 -1
  311. package/dist/icons/IconTestQuarantine.js.map +1 -1
  312. package/dist/icons/IconThemeDarkToggle.js.map +1 -1
  313. package/dist/icons/IconThumbDown.js.map +1 -1
  314. package/dist/icons/IconThumbUp.js.map +1 -1
  315. package/dist/icons/IconTools.js.map +1 -1
  316. package/dist/icons/IconTrash.js.map +1 -1
  317. package/dist/icons/IconTrigger.js.map +1 -1
  318. package/dist/icons/IconUbuntu.js.map +1 -1
  319. package/dist/icons/IconUbuntuColor.js.map +1 -1
  320. package/dist/icons/IconUnity3D.js.map +1 -1
  321. package/dist/icons/IconUnpin.js.map +1 -1
  322. package/dist/icons/IconUpload.js.map +1 -1
  323. package/dist/icons/IconValidateShield.js.map +1 -1
  324. package/dist/icons/IconVideo.js.map +1 -1
  325. package/dist/icons/IconVsCode.js.map +1 -1
  326. package/dist/icons/IconWarning.js.map +1 -1
  327. package/dist/icons/IconWarningYellow.js.map +1 -1
  328. package/dist/icons/IconWebUi.js.map +1 -1
  329. package/dist/icons/IconWebhooks.js.map +1 -1
  330. package/dist/icons/IconWindsurf.js.map +1 -1
  331. package/dist/icons/IconWorkflow.js.map +1 -1
  332. package/dist/icons/IconWorkflowFlow.js.map +1 -1
  333. package/dist/icons/IconXTwitter.js.map +1 -1
  334. package/dist/icons/IconXamarin.js.map +1 -1
  335. package/dist/icons/IconXcode.js.map +1 -1
  336. package/dist/theme/slot-recipes/Combobox.recipe.js.map +1 -1
  337. package/dist/theme/slot-recipes/TextInput.recipe.js.map +1 -1
  338. package/dist/theme/slot-recipes/index.js.map +1 -1
  339. package/dist/theme/tokens/sizes.js.map +1 -1
  340. package/dist/theme/tokens/spacing.js.map +1 -1
  341. package/package.json +10 -12
@@ -1 +1 @@
1
- {"version":3,"file":"BitkitTour.js","names":[],"sources":["../../../lib/components/BitkitTour/BitkitTour.tsx"],"sourcesContent":["import {\n Tour as ArkTour,\n type TourStepDetails,\n useTour,\n type UseTourProps,\n type UseTourReturn,\n} from '@ark-ui/react/tour';\nimport { Box } from '@chakra-ui/react/box';\nimport { useEnvironmentContext } from '@chakra-ui/react/environment';\nimport { Portal } from '@chakra-ui/react/portal';\nimport { chakra, useSlotRecipe } from '@chakra-ui/react/styled-system';\nimport { isIos } from '@zag-js/dom-query';\nimport { preventBodyScroll } from '@zag-js/remove-scroll';\nimport { type ReactNode, useCallback, useEffect, useRef } from 'react';\n\nimport BitkitButton from '../BitkitButton/BitkitButton';\nimport BitkitCloseButton from '../BitkitCloseButton/BitkitCloseButton';\n\ntype BitkitTourStepAction = NonNullable<TourStepDetails['actions']>[number];\n\n/**\n * The link-style action in the footer, e.g. `Skip tour` or `Learn more`. It either drives the tour\n * (`action`) or leaves the page (`href`) — the union makes passing both, or neither, a type error.\n */\nexport type BitkitTourSecondaryAction =\n | {\n /**\n * A tour action — `'skip'`, `'dismiss'`, `'next'`, `'prev'`, or a function that receives the\n * action map (`{ next, prev, dismiss, skip, goto }`) to do something else first.\n */\n action: NonNullable<BitkitTourStepAction['action']>;\n href?: never;\n label: string;\n }\n | {\n action?: never;\n /** Renders the action as a link out. */\n href: string;\n /** Opens the link in a new tab, with the matching `rel`. */\n isExternal?: boolean;\n label: string;\n };\n\n/**\n * A single step of the tour. On top of Ark's step details it carries the three Bitkit slots —\n * `badge`, `content` and `secondaryAction`. Zag spreads the whole step object when it normalises\n * it, so these reach `tour.step` untouched. (Zag also offers a `meta` bag for this; flat fields\n * read better at the call site, at the cost of a name clash if Zag ever adds one of these.)\n *\n * Ark's step `type` is not part of this: every step is a card anchored to an element, so the hook\n * sets it. `target` is required for the same reason — Zag turns a step without one into a centred\n * dialog, which is a presentation this component doesn't have.\n */\nexport type BitkitTourStep = Omit<TourStepDetails, 'type'> & {\n /**\n * Rendered next to the title — a `BitkitBadge` in practice, e.g. `BETA` or `NEW`. Nothing about\n * the badge is fixed here beyond its placement: the element itself comes from the caller.\n */\n badge?: ReactNode;\n /** Rendered between the description and the footer — an image, a video, a table, anything. */\n content?: ReactNode;\n secondaryAction?: BitkitTourSecondaryAction;\n /** The element the step points at. */\n target: NonNullable<TourStepDetails['target']>;\n};\n\nexport interface BitkitTourOptions extends Omit<UseTourProps, 'closeOnInteractOutside' | 'onStepsChange' | 'steps'> {\n /**\n * Called whenever the tour ends, whichever way it ended — the close button, `Skip tour`, the last\n * step's action, or a target that never appeared. It is the counterpart to `open`: turn your own\n * value false here and the tour can be opened again, without having to know which of Zag's five\n * statuses mean \"over\". `onStatusChange` still reports which one it was, for deciding whether to\n * record the tour as seen.\n */\n onClose?: () => void;\n /** Refined so the callback reports the Bitkit slots too, like the rest of the api does. */\n onStepsChange?: (details: { steps: BitkitTourStep[] }) => void;\n /**\n * Drives the tour from a value the caller already has — it starts when this turns true and closes\n * when it turns false. This is how a tour is opened: it announces something, so it appears once\n * the user is eligible for it, never in answer to the interaction it would interrupt.\n *\n * Only the transitions count: a tour that ends on its own — `Skip tour`, a lost target, the last\n * step — stays closed while this is still true, and starts again on the next `false → true`.\n */\n open?: boolean;\n steps: BitkitTourStep[];\n}\n/** The tour api returned by `useBitkitTour` — pass it around to control the tour from anywhere. */\nexport type BitkitTourInstance = Omit<UseTourReturn, 'addStep' | 'setSteps' | 'step' | 'updateStep'> & {\n addStep: (step: BitkitTourStep) => void;\n setSteps: (steps: BitkitTourStep[]) => void;\n /** The current step, with the Bitkit slots (`badge`, `content`, `secondaryAction`) still typed on it. */\n step: BitkitTourStep | null;\n /** Closes the tour, the same way its close button does. */\n dismiss: () => void;\n updateStep: (id: string, stepOverrides: Partial<BitkitTourStep>) => void;\n};\nexport type BitkitTourProps = {\n /** The tour instance returned by `useBitkitTour`. */\n tour: BitkitTourInstance;\n};\n\n/**\n * Creates the tour instance that drives `BitkitTour`. Takes the steps plus the tour-level options\n * (`onStepChange`, `onStatusChange`, `closeOnEscape`, `preventInteraction`, `translations`, …) and\n * returns the api that reports and navigates it: `step`, `stepIndex`, `totalSteps`, `next()`,\n * `prev()`, `setStep()`. Closing on a click outside isn't among them — see below.\n *\n * A one-step tour announces a feature, and behaves the same wherever it's used:\n *\n * - it appears on its own — `open` turns true once the user is eligible, and nothing has to be\n * clicked to bring it up;\n * - dismissing it closes it, and it doesn't come back;\n * - acting on the control it points at closes it too, reported as a dismissal like any other, so\n * the target keeps doing whatever it did before;\n * - until one of those two happens, a reload or a new session brings it back — which means the\n * dismissal is recorded for the user in `onStatusChange`, not kept in page state.\n */\nexport const useBitkitTour = (options: BitkitTourOptions): BitkitTourInstance => {\n // The document the tour lives in — the global one unless a consumer renders under an\n // `EnvironmentProvider`, e.g. into an iframe. Same route Zag's own machines take.\n const { getDocument } = useEnvironmentContext();\n\n // `onClose` is ours, not Zag's, so it is kept out of what reaches the machine. The ref keeps an\n // inline callback from giving the machine a new `onStatusChange` on every render.\n const { onClose, ...tourOptions } = options;\n const onCloseRef = useRef(onClose);\n onCloseRef.current = onClose;\n // Zag reports the end of a tour more than once — a dismissal on the last step emits `dismissed`\n // and then `completed` — so the run, not the status, is what `onClose` is tied to. Guarding on the\n // status names instead would encode which pairs the machine currently emits together.\n const hasClosedRef = useRef(false);\n\n const tour = useTour({\n // The highlight sits 8 around the target, and the card 12 from the highlight — the 8 the arrow\n // takes plus the 4 gap the design asks for. Both are measured from the highlight, since Zag\n // grows the anchor rect by `spotlightOffset` before positioning. `offset.mainAxis` replaces\n // Zag's own gutter, and Popper adds half the arrow's box on top of it: 6 + 5.65 ≈ the 12.\n spotlightOffset: { x: 8, y: 8 },\n // 4 is also Zag's current default, but the design asks for it and a third-party default is not\n // ours to rely on — the z-index contract already moved under us once between two minors.\n spotlightRadius: 4,\n ...tourOptions,\n // Not part of the options, and set after the spread so it can't be turned back on: a tour is a\n // guided flow with its own ways out — the close button, `Skip tour`, `Done` — and Zag would\n // otherwise end it on any click outside the card, losing the whole thing to a stray click on\n // the dimmed page. Escape is a deliberate keystroke rather than a stray click, so it keeps\n // closing the tour by default — and unlike this one, `closeOnEscape` stays in the options for\n // callers who want it off.\n closeOnInteractOutside: false,\n // Every status other than `started` is the tour ending, and `onClose` is what saves callers from\n // knowing that. The caller's own `onStatusChange` runs first and unchanged — it reports every\n // status, including the ones `onClose` collapses.\n onStatusChange: (details) => {\n tourOptions.onStatusChange?.(details);\n\n if (details.status === 'started') {\n hasClosedRef.current = false;\n\n return;\n }\n\n if (hasClosedRef.current) {\n return;\n }\n\n hasClosedRef.current = true;\n onCloseRef.current?.();\n },\n // Same reason as the cast on `Tour.Root` below: our step type isn't a supertype of Ark's, so a\n // callback taking ours doesn't match the signature Ark declares. The payload is Ark's.\n onStepsChange: tourOptions.onStepsChange as UseTourProps['onStepsChange'],\n // Zag's default is `close tour`, and this one is visible rather than screen-reader only: the\n // close button shows its own aria-label in a tooltip. The rest of Zag's translations\n // (`nextStep`, `prevStep`, `skip`) stay as they are — those only ever reach assistive tech.\n translations: { close: 'Close tour', ...tourOptions.translations },\n // `type` last: there is one presentation, so it isn't the caller's to pick.\n steps: tourOptions.steps.map((step) => ({ offset: { mainAxis: 6 }, ...step, type: 'tooltip' as const })),\n });\n\n // Zag's api can start a tour but not stop one. Its close trigger's click handler *is* the\n // machine's dismiss, so this borrows that instead of reaching into the machine. The cast says\n // what the handler is rather than manufacturing an event for it: `actionMap.dismiss` takes none.\n const dismiss = useCallback(() => {\n const closeTriggerClick = tour.getCloseTriggerProps().onClick as (() => void) | undefined;\n\n closeTriggerClick?.();\n }, [tour]);\n\n // A single-step tour points at one control, and operating that control is the same\n // acknowledgement its close button is — there is no next step to go to, so the tour is done. Zag\n // leaves the target clickable on purpose (it excludes it from interact-outside), so without this\n // every caller has to wire the dismissal into the target's own handler, and the ones that forget\n // show the tour again on the user's next visit. Multi-step tours are left alone: there, clicking\n // the highlighted control could as easily mean \"go on\" as \"I'm done\", which isn't ours to guess.\n //\n // The listener is on the document rather than the target, resolving the target when the click\n // happens: the target can re-render while the tour is open, and capture runs even when the\n // caller's own handler stops propagation. `click` rather than `pointerdown` — a right-click or an\n // abandoned drag isn't acting on it — and it still runs before a link's navigation, so a caller\n // that records the dismissal gets its request away.\n // `dismiss` closes over `tour`, which is a new object on every render, so listing it would put the\n // effects below on every render as well — attaching and detaching the listener for nothing.\n const dismissRef = useRef(dismiss);\n dismissRef.current = dismiss;\n\n const isSingleStep = options.steps.length === 1;\n useEffect(() => {\n if (!tour.open || !isSingleStep) {\n return undefined;\n }\n\n const onDocumentClick = (event: MouseEvent) => {\n const target = tour.step?.target?.();\n\n // The event path rather than `target.contains(event.target)`: under an `EnvironmentProvider`\n // the click comes from another realm, where a node is not an instance of this one's `Node`, so\n // narrowing it that way is always false — and the path crosses shadow boundaries as well.\n if (target && event.composedPath().includes(target)) {\n dismissRef.current();\n }\n };\n\n const doc = getDocument();\n\n doc.addEventListener('click', onDocumentClick, true);\n\n return () => doc.removeEventListener('click', onDocumentClick, true);\n // `tour` is a new object on every render; the machine's own state is what matters here.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [getDocument, isSingleStep, tour.open, tour.step?.id]);\n\n // Edge-triggered, on the prop's own `false → true`: comparing it against `tour.open` instead made\n // every close the machine performs for its own reasons look like a caller who wants the tour open,\n // and started it again. Zag reports five statuses and callers reasonably handle `dismissed` only,\n // so `Skip tour` (`skipped`) and a target that goes missing (`not-found`) both closed the tour and\n // had it come straight back at step one. `undefined` as the initial value so an `open` that is\n // already true on mount still starts the tour.\n const { open } = tourOptions;\n const previousOpen = useRef<boolean | undefined>(undefined);\n useEffect(() => {\n if (open === undefined || open === previousOpen.current) {\n return;\n }\n\n previousOpen.current = open;\n\n if (open) {\n tour.start();\n } else {\n dismissRef.current();\n }\n // `tour` is a new object on every render, and reacting to the machine's own `open` is exactly\n // what this effect must not do.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open]);\n\n return { ...tour, dismiss, step: tour.step as BitkitTourStep | null };\n};\n\n// The Ark parts aren't Chakra components, so they're wrapped with the `chakra()` factory to accept\n// `css`. They're deliberately NOT wrapped with `asChild`: each Ark part falls back to the current\n// step's content (title, description, progress text, action label) only when it renders its own\n// children, and `asChild` would replace those children with the wrapper element.\nconst TourBackdrop = chakra(ArkTour.Backdrop);\nconst TourSpotlight = chakra(ArkTour.Spotlight);\nconst TourPositioner = chakra(ArkTour.Positioner);\nconst TourContent = chakra(ArkTour.Content);\nconst TourArrow = chakra(ArkTour.Arrow);\nconst TourArrowTip = chakra(ArkTour.ArrowTip);\nconst TourTitle = chakra(ArkTour.Title);\nconst TourDescription = chakra(ArkTour.Description);\nconst TourControl = chakra(ArkTour.Control);\nconst TourProgressText = chakra(ArkTour.ProgressText);\n\nconst SecondaryAction = ({ secondaryAction }: { secondaryAction: BitkitTourSecondaryAction }) => {\n const { action, href, label } = secondaryAction;\n\n if (href !== undefined) {\n return (\n <BitkitButton href={href} isExternal={secondaryAction.isExternal} size=\"sm\" variant=\"tertiary\">\n {label}\n </BitkitButton>\n );\n }\n\n if (!action) return null;\n\n return (\n <ArkTour.ActionTrigger asChild action={{ action, label }} aria-label={label}>\n <BitkitButton size=\"sm\" variant=\"tertiary\">\n {label}\n </BitkitButton>\n </ArkTour.ActionTrigger>\n );\n};\n\n/**\n * A guided product tour: a step card anchored to an element on the page, with a spotlight cut out\n * of the dimmed backdrop around that element.\n *\n * The steps and the tour behaviour live on the instance — create it with `useBitkitTour` and render\n * `BitkitTour` once, anywhere in the tree. Each step declares its own action buttons; the last one\n * is rendered as the primary button. A single-step tour drops the `1 of n` label, which is what\n * turns the card into the single-feature presentation.\n */\nconst BitkitTour = ({ tour }: BitkitTourProps) => {\n const recipe = useSlotRecipe({ key: 'tour' });\n const styles = recipe();\n const step = tour.step;\n const actions = step?.actions ?? [];\n\n // Zag traps focus with fixed options, so it lands on the card's first tabbable — the close button,\n // which means a screen reader opens the tour on `Close tour` instead of on what the step says. The\n // card is what should take it: Zag gives the content `role=\"alertdialog\"`, `tabIndex: -1` and the\n // `aria-labelledby`/`aria-describedby` pair exactly so it can be focused and read out. Measured\n // alternatives that don't work: making the card tabbable (the trap picks a descendant either way)\n // and a ref (it doesn't survive the `chakra()`-wrapped Ark part). This corrects the trap's choice\n // instead of trying to beat it — the trap activates asynchronously too, and racing it with a frame\n // loses whenever the first paint is slow. The listener takes the first focus that lands anywhere\n // in the card, moves it to the card itself and then steps out of the way, so everything after it\n // (Tab, the buttons, a click) behaves normally. It arms on open and not per step, so stepping on\n // keeps the focus on the button that did it, rather than pulling the next keystroke back to the\n // card. The lookup goes through the machine's own content id, so two mounted tours can't reach\n // each other's card.\n //\n // The tour machine is the one Zag component that can't be told where to put focus: `dialog` takes\n // an `initialFocusEl` and hands it to the same trap, and even defaults an `alertdialog` to its\n // close trigger deliberately. Once the tour has that prop too, this effect goes away.\n const { open } = tour;\n // Everything below reaches for the document through the environment rather than the global one:\n // under an `EnvironmentProvider` — a consumer rendering into an iframe — that is the document the\n // portal, and so the tour, actually lives in. Zag's own machines take the same route.\n const { getDocument } = useEnvironmentContext();\n\n // The tour machine has no scroll handling of its own — no `preventScroll` prop, no listener —\n // while Zag's dialog machine locks the body through this same helper. The tour needs it just as\n // much: everything it paints is positioned in document coordinates from a target it resolves once,\n // when the step opens, and never looks up again. Let the page scroll and any layout that swaps its\n // elements around — a sticky header that moves its buttons into a portal is the common one —\n // leaves the machine anchored to a node that is no longer in the document. A detached node\n // measures zero, so the card, the spotlight and the backdrop's cut-out all collapse into the\n // top-left corner of the page. Locking is the honest reading of the presentation anyway: the tour\n // dims the page and takes focus, exactly like a modal dialog.\n // Not on iOS, where the helper pins `<body>` with `position: fixed` instead of hiding the\n // overflow: from there the machine's `scrollIntoView` on step entry can't move the viewport, so a\n // target below the fold is unreachable and the tour locks the user onto a step they can't see —\n // worse than the misalignment the lock is here to prevent. (`overflow: hidden` leaves programmatic\n // scrolling alone, which is what makes the lock safe everywhere else.)\n useEffect(() => (open && !isIos() ? preventBodyScroll(getDocument()) : undefined), [getDocument, open]);\n\n const contentId = tour.getContentProps().id;\n useEffect(() => {\n if (!open || contentId === undefined) {\n return undefined;\n }\n\n const contentEl = getDocument().getElementById(contentId);\n if (!contentEl) {\n return undefined;\n }\n\n const takeFocus = () => {\n contentEl.removeEventListener('focusin', takeFocus);\n // `preventScroll`, because this runs before Popper has placed the card, and until then the\n // card is parked off-screen at `-100vh` — a plain `focus()` scrolls the page up to it and\n // leaves the user looking at the top of the page with a tour they can't see. Zag passes the\n // same option everywhere it moves focus itself.\n contentEl.focus({ preventScroll: true });\n };\n\n contentEl.addEventListener('focusin', takeFocus);\n\n return () => contentEl.removeEventListener('focusin', takeFocus);\n }, [contentId, getDocument, open]);\n\n return (\n // `unmountOnExit` so a closed tour leaves nothing behind: the card, the backdrop and the\n // spotlight are all page-level overlays, and there is no state to keep alive between two runs.\n // The cast is the price of refining `step` and the step-mutating methods on the instance: our\n // step type isn't a supertype of Ark's, so the methods no longer match its api signature. The\n // object is Ark's api — only the types are ours.\n <ArkTour.Root unmountOnExit tour={tour as UseTourReturn}>\n <Portal>\n <TourBackdrop css={styles.backdrop} />\n <TourSpotlight css={styles.spotlight} />\n <TourPositioner css={styles.positioner}>\n <TourContent css={styles.content}>\n {/* `hidden={false}` overrides Zag, which hides the arrow until the card has been\n positioned — while Popper computes that position from the arrow's `clientHeight`, so\n a hidden arrow measures 0 and the card lands 6 short of the design's 12, then drops\n by that 6 as soon as anything recomputes. Nothing shows in the meantime: until it is\n positioned the card itself sits off-screen at `-100vh`. */}\n <TourArrow css={styles.arrow} hidden={false}>\n <TourArrowTip css={styles.arrowTip} />\n </TourArrow>\n <Box css={styles.header}>\n <Box css={styles.titleGroup}>\n {tour.totalSteps > 1 ? <TourProgressText css={styles.progressText} /> : null}\n <Box css={styles.titleRow}>\n <TourTitle css={styles.title} />\n {step?.badge ? <Box css={styles.badge}>{step.badge}</Box> : null}\n </Box>\n </Box>\n <ArkTour.CloseTrigger asChild>\n <BitkitCloseButton css={styles.closeTrigger} size=\"xs\" />\n </ArkTour.CloseTrigger>\n </Box>\n <TourDescription css={styles.description} />\n {step?.content ? <Box css={styles.media}>{step.content}</Box> : null}\n <TourControl css={styles.control}>\n {step?.secondaryAction ? <SecondaryAction secondaryAction={step.secondaryAction} /> : null}\n <Box css={styles.actions}>\n {actions.map((action, index) => (\n // Zag labels the trigger from its own translations (`close tour`, `next step`),\n // which would override the visible text as the accessible name — and put two\n // `Close tour` buttons on a card whose dismiss action reads `Got it`.\n <ArkTour.ActionTrigger key={action.label} asChild action={action} aria-label={action.label}>\n <BitkitButton size=\"sm\" variant={index === actions.length - 1 ? 'primary' : 'secondary'}>\n {action.label}\n </BitkitButton>\n </ArkTour.ActionTrigger>\n ))}\n </Box>\n </TourControl>\n </TourContent>\n </TourPositioner>\n </Portal>\n </ArkTour.Root>\n );\n};\n\nBitkitTour.displayName = 'BitkitTour';\n\nexport default BitkitTour;\n"],"mappings":"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"}
1
+ {"version":3,"file":"BitkitTour.js","names":["ArkTour"],"sources":["../../../lib/components/BitkitTour/BitkitTour.tsx"],"sourcesContent":["import {\n Tour as ArkTour,\n type TourStepDetails,\n useTour,\n type UseTourProps,\n type UseTourReturn,\n} from '@ark-ui/react/tour';\nimport { Box } from '@chakra-ui/react/box';\nimport { useEnvironmentContext } from '@chakra-ui/react/environment';\nimport { Portal } from '@chakra-ui/react/portal';\nimport { chakra, useSlotRecipe } from '@chakra-ui/react/styled-system';\nimport { isIos } from '@zag-js/dom-query';\nimport { preventBodyScroll } from '@zag-js/remove-scroll';\nimport { type ReactNode, useCallback, useEffect, useRef } from 'react';\n\nimport BitkitButton from '../BitkitButton/BitkitButton';\nimport BitkitCloseButton from '../BitkitCloseButton/BitkitCloseButton';\n\ntype BitkitTourStepAction = NonNullable<TourStepDetails['actions']>[number];\n\n/**\n * The link-style action in the footer, e.g. `Skip tour` or `Learn more`. It either drives the tour\n * (`action`) or leaves the page (`href`) — the union makes passing both, or neither, a type error.\n */\nexport type BitkitTourSecondaryAction =\n | {\n /**\n * A tour action — `'skip'`, `'dismiss'`, `'next'`, `'prev'`, or a function that receives the\n * action map (`{ next, prev, dismiss, skip, goto }`) to do something else first.\n */\n action: NonNullable<BitkitTourStepAction['action']>;\n href?: never;\n label: string;\n }\n | {\n action?: never;\n /** Renders the action as a link out. */\n href: string;\n /** Opens the link in a new tab, with the matching `rel`. */\n isExternal?: boolean;\n label: string;\n };\n\n/**\n * A single step of the tour. On top of Ark's step details it carries the three Bitkit slots —\n * `badge`, `content` and `secondaryAction`. Zag spreads the whole step object when it normalises\n * it, so these reach `tour.step` untouched. (Zag also offers a `meta` bag for this; flat fields\n * read better at the call site, at the cost of a name clash if Zag ever adds one of these.)\n *\n * Ark's step `type` is not part of this: every step is a card anchored to an element, so the hook\n * sets it. `target` is required for the same reason — Zag turns a step without one into a centred\n * dialog, which is a presentation this component doesn't have.\n */\nexport type BitkitTourStep = Omit<TourStepDetails, 'type'> & {\n /**\n * Rendered next to the title — a `BitkitBadge` in practice, e.g. `BETA` or `NEW`. Nothing about\n * the badge is fixed here beyond its placement: the element itself comes from the caller.\n */\n badge?: ReactNode;\n /** Rendered between the description and the footer — an image, a video, a table, anything. */\n content?: ReactNode;\n secondaryAction?: BitkitTourSecondaryAction;\n /** The element the step points at. */\n target: NonNullable<TourStepDetails['target']>;\n};\n\nexport interface BitkitTourOptions extends Omit<UseTourProps, 'closeOnInteractOutside' | 'onStepsChange' | 'steps'> {\n /**\n * Called whenever the tour ends, whichever way it ended — the close button, `Skip tour`, the last\n * step's action, or a target that never appeared. It is the counterpart to `open`: turn your own\n * value false here and the tour can be opened again, without having to know which of Zag's five\n * statuses mean \"over\". `onStatusChange` still reports which one it was, for deciding whether to\n * record the tour as seen.\n */\n onClose?: () => void;\n /** Refined so the callback reports the Bitkit slots too, like the rest of the api does. */\n onStepsChange?: (details: { steps: BitkitTourStep[] }) => void;\n /**\n * Drives the tour from a value the caller already has — it starts when this turns true and closes\n * when it turns false. This is how a tour is opened: it announces something, so it appears once\n * the user is eligible for it, never in answer to the interaction it would interrupt.\n *\n * Only the transitions count: a tour that ends on its own — `Skip tour`, a lost target, the last\n * step — stays closed while this is still true, and starts again on the next `false → true`.\n */\n open?: boolean;\n steps: BitkitTourStep[];\n}\n/** The tour api returned by `useBitkitTour` — pass it around to control the tour from anywhere. */\nexport type BitkitTourInstance = Omit<UseTourReturn, 'addStep' | 'setSteps' | 'step' | 'updateStep'> & {\n addStep: (step: BitkitTourStep) => void;\n setSteps: (steps: BitkitTourStep[]) => void;\n /** The current step, with the Bitkit slots (`badge`, `content`, `secondaryAction`) still typed on it. */\n step: BitkitTourStep | null;\n /** Closes the tour, the same way its close button does. */\n dismiss: () => void;\n updateStep: (id: string, stepOverrides: Partial<BitkitTourStep>) => void;\n};\nexport type BitkitTourProps = {\n /** The tour instance returned by `useBitkitTour`. */\n tour: BitkitTourInstance;\n};\n\n/**\n * Creates the tour instance that drives `BitkitTour`. Takes the steps plus the tour-level options\n * (`onStepChange`, `onStatusChange`, `closeOnEscape`, `preventInteraction`, `translations`, …) and\n * returns the api that reports and navigates it: `step`, `stepIndex`, `totalSteps`, `next()`,\n * `prev()`, `setStep()`. Closing on a click outside isn't among them — see below.\n *\n * A one-step tour announces a feature, and behaves the same wherever it's used:\n *\n * - it appears on its own — `open` turns true once the user is eligible, and nothing has to be\n * clicked to bring it up;\n * - dismissing it closes it, and it doesn't come back;\n * - acting on the control it points at closes it too, reported as a dismissal like any other, so\n * the target keeps doing whatever it did before;\n * - until one of those two happens, a reload or a new session brings it back — which means the\n * dismissal is recorded for the user in `onStatusChange`, not kept in page state.\n */\nexport const useBitkitTour = (options: BitkitTourOptions): BitkitTourInstance => {\n // The document the tour lives in — the global one unless a consumer renders under an\n // `EnvironmentProvider`, e.g. into an iframe. Same route Zag's own machines take.\n const { getDocument } = useEnvironmentContext();\n\n // `onClose` is ours, not Zag's, so it is kept out of what reaches the machine. The ref keeps an\n // inline callback from giving the machine a new `onStatusChange` on every render.\n const { onClose, ...tourOptions } = options;\n const onCloseRef = useRef(onClose);\n onCloseRef.current = onClose;\n // Zag reports the end of a tour more than once — a dismissal on the last step emits `dismissed`\n // and then `completed` — so the run, not the status, is what `onClose` is tied to. Guarding on the\n // status names instead would encode which pairs the machine currently emits together.\n const hasClosedRef = useRef(false);\n\n const tour = useTour({\n // The highlight sits 8 around the target, and the card 12 from the highlight — the 8 the arrow\n // takes plus the 4 gap the design asks for. Both are measured from the highlight, since Zag\n // grows the anchor rect by `spotlightOffset` before positioning. `offset.mainAxis` replaces\n // Zag's own gutter, and Popper adds half the arrow's box on top of it: 6 + 5.65 ≈ the 12.\n spotlightOffset: { x: 8, y: 8 },\n // 4 is also Zag's current default, but the design asks for it and a third-party default is not\n // ours to rely on — the z-index contract already moved under us once between two minors.\n spotlightRadius: 4,\n ...tourOptions,\n // Not part of the options, and set after the spread so it can't be turned back on: a tour is a\n // guided flow with its own ways out — the close button, `Skip tour`, `Done` — and Zag would\n // otherwise end it on any click outside the card, losing the whole thing to a stray click on\n // the dimmed page. Escape is a deliberate keystroke rather than a stray click, so it keeps\n // closing the tour by default — and unlike this one, `closeOnEscape` stays in the options for\n // callers who want it off.\n closeOnInteractOutside: false,\n // Every status other than `started` is the tour ending, and `onClose` is what saves callers from\n // knowing that. The caller's own `onStatusChange` runs first and unchanged — it reports every\n // status, including the ones `onClose` collapses.\n onStatusChange: (details) => {\n tourOptions.onStatusChange?.(details);\n\n if (details.status === 'started') {\n hasClosedRef.current = false;\n\n return;\n }\n\n if (hasClosedRef.current) {\n return;\n }\n\n hasClosedRef.current = true;\n onCloseRef.current?.();\n },\n // Same reason as the cast on `Tour.Root` below: our step type isn't a supertype of Ark's, so a\n // callback taking ours doesn't match the signature Ark declares. The payload is Ark's.\n onStepsChange: tourOptions.onStepsChange as UseTourProps['onStepsChange'],\n // Zag's default is `close tour`, and this one is visible rather than screen-reader only: the\n // close button shows its own aria-label in a tooltip. The rest of Zag's translations\n // (`nextStep`, `prevStep`, `skip`) stay as they are — those only ever reach assistive tech.\n translations: { close: 'Close tour', ...tourOptions.translations },\n // `type` last: there is one presentation, so it isn't the caller's to pick.\n steps: tourOptions.steps.map((step) => ({ offset: { mainAxis: 6 }, ...step, type: 'tooltip' as const })),\n });\n\n // Zag's api can start a tour but not stop one. Its close trigger's click handler *is* the\n // machine's dismiss, so this borrows that instead of reaching into the machine. The cast says\n // what the handler is rather than manufacturing an event for it: `actionMap.dismiss` takes none.\n const dismiss = useCallback(() => {\n const closeTriggerClick = tour.getCloseTriggerProps().onClick as (() => void) | undefined;\n\n closeTriggerClick?.();\n }, [tour]);\n\n // A single-step tour points at one control, and operating that control is the same\n // acknowledgement its close button is — there is no next step to go to, so the tour is done. Zag\n // leaves the target clickable on purpose (it excludes it from interact-outside), so without this\n // every caller has to wire the dismissal into the target's own handler, and the ones that forget\n // show the tour again on the user's next visit. Multi-step tours are left alone: there, clicking\n // the highlighted control could as easily mean \"go on\" as \"I'm done\", which isn't ours to guess.\n //\n // The listener is on the document rather than the target, resolving the target when the click\n // happens: the target can re-render while the tour is open, and capture runs even when the\n // caller's own handler stops propagation. `click` rather than `pointerdown` — a right-click or an\n // abandoned drag isn't acting on it — and it still runs before a link's navigation, so a caller\n // that records the dismissal gets its request away.\n // `dismiss` closes over `tour`, which is a new object on every render, so listing it would put the\n // effects below on every render as well — attaching and detaching the listener for nothing.\n const dismissRef = useRef(dismiss);\n dismissRef.current = dismiss;\n\n const isSingleStep = options.steps.length === 1;\n useEffect(() => {\n if (!tour.open || !isSingleStep) {\n return undefined;\n }\n\n const onDocumentClick = (event: MouseEvent) => {\n const target = tour.step?.target?.();\n\n // The event path rather than `target.contains(event.target)`: under an `EnvironmentProvider`\n // the click comes from another realm, where a node is not an instance of this one's `Node`, so\n // narrowing it that way is always false — and the path crosses shadow boundaries as well.\n if (target && event.composedPath().includes(target)) {\n dismissRef.current();\n }\n };\n\n const doc = getDocument();\n\n doc.addEventListener('click', onDocumentClick, true);\n\n return () => doc.removeEventListener('click', onDocumentClick, true);\n // `tour` is a new object on every render; the machine's own state is what matters here.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [getDocument, isSingleStep, tour.open, tour.step?.id]);\n\n // Edge-triggered, on the prop's own `false → true`: comparing it against `tour.open` instead made\n // every close the machine performs for its own reasons look like a caller who wants the tour open,\n // and started it again. Zag reports five statuses and callers reasonably handle `dismissed` only,\n // so `Skip tour` (`skipped`) and a target that goes missing (`not-found`) both closed the tour and\n // had it come straight back at step one. `undefined` as the initial value so an `open` that is\n // already true on mount still starts the tour.\n const { open } = tourOptions;\n const previousOpen = useRef<boolean | undefined>(undefined);\n useEffect(() => {\n if (open === undefined || open === previousOpen.current) {\n return;\n }\n\n previousOpen.current = open;\n\n if (open) {\n tour.start();\n } else {\n dismissRef.current();\n }\n // `tour` is a new object on every render, and reacting to the machine's own `open` is exactly\n // what this effect must not do.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open]);\n\n return { ...tour, dismiss, step: tour.step as BitkitTourStep | null };\n};\n\n// The Ark parts aren't Chakra components, so they're wrapped with the `chakra()` factory to accept\n// `css`. They're deliberately NOT wrapped with `asChild`: each Ark part falls back to the current\n// step's content (title, description, progress text, action label) only when it renders its own\n// children, and `asChild` would replace those children with the wrapper element.\nconst TourBackdrop = chakra(ArkTour.Backdrop);\nconst TourSpotlight = chakra(ArkTour.Spotlight);\nconst TourPositioner = chakra(ArkTour.Positioner);\nconst TourContent = chakra(ArkTour.Content);\nconst TourArrow = chakra(ArkTour.Arrow);\nconst TourArrowTip = chakra(ArkTour.ArrowTip);\nconst TourTitle = chakra(ArkTour.Title);\nconst TourDescription = chakra(ArkTour.Description);\nconst TourControl = chakra(ArkTour.Control);\nconst TourProgressText = chakra(ArkTour.ProgressText);\n\nconst SecondaryAction = ({ secondaryAction }: { secondaryAction: BitkitTourSecondaryAction }) => {\n const { action, href, label } = secondaryAction;\n\n if (href !== undefined) {\n return (\n <BitkitButton href={href} isExternal={secondaryAction.isExternal} size=\"sm\" variant=\"tertiary\">\n {label}\n </BitkitButton>\n );\n }\n\n if (!action) return null;\n\n return (\n <ArkTour.ActionTrigger asChild action={{ action, label }} aria-label={label}>\n <BitkitButton size=\"sm\" variant=\"tertiary\">\n {label}\n </BitkitButton>\n </ArkTour.ActionTrigger>\n );\n};\n\n/**\n * A guided product tour: a step card anchored to an element on the page, with a spotlight cut out\n * of the dimmed backdrop around that element.\n *\n * The steps and the tour behaviour live on the instance — create it with `useBitkitTour` and render\n * `BitkitTour` once, anywhere in the tree. Each step declares its own action buttons; the last one\n * is rendered as the primary button. A single-step tour drops the `1 of n` label, which is what\n * turns the card into the single-feature presentation.\n */\nconst BitkitTour = ({ tour }: BitkitTourProps) => {\n const recipe = useSlotRecipe({ key: 'tour' });\n const styles = recipe();\n const step = tour.step;\n const actions = step?.actions ?? [];\n\n // Zag traps focus with fixed options, so it lands on the card's first tabbable — the close button,\n // which means a screen reader opens the tour on `Close tour` instead of on what the step says. The\n // card is what should take it: Zag gives the content `role=\"alertdialog\"`, `tabIndex: -1` and the\n // `aria-labelledby`/`aria-describedby` pair exactly so it can be focused and read out. Measured\n // alternatives that don't work: making the card tabbable (the trap picks a descendant either way)\n // and a ref (it doesn't survive the `chakra()`-wrapped Ark part). This corrects the trap's choice\n // instead of trying to beat it — the trap activates asynchronously too, and racing it with a frame\n // loses whenever the first paint is slow. The listener takes the first focus that lands anywhere\n // in the card, moves it to the card itself and then steps out of the way, so everything after it\n // (Tab, the buttons, a click) behaves normally. It arms on open and not per step, so stepping on\n // keeps the focus on the button that did it, rather than pulling the next keystroke back to the\n // card. The lookup goes through the machine's own content id, so two mounted tours can't reach\n // each other's card.\n //\n // The tour machine is the one Zag component that can't be told where to put focus: `dialog` takes\n // an `initialFocusEl` and hands it to the same trap, and even defaults an `alertdialog` to its\n // close trigger deliberately. Once the tour has that prop too, this effect goes away.\n const { open } = tour;\n // Everything below reaches for the document through the environment rather than the global one:\n // under an `EnvironmentProvider` — a consumer rendering into an iframe — that is the document the\n // portal, and so the tour, actually lives in. Zag's own machines take the same route.\n const { getDocument } = useEnvironmentContext();\n\n // The tour machine has no scroll handling of its own — no `preventScroll` prop, no listener —\n // while Zag's dialog machine locks the body through this same helper. The tour needs it just as\n // much: everything it paints is positioned in document coordinates from a target it resolves once,\n // when the step opens, and never looks up again. Let the page scroll and any layout that swaps its\n // elements around — a sticky header that moves its buttons into a portal is the common one —\n // leaves the machine anchored to a node that is no longer in the document. A detached node\n // measures zero, so the card, the spotlight and the backdrop's cut-out all collapse into the\n // top-left corner of the page. Locking is the honest reading of the presentation anyway: the tour\n // dims the page and takes focus, exactly like a modal dialog.\n // Not on iOS, where the helper pins `<body>` with `position: fixed` instead of hiding the\n // overflow: from there the machine's `scrollIntoView` on step entry can't move the viewport, so a\n // target below the fold is unreachable and the tour locks the user onto a step they can't see —\n // worse than the misalignment the lock is here to prevent. (`overflow: hidden` leaves programmatic\n // scrolling alone, which is what makes the lock safe everywhere else.)\n useEffect(() => (open && !isIos() ? preventBodyScroll(getDocument()) : undefined), [getDocument, open]);\n\n const contentId = tour.getContentProps().id;\n useEffect(() => {\n if (!open || contentId === undefined) {\n return undefined;\n }\n\n const contentEl = getDocument().getElementById(contentId);\n if (!contentEl) {\n return undefined;\n }\n\n const takeFocus = () => {\n contentEl.removeEventListener('focusin', takeFocus);\n // `preventScroll`, because this runs before Popper has placed the card, and until then the\n // card is parked off-screen at `-100vh` — a plain `focus()` scrolls the page up to it and\n // leaves the user looking at the top of the page with a tour they can't see. Zag passes the\n // same option everywhere it moves focus itself.\n contentEl.focus({ preventScroll: true });\n };\n\n contentEl.addEventListener('focusin', takeFocus);\n\n return () => contentEl.removeEventListener('focusin', takeFocus);\n }, [contentId, getDocument, open]);\n\n return (\n // `unmountOnExit` so a closed tour leaves nothing behind: the card, the backdrop and the\n // spotlight are all page-level overlays, and there is no state to keep alive between two runs.\n // The cast is the price of refining `step` and the step-mutating methods on the instance: our\n // step type isn't a supertype of Ark's, so the methods no longer match its api signature. The\n // object is Ark's api — only the types are ours.\n <ArkTour.Root unmountOnExit tour={tour as UseTourReturn}>\n <Portal>\n <TourBackdrop css={styles.backdrop} />\n <TourSpotlight css={styles.spotlight} />\n <TourPositioner css={styles.positioner}>\n <TourContent css={styles.content}>\n {/* `hidden={false}` overrides Zag, which hides the arrow until the card has been\n positioned — while Popper computes that position from the arrow's `clientHeight`, so\n a hidden arrow measures 0 and the card lands 6 short of the design's 12, then drops\n by that 6 as soon as anything recomputes. Nothing shows in the meantime: until it is\n positioned the card itself sits off-screen at `-100vh`. */}\n <TourArrow css={styles.arrow} hidden={false}>\n <TourArrowTip css={styles.arrowTip} />\n </TourArrow>\n <Box css={styles.header}>\n <Box css={styles.titleGroup}>\n {tour.totalSteps > 1 ? <TourProgressText css={styles.progressText} /> : null}\n <Box css={styles.titleRow}>\n <TourTitle css={styles.title} />\n {step?.badge ? <Box css={styles.badge}>{step.badge}</Box> : null}\n </Box>\n </Box>\n <ArkTour.CloseTrigger asChild>\n <BitkitCloseButton css={styles.closeTrigger} size=\"xs\" />\n </ArkTour.CloseTrigger>\n </Box>\n <TourDescription css={styles.description} />\n {step?.content ? <Box css={styles.media}>{step.content}</Box> : null}\n <TourControl css={styles.control}>\n {step?.secondaryAction ? <SecondaryAction secondaryAction={step.secondaryAction} /> : null}\n <Box css={styles.actions}>\n {actions.map((action, index) => (\n // Zag labels the trigger from its own translations (`close tour`, `next step`),\n // which would override the visible text as the accessible name — and put two\n // `Close tour` buttons on a card whose dismiss action reads `Got it`.\n <ArkTour.ActionTrigger key={action.label} asChild action={action} aria-label={action.label}>\n <BitkitButton size=\"sm\" variant={index === actions.length - 1 ? 'primary' : 'secondary'}>\n {action.label}\n </BitkitButton>\n </ArkTour.ActionTrigger>\n ))}\n </Box>\n </TourControl>\n </TourContent>\n </TourPositioner>\n </Portal>\n </ArkTour.Root>\n );\n};\n\nBitkitTour.displayName = 'BitkitTour';\n\nexport default BitkitTour;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"BitkitTreeView.js","names":[],"sources":["../../../lib/components/BitkitTreeView/BitkitTreeView.tsx"],"sourcesContent":["// eslint-disable-next-line no-restricted-imports\nimport { createContext } from '@chakra-ui/react';\nimport { Box } from '@chakra-ui/react/box';\nimport { useSlotRecipe } from '@chakra-ui/react/styled-system';\nimport { Text } from '@chakra-ui/react/text';\nimport {\n TreeView,\n type TreeViewBranchControlProps,\n type TreeViewItemProps,\n type TreeViewNodeRenderProps,\n type TreeViewRootProps,\n useTreeViewContext,\n} from '@chakra-ui/react/tree-view';\nimport { VisuallyHidden } from '@chakra-ui/react/visually-hidden';\nimport { cloneElement, forwardRef, type ReactElement, type ReactNode } from 'react';\n\nimport { type BitkitIconComponent, IconChevronRight, IconFolder, IconWarningYellow } from '../../icons';\nimport { type BitkitColorToken } from '../../theme/themeUtils';\nimport { withSubComponents } from '../../utilities/withSubComponents';\nimport BitkitTooltip from '../BitkitTooltip/BitkitTooltip';\n\n// Re-export for consumer convenience\nexport { createTreeCollection } from '@chakra-ui/react/collection';\n\n// Re-export useful types\nexport type {\n TreeViewExpandedChangeDetails as BitkitTreeViewExpandedChangeDetails,\n TreeViewNodeRenderProps as BitkitTreeViewNodeRenderProps,\n TreeViewSelectionChangeDetails as BitkitTreeViewSelectionChangeDetails,\n} from '@chakra-ui/react/tree-view';\n\n// --- Variant context ---\n\nexport type BitkitTreeViewVariant = 'files' | 'navigation';\n\nconst [VariantProvider, useVariant] = createContext<{ variant: BitkitTreeViewVariant }>({\n name: 'BitkitTreeViewVariantContext',\n defaultValue: { variant: 'files' },\n});\n\nconst useCustomSlotStyles = (variant: BitkitTreeViewVariant) => {\n const recipe = useSlotRecipe({ key: 'treeView' });\n return recipe({ variant });\n};\n\n// --- Root ---\n\nexport interface BitkitTreeViewRootProps extends Omit<TreeViewRootProps, 'children'> {\n children?: ReactNode;\n render: (props: TreeViewNodeRenderProps) => ReactNode;\n /**\n * Content after a branch's children, indented like them: a `BitkitPaginationLoadMore` with\n * `size=\"xs\"` for a directory that loads its files in pages. Called for branch nodes only;\n * return `null` for a branch that needs nothing. Designed for the `files` variant.\n */\n renderBranchFooter?: (props: TreeViewNodeRenderProps) => ReactNode;\n variant?: BitkitTreeViewVariant;\n}\n\ninterface NodesProps extends Pick<BitkitTreeViewRootProps, 'render' | 'renderBranchFooter'> {\n indentGuide?: ReactElement;\n variant: BitkitTreeViewVariant;\n}\n\n// Chakra's TreeView.Node, which has no slot after a branch's children.\nconst Nodes = ({ indentGuide, render, renderBranchFooter, variant }: NodesProps) => {\n const tree = useTreeViewContext();\n const styles = useCustomSlotStyles(variant);\n\n const renderNode = (node: unknown, indexPath: number[]): ReactNode => (\n <TreeView.NodeProvider key={indexPath.join('.')} indexPath={indexPath} node={node}>\n <TreeView.NodeContext>\n {(nodeState) => {\n if (!nodeState.isBranch) {\n return render({ indexPath, node, nodeState });\n }\n\n const footer = renderBranchFooter?.({ indexPath, node, nodeState });\n\n return (\n <TreeView.Branch>\n {render({ indexPath, node, nodeState })}\n <TreeView.BranchContent>\n {indentGuide}\n {tree.collection.getNodeChildren(node).map((child, index) => renderNode(child, [...indexPath, index]))}\n {footer && <Box css={[styles.footer, { '--depth': indexPath.length + 1 }]}>{footer}</Box>}\n </TreeView.BranchContent>\n </TreeView.Branch>\n );\n }}\n </TreeView.NodeContext>\n </TreeView.NodeProvider>\n );\n\n return tree.collection.getNodeChildren(tree.collection.rootNode).map((node, index) => renderNode(node, [index]));\n};\n\n/**\n * A tree of collapsible branches and leaves, in a `files` or a `navigation` look. The tree is data,\n * not JSX: build `collection` with `createTreeCollection` (re-exported from here), and `render`\n * returns `BitkitTreeView.Branch` when `nodeState.isBranch` and `BitkitTreeView.Leaf` otherwise.\n *\n * Root also takes Chakra's `TreeView.Root` props: `defaultExpandedValue` / `expandedValue` /\n * `onExpandedChange`, `selectionMode`, `defaultSelectedValue` / `selectedValue` /\n * `onSelectionChange`, `lazyMount` (keeps unopened branches out of the DOM), and\n * `translations={{ treeLabel }}` for the tree's accessible name. `children` renders after the whole\n * tree, indented like the top-level nodes, and `renderBranchFooter` after one branch's children,\n * indented like them: both take a `BitkitPaginationLoadMore size=\"xs\"` for trees that load in pages.\n *\n * `BitkitTreeView.Branch` (a `TreeView.BranchControl`) and `BitkitTreeView.Leaf` (a `TreeView.Item`,\n * so it takes `onClick` and `onKeyDown`) share these props:\n *\n * | Prop | Type | Notes |\n * | --- | --- | --- |\n * | `label` | `string` | Required. |\n * | `subtext` | `ReactNode` | A second line under the label. |\n * | `suffixText` | `string` | Trailing text, e.g. a count or a duration. |\n * | `suffixIcon` | `BitkitIconComponent` | Trailing icon, before `suffixText`. |\n * | `hasWarning` | `boolean` | A warning icon at the start of the suffix. |\n * | `actions` | `ReactElement[]` | Buttons shown in place of the suffix on hover, forced to `size=\"xs\"`. Their clicks do not reach the row. |\n *\n * Leaf only:\n *\n * | Prop | Type | Notes |\n * | --- | --- | --- |\n * | `icon` | `BitkitIconComponent` | Before the label. Branches draw their own folder or chevron. |\n * | `iconColor` | `icon/*` token | For an icon that carries a status. Wins over hover and selection. |\n * | `badge` | `ReactElement` | Before the label, forced to `size=\"xs\"`. |\n * | `badgeTooltip` | `string` | Shown when the badge is hovered, and read out after the label. Pass it here rather than wrapping `badge` in a tooltip, which would take the `size` instead of the badge. |\n *\n * Behaviour worth knowing:\n * - Enter on a node selects it and does not fire a DOM click, so open things from\n * `onSelectionChange`. Activating the selected leaf again changes nothing, so a leaf that should\n * reopen needs its own `onClick` and `onKeyDown` for that case.\n * - A node with `children: []` renders as a leaf, not as an empty branch. For an empty folder, give the\n * collection a `nodeToChildrenCount` that returns `0` for it, and put `disabled: true` on the node itself:\n * Zag reads `node.disabled` and ignores the collection's `isNodeDisabled`. The folder then renders in the\n * disabled colours, cannot be opened, and keeps its actions.\n * - The `navigation` design has no badges, no actions and no subtext on leaves; those slots are drawn\n * for `files`.\n */\nconst Root = forwardRef<HTMLDivElement, BitkitTreeViewRootProps>(\n ({ children, render, renderBranchFooter, variant = 'files', ...props }, ref) => {\n const indentGuide = variant === 'files' ? <TreeView.BranchIndentGuide /> : undefined;\n const styles = useCustomSlotStyles(variant);\n\n return (\n <VariantProvider value={{ variant }}>\n <TreeView.Root ref={ref} variant={variant} {...props}>\n <TreeView.Tree>\n <Nodes\n indentGuide={indentGuide}\n render={render}\n renderBranchFooter={renderBranchFooter}\n variant={variant}\n />\n {children && <Box css={[styles.footer, { '--depth': 1 }]}>{children}</Box>}\n </TreeView.Tree>\n </TreeView.Root>\n </VariantProvider>\n );\n },\n);\nRoot.displayName = 'BitkitTreeView';\n\n// --- Actions ---\n\n// The buttons sit inside the row, so a click that bubbled up would also toggle the branch or select the leaf.\nconst Actions = ({ actions, variant }: { actions: ReactElement[]; variant: BitkitTreeViewVariant }) => {\n const styles = useCustomSlotStyles(variant);\n\n return (\n <Box css={styles.actionGroup} onClick={(event) => event.stopPropagation()}>\n {actions.map((action) => cloneElement(action, { size: 'xs' }))}\n </Box>\n );\n};\n\n// --- Branch ---\n\nexport interface BitkitTreeViewBranchProps extends Omit<TreeViewBranchControlProps, 'children'> {\n actions?: ReactElement[];\n hasWarning?: boolean;\n label: string;\n subtext?: ReactNode;\n suffixIcon?: BitkitIconComponent;\n suffixText?: string;\n}\n\nconst Branch = forwardRef<HTMLDivElement, BitkitTreeViewBranchProps>((props, ref) => {\n const { actions, hasWarning, label, subtext, suffixIcon: SuffixIcon, suffixText, ...rest } = props;\n const { variant } = useVariant();\n const styles = useCustomSlotStyles(variant);\n const hasSuffix = hasWarning || SuffixIcon || suffixText;\n const hasActions = actions && actions.length > 0;\n\n const BranchIcon = variant === 'navigation' ? IconChevronRight : IconFolder;\n\n return (\n <TreeView.BranchControl ref={ref} className={hasActions ? 'group' : undefined} {...rest}>\n <TreeView.BranchIndicator>\n <BranchIcon size=\"16\" />\n </TreeView.BranchIndicator>\n <TreeView.BranchText>\n {label}\n {subtext && <Text css={styles.secondaryText}>{subtext}</Text>}\n </TreeView.BranchText>\n {hasSuffix && (\n <Box css={styles.suffixGroup}>\n {hasWarning && <IconWarningYellow size=\"16\" />}\n {SuffixIcon && <SuffixIcon size=\"16\" />}\n {suffixText && <span>{suffixText}</span>}\n </Box>\n )}\n {hasActions && <Actions actions={actions} variant={variant} />}\n </TreeView.BranchControl>\n );\n});\nBranch.displayName = 'BitkitTreeView.Branch';\n\n// --- Leaf ---\n\nexport interface BitkitTreeViewLeafProps extends Omit<TreeViewItemProps, 'children'> {\n actions?: ReactElement[];\n badge?: ReactElement;\n /** Explains the badge on hover, e.g. what its letter stands for. */\n badgeTooltip?: string;\n hasWarning?: boolean;\n icon?: BitkitIconComponent;\n /** An `icon/*` token for the icon when it carries meaning of its own, such as a test result's status. */\n iconColor?: BitkitColorToken<'icon'>;\n label: string;\n subtext?: ReactNode;\n suffixIcon?: BitkitIconComponent;\n suffixText?: string;\n}\n\nconst Leaf = forwardRef<HTMLDivElement, BitkitTreeViewLeafProps>((props, ref) => {\n const {\n actions,\n badge,\n badgeTooltip,\n hasWarning,\n icon: Icon,\n iconColor,\n label,\n subtext,\n suffixIcon: SuffixIcon,\n suffixText,\n ...rest\n } = props;\n const { variant } = useVariant();\n const styles = useCustomSlotStyles(variant);\n const hasSuffix = hasWarning || SuffixIcon || suffixText;\n const hasActions = actions && actions.length > 0;\n const sizedBadge = badge && cloneElement(badge, { size: 'xs' });\n const badgeDescription = sizedBadge ? badgeTooltip : undefined;\n\n return (\n <TreeView.Item ref={ref} className={hasActions ? 'group' : undefined} {...rest}>\n {Icon && <Icon color={iconColor} size=\"16\" />}\n {badgeDescription ? <BitkitTooltip text={badgeDescription}>{sizedBadge}</BitkitTooltip> : sizedBadge}\n <TreeView.ItemText>\n {label}\n {/* A tree has a single Tab stop, so the badge takes no focus: its tooltip is read out with the label instead. */}\n {badgeDescription && <VisuallyHidden>{`, ${badgeDescription}`}</VisuallyHidden>}\n {subtext && <Text css={styles.secondaryText}>{subtext}</Text>}\n </TreeView.ItemText>\n {hasSuffix && (\n <Box css={styles.suffixGroup}>\n {hasWarning && <IconWarningYellow size=\"16\" />}\n {SuffixIcon && <SuffixIcon size=\"16\" />}\n {suffixText && <span>{suffixText}</span>}\n </Box>\n )}\n {hasActions && <Actions actions={actions} variant={variant} />}\n </TreeView.Item>\n );\n});\nLeaf.displayName = 'BitkitTreeView.Leaf';\n\n// --- Main export ---\n\nconst BitkitTreeView = withSubComponents(Root, {\n Branch,\n Leaf,\n});\n\nexport default BitkitTreeView;\n"],"mappings":"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"}
1
+ {"version":3,"file":"BitkitTreeView.js","names":["createContext"],"sources":["../../../lib/components/BitkitTreeView/BitkitTreeView.tsx"],"sourcesContent":["// eslint-disable-next-line no-restricted-imports\nimport { createContext } from '@chakra-ui/react';\nimport { Box } from '@chakra-ui/react/box';\nimport { useSlotRecipe } from '@chakra-ui/react/styled-system';\nimport { Text } from '@chakra-ui/react/text';\nimport {\n TreeView,\n type TreeViewBranchControlProps,\n type TreeViewItemProps,\n type TreeViewNodeRenderProps,\n type TreeViewRootProps,\n useTreeViewContext,\n} from '@chakra-ui/react/tree-view';\nimport { VisuallyHidden } from '@chakra-ui/react/visually-hidden';\nimport { cloneElement, forwardRef, type ReactElement, type ReactNode } from 'react';\n\nimport { type BitkitIconComponent, IconChevronRight, IconFolder, IconWarningYellow } from '../../icons';\nimport { type BitkitColorToken } from '../../theme/themeUtils';\nimport { withSubComponents } from '../../utilities/withSubComponents';\nimport BitkitTooltip from '../BitkitTooltip/BitkitTooltip';\n\n// Re-export for consumer convenience\nexport { createTreeCollection } from '@chakra-ui/react/collection';\n\n// Re-export useful types\nexport type {\n TreeViewExpandedChangeDetails as BitkitTreeViewExpandedChangeDetails,\n TreeViewNodeRenderProps as BitkitTreeViewNodeRenderProps,\n TreeViewSelectionChangeDetails as BitkitTreeViewSelectionChangeDetails,\n} from '@chakra-ui/react/tree-view';\n\n// --- Variant context ---\n\nexport type BitkitTreeViewVariant = 'files' | 'navigation';\n\nconst [VariantProvider, useVariant] = createContext<{ variant: BitkitTreeViewVariant }>({\n name: 'BitkitTreeViewVariantContext',\n defaultValue: { variant: 'files' },\n});\n\nconst useCustomSlotStyles = (variant: BitkitTreeViewVariant) => {\n const recipe = useSlotRecipe({ key: 'treeView' });\n return recipe({ variant });\n};\n\n// --- Root ---\n\nexport interface BitkitTreeViewRootProps extends Omit<TreeViewRootProps, 'children'> {\n children?: ReactNode;\n render: (props: TreeViewNodeRenderProps) => ReactNode;\n /**\n * Content after a branch's children, indented like them: a `BitkitPaginationLoadMore` with\n * `size=\"xs\"` for a directory that loads its files in pages. Called for branch nodes only;\n * return `null` for a branch that needs nothing. Designed for the `files` variant.\n */\n renderBranchFooter?: (props: TreeViewNodeRenderProps) => ReactNode;\n variant?: BitkitTreeViewVariant;\n}\n\ninterface NodesProps extends Pick<BitkitTreeViewRootProps, 'render' | 'renderBranchFooter'> {\n indentGuide?: ReactElement;\n variant: BitkitTreeViewVariant;\n}\n\n// Chakra's TreeView.Node, which has no slot after a branch's children.\nconst Nodes = ({ indentGuide, render, renderBranchFooter, variant }: NodesProps) => {\n const tree = useTreeViewContext();\n const styles = useCustomSlotStyles(variant);\n\n const renderNode = (node: unknown, indexPath: number[]): ReactNode => (\n <TreeView.NodeProvider key={indexPath.join('.')} indexPath={indexPath} node={node}>\n <TreeView.NodeContext>\n {(nodeState) => {\n if (!nodeState.isBranch) {\n return render({ indexPath, node, nodeState });\n }\n\n const footer = renderBranchFooter?.({ indexPath, node, nodeState });\n\n return (\n <TreeView.Branch>\n {render({ indexPath, node, nodeState })}\n <TreeView.BranchContent>\n {indentGuide}\n {tree.collection.getNodeChildren(node).map((child, index) => renderNode(child, [...indexPath, index]))}\n {footer && <Box css={[styles.footer, { '--depth': indexPath.length + 1 }]}>{footer}</Box>}\n </TreeView.BranchContent>\n </TreeView.Branch>\n );\n }}\n </TreeView.NodeContext>\n </TreeView.NodeProvider>\n );\n\n return tree.collection.getNodeChildren(tree.collection.rootNode).map((node, index) => renderNode(node, [index]));\n};\n\n/**\n * A tree of collapsible branches and leaves, in a `files` or a `navigation` look. The tree is data,\n * not JSX: build `collection` with `createTreeCollection` (re-exported from here), and `render`\n * returns `BitkitTreeView.Branch` when `nodeState.isBranch` and `BitkitTreeView.Leaf` otherwise.\n *\n * Root also takes Chakra's `TreeView.Root` props: `defaultExpandedValue` / `expandedValue` /\n * `onExpandedChange`, `selectionMode`, `defaultSelectedValue` / `selectedValue` /\n * `onSelectionChange`, `lazyMount` (keeps unopened branches out of the DOM), and\n * `translations={{ treeLabel }}` for the tree's accessible name. `children` renders after the whole\n * tree, indented like the top-level nodes, and `renderBranchFooter` after one branch's children,\n * indented like them: both take a `BitkitPaginationLoadMore size=\"xs\"` for trees that load in pages.\n *\n * `BitkitTreeView.Branch` (a `TreeView.BranchControl`) and `BitkitTreeView.Leaf` (a `TreeView.Item`,\n * so it takes `onClick` and `onKeyDown`) share these props:\n *\n * | Prop | Type | Notes |\n * | --- | --- | --- |\n * | `label` | `string` | Required. |\n * | `subtext` | `ReactNode` | A second line under the label. |\n * | `suffixText` | `string` | Trailing text, e.g. a count or a duration. |\n * | `suffixIcon` | `BitkitIconComponent` | Trailing icon, before `suffixText`. |\n * | `hasWarning` | `boolean` | A warning icon at the start of the suffix. |\n * | `actions` | `ReactElement[]` | Buttons shown in place of the suffix on hover, forced to `size=\"xs\"`. Their clicks do not reach the row. |\n *\n * Leaf only:\n *\n * | Prop | Type | Notes |\n * | --- | --- | --- |\n * | `icon` | `BitkitIconComponent` | Before the label. Branches draw their own folder or chevron. |\n * | `iconColor` | `icon/*` token | For an icon that carries a status. Wins over hover and selection. |\n * | `badge` | `ReactElement` | Before the label, forced to `size=\"xs\"`. |\n * | `badgeTooltip` | `string` | Shown when the badge is hovered, and read out after the label. Pass it here rather than wrapping `badge` in a tooltip, which would take the `size` instead of the badge. |\n *\n * Behaviour worth knowing:\n * - Enter on a node selects it and does not fire a DOM click, so open things from\n * `onSelectionChange`. Activating the selected leaf again changes nothing, so a leaf that should\n * reopen needs its own `onClick` and `onKeyDown` for that case.\n * - A node with `children: []` renders as a leaf, not as an empty branch. For an empty folder, give the\n * collection a `nodeToChildrenCount` that returns `0` for it, and put `disabled: true` on the node itself:\n * Zag reads `node.disabled` and ignores the collection's `isNodeDisabled`. The folder then renders in the\n * disabled colours, cannot be opened, and keeps its actions.\n * - The `navigation` design has no badges, no actions and no subtext on leaves; those slots are drawn\n * for `files`.\n */\nconst Root = forwardRef<HTMLDivElement, BitkitTreeViewRootProps>(\n ({ children, render, renderBranchFooter, variant = 'files', ...props }, ref) => {\n const indentGuide = variant === 'files' ? <TreeView.BranchIndentGuide /> : undefined;\n const styles = useCustomSlotStyles(variant);\n\n return (\n <VariantProvider value={{ variant }}>\n <TreeView.Root ref={ref} variant={variant} {...props}>\n <TreeView.Tree>\n <Nodes\n indentGuide={indentGuide}\n render={render}\n renderBranchFooter={renderBranchFooter}\n variant={variant}\n />\n {children && <Box css={[styles.footer, { '--depth': 1 }]}>{children}</Box>}\n </TreeView.Tree>\n </TreeView.Root>\n </VariantProvider>\n );\n },\n);\nRoot.displayName = 'BitkitTreeView';\n\n// --- Actions ---\n\n// The buttons sit inside the row, so a click that bubbled up would also toggle the branch or select the leaf.\nconst Actions = ({ actions, variant }: { actions: ReactElement[]; variant: BitkitTreeViewVariant }) => {\n const styles = useCustomSlotStyles(variant);\n\n return (\n <Box css={styles.actionGroup} onClick={(event) => event.stopPropagation()}>\n {actions.map((action) => cloneElement(action, { size: 'xs' }))}\n </Box>\n );\n};\n\n// --- Branch ---\n\nexport interface BitkitTreeViewBranchProps extends Omit<TreeViewBranchControlProps, 'children'> {\n actions?: ReactElement[];\n hasWarning?: boolean;\n label: string;\n subtext?: ReactNode;\n suffixIcon?: BitkitIconComponent;\n suffixText?: string;\n}\n\nconst Branch = forwardRef<HTMLDivElement, BitkitTreeViewBranchProps>((props, ref) => {\n const { actions, hasWarning, label, subtext, suffixIcon: SuffixIcon, suffixText, ...rest } = props;\n const { variant } = useVariant();\n const styles = useCustomSlotStyles(variant);\n const hasSuffix = hasWarning || SuffixIcon || suffixText;\n const hasActions = actions && actions.length > 0;\n\n const BranchIcon = variant === 'navigation' ? IconChevronRight : IconFolder;\n\n return (\n <TreeView.BranchControl ref={ref} className={hasActions ? 'group' : undefined} {...rest}>\n <TreeView.BranchIndicator>\n <BranchIcon size=\"16\" />\n </TreeView.BranchIndicator>\n <TreeView.BranchText>\n {label}\n {subtext && <Text css={styles.secondaryText}>{subtext}</Text>}\n </TreeView.BranchText>\n {hasSuffix && (\n <Box css={styles.suffixGroup}>\n {hasWarning && <IconWarningYellow size=\"16\" />}\n {SuffixIcon && <SuffixIcon size=\"16\" />}\n {suffixText && <span>{suffixText}</span>}\n </Box>\n )}\n {hasActions && <Actions actions={actions} variant={variant} />}\n </TreeView.BranchControl>\n );\n});\nBranch.displayName = 'BitkitTreeView.Branch';\n\n// --- Leaf ---\n\nexport interface BitkitTreeViewLeafProps extends Omit<TreeViewItemProps, 'children'> {\n actions?: ReactElement[];\n badge?: ReactElement;\n /** Explains the badge on hover, e.g. what its letter stands for. */\n badgeTooltip?: string;\n hasWarning?: boolean;\n icon?: BitkitIconComponent;\n /** An `icon/*` token for the icon when it carries meaning of its own, such as a test result's status. */\n iconColor?: BitkitColorToken<'icon'>;\n label: string;\n subtext?: ReactNode;\n suffixIcon?: BitkitIconComponent;\n suffixText?: string;\n}\n\nconst Leaf = forwardRef<HTMLDivElement, BitkitTreeViewLeafProps>((props, ref) => {\n const {\n actions,\n badge,\n badgeTooltip,\n hasWarning,\n icon: Icon,\n iconColor,\n label,\n subtext,\n suffixIcon: SuffixIcon,\n suffixText,\n ...rest\n } = props;\n const { variant } = useVariant();\n const styles = useCustomSlotStyles(variant);\n const hasSuffix = hasWarning || SuffixIcon || suffixText;\n const hasActions = actions && actions.length > 0;\n const sizedBadge = badge && cloneElement(badge, { size: 'xs' });\n const badgeDescription = sizedBadge ? badgeTooltip : undefined;\n\n return (\n <TreeView.Item ref={ref} className={hasActions ? 'group' : undefined} {...rest}>\n {Icon && <Icon color={iconColor} size=\"16\" />}\n {badgeDescription ? <BitkitTooltip text={badgeDescription}>{sizedBadge}</BitkitTooltip> : sizedBadge}\n <TreeView.ItemText>\n {label}\n {/* A tree has a single Tab stop, so the badge takes no focus: its tooltip is read out with the label instead. */}\n {badgeDescription && <VisuallyHidden>{`, ${badgeDescription}`}</VisuallyHidden>}\n {subtext && <Text css={styles.secondaryText}>{subtext}</Text>}\n </TreeView.ItemText>\n {hasSuffix && (\n <Box css={styles.suffixGroup}>\n {hasWarning && <IconWarningYellow size=\"16\" />}\n {SuffixIcon && <SuffixIcon size=\"16\" />}\n {suffixText && <span>{suffixText}</span>}\n </Box>\n )}\n {hasActions && <Actions actions={actions} variant={variant} />}\n </TreeView.Item>\n );\n});\nLeaf.displayName = 'BitkitTreeView.Leaf';\n\n// --- Main export ---\n\nconst BitkitTreeView = withSubComponents(Root, {\n Branch,\n Leaf,\n});\n\nexport default BitkitTreeView;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"UISideNavLink.js","names":[],"sources":["../../../lib/components/BitkitUISideNav/UISideNavLink.tsx"],"sourcesContent":["import { Box } from '@chakra-ui/react/box';\nimport { chakra, type HTMLChakraProps } from '@chakra-ui/react/styled-system';\nimport { Text } from '@chakra-ui/react/text';\nimport { forwardRef, type Ref } from 'react';\n\nimport { type BitkitIconComponent, IconArrowNortheast } from '../../icons';\nimport { useUISideNavContext } from './UISideNavContext';\n\ninterface UISideNavLinkCommonProps {\n children: string;\n icon: BitkitIconComponent;\n /**\n * A second line under the label, for a row that reports something rather than just naming a\n * destination. It steps the row up to 56px and the label down to the smaller semibold size.\n */\n secondaryText?: string;\n /**\n * A coloured dot on the icon's trailing bottom corner. Use it with `secondaryText`, which is\n * what spells the state out; the dot alone only carries colour.\n */\n status?: 'critical' | 'neutral' | 'success';\n}\n\nexport interface BitkitUISideNavLinkAsAnchorProps\n extends UISideNavLinkCommonProps, Omit<HTMLChakraProps<'a'>, 'children'> {\n href: string;\n /** Adds the north-east arrow and the usual `target`/`rel` pair for a link leaving the app. */\n isExternal?: boolean;\n}\n\nexport interface BitkitUISideNavLinkAsButtonProps\n extends UISideNavLinkCommonProps, Omit<HTMLChakraProps<'button'>, 'children'> {\n href?: undefined;\n isExternal?: undefined;\n /** Makes the row a button instead of a link — for one that opens a dialog rather than navigating. */\n onClick: NonNullable<HTMLChakraProps<'button'>['onClick']>;\n}\n\nexport type BitkitUISideNavLinkProps = BitkitUISideNavLinkAsAnchorProps | BitkitUISideNavLinkAsButtonProps;\n\nconst UISideNavLink = forwardRef<HTMLAnchorElement | HTMLButtonElement, BitkitUISideNavLinkProps>((props, ref) => {\n const {\n children,\n css,\n href,\n icon: Icon,\n isExternal,\n rel,\n secondaryText,\n status,\n target,\n ...rest\n } = props as BitkitUISideNavLinkAsAnchorProps;\n\n const { styles } = useUISideNavContext();\n\n const content = (\n <>\n <Box css={styles.linkIconBlock}>\n <Icon css={styles.linkIcon} />\n {status && <Box css={styles.linkStatusDot} data-status={status} />}\n </Box>\n <Box css={styles.linkTextBlock}>\n <Text as=\"span\" css={styles.linkLabel}>\n {children}\n </Text>\n {secondaryText && (\n <Text as=\"span\" css={styles.linkSecondaryText}>\n {secondaryText}\n </Text>\n )}\n </Box>\n {isExternal && <IconArrowNortheast css={styles.linkIcon} />}\n </>\n );\n\n const rootProps = {\n 'data-with-secondary': secondaryText ? '' : undefined,\n ...rest,\n css: [styles.link, css],\n };\n\n // `chakra.button` / `chakra.a` rather than `Button` / `Link`: the row is styled entirely by the\n // nav's own `link` slot, and either named primitive would layer its own recipe over it.\n if (href === undefined) {\n return (\n <chakra.button ref={ref as Ref<HTMLButtonElement>} type=\"button\" {...(rootProps as HTMLChakraProps<'button'>)}>\n {content}\n </chakra.button>\n );\n }\n\n return (\n <chakra.a\n ref={ref as Ref<HTMLAnchorElement>}\n href={href}\n rel={isExternal ? (rel ? `${rel} noreferrer noopener` : 'noreferrer noopener') : rel}\n target={isExternal ? '_blank' : target}\n {...rootProps}\n >\n {content}\n </chakra.a>\n );\n});\n\nUISideNavLink.displayName = 'BitkitUISideNav.Link';\n\nexport default UISideNavLink;\n"],"mappings":";;;;;;;;AAwCA,IAAM,gBAAgB,YAA6E,OAAO,QAAQ;CAChH,MAAM,EACJ,UACA,KACA,MACA,MAAM,MACN,YACA,KACA,eACA,QACA,QACA,GAAG,SACD;CAEJ,MAAM,EAAE,WAAW,oBAAoB;CAEvC,MAAM,UACJ,qBAAA,YAAA,EAAA,UAAA;EACE,qBAAC,KAAD;GAAK,KAAK,OAAO;GAAjB,UAAA,CACE,oBAAC,MAAD,EAAM,KAAK,OAAO,SAAW,CAAA,GAC5B,UAAU,oBAAC,KAAD;IAAK,KAAK,OAAO;IAAe,eAAa;GAAS,CAAA,CAC9D;;EACL,qBAAC,KAAD;GAAK,KAAK,OAAO;GAAjB,UAAA,CACE,oBAAC,MAAD;IAAM,IAAG;IAAO,KAAK,OAAO;IACzB;GACG,CAAA,GACL,iBACC,oBAAC,MAAD;IAAM,IAAG;IAAO,KAAK,OAAO;IACzB,UAAA;GACG,CAAA,CAEL;;EACJ,cAAc,oBAAC,oBAAD,EAAoB,KAAK,OAAO,SAAW,CAAA;CAC1D,EAAA,CAAA;CAGJ,MAAM,YAAY;EAChB,uBAAuB,gBAAgB,KAAK,KAAA;EAC5C,GAAG;EACH,KAAK,CAAC,OAAO,MAAM,GAAG;CACxB;CAIA,IAAI,SAAS,KAAA,GACX,OACE,oBAAC,OAAO,QAAR;EAAoB;EAA+B,MAAK;EAAS,GAAK;EACnE,UAAA;CACY,CAAA;CAInB,OACE,oBAAC,OAAO,GAAR;EACO;EACC;EACN,KAAK,aAAc,MAAM,GAAG,IAAI,wBAAwB,wBAAyB;EACjF,QAAQ,aAAa,WAAW;EAChC,GAAI;EAEH,UAAA;CACO,CAAA;AAEd,CAAC;AAED,cAAc,cAAc"}
1
+ {"version":3,"file":"UISideNavLink.js","names":["_Fragment"],"sources":["../../../lib/components/BitkitUISideNav/UISideNavLink.tsx"],"sourcesContent":["import { Box } from '@chakra-ui/react/box';\nimport { chakra, type HTMLChakraProps } from '@chakra-ui/react/styled-system';\nimport { Text } from '@chakra-ui/react/text';\nimport { forwardRef, type Ref } from 'react';\n\nimport { type BitkitIconComponent, IconArrowNortheast } from '../../icons';\nimport { useUISideNavContext } from './UISideNavContext';\n\ninterface UISideNavLinkCommonProps {\n children: string;\n icon: BitkitIconComponent;\n /**\n * A second line under the label, for a row that reports something rather than just naming a\n * destination. It steps the row up to 56px and the label down to the smaller semibold size.\n */\n secondaryText?: string;\n /**\n * A coloured dot on the icon's trailing bottom corner. Use it with `secondaryText`, which is\n * what spells the state out; the dot alone only carries colour.\n */\n status?: 'critical' | 'neutral' | 'success';\n}\n\nexport interface BitkitUISideNavLinkAsAnchorProps\n extends UISideNavLinkCommonProps, Omit<HTMLChakraProps<'a'>, 'children'> {\n href: string;\n /** Adds the north-east arrow and the usual `target`/`rel` pair for a link leaving the app. */\n isExternal?: boolean;\n}\n\nexport interface BitkitUISideNavLinkAsButtonProps\n extends UISideNavLinkCommonProps, Omit<HTMLChakraProps<'button'>, 'children'> {\n href?: undefined;\n isExternal?: undefined;\n /** Makes the row a button instead of a link — for one that opens a dialog rather than navigating. */\n onClick: NonNullable<HTMLChakraProps<'button'>['onClick']>;\n}\n\nexport type BitkitUISideNavLinkProps = BitkitUISideNavLinkAsAnchorProps | BitkitUISideNavLinkAsButtonProps;\n\nconst UISideNavLink = forwardRef<HTMLAnchorElement | HTMLButtonElement, BitkitUISideNavLinkProps>((props, ref) => {\n const {\n children,\n css,\n href,\n icon: Icon,\n isExternal,\n rel,\n secondaryText,\n status,\n target,\n ...rest\n } = props as BitkitUISideNavLinkAsAnchorProps;\n\n const { styles } = useUISideNavContext();\n\n const content = (\n <>\n <Box css={styles.linkIconBlock}>\n <Icon css={styles.linkIcon} />\n {status && <Box css={styles.linkStatusDot} data-status={status} />}\n </Box>\n <Box css={styles.linkTextBlock}>\n <Text as=\"span\" css={styles.linkLabel}>\n {children}\n </Text>\n {secondaryText && (\n <Text as=\"span\" css={styles.linkSecondaryText}>\n {secondaryText}\n </Text>\n )}\n </Box>\n {isExternal && <IconArrowNortheast css={styles.linkIcon} />}\n </>\n );\n\n const rootProps = {\n 'data-with-secondary': secondaryText ? '' : undefined,\n ...rest,\n css: [styles.link, css],\n };\n\n // `chakra.button` / `chakra.a` rather than `Button` / `Link`: the row is styled entirely by the\n // nav's own `link` slot, and either named primitive would layer its own recipe over it.\n if (href === undefined) {\n return (\n <chakra.button ref={ref as Ref<HTMLButtonElement>} type=\"button\" {...(rootProps as HTMLChakraProps<'button'>)}>\n {content}\n </chakra.button>\n );\n }\n\n return (\n <chakra.a\n ref={ref as Ref<HTMLAnchorElement>}\n href={href}\n rel={isExternal ? (rel ? `${rel} noreferrer noopener` : 'noreferrer noopener') : rel}\n target={isExternal ? '_blank' : target}\n {...rootProps}\n >\n {content}\n </chakra.a>\n );\n});\n\nUISideNavLink.displayName = 'BitkitUISideNav.Link';\n\nexport default UISideNavLink;\n"],"mappings":";;;;;;;;AAwCA,IAAM,gBAAgB,YAA6E,OAAO,QAAQ;CAChH,MAAM,EACJ,UACA,KACA,MACA,MAAM,MACN,YACA,KACA,eACA,QACA,QACA,GAAG,SACD;CAEJ,MAAM,EAAE,WAAW,oBAAoB;CAEvC,MAAM,UACJ,qBAAAA,YAAA,EAAA,UAAA;EACE,qBAAC,KAAD;GAAK,KAAK,OAAO;GAAjB,UAAA,CACE,oBAAC,MAAD,EAAM,KAAK,OAAO,SAAW,CAAA,GAC5B,UAAU,oBAAC,KAAD;IAAK,KAAK,OAAO;IAAe,eAAa;GAAS,CAAA,CAC9D;;EACL,qBAAC,KAAD;GAAK,KAAK,OAAO;GAAjB,UAAA,CACE,oBAAC,MAAD;IAAM,IAAG;IAAO,KAAK,OAAO;IACzB;GACG,CAAA,GACL,iBACC,oBAAC,MAAD;IAAM,IAAG;IAAO,KAAK,OAAO;IACzB,UAAA;GACG,CAAA,CAEL;;EACJ,cAAc,oBAAC,oBAAD,EAAoB,KAAK,OAAO,SAAW,CAAA;CAC1D,EAAA,CAAA;CAGJ,MAAM,YAAY;EAChB,uBAAuB,gBAAgB,KAAK,KAAA;EAC5C,GAAG;EACH,KAAK,CAAC,OAAO,MAAM,GAAG;CACxB;CAIA,IAAI,SAAS,KAAA,GACX,OACE,oBAAC,OAAO,QAAR;EAAoB;EAA+B,MAAK;EAAS,GAAK;EACnE,UAAA;CACY,CAAA;CAInB,OACE,oBAAC,OAAO,GAAR;EACO;EACC;EACN,KAAK,aAAc,MAAM,GAAG,IAAI,wBAAwB,wBAAyB;EACjF,QAAQ,aAAa,WAAW;EAChC,GAAI;EAEH,UAAA;CACO,CAAA;AAEd,CAAC;AAED,cAAc,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"NotificationContent.js","names":[],"sources":["../../../lib/components/common/NotificationContent.tsx"],"sourcesContent":["/* Shared inner structure for notification-like components (Alert, PromoBanner):\n the content + action row and the trailing close button, plus the two buttons themselves.\n Alert.Root is the flex container, so this fragment's row and close button land as flex\n siblings next to the leading visual (indicator / illustration).\n The constants here are load-bearing and must not drift across the two components:\n `rem(11)` rowGap + the button `rem(-4)` bleed keep a single-line notification on 48px,\n and `flex: 1 1 rem(240)` on the content lets the action wrap below the text on narrow widths.\n\n `stackable` (opt-in, currently only PromoBanner) makes the elements this fragment owns\n responsive: below `tablet` the content/action row stacks vertically and the close button\n floats to the top-right corner. It positions the button absolutely, so the consuming\n component must give Alert.Root `position=\"relative\"`. Because the button floats over the\n top-right corner (32px at `inset 8` ⇒ a 40px band), the content row reserves a matching\n inline-end gutter below `tablet` so title/message text never runs under it — independent of\n how tall the leading visual is. The leading visual and the Root's own flex direction / gap /\n padding stay with the consumer — they differ per component. */\n\nimport { Alert } from '@chakra-ui/react/alert';\nimport { Box } from '@chakra-ui/react/box';\nimport { type ReactNode } from 'react';\n\nimport { IconArrowNortheast } from '../../icons';\nimport { rem } from '../../theme/themeUtils';\nimport BitkitCloseButton, { type BitkitCloseButtonProps } from '../BitkitCloseButton/BitkitCloseButton';\nimport BitkitColorButton, { type BitkitColorButtonProps } from '../BitkitColorButton/BitkitColorButton';\nimport { type BUTTON_COLORS_MAP, type NotificationAction } from './notificationMaps';\n\ntype NotificationColorVariant = (typeof BUTTON_COLORS_MAP)[keyof typeof BUTTON_COLORS_MAP];\n\nconst ActionButton = ({\n action,\n colorVariant,\n}: {\n action: NotificationAction;\n colorVariant: BitkitColorButtonProps['colorVariant'];\n}) =>\n action.href !== undefined ? (\n <BitkitColorButton\n colorVariant={colorVariant}\n href={action.href}\n isExternal={action.isExternal || action.target === '_blank'}\n onClick={action.onClick}\n state={action.state}\n suffixIcon={action.isExternal ? IconArrowNortheast : undefined}\n target={action.target}\n marginBlock={rem(-4)}\n marginInlineEnd=\"12\"\n whiteSpace=\"nowrap\"\n >\n {action.label}\n </BitkitColorButton>\n ) : (\n <BitkitColorButton\n colorVariant={colorVariant}\n onClick={action.onClick}\n state={action.state}\n marginBlock={rem(-4)}\n marginInlineEnd=\"12\"\n whiteSpace=\"nowrap\"\n >\n {action.label}\n </BitkitColorButton>\n );\n\nconst CloseButton = ({\n colorVariant,\n onClose,\n stackable,\n}: {\n colorVariant: BitkitCloseButtonProps['colorVariant'];\n onClose?: () => void;\n stackable?: boolean;\n}) => (\n <BitkitCloseButton\n alignSelf=\"flex-start\"\n size=\"sm\"\n onClick={onClose}\n colorVariant={colorVariant}\n // Below tablet (stackable only) it floats to the top-right corner (needs Root\n // position=\"relative\"); otherwise inline with the -4 bleed that keeps a single line on 48px.\n position={stackable ? { base: 'absolute', tablet: 'static' } : undefined}\n insetBlockStart={stackable ? '8' : undefined}\n insetInlineEnd={stackable ? '8' : undefined}\n marginBlock={{ base: stackable ? '0' : rem(-4), tablet: rem(-4) }}\n />\n);\n\nexport interface NotificationContentProps {\n action?: NotificationAction;\n colorVariant: NotificationColorVariant;\n dismissible?: boolean;\n messageText: ReactNode;\n onClose?: () => void;\n /** Opt in to responsive stacking below `tablet`. Requires Root `position=\"relative\"`. */\n stackable?: boolean;\n titleText?: ReactNode;\n}\n\nexport const NotificationContent = ({\n action,\n colorVariant,\n dismissible,\n messageText,\n onClose,\n stackable,\n titleText,\n}: NotificationContentProps) => (\n <>\n {/* content + action share a wrapping row so the action drops below the text on narrow widths;\n when stacking, the row switches to a column below tablet */}\n <Box\n display=\"flex\"\n flexDirection={stackable ? { base: 'column', tablet: 'row' } : undefined}\n flex={stackable ? { base: '0 1 0%', tablet: '1' } : '1'}\n minWidth=\"0\"\n flexWrap=\"wrap\"\n alignItems={stackable ? { base: 'flex-start', tablet: 'center' } : 'center'}\n columnGap=\"16\"\n rowGap={stackable ? { base: '20', tablet: rem(11) } : rem(11)}\n paddingInlineEnd={stackable && dismissible ? { base: '40', tablet: '0' } : undefined}\n >\n <Alert.Content minWidth=\"0\" flex={stackable ? { base: 'none', tablet: `1 1 ${rem(240)}` } : `1 1 ${rem(240)}`}>\n {titleText && <Alert.Title>{titleText}</Alert.Title>}\n <Alert.Description>{messageText}</Alert.Description>\n </Alert.Content>\n {!!action && <ActionButton action={action} colorVariant={colorVariant} />}\n </Box>\n {!!dismissible && <CloseButton colorVariant={colorVariant} onClose={onClose} stackable={stackable} />}\n </>\n);\n"],"mappings":";;;;;;;;AA6BA,IAAM,gBAAgB,EACpB,QACA,mBAKA,OAAO,SAAS,KAAA,IACd,oBAAC,mBAAD;CACgB;CACd,MAAM,OAAO;CACb,YAAY,OAAO,cAAc,OAAO,WAAW;CACnD,SAAS,OAAO;CAChB,OAAO,OAAO;CACd,YAAY,OAAO,aAAa,qBAAqB,KAAA;CACrD,QAAQ,OAAO;CACf,aAAa,IAAI,EAAE;CACnB,iBAAgB;CAChB,YAAW;CAEV,UAAA,OAAO;AACS,CAAA,IAEnB,oBAAC,mBAAD;CACgB;CACd,SAAS,OAAO;CAChB,OAAO,OAAO;CACd,aAAa,IAAI,EAAE;CACnB,iBAAgB;CAChB,YAAW;CAEV,UAAA,OAAO;AACS,CAAA;AAGvB,IAAM,eAAe,EACnB,cACA,SACA,gBAMA,oBAAC,mBAAD;CACE,WAAU;CACV,MAAK;CACL,SAAS;CACK;CAGd,UAAU,YAAY;EAAE,MAAM;EAAY,QAAQ;CAAS,IAAI,KAAA;CAC/D,iBAAiB,YAAY,MAAM,KAAA;CACnC,gBAAgB,YAAY,MAAM,KAAA;CAClC,aAAa;EAAE,MAAM,YAAY,MAAM,IAAI,EAAE;EAAG,QAAQ,IAAI,EAAE;CAAE;AACjE,CAAA;AAcH,IAAa,uBAAuB,EAClC,QACA,cACA,aACA,aACA,SACA,WACA,gBAEA,qBAAA,UAAA,EAAA,UAAA,CAGE,qBAAC,KAAD;CACE,SAAQ;CACR,eAAe,YAAY;EAAE,MAAM;EAAU,QAAQ;CAAM,IAAI,KAAA;CAC/D,MAAM,YAAY;EAAE,MAAM;EAAU,QAAQ;CAAI,IAAI;CACpD,UAAS;CACT,UAAS;CACT,YAAY,YAAY;EAAE,MAAM;EAAc,QAAQ;CAAS,IAAI;CACnE,WAAU;CACV,QAAQ,YAAY;EAAE,MAAM;EAAM,QAAQ,IAAI,EAAE;CAAE,IAAI,IAAI,EAAE;CAC5D,kBAAkB,aAAa,cAAc;EAAE,MAAM;EAAM,QAAQ;CAAI,IAAI,KAAA;CAT7E,UAAA,CAWE,qBAAC,MAAM,SAAP;EAAe,UAAS;EAAI,MAAM,YAAY;GAAE,MAAM;GAAQ,QAAQ,OAAO,IAAI,GAAG;EAAI,IAAI,OAAO,IAAI,GAAG;EAA1G,UAAA,CACG,aAAa,oBAAC,MAAM,OAAP,EAAA,UAAc,UAAuB,CAAA,GACnD,oBAAC,MAAM,aAAP,EAAA,UAAoB,YAA+B,CAAA,CACtC;CACd,CAAA,GAAA,CAAC,CAAC,UAAU,oBAAC,cAAD;EAAsB;EAAsB;CAAe,CAAA,CACrE;AACJ,CAAA,GAAA,CAAC,CAAC,eAAe,oBAAC,aAAD;CAA2B;CAAuB;CAAoB;AAAY,CAAA,CACpG,EAAA,CAAA"}
1
+ {"version":3,"file":"NotificationContent.js","names":["_Fragment"],"sources":["../../../lib/components/common/NotificationContent.tsx"],"sourcesContent":["/* Shared inner structure for notification-like components (Alert, PromoBanner):\n the content + action row and the trailing close button, plus the two buttons themselves.\n Alert.Root is the flex container, so this fragment's row and close button land as flex\n siblings next to the leading visual (indicator / illustration).\n The constants here are load-bearing and must not drift across the two components:\n `rem(11)` rowGap + the button `rem(-4)` bleed keep a single-line notification on 48px,\n and `flex: 1 1 rem(240)` on the content lets the action wrap below the text on narrow widths.\n\n `stackable` (opt-in, currently only PromoBanner) makes the elements this fragment owns\n responsive: below `tablet` the content/action row stacks vertically and the close button\n floats to the top-right corner. It positions the button absolutely, so the consuming\n component must give Alert.Root `position=\"relative\"`. Because the button floats over the\n top-right corner (32px at `inset 8` ⇒ a 40px band), the content row reserves a matching\n inline-end gutter below `tablet` so title/message text never runs under it — independent of\n how tall the leading visual is. The leading visual and the Root's own flex direction / gap /\n padding stay with the consumer — they differ per component. */\n\nimport { Alert } from '@chakra-ui/react/alert';\nimport { Box } from '@chakra-ui/react/box';\nimport { type ReactNode } from 'react';\n\nimport { IconArrowNortheast } from '../../icons';\nimport { rem } from '../../theme/themeUtils';\nimport BitkitCloseButton, { type BitkitCloseButtonProps } from '../BitkitCloseButton/BitkitCloseButton';\nimport BitkitColorButton, { type BitkitColorButtonProps } from '../BitkitColorButton/BitkitColorButton';\nimport { type BUTTON_COLORS_MAP, type NotificationAction } from './notificationMaps';\n\ntype NotificationColorVariant = (typeof BUTTON_COLORS_MAP)[keyof typeof BUTTON_COLORS_MAP];\n\nconst ActionButton = ({\n action,\n colorVariant,\n}: {\n action: NotificationAction;\n colorVariant: BitkitColorButtonProps['colorVariant'];\n}) =>\n action.href !== undefined ? (\n <BitkitColorButton\n colorVariant={colorVariant}\n href={action.href}\n isExternal={action.isExternal || action.target === '_blank'}\n onClick={action.onClick}\n state={action.state}\n suffixIcon={action.isExternal ? IconArrowNortheast : undefined}\n target={action.target}\n marginBlock={rem(-4)}\n marginInlineEnd=\"12\"\n whiteSpace=\"nowrap\"\n >\n {action.label}\n </BitkitColorButton>\n ) : (\n <BitkitColorButton\n colorVariant={colorVariant}\n onClick={action.onClick}\n state={action.state}\n marginBlock={rem(-4)}\n marginInlineEnd=\"12\"\n whiteSpace=\"nowrap\"\n >\n {action.label}\n </BitkitColorButton>\n );\n\nconst CloseButton = ({\n colorVariant,\n onClose,\n stackable,\n}: {\n colorVariant: BitkitCloseButtonProps['colorVariant'];\n onClose?: () => void;\n stackable?: boolean;\n}) => (\n <BitkitCloseButton\n alignSelf=\"flex-start\"\n size=\"sm\"\n onClick={onClose}\n colorVariant={colorVariant}\n // Below tablet (stackable only) it floats to the top-right corner (needs Root\n // position=\"relative\"); otherwise inline with the -4 bleed that keeps a single line on 48px.\n position={stackable ? { base: 'absolute', tablet: 'static' } : undefined}\n insetBlockStart={stackable ? '8' : undefined}\n insetInlineEnd={stackable ? '8' : undefined}\n marginBlock={{ base: stackable ? '0' : rem(-4), tablet: rem(-4) }}\n />\n);\n\nexport interface NotificationContentProps {\n action?: NotificationAction;\n colorVariant: NotificationColorVariant;\n dismissible?: boolean;\n messageText: ReactNode;\n onClose?: () => void;\n /** Opt in to responsive stacking below `tablet`. Requires Root `position=\"relative\"`. */\n stackable?: boolean;\n titleText?: ReactNode;\n}\n\nexport const NotificationContent = ({\n action,\n colorVariant,\n dismissible,\n messageText,\n onClose,\n stackable,\n titleText,\n}: NotificationContentProps) => (\n <>\n {/* content + action share a wrapping row so the action drops below the text on narrow widths;\n when stacking, the row switches to a column below tablet */}\n <Box\n display=\"flex\"\n flexDirection={stackable ? { base: 'column', tablet: 'row' } : undefined}\n flex={stackable ? { base: '0 1 0%', tablet: '1' } : '1'}\n minWidth=\"0\"\n flexWrap=\"wrap\"\n alignItems={stackable ? { base: 'flex-start', tablet: 'center' } : 'center'}\n columnGap=\"16\"\n rowGap={stackable ? { base: '20', tablet: rem(11) } : rem(11)}\n paddingInlineEnd={stackable && dismissible ? { base: '40', tablet: '0' } : undefined}\n >\n <Alert.Content minWidth=\"0\" flex={stackable ? { base: 'none', tablet: `1 1 ${rem(240)}` } : `1 1 ${rem(240)}`}>\n {titleText && <Alert.Title>{titleText}</Alert.Title>}\n <Alert.Description>{messageText}</Alert.Description>\n </Alert.Content>\n {!!action && <ActionButton action={action} colorVariant={colorVariant} />}\n </Box>\n {!!dismissible && <CloseButton colorVariant={colorVariant} onClose={onClose} stackable={stackable} />}\n </>\n);\n"],"mappings":";;;;;;;;AA6BA,IAAM,gBAAgB,EACpB,QACA,mBAKA,OAAO,SAAS,KAAA,IACd,oBAAC,mBAAD;CACgB;CACd,MAAM,OAAO;CACb,YAAY,OAAO,cAAc,OAAO,WAAW;CACnD,SAAS,OAAO;CAChB,OAAO,OAAO;CACd,YAAY,OAAO,aAAa,qBAAqB,KAAA;CACrD,QAAQ,OAAO;CACf,aAAa,IAAI,EAAE;CACnB,iBAAgB;CAChB,YAAW;CAEV,UAAA,OAAO;AACS,CAAA,IAEnB,oBAAC,mBAAD;CACgB;CACd,SAAS,OAAO;CAChB,OAAO,OAAO;CACd,aAAa,IAAI,EAAE;CACnB,iBAAgB;CAChB,YAAW;CAEV,UAAA,OAAO;AACS,CAAA;AAGvB,IAAM,eAAe,EACnB,cACA,SACA,gBAMA,oBAAC,mBAAD;CACE,WAAU;CACV,MAAK;CACL,SAAS;CACK;CAGd,UAAU,YAAY;EAAE,MAAM;EAAY,QAAQ;CAAS,IAAI,KAAA;CAC/D,iBAAiB,YAAY,MAAM,KAAA;CACnC,gBAAgB,YAAY,MAAM,KAAA;CAClC,aAAa;EAAE,MAAM,YAAY,MAAM,IAAI,EAAE;EAAG,QAAQ,IAAI,EAAE;CAAE;AACjE,CAAA;AAcH,IAAa,uBAAuB,EAClC,QACA,cACA,aACA,aACA,SACA,WACA,gBAEA,qBAAAA,UAAA,EAAA,UAAA,CAGE,qBAAC,KAAD;CACE,SAAQ;CACR,eAAe,YAAY;EAAE,MAAM;EAAU,QAAQ;CAAM,IAAI,KAAA;CAC/D,MAAM,YAAY;EAAE,MAAM;EAAU,QAAQ;CAAI,IAAI;CACpD,UAAS;CACT,UAAS;CACT,YAAY,YAAY;EAAE,MAAM;EAAc,QAAQ;CAAS,IAAI;CACnE,WAAU;CACV,QAAQ,YAAY;EAAE,MAAM;EAAM,QAAQ,IAAI,EAAE;CAAE,IAAI,IAAI,EAAE;CAC5D,kBAAkB,aAAa,cAAc;EAAE,MAAM;EAAM,QAAQ;CAAI,IAAI,KAAA;CAT7E,UAAA,CAWE,qBAAC,MAAM,SAAP;EAAe,UAAS;EAAI,MAAM,YAAY;GAAE,MAAM;GAAQ,QAAQ,OAAO,IAAI,GAAG;EAAI,IAAI,OAAO,IAAI,GAAG;EAA1G,UAAA,CACG,aAAa,oBAAC,MAAM,OAAP,EAAA,UAAc,UAAuB,CAAA,GACnD,oBAAC,MAAM,aAAP,EAAA,UAAoB,YAA+B,CAAA,CACtC;CACd,CAAA,GAAA,CAAC,CAAC,UAAU,oBAAC,cAAD;EAAsB;EAAsB;CAAe,CAAA,CACrE;AACJ,CAAA,GAAA,CAAC,CAAC,eAAe,oBAAC,aAAD;CAA2B;CAAuB;CAAoB;AAAY,CAAA,CACpG,EAAA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"IconAbortCircle.js","names":[],"sources":["../../lib/icons/IconAbortCircle.tsx"],"sourcesContent":["// This file is auto-generated by 'scripts/generateIconComponents.ts'. Do not edit it manually.\n\nimport { Icon, type IconProps } from '@chakra-ui/react/icon';\nimport { type Ref } from 'react';\n\nimport SVG16 from '../svgs/16x16/icon-abort-circle-16.svg?react';\nimport SVG24 from '../svgs/24x24/icon-abort-circle-24.svg?react';\nimport { bitkitIcon } from './bitkitIcon';\n\nexport interface IconAbortCircleProps extends IconProps {\n size?: '16' | '24';\n}\n\nconst IconAbortCircle = bitkitIcon(function IconAbortCircle(\n { size = '24', ...props }: IconAbortCircleProps,\n ref: Ref<SVGSVGElement>,\n) {\n if (size === '16') {\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG16 width=\"16\" height=\"16\" />\n </Icon>\n );\n }\n\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG24 width=\"24\" height=\"24\" />\n </Icon>\n );\n});\n\nIconAbortCircle.displayName = 'IconAbortCircle';\n\nexport default IconAbortCircle;\n"],"mappings":";;;;;;AAaA,IAAM,kBAAkB,WAAW,SAAS,gBAC1C,EAAE,OAAO,MAAM,GAAG,SAClB,KACA;CACA,IAAI,SAAS,MACX,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAAC,YAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;CAIV,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAAC,cAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;AAEV,CAAC;AAED,gBAAgB,cAAc"}
1
+ {"version":3,"file":"IconAbortCircle.js","names":["SVG16","SVG24"],"sources":["../../lib/icons/IconAbortCircle.tsx"],"sourcesContent":["// This file is auto-generated by 'scripts/generateIconComponents.ts'. Do not edit it manually.\n\nimport { Icon, type IconProps } from '@chakra-ui/react/icon';\nimport { type Ref } from 'react';\n\nimport SVG16 from '../svgs/16x16/icon-abort-circle-16.svg?react';\nimport SVG24 from '../svgs/24x24/icon-abort-circle-24.svg?react';\nimport { bitkitIcon } from './bitkitIcon';\n\nexport interface IconAbortCircleProps extends IconProps {\n size?: '16' | '24';\n}\n\nconst IconAbortCircle = bitkitIcon(function IconAbortCircle(\n { size = '24', ...props }: IconAbortCircleProps,\n ref: Ref<SVGSVGElement>,\n) {\n if (size === '16') {\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG16 width=\"16\" height=\"16\" />\n </Icon>\n );\n }\n\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG24 width=\"24\" height=\"24\" />\n </Icon>\n );\n});\n\nIconAbortCircle.displayName = 'IconAbortCircle';\n\nexport default IconAbortCircle;\n"],"mappings":";;;;;;AAaA,IAAM,kBAAkB,WAAW,SAAS,gBAC1C,EAAE,OAAO,MAAM,GAAG,SAClB,KACA;CACA,IAAI,SAAS,MACX,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAACA,YAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;CAIV,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAACC,cAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;AAEV,CAAC;AAED,gBAAgB,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"IconAbortCircleFilled.js","names":[],"sources":["../../lib/icons/IconAbortCircleFilled.tsx"],"sourcesContent":["// This file is auto-generated by 'scripts/generateIconComponents.ts'. Do not edit it manually.\n\nimport { Icon, type IconProps } from '@chakra-ui/react/icon';\nimport { type Ref } from 'react';\n\nimport SVG16 from '../svgs/16x16/icon-abort-circle-filled-16.svg?react';\nimport SVG24 from '../svgs/24x24/icon-abort-circle-filled-24.svg?react';\nimport { bitkitIcon } from './bitkitIcon';\n\nexport interface IconAbortCircleFilledProps extends IconProps {\n size?: '16' | '24';\n}\n\nconst IconAbortCircleFilled = bitkitIcon(function IconAbortCircleFilled(\n { size = '24', ...props }: IconAbortCircleFilledProps,\n ref: Ref<SVGSVGElement>,\n) {\n if (size === '16') {\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG16 width=\"16\" height=\"16\" />\n </Icon>\n );\n }\n\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG24 width=\"24\" height=\"24\" />\n </Icon>\n );\n});\n\nIconAbortCircleFilled.displayName = 'IconAbortCircleFilled';\n\nexport default IconAbortCircleFilled;\n"],"mappings":";;;;;;AAaA,IAAM,wBAAwB,WAAW,SAAS,sBAChD,EAAE,OAAO,MAAM,GAAG,SAClB,KACA;CACA,IAAI,SAAS,MACX,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAAC,YAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;CAIV,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAAC,cAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;AAEV,CAAC;AAED,sBAAsB,cAAc"}
1
+ {"version":3,"file":"IconAbortCircleFilled.js","names":["SVG16","SVG24"],"sources":["../../lib/icons/IconAbortCircleFilled.tsx"],"sourcesContent":["// This file is auto-generated by 'scripts/generateIconComponents.ts'. Do not edit it manually.\n\nimport { Icon, type IconProps } from '@chakra-ui/react/icon';\nimport { type Ref } from 'react';\n\nimport SVG16 from '../svgs/16x16/icon-abort-circle-filled-16.svg?react';\nimport SVG24 from '../svgs/24x24/icon-abort-circle-filled-24.svg?react';\nimport { bitkitIcon } from './bitkitIcon';\n\nexport interface IconAbortCircleFilledProps extends IconProps {\n size?: '16' | '24';\n}\n\nconst IconAbortCircleFilled = bitkitIcon(function IconAbortCircleFilled(\n { size = '24', ...props }: IconAbortCircleFilledProps,\n ref: Ref<SVGSVGElement>,\n) {\n if (size === '16') {\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG16 width=\"16\" height=\"16\" />\n </Icon>\n );\n }\n\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG24 width=\"24\" height=\"24\" />\n </Icon>\n );\n});\n\nIconAbortCircleFilled.displayName = 'IconAbortCircleFilled';\n\nexport default IconAbortCircleFilled;\n"],"mappings":";;;;;;AAaA,IAAM,wBAAwB,WAAW,SAAS,sBAChD,EAAE,OAAO,MAAM,GAAG,SAClB,KACA;CACA,IAAI,SAAS,MACX,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAACA,YAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;CAIV,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAACC,cAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;AAEV,CAAC;AAED,sBAAsB,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"IconAddons.js","names":[],"sources":["../../lib/icons/IconAddons.tsx"],"sourcesContent":["// This file is auto-generated by 'scripts/generateIconComponents.ts'. Do not edit it manually.\n\nimport { Icon, type IconProps } from '@chakra-ui/react/icon';\nimport { type Ref } from 'react';\n\nimport SVG16 from '../svgs/16x16/icon-addons-16.svg?react';\nimport SVG24 from '../svgs/24x24/icon-addons-24.svg?react';\nimport { bitkitIcon } from './bitkitIcon';\n\nexport interface IconAddonsProps extends IconProps {\n size?: '16' | '24';\n}\n\nconst IconAddons = bitkitIcon(function IconAddons({ size = '24', ...props }: IconAddonsProps, ref: Ref<SVGSVGElement>) {\n if (size === '16') {\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG16 width=\"16\" height=\"16\" />\n </Icon>\n );\n }\n\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG24 width=\"24\" height=\"24\" />\n </Icon>\n );\n});\n\nIconAddons.displayName = 'IconAddons';\n\nexport default IconAddons;\n"],"mappings":";;;;;;AAaA,IAAM,aAAa,WAAW,SAAS,WAAW,EAAE,OAAO,MAAM,GAAG,SAA0B,KAAyB;CACrH,IAAI,SAAS,MACX,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAAC,YAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;CAIV,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAAC,cAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;AAEV,CAAC;AAED,WAAW,cAAc"}
1
+ {"version":3,"file":"IconAddons.js","names":["SVG16","SVG24"],"sources":["../../lib/icons/IconAddons.tsx"],"sourcesContent":["// This file is auto-generated by 'scripts/generateIconComponents.ts'. Do not edit it manually.\n\nimport { Icon, type IconProps } from '@chakra-ui/react/icon';\nimport { type Ref } from 'react';\n\nimport SVG16 from '../svgs/16x16/icon-addons-16.svg?react';\nimport SVG24 from '../svgs/24x24/icon-addons-24.svg?react';\nimport { bitkitIcon } from './bitkitIcon';\n\nexport interface IconAddonsProps extends IconProps {\n size?: '16' | '24';\n}\n\nconst IconAddons = bitkitIcon(function IconAddons({ size = '24', ...props }: IconAddonsProps, ref: Ref<SVGSVGElement>) {\n if (size === '16') {\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG16 width=\"16\" height=\"16\" />\n </Icon>\n );\n }\n\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG24 width=\"24\" height=\"24\" />\n </Icon>\n );\n});\n\nIconAddons.displayName = 'IconAddons';\n\nexport default IconAddons;\n"],"mappings":";;;;;;AAaA,IAAM,aAAa,WAAW,SAAS,WAAW,EAAE,OAAO,MAAM,GAAG,SAA0B,KAAyB;CACrH,IAAI,SAAS,MACX,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAACA,YAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;CAIV,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAACC,cAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;AAEV,CAAC;AAED,WAAW,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"IconAgent.js","names":[],"sources":["../../lib/icons/IconAgent.tsx"],"sourcesContent":["// This file is auto-generated by 'scripts/generateIconComponents.ts'. Do not edit it manually.\n\nimport { Icon, type IconProps } from '@chakra-ui/react/icon';\nimport { type Ref } from 'react';\n\nimport SVG16 from '../svgs/16x16/icon-agent-16.svg?react';\nimport SVG24 from '../svgs/24x24/icon-agent-24.svg?react';\nimport { bitkitIcon } from './bitkitIcon';\n\nexport interface IconAgentProps extends IconProps {\n size?: '16' | '24';\n}\n\nconst IconAgent = bitkitIcon(function IconAgent({ size = '24', ...props }: IconAgentProps, ref: Ref<SVGSVGElement>) {\n if (size === '16') {\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG16 width=\"16\" height=\"16\" />\n </Icon>\n );\n }\n\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG24 width=\"24\" height=\"24\" />\n </Icon>\n );\n});\n\nIconAgent.displayName = 'IconAgent';\n\nexport default IconAgent;\n"],"mappings":";;;;;;AAaA,IAAM,YAAY,WAAW,SAAS,UAAU,EAAE,OAAO,MAAM,GAAG,SAAyB,KAAyB;CAClH,IAAI,SAAS,MACX,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAAC,YAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;CAIV,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAAC,cAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;AAEV,CAAC;AAED,UAAU,cAAc"}
1
+ {"version":3,"file":"IconAgent.js","names":["SVG16","SVG24"],"sources":["../../lib/icons/IconAgent.tsx"],"sourcesContent":["// This file is auto-generated by 'scripts/generateIconComponents.ts'. Do not edit it manually.\n\nimport { Icon, type IconProps } from '@chakra-ui/react/icon';\nimport { type Ref } from 'react';\n\nimport SVG16 from '../svgs/16x16/icon-agent-16.svg?react';\nimport SVG24 from '../svgs/24x24/icon-agent-24.svg?react';\nimport { bitkitIcon } from './bitkitIcon';\n\nexport interface IconAgentProps extends IconProps {\n size?: '16' | '24';\n}\n\nconst IconAgent = bitkitIcon(function IconAgent({ size = '24', ...props }: IconAgentProps, ref: Ref<SVGSVGElement>) {\n if (size === '16') {\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG16 width=\"16\" height=\"16\" />\n </Icon>\n );\n }\n\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG24 width=\"24\" height=\"24\" />\n </Icon>\n );\n});\n\nIconAgent.displayName = 'IconAgent';\n\nexport default IconAgent;\n"],"mappings":";;;;;;AAaA,IAAM,YAAY,WAAW,SAAS,UAAU,EAAE,OAAO,MAAM,GAAG,SAAyB,KAAyB;CAClH,IAAI,SAAS,MACX,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAACA,YAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;CAIV,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAACC,cAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;AAEV,CAAC;AAED,UAAU,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"IconAnchor.js","names":[],"sources":["../../lib/icons/IconAnchor.tsx"],"sourcesContent":["// This file is auto-generated by 'scripts/generateIconComponents.ts'. Do not edit it manually.\n\nimport { Icon, type IconProps } from '@chakra-ui/react/icon';\nimport { type Ref } from 'react';\n\nimport SVG16 from '../svgs/16x16/icon-anchor-16.svg?react';\nimport SVG24 from '../svgs/24x24/icon-anchor-24.svg?react';\nimport { bitkitIcon } from './bitkitIcon';\n\nexport interface IconAnchorProps extends IconProps {\n size?: '16' | '24';\n}\n\nconst IconAnchor = bitkitIcon(function IconAnchor({ size = '24', ...props }: IconAnchorProps, ref: Ref<SVGSVGElement>) {\n if (size === '16') {\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG16 width=\"16\" height=\"16\" />\n </Icon>\n );\n }\n\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG24 width=\"24\" height=\"24\" />\n </Icon>\n );\n});\n\nIconAnchor.displayName = 'IconAnchor';\n\nexport default IconAnchor;\n"],"mappings":";;;;;;AAaA,IAAM,aAAa,WAAW,SAAS,WAAW,EAAE,OAAO,MAAM,GAAG,SAA0B,KAAyB;CACrH,IAAI,SAAS,MACX,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAAC,YAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;CAIV,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAAC,cAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;AAEV,CAAC;AAED,WAAW,cAAc"}
1
+ {"version":3,"file":"IconAnchor.js","names":["SVG16","SVG24"],"sources":["../../lib/icons/IconAnchor.tsx"],"sourcesContent":["// This file is auto-generated by 'scripts/generateIconComponents.ts'. Do not edit it manually.\n\nimport { Icon, type IconProps } from '@chakra-ui/react/icon';\nimport { type Ref } from 'react';\n\nimport SVG16 from '../svgs/16x16/icon-anchor-16.svg?react';\nimport SVG24 from '../svgs/24x24/icon-anchor-24.svg?react';\nimport { bitkitIcon } from './bitkitIcon';\n\nexport interface IconAnchorProps extends IconProps {\n size?: '16' | '24';\n}\n\nconst IconAnchor = bitkitIcon(function IconAnchor({ size = '24', ...props }: IconAnchorProps, ref: Ref<SVGSVGElement>) {\n if (size === '16') {\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG16 width=\"16\" height=\"16\" />\n </Icon>\n );\n }\n\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG24 width=\"24\" height=\"24\" />\n </Icon>\n );\n});\n\nIconAnchor.displayName = 'IconAnchor';\n\nexport default IconAnchor;\n"],"mappings":";;;;;;AAaA,IAAM,aAAa,WAAW,SAAS,WAAW,EAAE,OAAO,MAAM,GAAG,SAA0B,KAAyB;CACrH,IAAI,SAAS,MACX,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAACA,YAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;CAIV,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAACC,cAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;AAEV,CAAC;AAED,WAAW,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"IconAndroid.js","names":[],"sources":["../../lib/icons/IconAndroid.tsx"],"sourcesContent":["// This file is auto-generated by 'scripts/generateIconComponents.ts'. Do not edit it manually.\n\nimport { Icon, type IconProps } from '@chakra-ui/react/icon';\nimport { type Ref } from 'react';\n\nimport SVG16 from '../svgs/16x16/icon-android-16.svg?react';\nimport SVG24 from '../svgs/24x24/icon-android-24.svg?react';\nimport { bitkitIcon } from './bitkitIcon';\n\nexport interface IconAndroidProps extends IconProps {\n size?: '16' | '24';\n}\n\nconst IconAndroid = bitkitIcon(function IconAndroid(\n { size = '24', ...props }: IconAndroidProps,\n ref: Ref<SVGSVGElement>,\n) {\n if (size === '16') {\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG16 width=\"16\" height=\"16\" />\n </Icon>\n );\n }\n\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG24 width=\"24\" height=\"24\" />\n </Icon>\n );\n});\n\nIconAndroid.displayName = 'IconAndroid';\n\nexport default IconAndroid;\n"],"mappings":";;;;;;AAaA,IAAM,cAAc,WAAW,SAAS,YACtC,EAAE,OAAO,MAAM,GAAG,SAClB,KACA;CACA,IAAI,SAAS,MACX,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAAC,YAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;CAIV,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAAC,cAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;AAEV,CAAC;AAED,YAAY,cAAc"}
1
+ {"version":3,"file":"IconAndroid.js","names":["SVG16","SVG24"],"sources":["../../lib/icons/IconAndroid.tsx"],"sourcesContent":["// This file is auto-generated by 'scripts/generateIconComponents.ts'. Do not edit it manually.\n\nimport { Icon, type IconProps } from '@chakra-ui/react/icon';\nimport { type Ref } from 'react';\n\nimport SVG16 from '../svgs/16x16/icon-android-16.svg?react';\nimport SVG24 from '../svgs/24x24/icon-android-24.svg?react';\nimport { bitkitIcon } from './bitkitIcon';\n\nexport interface IconAndroidProps extends IconProps {\n size?: '16' | '24';\n}\n\nconst IconAndroid = bitkitIcon(function IconAndroid(\n { size = '24', ...props }: IconAndroidProps,\n ref: Ref<SVGSVGElement>,\n) {\n if (size === '16') {\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG16 width=\"16\" height=\"16\" />\n </Icon>\n );\n }\n\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG24 width=\"24\" height=\"24\" />\n </Icon>\n );\n});\n\nIconAndroid.displayName = 'IconAndroid';\n\nexport default IconAndroid;\n"],"mappings":";;;;;;AAaA,IAAM,cAAc,WAAW,SAAS,YACtC,EAAE,OAAO,MAAM,GAAG,SAClB,KACA;CACA,IAAI,SAAS,MACX,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAACA,YAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;CAIV,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAACC,cAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;AAEV,CAAC;AAED,YAAY,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"IconApp.js","names":[],"sources":["../../lib/icons/IconApp.tsx"],"sourcesContent":["// This file is auto-generated by 'scripts/generateIconComponents.ts'. Do not edit it manually.\n\nimport { Icon, type IconProps } from '@chakra-ui/react/icon';\nimport { type Ref } from 'react';\n\nimport SVG16 from '../svgs/16x16/icon-app-16.svg?react';\nimport SVG24 from '../svgs/24x24/icon-app-24.svg?react';\nimport { bitkitIcon } from './bitkitIcon';\n\nexport interface IconAppProps extends IconProps {\n size?: '16' | '24';\n}\n\nconst IconApp = bitkitIcon(function IconApp({ size = '24', ...props }: IconAppProps, ref: Ref<SVGSVGElement>) {\n if (size === '16') {\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG16 width=\"16\" height=\"16\" />\n </Icon>\n );\n }\n\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG24 width=\"24\" height=\"24\" />\n </Icon>\n );\n});\n\nIconApp.displayName = 'IconApp';\n\nexport default IconApp;\n"],"mappings":";;;;;;AAaA,IAAM,UAAU,WAAW,SAAS,QAAQ,EAAE,OAAO,MAAM,GAAG,SAAuB,KAAyB;CAC5G,IAAI,SAAS,MACX,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAAC,YAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;CAIV,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAAC,cAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;AAEV,CAAC;AAED,QAAQ,cAAc"}
1
+ {"version":3,"file":"IconApp.js","names":["SVG16","SVG24"],"sources":["../../lib/icons/IconApp.tsx"],"sourcesContent":["// This file is auto-generated by 'scripts/generateIconComponents.ts'. Do not edit it manually.\n\nimport { Icon, type IconProps } from '@chakra-ui/react/icon';\nimport { type Ref } from 'react';\n\nimport SVG16 from '../svgs/16x16/icon-app-16.svg?react';\nimport SVG24 from '../svgs/24x24/icon-app-24.svg?react';\nimport { bitkitIcon } from './bitkitIcon';\n\nexport interface IconAppProps extends IconProps {\n size?: '16' | '24';\n}\n\nconst IconApp = bitkitIcon(function IconApp({ size = '24', ...props }: IconAppProps, ref: Ref<SVGSVGElement>) {\n if (size === '16') {\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG16 width=\"16\" height=\"16\" />\n </Icon>\n );\n }\n\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG24 width=\"24\" height=\"24\" />\n </Icon>\n );\n});\n\nIconApp.displayName = 'IconApp';\n\nexport default IconApp;\n"],"mappings":";;;;;;AAaA,IAAM,UAAU,WAAW,SAAS,QAAQ,EAAE,OAAO,MAAM,GAAG,SAAuB,KAAyB;CAC5G,IAAI,SAAS,MACX,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAACA,YAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;CAIV,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAACC,cAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;AAEV,CAAC;AAED,QAAQ,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"IconAppSettings.js","names":[],"sources":["../../lib/icons/IconAppSettings.tsx"],"sourcesContent":["// This file is auto-generated by 'scripts/generateIconComponents.ts'. Do not edit it manually.\n\nimport { Icon, type IconProps } from '@chakra-ui/react/icon';\nimport { type Ref } from 'react';\n\nimport SVG16 from '../svgs/16x16/icon-app-settings-16.svg?react';\nimport SVG24 from '../svgs/24x24/icon-app-settings-24.svg?react';\nimport { bitkitIcon } from './bitkitIcon';\n\nexport interface IconAppSettingsProps extends IconProps {\n size?: '16' | '24';\n}\n\nconst IconAppSettings = bitkitIcon(function IconAppSettings(\n { size = '24', ...props }: IconAppSettingsProps,\n ref: Ref<SVGSVGElement>,\n) {\n if (size === '16') {\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG16 width=\"16\" height=\"16\" />\n </Icon>\n );\n }\n\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG24 width=\"24\" height=\"24\" />\n </Icon>\n );\n});\n\nIconAppSettings.displayName = 'IconAppSettings';\n\nexport default IconAppSettings;\n"],"mappings":";;;;;;AAaA,IAAM,kBAAkB,WAAW,SAAS,gBAC1C,EAAE,OAAO,MAAM,GAAG,SAClB,KACA;CACA,IAAI,SAAS,MACX,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAAC,YAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;CAIV,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAAC,cAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;AAEV,CAAC;AAED,gBAAgB,cAAc"}
1
+ {"version":3,"file":"IconAppSettings.js","names":["SVG16","SVG24"],"sources":["../../lib/icons/IconAppSettings.tsx"],"sourcesContent":["// This file is auto-generated by 'scripts/generateIconComponents.ts'. Do not edit it manually.\n\nimport { Icon, type IconProps } from '@chakra-ui/react/icon';\nimport { type Ref } from 'react';\n\nimport SVG16 from '../svgs/16x16/icon-app-settings-16.svg?react';\nimport SVG24 from '../svgs/24x24/icon-app-settings-24.svg?react';\nimport { bitkitIcon } from './bitkitIcon';\n\nexport interface IconAppSettingsProps extends IconProps {\n size?: '16' | '24';\n}\n\nconst IconAppSettings = bitkitIcon(function IconAppSettings(\n { size = '24', ...props }: IconAppSettingsProps,\n ref: Ref<SVGSVGElement>,\n) {\n if (size === '16') {\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG16 width=\"16\" height=\"16\" />\n </Icon>\n );\n }\n\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG24 width=\"24\" height=\"24\" />\n </Icon>\n );\n});\n\nIconAppSettings.displayName = 'IconAppSettings';\n\nexport default IconAppSettings;\n"],"mappings":";;;;;;AAaA,IAAM,kBAAkB,WAAW,SAAS,gBAC1C,EAAE,OAAO,MAAM,GAAG,SAClB,KACA;CACA,IAAI,SAAS,MACX,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAACA,YAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;CAIV,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAACC,cAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;AAEV,CAAC;AAED,gBAAgB,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"IconAppStore.js","names":[],"sources":["../../lib/icons/IconAppStore.tsx"],"sourcesContent":["// This file is auto-generated by 'scripts/generateIconComponents.ts'. Do not edit it manually.\n\nimport { Icon, type IconProps } from '@chakra-ui/react/icon';\nimport { type Ref } from 'react';\n\nimport SVG16 from '../svgs/16x16/icon-app-store-16.svg?react';\nimport SVG24 from '../svgs/24x24/icon-app-store-24.svg?react';\nimport { bitkitIcon } from './bitkitIcon';\n\nexport interface IconAppStoreProps extends IconProps {\n size?: '16' | '24';\n}\n\nconst IconAppStore = bitkitIcon(function IconAppStore(\n { size = '24', ...props }: IconAppStoreProps,\n ref: Ref<SVGSVGElement>,\n) {\n if (size === '16') {\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG16 width=\"16\" height=\"16\" />\n </Icon>\n );\n }\n\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG24 width=\"24\" height=\"24\" />\n </Icon>\n );\n});\n\nIconAppStore.displayName = 'IconAppStore';\n\nexport default IconAppStore;\n"],"mappings":";;;;;;AAaA,IAAM,eAAe,WAAW,SAAS,aACvC,EAAE,OAAO,MAAM,GAAG,SAClB,KACA;CACA,IAAI,SAAS,MACX,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAAC,YAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;CAIV,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAAC,cAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;AAEV,CAAC;AAED,aAAa,cAAc"}
1
+ {"version":3,"file":"IconAppStore.js","names":["SVG16","SVG24"],"sources":["../../lib/icons/IconAppStore.tsx"],"sourcesContent":["// This file is auto-generated by 'scripts/generateIconComponents.ts'. Do not edit it manually.\n\nimport { Icon, type IconProps } from '@chakra-ui/react/icon';\nimport { type Ref } from 'react';\n\nimport SVG16 from '../svgs/16x16/icon-app-store-16.svg?react';\nimport SVG24 from '../svgs/24x24/icon-app-store-24.svg?react';\nimport { bitkitIcon } from './bitkitIcon';\n\nexport interface IconAppStoreProps extends IconProps {\n size?: '16' | '24';\n}\n\nconst IconAppStore = bitkitIcon(function IconAppStore(\n { size = '24', ...props }: IconAppStoreProps,\n ref: Ref<SVGSVGElement>,\n) {\n if (size === '16') {\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG16 width=\"16\" height=\"16\" />\n </Icon>\n );\n }\n\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG24 width=\"24\" height=\"24\" />\n </Icon>\n );\n});\n\nIconAppStore.displayName = 'IconAppStore';\n\nexport default IconAppStore;\n"],"mappings":";;;;;;AAaA,IAAM,eAAe,WAAW,SAAS,aACvC,EAAE,OAAO,MAAM,GAAG,SAClB,KACA;CACA,IAAI,SAAS,MACX,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAACA,YAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;CAIV,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAACC,cAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;AAEV,CAAC;AAED,aAAa,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"IconAppStoreColor.js","names":[],"sources":["../../lib/icons/IconAppStoreColor.tsx"],"sourcesContent":["// This file is auto-generated by 'scripts/generateIconComponents.ts'. Do not edit it manually.\n\nimport { Icon, type IconProps } from '@chakra-ui/react/icon';\nimport { type Ref } from 'react';\n\nimport SVG16 from '../svgs/16x16/icon-app-store-color-16.svg?react';\nimport SVG24 from '../svgs/24x24/icon-app-store-color-24.svg?react';\nimport { bitkitIcon } from './bitkitIcon';\n\n/** Fixed-color icon: its colors are baked in and not themeable, so `color` is omitted. */\nexport interface IconAppStoreColorProps extends Omit<IconProps, 'color'> {\n size?: '16' | '24';\n}\n\nconst IconAppStoreColor = bitkitIcon(function IconAppStoreColor(\n { size = '24', ...props }: IconAppStoreColorProps,\n ref: Ref<SVGSVGElement>,\n) {\n if (size === '16') {\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG16 width=\"16\" height=\"16\" />\n </Icon>\n );\n }\n\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG24 width=\"24\" height=\"24\" />\n </Icon>\n );\n});\n\nIconAppStoreColor.displayName = 'IconAppStoreColor';\n\nexport default IconAppStoreColor;\n"],"mappings":";;;;;;AAcA,IAAM,oBAAoB,WAAW,SAAS,kBAC5C,EAAE,OAAO,MAAM,GAAG,SAClB,KACA;CACA,IAAI,SAAS,MACX,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAAC,YAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;CAIV,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAAC,cAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;AAEV,CAAC;AAED,kBAAkB,cAAc"}
1
+ {"version":3,"file":"IconAppStoreColor.js","names":["SVG16","SVG24"],"sources":["../../lib/icons/IconAppStoreColor.tsx"],"sourcesContent":["// This file is auto-generated by 'scripts/generateIconComponents.ts'. Do not edit it manually.\n\nimport { Icon, type IconProps } from '@chakra-ui/react/icon';\nimport { type Ref } from 'react';\n\nimport SVG16 from '../svgs/16x16/icon-app-store-color-16.svg?react';\nimport SVG24 from '../svgs/24x24/icon-app-store-color-24.svg?react';\nimport { bitkitIcon } from './bitkitIcon';\n\n/** Fixed-color icon: its colors are baked in and not themeable, so `color` is omitted. */\nexport interface IconAppStoreColorProps extends Omit<IconProps, 'color'> {\n size?: '16' | '24';\n}\n\nconst IconAppStoreColor = bitkitIcon(function IconAppStoreColor(\n { size = '24', ...props }: IconAppStoreColorProps,\n ref: Ref<SVGSVGElement>,\n) {\n if (size === '16') {\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG16 width=\"16\" height=\"16\" />\n </Icon>\n );\n }\n\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG24 width=\"24\" height=\"24\" />\n </Icon>\n );\n});\n\nIconAppStoreColor.displayName = 'IconAppStoreColor';\n\nexport default IconAppStoreColor;\n"],"mappings":";;;;;;AAcA,IAAM,oBAAoB,WAAW,SAAS,kBAC5C,EAAE,OAAO,MAAM,GAAG,SAClB,KACA;CACA,IAAI,SAAS,MACX,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAACA,YAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;CAIV,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAACC,cAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;AAEV,CAAC;AAED,kBAAkB,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"IconApple.js","names":[],"sources":["../../lib/icons/IconApple.tsx"],"sourcesContent":["// This file is auto-generated by 'scripts/generateIconComponents.ts'. Do not edit it manually.\n\nimport { Icon, type IconProps } from '@chakra-ui/react/icon';\nimport { type Ref } from 'react';\n\nimport SVG16 from '../svgs/16x16/icon-apple-16.svg?react';\nimport SVG24 from '../svgs/24x24/icon-apple-24.svg?react';\nimport { bitkitIcon } from './bitkitIcon';\n\nexport interface IconAppleProps extends IconProps {\n size?: '16' | '24';\n}\n\nconst IconApple = bitkitIcon(function IconApple({ size = '24', ...props }: IconAppleProps, ref: Ref<SVGSVGElement>) {\n if (size === '16') {\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG16 width=\"16\" height=\"16\" />\n </Icon>\n );\n }\n\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG24 width=\"24\" height=\"24\" />\n </Icon>\n );\n});\n\nIconApple.displayName = 'IconApple';\n\nexport default IconApple;\n"],"mappings":";;;;;;AAaA,IAAM,YAAY,WAAW,SAAS,UAAU,EAAE,OAAO,MAAM,GAAG,SAAyB,KAAyB;CAClH,IAAI,SAAS,MACX,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAAC,YAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;CAIV,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAAC,cAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;AAEV,CAAC;AAED,UAAU,cAAc"}
1
+ {"version":3,"file":"IconApple.js","names":["SVG16","SVG24"],"sources":["../../lib/icons/IconApple.tsx"],"sourcesContent":["// This file is auto-generated by 'scripts/generateIconComponents.ts'. Do not edit it manually.\n\nimport { Icon, type IconProps } from '@chakra-ui/react/icon';\nimport { type Ref } from 'react';\n\nimport SVG16 from '../svgs/16x16/icon-apple-16.svg?react';\nimport SVG24 from '../svgs/24x24/icon-apple-24.svg?react';\nimport { bitkitIcon } from './bitkitIcon';\n\nexport interface IconAppleProps extends IconProps {\n size?: '16' | '24';\n}\n\nconst IconApple = bitkitIcon(function IconApple({ size = '24', ...props }: IconAppleProps, ref: Ref<SVGSVGElement>) {\n if (size === '16') {\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG16 width=\"16\" height=\"16\" />\n </Icon>\n );\n }\n\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG24 width=\"24\" height=\"24\" />\n </Icon>\n );\n});\n\nIconApple.displayName = 'IconApple';\n\nexport default IconApple;\n"],"mappings":";;;;;;AAaA,IAAM,YAAY,WAAW,SAAS,UAAU,EAAE,OAAO,MAAM,GAAG,SAAyB,KAAyB;CAClH,IAAI,SAAS,MACX,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAACA,YAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;CAIV,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAACC,cAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;AAEV,CAAC;AAED,UAAU,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"IconArchive.js","names":[],"sources":["../../lib/icons/IconArchive.tsx"],"sourcesContent":["// This file is auto-generated by 'scripts/generateIconComponents.ts'. Do not edit it manually.\n\nimport { Icon, type IconProps } from '@chakra-ui/react/icon';\nimport { type Ref } from 'react';\n\nimport SVG16 from '../svgs/16x16/icon-archive-16.svg?react';\nimport SVG24 from '../svgs/24x24/icon-archive-24.svg?react';\nimport { bitkitIcon } from './bitkitIcon';\n\nexport interface IconArchiveProps extends IconProps {\n size?: '16' | '24';\n}\n\nconst IconArchive = bitkitIcon(function IconArchive(\n { size = '24', ...props }: IconArchiveProps,\n ref: Ref<SVGSVGElement>,\n) {\n if (size === '16') {\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG16 width=\"16\" height=\"16\" />\n </Icon>\n );\n }\n\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG24 width=\"24\" height=\"24\" />\n </Icon>\n );\n});\n\nIconArchive.displayName = 'IconArchive';\n\nexport default IconArchive;\n"],"mappings":";;;;;;AAaA,IAAM,cAAc,WAAW,SAAS,YACtC,EAAE,OAAO,MAAM,GAAG,SAClB,KACA;CACA,IAAI,SAAS,MACX,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAAC,YAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;CAIV,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAAC,cAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;AAEV,CAAC;AAED,YAAY,cAAc"}
1
+ {"version":3,"file":"IconArchive.js","names":["SVG16","SVG24"],"sources":["../../lib/icons/IconArchive.tsx"],"sourcesContent":["// This file is auto-generated by 'scripts/generateIconComponents.ts'. Do not edit it manually.\n\nimport { Icon, type IconProps } from '@chakra-ui/react/icon';\nimport { type Ref } from 'react';\n\nimport SVG16 from '../svgs/16x16/icon-archive-16.svg?react';\nimport SVG24 from '../svgs/24x24/icon-archive-24.svg?react';\nimport { bitkitIcon } from './bitkitIcon';\n\nexport interface IconArchiveProps extends IconProps {\n size?: '16' | '24';\n}\n\nconst IconArchive = bitkitIcon(function IconArchive(\n { size = '24', ...props }: IconArchiveProps,\n ref: Ref<SVGSVGElement>,\n) {\n if (size === '16') {\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG16 width=\"16\" height=\"16\" />\n </Icon>\n );\n }\n\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG24 width=\"24\" height=\"24\" />\n </Icon>\n );\n});\n\nIconArchive.displayName = 'IconArchive';\n\nexport default IconArchive;\n"],"mappings":";;;;;;AAaA,IAAM,cAAc,WAAW,SAAS,YACtC,EAAE,OAAO,MAAM,GAAG,SAClB,KACA;CACA,IAAI,SAAS,MACX,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAACA,YAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;CAIV,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAACC,cAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;AAEV,CAAC;AAED,YAAY,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"IconArchiveDelete.js","names":[],"sources":["../../lib/icons/IconArchiveDelete.tsx"],"sourcesContent":["// This file is auto-generated by 'scripts/generateIconComponents.ts'. Do not edit it manually.\n\nimport { Icon, type IconProps } from '@chakra-ui/react/icon';\nimport { type Ref } from 'react';\n\nimport SVG16 from '../svgs/16x16/icon-archive-delete-16.svg?react';\nimport SVG24 from '../svgs/24x24/icon-archive-delete-24.svg?react';\nimport { bitkitIcon } from './bitkitIcon';\n\nexport interface IconArchiveDeleteProps extends IconProps {\n size?: '16' | '24';\n}\n\nconst IconArchiveDelete = bitkitIcon(function IconArchiveDelete(\n { size = '24', ...props }: IconArchiveDeleteProps,\n ref: Ref<SVGSVGElement>,\n) {\n if (size === '16') {\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG16 width=\"16\" height=\"16\" />\n </Icon>\n );\n }\n\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG24 width=\"24\" height=\"24\" />\n </Icon>\n );\n});\n\nIconArchiveDelete.displayName = 'IconArchiveDelete';\n\nexport default IconArchiveDelete;\n"],"mappings":";;;;;;AAaA,IAAM,oBAAoB,WAAW,SAAS,kBAC5C,EAAE,OAAO,MAAM,GAAG,SAClB,KACA;CACA,IAAI,SAAS,MACX,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAAC,YAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;CAIV,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAAC,cAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;AAEV,CAAC;AAED,kBAAkB,cAAc"}
1
+ {"version":3,"file":"IconArchiveDelete.js","names":["SVG16","SVG24"],"sources":["../../lib/icons/IconArchiveDelete.tsx"],"sourcesContent":["// This file is auto-generated by 'scripts/generateIconComponents.ts'. Do not edit it manually.\n\nimport { Icon, type IconProps } from '@chakra-ui/react/icon';\nimport { type Ref } from 'react';\n\nimport SVG16 from '../svgs/16x16/icon-archive-delete-16.svg?react';\nimport SVG24 from '../svgs/24x24/icon-archive-delete-24.svg?react';\nimport { bitkitIcon } from './bitkitIcon';\n\nexport interface IconArchiveDeleteProps extends IconProps {\n size?: '16' | '24';\n}\n\nconst IconArchiveDelete = bitkitIcon(function IconArchiveDelete(\n { size = '24', ...props }: IconArchiveDeleteProps,\n ref: Ref<SVGSVGElement>,\n) {\n if (size === '16') {\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG16 width=\"16\" height=\"16\" />\n </Icon>\n );\n }\n\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG24 width=\"24\" height=\"24\" />\n </Icon>\n );\n});\n\nIconArchiveDelete.displayName = 'IconArchiveDelete';\n\nexport default IconArchiveDelete;\n"],"mappings":";;;;;;AAaA,IAAM,oBAAoB,WAAW,SAAS,kBAC5C,EAAE,OAAO,MAAM,GAAG,SAClB,KACA;CACA,IAAI,SAAS,MACX,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAACA,YAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;CAIV,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAACC,cAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;AAEV,CAAC;AAED,kBAAkB,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"IconArchiveRestore.js","names":[],"sources":["../../lib/icons/IconArchiveRestore.tsx"],"sourcesContent":["// This file is auto-generated by 'scripts/generateIconComponents.ts'. Do not edit it manually.\n\nimport { Icon, type IconProps } from '@chakra-ui/react/icon';\nimport { type Ref } from 'react';\n\nimport SVG16 from '../svgs/16x16/icon-archive-restore-16.svg?react';\nimport SVG24 from '../svgs/24x24/icon-archive-restore-24.svg?react';\nimport { bitkitIcon } from './bitkitIcon';\n\nexport interface IconArchiveRestoreProps extends IconProps {\n size?: '16' | '24';\n}\n\nconst IconArchiveRestore = bitkitIcon(function IconArchiveRestore(\n { size = '24', ...props }: IconArchiveRestoreProps,\n ref: Ref<SVGSVGElement>,\n) {\n if (size === '16') {\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG16 width=\"16\" height=\"16\" />\n </Icon>\n );\n }\n\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG24 width=\"24\" height=\"24\" />\n </Icon>\n );\n});\n\nIconArchiveRestore.displayName = 'IconArchiveRestore';\n\nexport default IconArchiveRestore;\n"],"mappings":";;;;;;AAaA,IAAM,qBAAqB,WAAW,SAAS,mBAC7C,EAAE,OAAO,MAAM,GAAG,SAClB,KACA;CACA,IAAI,SAAS,MACX,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAAC,YAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;CAIV,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAAC,cAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;AAEV,CAAC;AAED,mBAAmB,cAAc"}
1
+ {"version":3,"file":"IconArchiveRestore.js","names":["SVG16","SVG24"],"sources":["../../lib/icons/IconArchiveRestore.tsx"],"sourcesContent":["// This file is auto-generated by 'scripts/generateIconComponents.ts'. Do not edit it manually.\n\nimport { Icon, type IconProps } from '@chakra-ui/react/icon';\nimport { type Ref } from 'react';\n\nimport SVG16 from '../svgs/16x16/icon-archive-restore-16.svg?react';\nimport SVG24 from '../svgs/24x24/icon-archive-restore-24.svg?react';\nimport { bitkitIcon } from './bitkitIcon';\n\nexport interface IconArchiveRestoreProps extends IconProps {\n size?: '16' | '24';\n}\n\nconst IconArchiveRestore = bitkitIcon(function IconArchiveRestore(\n { size = '24', ...props }: IconArchiveRestoreProps,\n ref: Ref<SVGSVGElement>,\n) {\n if (size === '16') {\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG16 width=\"16\" height=\"16\" />\n </Icon>\n );\n }\n\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG24 width=\"24\" height=\"24\" />\n </Icon>\n );\n});\n\nIconArchiveRestore.displayName = 'IconArchiveRestore';\n\nexport default IconArchiveRestore;\n"],"mappings":";;;;;;AAaA,IAAM,qBAAqB,WAAW,SAAS,mBAC7C,EAAE,OAAO,MAAM,GAAG,SAClB,KACA;CACA,IAAI,SAAS,MACX,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAACA,YAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;CAIV,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAACC,cAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;AAEV,CAAC;AAED,mBAAmB,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"IconArrowBackAndDown.js","names":[],"sources":["../../lib/icons/IconArrowBackAndDown.tsx"],"sourcesContent":["// This file is auto-generated by 'scripts/generateIconComponents.ts'. Do not edit it manually.\n\nimport { Icon, type IconProps } from '@chakra-ui/react/icon';\nimport { type Ref } from 'react';\n\nimport SVG16 from '../svgs/16x16/icon-arrow-back-and-down-16.svg?react';\nimport SVG24 from '../svgs/24x24/icon-arrow-back-and-down-24.svg?react';\nimport { bitkitIcon } from './bitkitIcon';\n\nexport interface IconArrowBackAndDownProps extends IconProps {\n size?: '16' | '24';\n}\n\nconst IconArrowBackAndDown = bitkitIcon(function IconArrowBackAndDown(\n { size = '24', ...props }: IconArrowBackAndDownProps,\n ref: Ref<SVGSVGElement>,\n) {\n if (size === '16') {\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG16 width=\"16\" height=\"16\" />\n </Icon>\n );\n }\n\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG24 width=\"24\" height=\"24\" />\n </Icon>\n );\n});\n\nIconArrowBackAndDown.displayName = 'IconArrowBackAndDown';\n\nexport default IconArrowBackAndDown;\n"],"mappings":";;;;;;AAaA,IAAM,uBAAuB,WAAW,SAAS,qBAC/C,EAAE,OAAO,MAAM,GAAG,SAClB,KACA;CACA,IAAI,SAAS,MACX,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAAC,YAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;CAIV,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAAC,cAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;AAEV,CAAC;AAED,qBAAqB,cAAc"}
1
+ {"version":3,"file":"IconArrowBackAndDown.js","names":["SVG16","SVG24"],"sources":["../../lib/icons/IconArrowBackAndDown.tsx"],"sourcesContent":["// This file is auto-generated by 'scripts/generateIconComponents.ts'. Do not edit it manually.\n\nimport { Icon, type IconProps } from '@chakra-ui/react/icon';\nimport { type Ref } from 'react';\n\nimport SVG16 from '../svgs/16x16/icon-arrow-back-and-down-16.svg?react';\nimport SVG24 from '../svgs/24x24/icon-arrow-back-and-down-24.svg?react';\nimport { bitkitIcon } from './bitkitIcon';\n\nexport interface IconArrowBackAndDownProps extends IconProps {\n size?: '16' | '24';\n}\n\nconst IconArrowBackAndDown = bitkitIcon(function IconArrowBackAndDown(\n { size = '24', ...props }: IconArrowBackAndDownProps,\n ref: Ref<SVGSVGElement>,\n) {\n if (size === '16') {\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG16 width=\"16\" height=\"16\" />\n </Icon>\n );\n }\n\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG24 width=\"24\" height=\"24\" />\n </Icon>\n );\n});\n\nIconArrowBackAndDown.displayName = 'IconArrowBackAndDown';\n\nexport default IconArrowBackAndDown;\n"],"mappings":";;;;;;AAaA,IAAM,uBAAuB,WAAW,SAAS,qBAC/C,EAAE,OAAO,MAAM,GAAG,SAClB,KACA;CACA,IAAI,SAAS,MACX,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAACA,YAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;CAIV,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAACC,cAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;AAEV,CAAC;AAED,qBAAqB,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"IconArrowBackAndUp.js","names":[],"sources":["../../lib/icons/IconArrowBackAndUp.tsx"],"sourcesContent":["// This file is auto-generated by 'scripts/generateIconComponents.ts'. Do not edit it manually.\n\nimport { Icon, type IconProps } from '@chakra-ui/react/icon';\nimport { type Ref } from 'react';\n\nimport SVG16 from '../svgs/16x16/icon-arrow-back-and-up-16.svg?react';\nimport SVG24 from '../svgs/24x24/icon-arrow-back-and-up-24.svg?react';\nimport { bitkitIcon } from './bitkitIcon';\n\nexport interface IconArrowBackAndUpProps extends IconProps {\n size?: '16' | '24';\n}\n\nconst IconArrowBackAndUp = bitkitIcon(function IconArrowBackAndUp(\n { size = '24', ...props }: IconArrowBackAndUpProps,\n ref: Ref<SVGSVGElement>,\n) {\n if (size === '16') {\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG16 width=\"16\" height=\"16\" />\n </Icon>\n );\n }\n\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG24 width=\"24\" height=\"24\" />\n </Icon>\n );\n});\n\nIconArrowBackAndUp.displayName = 'IconArrowBackAndUp';\n\nexport default IconArrowBackAndUp;\n"],"mappings":";;;;;;AAaA,IAAM,qBAAqB,WAAW,SAAS,mBAC7C,EAAE,OAAO,MAAM,GAAG,SAClB,KACA;CACA,IAAI,SAAS,MACX,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAAC,YAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;CAIV,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAAC,cAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;AAEV,CAAC;AAED,mBAAmB,cAAc"}
1
+ {"version":3,"file":"IconArrowBackAndUp.js","names":["SVG16","SVG24"],"sources":["../../lib/icons/IconArrowBackAndUp.tsx"],"sourcesContent":["// This file is auto-generated by 'scripts/generateIconComponents.ts'. Do not edit it manually.\n\nimport { Icon, type IconProps } from '@chakra-ui/react/icon';\nimport { type Ref } from 'react';\n\nimport SVG16 from '../svgs/16x16/icon-arrow-back-and-up-16.svg?react';\nimport SVG24 from '../svgs/24x24/icon-arrow-back-and-up-24.svg?react';\nimport { bitkitIcon } from './bitkitIcon';\n\nexport interface IconArrowBackAndUpProps extends IconProps {\n size?: '16' | '24';\n}\n\nconst IconArrowBackAndUp = bitkitIcon(function IconArrowBackAndUp(\n { size = '24', ...props }: IconArrowBackAndUpProps,\n ref: Ref<SVGSVGElement>,\n) {\n if (size === '16') {\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG16 width=\"16\" height=\"16\" />\n </Icon>\n );\n }\n\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG24 width=\"24\" height=\"24\" />\n </Icon>\n );\n});\n\nIconArrowBackAndUp.displayName = 'IconArrowBackAndUp';\n\nexport default IconArrowBackAndUp;\n"],"mappings":";;;;;;AAaA,IAAM,qBAAqB,WAAW,SAAS,mBAC7C,EAAE,OAAO,MAAM,GAAG,SAClB,KACA;CACA,IAAI,SAAS,MACX,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAACA,YAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;CAIV,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAACC,cAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;AAEV,CAAC;AAED,mBAAmB,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"IconArrowDown.js","names":[],"sources":["../../lib/icons/IconArrowDown.tsx"],"sourcesContent":["// This file is auto-generated by 'scripts/generateIconComponents.ts'. Do not edit it manually.\n\nimport { Icon, type IconProps } from '@chakra-ui/react/icon';\nimport { type Ref } from 'react';\n\nimport SVG16 from '../svgs/16x16/icon-arrow-down-16.svg?react';\nimport SVG24 from '../svgs/24x24/icon-arrow-down-24.svg?react';\nimport { bitkitIcon } from './bitkitIcon';\n\nexport interface IconArrowDownProps extends IconProps {\n size?: '16' | '24';\n}\n\nconst IconArrowDown = bitkitIcon(function IconArrowDown(\n { size = '24', ...props }: IconArrowDownProps,\n ref: Ref<SVGSVGElement>,\n) {\n if (size === '16') {\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG16 width=\"16\" height=\"16\" />\n </Icon>\n );\n }\n\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG24 width=\"24\" height=\"24\" />\n </Icon>\n );\n});\n\nIconArrowDown.displayName = 'IconArrowDown';\n\nexport default IconArrowDown;\n"],"mappings":";;;;;;AAaA,IAAM,gBAAgB,WAAW,SAAS,cACxC,EAAE,OAAO,MAAM,GAAG,SAClB,KACA;CACA,IAAI,SAAS,MACX,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAAC,YAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;CAIV,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAAC,cAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;AAEV,CAAC;AAED,cAAc,cAAc"}
1
+ {"version":3,"file":"IconArrowDown.js","names":["SVG16","SVG24"],"sources":["../../lib/icons/IconArrowDown.tsx"],"sourcesContent":["// This file is auto-generated by 'scripts/generateIconComponents.ts'. Do not edit it manually.\n\nimport { Icon, type IconProps } from '@chakra-ui/react/icon';\nimport { type Ref } from 'react';\n\nimport SVG16 from '../svgs/16x16/icon-arrow-down-16.svg?react';\nimport SVG24 from '../svgs/24x24/icon-arrow-down-24.svg?react';\nimport { bitkitIcon } from './bitkitIcon';\n\nexport interface IconArrowDownProps extends IconProps {\n size?: '16' | '24';\n}\n\nconst IconArrowDown = bitkitIcon(function IconArrowDown(\n { size = '24', ...props }: IconArrowDownProps,\n ref: Ref<SVGSVGElement>,\n) {\n if (size === '16') {\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG16 width=\"16\" height=\"16\" />\n </Icon>\n );\n }\n\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG24 width=\"24\" height=\"24\" />\n </Icon>\n );\n});\n\nIconArrowDown.displayName = 'IconArrowDown';\n\nexport default IconArrowDown;\n"],"mappings":";;;;;;AAaA,IAAM,gBAAgB,WAAW,SAAS,cACxC,EAAE,OAAO,MAAM,GAAG,SAClB,KACA;CACA,IAAI,SAAS,MACX,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAACA,YAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;CAIV,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAACC,cAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;AAEV,CAAC;AAED,cAAc,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"IconArrowForwardAndDown.js","names":[],"sources":["../../lib/icons/IconArrowForwardAndDown.tsx"],"sourcesContent":["// This file is auto-generated by 'scripts/generateIconComponents.ts'. Do not edit it manually.\n\nimport { Icon, type IconProps } from '@chakra-ui/react/icon';\nimport { type Ref } from 'react';\n\nimport SVG16 from '../svgs/16x16/icon-arrow-forward-and-down-16.svg?react';\nimport SVG24 from '../svgs/24x24/icon-arrow-forward-and-down-24.svg?react';\nimport { bitkitIcon } from './bitkitIcon';\n\nexport interface IconArrowForwardAndDownProps extends IconProps {\n size?: '16' | '24';\n}\n\nconst IconArrowForwardAndDown = bitkitIcon(function IconArrowForwardAndDown(\n { size = '24', ...props }: IconArrowForwardAndDownProps,\n ref: Ref<SVGSVGElement>,\n) {\n if (size === '16') {\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG16 width=\"16\" height=\"16\" />\n </Icon>\n );\n }\n\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG24 width=\"24\" height=\"24\" />\n </Icon>\n );\n});\n\nIconArrowForwardAndDown.displayName = 'IconArrowForwardAndDown';\n\nexport default IconArrowForwardAndDown;\n"],"mappings":";;;;;;AAaA,IAAM,0BAA0B,WAAW,SAAS,wBAClD,EAAE,OAAO,MAAM,GAAG,SAClB,KACA;CACA,IAAI,SAAS,MACX,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAAC,YAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;CAIV,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAAC,cAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;AAEV,CAAC;AAED,wBAAwB,cAAc"}
1
+ {"version":3,"file":"IconArrowForwardAndDown.js","names":["SVG16","SVG24"],"sources":["../../lib/icons/IconArrowForwardAndDown.tsx"],"sourcesContent":["// This file is auto-generated by 'scripts/generateIconComponents.ts'. Do not edit it manually.\n\nimport { Icon, type IconProps } from '@chakra-ui/react/icon';\nimport { type Ref } from 'react';\n\nimport SVG16 from '../svgs/16x16/icon-arrow-forward-and-down-16.svg?react';\nimport SVG24 from '../svgs/24x24/icon-arrow-forward-and-down-24.svg?react';\nimport { bitkitIcon } from './bitkitIcon';\n\nexport interface IconArrowForwardAndDownProps extends IconProps {\n size?: '16' | '24';\n}\n\nconst IconArrowForwardAndDown = bitkitIcon(function IconArrowForwardAndDown(\n { size = '24', ...props }: IconArrowForwardAndDownProps,\n ref: Ref<SVGSVGElement>,\n) {\n if (size === '16') {\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG16 width=\"16\" height=\"16\" />\n </Icon>\n );\n }\n\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG24 width=\"24\" height=\"24\" />\n </Icon>\n );\n});\n\nIconArrowForwardAndDown.displayName = 'IconArrowForwardAndDown';\n\nexport default IconArrowForwardAndDown;\n"],"mappings":";;;;;;AAaA,IAAM,0BAA0B,WAAW,SAAS,wBAClD,EAAE,OAAO,MAAM,GAAG,SAClB,KACA;CACA,IAAI,SAAS,MACX,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAACA,YAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;CAIV,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAACC,cAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;AAEV,CAAC;AAED,wBAAwB,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"IconArrowForwardAndUp.js","names":[],"sources":["../../lib/icons/IconArrowForwardAndUp.tsx"],"sourcesContent":["// This file is auto-generated by 'scripts/generateIconComponents.ts'. Do not edit it manually.\n\nimport { Icon, type IconProps } from '@chakra-ui/react/icon';\nimport { type Ref } from 'react';\n\nimport SVG16 from '../svgs/16x16/icon-arrow-forward-and-up-16.svg?react';\nimport SVG24 from '../svgs/24x24/icon-arrow-forward-and-up-24.svg?react';\nimport { bitkitIcon } from './bitkitIcon';\n\nexport interface IconArrowForwardAndUpProps extends IconProps {\n size?: '16' | '24';\n}\n\nconst IconArrowForwardAndUp = bitkitIcon(function IconArrowForwardAndUp(\n { size = '24', ...props }: IconArrowForwardAndUpProps,\n ref: Ref<SVGSVGElement>,\n) {\n if (size === '16') {\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG16 width=\"16\" height=\"16\" />\n </Icon>\n );\n }\n\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG24 width=\"24\" height=\"24\" />\n </Icon>\n );\n});\n\nIconArrowForwardAndUp.displayName = 'IconArrowForwardAndUp';\n\nexport default IconArrowForwardAndUp;\n"],"mappings":";;;;;;AAaA,IAAM,wBAAwB,WAAW,SAAS,sBAChD,EAAE,OAAO,MAAM,GAAG,SAClB,KACA;CACA,IAAI,SAAS,MACX,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAAC,YAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;CAIV,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAAC,cAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;AAEV,CAAC;AAED,sBAAsB,cAAc"}
1
+ {"version":3,"file":"IconArrowForwardAndUp.js","names":["SVG16","SVG24"],"sources":["../../lib/icons/IconArrowForwardAndUp.tsx"],"sourcesContent":["// This file is auto-generated by 'scripts/generateIconComponents.ts'. Do not edit it manually.\n\nimport { Icon, type IconProps } from '@chakra-ui/react/icon';\nimport { type Ref } from 'react';\n\nimport SVG16 from '../svgs/16x16/icon-arrow-forward-and-up-16.svg?react';\nimport SVG24 from '../svgs/24x24/icon-arrow-forward-and-up-24.svg?react';\nimport { bitkitIcon } from './bitkitIcon';\n\nexport interface IconArrowForwardAndUpProps extends IconProps {\n size?: '16' | '24';\n}\n\nconst IconArrowForwardAndUp = bitkitIcon(function IconArrowForwardAndUp(\n { size = '24', ...props }: IconArrowForwardAndUpProps,\n ref: Ref<SVGSVGElement>,\n) {\n if (size === '16') {\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG16 width=\"16\" height=\"16\" />\n </Icon>\n );\n }\n\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG24 width=\"24\" height=\"24\" />\n </Icon>\n );\n});\n\nIconArrowForwardAndUp.displayName = 'IconArrowForwardAndUp';\n\nexport default IconArrowForwardAndUp;\n"],"mappings":";;;;;;AAaA,IAAM,wBAAwB,WAAW,SAAS,sBAChD,EAAE,OAAO,MAAM,GAAG,SAClB,KACA;CACA,IAAI,SAAS,MACX,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAACA,YAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;CAIV,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAACC,cAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;AAEV,CAAC;AAED,sBAAsB,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"IconArrowLeft.js","names":[],"sources":["../../lib/icons/IconArrowLeft.tsx"],"sourcesContent":["// This file is auto-generated by 'scripts/generateIconComponents.ts'. Do not edit it manually.\n\nimport { Icon, type IconProps } from '@chakra-ui/react/icon';\nimport { type Ref } from 'react';\n\nimport SVG16 from '../svgs/16x16/icon-arrow-left-16.svg?react';\nimport SVG24 from '../svgs/24x24/icon-arrow-left-24.svg?react';\nimport { bitkitIcon } from './bitkitIcon';\n\nexport interface IconArrowLeftProps extends IconProps {\n size?: '16' | '24';\n}\n\nconst IconArrowLeft = bitkitIcon(function IconArrowLeft(\n { size = '24', ...props }: IconArrowLeftProps,\n ref: Ref<SVGSVGElement>,\n) {\n if (size === '16') {\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG16 width=\"16\" height=\"16\" />\n </Icon>\n );\n }\n\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG24 width=\"24\" height=\"24\" />\n </Icon>\n );\n});\n\nIconArrowLeft.displayName = 'IconArrowLeft';\n\nexport default IconArrowLeft;\n"],"mappings":";;;;;;AAaA,IAAM,gBAAgB,WAAW,SAAS,cACxC,EAAE,OAAO,MAAM,GAAG,SAClB,KACA;CACA,IAAI,SAAS,MACX,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAAC,YAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;CAIV,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAAC,cAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;AAEV,CAAC;AAED,cAAc,cAAc"}
1
+ {"version":3,"file":"IconArrowLeft.js","names":["SVG16","SVG24"],"sources":["../../lib/icons/IconArrowLeft.tsx"],"sourcesContent":["// This file is auto-generated by 'scripts/generateIconComponents.ts'. Do not edit it manually.\n\nimport { Icon, type IconProps } from '@chakra-ui/react/icon';\nimport { type Ref } from 'react';\n\nimport SVG16 from '../svgs/16x16/icon-arrow-left-16.svg?react';\nimport SVG24 from '../svgs/24x24/icon-arrow-left-24.svg?react';\nimport { bitkitIcon } from './bitkitIcon';\n\nexport interface IconArrowLeftProps extends IconProps {\n size?: '16' | '24';\n}\n\nconst IconArrowLeft = bitkitIcon(function IconArrowLeft(\n { size = '24', ...props }: IconArrowLeftProps,\n ref: Ref<SVGSVGElement>,\n) {\n if (size === '16') {\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG16 width=\"16\" height=\"16\" />\n </Icon>\n );\n }\n\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG24 width=\"24\" height=\"24\" />\n </Icon>\n );\n});\n\nIconArrowLeft.displayName = 'IconArrowLeft';\n\nexport default IconArrowLeft;\n"],"mappings":";;;;;;AAaA,IAAM,gBAAgB,WAAW,SAAS,cACxC,EAAE,OAAO,MAAM,GAAG,SAClB,KACA;CACA,IAAI,SAAS,MACX,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAACA,YAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;CAIV,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAACC,cAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;AAEV,CAAC;AAED,cAAc,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"IconArrowNortheast.js","names":[],"sources":["../../lib/icons/IconArrowNortheast.tsx"],"sourcesContent":["// This file is auto-generated by 'scripts/generateIconComponents.ts'. Do not edit it manually.\n\nimport { Icon, type IconProps } from '@chakra-ui/react/icon';\nimport { type Ref } from 'react';\n\nimport SVG16 from '../svgs/16x16/icon-arrow-northeast-16.svg?react';\nimport SVG24 from '../svgs/24x24/icon-arrow-northeast-24.svg?react';\nimport { bitkitIcon } from './bitkitIcon';\n\nexport interface IconArrowNortheastProps extends IconProps {\n size?: '16' | '24';\n}\n\nconst IconArrowNortheast = bitkitIcon(function IconArrowNortheast(\n { size = '24', ...props }: IconArrowNortheastProps,\n ref: Ref<SVGSVGElement>,\n) {\n if (size === '16') {\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG16 width=\"16\" height=\"16\" />\n </Icon>\n );\n }\n\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG24 width=\"24\" height=\"24\" />\n </Icon>\n );\n});\n\nIconArrowNortheast.displayName = 'IconArrowNortheast';\n\nexport default IconArrowNortheast;\n"],"mappings":";;;;;;AAaA,IAAM,qBAAqB,WAAW,SAAS,mBAC7C,EAAE,OAAO,MAAM,GAAG,SAClB,KACA;CACA,IAAI,SAAS,MACX,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAAC,YAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;CAIV,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAAC,cAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;AAEV,CAAC;AAED,mBAAmB,cAAc"}
1
+ {"version":3,"file":"IconArrowNortheast.js","names":["SVG16","SVG24"],"sources":["../../lib/icons/IconArrowNortheast.tsx"],"sourcesContent":["// This file is auto-generated by 'scripts/generateIconComponents.ts'. Do not edit it manually.\n\nimport { Icon, type IconProps } from '@chakra-ui/react/icon';\nimport { type Ref } from 'react';\n\nimport SVG16 from '../svgs/16x16/icon-arrow-northeast-16.svg?react';\nimport SVG24 from '../svgs/24x24/icon-arrow-northeast-24.svg?react';\nimport { bitkitIcon } from './bitkitIcon';\n\nexport interface IconArrowNortheastProps extends IconProps {\n size?: '16' | '24';\n}\n\nconst IconArrowNortheast = bitkitIcon(function IconArrowNortheast(\n { size = '24', ...props }: IconArrowNortheastProps,\n ref: Ref<SVGSVGElement>,\n) {\n if (size === '16') {\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG16 width=\"16\" height=\"16\" />\n </Icon>\n );\n }\n\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG24 width=\"24\" height=\"24\" />\n </Icon>\n );\n});\n\nIconArrowNortheast.displayName = 'IconArrowNortheast';\n\nexport default IconArrowNortheast;\n"],"mappings":";;;;;;AAaA,IAAM,qBAAqB,WAAW,SAAS,mBAC7C,EAAE,OAAO,MAAM,GAAG,SAClB,KACA;CACA,IAAI,SAAS,MACX,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAACA,YAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;CAIV,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAACC,cAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;AAEV,CAAC;AAED,mBAAmB,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"IconArrowNorthwest.js","names":[],"sources":["../../lib/icons/IconArrowNorthwest.tsx"],"sourcesContent":["// This file is auto-generated by 'scripts/generateIconComponents.ts'. Do not edit it manually.\n\nimport { Icon, type IconProps } from '@chakra-ui/react/icon';\nimport { type Ref } from 'react';\n\nimport SVG16 from '../svgs/16x16/icon-arrow-northwest-16.svg?react';\nimport SVG24 from '../svgs/24x24/icon-arrow-northwest-24.svg?react';\nimport { bitkitIcon } from './bitkitIcon';\n\nexport interface IconArrowNorthwestProps extends IconProps {\n size?: '16' | '24';\n}\n\nconst IconArrowNorthwest = bitkitIcon(function IconArrowNorthwest(\n { size = '24', ...props }: IconArrowNorthwestProps,\n ref: Ref<SVGSVGElement>,\n) {\n if (size === '16') {\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG16 width=\"16\" height=\"16\" />\n </Icon>\n );\n }\n\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG24 width=\"24\" height=\"24\" />\n </Icon>\n );\n});\n\nIconArrowNorthwest.displayName = 'IconArrowNorthwest';\n\nexport default IconArrowNorthwest;\n"],"mappings":";;;;;;AAaA,IAAM,qBAAqB,WAAW,SAAS,mBAC7C,EAAE,OAAO,MAAM,GAAG,SAClB,KACA;CACA,IAAI,SAAS,MACX,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAAC,YAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;CAIV,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAAC,cAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;AAEV,CAAC;AAED,mBAAmB,cAAc"}
1
+ {"version":3,"file":"IconArrowNorthwest.js","names":["SVG16","SVG24"],"sources":["../../lib/icons/IconArrowNorthwest.tsx"],"sourcesContent":["// This file is auto-generated by 'scripts/generateIconComponents.ts'. Do not edit it manually.\n\nimport { Icon, type IconProps } from '@chakra-ui/react/icon';\nimport { type Ref } from 'react';\n\nimport SVG16 from '../svgs/16x16/icon-arrow-northwest-16.svg?react';\nimport SVG24 from '../svgs/24x24/icon-arrow-northwest-24.svg?react';\nimport { bitkitIcon } from './bitkitIcon';\n\nexport interface IconArrowNorthwestProps extends IconProps {\n size?: '16' | '24';\n}\n\nconst IconArrowNorthwest = bitkitIcon(function IconArrowNorthwest(\n { size = '24', ...props }: IconArrowNorthwestProps,\n ref: Ref<SVGSVGElement>,\n) {\n if (size === '16') {\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG16 width=\"16\" height=\"16\" />\n </Icon>\n );\n }\n\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG24 width=\"24\" height=\"24\" />\n </Icon>\n );\n});\n\nIconArrowNorthwest.displayName = 'IconArrowNorthwest';\n\nexport default IconArrowNorthwest;\n"],"mappings":";;;;;;AAaA,IAAM,qBAAqB,WAAW,SAAS,mBAC7C,EAAE,OAAO,MAAM,GAAG,SAClB,KACA;CACA,IAAI,SAAS,MACX,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAACA,YAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;CAIV,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAACC,cAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;AAEV,CAAC;AAED,mBAAmB,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"IconArrowRight.js","names":[],"sources":["../../lib/icons/IconArrowRight.tsx"],"sourcesContent":["// This file is auto-generated by 'scripts/generateIconComponents.ts'. Do not edit it manually.\n\nimport { Icon, type IconProps } from '@chakra-ui/react/icon';\nimport { type Ref } from 'react';\n\nimport SVG16 from '../svgs/16x16/icon-arrow-right-16.svg?react';\nimport SVG24 from '../svgs/24x24/icon-arrow-right-24.svg?react';\nimport { bitkitIcon } from './bitkitIcon';\n\nexport interface IconArrowRightProps extends IconProps {\n size?: '16' | '24';\n}\n\nconst IconArrowRight = bitkitIcon(function IconArrowRight(\n { size = '24', ...props }: IconArrowRightProps,\n ref: Ref<SVGSVGElement>,\n) {\n if (size === '16') {\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG16 width=\"16\" height=\"16\" />\n </Icon>\n );\n }\n\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG24 width=\"24\" height=\"24\" />\n </Icon>\n );\n});\n\nIconArrowRight.displayName = 'IconArrowRight';\n\nexport default IconArrowRight;\n"],"mappings":";;;;;;AAaA,IAAM,iBAAiB,WAAW,SAAS,eACzC,EAAE,OAAO,MAAM,GAAG,SAClB,KACA;CACA,IAAI,SAAS,MACX,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAAC,YAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;CAIV,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAAC,cAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;AAEV,CAAC;AAED,eAAe,cAAc"}
1
+ {"version":3,"file":"IconArrowRight.js","names":["SVG16","SVG24"],"sources":["../../lib/icons/IconArrowRight.tsx"],"sourcesContent":["// This file is auto-generated by 'scripts/generateIconComponents.ts'. Do not edit it manually.\n\nimport { Icon, type IconProps } from '@chakra-ui/react/icon';\nimport { type Ref } from 'react';\n\nimport SVG16 from '../svgs/16x16/icon-arrow-right-16.svg?react';\nimport SVG24 from '../svgs/24x24/icon-arrow-right-24.svg?react';\nimport { bitkitIcon } from './bitkitIcon';\n\nexport interface IconArrowRightProps extends IconProps {\n size?: '16' | '24';\n}\n\nconst IconArrowRight = bitkitIcon(function IconArrowRight(\n { size = '24', ...props }: IconArrowRightProps,\n ref: Ref<SVGSVGElement>,\n) {\n if (size === '16') {\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG16 width=\"16\" height=\"16\" />\n </Icon>\n );\n }\n\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG24 width=\"24\" height=\"24\" />\n </Icon>\n );\n});\n\nIconArrowRight.displayName = 'IconArrowRight';\n\nexport default IconArrowRight;\n"],"mappings":";;;;;;AAaA,IAAM,iBAAiB,WAAW,SAAS,eACzC,EAAE,OAAO,MAAM,GAAG,SAClB,KACA;CACA,IAAI,SAAS,MACX,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAACA,YAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;CAIV,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAACC,cAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;AAEV,CAAC;AAED,eAAe,cAAc"}