@rainbow-robotics/muscat-plugin-kit 0.1.2-dev.5 → 0.1.2-dev.51

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 (270) hide show
  1. package/README.md +82 -49
  2. package/cli/README.md +191 -5
  3. package/cli/bin/create-muscat-plugin.mjs +1 -1
  4. package/cli/bin/muscat-pk.mjs +25 -10
  5. package/cli/bundle-templates.mjs +28 -0
  6. package/cli/docker/Dockerfile.bridge +17 -0
  7. package/cli/docker/Dockerfile.cpp +22 -0
  8. package/cli/docker/Dockerfile.dev +1 -2
  9. package/cli/docker/Dockerfile.python +20 -0
  10. package/cli/docker/bridge-package.json +8 -0
  11. package/cli/prepack.mjs +10 -0
  12. package/cli/src/bridge.mjs +95 -0
  13. package/cli/src/build.mjs +377 -85
  14. package/cli/src/check-package.mjs +8 -23
  15. package/cli/src/cpp.mjs +61 -0
  16. package/cli/src/dev.mjs +49 -4
  17. package/cli/src/devBack.mjs +311 -49
  18. package/cli/src/devUi.mjs +198 -19
  19. package/cli/src/esbuild.mjs +27 -10
  20. package/cli/src/manifest.mjs +208 -0
  21. package/cli/src/mcp.mjs +592 -0
  22. package/cli/src/new.mjs +143 -43
  23. package/cli/src/pluginDevServer.mjs +112 -0
  24. package/cli/src/ports.mjs +160 -0
  25. package/cli/src/python.mjs +109 -0
  26. package/cli/src/ros2.mjs +43 -18
  27. package/cli/src/sdk.mjs +11 -9
  28. package/cli/src/socketBridge.mjs +133 -0
  29. package/cli/src/storybook.mjs +168 -0
  30. package/cli/src/templates-embedded.mjs +3 -0
  31. package/cli/src/type.mjs +52 -29
  32. package/cli/src/uninstall.mjs +98 -0
  33. package/cli/src/update.mjs +259 -30
  34. package/cli/src/util.mjs +114 -7
  35. package/cli/src/zenohDev.mjs +75 -0
  36. package/cli/storybook-dist/_design-tokens.css +4957 -0
  37. package/cli/storybook-dist/_stories-src/NxAvatar.stories.tsx +27 -0
  38. package/cli/storybook-dist/_stories-src/NxPagination.stories.tsx +28 -0
  39. package/cli/storybook-dist/_stories-src/RBAccordion/RBAccordion.stories.tsx +46 -0
  40. package/cli/storybook-dist/_stories-src/RBAccordion/RBAccordionGroup.stories.tsx +73 -0
  41. package/cli/storybook-dist/_stories-src/RBBadge/RBBadge.stories.tsx +93 -0
  42. package/cli/storybook-dist/_stories-src/RBBattery/RBBattery.stories.tsx +74 -0
  43. package/cli/storybook-dist/_stories-src/RBButton/RBCheckIconButton.stories.tsx +28 -0
  44. package/cli/storybook-dist/_stories-src/RBButton/RBCheckLabelButton.stories.tsx +84 -0
  45. package/cli/storybook-dist/_stories-src/RBButton/RBIconButton.stories.tsx +57 -0
  46. package/cli/storybook-dist/_stories-src/RBButton/RBInlineLabelButton.stories.tsx +41 -0
  47. package/cli/storybook-dist/_stories-src/RBButton/RBLabelButton.stories.tsx +60 -0
  48. package/cli/storybook-dist/_stories-src/RBDatePicker/RBDateInput.stories.tsx +44 -0
  49. package/cli/storybook-dist/_stories-src/RBDatePicker/RBRangeDateInput.stories.tsx +44 -0
  50. package/cli/storybook-dist/_stories-src/RBDialog/RBAlert.stories.tsx +51 -0
  51. package/cli/storybook-dist/_stories-src/RBDialog/RBConfirm.stories.tsx +55 -0
  52. package/cli/storybook-dist/_stories-src/RBDialog/RBPrompt.stories.tsx +52 -0
  53. package/cli/storybook-dist/_stories-src/RBDivider/RBDivider.stories.tsx +93 -0
  54. package/cli/storybook-dist/_stories-src/RBEmptyView/RBEmptyView.stories.tsx +49 -0
  55. package/cli/storybook-dist/_stories-src/RBIcons/RBColorIcons.stories.tsx +108 -0
  56. package/cli/storybook-dist/_stories-src/RBIcons/RBIcons.stories.tsx +106 -0
  57. package/cli/storybook-dist/_stories-src/RBIcons/RBMenuTreeIcons.stories.tsx +108 -0
  58. package/cli/storybook-dist/_stories-src/RBIcons/RBProgramIcons.stories.tsx +116 -0
  59. package/cli/storybook-dist/_stories-src/RBInput/RBCheckBox.stories.tsx +89 -0
  60. package/cli/storybook-dist/_stories-src/RBInput/RBMultiRangeInput.stories.tsx +64 -0
  61. package/cli/storybook-dist/_stories-src/RBInput/RBRadioBox.stories.tsx +65 -0
  62. package/cli/storybook-dist/_stories-src/RBInput/RBRadioButton.stories.tsx +68 -0
  63. package/cli/storybook-dist/_stories-src/RBInput/RBSelectBox.stories.tsx +119 -0
  64. package/cli/storybook-dist/_stories-src/RBInput/RBSideNumberInput.stories.tsx +90 -0
  65. package/cli/storybook-dist/_stories-src/RBInput/RBText/RBTextArea.stories.tsx +45 -0
  66. package/cli/storybook-dist/_stories-src/RBInput/RBText/RBTextInput.stories.tsx +50 -0
  67. package/cli/storybook-dist/_stories-src/RBInput/RBTextField.stories.tsx +102 -0
  68. package/cli/storybook-dist/_stories-src/RBJoyStick/RBJoyStick.stories.tsx +31 -0
  69. package/cli/storybook-dist/_stories-src/RBLight/RBLight.stories.tsx +36 -0
  70. package/cli/storybook-dist/_stories-src/RBPagination/RBPagination.stories.tsx +49 -0
  71. package/cli/storybook-dist/_stories-src/RBShadcn/RBCard/RBCard.stories.tsx +89 -0
  72. package/cli/storybook-dist/_stories-src/RBShadcn/RBCommand/RBCommand.stories.tsx +116 -0
  73. package/cli/storybook-dist/_stories-src/RBShadcn/RBDialog/RBDialog.stories.tsx +74 -0
  74. package/cli/storybook-dist/_stories-src/RBShadcn/RBDrawer/RBDrawer.stories.tsx +99 -0
  75. package/cli/storybook-dist/_stories-src/RBShadcn/RBDropdownMenu/RBDropdownMenu.stories.tsx +123 -0
  76. package/cli/storybook-dist/_stories-src/RBShadcn/RBMenubar/RBMenubar.stories.tsx +135 -0
  77. package/cli/storybook-dist/_stories-src/RBShadcn/RBPopover/RBPopover.stories.tsx +69 -0
  78. package/cli/storybook-dist/_stories-src/RBShadcn/RBResizable/RBResizable.stories.tsx +49 -0
  79. package/cli/storybook-dist/_stories-src/RBShadcn/RBSheet/RBSheet.stories.tsx +91 -0
  80. package/cli/storybook-dist/_stories-src/RBShadcn/RBSlider/RBSlider.stories.tsx +38 -0
  81. package/cli/storybook-dist/_stories-src/RBShadcn/RBSwitch/RBSwitch.stories.tsx +112 -0
  82. package/cli/storybook-dist/_stories-src/RBShadcn/RBTabs/RBTabs.stories.tsx +75 -0
  83. package/cli/storybook-dist/_stories-src/RBShadcn/RBToggle/RBToggle.stories.tsx +51 -0
  84. package/cli/storybook-dist/_stories-src/RBShadcn/RBToggleGroup/RBToggleGroup.stories.tsx +84 -0
  85. package/cli/storybook-dist/_stories-src/RBTab/RBChipTab.stories.tsx +102 -0
  86. package/cli/storybook-dist/_stories-src/RBTab/RBChipsBoxTab.stories.tsx +78 -0
  87. package/cli/storybook-dist/_stories-src/RBTab/RBTab.stories.tsx +57 -0
  88. package/cli/storybook-dist/_stories-src/RBTable/RBTable.stories.tsx +177 -0
  89. package/cli/storybook-dist/_stories-src/RBTable/RBTableRow.stories.tsx +64 -0
  90. package/cli/storybook-dist/_stories-src/RBToast/RBToast.stories.tsx +117 -0
  91. package/cli/storybook-dist/_stories-src/RBTooltip/RBTooltip.stories.tsx +50 -0
  92. package/cli/storybook-dist/_stories-src/loading/RBSpinner.stories.tsx +30 -0
  93. package/cli/storybook-dist/_stories-src/nx-button/NxButton.stories.tsx +54 -0
  94. package/cli/storybook-dist/_stories-src/nx-button/NxPointerHoldButton.stories.tsx +57 -0
  95. package/cli/storybook-dist/_stories-src/nx-icons/NxIcons.stories.tsx +48 -0
  96. package/cli/storybook-dist/_stories-src/nx-inputs/NxNumberInput.stories.tsx +103 -0
  97. package/cli/storybook-dist/_stories-src/nx-inputs/NxRangeInput.stories.tsx +27 -0
  98. package/cli/storybook-dist/_stories-src/nx-inputs/NxSelectBox.stories.tsx +67 -0
  99. package/cli/storybook-dist/_stories-src/nx-inputs/NxSlideRange.stories.tsx +45 -0
  100. package/cli/storybook-dist/_stories-src/nx-inputs/NxSwitch.stories.tsx +27 -0
  101. package/cli/storybook-dist/_stories-src/nx-inputs/NxTextArea.stories.tsx +48 -0
  102. package/cli/storybook-dist/_stories-src/nx-inputs/NxTextInput.stories.tsx +46 -0
  103. package/cli/storybook-dist/assets/Color-YHDXOIA2-BjuzF3Je.js +1 -0
  104. package/cli/storybook-dist/assets/Docs-BAFZYTMR.js +12 -0
  105. package/cli/storybook-dist/assets/Docs-BQesYW-Q.js +8 -0
  106. package/cli/storybook-dist/assets/Docs-BsMEe093.js +7 -0
  107. package/cli/storybook-dist/assets/Docs-By6k6vcM.js +20 -0
  108. package/cli/storybook-dist/assets/Docs-D1J63cJc.js +7 -0
  109. package/cli/storybook-dist/assets/Docs-GoNbntAU.js +8 -0
  110. package/cli/storybook-dist/assets/DocsRenderer-CFRXHY34-BwY_WiM7.js +2 -0
  111. package/cli/storybook-dist/assets/NxAvatar.stories-CvzBHfYa.js +13 -0
  112. package/cli/storybook-dist/assets/NxButton.stories-B83PesgN.js +20 -0
  113. package/cli/storybook-dist/assets/NxIcons.stories-Ca7qpAaO.js +3 -0
  114. package/cli/storybook-dist/assets/NxNumberInput.stories-DpNcCG6B.js +26 -0
  115. package/cli/storybook-dist/assets/NxPagination.stories-Xnvd3xhH.js +11 -0
  116. package/cli/storybook-dist/assets/NxPointerHoldButton.stories-C3YSIpM0.js +14 -0
  117. package/cli/storybook-dist/assets/NxRangeInput.stories-DIhaNZig.js +17 -0
  118. package/cli/storybook-dist/assets/NxSelectBox.stories-BGwO2mYJ.js +17 -0
  119. package/cli/storybook-dist/assets/NxSlideRange.stories-BXlt5Bgt.js +14 -0
  120. package/cli/storybook-dist/assets/NxSwitch.stories-C5ZqIRtw.js +11 -0
  121. package/cli/storybook-dist/assets/NxTextArea.stories-hm_ycALo.js +11 -0
  122. package/cli/storybook-dist/assets/NxTextInput.stories-DkZAySr_.js +11 -0
  123. package/cli/storybook-dist/assets/PretendardVariable-CJuje-Rk.woff2 +0 -0
  124. package/cli/storybook-dist/assets/RBAccordion.stories--bY36GZY.js +17 -0
  125. package/cli/storybook-dist/assets/RBAccordionGroup.stories-BVr1ccI4.js +33 -0
  126. package/cli/storybook-dist/assets/RBAlert.stories-CkjFBEkv.js +17 -0
  127. package/cli/storybook-dist/assets/RBBadge.stories-CNXILDPh.js +1 -0
  128. package/cli/storybook-dist/assets/RBBattery.stories-AokMv8ZY.js +10 -0
  129. package/cli/storybook-dist/assets/RBCard.stories-CX1sLKB2.js +45 -0
  130. package/cli/storybook-dist/assets/RBCheckBox.stories-By3QHBFm.js +1 -0
  131. package/cli/storybook-dist/assets/RBCheckIconButton.stories-Dud1uK3X.js +1 -0
  132. package/cli/storybook-dist/assets/RBCheckLabelButton.stories-C8iBkZxY.js +24 -0
  133. package/cli/storybook-dist/assets/RBChipTab.stories-DsgbiS2U.js +21 -0
  134. package/cli/storybook-dist/assets/RBChipsBoxTab.stories-C3DZGmq0.js +1 -0
  135. package/cli/storybook-dist/assets/RBColorIcons.stories-CusR20qk.js +3 -0
  136. package/cli/storybook-dist/assets/RBCommand.stories-DhJNgaLZ.js +73 -0
  137. package/cli/storybook-dist/assets/RBConfirm.stories-B6LKpCDa.js +20 -0
  138. package/cli/storybook-dist/assets/RBDateInput.stories-PEEhQ1wJ.js +15 -0
  139. package/cli/storybook-dist/assets/RBDialog.stories-CAtOdRen.js +38 -0
  140. package/cli/storybook-dist/assets/RBDivider.stories-0zpIUlXT.js +1 -0
  141. package/cli/storybook-dist/assets/RBDrawer.stories-CWMG4glY.js +14 -0
  142. package/cli/storybook-dist/assets/RBDropdownMenu.stories-6fbEYZfk.js +86 -0
  143. package/cli/storybook-dist/assets/RBEmptyView.stories-BRDZHjn4.js +12 -0
  144. package/cli/storybook-dist/assets/RBIconButton.stories-sYrRLYob.js +1 -0
  145. package/cli/storybook-dist/assets/RBIcons.stories-DFe8O1_g.js +3 -0
  146. package/cli/storybook-dist/assets/RBInlineLabelButton.stories-DX4VdUfk.js +1 -0
  147. package/cli/storybook-dist/assets/RBJoyStick.stories-SA2Foelf.js +11 -0
  148. package/cli/storybook-dist/assets/RBLabelButton.stories-CicBns_Y.js +1 -0
  149. package/cli/storybook-dist/assets/RBLight.stories-WlP3oEmY.js +1 -0
  150. package/cli/storybook-dist/assets/RBMenuTreeIcons.stories-CrWjPfxj.js +3 -0
  151. package/cli/storybook-dist/assets/RBMenubar.stories-Di4phWw7.js +3 -0
  152. package/cli/storybook-dist/assets/RBMultiRangeInput.stories-DS3wrR3l.js +14 -0
  153. package/cli/storybook-dist/assets/RBPagination.stories-BDVPAUVD.js +17 -0
  154. package/cli/storybook-dist/assets/RBPopover.stories-DL9b_iX9.js +11 -0
  155. package/cli/storybook-dist/assets/RBProgramIcons.stories-ByRVx-on.js +3 -0
  156. package/cli/storybook-dist/assets/RBPrompt.stories-vTmKWyA5.js +20 -0
  157. package/cli/storybook-dist/assets/RBRadioBox.stories-C9WHt4jb.js +1 -0
  158. package/cli/storybook-dist/assets/RBRadioButton.stories-D8KYq63j.js +11 -0
  159. package/cli/storybook-dist/assets/RBRangeDateInput.stories-Bvcf4Su7.js +15 -0
  160. package/cli/storybook-dist/assets/RBResizable.stories-3O2OMuH_.js +20 -0
  161. package/cli/storybook-dist/assets/RBSelectBox.stories-CKZLmPzX.js +6 -0
  162. package/cli/storybook-dist/assets/RBSheet.stories-Dko0It1W.js +39 -0
  163. package/cli/storybook-dist/assets/RBSideNumberInput.stories-CUvqVtId.js +5 -0
  164. package/cli/storybook-dist/assets/RBSlider.stories-CcbaKRYo.js +5 -0
  165. package/cli/storybook-dist/assets/RBSpinner.stories-D15e_JlE.js +14 -0
  166. package/cli/storybook-dist/assets/RBSwitch.stories-C4JRsYJ6.js +65 -0
  167. package/cli/storybook-dist/assets/RBTab.stories-BPvzQSM-.js +1 -0
  168. package/cli/storybook-dist/assets/RBTable.stories-nr8OS1mV.js +62 -0
  169. package/cli/storybook-dist/assets/RBTableRow.stories-rI0rK8Ci.js +11 -0
  170. package/cli/storybook-dist/assets/RBTabs.stories-CxMtHGWA.js +21 -0
  171. package/cli/storybook-dist/assets/RBTextArea.stories-Bru4AhJ3.js +5 -0
  172. package/cli/storybook-dist/assets/RBTextField.stories-Ah3D9lto.js +45 -0
  173. package/cli/storybook-dist/assets/RBTextInput.stories-C3qAVngJ.js +5 -0
  174. package/cli/storybook-dist/assets/RBToast.stories-C1occsvf.js +11 -0
  175. package/cli/storybook-dist/assets/RBToggle.stories-BNrNERc7.js +12 -0
  176. package/cli/storybook-dist/assets/RBToggleGroup.stories-D_RRBwxY.js +17 -0
  177. package/cli/storybook-dist/assets/RBTooltip.stories-DuyOQqrB.js +9 -0
  178. package/cli/storybook-dist/assets/RainbowUiProvider-BYlbsa69.css +1 -0
  179. package/cli/storybook-dist/assets/RainbowUiProvider-B_piZBLb.js +31 -0
  180. package/cli/storybook-dist/assets/browserUtils-DeopUpDy.js +1 -0
  181. package/cli/storybook-dist/assets/chunk-XP5HYGXS-BHXC9YeQ.js +1 -0
  182. package/cli/storybook-dist/assets/client-DTf7SId2.js +1 -0
  183. package/cli/storybook-dist/assets/createConveyorBeltLayer-Cn41pFRH.js +6210 -0
  184. package/cli/storybook-dist/assets/createConveyorBeltLayer-Ds5AOper.css +21 -0
  185. package/cli/storybook-dist/assets/entry-preview-D-mLV0cS.js +2 -0
  186. package/cli/storybook-dist/assets/entry-preview-docs-b8bpVBXy.js +46 -0
  187. package/cli/storybook-dist/assets/iframe-DNru2eN7.js +211 -0
  188. package/cli/storybook-dist/assets/index-B4FGfHer.js +1 -0
  189. package/cli/storybook-dist/assets/index-BRq5TIsn.js +24 -0
  190. package/cli/storybook-dist/assets/index-C1OzuK6-.js +240 -0
  191. package/cli/storybook-dist/assets/index-CT3U1fyk.js +1 -0
  192. package/cli/storybook-dist/assets/index-ChsGqxH_.js +9 -0
  193. package/cli/storybook-dist/assets/index-Cwr2bQOB.js +575 -0
  194. package/cli/storybook-dist/assets/index-DKFBREX_.js +1 -0
  195. package/cli/storybook-dist/assets/index-DgH-xKnr.js +11 -0
  196. package/cli/storybook-dist/assets/index-Dmy2JGbm.js +1 -0
  197. package/cli/storybook-dist/assets/index-DrFu-skq.js +6 -0
  198. package/cli/storybook-dist/assets/jsx-runtime-BTJTZTIL.js +9 -0
  199. package/cli/storybook-dist/assets/keymapTileIndex.worker-BsNYNbqs.js +1 -0
  200. package/cli/storybook-dist/assets/preview-B8lJiyuQ.js +34 -0
  201. package/cli/storybook-dist/assets/preview-BBWR9nbA.js +1 -0
  202. package/cli/storybook-dist/assets/preview-BWzBA1C2.js +396 -0
  203. package/cli/storybook-dist/assets/preview-CILRoSnB.js +1 -0
  204. package/cli/storybook-dist/assets/preview-CVgpLj3b.js +1 -0
  205. package/cli/storybook-dist/assets/preview-CvbIS5ZJ.js +1 -0
  206. package/cli/storybook-dist/assets/preview-DD_OYowb.js +1 -0
  207. package/cli/storybook-dist/assets/preview-DGUiP6tS.js +7 -0
  208. package/cli/storybook-dist/assets/preview-DHQbi4pV.js +1 -0
  209. package/cli/storybook-dist/assets/preview-DUTcCPBe.css +1 -0
  210. package/cli/storybook-dist/assets/preview-QAsoD6Sa.js +2 -0
  211. package/cli/storybook-dist/assets/preview-rcRMbKPr.js +3 -0
  212. package/cli/storybook-dist/assets/react-18-hB3smqWJ.js +1 -0
  213. package/cli/storybook-dist/assets/react-resizable-panels.browser-CvAJUcrm.js +72 -0
  214. package/cli/storybook-dist/assets/test-utils-BQudk2xt.js +9 -0
  215. package/cli/storybook-dist/favicon.svg +1 -0
  216. package/cli/storybook-dist/iframe.html +666 -0
  217. package/cli/storybook-dist/index.html +190 -0
  218. package/cli/storybook-dist/index.json +1 -0
  219. package/cli/storybook-dist/nunito-sans-bold-italic.woff2 +0 -0
  220. package/cli/storybook-dist/nunito-sans-bold.woff2 +0 -0
  221. package/cli/storybook-dist/nunito-sans-italic.woff2 +0 -0
  222. package/cli/storybook-dist/nunito-sans-regular.woff2 +0 -0
  223. package/cli/storybook-dist/project.json +1 -0
  224. package/cli/storybook-dist/sb-addons/chromatic-com-storybook-10/manager-bundle.js +331 -0
  225. package/cli/storybook-dist/sb-addons/chromatic-com-storybook-10/manager-bundle.js.LEGAL.txt +51 -0
  226. package/cli/storybook-dist/sb-addons/essentials-actions-3/manager-bundle.js +3 -0
  227. package/cli/storybook-dist/sb-addons/essentials-backgrounds-5/manager-bundle.js +12 -0
  228. package/cli/storybook-dist/sb-addons/essentials-controls-2/manager-bundle.js +405 -0
  229. package/cli/storybook-dist/sb-addons/essentials-docs-4/manager-bundle.js +245 -0
  230. package/cli/storybook-dist/sb-addons/essentials-measure-8/manager-bundle.js +3 -0
  231. package/cli/storybook-dist/sb-addons/essentials-outline-9/manager-bundle.js +3 -0
  232. package/cli/storybook-dist/sb-addons/essentials-toolbars-7/manager-bundle.js +3 -0
  233. package/cli/storybook-dist/sb-addons/essentials-viewport-6/manager-bundle.js +3 -0
  234. package/cli/storybook-dist/sb-addons/links-1/manager-bundle.js +3 -0
  235. package/cli/storybook-dist/sb-addons/storybook-13/manager-bundle.js +3 -0
  236. package/cli/storybook-dist/sb-addons/storybook-core-core-server-presets-0/common-manager-bundle.js +3 -0
  237. package/cli/storybook-dist/sb-addons/storybook-experimental-addon-test-12/manager-bundle.js +223 -0
  238. package/cli/storybook-dist/sb-addons/themes-11/manager-bundle.js +3 -0
  239. package/cli/storybook-dist/sb-common-assets/favicon.svg +1 -0
  240. package/cli/storybook-dist/sb-common-assets/nunito-sans-bold-italic.woff2 +0 -0
  241. package/cli/storybook-dist/sb-common-assets/nunito-sans-bold.woff2 +0 -0
  242. package/cli/storybook-dist/sb-common-assets/nunito-sans-italic.woff2 +0 -0
  243. package/cli/storybook-dist/sb-common-assets/nunito-sans-regular.woff2 +0 -0
  244. package/cli/storybook-dist/sb-manager/globals-module-info.js +1052 -0
  245. package/cli/storybook-dist/sb-manager/globals-runtime.js +41775 -0
  246. package/cli/storybook-dist/sb-manager/globals.js +48 -0
  247. package/cli/storybook-dist/sb-manager/runtime.js +12048 -0
  248. package/cli/templates/common/.mcp.json +8 -0
  249. package/cli/templates/common/README.md +817 -9
  250. package/cli/templates/common/assets/icon.svg +44 -2
  251. package/cli/templates/common/manifest.json +13 -13
  252. package/cli/templates/common/package.json +11 -11
  253. package/cli/templates/common/py/main.py +98 -0
  254. package/cli/templates/common/requirements.txt +4 -3
  255. package/cli/templates/common/tsconfig.json +1 -1
  256. package/cli/templates/common/ui/content.tsx +216 -0
  257. package/cli/templates/common/ui/style.css +6 -0
  258. package/cli/templates/common/vite.config.ts +6 -25
  259. package/cli/templates/cpp/cpp/CMakeLists.txt +14 -0
  260. package/cli/templates/cpp/cpp/main.cpp +26 -0
  261. package/cli/templates/ros2/ros2_ws/src/__PLUGIN_SLUG__/__PLUGIN_SLUG__/node.py +5 -0
  262. package/cli/templates/ros2-cpp/ros2_ws/src/__PLUGIN_SLUG__/CMakeLists.txt +17 -0
  263. package/cli/templates/ros2-cpp/ros2_ws/src/__PLUGIN_SLUG__/package.xml +11 -0
  264. package/cli/templates/ros2-cpp/ros2_ws/src/__PLUGIN_SLUG__/src/node.cpp +22 -0
  265. package/cli/vite.d.mts +25 -0
  266. package/cli/vite.mjs +292 -0
  267. package/package.json +32 -5
  268. package/cli/src/pack.mjs +0 -61
  269. package/cli/templates/common/main.py +0 -21
  270. package/cli/templates/common/src/content.tsx +0 -32
@@ -0,0 +1,50 @@
1
+ import type { Meta, StoryFn, StoryObj } from "@storybook/react";
2
+ import { RBTextField, RBTextInput } from "@repo/rb-components/new_components";
3
+
4
+ type StoryComponent = StoryObj<typeof RBTextInput>;
5
+ type StoryTemplate = StoryFn<typeof RBTextInput>;
6
+
7
+ const Template: StoryTemplate = (args) => (
8
+ <div className="bg-alt-2 py-10">
9
+ <RBTextInput {...args} />
10
+ </div>
11
+ );
12
+
13
+ export default {
14
+ component: RBTextInput,
15
+ tags: ["autodocs"],
16
+ argTypes: {
17
+ size: {
18
+ control: { type: "select" },
19
+ options: ["xs2", "sm", "md", "lg"],
20
+ table: { type: { summary: '"xs2" | "sm" | "md" | "lg"' } },
21
+ },
22
+ variant: {
23
+ control: { type: "select" },
24
+ options: ["default", "success"],
25
+ table: { type: { summary: '"default" | "success"' } },
26
+ },
27
+ },
28
+ args: {
29
+ variant: "default",
30
+ disabled: false,
31
+ readOnly: false,
32
+ },
33
+ render: Template,
34
+ } as Meta<typeof RBTextInput>;
35
+
36
+ export const Default: StoryComponent = {};
37
+
38
+ export const WithTextField: StoryComponent = {
39
+ render: (args) => (
40
+ <RBTextField
41
+ label="Node Name"
42
+ description="노드 이름을 입력하세요."
43
+ required
44
+ helperText="중복되지 않는 이름을 사용하세요."
45
+ helperTone="default"
46
+ >
47
+ <RBTextInput {...args} placeholder="node_053" />
48
+ </RBTextField>
49
+ ),
50
+ };
@@ -0,0 +1,102 @@
1
+ import type { Meta, StoryObj } from "@storybook/react";
2
+
3
+ import {
4
+ Option,
5
+ RBSelectBox,
6
+ RBSideNumberInput,
7
+ RBTextArea,
8
+ RBTextField,
9
+ RBTextInput,
10
+ } from "@repo/rb-components/new_components";
11
+
12
+ type StoryComponent = StoryObj<typeof RBTextField>;
13
+
14
+ export default {
15
+ component: RBTextField,
16
+ tags: ["autodocs"],
17
+ args: {
18
+ label: "Node Name",
19
+ description: "노드 이름을 입력하세요.",
20
+ required: false,
21
+ helperText: "중복되지 않는 이름을 사용하세요.",
22
+ helperTone: "default",
23
+ },
24
+ argTypes: {
25
+ helperTone: {
26
+ control: { type: "select" },
27
+ options: ["default", "error", "success"],
28
+ table: { type: { summary: '"default" | "error" | "success"' } },
29
+ },
30
+ },
31
+ decorators: [
32
+ (Story) => (
33
+ <div className="w-[360px]">
34
+ <Story />
35
+ </div>
36
+ ),
37
+ ],
38
+ } as Meta<typeof RBTextField>;
39
+
40
+ export const WithTextInput: StoryComponent = {
41
+ render: (args) => (
42
+ <RBTextField {...args}>
43
+ <RBTextInput placeholder="node_053" />
44
+ </RBTextField>
45
+ ),
46
+ };
47
+
48
+ export const WithTextArea: StoryComponent = {
49
+ args: {
50
+ label: "Description",
51
+ description: "상세 설명을 입력하세요.",
52
+ helperText: "최대 500자까지 입력할 수 있습니다.",
53
+ },
54
+ render: (args) => (
55
+ <RBTextField {...args}>
56
+ <RBTextArea placeholder="내용을 입력해주세요." />
57
+ </RBTextField>
58
+ ),
59
+ };
60
+
61
+ export const WithSideNumberInput: StoryComponent = {
62
+ args: {
63
+ label: "Threshold",
64
+ description: "숫자 값을 입력하세요.",
65
+ helperText: "증가/감소 버튼으로도 조절할 수 있습니다.",
66
+ },
67
+ render: (args) => (
68
+ <RBTextField {...args}>
69
+ <RBSideNumberInput value="0.5" step={0.1} isDirect />
70
+ </RBTextField>
71
+ ),
72
+ };
73
+
74
+ export const WithSelectBox: StoryComponent = {
75
+ args: {
76
+ label: "Category",
77
+ description: "옵션을 선택하세요.",
78
+ helperText: "필요한 분류를 선택해주세요.",
79
+ },
80
+ render: (args) => (
81
+ <RBTextField {...args}>
82
+ <RBSelectBox placeholder="카테고리 선택">
83
+ <Option value="sensor">Sensor</Option>
84
+ <Option value="network">Network</Option>
85
+ <Option value="power">Power</Option>
86
+ </RBSelectBox>
87
+ </RBTextField>
88
+ ),
89
+ };
90
+
91
+ export const Error: StoryComponent = {
92
+ args: {
93
+ helperText: "이미 사용 중인 이름입니다.",
94
+ helperTone: "error",
95
+ required: true,
96
+ },
97
+ render: (args) => (
98
+ <RBTextField {...args}>
99
+ <RBTextInput placeholder="node_053" />
100
+ </RBTextField>
101
+ ),
102
+ };
@@ -0,0 +1,31 @@
1
+ import type { Meta, StoryObj, StoryFn } from "@storybook/react";
2
+ import { RBJoyStick } from "@repo/rb-components/new_components";
3
+
4
+ type StoryComponent = StoryObj<typeof RBJoyStick>;
5
+ type StoryTemplate = StoryFn<typeof RBJoyStick>;
6
+
7
+ // More on how to set up stories at: https://storybook.js.org/docs/react/writing-stories/introduction
8
+ export default {
9
+ component: RBJoyStick,
10
+ tags: ["autodocs"],
11
+ } as Meta<typeof RBJoyStick>;
12
+
13
+ const Template: StoryTemplate = (args) => {
14
+ return (
15
+ <div className="bg-fill-subtler p-10">
16
+ <RBJoyStick {...args} />
17
+ </div>
18
+ );
19
+ };
20
+
21
+ export const Default: StoryComponent = {
22
+ parameters: {
23
+ docs: {
24
+ description: {
25
+ story: "",
26
+ },
27
+ },
28
+ },
29
+ args: {},
30
+ render: Template,
31
+ };
@@ -0,0 +1,36 @@
1
+ import type { Meta, StoryFn, StoryObj } from "@storybook/react";
2
+ import { RBLight } from "@repo/rb-components/new_components";
3
+ import { lightColors, lightSizes } from "@repo/rb-components/new_components";
4
+
5
+ type StoryComponent = StoryObj<typeof RBLight>;
6
+ type StoryTemplate = StoryFn<typeof RBLight>;
7
+
8
+ const Template: StoryTemplate = (args) => <RBLight {...args} />;
9
+
10
+ export default {
11
+ component: RBLight,
12
+ tags: ["autodocs"],
13
+ render: Template,
14
+ argTypes: {
15
+ color: {
16
+ control: { type: "select" },
17
+ options: lightColors,
18
+ table: {
19
+ type: { summary: lightColors.map((c) => `"${c}"`).join(" | ") },
20
+ },
21
+ },
22
+ size: {
23
+ control: { type: "select" },
24
+ options: lightSizes,
25
+ table: {
26
+ type: { summary: lightSizes.map((s) => `"${s}"`).join(" | ") },
27
+ },
28
+ },
29
+ },
30
+ args: {
31
+ color: "green",
32
+ size: "md",
33
+ },
34
+ } as Meta<typeof RBLight>;
35
+
36
+ export const Playground: StoryComponent = {};
@@ -0,0 +1,49 @@
1
+ import { useEffect, useState } from "react";
2
+ import type { Meta, StoryObj, StoryFn } from "@storybook/react";
3
+ import { RBPagination } from "@repo/rb-components/new_components";
4
+
5
+ type StoryComponent = StoryObj<typeof RBPagination>;
6
+ type StoryTemplate = StoryFn<typeof RBPagination>;
7
+
8
+ // More on how to set up stories at: https://storybook.js.org/docs/react/writing-stories/introduction
9
+ export default {
10
+ component: RBPagination,
11
+ tags: ["autodocs"],
12
+ } as Meta<typeof RBPagination>;
13
+
14
+ const Template: StoryTemplate = (args) => {
15
+ const [currPage, setCurrPage] = useState(args.currPage ?? 1);
16
+
17
+ useEffect(() => {
18
+ setCurrPage(args.currPage ?? 1);
19
+ }, [args.currPage]);
20
+
21
+ return (
22
+ <RBPagination
23
+ {...args}
24
+ currPage={currPage}
25
+ handlePageChange={(page) => {
26
+ setCurrPage(page);
27
+ args.handlePageChange?.(page);
28
+ }}
29
+ />
30
+ );
31
+ };
32
+
33
+ export const Default: StoryComponent = {
34
+ parameters: {
35
+ docs: {
36
+ description: {
37
+ story: "",
38
+ },
39
+ },
40
+ },
41
+ args: {
42
+ currPage: 1,
43
+ listSize: 1,
44
+ pageSize: 10,
45
+ totalCount: 100,
46
+ handlePageChange: () => {},
47
+ },
48
+ render: Template,
49
+ };
@@ -0,0 +1,89 @@
1
+ import type { Meta, StoryObj } from "@storybook/react";
2
+ import { HStack, VStack } from "@repo/rb-components";
3
+
4
+ import {
5
+ RBCard,
6
+ RBCardContent,
7
+ RBCardDescription,
8
+ RBCardFooter,
9
+ RBCardHeader,
10
+ RBCardHeaderText,
11
+ RBLabelButton,
12
+ RBCardTitle,
13
+ RBTextLabel,
14
+ RBTextInput,
15
+ } from "@repo/rb-components/new_components";
16
+
17
+ const meta = {
18
+ component: RBCard,
19
+ tags: ["autodocs"],
20
+ argTypes: {
21
+ size: {
22
+ control: { type: "select" },
23
+ options: ["sm", "md"],
24
+ table: { type: { summary: '"sm" | "md"' } },
25
+ },
26
+ },
27
+ args: {
28
+ size: "md",
29
+ },
30
+ } satisfies Meta<typeof RBCard>;
31
+
32
+ export default meta;
33
+ type Story = StoryObj<typeof meta>;
34
+
35
+ export const Playground: Story = {
36
+ render: ({ size }) => {
37
+ return (
38
+ <RBCard size={size}>
39
+ <RBCardHeader>
40
+ <RBCardHeaderText>
41
+ <RBCardTitle>Title Text</RBCardTitle>
42
+ <RBCardDescription>This is a card description.</RBCardDescription>
43
+ </RBCardHeaderText>
44
+ </RBCardHeader>
45
+
46
+ <RBCardContent>
47
+ <VStack className="w-full gap-6">
48
+ <VStack className="w-full gap-2">
49
+ <RBTextLabel label="Email" />
50
+ <RBTextInput
51
+ defaultValue="m@example.com"
52
+ type="email"
53
+ size="sm"
54
+ className="w-full"
55
+ />
56
+ </VStack>
57
+ <VStack className="w-full gap-2">
58
+ <HStack className="w-full items-start justify-between">
59
+ <RBTextLabel label="Password" className="w-auto" />
60
+ <span className="text-fg-default typo-compact-xs-normal whitespace-nowrap">
61
+ Forgot your password?
62
+ </span>
63
+ </HStack>
64
+ <RBTextInput
65
+ defaultValue="Placeholder"
66
+ type="password"
67
+ size="sm"
68
+ className="w-full"
69
+ />
70
+ </VStack>
71
+ <p className="text-fg-default typo-body-xs-normal">
72
+ The card component supports a size prop that can be set to
73
+ &quot;sm&quot; for a more compact appearance.
74
+ </p>
75
+ </VStack>
76
+ </RBCardContent>
77
+
78
+ <RBCardFooter>
79
+ <RBLabelButton size="sm" variant="solid" className="w-full">
80
+ Login
81
+ </RBLabelButton>
82
+ <RBLabelButton size="sm" variant="outlined" className="w-full">
83
+ Login with Google
84
+ </RBLabelButton>
85
+ </RBCardFooter>
86
+ </RBCard>
87
+ );
88
+ },
89
+ };
@@ -0,0 +1,116 @@
1
+ import type { Meta, StoryObj } from "@storybook/react";
2
+ import { CheckIcon } from "lucide-react";
3
+ import { useState, type ComponentProps } from "react";
4
+
5
+ import {
6
+ RBIcons,
7
+ RBCommand,
8
+ RBCommandEmpty,
9
+ RBCommandGroup,
10
+ RBCommandInput,
11
+ RBCommandItem,
12
+ RBCommandList,
13
+ RBCommandSelected,
14
+ RBCommandSeparator,
15
+ RBCommandShortcut,
16
+ } from "@repo/rb-components/new_components";
17
+
18
+ const meta = {
19
+ component: RBCommand,
20
+ tags: ["autodocs"],
21
+ } satisfies Meta<typeof RBCommand>;
22
+
23
+ export default meta;
24
+ type Story = StoryObj<typeof meta>;
25
+
26
+ type RBCommandProps = ComponentProps<typeof RBCommand>;
27
+
28
+ export const Suggestions: Story = {
29
+ render: function Render(args: RBCommandProps) {
30
+ const [selectedItem, setSelectedItem] = useState<string | null>(null);
31
+ const placeholder = selectedItem
32
+ ? `${selectedItem} 선택됨`
33
+ : "플레이스홀더";
34
+
35
+ return (
36
+ <RBCommand {...args} className={`w-96 ${args.className ?? ""}`}>
37
+ <RBCommandInput placeholder={placeholder} />
38
+ <RBCommandList>
39
+ <RBCommandGroup heading="Suggestions">
40
+ <RBCommandItem onSelect={() => setSelectedItem("Calendar")}>
41
+ <RBIcons.SvgInformationRegular />
42
+ Calendar
43
+ {selectedItem === "Calendar" && (
44
+ <RBCommandSelected>
45
+ <CheckIcon />
46
+ </RBCommandSelected>
47
+ )}
48
+ </RBCommandItem>
49
+ <RBCommandItem onSelect={() => setSelectedItem("Search Emoji")}>
50
+ <RBIcons.SvgInformationRegular />
51
+ Search Emoji
52
+ {selectedItem === "Search Emoji" && (
53
+ <RBCommandSelected>
54
+ <CheckIcon />
55
+ </RBCommandSelected>
56
+ )}
57
+ </RBCommandItem>
58
+ <RBCommandItem onSelect={() => setSelectedItem("Calculator")}>
59
+ <RBIcons.SvgInformationRegular />
60
+ Calculator
61
+ {selectedItem === "Calculator" && (
62
+ <RBCommandSelected>
63
+ <CheckIcon />
64
+ </RBCommandSelected>
65
+ )}
66
+ </RBCommandItem>
67
+ </RBCommandGroup>
68
+ <RBCommandSeparator className="w-full" />
69
+ <RBCommandGroup heading="Settings">
70
+ <RBCommandItem onSelect={() => setSelectedItem("Profile")}>
71
+ <RBIcons.SvgInformationRegular />
72
+ Profile
73
+ {selectedItem === "Profile" && (
74
+ <RBCommandSelected>
75
+ <CheckIcon />
76
+ </RBCommandSelected>
77
+ )}
78
+ <RBCommandShortcut>⌘P</RBCommandShortcut>
79
+ </RBCommandItem>
80
+ <RBCommandItem onSelect={() => setSelectedItem("Billing")}>
81
+ <RBIcons.SvgInformationRegular />
82
+ Billing
83
+ {selectedItem === "Billing" && (
84
+ <RBCommandSelected>
85
+ <CheckIcon />
86
+ </RBCommandSelected>
87
+ )}
88
+ <RBCommandShortcut>⌘B</RBCommandShortcut>
89
+ </RBCommandItem>
90
+ <RBCommandItem onSelect={() => setSelectedItem("Settings")}>
91
+ <RBIcons.SvgInformationRegular />
92
+ Settings
93
+ {selectedItem === "Settings" && (
94
+ <RBCommandSelected>
95
+ <CheckIcon />
96
+ </RBCommandSelected>
97
+ )}
98
+ <RBCommandShortcut>⌘S</RBCommandShortcut>
99
+ </RBCommandItem>
100
+ </RBCommandGroup>
101
+ </RBCommandList>
102
+ </RBCommand>
103
+ );
104
+ },
105
+ };
106
+
107
+ export const EmptyState: Story = {
108
+ render: () => (
109
+ <RBCommand className="h-60 w-96">
110
+ <RBCommandInput placeholder="플레이스홀더" />
111
+ <RBCommandList className="flex flex-1 flex-col items-center justify-center p-0">
112
+ <RBCommandEmpty>No results found.</RBCommandEmpty>
113
+ </RBCommandList>
114
+ </RBCommand>
115
+ ),
116
+ };
@@ -0,0 +1,74 @@
1
+ import type { Meta, StoryObj } from "@storybook/react";
2
+
3
+ import {
4
+ RBDialog,
5
+ RBDialogContent,
6
+ RBDialogDescription,
7
+ RBDialogFooter,
8
+ RBDialogHeader,
9
+ RBDialogTitle,
10
+ RBDialogTrigger,
11
+ RBLabelButton,
12
+ } from "@repo/rb-components/new_components";
13
+
14
+ const meta = {
15
+ tags: ["autodocs"],
16
+ argTypes: {
17
+ showCloseButton: {
18
+ control: "boolean",
19
+ },
20
+ size: {
21
+ control: { type: "select" },
22
+ options: ["sm", "md", "lg"],
23
+ },
24
+ },
25
+ args: {
26
+ showCloseButton: true,
27
+ size: "lg",
28
+ },
29
+ component: RBDialogContent,
30
+ } satisfies Meta<typeof RBDialogContent>;
31
+
32
+ export default meta;
33
+ type Story = StoryObj<typeof meta>;
34
+
35
+ export const Playground: Story = {
36
+ render: (args) => (
37
+ <div>
38
+ <RBDialog>
39
+ <RBDialogTrigger asChild>
40
+ <RBLabelButton size="sm" variant="solid">
41
+ Open Dialog
42
+ </RBLabelButton>
43
+ </RBDialogTrigger>
44
+
45
+ <RBDialogContent {...args}>
46
+ <RBDialogHeader>
47
+ <RBDialogTitle>타이틀</RBDialogTitle>
48
+ <RBDialogDescription>설명 영역</RBDialogDescription>
49
+ </RBDialogHeader>
50
+
51
+ <div className="text-fg-default px-4 py-2 text-sm">
52
+ 다이얼로그 본문 콘텐츠 영역입니다.
53
+ </div>
54
+
55
+ <RBDialogFooter>
56
+ <div className="flex flex-1 items-center justify-start gap-1">
57
+ <RBLabelButton variant="outlined" size="xs2">
58
+ 버튼
59
+ </RBLabelButton>
60
+ </div>
61
+ <div className="flex items-center gap-1">
62
+ <RBLabelButton variant="outlined" size="xs2">
63
+ 버튼
64
+ </RBLabelButton>
65
+ <RBLabelButton variant="brand" size="xs2">
66
+ 버튼
67
+ </RBLabelButton>
68
+ </div>
69
+ </RBDialogFooter>
70
+ </RBDialogContent>
71
+ </RBDialog>
72
+ </div>
73
+ ),
74
+ };
@@ -0,0 +1,99 @@
1
+ import type { Meta, StoryObj } from "@storybook/react";
2
+
3
+ import { VStack } from "@repo/rb-components";
4
+ import {
5
+ RBLabelButton,
6
+ RBDrawer,
7
+ RBDrawerBody,
8
+ RBDrawerContent,
9
+ RBDrawerDescription,
10
+ RBDrawerFooter,
11
+ RBDrawerHeader,
12
+ RBDrawerTitle,
13
+ RBDrawerTrigger,
14
+ } from "@repo/rb-components/new_components";
15
+
16
+ const meta = {
17
+ tags: ["autodocs"],
18
+ argTypes: {
19
+ showCloseButton: {
20
+ control: "boolean",
21
+ },
22
+ showHandle: {
23
+ control: "boolean",
24
+ },
25
+ side: {
26
+ control: { type: "select" },
27
+ options: ["top", "bottom", "right", "left"],
28
+ },
29
+ },
30
+ args: {
31
+ side: "bottom",
32
+ showHandle: true,
33
+ showCloseButton: false,
34
+ },
35
+ component: RBDrawerContent,
36
+ } satisfies Meta<typeof RBDrawerContent>;
37
+
38
+ export default meta;
39
+ type Story = StoryObj<typeof meta>;
40
+
41
+ const DrawerBodyContent = ({
42
+ side,
43
+ }: {
44
+ side: "top" | "bottom" | "right" | "left";
45
+ }) => {
46
+ const isVertical = side === "top" || side === "bottom";
47
+
48
+ return (
49
+ <>
50
+ <RBDrawerHeader className={isVertical ? "items-center text-center" : ""}>
51
+ <RBDrawerTitle className="typo-title-01-medium">
52
+ Title Text
53
+ </RBDrawerTitle>
54
+ <RBDrawerDescription>This is a drawer description.</RBDrawerDescription>
55
+ </RBDrawerHeader>
56
+
57
+ <RBDrawerBody>
58
+ <div className="border-information bg-fill-information-subtlest text-fg-default typo-compact-sm-normal flex h-16 w-full items-center justify-center border border-dashed px-4 text-center">
59
+ <span className={isVertical ? "" : "w-full text-left"}>
60
+ Slot (swap it with your content)
61
+ </span>
62
+ </div>
63
+ </RBDrawerBody>
64
+
65
+ <RBDrawerFooter>
66
+ <RBLabelButton size="sm" variant="solid" className="w-full">
67
+ 버튼 라벨
68
+ </RBLabelButton>
69
+ <RBLabelButton size="sm" variant="outlined" className="w-full">
70
+ 버튼 라벨
71
+ </RBLabelButton>
72
+ </RBDrawerFooter>
73
+ </>
74
+ );
75
+ };
76
+
77
+ export const Playground: Story = {
78
+ render: (args) => (
79
+ <VStack className="bg-alt-1 min-h-[700px] items-center justify-center rounded-2xl p-8">
80
+ <RBDrawer defaultOpen side={args.side}>
81
+ <RBDrawerTrigger asChild>
82
+ <RBLabelButton size="sm" variant="solid">
83
+ Open Drawer
84
+ </RBLabelButton>
85
+ </RBDrawerTrigger>
86
+ <RBDrawerContent
87
+ {...args}
88
+ className={
89
+ args.side === "top" || args.side === "bottom"
90
+ ? "w-full"
91
+ : "h-full w-96"
92
+ }
93
+ >
94
+ <DrawerBodyContent side={args.side} />
95
+ </RBDrawerContent>
96
+ </RBDrawer>
97
+ </VStack>
98
+ ),
99
+ };