@bitrise/bitkit-v2 0.3.475-beta.3014 → 0.3.476

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (445) hide show
  1. package/README.md +5 -6
  2. package/dist/atoms/DatePicker/DatePicker.js.map +1 -1
  3. package/dist/atoms/ImageCropper/ImageCropper.js.map +1 -1
  4. package/dist/components/BitkitActionMenu/BitkitActionMenu.js.map +1 -1
  5. package/dist/components/BitkitAvatar/BitkitAvatar.js.map +1 -1
  6. package/dist/components/BitkitButton/BitkitButton.js.map +1 -1
  7. package/dist/components/BitkitCalendar/BitkitCalendar.d.ts +0 -12
  8. package/dist/components/BitkitCalendar/BitkitCalendar.js +1 -7
  9. package/dist/components/BitkitCalendar/BitkitCalendar.js.map +1 -1
  10. package/dist/components/BitkitCalendar/components/CalendarContent.d.ts +1 -5
  11. package/dist/components/BitkitCalendar/components/CalendarContent.js +43 -60
  12. package/dist/components/BitkitCalendar/components/CalendarContent.js.map +1 -1
  13. package/dist/components/BitkitCalendar/components/CalendarMonth.d.ts +2 -4
  14. package/dist/components/BitkitCalendar/components/CalendarMonth.js +5 -15
  15. package/dist/components/BitkitCalendar/components/CalendarMonth.js.map +1 -1
  16. package/dist/components/BitkitCalendar/components/CalendarMonthSelect.d.ts +1 -2
  17. package/dist/components/BitkitCalendar/components/CalendarMonthSelect.js +2 -3
  18. package/dist/components/BitkitCalendar/components/CalendarMonthSelect.js.map +1 -1
  19. package/dist/components/BitkitCalendar/components/CalendarNextTrigger.d.ts +1 -3
  20. package/dist/components/BitkitCalendar/components/CalendarNextTrigger.js +3 -3
  21. package/dist/components/BitkitCalendar/components/CalendarNextTrigger.js.map +1 -1
  22. package/dist/components/BitkitCalendar/components/CalendarPrevTrigger.d.ts +1 -3
  23. package/dist/components/BitkitCalendar/components/CalendarPrevTrigger.js +3 -3
  24. package/dist/components/BitkitCalendar/components/CalendarPrevTrigger.js.map +1 -1
  25. package/dist/components/BitkitCalendar/components/CalendarSelect.d.ts +0 -1
  26. package/dist/components/BitkitCalendar/components/CalendarSelect.js +2 -4
  27. package/dist/components/BitkitCalendar/components/CalendarSelect.js.map +1 -1
  28. package/dist/components/BitkitCalendar/components/CalendarYearSelect.d.ts +1 -2
  29. package/dist/components/BitkitCalendar/components/CalendarYearSelect.js +2 -3
  30. package/dist/components/BitkitCalendar/components/CalendarYearSelect.js.map +1 -1
  31. package/dist/components/BitkitCollapsible/BitkitCollapsible.js.map +1 -1
  32. package/dist/components/BitkitColorButton/BitkitColorButton.js.map +1 -1
  33. package/dist/components/BitkitDatePicker/BitkitDatePicker.d.ts +0 -2
  34. package/dist/components/BitkitDatePicker/BitkitDatePicker.js +1 -2
  35. package/dist/components/BitkitDatePicker/BitkitDatePicker.js.map +1 -1
  36. package/dist/components/BitkitDialog/BitkitStepsDialog.js.map +1 -1
  37. package/dist/components/BitkitDialog/BitkitStepsDialogStep.js.map +1 -1
  38. package/dist/components/BitkitDialog/DialogBodyContext.js.map +1 -1
  39. package/dist/components/BitkitExpandableCard/BitkitExpandableCard.js.map +1 -1
  40. package/dist/components/BitkitFileInput/BitkitFileInput.js.map +1 -1
  41. package/dist/components/BitkitIconButton/BitkitIconButton.js.map +1 -1
  42. package/dist/components/BitkitLabeledData/BitkitLabeledData.js.map +1 -1
  43. package/dist/components/BitkitList/BitkitList.js.map +1 -1
  44. package/dist/components/BitkitMarkdown/BitkitMarkdown.js +1 -1
  45. package/dist/components/BitkitMarkdown/BitkitMarkdown.js.map +1 -1
  46. package/dist/components/BitkitMarkdownCard/BitkitMarkdownCard.js.map +1 -1
  47. package/dist/components/BitkitMultiselect/BitkitMultiselect.js.map +1 -1
  48. package/dist/components/BitkitNoteCard/BitkitNoteCard.js +1 -1
  49. package/dist/components/BitkitNoteCard/BitkitNoteCard.js.map +1 -1
  50. package/dist/components/BitkitOverflowContent/BitkitOverflowContent.js.map +1 -1
  51. package/dist/components/BitkitPageSidebar/BitkitPageSidebar.js.map +1 -1
  52. package/dist/components/BitkitPagination/BitkitPagination.js.map +1 -1
  53. package/dist/components/BitkitPaginationLoadMore/BitkitPaginationLoadMore.js.map +1 -1
  54. package/dist/components/BitkitPopover/BitkitPopover.js.map +1 -1
  55. package/dist/components/BitkitPromoBanner/BitkitPromoBanner.js.map +1 -1
  56. package/dist/components/BitkitSegmentedControl/BitkitSegmentedControl.js.map +1 -1
  57. package/dist/components/BitkitSelectMenu/BitkitSelectMenuAction.js.map +1 -1
  58. package/dist/components/BitkitSettingsCard/BitkitSettingsCard.js.map +1 -1
  59. package/dist/components/BitkitSplitButton/BitkitSplitButton.js.map +1 -1
  60. package/dist/components/BitkitStat/BitkitStat.js.map +1 -1
  61. package/dist/components/BitkitStepsCard/BitkitStepsCard.js.map +1 -1
  62. package/dist/components/BitkitTable/BitkitExpandableRow.js.map +1 -1
  63. package/dist/components/BitkitTable/BitkitRowActionsCell.js.map +1 -1
  64. package/dist/components/BitkitTable/BitkitSortableColumnHeader.js.map +1 -1
  65. package/dist/components/BitkitTabs/BitkitTabs.js.map +1 -1
  66. package/dist/components/BitkitToggletip/BitkitToggletip.js.map +1 -1
  67. package/dist/components/BitkitTour/BitkitTour.js.map +1 -1
  68. package/dist/components/BitkitTreeView/BitkitTreeView.js.map +1 -1
  69. package/dist/components/BitkitUISideNav/UISideNavLink.js.map +1 -1
  70. package/dist/components/common/NotificationContent.js.map +1 -1
  71. package/dist/components/index.d.ts +0 -6
  72. package/dist/icons/IconAbortCircle.js.map +1 -1
  73. package/dist/icons/IconAbortCircleFilled.js.map +1 -1
  74. package/dist/icons/IconAddons.js.map +1 -1
  75. package/dist/icons/IconAgent.js.map +1 -1
  76. package/dist/icons/IconAnchor.js.map +1 -1
  77. package/dist/icons/IconAndroid.js.map +1 -1
  78. package/dist/icons/IconApp.js.map +1 -1
  79. package/dist/icons/IconAppSettings.js.map +1 -1
  80. package/dist/icons/IconAppStore.js.map +1 -1
  81. package/dist/icons/IconAppStoreColor.js.map +1 -1
  82. package/dist/icons/IconApple.js.map +1 -1
  83. package/dist/icons/IconArchive.js.map +1 -1
  84. package/dist/icons/IconArchiveDelete.js.map +1 -1
  85. package/dist/icons/IconArchiveRestore.js.map +1 -1
  86. package/dist/icons/IconArrowBackAndDown.js.map +1 -1
  87. package/dist/icons/IconArrowBackAndUp.js.map +1 -1
  88. package/dist/icons/IconArrowDown.js.map +1 -1
  89. package/dist/icons/IconArrowForwardAndDown.js.map +1 -1
  90. package/dist/icons/IconArrowForwardAndUp.js.map +1 -1
  91. package/dist/icons/IconArrowLeft.js.map +1 -1
  92. package/dist/icons/IconArrowNortheast.js.map +1 -1
  93. package/dist/icons/IconArrowNorthwest.js.map +1 -1
  94. package/dist/icons/IconArrowRight.js.map +1 -1
  95. package/dist/icons/IconArrowUp.js.map +1 -1
  96. package/dist/icons/IconArrowsHorizontal.js.map +1 -1
  97. package/dist/icons/IconArrowsVertical.js.map +1 -1
  98. package/dist/icons/IconAutomation.js.map +1 -1
  99. package/dist/icons/IconAws.js.map +1 -1
  100. package/dist/icons/IconAwsColor.js.map +1 -1
  101. package/dist/icons/IconBadge3RdParty.js.map +1 -1
  102. package/dist/icons/IconBadgeBitrise.js.map +1 -1
  103. package/dist/icons/IconBadgeUpgrade.js.map +1 -1
  104. package/dist/icons/IconBadgeVersionOk.js.map +1 -1
  105. package/dist/icons/IconBazel.js.map +1 -1
  106. package/dist/icons/IconBell.js.map +1 -1
  107. package/dist/icons/IconBitbot.js.map +1 -1
  108. package/dist/icons/IconBitbotError.js.map +1 -1
  109. package/dist/icons/IconBitbucket.js.map +1 -1
  110. package/dist/icons/IconBitbucketColor.js.map +1 -1
  111. package/dist/icons/IconBitbucketNeutral.js.map +1 -1
  112. package/dist/icons/IconBitbucketWhite.js.map +1 -1
  113. package/dist/icons/IconBlockCircle.js.map +1 -1
  114. package/dist/icons/IconBook.js.map +1 -1
  115. package/dist/icons/IconBoxArrowDown.js.map +1 -1
  116. package/dist/icons/IconBoxDot.js.map +1 -1
  117. package/dist/icons/IconBoxLinesOverflow.js.map +1 -1
  118. package/dist/icons/IconBoxLinesWrap.js.map +1 -1
  119. package/dist/icons/IconBranch.js.map +1 -1
  120. package/dist/icons/IconBrowserstackColor.js.map +1 -1
  121. package/dist/icons/IconBug.js.map +1 -1
  122. package/dist/icons/IconBuild.js.map +1 -1
  123. package/dist/icons/IconBuildCache.js.map +1 -1
  124. package/dist/icons/IconBuildCacheFilled.js.map +1 -1
  125. package/dist/icons/IconBuildEnvSetup.js.map +1 -1
  126. package/dist/icons/IconBuildHub.js.map +1 -1
  127. package/dist/icons/IconBuildHubFilled.js.map +1 -1
  128. package/dist/icons/IconCalendar.js.map +1 -1
  129. package/dist/icons/IconChangePlan.js.map +1 -1
  130. package/dist/icons/IconChat.js.map +1 -1
  131. package/dist/icons/IconCheck.js.map +1 -1
  132. package/dist/icons/IconCheckCircle.js.map +1 -1
  133. package/dist/icons/IconCheckCircleFilled.js.map +1 -1
  134. package/dist/icons/IconChevronDown.js.map +1 -1
  135. package/dist/icons/IconChevronLeft.js.map +1 -1
  136. package/dist/icons/IconChevronRight.js.map +1 -1
  137. package/dist/icons/IconChevronUp.js.map +1 -1
  138. package/dist/icons/IconCi.js.map +1 -1
  139. package/dist/icons/IconCiFilled.js.map +1 -1
  140. package/dist/icons/IconCircle.js.map +1 -1
  141. package/dist/icons/IconCircleDashed.js.map +1 -1
  142. package/dist/icons/IconCircleHalfFilled.js.map +1 -1
  143. package/dist/icons/IconClaude.js.map +1 -1
  144. package/dist/icons/IconClaudeColor.js.map +1 -1
  145. package/dist/icons/IconClock.js.map +1 -1
  146. package/dist/icons/IconCode.js.map +1 -1
  147. package/dist/icons/IconCodePush.js.map +1 -1
  148. package/dist/icons/IconCodeSigning.js.map +1 -1
  149. package/dist/icons/IconCoffee.js.map +1 -1
  150. package/dist/icons/IconCommit.js.map +1 -1
  151. package/dist/icons/IconConfigure.js.map +1 -1
  152. package/dist/icons/IconConnectedAccounts.js.map +1 -1
  153. package/dist/icons/IconContainer.js.map +1 -1
  154. package/dist/icons/IconCopilot.js.map +1 -1
  155. package/dist/icons/IconCopy.js.map +1 -1
  156. package/dist/icons/IconCordova.js.map +1 -1
  157. package/dist/icons/IconCpu.js.map +1 -1
  158. package/dist/icons/IconCreditcard.js.map +1 -1
  159. package/dist/icons/IconCredits.js.map +1 -1
  160. package/dist/icons/IconCross.js.map +1 -1
  161. package/dist/icons/IconCrossCircle.js.map +1 -1
  162. package/dist/icons/IconCrossCircleFilled.js.map +1 -1
  163. package/dist/icons/IconCrown.js.map +1 -1
  164. package/dist/icons/IconCursor.js.map +1 -1
  165. package/dist/icons/IconCycle.js.map +1 -1
  166. package/dist/icons/IconDashboard.js.map +1 -1
  167. package/dist/icons/IconDashboardFilled.js.map +1 -1
  168. package/dist/icons/IconDeployment.js.map +1 -1
  169. package/dist/icons/IconDetails.js.map +1 -1
  170. package/dist/icons/IconDoc.js.map +1 -1
  171. package/dist/icons/IconDollar.js.map +1 -1
  172. package/dist/icons/IconDot.js.map +1 -1
  173. package/dist/icons/IconDotnet.js.map +1 -1
  174. package/dist/icons/IconDotnetColor.js.map +1 -1
  175. package/dist/icons/IconDotnetText.js.map +1 -1
  176. package/dist/icons/IconDotnetTextColor.js.map +1 -1
  177. package/dist/icons/IconDoubleCircle.js.map +1 -1
  178. package/dist/icons/IconDownload.js.map +1 -1
  179. package/dist/icons/IconDragHandle.js.map +1 -1
  180. package/dist/icons/IconEc2Ami.js.map +1 -1
  181. package/dist/icons/IconEnterprise.js.map +1 -1
  182. package/dist/icons/IconErrorCircle.js.map +1 -1
  183. package/dist/icons/IconErrorCircleFilled.js.map +1 -1
  184. package/dist/icons/IconExpand.js.map +1 -1
  185. package/dist/icons/IconExtraBuildCapacity.js.map +1 -1
  186. package/dist/icons/IconEye.js.map +1 -1
  187. package/dist/icons/IconEyeSlash.js.map +1 -1
  188. package/dist/icons/IconFastlane.js.map +1 -1
  189. package/dist/icons/IconFile.js.map +1 -1
  190. package/dist/icons/IconFileDoc.js.map +1 -1
  191. package/dist/icons/IconFilePdf.js.map +1 -1
  192. package/dist/icons/IconFilePlist.js.map +1 -1
  193. package/dist/icons/IconFileYml.js.map +1 -1
  194. package/dist/icons/IconFileZip.js.map +1 -1
  195. package/dist/icons/IconFilter.js.map +1 -1
  196. package/dist/icons/IconFlag.js.map +1 -1
  197. package/dist/icons/IconFlutter.js.map +1 -1
  198. package/dist/icons/IconFolder.js.map +1 -1
  199. package/dist/icons/IconFullscreen.js.map +1 -1
  200. package/dist/icons/IconFullscreenExit.js.map +1 -1
  201. package/dist/icons/IconGauge.js.map +1 -1
  202. package/dist/icons/IconGit.js.map +1 -1
  203. package/dist/icons/IconGithub.js.map +1 -1
  204. package/dist/icons/IconGitlab.js.map +1 -1
  205. package/dist/icons/IconGitlabColor.js.map +1 -1
  206. package/dist/icons/IconGitlabWhite.js.map +1 -1
  207. package/dist/icons/IconGlobe.js.map +1 -1
  208. package/dist/icons/IconGo.js.map +1 -1
  209. package/dist/icons/IconGoogleColor.js.map +1 -1
  210. package/dist/icons/IconGooglePlay.js.map +1 -1
  211. package/dist/icons/IconGooglePlayColor.js.map +1 -1
  212. package/dist/icons/IconGradle.js.map +1 -1
  213. package/dist/icons/IconGroup.js.map +1 -1
  214. package/dist/icons/IconHashtag.js.map +1 -1
  215. package/dist/icons/IconHeadset.js.map +1 -1
  216. package/dist/icons/IconHeart.js.map +1 -1
  217. package/dist/icons/IconHistory.js.map +1 -1
  218. package/dist/icons/IconHourglass.js.map +1 -1
  219. package/dist/icons/IconImage.js.map +1 -1
  220. package/dist/icons/IconInfoCircle.js.map +1 -1
  221. package/dist/icons/IconInfoCircleFilled.js.map +1 -1
  222. package/dist/icons/IconInsights.js.map +1 -1
  223. package/dist/icons/IconInsightsFilled.js.map +1 -1
  224. package/dist/icons/IconInstall.js.map +1 -1
  225. package/dist/icons/IconInteraction.js.map +1 -1
  226. package/dist/icons/IconInvoice.js.map +1 -1
  227. package/dist/icons/IconIonic.js.map +1 -1
  228. package/dist/icons/IconJapanese.js.map +1 -1
  229. package/dist/icons/IconJava.js.map +1 -1
  230. package/dist/icons/IconJavaColor.js.map +1 -1
  231. package/dist/icons/IconJavaDuke.js.map +1 -1
  232. package/dist/icons/IconJavaDukeColor.js.map +1 -1
  233. package/dist/icons/IconKey.js.map +1 -1
  234. package/dist/icons/IconKiroColor.js.map +1 -1
  235. package/dist/icons/IconKotlin.js.map +1 -1
  236. package/dist/icons/IconKotlinColor.js.map +1 -1
  237. package/dist/icons/IconKotlinWhite.js.map +1 -1
  238. package/dist/icons/IconLaptop.js.map +1 -1
  239. package/dist/icons/IconLaunchdarkly.js.map +1 -1
  240. package/dist/icons/IconLegacyApp.js.map +1 -1
  241. package/dist/icons/IconLightbulb.js.map +1 -1
  242. package/dist/icons/IconLink.js.map +1 -1
  243. package/dist/icons/IconLinux.js.map +1 -1
  244. package/dist/icons/IconLock.js.map +1 -1
  245. package/dist/icons/IconLockOpen.js.map +1 -1
  246. package/dist/icons/IconLogin.js.map +1 -1
  247. package/dist/icons/IconLogout.js.map +1 -1
  248. package/dist/icons/IconMacos.js.map +1 -1
  249. package/dist/icons/IconMagicWand.js.map +1 -1
  250. package/dist/icons/IconMagnifier.js.map +1 -1
  251. package/dist/icons/IconMail.js.map +1 -1
  252. package/dist/icons/IconMcp.js.map +1 -1
  253. package/dist/icons/IconMedal.js.map +1 -1
  254. package/dist/icons/IconMemory.js.map +1 -1
  255. package/dist/icons/IconMenuGrid.js.map +1 -1
  256. package/dist/icons/IconMenuHamburger.js.map +1 -1
  257. package/dist/icons/IconMessage.js.map +1 -1
  258. package/dist/icons/IconMessageAlert.js.map +1 -1
  259. package/dist/icons/IconMessageQuestion.js.map +1 -1
  260. package/dist/icons/IconMicrophone.js.map +1 -1
  261. package/dist/icons/IconMinus.js.map +1 -1
  262. package/dist/icons/IconMinusCircle.js.map +1 -1
  263. package/dist/icons/IconMinusCircleFilled.js.map +1 -1
  264. package/dist/icons/IconMobile.js.map +1 -1
  265. package/dist/icons/IconMobileLandscape.js.map +1 -1
  266. package/dist/icons/IconMonitorChart.js.map +1 -1
  267. package/dist/icons/IconMoreHorizontal.js.map +1 -1
  268. package/dist/icons/IconMoreVertical.js.map +1 -1
  269. package/dist/icons/IconNews.js.map +1 -1
  270. package/dist/icons/IconNextjs.js.map +1 -1
  271. package/dist/icons/IconNodejs.js.map +1 -1
  272. package/dist/icons/IconOpenInNew.js.map +1 -1
  273. package/dist/icons/IconOther.js.map +1 -1
  274. package/dist/icons/IconOutsideContributor.js.map +1 -1
  275. package/dist/icons/IconOverview.js.map +1 -1
  276. package/dist/icons/IconPause.js.map +1 -1
  277. package/dist/icons/IconPencil.js.map +1 -1
  278. package/dist/icons/IconPeople.js.map +1 -1
  279. package/dist/icons/IconPercent.js.map +1 -1
  280. package/dist/icons/IconPerson.js.map +1 -1
  281. package/dist/icons/IconPersonWithDesk.js.map +1 -1
  282. package/dist/icons/IconPin.js.map +1 -1
  283. package/dist/icons/IconPlay.js.map +1 -1
  284. package/dist/icons/IconPlus.js.map +1 -1
  285. package/dist/icons/IconPlusCircle.js.map +1 -1
  286. package/dist/icons/IconPlusCircleFilled.js.map +1 -1
  287. package/dist/icons/IconPower.js.map +1 -1
  288. package/dist/icons/IconProject.js.map +1 -1
  289. package/dist/icons/IconProjectSettings.js.map +1 -1
  290. package/dist/icons/IconPull.js.map +1 -1
  291. package/dist/icons/IconPush.js.map +1 -1
  292. package/dist/icons/IconPuzzle.js.map +1 -1
  293. package/dist/icons/IconPython.js.map +1 -1
  294. package/dist/icons/IconPythonColor.js.map +1 -1
  295. package/dist/icons/IconQuestionCircle.js.map +1 -1
  296. package/dist/icons/IconQuestionCircleFilled.js.map +1 -1
  297. package/dist/icons/IconReact.js.map +1 -1
  298. package/dist/icons/IconRefresh.js.map +1 -1
  299. package/dist/icons/IconRegex.js.map +1 -1
  300. package/dist/icons/IconRelease.js.map +1 -1
  301. package/dist/icons/IconReleaseFilled.js.map +1 -1
  302. package/dist/icons/IconRemoteAccess.js.map +1 -1
  303. package/dist/icons/IconReplace.js.map +1 -1
  304. package/dist/icons/IconResponsiveness.js.map +1 -1
  305. package/dist/icons/IconReviewerApproved.js.map +1 -1
  306. package/dist/icons/IconReviewerAssigned.js.map +1 -1
  307. package/dist/icons/IconReviewerRejected.js.map +1 -1
  308. package/dist/icons/IconRuby.js.map +1 -1
  309. package/dist/icons/IconRubyColor.js.map +1 -1
  310. package/dist/icons/IconSave.js.map +1 -1
  311. package/dist/icons/IconSecurityShield.js.map +1 -1
  312. package/dist/icons/IconSettings.js.map +1 -1
  313. package/dist/icons/IconSettingsFilled.js.map +1 -1
  314. package/dist/icons/IconShuffle.js.map +1 -1
  315. package/dist/icons/IconSiren.js.map +1 -1
  316. package/dist/icons/IconSkip.js.map +1 -1
  317. package/dist/icons/IconSkipCircle.js.map +1 -1
  318. package/dist/icons/IconSkipCircleFilled.js.map +1 -1
  319. package/dist/icons/IconSlack.js.map +1 -1
  320. package/dist/icons/IconSlackColor.js.map +1 -1
  321. package/dist/icons/IconSparkle.js.map +1 -1
  322. package/dist/icons/IconSparkleFilled.js.map +1 -1
  323. package/dist/icons/IconSpinnerOnDisabled.js.map +1 -1
  324. package/dist/icons/IconSpinnerPurple.js.map +1 -1
  325. package/dist/icons/IconSpinnerPurpleDouble.js.map +1 -1
  326. package/dist/icons/IconSpinnerWhite.js.map +1 -1
  327. package/dist/icons/IconStability.js.map +1 -1
  328. package/dist/icons/IconStack.js.map +1 -1
  329. package/dist/icons/IconStar.js.map +1 -1
  330. package/dist/icons/IconStep.js.map +1 -1
  331. package/dist/icons/IconStop.js.map +1 -1
  332. package/dist/icons/IconStopwatch.js.map +1 -1
  333. package/dist/icons/IconTabPlus.js.map +1 -1
  334. package/dist/icons/IconTag.js.map +1 -1
  335. package/dist/icons/IconTasks.js.map +1 -1
  336. package/dist/icons/IconTeams.js.map +1 -1
  337. package/dist/icons/IconTeamsColor.js.map +1 -1
  338. package/dist/icons/IconTemplateCode.js.map +1 -1
  339. package/dist/icons/IconTerminal.js.map +1 -1
  340. package/dist/icons/IconTerminalFilled.js.map +1 -1
  341. package/dist/icons/IconTestQuarantine.js.map +1 -1
  342. package/dist/icons/IconThemeDarkToggle.js.map +1 -1
  343. package/dist/icons/IconThumbDown.js.map +1 -1
  344. package/dist/icons/IconThumbUp.js.map +1 -1
  345. package/dist/icons/IconTools.js.map +1 -1
  346. package/dist/icons/IconTrash.js.map +1 -1
  347. package/dist/icons/IconTrigger.js.map +1 -1
  348. package/dist/icons/IconUbuntu.js.map +1 -1
  349. package/dist/icons/IconUbuntuColor.js.map +1 -1
  350. package/dist/icons/IconUnity3D.js.map +1 -1
  351. package/dist/icons/IconUnpin.js.map +1 -1
  352. package/dist/icons/IconUpload.js.map +1 -1
  353. package/dist/icons/IconValidateShield.js.map +1 -1
  354. package/dist/icons/IconVideo.js.map +1 -1
  355. package/dist/icons/IconVsCode.js.map +1 -1
  356. package/dist/icons/IconWarning.js.map +1 -1
  357. package/dist/icons/IconWarningYellow.js.map +1 -1
  358. package/dist/icons/IconWebUi.js.map +1 -1
  359. package/dist/icons/IconWebhooks.js.map +1 -1
  360. package/dist/icons/IconWindsurf.js.map +1 -1
  361. package/dist/icons/IconWorkflow.js.map +1 -1
  362. package/dist/icons/IconWorkflowFlow.js.map +1 -1
  363. package/dist/icons/IconXTwitter.js.map +1 -1
  364. package/dist/icons/IconXamarin.js.map +1 -1
  365. package/dist/icons/IconXcode.js.map +1 -1
  366. package/dist/main.js +7 -8
  367. package/dist/theme/recipes/Spinner.recipe.d.ts +4 -4
  368. package/dist/theme/recipes/Spinner.recipe.js +4 -4
  369. package/dist/theme/recipes/Spinner.recipe.js.map +1 -1
  370. package/dist/theme/recipes/index.d.ts +4 -4
  371. package/dist/theme/semantic-tokens/index.d.ts +5 -0
  372. package/dist/theme/semantic-tokens/semanticColors.d.ts +5 -0
  373. package/dist/theme/semantic-tokens/semanticColors.js +1 -0
  374. package/dist/theme/semantic-tokens/semanticColors.js.map +1 -1
  375. package/dist/theme/slot-recipes/Combobox.recipe.js.map +1 -1
  376. package/dist/theme/slot-recipes/DatePicker.recipe.d.ts +0 -15
  377. package/dist/theme/slot-recipes/DatePicker.recipe.js +22 -72
  378. package/dist/theme/slot-recipes/DatePicker.recipe.js.map +1 -1
  379. package/dist/theme/slot-recipes/DatePickerSelect.recipe.d.ts +0 -82
  380. package/dist/theme/slot-recipes/DatePickerSelect.recipe.js +10 -28
  381. package/dist/theme/slot-recipes/DatePickerSelect.recipe.js.map +1 -1
  382. package/dist/theme/slot-recipes/Menu.recipe.js +1 -6
  383. package/dist/theme/slot-recipes/Menu.recipe.js.map +1 -1
  384. package/dist/theme/slot-recipes/NoteCard.recipe.d.ts +1 -1
  385. package/dist/theme/slot-recipes/NoteCard.recipe.js +1 -1
  386. package/dist/theme/slot-recipes/NoteCard.recipe.js.map +1 -1
  387. package/dist/theme/slot-recipes/PageFooter.recipe.d.ts +5 -3
  388. package/dist/theme/slot-recipes/PageFooter.recipe.js +5 -3
  389. package/dist/theme/slot-recipes/PageFooter.recipe.js.map +1 -1
  390. package/dist/theme/slot-recipes/Tag.recipe.d.ts +1 -1
  391. package/dist/theme/slot-recipes/TextInput.recipe.js.map +1 -1
  392. package/dist/theme/slot-recipes/index.d.ts +7 -159
  393. package/dist/theme/slot-recipes/index.js +0 -4
  394. package/dist/theme/slot-recipes/index.js.map +1 -1
  395. package/dist/theme/tokens/sizes.js.map +1 -1
  396. package/dist/theme/tokens/spacing.js.map +1 -1
  397. package/dist/utilities/BitkitPortalContext.js +2 -3
  398. package/dist/utilities/BitkitPortalContext.js.map +1 -1
  399. package/docs/v1-to-v2-migration-guide.md +1 -48
  400. package/package.json +10 -12
  401. package/dist/components/BitkitFilter/BitkitFilter.context.d.ts +0 -65
  402. package/dist/components/BitkitFilter/BitkitFilter.context.js +0 -82
  403. package/dist/components/BitkitFilter/BitkitFilter.context.js.map +0 -1
  404. package/dist/components/BitkitFilter/BitkitFilter.d.ts +0 -55
  405. package/dist/components/BitkitFilter/BitkitFilter.js +0 -240
  406. package/dist/components/BitkitFilter/BitkitFilter.js.map +0 -1
  407. package/dist/components/BitkitFilter/BitkitFilter.utils.d.ts +0 -18
  408. package/dist/components/BitkitFilter/BitkitFilter.utils.js +0 -42
  409. package/dist/components/BitkitFilter/BitkitFilter.utils.js.map +0 -1
  410. package/dist/components/BitkitFilter/BitkitFilterAdd.d.ts +0 -18
  411. package/dist/components/BitkitFilter/BitkitFilterAdd.js +0 -188
  412. package/dist/components/BitkitFilter/BitkitFilterAdd.js.map +0 -1
  413. package/dist/components/BitkitFilter/BitkitFilterDateRange.d.ts +0 -26
  414. package/dist/components/BitkitFilter/BitkitFilterDateRange.js +0 -118
  415. package/dist/components/BitkitFilter/BitkitFilterDateRange.js.map +0 -1
  416. package/dist/components/BitkitFilter/BitkitFilterSearch.d.ts +0 -23
  417. package/dist/components/BitkitFilter/BitkitFilterSearch.js +0 -70
  418. package/dist/components/BitkitFilter/BitkitFilterSearch.js.map +0 -1
  419. package/dist/components/BitkitFilter/BitkitFilterSelect.d.ts +0 -61
  420. package/dist/components/BitkitFilter/BitkitFilterSelect.js +0 -140
  421. package/dist/components/BitkitFilter/BitkitFilterSelect.js.map +0 -1
  422. package/dist/components/BitkitFilter/BitkitFilterSwitch.d.ts +0 -28
  423. package/dist/components/BitkitFilter/BitkitFilterSwitch.js +0 -87
  424. package/dist/components/BitkitFilter/BitkitFilterSwitch.js.map +0 -1
  425. package/dist/components/BitkitFilter/components/FilterChip.d.ts +0 -23
  426. package/dist/components/BitkitFilter/components/FilterChip.js +0 -64
  427. package/dist/components/BitkitFilter/components/FilterChip.js.map +0 -1
  428. package/dist/components/BitkitFilter/components/FilterField.d.ts +0 -15
  429. package/dist/components/BitkitFilter/components/FilterField.js +0 -58
  430. package/dist/components/BitkitFilter/components/FilterField.js.map +0 -1
  431. package/dist/components/BitkitFilter/components/FilterPanel.d.ts +0 -42
  432. package/dist/components/BitkitFilter/components/FilterPanel.js +0 -126
  433. package/dist/components/BitkitFilter/components/FilterPanel.js.map +0 -1
  434. package/dist/components/BitkitFilter/components/FilterSearchInput.d.ts +0 -15
  435. package/dist/components/BitkitFilter/components/FilterSearchInput.js +0 -41
  436. package/dist/components/BitkitFilter/components/FilterSearchInput.js.map +0 -1
  437. package/dist/components/BitkitFilter/components/FilterSelectForm.d.ts +0 -41
  438. package/dist/components/BitkitFilter/components/FilterSelectForm.js +0 -307
  439. package/dist/components/BitkitFilter/components/FilterSelectForm.js.map +0 -1
  440. package/dist/theme/slot-recipes/Filter.recipe.d.ts +0 -37
  441. package/dist/theme/slot-recipes/Filter.recipe.js +0 -636
  442. package/dist/theme/slot-recipes/Filter.recipe.js.map +0 -1
  443. package/dist/theme/slot-recipes/Listbox.recipe.d.ts +0 -22
  444. package/dist/theme/slot-recipes/Listbox.recipe.js +0 -92
  445. package/dist/theme/slot-recipes/Listbox.recipe.js.map +0 -1
package/README.md CHANGED
@@ -43,13 +43,13 @@ The hosted Storybook itself is browsable at <https://storybook.services.bitrise.
43
43
 
44
44
  ```bash
45
45
  # Runtime peers — required for Bitkit to render
46
- npm install @bitrise/bitkit-v2 @chakra-ui/react@3.35.0 @emotion/react@11.14.0 @emotion/styled@11.14.1
46
+ npm install @bitrise/bitkit-v2 @chakra-ui/react@3.37.0 @emotion/react@11.14.0
47
47
 
48
48
  # Build-time peer — required so the bundled postinstall hook can generate bitkit-specific theme typings
49
- npm install --save-dev @chakra-ui/cli@3.35.0
49
+ npm install --save-dev @chakra-ui/cli@3.37.0
50
50
  ```
51
51
 
52
- Chakra UI and Emotion are declared as peer dependencies so the host app owns the single copy of Chakra in the tree. Install them at the exact versions Bitkit pins — any other version (including patch bumps like `3.35.1`) triggers a peer mismatch warning, and a different minor/major may also cause runtime API incompatibility against Bitkit's compiled output. Duplicate Chakra installs only show up if some other transitive dependency drags in a different Chakra version on top of the drift, but when they do they silently break `BitkitProvider`'s theme context, which is exactly the failure mode pinned peers protect against.
52
+ Chakra UI and Emotion are declared as peer dependencies so the host app owns the single copy of Chakra in the tree. Install them at the exact versions Bitkit pins — any other version (including patch bumps like `3.37.1`) triggers a peer mismatch warning, and a different minor/major may also cause runtime API incompatibility against Bitkit's compiled output. Duplicate Chakra installs only show up if some other transitive dependency drags in a different Chakra version on top of the drift, but when they do they silently break `BitkitProvider`'s theme context, which is exactly the failure mode pinned peers protect against.
53
53
 
54
54
  `@chakra-ui/cli` is a peer too — Bitkit's `postinstall` hook uses it to generate Chakra theme typings into your project's `node_modules`. Install it as a devDependency in the host app so the hook can find it.
55
55
 
@@ -59,10 +59,9 @@ Chakra UI and Emotion are declared as peer dependencies so the host app owns the
59
59
 
60
60
  - React 18+ (peer dependency)
61
61
  - React DOM 18+ (peer dependency)
62
- - `@chakra-ui/react` 3.35.0 (peer dependency, pinned)
62
+ - `@chakra-ui/react` 3.37.0 (peer dependency, pinned)
63
63
  - `@emotion/react` 11.14.0 (peer dependency, pinned)
64
- - `@emotion/styled` 11.14.1 (peer dependency, pinned)
65
- - `@chakra-ui/cli` 3.35.0 (peer dependency, pinned — used by the bundled `postinstall` typegen hook; install as a devDependency in the host app)
64
+ - `@chakra-ui/cli` 3.37.0 (peer dependency, pinned — used by the bundled `postinstall` typegen hook; install as a devDependency in the host app)
66
65
 
67
66
  ### Theme typings
68
67
 
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker.js","names":[],"sources":["../../../lib/atoms/DatePicker/DatePicker.tsx"],"sourcesContent":["import { DatePicker as ArkDatePicker } from '@ark-ui/react/date-picker';\nimport { createSlotRecipeContext, type HTMLChakraProps, type UnstyledProp } from '@chakra-ui/react/styled-system';\n\nconst { withProvider, withContext, useStyles } = createSlotRecipeContext({ key: 'datePicker' });\n\nexport interface DatePickerRootProps extends HTMLChakraProps<'div', ArkDatePicker.RootProps>, UnstyledProp {}\n\nexport const DatePickerRoot = withProvider<HTMLDivElement, DatePickerProps>(\n withContext<HTMLDivElement, DatePickerRootProps>(ArkDatePicker.Root, 'root', {\n forwardAsChild: true,\n }),\n 'root',\n);\n\nexport interface DatePickerControlProps extends HTMLChakraProps<'div', ArkDatePicker.ControlProps>, UnstyledProp {}\n\nexport const DatePickerControl = withContext<HTMLDivElement, DatePickerControlProps>(ArkDatePicker.Control, 'control', {\n forwardAsChild: true,\n});\n\nexport interface DatePickerLabelProps extends HTMLChakraProps<'label', ArkDatePicker.LabelProps>, UnstyledProp {}\n\nexport const DatePickerLabel = withContext<HTMLLabelElement, DatePickerLabelProps>(ArkDatePicker.Label, 'label', {\n forwardAsChild: true,\n});\n\nexport interface DatePickerInputProps extends HTMLChakraProps<'input', ArkDatePicker.InputProps>, UnstyledProp {}\n\nexport const DatePickerInput = withContext<HTMLInputElement, DatePickerInputProps>(ArkDatePicker.Input, 'input', {\n forwardAsChild: true,\n});\n\nexport interface DatePickerTriggerProps extends HTMLChakraProps<'button', ArkDatePicker.TriggerProps>, UnstyledProp {}\n\nexport const DatePickerTrigger = withContext<HTMLButtonElement, DatePickerTriggerProps>(\n ArkDatePicker.Trigger,\n 'trigger',\n {\n forwardAsChild: true,\n },\n);\n\nexport interface DatePickerClearTriggerProps\n extends HTMLChakraProps<'button', ArkDatePicker.ClearTriggerProps>, UnstyledProp {}\n\nexport const DatePickerClearTrigger = withContext<HTMLButtonElement, DatePickerClearTriggerProps>(\n ArkDatePicker.ClearTrigger,\n 'clearTrigger',\n {\n forwardAsChild: true,\n },\n);\n\nexport interface DatePickerPositionerProps\n extends HTMLChakraProps<'div', ArkDatePicker.PositionerProps>, UnstyledProp {}\n\nexport const DatePickerPositioner = withContext<HTMLDivElement, DatePickerPositionerProps>(\n ArkDatePicker.Positioner,\n 'positioner',\n {\n forwardAsChild: true,\n },\n);\n\nexport interface DatePickerContentProps extends HTMLChakraProps<'div', ArkDatePicker.ContentProps>, UnstyledProp {}\n\nexport const DatePickerContent = withContext<HTMLDivElement, DatePickerContentProps>(ArkDatePicker.Content, 'content', {\n forwardAsChild: true,\n});\n\nexport interface DatePickerMonthsProps extends HTMLChakraProps<'div'>, UnstyledProp {}\n\nexport const DatePickerMonths = withContext<HTMLDivElement, DatePickerMonthsProps>('div', 'months', {\n forwardAsChild: true,\n});\n\nexport interface DatePickerViewProps extends HTMLChakraProps<'div', ArkDatePicker.ViewProps>, UnstyledProp {}\n\nexport const DatePickerView = withContext<HTMLDivElement, DatePickerViewProps>(ArkDatePicker.View, 'view', {\n forwardAsChild: true,\n});\n\nexport interface DatePickerViewControlProps\n extends HTMLChakraProps<'div', ArkDatePicker.ViewControlProps>, UnstyledProp {}\n\nexport const DatePickerViewControl = withContext<HTMLDivElement, DatePickerViewControlProps>(\n ArkDatePicker.ViewControl,\n 'viewControl',\n {\n forwardAsChild: true,\n },\n);\n\nexport interface DatePickerTableProps extends HTMLChakraProps<'table', ArkDatePicker.TableProps>, UnstyledProp {}\n\nexport const DatePickerTable = withContext<HTMLTableElement, DatePickerTableProps>(ArkDatePicker.Table, 'table', {\n forwardAsChild: true,\n});\n\nexport interface DatePickerTableHeadProps\n extends HTMLChakraProps<'thead', ArkDatePicker.TableHeadProps>, UnstyledProp {}\n\nexport const DatePickerTableHead = withContext<HTMLTableSectionElement, DatePickerTableHeadProps>(\n ArkDatePicker.TableHead,\n 'tableHead',\n {\n forwardAsChild: true,\n },\n);\n\nexport interface DatePickerTableBodyProps\n extends HTMLChakraProps<'tbody', ArkDatePicker.TableBodyProps>, UnstyledProp {}\n\nexport const DatePickerTableBody = withContext<HTMLTableSectionElement, DatePickerTableBodyProps>(\n ArkDatePicker.TableBody,\n 'tableBody',\n {\n forwardAsChild: true,\n },\n);\n\nexport interface DatePickerTableRowProps extends HTMLChakraProps<'tr', ArkDatePicker.TableRowProps>, UnstyledProp {}\n\nexport const DatePickerTableRow = withContext<HTMLTableRowElement, DatePickerTableRowProps>(\n ArkDatePicker.TableRow,\n 'tableRow',\n {\n forwardAsChild: true,\n },\n);\n\nexport interface DatePickerTableHeaderProps\n extends HTMLChakraProps<'th', ArkDatePicker.TableHeaderProps>, UnstyledProp {}\n\nexport const DatePickerTableHeader = withContext<HTMLTableCellElement, DatePickerTableHeaderProps>(\n ArkDatePicker.TableHeader,\n 'tableHeader',\n {\n forwardAsChild: true,\n },\n);\n\nexport interface DatePickerTableCellProps extends HTMLChakraProps<'td', ArkDatePicker.TableCellProps>, UnstyledProp {}\n\nexport const DatePickerTableCell = withContext<HTMLTableCellElement, DatePickerTableCellProps>(\n ArkDatePicker.TableCell,\n 'tableCell',\n {\n forwardAsChild: true,\n },\n);\n\nexport interface DatePickerTableCellTriggerProps\n extends HTMLChakraProps<'span', ArkDatePicker.TableCellTriggerProps>, UnstyledProp {}\n\nexport const DatePickerTableCellTrigger = withContext<HTMLButtonElement, DatePickerTableCellTriggerProps>(\n ArkDatePicker.TableCellTrigger,\n 'tableCellTrigger',\n {\n forwardAsChild: true,\n },\n);\n\nexport const DatePickerContext = ArkDatePicker.Context;\n\nexport interface DatePickerProps extends DatePickerRootProps {\n // these do not come from ArkUI, so maybe find a better place\n device: 'desktop' | 'mobile';\n layout?: '1-month' | '2-month';\n showOutsideDays?: boolean;\n}\n\nexport const DatePicker = {\n Root: DatePickerRoot,\n Control: DatePickerControl,\n Label: DatePickerLabel,\n Input: DatePickerInput,\n Trigger: DatePickerTrigger,\n ClearTrigger: DatePickerClearTrigger,\n Positioner: DatePickerPositioner,\n Content: DatePickerContent,\n Months: DatePickerMonths,\n View: DatePickerView,\n ViewControl: DatePickerViewControl,\n Table: DatePickerTable,\n TableHead: DatePickerTableHead,\n TableBody: DatePickerTableBody,\n TableRow: DatePickerTableRow,\n TableHeader: DatePickerTableHeader,\n TableCell: DatePickerTableCell,\n TableCellTrigger: DatePickerTableCellTrigger,\n};\n\nexport { useStyles as useCalendarStyles };\n\nexport type { DatePickerOpenChangeDetails, DatePickerValueChangeDetails } from '@ark-ui/react/date-picker';\nexport { useDatePickerContext } from '@ark-ui/react/date-picker';\n"],"mappings":";;;AAGA,IAAM,EAAE,cAAc,aAAa,cAAc,wBAAwB,EAAE,KAAK,aAAa,CAAC;AAI9F,IAAa,iBAAiB,aAC5B,YAAiD,WAAc,MAAM,QAAQ,EAC3E,gBAAgB,KAClB,CAAC,GACD,MACF;AAIA,IAAa,oBAAoB,YAAoD,WAAc,SAAS,WAAW,EACrH,gBAAgB,KAClB,CAAC;AAID,IAAa,kBAAkB,YAAoD,WAAc,OAAO,SAAS,EAC/G,gBAAgB,KAClB,CAAC;AAID,IAAa,kBAAkB,YAAoD,WAAc,OAAO,SAAS,EAC/G,gBAAgB,KAClB,CAAC;AAID,IAAa,oBAAoB,YAC/B,WAAc,SACd,WACA,EACE,gBAAgB,KAClB,CACF;AAKA,IAAa,yBAAyB,YACpC,WAAc,cACd,gBACA,EACE,gBAAgB,KAClB,CACF;AAKA,IAAa,uBAAuB,YAClC,WAAc,YACd,cACA,EACE,gBAAgB,KAClB,CACF;AAIA,IAAa,oBAAoB,YAAoD,WAAc,SAAS,WAAW,EACrH,gBAAgB,KAClB,CAAC;AAID,IAAa,mBAAmB,YAAmD,OAAO,UAAU,EAClG,gBAAgB,KAClB,CAAC;AAID,IAAa,iBAAiB,YAAiD,WAAc,MAAM,QAAQ,EACzG,gBAAgB,KAClB,CAAC;AAKD,IAAa,wBAAwB,YACnC,WAAc,aACd,eACA,EACE,gBAAgB,KAClB,CACF;AAIA,IAAa,kBAAkB,YAAoD,WAAc,OAAO,SAAS,EAC/G,gBAAgB,KAClB,CAAC;AAKD,IAAa,sBAAsB,YACjC,WAAc,WACd,aACA,EACE,gBAAgB,KAClB,CACF;AAKA,IAAa,sBAAsB,YACjC,WAAc,WACd,aACA,EACE,gBAAgB,KAClB,CACF;AAIA,IAAa,qBAAqB,YAChC,WAAc,UACd,YACA,EACE,gBAAgB,KAClB,CACF;AAKA,IAAa,wBAAwB,YACnC,WAAc,aACd,eACA,EACE,gBAAgB,KAClB,CACF;AAIA,IAAa,sBAAsB,YACjC,WAAc,WACd,aACA,EACE,gBAAgB,KAClB,CACF;AAKA,IAAa,6BAA6B,YACxC,WAAc,kBACd,oBACA,EACE,gBAAgB,KAClB,CACF;AAEA,IAAa,oBAAoB,WAAc;AAS/C,IAAa,eAAa;CACxB,MAAM;CACN,SAAS;CACT,OAAO;CACP,OAAO;CACP,SAAS;CACT,cAAc;CACd,YAAY;CACZ,SAAS;CACT,QAAQ;CACR,MAAM;CACN,aAAa;CACb,OAAO;CACP,WAAW;CACX,WAAW;CACX,UAAU;CACV,aAAa;CACb,WAAW;CACX,kBAAkB;AACpB"}
1
+ {"version":3,"file":"DatePicker.js","names":["ArkDatePicker","DatePicker"],"sources":["../../../lib/atoms/DatePicker/DatePicker.tsx"],"sourcesContent":["import { DatePicker as ArkDatePicker } from '@ark-ui/react/date-picker';\nimport { createSlotRecipeContext, type HTMLChakraProps, type UnstyledProp } from '@chakra-ui/react/styled-system';\n\nconst { withProvider, withContext, useStyles } = createSlotRecipeContext({ key: 'datePicker' });\n\nexport interface DatePickerRootProps extends HTMLChakraProps<'div', ArkDatePicker.RootProps>, UnstyledProp {}\n\nexport const DatePickerRoot = withProvider<HTMLDivElement, DatePickerProps>(\n withContext<HTMLDivElement, DatePickerRootProps>(ArkDatePicker.Root, 'root', {\n forwardAsChild: true,\n }),\n 'root',\n);\n\nexport interface DatePickerControlProps extends HTMLChakraProps<'div', ArkDatePicker.ControlProps>, UnstyledProp {}\n\nexport const DatePickerControl = withContext<HTMLDivElement, DatePickerControlProps>(ArkDatePicker.Control, 'control', {\n forwardAsChild: true,\n});\n\nexport interface DatePickerLabelProps extends HTMLChakraProps<'label', ArkDatePicker.LabelProps>, UnstyledProp {}\n\nexport const DatePickerLabel = withContext<HTMLLabelElement, DatePickerLabelProps>(ArkDatePicker.Label, 'label', {\n forwardAsChild: true,\n});\n\nexport interface DatePickerInputProps extends HTMLChakraProps<'input', ArkDatePicker.InputProps>, UnstyledProp {}\n\nexport const DatePickerInput = withContext<HTMLInputElement, DatePickerInputProps>(ArkDatePicker.Input, 'input', {\n forwardAsChild: true,\n});\n\nexport interface DatePickerTriggerProps extends HTMLChakraProps<'button', ArkDatePicker.TriggerProps>, UnstyledProp {}\n\nexport const DatePickerTrigger = withContext<HTMLButtonElement, DatePickerTriggerProps>(\n ArkDatePicker.Trigger,\n 'trigger',\n {\n forwardAsChild: true,\n },\n);\n\nexport interface DatePickerClearTriggerProps\n extends HTMLChakraProps<'button', ArkDatePicker.ClearTriggerProps>, UnstyledProp {}\n\nexport const DatePickerClearTrigger = withContext<HTMLButtonElement, DatePickerClearTriggerProps>(\n ArkDatePicker.ClearTrigger,\n 'clearTrigger',\n {\n forwardAsChild: true,\n },\n);\n\nexport interface DatePickerPositionerProps\n extends HTMLChakraProps<'div', ArkDatePicker.PositionerProps>, UnstyledProp {}\n\nexport const DatePickerPositioner = withContext<HTMLDivElement, DatePickerPositionerProps>(\n ArkDatePicker.Positioner,\n 'positioner',\n {\n forwardAsChild: true,\n },\n);\n\nexport interface DatePickerContentProps extends HTMLChakraProps<'div', ArkDatePicker.ContentProps>, UnstyledProp {}\n\nexport const DatePickerContent = withContext<HTMLDivElement, DatePickerContentProps>(ArkDatePicker.Content, 'content', {\n forwardAsChild: true,\n});\n\nexport interface DatePickerMonthsProps extends HTMLChakraProps<'div'>, UnstyledProp {}\n\nexport const DatePickerMonths = withContext<HTMLDivElement, DatePickerMonthsProps>('div', 'months', {\n forwardAsChild: true,\n});\n\nexport interface DatePickerViewProps extends HTMLChakraProps<'div', ArkDatePicker.ViewProps>, UnstyledProp {}\n\nexport const DatePickerView = withContext<HTMLDivElement, DatePickerViewProps>(ArkDatePicker.View, 'view', {\n forwardAsChild: true,\n});\n\nexport interface DatePickerViewControlProps\n extends HTMLChakraProps<'div', ArkDatePicker.ViewControlProps>, UnstyledProp {}\n\nexport const DatePickerViewControl = withContext<HTMLDivElement, DatePickerViewControlProps>(\n ArkDatePicker.ViewControl,\n 'viewControl',\n {\n forwardAsChild: true,\n },\n);\n\nexport interface DatePickerTableProps extends HTMLChakraProps<'table', ArkDatePicker.TableProps>, UnstyledProp {}\n\nexport const DatePickerTable = withContext<HTMLTableElement, DatePickerTableProps>(ArkDatePicker.Table, 'table', {\n forwardAsChild: true,\n});\n\nexport interface DatePickerTableHeadProps\n extends HTMLChakraProps<'thead', ArkDatePicker.TableHeadProps>, UnstyledProp {}\n\nexport const DatePickerTableHead = withContext<HTMLTableSectionElement, DatePickerTableHeadProps>(\n ArkDatePicker.TableHead,\n 'tableHead',\n {\n forwardAsChild: true,\n },\n);\n\nexport interface DatePickerTableBodyProps\n extends HTMLChakraProps<'tbody', ArkDatePicker.TableBodyProps>, UnstyledProp {}\n\nexport const DatePickerTableBody = withContext<HTMLTableSectionElement, DatePickerTableBodyProps>(\n ArkDatePicker.TableBody,\n 'tableBody',\n {\n forwardAsChild: true,\n },\n);\n\nexport interface DatePickerTableRowProps extends HTMLChakraProps<'tr', ArkDatePicker.TableRowProps>, UnstyledProp {}\n\nexport const DatePickerTableRow = withContext<HTMLTableRowElement, DatePickerTableRowProps>(\n ArkDatePicker.TableRow,\n 'tableRow',\n {\n forwardAsChild: true,\n },\n);\n\nexport interface DatePickerTableHeaderProps\n extends HTMLChakraProps<'th', ArkDatePicker.TableHeaderProps>, UnstyledProp {}\n\nexport const DatePickerTableHeader = withContext<HTMLTableCellElement, DatePickerTableHeaderProps>(\n ArkDatePicker.TableHeader,\n 'tableHeader',\n {\n forwardAsChild: true,\n },\n);\n\nexport interface DatePickerTableCellProps extends HTMLChakraProps<'td', ArkDatePicker.TableCellProps>, UnstyledProp {}\n\nexport const DatePickerTableCell = withContext<HTMLTableCellElement, DatePickerTableCellProps>(\n ArkDatePicker.TableCell,\n 'tableCell',\n {\n forwardAsChild: true,\n },\n);\n\nexport interface DatePickerTableCellTriggerProps\n extends HTMLChakraProps<'span', ArkDatePicker.TableCellTriggerProps>, UnstyledProp {}\n\nexport const DatePickerTableCellTrigger = withContext<HTMLButtonElement, DatePickerTableCellTriggerProps>(\n ArkDatePicker.TableCellTrigger,\n 'tableCellTrigger',\n {\n forwardAsChild: true,\n },\n);\n\nexport const DatePickerContext = ArkDatePicker.Context;\n\nexport interface DatePickerProps extends DatePickerRootProps {\n // these do not come from ArkUI, so maybe find a better place\n device: 'desktop' | 'mobile';\n layout?: '1-month' | '2-month';\n showOutsideDays?: boolean;\n}\n\nexport const DatePicker = {\n Root: DatePickerRoot,\n Control: DatePickerControl,\n Label: DatePickerLabel,\n Input: DatePickerInput,\n Trigger: DatePickerTrigger,\n ClearTrigger: DatePickerClearTrigger,\n Positioner: DatePickerPositioner,\n Content: DatePickerContent,\n Months: DatePickerMonths,\n View: DatePickerView,\n ViewControl: DatePickerViewControl,\n Table: DatePickerTable,\n TableHead: DatePickerTableHead,\n TableBody: DatePickerTableBody,\n TableRow: DatePickerTableRow,\n TableHeader: DatePickerTableHeader,\n TableCell: DatePickerTableCell,\n TableCellTrigger: DatePickerTableCellTrigger,\n};\n\nexport { useStyles as useCalendarStyles };\n\nexport type { DatePickerOpenChangeDetails, DatePickerValueChangeDetails } from '@ark-ui/react/date-picker';\nexport { useDatePickerContext } from '@ark-ui/react/date-picker';\n"],"mappings":";;;AAGA,IAAM,EAAE,cAAc,aAAa,cAAc,wBAAwB,EAAE,KAAK,aAAa,CAAC;AAI9F,IAAa,iBAAiB,aAC5B,YAAiDA,WAAc,MAAM,QAAQ,EAC3E,gBAAgB,KAClB,CAAC,GACD,MACF;AAIA,IAAa,oBAAoB,YAAoDA,WAAc,SAAS,WAAW,EACrH,gBAAgB,KAClB,CAAC;AAID,IAAa,kBAAkB,YAAoDA,WAAc,OAAO,SAAS,EAC/G,gBAAgB,KAClB,CAAC;AAID,IAAa,kBAAkB,YAAoDA,WAAc,OAAO,SAAS,EAC/G,gBAAgB,KAClB,CAAC;AAID,IAAa,oBAAoB,YAC/BA,WAAc,SACd,WACA,EACE,gBAAgB,KAClB,CACF;AAKA,IAAa,yBAAyB,YACpCA,WAAc,cACd,gBACA,EACE,gBAAgB,KAClB,CACF;AAKA,IAAa,uBAAuB,YAClCA,WAAc,YACd,cACA,EACE,gBAAgB,KAClB,CACF;AAIA,IAAa,oBAAoB,YAAoDA,WAAc,SAAS,WAAW,EACrH,gBAAgB,KAClB,CAAC;AAID,IAAa,mBAAmB,YAAmD,OAAO,UAAU,EAClG,gBAAgB,KAClB,CAAC;AAID,IAAa,iBAAiB,YAAiDA,WAAc,MAAM,QAAQ,EACzG,gBAAgB,KAClB,CAAC;AAKD,IAAa,wBAAwB,YACnCA,WAAc,aACd,eACA,EACE,gBAAgB,KAClB,CACF;AAIA,IAAa,kBAAkB,YAAoDA,WAAc,OAAO,SAAS,EAC/G,gBAAgB,KAClB,CAAC;AAKD,IAAa,sBAAsB,YACjCA,WAAc,WACd,aACA,EACE,gBAAgB,KAClB,CACF;AAKA,IAAa,sBAAsB,YACjCA,WAAc,WACd,aACA,EACE,gBAAgB,KAClB,CACF;AAIA,IAAa,qBAAqB,YAChCA,WAAc,UACd,YACA,EACE,gBAAgB,KAClB,CACF;AAKA,IAAa,wBAAwB,YACnCA,WAAc,aACd,eACA,EACE,gBAAgB,KAClB,CACF;AAIA,IAAa,sBAAsB,YACjCA,WAAc,WACd,aACA,EACE,gBAAgB,KAClB,CACF;AAKA,IAAa,6BAA6B,YACxCA,WAAc,kBACd,oBACA,EACE,gBAAgB,KAClB,CACF;AAEA,IAAa,oBAAoBA,WAAc;AAS/C,IAAaC,eAAa;CACxB,MAAM;CACN,SAAS;CACT,OAAO;CACP,OAAO;CACP,SAAS;CACT,cAAc;CACd,YAAY;CACZ,SAAS;CACT,QAAQ;CACR,MAAM;CACN,aAAa;CACb,OAAO;CACP,WAAW;CACX,WAAW;CACX,UAAU;CACV,aAAa;CACb,WAAW;CACX,kBAAkB;AACpB"}
@@ -1 +1 @@
1
- {"version":3,"file":"ImageCropper.js","names":[],"sources":["../../../lib/atoms/ImageCropper/ImageCropper.tsx"],"sourcesContent":["import { ImageCropper as ArkImageCropper } from '@ark-ui/react/image-cropper';\nimport { createSlotRecipeContext, type HTMLChakraProps, type UnstyledProp } from '@chakra-ui/react/styled-system';\n\nconst { withProvider, withContext, useStyles } = createSlotRecipeContext({ key: 'imageCropper' });\n\nexport interface ImageCropperRootProps extends HTMLChakraProps<'div', ArkImageCropper.RootProps>, UnstyledProp {}\n\nexport const ImageCropperRoot = withProvider<HTMLDivElement, ImageCropperRootProps>(\n withContext<HTMLDivElement, ImageCropperRootProps>(ArkImageCropper.Root, 'root', {\n forwardAsChild: true,\n forwardProps: ['aspectRatio', 'minWidth', 'minHeight', 'maxWidth', 'maxHeight'],\n }),\n 'root',\n {\n forwardProps: ['aspectRatio', 'minWidth', 'minHeight', 'maxWidth', 'maxHeight'],\n },\n);\n\nexport const ImageCropperViewport = withContext<HTMLDivElement, HTMLChakraProps<'div'>>(\n ArkImageCropper.Viewport,\n 'viewport',\n {\n forwardAsChild: true,\n },\n);\n\nexport const ImageCropperImage = withContext<HTMLImageElement, HTMLChakraProps<'img'>>(ArkImageCropper.Image, 'image', {\n forwardAsChild: true,\n});\n\nexport const ImageCropperSelection = withContext<HTMLDivElement, HTMLChakraProps<'div'>>(\n ArkImageCropper.Selection,\n 'selection',\n {\n forwardAsChild: true,\n },\n);\n\nexport const ImageCropperHandle = withContext<HTMLDivElement, HTMLChakraProps<'div', ArkImageCropper.HandleProps>>(\n ArkImageCropper.Handle,\n 'handle',\n {\n forwardAsChild: true,\n forwardProps: ['position'],\n },\n);\n\nexport const ImageCropperGrid = withContext<HTMLDivElement, HTMLChakraProps<'div'>>(ArkImageCropper.Grid, 'grid', {\n forwardAsChild: true,\n});\n\nexport default {\n handles: ArkImageCropper.handles,\n Root: ImageCropperRoot,\n Viewport: ImageCropperViewport,\n Image: ImageCropperImage,\n Selection: ImageCropperSelection,\n Handle: ImageCropperHandle,\n Grid: ImageCropperGrid,\n};\n\nexport { useStyles as useImageCropperStyles };\n\nexport { useImageCropper, useImageCropperContext } from '@ark-ui/react/image-cropper';\n"],"mappings":";;;AAGA,IAAM,EAAE,cAAc,aAAa,cAAc,wBAAwB,EAAE,KAAK,eAAe,CAAC;AAIhG,IAAa,mBAAmB,aAC9B,YAAmD,aAAgB,MAAM,QAAQ;CAC/E,gBAAgB;CAChB,cAAc;EAAC;EAAe;EAAY;EAAa;EAAY;CAAW;AAChF,CAAC,GACD,QACA,EACE,cAAc;CAAC;CAAe;CAAY;CAAa;CAAY;AAAW,EAChF,CACF;AAEA,IAAa,uBAAuB,YAClC,aAAgB,UAChB,YACA,EACE,gBAAgB,KAClB,CACF;AAEA,IAAa,oBAAoB,YAAsD,aAAgB,OAAO,SAAS,EACrH,gBAAgB,KAClB,CAAC;AAED,IAAa,wBAAwB,YACnC,aAAgB,WAChB,aACA,EACE,gBAAgB,KAClB,CACF;AAEA,IAAa,qBAAqB,YAChC,aAAgB,QAChB,UACA;CACE,gBAAgB;CAChB,cAAc,CAAC,UAAU;AAC3B,CACF;AAEA,IAAa,mBAAmB,YAAoD,aAAgB,MAAM,QAAQ,EAChH,gBAAgB,KAClB,CAAC;AAED,IAAA,uBAAe;CACb,SAAS,aAAgB;CACzB,MAAM;CACN,UAAU;CACV,OAAO;CACP,WAAW;CACX,QAAQ;CACR,MAAM;AACR"}
1
+ {"version":3,"file":"ImageCropper.js","names":["ArkImageCropper"],"sources":["../../../lib/atoms/ImageCropper/ImageCropper.tsx"],"sourcesContent":["import { ImageCropper as ArkImageCropper } from '@ark-ui/react/image-cropper';\nimport { createSlotRecipeContext, type HTMLChakraProps, type UnstyledProp } from '@chakra-ui/react/styled-system';\n\nconst { withProvider, withContext, useStyles } = createSlotRecipeContext({ key: 'imageCropper' });\n\nexport interface ImageCropperRootProps extends HTMLChakraProps<'div', ArkImageCropper.RootProps>, UnstyledProp {}\n\nexport const ImageCropperRoot = withProvider<HTMLDivElement, ImageCropperRootProps>(\n withContext<HTMLDivElement, ImageCropperRootProps>(ArkImageCropper.Root, 'root', {\n forwardAsChild: true,\n forwardProps: ['aspectRatio', 'minWidth', 'minHeight', 'maxWidth', 'maxHeight'],\n }),\n 'root',\n {\n forwardProps: ['aspectRatio', 'minWidth', 'minHeight', 'maxWidth', 'maxHeight'],\n },\n);\n\nexport const ImageCropperViewport = withContext<HTMLDivElement, HTMLChakraProps<'div'>>(\n ArkImageCropper.Viewport,\n 'viewport',\n {\n forwardAsChild: true,\n },\n);\n\nexport const ImageCropperImage = withContext<HTMLImageElement, HTMLChakraProps<'img'>>(ArkImageCropper.Image, 'image', {\n forwardAsChild: true,\n});\n\nexport const ImageCropperSelection = withContext<HTMLDivElement, HTMLChakraProps<'div'>>(\n ArkImageCropper.Selection,\n 'selection',\n {\n forwardAsChild: true,\n },\n);\n\nexport const ImageCropperHandle = withContext<HTMLDivElement, HTMLChakraProps<'div', ArkImageCropper.HandleProps>>(\n ArkImageCropper.Handle,\n 'handle',\n {\n forwardAsChild: true,\n forwardProps: ['position'],\n },\n);\n\nexport const ImageCropperGrid = withContext<HTMLDivElement, HTMLChakraProps<'div'>>(ArkImageCropper.Grid, 'grid', {\n forwardAsChild: true,\n});\n\nexport default {\n handles: ArkImageCropper.handles,\n Root: ImageCropperRoot,\n Viewport: ImageCropperViewport,\n Image: ImageCropperImage,\n Selection: ImageCropperSelection,\n Handle: ImageCropperHandle,\n Grid: ImageCropperGrid,\n};\n\nexport { useStyles as useImageCropperStyles };\n\nexport { useImageCropper, useImageCropperContext } from '@ark-ui/react/image-cropper';\n"],"mappings":";;;AAGA,IAAM,EAAE,cAAc,aAAa,cAAc,wBAAwB,EAAE,KAAK,eAAe,CAAC;AAIhG,IAAa,mBAAmB,aAC9B,YAAmDA,aAAgB,MAAM,QAAQ;CAC/E,gBAAgB;CAChB,cAAc;EAAC;EAAe;EAAY;EAAa;EAAY;CAAW;AAChF,CAAC,GACD,QACA,EACE,cAAc;CAAC;CAAe;CAAY;CAAa;CAAY;AAAW,EAChF,CACF;AAEA,IAAa,uBAAuB,YAClCA,aAAgB,UAChB,YACA,EACE,gBAAgB,KAClB,CACF;AAEA,IAAa,oBAAoB,YAAsDA,aAAgB,OAAO,SAAS,EACrH,gBAAgB,KAClB,CAAC;AAED,IAAa,wBAAwB,YACnCA,aAAgB,WAChB,aACA,EACE,gBAAgB,KAClB,CACF;AAEA,IAAa,qBAAqB,YAChCA,aAAgB,QAChB,UACA;CACE,gBAAgB;CAChB,cAAc,CAAC,UAAU;AAC3B,CACF;AAEA,IAAa,mBAAmB,YAAoDA,aAAgB,MAAM,QAAQ,EAChH,gBAAgB,KAClB,CAAC;AAED,IAAA,uBAAe;CACb,SAASA,aAAgB;CACzB,MAAM;CACN,UAAU;CACV,OAAO;CACP,WAAW;CACX,QAAQ;CACR,MAAM;AACR"}
@@ -1 +1 @@
1
- {"version":3,"file":"BitkitActionMenu.js","names":[],"sources":["../../../lib/components/BitkitActionMenu/BitkitActionMenu.tsx"],"sourcesContent":["import { Box } from '@chakra-ui/react/box';\nimport {\n Menu,\n type MenuItemGroupProps,\n type MenuItemProps,\n type MenuRootProps,\n type MenuSeparatorProps,\n useMenuStyles,\n} from '@chakra-ui/react/menu';\nimport { Portal } from '@chakra-ui/react/portal';\nimport { Separator as ChakraSeparator } from '@chakra-ui/react/separator';\nimport { Text } from '@chakra-ui/react/text';\nimport { createContext, forwardRef, type MouseEvent, type ReactNode, type Ref, useContext, useId } from 'react';\n\nimport { type BitkitIconComponent, IconArrowNortheast } from '../../icons';\nimport { type BitkitDataAttributes, splitDataAttributes } from '../../utilities/dataAttributes';\nimport { withSubComponents } from '../../utilities/withSubComponents';\n\nconst BitkitActionMenuContext = createContext<MenuRootProps['size']>('lg');\n\n/**\n * `data-*` attributes are forwarded to the element carrying `role=\"menu\"` (the menu content), and\n * nothing else is — the same contract the dialogs have. The menu portals out, so this is the only\n * way to address the rendered list, e.g. from a test.\n */\nexport interface BitkitActionMenuProps extends Omit<MenuRootProps, 'children'>, BitkitDataAttributes {\n /** The menu's items — `BitkitActionMenu.Item`, `.Group` and `.Separator`. */\n children?: ReactNode;\n /**\n * Row density, inherited by every item. `lg` (default) is the standalone action menu; `md` is for\n * menus attached to dense UI, such as an overflow menu in a toolbar or a tab bar.\n */\n size?: MenuRootProps['size'];\n /**\n * The element the menu is anchored to — usually a `BitkitIconButton` or `BitkitButton`. Rendered\n * via `asChild`, so it must accept a ref.\n */\n trigger: ReactNode;\n}\n\nconst BitkitActionMenu = ({ trigger, children, size = 'lg', ...props }: BitkitActionMenuProps) => {\n // `Menu.Root` is a provider, not an element, so it drops the `data-*` attributes — they belong on\n // the content, which is the element carrying `role=\"menu\"`.\n const { dataAttributes, rest: rootProps } = splitDataAttributes(props);\n\n return (\n <Menu.Root size={size} {...rootProps}>\n <Menu.Trigger asChild>{trigger}</Menu.Trigger>\n <Portal>\n <Menu.Positioner>\n <BitkitActionMenuContext.Provider value={size}>\n <Menu.Content {...dataAttributes}>{children}</Menu.Content>\n </BitkitActionMenuContext.Provider>\n </Menu.Positioner>\n </Portal>\n </Menu.Root>\n );\n};\nBitkitActionMenu.displayName = 'BitkitActionMenu';\n\ninterface BitkitActionMenuItemCommonProps extends Omit<MenuItemProps, 'value'> {\n /** The item's label. */\n children?: ReactNode;\n /** Leading icon, sized from the menu's `size` (24 on `lg`, 16 on `md`). */\n icon?: BitkitIconComponent;\n /** Style the item as destructive — red label and icon. Use it for delete and similar actions. */\n isDanger?: boolean;\n /** Inert and marked `aria-disabled`: no selection, no `onClick`, and no navigation on an `href` item. */\n disabled?: boolean;\n /** A second, quieter line under the label. Adding it makes the row taller and top-aligns the icon. */\n secondaryText?: ReactNode;\n /**\n * Identifies the item to the menu machine. Omit it for a command item that does its own work in\n * `onClick` — a generated id is used, and typeahead matches the label either way. Pass one when\n * you read `onSelect` on the menu itself and need to tell the items apart.\n */\n value?: string;\n}\n\ninterface BitkitActionMenuItemAsButtonProps extends BitkitActionMenuItemCommonProps {\n href?: undefined;\n isExternal?: undefined;\n rel?: undefined;\n target?: undefined;\n}\n\ninterface BitkitActionMenuItemAsAnchorProps extends BitkitActionMenuItemCommonProps {\n /** Renders the item as an `<a>` instead of a menu button. */\n href: string;\n /**\n * Shorthand for `target=\"_blank\"` plus `rel=\"noreferrer noopener\"`. Also puts an\n * `IconArrowNortheast` at the end of the row — the design system's \"leaves this page\" marker.\n */\n isExternal?: boolean;\n /** Extra `rel` tokens. With `isExternal` the safety tokens are appended to these. */\n rel?: string;\n /** Anchor target. Ignored when `isExternal` is set. */\n target?: string;\n}\n\nexport type BitkitActionMenuItemProps = BitkitActionMenuItemAsButtonProps | BitkitActionMenuItemAsAnchorProps;\n\nconst BitkitActionMenuItem = forwardRef<HTMLElement, BitkitActionMenuItemProps>((props, ref) => {\n const { children, disabled, icon: Icon, isDanger, secondaryText } = props;\n const style = useMenuStyles();\n const menuCtx = useContext(BitkitActionMenuContext);\n const iconSize = menuCtx === 'lg' ? '24' : '16';\n const hasHelper = secondaryText ? true : undefined;\n const fallbackValue = useId();\n\n // Ark composes the consumer's `onClick` with its own, and only its own bails on `disabled` — so\n // without this a disabled item still runs the handler (and, as an anchor, still navigates).\n const handleClick = (onClick: MenuItemProps['onClick']) => (event: MouseEvent<HTMLDivElement>) => {\n if (disabled) {\n event.preventDefault();\n return;\n }\n onClick?.(event);\n };\n\n const content = (\n <>\n {Icon && <Icon size={iconSize} />}\n <Box flex=\"1\">\n <Text>{children}</Text>\n {secondaryText && <Text css={style.itemHelper}>{secondaryText}</Text>}\n </Box>\n {props.isExternal && <IconArrowNortheast data-suffix-icon size={iconSize} />}\n </>\n );\n\n if (props.href !== undefined) {\n const {\n children: _children,\n href,\n icon: _icon,\n isDanger: _isDanger,\n isExternal,\n rel,\n onClick,\n secondaryText: _secondaryText,\n target,\n value,\n ...rest\n } = props;\n const effectiveTarget = isExternal ? '_blank' : target;\n const effectiveRel = isExternal ? (rel ? `${rel} noreferrer noopener` : 'noreferrer noopener') : rel;\n return (\n <Menu.Item\n asChild\n data-danger={isDanger}\n data-helper={hasHelper}\n onClick={handleClick(onClick)}\n value={value ?? fallbackValue}\n {...rest}\n >\n <a ref={ref as Ref<HTMLAnchorElement>} href={href} rel={effectiveRel} target={effectiveTarget}>\n {content}\n </a>\n </Menu.Item>\n );\n }\n\n const {\n children: _children,\n icon: _icon,\n isDanger: _isDanger,\n onClick,\n secondaryText: _secondaryText,\n value,\n ...rest\n } = props;\n return (\n <Menu.Item\n data-danger={isDanger}\n data-helper={hasHelper}\n onClick={handleClick(onClick)}\n ref={ref as Ref<HTMLDivElement>}\n value={value ?? fallbackValue}\n {...rest}\n >\n {content}\n </Menu.Item>\n );\n});\nBitkitActionMenuItem.displayName = 'BitkitActionMenu.Item';\n\nexport interface BitkitActionMenuGroupProps extends MenuItemGroupProps {\n /** The group's items. */\n children?: ReactNode;\n /** The group's heading, rendered uppercase with a rule filling the rest of the row. */\n label: ReactNode;\n}\n\nconst BitkitActionMenuGroup = forwardRef<HTMLDivElement, BitkitActionMenuGroupProps>(\n ({ label, children, ...props }, ref) => {\n return (\n <Menu.ItemGroup ref={ref} {...props}>\n <Menu.ItemGroupLabel>\n <Text>{label}</Text>\n <ChakraSeparator flex=\"1\" />\n </Menu.ItemGroupLabel>\n {children}\n </Menu.ItemGroup>\n );\n },\n);\nBitkitActionMenuGroup.displayName = 'BitkitActionMenu.Group';\n\nexport type BitkitActionMenuSeparatorProps = MenuSeparatorProps;\n\nconst BitkitActionMenuSeparator = forwardRef<HTMLHRElement, BitkitActionMenuSeparatorProps>((props, ref) => {\n return <Menu.Separator ref={ref} {...props} />;\n});\nBitkitActionMenuSeparator.displayName = 'BitkitActionMenu.Separator';\n\nexport default withSubComponents(BitkitActionMenu, {\n Group: BitkitActionMenuGroup,\n Item: BitkitActionMenuItem,\n Separator: BitkitActionMenuSeparator,\n});\n"],"mappings":";;;;;;;;;;;AAkBA,IAAM,0BAA0B,cAAqC,IAAI;AAsBzE,IAAM,oBAAoB,EAAE,SAAS,UAAU,OAAO,MAAM,GAAG,YAAmC;CAGhG,MAAM,EAAE,gBAAgB,MAAM,cAAc,oBAAoB,KAAK;CAErE,OACE,qBAAC,KAAK,MAAN;EAAiB;EAAM,GAAI;EAA3B,UAAA,CACE,oBAAC,KAAK,SAAN;GAAc,SAAA;GAAS,UAAA;EAAsB,CAAA,GAC7C,oBAAC,QAAD,EAAA,UACE,oBAAC,KAAK,YAAN,EAAA,UACE,oBAAC,wBAAwB,UAAzB;GAAkC,OAAO;GACvC,UAAA,oBAAC,KAAK,SAAN;IAAc,GAAI;IAAiB;GAAuB,CAAA;EAC1B,CAAA,EACnB,CAAA,EACX,CAAA,CACC;;AAEf;AACA,iBAAiB,cAAc;AA4C/B,IAAM,uBAAuB,YAAoD,OAAO,QAAQ;CAC9F,MAAM,EAAE,UAAU,UAAU,MAAM,MAAM,UAAU,kBAAkB;CACpE,MAAM,QAAQ,cAAc;CAE5B,MAAM,WADU,WAAW,uBACV,MAAY,OAAO,OAAO;CAC3C,MAAM,YAAY,gBAAgB,OAAO,KAAA;CACzC,MAAM,gBAAgB,MAAM;CAI5B,MAAM,eAAe,aAAuC,UAAsC;EAChG,IAAI,UAAU;GACZ,MAAM,eAAe;GACrB;EACF;EACA,UAAU,KAAK;CACjB;CAEA,MAAM,UACJ,qBAAA,YAAA,EAAA,UAAA;EACG,QAAQ,oBAAC,MAAD,EAAM,MAAM,SAAW,CAAA;EAChC,qBAAC,KAAD;GAAK,MAAK;GAAV,UAAA,CACE,oBAAC,MAAD,EAAO,SAAe,CAAA,GACrB,iBAAiB,oBAAC,MAAD;IAAM,KAAK,MAAM;IAAa,UAAA;GAAoB,CAAA,CACjE;;EACJ,MAAM,cAAc,oBAAC,oBAAD;GAAoB,oBAAA;GAAiB,MAAM;EAAW,CAAA;CAC3E,EAAA,CAAA;CAGJ,IAAI,MAAM,SAAS,KAAA,GAAW;EAC5B,MAAM,EACJ,UAAU,WACV,MACA,MAAM,OACN,UAAU,WACV,YACA,KACA,SACA,eAAe,gBACf,QACA,OACA,GAAG,SACD;EACJ,MAAM,kBAAkB,aAAa,WAAW;EAChD,MAAM,eAAe,aAAc,MAAM,GAAG,IAAI,wBAAwB,wBAAyB;EACjG,OACE,oBAAC,KAAK,MAAN;GACE,SAAA;GACA,eAAa;GACb,eAAa;GACb,SAAS,YAAY,OAAO;GAC5B,OAAO,SAAS;GAChB,GAAI;GAEJ,UAAA,oBAAC,KAAD;IAAQ;IAAqC;IAAM,KAAK;IAAc,QAAQ;IAC3E,UAAA;GACA,CAAA;EACM,CAAA;CAEf;CAEA,MAAM,EACJ,UAAU,WACV,MAAM,OACN,UAAU,WACV,SACA,eAAe,gBACf,OACA,GAAG,SACD;CACJ,OACE,oBAAC,KAAK,MAAN;EACE,eAAa;EACb,eAAa;EACb,SAAS,YAAY,OAAO;EACvB;EACL,OAAO,SAAS;EAChB,GAAI;EAEH,UAAA;CACQ,CAAA;AAEf,CAAC;AACD,qBAAqB,cAAc;AASnC,IAAM,wBAAwB,YAC3B,EAAE,OAAO,UAAU,GAAG,SAAS,QAAQ;CACtC,OACE,qBAAC,KAAK,WAAN;EAAqB;EAAK,GAAI;EAA9B,UAAA,CACE,qBAAC,KAAK,gBAAN,EAAA,UAAA,CACE,oBAAC,MAAD,EAAA,UAAO,MAAY,CAAA,GACnB,oBAAC,WAAD,EAAiB,MAAK,IAAK,CAAA,CACR,EAAA,CAAA,GACpB,QACa;;AAEpB,CACF;AACA,sBAAsB,cAAc;AAIpC,IAAM,4BAA4B,YAA2D,OAAO,QAAQ;CAC1G,OAAO,oBAAC,KAAK,WAAN;EAAqB;EAAK,GAAI;CAAQ,CAAA;AAC/C,CAAC;AACD,0BAA0B,cAAc;AAExC,IAAA,2BAAe,kBAAkB,kBAAkB;CACjD,OAAO;CACP,MAAM;CACN,WAAW;AACb,CAAC"}
1
+ {"version":3,"file":"BitkitActionMenu.js","names":["_Fragment","ChakraSeparator"],"sources":["../../../lib/components/BitkitActionMenu/BitkitActionMenu.tsx"],"sourcesContent":["import { Box } from '@chakra-ui/react/box';\nimport {\n Menu,\n type MenuItemGroupProps,\n type MenuItemProps,\n type MenuRootProps,\n type MenuSeparatorProps,\n useMenuStyles,\n} from '@chakra-ui/react/menu';\nimport { Portal } from '@chakra-ui/react/portal';\nimport { Separator as ChakraSeparator } from '@chakra-ui/react/separator';\nimport { Text } from '@chakra-ui/react/text';\nimport { createContext, forwardRef, type MouseEvent, type ReactNode, type Ref, useContext, useId } from 'react';\n\nimport { type BitkitIconComponent, IconArrowNortheast } from '../../icons';\nimport { type BitkitDataAttributes, splitDataAttributes } from '../../utilities/dataAttributes';\nimport { withSubComponents } from '../../utilities/withSubComponents';\n\nconst BitkitActionMenuContext = createContext<MenuRootProps['size']>('lg');\n\n/**\n * `data-*` attributes are forwarded to the element carrying `role=\"menu\"` (the menu content), and\n * nothing else is — the same contract the dialogs have. The menu portals out, so this is the only\n * way to address the rendered list, e.g. from a test.\n */\nexport interface BitkitActionMenuProps extends Omit<MenuRootProps, 'children'>, BitkitDataAttributes {\n /** The menu's items — `BitkitActionMenu.Item`, `.Group` and `.Separator`. */\n children?: ReactNode;\n /**\n * Row density, inherited by every item. `lg` (default) is the standalone action menu; `md` is for\n * menus attached to dense UI, such as an overflow menu in a toolbar or a tab bar.\n */\n size?: MenuRootProps['size'];\n /**\n * The element the menu is anchored to — usually a `BitkitIconButton` or `BitkitButton`. Rendered\n * via `asChild`, so it must accept a ref.\n */\n trigger: ReactNode;\n}\n\nconst BitkitActionMenu = ({ trigger, children, size = 'lg', ...props }: BitkitActionMenuProps) => {\n // `Menu.Root` is a provider, not an element, so it drops the `data-*` attributes — they belong on\n // the content, which is the element carrying `role=\"menu\"`.\n const { dataAttributes, rest: rootProps } = splitDataAttributes(props);\n\n return (\n <Menu.Root size={size} {...rootProps}>\n <Menu.Trigger asChild>{trigger}</Menu.Trigger>\n <Portal>\n <Menu.Positioner>\n <BitkitActionMenuContext.Provider value={size}>\n <Menu.Content {...dataAttributes}>{children}</Menu.Content>\n </BitkitActionMenuContext.Provider>\n </Menu.Positioner>\n </Portal>\n </Menu.Root>\n );\n};\nBitkitActionMenu.displayName = 'BitkitActionMenu';\n\ninterface BitkitActionMenuItemCommonProps extends Omit<MenuItemProps, 'value'> {\n /** The item's label. */\n children?: ReactNode;\n /** Leading icon, sized from the menu's `size` (24 on `lg`, 16 on `md`). */\n icon?: BitkitIconComponent;\n /** Style the item as destructive — red label and icon. Use it for delete and similar actions. */\n isDanger?: boolean;\n /** Inert and marked `aria-disabled`: no selection, no `onClick`, and no navigation on an `href` item. */\n disabled?: boolean;\n /** A second, quieter line under the label. Adding it makes the row taller and top-aligns the icon. */\n secondaryText?: ReactNode;\n /**\n * Identifies the item to the menu machine. Omit it for a command item that does its own work in\n * `onClick` — a generated id is used, and typeahead matches the label either way. Pass one when\n * you read `onSelect` on the menu itself and need to tell the items apart.\n */\n value?: string;\n}\n\ninterface BitkitActionMenuItemAsButtonProps extends BitkitActionMenuItemCommonProps {\n href?: undefined;\n isExternal?: undefined;\n rel?: undefined;\n target?: undefined;\n}\n\ninterface BitkitActionMenuItemAsAnchorProps extends BitkitActionMenuItemCommonProps {\n /** Renders the item as an `<a>` instead of a menu button. */\n href: string;\n /**\n * Shorthand for `target=\"_blank\"` plus `rel=\"noreferrer noopener\"`. Also puts an\n * `IconArrowNortheast` at the end of the row — the design system's \"leaves this page\" marker.\n */\n isExternal?: boolean;\n /** Extra `rel` tokens. With `isExternal` the safety tokens are appended to these. */\n rel?: string;\n /** Anchor target. Ignored when `isExternal` is set. */\n target?: string;\n}\n\nexport type BitkitActionMenuItemProps = BitkitActionMenuItemAsButtonProps | BitkitActionMenuItemAsAnchorProps;\n\nconst BitkitActionMenuItem = forwardRef<HTMLElement, BitkitActionMenuItemProps>((props, ref) => {\n const { children, disabled, icon: Icon, isDanger, secondaryText } = props;\n const style = useMenuStyles();\n const menuCtx = useContext(BitkitActionMenuContext);\n const iconSize = menuCtx === 'lg' ? '24' : '16';\n const hasHelper = secondaryText ? true : undefined;\n const fallbackValue = useId();\n\n // Ark composes the consumer's `onClick` with its own, and only its own bails on `disabled` — so\n // without this a disabled item still runs the handler (and, as an anchor, still navigates).\n const handleClick = (onClick: MenuItemProps['onClick']) => (event: MouseEvent<HTMLDivElement>) => {\n if (disabled) {\n event.preventDefault();\n return;\n }\n onClick?.(event);\n };\n\n const content = (\n <>\n {Icon && <Icon size={iconSize} />}\n <Box flex=\"1\">\n <Text>{children}</Text>\n {secondaryText && <Text css={style.itemHelper}>{secondaryText}</Text>}\n </Box>\n {props.isExternal && <IconArrowNortheast data-suffix-icon size={iconSize} />}\n </>\n );\n\n if (props.href !== undefined) {\n const {\n children: _children,\n href,\n icon: _icon,\n isDanger: _isDanger,\n isExternal,\n rel,\n onClick,\n secondaryText: _secondaryText,\n target,\n value,\n ...rest\n } = props;\n const effectiveTarget = isExternal ? '_blank' : target;\n const effectiveRel = isExternal ? (rel ? `${rel} noreferrer noopener` : 'noreferrer noopener') : rel;\n return (\n <Menu.Item\n asChild\n data-danger={isDanger}\n data-helper={hasHelper}\n onClick={handleClick(onClick)}\n value={value ?? fallbackValue}\n {...rest}\n >\n <a ref={ref as Ref<HTMLAnchorElement>} href={href} rel={effectiveRel} target={effectiveTarget}>\n {content}\n </a>\n </Menu.Item>\n );\n }\n\n const {\n children: _children,\n icon: _icon,\n isDanger: _isDanger,\n onClick,\n secondaryText: _secondaryText,\n value,\n ...rest\n } = props;\n return (\n <Menu.Item\n data-danger={isDanger}\n data-helper={hasHelper}\n onClick={handleClick(onClick)}\n ref={ref as Ref<HTMLDivElement>}\n value={value ?? fallbackValue}\n {...rest}\n >\n {content}\n </Menu.Item>\n );\n});\nBitkitActionMenuItem.displayName = 'BitkitActionMenu.Item';\n\nexport interface BitkitActionMenuGroupProps extends MenuItemGroupProps {\n /** The group's items. */\n children?: ReactNode;\n /** The group's heading, rendered uppercase with a rule filling the rest of the row. */\n label: ReactNode;\n}\n\nconst BitkitActionMenuGroup = forwardRef<HTMLDivElement, BitkitActionMenuGroupProps>(\n ({ label, children, ...props }, ref) => {\n return (\n <Menu.ItemGroup ref={ref} {...props}>\n <Menu.ItemGroupLabel>\n <Text>{label}</Text>\n <ChakraSeparator flex=\"1\" />\n </Menu.ItemGroupLabel>\n {children}\n </Menu.ItemGroup>\n );\n },\n);\nBitkitActionMenuGroup.displayName = 'BitkitActionMenu.Group';\n\nexport type BitkitActionMenuSeparatorProps = MenuSeparatorProps;\n\nconst BitkitActionMenuSeparator = forwardRef<HTMLHRElement, BitkitActionMenuSeparatorProps>((props, ref) => {\n return <Menu.Separator ref={ref} {...props} />;\n});\nBitkitActionMenuSeparator.displayName = 'BitkitActionMenu.Separator';\n\nexport default withSubComponents(BitkitActionMenu, {\n Group: BitkitActionMenuGroup,\n Item: BitkitActionMenuItem,\n Separator: BitkitActionMenuSeparator,\n});\n"],"mappings":";;;;;;;;;;;AAkBA,IAAM,0BAA0B,cAAqC,IAAI;AAsBzE,IAAM,oBAAoB,EAAE,SAAS,UAAU,OAAO,MAAM,GAAG,YAAmC;CAGhG,MAAM,EAAE,gBAAgB,MAAM,cAAc,oBAAoB,KAAK;CAErE,OACE,qBAAC,KAAK,MAAN;EAAiB;EAAM,GAAI;EAA3B,UAAA,CACE,oBAAC,KAAK,SAAN;GAAc,SAAA;GAAS,UAAA;EAAsB,CAAA,GAC7C,oBAAC,QAAD,EAAA,UACE,oBAAC,KAAK,YAAN,EAAA,UACE,oBAAC,wBAAwB,UAAzB;GAAkC,OAAO;GACvC,UAAA,oBAAC,KAAK,SAAN;IAAc,GAAI;IAAiB;GAAuB,CAAA;EAC1B,CAAA,EACnB,CAAA,EACX,CAAA,CACC;;AAEf;AACA,iBAAiB,cAAc;AA4C/B,IAAM,uBAAuB,YAAoD,OAAO,QAAQ;CAC9F,MAAM,EAAE,UAAU,UAAU,MAAM,MAAM,UAAU,kBAAkB;CACpE,MAAM,QAAQ,cAAc;CAE5B,MAAM,WADU,WAAW,uBACV,MAAY,OAAO,OAAO;CAC3C,MAAM,YAAY,gBAAgB,OAAO,KAAA;CACzC,MAAM,gBAAgB,MAAM;CAI5B,MAAM,eAAe,aAAuC,UAAsC;EAChG,IAAI,UAAU;GACZ,MAAM,eAAe;GACrB;EACF;EACA,UAAU,KAAK;CACjB;CAEA,MAAM,UACJ,qBAAAA,YAAA,EAAA,UAAA;EACG,QAAQ,oBAAC,MAAD,EAAM,MAAM,SAAW,CAAA;EAChC,qBAAC,KAAD;GAAK,MAAK;GAAV,UAAA,CACE,oBAAC,MAAD,EAAO,SAAe,CAAA,GACrB,iBAAiB,oBAAC,MAAD;IAAM,KAAK,MAAM;IAAa,UAAA;GAAoB,CAAA,CACjE;;EACJ,MAAM,cAAc,oBAAC,oBAAD;GAAoB,oBAAA;GAAiB,MAAM;EAAW,CAAA;CAC3E,EAAA,CAAA;CAGJ,IAAI,MAAM,SAAS,KAAA,GAAW;EAC5B,MAAM,EACJ,UAAU,WACV,MACA,MAAM,OACN,UAAU,WACV,YACA,KACA,SACA,eAAe,gBACf,QACA,OACA,GAAG,SACD;EACJ,MAAM,kBAAkB,aAAa,WAAW;EAChD,MAAM,eAAe,aAAc,MAAM,GAAG,IAAI,wBAAwB,wBAAyB;EACjG,OACE,oBAAC,KAAK,MAAN;GACE,SAAA;GACA,eAAa;GACb,eAAa;GACb,SAAS,YAAY,OAAO;GAC5B,OAAO,SAAS;GAChB,GAAI;GAEJ,UAAA,oBAAC,KAAD;IAAQ;IAAqC;IAAM,KAAK;IAAc,QAAQ;IAC3E,UAAA;GACA,CAAA;EACM,CAAA;CAEf;CAEA,MAAM,EACJ,UAAU,WACV,MAAM,OACN,UAAU,WACV,SACA,eAAe,gBACf,OACA,GAAG,SACD;CACJ,OACE,oBAAC,KAAK,MAAN;EACE,eAAa;EACb,eAAa;EACb,SAAS,YAAY,OAAO;EACvB;EACL,OAAO,SAAS;EAChB,GAAI;EAEH,UAAA;CACQ,CAAA;AAEf,CAAC;AACD,qBAAqB,cAAc;AASnC,IAAM,wBAAwB,YAC3B,EAAE,OAAO,UAAU,GAAG,SAAS,QAAQ;CACtC,OACE,qBAAC,KAAK,WAAN;EAAqB;EAAK,GAAI;EAA9B,UAAA,CACE,qBAAC,KAAK,gBAAN,EAAA,UAAA,CACE,oBAAC,MAAD,EAAA,UAAO,MAAY,CAAA,GACnB,oBAACC,WAAD,EAAiB,MAAK,IAAK,CAAA,CACR,EAAA,CAAA,GACpB,QACa;;AAEpB,CACF;AACA,sBAAsB,cAAc;AAIpC,IAAM,4BAA4B,YAA2D,OAAO,QAAQ;CAC1G,OAAO,oBAAC,KAAK,WAAN;EAAqB;EAAK,GAAI;CAAQ,CAAA;AAC/C,CAAC;AACD,0BAA0B,cAAc;AAExC,IAAA,2BAAe,kBAAkB,kBAAkB;CACjD,OAAO;CACP,MAAM;CACN,WAAW;AACb,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"BitkitAvatar.js","names":[],"sources":["../../../lib/components/BitkitAvatar/BitkitAvatar.tsx"],"sourcesContent":["import { Avatar, type AvatarRootProps } from '@chakra-ui/react/avatar';\nimport { Box } from '@chakra-ui/react/box';\nimport { useSlotRecipe } from '@chakra-ui/react/styled-system';\nimport { forwardRef } from 'react';\n\nimport { type BitkitIconComponent } from '../../icons';\nimport avatarSlotRecipe from '../../theme/slot-recipes/Avatar.recipe';\n\nexport type BitkitAvatarProps = Omit<\n AvatarRootProps,\n 'variant' | 'backgroundColor' | 'background' | 'bg' | 'colorPalette'\n> &\n (\n | {\n variant: 'image';\n src: string;\n name: string;\n icon?: never;\n iconColor?: never;\n backgroundColor?: never;\n }\n | {\n variant: 'image+icon';\n src: string;\n name: string;\n icon: BitkitIconComponent;\n iconColor?: never;\n backgroundColor?: never;\n }\n | {\n variant: 'icon';\n src?: never;\n name?: never;\n icon: BitkitIconComponent;\n iconColor?: AvatarRootProps['color'];\n backgroundColor?: AvatarRootProps['color'];\n }\n | {\n variant: 'letters';\n src?: never;\n name: string;\n icon?: never;\n iconColor?: never;\n backgroundColor?: never;\n }\n | {\n variant: 'user';\n src: string;\n name: string;\n icon?: never;\n iconColor?: never;\n backgroundColor?: never;\n }\n );\n\ntype AvatarColorVariant =\n | 'neutral'\n | 'purple'\n | 'indigo'\n | 'blue'\n | 'green'\n | 'yellow'\n | 'red'\n | 'orange'\n | 'turquoise';\n\nconst COLORS = Object.keys(avatarSlotRecipe.variants?.colorVariant || {}) as AvatarColorVariant[];\n\nconst pickPalette = (name?: string): AvatarColorVariant => {\n if (!name || name.length === 0) return 'neutral';\n const str = name.trim();\n return COLORS[(str.charCodeAt(0) + str.charCodeAt(str.length - 1)) % COLORS.length];\n};\n\nconst processFallbackName = (name?: string) => {\n const str = name?.trim() || '';\n return str && str.length >= 2 ? `${str[0]} ${str[str.length - 1]}` : str;\n};\n\nconst BitkitAvatar = forwardRef<HTMLDivElement, BitkitAvatarProps>((props, ref) => {\n const {\n size,\n variant,\n src,\n name,\n icon: Icon,\n colorVariant = pickPalette(name),\n iconColor,\n backgroundColor,\n ...rest\n } = props;\n\n const recipe = useSlotRecipe({ key: 'avatar' });\n const styleVariant = variant === 'user' && ['24', '32', '40', '48'].includes(size as string) ? 'circle' : 'rounded';\n const styles = recipe({ size, variant: styleVariant });\n const fallbackName = processFallbackName(name);\n\n return (\n <Avatar.Root\n ref={ref}\n size={size}\n variant={styleVariant}\n colorVariant={colorVariant}\n backgroundColor={backgroundColor}\n {...rest}\n >\n {!!fallbackName && <Avatar.Fallback name={fallbackName} />}\n {!!src && <Avatar.Image src={src} />}\n {!!Icon && variant === 'icon' && <Icon css={styles.icon} color={iconColor} size=\"24\" />}\n {!!Icon && variant === 'image+icon' && (\n <Box css={styles.badgeContainer}>\n <Icon css={styles.badge} size=\"16\" />\n </Box>\n )}\n </Avatar.Root>\n );\n});\n\nBitkitAvatar.displayName = 'BitkitAvatar';\n\nexport default BitkitAvatar;\n"],"mappings":";;;;;;;AAkEA,IAAM,SAAS,OAAO,KAAK,iBAAiB,UAAU,gBAAgB,CAAC,CAAC;AAExE,IAAM,eAAe,SAAsC;CACzD,IAAI,CAAC,QAAQ,KAAK,WAAW,GAAG,OAAO;CACvC,MAAM,MAAM,KAAK,KAAK;CACtB,OAAO,QAAQ,IAAI,WAAW,CAAC,IAAI,IAAI,WAAW,IAAI,SAAS,CAAC,KAAK,OAAO;AAC9E;AAEA,IAAM,uBAAuB,SAAkB;CAC7C,MAAM,MAAM,MAAM,KAAK,KAAK;CAC5B,OAAO,OAAO,IAAI,UAAU,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,SAAS,OAAO;AACvE;AAEA,IAAM,eAAe,YAA+C,OAAO,QAAQ;CACjF,MAAM,EACJ,MACA,SACA,KACA,MACA,MAAM,MACN,eAAe,YAAY,IAAI,GAC/B,WACA,iBACA,GAAG,SACD;CAEJ,MAAM,SAAS,cAAc,EAAE,KAAK,SAAS,CAAC;CAC9C,MAAM,eAAe,YAAY,UAAU;EAAC;EAAM;EAAM;EAAM;CAAI,CAAC,CAAC,SAAS,IAAc,IAAI,WAAW;CAC1G,MAAM,SAAS,OAAO;EAAE;EAAM,SAAS;CAAa,CAAC;CACrD,MAAM,eAAe,oBAAoB,IAAI;CAE7C,OACE,qBAAC,OAAO,MAAR;EACO;EACC;EACN,SAAS;EACK;EACG;EACjB,GAAI;EANN,UAAA;GAQG,CAAC,CAAC,gBAAgB,oBAAC,OAAO,UAAR,EAAiB,MAAM,aAAe,CAAA;GACxD,CAAC,CAAC,OAAO,oBAAC,OAAO,OAAR,EAAmB,IAAM,CAAA;GAClC,CAAC,CAAC,QAAQ,YAAY,UAAU,oBAAC,MAAD;IAAM,KAAK,OAAO;IAAM,OAAO;IAAW,MAAK;GAAM,CAAA;GACrF,CAAC,CAAC,QAAQ,YAAY,gBACrB,oBAAC,KAAD;IAAK,KAAK,OAAO;IACf,UAAA,oBAAC,MAAD;KAAM,KAAK,OAAO;KAAO,MAAK;IAAM,CAAA;GACjC,CAAA;EAEI;;AAEjB,CAAC;AAED,aAAa,cAAc"}
1
+ {"version":3,"file":"BitkitAvatar.js","names":[],"sources":["../../../lib/components/BitkitAvatar/BitkitAvatar.tsx"],"sourcesContent":["import { Avatar, type AvatarRootProps } from '@chakra-ui/react/avatar';\nimport { Box } from '@chakra-ui/react/box';\nimport { useSlotRecipe } from '@chakra-ui/react/styled-system';\nimport { forwardRef } from 'react';\n\nimport { type BitkitIconComponent } from '../../icons';\nimport avatarSlotRecipe from '../../theme/slot-recipes/Avatar.recipe';\n\nexport type BitkitAvatarProps = Omit<\n AvatarRootProps,\n 'variant' | 'backgroundColor' | 'background' | 'bg' | 'colorPalette'\n> &\n (\n | {\n variant: 'image';\n src: string;\n name: string;\n icon?: never;\n iconColor?: never;\n backgroundColor?: never;\n }\n | {\n variant: 'image+icon';\n src: string;\n name: string;\n icon: BitkitIconComponent;\n iconColor?: never;\n backgroundColor?: never;\n }\n | {\n variant: 'icon';\n src?: never;\n name?: never;\n icon: BitkitIconComponent;\n iconColor?: AvatarRootProps['color'];\n backgroundColor?: AvatarRootProps['color'];\n }\n | {\n variant: 'letters';\n src?: never;\n name: string;\n icon?: never;\n iconColor?: never;\n backgroundColor?: never;\n }\n | {\n variant: 'user';\n src: string;\n name: string;\n icon?: never;\n iconColor?: never;\n backgroundColor?: never;\n }\n );\n\ntype AvatarColorVariant =\n 'neutral' | 'purple' | 'indigo' | 'blue' | 'green' | 'yellow' | 'red' | 'orange' | 'turquoise';\n\nconst COLORS = Object.keys(avatarSlotRecipe.variants?.colorVariant || {}) as AvatarColorVariant[];\n\nconst pickPalette = (name?: string): AvatarColorVariant => {\n if (!name || name.length === 0) return 'neutral';\n const str = name.trim();\n return COLORS[(str.charCodeAt(0) + str.charCodeAt(str.length - 1)) % COLORS.length];\n};\n\nconst processFallbackName = (name?: string) => {\n const str = name?.trim() || '';\n return str && str.length >= 2 ? `${str[0]} ${str[str.length - 1]}` : str;\n};\n\nconst BitkitAvatar = forwardRef<HTMLDivElement, BitkitAvatarProps>((props, ref) => {\n const {\n size,\n variant,\n src,\n name,\n icon: Icon,\n colorVariant = pickPalette(name),\n iconColor,\n backgroundColor,\n ...rest\n } = props;\n\n const recipe = useSlotRecipe({ key: 'avatar' });\n const styleVariant = variant === 'user' && ['24', '32', '40', '48'].includes(size as string) ? 'circle' : 'rounded';\n const styles = recipe({ size, variant: styleVariant });\n const fallbackName = processFallbackName(name);\n\n return (\n <Avatar.Root\n ref={ref}\n size={size}\n variant={styleVariant}\n colorVariant={colorVariant}\n backgroundColor={backgroundColor}\n {...rest}\n >\n {!!fallbackName && <Avatar.Fallback name={fallbackName} />}\n {!!src && <Avatar.Image src={src} />}\n {!!Icon && variant === 'icon' && <Icon css={styles.icon} color={iconColor} size=\"24\" />}\n {!!Icon && variant === 'image+icon' && (\n <Box css={styles.badgeContainer}>\n <Icon css={styles.badge} size=\"16\" />\n </Box>\n )}\n </Avatar.Root>\n );\n});\n\nBitkitAvatar.displayName = 'BitkitAvatar';\n\nexport default BitkitAvatar;\n"],"mappings":";;;;;;;AA0DA,IAAM,SAAS,OAAO,KAAK,iBAAiB,UAAU,gBAAgB,CAAC,CAAC;AAExE,IAAM,eAAe,SAAsC;CACzD,IAAI,CAAC,QAAQ,KAAK,WAAW,GAAG,OAAO;CACvC,MAAM,MAAM,KAAK,KAAK;CACtB,OAAO,QAAQ,IAAI,WAAW,CAAC,IAAI,IAAI,WAAW,IAAI,SAAS,CAAC,KAAK,OAAO;AAC9E;AAEA,IAAM,uBAAuB,SAAkB;CAC7C,MAAM,MAAM,MAAM,KAAK,KAAK;CAC5B,OAAO,OAAO,IAAI,UAAU,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,SAAS,OAAO;AACvE;AAEA,IAAM,eAAe,YAA+C,OAAO,QAAQ;CACjF,MAAM,EACJ,MACA,SACA,KACA,MACA,MAAM,MACN,eAAe,YAAY,IAAI,GAC/B,WACA,iBACA,GAAG,SACD;CAEJ,MAAM,SAAS,cAAc,EAAE,KAAK,SAAS,CAAC;CAC9C,MAAM,eAAe,YAAY,UAAU;EAAC;EAAM;EAAM;EAAM;CAAI,CAAC,CAAC,SAAS,IAAc,IAAI,WAAW;CAC1G,MAAM,SAAS,OAAO;EAAE;EAAM,SAAS;CAAa,CAAC;CACrD,MAAM,eAAe,oBAAoB,IAAI;CAE7C,OACE,qBAAC,OAAO,MAAR;EACO;EACC;EACN,SAAS;EACK;EACG;EACjB,GAAI;EANN,UAAA;GAQG,CAAC,CAAC,gBAAgB,oBAAC,OAAO,UAAR,EAAiB,MAAM,aAAe,CAAA;GACxD,CAAC,CAAC,OAAO,oBAAC,OAAO,OAAR,EAAmB,IAAM,CAAA;GAClC,CAAC,CAAC,QAAQ,YAAY,UAAU,oBAAC,MAAD;IAAM,KAAK,OAAO;IAAM,OAAO;IAAW,MAAK;GAAM,CAAA;GACrF,CAAC,CAAC,QAAQ,YAAY,gBACrB,oBAAC,KAAD;IAAK,KAAK,OAAO;IACf,UAAA,oBAAC,MAAD;KAAM,KAAK,OAAO;KAAO,MAAK;IAAM,CAAA;GACjC,CAAA;EAEI;;AAEjB,CAAC;AAED,aAAa,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"BitkitButton.js","names":[],"sources":["../../../lib/components/BitkitButton/BitkitButton.tsx"],"sourcesContent":["import { Button, type ButtonProps } from '@chakra-ui/react/button';\nimport { Skeleton } from '@chakra-ui/react/skeleton';\nimport { chakra, type HTMLChakraProps, type RecipeProps, useRecipe } from '@chakra-ui/react/styled-system';\nimport {\n Children,\n cloneElement,\n forwardRef,\n type KeyboardEvent,\n type MouseEvent,\n type ReactElement,\n type ReactNode,\n type Ref,\n} from 'react';\n\nimport { type BitkitIconComponent } from '../../icons';\n\ntype BitkitButtonOmittedFromButton =\n | 'asChild'\n | 'children'\n | 'colorPalette'\n | 'disabled'\n | 'loading'\n | 'loadingText'\n | 'spinner'\n | 'spinnerPlacement';\n\ninterface BitkitButtonCommonProps {\n icon?: BitkitIconComponent;\n suffixIcon?: BitkitIconComponent;\n}\n\nexport interface BitkitButtonAsButtonProps\n extends BitkitButtonCommonProps, Omit<ButtonProps, BitkitButtonOmittedFromButton> {\n asChild?: false;\n children: string;\n href?: undefined;\n isExternal?: undefined;\n state?: 'disabled' | 'loading' | 'skeleton';\n}\n\nexport interface BitkitButtonAsAnchorProps\n extends BitkitButtonCommonProps, Omit<HTMLChakraProps<'a'>, 'children' | 'colorPalette'>, RecipeProps<'button'> {\n asChild?: false;\n children: string;\n href: string;\n isExternal?: boolean;\n state?: 'disabled' | 'skeleton';\n}\n\ninterface BitkitButtonAsChildProps extends BitkitButtonCommonProps, Omit<ButtonProps, BitkitButtonOmittedFromButton> {\n asChild: true;\n children: ReactElement;\n href?: undefined;\n isExternal?: undefined;\n state?: 'disabled' | 'loading' | 'skeleton';\n}\n\nexport type BitkitButtonProps = BitkitButtonAsButtonProps | BitkitButtonAsAnchorProps | BitkitButtonAsChildProps;\n\n// The forwarded ref is typed as HTMLElement to cover all three modes (button, anchor, slot/asChild),\n// since asChild can render any element (router Link, custom wrappers, etc.). Inner narrow casts\n// satisfy the wrapped Chakra components without affecting the consumer-visible ref shape.\nconst BitkitButton = forwardRef<HTMLElement, BitkitButtonProps>((props, ref) => {\n const buttonRecipe = useRecipe({ key: 'button' });\n const Icon = props.icon;\n const SuffixIcon = props.suffixIcon;\n // Resolve the size the recipe would apply before branching on it: an unset `size` reaches us as\n // `undefined` because the recipe's default lives in CSS, not on the prop. Keep the fallback equal\n // to `defaultVariants.size` in Button.recipe.ts.\n const iconSize = (props.size ?? 'lg') === 'lg' ? '24' : '16';\n const isDisabled = props.state === 'disabled';\n const isSkeleton = props.state === 'skeleton';\n\n // --- Slot mode (asChild) ---\n if (props.asChild) {\n const { asChild: _asChild, children, icon: _icon, state, suffixIcon: _suffixIcon, ...buttonRest } = props;\n const onlyChild = Children.only(children) as ReactElement<{ children?: ReactNode }>;\n const buttonElement = (\n <Button\n asChild\n disabled={isDisabled}\n loading={state === 'loading'}\n ref={ref as Ref<HTMLButtonElement>}\n {...buttonRest}\n >\n {cloneElement(\n onlyChild,\n undefined,\n <>\n {Icon && <Icon marginInlineStart=\"-4\" size={iconSize} />}\n {onlyChild.props.children}\n {SuffixIcon && <SuffixIcon marginInlineEnd=\"-4\" size={iconSize} />}\n </>,\n )}\n </Button>\n );\n return isSkeleton ? (\n <Skeleton asChild loading>\n {buttonElement}\n </Skeleton>\n ) : (\n buttonElement\n );\n }\n\n // --- Anchor mode (href) ---\n if (props.href !== undefined) {\n const {\n children,\n css,\n href,\n icon: _icon,\n isExternal,\n onClick,\n onKeyDown,\n rel,\n size,\n state: _state,\n suffixIcon: _suffixIcon,\n target,\n variant,\n ...anchorRest\n } = props;\n const effectiveTarget = isExternal ? '_blank' : target;\n const effectiveRel = isExternal ? (rel ? `${rel} noreferrer noopener` : 'noreferrer noopener') : rel;\n const handleClick = isDisabled\n ? (e: MouseEvent<HTMLAnchorElement>) => {\n e.preventDefault();\n e.stopPropagation();\n }\n : onClick;\n const handleKeyDown = isDisabled\n ? (e: KeyboardEvent<HTMLAnchorElement>) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n e.stopPropagation();\n }\n }\n : onKeyDown;\n const anchorElement = (\n <chakra.a\n ref={ref as Ref<HTMLAnchorElement>}\n {...anchorRest}\n aria-disabled={isDisabled || undefined}\n // A native <a> can't be `:disabled`, so mark `data-disabled` too: it's the styling/interaction hook the\n // recipe's `_hover`/`_active` conditions exclude (`:not(…, [data-disabled])`), while `aria-disabled` stays\n // for a11y. Without it, hover/active would still match a disabled anchor and override the disabled colors.\n css={[buttonRecipe({ size, variant }), css]}\n data-disabled={isDisabled || undefined}\n href={isDisabled ? undefined : href}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n rel={effectiveRel}\n target={effectiveTarget}\n >\n {Icon && <Icon marginInlineStart=\"-4\" size={iconSize} />}\n {children}\n {SuffixIcon && <SuffixIcon marginInlineEnd=\"-4\" size={iconSize} />}\n </chakra.a>\n );\n return isSkeleton ? (\n <Skeleton asChild loading>\n {anchorElement}\n </Skeleton>\n ) : (\n anchorElement\n );\n }\n\n // --- Button mode (default) ---\n const { children, icon: _icon, state, suffixIcon: _suffixIcon, ...buttonRest } = props;\n return (\n <Skeleton asChild loading={isSkeleton}>\n <Button disabled={isDisabled} loading={state === 'loading'} ref={ref as Ref<HTMLButtonElement>} {...buttonRest}>\n {Icon && <Icon marginInlineStart=\"-4\" size={iconSize} />}\n {children}\n {SuffixIcon && <SuffixIcon marginInlineEnd=\"-4\" size={iconSize} />}\n </Button>\n </Skeleton>\n );\n});\n\nBitkitButton.displayName = 'BitkitButton';\n\nexport default BitkitButton;\n"],"mappings":";;;;;;AA8DA,IAAM,eAAe,YAA4C,OAAO,QAAQ;CAC9E,MAAM,eAAe,UAAU,EAAE,KAAK,SAAS,CAAC;CAChD,MAAM,OAAO,MAAM;CACnB,MAAM,aAAa,MAAM;CAIzB,MAAM,YAAY,MAAM,QAAQ,UAAU,OAAO,OAAO;CACxD,MAAM,aAAa,MAAM,UAAU;CACnC,MAAM,aAAa,MAAM,UAAU;CAGnC,IAAI,MAAM,SAAS;EACjB,MAAM,EAAE,SAAS,UAAU,UAAU,MAAM,OAAO,OAAO,YAAY,aAAa,GAAG,eAAe;EACpG,MAAM,YAAY,SAAS,KAAK,QAAQ;EACxC,MAAM,gBACJ,oBAAC,QAAD;GACE,SAAA;GACA,UAAU;GACV,SAAS,UAAU;GACd;GACL,GAAI;GAEH,UAAA,aACC,WACA,KAAA,GACA,qBAAA,YAAA,EAAA,UAAA;IACG,QAAQ,oBAAC,MAAD;KAAM,mBAAkB;KAAK,MAAM;IAAW,CAAA;IACtD,UAAU,MAAM;IAChB,cAAc,oBAAC,YAAD;KAAY,iBAAgB;KAAK,MAAM;IAAW,CAAA;GACjE,EAAA,CAAA,CACJ;EACM,CAAA;EAEV,OAAO,aACL,oBAAC,UAAD;GAAU,SAAA;GAAQ,SAAA;GACf,UAAA;EACO,CAAA,IAEV;CAEJ;CAGA,IAAI,MAAM,SAAS,KAAA,GAAW;EAC5B,MAAM,EACJ,UACA,KACA,MACA,MAAM,OACN,YACA,SACA,WACA,KACA,MACA,OAAO,QACP,YAAY,aACZ,QACA,SACA,GAAG,eACD;EACJ,MAAM,kBAAkB,aAAa,WAAW;EAChD,MAAM,eAAe,aAAc,MAAM,GAAG,IAAI,wBAAwB,wBAAyB;EACjG,MAAM,cAAc,cACf,MAAqC;GACpC,EAAE,eAAe;GACjB,EAAE,gBAAgB;EACpB,IACA;EACJ,MAAM,gBAAgB,cACjB,MAAwC;GACvC,IAAI,EAAE,QAAQ,WAAW,EAAE,QAAQ,KAAK;IACtC,EAAE,eAAe;IACjB,EAAE,gBAAgB;GACpB;EACF,IACA;EACJ,MAAM,gBACJ,qBAAC,OAAO,GAAR;GACO;GACL,GAAI;GACJ,iBAAe,cAAc,KAAA;GAI7B,KAAK,CAAC,aAAa;IAAE;IAAM;GAAQ,CAAC,GAAG,GAAG;GAC1C,iBAAe,cAAc,KAAA;GAC7B,MAAM,aAAa,KAAA,IAAY;GAC/B,SAAS;GACT,WAAW;GACX,KAAK;GACL,QAAQ;GAbV,UAAA;IAeG,QAAQ,oBAAC,MAAD;KAAM,mBAAkB;KAAK,MAAM;IAAW,CAAA;IACtD;IACA,cAAc,oBAAC,YAAD;KAAY,iBAAgB;KAAK,MAAM;IAAW,CAAA;GACzD;;EAEZ,OAAO,aACL,oBAAC,UAAD;GAAU,SAAA;GAAQ,SAAA;GACf,UAAA;EACO,CAAA,IAEV;CAEJ;CAGA,MAAM,EAAE,UAAU,MAAM,OAAO,OAAO,YAAY,aAAa,GAAG,eAAe;CACjF,OACE,oBAAC,UAAD;EAAU,SAAA;EAAQ,SAAS;EACzB,UAAA,qBAAC,QAAD;GAAQ,UAAU;GAAY,SAAS,UAAU;GAAgB;GAA+B,GAAI;GAApG,UAAA;IACG,QAAQ,oBAAC,MAAD;KAAM,mBAAkB;KAAK,MAAM;IAAW,CAAA;IACtD;IACA,cAAc,oBAAC,YAAD;KAAY,iBAAgB;KAAK,MAAM;IAAW,CAAA;GAC3D;;CACA,CAAA;AAEd,CAAC;AAED,aAAa,cAAc"}
1
+ {"version":3,"file":"BitkitButton.js","names":["_Fragment"],"sources":["../../../lib/components/BitkitButton/BitkitButton.tsx"],"sourcesContent":["import { Button, type ButtonProps } from '@chakra-ui/react/button';\nimport { Skeleton } from '@chakra-ui/react/skeleton';\nimport { chakra, type HTMLChakraProps, type RecipeProps, useRecipe } from '@chakra-ui/react/styled-system';\nimport {\n Children,\n cloneElement,\n forwardRef,\n type KeyboardEvent,\n type MouseEvent,\n type ReactElement,\n type ReactNode,\n type Ref,\n} from 'react';\n\nimport { type BitkitIconComponent } from '../../icons';\n\ntype BitkitButtonOmittedFromButton =\n 'asChild' | 'children' | 'colorPalette' | 'disabled' | 'loading' | 'loadingText' | 'spinner' | 'spinnerPlacement';\n\ninterface BitkitButtonCommonProps {\n icon?: BitkitIconComponent;\n suffixIcon?: BitkitIconComponent;\n}\n\nexport interface BitkitButtonAsButtonProps\n extends BitkitButtonCommonProps, Omit<ButtonProps, BitkitButtonOmittedFromButton> {\n asChild?: false;\n children: string;\n href?: undefined;\n isExternal?: undefined;\n state?: 'disabled' | 'loading' | 'skeleton';\n}\n\nexport interface BitkitButtonAsAnchorProps\n extends BitkitButtonCommonProps, Omit<HTMLChakraProps<'a'>, 'children' | 'colorPalette'>, RecipeProps<'button'> {\n asChild?: false;\n children: string;\n href: string;\n isExternal?: boolean;\n state?: 'disabled' | 'skeleton';\n}\n\ninterface BitkitButtonAsChildProps extends BitkitButtonCommonProps, Omit<ButtonProps, BitkitButtonOmittedFromButton> {\n asChild: true;\n children: ReactElement;\n href?: undefined;\n isExternal?: undefined;\n state?: 'disabled' | 'loading' | 'skeleton';\n}\n\nexport type BitkitButtonProps = BitkitButtonAsButtonProps | BitkitButtonAsAnchorProps | BitkitButtonAsChildProps;\n\n// The forwarded ref is typed as HTMLElement to cover all three modes (button, anchor, slot/asChild),\n// since asChild can render any element (router Link, custom wrappers, etc.). Inner narrow casts\n// satisfy the wrapped Chakra components without affecting the consumer-visible ref shape.\nconst BitkitButton = forwardRef<HTMLElement, BitkitButtonProps>((props, ref) => {\n const buttonRecipe = useRecipe({ key: 'button' });\n const Icon = props.icon;\n const SuffixIcon = props.suffixIcon;\n // Resolve the size the recipe would apply before branching on it: an unset `size` reaches us as\n // `undefined` because the recipe's default lives in CSS, not on the prop. Keep the fallback equal\n // to `defaultVariants.size` in Button.recipe.ts.\n const iconSize = (props.size ?? 'lg') === 'lg' ? '24' : '16';\n const isDisabled = props.state === 'disabled';\n const isSkeleton = props.state === 'skeleton';\n\n // --- Slot mode (asChild) ---\n if (props.asChild) {\n const { asChild: _asChild, children, icon: _icon, state, suffixIcon: _suffixIcon, ...buttonRest } = props;\n const onlyChild = Children.only(children) as ReactElement<{ children?: ReactNode }>;\n const buttonElement = (\n <Button\n asChild\n disabled={isDisabled}\n loading={state === 'loading'}\n ref={ref as Ref<HTMLButtonElement>}\n {...buttonRest}\n >\n {cloneElement(\n onlyChild,\n undefined,\n <>\n {Icon && <Icon marginInlineStart=\"-4\" size={iconSize} />}\n {onlyChild.props.children}\n {SuffixIcon && <SuffixIcon marginInlineEnd=\"-4\" size={iconSize} />}\n </>,\n )}\n </Button>\n );\n return isSkeleton ? (\n <Skeleton asChild loading>\n {buttonElement}\n </Skeleton>\n ) : (\n buttonElement\n );\n }\n\n // --- Anchor mode (href) ---\n if (props.href !== undefined) {\n const {\n children,\n css,\n href,\n icon: _icon,\n isExternal,\n onClick,\n onKeyDown,\n rel,\n size,\n state: _state,\n suffixIcon: _suffixIcon,\n target,\n variant,\n ...anchorRest\n } = props;\n const effectiveTarget = isExternal ? '_blank' : target;\n const effectiveRel = isExternal ? (rel ? `${rel} noreferrer noopener` : 'noreferrer noopener') : rel;\n const handleClick = isDisabled\n ? (e: MouseEvent<HTMLAnchorElement>) => {\n e.preventDefault();\n e.stopPropagation();\n }\n : onClick;\n const handleKeyDown = isDisabled\n ? (e: KeyboardEvent<HTMLAnchorElement>) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n e.stopPropagation();\n }\n }\n : onKeyDown;\n const anchorElement = (\n <chakra.a\n ref={ref as Ref<HTMLAnchorElement>}\n {...anchorRest}\n aria-disabled={isDisabled || undefined}\n // A native <a> can't be `:disabled`, so mark `data-disabled` too: it's the styling/interaction hook the\n // recipe's `_hover`/`_active` conditions exclude (`:not(…, [data-disabled])`), while `aria-disabled` stays\n // for a11y. Without it, hover/active would still match a disabled anchor and override the disabled colors.\n css={[buttonRecipe({ size, variant }), css]}\n data-disabled={isDisabled || undefined}\n href={isDisabled ? undefined : href}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n rel={effectiveRel}\n target={effectiveTarget}\n >\n {Icon && <Icon marginInlineStart=\"-4\" size={iconSize} />}\n {children}\n {SuffixIcon && <SuffixIcon marginInlineEnd=\"-4\" size={iconSize} />}\n </chakra.a>\n );\n return isSkeleton ? (\n <Skeleton asChild loading>\n {anchorElement}\n </Skeleton>\n ) : (\n anchorElement\n );\n }\n\n // --- Button mode (default) ---\n const { children, icon: _icon, state, suffixIcon: _suffixIcon, ...buttonRest } = props;\n return (\n <Skeleton asChild loading={isSkeleton}>\n <Button disabled={isDisabled} loading={state === 'loading'} ref={ref as Ref<HTMLButtonElement>} {...buttonRest}>\n {Icon && <Icon marginInlineStart=\"-4\" size={iconSize} />}\n {children}\n {SuffixIcon && <SuffixIcon marginInlineEnd=\"-4\" size={iconSize} />}\n </Button>\n </Skeleton>\n );\n});\n\nBitkitButton.displayName = 'BitkitButton';\n\nexport default BitkitButton;\n"],"mappings":";;;;;;AAuDA,IAAM,eAAe,YAA4C,OAAO,QAAQ;CAC9E,MAAM,eAAe,UAAU,EAAE,KAAK,SAAS,CAAC;CAChD,MAAM,OAAO,MAAM;CACnB,MAAM,aAAa,MAAM;CAIzB,MAAM,YAAY,MAAM,QAAQ,UAAU,OAAO,OAAO;CACxD,MAAM,aAAa,MAAM,UAAU;CACnC,MAAM,aAAa,MAAM,UAAU;CAGnC,IAAI,MAAM,SAAS;EACjB,MAAM,EAAE,SAAS,UAAU,UAAU,MAAM,OAAO,OAAO,YAAY,aAAa,GAAG,eAAe;EACpG,MAAM,YAAY,SAAS,KAAK,QAAQ;EACxC,MAAM,gBACJ,oBAAC,QAAD;GACE,SAAA;GACA,UAAU;GACV,SAAS,UAAU;GACd;GACL,GAAI;GAEH,UAAA,aACC,WACA,KAAA,GACA,qBAAAA,YAAA,EAAA,UAAA;IACG,QAAQ,oBAAC,MAAD;KAAM,mBAAkB;KAAK,MAAM;IAAW,CAAA;IACtD,UAAU,MAAM;IAChB,cAAc,oBAAC,YAAD;KAAY,iBAAgB;KAAK,MAAM;IAAW,CAAA;GACjE,EAAA,CAAA,CACJ;EACM,CAAA;EAEV,OAAO,aACL,oBAAC,UAAD;GAAU,SAAA;GAAQ,SAAA;GACf,UAAA;EACO,CAAA,IAEV;CAEJ;CAGA,IAAI,MAAM,SAAS,KAAA,GAAW;EAC5B,MAAM,EACJ,UACA,KACA,MACA,MAAM,OACN,YACA,SACA,WACA,KACA,MACA,OAAO,QACP,YAAY,aACZ,QACA,SACA,GAAG,eACD;EACJ,MAAM,kBAAkB,aAAa,WAAW;EAChD,MAAM,eAAe,aAAc,MAAM,GAAG,IAAI,wBAAwB,wBAAyB;EACjG,MAAM,cAAc,cACf,MAAqC;GACpC,EAAE,eAAe;GACjB,EAAE,gBAAgB;EACpB,IACA;EACJ,MAAM,gBAAgB,cACjB,MAAwC;GACvC,IAAI,EAAE,QAAQ,WAAW,EAAE,QAAQ,KAAK;IACtC,EAAE,eAAe;IACjB,EAAE,gBAAgB;GACpB;EACF,IACA;EACJ,MAAM,gBACJ,qBAAC,OAAO,GAAR;GACO;GACL,GAAI;GACJ,iBAAe,cAAc,KAAA;GAI7B,KAAK,CAAC,aAAa;IAAE;IAAM;GAAQ,CAAC,GAAG,GAAG;GAC1C,iBAAe,cAAc,KAAA;GAC7B,MAAM,aAAa,KAAA,IAAY;GAC/B,SAAS;GACT,WAAW;GACX,KAAK;GACL,QAAQ;GAbV,UAAA;IAeG,QAAQ,oBAAC,MAAD;KAAM,mBAAkB;KAAK,MAAM;IAAW,CAAA;IACtD;IACA,cAAc,oBAAC,YAAD;KAAY,iBAAgB;KAAK,MAAM;IAAW,CAAA;GACzD;;EAEZ,OAAO,aACL,oBAAC,UAAD;GAAU,SAAA;GAAQ,SAAA;GACf,UAAA;EACO,CAAA,IAEV;CAEJ;CAGA,MAAM,EAAE,UAAU,MAAM,OAAO,OAAO,YAAY,aAAa,GAAG,eAAe;CACjF,OACE,oBAAC,UAAD;EAAU,SAAA;EAAQ,SAAS;EACzB,UAAA,qBAAC,QAAD;GAAQ,UAAU;GAAY,SAAS,UAAU;GAAgB;GAA+B,GAAI;GAApG,UAAA;IACG,QAAQ,oBAAC,MAAD;KAAM,mBAAkB;KAAK,MAAM;IAAW,CAAA;IACtD;IACA,cAAc,oBAAC,YAAD;KAAY,iBAAgB;KAAK,MAAM;IAAW,CAAA;GAC3D;;CACA,CAAA;AAEd,CAAC;AAED,aAAa,cAAc"}
@@ -1,25 +1,13 @@
1
1
  import { ReactNode } from 'react';
2
2
  export interface BitkitCalendarProps {
3
3
  children?: ReactNode;
4
- /** Text for a day's tooltip, e.g. why it can't be picked. Return `undefined` for no tooltip. */
5
- dayTooltip?: (date: Date) => string | undefined;
6
4
  defaultValue?: Date | Date[] | null;
7
5
  device?: 'desktop' | 'mobile';
8
- /**
9
- * Content under the month grid, inside the calendar card — e.g. Clear/Apply buttons that commit
10
- * the selection. With a footer, picking a range no longer closes the popover; closing is up to it.
11
- */
12
- footer?: ReactNode;
13
6
  layout?: '1-month' | '2-month';
14
7
  max?: Date;
15
8
  min?: Date;
16
- /** Called when the popover opens or closes. Pair it with `open` to control it. */
17
- onOpenChange?: (open: boolean) => void;
18
9
  onValueChange?: (value: Date[] | null) => void;
19
- /** Controls whether the popover is open. Only applies with a trigger (`children`). */
20
- open?: boolean;
21
10
  selectionMode?: 'day' | 'range';
22
- /** Shows the days of the neighbouring months. Defaults to `true` on the `1-month` layout, `false` on `2-month`. */
23
11
  showOutsideDays?: boolean;
24
12
  showSelectedDate?: boolean;
25
13
  value?: Date[] | null;
@@ -7,15 +7,12 @@ import { jsx, jsxs } from "react/jsx-runtime";
7
7
  import { Portal } from "@chakra-ui/react/portal";
8
8
  //#region lib/components/BitkitCalendar/BitkitCalendar.tsx
9
9
  var BitkitCalendar = forwardRef((props, ref) => {
10
- const { children, dayTooltip, defaultValue, device = "desktop", footer, layout = "1-month", selectionMode = "range", min, max, onOpenChange, onValueChange, open, showOutsideDays: showOutsideDaysProp, showSelectedDate = false, value: inputValue, ...rest } = props;
10
+ const { children, defaultValue, device = "desktop", layout, selectionMode = "range", min, max, onValueChange, showOutsideDays: showOutsideDaysProp = false, showSelectedDate = false, value: inputValue, ...rest } = props;
11
11
  const minCalendarDate = useMemo(() => min ? dateToCalendarDate(min) : void 0, [min]);
12
12
  const maxCalendarDate = useMemo(() => max ? dateToCalendarDate(max) : void 0, [max]);
13
13
  const value = inputValue?.map(dateToCalendarDate);
14
14
  const inline = !children;
15
15
  const content = /* @__PURE__ */ jsx(CalendarContent, {
16
- dayTooltip,
17
- device,
18
- footer,
19
16
  layout,
20
17
  max: maxCalendarDate,
21
18
  min: minCalendarDate,
@@ -24,13 +21,10 @@ var BitkitCalendar = forwardRef((props, ref) => {
24
21
  });
25
22
  const showOutsideDays = showOutsideDaysProp ?? layout === "1-month";
26
23
  return /* @__PURE__ */ jsxs(DatePicker.Root, {
27
- closeOnSelect: !footer,
28
24
  defaultValue: defaultValue instanceof Array ? defaultValue.map(dateToCalendarDate) : defaultValue ? [dateToCalendarDate(defaultValue)] : void 0,
29
25
  device,
30
26
  layout,
31
27
  numOfMonths: layout === "2-month" ? 2 : 1,
32
- onOpenChange: onOpenChange ? (details) => onOpenChange(details.open) : void 0,
33
- open,
34
28
  ref,
35
29
  inline,
36
30
  min: minCalendarDate,
@@ -1 +1 @@
1
- {"version":3,"file":"BitkitCalendar.js","names":[],"sources":["../../../lib/components/BitkitCalendar/BitkitCalendar.tsx"],"sourcesContent":["import { Portal } from '@chakra-ui/react/portal';\nimport { forwardRef, type ReactNode, useMemo } from 'react';\n\nimport { DatePicker } from '../../atoms/DatePicker/DatePicker';\nimport { calendarDateToDate, dateToCalendarDate } from './Calendar.utils';\nimport CalendarContent from './components/CalendarContent';\nimport CalendarTrigger from './components/CalendarTrigger';\n\nexport interface BitkitCalendarProps {\n children?: ReactNode;\n /** Text for a day's tooltip, e.g. why it can't be picked. Return `undefined` for no tooltip. */\n dayTooltip?: (date: Date) => string | undefined;\n defaultValue?: Date | Date[] | null;\n device?: 'desktop' | 'mobile';\n /**\n * Content under the month grid, inside the calendar card — e.g. Clear/Apply buttons that commit\n * the selection. With a footer, picking a range no longer closes the popover; closing is up to it.\n */\n footer?: ReactNode;\n layout?: '1-month' | '2-month';\n max?: Date;\n min?: Date;\n /** Called when the popover opens or closes. Pair it with `open` to control it. */\n onOpenChange?: (open: boolean) => void;\n onValueChange?: (value: Date[] | null) => void;\n /** Controls whether the popover is open. Only applies with a trigger (`children`). */\n open?: boolean;\n selectionMode?: 'day' | 'range';\n /** Shows the days of the neighbouring months. Defaults to `true` on the `1-month` layout, `false` on `2-month`. */\n showOutsideDays?: boolean;\n showSelectedDate?: boolean;\n value?: Date[] | null;\n}\n\nconst BitkitCalendar = forwardRef<HTMLDivElement, BitkitCalendarProps>((props, ref) => {\n const {\n children,\n dayTooltip,\n defaultValue,\n device = 'desktop',\n footer,\n layout = '1-month',\n selectionMode = 'range',\n min,\n max,\n onOpenChange,\n onValueChange,\n open,\n showOutsideDays: showOutsideDaysProp,\n showSelectedDate = false,\n value: inputValue,\n ...rest\n } = props;\n\n const minCalendarDate = useMemo(() => (min ? dateToCalendarDate(min) : undefined), [min]);\n const maxCalendarDate = useMemo(() => (max ? dateToCalendarDate(max) : undefined), [max]);\n\n const value = inputValue?.map(dateToCalendarDate);\n\n const inline = !children;\n\n const content = (\n <CalendarContent\n dayTooltip={dayTooltip}\n device={device}\n footer={footer}\n layout={layout}\n max={maxCalendarDate}\n min={minCalendarDate}\n selectionMode={selectionMode}\n showSelectedDate={showSelectedDate}\n />\n );\n\n const showOutsideDays = showOutsideDaysProp ?? layout === '1-month';\n\n return (\n <DatePicker.Root\n closeOnSelect={!footer}\n defaultValue={\n defaultValue instanceof Array\n ? defaultValue.map(dateToCalendarDate)\n : defaultValue\n ? [dateToCalendarDate(defaultValue)]\n : undefined\n }\n device={device}\n layout={layout}\n numOfMonths={layout === '2-month' ? 2 : 1}\n onOpenChange={onOpenChange ? (details) => onOpenChange(details.open) : undefined}\n open={open}\n ref={ref}\n inline={inline}\n min={minCalendarDate}\n max={maxCalendarDate}\n onValueChange={\n onValueChange\n ? (details) => {\n const dates = details.value?.map(calendarDateToDate) || null;\n onValueChange(dates);\n }\n : undefined\n }\n selectionMode={selectionMode === 'day' ? 'single' : 'range'}\n showOutsideDays={showOutsideDays}\n startOfWeek={1}\n value={value}\n {...rest}\n >\n {!inline && (\n <DatePicker.Control>\n <CalendarTrigger>{children}</CalendarTrigger>\n </DatePicker.Control>\n )}\n {inline ? (\n content\n ) : (\n <Portal>\n <DatePicker.Positioner>{content}</DatePicker.Positioner>\n </Portal>\n )}\n </DatePicker.Root>\n );\n});\n\nBitkitCalendar.displayName = 'BitkitCalendar';\n\nexport default BitkitCalendar;\n"],"mappings":";;;;;;;;AAkCA,IAAM,iBAAiB,YAAiD,OAAO,QAAQ;CACrF,MAAM,EACJ,UACA,YACA,cACA,SAAS,WACT,QACA,SAAS,WACT,gBAAgB,SAChB,KACA,KACA,cACA,eACA,MACA,iBAAiB,qBACjB,mBAAmB,OACnB,OAAO,YACP,GAAG,SACD;CAEJ,MAAM,kBAAkB,cAAe,MAAM,mBAAmB,GAAG,IAAI,KAAA,GAAY,CAAC,GAAG,CAAC;CACxF,MAAM,kBAAkB,cAAe,MAAM,mBAAmB,GAAG,IAAI,KAAA,GAAY,CAAC,GAAG,CAAC;CAExF,MAAM,QAAQ,YAAY,IAAI,kBAAkB;CAEhD,MAAM,SAAS,CAAC;CAEhB,MAAM,UACJ,oBAAC,iBAAD;EACc;EACJ;EACA;EACA;EACR,KAAK;EACL,KAAK;EACU;EACG;CACnB,CAAA;CAGH,MAAM,kBAAkB,uBAAuB,WAAW;CAE1D,OACE,qBAAC,WAAW,MAAZ;EACE,eAAe,CAAC;EAChB,cACE,wBAAwB,QACpB,aAAa,IAAI,kBAAkB,IACnC,eACE,CAAC,mBAAmB,YAAY,CAAC,IACjC,KAAA;EAEA;EACA;EACR,aAAa,WAAW,YAAY,IAAI;EACxC,cAAc,gBAAgB,YAAY,aAAa,QAAQ,IAAI,IAAI,KAAA;EACjE;EACD;EACG;EACR,KAAK;EACL,KAAK;EACL,eACE,iBACK,YAAY;GACX,MAAM,QAAQ,QAAQ,OAAO,IAAI,kBAAkB,KAAK;GACxD,cAAc,KAAK;EACrB,IACA,KAAA;EAEN,eAAe,kBAAkB,QAAQ,WAAW;EACnC;EACjB,aAAa;EACN;EACP,GAAI;EA9BN,UAAA,CAgCG,CAAC,UACA,oBAAC,WAAW,SAAZ,EAAA,UACE,oBAAC,iBAAD,EAAkB,SAA0B,CAAA,EAC1B,CAAA,GAErB,SACC,UAEA,oBAAC,QAAD,EAAA,UACE,oBAAC,WAAW,YAAZ,EAAA,UAAwB,QAA+B,CAAA,EACjD,CAAA,CAEK;;AAErB,CAAC;AAED,eAAe,cAAc"}
1
+ {"version":3,"file":"BitkitCalendar.js","names":[],"sources":["../../../lib/components/BitkitCalendar/BitkitCalendar.tsx"],"sourcesContent":["import { Portal } from '@chakra-ui/react/portal';\nimport { forwardRef, type ReactNode, useMemo } from 'react';\n\nimport { DatePicker } from '../../atoms/DatePicker/DatePicker';\nimport { calendarDateToDate, dateToCalendarDate } from './Calendar.utils';\nimport CalendarContent from './components/CalendarContent';\nimport CalendarTrigger from './components/CalendarTrigger';\n\nexport interface BitkitCalendarProps {\n children?: ReactNode;\n defaultValue?: Date | Date[] | null;\n device?: 'desktop' | 'mobile';\n layout?: '1-month' | '2-month';\n max?: Date;\n min?: Date;\n onValueChange?: (value: Date[] | null) => void;\n selectionMode?: 'day' | 'range';\n showOutsideDays?: boolean;\n showSelectedDate?: boolean;\n value?: Date[] | null;\n}\n\nconst BitkitCalendar = forwardRef<HTMLDivElement, BitkitCalendarProps>((props, ref) => {\n const {\n children,\n defaultValue,\n device = 'desktop',\n layout,\n selectionMode = 'range',\n min,\n max,\n onValueChange,\n showOutsideDays: showOutsideDaysProp = false,\n showSelectedDate = false,\n value: inputValue,\n ...rest\n } = props;\n\n const minCalendarDate = useMemo(() => (min ? dateToCalendarDate(min) : undefined), [min]);\n const maxCalendarDate = useMemo(() => (max ? dateToCalendarDate(max) : undefined), [max]);\n\n const value = inputValue?.map(dateToCalendarDate);\n\n const inline = !children;\n\n const content = (\n <CalendarContent\n layout={layout}\n max={maxCalendarDate}\n min={minCalendarDate}\n selectionMode={selectionMode}\n showSelectedDate={showSelectedDate}\n />\n );\n\n const showOutsideDays = showOutsideDaysProp ?? layout === '1-month';\n\n return (\n <DatePicker.Root\n defaultValue={\n defaultValue instanceof Array\n ? defaultValue.map(dateToCalendarDate)\n : defaultValue\n ? [dateToCalendarDate(defaultValue)]\n : undefined\n }\n device={device}\n layout={layout}\n numOfMonths={layout === '2-month' ? 2 : 1}\n ref={ref}\n inline={inline}\n min={minCalendarDate}\n max={maxCalendarDate}\n onValueChange={\n onValueChange\n ? (details) => {\n const dates = details.value?.map(calendarDateToDate) || null;\n onValueChange(dates);\n }\n : undefined\n }\n selectionMode={selectionMode === 'day' ? 'single' : 'range'}\n showOutsideDays={showOutsideDays}\n startOfWeek={1}\n value={value}\n {...rest}\n >\n {!inline && (\n <DatePicker.Control>\n <CalendarTrigger>{children}</CalendarTrigger>\n </DatePicker.Control>\n )}\n {inline ? (\n content\n ) : (\n <Portal>\n <DatePicker.Positioner>{content}</DatePicker.Positioner>\n </Portal>\n )}\n </DatePicker.Root>\n );\n});\n\nBitkitCalendar.displayName = 'BitkitCalendar';\n\nexport default BitkitCalendar;\n"],"mappings":";;;;;;;;AAsBA,IAAM,iBAAiB,YAAiD,OAAO,QAAQ;CACrF,MAAM,EACJ,UACA,cACA,SAAS,WACT,QACA,gBAAgB,SAChB,KACA,KACA,eACA,iBAAiB,sBAAsB,OACvC,mBAAmB,OACnB,OAAO,YACP,GAAG,SACD;CAEJ,MAAM,kBAAkB,cAAe,MAAM,mBAAmB,GAAG,IAAI,KAAA,GAAY,CAAC,GAAG,CAAC;CACxF,MAAM,kBAAkB,cAAe,MAAM,mBAAmB,GAAG,IAAI,KAAA,GAAY,CAAC,GAAG,CAAC;CAExF,MAAM,QAAQ,YAAY,IAAI,kBAAkB;CAEhD,MAAM,SAAS,CAAC;CAEhB,MAAM,UACJ,oBAAC,iBAAD;EACU;EACR,KAAK;EACL,KAAK;EACU;EACG;CACnB,CAAA;CAGH,MAAM,kBAAkB,uBAAuB,WAAW;CAE1D,OACE,qBAAC,WAAW,MAAZ;EACE,cACE,wBAAwB,QACpB,aAAa,IAAI,kBAAkB,IACnC,eACE,CAAC,mBAAmB,YAAY,CAAC,IACjC,KAAA;EAEA;EACA;EACR,aAAa,WAAW,YAAY,IAAI;EACnC;EACG;EACR,KAAK;EACL,KAAK;EACL,eACE,iBACK,YAAY;GACX,MAAM,QAAQ,QAAQ,OAAO,IAAI,kBAAkB,KAAK;GACxD,cAAc,KAAK;EACrB,IACA,KAAA;EAEN,eAAe,kBAAkB,QAAQ,WAAW;EACnC;EACjB,aAAa;EACN;EACP,GAAI;EA3BN,UAAA,CA6BG,CAAC,UACA,oBAAC,WAAW,SAAZ,EAAA,UACE,oBAAC,iBAAD,EAAkB,SAA0B,CAAA,EAC1B,CAAA,GAErB,SACC,UAEA,oBAAC,QAAD,EAAA,UACE,oBAAC,WAAW,YAAZ,EAAA,UAAwB,QAA+B,CAAA,EACjD,CAAA,CAEK;;AAErB,CAAC;AAED,eAAe,cAAc"}
@@ -1,9 +1,5 @@
1
1
  import { CalendarDate } from '@internationalized/date';
2
- import { ReactNode } from 'react';
3
2
  export interface CalendarContentProps {
4
- dayTooltip?: (date: Date) => string | undefined;
5
- device?: 'desktop' | 'mobile';
6
- footer?: ReactNode;
7
3
  layout?: '1-month' | '2-month';
8
4
  max?: CalendarDate;
9
5
  min?: CalendarDate;
@@ -14,5 +10,5 @@ export interface CalendarContentProps {
14
10
  * The styled popover body shared by BitkitCalendar and BitkitDatePicker.
15
11
  * Renders the view controls, month grids and footer inside `DatePicker.Content`.
16
12
  */
17
- declare const CalendarContent: ({ dayTooltip, device, footer, layout, max, min, selectionMode, showSelectedDate, }: CalendarContentProps) => import('react').JSX.Element;
13
+ declare const CalendarContent: ({ layout, max, min, selectionMode, showSelectedDate }: CalendarContentProps) => import('react').JSX.Element;
18
14
  export default CalendarContent;
@@ -13,7 +13,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
13
13
  * The styled popover body shared by BitkitCalendar and BitkitDatePicker.
14
14
  * Renders the view controls, month grids and footer inside `DatePicker.Content`.
15
15
  */
16
- var CalendarContent = ({ dayTooltip, device, footer, layout, max, min, selectionMode, showSelectedDate }) => {
16
+ var CalendarContent = ({ layout, max, min, selectionMode, showSelectedDate }) => {
17
17
  const context = useDatePickerContext();
18
18
  const prevModeRef = useRef(selectionMode);
19
19
  useEffect(() => {
@@ -22,70 +22,53 @@ var CalendarContent = ({ dayTooltip, device, footer, layout, max, min, selection
22
22
  prevModeRef.current = selectionMode;
23
23
  }
24
24
  }, [selectionMode]);
25
- return /* @__PURE__ */ jsxs(DatePicker.Content, { children: [
26
- /* @__PURE__ */ jsxs(DatePicker.View, {
27
- view: "day",
28
- children: [/* @__PURE__ */ jsxs(DatePicker.ViewControl, { children: [/* @__PURE__ */ jsxs(Box, {
29
- display: "flex",
30
- alignItems: "center",
31
- gap: "12",
32
- minWidth: "0",
33
- children: [
34
- /* @__PURE__ */ jsx(CalendarPrevTrigger, { device }),
35
- /* @__PURE__ */ jsxs(Box, {
36
- display: "flex",
37
- alignItems: "center",
38
- minWidth: "0",
39
- children: [/* @__PURE__ */ jsx(CalendarMonthSelect, {
40
- device,
41
- offset: 0,
42
- layout,
43
- max,
44
- min
45
- }), /* @__PURE__ */ jsx(CalendarYearSelect, {
46
- device,
47
- monthOffset: 0,
48
- max,
49
- min
50
- })]
51
- }),
52
- layout === "1-month" && /* @__PURE__ */ jsx(CalendarNextTrigger, { device })
53
- ]
54
- }), layout === "2-month" && /* @__PURE__ */ jsxs(Box, {
55
- display: "flex",
56
- alignItems: "center",
57
- gap: "12",
58
- minWidth: "0",
59
- children: [
60
- /* @__PURE__ */ jsx(CalendarMonthSelect, {
61
- device,
62
- offset: 1,
25
+ return /* @__PURE__ */ jsxs(DatePicker.Content, { children: [/* @__PURE__ */ jsxs(DatePicker.View, {
26
+ view: "day",
27
+ children: [/* @__PURE__ */ jsxs(DatePicker.ViewControl, { children: [/* @__PURE__ */ jsxs(Box, {
28
+ display: "flex",
29
+ alignItems: "center",
30
+ gap: "12",
31
+ children: [
32
+ /* @__PURE__ */ jsx(CalendarPrevTrigger, {}),
33
+ /* @__PURE__ */ jsxs(Box, {
34
+ display: "flex",
35
+ alignItems: "center",
36
+ children: [/* @__PURE__ */ jsx(CalendarMonthSelect, {
37
+ offset: 0,
63
38
  layout,
64
39
  max,
65
40
  min
66
- }),
67
- /* @__PURE__ */ jsx(CalendarYearSelect, {
68
- device,
69
- monthOffset: 1,
41
+ }), /* @__PURE__ */ jsx(CalendarYearSelect, {
42
+ monthOffset: 0,
70
43
  max,
71
44
  min
72
- }),
73
- /* @__PURE__ */ jsx(CalendarNextTrigger, { device })
74
- ]
75
- })] }), /* @__PURE__ */ jsxs(DatePicker.Months, { children: [/* @__PURE__ */ jsx(CalendarMonth, {
76
- dayTooltip,
77
- monthsIndex: 0
78
- }), layout === "2-month" && /* @__PURE__ */ jsx(CalendarMonth, {
79
- dayTooltip,
80
- monthsIndex: 1
81
- })] })]
82
- }),
83
- /* @__PURE__ */ jsx(CalendarFooter, {
84
- selectionMode,
85
- showSelectedDate
86
- }),
87
- footer
88
- ] });
45
+ })]
46
+ }),
47
+ layout === "1-month" && /* @__PURE__ */ jsx(CalendarNextTrigger, {})
48
+ ]
49
+ }), layout === "2-month" && /* @__PURE__ */ jsxs(Box, {
50
+ display: "flex",
51
+ alignItems: "center",
52
+ gap: "12",
53
+ children: [
54
+ /* @__PURE__ */ jsx(CalendarMonthSelect, {
55
+ offset: 1,
56
+ layout,
57
+ max,
58
+ min
59
+ }),
60
+ /* @__PURE__ */ jsx(CalendarYearSelect, {
61
+ monthOffset: 1,
62
+ max,
63
+ min
64
+ }),
65
+ /* @__PURE__ */ jsx(CalendarNextTrigger, {})
66
+ ]
67
+ })] }), /* @__PURE__ */ jsxs(DatePicker.Months, { children: [/* @__PURE__ */ jsx(CalendarMonth, { monthsIndex: 0 }), layout === "2-month" && /* @__PURE__ */ jsx(CalendarMonth, { monthsIndex: 1 })] })]
68
+ }), /* @__PURE__ */ jsx(CalendarFooter, {
69
+ selectionMode,
70
+ showSelectedDate
71
+ })] });
89
72
  };
90
73
  //#endregion
91
74
  export { CalendarContent as default };
@@ -1 +1 @@
1
- {"version":3,"file":"CalendarContent.js","names":[],"sources":["../../../../lib/components/BitkitCalendar/components/CalendarContent.tsx"],"sourcesContent":["import { Box } from '@chakra-ui/react/box';\nimport { type CalendarDate } from '@internationalized/date';\nimport { type ReactNode, useEffect, useRef } from 'react';\n\nimport { DatePicker, useDatePickerContext } from '../../../atoms/DatePicker/DatePicker';\nimport CalendarFooter from './CalendarFooter';\nimport CalendarMonth from './CalendarMonth';\nimport CalendarMonthSelect from './CalendarMonthSelect';\nimport CalendarNextTrigger from './CalendarNextTrigger';\nimport CalendarPrevTrigger from './CalendarPrevTrigger';\nimport CalendarYearSelect from './CalendarYearSelect';\n\nexport interface CalendarContentProps {\n dayTooltip?: (date: Date) => string | undefined;\n device?: 'desktop' | 'mobile';\n footer?: ReactNode;\n layout?: '1-month' | '2-month';\n max?: CalendarDate;\n min?: CalendarDate;\n selectionMode?: 'day' | 'range';\n showSelectedDate?: boolean;\n}\n\n/**\n * The styled popover body shared by BitkitCalendar and BitkitDatePicker.\n * Renders the view controls, month grids and footer inside `DatePicker.Content`.\n */\nconst CalendarContent = ({\n dayTooltip,\n device,\n footer,\n layout,\n max,\n min,\n selectionMode,\n showSelectedDate,\n}: CalendarContentProps) => {\n const context = useDatePickerContext();\n const prevModeRef = useRef(selectionMode);\n\n useEffect(() => {\n if (prevModeRef.current !== selectionMode) {\n context.clearValue();\n prevModeRef.current = selectionMode;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectionMode]);\n\n return (\n <DatePicker.Content>\n <DatePicker.View view=\"day\">\n <DatePicker.ViewControl>\n <Box display=\"flex\" alignItems=\"center\" gap=\"12\" minWidth=\"0\">\n <CalendarPrevTrigger device={device} />\n\n <Box display=\"flex\" alignItems=\"center\" minWidth=\"0\">\n <CalendarMonthSelect device={device} offset={0} layout={layout} max={max} min={min} />\n <CalendarYearSelect device={device} monthOffset={0} max={max} min={min} />\n </Box>\n {layout === '1-month' && <CalendarNextTrigger device={device} />}\n </Box>\n {layout === '2-month' && (\n <Box display=\"flex\" alignItems=\"center\" gap=\"12\" minWidth=\"0\">\n <CalendarMonthSelect device={device} offset={1} layout={layout} max={max} min={min} />\n <CalendarYearSelect device={device} monthOffset={1} max={max} min={min} />\n <CalendarNextTrigger device={device} />\n </Box>\n )}\n </DatePicker.ViewControl>\n <DatePicker.Months>\n <CalendarMonth dayTooltip={dayTooltip} monthsIndex={0} />\n {layout === '2-month' && <CalendarMonth dayTooltip={dayTooltip} monthsIndex={1} />}\n </DatePicker.Months>\n </DatePicker.View>\n <CalendarFooter selectionMode={selectionMode} showSelectedDate={showSelectedDate} />\n {footer}\n </DatePicker.Content>\n );\n};\n\nexport default CalendarContent;\n"],"mappings":";;;;;;;;;;;;;;;AA2BA,IAAM,mBAAmB,EACvB,YACA,QACA,QACA,QACA,KACA,KACA,eACA,uBAC0B;CAC1B,MAAM,UAAU,qBAAqB;CACrC,MAAM,cAAc,OAAO,aAAa;CAExC,gBAAgB;EACd,IAAI,YAAY,YAAY,eAAe;GACzC,QAAQ,WAAW;GACnB,YAAY,UAAU;EACxB;CAEF,GAAG,CAAC,aAAa,CAAC;CAElB,OACE,qBAAC,WAAW,SAAZ,EAAA,UAAA;EACE,qBAAC,WAAW,MAAZ;GAAiB,MAAK;GAAtB,UAAA,CACE,qBAAC,WAAW,aAAZ,EAAA,UAAA,CACE,qBAAC,KAAD;IAAK,SAAQ;IAAO,YAAW;IAAS,KAAI;IAAK,UAAS;IAA1D,UAAA;KACE,oBAAC,qBAAD,EAA6B,OAAS,CAAA;KAEtC,qBAAC,KAAD;MAAK,SAAQ;MAAO,YAAW;MAAS,UAAS;MAAjD,UAAA,CACE,oBAAC,qBAAD;OAA6B;OAAQ,QAAQ;OAAW;OAAa;OAAU;MAAM,CAAA,GACrF,oBAAC,oBAAD;OAA4B;OAAQ,aAAa;OAAQ;OAAU;MAAM,CAAA,CACtE;;KACJ,WAAW,aAAa,oBAAC,qBAAD,EAA6B,OAAS,CAAA;IAC5D;GACJ,CAAA,GAAA,WAAW,aACV,qBAAC,KAAD;IAAK,SAAQ;IAAO,YAAW;IAAS,KAAI;IAAK,UAAS;IAA1D,UAAA;KACE,oBAAC,qBAAD;MAA6B;MAAQ,QAAQ;MAAW;MAAa;MAAU;KAAM,CAAA;KACrF,oBAAC,oBAAD;MAA4B;MAAQ,aAAa;MAAQ;MAAU;KAAM,CAAA;KACzE,oBAAC,qBAAD,EAA6B,OAAS,CAAA;IACnC;GAEe,CAAA,CAAA,EAAA,CAAA,GACxB,qBAAC,WAAW,QAAZ,EAAA,UAAA,CACE,oBAAC,eAAD;IAA2B;IAAY,aAAa;GAAI,CAAA,GACvD,WAAW,aAAa,oBAAC,eAAD;IAA2B;IAAY,aAAa;GAAI,CAAA,CAChE,EAAA,CAAA,CACJ;;EACjB,oBAAC,gBAAD;GAA+B;GAAiC;EAAmB,CAAA;EAClF;CACiB,EAAA,CAAA;AAExB"}
1
+ {"version":3,"file":"CalendarContent.js","names":[],"sources":["../../../../lib/components/BitkitCalendar/components/CalendarContent.tsx"],"sourcesContent":["import { Box } from '@chakra-ui/react/box';\nimport { type CalendarDate } from '@internationalized/date';\nimport { useEffect, useRef } from 'react';\n\nimport { DatePicker, useDatePickerContext } from '../../../atoms/DatePicker/DatePicker';\nimport CalendarFooter from './CalendarFooter';\nimport CalendarMonth from './CalendarMonth';\nimport CalendarMonthSelect from './CalendarMonthSelect';\nimport CalendarNextTrigger from './CalendarNextTrigger';\nimport CalendarPrevTrigger from './CalendarPrevTrigger';\nimport CalendarYearSelect from './CalendarYearSelect';\n\nexport interface CalendarContentProps {\n layout?: '1-month' | '2-month';\n max?: CalendarDate;\n min?: CalendarDate;\n selectionMode?: 'day' | 'range';\n showSelectedDate?: boolean;\n}\n\n/**\n * The styled popover body shared by BitkitCalendar and BitkitDatePicker.\n * Renders the view controls, month grids and footer inside `DatePicker.Content`.\n */\nconst CalendarContent = ({ layout, max, min, selectionMode, showSelectedDate }: CalendarContentProps) => {\n const context = useDatePickerContext();\n const prevModeRef = useRef(selectionMode);\n\n useEffect(() => {\n if (prevModeRef.current !== selectionMode) {\n context.clearValue();\n prevModeRef.current = selectionMode;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectionMode]);\n\n return (\n <DatePicker.Content>\n <DatePicker.View view=\"day\">\n <DatePicker.ViewControl>\n <Box display=\"flex\" alignItems=\"center\" gap=\"12\">\n <CalendarPrevTrigger />\n\n <Box display=\"flex\" alignItems=\"center\">\n <CalendarMonthSelect offset={0} layout={layout} max={max} min={min} />\n <CalendarYearSelect monthOffset={0} max={max} min={min} />\n </Box>\n {layout === '1-month' && <CalendarNextTrigger />}\n </Box>\n {layout === '2-month' && (\n <Box display=\"flex\" alignItems=\"center\" gap=\"12\">\n <CalendarMonthSelect offset={1} layout={layout} max={max} min={min} />\n <CalendarYearSelect monthOffset={1} max={max} min={min} />\n <CalendarNextTrigger />\n </Box>\n )}\n </DatePicker.ViewControl>\n <DatePicker.Months>\n <CalendarMonth monthsIndex={0} />\n {layout === '2-month' && <CalendarMonth monthsIndex={1} />}\n </DatePicker.Months>\n </DatePicker.View>\n <CalendarFooter selectionMode={selectionMode} showSelectedDate={showSelectedDate} />\n </DatePicker.Content>\n );\n};\n\nexport default CalendarContent;\n"],"mappings":";;;;;;;;;;;;;;;AAwBA,IAAM,mBAAmB,EAAE,QAAQ,KAAK,KAAK,eAAe,uBAA6C;CACvG,MAAM,UAAU,qBAAqB;CACrC,MAAM,cAAc,OAAO,aAAa;CAExC,gBAAgB;EACd,IAAI,YAAY,YAAY,eAAe;GACzC,QAAQ,WAAW;GACnB,YAAY,UAAU;EACxB;CAEF,GAAG,CAAC,aAAa,CAAC;CAElB,OACE,qBAAC,WAAW,SAAZ,EAAA,UAAA,CACE,qBAAC,WAAW,MAAZ;EAAiB,MAAK;EAAtB,UAAA,CACE,qBAAC,WAAW,aAAZ,EAAA,UAAA,CACE,qBAAC,KAAD;GAAK,SAAQ;GAAO,YAAW;GAAS,KAAI;GAA5C,UAAA;IACE,oBAAC,qBAAD,CAAsB,CAAA;IAEtB,qBAAC,KAAD;KAAK,SAAQ;KAAO,YAAW;KAA/B,UAAA,CACE,oBAAC,qBAAD;MAAqB,QAAQ;MAAW;MAAa;MAAU;KAAM,CAAA,GACrE,oBAAC,oBAAD;MAAoB,aAAa;MAAQ;MAAU;KAAM,CAAA,CACtD;;IACJ,WAAW,aAAa,oBAAC,qBAAD,CAAsB,CAAA;GAC5C;EACJ,CAAA,GAAA,WAAW,aACV,qBAAC,KAAD;GAAK,SAAQ;GAAO,YAAW;GAAS,KAAI;GAA5C,UAAA;IACE,oBAAC,qBAAD;KAAqB,QAAQ;KAAW;KAAa;KAAU;IAAM,CAAA;IACrE,oBAAC,oBAAD;KAAoB,aAAa;KAAQ;KAAU;IAAM,CAAA;IACzD,oBAAC,qBAAD,CAAsB,CAAA;GACnB;EAEe,CAAA,CAAA,EAAA,CAAA,GACxB,qBAAC,WAAW,QAAZ,EAAA,UAAA,CACE,oBAAC,eAAD,EAAe,aAAa,EAAI,CAAA,GAC/B,WAAW,aAAa,oBAAC,eAAD,EAAe,aAAa,EAAI,CAAA,CACxC,EAAA,CAAA,CACJ;CACjB,CAAA,GAAA,oBAAC,gBAAD;EAA+B;EAAiC;CAAmB,CAAA,CACjE,EAAA,CAAA;AAExB"}
@@ -1,6 +1,4 @@
1
- interface CalendarMonthProps {
2
- dayTooltip?: (date: Date) => string | undefined;
1
+ declare const CalendarMonth: ({ monthsIndex }: {
3
2
  monthsIndex: number;
4
- }
5
- declare const CalendarMonth: ({ dayTooltip, monthsIndex }: CalendarMonthProps) => import('react').JSX.Element;
3
+ }) => import('react').JSX.Element;
6
4
  export default CalendarMonth;
@@ -1,28 +1,18 @@
1
1
  import { DatePicker, DatePickerContext } from "../../../atoms/DatePicker/DatePicker.js";
2
- import { calendarDateToDate } from "../Calendar.utils.js";
3
- import BitkitTooltip from "../../BitkitTooltip/BitkitTooltip.js";
4
2
  import { jsx, jsxs } from "react/jsx-runtime";
5
3
  import { Text } from "@chakra-ui/react/text";
6
4
  //#region lib/components/BitkitCalendar/components/CalendarMonth.tsx
7
- var CalendarMonth = ({ dayTooltip, monthsIndex }) => {
5
+ var CalendarMonth = ({ monthsIndex }) => {
8
6
  return /* @__PURE__ */ jsx(DatePickerContext, { children: (datePicker) => {
9
7
  const offset = datePicker.getOffset({ months: monthsIndex });
10
8
  return /* @__PURE__ */ jsxs(DatePicker.Table, { children: [/* @__PURE__ */ jsx(DatePicker.TableHead, { children: /* @__PURE__ */ jsx(DatePicker.TableRow, { children: datePicker.weekDays.map((weekDay, id) => /* @__PURE__ */ jsx(DatePicker.TableHeader, { children: weekDay.short }, id)) }) }), /* @__PURE__ */ jsx(DatePicker.TableBody, { children: offset.weeks.map((week, id) => /* @__PURE__ */ jsx(DatePicker.TableRow, { children: week.map((day, id) => {
11
- const tooltip = dayTooltip?.(calendarDateToDate(day));
12
- const label = /* @__PURE__ */ jsx(Text, {
13
- as: "span",
14
- children: day.day
15
- });
16
9
  return /* @__PURE__ */ jsx(DatePicker.TableCell, {
17
10
  value: day,
18
11
  visibleRange: offset.visibleRange,
19
- children: /* @__PURE__ */ jsx(DatePicker.TableCellTrigger, {
20
- ...tooltip ? { "aria-description": tooltip } : {},
21
- children: tooltip ? /* @__PURE__ */ jsx(BitkitTooltip, {
22
- text: tooltip,
23
- children: label
24
- }) : label
25
- })
12
+ children: /* @__PURE__ */ jsx(DatePicker.TableCellTrigger, { children: /* @__PURE__ */ jsx(Text, {
13
+ as: "span",
14
+ children: day.day
15
+ }) })
26
16
  }, id);
27
17
  }) }, id)) })] });
28
18
  } });
@@ -1 +1 @@
1
- {"version":3,"file":"CalendarMonth.js","names":[],"sources":["../../../../lib/components/BitkitCalendar/components/CalendarMonth.tsx"],"sourcesContent":["import { Text } from '@chakra-ui/react/text';\n\nimport { DatePicker, DatePickerContext } from '../../../atoms/DatePicker/DatePicker';\nimport BitkitTooltip from '../../BitkitTooltip/BitkitTooltip';\nimport { calendarDateToDate } from '../Calendar.utils';\n\ninterface CalendarMonthProps {\n dayTooltip?: (date: Date) => string | undefined;\n monthsIndex: number;\n}\n\nconst CalendarMonth = ({ dayTooltip, monthsIndex }: CalendarMonthProps) => {\n return (\n <DatePickerContext>\n {(datePicker) => {\n const offset = datePicker.getOffset({ months: monthsIndex });\n return (\n <DatePicker.Table>\n <DatePicker.TableHead>\n <DatePicker.TableRow>\n {datePicker.weekDays.map((weekDay, id) => (\n <DatePicker.TableHeader key={id}>{weekDay.short}</DatePicker.TableHeader>\n ))}\n </DatePicker.TableRow>\n </DatePicker.TableHead>\n <DatePicker.TableBody>\n {offset.weeks.map((week, id) => (\n <DatePicker.TableRow key={id}>\n {week.map((day, id) => {\n const tooltip = dayTooltip?.(calendarDateToDate(day));\n const label = <Text as=\"span\">{day.day}</Text>;\n // The tooltip sits on the day's inner box, not the cell: as the cell's trigger it would\n // replace the id and data attributes Zag finds the focused day by. An unavailable day never\n // takes focus, so the text is also the cell's description, next to Zag's own label.\n return (\n <DatePicker.TableCell key={id} value={day} visibleRange={offset.visibleRange}>\n <DatePicker.TableCellTrigger {...(tooltip ? { 'aria-description': tooltip } : {})}>\n {tooltip ? <BitkitTooltip text={tooltip}>{label}</BitkitTooltip> : label}\n </DatePicker.TableCellTrigger>\n </DatePicker.TableCell>\n );\n })}\n </DatePicker.TableRow>\n ))}\n </DatePicker.TableBody>\n </DatePicker.Table>\n );\n }}\n </DatePickerContext>\n );\n};\n\nexport default CalendarMonth;\n"],"mappings":";;;;;;AAWA,IAAM,iBAAiB,EAAE,YAAY,kBAAsC;CACzE,OACE,oBAAC,mBAAD,EAAA,WACI,eAAe;EACf,MAAM,SAAS,WAAW,UAAU,EAAE,QAAQ,YAAY,CAAC;EAC3D,OACE,qBAAC,WAAW,OAAZ,EAAA,UAAA,CACE,oBAAC,WAAW,WAAZ,EAAA,UACE,oBAAC,WAAW,UAAZ,EAAA,UACG,WAAW,SAAS,KAAK,SAAS,OACjC,oBAAC,WAAW,aAAZ,EAAA,UAAkC,QAAQ,MAA8B,GAA3C,EAA2C,CACzE,EACkB,CAAA,EACD,CAAA,GACtB,oBAAC,WAAW,WAAZ,EAAA,UACG,OAAO,MAAM,KAAK,MAAM,OACvB,oBAAC,WAAW,UAAZ,EAAA,UACG,KAAK,KAAK,KAAK,OAAO;GACrB,MAAM,UAAU,aAAa,mBAAmB,GAAG,CAAC;GACpD,MAAM,QAAQ,oBAAC,MAAD;IAAM,IAAG;IAAQ,UAAA,IAAI;GAAU,CAAA;GAI7C,OACE,oBAAC,WAAW,WAAZ;IAA+B,OAAO;IAAK,cAAc,OAAO;IAC9D,UAAA,oBAAC,WAAW,kBAAZ;KAA6B,GAAK,UAAU,EAAE,oBAAoB,QAAQ,IAAI,CAAC;KAC5E,UAAA,UAAU,oBAAC,eAAD;MAAe,MAAM;MAAU,UAAA;KAAqB,CAAA,IAAI;IACxC,CAAA;GACT,GAJK,EAIL;EAE1B,CAAC,EACkB,GAfK,EAeL,CACtB,EACmB,CAAA,CACN,EAAA,CAAA;CAEtB,EACiB,CAAA;AAEvB"}
1
+ {"version":3,"file":"CalendarMonth.js","names":[],"sources":["../../../../lib/components/BitkitCalendar/components/CalendarMonth.tsx"],"sourcesContent":["import { Text } from '@chakra-ui/react/text';\n\nimport { DatePicker, DatePickerContext } from '../../../atoms/DatePicker/DatePicker';\n\nconst CalendarMonth = ({ monthsIndex }: { monthsIndex: number }) => {\n return (\n <DatePickerContext>\n {(datePicker) => {\n const offset = datePicker.getOffset({ months: monthsIndex });\n return (\n <DatePicker.Table>\n <DatePicker.TableHead>\n <DatePicker.TableRow>\n {datePicker.weekDays.map((weekDay, id) => (\n <DatePicker.TableHeader key={id}>{weekDay.short}</DatePicker.TableHeader>\n ))}\n </DatePicker.TableRow>\n </DatePicker.TableHead>\n <DatePicker.TableBody>\n {offset.weeks.map((week, id) => (\n <DatePicker.TableRow key={id}>\n {week.map((day, id) => {\n return (\n <DatePicker.TableCell key={id} value={day} visibleRange={offset.visibleRange}>\n <DatePicker.TableCellTrigger>\n <Text as=\"span\">{day.day}</Text>\n </DatePicker.TableCellTrigger>\n </DatePicker.TableCell>\n );\n })}\n </DatePicker.TableRow>\n ))}\n </DatePicker.TableBody>\n </DatePicker.Table>\n );\n }}\n </DatePickerContext>\n );\n};\n\nexport default CalendarMonth;\n"],"mappings":";;;;AAIA,IAAM,iBAAiB,EAAE,kBAA2C;CAClE,OACE,oBAAC,mBAAD,EAAA,WACI,eAAe;EACf,MAAM,SAAS,WAAW,UAAU,EAAE,QAAQ,YAAY,CAAC;EAC3D,OACE,qBAAC,WAAW,OAAZ,EAAA,UAAA,CACE,oBAAC,WAAW,WAAZ,EAAA,UACE,oBAAC,WAAW,UAAZ,EAAA,UACG,WAAW,SAAS,KAAK,SAAS,OACjC,oBAAC,WAAW,aAAZ,EAAA,UAAkC,QAAQ,MAA8B,GAA3C,EAA2C,CACzE,EACkB,CAAA,EACD,CAAA,GACtB,oBAAC,WAAW,WAAZ,EAAA,UACG,OAAO,MAAM,KAAK,MAAM,OACvB,oBAAC,WAAW,UAAZ,EAAA,UACG,KAAK,KAAK,KAAK,OAAO;GACrB,OACE,oBAAC,WAAW,WAAZ;IAA+B,OAAO;IAAK,cAAc,OAAO;IAC9D,UAAA,oBAAC,WAAW,kBAAZ,EAAA,UACE,oBAAC,MAAD;KAAM,IAAG;KAAQ,UAAA,IAAI;IAAU,CAAA,EACJ,CAAA;GACT,GAJK,EAIL;EAE1B,CAAC,EACkB,GAVK,EAUL,CACtB,EACmB,CAAA,CACN,EAAA,CAAA;CAEtB,EACiB,CAAA;AAEvB"}
@@ -1,10 +1,9 @@
1
1
  import { CalendarDate } from '@internationalized/date';
2
2
  type CalendarMonthSelectProps = {
3
- device?: 'desktop' | 'mobile';
4
3
  offset: number;
5
4
  layout?: '1-month' | '2-month';
6
5
  min?: CalendarDate;
7
6
  max?: CalendarDate;
8
7
  };
9
- declare const CalendarMonthSelect: ({ device, offset, layout, min, max }: CalendarMonthSelectProps) => import('react').JSX.Element;
8
+ declare const CalendarMonthSelect: ({ offset, layout, min, max }: CalendarMonthSelectProps) => import('react').JSX.Element;
10
9
  export default CalendarMonthSelect;
@@ -54,7 +54,7 @@ var months = [
54
54
  value: "12"
55
55
  }
56
56
  ];
57
- var CalendarMonthSelect = ({ device, offset, layout, min, max }) => {
57
+ var CalendarMonthSelect = ({ offset, layout, min, max }) => {
58
58
  const datePicker = useDatePickerContext();
59
59
  const currentMonthDate = datePicker.getOffset({ months: offset }).visibleRange.start;
60
60
  const availableMonths = months.filter((month) => {
@@ -80,8 +80,7 @@ var CalendarMonthSelect = ({ device, offset, layout, min, max }) => {
80
80
  maxHeight: rem(312),
81
81
  width: rem(148)
82
82
  },
83
- controlProps: { width: rem(device === "mobile" ? 132 : 114) },
84
- device,
83
+ controlProps: { width: rem(114) },
85
84
  items: availableMonths,
86
85
  onValueChange: handleMonthChange,
87
86
  value: [currentMonthDate.month.toString()]
@@ -1 +1 @@
1
- {"version":3,"file":"CalendarMonthSelect.js","names":[],"sources":["../../../../lib/components/BitkitCalendar/components/CalendarMonthSelect.tsx"],"sourcesContent":["import { CalendarDate } from '@internationalized/date';\n\nimport { useDatePickerContext } from '../../../atoms/DatePicker/DatePicker';\nimport { rem } from '../../../theme/themeUtils';\nimport CalendarSelect from './CalendarSelect';\n\nconst months = [\n { label: 'January', value: '1' },\n { label: 'February', value: '2' },\n { label: 'March', value: '3' },\n { label: 'April', value: '4' },\n { label: 'May', value: '5' },\n { label: 'June', value: '6' },\n { label: 'July', value: '7' },\n { label: 'August', value: '8' },\n { label: 'September', value: '9' },\n { label: 'October', value: '10' },\n { label: 'November', value: '11' },\n { label: 'December', value: '12' },\n];\n\ntype CalendarMonthSelectProps = {\n device?: 'desktop' | 'mobile';\n offset: number;\n layout?: '1-month' | '2-month';\n min?: CalendarDate;\n max?: CalendarDate;\n};\n\nconst CalendarMonthSelect = ({ device, offset, layout, min, max }: CalendarMonthSelectProps) => {\n const datePicker = useDatePickerContext();\n\n const currentMonthDate = datePicker.getOffset({ months: offset }).visibleRange.start;\n\n const availableMonths = months.filter((month) => {\n if (!min && !max) return true;\n\n const monthNumber = parseInt(month.value, 10);\n const year = currentMonthDate.year;\n\n const firstDayOfMonth = new CalendarDate(year, monthNumber, 1);\n const lastDayOfMonth = firstDayOfMonth.add({ months: 1 }).subtract({ days: 1 });\n\n const isBeforeMin = min && lastDayOfMonth.compare(min) < 0;\n const isAfterMax = max && firstDayOfMonth.compare(max) > 0;\n\n return !isBeforeMin && !isAfterMax;\n });\n\n const handleMonthChange = (details: { value: string[] }) => {\n const selectedMonth = parseInt(details.value[0], 10);\n if (layout === '1-month') {\n datePicker.focusMonth(selectedMonth);\n } else {\n // first needs to be focused to some distant date otherwise the newly selected month won't always be set properly\n // due to \"smart\" focus behaviour of the calendar in 2-month layout\n datePicker.setFocusedValue(new CalendarDate(1990, 1, 1));\n datePicker.setFocusedValue(currentMonthDate.set({ month: selectedMonth }).subtract({ months: offset }));\n }\n };\n\n return (\n <CalendarSelect\n contentProps={{\n maxHeight: rem(312),\n width: rem(148),\n }}\n controlProps={{\n width: rem(device === 'mobile' ? 132 : 114),\n }}\n device={device}\n items={availableMonths}\n onValueChange={handleMonthChange}\n value={[currentMonthDate.month.toString()]}\n />\n );\n};\n\nexport default CalendarMonthSelect;\n"],"mappings":";;;;;;AAMA,IAAM,SAAS;CACb;EAAE,OAAO;EAAW,OAAO;CAAI;CAC/B;EAAE,OAAO;EAAY,OAAO;CAAI;CAChC;EAAE,OAAO;EAAS,OAAO;CAAI;CAC7B;EAAE,OAAO;EAAS,OAAO;CAAI;CAC7B;EAAE,OAAO;EAAO,OAAO;CAAI;CAC3B;EAAE,OAAO;EAAQ,OAAO;CAAI;CAC5B;EAAE,OAAO;EAAQ,OAAO;CAAI;CAC5B;EAAE,OAAO;EAAU,OAAO;CAAI;CAC9B;EAAE,OAAO;EAAa,OAAO;CAAI;CACjC;EAAE,OAAO;EAAW,OAAO;CAAK;CAChC;EAAE,OAAO;EAAY,OAAO;CAAK;CACjC;EAAE,OAAO;EAAY,OAAO;CAAK;AACnC;AAUA,IAAM,uBAAuB,EAAE,QAAQ,QAAQ,QAAQ,KAAK,UAAoC;CAC9F,MAAM,aAAa,qBAAqB;CAExC,MAAM,mBAAmB,WAAW,UAAU,EAAE,QAAQ,OAAO,CAAC,CAAC,CAAC,aAAa;CAE/E,MAAM,kBAAkB,OAAO,QAAQ,UAAU;EAC/C,IAAI,CAAC,OAAO,CAAC,KAAK,OAAO;EAEzB,MAAM,cAAc,SAAS,MAAM,OAAO,EAAE;EAC5C,MAAM,OAAO,iBAAiB;EAE9B,MAAM,kBAAkB,IAAI,aAAa,MAAM,aAAa,CAAC;EAC7D,MAAM,iBAAiB,gBAAgB,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;EAE9E,MAAM,cAAc,OAAO,eAAe,QAAQ,GAAG,IAAI;EACzD,MAAM,aAAa,OAAO,gBAAgB,QAAQ,GAAG,IAAI;EAEzD,OAAO,CAAC,eAAe,CAAC;CAC1B,CAAC;CAED,MAAM,qBAAqB,YAAiC;EAC1D,MAAM,gBAAgB,SAAS,QAAQ,MAAM,IAAI,EAAE;EACnD,IAAI,WAAW,WACb,WAAW,WAAW,aAAa;OAC9B;GAGL,WAAW,gBAAgB,IAAI,aAAa,MAAM,GAAG,CAAC,CAAC;GACvD,WAAW,gBAAgB,iBAAiB,IAAI,EAAE,OAAO,cAAc,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,OAAO,CAAC,CAAC;EACxG;CACF;CAEA,OACE,oBAAC,gBAAD;EACE,cAAc;GACZ,WAAW,IAAI,GAAG;GAClB,OAAO,IAAI,GAAG;EAChB;EACA,cAAc,EACZ,OAAO,IAAI,WAAW,WAAW,MAAM,GAAG,EAC5C;EACQ;EACR,OAAO;EACP,eAAe;EACf,OAAO,CAAC,iBAAiB,MAAM,SAAS,CAAC;CAC1C,CAAA;AAEL"}
1
+ {"version":3,"file":"CalendarMonthSelect.js","names":[],"sources":["../../../../lib/components/BitkitCalendar/components/CalendarMonthSelect.tsx"],"sourcesContent":["import { CalendarDate } from '@internationalized/date';\n\nimport { useDatePickerContext } from '../../../atoms/DatePicker/DatePicker';\nimport { rem } from '../../../theme/themeUtils';\nimport CalendarSelect from './CalendarSelect';\n\nconst months = [\n { label: 'January', value: '1' },\n { label: 'February', value: '2' },\n { label: 'March', value: '3' },\n { label: 'April', value: '4' },\n { label: 'May', value: '5' },\n { label: 'June', value: '6' },\n { label: 'July', value: '7' },\n { label: 'August', value: '8' },\n { label: 'September', value: '9' },\n { label: 'October', value: '10' },\n { label: 'November', value: '11' },\n { label: 'December', value: '12' },\n];\n\ntype CalendarMonthSelectProps = {\n offset: number;\n layout?: '1-month' | '2-month';\n min?: CalendarDate;\n max?: CalendarDate;\n};\n\nconst CalendarMonthSelect = ({ offset, layout, min, max }: CalendarMonthSelectProps) => {\n const datePicker = useDatePickerContext();\n\n const currentMonthDate = datePicker.getOffset({ months: offset }).visibleRange.start;\n\n const availableMonths = months.filter((month) => {\n if (!min && !max) return true;\n\n const monthNumber = parseInt(month.value, 10);\n const year = currentMonthDate.year;\n\n const firstDayOfMonth = new CalendarDate(year, monthNumber, 1);\n const lastDayOfMonth = firstDayOfMonth.add({ months: 1 }).subtract({ days: 1 });\n\n const isBeforeMin = min && lastDayOfMonth.compare(min) < 0;\n const isAfterMax = max && firstDayOfMonth.compare(max) > 0;\n\n return !isBeforeMin && !isAfterMax;\n });\n\n const handleMonthChange = (details: { value: string[] }) => {\n const selectedMonth = parseInt(details.value[0], 10);\n if (layout === '1-month') {\n datePicker.focusMonth(selectedMonth);\n } else {\n // first needs to be focused to some distant date otherwise the newly selected month won't always be set properly\n // due to \"smart\" focus behaviour of the calendar in 2-month layout\n datePicker.setFocusedValue(new CalendarDate(1990, 1, 1));\n datePicker.setFocusedValue(currentMonthDate.set({ month: selectedMonth }).subtract({ months: offset }));\n }\n };\n\n return (\n <CalendarSelect\n contentProps={{\n maxHeight: rem(312),\n width: rem(148),\n }}\n controlProps={{\n width: rem(114),\n }}\n items={availableMonths}\n onValueChange={handleMonthChange}\n value={[currentMonthDate.month.toString()]}\n />\n );\n};\n\nexport default CalendarMonthSelect;\n"],"mappings":";;;;;;AAMA,IAAM,SAAS;CACb;EAAE,OAAO;EAAW,OAAO;CAAI;CAC/B;EAAE,OAAO;EAAY,OAAO;CAAI;CAChC;EAAE,OAAO;EAAS,OAAO;CAAI;CAC7B;EAAE,OAAO;EAAS,OAAO;CAAI;CAC7B;EAAE,OAAO;EAAO,OAAO;CAAI;CAC3B;EAAE,OAAO;EAAQ,OAAO;CAAI;CAC5B;EAAE,OAAO;EAAQ,OAAO;CAAI;CAC5B;EAAE,OAAO;EAAU,OAAO;CAAI;CAC9B;EAAE,OAAO;EAAa,OAAO;CAAI;CACjC;EAAE,OAAO;EAAW,OAAO;CAAK;CAChC;EAAE,OAAO;EAAY,OAAO;CAAK;CACjC;EAAE,OAAO;EAAY,OAAO;CAAK;AACnC;AASA,IAAM,uBAAuB,EAAE,QAAQ,QAAQ,KAAK,UAAoC;CACtF,MAAM,aAAa,qBAAqB;CAExC,MAAM,mBAAmB,WAAW,UAAU,EAAE,QAAQ,OAAO,CAAC,CAAC,CAAC,aAAa;CAE/E,MAAM,kBAAkB,OAAO,QAAQ,UAAU;EAC/C,IAAI,CAAC,OAAO,CAAC,KAAK,OAAO;EAEzB,MAAM,cAAc,SAAS,MAAM,OAAO,EAAE;EAC5C,MAAM,OAAO,iBAAiB;EAE9B,MAAM,kBAAkB,IAAI,aAAa,MAAM,aAAa,CAAC;EAC7D,MAAM,iBAAiB,gBAAgB,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;EAE9E,MAAM,cAAc,OAAO,eAAe,QAAQ,GAAG,IAAI;EACzD,MAAM,aAAa,OAAO,gBAAgB,QAAQ,GAAG,IAAI;EAEzD,OAAO,CAAC,eAAe,CAAC;CAC1B,CAAC;CAED,MAAM,qBAAqB,YAAiC;EAC1D,MAAM,gBAAgB,SAAS,QAAQ,MAAM,IAAI,EAAE;EACnD,IAAI,WAAW,WACb,WAAW,WAAW,aAAa;OAC9B;GAGL,WAAW,gBAAgB,IAAI,aAAa,MAAM,GAAG,CAAC,CAAC;GACvD,WAAW,gBAAgB,iBAAiB,IAAI,EAAE,OAAO,cAAc,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,OAAO,CAAC,CAAC;EACxG;CACF;CAEA,OACE,oBAAC,gBAAD;EACE,cAAc;GACZ,WAAW,IAAI,GAAG;GAClB,OAAO,IAAI,GAAG;EAChB;EACA,cAAc,EACZ,OAAO,IAAI,GAAG,EAChB;EACA,OAAO;EACP,eAAe;EACf,OAAO,CAAC,iBAAiB,MAAM,SAAS,CAAC;CAC1C,CAAA;AAEL"}