@rainbow-robotics/muscat-plugin-kit 0.1.2-dev.9 → 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,17 @@
1
+ import{j as u}from"./jsx-runtime-BTJTZTIL.js";import{r as o}from"./index-Dmy2JGbm.js";import{L as p}from"./SideNumberInput-BYlmNHEw.js";import"./react-resizable-panels.browser-DuxpZLkF.js";import"./index-DKFBREX_.js";import"./index-CT3U1fyk.js";import"./index-ChsGqxH_.js";import"./browserUtils-CQM9Za7e.js";import"./index-BRq5TIsn.js";const E={component:p,tags:["autodocs"]},d=e=>{const[m,t]=o.useState(e.currPage??1);return o.useEffect(()=>{t(e.currPage??1)},[e.currPage]),u.jsx(p,{...e,currPage:m,handlePageChange:a=>{var n;t(a),(n=e.handlePageChange)==null||n.call(e,a)}})},r={parameters:{docs:{description:{story:""}}},args:{currPage:1,listSize:1,pageSize:10,totalCount:100,handlePageChange:()=>{}},render:d};var s,i,c;r.parameters={...r.parameters,docs:{...(s=r.parameters)==null?void 0:s.docs,source:{originalSource:`{
2
+ parameters: {
3
+ docs: {
4
+ description: {
5
+ story: ""
6
+ }
7
+ }
8
+ },
9
+ args: {
10
+ currPage: 1,
11
+ listSize: 1,
12
+ pageSize: 10,
13
+ totalCount: 100,
14
+ handlePageChange: () => {}
15
+ },
16
+ render: Template
17
+ }`,...(c=(i=r.parameters)==null?void 0:i.docs)==null?void 0:c.source}}};const j=["Default"];export{r as Default,j as __namedExportsOrder,E as default};
@@ -0,0 +1,11 @@
1
+ import{j as e}from"./jsx-runtime-BTJTZTIL.js";import{az as c,aA as a,aB as i,aC as m}from"./SideNumberInput-BYlmNHEw.js";import"./index-Dmy2JGbm.js";import"./react-resizable-panels.browser-DuxpZLkF.js";import"./index-DKFBREX_.js";import"./index-CT3U1fyk.js";import"./index-ChsGqxH_.js";import"./browserUtils-CQM9Za7e.js";import"./index-BRq5TIsn.js";const B={component:a,tags:["autodocs"],args:{place:"bottom-center",arrow:!1},argTypes:{place:{control:"select",options:c},arrow:{control:"boolean"}}},d=({place:n,arrow:p})=>e.jsx("div",{className:"flex items-center justify-center overflow-hidden",children:e.jsxs(a,{children:[e.jsx(i,{asChild:!0,children:e.jsx("button",{className:"text-fg-default border-danger border-1",children:"Open Popover"})}),e.jsx(m,{place:n,arrow:p,className:"text-fg-default py-2_5 min-h-32 min-w-64 px-3",children:"Popover Content"})]})}),r={parameters:{docs:{description:{story:""}}},args:{},render:d};var o,t,s;r.parameters={...r.parameters,docs:{...(o=r.parameters)==null?void 0:o.docs,source:{originalSource:`{
2
+ parameters: {
3
+ docs: {
4
+ description: {
5
+ story: ""
6
+ }
7
+ }
8
+ },
9
+ args: {},
10
+ render: Template
11
+ }`,...(s=(t=r.parameters)==null?void 0:t.docs)==null?void 0:s.source}}};const R=["Default"];export{r as Default,R as __namedExportsOrder,B as default};
@@ -0,0 +1,20 @@
1
+ import{j as r}from"./jsx-runtime-BTJTZTIL.js";import{r as l}from"./index-Dmy2JGbm.js";import{q as a,m as c}from"./SideNumberInput-BYlmNHEw.js";import"./react-resizable-panels.browser-DuxpZLkF.js";import"./index-DKFBREX_.js";import"./index-CT3U1fyk.js";import"./index-ChsGqxH_.js";import"./browserUtils-CQM9Za7e.js";import"./index-BRq5TIsn.js";const v={component:a,tags:["autodocs"]},i=p=>{const[m,e]=l.useState(!0);return r.jsxs("div",{children:[r.jsx(c,{size:"sm",variant:"solid",onClick:()=>e(!0),children:"Open Prompt"}),r.jsx(a,{...p,open:m,onOpenChange:e,resolve:()=>e(!1),close:()=>e(!1)})]})},t={parameters:{docs:{description:{story:""}}},args:{title:"Prompt Modal",content:"",placeholder:"Placeholder",value:"",buttonText:{yes:"Confirm",no:"Cancel"}},render:i};var o,n,s;t.parameters={...t.parameters,docs:{...(o=t.parameters)==null?void 0:o.docs,source:{originalSource:`{
2
+ parameters: {
3
+ docs: {
4
+ description: {
5
+ story: ""
6
+ }
7
+ }
8
+ },
9
+ args: {
10
+ title: "Prompt Modal",
11
+ content: "",
12
+ placeholder: "Placeholder",
13
+ value: "",
14
+ buttonText: {
15
+ yes: "Confirm",
16
+ no: "Cancel"
17
+ }
18
+ },
19
+ render: Template
20
+ }`,...(s=(n=t.parameters)==null?void 0:n.docs)==null?void 0:s.source}}};const y=["Default"];export{t as Default,y as __namedExportsOrder,v as default};
@@ -0,0 +1 @@
1
+ import{j as t}from"./jsx-runtime-BTJTZTIL.js";import{r as x}from"./index-Dmy2JGbm.js";import{x as m}from"./SideNumberInput-BYlmNHEw.js";import"./react-resizable-panels.browser-DuxpZLkF.js";import"./index-DKFBREX_.js";import"./index-CT3U1fyk.js";import"./index-ChsGqxH_.js";import"./browserUtils-CQM9Za7e.js";import"./index-BRq5TIsn.js";const h=e=>{const i=[1,2,3,4],[s,d]=x.useState(),p=(o,u)=>{var r;d(o),(r=e.handleChange)==null||r.call(e,o,u)};return t.jsxs("div",{className:"space-y-3",children:[t.jsx("div",{className:"flex flex-col gap-4",children:i.map(o=>t.jsx(m,{...e,name:e.name??"rb-radio-demo",checkValue:o,value:s,handleChange:p,children:`${e.children??"Radio Button Dummy Text"} ${o}`},o))}),t.jsxs("div",{className:"text-fg-default text-xs",children:["DATA: ",String(s??"")]})]})},g={component:m,tags:["autodocs"],argTypes:{size:{control:{type:"select"},options:["sm","md"],table:{type:{summary:'"sm" | "md"'}}},disabled:{control:{type:"boolean"}},children:{control:{type:"text"}},checkValue:{control:!1},value:{control:!1},handleChange:{control:!1}},args:{size:"sm",disabled:!1,children:"Radio Button Dummy Text",name:"rb-radio-demo",checkValue:"option-1"},render:h},a={};var l,c,n;a.parameters={...a.parameters,docs:{...(l=a.parameters)==null?void 0:l.docs,source:{originalSource:"{}",...(n=(c=a.parameters)==null?void 0:c.docs)==null?void 0:n.source}}};const k=["Default"];export{a as Default,k as __namedExportsOrder,g as default};
@@ -0,0 +1,11 @@
1
+ import{j as e}from"./jsx-runtime-BTJTZTIL.js";import{r as p}from"./index-Dmy2JGbm.js";import{y as l}from"./SideNumberInput-BYlmNHEw.js";import"./react-resizable-panels.browser-DuxpZLkF.js";import"./index-DKFBREX_.js";import"./index-CT3U1fyk.js";import"./index-ChsGqxH_.js";import"./browserUtils-CQM9Za7e.js";import"./index-BRq5TIsn.js";const c=i=>{const d=[1,2,3,4],[r,m]=p.useState();return e.jsxs("div",{className:"flex flex-col gap-3",children:[e.jsx("div",{className:"flex flex-col gap-2",children:d.map(t=>e.jsx(l,{...i,name:"rb-radio-button-demo",checkValue:String(t),value:r,handleChange:m,children:`버튼 라벨 ${t}`},t))}),e.jsxs("div",{className:"text-fg-default text-xs",children:["DATA: ",String(r??"")]})]})},R={component:l,tags:["autodocs"],argTypes:{size:{control:{type:"select"},options:["sm","md"],table:{type:{summary:'"sm" | "md"'}}},disabled:{control:{type:"boolean"}},children:{control:!1},name:{control:!1},checkValue:{control:!1},value:{control:!1},handleChange:{control:!1}},args:{size:"sm",disabled:!1},render:c},s={parameters:{docs:{description:{story:""}}},args:{},render:c};var o,a,n;s.parameters={...s.parameters,docs:{...(o=s.parameters)==null?void 0:o.docs,source:{originalSource:`{
2
+ parameters: {
3
+ docs: {
4
+ description: {
5
+ story: ""
6
+ }
7
+ }
8
+ },
9
+ args: {},
10
+ render: Template
11
+ }`,...(n=(a=s.parameters)==null?void 0:a.docs)==null?void 0:n.source}}};const B=["Default"];export{s as Default,B as __namedExportsOrder,R as default};
@@ -0,0 +1,15 @@
1
+ import{j as o}from"./jsx-runtime-BTJTZTIL.js";import{n as a}from"./SideNumberInput-BYlmNHEw.js";import"./index-Dmy2JGbm.js";import"./react-resizable-panels.browser-DuxpZLkF.js";import"./index-DKFBREX_.js";import"./index-CT3U1fyk.js";import"./index-ChsGqxH_.js";import"./browserUtils-CQM9Za7e.js";import"./index-BRq5TIsn.js";const h={component:a,tags:["autodocs"],argTypes:{size:{control:{type:"select"},options:["xs2","sm","md","lg"],table:{type:{summary:'"xs2" | "sm" | "md" | "lg"'}}},showPresets:{control:"boolean"},showFooter:{control:"boolean"},min:{control:"date"},max:{control:"date"},maxDays:{control:{type:"number",min:0,step:1},description:"선택 가능한 최대 일수. 0은 제한 없음."}},args:{maxDays:0}},m=e=>o.jsx("div",{style:{height:700},children:o.jsx(a,{...e,min:e.min!=null?new Date(e.min):void 0,max:e.max!=null?new Date(e.max):void 0,maxDays:(e.maxDays??0)>0?e.maxDays:void 0})}),t={parameters:{docs:{description:{story:""}}},args:{size:"md",showPresets:!0,showFooter:!0},render:m};var r,s,n;t.parameters={...t.parameters,docs:{...(r=t.parameters)==null?void 0:r.docs,source:{originalSource:`{
2
+ parameters: {
3
+ docs: {
4
+ description: {
5
+ story: ""
6
+ }
7
+ }
8
+ },
9
+ args: {
10
+ size: "md",
11
+ showPresets: true,
12
+ showFooter: true
13
+ },
14
+ render: Template
15
+ }`,...(n=(s=t.parameters)==null?void 0:s.docs)==null?void 0:n.source}}};const w=["Default"];export{t as Default,w as __namedExportsOrder,h as default};
@@ -0,0 +1,20 @@
1
+ import{j as e}from"./jsx-runtime-BTJTZTIL.js";import{aD as t,aE as s,aF as c}from"./SideNumberInput-BYlmNHEw.js";import"./index-Dmy2JGbm.js";import"./react-resizable-panels.browser-DuxpZLkF.js";import"./index-DKFBREX_.js";import"./index-CT3U1fyk.js";import"./index-ChsGqxH_.js";import"./browserUtils-CQM9Za7e.js";import"./index-BRq5TIsn.js";const j={tags:["autodocs"],component:t,parameters:{layout:"centered"},argTypes:{direction:{control:"select",options:["horizontal","vertical"]}}},i="flex h-full items-center justify-center text-base font-medium text-fg-default",a={args:{direction:"horizontal"},render:({direction:o})=>e.jsx("div",{className:"relative h-[520px] w-[520px] overflow-hidden p-5",children:e.jsx("div",{className:"flex h-full items-center justify-center",children:e.jsxs(t,{direction:o,className:"h-[480px] w-[480px]",children:[e.jsx(s,{children:e.jsx("div",{className:i,children:"One"})}),e.jsx(c,{}),e.jsx(s,{children:e.jsx("div",{className:i,children:"Two"})})]})})})};var n,r,l;a.parameters={...a.parameters,docs:{...(n=a.parameters)==null?void 0:n.docs,source:{originalSource:`{
2
+ args: {
3
+ direction: "horizontal"
4
+ },
5
+ render: ({
6
+ direction
7
+ }) => <div className="relative h-[520px] w-[520px] overflow-hidden p-5">
8
+ <div className="flex h-full items-center justify-center">
9
+ <RBResizable direction={direction} className="h-[480px] w-[480px]">
10
+ <RBResizablePanel>
11
+ <div className={panelBaseClassName}>One</div>
12
+ </RBResizablePanel>
13
+ <RBResizableHandle />
14
+ <RBResizablePanel>
15
+ <div className={panelBaseClassName}>Two</div>
16
+ </RBResizablePanel>
17
+ </RBResizable>
18
+ </div>
19
+ </div>
20
+ }`,...(l=(r=a.parameters)==null?void 0:r.docs)==null?void 0:l.source}}};const z=["Overview"];export{a as Overview,z as __namedExportsOrder,j as default};
@@ -0,0 +1,74 @@
1
+ import{j as t}from"./jsx-runtime-BTJTZTIL.js";import{w as d,u as c,a as p,e as n}from"./index-ClAc6FBW.js";import{z as b,B as w,V as g}from"./SideNumberInput-BYlmNHEw.js";import"./index-Dmy2JGbm.js";import"./react-resizable-panels.browser-DuxpZLkF.js";import"./index-DKFBREX_.js";import"./index-CT3U1fyk.js";import"./index-ChsGqxH_.js";import"./browserUtils-CQM9Za7e.js";import"./index-BRq5TIsn.js";const N=Array.from({length:40},(e,o)=>({value:`option-${o+1}`,label:`옵션 ${o+1}`})),H=e=>t.jsx("div",{className:"min-h-80 overflow-visible",children:t.jsx(b,{...e,className:"w-96",children:N.map(({value:o,label:a})=>t.jsx(w,{value:o,children:a},o))})}),O=e=>t.jsx("div",{className:"min-h-80 overflow-visible",children:t.jsxs(b,{...e,className:"w-96",children:[t.jsx(w,{value:"option-1",label:"옵션 1",className:"h-12",children:t.jsxs(g,{children:["옵션 1",t.jsx("span",{className:"typo-compact-xs-normal",children:"Additional Information goes here"})]})}),t.jsx(w,{value:"option-2",label:"옵션 2",className:"h-12",children:t.jsxs(g,{children:["옵션 2",t.jsx("span",{className:"typo-compact-xs-normal",children:"Additional Information goes here"})]})}),t.jsx(w,{value:"option-3",label:"옵션 3",disabled:!0,className:"h-12",children:t.jsxs(g,{children:["옵션 3",t.jsx("span",{className:"typo-compact-xs-normal",children:"Additional Information goes here"})]})})]})}),z={component:b,tags:["autodocs"],parameters:{layout:"padded"},argTypes:{size:{control:{type:"select"},options:["xs2","sm","md","lg"]},maxDropBoxHeight:{control:{type:"number"}},disabled:{control:{type:"boolean"}},readOnly:{control:{type:"boolean"}},search:{control:{type:"boolean"}},keepDropDown:{control:{type:"boolean"}},showCloseBtn:{control:{type:"boolean"}},whenScrollCloseDropBox:{control:{type:"boolean"}},enableModal:{control:{type:"boolean"}},error:{control:{type:"boolean"}},searchPlaceholder:{control:{type:"text"}},mobileLabel:{control:{type:"text"}},placeholder:{control:{type:"text"}},selectArrow:{control:!1,table:{disable:!0}},noDataMsg:{control:!1,table:{disable:!0}},onClick:{action:!1,control:!1,table:{disable:!0}},onChange:{action:"onChange",control:!1},handleChange:{action:"handleChange",control:!1}},args:{size:"md",maxDropBoxHeight:200,disabled:!1,readOnly:!1,placeholder:"placeholder",search:!1,keepDropDown:!1,showCloseBtn:!1,whenScrollCloseDropBox:!1,enableModal:!1,error:!1,searchPlaceholder:"Search",onClick:void 0},render:H},B=()=>new Promise(e=>setTimeout(e,350)),u={play:async({canvasElement:e})=>{const o=d(e),a=e.ownerDocument;await B(),await c.click(o.getByText("placeholder"));const l=await p(()=>{const s=a.querySelector('[data-slot="select-drop-box"]');if(!s)throw new Error("drop box not opened");return s}),y=d(l).getByText("옵션 3");await c.click(y),await p(()=>{var s;n((s=e.querySelector('[data-slot="select-box-value"] span'))==null?void 0:s.textContent).toBe("옵션 3"),n(a.querySelector('[data-slot="select-drop-box"]')).toBeNull()})}},m={args:{value:"option-2"},render:O,play:async({canvasElement:e})=>{const o=d(e),a=e.ownerDocument,l=()=>{var r;return(r=e.querySelector('[data-slot="select-box-value"] span'))==null?void 0:r.textContent};await B(),await c.click(o.getByText("옵션 2"));const y=await p(()=>{const r=a.querySelector('[data-slot="select-drop-box"]');if(!r)throw new Error("drop box not opened");return r}),s=d(y).getAllByRole("button"),x=s.find(r=>{var i;return(i=r.textContent)==null?void 0:i.startsWith("옵션 3")});n(x==null?void 0:x.textContent).toContain("Additional Information goes here"),await c.click(x),n(l()).toBe("옵션 2"),n(a.querySelector('[data-slot="select-drop-box"]')).not.toBeNull();const j=s.find(r=>{var i;return(i=r.textContent)==null?void 0:i.startsWith("옵션 1")});await c.click(j),await p(()=>{n(l()).toBe("옵션 1"),n(a.querySelector('[data-slot="select-drop-box"]')).toBeNull()})}},h={args:{maxDropBoxHeight:120},play:async({canvasElement:e})=>{const o=d(e);await B(),await c.click(o.getByText("placeholder"));const a=e.ownerDocument;await p(()=>{const l=a.querySelector('[data-slot="select-drop-box"]');n(l).toBeTruthy(),n(l.getBoundingClientRect().height).toBeLessThanOrEqual(121)})}};var f,v,T;u.parameters={...u.parameters,docs:{...(f=u.parameters)==null?void 0:f.docs,source:{originalSource:`{
2
+ play: async ({
3
+ canvasElement
4
+ }) => {
5
+ const canvas = within(canvasElement);
6
+ const doc = canvasElement.ownerDocument;
7
+ await waitPastClickGuard();
8
+ await userEvent.click(canvas.getByText("placeholder"));
9
+ const dropBox = await waitFor(() => {
10
+ const el = doc.querySelector('[data-slot="select-drop-box"]');
11
+ if (!el) throw new Error("drop box not opened");
12
+ return el as HTMLElement;
13
+ });
14
+ const option = within(dropBox).getByText("옵션 3");
15
+ await userEvent.click(option);
16
+ await waitFor(() => {
17
+ expect(canvasElement.querySelector('[data-slot="select-box-value"] span')?.textContent).toBe("옵션 3");
18
+ expect(doc.querySelector('[data-slot="select-drop-box"]')).toBeNull();
19
+ });
20
+ }
21
+ }`,...(T=(v=u.parameters)==null?void 0:v.docs)==null?void 0:T.source}}};var C,E,S;m.parameters={...m.parameters,docs:{...(C=m.parameters)==null?void 0:C.docs,source:{originalSource:`{
22
+ args: {
23
+ value: "option-2"
24
+ },
25
+ render: HasInfoListTemplate,
26
+ play: async ({
27
+ canvasElement
28
+ }) => {
29
+ const canvas = within(canvasElement);
30
+ const doc = canvasElement.ownerDocument;
31
+ // DropBox가 열려있을 때는 옵션 목록에도 같은 라벨 텍스트가 존재해
32
+ // canvas.getByText가 trigger와 옵션을 동시에 매칭해버리므로, trigger는
33
+ // select-box-value 슬롯을 직접 조회해 값이 바뀌었는지 확인한다
34
+ const getTriggerText = () => canvasElement.querySelector('[data-slot="select-box-value"] span')?.textContent;
35
+ await waitPastClickGuard();
36
+ await userEvent.click(canvas.getByText("옵션 2"));
37
+ const dropBox = await waitFor(() => {
38
+ const el = doc.querySelector('[data-slot="select-drop-box"]');
39
+ if (!el) throw new Error("drop box not opened");
40
+ return el as HTMLElement;
41
+ });
42
+ const optionEls = within(dropBox).getAllByRole("button");
43
+ const disabledOption = optionEls.find(el => el.textContent?.startsWith("옵션 3"));
44
+ expect(disabledOption?.textContent).toContain("Additional Information goes here");
45
+
46
+ // disabled 옵션은 클릭해도 선택이 바뀌지 않고 DropBox도 닫히지 않음
47
+ await userEvent.click(disabledOption!);
48
+ expect(getTriggerText()).toBe("옵션 2");
49
+ expect(doc.querySelector('[data-slot="select-drop-box"]')).not.toBeNull();
50
+ const enabledOption = optionEls.find(el => el.textContent?.startsWith("옵션 1"));
51
+ await userEvent.click(enabledOption!);
52
+ await waitFor(() => {
53
+ expect(getTriggerText()).toBe("옵션 1");
54
+ expect(doc.querySelector('[data-slot="select-drop-box"]')).toBeNull();
55
+ });
56
+ }
57
+ }`,...(S=(E=m.parameters)==null?void 0:E.docs)==null?void 0:S.source}}};var D,k,q;h.parameters={...h.parameters,docs:{...(D=h.parameters)==null?void 0:D.docs,source:{originalSource:`{
58
+ args: {
59
+ maxDropBoxHeight: 120
60
+ },
61
+ play: async ({
62
+ canvasElement
63
+ }) => {
64
+ const canvas = within(canvasElement);
65
+ await waitPastClickGuard();
66
+ await userEvent.click(canvas.getByText("placeholder"));
67
+ const doc = canvasElement.ownerDocument;
68
+ await waitFor(() => {
69
+ const dropBox = doc.querySelector('[data-slot="select-drop-box"]') as HTMLElement;
70
+ expect(dropBox).toBeTruthy();
71
+ expect(dropBox.getBoundingClientRect().height).toBeLessThanOrEqual(121);
72
+ });
73
+ }
74
+ }`,...(q=(k=h.parameters)==null?void 0:k.docs)==null?void 0:q.source}}};const V=["Default","HasInfoList","MaxDropBoxHeight"];export{u as Default,m as HasInfoList,h as MaxDropBoxHeight,V as __namedExportsOrder,z as default};
@@ -0,0 +1,39 @@
1
+ import{j as e}from"./jsx-runtime-BTJTZTIL.js";import"./index-Dmy2JGbm.js";import{aG as c,aH as d,aI as m,m as a,aJ as h,aK as u,aL as B,V as p,F as l,u as n,aM as x}from"./SideNumberInput-BYlmNHEw.js";import"./index-DKFBREX_.js";import"./index-CT3U1fyk.js";import"./react-resizable-panels.browser-DuxpZLkF.js";import"./index-ChsGqxH_.js";import"./browserUtils-CQM9Za7e.js";import"./index-BRq5TIsn.js";const v={tags:["autodocs"],argTypes:{showCloseButton:{control:"boolean"},side:{control:{type:"select"},options:["right","left","bottom","top"]}},args:{showCloseButton:!0,side:"right"},component:c},s={render:t=>e.jsx("div",{children:e.jsxs(d,{defaultOpen:!0,children:[e.jsx(m,{asChild:!0,children:e.jsx(a,{size:"sm",variant:"solid",children:"Open Sheet"})}),e.jsxs(c,{...t,className:t.side==="top"||t.side==="bottom"?"w-full":"w-96",children:[e.jsxs(h,{children:[e.jsx(u,{children:"Edit profile"}),e.jsx(B,{children:"Make changes to your profile here. Click save when you're done."})]}),e.jsxs(p,{className:"flex-1 gap-6",children:[e.jsx(l,{label:"Name",required:!0,className:"gap-1_5 flex flex-col",children:e.jsx(n,{size:"sm",className:"w-full"})}),e.jsx(l,{label:"Username",required:!0,className:"flex flex-col gap-1.5",children:e.jsx(n,{size:"sm",className:"w-full"})})]}),e.jsxs(x,{children:[e.jsx(a,{size:"sm",variant:"solid",className:"w-full",children:"Save changes"}),e.jsx(a,{size:"sm",variant:"outlined",className:"w-full",children:"Cancel"})]})]})]})})};var r,o,i;s.parameters={...s.parameters,docs:{...(r=s.parameters)==null?void 0:r.docs,source:{originalSource:`{
2
+ render: args => <div>
3
+ <RBSheet defaultOpen>
4
+ <RBSheetTrigger asChild>
5
+ <RBLabelButton size="sm" variant="solid">
6
+ Open Sheet
7
+ </RBLabelButton>
8
+ </RBSheetTrigger>
9
+ <RBSheetContent {...args} className={args.side === "top" || args.side === "bottom" ? "w-full" : "w-96"}>
10
+ <RBSheetHeader>
11
+ <RBSheetTitle>Edit profile</RBSheetTitle>
12
+ <RBSheetDescription>
13
+ Make changes to your profile here. Click save when you&apos;re
14
+ done.
15
+ </RBSheetDescription>
16
+ </RBSheetHeader>
17
+
18
+ <VStack className="flex-1 gap-6">
19
+ <RBTextField label="Name" required className="gap-1_5 flex flex-col">
20
+ <RBTextInput size="sm" className="w-full" />
21
+ </RBTextField>
22
+
23
+ <RBTextField label="Username" required className="flex flex-col gap-1.5">
24
+ <RBTextInput size="sm" className="w-full" />
25
+ </RBTextField>
26
+ </VStack>
27
+
28
+ <RBSheetFooter>
29
+ <RBLabelButton size="sm" variant="solid" className="w-full">
30
+ Save changes
31
+ </RBLabelButton>
32
+ <RBLabelButton size="sm" variant="outlined" className="w-full">
33
+ Cancel
34
+ </RBLabelButton>
35
+ </RBSheetFooter>
36
+ </RBSheetContent>
37
+ </RBSheet>
38
+ </div>
39
+ }`,...(i=(o=s.parameters)==null?void 0:o.docs)==null?void 0:i.source}}};const C=["Playground"];export{s as Playground,C as __namedExportsOrder,v as default};
@@ -0,0 +1,5 @@
1
+ import{j as o}from"./jsx-runtime-BTJTZTIL.js";import{E as s,F as m}from"./SideNumberInput-BYlmNHEw.js";import"./index-Dmy2JGbm.js";import"./react-resizable-panels.browser-DuxpZLkF.js";import"./index-DKFBREX_.js";import"./index-CT3U1fyk.js";import"./index-ChsGqxH_.js";import"./browserUtils-CQM9Za7e.js";import"./index-BRq5TIsn.js";const d=r=>o.jsx(s,{...r}),N={component:s,tags:["autodocs"],argTypes:{size:{control:{type:"select"},options:["xs2","sm","md","lg"],table:{type:{summary:'"xs2" | "sm" | "md" | "lg"'}}},variant:{control:{type:"select"},options:["default","success"],table:{type:{summary:'"default" | "success"'}}},step:{control:{type:"number"}},increaseStep:{control:{type:"number"}},decreaseStep:{control:{type:"number"}},min:{control:{type:"number"}},max:{control:{type:"number"}},maxLength:{control:{type:"number"}},digit:{control:{type:"number"}},isDirect:{control:{type:"boolean"}},detectDobleClick:{control:{type:"boolean"}},type:{control:{type:"select"},options:["number","nx-number"]},disabled:{control:{type:"boolean"}},inputDisabled:{control:{type:"boolean"}},readOnly:{control:{type:"boolean"}}},args:{size:"md",variant:"default",defaultValue:.5,step:.1,isDirect:!0,detectDobleClick:!1},render:d},e={},t={render:r=>o.jsx(m,{label:"Node Name",description:"노드 이름을 입력하세요.",required:!0,helperText:"중복되지 않는 이름을 사용하세요.",helperTone:"default",children:o.jsx(s,{...r})})};var n,a,l;e.parameters={...e.parameters,docs:{...(n=e.parameters)==null?void 0:n.docs,source:{originalSource:"{}",...(l=(a=e.parameters)==null?void 0:a.docs)==null?void 0:l.source}}};var p,c,i;t.parameters={...t.parameters,docs:{...(p=t.parameters)==null?void 0:p.docs,source:{originalSource:`{
2
+ render: args => <RBTextField label="Node Name" description="노드 이름을 입력하세요." required helperText="중복되지 않는 이름을 사용하세요." helperTone="default">
3
+ <RBSideNumberInput {...args} />
4
+ </RBTextField>
5
+ }`,...(i=(c=t.parameters)==null?void 0:c.docs)==null?void 0:i.source}}};const S=["Default","WithTextField"];export{e as Default,t as WithTextField,S as __namedExportsOrder,N as default};
@@ -0,0 +1,5 @@
1
+ import{j as a}from"./jsx-runtime-BTJTZTIL.js";import"./index-Dmy2JGbm.js";import{aN as o,V as m}from"./SideNumberInput-BYlmNHEw.js";import"./index-DKFBREX_.js";import"./index-CT3U1fyk.js";import"./react-resizable-panels.browser-DuxpZLkF.js";import"./index-ChsGqxH_.js";import"./browserUtils-CQM9Za7e.js";import"./index-BRq5TIsn.js";const x={component:o,tags:["autodocs"],argTypes:{className:{control:!1,table:{disable:!0}},trackClassName:{control:!1,table:{disable:!0}},rangeClassName:{control:!1,table:{disable:!0}},thumbClassName:{control:!1,table:{disable:!0}},min:{control:{type:"number"}},max:{control:{type:"number"}},step:{control:{type:"number"}},disabled:{control:"boolean"},defaultValue:{control:{type:"object"}}},args:{min:0,max:100,step:1,disabled:!1,defaultValue:[64]}},e={render:l=>a.jsx(m,{className:"w-80 gap-4",children:a.jsx(o,{...l})})};var r,t,s;e.parameters={...e.parameters,docs:{...(r=e.parameters)==null?void 0:r.docs,source:{originalSource:`{
2
+ render: args => <VStack className="w-80 gap-4">
3
+ <RBSlider {...args} />
4
+ </VStack>
5
+ }`,...(s=(t=e.parameters)==null?void 0:t.docs)==null?void 0:s.source}}};const y=["Playground"];export{e as Playground,y as __namedExportsOrder,x as default};
@@ -0,0 +1,14 @@
1
+ import{j as n}from"./jsx-runtime-BTJTZTIL.js";import{b8 as o}from"./SideNumberInput-BYlmNHEw.js";import"./index-Dmy2JGbm.js";import"./react-resizable-panels.browser-DuxpZLkF.js";import"./index-DKFBREX_.js";import"./index-CT3U1fyk.js";import"./index-ChsGqxH_.js";import"./browserUtils-CQM9Za7e.js";import"./index-BRq5TIsn.js";const j={component:o,tags:["autodocs"]},m=a=>n.jsx(o,{...a}),r={parameters:{docs:{description:{story:""}}},args:{size:"1.5rem",className:"text-fg-default"},render:m};var e,t,s;r.parameters={...r.parameters,docs:{...(e=r.parameters)==null?void 0:e.docs,source:{originalSource:`{
2
+ parameters: {
3
+ docs: {
4
+ description: {
5
+ story: ""
6
+ }
7
+ }
8
+ },
9
+ args: {
10
+ size: "1.5rem",
11
+ className: "text-fg-default"
12
+ },
13
+ render: Template
14
+ }`,...(s=(t=r.parameters)==null?void 0:t.docs)==null?void 0:s.source}}};const R=["Default"];export{r as Default,R as __namedExportsOrder,j as default};
@@ -0,0 +1,65 @@
1
+ import{j as a}from"./jsx-runtime-BTJTZTIL.js";import{r as l}from"./index-Dmy2JGbm.js";import{aO as o,V as f,aP as C}from"./SideNumberInput-BYlmNHEw.js";import"./index-DKFBREX_.js";import"./index-CT3U1fyk.js";import"./react-resizable-panels.browser-DuxpZLkF.js";import"./index-ChsGqxH_.js";import"./browserUtils-CQM9Za7e.js";import"./index-BRq5TIsn.js";const v={component:o,tags:["autodocs"],argTypes:{checked:{control:!1,table:{disable:!0}},defaultChecked:{control:"boolean"},size:{control:{type:"select"},options:["default","sm"]},invalid:{control:"boolean"},disabled:{control:"boolean"}},args:{defaultChecked:!1,disabled:!1,invalid:!1,size:"default"}},n={render:function(e){const[c,t]=l.useState(!!e.defaultChecked);return l.useEffect(()=>{t(!!e.defaultChecked)},[e.defaultChecked]),a.jsx(f,{className:"w-80 gap-4",children:a.jsx(o,{...e,checked:c,onCheckedChange:t})})}},s={args:{controlPlacement:"start",defaultChecked:!1,description:"This is a switch description.",disabled:!1,invalid:!1,label:"Switch Text",size:"default",type:"default"},argTypes:{controlPlacement:{control:{type:"select"},options:["start","end"]},description:{control:"text"},descriptionClassName:{control:!1,table:{disable:!0}},label:{control:"text"},labelClassName:{control:!1,table:{disable:!0}},type:{control:{type:"select"},options:["default","box"]}},render:function(e){const[c,t]=l.useState(!!e.defaultChecked);return l.useEffect(()=>{t(!!e.defaultChecked)},[e.defaultChecked]),a.jsx(f,{className:"w-80 gap-4",children:a.jsx(C,{controlPlacement:e.controlPlacement,description:e.description,descriptionClassName:e.descriptionClassName,invalid:e.invalid,label:e.label,labelClassName:e.labelClassName,size:e.size,type:e.type,children:a.jsx(o,{checked:c,disabled:e.disabled,invalid:e.invalid,size:e.size,onCheckedChange:t})})})}};var d,r,i;n.parameters={...n.parameters,docs:{...(d=n.parameters)==null?void 0:d.docs,source:{originalSource:`{
2
+ render: function Render(args) {
3
+ const [checked, setChecked] = useState(Boolean(args.defaultChecked));
4
+ useEffect(() => {
5
+ setChecked(Boolean(args.defaultChecked));
6
+ }, [args.defaultChecked]);
7
+ return <VStack className="w-80 gap-4">
8
+ <RBSwitch {...args} checked={checked} onCheckedChange={setChecked} />
9
+ </VStack>;
10
+ }
11
+ }`,...(i=(r=n.parameters)==null?void 0:r.docs)==null?void 0:i.source}}};var p,h,u;s.parameters={...s.parameters,docs:{...(p=s.parameters)==null?void 0:p.docs,source:{originalSource:`{
12
+ args: {
13
+ controlPlacement: "start",
14
+ defaultChecked: false,
15
+ description: "This is a switch description.",
16
+ disabled: false,
17
+ invalid: false,
18
+ label: "Switch Text",
19
+ size: "default",
20
+ type: "default"
21
+ },
22
+ argTypes: {
23
+ controlPlacement: {
24
+ control: {
25
+ type: "select"
26
+ },
27
+ options: ["start", "end"]
28
+ },
29
+ description: {
30
+ control: "text"
31
+ },
32
+ descriptionClassName: {
33
+ control: false,
34
+ table: {
35
+ disable: true
36
+ }
37
+ },
38
+ label: {
39
+ control: "text"
40
+ },
41
+ labelClassName: {
42
+ control: false,
43
+ table: {
44
+ disable: true
45
+ }
46
+ },
47
+ type: {
48
+ control: {
49
+ type: "select"
50
+ },
51
+ options: ["default", "box"]
52
+ }
53
+ },
54
+ render: function Render(args) {
55
+ const [checked, setChecked] = useState(Boolean(args.defaultChecked));
56
+ useEffect(() => {
57
+ setChecked(Boolean(args.defaultChecked));
58
+ }, [args.defaultChecked]);
59
+ return <VStack className="w-80 gap-4">
60
+ <RBSwitchField controlPlacement={args.controlPlacement} description={args.description} descriptionClassName={args.descriptionClassName} invalid={args.invalid} label={args.label} labelClassName={args.labelClassName} size={args.size} type={args.type}>
61
+ <RBSwitch checked={checked} disabled={args.disabled} invalid={args.invalid} size={args.size} onCheckedChange={setChecked} />
62
+ </RBSwitchField>
63
+ </VStack>;
64
+ }
65
+ }`,...(u=(h=s.parameters)==null?void 0:h.docs)==null?void 0:u.source}}};const z=["Playground","WithText"];export{n as Playground,s as WithText,z as __namedExportsOrder,v as default};
@@ -0,0 +1 @@
1
+ import{j as u}from"./jsx-runtime-BTJTZTIL.js";import{r as y}from"./index-Dmy2JGbm.js";import{a$ as p}from"./SideNumberInput-BYlmNHEw.js";import"./react-resizable-panels.browser-DuxpZLkF.js";import"./index-DKFBREX_.js";import"./index-CT3U1fyk.js";import"./index-ChsGqxH_.js";import"./browserUtils-CQM9Za7e.js";import"./index-BRq5TIsn.js";const o=Array.from({length:8}).map((e,r)=>({key:r+1,label:"Menu"})),b=e=>{var a;const[r,i]=y.useState(e.activeKey??((a=o==null?void 0:o[0])==null?void 0:a.key)??1),d=(s,f)=>{var l;i(s),(l=e.handleChange)==null||l.call(e,s,f)};return u.jsx(p,{...e,activeKey:r,handleChange:d})},j={component:p,tags:["autodocs"],argTypes:{size:{control:{type:"select"},options:["sm","md","lg"],table:{type:{summary:'"sm" | "md" | "lg"'}}},tabItems:{control:!1},tabNavScrollRef:{control:!1},rippleOption:{control:!1},handleChange:{control:!1},onClick:{control:!1}},args:{size:"md",tabItems:o,slider:!0,swipeContent:!1,disabled:!1,destroyInactiveTabPanel:!0,activeKey:1},render:b},t={};var n,c,m;t.parameters={...t.parameters,docs:{...(n=t.parameters)==null?void 0:n.docs,source:{originalSource:"{}",...(m=(c=t.parameters)==null?void 0:c.docs)==null?void 0:m.source}}};const E=["Default"];export{t as Default,E as __namedExportsOrder,j as default};
@@ -0,0 +1,62 @@
1
+ import{j as e}from"./jsx-runtime-BTJTZTIL.js";import{r as w}from"./index-Dmy2JGbm.js";import{b0 as m,b1 as g,b2 as a,R as T,f,m as C,C as j,aO as k}from"./SideNumberInput-BYlmNHEw.js";import"./react-resizable-panels.browser-DuxpZLkF.js";import"./index-DKFBREX_.js";import"./index-CT3U1fyk.js";import"./index-ChsGqxH_.js";import"./browserUtils-CQM9Za7e.js";import"./index-BRq5TIsn.js";const I=[{name:"테스트1",number:1,role:"member",test:"test"},{name:"테스트2",number:2,role:"member",test:"test"},{name:"테스트3",number:3,role:"member",test:"test"}],O={component:m,tags:["autodocs"],args:{list:I,hideThead:!1,stickyThead:!1,loading:!1}},S=o=>e.jsx(m,{...o,className:"[&_[data-slot='table-head-cell']]:!bg-raised [&_[data-slot='table-cell']]:!bg-alt-2",children:({item:s,index:n})=>e.jsxs(g,{children:[e.jsx(a,{fieldId:"name",label:"Name",sortValue:s.name,children:e.jsx("span",{children:s.name})}),e.jsx(a,{fieldId:"number",label:"Number",children:e.jsx("span",{children:s.number})}),e.jsx(a,{fieldId:"role",label:"Role",children:e.jsx("span",{children:s.role})}),e.jsx(a,{fieldId:"test",label:"Test",align:"center",children:e.jsx("span",{children:s.test})})]},`row-${n}`)}),r={parameters:{docs:{description:{story:""}}},args:{},render:S},v=[{id:1,text:"Test1",badge:"Test",button:"Test",checked:!0,enabled:!0},{id:2,text:"Test2",badge:"Test",button:"Test",checked:!1,enabled:!1}],l={parameters:{docs:{description:{story:"RBTable 셀 안에 text, RBBadge, RBLabelButton, RBCheckBox, RBSwitch가 들어가는 예제입니다."}}},render:()=>{const[o,s]=w.useState(v);return e.jsx(m,{list:o,children:({item:n,index:b})=>e.jsxs(g,{children:[e.jsx(a,{fieldId:"text",label:"Text",sortValue:n.text,children:e.jsx("span",{children:n.text})}),e.jsx(a,{fieldId:"badge",label:"RBBadge",children:e.jsx(T,{color:"red",leadingIcon:e.jsx(f,{className:"size-3 shrink-0"}),numberVariant:"solid",type:"transparent",children:n.badge})}),e.jsx(a,{fieldId:"button",label:"RBButton",children:e.jsx(C,{size:"xs",variant:"soft",children:n.button})}),e.jsx(a,{fieldId:"checkbox",label:"RBCheckbox",children:e.jsx(j,{value:n.checked,handleChange:d=>{s(c=>c.map((t,i)=>i===b?{...t,checked:!!d}:t))}})}),e.jsx(a,{fieldId:"switch",label:"RBSwitch",align:"center",children:e.jsx(k,{checked:n.enabled,onCheckedChange:d=>{s(c=>c.map((t,i)=>i===b?{...t,enabled:d}:t))}})})]},`showcase-row-${n.id}`)})}};var B,h,x;r.parameters={...r.parameters,docs:{...(B=r.parameters)==null?void 0:B.docs,source:{originalSource:`{
2
+ parameters: {
3
+ docs: {
4
+ description: {
5
+ story: ""
6
+ }
7
+ }
8
+ },
9
+ args: {},
10
+ render: Template
11
+ }`,...(x=(h=r.parameters)==null?void 0:h.docs)==null?void 0:x.source}}};var u,R,p;l.parameters={...l.parameters,docs:{...(u=l.parameters)==null?void 0:u.docs,source:{originalSource:`{
12
+ parameters: {
13
+ docs: {
14
+ description: {
15
+ story: "RBTable 셀 안에 text, RBBadge, RBLabelButton, RBCheckBox, RBSwitch가 들어가는 예제입니다."
16
+ }
17
+ }
18
+ },
19
+ render: () => {
20
+ const [rows, setRows] = useState(showcaseList);
21
+ return <RBTable list={rows}>
22
+ {({
23
+ item,
24
+ index
25
+ }) => <RBTableRow key={\`showcase-row-\${item.id}\`}>
26
+ <RBTdColumn fieldId="text" label="Text" sortValue={item.text}>
27
+ <span>{item.text}</span>
28
+ </RBTdColumn>
29
+
30
+ <RBTdColumn fieldId="badge" label="RBBadge">
31
+ <RBBadge color="red" leadingIcon={<SvgDangerSolid className="size-3 shrink-0" />} numberVariant="solid" type="transparent">
32
+ {item.badge}
33
+ </RBBadge>
34
+ </RBTdColumn>
35
+
36
+ <RBTdColumn fieldId="button" label="RBButton">
37
+ <RBLabelButton size="xs" variant="soft">
38
+ {item.button}
39
+ </RBLabelButton>
40
+ </RBTdColumn>
41
+
42
+ <RBTdColumn fieldId="checkbox" label="RBCheckbox">
43
+ <RBCheckBox value={item.checked} handleChange={value => {
44
+ setRows(prev => prev.map((row, rowIndex) => rowIndex === index ? {
45
+ ...row,
46
+ checked: Boolean(value)
47
+ } : row));
48
+ }} />
49
+ </RBTdColumn>
50
+
51
+ <RBTdColumn fieldId="switch" label="RBSwitch" align="center">
52
+ <RBSwitch checked={item.enabled} onCheckedChange={checked => {
53
+ setRows(prev => prev.map((row, rowIndex) => rowIndex === index ? {
54
+ ...row,
55
+ enabled: checked
56
+ } : row));
57
+ }} />
58
+ </RBTdColumn>
59
+ </RBTableRow>}
60
+ </RBTable>;
61
+ }
62
+ }`,...(p=(R=l.parameters)==null?void 0:R.docs)==null?void 0:p.source}}};const q=["Default","CellExamples"];export{l as CellExamples,r as Default,q as __namedExportsOrder,O as default};
@@ -0,0 +1,11 @@
1
+ import{j as e}from"./jsx-runtime-BTJTZTIL.js";import{b1 as o,b0 as c,b2 as s,b3 as i}from"./SideNumberInput-BYlmNHEw.js";import"./index-Dmy2JGbm.js";import"./react-resizable-panels.browser-DuxpZLkF.js";import"./index-DKFBREX_.js";import"./index-CT3U1fyk.js";import"./index-ChsGqxH_.js";import"./browserUtils-CQM9Za7e.js";import"./index-BRq5TIsn.js";const m=[{name:"테스트1",number:1,role:"member",test:"test"}],_={component:o,tags:["autodocs"],args:{expendOpen:!1}},x=d=>e.jsx(c,{className:"[&_[data-slot='table-head-cell']]:bg-raised [&_[data-slot='table-cell']]:bg-alt-1",list:m,children:({item:r,index:p})=>e.jsxs(o,{...d,children:[e.jsx(s,{fieldId:"name",label:"Name",sortValue:r.name,expend:!0,children:e.jsx("span",{children:r.name})}),e.jsx(s,{fieldId:"number",label:"Number",expend:!0,children:e.jsx("span",{children:r.number})}),e.jsx(s,{fieldId:"role",label:"Role",expend:!0,children:e.jsx("span",{children:r.role})}),e.jsx(s,{fieldId:"test",label:"Test",align:"center",expend:!0,children:e.jsx("span",{children:r.test})}),e.jsx(i,{children:"RBTable Data Expend Test"})]},`row-${p}`)}),a={parameters:{docs:{description:{story:""}}},args:{},render:x};var t,n,l;a.parameters={...a.parameters,docs:{...(t=a.parameters)==null?void 0:t.docs,source:{originalSource:`{
2
+ parameters: {
3
+ docs: {
4
+ description: {
5
+ story: ""
6
+ }
7
+ }
8
+ },
9
+ args: {},
10
+ render: Template
11
+ }`,...(l=(n=a.parameters)==null?void 0:n.docs)==null?void 0:l.source}}};const E=["Default"];export{a as Default,E as __namedExportsOrder,_ as default};
@@ -0,0 +1,21 @@
1
+ import{j as a}from"./jsx-runtime-BTJTZTIL.js";import{aQ as s,aR as m,aS as e}from"./SideNumberInput-BYlmNHEw.js";import"./index-Dmy2JGbm.js";import"./react-resizable-panels.browser-DuxpZLkF.js";import"./index-DKFBREX_.js";import"./index-CT3U1fyk.js";import"./index-ChsGqxH_.js";import"./browserUtils-CQM9Za7e.js";import"./index-BRq5TIsn.js";const B={tags:["autodocs"],component:s,parameters:{layout:"centered"},argTypes:{size:{control:"select",options:["sm","xs"],table:{type:{summary:'"sm" | "xs"'}}},variant:{control:"select",options:["default","line"],table:{type:{summary:'"default" | "line"'}}},orientation:{control:"select",options:["horizontal","vertical"],description:"line variant 는 horizontal orientation 만 지원",table:{type:{summary:'"horizontal" | "vertical"'}}}}},t={args:{size:"sm",variant:"default",orientation:"horizontal"},render:({orientation:l,size:T,variant:r})=>{const b=r==="line"?"horizontal":l;return a.jsx(s,{defaultValue:"tab-1",variant:r,size:T,orientation:b,children:a.jsxs(m,{children:[a.jsx(e,{value:"tab-1",children:"Tabs Text"}),a.jsx(e,{value:"tab-2",children:"Tabs Text"}),a.jsx(e,{value:"tab-3",children:"Tabs Text"})]})})}};var n,o,i;t.parameters={...t.parameters,docs:{...(n=t.parameters)==null?void 0:n.docs,source:{originalSource:`{
2
+ args: {
3
+ size: "sm",
4
+ variant: "default",
5
+ orientation: "horizontal"
6
+ },
7
+ render: ({
8
+ orientation,
9
+ size,
10
+ variant
11
+ }) => {
12
+ const resolvedOrientation = variant === "line" ? "horizontal" : orientation;
13
+ return <RBTabs defaultValue="tab-1" variant={variant} size={size} orientation={resolvedOrientation}>
14
+ <RBTabsList>
15
+ <RBTabsTrigger value="tab-1">Tabs Text</RBTabsTrigger>
16
+ <RBTabsTrigger value="tab-2">Tabs Text</RBTabsTrigger>
17
+ <RBTabsTrigger value="tab-3">Tabs Text</RBTabsTrigger>
18
+ </RBTabsList>
19
+ </RBTabs>;
20
+ }
21
+ }`,...(i=(o=t.parameters)==null?void 0:o.docs)==null?void 0:i.source}}};const h=["Playground"];export{t as Playground,h as __namedExportsOrder,B as default};
@@ -0,0 +1,5 @@
1
+ import{j as t}from"./jsx-runtime-BTJTZTIL.js";import{G as a,F as n}from"./SideNumberInput-BYlmNHEw.js";import"./index-Dmy2JGbm.js";import"./react-resizable-panels.browser-DuxpZLkF.js";import"./index-DKFBREX_.js";import"./index-CT3U1fyk.js";import"./index-ChsGqxH_.js";import"./browserUtils-CQM9Za7e.js";import"./index-BRq5TIsn.js";const m=s=>t.jsx("div",{className:"bg-alt-2 py-10",children:t.jsx(a,{...s})}),B={component:a,tags:["autodocs"],argTypes:{variant:{control:{type:"select"},options:["default","success"],table:{type:{summary:'"default" | "success"'}}}},args:{variant:"default",disabled:!1,readOnly:!1},render:m},e={},r={render:s=>t.jsx(n,{label:"Description",description:"상세 설명을 입력하세요.",required:!0,helperText:"최대 500자까지 입력할 수 있습니다.",helperTone:"default",children:t.jsx(a,{...s,placeholder:"내용을 입력해주세요."})})};var o,i,l;e.parameters={...e.parameters,docs:{...(o=e.parameters)==null?void 0:o.docs,source:{originalSource:"{}",...(l=(i=e.parameters)==null?void 0:i.docs)==null?void 0:l.source}}};var p,d,c;r.parameters={...r.parameters,docs:{...(p=r.parameters)==null?void 0:p.docs,source:{originalSource:`{
2
+ render: args => <RBTextField label="Description" description="상세 설명을 입력하세요." required helperText="최대 500자까지 입력할 수 있습니다." helperTone="default">
3
+ <RBTextArea {...args} placeholder="내용을 입력해주세요." />
4
+ </RBTextField>
5
+ }`,...(c=(d=r.parameters)==null?void 0:d.docs)==null?void 0:c.source}}};const F=["Default","WithTextField"];export{e as Default,r as WithTextField,F as __namedExportsOrder,B as default};
@@ -0,0 +1,45 @@
1
+ import{j as e}from"./jsx-runtime-BTJTZTIL.js";import{F as s,u as v,z as w,B as i,E as I,G as N}from"./SideNumberInput-BYlmNHEw.js";import"./index-Dmy2JGbm.js";import"./react-resizable-panels.browser-DuxpZLkF.js";import"./index-DKFBREX_.js";import"./index-CT3U1fyk.js";import"./index-ChsGqxH_.js";import"./browserUtils-CQM9Za7e.js";import"./index-BRq5TIsn.js";const q={component:s,tags:["autodocs"],args:{label:"Node Name",description:"노드 이름을 입력하세요.",required:!1,helperText:"중복되지 않는 이름을 사용하세요.",helperTone:"default"},argTypes:{helperTone:{control:{type:"select"},options:["default","error","success"],table:{type:{summary:'"default" | "error" | "success"'}}}},decorators:[r=>e.jsx("div",{className:"w-[360px]",children:e.jsx(r,{})})]},t={render:r=>e.jsx(s,{...r,children:e.jsx(v,{placeholder:"node_053"})})},o={args:{label:"Description",description:"상세 설명을 입력하세요.",helperText:"최대 500자까지 입력할 수 있습니다."},render:r=>e.jsx(s,{...r,children:e.jsx(N,{placeholder:"내용을 입력해주세요."})})},n={args:{label:"Threshold",description:"숫자 값을 입력하세요.",helperText:"증가/감소 버튼으로도 조절할 수 있습니다."},render:r=>e.jsx(s,{...r,children:e.jsx(I,{value:"0.5",step:.1,isDirect:!0})})},a={args:{label:"Category",description:"옵션을 선택하세요.",helperText:"필요한 분류를 선택해주세요."},render:r=>e.jsx(s,{...r,children:e.jsxs(w,{placeholder:"카테고리 선택",children:[e.jsx(i,{value:"sensor",children:"Sensor"}),e.jsx(i,{value:"network",children:"Network"}),e.jsx(i,{value:"power",children:"Power"})]})})},l={args:{helperText:"이미 사용 중인 이름입니다.",helperTone:"error",required:!0},render:r=>e.jsx(s,{...r,children:e.jsx(v,{placeholder:"node_053"})})};var p,d,c;t.parameters={...t.parameters,docs:{...(p=t.parameters)==null?void 0:p.docs,source:{originalSource:`{
2
+ render: args => <RBTextField {...args}>
3
+ <RBTextInput placeholder="node_053" />
4
+ </RBTextField>
5
+ }`,...(c=(d=t.parameters)==null?void 0:d.docs)==null?void 0:c.source}}};var x,u,h;o.parameters={...o.parameters,docs:{...(x=o.parameters)==null?void 0:x.docs,source:{originalSource:`{
6
+ args: {
7
+ label: "Description",
8
+ description: "상세 설명을 입력하세요.",
9
+ helperText: "최대 500자까지 입력할 수 있습니다."
10
+ },
11
+ render: args => <RBTextField {...args}>
12
+ <RBTextArea placeholder="내용을 입력해주세요." />
13
+ </RBTextField>
14
+ }`,...(h=(u=o.parameters)==null?void 0:u.docs)==null?void 0:h.source}}};var m,T,g;n.parameters={...n.parameters,docs:{...(m=n.parameters)==null?void 0:m.docs,source:{originalSource:`{
15
+ args: {
16
+ label: "Threshold",
17
+ description: "숫자 값을 입력하세요.",
18
+ helperText: "증가/감소 버튼으로도 조절할 수 있습니다."
19
+ },
20
+ render: args => <RBTextField {...args}>
21
+ <RBSideNumberInput value="0.5" step={0.1} isDirect />
22
+ </RBTextField>
23
+ }`,...(g=(T=n.parameters)==null?void 0:T.docs)==null?void 0:g.source}}};var B,R,j;a.parameters={...a.parameters,docs:{...(B=a.parameters)==null?void 0:B.docs,source:{originalSource:`{
24
+ args: {
25
+ label: "Category",
26
+ description: "옵션을 선택하세요.",
27
+ helperText: "필요한 분류를 선택해주세요."
28
+ },
29
+ render: args => <RBTextField {...args}>
30
+ <RBSelectBox placeholder="카테고리 선택">
31
+ <Option value="sensor">Sensor</Option>
32
+ <Option value="network">Network</Option>
33
+ <Option value="power">Power</Option>
34
+ </RBSelectBox>
35
+ </RBTextField>
36
+ }`,...(j=(R=a.parameters)==null?void 0:R.docs)==null?void 0:j.source}}};var S,F,b;l.parameters={...l.parameters,docs:{...(S=l.parameters)==null?void 0:S.docs,source:{originalSource:`{
37
+ args: {
38
+ helperText: "이미 사용 중인 이름입니다.",
39
+ helperTone: "error",
40
+ required: true
41
+ },
42
+ render: args => <RBTextField {...args}>
43
+ <RBTextInput placeholder="node_053" />
44
+ </RBTextField>
45
+ }`,...(b=(F=l.parameters)==null?void 0:F.docs)==null?void 0:b.source}}};const C=["WithTextInput","WithTextArea","WithSideNumberInput","WithSelectBox","Error"];export{l as Error,a as WithSelectBox,n as WithSideNumberInput,o as WithTextArea,t as WithTextInput,C as __namedExportsOrder,q as default};
@@ -0,0 +1,5 @@
1
+ import{j as t}from"./jsx-runtime-BTJTZTIL.js";import{u as a,F as c}from"./SideNumberInput-BYlmNHEw.js";import"./index-Dmy2JGbm.js";import"./react-resizable-panels.browser-DuxpZLkF.js";import"./index-DKFBREX_.js";import"./index-CT3U1fyk.js";import"./index-ChsGqxH_.js";import"./browserUtils-CQM9Za7e.js";import"./index-BRq5TIsn.js";const m=s=>t.jsx("div",{className:"bg-alt-2 py-10",children:t.jsx(a,{...s})}),j={component:a,tags:["autodocs"],argTypes:{size:{control:{type:"select"},options:["xs2","sm","md","lg"],table:{type:{summary:'"xs2" | "sm" | "md" | "lg"'}}},variant:{control:{type:"select"},options:["default","success"],table:{type:{summary:'"default" | "success"'}}}},args:{variant:"default",disabled:!1,readOnly:!1},render:m},e={},r={render:s=>t.jsx(c,{label:"Node Name",description:"노드 이름을 입력하세요.",required:!0,helperText:"중복되지 않는 이름을 사용하세요.",helperTone:"default",children:t.jsx(a,{...s,placeholder:"node_053"})})};var o,l,d;e.parameters={...e.parameters,docs:{...(o=e.parameters)==null?void 0:o.docs,source:{originalSource:"{}",...(d=(l=e.parameters)==null?void 0:l.docs)==null?void 0:d.source}}};var p,i,n;r.parameters={...r.parameters,docs:{...(p=r.parameters)==null?void 0:p.docs,source:{originalSource:`{
2
+ render: args => <RBTextField label="Node Name" description="노드 이름을 입력하세요." required helperText="중복되지 않는 이름을 사용하세요." helperTone="default">
3
+ <RBTextInput {...args} placeholder="node_053" />
4
+ </RBTextField>
5
+ }`,...(n=(i=r.parameters)==null?void 0:i.docs)==null?void 0:n.source}}};const B=["Default","WithTextField"];export{e as Default,r as WithTextField,B as __namedExportsOrder,j as default};
@@ -0,0 +1,11 @@
1
+ import{j as e}from"./jsx-runtime-BTJTZTIL.js";import{r as p}from"./index-Dmy2JGbm.js";import{b4 as c,b5 as d,b6 as m}from"./SideNumberInput-BYlmNHEw.js";import"./react-resizable-panels.browser-DuxpZLkF.js";import"./index-DKFBREX_.js";import"./index-CT3U1fyk.js";import"./index-ChsGqxH_.js";import"./browserUtils-CQM9Za7e.js";import"./index-BRq5TIsn.js";const v={component:c,tags:["autodocs"],args:{position:"top-left",type:"basic",variant:"default",actionLabel:"",closeOnActionClick:!0},argTypes:{position:{control:{type:"select"},options:["top-center","top-left","top-right","bottom-center","bottom-left","bottom-right"]},variant:{control:{type:"select"},options:["default","danger","warning","caution","success","copy"]},type:{control:{type:"select"},options:["basic","alert"]},icon:{control:!1},actionLabel:{control:{type:"text"},description:"액션 버튼 라벨"},handleActionClick:{control:!1,description:"액션 버튼 클릭 시 실행할 함수"},closeOnActionClick:{control:{type:"boolean"},description:"액션 버튼 클릭 뒤 토스트를 닫을지 여부"}}},u=t=>{const[n,r]=p.useState(0),l=()=>{r(n+1),m.openToast({title:`Toast Title ${n}`,content:"This is a toast message long test long test long test long test long test long test.",icon:t.icon,actionLabel:t.actionLabel||void 0,handleActionClick:t.actionLabel?()=>console.info("toast action clicked"):void 0,closeOnActionClick:t.closeOnActionClick,type:t.type,variant:t.variant,position:t.position,duration:t.duration})};return e.jsxs("div",{className:"border-danger flex h-100 flex-col items-center justify-center border-1",children:[e.jsx(c,{position:t.position,duration:t.duration,toastComponent:d}),e.jsx("button",{onClick:l,className:"text-fg-default",children:"open toast"})]})},o={parameters:{docs:{description:{story:""}}},args:{},render:u};var s,i,a;o.parameters={...o.parameters,docs:{...(s=o.parameters)==null?void 0:s.docs,source:{originalSource:`{
2
+ parameters: {
3
+ docs: {
4
+ description: {
5
+ story: ""
6
+ }
7
+ }
8
+ },
9
+ args: {},
10
+ render: Template
11
+ }`,...(a=(i=o.parameters)==null?void 0:i.docs)==null?void 0:a.source}}};const j=["Default"];export{o as Default,j as __namedExportsOrder,v as default};
@@ -0,0 +1,12 @@
1
+ import{j as t}from"./jsx-runtime-BTJTZTIL.js";import{r as o}from"./index-Dmy2JGbm.js";import{aT as d,i as c}from"./SideNumberInput-BYlmNHEw.js";import"./react-resizable-panels.browser-DuxpZLkF.js";import"./index-DKFBREX_.js";import"./index-CT3U1fyk.js";import"./index-ChsGqxH_.js";import"./browserUtils-CQM9Za7e.js";import"./index-BRq5TIsn.js";const T={component:d,tags:["autodocs"],argTypes:{className:{control:!1,table:{disable:!0}},children:{control:!1,table:{disable:!0}},defaultPressed:{control:"boolean"},disabled:{control:"boolean"},onPressedChange:{control:!1,table:{disable:!0}},pressed:{control:!1,table:{disable:!0}},size:{control:{type:"select"},options:["default","sm","lg"]},variant:{control:{type:"select"},options:["default","outline"]}},args:{defaultPressed:!1,disabled:!1,size:"default",variant:"default"}},s={render:function(e){const[u,r]=o.useState(!!e.defaultPressed);return o.useEffect(()=>{r(!!e.defaultPressed)},[e.defaultPressed]),t.jsxs(d,{...e,pressed:u,onPressedChange:r,children:[t.jsx(c,{}),"Text"]})}};var a,n,l;s.parameters={...s.parameters,docs:{...(a=s.parameters)==null?void 0:a.docs,source:{originalSource:`{
2
+ render: function Render(args) {
3
+ const [pressed, setPressed] = useState(Boolean(args.defaultPressed));
4
+ useEffect(() => {
5
+ setPressed(Boolean(args.defaultPressed));
6
+ }, [args.defaultPressed]);
7
+ return <RBToggle {...args} pressed={pressed} onPressedChange={setPressed}>
8
+ <RBIcons.SvgPlusBold />
9
+ Text
10
+ </RBToggle>;
11
+ }
12
+ }`,...(l=(n=s.parameters)==null?void 0:n.docs)==null?void 0:l.source}}};const h=["Playground"];export{s as Playground,h as __namedExportsOrder,T as default};
@@ -0,0 +1,17 @@
1
+ import{j as e}from"./jsx-runtime-BTJTZTIL.js";import{r as u}from"./index-Dmy2JGbm.js";import{aU as i,aV as r,aW as p,aX as g,aY as m}from"./SideNumberInput-BYlmNHEw.js";import"./react-resizable-panels.browser-DuxpZLkF.js";import"./index-DKFBREX_.js";import"./index-CT3U1fyk.js";import"./index-ChsGqxH_.js";import"./browserUtils-CQM9Za7e.js";import"./index-BRq5TIsn.js";const V={component:i,tags:["autodocs"],parameters:{layout:"centered"},argTypes:{orientation:{control:"select",options:["horizontal","vertical"]},separated:{control:"boolean"},stretched:{control:"boolean"}},args:{orientation:"horizontal",separated:!1,stretched:!1}},t={args:{orientation:"horizontal",separated:!1,stretched:!1},render:function(a){const[c,d]=u.useState("left");return e.jsxs(i,{type:"single",orientation:a.orientation,separated:a.separated,stretched:a.stretched,value:c,onValueChange:o=>{o&&d(o)},className:a.stretched?"w-[360px]":void 0,children:[e.jsx(r,{value:"left","aria-label":"왼쪽 정렬",icon:e.jsx(p,{})}),e.jsx(r,{value:"center","aria-label":"가운데 정렬",icon:e.jsx(g,{})}),e.jsx(r,{value:"right","aria-label":"오른쪽 정렬",icon:e.jsx(m,{})})]})}};var n,s,l;t.parameters={...t.parameters,docs:{...(n=t.parameters)==null?void 0:n.docs,source:{originalSource:`{
2
+ args: {
3
+ orientation: "horizontal",
4
+ separated: false,
5
+ stretched: false
6
+ },
7
+ render: function Render(args) {
8
+ const [value, setValue] = useState<string>("left");
9
+ return <RBToggleGroup type="single" orientation={args.orientation} separated={args.separated} stretched={args.stretched} value={value} onValueChange={(nextValue: string) => {
10
+ if (nextValue) setValue(nextValue);
11
+ }} className={args.stretched ? "w-[360px]" : undefined}>
12
+ <RBToggleGroupItem value="left" aria-label="왼쪽 정렬" icon={<RBIcons.SvgListChecksBold />} />
13
+ <RBToggleGroupItem value="center" aria-label="가운데 정렬" icon={<RBIcons.SvgBulletSolid />} />
14
+ <RBToggleGroupItem value="right" aria-label="오른쪽 정렬" icon={<RBIcons.SvgBoardSolid />} />
15
+ </RBToggleGroup>;
16
+ }
17
+ }`,...(l=(s=t.parameters)==null?void 0:s.docs)==null?void 0:l.source}}};const G=["Playground"];export{t as Playground,G as __namedExportsOrder,V as default};
@@ -0,0 +1,9 @@
1
+ import{j as r}from"./jsx-runtime-BTJTZTIL.js";import{b7 as c}from"./SideNumberInput-BYlmNHEw.js";import"./index-Dmy2JGbm.js";import"./react-resizable-panels.browser-DuxpZLkF.js";import"./index-DKFBREX_.js";import"./index-CT3U1fyk.js";import"./index-ChsGqxH_.js";import"./browserUtils-CQM9Za7e.js";import"./index-BRq5TIsn.js";const e=0,b={component:c,tags:["autodocs"],argTypes:{place:{control:"radio",options:["top","left","bottom","right"],defaultValue:"bottom"},tooltipColor:{control:"color"},tooltipTextColor:{control:"color"}}},p=t=>r.jsxs("div",{className:"flex items-center justify-center p-30",children:[r.jsx("button",{className:"text-fg-default border-danger border-1",id:`${t.anchorId}${e}`,children:"Tooltip"}),r.jsx(c,{...t,anchorId:`${t.anchorId}${e}`})]}),o={args:{anchorId:"tooltip-anchor",children:"Tooltip Content",events:["hover"],place:"top"},render:p};var n,a,s;o.parameters={...o.parameters,docs:{...(n=o.parameters)==null?void 0:n.docs,source:{originalSource:`{
2
+ args: {
3
+ anchorId: "tooltip-anchor",
4
+ children: "Tooltip Content",
5
+ events: ["hover"],
6
+ place: "top"
7
+ },
8
+ render: Template
9
+ }`,...(s=(a=o.parameters)==null?void 0:a.docs)==null?void 0:s.source}}};const g=["Default"];export{o as Default,g as __namedExportsOrder,b as default};