@rainbow-robotics/muscat-plugin-kit 0.1.2-dev.8 → 0.10.1-dev.0

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 (274) hide show
  1. package/README.ko.md +1186 -0
  2. package/README.md +1137 -57
  3. package/cli/README.md +239 -7
  4. package/cli/bin/create-muscat-plugin.mjs +1 -1
  5. package/cli/bin/muscat-pk.mjs +123 -27
  6. package/cli/bundle-templates.mjs +31 -0
  7. package/cli/docker/Dockerfile.cpp +28 -0
  8. package/cli/docker/Dockerfile.dev +17 -0
  9. package/cli/docker/Dockerfile.python +21 -0
  10. package/cli/prepack.mjs +10 -0
  11. package/cli/src/__pycache__/host_agent.cpython-37.pyc +0 -0
  12. package/cli/src/ai-rules.mjs +107 -0
  13. package/cli/src/build.mjs +333 -93
  14. package/cli/src/check-package.mjs +8 -23
  15. package/cli/src/completion.mjs +168 -0
  16. package/cli/src/cpp.mjs +78 -0
  17. package/cli/src/cppIde.mjs +76 -0
  18. package/cli/src/dev.mjs +195 -6
  19. package/cli/src/devBack.mjs +671 -60
  20. package/cli/src/devId.mjs +54 -0
  21. package/cli/src/devSession.mjs +67 -0
  22. package/cli/src/devUi.mjs +214 -25
  23. package/cli/src/esbuild.mjs +27 -10
  24. package/cli/src/host_agent.py +223 -0
  25. package/cli/src/manifest.mjs +288 -0
  26. package/cli/src/mcp.mjs +1153 -0
  27. package/cli/src/mcpProxy.mjs +110 -0
  28. package/cli/src/muscatLocal.mjs +292 -0
  29. package/cli/src/new.mjs +205 -68
  30. package/cli/src/pluginDevServer.mjs +111 -0
  31. package/cli/src/ports.mjs +193 -0
  32. package/cli/src/projectCheck.mjs +102 -0
  33. package/cli/src/python.mjs +112 -0
  34. package/cli/src/ros2.mjs +62 -18
  35. package/cli/src/sdk.mjs +74 -24
  36. package/cli/src/sim.mjs +177 -0
  37. package/cli/src/storybook.mjs +150 -0
  38. package/cli/src/templates-embedded.mjs +4 -0
  39. package/cli/src/type.mjs +93 -34
  40. package/cli/src/uninstall.mjs +81 -0
  41. package/cli/src/update.mjs +364 -35
  42. package/cli/src/util.mjs +341 -11
  43. package/cli/src/zenohDev.mjs +83 -0
  44. package/cli/src/zip.mjs +121 -0
  45. package/cli/storybook-dist/_design-tokens.css +4957 -0
  46. package/cli/storybook-dist/_stories-src/NxAvatar.stories.tsx +27 -0
  47. package/cli/storybook-dist/_stories-src/NxPagination.stories.tsx +28 -0
  48. package/cli/storybook-dist/_stories-src/RBAccordion/RBAccordion.stories.tsx +46 -0
  49. package/cli/storybook-dist/_stories-src/RBAccordion/RBAccordionGroup.stories.tsx +73 -0
  50. package/cli/storybook-dist/_stories-src/RBBadge/RBBadge.stories.tsx +93 -0
  51. package/cli/storybook-dist/_stories-src/RBBattery/RBBattery.stories.tsx +74 -0
  52. package/cli/storybook-dist/_stories-src/RBButton/RBCheckIconButton.stories.tsx +28 -0
  53. package/cli/storybook-dist/_stories-src/RBButton/RBCheckLabelButton.stories.tsx +84 -0
  54. package/cli/storybook-dist/_stories-src/RBButton/RBIconButton.stories.tsx +57 -0
  55. package/cli/storybook-dist/_stories-src/RBButton/RBInlineLabelButton.stories.tsx +41 -0
  56. package/cli/storybook-dist/_stories-src/RBButton/RBLabelButton.stories.tsx +60 -0
  57. package/cli/storybook-dist/_stories-src/RBDatePicker/RBDateInput.stories.tsx +44 -0
  58. package/cli/storybook-dist/_stories-src/RBDatePicker/RBRangeDateInput.stories.tsx +56 -0
  59. package/cli/storybook-dist/_stories-src/RBDialog/RBAlert.stories.tsx +51 -0
  60. package/cli/storybook-dist/_stories-src/RBDialog/RBConfirm.stories.tsx +55 -0
  61. package/cli/storybook-dist/_stories-src/RBDialog/RBPrompt.stories.tsx +52 -0
  62. package/cli/storybook-dist/_stories-src/RBDivider/RBDivider.stories.tsx +93 -0
  63. package/cli/storybook-dist/_stories-src/RBEmptyView/RBEmptyView.stories.tsx +49 -0
  64. package/cli/storybook-dist/_stories-src/RBIcons/RBColorIcons.stories.tsx +108 -0
  65. package/cli/storybook-dist/_stories-src/RBIcons/RBIcons.stories.tsx +106 -0
  66. package/cli/storybook-dist/_stories-src/RBInput/RBCheckBox.stories.tsx +89 -0
  67. package/cli/storybook-dist/_stories-src/RBInput/RBMultiRangeInput.stories.tsx +64 -0
  68. package/cli/storybook-dist/_stories-src/RBInput/RBRadioBox.stories.tsx +65 -0
  69. package/cli/storybook-dist/_stories-src/RBInput/RBRadioButton.stories.tsx +68 -0
  70. package/cli/storybook-dist/_stories-src/RBInput/RBSelectBox.stories.tsx +216 -0
  71. package/cli/storybook-dist/_stories-src/RBInput/RBSideNumberInput.stories.tsx +90 -0
  72. package/cli/storybook-dist/_stories-src/RBInput/RBText/RBTextArea.stories.tsx +45 -0
  73. package/cli/storybook-dist/_stories-src/RBInput/RBText/RBTextInput.stories.tsx +50 -0
  74. package/cli/storybook-dist/_stories-src/RBInput/RBTextField.stories.tsx +102 -0
  75. package/cli/storybook-dist/_stories-src/RBJoyStick/RBJoyStick.stories.tsx +31 -0
  76. package/cli/storybook-dist/_stories-src/RBLight/RBLight.stories.tsx +36 -0
  77. package/cli/storybook-dist/_stories-src/RBPagination/RBPagination.stories.tsx +49 -0
  78. package/cli/storybook-dist/_stories-src/RBShadcn/RBCard/RBCard.stories.tsx +89 -0
  79. package/cli/storybook-dist/_stories-src/RBShadcn/RBCommand/RBCommand.stories.tsx +116 -0
  80. package/cli/storybook-dist/_stories-src/RBShadcn/RBDialog/RBDialog.stories.tsx +74 -0
  81. package/cli/storybook-dist/_stories-src/RBShadcn/RBDrawer/RBDrawer.stories.tsx +99 -0
  82. package/cli/storybook-dist/_stories-src/RBShadcn/RBDropdownMenu/RBDropdownMenu.stories.tsx +123 -0
  83. package/cli/storybook-dist/_stories-src/RBShadcn/RBMenubar/RBMenubar.stories.tsx +135 -0
  84. package/cli/storybook-dist/_stories-src/RBShadcn/RBPopover/RBPopover.stories.tsx +69 -0
  85. package/cli/storybook-dist/_stories-src/RBShadcn/RBResizable/RBResizable.stories.tsx +49 -0
  86. package/cli/storybook-dist/_stories-src/RBShadcn/RBSheet/RBSheet.stories.tsx +91 -0
  87. package/cli/storybook-dist/_stories-src/RBShadcn/RBSlider/RBSlider.stories.tsx +38 -0
  88. package/cli/storybook-dist/_stories-src/RBShadcn/RBSwitch/RBSwitch.stories.tsx +112 -0
  89. package/cli/storybook-dist/_stories-src/RBShadcn/RBTabs/RBTabs.stories.tsx +75 -0
  90. package/cli/storybook-dist/_stories-src/RBShadcn/RBToggle/RBToggle.stories.tsx +51 -0
  91. package/cli/storybook-dist/_stories-src/RBShadcn/RBToggleGroup/RBToggleGroup.stories.tsx +84 -0
  92. package/cli/storybook-dist/_stories-src/RBTab/RBChipTab.stories.tsx +102 -0
  93. package/cli/storybook-dist/_stories-src/RBTab/RBChipsBoxTab.stories.tsx +78 -0
  94. package/cli/storybook-dist/_stories-src/RBTab/RBTab.stories.tsx +57 -0
  95. package/cli/storybook-dist/_stories-src/RBTable/RBTable.stories.tsx +177 -0
  96. package/cli/storybook-dist/_stories-src/RBTable/RBTableRow.stories.tsx +64 -0
  97. package/cli/storybook-dist/_stories-src/RBToast/RBToast.stories.tsx +117 -0
  98. package/cli/storybook-dist/_stories-src/RBTooltip/RBTooltip.stories.tsx +50 -0
  99. package/cli/storybook-dist/_stories-src/loading/RBSpinner.stories.tsx +30 -0
  100. package/cli/storybook-dist/_stories-src/nx-button/NxButton.stories.tsx +54 -0
  101. package/cli/storybook-dist/_stories-src/nx-button/NxPointerHoldButton.stories.tsx +57 -0
  102. package/cli/storybook-dist/_stories-src/nx-icons/NxIcons.stories.tsx +48 -0
  103. package/cli/storybook-dist/_stories-src/nx-inputs/NxNumberInput.stories.tsx +103 -0
  104. package/cli/storybook-dist/_stories-src/nx-inputs/NxRangeInput.stories.tsx +27 -0
  105. package/cli/storybook-dist/_stories-src/nx-inputs/NxSelectBox.stories.tsx +67 -0
  106. package/cli/storybook-dist/_stories-src/nx-inputs/NxSlideRange.stories.tsx +45 -0
  107. package/cli/storybook-dist/_stories-src/nx-inputs/NxSwitch.stories.tsx +27 -0
  108. package/cli/storybook-dist/_stories-src/nx-inputs/NxTextArea.stories.tsx +48 -0
  109. package/cli/storybook-dist/_stories-src/nx-inputs/NxTextInput.stories.tsx +46 -0
  110. package/cli/storybook-dist/assets/Color-YHDXOIA2-pCKrjUal.js +1 -0
  111. package/cli/storybook-dist/assets/Docs-B-Y7I1GA.js +7 -0
  112. package/cli/storybook-dist/assets/Docs-BFJcE_VS.js +8 -0
  113. package/cli/storybook-dist/assets/Docs-B_QaTtz8.js +8 -0
  114. package/cli/storybook-dist/assets/Docs-CryDGmfh.js +20 -0
  115. package/cli/storybook-dist/assets/Docs-Cw2AVNKx.js +7 -0
  116. package/cli/storybook-dist/assets/Docs-Q6r1fBeL.js +12 -0
  117. package/cli/storybook-dist/assets/DocsRenderer-CFRXHY34-_OmZBCn8.js +2 -0
  118. package/cli/storybook-dist/assets/NxAvatar.stories-Ctf5G2FQ.js +13 -0
  119. package/cli/storybook-dist/assets/NxButton.stories-DeLObVSj.js +20 -0
  120. package/cli/storybook-dist/assets/NxIcons.stories-DeqrVzVs.js +3 -0
  121. package/cli/storybook-dist/assets/NxNumberInput.stories-LqoY0ed1.js +26 -0
  122. package/cli/storybook-dist/assets/NxPagination.stories-DI6bXuJM.js +11 -0
  123. package/cli/storybook-dist/assets/NxPointerHoldButton.stories-3HSV1XmN.js +14 -0
  124. package/cli/storybook-dist/assets/NxRangeInput.stories-1pjgQVaG.js +17 -0
  125. package/cli/storybook-dist/assets/NxSelectBox.stories-bcQPZEuF.js +17 -0
  126. package/cli/storybook-dist/assets/NxSlideRange.stories-BosX4axk.js +14 -0
  127. package/cli/storybook-dist/assets/NxSwitch.stories-DxV6dS33.js +11 -0
  128. package/cli/storybook-dist/assets/NxTextArea.stories-CO545-LP.js +11 -0
  129. package/cli/storybook-dist/assets/NxTextInput.stories-BP0npai1.js +11 -0
  130. package/cli/storybook-dist/assets/PretendardVariable-CJuje-Rk.woff2 +0 -0
  131. package/cli/storybook-dist/assets/RBAccordion.stories-fVR4Va2a.js +17 -0
  132. package/cli/storybook-dist/assets/RBAccordionGroup.stories-Du5bsckD.js +33 -0
  133. package/cli/storybook-dist/assets/RBAlert.stories-DNkMXUu6.js +17 -0
  134. package/cli/storybook-dist/assets/RBBadge.stories-C44pXt8D.js +1 -0
  135. package/cli/storybook-dist/assets/RBBattery.stories-DE2JHvfL.js +10 -0
  136. package/cli/storybook-dist/assets/RBCard.stories-CuIda7NI.js +45 -0
  137. package/cli/storybook-dist/assets/RBCheckBox.stories-D1qM1ayr.js +1 -0
  138. package/cli/storybook-dist/assets/RBCheckIconButton.stories-e4gkliBO.js +1 -0
  139. package/cli/storybook-dist/assets/RBCheckLabelButton.stories-CDzCtsMI.js +24 -0
  140. package/cli/storybook-dist/assets/RBChipTab.stories-DBrc_3Mp.js +21 -0
  141. package/cli/storybook-dist/assets/RBChipsBoxTab.stories-hlrsHjKY.js +1 -0
  142. package/cli/storybook-dist/assets/RBColorIcons.stories-BHUvpkdu.js +3 -0
  143. package/cli/storybook-dist/assets/RBCommand.stories-azAF41NP.js +73 -0
  144. package/cli/storybook-dist/assets/RBConfirm.stories-BMNjwbmT.js +20 -0
  145. package/cli/storybook-dist/assets/RBDateInput.stories-D0VezDzv.js +15 -0
  146. package/cli/storybook-dist/assets/RBDialog.stories-AOJ975Fy.js +38 -0
  147. package/cli/storybook-dist/assets/RBDivider.stories-NSvnj43Z.js +1 -0
  148. package/cli/storybook-dist/assets/RBDrawer.stories-Du0oTvD1.js +14 -0
  149. package/cli/storybook-dist/assets/RBDropdownMenu.stories-Hsxve4PW.js +86 -0
  150. package/cli/storybook-dist/assets/RBEmptyView.stories-BlwHx3zp.js +12 -0
  151. package/cli/storybook-dist/assets/RBIconButton.stories-DAPDY63x.js +1 -0
  152. package/cli/storybook-dist/assets/RBIcons.stories-W5ZUV2L1.js +3 -0
  153. package/cli/storybook-dist/assets/RBInlineLabelButton.stories-C99j0Y3g.js +1 -0
  154. package/cli/storybook-dist/assets/RBJoyStick.stories-Du0H1iAS.js +11 -0
  155. package/cli/storybook-dist/assets/RBLabelButton.stories-BlvHaU_Z.js +1 -0
  156. package/cli/storybook-dist/assets/RBLight.stories-BY6DKrre.js +1 -0
  157. package/cli/storybook-dist/assets/RBMenubar.stories-D2PEGpM9.js +3 -0
  158. package/cli/storybook-dist/assets/RBMultiRangeInput.stories-Bm2qSmjq.js +14 -0
  159. package/cli/storybook-dist/assets/RBPagination.stories-DDleJa5N.js +17 -0
  160. package/cli/storybook-dist/assets/RBPopover.stories-27YxPSFG.js +11 -0
  161. package/cli/storybook-dist/assets/RBPrompt.stories-BFaIOctr.js +20 -0
  162. package/cli/storybook-dist/assets/RBRadioBox.stories-BroDar0t.js +1 -0
  163. package/cli/storybook-dist/assets/RBRadioButton.stories-M3O-wX7V.js +11 -0
  164. package/cli/storybook-dist/assets/RBRangeDateInput.stories-CWlM_D5X.js +15 -0
  165. package/cli/storybook-dist/assets/RBResizable.stories-ui8X1qnc.js +20 -0
  166. package/cli/storybook-dist/assets/RBSelectBox.stories-C8T6cfA0.js +74 -0
  167. package/cli/storybook-dist/assets/RBSheet.stories-BCOo_Zcc.js +39 -0
  168. package/cli/storybook-dist/assets/RBSideNumberInput.stories-CU2_MVlJ.js +5 -0
  169. package/cli/storybook-dist/assets/RBSlider.stories-DgOp1TFc.js +5 -0
  170. package/cli/storybook-dist/assets/RBSpinner.stories-qLScY3zZ.js +14 -0
  171. package/cli/storybook-dist/assets/RBSwitch.stories-SXSY1QMb.js +65 -0
  172. package/cli/storybook-dist/assets/RBTab.stories-BzXXTsXP.js +1 -0
  173. package/cli/storybook-dist/assets/RBTable.stories-DHTeRNVk.js +62 -0
  174. package/cli/storybook-dist/assets/RBTableRow.stories-DRNRsd15.js +11 -0
  175. package/cli/storybook-dist/assets/RBTabs.stories-DP0noBLp.js +21 -0
  176. package/cli/storybook-dist/assets/RBTextArea.stories-TkaejfxJ.js +5 -0
  177. package/cli/storybook-dist/assets/RBTextField.stories-B6VpCGyt.js +45 -0
  178. package/cli/storybook-dist/assets/RBTextInput.stories-D3hZ08e-.js +5 -0
  179. package/cli/storybook-dist/assets/RBToast.stories-BQ2wS2U0.js +11 -0
  180. package/cli/storybook-dist/assets/RBToggle.stories-GVOjGqo3.js +12 -0
  181. package/cli/storybook-dist/assets/RBToggleGroup.stories-pzx0btOD.js +17 -0
  182. package/cli/storybook-dist/assets/RBTooltip.stories-jufB6fa1.js +9 -0
  183. package/cli/storybook-dist/assets/SideNumberInput-BYlmNHEw.js +1109 -0
  184. package/cli/storybook-dist/assets/SideNumberInput-SAkhydsn.css +21 -0
  185. package/cli/storybook-dist/assets/browserUtils-CQM9Za7e.js +1 -0
  186. package/cli/storybook-dist/assets/chunk-XP5HYGXS-BHXC9YeQ.js +1 -0
  187. package/cli/storybook-dist/assets/client-DTf7SId2.js +1 -0
  188. package/cli/storybook-dist/assets/entry-preview-CAkU-e0D.js +2 -0
  189. package/cli/storybook-dist/assets/entry-preview-docs-b8bpVBXy.js +46 -0
  190. package/cli/storybook-dist/assets/iframe-B-BmTsxV.js +211 -0
  191. package/cli/storybook-dist/assets/index-B4FGfHer.js +1 -0
  192. package/cli/storybook-dist/assets/index-BRq5TIsn.js +24 -0
  193. package/cli/storybook-dist/assets/index-CT3U1fyk.js +1 -0
  194. package/cli/storybook-dist/assets/index-ChsGqxH_.js +9 -0
  195. package/cli/storybook-dist/assets/index-CkB0GfaI.js +575 -0
  196. package/cli/storybook-dist/assets/index-ClAc6FBW.js +240 -0
  197. package/cli/storybook-dist/assets/index-DKFBREX_.js +1 -0
  198. package/cli/storybook-dist/assets/index-DgH-xKnr.js +11 -0
  199. package/cli/storybook-dist/assets/index-Dmy2JGbm.js +1 -0
  200. package/cli/storybook-dist/assets/index-DrFu-skq.js +6 -0
  201. package/cli/storybook-dist/assets/jsx-runtime-BTJTZTIL.js +9 -0
  202. package/cli/storybook-dist/assets/preview-B8lJiyuQ.js +34 -0
  203. package/cli/storybook-dist/assets/preview-BBWR9nbA.js +1 -0
  204. package/cli/storybook-dist/assets/preview-BVJwlGUF.js +1 -0
  205. package/cli/storybook-dist/assets/preview-BWzBA1C2.js +396 -0
  206. package/cli/storybook-dist/assets/preview-CVgpLj3b.js +1 -0
  207. package/cli/storybook-dist/assets/preview-CvbIS5ZJ.js +1 -0
  208. package/cli/storybook-dist/assets/preview-CznQwwbo.js +3 -0
  209. package/cli/storybook-dist/assets/preview-DD_OYowb.js +1 -0
  210. package/cli/storybook-dist/assets/preview-DGUiP6tS.js +7 -0
  211. package/cli/storybook-dist/assets/preview-DHQbi4pV.js +1 -0
  212. package/cli/storybook-dist/assets/preview-M77JRg1A.js +2 -0
  213. package/cli/storybook-dist/assets/preview-kTZPgP6D.css +1 -0
  214. package/cli/storybook-dist/assets/react-18-hB3smqWJ.js +1 -0
  215. package/cli/storybook-dist/assets/react-resizable-panels-HsFbxPbn.css +1 -0
  216. package/cli/storybook-dist/assets/react-resizable-panels.browser-DuxpZLkF.js +120 -0
  217. package/cli/storybook-dist/assets/test-utils-BQudk2xt.js +9 -0
  218. package/cli/storybook-dist/favicon.svg +1 -0
  219. package/cli/storybook-dist/iframe.html +666 -0
  220. package/cli/storybook-dist/index.html +190 -0
  221. package/cli/storybook-dist/index.json +1 -0
  222. package/cli/storybook-dist/nunito-sans-bold-italic.woff2 +0 -0
  223. package/cli/storybook-dist/nunito-sans-bold.woff2 +0 -0
  224. package/cli/storybook-dist/nunito-sans-italic.woff2 +0 -0
  225. package/cli/storybook-dist/nunito-sans-regular.woff2 +0 -0
  226. package/cli/storybook-dist/project.json +1 -0
  227. package/cli/storybook-dist/sb-addons/chromatic-com-storybook-10/manager-bundle.js +331 -0
  228. package/cli/storybook-dist/sb-addons/chromatic-com-storybook-10/manager-bundle.js.LEGAL.txt +51 -0
  229. package/cli/storybook-dist/sb-addons/essentials-actions-3/manager-bundle.js +3 -0
  230. package/cli/storybook-dist/sb-addons/essentials-backgrounds-5/manager-bundle.js +12 -0
  231. package/cli/storybook-dist/sb-addons/essentials-controls-2/manager-bundle.js +405 -0
  232. package/cli/storybook-dist/sb-addons/essentials-docs-4/manager-bundle.js +245 -0
  233. package/cli/storybook-dist/sb-addons/essentials-measure-8/manager-bundle.js +3 -0
  234. package/cli/storybook-dist/sb-addons/essentials-outline-9/manager-bundle.js +3 -0
  235. package/cli/storybook-dist/sb-addons/essentials-toolbars-7/manager-bundle.js +3 -0
  236. package/cli/storybook-dist/sb-addons/essentials-viewport-6/manager-bundle.js +3 -0
  237. package/cli/storybook-dist/sb-addons/links-1/manager-bundle.js +3 -0
  238. package/cli/storybook-dist/sb-addons/storybook-13/manager-bundle.js +3 -0
  239. package/cli/storybook-dist/sb-addons/storybook-core-core-server-presets-0/common-manager-bundle.js +3 -0
  240. package/cli/storybook-dist/sb-addons/storybook-experimental-addon-test-12/manager-bundle.js +223 -0
  241. package/cli/storybook-dist/sb-addons/themes-11/manager-bundle.js +3 -0
  242. package/cli/storybook-dist/sb-common-assets/favicon.svg +1 -0
  243. package/cli/storybook-dist/sb-common-assets/nunito-sans-bold-italic.woff2 +0 -0
  244. package/cli/storybook-dist/sb-common-assets/nunito-sans-bold.woff2 +0 -0
  245. package/cli/storybook-dist/sb-common-assets/nunito-sans-italic.woff2 +0 -0
  246. package/cli/storybook-dist/sb-common-assets/nunito-sans-regular.woff2 +0 -0
  247. package/cli/storybook-dist/sb-manager/globals-module-info.js +1052 -0
  248. package/cli/storybook-dist/sb-manager/globals-runtime.js +41775 -0
  249. package/cli/storybook-dist/sb-manager/globals.js +48 -0
  250. package/cli/storybook-dist/sb-manager/runtime.js +12048 -0
  251. package/cli/templates/common/README.md +1070 -83
  252. package/cli/templates/common/assets/icon.svg +44 -2
  253. package/cli/templates/common/manifest.json +14 -13
  254. package/cli/templates/common/package.json +11 -4
  255. package/cli/templates/common/py/main.py +125 -0
  256. package/cli/templates/common/requirements.txt +4 -3
  257. package/cli/templates/common/tsconfig.json +1 -1
  258. package/cli/templates/common/ui/content.tsx +216 -0
  259. package/cli/templates/common/ui/style.css +6 -0
  260. package/cli/templates/common/vite.config.ts +6 -25
  261. package/cli/templates/cpp/cpp/CMakeLists.txt +14 -0
  262. package/cli/templates/cpp/cpp/main.cpp +73 -0
  263. package/cli/templates/readme-cpp/README.md +1012 -0
  264. package/cli/templates/ros2/ros2_ws/src/__PLUGIN_SLUG__/__PLUGIN_SLUG__/node.py +12 -1
  265. package/cli/templates/ros2-cpp/ros2_ws/src/__PLUGIN_SLUG__/CMakeLists.txt +22 -0
  266. package/cli/templates/ros2-cpp/ros2_ws/src/__PLUGIN_SLUG__/package.xml +11 -0
  267. package/cli/templates/ros2-cpp/ros2_ws/src/__PLUGIN_SLUG__/src/node.cpp +41 -0
  268. package/cli/vite.d.mts +25 -0
  269. package/cli/vite.mjs +292 -0
  270. package/package.json +34 -7
  271. package/cli/src/pack.mjs +0 -61
  272. package/cli/src/preview.mjs +0 -91
  273. package/cli/templates/common/main.py +0 -114
  274. package/cli/templates/common/src/content.tsx +0 -33
@@ -0,0 +1,56 @@
1
+ import type { Meta, StoryObj, StoryFn } from "@storybook/react";
2
+ import { RBRangeDateInput } from "@repo/rb-components/new_components";
3
+
4
+ type StoryComponent = StoryObj<typeof RBRangeDateInput>;
5
+ type StoryTemplate = StoryFn<typeof RBRangeDateInput>;
6
+
7
+ // More on how to set up stories at: https://storybook.js.org/docs/react/writing-stories/introduction
8
+ export default {
9
+ component: RBRangeDateInput,
10
+ tags: ["autodocs"],
11
+ argTypes: {
12
+ size: {
13
+ control: { type: "select" },
14
+ options: ["xs2", "sm", "md", "lg"],
15
+ table: { type: { summary: '"xs2" | "sm" | "md" | "lg"' } },
16
+ },
17
+ showPresets: { control: "boolean" },
18
+ showFooter: { control: "boolean" },
19
+ min: { control: "date" },
20
+ max: { control: "date" },
21
+ maxDays: {
22
+ control: { type: "number", min: 0, step: 1 },
23
+ description: "선택 가능한 최대 일수. 0은 제한 없음.",
24
+ },
25
+ },
26
+ args: { maxDays: 0 },
27
+ } as Meta<typeof RBRangeDateInput>;
28
+
29
+ const Template: StoryTemplate = (args) => {
30
+ return (
31
+ <div style={{ height: 700 }}>
32
+ <RBRangeDateInput
33
+ {...args}
34
+ min={args.min != null ? new Date(args.min) : undefined}
35
+ max={args.max != null ? new Date(args.max) : undefined}
36
+ maxDays={(args.maxDays ?? 0) > 0 ? args.maxDays : undefined}
37
+ />
38
+ </div>
39
+ );
40
+ };
41
+
42
+ export const Default: StoryComponent = {
43
+ parameters: {
44
+ docs: {
45
+ description: {
46
+ story: "",
47
+ },
48
+ },
49
+ },
50
+ args: {
51
+ size: "md",
52
+ showPresets: true,
53
+ showFooter: true,
54
+ },
55
+ render: Template,
56
+ };
@@ -0,0 +1,51 @@
1
+ import { useState } from "react";
2
+ import type { Meta, StoryObj, StoryFn } from "@storybook/react";
3
+ import { RBAlert, RBLabelButton } from "@repo/rb-components/new_components";
4
+
5
+ type StoryComponent = StoryObj<typeof RBAlert>;
6
+ type StoryTemplate = StoryFn<typeof RBAlert>;
7
+
8
+ // More on how to set up stories at: https://storybook.js.org/docs/react/writing-stories/introduction
9
+ export default {
10
+ component: RBAlert,
11
+ tags: ["autodocs"],
12
+ } as Meta<typeof RBAlert>;
13
+
14
+ const Template: StoryTemplate = (args) => {
15
+ const [open, setOpen] = useState(true);
16
+
17
+ return (
18
+ <div>
19
+ <RBLabelButton size="sm" variant="solid" onClick={() => setOpen(true)}>
20
+ Open Alert
21
+ </RBLabelButton>
22
+ <RBAlert
23
+ {...args}
24
+ open={open}
25
+ onOpenChange={setOpen}
26
+ resolve={() => setOpen(false)}
27
+ onConfirm={() => setOpen(false)}
28
+ />
29
+ </div>
30
+ );
31
+ };
32
+
33
+ export const Default: StoryComponent = {
34
+ parameters: {
35
+ docs: {
36
+ description: {
37
+ story: "",
38
+ },
39
+ },
40
+ },
41
+ args: {
42
+ title: "Alert Modal",
43
+ content: (
44
+ <div className="text-fg-default px-4 py-2 text-sm">
45
+ Alert Modal Body Text
46
+ </div>
47
+ ),
48
+ buttonText: "Confirm",
49
+ },
50
+ render: Template,
51
+ };
@@ -0,0 +1,55 @@
1
+ import { useState } from "react";
2
+ import type { Meta, StoryObj, StoryFn } from "@storybook/react";
3
+ import { RBConfirm, RBLabelButton } from "@repo/rb-components/new_components";
4
+
5
+ type StoryComponent = StoryObj<typeof RBConfirm>;
6
+ type StoryTemplate = StoryFn<typeof RBConfirm>;
7
+
8
+ // More on how to set up stories at: https://storybook.js.org/docs/react/writing-stories/introduction
9
+ export default {
10
+ component: RBConfirm,
11
+ tags: ["autodocs"],
12
+ } as Meta<typeof RBConfirm>;
13
+
14
+ const Template: StoryTemplate = (args) => {
15
+ const [open, setOpen] = useState(true);
16
+
17
+ return (
18
+ <div>
19
+ <RBLabelButton size="sm" variant="solid" onClick={() => setOpen(true)}>
20
+ Open Confirm
21
+ </RBLabelButton>
22
+ <RBConfirm
23
+ {...args}
24
+ open={open}
25
+ onOpenChange={setOpen}
26
+ resolve={() => setOpen(false)}
27
+ onConfirm={() => setOpen(false)}
28
+ onCancel={() => setOpen(false)}
29
+ />
30
+ </div>
31
+ );
32
+ };
33
+
34
+ export const Default: StoryComponent = {
35
+ parameters: {
36
+ docs: {
37
+ description: {
38
+ story: "",
39
+ },
40
+ },
41
+ },
42
+ args: {
43
+ title: "Confirm Modal",
44
+ content: (
45
+ <div className="text-fg-default px-4 py-2 text-sm">
46
+ Confirm Modal Body Text
47
+ </div>
48
+ ),
49
+ buttonText: {
50
+ yes: "Confirm",
51
+ no: "Cancel",
52
+ },
53
+ },
54
+ render: Template,
55
+ };
@@ -0,0 +1,52 @@
1
+ import { useState } from "react";
2
+ import type { Meta, StoryObj, StoryFn } from "@storybook/react";
3
+ import { RBLabelButton, RBPrompt } from "@repo/rb-components/new_components";
4
+
5
+ type StoryComponent = StoryObj<typeof RBPrompt>;
6
+ type StoryTemplate = StoryFn<typeof RBPrompt>;
7
+
8
+ // More on how to set up stories at: https://storybook.js.org/docs/react/writing-stories/introduction
9
+ export default {
10
+ component: RBPrompt,
11
+ tags: ["autodocs"],
12
+ } as Meta<typeof RBPrompt>;
13
+
14
+ const Template: StoryTemplate = (args) => {
15
+ const [open, setOpen] = useState(true);
16
+
17
+ return (
18
+ <div>
19
+ <RBLabelButton size="sm" variant="solid" onClick={() => setOpen(true)}>
20
+ Open Prompt
21
+ </RBLabelButton>
22
+ <RBPrompt
23
+ {...args}
24
+ open={open}
25
+ onOpenChange={setOpen}
26
+ resolve={() => setOpen(false)}
27
+ close={() => setOpen(false)}
28
+ />
29
+ </div>
30
+ );
31
+ };
32
+
33
+ export const Default: StoryComponent = {
34
+ parameters: {
35
+ docs: {
36
+ description: {
37
+ story: "",
38
+ },
39
+ },
40
+ },
41
+ args: {
42
+ title: "Prompt Modal",
43
+ content: "",
44
+ placeholder: "Placeholder",
45
+ value: "",
46
+ buttonText: {
47
+ yes: "Confirm",
48
+ no: "Cancel",
49
+ },
50
+ },
51
+ render: Template,
52
+ };
@@ -0,0 +1,93 @@
1
+ import type { Meta, StoryFn, StoryObj } from "@storybook/react";
2
+ import { RBDivider } from "@repo/rb-components/new_components";
3
+
4
+ type StoryComponent = StoryObj<typeof RBDivider>;
5
+ type StoryTemplate = StoryFn<typeof RBDivider>;
6
+
7
+ const Template: StoryTemplate = (args) => {
8
+ if (args.type === "vertical") {
9
+ return (
10
+ <div className="roundedp-4 flex h-24 items-center gap-3">
11
+ <span className="text-fg-default text-sm">Left</span>
12
+ <RBDivider {...args} />
13
+ <span className="text-fg-default text-sm">Right</span>
14
+ </div>
15
+ );
16
+ }
17
+
18
+ return (
19
+ <div className="w-96 max-w-full rounded p-4">
20
+ <p className="text-fg-default m-0 text-lg">Top</p>
21
+ <RBDivider {...args}>{args.children}</RBDivider>
22
+ <p className="text-fg-default m-0 text-lg">Bottom</p>
23
+ </div>
24
+ );
25
+ };
26
+
27
+ export default {
28
+ component: RBDivider,
29
+ tags: ["autodocs"],
30
+ render: Template,
31
+ argTypes: {
32
+ type: {
33
+ control: { type: "select" },
34
+ options: ["horizontal", "vertical"],
35
+ table: { type: { summary: '"horizontal" | "vertical"' } },
36
+ },
37
+ variant: {
38
+ control: { type: "select" },
39
+ options: ["solid", "dashed", "dotted", "soft"],
40
+ table: { type: { summary: '"solid" | "dashed" | "dotted" | "soft"' } },
41
+ },
42
+ thickness: {
43
+ control: { type: "select" },
44
+ options: ["thin", "thick"],
45
+ table: { type: { summary: '"thin" | "thick"' } },
46
+ },
47
+ children: {
48
+ control: { type: "text" },
49
+ table: { type: { summary: "ReactNode" } },
50
+ },
51
+ size: {
52
+ control: { type: "number" },
53
+ table: { type: { summary: "number" } },
54
+ },
55
+ color: {
56
+ control: { type: "color" },
57
+ table: { type: { summary: "string" } },
58
+ },
59
+ spaceSize: {
60
+ control: { type: "number" },
61
+ table: { type: { summary: "number" } },
62
+ },
63
+ spaceDirection: {
64
+ control: { type: "select" },
65
+ options: ["top", "bottom", "left", "right", "both"],
66
+ table: {
67
+ type: { summary: '"top" | "bottom" | "left" | "right" | "both"' },
68
+ },
69
+ },
70
+ contentAlign: {
71
+ control: { type: "select" },
72
+ options: ["left", "center", "right"],
73
+ table: { type: { summary: '"left" | "center" | "right"' } },
74
+ },
75
+ contentSpace: {
76
+ control: { type: "number" },
77
+ table: { type: { summary: "number" } },
78
+ },
79
+ contentPosition: {
80
+ control: { type: "number" },
81
+ table: { type: { summary: "number" } },
82
+ },
83
+ },
84
+ args: {
85
+ type: "horizontal",
86
+ variant: "solid",
87
+ thickness: "thin",
88
+ spaceDirection: "both",
89
+ children: undefined,
90
+ },
91
+ } as Meta<typeof RBDivider>;
92
+
93
+ export const Default: StoryComponent = {};
@@ -0,0 +1,49 @@
1
+ import type { Meta, StoryFn, StoryObj } from "@storybook/react";
2
+ import { RBEmptyView } from "@repo/rb-components/new_components";
3
+ import { SvgSearchBold } from "@repo/rb-components/new_components/assets/icons";
4
+
5
+ type StoryComponent = StoryObj<typeof RBEmptyView>;
6
+ type StoryTemplate = StoryFn<typeof RBEmptyView>;
7
+
8
+ const Template: StoryTemplate = (args) => <RBEmptyView {...args} />;
9
+
10
+ export default {
11
+ component: RBEmptyView,
12
+ tags: ["autodocs"],
13
+ render: Template,
14
+ argTypes: {
15
+ type: {
16
+ control: { type: "select" },
17
+ options: ["button", "icon"],
18
+ table: { type: { summary: '"button" | "icon"' } },
19
+ },
20
+ message: {
21
+ control: { type: "text" },
22
+ },
23
+ buttonLabel: {
24
+ control: { type: "text" },
25
+ },
26
+ onButtonClick: { control: false },
27
+ icon: { control: false },
28
+ },
29
+ args: {
30
+ type: "button",
31
+ message: "엠프티뷰의 안내 메세지를 입력해주세요.",
32
+ buttonLabel: "버튼 라벨",
33
+ },
34
+ } as Meta<typeof RBEmptyView>;
35
+
36
+ export const Button: StoryComponent = {
37
+ args: {
38
+ type: "button",
39
+ message: "엠프티뷰의 안내 메세지를 입력해주세요.",
40
+ buttonLabel: "버튼 라벨",
41
+ },
42
+ };
43
+
44
+ export const Icon: StoryComponent = {
45
+ args: {
46
+ type: "icon",
47
+ icon: <SvgSearchBold />,
48
+ },
49
+ };
@@ -0,0 +1,108 @@
1
+ import type React from "react";
2
+ import type { Meta, StoryObj } from "@storybook/react";
3
+ import { useMemo, useState } from "react";
4
+
5
+ import { RBTextInput } from "@repo/rb-components/new_components";
6
+ import * as RBColorIcons from "@repo/rb-components/new_components/assets/color-icons";
7
+ import { copyClipboard } from "@repo/rb-utils/browserUtils";
8
+
9
+ type IconExport =
10
+ | string
11
+ | ((props: React.SVGAttributes<SVGSVGElement>) => React.ReactElement);
12
+
13
+ const allIcons = Object.entries(RBColorIcons)
14
+ .filter(
15
+ ([, value]) => typeof value === "function" || typeof value === "string",
16
+ )
17
+ .sort(([left], [right]) => left.localeCompare(right)) as Array<
18
+ [string, IconExport]
19
+ >;
20
+
21
+ const toIconUsage = (name: string) => `<${name} className="size-5" />`;
22
+
23
+ const handleCopy = (name: string) => {
24
+ void copyClipboard({ text: toIconUsage(name) });
25
+ };
26
+
27
+ const ProgramIconGallery = () => {
28
+ const [query, setQuery] = useState("");
29
+
30
+ const filteredIcons = useMemo(() => {
31
+ const keyword = query.trim().toLowerCase();
32
+
33
+ if (!keyword) {
34
+ return allIcons;
35
+ }
36
+
37
+ return allIcons.filter(([name]) => name.toLowerCase().includes(keyword));
38
+ }, [query]);
39
+
40
+ return (
41
+ <div className="flex flex-col gap-4">
42
+ <div className="flex flex-col gap-3 md:flex-row md:items-center md:justify-between">
43
+ <div>
44
+ <h3 className="text-fg-default text-lg font-semibold">
45
+ RBColorIcons
46
+ </h3>
47
+ <p className="text-fg-subtle text-sm">
48
+ 현재 export된 아이콘 {filteredIcons.length} / {allIcons.length}
49
+ </p>
50
+ </div>
51
+ <RBTextInput
52
+ value={query}
53
+ handleChange={(value) => setQuery(String(value ?? ""))}
54
+ placeholder="Search program icons"
55
+ className="w-full md:w-72"
56
+ />
57
+ </div>
58
+
59
+ <div className="grid grid-cols-2 gap-3 md:grid-cols-4 xl:grid-cols-6">
60
+ {filteredIcons.map(([name, Icon]) => (
61
+ <button
62
+ key={name}
63
+ type="button"
64
+ onClick={() => handleCopy(name)}
65
+ title={`Copy ${toIconUsage(name)}`}
66
+ className="border-default bg-default flex min-h-32 cursor-copy flex-col items-center justify-center gap-3 rounded-xl border p-4 text-center transition-colors"
67
+ >
68
+ {typeof Icon === "function" ? (
69
+ <Icon className="size-6 shrink-0" />
70
+ ) : (
71
+ <img src={Icon} alt={name} className="shrink-0" />
72
+ )}
73
+ <div className="flex flex-col gap-1">
74
+ <span className="text-default text-xs font-medium break-all">
75
+ {name}
76
+ </span>
77
+ <span className="text-fg-subtle text-[11px] break-all">
78
+ {toIconUsage(name)}
79
+ </span>
80
+ </div>
81
+ </button>
82
+ ))}
83
+ </div>
84
+ </div>
85
+ );
86
+ };
87
+
88
+ const meta = {
89
+ component: ProgramIconGallery,
90
+ tags: ["autodocs"],
91
+ parameters: {
92
+ layout: "padded",
93
+ docs: {
94
+ description: {
95
+ component:
96
+ "`@repo/rb-components/new_components/assets/color-icons` 에서 export되는 프로그램 아이콘을 한 번에 확인하는 스토리입니다. 아이콘 카드를 클릭하면 사용 코드가 복사됩니다.",
97
+ },
98
+ },
99
+ },
100
+ } satisfies Meta<typeof ProgramIconGallery>;
101
+
102
+ export default meta;
103
+
104
+ type Story = StoryObj<typeof meta>;
105
+
106
+ export const Default: Story = {
107
+ render: () => <ProgramIconGallery />,
108
+ };
@@ -0,0 +1,106 @@
1
+ import type React from "react";
2
+ import type { Meta, StoryObj } from "@storybook/react";
3
+ import { useMemo, useState } from "react";
4
+
5
+ import { RBTextInput } from "@repo/rb-components/new_components";
6
+ import * as RBIcons from "@repo/rb-components/new_components/assets/icons";
7
+ import { copyClipboard } from "@repo/rb-utils/browserUtils";
8
+
9
+ type IconExport =
10
+ | string
11
+ | ((props: React.SVGAttributes<SVGSVGElement>) => React.ReactElement);
12
+
13
+ const allIcons = Object.entries(RBIcons)
14
+ .filter(
15
+ ([, value]) => typeof value === "function" || typeof value === "string",
16
+ )
17
+ .sort(([left], [right]) => left.localeCompare(right)) as Array<
18
+ [string, IconExport]
19
+ >;
20
+
21
+ const toIconUsage = (name: string) => `<${name} className="size-5" />`;
22
+
23
+ const handleCopy = (name: string) => {
24
+ void copyClipboard({ text: toIconUsage(name) });
25
+ };
26
+
27
+ const ProgramIconGallery = () => {
28
+ const [query, setQuery] = useState("");
29
+
30
+ const filteredIcons = useMemo(() => {
31
+ const keyword = query.trim().toLowerCase();
32
+
33
+ if (!keyword) {
34
+ return allIcons;
35
+ }
36
+
37
+ return allIcons.filter(([name]) => name.toLowerCase().includes(keyword));
38
+ }, [query]);
39
+
40
+ return (
41
+ <div className="flex flex-col gap-4">
42
+ <div className="flex flex-col gap-3 md:flex-row md:items-center md:justify-between">
43
+ <div>
44
+ <h3 className="text-fg-default text-lg font-semibold">RBIcons</h3>
45
+ <p className="text-fg-subtle text-sm">
46
+ 현재 export된 아이콘 {filteredIcons.length} / {allIcons.length}
47
+ </p>
48
+ </div>
49
+ <RBTextInput
50
+ value={query}
51
+ handleChange={(value) => setQuery(String(value ?? ""))}
52
+ placeholder="Search program icons"
53
+ className="w-full md:w-72"
54
+ />
55
+ </div>
56
+
57
+ <div className="grid grid-cols-2 gap-3 md:grid-cols-4 xl:grid-cols-6">
58
+ {filteredIcons.map(([name, Icon]) => (
59
+ <button
60
+ key={name}
61
+ type="button"
62
+ onClick={() => handleCopy(name)}
63
+ title={`Copy ${toIconUsage(name)}`}
64
+ className="border-default bg-default flex min-h-32 cursor-copy flex-col items-center justify-center gap-3 rounded-xl border p-4 text-center transition-colors"
65
+ >
66
+ {typeof Icon === "function" ? (
67
+ <Icon className="text-fg-default size-6 shrink-0" />
68
+ ) : (
69
+ <img src={Icon} alt={name} className="shrink-0" />
70
+ )}
71
+ <div className="flex flex-col gap-1">
72
+ <span className="text-default text-xs font-medium break-all">
73
+ {name}
74
+ </span>
75
+ <span className="text-fg-subtle text-[11px] break-all">
76
+ {toIconUsage(name)}
77
+ </span>
78
+ </div>
79
+ </button>
80
+ ))}
81
+ </div>
82
+ </div>
83
+ );
84
+ };
85
+
86
+ const meta = {
87
+ component: ProgramIconGallery,
88
+ tags: ["autodocs"],
89
+ parameters: {
90
+ layout: "padded",
91
+ docs: {
92
+ description: {
93
+ component:
94
+ "`@repo/rb-components/new_components/assets/icons` 에서 export되는 프로그램 아이콘을 한 번에 확인하는 스토리입니다. 아이콘 카드를 클릭하면 사용 코드가 복사됩니다.",
95
+ },
96
+ },
97
+ },
98
+ } satisfies Meta<typeof ProgramIconGallery>;
99
+
100
+ export default meta;
101
+
102
+ type Story = StoryObj<typeof meta>;
103
+
104
+ export const Default: Story = {
105
+ render: () => <ProgramIconGallery />,
106
+ };
@@ -0,0 +1,89 @@
1
+ import type { Meta, StoryFn, StoryObj } from "@storybook/react";
2
+ import { RBCheckBox } from "@repo/rb-components/new_components";
3
+ import { useState } from "react";
4
+ import type { CheckBoxProps } from "@repo/rb-components/new_components";
5
+
6
+ type StoryComponent = StoryObj<typeof RBCheckBox>;
7
+ type StoryTemplate = StoryFn<typeof RBCheckBox>;
8
+
9
+ const Template: StoryTemplate = (args) => {
10
+ const list = [1, 2, 3, 4];
11
+ const [value, setValue] = useState<(string | number)[]>([1, 2]);
12
+
13
+ const handleChange = (
14
+ nextValue: CheckBoxProps["value"] | undefined,
15
+ name?: string,
16
+ ) => {
17
+ if (Array.isArray(nextValue)) {
18
+ setValue(nextValue as (string | number)[]);
19
+ }
20
+
21
+ args.handleChange?.(nextValue, name);
22
+ };
23
+
24
+ return (
25
+ <div className="space-y-3">
26
+ <div className="flex flex-col gap-4">
27
+ <RBCheckBox
28
+ {...args}
29
+ name="rb-checkbox-demo-all"
30
+ checkValue={list}
31
+ value={value}
32
+ handleChange={handleChange}
33
+ >
34
+ 전체 선택
35
+ </RBCheckBox>
36
+
37
+ {list.map((num) => (
38
+ <RBCheckBox
39
+ key={num}
40
+ {...args}
41
+ name="rb-checkbox-demo"
42
+ checkValue={num}
43
+ value={value}
44
+ handleChange={handleChange}
45
+ >
46
+ <>
47
+ <span>{args.children ?? "CheckBox Dummy Text"}</span>
48
+ <span>{num}</span>
49
+ </>
50
+ </RBCheckBox>
51
+ ))}
52
+ </div>
53
+
54
+ <div className="text-fg-default text-xs">
55
+ DATA: [{value.map(String).join(", ")}]
56
+ </div>
57
+ </div>
58
+ );
59
+ };
60
+
61
+ export default {
62
+ component: RBCheckBox,
63
+ tags: ["autodocs"],
64
+ argTypes: {
65
+ size: {
66
+ control: { type: "select" },
67
+ options: ["sm", "md"],
68
+ table: { type: { summary: '"sm" | "md"' } },
69
+ },
70
+ disabled: { control: { type: "boolean" } },
71
+ readOnly: { control: { type: "boolean" } },
72
+ children: { control: { type: "text" } },
73
+ selected: { control: { type: "boolean" } },
74
+ partial: { control: { type: "boolean" } },
75
+ checkValue: { control: false },
76
+ value: { control: false },
77
+ handleChange: { control: false },
78
+ },
79
+ args: {
80
+ size: "sm",
81
+ disabled: false,
82
+ readOnly: false,
83
+ selected: false,
84
+ partial: false,
85
+ },
86
+ render: Template,
87
+ } as Meta<typeof RBCheckBox>;
88
+
89
+ export const Default: StoryComponent = {};