@bitrise/bitkit-v2 0.3.475 → 0.3.477-beta.3026
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.
- package/README.md +5 -6
- package/dist/atoms/DatePicker/DatePicker.js.map +1 -1
- package/dist/atoms/ImageCropper/ImageCropper.js.map +1 -1
- package/dist/components/BitkitActionMenu/BitkitActionMenu.js.map +1 -1
- package/dist/components/BitkitAvatar/BitkitAvatar.js.map +1 -1
- package/dist/components/BitkitButton/BitkitButton.js.map +1 -1
- package/dist/components/BitkitCollapsible/BitkitCollapsible.js.map +1 -1
- package/dist/components/BitkitColorButton/BitkitColorButton.js.map +1 -1
- package/dist/components/BitkitDialog/BitkitStepsDialog.js.map +1 -1
- package/dist/components/BitkitDialog/BitkitStepsDialogStep.js.map +1 -1
- package/dist/components/BitkitDialog/DialogBodyContext.js.map +1 -1
- package/dist/components/BitkitExpandableCard/BitkitExpandableCard.js.map +1 -1
- package/dist/components/BitkitFileInput/BitkitFileInput.js.map +1 -1
- package/dist/components/BitkitIconButton/BitkitIconButton.js.map +1 -1
- package/dist/components/BitkitLabeledData/BitkitLabeledData.js.map +1 -1
- package/dist/components/BitkitList/BitkitList.js.map +1 -1
- package/dist/components/BitkitMarkdown/BitkitMarkdown.js.map +1 -1
- package/dist/components/BitkitMarkdownCard/BitkitMarkdownCard.js.map +1 -1
- package/dist/components/BitkitMultiselect/BitkitMultiselect.js.map +1 -1
- package/dist/components/BitkitNoteCard/BitkitNoteCard.js.map +1 -1
- package/dist/components/BitkitOverflowContent/BitkitOverflowContent.js.map +1 -1
- package/dist/components/BitkitPageSidebar/BitkitPageSidebar.js.map +1 -1
- package/dist/components/BitkitPagination/BitkitPagination.js.map +1 -1
- package/dist/components/BitkitPaginationLoadMore/BitkitPaginationLoadMore.js.map +1 -1
- package/dist/components/BitkitPopover/BitkitPopover.js.map +1 -1
- package/dist/components/BitkitPromoBanner/BitkitPromoBanner.js.map +1 -1
- package/dist/components/BitkitSegmentedControl/BitkitSegmentedControl.js.map +1 -1
- package/dist/components/BitkitSelectMenu/BitkitSelectMenuAction.js.map +1 -1
- package/dist/components/BitkitSettingsCard/BitkitSettingsCard.js.map +1 -1
- package/dist/components/BitkitSplitButton/BitkitSplitButton.js.map +1 -1
- package/dist/components/BitkitStat/BitkitStat.js.map +1 -1
- package/dist/components/BitkitStepsCard/BitkitStepsCard.js.map +1 -1
- package/dist/components/BitkitTable/BitkitExpandableRow.js.map +1 -1
- package/dist/components/BitkitTable/BitkitRowActionsCell.js.map +1 -1
- package/dist/components/BitkitTable/BitkitSortableColumnHeader.js.map +1 -1
- package/dist/components/BitkitTabs/BitkitTabs.js.map +1 -1
- package/dist/components/BitkitToggletip/BitkitToggletip.js.map +1 -1
- package/dist/components/BitkitTour/BitkitTour.js.map +1 -1
- package/dist/components/BitkitTreeView/BitkitTreeView.js.map +1 -1
- package/dist/components/BitkitUIHeader/BitkitUIHeader.d.ts +37 -0
- package/dist/components/BitkitUIHeader/BitkitUIHeader.js +99 -0
- package/dist/components/BitkitUIHeader/BitkitUIHeader.js.map +1 -0
- package/dist/components/BitkitUIHeader/BitriseLogo.d.ts +10 -0
- package/dist/components/BitkitUIHeader/BitriseLogo.js +86 -0
- package/dist/components/BitkitUIHeader/BitriseLogo.js.map +1 -0
- package/dist/components/BitkitUIHeader/UIHeaderAccount.d.ts +22 -0
- package/dist/components/BitkitUIHeader/UIHeaderAccount.js +38 -0
- package/dist/components/BitkitUIHeader/UIHeaderAccount.js.map +1 -0
- package/dist/components/BitkitUIHeader/UIHeaderButton.d.ts +33 -0
- package/dist/components/BitkitUIHeader/UIHeaderButton.js +41 -0
- package/dist/components/BitkitUIHeader/UIHeaderButton.js.map +1 -0
- package/dist/components/BitkitUIHeader/UIHeaderContext.d.ts +13 -0
- package/dist/components/BitkitUIHeader/UIHeaderContext.js +11 -0
- package/dist/components/BitkitUIHeader/UIHeaderContext.js.map +1 -0
- package/dist/components/BitkitUIHeader/UIHeaderControl.d.ts +67 -0
- package/dist/components/BitkitUIHeader/UIHeaderControl.js +65 -0
- package/dist/components/BitkitUIHeader/UIHeaderControl.js.map +1 -0
- package/dist/components/BitkitUIHeader/UIHeaderNavButton.d.ts +20 -0
- package/dist/components/BitkitUIHeader/UIHeaderNavButton.js +46 -0
- package/dist/components/BitkitUIHeader/UIHeaderNavButton.js.map +1 -0
- package/dist/components/BitkitUIHeader/UIHeaderSearch.d.ts +32 -0
- package/dist/components/BitkitUIHeader/UIHeaderSearch.js +107 -0
- package/dist/components/BitkitUIHeader/UIHeaderSearch.js.map +1 -0
- package/dist/components/BitkitUISideNav/UISideNavLink.js.map +1 -1
- package/dist/components/common/NotificationContent.js.map +1 -1
- package/dist/components/index.d.ts +1 -0
- package/dist/icons/IconAbortCircle.js.map +1 -1
- package/dist/icons/IconAbortCircleFilled.js.map +1 -1
- package/dist/icons/IconAddons.js.map +1 -1
- package/dist/icons/IconAgent.js.map +1 -1
- package/dist/icons/IconAnchor.js.map +1 -1
- package/dist/icons/IconAndroid.js.map +1 -1
- package/dist/icons/IconApp.js.map +1 -1
- package/dist/icons/IconAppSettings.js.map +1 -1
- package/dist/icons/IconAppStore.js.map +1 -1
- package/dist/icons/IconAppStoreColor.js.map +1 -1
- package/dist/icons/IconApple.js.map +1 -1
- package/dist/icons/IconArchive.js.map +1 -1
- package/dist/icons/IconArchiveDelete.js.map +1 -1
- package/dist/icons/IconArchiveRestore.js.map +1 -1
- package/dist/icons/IconArrowBackAndDown.js.map +1 -1
- package/dist/icons/IconArrowBackAndUp.js.map +1 -1
- package/dist/icons/IconArrowDown.js.map +1 -1
- package/dist/icons/IconArrowForwardAndDown.js.map +1 -1
- package/dist/icons/IconArrowForwardAndUp.js.map +1 -1
- package/dist/icons/IconArrowLeft.js.map +1 -1
- package/dist/icons/IconArrowNortheast.js.map +1 -1
- package/dist/icons/IconArrowNorthwest.js.map +1 -1
- package/dist/icons/IconArrowRight.js.map +1 -1
- package/dist/icons/IconArrowUp.js.map +1 -1
- package/dist/icons/IconArrowsHorizontal.js.map +1 -1
- package/dist/icons/IconArrowsVertical.js.map +1 -1
- package/dist/icons/IconAutomation.js.map +1 -1
- package/dist/icons/IconAws.js.map +1 -1
- package/dist/icons/IconAwsColor.js.map +1 -1
- package/dist/icons/IconBadge3RdParty.js.map +1 -1
- package/dist/icons/IconBadgeBitrise.js.map +1 -1
- package/dist/icons/IconBadgeUpgrade.js.map +1 -1
- package/dist/icons/IconBadgeVersionOk.js.map +1 -1
- package/dist/icons/IconBazel.js.map +1 -1
- package/dist/icons/IconBell.js.map +1 -1
- package/dist/icons/IconBitbot.js.map +1 -1
- package/dist/icons/IconBitbotError.js.map +1 -1
- package/dist/icons/IconBitbucket.js.map +1 -1
- package/dist/icons/IconBitbucketColor.js.map +1 -1
- package/dist/icons/IconBitbucketNeutral.js.map +1 -1
- package/dist/icons/IconBitbucketWhite.js.map +1 -1
- package/dist/icons/IconBlockCircle.js.map +1 -1
- package/dist/icons/IconBook.js.map +1 -1
- package/dist/icons/IconBoxArrowDown.js.map +1 -1
- package/dist/icons/IconBoxDot.js.map +1 -1
- package/dist/icons/IconBoxLinesOverflow.js.map +1 -1
- package/dist/icons/IconBoxLinesWrap.js.map +1 -1
- package/dist/icons/IconBranch.js.map +1 -1
- package/dist/icons/IconBrowserstackColor.js.map +1 -1
- package/dist/icons/IconBug.js.map +1 -1
- package/dist/icons/IconBuild.js.map +1 -1
- package/dist/icons/IconBuildCache.js.map +1 -1
- package/dist/icons/IconBuildCacheFilled.js.map +1 -1
- package/dist/icons/IconBuildEnvSetup.js.map +1 -1
- package/dist/icons/IconBuildHub.js.map +1 -1
- package/dist/icons/IconBuildHubFilled.js.map +1 -1
- package/dist/icons/IconCalendar.js.map +1 -1
- package/dist/icons/IconChangePlan.js.map +1 -1
- package/dist/icons/IconChat.js.map +1 -1
- package/dist/icons/IconCheck.js.map +1 -1
- package/dist/icons/IconCheckCircle.js.map +1 -1
- package/dist/icons/IconCheckCircleFilled.js.map +1 -1
- package/dist/icons/IconChevronDown.js.map +1 -1
- package/dist/icons/IconChevronLeft.js.map +1 -1
- package/dist/icons/IconChevronRight.js.map +1 -1
- package/dist/icons/IconChevronUp.js.map +1 -1
- package/dist/icons/IconCi.js.map +1 -1
- package/dist/icons/IconCiFilled.js.map +1 -1
- package/dist/icons/IconCircle.js.map +1 -1
- package/dist/icons/IconCircleDashed.js.map +1 -1
- package/dist/icons/IconCircleHalfFilled.js.map +1 -1
- package/dist/icons/IconClaude.js.map +1 -1
- package/dist/icons/IconClaudeColor.js.map +1 -1
- package/dist/icons/IconClock.js.map +1 -1
- package/dist/icons/IconCode.js.map +1 -1
- package/dist/icons/IconCodePush.js.map +1 -1
- package/dist/icons/IconCodeSigning.js.map +1 -1
- package/dist/icons/IconCoffee.js.map +1 -1
- package/dist/icons/IconCommit.js.map +1 -1
- package/dist/icons/IconConfigure.js.map +1 -1
- package/dist/icons/IconConnectedAccounts.js.map +1 -1
- package/dist/icons/IconContainer.js.map +1 -1
- package/dist/icons/IconCopilot.js.map +1 -1
- package/dist/icons/IconCopy.js.map +1 -1
- package/dist/icons/IconCordova.js.map +1 -1
- package/dist/icons/IconCpu.js.map +1 -1
- package/dist/icons/IconCreditcard.js.map +1 -1
- package/dist/icons/IconCredits.js.map +1 -1
- package/dist/icons/IconCross.js.map +1 -1
- package/dist/icons/IconCrossCircle.js.map +1 -1
- package/dist/icons/IconCrossCircleFilled.js.map +1 -1
- package/dist/icons/IconCrown.js.map +1 -1
- package/dist/icons/IconCursor.js.map +1 -1
- package/dist/icons/IconCycle.js.map +1 -1
- package/dist/icons/IconDashboard.js.map +1 -1
- package/dist/icons/IconDashboardFilled.js.map +1 -1
- package/dist/icons/IconDeployment.js.map +1 -1
- package/dist/icons/IconDetails.js.map +1 -1
- package/dist/icons/IconDoc.js.map +1 -1
- package/dist/icons/IconDollar.js.map +1 -1
- package/dist/icons/IconDot.js.map +1 -1
- package/dist/icons/IconDotnet.js.map +1 -1
- package/dist/icons/IconDotnetColor.js.map +1 -1
- package/dist/icons/IconDotnetText.js.map +1 -1
- package/dist/icons/IconDotnetTextColor.js.map +1 -1
- package/dist/icons/IconDoubleCircle.js.map +1 -1
- package/dist/icons/IconDownload.js.map +1 -1
- package/dist/icons/IconDragHandle.js.map +1 -1
- package/dist/icons/IconEc2Ami.js.map +1 -1
- package/dist/icons/IconEnterprise.js.map +1 -1
- package/dist/icons/IconErrorCircle.js.map +1 -1
- package/dist/icons/IconErrorCircleFilled.js.map +1 -1
- package/dist/icons/IconExpand.js.map +1 -1
- package/dist/icons/IconExtraBuildCapacity.js.map +1 -1
- package/dist/icons/IconEye.js.map +1 -1
- package/dist/icons/IconEyeSlash.js.map +1 -1
- package/dist/icons/IconFastlane.js.map +1 -1
- package/dist/icons/IconFile.js.map +1 -1
- package/dist/icons/IconFileDoc.js.map +1 -1
- package/dist/icons/IconFilePdf.js.map +1 -1
- package/dist/icons/IconFilePlist.js.map +1 -1
- package/dist/icons/IconFileYml.js.map +1 -1
- package/dist/icons/IconFileZip.js.map +1 -1
- package/dist/icons/IconFilter.js.map +1 -1
- package/dist/icons/IconFlag.js.map +1 -1
- package/dist/icons/IconFlutter.js.map +1 -1
- package/dist/icons/IconFolder.js.map +1 -1
- package/dist/icons/IconFullscreen.js.map +1 -1
- package/dist/icons/IconFullscreenExit.js.map +1 -1
- package/dist/icons/IconGauge.js.map +1 -1
- package/dist/icons/IconGit.js.map +1 -1
- package/dist/icons/IconGithub.js.map +1 -1
- package/dist/icons/IconGitlab.js.map +1 -1
- package/dist/icons/IconGitlabColor.js.map +1 -1
- package/dist/icons/IconGitlabWhite.js.map +1 -1
- package/dist/icons/IconGlobe.js.map +1 -1
- package/dist/icons/IconGo.js.map +1 -1
- package/dist/icons/IconGoogleColor.js.map +1 -1
- package/dist/icons/IconGooglePlay.js.map +1 -1
- package/dist/icons/IconGooglePlayColor.js.map +1 -1
- package/dist/icons/IconGradle.js.map +1 -1
- package/dist/icons/IconGroup.js.map +1 -1
- package/dist/icons/IconHashtag.js.map +1 -1
- package/dist/icons/IconHeadset.js.map +1 -1
- package/dist/icons/IconHeart.js.map +1 -1
- package/dist/icons/IconHistory.js.map +1 -1
- package/dist/icons/IconHourglass.js.map +1 -1
- package/dist/icons/IconImage.js.map +1 -1
- package/dist/icons/IconInfoCircle.js.map +1 -1
- package/dist/icons/IconInfoCircleFilled.js.map +1 -1
- package/dist/icons/IconInsights.js.map +1 -1
- package/dist/icons/IconInsightsFilled.js.map +1 -1
- package/dist/icons/IconInstall.js.map +1 -1
- package/dist/icons/IconInteraction.js.map +1 -1
- package/dist/icons/IconInvoice.js.map +1 -1
- package/dist/icons/IconIonic.js.map +1 -1
- package/dist/icons/IconJapanese.js.map +1 -1
- package/dist/icons/IconJava.js.map +1 -1
- package/dist/icons/IconJavaColor.js.map +1 -1
- package/dist/icons/IconJavaDuke.js.map +1 -1
- package/dist/icons/IconJavaDukeColor.js.map +1 -1
- package/dist/icons/IconKey.js.map +1 -1
- package/dist/icons/IconKiroColor.js.map +1 -1
- package/dist/icons/IconKotlin.js.map +1 -1
- package/dist/icons/IconKotlinColor.js.map +1 -1
- package/dist/icons/IconKotlinWhite.js.map +1 -1
- package/dist/icons/IconLaptop.js.map +1 -1
- package/dist/icons/IconLaunchdarkly.js.map +1 -1
- package/dist/icons/IconLegacyApp.js.map +1 -1
- package/dist/icons/IconLightbulb.js.map +1 -1
- package/dist/icons/IconLink.js.map +1 -1
- package/dist/icons/IconLinux.js.map +1 -1
- package/dist/icons/IconLock.js.map +1 -1
- package/dist/icons/IconLockOpen.js.map +1 -1
- package/dist/icons/IconLogin.js.map +1 -1
- package/dist/icons/IconLogout.js.map +1 -1
- package/dist/icons/IconMacos.js.map +1 -1
- package/dist/icons/IconMagicWand.js.map +1 -1
- package/dist/icons/IconMagnifier.js.map +1 -1
- package/dist/icons/IconMail.js.map +1 -1
- package/dist/icons/IconMcp.js.map +1 -1
- package/dist/icons/IconMedal.js.map +1 -1
- package/dist/icons/IconMemory.js.map +1 -1
- package/dist/icons/IconMenuGrid.js.map +1 -1
- package/dist/icons/IconMenuHamburger.js.map +1 -1
- package/dist/icons/IconMessage.js.map +1 -1
- package/dist/icons/IconMessageAlert.js.map +1 -1
- package/dist/icons/IconMessageQuestion.js.map +1 -1
- package/dist/icons/IconMicrophone.js.map +1 -1
- package/dist/icons/IconMinus.js.map +1 -1
- package/dist/icons/IconMinusCircle.js.map +1 -1
- package/dist/icons/IconMinusCircleFilled.js.map +1 -1
- package/dist/icons/IconMobile.js.map +1 -1
- package/dist/icons/IconMobileLandscape.js.map +1 -1
- package/dist/icons/IconMonitorChart.js.map +1 -1
- package/dist/icons/IconMoreHorizontal.js.map +1 -1
- package/dist/icons/IconMoreVertical.js.map +1 -1
- package/dist/icons/IconNews.js.map +1 -1
- package/dist/icons/IconNextjs.js.map +1 -1
- package/dist/icons/IconNodejs.js.map +1 -1
- package/dist/icons/IconOpenInNew.js.map +1 -1
- package/dist/icons/IconOther.js.map +1 -1
- package/dist/icons/IconOutsideContributor.js.map +1 -1
- package/dist/icons/IconOverview.js.map +1 -1
- package/dist/icons/IconPause.js.map +1 -1
- package/dist/icons/IconPencil.js.map +1 -1
- package/dist/icons/IconPeople.js.map +1 -1
- package/dist/icons/IconPercent.js.map +1 -1
- package/dist/icons/IconPerson.js.map +1 -1
- package/dist/icons/IconPersonWithDesk.js.map +1 -1
- package/dist/icons/IconPin.js.map +1 -1
- package/dist/icons/IconPlay.js.map +1 -1
- package/dist/icons/IconPlus.js.map +1 -1
- package/dist/icons/IconPlusCircle.js.map +1 -1
- package/dist/icons/IconPlusCircleFilled.js.map +1 -1
- package/dist/icons/IconPower.js.map +1 -1
- package/dist/icons/IconProject.js.map +1 -1
- package/dist/icons/IconProjectSettings.js.map +1 -1
- package/dist/icons/IconPull.js.map +1 -1
- package/dist/icons/IconPush.js.map +1 -1
- package/dist/icons/IconPuzzle.js.map +1 -1
- package/dist/icons/IconPython.js.map +1 -1
- package/dist/icons/IconPythonColor.js.map +1 -1
- package/dist/icons/IconQuestionCircle.js.map +1 -1
- package/dist/icons/IconQuestionCircleFilled.js.map +1 -1
- package/dist/icons/IconReact.js.map +1 -1
- package/dist/icons/IconRefresh.js.map +1 -1
- package/dist/icons/IconRegex.js.map +1 -1
- package/dist/icons/IconRelease.js.map +1 -1
- package/dist/icons/IconReleaseFilled.js.map +1 -1
- package/dist/icons/IconRemoteAccess.js.map +1 -1
- package/dist/icons/IconReplace.js.map +1 -1
- package/dist/icons/IconResponsiveness.js.map +1 -1
- package/dist/icons/IconReviewerApproved.js.map +1 -1
- package/dist/icons/IconReviewerAssigned.js.map +1 -1
- package/dist/icons/IconReviewerRejected.js.map +1 -1
- package/dist/icons/IconRuby.js.map +1 -1
- package/dist/icons/IconRubyColor.js.map +1 -1
- package/dist/icons/IconSave.js.map +1 -1
- package/dist/icons/IconSecurityShield.js.map +1 -1
- package/dist/icons/IconSettings.js.map +1 -1
- package/dist/icons/IconSettingsFilled.js.map +1 -1
- package/dist/icons/IconShuffle.js.map +1 -1
- package/dist/icons/IconSiren.js.map +1 -1
- package/dist/icons/IconSkip.js.map +1 -1
- package/dist/icons/IconSkipCircle.js.map +1 -1
- package/dist/icons/IconSkipCircleFilled.js.map +1 -1
- package/dist/icons/IconSlack.js.map +1 -1
- package/dist/icons/IconSlackColor.js.map +1 -1
- package/dist/icons/IconSparkle.js.map +1 -1
- package/dist/icons/IconSparkleFilled.js.map +1 -1
- package/dist/icons/IconSpinnerOnDisabled.js.map +1 -1
- package/dist/icons/IconSpinnerPurple.js.map +1 -1
- package/dist/icons/IconSpinnerPurpleDouble.js.map +1 -1
- package/dist/icons/IconSpinnerWhite.js.map +1 -1
- package/dist/icons/IconStability.js.map +1 -1
- package/dist/icons/IconStack.js.map +1 -1
- package/dist/icons/IconStar.js.map +1 -1
- package/dist/icons/IconStep.js.map +1 -1
- package/dist/icons/IconStop.js.map +1 -1
- package/dist/icons/IconStopwatch.js.map +1 -1
- package/dist/icons/IconTabPlus.js.map +1 -1
- package/dist/icons/IconTag.js.map +1 -1
- package/dist/icons/IconTasks.js.map +1 -1
- package/dist/icons/IconTeams.js.map +1 -1
- package/dist/icons/IconTeamsColor.js.map +1 -1
- package/dist/icons/IconTemplateCode.js.map +1 -1
- package/dist/icons/IconTerminal.js.map +1 -1
- package/dist/icons/IconTerminalFilled.js.map +1 -1
- package/dist/icons/IconTestQuarantine.js.map +1 -1
- package/dist/icons/IconThemeDarkToggle.js.map +1 -1
- package/dist/icons/IconThumbDown.js.map +1 -1
- package/dist/icons/IconThumbUp.js.map +1 -1
- package/dist/icons/IconTools.js.map +1 -1
- package/dist/icons/IconTrash.js.map +1 -1
- package/dist/icons/IconTrigger.js.map +1 -1
- package/dist/icons/IconUbuntu.js.map +1 -1
- package/dist/icons/IconUbuntuColor.js.map +1 -1
- package/dist/icons/IconUnity3D.js.map +1 -1
- package/dist/icons/IconUnpin.js.map +1 -1
- package/dist/icons/IconUpload.js.map +1 -1
- package/dist/icons/IconValidateShield.js.map +1 -1
- package/dist/icons/IconVideo.js.map +1 -1
- package/dist/icons/IconVsCode.js.map +1 -1
- package/dist/icons/IconWarning.js.map +1 -1
- package/dist/icons/IconWarningYellow.js.map +1 -1
- package/dist/icons/IconWebUi.js.map +1 -1
- package/dist/icons/IconWebhooks.js.map +1 -1
- package/dist/icons/IconWindsurf.js.map +1 -1
- package/dist/icons/IconWorkflow.js.map +1 -1
- package/dist/icons/IconWorkflowFlow.js.map +1 -1
- package/dist/icons/IconXTwitter.js.map +1 -1
- package/dist/icons/IconXamarin.js.map +1 -1
- package/dist/icons/IconXcode.js.map +1 -1
- package/dist/main.js +3 -1
- package/dist/theme/recipes/UIHeaderButton.recipe.js +103 -0
- package/dist/theme/recipes/UIHeaderButton.recipe.js.map +1 -0
- package/dist/theme/recipes/index.js +3 -1
- package/dist/theme/recipes/index.js.map +1 -1
- package/dist/theme/slot-recipes/Combobox.recipe.js.map +1 -1
- package/dist/theme/slot-recipes/TextInput.recipe.js.map +1 -1
- package/dist/theme/slot-recipes/UIHeader.recipe.d.ts +3 -0
- package/dist/theme/slot-recipes/UIHeader.recipe.js +229 -0
- package/dist/theme/slot-recipes/UIHeader.recipe.js.map +1 -0
- package/dist/theme/slot-recipes/index.d.ts +1 -0
- package/dist/theme/slot-recipes/index.js +2 -0
- package/dist/theme/slot-recipes/index.js.map +1 -1
- package/dist/theme/themeUtils.d.ts +6 -0
- package/dist/theme/themeUtils.js +7 -1
- package/dist/theme/themeUtils.js.map +1 -1
- package/dist/theme/tokens/sizes.js.map +1 -1
- package/dist/theme/tokens/spacing.js.map +1 -1
- package/package.json +10 -12
- package/dist/theme/recipes/index.d.ts +0 -525
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { chakra, useRecipe } from "@chakra-ui/react/styled-system";
|
|
2
|
+
import { forwardRef } from "react";
|
|
3
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
|
+
import { Text } from "@chakra-ui/react/text";
|
|
5
|
+
//#region lib/components/BitkitUIHeader/UIHeaderButton.tsx
|
|
6
|
+
/**
|
|
7
|
+
* A labelled button in the header bar, for an action that needs more than an icon — the Ask AI
|
|
8
|
+
* entry point is the one in the design.
|
|
9
|
+
*
|
|
10
|
+
* It comes in one size: the bar is 48px tall and leaves room for nothing else.
|
|
11
|
+
*/
|
|
12
|
+
var UIHeaderButton = forwardRef((props, ref) => {
|
|
13
|
+
const { badge, children, css, icon: Icon, selected, state, suffixIcon: SuffixIcon, variant = "primary", ...rest } = props;
|
|
14
|
+
const recipe = useRecipe({ key: "uiHeaderButton" });
|
|
15
|
+
return /* @__PURE__ */ jsxs(chakra.button, {
|
|
16
|
+
ref,
|
|
17
|
+
"aria-expanded": selected === void 0 ? void 0 : selected,
|
|
18
|
+
"data-selected": selected ? "" : void 0,
|
|
19
|
+
disabled: state === "disabled",
|
|
20
|
+
type: "button",
|
|
21
|
+
...rest,
|
|
22
|
+
css: [recipe({
|
|
23
|
+
badge,
|
|
24
|
+
variant
|
|
25
|
+
}), css],
|
|
26
|
+
children: [
|
|
27
|
+
!!Icon && /* @__PURE__ */ jsx(Icon, { size: "16" }),
|
|
28
|
+
/* @__PURE__ */ jsx(Text, {
|
|
29
|
+
as: "span",
|
|
30
|
+
paddingInline: "4",
|
|
31
|
+
children
|
|
32
|
+
}),
|
|
33
|
+
!!SuffixIcon && /* @__PURE__ */ jsx(SuffixIcon, { size: "16" })
|
|
34
|
+
]
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
UIHeaderButton.displayName = "BitkitUIHeader.Button";
|
|
38
|
+
//#endregion
|
|
39
|
+
export { UIHeaderButton as default };
|
|
40
|
+
|
|
41
|
+
//# sourceMappingURL=UIHeaderButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UIHeaderButton.js","names":[],"sources":["../../../lib/components/BitkitUIHeader/UIHeaderButton.tsx"],"sourcesContent":["import { chakra, type HTMLChakraProps, useRecipe } from '@chakra-ui/react/styled-system';\nimport { Text } from '@chakra-ui/react/text';\nimport { forwardRef, type ReactNode } from 'react';\n\nimport { type BitkitIconComponent } from '../../icons';\n\nexport interface BitkitUIHeaderButtonProps extends Omit<HTMLChakraProps<'button'>, 'children' | 'disabled'> {\n /**\n * An unread marker on the button's trailing top corner. `pulse` animates it, for something that\n * has just arrived and is worth looking at now; `idle` is the same marker at rest.\n *\n * Its presence is the toggle — there is no separate boolean.\n */\n badge?: 'idle' | 'pulse';\n /** The button's label. */\n children: ReactNode;\n /** Leading icon. */\n icon?: BitkitIconComponent;\n /**\n * Marks the button as the one whose panel is open, which keeps it pressed. The consumer owns the\n * panel, so it owns this too.\n */\n selected?: boolean;\n state?: 'disabled';\n /** Trailing icon, for a button that opens a menu. */\n suffixIcon?: BitkitIconComponent;\n variant?: 'primary' | 'secondary' | 'tertiary';\n}\n\n/**\n * A labelled button in the header bar, for an action that needs more than an icon — the Ask AI\n * entry point is the one in the design.\n *\n * It comes in one size: the bar is 48px tall and leaves room for nothing else.\n */\nconst UIHeaderButton = forwardRef<HTMLButtonElement, BitkitUIHeaderButtonProps>((props, ref) => {\n const {\n badge,\n children,\n css,\n icon: Icon,\n selected,\n state,\n suffixIcon: SuffixIcon,\n variant = 'primary',\n ...rest\n } = props;\n\n const recipe = useRecipe({ key: 'uiHeaderButton' });\n\n return (\n <chakra.button\n ref={ref}\n aria-expanded={selected === undefined ? undefined : selected}\n data-selected={selected ? '' : undefined}\n disabled={state === 'disabled'}\n // An action in the header, not a form submit. Before the spread, so a consumer can still opt\n // into `type=\"submit\"`.\n type=\"button\"\n {...rest}\n css={[recipe({ badge, variant }), css]}\n >\n {!!Icon && <Icon size=\"16\" />}\n <Text as=\"span\" paddingInline=\"4\">\n {children}\n </Text>\n {!!SuffixIcon && <SuffixIcon size=\"16\" />}\n </chakra.button>\n );\n});\n\nUIHeaderButton.displayName = 'BitkitUIHeader.Button';\n\nexport default UIHeaderButton;\n"],"mappings":";;;;;;;;;;;AAmCA,IAAM,iBAAiB,YAA0D,OAAO,QAAQ;CAC9F,MAAM,EACJ,OACA,UACA,KACA,MAAM,MACN,UACA,OACA,YAAY,YACZ,UAAU,WACV,GAAG,SACD;CAEJ,MAAM,SAAS,UAAU,EAAE,KAAK,iBAAiB,CAAC;CAElD,OACE,qBAAC,OAAO,QAAR;EACO;EACL,iBAAe,aAAa,KAAA,IAAY,KAAA,IAAY;EACpD,iBAAe,WAAW,KAAK,KAAA;EAC/B,UAAU,UAAU;EAGpB,MAAK;EACL,GAAI;EACJ,KAAK,CAAC,OAAO;GAAE;GAAO;EAAQ,CAAC,GAAG,GAAG;EATvC,UAAA;GAWG,CAAC,CAAC,QAAQ,oBAAC,MAAD,EAAM,MAAK,KAAM,CAAA;GAC5B,oBAAC,MAAD;IAAM,IAAG;IAAO,eAAc;IAC3B;GACG,CAAA;GACL,CAAC,CAAC,cAAc,oBAAC,YAAD,EAAY,MAAK,KAAM,CAAA;EAC3B;;AAEnB,CAAC;AAED,eAAe,cAAc"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { SystemStyleObject } from '@chakra-ui/react/styled-system';
|
|
2
|
+
import { RefObject } from 'react';
|
|
3
|
+
export interface UIHeaderContextValue {
|
|
4
|
+
/**
|
|
5
|
+
* The bar itself, without the banner below it. The search reads it to tell a press on another
|
|
6
|
+
* control — which dismisses the open field — from one on anything the consumer rendered, whether
|
|
7
|
+
* that is elsewhere on the page or in the header's own banner.
|
|
8
|
+
*/
|
|
9
|
+
barRef: RefObject<HTMLDivElement | null>;
|
|
10
|
+
styles: Record<string, SystemStyleObject>;
|
|
11
|
+
}
|
|
12
|
+
declare const UIHeaderContextProvider: import('react').Provider<UIHeaderContextValue>, useUIHeaderContext: () => UIHeaderContextValue;
|
|
13
|
+
export { UIHeaderContextProvider, useUIHeaderContext };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { createContext } from "@chakra-ui/react";
|
|
2
|
+
//#region lib/components/BitkitUIHeader/UIHeaderContext.tsx
|
|
3
|
+
var [UIHeaderContextProvider, useUIHeaderContext] = createContext({
|
|
4
|
+
hookName: "useUIHeaderContext",
|
|
5
|
+
name: "UIHeaderContext",
|
|
6
|
+
providerName: "<BitkitUIHeader />"
|
|
7
|
+
});
|
|
8
|
+
//#endregion
|
|
9
|
+
export { UIHeaderContextProvider, useUIHeaderContext };
|
|
10
|
+
|
|
11
|
+
//# sourceMappingURL=UIHeaderContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UIHeaderContext.js","names":[],"sources":["../../../lib/components/BitkitUIHeader/UIHeaderContext.tsx"],"sourcesContent":["// eslint-disable-next-line no-restricted-imports\nimport { createContext } from '@chakra-ui/react';\nimport { type SystemStyleObject } from '@chakra-ui/react/styled-system';\nimport { type RefObject } from 'react';\n\nexport interface UIHeaderContextValue {\n /**\n * The bar itself, without the banner below it. The search reads it to tell a press on another\n * control — which dismisses the open field — from one on anything the consumer rendered, whether\n * that is elsewhere on the page or in the header's own banner.\n */\n barRef: RefObject<HTMLDivElement | null>;\n styles: Record<string, SystemStyleObject>;\n}\n\nconst [UIHeaderContextProvider, useUIHeaderContext] = createContext<UIHeaderContextValue>({\n hookName: 'useUIHeaderContext',\n name: 'UIHeaderContext',\n providerName: '<BitkitUIHeader />',\n});\n\nexport { UIHeaderContextProvider, useUIHeaderContext };\n"],"mappings":";;AAeA,IAAM,CAAC,yBAAyB,sBAAsB,cAAoC;CACxF,UAAU;CACV,MAAM;CACN,cAAc;AAChB,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { HTMLChakraProps } from '@chakra-ui/react/styled-system';
|
|
2
|
+
import { ReactNode } from 'react';
|
|
3
|
+
import { BitkitIconComponent } from '../../icons';
|
|
4
|
+
interface ControlCommonProps {
|
|
5
|
+
/**
|
|
6
|
+
* Marks the control as carrying something unread. A dot, with no count — the design draws one
|
|
7
|
+
* size of marker and nothing inside it.
|
|
8
|
+
*/
|
|
9
|
+
badge?: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* The control's accessible name. It shows no text of its own, so this is what a screen reader
|
|
12
|
+
* announces.
|
|
13
|
+
*/
|
|
14
|
+
label: string;
|
|
15
|
+
/**
|
|
16
|
+
* Marks the control as the one whose panel is open: a lighter background and an indicator along
|
|
17
|
+
* the bottom edge of the bar. The consumer owns the panel, so it owns this too.
|
|
18
|
+
*
|
|
19
|
+
* It says nothing about where the user is. A control that is a link stays a link to somewhere
|
|
20
|
+
* else, so this paints it without claiming it is the current page.
|
|
21
|
+
*/
|
|
22
|
+
selected?: boolean;
|
|
23
|
+
}
|
|
24
|
+
interface ControlBaseCommonProps extends ControlCommonProps {
|
|
25
|
+
children: ReactNode;
|
|
26
|
+
/**
|
|
27
|
+
* Which of the bar's control footprints to wear: the 48px square the icon controls and the
|
|
28
|
+
* account button share, or the wider mobile navigation button. Named around the slot it picks
|
|
29
|
+
* rather than `slot`, which is a native attribute every DOM element already takes.
|
|
30
|
+
*/
|
|
31
|
+
footprint: 'control' | 'navButton';
|
|
32
|
+
}
|
|
33
|
+
interface ControlBaseAsButtonProps extends ControlBaseCommonProps, Omit<HTMLChakraProps<'button'>, 'children' | 'disabled'> {
|
|
34
|
+
href?: undefined;
|
|
35
|
+
isExternal?: undefined;
|
|
36
|
+
}
|
|
37
|
+
interface ControlBaseAsAnchorProps extends ControlBaseCommonProps, Omit<HTMLChakraProps<'a'>, 'children'> {
|
|
38
|
+
href: string;
|
|
39
|
+
isExternal?: boolean;
|
|
40
|
+
}
|
|
41
|
+
type ControlBaseProps = ControlBaseAsButtonProps | ControlBaseAsAnchorProps;
|
|
42
|
+
/**
|
|
43
|
+
* The chrome every control in the bar shares: the hover and selected backgrounds, the unread dot,
|
|
44
|
+
* the indicator, and the choice between a button and a link. What sits inside it — an icon, an
|
|
45
|
+
* avatar — is the caller's.
|
|
46
|
+
*/
|
|
47
|
+
export declare const UIHeaderControlBase: import('react').ForwardRefExoticComponent<ControlBaseProps & import('react').RefAttributes<HTMLAnchorElement | HTMLButtonElement>>;
|
|
48
|
+
export interface BitkitUIHeaderControlAsButtonProps extends ControlCommonProps, Omit<HTMLChakraProps<'button'>, 'children' | 'disabled'> {
|
|
49
|
+
href?: undefined;
|
|
50
|
+
icon: BitkitIconComponent;
|
|
51
|
+
isExternal?: undefined;
|
|
52
|
+
}
|
|
53
|
+
export interface BitkitUIHeaderControlAsAnchorProps extends ControlCommonProps, Omit<HTMLChakraProps<'a'>, 'children'> {
|
|
54
|
+
href: string;
|
|
55
|
+
icon: BitkitIconComponent;
|
|
56
|
+
isExternal?: boolean;
|
|
57
|
+
}
|
|
58
|
+
export type BitkitUIHeaderControlProps = BitkitUIHeaderControlAsButtonProps | BitkitUIHeaderControlAsAnchorProps;
|
|
59
|
+
/**
|
|
60
|
+
* One icon button in the header bar — changelog, help, notifications, the mobile navigation
|
|
61
|
+
* opener. It is a link when given an `href` and a button otherwise.
|
|
62
|
+
*
|
|
63
|
+
* The icon carries no label of its own, so `label` is required. There is no tooltip: the design
|
|
64
|
+
* does not draw one.
|
|
65
|
+
*/
|
|
66
|
+
declare const UIHeaderControl: import('react').ForwardRefExoticComponent<BitkitUIHeaderControlProps & import('react').RefAttributes<HTMLAnchorElement | HTMLButtonElement>>;
|
|
67
|
+
export default UIHeaderControl;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { useUIHeaderContext } from "./UIHeaderContext.js";
|
|
2
|
+
import { Box } from "@chakra-ui/react/box";
|
|
3
|
+
import { chakra } from "@chakra-ui/react/styled-system";
|
|
4
|
+
import { forwardRef } from "react";
|
|
5
|
+
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
//#region lib/components/BitkitUIHeader/UIHeaderControl.tsx
|
|
7
|
+
/**
|
|
8
|
+
* The chrome every control in the bar shares: the hover and selected backgrounds, the unread dot,
|
|
9
|
+
* the indicator, and the choice between a button and a link. What sits inside it — an icon, an
|
|
10
|
+
* avatar — is the caller's.
|
|
11
|
+
*/
|
|
12
|
+
var UIHeaderControlBase = forwardRef((props, ref) => {
|
|
13
|
+
const { styles } = useUIHeaderContext();
|
|
14
|
+
const content = /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
15
|
+
props.children,
|
|
16
|
+
props.badge && /* @__PURE__ */ jsx(Box, { css: styles.badge }),
|
|
17
|
+
props.selected && /* @__PURE__ */ jsx(Box, { css: styles.indicator })
|
|
18
|
+
] });
|
|
19
|
+
if (props.href !== void 0) {
|
|
20
|
+
const { badge: _badge, children: _children, css, footprint, isExternal, label, rel, selected, target, ...anchorRest } = props;
|
|
21
|
+
return /* @__PURE__ */ jsx(chakra.a, {
|
|
22
|
+
ref,
|
|
23
|
+
"aria-label": label,
|
|
24
|
+
"data-selected": selected ? "" : void 0,
|
|
25
|
+
rel: isExternal ? rel ? `${rel} noreferrer noopener` : "noreferrer noopener" : rel,
|
|
26
|
+
target: isExternal ? "_blank" : target,
|
|
27
|
+
...anchorRest,
|
|
28
|
+
css: [styles[footprint], css],
|
|
29
|
+
children: content
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
const { badge: _badge, children: _children, css, footprint, href: _href, isExternal: _isExternal, label, selected, ...buttonRest } = props;
|
|
33
|
+
return /* @__PURE__ */ jsx(chakra.button, {
|
|
34
|
+
ref,
|
|
35
|
+
"aria-expanded": selected,
|
|
36
|
+
"aria-label": label,
|
|
37
|
+
"data-selected": selected ? "" : void 0,
|
|
38
|
+
type: "button",
|
|
39
|
+
...buttonRest,
|
|
40
|
+
css: [styles[footprint], css],
|
|
41
|
+
children: content
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
UIHeaderControlBase.displayName = "UIHeaderControlBase";
|
|
45
|
+
/**
|
|
46
|
+
* One icon button in the header bar — changelog, help, notifications, the mobile navigation
|
|
47
|
+
* opener. It is a link when given an `href` and a button otherwise.
|
|
48
|
+
*
|
|
49
|
+
* The icon carries no label of its own, so `label` is required. There is no tooltip: the design
|
|
50
|
+
* does not draw one.
|
|
51
|
+
*/
|
|
52
|
+
var UIHeaderControl = forwardRef((props, ref) => {
|
|
53
|
+
const { icon: Icon, ...rest } = props;
|
|
54
|
+
return /* @__PURE__ */ jsx(UIHeaderControlBase, {
|
|
55
|
+
ref,
|
|
56
|
+
footprint: "control",
|
|
57
|
+
...rest,
|
|
58
|
+
children: /* @__PURE__ */ jsx(Icon, {})
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
UIHeaderControl.displayName = "BitkitUIHeader.Control";
|
|
62
|
+
//#endregion
|
|
63
|
+
export { UIHeaderControlBase, UIHeaderControl as default };
|
|
64
|
+
|
|
65
|
+
//# sourceMappingURL=UIHeaderControl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UIHeaderControl.js","names":["_Fragment"],"sources":["../../../lib/components/BitkitUIHeader/UIHeaderControl.tsx"],"sourcesContent":["import { Box } from '@chakra-ui/react/box';\nimport { chakra, type HTMLChakraProps } from '@chakra-ui/react/styled-system';\nimport { forwardRef, type ReactNode, type Ref } from 'react';\n\nimport { type BitkitIconComponent } from '../../icons';\nimport { useUIHeaderContext } from './UIHeaderContext';\n\ninterface ControlCommonProps {\n /**\n * Marks the control as carrying something unread. A dot, with no count — the design draws one\n * size of marker and nothing inside it.\n */\n badge?: boolean;\n /**\n * The control's accessible name. It shows no text of its own, so this is what a screen reader\n * announces.\n */\n label: string;\n /**\n * Marks the control as the one whose panel is open: a lighter background and an indicator along\n * the bottom edge of the bar. The consumer owns the panel, so it owns this too.\n *\n * It says nothing about where the user is. A control that is a link stays a link to somewhere\n * else, so this paints it without claiming it is the current page.\n */\n selected?: boolean;\n}\n\ninterface ControlBaseCommonProps extends ControlCommonProps {\n children: ReactNode;\n /**\n * Which of the bar's control footprints to wear: the 48px square the icon controls and the\n * account button share, or the wider mobile navigation button. Named around the slot it picks\n * rather than `slot`, which is a native attribute every DOM element already takes.\n */\n footprint: 'control' | 'navButton';\n}\n\n// The bar draws no disabled control, so there is no `state` prop and no `disabled` either — a\n// control with nothing to do is one the consumer leaves out.\ninterface ControlBaseAsButtonProps\n extends ControlBaseCommonProps, Omit<HTMLChakraProps<'button'>, 'children' | 'disabled'> {\n href?: undefined;\n isExternal?: undefined;\n}\n\ninterface ControlBaseAsAnchorProps extends ControlBaseCommonProps, Omit<HTMLChakraProps<'a'>, 'children'> {\n href: string;\n isExternal?: boolean;\n}\n\ntype ControlBaseProps = ControlBaseAsButtonProps | ControlBaseAsAnchorProps;\n\n/**\n * The chrome every control in the bar shares: the hover and selected backgrounds, the unread dot,\n * the indicator, and the choice between a button and a link. What sits inside it — an icon, an\n * avatar — is the caller's.\n */\nexport const UIHeaderControlBase = forwardRef<HTMLButtonElement | HTMLAnchorElement, ControlBaseProps>((props, ref) => {\n const { styles } = useUIHeaderContext();\n\n const content = (\n <>\n {props.children}\n {props.badge && <Box css={styles.badge} />}\n {props.selected && <Box css={styles.indicator} />}\n </>\n );\n\n if (props.href !== undefined) {\n const {\n badge: _badge,\n children: _children,\n css,\n footprint,\n isExternal,\n label,\n rel,\n selected,\n target,\n ...anchorRest\n } = props;\n\n return (\n // `chakra.a` rather than `Link`, which carries a recipe of its own: a control is styled\n // entirely by the header's own slot.\n <chakra.a\n ref={ref as Ref<HTMLAnchorElement>}\n aria-label={label}\n data-selected={selected ? '' : undefined}\n rel={isExternal ? (rel ? `${rel} noreferrer noopener` : 'noreferrer noopener') : rel}\n target={isExternal ? '_blank' : target}\n {...anchorRest}\n css={[styles[footprint], css]}\n >\n {content}\n </chakra.a>\n );\n }\n\n const {\n badge: _badge,\n children: _children,\n css,\n footprint,\n href: _href,\n isExternal: _isExternal,\n label,\n selected,\n ...buttonRest\n } = props;\n\n return (\n // `chakra.button` rather than `Button`, which carries a recipe of its own: a control is styled\n // entirely by the header's own slot.\n <chakra.button\n ref={ref as Ref<HTMLButtonElement>}\n aria-expanded={selected}\n aria-label={label}\n data-selected={selected ? '' : undefined}\n // A header control is an action, not a form submit. Before the spread, so a consumer can\n // still opt into `type=\"submit\"`.\n type=\"button\"\n {...buttonRest}\n css={[styles[footprint], css]}\n >\n {content}\n </chakra.button>\n );\n});\n\nUIHeaderControlBase.displayName = 'UIHeaderControlBase';\n\nexport interface BitkitUIHeaderControlAsButtonProps\n extends ControlCommonProps, Omit<HTMLChakraProps<'button'>, 'children' | 'disabled'> {\n href?: undefined;\n icon: BitkitIconComponent;\n isExternal?: undefined;\n}\n\nexport interface BitkitUIHeaderControlAsAnchorProps extends ControlCommonProps, Omit<HTMLChakraProps<'a'>, 'children'> {\n href: string;\n icon: BitkitIconComponent;\n isExternal?: boolean;\n}\n\nexport type BitkitUIHeaderControlProps = BitkitUIHeaderControlAsButtonProps | BitkitUIHeaderControlAsAnchorProps;\n\n/**\n * One icon button in the header bar — changelog, help, notifications, the mobile navigation\n * opener. It is a link when given an `href` and a button otherwise.\n *\n * The icon carries no label of its own, so `label` is required. There is no tooltip: the design\n * does not draw one.\n */\nconst UIHeaderControl = forwardRef<HTMLButtonElement | HTMLAnchorElement, BitkitUIHeaderControlProps>((props, ref) => {\n const { icon: Icon, ...rest } = props;\n\n return (\n <UIHeaderControlBase ref={ref} footprint=\"control\" {...rest}>\n <Icon />\n </UIHeaderControlBase>\n );\n});\n\nUIHeaderControl.displayName = 'BitkitUIHeader.Control';\n\nexport default UIHeaderControl;\n"],"mappings":";;;;;;;;;;;AA0DA,IAAa,sBAAsB,YAAqE,OAAO,QAAQ;CACrH,MAAM,EAAE,WAAW,mBAAmB;CAEtC,MAAM,UACJ,qBAAAA,YAAA,EAAA,UAAA;EACG,MAAM;EACN,MAAM,SAAS,oBAAC,KAAD,EAAK,KAAK,OAAO,MAAQ,CAAA;EACxC,MAAM,YAAY,oBAAC,KAAD,EAAK,KAAK,OAAO,UAAY,CAAA;CAChD,EAAA,CAAA;CAGJ,IAAI,MAAM,SAAS,KAAA,GAAW;EAC5B,MAAM,EACJ,OAAO,QACP,UAAU,WACV,KACA,WACA,YACA,OACA,KACA,UACA,QACA,GAAG,eACD;EAEJ,OAGE,oBAAC,OAAO,GAAR;GACO;GACL,cAAY;GACZ,iBAAe,WAAW,KAAK,KAAA;GAC/B,KAAK,aAAc,MAAM,GAAG,IAAI,wBAAwB,wBAAyB;GACjF,QAAQ,aAAa,WAAW;GAChC,GAAI;GACJ,KAAK,CAAC,OAAO,YAAY,GAAG;GAE3B,UAAA;EACO,CAAA;CAEd;CAEA,MAAM,EACJ,OAAO,QACP,UAAU,WACV,KACA,WACA,MAAM,OACN,YAAY,aACZ,OACA,UACA,GAAG,eACD;CAEJ,OAGE,oBAAC,OAAO,QAAR;EACO;EACL,iBAAe;EACf,cAAY;EACZ,iBAAe,WAAW,KAAK,KAAA;EAG/B,MAAK;EACL,GAAI;EACJ,KAAK,CAAC,OAAO,YAAY,GAAG;EAE3B,UAAA;CACY,CAAA;AAEnB,CAAC;AAED,oBAAoB,cAAc;;;;;;;;AAwBlC,IAAM,kBAAkB,YAA+E,OAAO,QAAQ;CACpH,MAAM,EAAE,MAAM,MAAM,GAAG,SAAS;CAEhC,OACE,oBAAC,qBAAD;EAA0B;EAAK,WAAU;EAAU,GAAI;EACrD,UAAA,oBAAC,MAAD,CAAO,CAAA;CACY,CAAA;AAEzB,CAAC;AAED,gBAAgB,cAAc"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { HTMLChakraProps } from '@chakra-ui/react/styled-system';
|
|
2
|
+
export interface BitkitUIHeaderNavButtonProps extends Omit<HTMLChakraProps<'button'>, 'children' | 'disabled'> {
|
|
3
|
+
/** The accessible name. */
|
|
4
|
+
label?: string;
|
|
5
|
+
/** The current workspace. Shown as the avatar's initials when it has no logo. */
|
|
6
|
+
name: string;
|
|
7
|
+
/** The workspace's logo. Without one the avatar falls back to its initials. */
|
|
8
|
+
src?: string;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Opens `BitkitUISideNav` on mobile, where the navigation is a drawer rather than a rail. It sits
|
|
12
|
+
* in the header's `leading` slot, which is hidden from the `tablet` breakpoint up.
|
|
13
|
+
*
|
|
14
|
+
* The two components do not know about each other: this button's `onClick` sets the navigation's
|
|
15
|
+
* `open`, and the navigation asks to close through its own `onOpenChange`.
|
|
16
|
+
*
|
|
17
|
+
* It shows the current workspace, so switching workspaces is one tap away from anywhere.
|
|
18
|
+
*/
|
|
19
|
+
declare const UIHeaderNavButton: import('react').ForwardRefExoticComponent<BitkitUIHeaderNavButtonProps & import('react').RefAttributes<HTMLButtonElement>>;
|
|
20
|
+
export default UIHeaderNavButton;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import IconMenuHamburger from "../../icons/IconMenuHamburger.js";
|
|
2
|
+
import BitkitAvatar from "../BitkitAvatar/BitkitAvatar.js";
|
|
3
|
+
import { useUIHeaderContext } from "./UIHeaderContext.js";
|
|
4
|
+
import { UIHeaderControlBase } from "./UIHeaderControl.js";
|
|
5
|
+
import { Box } from "@chakra-ui/react/box";
|
|
6
|
+
import { forwardRef } from "react";
|
|
7
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
+
//#region lib/components/BitkitUIHeader/UIHeaderNavButton.tsx
|
|
9
|
+
/**
|
|
10
|
+
* Opens `BitkitUISideNav` on mobile, where the navigation is a drawer rather than a rail. It sits
|
|
11
|
+
* in the header's `leading` slot, which is hidden from the `tablet` breakpoint up.
|
|
12
|
+
*
|
|
13
|
+
* The two components do not know about each other: this button's `onClick` sets the navigation's
|
|
14
|
+
* `open`, and the navigation asks to close through its own `onOpenChange`.
|
|
15
|
+
*
|
|
16
|
+
* It shows the current workspace, so switching workspaces is one tap away from anywhere.
|
|
17
|
+
*/
|
|
18
|
+
var UIHeaderNavButton = forwardRef((props, ref) => {
|
|
19
|
+
const { label = "Open navigation", name, src, ...rest } = props;
|
|
20
|
+
const { styles } = useUIHeaderContext();
|
|
21
|
+
const avatarProps = src ? {
|
|
22
|
+
src,
|
|
23
|
+
variant: "image"
|
|
24
|
+
} : { variant: "letters" };
|
|
25
|
+
return /* @__PURE__ */ jsxs(UIHeaderControlBase, {
|
|
26
|
+
ref,
|
|
27
|
+
footprint: "navButton",
|
|
28
|
+
label,
|
|
29
|
+
...rest,
|
|
30
|
+
children: [/* @__PURE__ */ jsx(BitkitAvatar, {
|
|
31
|
+
name,
|
|
32
|
+
...avatarProps
|
|
33
|
+
}), /* @__PURE__ */ jsx(Box, {
|
|
34
|
+
css: styles.navButtonBadge,
|
|
35
|
+
children: /* @__PURE__ */ jsx(IconMenuHamburger, {
|
|
36
|
+
css: styles.navButtonIcon,
|
|
37
|
+
size: "16"
|
|
38
|
+
})
|
|
39
|
+
})]
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
UIHeaderNavButton.displayName = "BitkitUIHeader.NavButton";
|
|
43
|
+
//#endregion
|
|
44
|
+
export { UIHeaderNavButton as default };
|
|
45
|
+
|
|
46
|
+
//# sourceMappingURL=UIHeaderNavButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UIHeaderNavButton.js","names":[],"sources":["../../../lib/components/BitkitUIHeader/UIHeaderNavButton.tsx"],"sourcesContent":["import { Box } from '@chakra-ui/react/box';\nimport { type HTMLChakraProps } from '@chakra-ui/react/styled-system';\nimport { forwardRef } from 'react';\n\nimport { IconMenuHamburger } from '../../icons';\nimport BitkitAvatar from '../BitkitAvatar/BitkitAvatar';\nimport { useUIHeaderContext } from './UIHeaderContext';\nimport { UIHeaderControlBase } from './UIHeaderControl';\n\nexport interface BitkitUIHeaderNavButtonProps extends Omit<HTMLChakraProps<'button'>, 'children' | 'disabled'> {\n /** The accessible name. */\n label?: string;\n /** The current workspace. Shown as the avatar's initials when it has no logo. */\n name: string;\n /** The workspace's logo. Without one the avatar falls back to its initials. */\n src?: string;\n}\n\n/**\n * Opens `BitkitUISideNav` on mobile, where the navigation is a drawer rather than a rail. It sits\n * in the header's `leading` slot, which is hidden from the `tablet` breakpoint up.\n *\n * The two components do not know about each other: this button's `onClick` sets the navigation's\n * `open`, and the navigation asks to close through its own `onOpenChange`.\n *\n * It shows the current workspace, so switching workspaces is one tap away from anywhere.\n */\nconst UIHeaderNavButton = forwardRef<HTMLButtonElement, BitkitUIHeaderNavButtonProps>((props, ref) => {\n const { label = 'Open navigation', name, src, ...rest } = props;\n\n const { styles } = useUIHeaderContext();\n\n const avatarProps = src ? ({ src, variant: 'image' } as const) : ({ variant: 'letters' } as const);\n\n return (\n <UIHeaderControlBase ref={ref} footprint=\"navButton\" label={label} {...rest}>\n <BitkitAvatar name={name} {...avatarProps} />\n <Box css={styles.navButtonBadge}>\n <IconMenuHamburger css={styles.navButtonIcon} size=\"16\" />\n </Box>\n </UIHeaderControlBase>\n );\n});\n\nUIHeaderNavButton.displayName = 'BitkitUIHeader.NavButton';\n\nexport default UIHeaderNavButton;\n"],"mappings":";;;;;;;;;;;;;;;;;AA2BA,IAAM,oBAAoB,YAA6D,OAAO,QAAQ;CACpG,MAAM,EAAE,QAAQ,mBAAmB,MAAM,KAAK,GAAG,SAAS;CAE1D,MAAM,EAAE,WAAW,mBAAmB;CAEtC,MAAM,cAAc,MAAO;EAAE;EAAK,SAAS;CAAQ,IAAe,EAAE,SAAS,UAAU;CAEvF,OACE,qBAAC,qBAAD;EAA0B;EAAK,WAAU;EAAmB;EAAO,GAAI;EAAvE,UAAA,CACE,oBAAC,cAAD;GAAoB;GAAM,GAAI;EAAc,CAAA,GAC5C,oBAAC,KAAD;GAAK,KAAK,OAAO;GACf,UAAA,oBAAC,mBAAD;IAAmB,KAAK,OAAO;IAAe,MAAK;GAAM,CAAA;EACtD,CAAA,CACc;;AAEzB,CAAC;AAED,kBAAkB,cAAc"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { BoxProps } from '@chakra-ui/react/box';
|
|
2
|
+
import { Ref } from 'react';
|
|
3
|
+
export interface BitkitUIHeaderSearchProps extends Omit<BoxProps, 'children' | 'onChange'> {
|
|
4
|
+
/**
|
|
5
|
+
* The search field, for anchoring the results to it. The component owns no results list: what a
|
|
6
|
+
* search turns up differs per product, so the consumer renders its own panel against this.
|
|
7
|
+
*/
|
|
8
|
+
inputRef?: Ref<HTMLInputElement>;
|
|
9
|
+
/** The accessible name of both the button and the field. */
|
|
10
|
+
label?: string;
|
|
11
|
+
/**
|
|
12
|
+
* Called when the button is pressed, and when Escape closes the field.
|
|
13
|
+
*
|
|
14
|
+
* From `tablet` up this opens the field in place. Below it there is no inline field — the button
|
|
15
|
+
* is a plain trigger, and what it opens is the consumer's to render.
|
|
16
|
+
*/
|
|
17
|
+
onOpenChange?: (open: boolean) => void;
|
|
18
|
+
onValueChange?: (value: string) => void;
|
|
19
|
+
open?: boolean;
|
|
20
|
+
placeholder?: string;
|
|
21
|
+
/** Marks the button as the one whose panel is open. Meant for the mobile trigger. */
|
|
22
|
+
selected?: boolean;
|
|
23
|
+
value?: string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Search in the header bar: a button that opens a field lying over it, so opening the search moves
|
|
27
|
+
* nothing else in the bar.
|
|
28
|
+
*
|
|
29
|
+
* It is controlled. Hold `open` and `value` yourself, and render the results against `inputRef`.
|
|
30
|
+
*/
|
|
31
|
+
declare const UIHeaderSearch: import('react').ForwardRefExoticComponent<BitkitUIHeaderSearchProps & import('react').RefAttributes<HTMLDivElement>>;
|
|
32
|
+
export default UIHeaderSearch;
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import IconMagnifier from "../../icons/IconMagnifier.js";
|
|
2
|
+
import BitkitCloseButton from "../BitkitCloseButton/BitkitCloseButton.js";
|
|
3
|
+
import { useUIHeaderContext } from "./UIHeaderContext.js";
|
|
4
|
+
import { UIHeaderControlBase } from "./UIHeaderControl.js";
|
|
5
|
+
import { Box } from "@chakra-ui/react/box";
|
|
6
|
+
import { chakra } from "@chakra-ui/react/styled-system";
|
|
7
|
+
import { forwardRef, useEffect, useMemo, useRef } from "react";
|
|
8
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
|
+
import { useCallbackRef } from "@chakra-ui/react/hooks";
|
|
10
|
+
import { mergeRefs } from "@chakra-ui/react";
|
|
11
|
+
//#region lib/components/BitkitUIHeader/UIHeaderSearch.tsx
|
|
12
|
+
/**
|
|
13
|
+
* Search in the header bar: a button that opens a field lying over it, so opening the search moves
|
|
14
|
+
* nothing else in the bar.
|
|
15
|
+
*
|
|
16
|
+
* It is controlled. Hold `open` and `value` yourself, and render the results against `inputRef`.
|
|
17
|
+
*/
|
|
18
|
+
var UIHeaderSearch = forwardRef((props, ref) => {
|
|
19
|
+
const { css, inputRef, label = "Search", onOpenChange, onValueChange, open = false, placeholder, selected, value = "", ...rest } = props;
|
|
20
|
+
const { barRef, styles } = useUIHeaderContext();
|
|
21
|
+
const buttonElementRef = useRef(null);
|
|
22
|
+
const inputElementRef = useRef(null);
|
|
23
|
+
const searchElementRef = useRef(null);
|
|
24
|
+
const restoreFocusRef = useRef(false);
|
|
25
|
+
const setInputRef = useMemo(() => mergeRefs(inputElementRef, inputRef), [inputRef]);
|
|
26
|
+
const setSearchRef = useMemo(() => mergeRefs(searchElementRef, ref), [ref]);
|
|
27
|
+
const handleOpenChange = useCallbackRef(onOpenChange);
|
|
28
|
+
useEffect(() => {
|
|
29
|
+
if (open) {
|
|
30
|
+
inputElementRef.current?.focus();
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
if (!restoreFocusRef.current) return;
|
|
34
|
+
restoreFocusRef.current = false;
|
|
35
|
+
buttonElementRef.current?.focus();
|
|
36
|
+
}, [open]);
|
|
37
|
+
useEffect(() => {
|
|
38
|
+
if (!open) return void 0;
|
|
39
|
+
const bar = barRef.current;
|
|
40
|
+
if (!bar) return void 0;
|
|
41
|
+
const dismiss = (event) => {
|
|
42
|
+
const target = event.target instanceof Node ? event.target : null;
|
|
43
|
+
if (!target || searchElementRef.current?.contains(target)) return;
|
|
44
|
+
handleOpenChange?.(false);
|
|
45
|
+
};
|
|
46
|
+
bar.addEventListener("pointerdown", dismiss);
|
|
47
|
+
return () => bar.removeEventListener("pointerdown", dismiss);
|
|
48
|
+
}, [
|
|
49
|
+
barRef,
|
|
50
|
+
handleOpenChange,
|
|
51
|
+
open
|
|
52
|
+
]);
|
|
53
|
+
const handleKeyDown = (event) => {
|
|
54
|
+
if (event.key !== "Escape") return;
|
|
55
|
+
event.stopPropagation();
|
|
56
|
+
event.preventDefault();
|
|
57
|
+
restoreFocusRef.current = true;
|
|
58
|
+
onOpenChange?.(false);
|
|
59
|
+
};
|
|
60
|
+
const handleClear = () => {
|
|
61
|
+
onValueChange?.("");
|
|
62
|
+
inputElementRef.current?.focus();
|
|
63
|
+
};
|
|
64
|
+
return /* @__PURE__ */ jsxs(Box, {
|
|
65
|
+
ref: setSearchRef,
|
|
66
|
+
css: [styles.search, css],
|
|
67
|
+
...rest,
|
|
68
|
+
children: [/* @__PURE__ */ jsx(UIHeaderControlBase, {
|
|
69
|
+
ref: buttonElementRef,
|
|
70
|
+
css: styles.searchButton,
|
|
71
|
+
"data-open": open ? "" : void 0,
|
|
72
|
+
footprint: "control",
|
|
73
|
+
label,
|
|
74
|
+
onClick: () => onOpenChange?.(!open),
|
|
75
|
+
selected,
|
|
76
|
+
children: /* @__PURE__ */ jsx(IconMagnifier, {})
|
|
77
|
+
}), /* @__PURE__ */ jsxs(Box, {
|
|
78
|
+
css: styles.searchField,
|
|
79
|
+
"data-open": open ? "" : void 0,
|
|
80
|
+
children: [
|
|
81
|
+
/* @__PURE__ */ jsx(IconMagnifier, { css: styles.searchIcon }),
|
|
82
|
+
/* @__PURE__ */ jsx(chakra.input, {
|
|
83
|
+
ref: setInputRef,
|
|
84
|
+
"aria-label": label,
|
|
85
|
+
css: styles.searchInput,
|
|
86
|
+
onChange: (event) => onValueChange?.(event.target.value),
|
|
87
|
+
onKeyDown: handleKeyDown,
|
|
88
|
+
placeholder,
|
|
89
|
+
type: "search",
|
|
90
|
+
value
|
|
91
|
+
}),
|
|
92
|
+
!!value && /* @__PURE__ */ jsx(BitkitCloseButton, {
|
|
93
|
+
"aria-label": "Clear search",
|
|
94
|
+
colorVariant: "white",
|
|
95
|
+
css: styles.searchClear,
|
|
96
|
+
onClick: handleClear,
|
|
97
|
+
size: "sm"
|
|
98
|
+
})
|
|
99
|
+
]
|
|
100
|
+
})]
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
UIHeaderSearch.displayName = "BitkitUIHeader.Search";
|
|
104
|
+
//#endregion
|
|
105
|
+
export { UIHeaderSearch as default };
|
|
106
|
+
|
|
107
|
+
//# sourceMappingURL=UIHeaderSearch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UIHeaderSearch.js","names":[],"sources":["../../../lib/components/BitkitUIHeader/UIHeaderSearch.tsx"],"sourcesContent":["// eslint-disable-next-line no-restricted-imports\nimport { mergeRefs } from '@chakra-ui/react';\nimport { Box, type BoxProps } from '@chakra-ui/react/box';\nimport { useCallbackRef } from '@chakra-ui/react/hooks';\nimport { chakra } from '@chakra-ui/react/styled-system';\nimport { forwardRef, type KeyboardEvent, type Ref, useEffect, useMemo, useRef } from 'react';\n\nimport { IconMagnifier } from '../../icons';\nimport BitkitCloseButton from '../BitkitCloseButton/BitkitCloseButton';\nimport { useUIHeaderContext } from './UIHeaderContext';\nimport { UIHeaderControlBase } from './UIHeaderControl';\n\nexport interface BitkitUIHeaderSearchProps extends Omit<BoxProps, 'children' | 'onChange'> {\n /**\n * The search field, for anchoring the results to it. The component owns no results list: what a\n * search turns up differs per product, so the consumer renders its own panel against this.\n */\n inputRef?: Ref<HTMLInputElement>;\n /** The accessible name of both the button and the field. */\n label?: string;\n /**\n * Called when the button is pressed, and when Escape closes the field.\n *\n * From `tablet` up this opens the field in place. Below it there is no inline field — the button\n * is a plain trigger, and what it opens is the consumer's to render.\n */\n onOpenChange?: (open: boolean) => void;\n onValueChange?: (value: string) => void;\n open?: boolean;\n placeholder?: string;\n /** Marks the button as the one whose panel is open. Meant for the mobile trigger. */\n selected?: boolean;\n value?: string;\n}\n\n/**\n * Search in the header bar: a button that opens a field lying over it, so opening the search moves\n * nothing else in the bar.\n *\n * It is controlled. Hold `open` and `value` yourself, and render the results against `inputRef`.\n */\nconst UIHeaderSearch = forwardRef<HTMLDivElement, BitkitUIHeaderSearchProps>((props, ref) => {\n const {\n css,\n inputRef,\n label = 'Search',\n onOpenChange,\n onValueChange,\n open = false,\n placeholder,\n selected,\n value = '',\n ...rest\n } = props;\n\n const { barRef, styles } = useUIHeaderContext();\n\n const buttonElementRef = useRef<HTMLButtonElement>(null);\n const inputElementRef = useRef<HTMLInputElement>(null);\n const searchElementRef = useRef<HTMLDivElement>(null);\n const restoreFocusRef = useRef(false);\n const setInputRef = useMemo(() => mergeRefs(inputElementRef, inputRef), [inputRef]);\n const setSearchRef = useMemo(() => mergeRefs(searchElementRef, ref), [ref]);\n\n // The field is controlled, so `onOpenChange` is usually a fresh arrow on every keystroke. Held\n // by a ref, the dismiss listener below is subscribed once per opening rather than per character.\n const handleOpenChange = useCallbackRef(onOpenChange);\n\n // Escape hands focus back to the button that opened the field, but only once the field is closed:\n // while it is open the button is `visibility: hidden`, and a hidden element cannot take focus.\n useEffect(() => {\n if (open) {\n inputElementRef.current?.focus();\n return;\n }\n\n if (!restoreFocusRef.current) return;\n restoreFocusRef.current = false;\n buttonElementRef.current?.focus();\n }, [open]);\n\n // Reaching for another control in the bar is as much a way out of the search as Escape, so the\n // open field gives way to it. Only presses in the bar itself count: the results are the\n // consumer's to render — in the `banner` slot as readily as anywhere else — and choosing from\n // them must not close the search.\n useEffect(() => {\n if (!open) return undefined;\n\n const bar = barRef.current;\n if (!bar) return undefined;\n\n const dismiss = (event: PointerEvent) => {\n const target = event.target instanceof Node ? event.target : null;\n if (!target || searchElementRef.current?.contains(target)) return;\n handleOpenChange?.(false);\n };\n\n bar.addEventListener('pointerdown', dismiss);\n return () => bar.removeEventListener('pointerdown', dismiss);\n }, [barRef, handleOpenChange, open]);\n\n const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key !== 'Escape') return;\n event.stopPropagation();\n // A `type=\"search\"` input clears itself on Escape in Chromium, which would wipe the consumer's\n // value behind its back. Closing the field is all Escape does here.\n event.preventDefault();\n restoreFocusRef.current = true;\n onOpenChange?.(false);\n };\n\n const handleClear = () => {\n onValueChange?.('');\n inputElementRef.current?.focus();\n };\n\n return (\n <Box ref={setSearchRef} css={[styles.search, css]} {...rest}>\n <UIHeaderControlBase\n ref={buttonElementRef}\n css={styles.searchButton}\n data-open={open ? '' : undefined}\n footprint=\"control\"\n label={label}\n onClick={() => onOpenChange?.(!open)}\n selected={selected}\n >\n <IconMagnifier />\n </UIHeaderControlBase>\n <Box css={styles.searchField} data-open={open ? '' : undefined}>\n <IconMagnifier css={styles.searchIcon} />\n {/* No named primitive fits: Chakra's `Input` carries its own recipe, and this field is\n styled entirely by the header's own slot. */}\n <chakra.input\n ref={setInputRef}\n aria-label={label}\n css={styles.searchInput}\n onChange={(event) => onValueChange?.(event.target.value)}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n type=\"search\"\n value={value}\n />\n {!!value && (\n <BitkitCloseButton\n aria-label=\"Clear search\"\n colorVariant=\"white\"\n css={styles.searchClear}\n onClick={handleClear}\n size=\"sm\"\n />\n )}\n </Box>\n </Box>\n );\n});\n\nUIHeaderSearch.displayName = 'BitkitUIHeader.Search';\n\nexport default UIHeaderSearch;\n"],"mappings":";;;;;;;;;;;;;;;;;AAyCA,IAAM,iBAAiB,YAAuD,OAAO,QAAQ;CAC3F,MAAM,EACJ,KACA,UACA,QAAQ,UACR,cACA,eACA,OAAO,OACP,aACA,UACA,QAAQ,IACR,GAAG,SACD;CAEJ,MAAM,EAAE,QAAQ,WAAW,mBAAmB;CAE9C,MAAM,mBAAmB,OAA0B,IAAI;CACvD,MAAM,kBAAkB,OAAyB,IAAI;CACrD,MAAM,mBAAmB,OAAuB,IAAI;CACpD,MAAM,kBAAkB,OAAO,KAAK;CACpC,MAAM,cAAc,cAAc,UAAU,iBAAiB,QAAQ,GAAG,CAAC,QAAQ,CAAC;CAClF,MAAM,eAAe,cAAc,UAAU,kBAAkB,GAAG,GAAG,CAAC,GAAG,CAAC;CAI1E,MAAM,mBAAmB,eAAe,YAAY;CAIpD,gBAAgB;EACd,IAAI,MAAM;GACR,gBAAgB,SAAS,MAAM;GAC/B;EACF;EAEA,IAAI,CAAC,gBAAgB,SAAS;EAC9B,gBAAgB,UAAU;EAC1B,iBAAiB,SAAS,MAAM;CAClC,GAAG,CAAC,IAAI,CAAC;CAMT,gBAAgB;EACd,IAAI,CAAC,MAAM,OAAO,KAAA;EAElB,MAAM,MAAM,OAAO;EACnB,IAAI,CAAC,KAAK,OAAO,KAAA;EAEjB,MAAM,WAAW,UAAwB;GACvC,MAAM,SAAS,MAAM,kBAAkB,OAAO,MAAM,SAAS;GAC7D,IAAI,CAAC,UAAU,iBAAiB,SAAS,SAAS,MAAM,GAAG;GAC3D,mBAAmB,KAAK;EAC1B;EAEA,IAAI,iBAAiB,eAAe,OAAO;EAC3C,aAAa,IAAI,oBAAoB,eAAe,OAAO;CAC7D,GAAG;EAAC;EAAQ;EAAkB;CAAI,CAAC;CAEnC,MAAM,iBAAiB,UAA2C;EAChE,IAAI,MAAM,QAAQ,UAAU;EAC5B,MAAM,gBAAgB;EAGtB,MAAM,eAAe;EACrB,gBAAgB,UAAU;EAC1B,eAAe,KAAK;CACtB;CAEA,MAAM,oBAAoB;EACxB,gBAAgB,EAAE;EAClB,gBAAgB,SAAS,MAAM;CACjC;CAEA,OACE,qBAAC,KAAD;EAAK,KAAK;EAAc,KAAK,CAAC,OAAO,QAAQ,GAAG;EAAG,GAAI;EAAvD,UAAA,CACE,oBAAC,qBAAD;GACE,KAAK;GACL,KAAK,OAAO;GACZ,aAAW,OAAO,KAAK,KAAA;GACvB,WAAU;GACH;GACP,eAAe,eAAe,CAAC,IAAI;GACzB;GAEV,UAAA,oBAAC,eAAD,CAAgB,CAAA;EACG,CAAA,GACrB,qBAAC,KAAD;GAAK,KAAK,OAAO;GAAa,aAAW,OAAO,KAAK,KAAA;GAArD,UAAA;IACE,oBAAC,eAAD,EAAe,KAAK,OAAO,WAAa,CAAA;IAGxC,oBAAC,OAAO,OAAR;KACE,KAAK;KACL,cAAY;KACZ,KAAK,OAAO;KACZ,WAAW,UAAU,gBAAgB,MAAM,OAAO,KAAK;KACvD,WAAW;KACE;KACb,MAAK;KACE;IACR,CAAA;IACA,CAAC,CAAC,SACD,oBAAC,mBAAD;KACE,cAAW;KACX,cAAa;KACb,KAAK,OAAO;KACZ,SAAS;KACT,MAAK;IACN,CAAA;GAEA;EACF,CAAA,CAAA;;AAET,CAAC;AAED,eAAe,cAAc"}
|
|
@@ -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,
|
|
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,
|
|
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"}
|
|
@@ -94,5 +94,6 @@ export { default as BitkitToggletip, type BitkitToggletipProps } from './BitkitT
|
|
|
94
94
|
export { default as BitkitTooltip, type BitkitTooltipProps } from './BitkitTooltip/BitkitTooltip';
|
|
95
95
|
export { default as BitkitTour, type BitkitTourInstance, type BitkitTourOptions, type BitkitTourProps, type BitkitTourSecondaryAction, type BitkitTourStep, useBitkitTour, } from './BitkitTour/BitkitTour';
|
|
96
96
|
export { default as BitkitTreeView, type BitkitTreeViewBranchProps, type BitkitTreeViewExpandedChangeDetails, type BitkitTreeViewLeafProps, type BitkitTreeViewNodeRenderProps, type BitkitTreeViewRootProps, type BitkitTreeViewSelectionChangeDetails, createTreeCollection, } from './BitkitTreeView/BitkitTreeView';
|
|
97
|
+
export { default as BitkitUIHeader, type BitkitUIHeaderAccountProps, type BitkitUIHeaderButtonProps, type BitkitUIHeaderControlAsAnchorProps, type BitkitUIHeaderControlAsButtonProps, type BitkitUIHeaderControlProps, type BitkitUIHeaderNavButtonProps, type BitkitUIHeaderProps, type BitkitUIHeaderSearchProps, uiHeaderHeight, } from './BitkitUIHeader/BitkitUIHeader';
|
|
97
98
|
export { default as BitkitUISideNav, type BitkitUISideNavBodyProps, type BitkitUISideNavFooterHeadingProps, type BitkitUISideNavFooterProps, type BitkitUISideNavItemProps, type BitkitUISideNavLinkAsAnchorProps, type BitkitUISideNavLinkAsButtonProps, type BitkitUISideNavLinkProps, type BitkitUISideNavProps, type BitkitUISideNavWorkspaceProps, type BitkitUISideNavWorkspaceSelectorProps, uiSideNavRailWidth, } from './BitkitUISideNav/BitkitUISideNav';
|
|
98
99
|
export { useUISideNav } from './BitkitUISideNav/UISideNavContext';
|
|
@@ -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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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"}
|