@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,117 @@
1
+ import { useState } from "react";
2
+ import type { ComponentProps, ReactElement } from "react";
3
+ import type { Meta, StoryFn, StoryObj } from "@storybook/react";
4
+
5
+ import { RBSimpleToast } from "@repo/rb-components/new_components";
6
+ import {
7
+ RBToastContainer,
8
+ toast,
9
+ type ToastType,
10
+ type ToastVariant,
11
+ } from "@repo/rb-modules/RBToast";
12
+
13
+ type StoryArgs = ComponentProps<typeof RBToastContainer> & {
14
+ variant: ToastVariant;
15
+ type: ToastType;
16
+ icon?: ReactElement;
17
+ actionLabel?: string;
18
+ handleActionClick?: () => void;
19
+ closeOnActionClick?: boolean;
20
+ };
21
+
22
+ type StoryComponent = StoryObj<StoryArgs>;
23
+ type StoryTemplate = StoryFn<StoryArgs>;
24
+
25
+ // More on how to set up stories at: https://storybook.js.org/docs/react/writing-stories/introduction
26
+ export default {
27
+ component: RBToastContainer,
28
+ tags: ["autodocs"],
29
+ args: {
30
+ position: "top-left",
31
+ type: "basic",
32
+ variant: "default",
33
+ actionLabel: "",
34
+ closeOnActionClick: true,
35
+ },
36
+ argTypes: {
37
+ position: {
38
+ control: { type: "select" },
39
+ options: [
40
+ "top-center",
41
+ "top-left",
42
+ "top-right",
43
+ "bottom-center",
44
+ "bottom-left",
45
+ "bottom-right",
46
+ ],
47
+ },
48
+ variant: {
49
+ control: { type: "select" },
50
+ options: ["default", "danger", "warning", "caution", "success", "copy"],
51
+ },
52
+ type: {
53
+ control: { type: "select" },
54
+ options: ["basic", "alert"],
55
+ },
56
+ icon: { control: false },
57
+ actionLabel: {
58
+ control: { type: "text" },
59
+ description: "액션 버튼 라벨",
60
+ },
61
+ handleActionClick: {
62
+ control: false,
63
+ description: "액션 버튼 클릭 시 실행할 함수",
64
+ },
65
+ closeOnActionClick: {
66
+ control: { type: "boolean" },
67
+ description: "액션 버튼 클릭 뒤 토스트를 닫을지 여부",
68
+ },
69
+ },
70
+ } as Meta<StoryArgs>;
71
+
72
+ const Template: StoryTemplate = (args) => {
73
+ const [count, setCount] = useState(0);
74
+
75
+ const handleClick = () => {
76
+ setCount(count + 1);
77
+ toast.openToast({
78
+ title: `Toast Title ${count}`,
79
+ content: `This is a toast message long test long test long test long test long test long test.`,
80
+ icon: args.icon,
81
+ actionLabel: args.actionLabel || undefined,
82
+ handleActionClick: args.actionLabel
83
+ ? () => console.info("toast action clicked")
84
+ : undefined,
85
+ closeOnActionClick: args.closeOnActionClick,
86
+ type: args.type as ToastType,
87
+ variant: args.variant as ToastVariant,
88
+ position: args.position,
89
+ duration: args.duration,
90
+ });
91
+ };
92
+
93
+ return (
94
+ <div className="border-danger flex h-100 flex-col items-center justify-center border-1">
95
+ <RBToastContainer
96
+ position={args.position}
97
+ duration={args.duration}
98
+ toastComponent={RBSimpleToast}
99
+ />
100
+ <button onClick={handleClick} className="text-fg-default">
101
+ open toast
102
+ </button>
103
+ </div>
104
+ );
105
+ };
106
+
107
+ export const Default: StoryComponent = {
108
+ parameters: {
109
+ docs: {
110
+ description: {
111
+ story: "",
112
+ },
113
+ },
114
+ },
115
+ args: {},
116
+ render: Template,
117
+ };
@@ -0,0 +1,50 @@
1
+ import type { Meta, StoryObj, StoryFn } from "@storybook/react";
2
+ import { RBTooltip } from "@repo/rb-components/new_components";
3
+
4
+ type StoryComponent = StoryObj<typeof RBTooltip>;
5
+ type StoryTemplate = StoryFn<typeof RBTooltip>;
6
+
7
+ const count = 0;
8
+
9
+ export default {
10
+ component: RBTooltip,
11
+ tags: ["autodocs"],
12
+ argTypes: {
13
+ place: {
14
+ control: "radio",
15
+ options: ["top", "left", "bottom", "right"],
16
+ defaultValue: "bottom",
17
+ },
18
+ tooltipColor: {
19
+ control: "color",
20
+ },
21
+ tooltipTextColor: {
22
+ control: "color",
23
+ },
24
+ },
25
+ } as Meta<typeof RBTooltip>;
26
+
27
+ // More on how to set up stories at: https://storybook.js.org/docs/react/writing-stories/introduction
28
+ const Template: StoryTemplate = (args) => {
29
+ return (
30
+ <div className="flex items-center justify-center p-30">
31
+ <button
32
+ className="text-fg-default border-danger border-1"
33
+ id={`${args.anchorId}${count}`}
34
+ >
35
+ Tooltip
36
+ </button>
37
+ <RBTooltip {...args} anchorId={`${args.anchorId}${count}`} />
38
+ </div>
39
+ );
40
+ };
41
+
42
+ export const Default: StoryComponent = {
43
+ args: {
44
+ anchorId: "tooltip-anchor",
45
+ children: "Tooltip Content",
46
+ events: ["hover"],
47
+ place: "top",
48
+ },
49
+ render: Template,
50
+ };
@@ -0,0 +1,30 @@
1
+ import type { Meta, StoryObj, StoryFn } from "@storybook/react";
2
+ import { RBSpinner } from "@repo/rb-components/new_components";
3
+
4
+ type StoryComponent = StoryObj<typeof RBSpinner>;
5
+ type StoryTemplate = StoryFn<typeof RBSpinner>;
6
+
7
+ // More on how to set up stories at: https://storybook.js.org/docs/react/writing-stories/introduction
8
+ export default {
9
+ component: RBSpinner,
10
+ tags: ["autodocs"],
11
+ } as Meta<typeof RBSpinner>;
12
+
13
+ const Template: StoryTemplate = (args) => {
14
+ return <RBSpinner {...args} />;
15
+ };
16
+
17
+ export const Default: StoryComponent = {
18
+ parameters: {
19
+ docs: {
20
+ description: {
21
+ story: "",
22
+ },
23
+ },
24
+ },
25
+ args: {
26
+ size: "1.5rem",
27
+ className: "text-fg-default",
28
+ },
29
+ render: Template,
30
+ };
@@ -0,0 +1,54 @@
1
+ import type { Meta, StoryObj, StoryFn } from "@storybook/react";
2
+ import NxButton from "@nexus/components/shared/button/NxButton";
3
+
4
+ type StoryComponent = StoryObj<typeof NxButton>;
5
+ type StoryTemplate = StoryFn<typeof NxButton>;
6
+
7
+ // More on how to set up stories at: https://storybook.js.org/docs/react/writing-stories/introduction
8
+ export default {
9
+ component: NxButton,
10
+ tags: ["autodocs"],
11
+ argTypes: {
12
+ children: {
13
+ control: "text",
14
+ description: "버튼에 표시될 내용",
15
+ table: {
16
+ type: {
17
+ summary: "string | ReactNode",
18
+ },
19
+ },
20
+ },
21
+ size: {
22
+ control: { type: "select" },
23
+ options: ["default", "sm", "lg", "icon"],
24
+ description: "버튼 크기",
25
+ table: {
26
+ type: {
27
+ summary: `"default" | "sm" | "lg" | "icon"`,
28
+ },
29
+ defaultValue: {
30
+ summary: "default",
31
+ },
32
+ },
33
+ },
34
+ },
35
+ } as Meta<typeof NxButton>;
36
+
37
+ const Template: StoryTemplate = (args) => {
38
+ return <NxButton {...args} />;
39
+ };
40
+
41
+ export const Default: StoryComponent = {
42
+ parameters: {
43
+ docs: {
44
+ description: {
45
+ story: "",
46
+ },
47
+ },
48
+ },
49
+ args: {
50
+ children: "NexusButton",
51
+ size: "default",
52
+ },
53
+ render: Template,
54
+ };
@@ -0,0 +1,57 @@
1
+ import type { Meta, StoryObj, StoryFn } from "@storybook/react";
2
+ import NxPointerHoldButton from "@nexus/components/shared/button/NxPointerHoldButton";
3
+
4
+ type StoryComponent = StoryObj<typeof NxPointerHoldButton>;
5
+ type StoryTemplate = StoryFn<typeof NxPointerHoldButton>;
6
+
7
+ // More on how to set up stories at: https://storybook.js.org/docs/react/writing-stories/introduction
8
+ export default {
9
+ component: NxPointerHoldButton,
10
+ tags: ["autodocs"],
11
+ argTypes: {
12
+ children: {
13
+ control: "text",
14
+ description: "버튼에 표시될 내용",
15
+ table: {
16
+ type: {
17
+ summary: "string | ReactNode",
18
+ },
19
+ },
20
+ },
21
+ size: {
22
+ control: { type: "select" },
23
+ options: ["default", "sm", "lg", "icon"],
24
+ description: "버튼 크기",
25
+ table: {
26
+ type: {
27
+ summary: `"default" | "sm" | "lg" | "icon"`,
28
+ },
29
+ defaultValue: {
30
+ summary: "default",
31
+ },
32
+ },
33
+ },
34
+ disabled: {
35
+ type: "boolean",
36
+ },
37
+ },
38
+ } as Meta<typeof NxPointerHoldButton>;
39
+
40
+ const Template: StoryTemplate = (args) => {
41
+ return <NxPointerHoldButton {...args} />;
42
+ };
43
+
44
+ export const Default: StoryComponent = {
45
+ parameters: {
46
+ docs: {
47
+ description: {
48
+ story: "",
49
+ },
50
+ },
51
+ },
52
+ args: {
53
+ children: "Hold Button",
54
+ size: "sm",
55
+ },
56
+ render: Template,
57
+ };
@@ -0,0 +1,48 @@
1
+ import type React from "react";
2
+ import type { Meta, StoryObj } from "@storybook/react";
3
+ import * as Icons from "@nexus/assets/icons";
4
+ import { copyClipboard } from "@repo/rb-utils/browserUtils";
5
+
6
+ const meta: Meta = {
7
+ title: "muscat/nx-icons",
8
+ };
9
+
10
+ export default meta;
11
+
12
+ type Story = StoryObj;
13
+
14
+ const handleCopy = (text: string) => {
15
+ copyClipboard({ text });
16
+ alert("복사가 완료되었습니다.");
17
+ };
18
+
19
+ const toIconUsage = (name: string) => `<${name} className="size-5" />`;
20
+
21
+ const IconGrid = () => {
22
+ const entries = Object.entries(Icons).filter(
23
+ ([, Comp]) => typeof Comp === "function",
24
+ ) as Array<[string, React.ComponentType<React.SVGAttributes<SVGSVGElement>>]>;
25
+
26
+ return (
27
+ <div className="grid grid-cols-3 gap-3 md:grid-cols-6 xl:grid-cols-8">
28
+ {entries.map(([name, Icon]) => (
29
+ <button
30
+ key={name}
31
+ type="button"
32
+ className="border-default bg-default text-default flex cursor-copy flex-col items-center gap-2 rounded-lg border p-3"
33
+ onClick={() => handleCopy(toIconUsage(name))}
34
+ title={`Copy ${toIconUsage(name)}`}
35
+ >
36
+ <Icon className="size-5" />
37
+ <span className="text-subtle text-center text-sm break-all">
38
+ {toIconUsage(name)}
39
+ </span>
40
+ </button>
41
+ ))}
42
+ </div>
43
+ );
44
+ };
45
+
46
+ export const Preview: Story = {
47
+ render: () => <IconGrid />,
48
+ };
@@ -0,0 +1,103 @@
1
+ import type { Meta, StoryObj, StoryFn } from "@storybook/react";
2
+ import NxNumberInput from "@nexus/components/shared/inputs/NxNumberInput";
3
+ import { SideNumberInput } from "@sb/index";
4
+
5
+ type StoryComponent = StoryObj<typeof SideNumberInput>;
6
+ type StoryTemplate = StoryFn<typeof NxNumberInput>;
7
+
8
+ // More on how to set up stories at: https://storybook.js.org/docs/react/writing-stories/introduction
9
+ export default {
10
+ component: NxNumberInput,
11
+ tags: ["autodocs"],
12
+ argTypes: {
13
+ value: {
14
+ type: "string",
15
+ },
16
+ step: {
17
+ type: "number",
18
+ },
19
+ increaseStep: {
20
+ type: "number",
21
+ },
22
+ decreaseStep: {
23
+ type: "number",
24
+ },
25
+ error: {
26
+ type: "boolean",
27
+ },
28
+ maxLength: {
29
+ control: "text",
30
+ description: "string | number",
31
+ },
32
+ digit: {
33
+ type: "number",
34
+ },
35
+ isDirect: {
36
+ control: { type: "boolean" },
37
+ description: "직접 입력 허용 여부",
38
+ table: {
39
+ defaultValue: { summary: "true" },
40
+ },
41
+ },
42
+ detectDobleClick: {
43
+ control: { type: "boolean" },
44
+ description: "더블 클릭 감지 여부",
45
+ table: {
46
+ defaultValue: { summary: "false" },
47
+ },
48
+ },
49
+ readOnly: {
50
+ type: "boolean",
51
+ },
52
+ increaseElement: {
53
+ description: "증가 버튼에 표시될 아이콘 컴포넌트",
54
+ control: false,
55
+ table: {
56
+ type: {
57
+ summary: "ReactElement",
58
+ },
59
+ },
60
+ },
61
+ decreaseElement: {
62
+ description: "감소 버튼에 표시될 아이콘 컴포넌트",
63
+ control: false,
64
+ table: {
65
+ type: {
66
+ summary: "ReactElement",
67
+ },
68
+ },
69
+ },
70
+ handleChange: {
71
+ action: "onChange",
72
+ description: "값이 변경될 때 호출되는 함수",
73
+ table: {
74
+ type: {
75
+ summary:
76
+ "(value: string, name?: string, option?: ChangeOption) => void",
77
+ detail: `
78
+ - value: 변경된 값
79
+ - name?: 입력 필드(input) name 값
80
+ - option?: up/down 버튼을 눌렀을 경우 전달
81
+ - type: 'up' | 'down'
82
+ `.trim(),
83
+ },
84
+ },
85
+ },
86
+ },
87
+ } as Meta<typeof SideNumberInput>;
88
+
89
+ const Template: StoryTemplate = (args) => {
90
+ return <NxNumberInput {...args} />;
91
+ };
92
+
93
+ export const Default: StoryComponent = {
94
+ parameters: {
95
+ docs: {
96
+ description: {
97
+ story: "",
98
+ },
99
+ },
100
+ },
101
+ args: {},
102
+ render: Template,
103
+ };
@@ -0,0 +1,27 @@
1
+ import type { Meta, StoryObj, StoryFn } from "@storybook/react";
2
+ import NxRangeInput from "@nexus/components/shared/inputs/NxRangeInput";
3
+
4
+ type StoryComponent = StoryObj<typeof NxRangeInput>;
5
+ type StoryTemplate = StoryFn<typeof NxRangeInput>;
6
+
7
+ // More on how to set up stories at: https://storybook.js.org/docs/react/writing-stories/introduction
8
+ export default {
9
+ component: NxRangeInput,
10
+ tags: ["autodocs"],
11
+ } as Meta<typeof NxRangeInput>;
12
+
13
+ const Template: StoryTemplate = (args) => {
14
+ return <NxRangeInput {...args} />;
15
+ };
16
+
17
+ export const Default: StoryComponent = {
18
+ parameters: {
19
+ docs: {
20
+ description: {
21
+ story: "",
22
+ },
23
+ },
24
+ },
25
+ args: {},
26
+ render: Template,
27
+ };
@@ -0,0 +1,67 @@
1
+ import type { Meta, StoryObj, StoryFn } from "@storybook/react";
2
+ import NxSelectBox from "@nexus/components/shared/inputs/NxSelectBox";
3
+ import { SelectBox, Option } from "@sb/index";
4
+
5
+ type StoryComponent = StoryObj<typeof SelectBox>;
6
+ type StoryTemplate = StoryFn<typeof NxSelectBox>;
7
+
8
+ // More on how to set up stories at: https://storybook.js.org/docs/react/writing-stories/introduction
9
+ export default {
10
+ component: NxSelectBox,
11
+ tags: ["autodocs"],
12
+ argTypes: {
13
+ value: {
14
+ control: "text",
15
+ description: "string | number",
16
+ },
17
+ children: {
18
+ control: false,
19
+ description: "Option 컴포넌트를 children으로 전달",
20
+ },
21
+ keepDropDown: {
22
+ type: "boolean",
23
+ description: "Option 선택 후 DropBox를 닫을지 유지할지 여부",
24
+ },
25
+ error: {
26
+ type: "boolean",
27
+ },
28
+ onChange: {
29
+ action: "onChange",
30
+ description: "값이 변경될 때 호출되는 함수",
31
+ table: {
32
+ type: {
33
+ summary: `(
34
+ e: ChangeEvent<HTMLInputElement> | { target: HTMLInputElement },
35
+ ) => void`,
36
+ detail: `
37
+ - e: 변경된 value의 ChangeEvent. e.target.value로 변경하려는 value값을 가져옴
38
+ `.trim(),
39
+ },
40
+ },
41
+ },
42
+ },
43
+ } as Meta<typeof SelectBox>;
44
+
45
+ const Template: StoryTemplate = (args) => {
46
+ return (
47
+ <NxSelectBox {...args}>
48
+ <Option value="a">Option A</Option>
49
+ <Option value="b">Option B</Option>
50
+ <Option value="c" disabled>
51
+ Option C
52
+ </Option>
53
+ </NxSelectBox>
54
+ );
55
+ };
56
+
57
+ export const Default: StoryComponent = {
58
+ parameters: {
59
+ docs: {
60
+ description: {
61
+ story: "",
62
+ },
63
+ },
64
+ },
65
+ args: { value: "a" },
66
+ render: Template,
67
+ };
@@ -0,0 +1,45 @@
1
+ import type { Meta, StoryObj, StoryFn } from "@storybook/react";
2
+ import NxSlideRange from "@nexus/components/shared/inputs/NxSlideRange";
3
+ import { ShadSlider } from "@repo/rb-components/shadcn/ui";
4
+
5
+ type StoryComponent = StoryObj<typeof ShadSlider>;
6
+ type StoryTemplate = StoryFn<typeof NxSlideRange>;
7
+
8
+ // More on how to set up stories at: https://storybook.js.org/docs/react/writing-stories/introduction
9
+ export default {
10
+ component: NxSlideRange,
11
+ tags: ["autodocs"],
12
+ argTypes: {
13
+ min: {
14
+ control: "number",
15
+ },
16
+ max: {
17
+ control: "number",
18
+ },
19
+ trackClassName: {
20
+ type: "string",
21
+ },
22
+ rangeClassName: {
23
+ type: "string",
24
+ },
25
+ thumbClassName: {
26
+ type: "string",
27
+ },
28
+ },
29
+ } as Meta<typeof ShadSlider>;
30
+
31
+ const Template: StoryTemplate = (args) => {
32
+ return <NxSlideRange {...args} />;
33
+ };
34
+
35
+ export const Default: StoryComponent = {
36
+ parameters: {
37
+ docs: {
38
+ description: {
39
+ story: "",
40
+ },
41
+ },
42
+ },
43
+ args: { min: 0, max: 100 },
44
+ render: Template,
45
+ };
@@ -0,0 +1,27 @@
1
+ import type { Meta, StoryObj, StoryFn } from "@storybook/react";
2
+ import NxSwitch from "@nexus/components/shared/inputs/NxSwitch";
3
+
4
+ type StoryComponent = StoryObj<typeof NxSwitch>;
5
+ type StoryTemplate = StoryFn<typeof NxSwitch>;
6
+
7
+ // More on how to set up stories at: https://storybook.js.org/docs/react/writing-stories/introduction
8
+ export default {
9
+ component: NxSwitch,
10
+ tags: ["autodocs"],
11
+ } as Meta<typeof NxSwitch>;
12
+
13
+ const Template: StoryTemplate = (args) => {
14
+ return <NxSwitch {...args} />;
15
+ };
16
+
17
+ export const Default: StoryComponent = {
18
+ parameters: {
19
+ docs: {
20
+ description: {
21
+ story: "",
22
+ },
23
+ },
24
+ },
25
+ args: {},
26
+ render: Template,
27
+ };
@@ -0,0 +1,48 @@
1
+ import type { Meta, StoryObj, StoryFn } from "@storybook/react";
2
+ import NxTextArea from "@nexus/components/shared/inputs/NxTextArea";
3
+ import { TextArea } from "@sb/index";
4
+
5
+ type StoryComponent = StoryObj<typeof TextArea>;
6
+ type StoryTemplate = StoryFn<typeof NxTextArea>;
7
+
8
+ // More on how to set up stories at: https://storybook.js.org/docs/react/writing-stories/introduction
9
+ export default {
10
+ component: NxTextArea,
11
+ tags: ["autodocs"],
12
+ argTypes: {
13
+ maxLength: {
14
+ type: "number",
15
+ },
16
+ error: {
17
+ type: "boolean",
18
+ },
19
+ info: {
20
+ type: "boolean",
21
+ },
22
+ handleChange: {
23
+ action: "onChange",
24
+ description: "값이 변경될 때 호출되는 함수",
25
+ table: {
26
+ type: {
27
+ summary: `(value: string, name?: string) => void`,
28
+ },
29
+ },
30
+ },
31
+ },
32
+ } as Meta<typeof TextArea>;
33
+
34
+ const Template: StoryTemplate = (args) => {
35
+ return <NxTextArea {...args} />;
36
+ };
37
+
38
+ export const Default: StoryComponent = {
39
+ parameters: {
40
+ docs: {
41
+ description: {
42
+ story: "",
43
+ },
44
+ },
45
+ },
46
+ args: {},
47
+ render: Template,
48
+ };