@rainbow-robotics/muscat-plugin-kit 0.1.2-dev.44 → 0.1.2-dev.45

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 (238) hide show
  1. package/README.md +1 -1
  2. package/cli/README.md +184 -0
  3. package/cli/bin/muscat-pk.mjs +13 -0
  4. package/cli/prepack.mjs +10 -0
  5. package/cli/src/build.mjs +2 -29
  6. package/cli/src/dev.mjs +10 -2
  7. package/cli/src/devBack.mjs +72 -9
  8. package/cli/src/devUi.mjs +100 -34
  9. package/cli/src/manifest.mjs +15 -0
  10. package/cli/src/mcp.mjs +523 -0
  11. package/cli/src/pluginDevServer.mjs +113 -0
  12. package/cli/src/ports.mjs +160 -0
  13. package/cli/src/sdk.mjs +11 -9
  14. package/cli/src/storybook.mjs +168 -0
  15. package/cli/src/templates-embedded.mjs +1 -1
  16. package/cli/storybook-dist/_design-tokens.css +4957 -0
  17. package/cli/storybook-dist/_stories-src/NxAvatar.stories.tsx +27 -0
  18. package/cli/storybook-dist/_stories-src/NxPagination.stories.tsx +28 -0
  19. package/cli/storybook-dist/_stories-src/RBAccordion/RBAccordion.stories.tsx +46 -0
  20. package/cli/storybook-dist/_stories-src/RBAccordion/RBAccordionGroup.stories.tsx +73 -0
  21. package/cli/storybook-dist/_stories-src/RBBadge/RBBadge.stories.tsx +93 -0
  22. package/cli/storybook-dist/_stories-src/RBBattery/RBBattery.stories.tsx +74 -0
  23. package/cli/storybook-dist/_stories-src/RBButton/RBCheckIconButton.stories.tsx +28 -0
  24. package/cli/storybook-dist/_stories-src/RBButton/RBCheckLabelButton.stories.tsx +84 -0
  25. package/cli/storybook-dist/_stories-src/RBButton/RBIconButton.stories.tsx +57 -0
  26. package/cli/storybook-dist/_stories-src/RBButton/RBInlineLabelButton.stories.tsx +41 -0
  27. package/cli/storybook-dist/_stories-src/RBButton/RBLabelButton.stories.tsx +60 -0
  28. package/cli/storybook-dist/_stories-src/RBDatePicker/RBDateInput.stories.tsx +44 -0
  29. package/cli/storybook-dist/_stories-src/RBDatePicker/RBRangeDateInput.stories.tsx +44 -0
  30. package/cli/storybook-dist/_stories-src/RBDialog/RBAlert.stories.tsx +51 -0
  31. package/cli/storybook-dist/_stories-src/RBDialog/RBConfirm.stories.tsx +55 -0
  32. package/cli/storybook-dist/_stories-src/RBDialog/RBPrompt.stories.tsx +52 -0
  33. package/cli/storybook-dist/_stories-src/RBDivider/RBDivider.stories.tsx +93 -0
  34. package/cli/storybook-dist/_stories-src/RBEmptyView/RBEmptyView.stories.tsx +49 -0
  35. package/cli/storybook-dist/_stories-src/RBIcons/RBColorIcons.stories.tsx +108 -0
  36. package/cli/storybook-dist/_stories-src/RBIcons/RBIcons.stories.tsx +106 -0
  37. package/cli/storybook-dist/_stories-src/RBIcons/RBMenuTreeIcons.stories.tsx +108 -0
  38. package/cli/storybook-dist/_stories-src/RBIcons/RBProgramIcons.stories.tsx +116 -0
  39. package/cli/storybook-dist/_stories-src/RBInput/RBCheckBox.stories.tsx +89 -0
  40. package/cli/storybook-dist/_stories-src/RBInput/RBMultiRangeInput.stories.tsx +64 -0
  41. package/cli/storybook-dist/_stories-src/RBInput/RBRadioBox.stories.tsx +65 -0
  42. package/cli/storybook-dist/_stories-src/RBInput/RBRadioButton.stories.tsx +68 -0
  43. package/cli/storybook-dist/_stories-src/RBInput/RBSelectBox.stories.tsx +119 -0
  44. package/cli/storybook-dist/_stories-src/RBInput/RBSideNumberInput.stories.tsx +90 -0
  45. package/cli/storybook-dist/_stories-src/RBInput/RBText/RBTextArea.stories.tsx +45 -0
  46. package/cli/storybook-dist/_stories-src/RBInput/RBText/RBTextInput.stories.tsx +50 -0
  47. package/cli/storybook-dist/_stories-src/RBInput/RBTextField.stories.tsx +102 -0
  48. package/cli/storybook-dist/_stories-src/RBJoyStick/RBJoyStick.stories.tsx +31 -0
  49. package/cli/storybook-dist/_stories-src/RBLight/RBLight.stories.tsx +36 -0
  50. package/cli/storybook-dist/_stories-src/RBPagination/RBPagination.stories.tsx +49 -0
  51. package/cli/storybook-dist/_stories-src/RBShadcn/RBCard/RBCard.stories.tsx +89 -0
  52. package/cli/storybook-dist/_stories-src/RBShadcn/RBCommand/RBCommand.stories.tsx +116 -0
  53. package/cli/storybook-dist/_stories-src/RBShadcn/RBDialog/RBDialog.stories.tsx +74 -0
  54. package/cli/storybook-dist/_stories-src/RBShadcn/RBDrawer/RBDrawer.stories.tsx +99 -0
  55. package/cli/storybook-dist/_stories-src/RBShadcn/RBDropdownMenu/RBDropdownMenu.stories.tsx +123 -0
  56. package/cli/storybook-dist/_stories-src/RBShadcn/RBMenubar/RBMenubar.stories.tsx +135 -0
  57. package/cli/storybook-dist/_stories-src/RBShadcn/RBPopover/RBPopover.stories.tsx +69 -0
  58. package/cli/storybook-dist/_stories-src/RBShadcn/RBResizable/RBResizable.stories.tsx +49 -0
  59. package/cli/storybook-dist/_stories-src/RBShadcn/RBSheet/RBSheet.stories.tsx +91 -0
  60. package/cli/storybook-dist/_stories-src/RBShadcn/RBSlider/RBSlider.stories.tsx +38 -0
  61. package/cli/storybook-dist/_stories-src/RBShadcn/RBSwitch/RBSwitch.stories.tsx +112 -0
  62. package/cli/storybook-dist/_stories-src/RBShadcn/RBTabs/RBTabs.stories.tsx +75 -0
  63. package/cli/storybook-dist/_stories-src/RBShadcn/RBToggle/RBToggle.stories.tsx +51 -0
  64. package/cli/storybook-dist/_stories-src/RBShadcn/RBToggleGroup/RBToggleGroup.stories.tsx +84 -0
  65. package/cli/storybook-dist/_stories-src/RBTab/RBChipTab.stories.tsx +102 -0
  66. package/cli/storybook-dist/_stories-src/RBTab/RBChipsBoxTab.stories.tsx +78 -0
  67. package/cli/storybook-dist/_stories-src/RBTab/RBTab.stories.tsx +57 -0
  68. package/cli/storybook-dist/_stories-src/RBTable/RBTable.stories.tsx +177 -0
  69. package/cli/storybook-dist/_stories-src/RBTable/RBTableRow.stories.tsx +64 -0
  70. package/cli/storybook-dist/_stories-src/RBToast/RBToast.stories.tsx +117 -0
  71. package/cli/storybook-dist/_stories-src/RBTooltip/RBTooltip.stories.tsx +50 -0
  72. package/cli/storybook-dist/_stories-src/loading/RBSpinner.stories.tsx +30 -0
  73. package/cli/storybook-dist/_stories-src/nx-button/NxButton.stories.tsx +54 -0
  74. package/cli/storybook-dist/_stories-src/nx-button/NxPointerHoldButton.stories.tsx +57 -0
  75. package/cli/storybook-dist/_stories-src/nx-icons/NxIcons.stories.tsx +48 -0
  76. package/cli/storybook-dist/_stories-src/nx-inputs/NxNumberInput.stories.tsx +103 -0
  77. package/cli/storybook-dist/_stories-src/nx-inputs/NxRangeInput.stories.tsx +27 -0
  78. package/cli/storybook-dist/_stories-src/nx-inputs/NxSelectBox.stories.tsx +67 -0
  79. package/cli/storybook-dist/_stories-src/nx-inputs/NxSlideRange.stories.tsx +45 -0
  80. package/cli/storybook-dist/_stories-src/nx-inputs/NxSwitch.stories.tsx +27 -0
  81. package/cli/storybook-dist/_stories-src/nx-inputs/NxTextArea.stories.tsx +48 -0
  82. package/cli/storybook-dist/_stories-src/nx-inputs/NxTextInput.stories.tsx +46 -0
  83. package/cli/storybook-dist/assets/Color-YHDXOIA2-BjuzF3Je.js +1 -0
  84. package/cli/storybook-dist/assets/Docs-BAFZYTMR.js +12 -0
  85. package/cli/storybook-dist/assets/Docs-BQesYW-Q.js +8 -0
  86. package/cli/storybook-dist/assets/Docs-BsMEe093.js +7 -0
  87. package/cli/storybook-dist/assets/Docs-By6k6vcM.js +20 -0
  88. package/cli/storybook-dist/assets/Docs-D1J63cJc.js +7 -0
  89. package/cli/storybook-dist/assets/Docs-GoNbntAU.js +8 -0
  90. package/cli/storybook-dist/assets/DocsRenderer-CFRXHY34-BwY_WiM7.js +2 -0
  91. package/cli/storybook-dist/assets/NxAvatar.stories-CvzBHfYa.js +13 -0
  92. package/cli/storybook-dist/assets/NxButton.stories-B83PesgN.js +20 -0
  93. package/cli/storybook-dist/assets/NxIcons.stories-Ca7qpAaO.js +3 -0
  94. package/cli/storybook-dist/assets/NxNumberInput.stories-DpNcCG6B.js +26 -0
  95. package/cli/storybook-dist/assets/NxPagination.stories-Xnvd3xhH.js +11 -0
  96. package/cli/storybook-dist/assets/NxPointerHoldButton.stories-C3YSIpM0.js +14 -0
  97. package/cli/storybook-dist/assets/NxRangeInput.stories-DIhaNZig.js +17 -0
  98. package/cli/storybook-dist/assets/NxSelectBox.stories-BGwO2mYJ.js +17 -0
  99. package/cli/storybook-dist/assets/NxSlideRange.stories-BXlt5Bgt.js +14 -0
  100. package/cli/storybook-dist/assets/NxSwitch.stories-C5ZqIRtw.js +11 -0
  101. package/cli/storybook-dist/assets/NxTextArea.stories-hm_ycALo.js +11 -0
  102. package/cli/storybook-dist/assets/NxTextInput.stories-DkZAySr_.js +11 -0
  103. package/cli/storybook-dist/assets/PretendardVariable-CJuje-Rk.woff2 +0 -0
  104. package/cli/storybook-dist/assets/RBAccordion.stories--bY36GZY.js +17 -0
  105. package/cli/storybook-dist/assets/RBAccordionGroup.stories-BVr1ccI4.js +33 -0
  106. package/cli/storybook-dist/assets/RBAlert.stories-CkjFBEkv.js +17 -0
  107. package/cli/storybook-dist/assets/RBBadge.stories-CNXILDPh.js +1 -0
  108. package/cli/storybook-dist/assets/RBBattery.stories-AokMv8ZY.js +10 -0
  109. package/cli/storybook-dist/assets/RBCard.stories-CX1sLKB2.js +45 -0
  110. package/cli/storybook-dist/assets/RBCheckBox.stories-By3QHBFm.js +1 -0
  111. package/cli/storybook-dist/assets/RBCheckIconButton.stories-Dud1uK3X.js +1 -0
  112. package/cli/storybook-dist/assets/RBCheckLabelButton.stories-C8iBkZxY.js +24 -0
  113. package/cli/storybook-dist/assets/RBChipTab.stories-DsgbiS2U.js +21 -0
  114. package/cli/storybook-dist/assets/RBChipsBoxTab.stories-C3DZGmq0.js +1 -0
  115. package/cli/storybook-dist/assets/RBColorIcons.stories-CusR20qk.js +3 -0
  116. package/cli/storybook-dist/assets/RBCommand.stories-DhJNgaLZ.js +73 -0
  117. package/cli/storybook-dist/assets/RBConfirm.stories-B6LKpCDa.js +20 -0
  118. package/cli/storybook-dist/assets/RBDateInput.stories-PEEhQ1wJ.js +15 -0
  119. package/cli/storybook-dist/assets/RBDialog.stories-CAtOdRen.js +38 -0
  120. package/cli/storybook-dist/assets/RBDivider.stories-0zpIUlXT.js +1 -0
  121. package/cli/storybook-dist/assets/RBDrawer.stories-CWMG4glY.js +14 -0
  122. package/cli/storybook-dist/assets/RBDropdownMenu.stories-6fbEYZfk.js +86 -0
  123. package/cli/storybook-dist/assets/RBEmptyView.stories-BRDZHjn4.js +12 -0
  124. package/cli/storybook-dist/assets/RBIconButton.stories-sYrRLYob.js +1 -0
  125. package/cli/storybook-dist/assets/RBIcons.stories-DFe8O1_g.js +3 -0
  126. package/cli/storybook-dist/assets/RBInlineLabelButton.stories-DX4VdUfk.js +1 -0
  127. package/cli/storybook-dist/assets/RBJoyStick.stories-SA2Foelf.js +11 -0
  128. package/cli/storybook-dist/assets/RBLabelButton.stories-CicBns_Y.js +1 -0
  129. package/cli/storybook-dist/assets/RBLight.stories-WlP3oEmY.js +1 -0
  130. package/cli/storybook-dist/assets/RBMenuTreeIcons.stories-CrWjPfxj.js +3 -0
  131. package/cli/storybook-dist/assets/RBMenubar.stories-Di4phWw7.js +3 -0
  132. package/cli/storybook-dist/assets/RBMultiRangeInput.stories-DS3wrR3l.js +14 -0
  133. package/cli/storybook-dist/assets/RBPagination.stories-BDVPAUVD.js +17 -0
  134. package/cli/storybook-dist/assets/RBPopover.stories-DL9b_iX9.js +11 -0
  135. package/cli/storybook-dist/assets/RBProgramIcons.stories-ByRVx-on.js +3 -0
  136. package/cli/storybook-dist/assets/RBPrompt.stories-vTmKWyA5.js +20 -0
  137. package/cli/storybook-dist/assets/RBRadioBox.stories-C9WHt4jb.js +1 -0
  138. package/cli/storybook-dist/assets/RBRadioButton.stories-D8KYq63j.js +11 -0
  139. package/cli/storybook-dist/assets/RBRangeDateInput.stories-Bvcf4Su7.js +15 -0
  140. package/cli/storybook-dist/assets/RBResizable.stories-3O2OMuH_.js +20 -0
  141. package/cli/storybook-dist/assets/RBSelectBox.stories-CKZLmPzX.js +6 -0
  142. package/cli/storybook-dist/assets/RBSheet.stories-Dko0It1W.js +39 -0
  143. package/cli/storybook-dist/assets/RBSideNumberInput.stories-CUvqVtId.js +5 -0
  144. package/cli/storybook-dist/assets/RBSlider.stories-CcbaKRYo.js +5 -0
  145. package/cli/storybook-dist/assets/RBSpinner.stories-D15e_JlE.js +14 -0
  146. package/cli/storybook-dist/assets/RBSwitch.stories-C4JRsYJ6.js +65 -0
  147. package/cli/storybook-dist/assets/RBTab.stories-BPvzQSM-.js +1 -0
  148. package/cli/storybook-dist/assets/RBTable.stories-nr8OS1mV.js +62 -0
  149. package/cli/storybook-dist/assets/RBTableRow.stories-rI0rK8Ci.js +11 -0
  150. package/cli/storybook-dist/assets/RBTabs.stories-CxMtHGWA.js +21 -0
  151. package/cli/storybook-dist/assets/RBTextArea.stories-Bru4AhJ3.js +5 -0
  152. package/cli/storybook-dist/assets/RBTextField.stories-Ah3D9lto.js +45 -0
  153. package/cli/storybook-dist/assets/RBTextInput.stories-C3qAVngJ.js +5 -0
  154. package/cli/storybook-dist/assets/RBToast.stories-C1occsvf.js +11 -0
  155. package/cli/storybook-dist/assets/RBToggle.stories-BNrNERc7.js +12 -0
  156. package/cli/storybook-dist/assets/RBToggleGroup.stories-D_RRBwxY.js +17 -0
  157. package/cli/storybook-dist/assets/RBTooltip.stories-DuyOQqrB.js +9 -0
  158. package/cli/storybook-dist/assets/RainbowUiProvider-BYlbsa69.css +1 -0
  159. package/cli/storybook-dist/assets/RainbowUiProvider-B_piZBLb.js +31 -0
  160. package/cli/storybook-dist/assets/browserUtils-DeopUpDy.js +1 -0
  161. package/cli/storybook-dist/assets/chunk-XP5HYGXS-BHXC9YeQ.js +1 -0
  162. package/cli/storybook-dist/assets/client-DTf7SId2.js +1 -0
  163. package/cli/storybook-dist/assets/createConveyorBeltLayer-Cn41pFRH.js +6210 -0
  164. package/cli/storybook-dist/assets/createConveyorBeltLayer-Ds5AOper.css +21 -0
  165. package/cli/storybook-dist/assets/entry-preview-D-mLV0cS.js +2 -0
  166. package/cli/storybook-dist/assets/entry-preview-docs-b8bpVBXy.js +46 -0
  167. package/cli/storybook-dist/assets/iframe-DNru2eN7.js +211 -0
  168. package/cli/storybook-dist/assets/index-B4FGfHer.js +1 -0
  169. package/cli/storybook-dist/assets/index-BRq5TIsn.js +24 -0
  170. package/cli/storybook-dist/assets/index-C1OzuK6-.js +240 -0
  171. package/cli/storybook-dist/assets/index-CT3U1fyk.js +1 -0
  172. package/cli/storybook-dist/assets/index-ChsGqxH_.js +9 -0
  173. package/cli/storybook-dist/assets/index-Cwr2bQOB.js +575 -0
  174. package/cli/storybook-dist/assets/index-DKFBREX_.js +1 -0
  175. package/cli/storybook-dist/assets/index-DgH-xKnr.js +11 -0
  176. package/cli/storybook-dist/assets/index-Dmy2JGbm.js +1 -0
  177. package/cli/storybook-dist/assets/index-DrFu-skq.js +6 -0
  178. package/cli/storybook-dist/assets/jsx-runtime-BTJTZTIL.js +9 -0
  179. package/cli/storybook-dist/assets/keymapTileIndex.worker-BsNYNbqs.js +1 -0
  180. package/cli/storybook-dist/assets/preview-B8lJiyuQ.js +34 -0
  181. package/cli/storybook-dist/assets/preview-BBWR9nbA.js +1 -0
  182. package/cli/storybook-dist/assets/preview-BWzBA1C2.js +396 -0
  183. package/cli/storybook-dist/assets/preview-CILRoSnB.js +1 -0
  184. package/cli/storybook-dist/assets/preview-CVgpLj3b.js +1 -0
  185. package/cli/storybook-dist/assets/preview-CvbIS5ZJ.js +1 -0
  186. package/cli/storybook-dist/assets/preview-DD_OYowb.js +1 -0
  187. package/cli/storybook-dist/assets/preview-DGUiP6tS.js +7 -0
  188. package/cli/storybook-dist/assets/preview-DHQbi4pV.js +1 -0
  189. package/cli/storybook-dist/assets/preview-DUTcCPBe.css +1 -0
  190. package/cli/storybook-dist/assets/preview-QAsoD6Sa.js +2 -0
  191. package/cli/storybook-dist/assets/preview-rcRMbKPr.js +3 -0
  192. package/cli/storybook-dist/assets/react-18-hB3smqWJ.js +1 -0
  193. package/cli/storybook-dist/assets/react-resizable-panels.browser-CvAJUcrm.js +72 -0
  194. package/cli/storybook-dist/assets/test-utils-BQudk2xt.js +9 -0
  195. package/cli/storybook-dist/favicon.svg +1 -0
  196. package/cli/storybook-dist/iframe.html +666 -0
  197. package/cli/storybook-dist/index.html +190 -0
  198. package/cli/storybook-dist/index.json +1 -0
  199. package/cli/storybook-dist/nunito-sans-bold-italic.woff2 +0 -0
  200. package/cli/storybook-dist/nunito-sans-bold.woff2 +0 -0
  201. package/cli/storybook-dist/nunito-sans-italic.woff2 +0 -0
  202. package/cli/storybook-dist/nunito-sans-regular.woff2 +0 -0
  203. package/cli/storybook-dist/project.json +1 -0
  204. package/cli/storybook-dist/sb-addons/chromatic-com-storybook-10/manager-bundle.js +331 -0
  205. package/cli/storybook-dist/sb-addons/chromatic-com-storybook-10/manager-bundle.js.LEGAL.txt +51 -0
  206. package/cli/storybook-dist/sb-addons/essentials-actions-3/manager-bundle.js +3 -0
  207. package/cli/storybook-dist/sb-addons/essentials-backgrounds-5/manager-bundle.js +12 -0
  208. package/cli/storybook-dist/sb-addons/essentials-controls-2/manager-bundle.js +405 -0
  209. package/cli/storybook-dist/sb-addons/essentials-docs-4/manager-bundle.js +245 -0
  210. package/cli/storybook-dist/sb-addons/essentials-measure-8/manager-bundle.js +3 -0
  211. package/cli/storybook-dist/sb-addons/essentials-outline-9/manager-bundle.js +3 -0
  212. package/cli/storybook-dist/sb-addons/essentials-toolbars-7/manager-bundle.js +3 -0
  213. package/cli/storybook-dist/sb-addons/essentials-viewport-6/manager-bundle.js +3 -0
  214. package/cli/storybook-dist/sb-addons/links-1/manager-bundle.js +3 -0
  215. package/cli/storybook-dist/sb-addons/storybook-13/manager-bundle.js +3 -0
  216. package/cli/storybook-dist/sb-addons/storybook-core-core-server-presets-0/common-manager-bundle.js +3 -0
  217. package/cli/storybook-dist/sb-addons/storybook-experimental-addon-test-12/manager-bundle.js +223 -0
  218. package/cli/storybook-dist/sb-addons/themes-11/manager-bundle.js +3 -0
  219. package/cli/storybook-dist/sb-common-assets/favicon.svg +1 -0
  220. package/cli/storybook-dist/sb-common-assets/nunito-sans-bold-italic.woff2 +0 -0
  221. package/cli/storybook-dist/sb-common-assets/nunito-sans-bold.woff2 +0 -0
  222. package/cli/storybook-dist/sb-common-assets/nunito-sans-italic.woff2 +0 -0
  223. package/cli/storybook-dist/sb-common-assets/nunito-sans-regular.woff2 +0 -0
  224. package/cli/storybook-dist/sb-manager/globals-module-info.js +1052 -0
  225. package/cli/storybook-dist/sb-manager/globals-runtime.js +41775 -0
  226. package/cli/storybook-dist/sb-manager/globals.js +48 -0
  227. package/cli/storybook-dist/sb-manager/runtime.js +12048 -0
  228. package/cli/templates/common/.mcp.json +8 -0
  229. package/cli/templates/common/README.md +467 -53
  230. package/cli/templates/common/assets/icon.svg +44 -2
  231. package/cli/templates/common/package.json +2 -0
  232. package/cli/templates/common/ui/content.tsx +209 -26
  233. package/cli/templates/common/ui/style.css +6 -0
  234. package/cli/templates/common/vite.config.ts +6 -34
  235. package/cli/templates/cpp/cpp/main.cpp +1 -0
  236. package/cli/vite.d.mts +25 -0
  237. package/cli/vite.mjs +271 -0
  238. package/package.json +31 -4
@@ -0,0 +1,123 @@
1
+ import type { Meta, StoryObj } from "@storybook/react";
2
+ import { useState } from "react";
3
+
4
+ import { VStack } from "@repo/rb-components";
5
+ import {
6
+ RBIcons,
7
+ RBLabelButton,
8
+ RBDropdownMenu,
9
+ RBDropdownMenuCheckboxItem,
10
+ RBDropdownMenuContent,
11
+ RBDropdownMenuItem,
12
+ RBDropdownMenuLabel,
13
+ RBDropdownMenuSeparator,
14
+ RBDropdownMenuShortcut,
15
+ RBDropdownMenuSub,
16
+ RBDropdownMenuSubContent,
17
+ RBDropdownMenuSubTrigger,
18
+ RBDropdownMenuTrigger,
19
+ } from "@repo/rb-components/new_components";
20
+
21
+ const meta = {
22
+ tags: ["autodocs"],
23
+ component: RBDropdownMenu,
24
+ } satisfies Meta<typeof RBDropdownMenu>;
25
+
26
+ export default meta;
27
+ type Story = StoryObj<typeof meta>;
28
+
29
+ export const Playground: Story = {
30
+ render: () => {
31
+ const [bookmarked, setBookmarked] = useState(true);
32
+ const [notifications, setNotifications] = useState(false);
33
+
34
+ return (
35
+ <VStack className="bg-alt-1 min-h-[420px] items-center justify-center rounded-2xl p-8">
36
+ <RBDropdownMenu>
37
+ <RBDropdownMenuTrigger asChild>
38
+ <RBLabelButton size="sm" variant="outlined">
39
+ Open
40
+ </RBLabelButton>
41
+ </RBDropdownMenuTrigger>
42
+ <RBDropdownMenuContent className="w-40" sideOffset={8}>
43
+ <RBDropdownMenuLabel>My Account</RBDropdownMenuLabel>
44
+ <RBDropdownMenuSeparator />
45
+
46
+ <RBDropdownMenuCheckboxItem
47
+ checked={bookmarked}
48
+ onCheckedChange={(next) => setBookmarked(next === true)}
49
+ >
50
+ <span className="flex-1 truncate">Bookmarked</span>
51
+ <RBDropdownMenuShortcut>⌘B</RBDropdownMenuShortcut>
52
+ </RBDropdownMenuCheckboxItem>
53
+ <RBDropdownMenuCheckboxItem
54
+ checked={notifications}
55
+ onCheckedChange={(next) => setNotifications(next === true)}
56
+ >
57
+ <span className="flex-1 truncate">Notifications</span>
58
+ <RBDropdownMenuShortcut>⌘N</RBDropdownMenuShortcut>
59
+ </RBDropdownMenuCheckboxItem>
60
+
61
+ <RBDropdownMenuSeparator />
62
+
63
+ <RBDropdownMenuItem>
64
+ <RBIcons.SvgFolderOpenRegular className="size-4" />
65
+ <span className="flex-1 truncate">Profile</span>
66
+ <RBDropdownMenuShortcut>⇧⌘P</RBDropdownMenuShortcut>
67
+ </RBDropdownMenuItem>
68
+
69
+ <RBDropdownMenuItem>
70
+ <RBIcons.SvgFolderOpenRegular className="size-4" />
71
+ <span className="flex-1 truncate">Billing</span>
72
+ <RBDropdownMenuShortcut>⌘B</RBDropdownMenuShortcut>
73
+ </RBDropdownMenuItem>
74
+
75
+ <RBDropdownMenuItem>
76
+ <RBIcons.SvgFolderOpenRegular className="size-4" />
77
+ <span className="flex-1 truncate">Settings</span>
78
+ <RBDropdownMenuShortcut>⌘S</RBDropdownMenuShortcut>
79
+ </RBDropdownMenuItem>
80
+
81
+ <RBDropdownMenuSeparator />
82
+
83
+ <RBDropdownMenuItem>
84
+ <span className="flex-1 truncate">Team</span>
85
+ </RBDropdownMenuItem>
86
+
87
+ <RBDropdownMenuSub>
88
+ <RBDropdownMenuSubTrigger>
89
+ <span className="flex-1 truncate">Invite users</span>
90
+ </RBDropdownMenuSubTrigger>
91
+ <RBDropdownMenuSubContent className="w-56">
92
+ <RBDropdownMenuItem>Email</RBDropdownMenuItem>
93
+ <RBDropdownMenuItem>Message</RBDropdownMenuItem>
94
+ <RBDropdownMenuSub>
95
+ <RBDropdownMenuSubTrigger>
96
+ <span className="flex-1 truncate">More options</span>
97
+ </RBDropdownMenuSubTrigger>
98
+ </RBDropdownMenuSub>
99
+ </RBDropdownMenuSubContent>
100
+ </RBDropdownMenuSub>
101
+
102
+ <RBDropdownMenuItem>
103
+ <span className="flex-1 truncate">New Team</span>
104
+ <RBDropdownMenuShortcut>⌘+T</RBDropdownMenuShortcut>
105
+ </RBDropdownMenuItem>
106
+
107
+ <RBDropdownMenuItem disabled>
108
+ <span className="flex-1 truncate">API</span>
109
+ </RBDropdownMenuItem>
110
+
111
+ <RBDropdownMenuSeparator />
112
+
113
+ <RBDropdownMenuItem variant="destructive">
114
+ <RBIcons.SvgFolderOpenRegular className="size-4" />
115
+ <span className="flex-1 truncate">Log out</span>
116
+ <RBDropdownMenuShortcut>⌘Q</RBDropdownMenuShortcut>
117
+ </RBDropdownMenuItem>
118
+ </RBDropdownMenuContent>
119
+ </RBDropdownMenu>
120
+ </VStack>
121
+ );
122
+ },
123
+ };
@@ -0,0 +1,135 @@
1
+ import type { Meta, StoryObj } from "@storybook/react";
2
+ import { useState } from "react";
3
+
4
+ import { VStack } from "@repo/rb-components";
5
+ import {
6
+ RBMenubar,
7
+ RBMenubarCheckboxItem,
8
+ RBMenubarContent,
9
+ RBMenubarItem,
10
+ RBMenubarMenu,
11
+ RBMenubarSeparator,
12
+ RBMenubarShortcut,
13
+ RBMenubarSub,
14
+ RBMenubarSubContent,
15
+ RBMenubarSubTrigger,
16
+ RBMenubarTrigger,
17
+ } from "@repo/rb-components/new_components";
18
+
19
+ const meta = {
20
+ tags: ["autodocs"],
21
+ component: RBMenubar,
22
+ } satisfies Meta<typeof RBMenubar>;
23
+
24
+ export default meta;
25
+ type Story = StoryObj<typeof meta>;
26
+
27
+ const PlaygroundStory = () => {
28
+ const [showToolbar, setShowToolbar] = useState(true);
29
+ const [showStatusBar, setShowStatusBar] = useState(false);
30
+
31
+ return (
32
+ <VStack className="bg-alt-1 min-h-[420px] items-center justify-center rounded-2xl p-8">
33
+ <RBMenubar>
34
+ <RBMenubarMenu>
35
+ <RBMenubarTrigger>File</RBMenubarTrigger>
36
+ <RBMenubarContent>
37
+ <RBMenubarCheckboxItem
38
+ checked={showToolbar}
39
+ onCheckedChange={(next) => setShowToolbar(next === true)}
40
+ >
41
+ <span className="flex-1 truncate">Show Toolbar</span>
42
+ <RBMenubarShortcut>⌘T</RBMenubarShortcut>
43
+ </RBMenubarCheckboxItem>
44
+
45
+ <RBMenubarCheckboxItem
46
+ checked={showStatusBar}
47
+ onCheckedChange={(next) => setShowStatusBar(next === true)}
48
+ >
49
+ <span className="flex-1 truncate">Show Status Bar</span>
50
+ <RBMenubarShortcut>⌘S</RBMenubarShortcut>
51
+ </RBMenubarCheckboxItem>
52
+
53
+ <RBMenubarSeparator />
54
+
55
+ <RBMenubarItem>
56
+ <span className="flex-1 truncate">New Tab</span>
57
+ <RBMenubarShortcut>⌘T</RBMenubarShortcut>
58
+ </RBMenubarItem>
59
+ <RBMenubarItem>
60
+ <span className="flex-1 truncate">New Window</span>
61
+ <RBMenubarShortcut>⌘N</RBMenubarShortcut>
62
+ </RBMenubarItem>
63
+ <RBMenubarItem>
64
+ <span className="flex-1 truncate">New Incognito Window</span>
65
+ </RBMenubarItem>
66
+
67
+ <RBMenubarSeparator />
68
+
69
+ <RBMenubarSub>
70
+ <RBMenubarSubTrigger>
71
+ <span className="flex-1 truncate">Share</span>
72
+ </RBMenubarSubTrigger>
73
+ <RBMenubarSubContent>
74
+ <RBMenubarItem>
75
+ <span className="flex-1 truncate">Email link</span>
76
+ </RBMenubarItem>
77
+ <RBMenubarItem>
78
+ <span className="flex-1 truncate">Messages</span>
79
+ </RBMenubarItem>
80
+ <RBMenubarItem variant="destructive">
81
+ <span className="flex-1 truncate">Notes</span>
82
+ </RBMenubarItem>
83
+ </RBMenubarSubContent>
84
+ </RBMenubarSub>
85
+
86
+ <RBMenubarSeparator />
87
+
88
+ <RBMenubarItem disabled>
89
+ <span className="flex-1 truncate">Print</span>
90
+ <RBMenubarShortcut>⌘P</RBMenubarShortcut>
91
+ </RBMenubarItem>
92
+ </RBMenubarContent>
93
+ </RBMenubarMenu>
94
+
95
+ <RBMenubarMenu>
96
+ <RBMenubarTrigger>Edit</RBMenubarTrigger>
97
+ <RBMenubarContent>
98
+ <RBMenubarItem>
99
+ <span className="flex-1 truncate">Menubar Item Text</span>
100
+ <RBMenubarShortcut>⌘P</RBMenubarShortcut>
101
+ </RBMenubarItem>
102
+ <RBMenubarItem>
103
+ <span className="flex-1 truncate">Menubar Item Text</span>
104
+ <RBMenubarShortcut>⌘P</RBMenubarShortcut>
105
+ </RBMenubarItem>
106
+ </RBMenubarContent>
107
+ </RBMenubarMenu>
108
+
109
+ <RBMenubarMenu>
110
+ <RBMenubarTrigger>View</RBMenubarTrigger>
111
+ <RBMenubarContent>
112
+ <RBMenubarItem>
113
+ <span className="flex-1 truncate">Menubar Item Text</span>
114
+ <RBMenubarShortcut>⌘P</RBMenubarShortcut>
115
+ </RBMenubarItem>
116
+ </RBMenubarContent>
117
+ </RBMenubarMenu>
118
+
119
+ <RBMenubarMenu>
120
+ <RBMenubarTrigger>Profiles</RBMenubarTrigger>
121
+ <RBMenubarContent>
122
+ <RBMenubarItem variant="destructive">
123
+ <span className="flex-1 truncate">Menubar Item Text</span>
124
+ <RBMenubarShortcut>⌘P</RBMenubarShortcut>
125
+ </RBMenubarItem>
126
+ </RBMenubarContent>
127
+ </RBMenubarMenu>
128
+ </RBMenubar>
129
+ </VStack>
130
+ );
131
+ };
132
+
133
+ export const Playground: Story = {
134
+ render: () => <PlaygroundStory />,
135
+ };
@@ -0,0 +1,69 @@
1
+ import type { Meta, StoryFn, StoryObj } from "@storybook/react";
2
+
3
+ import {
4
+ RBPopover,
5
+ RBPopoverContent,
6
+ RBPopoverPlacements,
7
+ RBPopoverTrigger,
8
+ type RBPopoverPlacement,
9
+ } from "@repo/rb-components/new_components";
10
+
11
+ type StoryArgs = {
12
+ place: RBPopoverPlacement;
13
+ arrow: boolean;
14
+ };
15
+
16
+ type StoryComponent = StoryObj<StoryArgs>;
17
+ type StoryTemplate = StoryFn<StoryArgs>;
18
+
19
+ export default {
20
+ component: RBPopover,
21
+ tags: ["autodocs"],
22
+ args: {
23
+ place: "bottom-center",
24
+ arrow: false,
25
+ },
26
+ argTypes: {
27
+ place: {
28
+ control: "select",
29
+ options: RBPopoverPlacements,
30
+ },
31
+ arrow: {
32
+ control: "boolean",
33
+ },
34
+ },
35
+ } as Meta<StoryArgs>;
36
+
37
+ const Template: StoryTemplate = ({ place, arrow }: StoryArgs) => {
38
+ return (
39
+ <div className="flex items-center justify-center overflow-hidden">
40
+ <RBPopover>
41
+ <RBPopoverTrigger asChild>
42
+ <button className="text-fg-default border-danger border-1">
43
+ Open Popover
44
+ </button>
45
+ </RBPopoverTrigger>
46
+
47
+ <RBPopoverContent
48
+ place={place}
49
+ arrow={arrow}
50
+ className="text-fg-default py-2_5 min-h-32 min-w-64 px-3"
51
+ >
52
+ Popover Content
53
+ </RBPopoverContent>
54
+ </RBPopover>
55
+ </div>
56
+ );
57
+ };
58
+
59
+ export const Default: StoryComponent = {
60
+ parameters: {
61
+ docs: {
62
+ description: {
63
+ story: "",
64
+ },
65
+ },
66
+ },
67
+ args: {},
68
+ render: Template,
69
+ };
@@ -0,0 +1,49 @@
1
+ import type { Meta, StoryObj } from "@storybook/react";
2
+
3
+ import {
4
+ RBResizable,
5
+ RBResizableHandle,
6
+ RBResizablePanel,
7
+ } from "@repo/rb-components/new_components";
8
+
9
+ const meta = {
10
+ tags: ["autodocs"],
11
+ component: RBResizable,
12
+ parameters: {
13
+ layout: "centered",
14
+ },
15
+ argTypes: {
16
+ direction: {
17
+ control: "select",
18
+ options: ["horizontal", "vertical"],
19
+ },
20
+ },
21
+ } satisfies Meta<typeof RBResizable>;
22
+
23
+ export default meta;
24
+
25
+ type Story = StoryObj<typeof meta>;
26
+
27
+ const panelBaseClassName =
28
+ "flex h-full items-center justify-center text-base font-medium text-fg-default";
29
+
30
+ export const Overview: Story = {
31
+ args: {
32
+ direction: "horizontal",
33
+ },
34
+ render: ({ direction }) => (
35
+ <div className="relative h-[520px] w-[520px] overflow-hidden p-5">
36
+ <div className="flex h-full items-center justify-center">
37
+ <RBResizable direction={direction} className="h-[480px] w-[480px]">
38
+ <RBResizablePanel>
39
+ <div className={panelBaseClassName}>One</div>
40
+ </RBResizablePanel>
41
+ <RBResizableHandle />
42
+ <RBResizablePanel>
43
+ <div className={panelBaseClassName}>Two</div>
44
+ </RBResizablePanel>
45
+ </RBResizable>
46
+ </div>
47
+ </div>
48
+ ),
49
+ };
@@ -0,0 +1,91 @@
1
+ import type { Meta, StoryObj } from "@storybook/react";
2
+ import { VStack } from "@repo/rb-components";
3
+
4
+ import {
5
+ RBLabelButton,
6
+ RBSheet,
7
+ RBSheetContent,
8
+ RBSheetDescription,
9
+ RBSheetFooter,
10
+ RBSheetHeader,
11
+ RBSheetTitle,
12
+ RBSheetTrigger,
13
+ RBTextField,
14
+ RBTextInput,
15
+ } from "@repo/rb-components/new_components";
16
+
17
+ const meta = {
18
+ tags: ["autodocs"],
19
+ argTypes: {
20
+ showCloseButton: {
21
+ control: "boolean",
22
+ },
23
+ side: {
24
+ control: { type: "select" },
25
+ options: ["right", "left", "bottom", "top"],
26
+ },
27
+ },
28
+ args: {
29
+ showCloseButton: true,
30
+ side: "right",
31
+ },
32
+ component: RBSheetContent,
33
+ } satisfies Meta<typeof RBSheetContent>;
34
+
35
+ export default meta;
36
+ type Story = StoryObj<typeof meta>;
37
+
38
+ export const Playground: Story = {
39
+ render: (args) => (
40
+ <div>
41
+ <RBSheet defaultOpen>
42
+ <RBSheetTrigger asChild>
43
+ <RBLabelButton size="sm" variant="solid">
44
+ Open Sheet
45
+ </RBLabelButton>
46
+ </RBSheetTrigger>
47
+ <RBSheetContent
48
+ {...args}
49
+ className={
50
+ args.side === "top" || args.side === "bottom" ? "w-full" : "w-96"
51
+ }
52
+ >
53
+ <RBSheetHeader>
54
+ <RBSheetTitle>Edit profile</RBSheetTitle>
55
+ <RBSheetDescription>
56
+ Make changes to your profile here. Click save when you&apos;re
57
+ done.
58
+ </RBSheetDescription>
59
+ </RBSheetHeader>
60
+
61
+ <VStack className="flex-1 gap-6">
62
+ <RBTextField
63
+ label="Name"
64
+ required
65
+ className="gap-1_5 flex flex-col"
66
+ >
67
+ <RBTextInput size="sm" className="w-full" />
68
+ </RBTextField>
69
+
70
+ <RBTextField
71
+ label="Username"
72
+ required
73
+ className="flex flex-col gap-1.5"
74
+ >
75
+ <RBTextInput size="sm" className="w-full" />
76
+ </RBTextField>
77
+ </VStack>
78
+
79
+ <RBSheetFooter>
80
+ <RBLabelButton size="sm" variant="solid" className="w-full">
81
+ Save changes
82
+ </RBLabelButton>
83
+ <RBLabelButton size="sm" variant="outlined" className="w-full">
84
+ Cancel
85
+ </RBLabelButton>
86
+ </RBSheetFooter>
87
+ </RBSheetContent>
88
+ </RBSheet>
89
+ </div>
90
+ ),
91
+ };
@@ -0,0 +1,38 @@
1
+ import type { Meta, StoryObj } from "@storybook/react";
2
+ import { VStack } from "@repo/rb-components";
3
+
4
+ import { RBSlider } from "@repo/rb-components/new_components";
5
+
6
+ const meta = {
7
+ component: RBSlider,
8
+ tags: ["autodocs"],
9
+ argTypes: {
10
+ className: { control: false, table: { disable: true } },
11
+ trackClassName: { control: false, table: { disable: true } },
12
+ rangeClassName: { control: false, table: { disable: true } },
13
+ thumbClassName: { control: false, table: { disable: true } },
14
+ min: { control: { type: "number" } },
15
+ max: { control: { type: "number" } },
16
+ step: { control: { type: "number" } },
17
+ disabled: { control: "boolean" },
18
+ defaultValue: { control: { type: "object" } },
19
+ },
20
+ args: {
21
+ min: 0,
22
+ max: 100,
23
+ step: 1,
24
+ disabled: false,
25
+ defaultValue: [64],
26
+ },
27
+ } satisfies Meta<typeof RBSlider>;
28
+
29
+ export default meta;
30
+ type Story = StoryObj<typeof meta>;
31
+
32
+ export const Playground: Story = {
33
+ render: (args) => (
34
+ <VStack className="w-80 gap-4">
35
+ <RBSlider {...args} />
36
+ </VStack>
37
+ ),
38
+ };
@@ -0,0 +1,112 @@
1
+ import { useEffect, useState, type ComponentProps } from "react";
2
+ import type { Meta, StoryObj } from "@storybook/react";
3
+
4
+ import { VStack } from "@repo/rb-components";
5
+ import { RBSwitch, RBSwitchField } from "@repo/rb-components/new_components";
6
+
7
+ type SwitchStoryArgs = ComponentProps<typeof RBSwitch> & {
8
+ defaultChecked: boolean;
9
+ };
10
+
11
+ type WithTextStoryArgs = ComponentProps<typeof RBSwitchField> &
12
+ ComponentProps<typeof RBSwitch> & {
13
+ defaultChecked: boolean;
14
+ };
15
+
16
+ const meta: Meta<SwitchStoryArgs> = {
17
+ component: RBSwitch,
18
+ tags: ["autodocs"],
19
+ argTypes: {
20
+ checked: { control: false, table: { disable: true } },
21
+ defaultChecked: { control: "boolean" },
22
+ size: {
23
+ control: { type: "select" },
24
+ options: ["default", "sm"],
25
+ },
26
+ invalid: { control: "boolean" },
27
+ disabled: { control: "boolean" },
28
+ },
29
+ args: {
30
+ defaultChecked: false,
31
+ disabled: false,
32
+ invalid: false,
33
+ size: "default",
34
+ },
35
+ };
36
+
37
+ export default meta;
38
+ type Story = StoryObj<SwitchStoryArgs>;
39
+ type WithTextStory = StoryObj<WithTextStoryArgs>;
40
+
41
+ export const Playground: Story = {
42
+ render: function Render(args) {
43
+ const [checked, setChecked] = useState(Boolean(args.defaultChecked));
44
+
45
+ useEffect(() => {
46
+ setChecked(Boolean(args.defaultChecked));
47
+ }, [args.defaultChecked]);
48
+
49
+ return (
50
+ <VStack className="w-80 gap-4">
51
+ <RBSwitch {...args} checked={checked} onCheckedChange={setChecked} />
52
+ </VStack>
53
+ );
54
+ },
55
+ };
56
+
57
+ export const WithText: WithTextStory = {
58
+ args: {
59
+ controlPlacement: "start",
60
+ defaultChecked: false,
61
+ description: "This is a switch description.",
62
+ disabled: false,
63
+ invalid: false,
64
+ label: "Switch Text",
65
+ size: "default",
66
+ type: "default",
67
+ },
68
+ argTypes: {
69
+ controlPlacement: {
70
+ control: { type: "select" },
71
+ options: ["start", "end"],
72
+ },
73
+ description: { control: "text" },
74
+ descriptionClassName: { control: false, table: { disable: true } },
75
+ label: { control: "text" },
76
+ labelClassName: { control: false, table: { disable: true } },
77
+ type: {
78
+ control: { type: "select" },
79
+ options: ["default", "box"],
80
+ },
81
+ },
82
+ render: function Render(args) {
83
+ const [checked, setChecked] = useState(Boolean(args.defaultChecked));
84
+
85
+ useEffect(() => {
86
+ setChecked(Boolean(args.defaultChecked));
87
+ }, [args.defaultChecked]);
88
+
89
+ return (
90
+ <VStack className="w-80 gap-4">
91
+ <RBSwitchField
92
+ controlPlacement={args.controlPlacement}
93
+ description={args.description}
94
+ descriptionClassName={args.descriptionClassName}
95
+ invalid={args.invalid}
96
+ label={args.label}
97
+ labelClassName={args.labelClassName}
98
+ size={args.size}
99
+ type={args.type}
100
+ >
101
+ <RBSwitch
102
+ checked={checked}
103
+ disabled={args.disabled}
104
+ invalid={args.invalid}
105
+ size={args.size}
106
+ onCheckedChange={setChecked}
107
+ />
108
+ </RBSwitchField>
109
+ </VStack>
110
+ );
111
+ },
112
+ };
@@ -0,0 +1,75 @@
1
+ import type { Meta, StoryObj } from "@storybook/react";
2
+
3
+ import {
4
+ RBTabs,
5
+ RBTabsList,
6
+ RBTabsTrigger,
7
+ } from "@repo/rb-components/new_components";
8
+
9
+ const meta = {
10
+ tags: ["autodocs"],
11
+ component: RBTabs,
12
+ parameters: {
13
+ layout: "centered",
14
+ },
15
+ argTypes: {
16
+ size: {
17
+ control: "select",
18
+ options: ["sm", "xs"],
19
+ table: {
20
+ type: {
21
+ summary: '"sm" | "xs"',
22
+ },
23
+ },
24
+ },
25
+ variant: {
26
+ control: "select",
27
+ options: ["default", "line"],
28
+ table: {
29
+ type: {
30
+ summary: '"default" | "line"',
31
+ },
32
+ },
33
+ },
34
+ orientation: {
35
+ control: "select",
36
+ options: ["horizontal", "vertical"],
37
+ description: "line variant 는 horizontal orientation 만 지원",
38
+ table: {
39
+ type: {
40
+ summary: '"horizontal" | "vertical"',
41
+ },
42
+ },
43
+ },
44
+ },
45
+ } satisfies Meta<typeof RBTabs>;
46
+
47
+ export default meta;
48
+
49
+ type Story = StoryObj<typeof meta>;
50
+
51
+ export const Playground: Story = {
52
+ args: {
53
+ size: "sm",
54
+ variant: "default",
55
+ orientation: "horizontal",
56
+ },
57
+ render: ({ orientation, size, variant }) => {
58
+ const resolvedOrientation = variant === "line" ? "horizontal" : orientation;
59
+
60
+ return (
61
+ <RBTabs
62
+ defaultValue="tab-1"
63
+ variant={variant}
64
+ size={size}
65
+ orientation={resolvedOrientation}
66
+ >
67
+ <RBTabsList>
68
+ <RBTabsTrigger value="tab-1">Tabs Text</RBTabsTrigger>
69
+ <RBTabsTrigger value="tab-2">Tabs Text</RBTabsTrigger>
70
+ <RBTabsTrigger value="tab-3">Tabs Text</RBTabsTrigger>
71
+ </RBTabsList>
72
+ </RBTabs>
73
+ );
74
+ },
75
+ };