@jigowatts/jigowatts-ui 1.2.2 → 2.1.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 (419) hide show
  1. package/dist/assets/index10.css +1 -1
  2. package/dist/assets/index11.css +1 -1
  3. package/dist/assets/index12.css +1 -1
  4. package/dist/assets/index13.css +1 -1
  5. package/dist/assets/index14.css +1 -1
  6. package/dist/assets/index15.css +1 -1
  7. package/dist/assets/index16.css +1 -1
  8. package/dist/assets/index17.css +1 -1
  9. package/dist/assets/index18.css +1 -1
  10. package/dist/assets/index19.css +1 -1
  11. package/dist/assets/index20.css +1 -1
  12. package/dist/assets/index21.css +1 -1
  13. package/dist/assets/index22.css +1 -1
  14. package/dist/assets/index23.css +1 -1
  15. package/dist/assets/index24.css +1 -1
  16. package/dist/assets/index25.css +1 -1
  17. package/dist/assets/index26.css +1 -1
  18. package/dist/assets/index27.css +1 -1
  19. package/dist/assets/index28.css +1 -1
  20. package/dist/assets/index29.css +1 -1
  21. package/dist/assets/index30.css +1 -1
  22. package/dist/assets/index31.css +1 -1
  23. package/dist/assets/index32.css +1 -1
  24. package/dist/assets/index7.css +1 -1
  25. package/dist/assets/index8.css +1 -1
  26. package/dist/assets/index9.css +1 -1
  27. package/dist/components/Button/index.cjs.js.map +1 -1
  28. package/dist/components/Button/index.es.js.map +1 -1
  29. package/dist/components/Button/index.test.cjs.js +1 -1
  30. package/dist/components/Button/index.test.cjs.js.map +1 -1
  31. package/dist/components/Button/index.test.es.js +1 -1
  32. package/dist/components/Button/index.test.es.js.map +1 -1
  33. package/dist/components/Card/index.cjs.js +1 -1
  34. package/dist/components/Card/index.cjs.js.map +1 -1
  35. package/dist/components/Card/index.es.js +1 -1
  36. package/dist/components/Card/index.es.js.map +1 -1
  37. package/dist/components/Card/index.test.cjs.js +1 -1
  38. package/dist/components/Card/index.test.cjs.js.map +1 -1
  39. package/dist/components/Card/index.test.es.js +1 -1
  40. package/dist/components/Card/index.test.es.js.map +1 -1
  41. package/dist/components/CardWithTitle/index.cjs.js +1 -1
  42. package/dist/components/CardWithTitle/index.cjs.js.map +1 -1
  43. package/dist/components/CardWithTitle/index.es.js +1 -1
  44. package/dist/components/CardWithTitle/index.es.js.map +1 -1
  45. package/dist/components/CardWithTitle/index.test.cjs.js +1 -1
  46. package/dist/components/CardWithTitle/index.test.cjs.js.map +1 -1
  47. package/dist/components/CardWithTitle/index.test.es.js +2 -2
  48. package/dist/components/CardWithTitle/index.test.es.js.map +1 -1
  49. package/dist/components/CopyableBox/index.cjs.js +2 -0
  50. package/dist/components/CopyableBox/index.cjs.js.map +1 -0
  51. package/dist/components/CopyableBox/index.d.ts +23 -0
  52. package/dist/components/CopyableBox/index.es.js +46 -0
  53. package/dist/components/CopyableBox/index.es.js.map +1 -0
  54. package/dist/components/CopyableBox/index.test.cjs.js +2 -0
  55. package/dist/components/CopyableBox/index.test.cjs.js.map +1 -0
  56. package/dist/components/CopyableBox/index.test.d.ts +1 -0
  57. package/dist/components/CopyableBox/index.test.es.js +39 -0
  58. package/dist/components/CopyableBox/index.test.es.js.map +1 -0
  59. package/dist/components/CustomLink/index.cjs.js +1 -1
  60. package/dist/components/CustomLink/index.cjs.js.map +1 -1
  61. package/dist/components/CustomLink/index.es.js +1 -1
  62. package/dist/components/CustomLink/index.es.js.map +1 -1
  63. package/dist/components/CustomLink/index.test.cjs.js +1 -1
  64. package/dist/components/CustomLink/index.test.cjs.js.map +1 -1
  65. package/dist/components/CustomLink/index.test.es.js +2 -2
  66. package/dist/components/CustomLink/index.test.es.js.map +1 -1
  67. package/dist/components/DataTable/index.cjs.js +1 -1
  68. package/dist/components/DataTable/index.cjs.js.map +1 -1
  69. package/dist/components/DataTable/index.es.js +1 -1
  70. package/dist/components/DataTable/index.es.js.map +1 -1
  71. package/dist/components/DataTable/index.test.cjs.js +1 -1
  72. package/dist/components/DataTable/index.test.cjs.js.map +1 -1
  73. package/dist/components/DataTable/index.test.es.js +3 -3
  74. package/dist/components/DataTable/index.test.es.js.map +1 -1
  75. package/dist/components/DatePickerController/index.cjs.js +1 -1
  76. package/dist/components/DatePickerController/index.cjs.js.map +1 -1
  77. package/dist/components/DatePickerController/index.d.ts +1 -0
  78. package/dist/components/DatePickerController/index.es.js +1 -1
  79. package/dist/components/DatePickerController/index.es.js.map +1 -1
  80. package/dist/components/DatePickerController/index.test.cjs.js +1 -1
  81. package/dist/components/DatePickerController/index.test.cjs.js.map +1 -1
  82. package/dist/components/DatePickerController/index.test.es.js +1 -1
  83. package/dist/components/DatePickerController/index.test.es.js.map +1 -1
  84. package/dist/components/ErrorMessage/index.cjs.js +1 -1
  85. package/dist/components/ErrorMessage/index.cjs.js.map +1 -1
  86. package/dist/components/ErrorMessage/index.es.js +1 -1
  87. package/dist/components/ErrorMessage/index.es.js.map +1 -1
  88. package/dist/components/ErrorMessage/index.test.cjs.js +1 -1
  89. package/dist/components/ErrorMessage/index.test.cjs.js.map +1 -1
  90. package/dist/components/ErrorMessage/index.test.es.js +2 -2
  91. package/dist/components/ErrorMessage/index.test.es.js.map +1 -1
  92. package/dist/components/EvseStateLabel/index.cjs.js +1 -1
  93. package/dist/components/EvseStateLabel/index.cjs.js.map +1 -1
  94. package/dist/components/EvseStateLabel/index.es.js +1 -1
  95. package/dist/components/EvseStateLabel/index.es.js.map +1 -1
  96. package/dist/components/FlexButtons/index.cjs.js +1 -1
  97. package/dist/components/FlexButtons/index.cjs.js.map +1 -1
  98. package/dist/components/FlexButtons/index.es.js +1 -1
  99. package/dist/components/FlexButtons/index.es.js.map +1 -1
  100. package/dist/components/FlexButtons/index.test.cjs.js +1 -1
  101. package/dist/components/FlexButtons/index.test.cjs.js.map +1 -1
  102. package/dist/components/FlexButtons/index.test.es.js +2 -2
  103. package/dist/components/FlexButtons/index.test.es.js.map +1 -1
  104. package/dist/components/Form/index.cjs.js +1 -1
  105. package/dist/components/Form/index.cjs.js.map +1 -1
  106. package/dist/components/Form/index.es.js +1 -1
  107. package/dist/components/Form/index.es.js.map +1 -1
  108. package/dist/components/Form/index.test.cjs.js +1 -1
  109. package/dist/components/Form/index.test.cjs.js.map +1 -1
  110. package/dist/components/Form/index.test.es.js +2 -2
  111. package/dist/components/Form/index.test.es.js.map +1 -1
  112. package/dist/components/FormItem/index.cjs.js +1 -1
  113. package/dist/components/FormItem/index.cjs.js.map +1 -1
  114. package/dist/components/FormItem/index.es.js +1 -1
  115. package/dist/components/FormItem/index.es.js.map +1 -1
  116. package/dist/components/FormItem/index.test.cjs.js +1 -1
  117. package/dist/components/FormItem/index.test.cjs.js.map +1 -1
  118. package/dist/components/FormItem/index.test.es.js +2 -2
  119. package/dist/components/FormItem/index.test.es.js.map +1 -1
  120. package/dist/components/FormTitle/index.cjs.js +1 -1
  121. package/dist/components/FormTitle/index.cjs.js.map +1 -1
  122. package/dist/components/FormTitle/index.es.js +1 -1
  123. package/dist/components/FormTitle/index.es.js.map +1 -1
  124. package/dist/components/FormTitle/index.test.cjs.js +1 -1
  125. package/dist/components/FormTitle/index.test.cjs.js.map +1 -1
  126. package/dist/components/FormTitle/index.test.es.js +2 -2
  127. package/dist/components/FormTitle/index.test.es.js.map +1 -1
  128. package/dist/components/HStack/index.cjs.js +1 -1
  129. package/dist/components/HStack/index.cjs.js.map +1 -1
  130. package/dist/components/HStack/index.es.js +1 -1
  131. package/dist/components/HStack/index.es.js.map +1 -1
  132. package/dist/components/HStack/index.test.cjs.js +1 -1
  133. package/dist/components/HStack/index.test.cjs.js.map +1 -1
  134. package/dist/components/HStack/index.test.es.js +2 -2
  135. package/dist/components/HStack/index.test.es.js.map +1 -1
  136. package/dist/components/HtmlRenderer/index.cjs.js +1 -1
  137. package/dist/components/HtmlRenderer/index.es.js +1 -1
  138. package/dist/components/HtmlRenderer/index.test.cjs.js +1 -1
  139. package/dist/components/HtmlRenderer/index.test.cjs.js.map +1 -1
  140. package/dist/components/HtmlRenderer/index.test.es.js +2 -2
  141. package/dist/components/HtmlRenderer/index.test.es.js.map +1 -1
  142. package/dist/components/Input/index.cjs.js +1 -1
  143. package/dist/components/Input/index.cjs.js.map +1 -1
  144. package/dist/components/Input/index.es.js +1 -1
  145. package/dist/components/Input/index.es.js.map +1 -1
  146. package/dist/components/Input/index.test.cjs.js +1 -1
  147. package/dist/components/Input/index.test.cjs.js.map +1 -1
  148. package/dist/components/Input/index.test.es.js +1 -1
  149. package/dist/components/Input/index.test.es.js.map +1 -1
  150. package/dist/components/InputController/index.cjs.js.map +1 -1
  151. package/dist/components/InputController/index.es.js.map +1 -1
  152. package/dist/components/InputController/index.test.cjs.js +1 -1
  153. package/dist/components/InputController/index.test.cjs.js.map +1 -1
  154. package/dist/components/InputController/index.test.es.js +1 -1
  155. package/dist/components/InputController/index.test.es.js.map +1 -1
  156. package/dist/components/InputGroup/index.cjs.js +1 -1
  157. package/dist/components/InputGroup/index.cjs.js.map +1 -1
  158. package/dist/components/InputGroup/index.es.js +1 -1
  159. package/dist/components/InputGroup/index.es.js.map +1 -1
  160. package/dist/components/InputGroup/index.test.cjs.js +1 -1
  161. package/dist/components/InputGroup/index.test.cjs.js.map +1 -1
  162. package/dist/components/InputGroup/index.test.es.js +2 -2
  163. package/dist/components/InputGroup/index.test.es.js.map +1 -1
  164. package/dist/components/Label/index.cjs.js +1 -1
  165. package/dist/components/Label/index.cjs.js.map +1 -1
  166. package/dist/components/Label/index.es.js +1 -1
  167. package/dist/components/Label/index.es.js.map +1 -1
  168. package/dist/components/Label/index.test.cjs.js +1 -1
  169. package/dist/components/Label/index.test.cjs.js.map +1 -1
  170. package/dist/components/Label/index.test.es.js +2 -2
  171. package/dist/components/Label/index.test.es.js.map +1 -1
  172. package/dist/components/LabeledContent/index.cjs.js +1 -1
  173. package/dist/components/LabeledContent/index.cjs.js.map +1 -1
  174. package/dist/components/LabeledContent/index.es.js +1 -1
  175. package/dist/components/LabeledContent/index.es.js.map +1 -1
  176. package/dist/components/LabeledContent/index.test.cjs.js +1 -1
  177. package/dist/components/LabeledContent/index.test.cjs.js.map +1 -1
  178. package/dist/components/LabeledContent/index.test.es.js +1 -1
  179. package/dist/components/LabeledContent/index.test.es.js.map +1 -1
  180. package/dist/components/LoadingOverlay/index.cjs.js +1 -1
  181. package/dist/components/LoadingOverlay/index.cjs.js.map +1 -1
  182. package/dist/components/LoadingOverlay/index.es.js +1 -1
  183. package/dist/components/LoadingOverlay/index.es.js.map +1 -1
  184. package/dist/components/LoadingOverlay/index.test.cjs.js +1 -1
  185. package/dist/components/LoadingOverlay/index.test.cjs.js.map +1 -1
  186. package/dist/components/LoadingOverlay/index.test.es.js +2 -2
  187. package/dist/components/LoadingOverlay/index.test.es.js.map +1 -1
  188. package/dist/components/Map/index.cjs.js +2 -2
  189. package/dist/components/Map/index.cjs.js.map +1 -1
  190. package/dist/components/Map/index.es.js +709 -716
  191. package/dist/components/Map/index.es.js.map +1 -1
  192. package/dist/components/MaxWidthContainer/index.cjs.js +1 -1
  193. package/dist/components/MaxWidthContainer/index.cjs.js.map +1 -1
  194. package/dist/components/MaxWidthContainer/index.es.js +1 -1
  195. package/dist/components/MaxWidthContainer/index.es.js.map +1 -1
  196. package/dist/components/MaxWidthContainer/index.test.cjs.js +1 -1
  197. package/dist/components/MaxWidthContainer/index.test.cjs.js.map +1 -1
  198. package/dist/components/MaxWidthContainer/index.test.es.js +2 -2
  199. package/dist/components/MaxWidthContainer/index.test.es.js.map +1 -1
  200. package/dist/components/NumericFieldController/index.cjs.js.map +1 -1
  201. package/dist/components/NumericFieldController/index.d.ts +1 -0
  202. package/dist/components/NumericFieldController/index.es.js.map +1 -1
  203. package/dist/components/NumericFieldController/index.test.cjs.js +1 -1
  204. package/dist/components/NumericFieldController/index.test.cjs.js.map +1 -1
  205. package/dist/components/NumericFieldController/index.test.es.js +1 -1
  206. package/dist/components/NumericFieldController/index.test.es.js.map +1 -1
  207. package/dist/components/OfflineLabel/index.cjs.js +1 -1
  208. package/dist/components/OfflineLabel/index.cjs.js.map +1 -1
  209. package/dist/components/OfflineLabel/index.es.js +1 -1
  210. package/dist/components/OfflineLabel/index.es.js.map +1 -1
  211. package/dist/components/PageSizeSelector/index.cjs.js +1 -1
  212. package/dist/components/PageSizeSelector/index.cjs.js.map +1 -1
  213. package/dist/components/PageSizeSelector/index.es.js +2 -2
  214. package/dist/components/PageSizeSelector/index.es.js.map +1 -1
  215. package/dist/components/Pagination/index.cjs.js +2 -2
  216. package/dist/components/Pagination/index.cjs.js.map +1 -1
  217. package/dist/components/Pagination/index.es.js +17 -17
  218. package/dist/components/Pagination/index.es.js.map +1 -1
  219. package/dist/components/Pagination/index.test.cjs.js +1 -1
  220. package/dist/components/Pagination/index.test.cjs.js.map +1 -1
  221. package/dist/components/Pagination/index.test.es.js +1 -1
  222. package/dist/components/Pagination/index.test.es.js.map +1 -1
  223. package/dist/components/PasswordInputController/index.cjs.js.map +1 -1
  224. package/dist/components/PasswordInputController/index.es.js.map +1 -1
  225. package/dist/components/PasswordInputController/index.test.cjs.js +1 -1
  226. package/dist/components/PasswordInputController/index.test.cjs.js.map +1 -1
  227. package/dist/components/PasswordInputController/index.test.es.js +1 -1
  228. package/dist/components/PasswordInputController/index.test.es.js.map +1 -1
  229. package/dist/components/RadioButton/index.cjs.js +1 -1
  230. package/dist/components/RadioButton/index.es.js +1 -1
  231. package/dist/components/RadioButton/index.test.cjs.js +1 -1
  232. package/dist/components/RadioButton/index.test.cjs.js.map +1 -1
  233. package/dist/components/RadioButton/index.test.es.js +3 -3
  234. package/dist/components/RadioButton/index.test.es.js.map +1 -1
  235. package/dist/components/RadioGroupController/index.cjs.js.map +1 -1
  236. package/dist/components/RadioGroupController/index.es.js.map +1 -1
  237. package/dist/components/RadioGroupController/index.test.cjs.js +1 -1
  238. package/dist/components/RadioGroupController/index.test.cjs.js.map +1 -1
  239. package/dist/components/RadioGroupController/index.test.es.js +1 -1
  240. package/dist/components/RadioGroupController/index.test.es.js.map +1 -1
  241. package/dist/components/RangeDatePicker/index.cjs.js +1 -1
  242. package/dist/components/RangeDatePicker/index.cjs.js.map +1 -1
  243. package/dist/components/RangeDatePicker/index.es.js +1 -1
  244. package/dist/components/RangeDatePicker/index.es.js.map +1 -1
  245. package/dist/components/RangeDatePickerController/index.cjs.js.map +1 -1
  246. package/dist/components/RangeDatePickerController/index.es.js.map +1 -1
  247. package/dist/components/RangeDatePickerController/index.test.cjs.js +1 -1
  248. package/dist/components/RangeDatePickerController/index.test.cjs.js.map +1 -1
  249. package/dist/components/RangeDatePickerController/index.test.es.js +1 -1
  250. package/dist/components/RangeDatePickerController/index.test.es.js.map +1 -1
  251. package/dist/components/ReportCard/index.cjs.js +1 -1
  252. package/dist/components/ReportCard/index.cjs.js.map +1 -1
  253. package/dist/components/ReportCard/index.es.js +1 -1
  254. package/dist/components/ReportCard/index.es.js.map +1 -1
  255. package/dist/components/ReportCard/index.test.cjs.js +1 -1
  256. package/dist/components/ReportCard/index.test.cjs.js.map +1 -1
  257. package/dist/components/ReportCard/index.test.es.js +1 -1
  258. package/dist/components/ReportCard/index.test.es.js.map +1 -1
  259. package/dist/components/ReportChart/index.cjs.js +1 -1
  260. package/dist/components/ReportChart/index.cjs.js.map +1 -1
  261. package/dist/components/ReportChart/index.es.js +1 -1
  262. package/dist/components/ReportChart/index.es.js.map +1 -1
  263. package/dist/components/ReportChartMulti/index.cjs.js +1 -1
  264. package/dist/components/ReportChartMulti/index.cjs.js.map +1 -1
  265. package/dist/components/ReportChartMulti/index.es.js +1 -1
  266. package/dist/components/ReportChartMulti/index.es.js.map +1 -1
  267. package/dist/components/ReportChartMulti/index.test.cjs.js +1 -1
  268. package/dist/components/ReportChartMulti/index.test.cjs.js.map +1 -1
  269. package/dist/components/ReportChartMulti/index.test.es.js +1 -1
  270. package/dist/components/ReportChartMulti/index.test.es.js.map +1 -1
  271. package/dist/components/ScrollableDialog/index.cjs.js.map +1 -1
  272. package/dist/components/ScrollableDialog/index.es.js.map +1 -1
  273. package/dist/components/ScrollableDialog/index.test.cjs.js +1 -1
  274. package/dist/components/ScrollableDialog/index.test.cjs.js.map +1 -1
  275. package/dist/components/ScrollableDialog/index.test.es.js +1 -1
  276. package/dist/components/ScrollableDialog/index.test.es.js.map +1 -1
  277. package/dist/components/SearchForm/index.cjs.js.map +1 -1
  278. package/dist/components/SearchForm/index.es.js.map +1 -1
  279. package/dist/components/SelectBox/index.cjs.js +1 -1
  280. package/dist/components/SelectBox/index.es.js +1 -1
  281. package/dist/components/SelectBox/index.test.cjs.js +1 -1
  282. package/dist/components/SelectBox/index.test.cjs.js.map +1 -1
  283. package/dist/components/SelectBox/index.test.es.js +2 -2
  284. package/dist/components/SelectBox/index.test.es.js.map +1 -1
  285. package/dist/components/SelectBoxController/index.cjs.js.map +1 -1
  286. package/dist/components/SelectBoxController/index.es.js.map +1 -1
  287. package/dist/components/SelectBoxController/index.test.cjs.js +1 -1
  288. package/dist/components/SelectBoxController/index.test.cjs.js.map +1 -1
  289. package/dist/components/SelectBoxController/index.test.es.js +1 -1
  290. package/dist/components/SelectBoxController/index.test.es.js.map +1 -1
  291. package/dist/components/SideMenu/index.cjs.js.map +1 -1
  292. package/dist/components/SideMenu/index.es.js.map +1 -1
  293. package/dist/components/SideMenu/index.test.cjs.js +1 -1
  294. package/dist/components/SideMenu/index.test.cjs.js.map +1 -1
  295. package/dist/components/SideMenu/index.test.es.js +3 -3
  296. package/dist/components/SideMenu/index.test.es.js.map +1 -1
  297. package/dist/components/SpinnerButton/index.cjs.js.map +1 -1
  298. package/dist/components/SpinnerButton/index.es.js.map +1 -1
  299. package/dist/components/SpinnerButton/index.test.cjs.js +1 -1
  300. package/dist/components/SpinnerButton/index.test.cjs.js.map +1 -1
  301. package/dist/components/SpinnerButton/index.test.es.js +2 -2
  302. package/dist/components/SpinnerButton/index.test.es.js.map +1 -1
  303. package/dist/components/SubMenu/index.cjs.js.map +1 -1
  304. package/dist/components/SubMenu/index.es.js.map +1 -1
  305. package/dist/components/SubMenu/index.test.cjs.js +1 -1
  306. package/dist/components/SubMenu/index.test.cjs.js.map +1 -1
  307. package/dist/components/SubMenu/index.test.es.js +1 -1
  308. package/dist/components/SubMenu/index.test.es.js.map +1 -1
  309. package/dist/components/Tabs/index.cjs.js.map +1 -1
  310. package/dist/components/Tabs/index.d.ts +1 -1
  311. package/dist/components/Tabs/index.es.js.map +1 -1
  312. package/dist/components/Tabs/index.test.cjs.js +1 -1
  313. package/dist/components/Tabs/index.test.cjs.js.map +1 -1
  314. package/dist/components/Tabs/index.test.es.js +2 -2
  315. package/dist/components/Tabs/index.test.es.js.map +1 -1
  316. package/dist/components/Textarea/index.cjs.js.map +1 -1
  317. package/dist/components/Textarea/index.es.js.map +1 -1
  318. package/dist/components/Textarea/index.test.cjs.js +1 -1
  319. package/dist/components/Textarea/index.test.cjs.js.map +1 -1
  320. package/dist/components/Textarea/index.test.es.js +2 -2
  321. package/dist/components/Textarea/index.test.es.js.map +1 -1
  322. package/dist/components/Title/index.cjs.js +1 -1
  323. package/dist/components/Title/index.cjs.js.map +1 -1
  324. package/dist/components/Title/index.es.js +9 -2
  325. package/dist/components/Title/index.es.js.map +1 -1
  326. package/dist/components/Title/index.test.cjs.js +1 -1
  327. package/dist/components/Title/index.test.cjs.js.map +1 -1
  328. package/dist/components/Title/index.test.es.js +2 -2
  329. package/dist/components/Title/index.test.es.js.map +1 -1
  330. package/dist/components/ToggleButton/index.cjs.js.map +1 -1
  331. package/dist/components/ToggleButton/index.es.js.map +1 -1
  332. package/dist/components/ToggleButton/index.test.cjs.js +1 -1
  333. package/dist/components/ToggleButton/index.test.cjs.js.map +1 -1
  334. package/dist/components/ToggleButton/index.test.es.js +1 -1
  335. package/dist/components/ToggleButton/index.test.es.js.map +1 -1
  336. package/dist/components/TwoFaDialog/index.cjs.js +19 -0
  337. package/dist/components/TwoFaDialog/index.cjs.js.map +1 -0
  338. package/dist/components/TwoFaDialog/index.d.ts +62 -0
  339. package/dist/components/TwoFaDialog/index.es.js +1129 -0
  340. package/dist/components/TwoFaDialog/index.es.js.map +1 -0
  341. package/dist/components/TwoFaDialog/index.test.cjs.js +3 -0
  342. package/dist/components/TwoFaDialog/index.test.cjs.js.map +1 -0
  343. package/dist/components/TwoFaDialog/index.test.d.ts +1 -0
  344. package/dist/components/TwoFaDialog/index.test.es.js +73 -0
  345. package/dist/components/TwoFaDialog/index.test.es.js.map +1 -0
  346. package/dist/components/TwoFaInputController/index.cjs.js +2 -0
  347. package/dist/components/TwoFaInputController/index.cjs.js.map +1 -0
  348. package/dist/components/TwoFaInputController/index.d.ts +34 -0
  349. package/dist/components/TwoFaInputController/index.es.js +87 -0
  350. package/dist/components/TwoFaInputController/index.es.js.map +1 -0
  351. package/dist/components/TwoFaInputController/index.test.cjs.js +2 -0
  352. package/dist/components/TwoFaInputController/index.test.cjs.js.map +1 -0
  353. package/dist/components/TwoFaInputController/index.test.d.ts +1 -0
  354. package/dist/components/TwoFaInputController/index.test.es.js +123 -0
  355. package/dist/components/TwoFaInputController/index.test.es.js.map +1 -0
  356. package/dist/components/TwoFaLabel/index.cjs.js +2 -0
  357. package/dist/components/TwoFaLabel/index.cjs.js.map +1 -0
  358. package/dist/components/TwoFaLabel/index.d.ts +28 -0
  359. package/dist/components/TwoFaLabel/index.es.js +60 -0
  360. package/dist/components/TwoFaLabel/index.es.js.map +1 -0
  361. package/dist/components/TwoFaLabel/index.test.cjs.js +2 -0
  362. package/dist/components/TwoFaLabel/index.test.cjs.js.map +1 -0
  363. package/dist/components/TwoFaLabel/index.test.d.ts +1 -0
  364. package/dist/components/TwoFaLabel/index.test.es.js +19 -0
  365. package/dist/components/TwoFaLabel/index.test.es.js.map +1 -0
  366. package/dist/components/VStack/index.cjs.js.map +1 -1
  367. package/dist/components/VStack/index.es.js.map +1 -1
  368. package/dist/components/VStack/index.test.cjs.js +1 -1
  369. package/dist/components/VStack/index.test.cjs.js.map +1 -1
  370. package/dist/components/VStack/index.test.es.js +2 -2
  371. package/dist/components/VStack/index.test.es.js.map +1 -1
  372. package/dist/index-9p9q0wxE.cjs +39 -0
  373. package/dist/index-9p9q0wxE.cjs.map +1 -0
  374. package/dist/{index-B663CLQ0.cjs → index-BM3CSrls.cjs} +2 -2
  375. package/dist/{index-B663CLQ0.cjs.map → index-BM3CSrls.cjs.map} +1 -1
  376. package/dist/{index-C50NsnJO.cjs → index-BoenezD8.cjs} +2 -2
  377. package/dist/{index-C50NsnJO.cjs.map → index-BoenezD8.cjs.map} +1 -1
  378. package/dist/index-C9Dbd7MM.cjs +4 -0
  379. package/dist/index-C9Dbd7MM.cjs.map +1 -0
  380. package/dist/{index-DCSLk6pp.js → index-Cj9ZvtM1.js} +1890 -2721
  381. package/dist/index-Cj9ZvtM1.js.map +1 -0
  382. package/dist/{index-pr0ncuNy.js → index-CogWL0bN.js} +2 -2
  383. package/dist/{index-pr0ncuNy.js.map → index-CogWL0bN.js.map} +1 -1
  384. package/dist/{index-CSiE_l9r.js → index-D7VNQwOv.js} +2 -2
  385. package/dist/{index-CSiE_l9r.js.map → index-D7VNQwOv.js.map} +1 -1
  386. package/dist/{index-ZP4xL6Dt.js → index-DI17hZPH.js} +7373 -6726
  387. package/dist/index-DI17hZPH.js.map +1 -0
  388. package/dist/index-Ds6DK19y.cjs +96 -0
  389. package/dist/index-Ds6DK19y.cjs.map +1 -0
  390. package/dist/{index-CCbJ_2yU.cjs → index-SHLzSoKB.cjs} +2 -2
  391. package/dist/{index-CCbJ_2yU.cjs.map → index-SHLzSoKB.cjs.map} +1 -1
  392. package/dist/{index-D5b3AasF.js → index-sarAILcU.js} +2 -2
  393. package/dist/{index-D5b3AasF.js.map → index-sarAILcU.js.map} +1 -1
  394. package/dist/{index-BqN32Ptm.js → index-zix1zlkq.js} +628 -602
  395. package/dist/index-zix1zlkq.js.map +1 -0
  396. package/dist/index.cjs.js +1 -1
  397. package/dist/index.d.ts +4 -0
  398. package/dist/index.es.js +75 -65
  399. package/dist/index.es.js.map +1 -1
  400. package/dist/{react.esm-2FJSSo-S.js → react.esm-BBESb8eI.js} +631 -609
  401. package/dist/react.esm-BBESb8eI.js.map +1 -0
  402. package/dist/{react.esm-CiMn0Rnx.cjs → react.esm-DGuy6Rn3.cjs} +33 -33
  403. package/dist/react.esm-DGuy6Rn3.cjs.map +1 -0
  404. package/package.json +42 -18
  405. package/dist/browser-BCVsA9bD.cjs +0 -2
  406. package/dist/browser-BCVsA9bD.cjs.map +0 -1
  407. package/dist/browser-BYxLWVDg.js +0 -654
  408. package/dist/browser-BYxLWVDg.js.map +0 -1
  409. package/dist/index-BHsZ5xlA.cjs +0 -96
  410. package/dist/index-BHsZ5xlA.cjs.map +0 -1
  411. package/dist/index-BoNIpBs7.cjs +0 -4
  412. package/dist/index-BoNIpBs7.cjs.map +0 -1
  413. package/dist/index-BpMSrIOq.cjs +0 -43
  414. package/dist/index-BpMSrIOq.cjs.map +0 -1
  415. package/dist/index-BqN32Ptm.js.map +0 -1
  416. package/dist/index-DCSLk6pp.js.map +0 -1
  417. package/dist/index-ZP4xL6Dt.js.map +0 -1
  418. package/dist/react.esm-2FJSSo-S.js.map +0 -1
  419. package/dist/react.esm-CiMn0Rnx.cjs.map +0 -1
@@ -1,6 +1,6 @@
1
1
  import "react/jsx-runtime";
2
2
  import "classnames";
3
- import { S as a, S as m } from "../../index-CSiE_l9r.js";
3
+ import { S as a, S as m } from "../../index-D7VNQwOv.js";
4
4
  export {
5
5
  a as SelectBox,
6
6
  m as default
@@ -1,2 +1,2 @@
1
- "use strict";const n=require("react/jsx-runtime"),e=require("../../react.esm-CiMn0Rnx.cjs"),o=require("../../index-CCbJ_2yU.cjs");describe("SelectBox component",()=>{const r=[{label:"Option 1",value:"option1"},{label:"Option 2",value:"option2"}],c="test-selectbox",l="test-name";it("renders the select box with correct options",()=>{e.render(n.jsx(o.SelectBox,{id:c,name:l,values:r}));const t=e.screen.getByRole("combobox");expect(t).toHaveAttribute("id",c),expect(t).toHaveAttribute("name",l),r.forEach(({label:s,value:a})=>{const x=e.screen.getByText(s);expect(x).toBeInTheDocument(),expect(x).toHaveAttribute("value",a)})}),it("shows error message when provided",()=>{const t="Error message";e.render(n.jsx(o.SelectBox,{values:r,errorMessage:t}));const s=e.screen.getByText(t);expect(s).toBeInTheDocument()}),it("does not show error message when not provided",()=>{e.render(n.jsx(o.SelectBox,{values:r}));const t=e.screen.queryByText(/Error message/i);expect(t).not.toBeInTheDocument()}),it("applies the error class to select box when errorMessage is provided",()=>{e.render(n.jsx(o.SelectBox,{values:r,errorMessage:"Error message"}));const s=e.screen.getByRole("combobox");expect(s).toHaveClass(o.styles.error)}),it("does not apply the error class to select box when errorMessage is not provided",()=>{e.render(n.jsx(o.SelectBox,{values:r}));const t=e.screen.getByRole("combobox");expect(t).not.toHaveClass(o.styles.error)})});
1
+ "use strict";const n=require("react/jsx-runtime"),e=require("../../react.esm-DGuy6Rn3.cjs"),o=require("../../index-SHLzSoKB.cjs");describe("SelectBox component",()=>{const r=[{label:"Option 1",value:"option1"},{label:"Option 2",value:"option2"}],c="test-selectbox",l="test-name";it("renders the select box with correct options",()=>{e.render(n.jsx(o.SelectBox,{id:c,name:l,values:r}));const t=e.screen.getByRole("combobox");expect(t).toHaveAttribute("id",c),expect(t).toHaveAttribute("name",l),r.forEach(({label:s,value:a})=>{const x=e.screen.getByText(s);expect(x).toBeInTheDocument(),expect(x).toHaveAttribute("value",a)})}),it("shows error message when provided",()=>{const t="Error message";e.render(n.jsx(o.SelectBox,{values:r,errorMessage:t}));const s=e.screen.getByText(t);expect(s).toBeInTheDocument()}),it("does not show error message when not provided",()=>{e.render(n.jsx(o.SelectBox,{values:r}));const t=e.screen.queryByText(/Error message/i);expect(t).not.toBeInTheDocument()}),it("applies the error class to select box when errorMessage is provided",()=>{e.render(n.jsx(o.SelectBox,{values:r,errorMessage:"Error message"}));const s=e.screen.getByRole("combobox");expect(s).toHaveClass(o.styles.error)}),it("does not apply the error class to select box when errorMessage is not provided",()=>{e.render(n.jsx(o.SelectBox,{values:r}));const t=e.screen.getByRole("combobox");expect(t).not.toHaveClass(o.styles.error)})});
2
2
  //# sourceMappingURL=index.test.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.test.cjs.js","sources":["../../../src/components/SelectBox/index.test.tsx"],"sourcesContent":["import { render, screen } from \"@testing-library/react\";\n\n// import { axe, toHaveNoViolations } from 'jest-axe';\nimport { SelectBox } from \".\";\nimport styles from \"./index.module.scss\";\n\ndescribe(\"SelectBox component\", () => {\n const values = [\n { label: \"Option 1\", value: \"option1\" },\n { label: \"Option 2\", value: \"option2\" },\n ];\n\n const id = \"test-selectbox\";\n const name = \"test-name\";\n\n it(\"renders the select box with correct options\", () => {\n render(<SelectBox id={id} name={name} values={values} />);\n\n const selectBox = screen.getByRole(\"combobox\");\n expect(selectBox).toHaveAttribute(\"id\", id);\n expect(selectBox).toHaveAttribute(\"name\", name);\n\n values.forEach(({ label, value }) => {\n const option = screen.getByText(label);\n expect(option).toBeInTheDocument();\n expect(option).toHaveAttribute(\"value\", value);\n });\n });\n\n it(\"shows error message when provided\", () => {\n const errorMessage = \"Error message\";\n render(<SelectBox values={values} errorMessage={errorMessage} />);\n\n const errorElement = screen.getByText(errorMessage);\n expect(errorElement).toBeInTheDocument();\n });\n\n it(\"does not show error message when not provided\", () => {\n render(<SelectBox values={values} />);\n\n const errorElement = screen.queryByText(/Error message/i);\n expect(errorElement).not.toBeInTheDocument();\n });\n\n it(\"applies the error class to select box when errorMessage is provided\", () => {\n const errorMessage = \"Error message\";\n render(<SelectBox values={values} errorMessage={errorMessage} />);\n\n const selectBox = screen.getByRole(\"combobox\");\n expect(selectBox).toHaveClass(styles.error);\n });\n\n it(\"does not apply the error class to select box when errorMessage is not provided\", () => {\n render(<SelectBox values={values} />);\n\n const selectBox = screen.getByRole(\"combobox\");\n expect(selectBox).not.toHaveClass(styles.error);\n });\n\n // it('should be accessible', async () => {\n // const { container } = render(\n // <SelectBox id={id} name={name} values={values} />\n // );\n // const results = await axe(container);\n\n // expect.extend(toHaveNoViolations);\n // expect(results).toHaveNoViolations();\n // });\n});\n"],"names":["values","id","name","render","jsx","SelectBox","selectBox","screen","label","value","option","errorMessage","errorElement","styles"],"mappings":"kIAMA,SAAS,sBAAuB,IAAM,CACpC,MAAMA,EAAS,CACb,CAAE,MAAO,WAAY,MAAO,SAAU,EACtC,CAAE,MAAO,WAAY,MAAO,SAAU,CACxC,EAEMC,EAAK,iBACLC,EAAO,YAEb,GAAG,8CAA+C,IAAM,CACtDC,EAAA,OAAQC,EAAA,IAAAC,YAAA,CAAU,GAAAJ,EAAQ,KAAAC,EAAY,OAAAF,EAAgB,CAAE,EAElD,MAAAM,EAAYC,EAAAA,OAAO,UAAU,UAAU,EAC7C,OAAOD,CAAS,EAAE,gBAAgB,KAAML,CAAE,EAC1C,OAAOK,CAAS,EAAE,gBAAgB,OAAQJ,CAAI,EAE9CF,EAAO,QAAQ,CAAC,CAAE,MAAAQ,EAAO,MAAAC,KAAY,CAC7B,MAAAC,EAASH,EAAAA,OAAO,UAAUC,CAAK,EAC9B,OAAAE,CAAM,EAAE,kBAAkB,EACjC,OAAOA,CAAM,EAAE,gBAAgB,QAASD,CAAK,CAAA,CAC9C,CAAA,CACF,EAED,GAAG,oCAAqC,IAAM,CAC5C,MAAME,EAAe,gBACrBR,EAAA,OAAQC,EAAA,IAAAC,EAAA,UAAA,CAAU,OAAAL,EAAgB,aAAAW,CAA4B,CAAA,CAAE,EAE1D,MAAAC,EAAeL,EAAAA,OAAO,UAAUI,CAAY,EAC3C,OAAAC,CAAY,EAAE,kBAAkB,CAAA,CACxC,EAED,GAAG,gDAAiD,IAAM,CACjDT,EAAAA,OAAAC,EAAAA,IAACC,EAAAA,UAAU,CAAA,OAAAL,CAAgB,CAAA,CAAE,EAE9B,MAAAY,EAAeL,EAAAA,OAAO,YAAY,gBAAgB,EACjD,OAAAK,CAAY,EAAE,IAAI,kBAAkB,CAAA,CAC5C,EAED,GAAG,sEAAuE,IAAM,CAE9ET,EAAA,OAAQC,EAAA,IAAAC,EAAA,UAAA,CAAU,OAAAL,EAAgB,aADb,eACyC,CAAA,CAAE,EAE1D,MAAAM,EAAYC,EAAAA,OAAO,UAAU,UAAU,EAC7C,OAAOD,CAAS,EAAE,YAAYO,EAAAA,OAAO,KAAK,CAAA,CAC3C,EAED,GAAG,iFAAkF,IAAM,CAClFV,EAAAA,OAAAC,EAAAA,IAACC,EAAAA,UAAU,CAAA,OAAAL,CAAgB,CAAA,CAAE,EAE9B,MAAAM,EAAYC,EAAAA,OAAO,UAAU,UAAU,EAC7C,OAAOD,CAAS,EAAE,IAAI,YAAYO,EAAAA,OAAO,KAAK,CAAA,CAC/C,CAWH,CAAC"}
1
+ {"version":3,"file":"index.test.cjs.js","sources":["../../../src/components/SelectBox/index.test.tsx"],"sourcesContent":["import { render, screen } from \"@testing-library/react\";\n\n// import { axe, toHaveNoViolations } from 'jest-axe';\nimport { SelectBox } from \".\";\nimport styles from \"./index.module.scss\";\n\ndescribe(\"SelectBox component\", () => {\n const values = [\n { label: \"Option 1\", value: \"option1\" },\n { label: \"Option 2\", value: \"option2\" },\n ];\n\n const id = \"test-selectbox\";\n const name = \"test-name\";\n\n it(\"renders the select box with correct options\", () => {\n render(<SelectBox id={id} name={name} values={values} />);\n\n const selectBox = screen.getByRole(\"combobox\");\n expect(selectBox).toHaveAttribute(\"id\", id);\n expect(selectBox).toHaveAttribute(\"name\", name);\n\n values.forEach(({ label, value }) => {\n const option = screen.getByText(label);\n expect(option).toBeInTheDocument();\n expect(option).toHaveAttribute(\"value\", value);\n });\n });\n\n it(\"shows error message when provided\", () => {\n const errorMessage = \"Error message\";\n render(<SelectBox values={values} errorMessage={errorMessage} />);\n\n const errorElement = screen.getByText(errorMessage);\n expect(errorElement).toBeInTheDocument();\n });\n\n it(\"does not show error message when not provided\", () => {\n render(<SelectBox values={values} />);\n\n const errorElement = screen.queryByText(/Error message/i);\n expect(errorElement).not.toBeInTheDocument();\n });\n\n it(\"applies the error class to select box when errorMessage is provided\", () => {\n const errorMessage = \"Error message\";\n render(<SelectBox values={values} errorMessage={errorMessage} />);\n\n const selectBox = screen.getByRole(\"combobox\");\n expect(selectBox).toHaveClass(styles.error);\n });\n\n it(\"does not apply the error class to select box when errorMessage is not provided\", () => {\n render(<SelectBox values={values} />);\n\n const selectBox = screen.getByRole(\"combobox\");\n expect(selectBox).not.toHaveClass(styles.error);\n });\n\n // it('should be accessible', async () => {\n // const { container } = render(\n // <SelectBox id={id} name={name} values={values} />\n // );\n // const results = await axe(container);\n\n // expect.extend(toHaveNoViolations);\n // expect(results).toHaveNoViolations();\n // });\n});\n"],"names":["values","id","name","render","jsx","SelectBox","selectBox","screen","label","value","option","errorMessage","errorElement","styles"],"mappings":"kIAMA,SAAS,sBAAuB,IAAM,CACpC,MAAMA,EAAS,CACb,CAAE,MAAO,WAAY,MAAO,SAAA,EAC5B,CAAE,MAAO,WAAY,MAAO,SAAA,CAAU,EAGlCC,EAAK,iBACLC,EAAO,YAEb,GAAG,8CAA+C,IAAM,CACtDC,EAAAA,OAAOC,EAAAA,IAACC,YAAA,CAAU,GAAAJ,EAAQ,KAAAC,EAAY,OAAAF,EAAgB,CAAE,EAExD,MAAMM,EAAYC,EAAAA,OAAO,UAAU,UAAU,EAC7C,OAAOD,CAAS,EAAE,gBAAgB,KAAML,CAAE,EAC1C,OAAOK,CAAS,EAAE,gBAAgB,OAAQJ,CAAI,EAE9CF,EAAO,QAAQ,CAAC,CAAE,MAAAQ,EAAO,MAAAC,KAAY,CACnC,MAAMC,EAASH,EAAAA,OAAO,UAAUC,CAAK,EACrC,OAAOE,CAAM,EAAE,kBAAA,EACf,OAAOA,CAAM,EAAE,gBAAgB,QAASD,CAAK,CAC/C,CAAC,CACH,CAAC,EAED,GAAG,oCAAqC,IAAM,CAC5C,MAAME,EAAe,gBACrBR,EAAAA,OAAOC,EAAAA,IAACC,EAAAA,UAAA,CAAU,OAAAL,EAAgB,aAAAW,CAAA,CAA4B,CAAE,EAEhE,MAAMC,EAAeL,EAAAA,OAAO,UAAUI,CAAY,EAClD,OAAOC,CAAY,EAAE,kBAAA,CACvB,CAAC,EAED,GAAG,gDAAiD,IAAM,CACxDT,EAAAA,OAAOC,EAAAA,IAACC,EAAAA,UAAA,CAAU,OAAAL,CAAA,CAAgB,CAAE,EAEpC,MAAMY,EAAeL,EAAAA,OAAO,YAAY,gBAAgB,EACxD,OAAOK,CAAY,EAAE,IAAI,kBAAA,CAC3B,CAAC,EAED,GAAG,sEAAuE,IAAM,CAE9ET,EAAAA,OAAOC,EAAAA,IAACC,EAAAA,UAAA,CAAU,OAAAL,EAAgB,aADb,eACa,CAA4B,CAAE,EAEhE,MAAMM,EAAYC,EAAAA,OAAO,UAAU,UAAU,EAC7C,OAAOD,CAAS,EAAE,YAAYO,EAAAA,OAAO,KAAK,CAC5C,CAAC,EAED,GAAG,iFAAkF,IAAM,CACzFV,EAAAA,OAAOC,EAAAA,IAACC,EAAAA,UAAA,CAAU,OAAAL,CAAA,CAAgB,CAAE,EAEpC,MAAMM,EAAYC,EAAAA,OAAO,UAAU,UAAU,EAC7C,OAAOD,CAAS,EAAE,IAAI,YAAYO,EAAAA,OAAO,KAAK,CAChD,CAAC,CAWH,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { jsx as s } from "react/jsx-runtime";
2
- import { r as n, s as t } from "../../react.esm-2FJSSo-S.js";
3
- import { s as p, S as c } from "../../index-CSiE_l9r.js";
2
+ import { r as n, s as t } from "../../react.esm-BBESb8eI.js";
3
+ import { s as p, S as c } from "../../index-D7VNQwOv.js";
4
4
  describe("SelectBox component", () => {
5
5
  const o = [
6
6
  { label: "Option 1", value: "option1" },
@@ -1 +1 @@
1
- {"version":3,"file":"index.test.es.js","sources":["../../../src/components/SelectBox/index.test.tsx"],"sourcesContent":["import { render, screen } from \"@testing-library/react\";\n\n// import { axe, toHaveNoViolations } from 'jest-axe';\nimport { SelectBox } from \".\";\nimport styles from \"./index.module.scss\";\n\ndescribe(\"SelectBox component\", () => {\n const values = [\n { label: \"Option 1\", value: \"option1\" },\n { label: \"Option 2\", value: \"option2\" },\n ];\n\n const id = \"test-selectbox\";\n const name = \"test-name\";\n\n it(\"renders the select box with correct options\", () => {\n render(<SelectBox id={id} name={name} values={values} />);\n\n const selectBox = screen.getByRole(\"combobox\");\n expect(selectBox).toHaveAttribute(\"id\", id);\n expect(selectBox).toHaveAttribute(\"name\", name);\n\n values.forEach(({ label, value }) => {\n const option = screen.getByText(label);\n expect(option).toBeInTheDocument();\n expect(option).toHaveAttribute(\"value\", value);\n });\n });\n\n it(\"shows error message when provided\", () => {\n const errorMessage = \"Error message\";\n render(<SelectBox values={values} errorMessage={errorMessage} />);\n\n const errorElement = screen.getByText(errorMessage);\n expect(errorElement).toBeInTheDocument();\n });\n\n it(\"does not show error message when not provided\", () => {\n render(<SelectBox values={values} />);\n\n const errorElement = screen.queryByText(/Error message/i);\n expect(errorElement).not.toBeInTheDocument();\n });\n\n it(\"applies the error class to select box when errorMessage is provided\", () => {\n const errorMessage = \"Error message\";\n render(<SelectBox values={values} errorMessage={errorMessage} />);\n\n const selectBox = screen.getByRole(\"combobox\");\n expect(selectBox).toHaveClass(styles.error);\n });\n\n it(\"does not apply the error class to select box when errorMessage is not provided\", () => {\n render(<SelectBox values={values} />);\n\n const selectBox = screen.getByRole(\"combobox\");\n expect(selectBox).not.toHaveClass(styles.error);\n });\n\n // it('should be accessible', async () => {\n // const { container } = render(\n // <SelectBox id={id} name={name} values={values} />\n // );\n // const results = await axe(container);\n\n // expect.extend(toHaveNoViolations);\n // expect(results).toHaveNoViolations();\n // });\n});\n"],"names":["values","id","name","render","jsx","SelectBox","selectBox","screen","label","value","option","errorMessage","errorElement","styles"],"mappings":";;;AAMA,SAAS,uBAAuB,MAAM;AACpC,QAAMA,IAAS;AAAA,IACb,EAAE,OAAO,YAAY,OAAO,UAAU;AAAA,IACtC,EAAE,OAAO,YAAY,OAAO,UAAU;AAAA,EACxC,GAEMC,IAAK,kBACLC,IAAO;AAEb,KAAG,+CAA+C,MAAM;AACtD,IAAAC,EAAQ,gBAAAC,EAAAC,GAAA,EAAU,IAAAJ,GAAQ,MAAAC,GAAY,QAAAF,GAAgB,CAAE;AAElD,UAAAM,IAAYC,EAAO,UAAU,UAAU;AAC7C,WAAOD,CAAS,EAAE,gBAAgB,MAAML,CAAE,GAC1C,OAAOK,CAAS,EAAE,gBAAgB,QAAQJ,CAAI,GAE9CF,EAAO,QAAQ,CAAC,EAAE,OAAAQ,GAAO,OAAAC,QAAY;AAC7B,YAAAC,IAASH,EAAO,UAAUC,CAAK;AAC9B,aAAAE,CAAM,EAAE,kBAAkB,GACjC,OAAOA,CAAM,EAAE,gBAAgB,SAASD,CAAK;AAAA,IAAA,CAC9C;AAAA,EAAA,CACF,GAED,GAAG,qCAAqC,MAAM;AAC5C,UAAME,IAAe;AACrB,IAAAR,EAAQ,gBAAAC,EAAAC,GAAA,EAAU,QAAAL,GAAgB,cAAAW,EAA4B,CAAA,CAAE;AAE1D,UAAAC,IAAeL,EAAO,UAAUI,CAAY;AAC3C,WAAAC,CAAY,EAAE,kBAAkB;AAAA,EAAA,CACxC,GAED,GAAG,iDAAiD,MAAM;AACjD,IAAAT,EAAA,gBAAAC,EAACC,GAAU,EAAA,QAAAL,EAAgB,CAAA,CAAE;AAE9B,UAAAY,IAAeL,EAAO,YAAY,gBAAgB;AACjD,WAAAK,CAAY,EAAE,IAAI,kBAAkB;AAAA,EAAA,CAC5C,GAED,GAAG,uEAAuE,MAAM;AAE9E,IAAAT,EAAQ,gBAAAC,EAAAC,GAAA,EAAU,QAAAL,GAAgB,cADb,gBACyC,CAAA,CAAE;AAE1D,UAAAM,IAAYC,EAAO,UAAU,UAAU;AAC7C,WAAOD,CAAS,EAAE,YAAYO,EAAO,KAAK;AAAA,EAAA,CAC3C,GAED,GAAG,kFAAkF,MAAM;AAClF,IAAAV,EAAA,gBAAAC,EAACC,GAAU,EAAA,QAAAL,EAAgB,CAAA,CAAE;AAE9B,UAAAM,IAAYC,EAAO,UAAU,UAAU;AAC7C,WAAOD,CAAS,EAAE,IAAI,YAAYO,EAAO,KAAK;AAAA,EAAA,CAC/C;AAWH,CAAC;"}
1
+ {"version":3,"file":"index.test.es.js","sources":["../../../src/components/SelectBox/index.test.tsx"],"sourcesContent":["import { render, screen } from \"@testing-library/react\";\n\n// import { axe, toHaveNoViolations } from 'jest-axe';\nimport { SelectBox } from \".\";\nimport styles from \"./index.module.scss\";\n\ndescribe(\"SelectBox component\", () => {\n const values = [\n { label: \"Option 1\", value: \"option1\" },\n { label: \"Option 2\", value: \"option2\" },\n ];\n\n const id = \"test-selectbox\";\n const name = \"test-name\";\n\n it(\"renders the select box with correct options\", () => {\n render(<SelectBox id={id} name={name} values={values} />);\n\n const selectBox = screen.getByRole(\"combobox\");\n expect(selectBox).toHaveAttribute(\"id\", id);\n expect(selectBox).toHaveAttribute(\"name\", name);\n\n values.forEach(({ label, value }) => {\n const option = screen.getByText(label);\n expect(option).toBeInTheDocument();\n expect(option).toHaveAttribute(\"value\", value);\n });\n });\n\n it(\"shows error message when provided\", () => {\n const errorMessage = \"Error message\";\n render(<SelectBox values={values} errorMessage={errorMessage} />);\n\n const errorElement = screen.getByText(errorMessage);\n expect(errorElement).toBeInTheDocument();\n });\n\n it(\"does not show error message when not provided\", () => {\n render(<SelectBox values={values} />);\n\n const errorElement = screen.queryByText(/Error message/i);\n expect(errorElement).not.toBeInTheDocument();\n });\n\n it(\"applies the error class to select box when errorMessage is provided\", () => {\n const errorMessage = \"Error message\";\n render(<SelectBox values={values} errorMessage={errorMessage} />);\n\n const selectBox = screen.getByRole(\"combobox\");\n expect(selectBox).toHaveClass(styles.error);\n });\n\n it(\"does not apply the error class to select box when errorMessage is not provided\", () => {\n render(<SelectBox values={values} />);\n\n const selectBox = screen.getByRole(\"combobox\");\n expect(selectBox).not.toHaveClass(styles.error);\n });\n\n // it('should be accessible', async () => {\n // const { container } = render(\n // <SelectBox id={id} name={name} values={values} />\n // );\n // const results = await axe(container);\n\n // expect.extend(toHaveNoViolations);\n // expect(results).toHaveNoViolations();\n // });\n});\n"],"names":["values","id","name","render","jsx","SelectBox","selectBox","screen","label","value","option","errorMessage","errorElement","styles"],"mappings":";;;AAMA,SAAS,uBAAuB,MAAM;AACpC,QAAMA,IAAS;AAAA,IACb,EAAE,OAAO,YAAY,OAAO,UAAA;AAAA,IAC5B,EAAE,OAAO,YAAY,OAAO,UAAA;AAAA,EAAU,GAGlCC,IAAK,kBACLC,IAAO;AAEb,KAAG,+CAA+C,MAAM;AACtD,IAAAC,EAAO,gBAAAC,EAACC,GAAA,EAAU,IAAAJ,GAAQ,MAAAC,GAAY,QAAAF,GAAgB,CAAE;AAExD,UAAMM,IAAYC,EAAO,UAAU,UAAU;AAC7C,WAAOD,CAAS,EAAE,gBAAgB,MAAML,CAAE,GAC1C,OAAOK,CAAS,EAAE,gBAAgB,QAAQJ,CAAI,GAE9CF,EAAO,QAAQ,CAAC,EAAE,OAAAQ,GAAO,OAAAC,QAAY;AACnC,YAAMC,IAASH,EAAO,UAAUC,CAAK;AACrC,aAAOE,CAAM,EAAE,kBAAA,GACf,OAAOA,CAAM,EAAE,gBAAgB,SAASD,CAAK;AAAA,IAC/C,CAAC;AAAA,EACH,CAAC,GAED,GAAG,qCAAqC,MAAM;AAC5C,UAAME,IAAe;AACrB,IAAAR,EAAO,gBAAAC,EAACC,GAAA,EAAU,QAAAL,GAAgB,cAAAW,EAAA,CAA4B,CAAE;AAEhE,UAAMC,IAAeL,EAAO,UAAUI,CAAY;AAClD,WAAOC,CAAY,EAAE,kBAAA;AAAA,EACvB,CAAC,GAED,GAAG,iDAAiD,MAAM;AACxD,IAAAT,EAAO,gBAAAC,EAACC,GAAA,EAAU,QAAAL,EAAA,CAAgB,CAAE;AAEpC,UAAMY,IAAeL,EAAO,YAAY,gBAAgB;AACxD,WAAOK,CAAY,EAAE,IAAI,kBAAA;AAAA,EAC3B,CAAC,GAED,GAAG,uEAAuE,MAAM;AAE9E,IAAAT,EAAO,gBAAAC,EAACC,GAAA,EAAU,QAAAL,GAAgB,cADb,gBACa,CAA4B,CAAE;AAEhE,UAAMM,IAAYC,EAAO,UAAU,UAAU;AAC7C,WAAOD,CAAS,EAAE,YAAYO,EAAO,KAAK;AAAA,EAC5C,CAAC,GAED,GAAG,kFAAkF,MAAM;AACzF,IAAAV,EAAO,gBAAAC,EAACC,GAAA,EAAU,QAAAL,EAAA,CAAgB,CAAE;AAEpC,UAAMM,IAAYC,EAAO,UAAU,UAAU;AAC7C,WAAOD,CAAS,EAAE,IAAI,YAAYO,EAAO,KAAK;AAAA,EAChD,CAAC;AAWH,CAAC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../../../src/components/SelectBoxController/index.tsx"],"sourcesContent":["import React from \"react\";\nimport { Clear } from \"@mui/icons-material\";\nimport {\n Box,\n FormControl,\n FormHelperText,\n IconButton,\n InputBaseComponentProps,\n MenuItem,\n Select,\n SelectChangeEvent,\n} from \"@mui/material\";\nimport {\n Controller,\n FieldPath,\n FieldValues,\n PathValue,\n type Control,\n} from \"react-hook-form\";\n\nimport styles from \"./index.module.scss\";\n\nexport type SelectBoxOption = {\n readonly label: string;\n readonly value: string | number;\n};\n\ntype Props<T extends FieldValues> = {\n control: Control<T>;\n name: FieldPath<T>;\n options: SelectBoxOption[];\n defaultValue?: PathValue<T, FieldPath<T>>;\n emptyValue?: [] | string | null | undefined;\n isMulti: boolean;\n placeholder?: string;\n onChange?: (\n event: SelectChangeEvent<unknown>,\n child: React.ReactNode,\n ) => void;\n onClear?: React.MouseEventHandler<HTMLButtonElement> | undefined;\n inputProps?: InputBaseComponentProps;\n};\n\nexport const SelectBoxController = <T extends FieldValues>(props: Props<T>) => {\n const {\n control,\n name,\n options,\n defaultValue,\n isMulti,\n placeholder,\n emptyValue = isMulti ? [] : \"\",\n onChange,\n onClear,\n inputProps,\n } = props;\n\n const existValue = (\n value: SelectBoxOption[\"value\"] | SelectBoxOption[] | null,\n ) => {\n return (Array.isArray(value) && value.length) || (!isMulti && value);\n };\n\n return (\n <Box display={\"grid\"}>\n <Controller\n control={control}\n name={name}\n defaultValue={defaultValue}\n render={({ field, fieldState }) => (\n <FormControl error={fieldState.invalid}>\n <Select\n {...field}\n onChange={(event, child) => {\n if (!isMulti && event.target.value === \"\") {\n field.onChange(undefined);\n } else {\n field.onChange(event);\n }\n onChange?.(event, child);\n }}\n multiple={isMulti}\n size=\"small\"\n value={field.value ?? emptyValue}\n displayEmpty\n inputProps={{ ...inputProps }}\n renderValue={() => {\n const value = field.value;\n if (isMulti && Array.isArray(value)) {\n if (value.length) {\n const labels = value.map(\n (val: SelectBoxOption[\"value\"]) =>\n options.find((option) => option.value === val)?.label,\n );\n return labels.join(\", \");\n }\n } else if (\n value &&\n (typeof value === \"string\" || typeof value === \"number\")\n ) {\n return options.find((option) => option.value === value)\n ?.label;\n }\n return (\n <span className={styles.placeholder}>{placeholder}</span>\n );\n }}\n endAdornment={\n <IconButton\n sx={{\n visibility: existValue(field.value) ? \"visible\" : \"hidden\",\n }}\n onClick={(event) => {\n field.onChange(\n isMulti ? [] : emptyValue === \"\" ? undefined : emptyValue,\n );\n onClear?.(event);\n }}\n >\n <Clear />\n </IconButton>\n }\n sx={{\n \"& .MuiSelect-iconOutlined\": {\n display: existValue(field.value) ? \"none\" : \"\",\n },\n \"&.Mui-focused .MuiIconButton-root\": {\n color: \"primary.main\",\n },\n \"& .MuiSelect-select \": {\n whiteSpace: \"break-spaces !important\",\n paddingRight: \"4px !important\",\n fontSize: {\n xs: \"1rem\",\n sm: \"0.875rem\",\n },\n paddingLeft: \"9.5px\",\n },\n paddingRight: \"4px !important\",\n }}\n >\n {options.map((m) => (\n <MenuItem value={m.value} key={m.value}>\n {\" \"}\n {m.label}{\" \"}\n </MenuItem>\n ))}\n </Select>\n <FormHelperText>{fieldState.error?.message}</FormHelperText>\n </FormControl>\n )}\n />\n </Box>\n );\n};\n\nexport default SelectBoxController;\n"],"names":["SelectBoxController","props","control","name","options","defaultValue","isMulti","placeholder","emptyValue","onChange","onClear","inputProps","existValue","value","jsx","Box","Controller","field","fieldState","jsxs","FormControl","Select","event","child","val","_a","option","styles","IconButton","Clear","m","MenuItem","FormHelperText"],"mappings":"qRA2CaA,EAA8CC,GAAoB,CACvE,KAAA,CACJ,QAAAC,EACA,KAAAC,EACA,QAAAC,EACA,aAAAC,EACA,QAAAC,EACA,YAAAC,EACA,WAAAC,EAAaF,EAAU,CAAA,EAAK,GAC5B,SAAAG,EACA,QAAAC,EACA,WAAAC,CAAA,EACEV,EAEEW,EACJC,GAEQ,MAAM,QAAQA,CAAK,GAAKA,EAAM,QAAY,CAACP,GAAWO,EAI9D,OAAAC,EAAAA,IAACC,EAAAA,IAAI,CAAA,QAAS,OACZ,SAAAD,EAAA,IAACE,EAAA,WAAA,CACC,QAAAd,EACA,KAAAC,EACA,aAAAE,EACA,OAAQ,CAAC,CAAE,MAAAY,EAAO,WAAAC,KACfC,OAAAA,OAAAA,EAAAA,KAAAC,EAAA,YAAA,CAAY,MAAOF,EAAW,QAC7B,SAAA,CAAAJ,EAAA,IAACO,EAAA,OAAA,CACE,GAAGJ,EACJ,SAAU,CAACK,EAAOC,IAAU,CACtB,CAACjB,GAAWgB,EAAM,OAAO,QAAU,GACrCL,EAAM,SAAS,MAAS,EAExBA,EAAM,SAASK,CAAK,EAEtBb,GAAA,MAAAA,EAAWa,EAAOC,EACpB,EACA,SAAUjB,EACV,KAAK,QACL,MAAOW,EAAM,OAAST,EACtB,aAAY,GACZ,WAAY,CAAE,GAAGG,CAAW,EAC5B,YAAa,IAAM,OACjB,MAAME,EAAQI,EAAM,MACpB,GAAIX,GAAW,MAAM,QAAQO,CAAK,GAChC,GAAIA,EAAM,OAKD,OAJQA,EAAM,IAClBW,UACC,OAAAC,EAAArB,EAAQ,KAAMsB,GAAWA,EAAO,QAAUF,CAAG,IAA7C,YAAAC,EAAgD,MACpD,EACc,KAAK,IAAI,UAGzBZ,IACC,OAAOA,GAAU,UAAY,OAAOA,GAAU,UAE/C,OAAOY,EAAArB,EAAQ,KAAMsB,GAAWA,EAAO,QAAUb,CAAK,IAA/C,YAAAY,EACH,MAEN,OACGX,EAAA,IAAA,OAAA,CAAK,UAAWa,EAAO,YAAc,SAAYpB,EAAA,CAEtD,EACA,aACEO,EAAA,IAACc,EAAA,WAAA,CACC,GAAI,CACF,WAAYhB,EAAWK,EAAM,KAAK,EAAI,UAAY,QACpD,EACA,QAAUK,GAAU,CACZL,EAAA,SACJX,EAAU,CAAK,EAAAE,IAAe,GAAK,OAAYA,CACjD,EACAE,GAAA,MAAAA,EAAUY,EACZ,EAEA,eAACO,EAAAA,MAAM,CAAA,CAAA,CAAA,CACT,EAEF,GAAI,CACF,4BAA6B,CAC3B,QAASjB,EAAWK,EAAM,KAAK,EAAI,OAAS,EAC9C,EACA,oCAAqC,CACnC,MAAO,cACT,EACA,uBAAwB,CACtB,WAAY,0BACZ,aAAc,iBACd,SAAU,CACR,GAAI,OACJ,GAAI,UACN,EACA,YAAa,OACf,EACA,aAAc,gBAChB,EAEC,SAAAb,EAAQ,IAAK0B,UACXC,EAAS,SAAA,CAAA,MAAOD,EAAE,MAChB,SAAA,CAAA,IACAA,EAAE,MAAO,GAAA,CAFmB,EAAAA,EAAE,KAGjC,CACD,CAAA,CACH,EACChB,EAAA,IAAAkB,EAAA,eAAA,CAAgB,UAAWP,EAAAP,EAAA,QAAA,YAAAO,EAAO,OAAQ,CAAA,CAAA,CAC7C,CAAA,EAAA,CAAA,EAGN,CAEJ"}
1
+ {"version":3,"file":"index.cjs.js","sources":["../../../src/components/SelectBoxController/index.tsx"],"sourcesContent":["import React from \"react\";\nimport { Clear } from \"@mui/icons-material\";\nimport {\n Box,\n FormControl,\n FormHelperText,\n IconButton,\n InputBaseComponentProps,\n MenuItem,\n Select,\n SelectChangeEvent,\n} from \"@mui/material\";\nimport {\n Controller,\n FieldPath,\n FieldValues,\n PathValue,\n type Control,\n} from \"react-hook-form\";\n\nimport styles from \"./index.module.scss\";\n\nexport type SelectBoxOption = {\n readonly label: string;\n readonly value: string | number;\n};\n\ntype Props<T extends FieldValues> = {\n control: Control<T>;\n name: FieldPath<T>;\n options: SelectBoxOption[];\n defaultValue?: PathValue<T, FieldPath<T>>;\n emptyValue?: [] | string | null | undefined;\n isMulti: boolean;\n placeholder?: string;\n onChange?: (\n event: SelectChangeEvent<unknown>,\n child: React.ReactNode,\n ) => void;\n onClear?: React.MouseEventHandler<HTMLButtonElement> | undefined;\n inputProps?: InputBaseComponentProps;\n};\n\nexport const SelectBoxController = <T extends FieldValues>(props: Props<T>) => {\n const {\n control,\n name,\n options,\n defaultValue,\n isMulti,\n placeholder,\n emptyValue = isMulti ? [] : \"\",\n onChange,\n onClear,\n inputProps,\n } = props;\n\n const existValue = (\n value: SelectBoxOption[\"value\"] | SelectBoxOption[] | null,\n ) => {\n return (Array.isArray(value) && value.length) || (!isMulti && value);\n };\n\n return (\n <Box display={\"grid\"}>\n <Controller\n control={control}\n name={name}\n defaultValue={defaultValue}\n render={({ field, fieldState }) => (\n <FormControl error={fieldState.invalid}>\n <Select\n {...field}\n onChange={(event, child) => {\n if (!isMulti && event.target.value === \"\") {\n field.onChange(undefined);\n } else {\n field.onChange(event);\n }\n onChange?.(event, child);\n }}\n multiple={isMulti}\n size=\"small\"\n value={field.value ?? emptyValue}\n displayEmpty\n inputProps={{ ...inputProps }}\n renderValue={() => {\n const value = field.value;\n if (isMulti && Array.isArray(value)) {\n if (value.length) {\n const labels = value.map(\n (val: SelectBoxOption[\"value\"]) =>\n options.find((option) => option.value === val)?.label,\n );\n return labels.join(\", \");\n }\n } else if (\n value &&\n (typeof value === \"string\" || typeof value === \"number\")\n ) {\n return options.find((option) => option.value === value)\n ?.label;\n }\n return (\n <span className={styles.placeholder}>{placeholder}</span>\n );\n }}\n endAdornment={\n <IconButton\n sx={{\n visibility: existValue(field.value) ? \"visible\" : \"hidden\",\n }}\n onClick={(event) => {\n field.onChange(\n isMulti ? [] : emptyValue === \"\" ? undefined : emptyValue,\n );\n onClear?.(event);\n }}\n >\n <Clear />\n </IconButton>\n }\n sx={{\n \"& .MuiSelect-iconOutlined\": {\n display: existValue(field.value) ? \"none\" : \"\",\n },\n \"&.Mui-focused .MuiIconButton-root\": {\n color: \"primary.main\",\n },\n \"& .MuiSelect-select \": {\n whiteSpace: \"break-spaces !important\",\n paddingRight: \"4px !important\",\n fontSize: {\n xs: \"1rem\",\n sm: \"0.875rem\",\n },\n paddingLeft: \"9.5px\",\n },\n paddingRight: \"4px !important\",\n }}\n >\n {options.map((m) => (\n <MenuItem value={m.value} key={m.value}>\n {\" \"}\n {m.label}{\" \"}\n </MenuItem>\n ))}\n </Select>\n <FormHelperText>{fieldState.error?.message}</FormHelperText>\n </FormControl>\n )}\n />\n </Box>\n );\n};\n\nexport default SelectBoxController;\n"],"names":["SelectBoxController","props","control","name","options","defaultValue","isMulti","placeholder","emptyValue","onChange","onClear","inputProps","existValue","value","jsx","Box","Controller","field","fieldState","jsxs","FormControl","Select","event","child","val","_a","option","styles","IconButton","Clear","m","MenuItem","FormHelperText"],"mappings":"qRA2CaA,EAA8CC,GAAoB,CAC7E,KAAM,CACJ,QAAAC,EACA,KAAAC,EACA,QAAAC,EACA,aAAAC,EACA,QAAAC,EACA,YAAAC,EACA,WAAAC,EAAaF,EAAU,CAAA,EAAK,GAC5B,SAAAG,EACA,QAAAC,EACA,WAAAC,CAAA,EACEV,EAEEW,EACJC,GAEQ,MAAM,QAAQA,CAAK,GAAKA,EAAM,QAAY,CAACP,GAAWO,EAGhE,OACEC,EAAAA,IAACC,EAAAA,IAAA,CAAI,QAAS,OACZ,SAAAD,EAAAA,IAACE,EAAAA,WAAA,CACC,QAAAd,EACA,KAAAC,EACA,aAAAE,EACA,OAAQ,CAAC,CAAE,MAAAY,EAAO,WAAAC,YAChBC,OAAAA,EAAAA,KAACC,EAAAA,YAAA,CAAY,MAAOF,EAAW,QAC7B,SAAA,CAAAJ,EAAAA,IAACO,EAAAA,OAAA,CACE,GAAGJ,EACJ,SAAU,CAACK,EAAOC,IAAU,CACtB,CAACjB,GAAWgB,EAAM,OAAO,QAAU,GACrCL,EAAM,SAAS,MAAS,EAExBA,EAAM,SAASK,CAAK,EAEtBb,GAAA,MAAAA,EAAWa,EAAOC,EACpB,EACA,SAAUjB,EACV,KAAK,QACL,MAAOW,EAAM,OAAST,EACtB,aAAY,GACZ,WAAY,CAAE,GAAGG,CAAA,EACjB,YAAa,IAAM,OACjB,MAAME,EAAQI,EAAM,MACpB,GAAIX,GAAW,MAAM,QAAQO,CAAK,GAChC,GAAIA,EAAM,OAKR,OAJeA,EAAM,IAClBW,UACC,OAAAC,EAAArB,EAAQ,KAAMsB,GAAWA,EAAO,QAAUF,CAAG,IAA7C,YAAAC,EAAgD,MAAA,EAEtC,KAAK,IAAI,UAGzBZ,IACC,OAAOA,GAAU,UAAY,OAAOA,GAAU,UAE/C,OAAOY,EAAArB,EAAQ,KAAMsB,GAAWA,EAAO,QAAUb,CAAK,IAA/C,YAAAY,EACH,MAEN,OACEX,EAAAA,IAAC,OAAA,CAAK,UAAWa,EAAO,YAAc,SAAApB,EAAY,CAEtD,EACA,aACEO,EAAAA,IAACc,EAAAA,WAAA,CACC,GAAI,CACF,WAAYhB,EAAWK,EAAM,KAAK,EAAI,UAAY,QAAA,EAEpD,QAAUK,GAAU,CAClBL,EAAM,SACJX,EAAU,CAAA,EAAKE,IAAe,GAAK,OAAYA,CAAA,EAEjDE,GAAA,MAAAA,EAAUY,EACZ,EAEA,eAACO,EAAAA,MAAA,CAAA,CAAM,CAAA,CAAA,EAGX,GAAI,CACF,4BAA6B,CAC3B,QAASjB,EAAWK,EAAM,KAAK,EAAI,OAAS,EAAA,EAE9C,oCAAqC,CACnC,MAAO,cAAA,EAET,uBAAwB,CACtB,WAAY,0BACZ,aAAc,iBACd,SAAU,CACR,GAAI,OACJ,GAAI,UAAA,EAEN,YAAa,OAAA,EAEf,aAAc,gBAAA,EAGf,SAAAb,EAAQ,IAAK0B,UACXC,EAAAA,SAAA,CAAS,MAAOD,EAAE,MAChB,SAAA,CAAA,IACAA,EAAE,MAAO,GAAA,CAAA,EAFmBA,EAAE,KAGjC,CACD,CAAA,CAAA,EAEHhB,EAAAA,IAACkB,EAAAA,eAAA,CAAgB,UAAAP,EAAAP,EAAW,QAAX,YAAAO,EAAkB,OAAA,CAAQ,CAAA,CAAA,CAC7C,EAAA,CAAA,EAGN,CAEJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":["../../../src/components/SelectBoxController/index.tsx"],"sourcesContent":["import React from \"react\";\nimport { Clear } from \"@mui/icons-material\";\nimport {\n Box,\n FormControl,\n FormHelperText,\n IconButton,\n InputBaseComponentProps,\n MenuItem,\n Select,\n SelectChangeEvent,\n} from \"@mui/material\";\nimport {\n Controller,\n FieldPath,\n FieldValues,\n PathValue,\n type Control,\n} from \"react-hook-form\";\n\nimport styles from \"./index.module.scss\";\n\nexport type SelectBoxOption = {\n readonly label: string;\n readonly value: string | number;\n};\n\ntype Props<T extends FieldValues> = {\n control: Control<T>;\n name: FieldPath<T>;\n options: SelectBoxOption[];\n defaultValue?: PathValue<T, FieldPath<T>>;\n emptyValue?: [] | string | null | undefined;\n isMulti: boolean;\n placeholder?: string;\n onChange?: (\n event: SelectChangeEvent<unknown>,\n child: React.ReactNode,\n ) => void;\n onClear?: React.MouseEventHandler<HTMLButtonElement> | undefined;\n inputProps?: InputBaseComponentProps;\n};\n\nexport const SelectBoxController = <T extends FieldValues>(props: Props<T>) => {\n const {\n control,\n name,\n options,\n defaultValue,\n isMulti,\n placeholder,\n emptyValue = isMulti ? [] : \"\",\n onChange,\n onClear,\n inputProps,\n } = props;\n\n const existValue = (\n value: SelectBoxOption[\"value\"] | SelectBoxOption[] | null,\n ) => {\n return (Array.isArray(value) && value.length) || (!isMulti && value);\n };\n\n return (\n <Box display={\"grid\"}>\n <Controller\n control={control}\n name={name}\n defaultValue={defaultValue}\n render={({ field, fieldState }) => (\n <FormControl error={fieldState.invalid}>\n <Select\n {...field}\n onChange={(event, child) => {\n if (!isMulti && event.target.value === \"\") {\n field.onChange(undefined);\n } else {\n field.onChange(event);\n }\n onChange?.(event, child);\n }}\n multiple={isMulti}\n size=\"small\"\n value={field.value ?? emptyValue}\n displayEmpty\n inputProps={{ ...inputProps }}\n renderValue={() => {\n const value = field.value;\n if (isMulti && Array.isArray(value)) {\n if (value.length) {\n const labels = value.map(\n (val: SelectBoxOption[\"value\"]) =>\n options.find((option) => option.value === val)?.label,\n );\n return labels.join(\", \");\n }\n } else if (\n value &&\n (typeof value === \"string\" || typeof value === \"number\")\n ) {\n return options.find((option) => option.value === value)\n ?.label;\n }\n return (\n <span className={styles.placeholder}>{placeholder}</span>\n );\n }}\n endAdornment={\n <IconButton\n sx={{\n visibility: existValue(field.value) ? \"visible\" : \"hidden\",\n }}\n onClick={(event) => {\n field.onChange(\n isMulti ? [] : emptyValue === \"\" ? undefined : emptyValue,\n );\n onClear?.(event);\n }}\n >\n <Clear />\n </IconButton>\n }\n sx={{\n \"& .MuiSelect-iconOutlined\": {\n display: existValue(field.value) ? \"none\" : \"\",\n },\n \"&.Mui-focused .MuiIconButton-root\": {\n color: \"primary.main\",\n },\n \"& .MuiSelect-select \": {\n whiteSpace: \"break-spaces !important\",\n paddingRight: \"4px !important\",\n fontSize: {\n xs: \"1rem\",\n sm: \"0.875rem\",\n },\n paddingLeft: \"9.5px\",\n },\n paddingRight: \"4px !important\",\n }}\n >\n {options.map((m) => (\n <MenuItem value={m.value} key={m.value}>\n {\" \"}\n {m.label}{\" \"}\n </MenuItem>\n ))}\n </Select>\n <FormHelperText>{fieldState.error?.message}</FormHelperText>\n </FormControl>\n )}\n />\n </Box>\n );\n};\n\nexport default SelectBoxController;\n"],"names":["SelectBoxController","props","control","name","options","defaultValue","isMulti","placeholder","emptyValue","onChange","onClear","inputProps","existValue","value","jsx","Box","Controller","field","fieldState","jsxs","FormControl","Select","event","child","val","_a","option","styles","IconButton","Clear","m","MenuItem","FormHelperText"],"mappings":"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"}
1
+ {"version":3,"file":"index.es.js","sources":["../../../src/components/SelectBoxController/index.tsx"],"sourcesContent":["import React from \"react\";\nimport { Clear } from \"@mui/icons-material\";\nimport {\n Box,\n FormControl,\n FormHelperText,\n IconButton,\n InputBaseComponentProps,\n MenuItem,\n Select,\n SelectChangeEvent,\n} from \"@mui/material\";\nimport {\n Controller,\n FieldPath,\n FieldValues,\n PathValue,\n type Control,\n} from \"react-hook-form\";\n\nimport styles from \"./index.module.scss\";\n\nexport type SelectBoxOption = {\n readonly label: string;\n readonly value: string | number;\n};\n\ntype Props<T extends FieldValues> = {\n control: Control<T>;\n name: FieldPath<T>;\n options: SelectBoxOption[];\n defaultValue?: PathValue<T, FieldPath<T>>;\n emptyValue?: [] | string | null | undefined;\n isMulti: boolean;\n placeholder?: string;\n onChange?: (\n event: SelectChangeEvent<unknown>,\n child: React.ReactNode,\n ) => void;\n onClear?: React.MouseEventHandler<HTMLButtonElement> | undefined;\n inputProps?: InputBaseComponentProps;\n};\n\nexport const SelectBoxController = <T extends FieldValues>(props: Props<T>) => {\n const {\n control,\n name,\n options,\n defaultValue,\n isMulti,\n placeholder,\n emptyValue = isMulti ? [] : \"\",\n onChange,\n onClear,\n inputProps,\n } = props;\n\n const existValue = (\n value: SelectBoxOption[\"value\"] | SelectBoxOption[] | null,\n ) => {\n return (Array.isArray(value) && value.length) || (!isMulti && value);\n };\n\n return (\n <Box display={\"grid\"}>\n <Controller\n control={control}\n name={name}\n defaultValue={defaultValue}\n render={({ field, fieldState }) => (\n <FormControl error={fieldState.invalid}>\n <Select\n {...field}\n onChange={(event, child) => {\n if (!isMulti && event.target.value === \"\") {\n field.onChange(undefined);\n } else {\n field.onChange(event);\n }\n onChange?.(event, child);\n }}\n multiple={isMulti}\n size=\"small\"\n value={field.value ?? emptyValue}\n displayEmpty\n inputProps={{ ...inputProps }}\n renderValue={() => {\n const value = field.value;\n if (isMulti && Array.isArray(value)) {\n if (value.length) {\n const labels = value.map(\n (val: SelectBoxOption[\"value\"]) =>\n options.find((option) => option.value === val)?.label,\n );\n return labels.join(\", \");\n }\n } else if (\n value &&\n (typeof value === \"string\" || typeof value === \"number\")\n ) {\n return options.find((option) => option.value === value)\n ?.label;\n }\n return (\n <span className={styles.placeholder}>{placeholder}</span>\n );\n }}\n endAdornment={\n <IconButton\n sx={{\n visibility: existValue(field.value) ? \"visible\" : \"hidden\",\n }}\n onClick={(event) => {\n field.onChange(\n isMulti ? [] : emptyValue === \"\" ? undefined : emptyValue,\n );\n onClear?.(event);\n }}\n >\n <Clear />\n </IconButton>\n }\n sx={{\n \"& .MuiSelect-iconOutlined\": {\n display: existValue(field.value) ? \"none\" : \"\",\n },\n \"&.Mui-focused .MuiIconButton-root\": {\n color: \"primary.main\",\n },\n \"& .MuiSelect-select \": {\n whiteSpace: \"break-spaces !important\",\n paddingRight: \"4px !important\",\n fontSize: {\n xs: \"1rem\",\n sm: \"0.875rem\",\n },\n paddingLeft: \"9.5px\",\n },\n paddingRight: \"4px !important\",\n }}\n >\n {options.map((m) => (\n <MenuItem value={m.value} key={m.value}>\n {\" \"}\n {m.label}{\" \"}\n </MenuItem>\n ))}\n </Select>\n <FormHelperText>{fieldState.error?.message}</FormHelperText>\n </FormControl>\n )}\n />\n </Box>\n );\n};\n\nexport default SelectBoxController;\n"],"names":["SelectBoxController","props","control","name","options","defaultValue","isMulti","placeholder","emptyValue","onChange","onClear","inputProps","existValue","value","jsx","Box","Controller","field","fieldState","jsxs","FormControl","Select","event","child","val","_a","option","styles","IconButton","Clear","m","MenuItem","FormHelperText"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";const u=require("react/jsx-runtime"),e=require("../../react.esm-CiMn0Rnx.cjs"),p=require("react-hook-form"),d=require("./index.cjs.js");describe("SelectBoxController component",()=>{it("renders select box with options and correct default value",()=>{const{result:l}=e.renderHook(()=>p.useForm()),{control:s}=l.current,r="TestSelect",n="Select an option",t=[{label:"Option 1",value:"option1"},{label:"Option 2",value:"option2"},{label:"Option 3",value:"option3"}],c=["option2"];e.render(u.jsx(d.SelectBoxController,{control:s,name:r,options:t,defaultValue:c,isMulti:!0,placeholder:n})),c.forEach(o=>{const a=t.find(x=>x.value===o);a&&expect(e.screen.getByText(a.label)).toBeInTheDocument()})}),it("renders select box with options and correct default value for single select",()=>{const{result:l}=e.renderHook(()=>p.useForm()),{control:s}=l.current,r="TestSelect",n=[{label:"Option 1",value:"option1"},{label:"Option 2",value:"option2"},{label:"Option 3",value:"option3"}],t="option2";e.render(u.jsx(d.SelectBoxController,{control:s,name:r,options:n,defaultValue:t,isMulti:!1}));const i=n.find(o=>o.value===t);if(i){const o=e.screen.getByText(i.label);expect(o).toBeInTheDocument()}})});
1
+ "use strict";const u=require("react/jsx-runtime"),e=require("../../react.esm-DGuy6Rn3.cjs"),p=require("react-hook-form"),d=require("./index.cjs.js");describe("SelectBoxController component",()=>{it("renders select box with options and correct default value",()=>{const{result:l}=e.renderHook(()=>p.useForm()),{control:s}=l.current,r="TestSelect",n="Select an option",t=[{label:"Option 1",value:"option1"},{label:"Option 2",value:"option2"},{label:"Option 3",value:"option3"}],c=["option2"];e.render(u.jsx(d.SelectBoxController,{control:s,name:r,options:t,defaultValue:c,isMulti:!0,placeholder:n})),c.forEach(o=>{const a=t.find(x=>x.value===o);a&&expect(e.screen.getByText(a.label)).toBeInTheDocument()})}),it("renders select box with options and correct default value for single select",()=>{const{result:l}=e.renderHook(()=>p.useForm()),{control:s}=l.current,r="TestSelect",n=[{label:"Option 1",value:"option1"},{label:"Option 2",value:"option2"},{label:"Option 3",value:"option3"}],t="option2";e.render(u.jsx(d.SelectBoxController,{control:s,name:r,options:n,defaultValue:t,isMulti:!1}));const i=n.find(o=>o.value===t);if(i){const o=e.screen.getByText(i.label);expect(o).toBeInTheDocument()}})});
2
2
  //# sourceMappingURL=index.test.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.test.cjs.js","sources":["../../../src/components/SelectBoxController/index.test.tsx"],"sourcesContent":["import { render, renderHook, screen } from \"@testing-library/react\";\nimport { useForm } from \"react-hook-form\";\n\nimport SelectBoxController from \".\";\n\ndescribe(\"SelectBoxController component\", () => {\n it(\"renders select box with options and correct default value\", () => {\n const { result } = renderHook(() => useForm());\n const { control } = result.current;\n\n const testName = \"TestSelect\";\n const placeholder = \"Select an option\";\n const options = [\n { label: \"Option 1\", value: \"option1\" },\n { label: \"Option 2\", value: \"option2\" },\n { label: \"Option 3\", value: \"option3\" },\n ];\n const defaultValue = [\"option2\"]; // Example of default value\n const isMulti = true; // Example of multi-select\n\n render(\n <SelectBoxController\n control={control}\n name={testName}\n options={options}\n defaultValue={defaultValue}\n isMulti={isMulti}\n placeholder={placeholder}\n />,\n );\n\n // Check if the select box renders with correct default value\n defaultValue.forEach((value) => {\n const option = options.find((opt) => opt.value === value);\n if (option) {\n expect(screen.getByText(option.label)).toBeInTheDocument();\n }\n });\n });\n\n it(\"renders select box with options and correct default value for single select\", () => {\n const { result } = renderHook(() => useForm());\n const { control } = result.current;\n\n const testName = \"TestSelect\";\n const options = [\n { label: \"Option 1\", value: \"option1\" },\n { label: \"Option 2\", value: \"option2\" },\n { label: \"Option 3\", value: \"option3\" },\n ];\n const defaultValue = \"option2\"; // Example of default value for single select\n const isMulti = false; // Example of single select\n\n render(\n <SelectBoxController\n control={control}\n name={testName}\n options={options}\n defaultValue={defaultValue}\n isMulti={isMulti}\n />,\n );\n\n // Check if the select box renders with correct default value\n const option = options.find((opt) => opt.value === defaultValue);\n if (option) {\n // Check if the default value's label is displayed\n const displayedValue = screen.getByText(option.label);\n expect(displayedValue).toBeInTheDocument();\n }\n });\n});\n"],"names":["result","renderHook","useForm","control","testName","placeholder","options","defaultValue","render","jsx","SelectBoxController","value","option","opt","screen","displayedValue"],"mappings":"qJAKA,SAAS,gCAAiC,IAAM,CAC9C,GAAG,4DAA6D,IAAM,CACpE,KAAM,CAAE,OAAAA,CAAO,EAAIC,aAAW,IAAMC,WAAS,EACvC,CAAE,QAAAC,GAAYH,EAAO,QAErBI,EAAW,aACXC,EAAc,mBACdC,EAAU,CACd,CAAE,MAAO,WAAY,MAAO,SAAU,EACtC,CAAE,MAAO,WAAY,MAAO,SAAU,EACtC,CAAE,MAAO,WAAY,MAAO,SAAU,CACxC,EACMC,EAAe,CAAC,SAAS,EAG/BC,EAAA,OACEC,EAAA,IAACC,EAAA,oBAAA,CACC,QAAAP,EACA,KAAMC,EACN,QAAAE,EACA,aAAAC,EACA,QARY,GASZ,YAAAF,CAAA,CAAA,CAEJ,EAGaE,EAAA,QAASI,GAAU,CAC9B,MAAMC,EAASN,EAAQ,KAAMO,GAAQA,EAAI,QAAUF,CAAK,EACpDC,GACF,OAAOE,SAAO,UAAUF,EAAO,KAAK,CAAC,EAAE,kBAAkB,CAC3D,CACD,CAAA,CACF,EAED,GAAG,8EAA+E,IAAM,CACtF,KAAM,CAAE,OAAAZ,CAAO,EAAIC,aAAW,IAAMC,WAAS,EACvC,CAAE,QAAAC,GAAYH,EAAO,QAErBI,EAAW,aACXE,EAAU,CACd,CAAE,MAAO,WAAY,MAAO,SAAU,EACtC,CAAE,MAAO,WAAY,MAAO,SAAU,EACtC,CAAE,MAAO,WAAY,MAAO,SAAU,CACxC,EACMC,EAAe,UAGrBC,EAAA,OACEC,EAAA,IAACC,EAAA,oBAAA,CACC,QAAAP,EACA,KAAMC,EACN,QAAAE,EACA,aAAAC,EACA,QARY,EAQZ,CAAA,CAEJ,EAGA,MAAMK,EAASN,EAAQ,KAAMO,GAAQA,EAAI,QAAUN,CAAY,EAC/D,GAAIK,EAAQ,CAEV,MAAMG,EAAiBD,EAAA,OAAO,UAAUF,EAAO,KAAK,EAC7C,OAAAG,CAAc,EAAE,kBAAkB,CAAA,CAC3C,CACD,CACH,CAAC"}
1
+ {"version":3,"file":"index.test.cjs.js","sources":["../../../src/components/SelectBoxController/index.test.tsx"],"sourcesContent":["import { render, renderHook, screen } from \"@testing-library/react\";\nimport { useForm } from \"react-hook-form\";\n\nimport SelectBoxController from \".\";\n\ndescribe(\"SelectBoxController component\", () => {\n it(\"renders select box with options and correct default value\", () => {\n const { result } = renderHook(() => useForm());\n const { control } = result.current;\n\n const testName = \"TestSelect\";\n const placeholder = \"Select an option\";\n const options = [\n { label: \"Option 1\", value: \"option1\" },\n { label: \"Option 2\", value: \"option2\" },\n { label: \"Option 3\", value: \"option3\" },\n ];\n const defaultValue = [\"option2\"]; // Example of default value\n const isMulti = true; // Example of multi-select\n\n render(\n <SelectBoxController\n control={control}\n name={testName}\n options={options}\n defaultValue={defaultValue}\n isMulti={isMulti}\n placeholder={placeholder}\n />,\n );\n\n // Check if the select box renders with correct default value\n defaultValue.forEach((value) => {\n const option = options.find((opt) => opt.value === value);\n if (option) {\n expect(screen.getByText(option.label)).toBeInTheDocument();\n }\n });\n });\n\n it(\"renders select box with options and correct default value for single select\", () => {\n const { result } = renderHook(() => useForm());\n const { control } = result.current;\n\n const testName = \"TestSelect\";\n const options = [\n { label: \"Option 1\", value: \"option1\" },\n { label: \"Option 2\", value: \"option2\" },\n { label: \"Option 3\", value: \"option3\" },\n ];\n const defaultValue = \"option2\"; // Example of default value for single select\n const isMulti = false; // Example of single select\n\n render(\n <SelectBoxController\n control={control}\n name={testName}\n options={options}\n defaultValue={defaultValue}\n isMulti={isMulti}\n />,\n );\n\n // Check if the select box renders with correct default value\n const option = options.find((opt) => opt.value === defaultValue);\n if (option) {\n // Check if the default value's label is displayed\n const displayedValue = screen.getByText(option.label);\n expect(displayedValue).toBeInTheDocument();\n }\n });\n});\n"],"names":["result","renderHook","useForm","control","testName","placeholder","options","defaultValue","render","jsx","SelectBoxController","value","option","opt","screen","displayedValue"],"mappings":"qJAKA,SAAS,gCAAiC,IAAM,CAC9C,GAAG,4DAA6D,IAAM,CACpE,KAAM,CAAE,OAAAA,CAAA,EAAWC,aAAW,IAAMC,EAAAA,SAAS,EACvC,CAAE,QAAAC,GAAYH,EAAO,QAErBI,EAAW,aACXC,EAAc,mBACdC,EAAU,CACd,CAAE,MAAO,WAAY,MAAO,SAAA,EAC5B,CAAE,MAAO,WAAY,MAAO,SAAA,EAC5B,CAAE,MAAO,WAAY,MAAO,SAAA,CAAU,EAElCC,EAAe,CAAC,SAAS,EAG/BC,EAAAA,OACEC,EAAAA,IAACC,EAAAA,oBAAA,CACC,QAAAP,EACA,KAAMC,EACN,QAAAE,EACA,aAAAC,EACA,QARY,GASZ,YAAAF,CAAA,CAAA,CACF,EAIFE,EAAa,QAASI,GAAU,CAC9B,MAAMC,EAASN,EAAQ,KAAMO,GAAQA,EAAI,QAAUF,CAAK,EACpDC,GACF,OAAOE,EAAAA,OAAO,UAAUF,EAAO,KAAK,CAAC,EAAE,kBAAA,CAE3C,CAAC,CACH,CAAC,EAED,GAAG,8EAA+E,IAAM,CACtF,KAAM,CAAE,OAAAZ,CAAA,EAAWC,aAAW,IAAMC,EAAAA,SAAS,EACvC,CAAE,QAAAC,GAAYH,EAAO,QAErBI,EAAW,aACXE,EAAU,CACd,CAAE,MAAO,WAAY,MAAO,SAAA,EAC5B,CAAE,MAAO,WAAY,MAAO,SAAA,EAC5B,CAAE,MAAO,WAAY,MAAO,SAAA,CAAU,EAElCC,EAAe,UAGrBC,EAAAA,OACEC,EAAAA,IAACC,EAAAA,oBAAA,CACC,QAAAP,EACA,KAAMC,EACN,QAAAE,EACA,aAAAC,EACA,QARY,EAQZ,CAAA,CACF,EAIF,MAAMK,EAASN,EAAQ,KAAMO,GAAQA,EAAI,QAAUN,CAAY,EAC/D,GAAIK,EAAQ,CAEV,MAAMG,EAAiBD,EAAAA,OAAO,UAAUF,EAAO,KAAK,EACpD,OAAOG,CAAc,EAAE,kBAAA,CACzB,CACF,CAAC,CACH,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { jsx as r } from "react/jsx-runtime";
2
- import { a as p, r as u, s as d } from "../../react.esm-2FJSSo-S.js";
2
+ import { a as p, r as u, s as d } from "../../react.esm-BBESb8eI.js";
3
3
  import { useForm as m } from "react-hook-form";
4
4
  import { SelectBoxController as f } from "./index.es.js";
5
5
  describe("SelectBoxController component", () => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.test.es.js","sources":["../../../src/components/SelectBoxController/index.test.tsx"],"sourcesContent":["import { render, renderHook, screen } from \"@testing-library/react\";\nimport { useForm } from \"react-hook-form\";\n\nimport SelectBoxController from \".\";\n\ndescribe(\"SelectBoxController component\", () => {\n it(\"renders select box with options and correct default value\", () => {\n const { result } = renderHook(() => useForm());\n const { control } = result.current;\n\n const testName = \"TestSelect\";\n const placeholder = \"Select an option\";\n const options = [\n { label: \"Option 1\", value: \"option1\" },\n { label: \"Option 2\", value: \"option2\" },\n { label: \"Option 3\", value: \"option3\" },\n ];\n const defaultValue = [\"option2\"]; // Example of default value\n const isMulti = true; // Example of multi-select\n\n render(\n <SelectBoxController\n control={control}\n name={testName}\n options={options}\n defaultValue={defaultValue}\n isMulti={isMulti}\n placeholder={placeholder}\n />,\n );\n\n // Check if the select box renders with correct default value\n defaultValue.forEach((value) => {\n const option = options.find((opt) => opt.value === value);\n if (option) {\n expect(screen.getByText(option.label)).toBeInTheDocument();\n }\n });\n });\n\n it(\"renders select box with options and correct default value for single select\", () => {\n const { result } = renderHook(() => useForm());\n const { control } = result.current;\n\n const testName = \"TestSelect\";\n const options = [\n { label: \"Option 1\", value: \"option1\" },\n { label: \"Option 2\", value: \"option2\" },\n { label: \"Option 3\", value: \"option3\" },\n ];\n const defaultValue = \"option2\"; // Example of default value for single select\n const isMulti = false; // Example of single select\n\n render(\n <SelectBoxController\n control={control}\n name={testName}\n options={options}\n defaultValue={defaultValue}\n isMulti={isMulti}\n />,\n );\n\n // Check if the select box renders with correct default value\n const option = options.find((opt) => opt.value === defaultValue);\n if (option) {\n // Check if the default value's label is displayed\n const displayedValue = screen.getByText(option.label);\n expect(displayedValue).toBeInTheDocument();\n }\n });\n});\n"],"names":["result","renderHook","useForm","control","testName","placeholder","options","defaultValue","render","jsx","SelectBoxController","value","option","opt","screen","displayedValue"],"mappings":";;;;AAKA,SAAS,iCAAiC,MAAM;AAC9C,KAAG,6DAA6D,MAAM;AACpE,UAAM,EAAE,QAAAA,EAAO,IAAIC,EAAW,MAAMC,GAAS,GACvC,EAAE,SAAAC,MAAYH,EAAO,SAErBI,IAAW,cACXC,IAAc,oBACdC,IAAU;AAAA,MACd,EAAE,OAAO,YAAY,OAAO,UAAU;AAAA,MACtC,EAAE,OAAO,YAAY,OAAO,UAAU;AAAA,MACtC,EAAE,OAAO,YAAY,OAAO,UAAU;AAAA,IACxC,GACMC,IAAe,CAAC,SAAS;AAG/B,IAAAC;AAAA,MACE,gBAAAC;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,SAAAP;AAAA,UACA,MAAMC;AAAA,UACN,SAAAE;AAAA,UACA,cAAAC;AAAA,UACA,SARY;AAAA,UASZ,aAAAF;AAAA,QAAA;AAAA,MAAA;AAAA,IAEJ,GAGaE,EAAA,QAAQ,CAACI,MAAU;AAC9B,YAAMC,IAASN,EAAQ,KAAK,CAACO,MAAQA,EAAI,UAAUF,CAAK;AACxD,MAAIC,KACF,OAAOE,EAAO,UAAUF,EAAO,KAAK,CAAC,EAAE,kBAAkB;AAAA,IAC3D,CACD;AAAA,EAAA,CACF,GAED,GAAG,+EAA+E,MAAM;AACtF,UAAM,EAAE,QAAAZ,EAAO,IAAIC,EAAW,MAAMC,GAAS,GACvC,EAAE,SAAAC,MAAYH,EAAO,SAErBI,IAAW,cACXE,IAAU;AAAA,MACd,EAAE,OAAO,YAAY,OAAO,UAAU;AAAA,MACtC,EAAE,OAAO,YAAY,OAAO,UAAU;AAAA,MACtC,EAAE,OAAO,YAAY,OAAO,UAAU;AAAA,IACxC,GACMC,IAAe;AAGrB,IAAAC;AAAA,MACE,gBAAAC;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,SAAAP;AAAA,UACA,MAAMC;AAAA,UACN,SAAAE;AAAA,UACA,cAAAC;AAAA,UACA,SARY;AAAA,QAQZ;AAAA,MAAA;AAAA,IAEJ;AAGA,UAAMK,IAASN,EAAQ,KAAK,CAACO,MAAQA,EAAI,UAAUN,CAAY;AAC/D,QAAIK,GAAQ;AAEV,YAAMG,IAAiBD,EAAO,UAAUF,EAAO,KAAK;AAC7C,aAAAG,CAAc,EAAE,kBAAkB;AAAA,IAAA;AAAA,EAC3C,CACD;AACH,CAAC;"}
1
+ {"version":3,"file":"index.test.es.js","sources":["../../../src/components/SelectBoxController/index.test.tsx"],"sourcesContent":["import { render, renderHook, screen } from \"@testing-library/react\";\nimport { useForm } from \"react-hook-form\";\n\nimport SelectBoxController from \".\";\n\ndescribe(\"SelectBoxController component\", () => {\n it(\"renders select box with options and correct default value\", () => {\n const { result } = renderHook(() => useForm());\n const { control } = result.current;\n\n const testName = \"TestSelect\";\n const placeholder = \"Select an option\";\n const options = [\n { label: \"Option 1\", value: \"option1\" },\n { label: \"Option 2\", value: \"option2\" },\n { label: \"Option 3\", value: \"option3\" },\n ];\n const defaultValue = [\"option2\"]; // Example of default value\n const isMulti = true; // Example of multi-select\n\n render(\n <SelectBoxController\n control={control}\n name={testName}\n options={options}\n defaultValue={defaultValue}\n isMulti={isMulti}\n placeholder={placeholder}\n />,\n );\n\n // Check if the select box renders with correct default value\n defaultValue.forEach((value) => {\n const option = options.find((opt) => opt.value === value);\n if (option) {\n expect(screen.getByText(option.label)).toBeInTheDocument();\n }\n });\n });\n\n it(\"renders select box with options and correct default value for single select\", () => {\n const { result } = renderHook(() => useForm());\n const { control } = result.current;\n\n const testName = \"TestSelect\";\n const options = [\n { label: \"Option 1\", value: \"option1\" },\n { label: \"Option 2\", value: \"option2\" },\n { label: \"Option 3\", value: \"option3\" },\n ];\n const defaultValue = \"option2\"; // Example of default value for single select\n const isMulti = false; // Example of single select\n\n render(\n <SelectBoxController\n control={control}\n name={testName}\n options={options}\n defaultValue={defaultValue}\n isMulti={isMulti}\n />,\n );\n\n // Check if the select box renders with correct default value\n const option = options.find((opt) => opt.value === defaultValue);\n if (option) {\n // Check if the default value's label is displayed\n const displayedValue = screen.getByText(option.label);\n expect(displayedValue).toBeInTheDocument();\n }\n });\n});\n"],"names":["result","renderHook","useForm","control","testName","placeholder","options","defaultValue","render","jsx","SelectBoxController","value","option","opt","screen","displayedValue"],"mappings":";;;;AAKA,SAAS,iCAAiC,MAAM;AAC9C,KAAG,6DAA6D,MAAM;AACpE,UAAM,EAAE,QAAAA,EAAA,IAAWC,EAAW,MAAMC,GAAS,GACvC,EAAE,SAAAC,MAAYH,EAAO,SAErBI,IAAW,cACXC,IAAc,oBACdC,IAAU;AAAA,MACd,EAAE,OAAO,YAAY,OAAO,UAAA;AAAA,MAC5B,EAAE,OAAO,YAAY,OAAO,UAAA;AAAA,MAC5B,EAAE,OAAO,YAAY,OAAO,UAAA;AAAA,IAAU,GAElCC,IAAe,CAAC,SAAS;AAG/B,IAAAC;AAAA,MACE,gBAAAC;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,SAAAP;AAAA,UACA,MAAMC;AAAA,UACN,SAAAE;AAAA,UACA,cAAAC;AAAA,UACA,SARY;AAAA,UASZ,aAAAF;AAAA,QAAA;AAAA,MAAA;AAAA,IACF,GAIFE,EAAa,QAAQ,CAACI,MAAU;AAC9B,YAAMC,IAASN,EAAQ,KAAK,CAACO,MAAQA,EAAI,UAAUF,CAAK;AACxD,MAAIC,KACF,OAAOE,EAAO,UAAUF,EAAO,KAAK,CAAC,EAAE,kBAAA;AAAA,IAE3C,CAAC;AAAA,EACH,CAAC,GAED,GAAG,+EAA+E,MAAM;AACtF,UAAM,EAAE,QAAAZ,EAAA,IAAWC,EAAW,MAAMC,GAAS,GACvC,EAAE,SAAAC,MAAYH,EAAO,SAErBI,IAAW,cACXE,IAAU;AAAA,MACd,EAAE,OAAO,YAAY,OAAO,UAAA;AAAA,MAC5B,EAAE,OAAO,YAAY,OAAO,UAAA;AAAA,MAC5B,EAAE,OAAO,YAAY,OAAO,UAAA;AAAA,IAAU,GAElCC,IAAe;AAGrB,IAAAC;AAAA,MACE,gBAAAC;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,SAAAP;AAAA,UACA,MAAMC;AAAA,UACN,SAAAE;AAAA,UACA,cAAAC;AAAA,UACA,SARY;AAAA,QAQZ;AAAA,MAAA;AAAA,IACF;AAIF,UAAMK,IAASN,EAAQ,KAAK,CAACO,MAAQA,EAAI,UAAUN,CAAY;AAC/D,QAAIK,GAAQ;AAEV,YAAMG,IAAiBD,EAAO,UAAUF,EAAO,KAAK;AACpD,aAAOG,CAAc,EAAE,kBAAA;AAAA,IACzB;AAAA,EACF,CAAC;AACH,CAAC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../../../src/components/SideMenu/index.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport Image from \"next/image\";\nimport Link from \"next/link\";\nimport { Drawer } from \"@mui/material\";\nimport classnames from \"classnames\";\n\nimport styles from \"./index.module.scss\";\n\nexport type Menu = {\n label: string;\n icon?: React.ReactNode;\n href?: string;\n isTitle?: boolean;\n};\n\ntype Props = {\n isOpen: boolean;\n isMobile: boolean;\n onClose: () => void;\n menus: Menu[];\n logoSrc: string;\n topPageUrl?: string;\n isStorybook?: boolean;\n currentPath?: string | null;\n};\n\nconst DRAWER_WIDTH = 235;\n\nexport const SideMenu = (props: Props) => {\n const {\n isOpen,\n isMobile,\n onClose,\n menus,\n logoSrc,\n topPageUrl = \"/\",\n isStorybook = false,\n currentPath,\n } = props;\n\n const path = currentPath?.split(\"/\")[1] ?? null;\n const href = path === \"\" ? \"/\" : \"/\" + path;\n const [selectedHref, setSelectedHref] = useState<string | undefined>(href);\n\n useEffect(() => {\n setSelectedHref(href);\n }, [href, currentPath]);\n\n const handleLinkClick = (\n e:\n | React.MouseEvent<HTMLAnchorElement | HTMLDivElement>\n | React.KeyboardEvent<HTMLDivElement>,\n ) => {\n if (isMobile) {\n onClose();\n }\n if (isStorybook) {\n e.preventDefault();\n }\n };\n\n return (\n <Drawer\n variant={isMobile ? \"temporary\" : \"permanent\"}\n open={isMobile ? isOpen : undefined}\n onClose={onClose}\n sx={{\n width: DRAWER_WIDTH,\n flexShrink: 0,\n \"& .MuiDrawer-paper\": {\n width: DRAWER_WIDTH,\n boxSizing: \"border-box\",\n },\n display: isOpen ? \"block\" : \"none\",\n }}\n >\n <div className={styles.sideMenu}>\n <div className={styles.logo}>\n <Link\n href={topPageUrl}\n style={{ textDecoration: \"none\" }}\n onClick={(e) => handleLinkClick(e)}\n >\n <Image\n src={logoSrc}\n alt=\"logo\"\n width={202}\n height={56}\n className={styles.logoImage}\n priority\n />\n </Link>\n </div>\n <div className={styles.menus}>\n {menus.map((menu) =>\n menu.isTitle ? (\n <div className={styles.menuTitle} key={menu.label}>\n {menu.label}\n </div>\n ) : (\n <Link\n href={menu.href ?? \"\"}\n key={menu.label}\n style={{ textDecoration: \"none\" }}\n role=\"menuitem\"\n aria-current={selectedHref === menu.href ? \"page\" : undefined}\n >\n <div\n onClick={(e) => handleLinkClick(e)}\n className={classnames(styles.menuItem, {\n [styles.selected]: selectedHref === menu.href,\n })}\n tabIndex={0}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n handleLinkClick(e);\n }\n }}\n >\n {menu.icon}\n <div>{menu.label}</div>\n </div>\n </Link>\n ),\n )}\n </div>\n </div>\n </Drawer>\n );\n};\n\nexport default SideMenu;\n"],"names":["DRAWER_WIDTH","SideMenu","props","isOpen","isMobile","onClose","menus","logoSrc","topPageUrl","isStorybook","currentPath","path","href","selectedHref","setSelectedHref","useState","useEffect","handleLinkClick","jsx","Drawer","jsxs","styles","Link","Image","menu","e","classnames"],"mappings":"4eA0BMA,EAAe,IAERC,EAAYC,GAAiB,CAClC,KAAA,CACJ,OAAAC,EACA,SAAAC,EACA,QAAAC,EACA,MAAAC,EACA,QAAAC,EACA,WAAAC,EAAa,IACb,YAAAC,EAAc,GACd,YAAAC,CAAA,EACER,EAEES,GAAOD,GAAA,YAAAA,EAAa,MAAM,KAAK,KAAM,KACrCE,EAAOD,IAAS,GAAK,IAAM,IAAMA,EACjC,CAACE,EAAcC,CAAe,EAAIC,EAAAA,SAA6BH,CAAI,EAEzEI,EAAAA,UAAU,IAAM,CACdF,EAAgBF,CAAI,CAAA,EACnB,CAACA,EAAMF,CAAW,CAAC,EAEhB,MAAAO,EACJ,GAGG,CACCb,GACMC,EAAA,EAENI,GACF,EAAE,eAAe,CAErB,EAGE,OAAAS,EAAA,IAACC,EAAA,OAAA,CACC,QAASf,EAAW,YAAc,YAClC,KAAMA,EAAWD,EAAS,OAC1B,QAAAE,EACA,GAAI,CACF,MAAOL,EACP,WAAY,EACZ,qBAAsB,CACpB,MAAOA,EACP,UAAW,YACb,EACA,QAASG,EAAS,QAAU,MAC9B,EAEA,SAACiB,EAAA,KAAA,MAAA,CAAI,UAAWC,EAAO,SACrB,SAAA,CAACH,EAAA,IAAA,MAAA,CAAI,UAAWG,EAAO,KACrB,SAAAH,EAAA,IAACI,EAAA,CACC,KAAMd,EACN,MAAO,CAAE,eAAgB,MAAO,EAChC,QAAU,GAAMS,EAAgB,CAAC,EAEjC,SAAAC,EAAA,IAACK,EAAA,CACC,IAAKhB,EACL,IAAI,OACJ,MAAO,IACP,OAAQ,GACR,UAAWc,EAAO,UAClB,SAAQ,EAAA,CAAA,CACV,CAAA,EAEJ,EACCH,EAAA,IAAA,MAAA,CAAI,UAAWG,EAAO,MACpB,SAAMf,EAAA,IAAKkB,GACVA,EAAK,QACFN,EAAAA,IAAA,MAAA,CAAI,UAAWG,EAAO,UACpB,SAAAG,EAAK,KAD+B,EAAAA,EAAK,KAE5C,EAEAN,EAAA,IAACI,EAAA,CACC,KAAME,EAAK,MAAQ,GAEnB,MAAO,CAAE,eAAgB,MAAO,EAChC,KAAK,WACL,eAAcX,IAAiBW,EAAK,KAAO,OAAS,OAEpD,SAAAJ,EAAA,KAAC,MAAA,CACC,QAAUK,GAAMR,EAAgBQ,CAAC,EACjC,UAAWC,EAAWL,EAAO,SAAU,CACrC,CAACA,EAAO,QAAQ,EAAGR,IAAiBW,EAAK,IAAA,CAC1C,EACD,SAAU,EACV,UAAYC,GAAM,EACZA,EAAE,MAAQ,SAAWA,EAAE,MAAQ,MACjCR,EAAgBQ,CAAC,CAErB,EAEC,SAAA,CAAKD,EAAA,KACNN,EAAAA,IAAC,MAAK,CAAA,SAAAM,EAAK,KAAM,CAAA,CAAA,CAAA,CAAA,CACnB,EAnBKA,EAAK,KAAA,CAoBZ,CAGN,CAAA,CAAA,CACF,CAAA,CAAA,CACF,CAEJ"}
1
+ {"version":3,"file":"index.cjs.js","sources":["../../../src/components/SideMenu/index.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport Image from \"next/image\";\nimport Link from \"next/link\";\nimport { Drawer } from \"@mui/material\";\nimport classnames from \"classnames\";\n\nimport styles from \"./index.module.scss\";\n\nexport type Menu = {\n label: string;\n icon?: React.ReactNode;\n href?: string;\n isTitle?: boolean;\n};\n\ntype Props = {\n isOpen: boolean;\n isMobile: boolean;\n onClose: () => void;\n menus: Menu[];\n logoSrc: string;\n topPageUrl?: string;\n isStorybook?: boolean;\n currentPath?: string | null;\n};\n\nconst DRAWER_WIDTH = 235;\n\nexport const SideMenu = (props: Props) => {\n const {\n isOpen,\n isMobile,\n onClose,\n menus,\n logoSrc,\n topPageUrl = \"/\",\n isStorybook = false,\n currentPath,\n } = props;\n\n const path = currentPath?.split(\"/\")[1] ?? null;\n const href = path === \"\" ? \"/\" : \"/\" + path;\n const [selectedHref, setSelectedHref] = useState<string | undefined>(href);\n\n useEffect(() => {\n setSelectedHref(href);\n }, [href, currentPath]);\n\n const handleLinkClick = (\n e:\n | React.MouseEvent<HTMLAnchorElement | HTMLDivElement>\n | React.KeyboardEvent<HTMLDivElement>,\n ) => {\n if (isMobile) {\n onClose();\n }\n if (isStorybook) {\n e.preventDefault();\n }\n };\n\n return (\n <Drawer\n variant={isMobile ? \"temporary\" : \"permanent\"}\n open={isMobile ? isOpen : undefined}\n onClose={onClose}\n sx={{\n width: DRAWER_WIDTH,\n flexShrink: 0,\n \"& .MuiDrawer-paper\": {\n width: DRAWER_WIDTH,\n boxSizing: \"border-box\",\n },\n display: isOpen ? \"block\" : \"none\",\n }}\n >\n <div className={styles.sideMenu}>\n <div className={styles.logo}>\n <Link\n href={topPageUrl}\n style={{ textDecoration: \"none\" }}\n onClick={(e) => handleLinkClick(e)}\n >\n <Image\n src={logoSrc}\n alt=\"logo\"\n width={202}\n height={56}\n className={styles.logoImage}\n priority\n />\n </Link>\n </div>\n <div className={styles.menus}>\n {menus.map((menu) =>\n menu.isTitle ? (\n <div className={styles.menuTitle} key={menu.label}>\n {menu.label}\n </div>\n ) : (\n <Link\n href={menu.href ?? \"\"}\n key={menu.label}\n style={{ textDecoration: \"none\" }}\n role=\"menuitem\"\n aria-current={selectedHref === menu.href ? \"page\" : undefined}\n >\n <div\n onClick={(e) => handleLinkClick(e)}\n className={classnames(styles.menuItem, {\n [styles.selected]: selectedHref === menu.href,\n })}\n tabIndex={0}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n handleLinkClick(e);\n }\n }}\n >\n {menu.icon}\n <div>{menu.label}</div>\n </div>\n </Link>\n ),\n )}\n </div>\n </div>\n </Drawer>\n );\n};\n\nexport default SideMenu;\n"],"names":["DRAWER_WIDTH","SideMenu","props","isOpen","isMobile","onClose","menus","logoSrc","topPageUrl","isStorybook","currentPath","path","href","selectedHref","setSelectedHref","useState","useEffect","handleLinkClick","jsx","Drawer","jsxs","styles","Link","Image","menu","e","classnames"],"mappings":"4eA0BMA,EAAe,IAERC,EAAYC,GAAiB,CACxC,KAAM,CACJ,OAAAC,EACA,SAAAC,EACA,QAAAC,EACA,MAAAC,EACA,QAAAC,EACA,WAAAC,EAAa,IACb,YAAAC,EAAc,GACd,YAAAC,CAAA,EACER,EAEES,GAAOD,GAAA,YAAAA,EAAa,MAAM,KAAK,KAAM,KACrCE,EAAOD,IAAS,GAAK,IAAM,IAAMA,EACjC,CAACE,EAAcC,CAAe,EAAIC,EAAAA,SAA6BH,CAAI,EAEzEI,EAAAA,UAAU,IAAM,CACdF,EAAgBF,CAAI,CACtB,EAAG,CAACA,EAAMF,CAAW,CAAC,EAEtB,MAAMO,EACJ,GAGG,CACCb,GACFC,EAAA,EAEEI,GACF,EAAE,eAAA,CAEN,EAEA,OACES,EAAAA,IAACC,EAAAA,OAAA,CACC,QAASf,EAAW,YAAc,YAClC,KAAMA,EAAWD,EAAS,OAC1B,QAAAE,EACA,GAAI,CACF,MAAOL,EACP,WAAY,EACZ,qBAAsB,CACpB,MAAOA,EACP,UAAW,YAAA,EAEb,QAASG,EAAS,QAAU,MAAA,EAG9B,SAAAiB,EAAAA,KAAC,MAAA,CAAI,UAAWC,EAAO,SACrB,SAAA,CAAAH,EAAAA,IAAC,MAAA,CAAI,UAAWG,EAAO,KACrB,SAAAH,EAAAA,IAACI,EAAA,CACC,KAAMd,EACN,MAAO,CAAE,eAAgB,MAAA,EACzB,QAAU,GAAMS,EAAgB,CAAC,EAEjC,SAAAC,EAAAA,IAACK,EAAA,CACC,IAAKhB,EACL,IAAI,OACJ,MAAO,IACP,OAAQ,GACR,UAAWc,EAAO,UAClB,SAAQ,EAAA,CAAA,CACV,CAAA,EAEJ,EACAH,EAAAA,IAAC,MAAA,CAAI,UAAWG,EAAO,MACpB,SAAAf,EAAM,IAAKkB,GACVA,EAAK,QACHN,EAAAA,IAAC,MAAA,CAAI,UAAWG,EAAO,UACpB,SAAAG,EAAK,KAAA,EAD+BA,EAAK,KAE5C,EAEAN,EAAAA,IAACI,EAAA,CACC,KAAME,EAAK,MAAQ,GAEnB,MAAO,CAAE,eAAgB,MAAA,EACzB,KAAK,WACL,eAAcX,IAAiBW,EAAK,KAAO,OAAS,OAEpD,SAAAJ,EAAAA,KAAC,MAAA,CACC,QAAUK,GAAMR,EAAgBQ,CAAC,EACjC,UAAWC,EAAWL,EAAO,SAAU,CACrC,CAACA,EAAO,QAAQ,EAAGR,IAAiBW,EAAK,IAAA,CAC1C,EACD,SAAU,EACV,UAAYC,GAAM,EACZA,EAAE,MAAQ,SAAWA,EAAE,MAAQ,MACjCR,EAAgBQ,CAAC,CAErB,EAEC,SAAA,CAAAD,EAAK,KACNN,EAAAA,IAAC,MAAA,CAAK,SAAAM,EAAK,KAAA,CAAM,CAAA,CAAA,CAAA,CACnB,EAnBKA,EAAK,KAAA,CAoBZ,CAEJ,CACF,CAAA,CAAA,CACF,CAAA,CAAA,CAGN"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":["../../../src/components/SideMenu/index.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport Image from \"next/image\";\nimport Link from \"next/link\";\nimport { Drawer } from \"@mui/material\";\nimport classnames from \"classnames\";\n\nimport styles from \"./index.module.scss\";\n\nexport type Menu = {\n label: string;\n icon?: React.ReactNode;\n href?: string;\n isTitle?: boolean;\n};\n\ntype Props = {\n isOpen: boolean;\n isMobile: boolean;\n onClose: () => void;\n menus: Menu[];\n logoSrc: string;\n topPageUrl?: string;\n isStorybook?: boolean;\n currentPath?: string | null;\n};\n\nconst DRAWER_WIDTH = 235;\n\nexport const SideMenu = (props: Props) => {\n const {\n isOpen,\n isMobile,\n onClose,\n menus,\n logoSrc,\n topPageUrl = \"/\",\n isStorybook = false,\n currentPath,\n } = props;\n\n const path = currentPath?.split(\"/\")[1] ?? null;\n const href = path === \"\" ? \"/\" : \"/\" + path;\n const [selectedHref, setSelectedHref] = useState<string | undefined>(href);\n\n useEffect(() => {\n setSelectedHref(href);\n }, [href, currentPath]);\n\n const handleLinkClick = (\n e:\n | React.MouseEvent<HTMLAnchorElement | HTMLDivElement>\n | React.KeyboardEvent<HTMLDivElement>,\n ) => {\n if (isMobile) {\n onClose();\n }\n if (isStorybook) {\n e.preventDefault();\n }\n };\n\n return (\n <Drawer\n variant={isMobile ? \"temporary\" : \"permanent\"}\n open={isMobile ? isOpen : undefined}\n onClose={onClose}\n sx={{\n width: DRAWER_WIDTH,\n flexShrink: 0,\n \"& .MuiDrawer-paper\": {\n width: DRAWER_WIDTH,\n boxSizing: \"border-box\",\n },\n display: isOpen ? \"block\" : \"none\",\n }}\n >\n <div className={styles.sideMenu}>\n <div className={styles.logo}>\n <Link\n href={topPageUrl}\n style={{ textDecoration: \"none\" }}\n onClick={(e) => handleLinkClick(e)}\n >\n <Image\n src={logoSrc}\n alt=\"logo\"\n width={202}\n height={56}\n className={styles.logoImage}\n priority\n />\n </Link>\n </div>\n <div className={styles.menus}>\n {menus.map((menu) =>\n menu.isTitle ? (\n <div className={styles.menuTitle} key={menu.label}>\n {menu.label}\n </div>\n ) : (\n <Link\n href={menu.href ?? \"\"}\n key={menu.label}\n style={{ textDecoration: \"none\" }}\n role=\"menuitem\"\n aria-current={selectedHref === menu.href ? \"page\" : undefined}\n >\n <div\n onClick={(e) => handleLinkClick(e)}\n className={classnames(styles.menuItem, {\n [styles.selected]: selectedHref === menu.href,\n })}\n tabIndex={0}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n handleLinkClick(e);\n }\n }}\n >\n {menu.icon}\n <div>{menu.label}</div>\n </div>\n </Link>\n ),\n )}\n </div>\n </div>\n </Drawer>\n );\n};\n\nexport default SideMenu;\n"],"names":["DRAWER_WIDTH","SideMenu","props","isOpen","isMobile","onClose","menus","logoSrc","topPageUrl","isStorybook","currentPath","path","href","selectedHref","setSelectedHref","useState","useEffect","handleLinkClick","jsx","Drawer","jsxs","styles","Link","Image","menu","e","classnames"],"mappings":"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"}
1
+ {"version":3,"file":"index.es.js","sources":["../../../src/components/SideMenu/index.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport Image from \"next/image\";\nimport Link from \"next/link\";\nimport { Drawer } from \"@mui/material\";\nimport classnames from \"classnames\";\n\nimport styles from \"./index.module.scss\";\n\nexport type Menu = {\n label: string;\n icon?: React.ReactNode;\n href?: string;\n isTitle?: boolean;\n};\n\ntype Props = {\n isOpen: boolean;\n isMobile: boolean;\n onClose: () => void;\n menus: Menu[];\n logoSrc: string;\n topPageUrl?: string;\n isStorybook?: boolean;\n currentPath?: string | null;\n};\n\nconst DRAWER_WIDTH = 235;\n\nexport const SideMenu = (props: Props) => {\n const {\n isOpen,\n isMobile,\n onClose,\n menus,\n logoSrc,\n topPageUrl = \"/\",\n isStorybook = false,\n currentPath,\n } = props;\n\n const path = currentPath?.split(\"/\")[1] ?? null;\n const href = path === \"\" ? \"/\" : \"/\" + path;\n const [selectedHref, setSelectedHref] = useState<string | undefined>(href);\n\n useEffect(() => {\n setSelectedHref(href);\n }, [href, currentPath]);\n\n const handleLinkClick = (\n e:\n | React.MouseEvent<HTMLAnchorElement | HTMLDivElement>\n | React.KeyboardEvent<HTMLDivElement>,\n ) => {\n if (isMobile) {\n onClose();\n }\n if (isStorybook) {\n e.preventDefault();\n }\n };\n\n return (\n <Drawer\n variant={isMobile ? \"temporary\" : \"permanent\"}\n open={isMobile ? isOpen : undefined}\n onClose={onClose}\n sx={{\n width: DRAWER_WIDTH,\n flexShrink: 0,\n \"& .MuiDrawer-paper\": {\n width: DRAWER_WIDTH,\n boxSizing: \"border-box\",\n },\n display: isOpen ? \"block\" : \"none\",\n }}\n >\n <div className={styles.sideMenu}>\n <div className={styles.logo}>\n <Link\n href={topPageUrl}\n style={{ textDecoration: \"none\" }}\n onClick={(e) => handleLinkClick(e)}\n >\n <Image\n src={logoSrc}\n alt=\"logo\"\n width={202}\n height={56}\n className={styles.logoImage}\n priority\n />\n </Link>\n </div>\n <div className={styles.menus}>\n {menus.map((menu) =>\n menu.isTitle ? (\n <div className={styles.menuTitle} key={menu.label}>\n {menu.label}\n </div>\n ) : (\n <Link\n href={menu.href ?? \"\"}\n key={menu.label}\n style={{ textDecoration: \"none\" }}\n role=\"menuitem\"\n aria-current={selectedHref === menu.href ? \"page\" : undefined}\n >\n <div\n onClick={(e) => handleLinkClick(e)}\n className={classnames(styles.menuItem, {\n [styles.selected]: selectedHref === menu.href,\n })}\n tabIndex={0}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n handleLinkClick(e);\n }\n }}\n >\n {menu.icon}\n <div>{menu.label}</div>\n </div>\n </Link>\n ),\n )}\n </div>\n </div>\n </Drawer>\n );\n};\n\nexport default SideMenu;\n"],"names":["DRAWER_WIDTH","SideMenu","props","isOpen","isMobile","onClose","menus","logoSrc","topPageUrl","isStorybook","currentPath","path","href","selectedHref","setSelectedHref","useState","useEffect","handleLinkClick","jsx","Drawer","jsxs","styles","Link","Image","menu","e","classnames"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";const t=require("react/jsx-runtime"),e=require("../../react.esm-CiMn0Rnx.cjs"),u=require("../../index-C50NsnJO.cjs");require("../../index-BpMSrIOq.cjs");const s=require("./index.cjs.js");jest.mock("next/navigation",()=>({usePathname:jest.fn(()=>"/")}));const i=[{label:"Dashboard",href:"/",isTitle:!1},{label:"管理メニュー",isTitle:!0},{label:"制御グループ一覧",href:"/management-groups",isTitle:!1}],r={isOpen:!0,isMobile:!1,onClose:jest.fn(),menus:i,logoSrc:"/leaflet/images/logo.png"};describe("Given SideMenu",()=>{it("Then renders the side menu with correct menu items",()=>{e.render(t.jsx(s.SideMenu,{...r})),i.forEach(n=>{const o=e.screen.getByText(n.label);expect(o).toBeInTheDocument()})}),it("Then renders menu titles correctly",()=>{e.render(t.jsx(s.SideMenu,{...r}));const n=e.screen.getByText("管理メニュー");expect(n).toBeInTheDocument(),expect(n.tagName).toBe("DIV")}),it("When isMobile is true and isOpen is true, Then renders correctly",()=>{e.render(t.jsx(s.SideMenu,{...r,isMobile:!0,isOpen:!0})),expect(e.screen.getByRole("presentation")).toBeInTheDocument()}),it("When isMobile is true and isOpen is false, Then does not render",()=>{e.render(t.jsx(s.SideMenu,{...r,isMobile:!0,isOpen:!1})),expect(e.screen.queryByRole("presentation")).not.toBeInTheDocument()}),it("When a menu item is clicked in mobile mode, Then triggers onClose",async()=>{const n=u.userEvent.setup(),o=jest.fn(),c={...r,isMobile:!0,onClose:o};e.render(t.jsx(s.SideMenu,{...c})),await n.click(e.screen.getByText("Dashboard")),expect(o).toHaveBeenCalled()}),it("When menus are empty, Then renders nothing",()=>{e.render(t.jsx(s.SideMenu,{...r,menus:[]})),expect(e.screen.getByAltText("logo")).toBeInTheDocument(),expect(e.screen.queryByText("Dashboard")).not.toBeInTheDocument(),expect(e.screen.queryByText("管理メニュー")).not.toBeInTheDocument()})});
1
+ "use strict";const t=require("react/jsx-runtime"),e=require("../../react.esm-DGuy6Rn3.cjs"),u=require("../../index-BoenezD8.cjs");require("../../index-9p9q0wxE.cjs");const s=require("./index.cjs.js");jest.mock("next/navigation",()=>({usePathname:jest.fn(()=>"/")}));const i=[{label:"Dashboard",href:"/",isTitle:!1},{label:"管理メニュー",isTitle:!0},{label:"制御グループ一覧",href:"/management-groups",isTitle:!1}],r={isOpen:!0,isMobile:!1,onClose:jest.fn(),menus:i,logoSrc:"/leaflet/images/logo.png"};describe("Given SideMenu",()=>{it("Then renders the side menu with correct menu items",()=>{e.render(t.jsx(s.SideMenu,{...r})),i.forEach(n=>{const o=e.screen.getByText(n.label);expect(o).toBeInTheDocument()})}),it("Then renders menu titles correctly",()=>{e.render(t.jsx(s.SideMenu,{...r}));const n=e.screen.getByText("管理メニュー");expect(n).toBeInTheDocument(),expect(n.tagName).toBe("DIV")}),it("When isMobile is true and isOpen is true, Then renders correctly",()=>{e.render(t.jsx(s.SideMenu,{...r,isMobile:!0,isOpen:!0})),expect(e.screen.getByRole("presentation")).toBeInTheDocument()}),it("When isMobile is true and isOpen is false, Then does not render",()=>{e.render(t.jsx(s.SideMenu,{...r,isMobile:!0,isOpen:!1})),expect(e.screen.queryByRole("presentation")).not.toBeInTheDocument()}),it("When a menu item is clicked in mobile mode, Then triggers onClose",async()=>{const n=u.userEvent.setup(),o=jest.fn(),c={...r,isMobile:!0,onClose:o};e.render(t.jsx(s.SideMenu,{...c})),await n.click(e.screen.getByText("Dashboard")),expect(o).toHaveBeenCalled()}),it("When menus are empty, Then renders nothing",()=>{e.render(t.jsx(s.SideMenu,{...r,menus:[]})),expect(e.screen.getByAltText("logo")).toBeInTheDocument(),expect(e.screen.queryByText("Dashboard")).not.toBeInTheDocument(),expect(e.screen.queryByText("管理メニュー")).not.toBeInTheDocument()})});
2
2
  //# sourceMappingURL=index.test.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.test.cjs.js","sources":["../../../src/components/SideMenu/index.test.tsx"],"sourcesContent":["import { render, screen } from \"@testing-library/react\";\nimport userEvent from \"@testing-library/user-event\";\n\nimport \"@testing-library/jest-dom\";\n\nimport { Menu, SideMenu } from \".\";\n\njest.mock(\"next/navigation\", () => ({\n usePathname: jest.fn(() => \"/\"),\n}));\n\nconst menus: Menu[] = [\n { label: \"Dashboard\", href: \"/\", isTitle: false },\n { label: \"管理メニュー\", isTitle: true },\n { label: \"制御グループ一覧\", href: \"/management-groups\", isTitle: false },\n];\n\nconst defaultProps = {\n isOpen: true,\n isMobile: false,\n onClose: jest.fn(),\n menus: menus,\n logoSrc: \"/leaflet/images/logo.png\",\n};\n\ndescribe(\"Given SideMenu\", () => {\n it(\"Then renders the side menu with correct menu items\", () => {\n render(<SideMenu {...defaultProps} />);\n\n menus.forEach((menu) => {\n const menuItem = screen.getByText(menu.label);\n expect(menuItem).toBeInTheDocument();\n });\n });\n\n it(\"Then renders menu titles correctly\", () => {\n render(<SideMenu {...defaultProps} />);\n\n const title = screen.getByText(\"管理メニュー\");\n expect(title).toBeInTheDocument();\n expect(title.tagName).toBe(\"DIV\");\n });\n\n it(\"When isMobile is true and isOpen is true, Then renders correctly\", () => {\n render(<SideMenu {...defaultProps} isMobile={true} isOpen={true} />);\n\n expect(screen.getByRole(\"presentation\")).toBeInTheDocument();\n });\n\n it(\"When isMobile is true and isOpen is false, Then does not render\", () => {\n render(<SideMenu {...defaultProps} isMobile={true} isOpen={false} />);\n\n expect(screen.queryByRole(\"presentation\")).not.toBeInTheDocument();\n });\n\n it(\"When a menu item is clicked in mobile mode, Then triggers onClose\", async () => {\n const user = userEvent.setup();\n const onCloseMock = jest.fn();\n const MockedProps = {\n ...defaultProps,\n isMobile: true,\n onClose: onCloseMock,\n };\n\n render(<SideMenu {...MockedProps} />);\n\n await user.click(screen.getByText(\"Dashboard\"));\n expect(onCloseMock).toHaveBeenCalled();\n });\n\n it(\"When menus are empty, Then renders nothing\", () => {\n render(<SideMenu {...defaultProps} menus={[]} />);\n\n expect(screen.getByAltText(\"logo\")).toBeInTheDocument();\n expect(screen.queryByText(\"Dashboard\")).not.toBeInTheDocument();\n expect(screen.queryByText(\"管理メニュー\")).not.toBeInTheDocument();\n });\n});\n"],"names":["menus","defaultProps","render","jsx","SideMenu","menu","menuItem","screen","title","user","userEvent","onCloseMock","MockedProps"],"mappings":"wMAOA,KAAK,KAAK,kBAAmB,KAAO,CAClC,YAAa,KAAK,GAAG,IAAM,GAAG,CAChC,EAAE,EAEF,MAAMA,EAAgB,CACpB,CAAE,MAAO,YAAa,KAAM,IAAK,QAAS,EAAM,EAChD,CAAE,MAAO,SAAU,QAAS,EAAK,EACjC,CAAE,MAAO,WAAY,KAAM,qBAAsB,QAAS,EAAM,CAClE,EAEMC,EAAe,CACnB,OAAQ,GACR,SAAU,GACV,QAAS,KAAK,GAAG,EACjB,MAAAD,EACA,QAAS,0BACX,EAEA,SAAS,iBAAkB,IAAM,CAC/B,GAAG,qDAAsD,IAAM,CAC7DE,EAAAA,OAAQC,EAAAA,IAAAC,EAAAA,SAAA,CAAU,GAAGH,CAAc,CAAA,CAAE,EAE/BD,EAAA,QAASK,GAAS,CACtB,MAAMC,EAAWC,EAAA,OAAO,UAAUF,EAAK,KAAK,EACrC,OAAAC,CAAQ,EAAE,kBAAkB,CAAA,CACpC,CAAA,CACF,EAED,GAAG,qCAAsC,IAAM,CAC7CJ,EAAAA,OAAQC,EAAAA,IAAAC,EAAAA,SAAA,CAAU,GAAGH,CAAc,CAAA,CAAE,EAE/B,MAAAO,EAAQD,EAAAA,OAAO,UAAU,QAAQ,EAChC,OAAAC,CAAK,EAAE,kBAAkB,EAChC,OAAOA,EAAM,OAAO,EAAE,KAAK,KAAK,CAAA,CACjC,EAED,GAAG,mEAAoE,IAAM,CACpEN,SAAAC,EAAAA,IAACC,YAAU,GAAGH,EAAc,SAAU,GAAM,OAAQ,GAAM,CAAE,EAEnE,OAAOM,EAAAA,OAAO,UAAU,cAAc,CAAC,EAAE,kBAAkB,CAAA,CAC5D,EAED,GAAG,kEAAmE,IAAM,CACnEL,SAAAC,EAAAA,IAACC,YAAU,GAAGH,EAAc,SAAU,GAAM,OAAQ,GAAO,CAAE,EAEpE,OAAOM,SAAO,YAAY,cAAc,CAAC,EAAE,IAAI,kBAAkB,CAAA,CAClE,EAED,GAAG,oEAAqE,SAAY,CAC5E,MAAAE,EAAOC,YAAU,MAAM,EACvBC,EAAc,KAAK,GAAG,EACtBC,EAAc,CAClB,GAAGX,EACH,SAAU,GACV,QAASU,CACX,EAEAT,EAAAA,OAAQC,EAAAA,IAAAC,EAAAA,SAAA,CAAU,GAAGQ,CAAa,CAAA,CAAE,EAEpC,MAAMH,EAAK,MAAMF,EAAO,OAAA,UAAU,WAAW,CAAC,EACvC,OAAAI,CAAW,EAAE,iBAAiB,CAAA,CACtC,EAED,GAAG,6CAA8C,IAAM,CACrDT,EAAA,aAAQE,WAAU,CAAA,GAAGH,EAAc,MAAO,GAAI,CAAE,EAEhD,OAAOM,EAAAA,OAAO,aAAa,MAAM,CAAC,EAAE,kBAAkB,EACtD,OAAOA,SAAO,YAAY,WAAW,CAAC,EAAE,IAAI,kBAAkB,EAC9D,OAAOA,SAAO,YAAY,QAAQ,CAAC,EAAE,IAAI,kBAAkB,CAAA,CAC5D,CACH,CAAC"}
1
+ {"version":3,"file":"index.test.cjs.js","sources":["../../../src/components/SideMenu/index.test.tsx"],"sourcesContent":["import { render, screen } from \"@testing-library/react\";\nimport userEvent from \"@testing-library/user-event\";\n\nimport \"@testing-library/jest-dom\";\n\nimport { Menu, SideMenu } from \".\";\n\njest.mock(\"next/navigation\", () => ({\n usePathname: jest.fn(() => \"/\"),\n}));\n\nconst menus: Menu[] = [\n { label: \"Dashboard\", href: \"/\", isTitle: false },\n { label: \"管理メニュー\", isTitle: true },\n { label: \"制御グループ一覧\", href: \"/management-groups\", isTitle: false },\n];\n\nconst defaultProps = {\n isOpen: true,\n isMobile: false,\n onClose: jest.fn(),\n menus: menus,\n logoSrc: \"/leaflet/images/logo.png\",\n};\n\ndescribe(\"Given SideMenu\", () => {\n it(\"Then renders the side menu with correct menu items\", () => {\n render(<SideMenu {...defaultProps} />);\n\n menus.forEach((menu) => {\n const menuItem = screen.getByText(menu.label);\n expect(menuItem).toBeInTheDocument();\n });\n });\n\n it(\"Then renders menu titles correctly\", () => {\n render(<SideMenu {...defaultProps} />);\n\n const title = screen.getByText(\"管理メニュー\");\n expect(title).toBeInTheDocument();\n expect(title.tagName).toBe(\"DIV\");\n });\n\n it(\"When isMobile is true and isOpen is true, Then renders correctly\", () => {\n render(<SideMenu {...defaultProps} isMobile={true} isOpen={true} />);\n\n expect(screen.getByRole(\"presentation\")).toBeInTheDocument();\n });\n\n it(\"When isMobile is true and isOpen is false, Then does not render\", () => {\n render(<SideMenu {...defaultProps} isMobile={true} isOpen={false} />);\n\n expect(screen.queryByRole(\"presentation\")).not.toBeInTheDocument();\n });\n\n it(\"When a menu item is clicked in mobile mode, Then triggers onClose\", async () => {\n const user = userEvent.setup();\n const onCloseMock = jest.fn();\n const MockedProps = {\n ...defaultProps,\n isMobile: true,\n onClose: onCloseMock,\n };\n\n render(<SideMenu {...MockedProps} />);\n\n await user.click(screen.getByText(\"Dashboard\"));\n expect(onCloseMock).toHaveBeenCalled();\n });\n\n it(\"When menus are empty, Then renders nothing\", () => {\n render(<SideMenu {...defaultProps} menus={[]} />);\n\n expect(screen.getByAltText(\"logo\")).toBeInTheDocument();\n expect(screen.queryByText(\"Dashboard\")).not.toBeInTheDocument();\n expect(screen.queryByText(\"管理メニュー\")).not.toBeInTheDocument();\n });\n});\n"],"names":["menus","defaultProps","render","jsx","SideMenu","menu","menuItem","screen","title","user","userEvent","onCloseMock","MockedProps"],"mappings":"wMAOA,KAAK,KAAK,kBAAmB,KAAO,CAClC,YAAa,KAAK,GAAG,IAAM,GAAG,CAChC,EAAE,EAEF,MAAMA,EAAgB,CACpB,CAAE,MAAO,YAAa,KAAM,IAAK,QAAS,EAAA,EAC1C,CAAE,MAAO,SAAU,QAAS,EAAA,EAC5B,CAAE,MAAO,WAAY,KAAM,qBAAsB,QAAS,EAAA,CAC5D,EAEMC,EAAe,CACnB,OAAQ,GACR,SAAU,GACV,QAAS,KAAK,GAAA,EACd,MAAAD,EACA,QAAS,0BACX,EAEA,SAAS,iBAAkB,IAAM,CAC/B,GAAG,qDAAsD,IAAM,CAC7DE,EAAAA,OAAOC,EAAAA,IAACC,EAAAA,SAAA,CAAU,GAAGH,CAAA,CAAc,CAAE,EAErCD,EAAM,QAASK,GAAS,CACtB,MAAMC,EAAWC,EAAAA,OAAO,UAAUF,EAAK,KAAK,EAC5C,OAAOC,CAAQ,EAAE,kBAAA,CACnB,CAAC,CACH,CAAC,EAED,GAAG,qCAAsC,IAAM,CAC7CJ,EAAAA,OAAOC,EAAAA,IAACC,EAAAA,SAAA,CAAU,GAAGH,CAAA,CAAc,CAAE,EAErC,MAAMO,EAAQD,EAAAA,OAAO,UAAU,QAAQ,EACvC,OAAOC,CAAK,EAAE,kBAAA,EACd,OAAOA,EAAM,OAAO,EAAE,KAAK,KAAK,CAClC,CAAC,EAED,GAAG,mEAAoE,IAAM,CAC3EN,SAAOC,EAAAA,IAACC,EAAAA,UAAU,GAAGH,EAAc,SAAU,GAAM,OAAQ,GAAM,CAAE,EAEnE,OAAOM,EAAAA,OAAO,UAAU,cAAc,CAAC,EAAE,kBAAA,CAC3C,CAAC,EAED,GAAG,kEAAmE,IAAM,CAC1EL,SAAOC,EAAAA,IAACC,EAAAA,UAAU,GAAGH,EAAc,SAAU,GAAM,OAAQ,GAAO,CAAE,EAEpE,OAAOM,EAAAA,OAAO,YAAY,cAAc,CAAC,EAAE,IAAI,kBAAA,CACjD,CAAC,EAED,GAAG,oEAAqE,SAAY,CAClF,MAAME,EAAOC,EAAAA,UAAU,MAAA,EACjBC,EAAc,KAAK,GAAA,EACnBC,EAAc,CAClB,GAAGX,EACH,SAAU,GACV,QAASU,CAAA,EAGXT,EAAAA,OAAOC,EAAAA,IAACC,EAAAA,SAAA,CAAU,GAAGQ,CAAA,CAAa,CAAE,EAEpC,MAAMH,EAAK,MAAMF,EAAAA,OAAO,UAAU,WAAW,CAAC,EAC9C,OAAOI,CAAW,EAAE,iBAAA,CACtB,CAAC,EAED,GAAG,6CAA8C,IAAM,CACrDT,EAAAA,aAAQE,WAAA,CAAU,GAAGH,EAAc,MAAO,CAAA,EAAI,CAAE,EAEhD,OAAOM,EAAAA,OAAO,aAAa,MAAM,CAAC,EAAE,kBAAA,EACpC,OAAOA,EAAAA,OAAO,YAAY,WAAW,CAAC,EAAE,IAAI,kBAAA,EAC5C,OAAOA,EAAAA,OAAO,YAAY,QAAQ,CAAC,EAAE,IAAI,kBAAA,CAC3C,CAAC,CACH,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { jsx as n } from "react/jsx-runtime";
2
- import { r as o, s as e } from "../../react.esm-2FJSSo-S.js";
3
- import { u as c } from "../../index-D5b3AasF.js";
4
- import "../../index-DCSLk6pp.js";
2
+ import { r as o, s as e } from "../../react.esm-BBESb8eI.js";
3
+ import { u as c } from "../../index-sarAILcU.js";
4
+ import "../../index-Cj9ZvtM1.js";
5
5
  import { SideMenu as s } from "./index.es.js";
6
6
  jest.mock("next/navigation", () => ({
7
7
  usePathname: jest.fn(() => "/")
@@ -1 +1 @@
1
- {"version":3,"file":"index.test.es.js","sources":["../../../src/components/SideMenu/index.test.tsx"],"sourcesContent":["import { render, screen } from \"@testing-library/react\";\nimport userEvent from \"@testing-library/user-event\";\n\nimport \"@testing-library/jest-dom\";\n\nimport { Menu, SideMenu } from \".\";\n\njest.mock(\"next/navigation\", () => ({\n usePathname: jest.fn(() => \"/\"),\n}));\n\nconst menus: Menu[] = [\n { label: \"Dashboard\", href: \"/\", isTitle: false },\n { label: \"管理メニュー\", isTitle: true },\n { label: \"制御グループ一覧\", href: \"/management-groups\", isTitle: false },\n];\n\nconst defaultProps = {\n isOpen: true,\n isMobile: false,\n onClose: jest.fn(),\n menus: menus,\n logoSrc: \"/leaflet/images/logo.png\",\n};\n\ndescribe(\"Given SideMenu\", () => {\n it(\"Then renders the side menu with correct menu items\", () => {\n render(<SideMenu {...defaultProps} />);\n\n menus.forEach((menu) => {\n const menuItem = screen.getByText(menu.label);\n expect(menuItem).toBeInTheDocument();\n });\n });\n\n it(\"Then renders menu titles correctly\", () => {\n render(<SideMenu {...defaultProps} />);\n\n const title = screen.getByText(\"管理メニュー\");\n expect(title).toBeInTheDocument();\n expect(title.tagName).toBe(\"DIV\");\n });\n\n it(\"When isMobile is true and isOpen is true, Then renders correctly\", () => {\n render(<SideMenu {...defaultProps} isMobile={true} isOpen={true} />);\n\n expect(screen.getByRole(\"presentation\")).toBeInTheDocument();\n });\n\n it(\"When isMobile is true and isOpen is false, Then does not render\", () => {\n render(<SideMenu {...defaultProps} isMobile={true} isOpen={false} />);\n\n expect(screen.queryByRole(\"presentation\")).not.toBeInTheDocument();\n });\n\n it(\"When a menu item is clicked in mobile mode, Then triggers onClose\", async () => {\n const user = userEvent.setup();\n const onCloseMock = jest.fn();\n const MockedProps = {\n ...defaultProps,\n isMobile: true,\n onClose: onCloseMock,\n };\n\n render(<SideMenu {...MockedProps} />);\n\n await user.click(screen.getByText(\"Dashboard\"));\n expect(onCloseMock).toHaveBeenCalled();\n });\n\n it(\"When menus are empty, Then renders nothing\", () => {\n render(<SideMenu {...defaultProps} menus={[]} />);\n\n expect(screen.getByAltText(\"logo\")).toBeInTheDocument();\n expect(screen.queryByText(\"Dashboard\")).not.toBeInTheDocument();\n expect(screen.queryByText(\"管理メニュー\")).not.toBeInTheDocument();\n });\n});\n"],"names":["menus","defaultProps","render","jsx","SideMenu","menu","menuItem","screen","title","user","userEvent","onCloseMock","MockedProps"],"mappings":";;;;;AAOA,KAAK,KAAK,mBAAmB,OAAO;AAAA,EAClC,aAAa,KAAK,GAAG,MAAM,GAAG;AAChC,EAAE;AAEF,MAAMA,IAAgB;AAAA,EACpB,EAAE,OAAO,aAAa,MAAM,KAAK,SAAS,GAAM;AAAA,EAChD,EAAE,OAAO,UAAU,SAAS,GAAK;AAAA,EACjC,EAAE,OAAO,YAAY,MAAM,sBAAsB,SAAS,GAAM;AAClE,GAEMC,IAAe;AAAA,EACnB,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,SAAS,KAAK,GAAG;AAAA,EACjB,OAAAD;AAAA,EACA,SAAS;AACX;AAEA,SAAS,kBAAkB,MAAM;AAC/B,KAAG,sDAAsD,MAAM;AAC7D,IAAAE,EAAQ,gBAAAC,EAAAC,GAAA,EAAU,GAAGH,EAAc,CAAA,CAAE,GAE/BD,EAAA,QAAQ,CAACK,MAAS;AACtB,YAAMC,IAAWC,EAAO,UAAUF,EAAK,KAAK;AACrC,aAAAC,CAAQ,EAAE,kBAAkB;AAAA,IAAA,CACpC;AAAA,EAAA,CACF,GAED,GAAG,sCAAsC,MAAM;AAC7C,IAAAJ,EAAQ,gBAAAC,EAAAC,GAAA,EAAU,GAAGH,EAAc,CAAA,CAAE;AAE/B,UAAAO,IAAQD,EAAO,UAAU,QAAQ;AAChC,WAAAC,CAAK,EAAE,kBAAkB,GAChC,OAAOA,EAAM,OAAO,EAAE,KAAK,KAAK;AAAA,EAAA,CACjC,GAED,GAAG,oEAAoE,MAAM;AACpE,IAAAN,EAAA,gBAAAC,EAACC,KAAU,GAAGH,GAAc,UAAU,IAAM,QAAQ,IAAM,CAAE,GAEnE,OAAOM,EAAO,UAAU,cAAc,CAAC,EAAE,kBAAkB;AAAA,EAAA,CAC5D,GAED,GAAG,mEAAmE,MAAM;AACnE,IAAAL,EAAA,gBAAAC,EAACC,KAAU,GAAGH,GAAc,UAAU,IAAM,QAAQ,IAAO,CAAE,GAEpE,OAAOM,EAAO,YAAY,cAAc,CAAC,EAAE,IAAI,kBAAkB;AAAA,EAAA,CAClE,GAED,GAAG,qEAAqE,YAAY;AAC5E,UAAAE,IAAOC,EAAU,MAAM,GACvBC,IAAc,KAAK,GAAG,GACtBC,IAAc;AAAA,MAClB,GAAGX;AAAA,MACH,UAAU;AAAA,MACV,SAASU;AAAA,IACX;AAEA,IAAAT,EAAQ,gBAAAC,EAAAC,GAAA,EAAU,GAAGQ,EAAa,CAAA,CAAE,GAEpC,MAAMH,EAAK,MAAMF,EAAO,UAAU,WAAW,CAAC,GACvC,OAAAI,CAAW,EAAE,iBAAiB;AAAA,EAAA,CACtC,GAED,GAAG,8CAA8C,MAAM;AACrD,IAAAT,oBAAQE,GAAU,EAAA,GAAGH,GAAc,OAAO,IAAI,CAAE,GAEhD,OAAOM,EAAO,aAAa,MAAM,CAAC,EAAE,kBAAkB,GACtD,OAAOA,EAAO,YAAY,WAAW,CAAC,EAAE,IAAI,kBAAkB,GAC9D,OAAOA,EAAO,YAAY,QAAQ,CAAC,EAAE,IAAI,kBAAkB;AAAA,EAAA,CAC5D;AACH,CAAC;"}
1
+ {"version":3,"file":"index.test.es.js","sources":["../../../src/components/SideMenu/index.test.tsx"],"sourcesContent":["import { render, screen } from \"@testing-library/react\";\nimport userEvent from \"@testing-library/user-event\";\n\nimport \"@testing-library/jest-dom\";\n\nimport { Menu, SideMenu } from \".\";\n\njest.mock(\"next/navigation\", () => ({\n usePathname: jest.fn(() => \"/\"),\n}));\n\nconst menus: Menu[] = [\n { label: \"Dashboard\", href: \"/\", isTitle: false },\n { label: \"管理メニュー\", isTitle: true },\n { label: \"制御グループ一覧\", href: \"/management-groups\", isTitle: false },\n];\n\nconst defaultProps = {\n isOpen: true,\n isMobile: false,\n onClose: jest.fn(),\n menus: menus,\n logoSrc: \"/leaflet/images/logo.png\",\n};\n\ndescribe(\"Given SideMenu\", () => {\n it(\"Then renders the side menu with correct menu items\", () => {\n render(<SideMenu {...defaultProps} />);\n\n menus.forEach((menu) => {\n const menuItem = screen.getByText(menu.label);\n expect(menuItem).toBeInTheDocument();\n });\n });\n\n it(\"Then renders menu titles correctly\", () => {\n render(<SideMenu {...defaultProps} />);\n\n const title = screen.getByText(\"管理メニュー\");\n expect(title).toBeInTheDocument();\n expect(title.tagName).toBe(\"DIV\");\n });\n\n it(\"When isMobile is true and isOpen is true, Then renders correctly\", () => {\n render(<SideMenu {...defaultProps} isMobile={true} isOpen={true} />);\n\n expect(screen.getByRole(\"presentation\")).toBeInTheDocument();\n });\n\n it(\"When isMobile is true and isOpen is false, Then does not render\", () => {\n render(<SideMenu {...defaultProps} isMobile={true} isOpen={false} />);\n\n expect(screen.queryByRole(\"presentation\")).not.toBeInTheDocument();\n });\n\n it(\"When a menu item is clicked in mobile mode, Then triggers onClose\", async () => {\n const user = userEvent.setup();\n const onCloseMock = jest.fn();\n const MockedProps = {\n ...defaultProps,\n isMobile: true,\n onClose: onCloseMock,\n };\n\n render(<SideMenu {...MockedProps} />);\n\n await user.click(screen.getByText(\"Dashboard\"));\n expect(onCloseMock).toHaveBeenCalled();\n });\n\n it(\"When menus are empty, Then renders nothing\", () => {\n render(<SideMenu {...defaultProps} menus={[]} />);\n\n expect(screen.getByAltText(\"logo\")).toBeInTheDocument();\n expect(screen.queryByText(\"Dashboard\")).not.toBeInTheDocument();\n expect(screen.queryByText(\"管理メニュー\")).not.toBeInTheDocument();\n });\n});\n"],"names":["menus","defaultProps","render","jsx","SideMenu","menu","menuItem","screen","title","user","userEvent","onCloseMock","MockedProps"],"mappings":";;;;;AAOA,KAAK,KAAK,mBAAmB,OAAO;AAAA,EAClC,aAAa,KAAK,GAAG,MAAM,GAAG;AAChC,EAAE;AAEF,MAAMA,IAAgB;AAAA,EACpB,EAAE,OAAO,aAAa,MAAM,KAAK,SAAS,GAAA;AAAA,EAC1C,EAAE,OAAO,UAAU,SAAS,GAAA;AAAA,EAC5B,EAAE,OAAO,YAAY,MAAM,sBAAsB,SAAS,GAAA;AAC5D,GAEMC,IAAe;AAAA,EACnB,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,SAAS,KAAK,GAAA;AAAA,EACd,OAAAD;AAAA,EACA,SAAS;AACX;AAEA,SAAS,kBAAkB,MAAM;AAC/B,KAAG,sDAAsD,MAAM;AAC7D,IAAAE,EAAO,gBAAAC,EAACC,GAAA,EAAU,GAAGH,EAAA,CAAc,CAAE,GAErCD,EAAM,QAAQ,CAACK,MAAS;AACtB,YAAMC,IAAWC,EAAO,UAAUF,EAAK,KAAK;AAC5C,aAAOC,CAAQ,EAAE,kBAAA;AAAA,IACnB,CAAC;AAAA,EACH,CAAC,GAED,GAAG,sCAAsC,MAAM;AAC7C,IAAAJ,EAAO,gBAAAC,EAACC,GAAA,EAAU,GAAGH,EAAA,CAAc,CAAE;AAErC,UAAMO,IAAQD,EAAO,UAAU,QAAQ;AACvC,WAAOC,CAAK,EAAE,kBAAA,GACd,OAAOA,EAAM,OAAO,EAAE,KAAK,KAAK;AAAA,EAClC,CAAC,GAED,GAAG,oEAAoE,MAAM;AAC3E,IAAAN,EAAO,gBAAAC,EAACC,KAAU,GAAGH,GAAc,UAAU,IAAM,QAAQ,IAAM,CAAE,GAEnE,OAAOM,EAAO,UAAU,cAAc,CAAC,EAAE,kBAAA;AAAA,EAC3C,CAAC,GAED,GAAG,mEAAmE,MAAM;AAC1E,IAAAL,EAAO,gBAAAC,EAACC,KAAU,GAAGH,GAAc,UAAU,IAAM,QAAQ,IAAO,CAAE,GAEpE,OAAOM,EAAO,YAAY,cAAc,CAAC,EAAE,IAAI,kBAAA;AAAA,EACjD,CAAC,GAED,GAAG,qEAAqE,YAAY;AAClF,UAAME,IAAOC,EAAU,MAAA,GACjBC,IAAc,KAAK,GAAA,GACnBC,IAAc;AAAA,MAClB,GAAGX;AAAA,MACH,UAAU;AAAA,MACV,SAASU;AAAA,IAAA;AAGX,IAAAT,EAAO,gBAAAC,EAACC,GAAA,EAAU,GAAGQ,EAAA,CAAa,CAAE,GAEpC,MAAMH,EAAK,MAAMF,EAAO,UAAU,WAAW,CAAC,GAC9C,OAAOI,CAAW,EAAE,iBAAA;AAAA,EACtB,CAAC,GAED,GAAG,8CAA8C,MAAM;AACrD,IAAAT,oBAAQE,GAAA,EAAU,GAAGH,GAAc,OAAO,CAAA,GAAI,CAAE,GAEhD,OAAOM,EAAO,aAAa,MAAM,CAAC,EAAE,kBAAA,GACpC,OAAOA,EAAO,YAAY,WAAW,CAAC,EAAE,IAAI,kBAAA,GAC5C,OAAOA,EAAO,YAAY,QAAQ,CAAC,EAAE,IAAI,kBAAA;AAAA,EAC3C,CAAC;AACH,CAAC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../../../src/components/SpinnerButton/index.tsx"],"sourcesContent":["import React from \"react\";\n\nimport Button from \"../Button\";\nimport styles from \"./index.module.scss\";\n\ntype SpinnerButtonProps = React.ComponentProps<typeof Button> & {\n /** ローディング状態 */\n isPending?: boolean;\n};\n\n/**\n * ローディング状態を表示できるボタンコンポーネント\n * isPending=trueの場合、ボタンテキストの代わりにスピナーを表示します\n */\nexport const SpinnerButton = (props: SpinnerButtonProps) => {\n const { children, isPending = false, disabled, ...buttonProps } = props;\n\n return (\n <Button {...buttonProps} disabled={disabled || isPending}>\n {isPending ? (\n <div className={styles.spinner} role=\"progressbar\" />\n ) : (\n <span>{children}</span>\n )}\n </Button>\n );\n};\n\nexport default SpinnerButton;\n"],"names":["SpinnerButton","props","children","isPending","disabled","buttonProps","Button","jsx","styles"],"mappings":"wNAcaA,EAAiBC,GAA8B,CAC1D,KAAM,CAAE,SAAAC,EAAU,UAAAC,EAAY,GAAO,SAAAC,EAAU,GAAGC,GAAgBJ,EAElE,aACGK,EAAAA,OAAQ,CAAA,GAAGD,EAAa,SAAUD,GAAYD,EAC5C,SACCA,EAAAI,MAAC,OAAI,UAAWC,EAAO,QAAS,KAAK,aAAA,CAAc,EAElDD,EAAAA,IAAA,OAAA,CAAM,SAAAL,EAAS,CAEpB,CAAA,CAEJ"}
1
+ {"version":3,"file":"index.cjs.js","sources":["../../../src/components/SpinnerButton/index.tsx"],"sourcesContent":["import React from \"react\";\n\nimport Button from \"../Button\";\nimport styles from \"./index.module.scss\";\n\ntype SpinnerButtonProps = React.ComponentProps<typeof Button> & {\n /** ローディング状態 */\n isPending?: boolean;\n};\n\n/**\n * ローディング状態を表示できるボタンコンポーネント\n * isPending=trueの場合、ボタンテキストの代わりにスピナーを表示します\n */\nexport const SpinnerButton = (props: SpinnerButtonProps) => {\n const { children, isPending = false, disabled, ...buttonProps } = props;\n\n return (\n <Button {...buttonProps} disabled={disabled || isPending}>\n {isPending ? (\n <div className={styles.spinner} role=\"progressbar\" />\n ) : (\n <span>{children}</span>\n )}\n </Button>\n );\n};\n\nexport default SpinnerButton;\n"],"names":["SpinnerButton","props","children","isPending","disabled","buttonProps","Button","jsx","styles"],"mappings":"wNAcaA,EAAiBC,GAA8B,CAC1D,KAAM,CAAE,SAAAC,EAAU,UAAAC,EAAY,GAAO,SAAAC,EAAU,GAAGC,GAAgBJ,EAElE,aACGK,EAAAA,OAAA,CAAQ,GAAGD,EAAa,SAAUD,GAAYD,EAC5C,SAAAA,EACCI,MAAC,OAAI,UAAWC,EAAO,QAAS,KAAK,aAAA,CAAc,EAEnDD,EAAAA,IAAC,OAAA,CAAM,SAAAL,EAAS,CAAA,CAEpB,CAEJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":["../../../src/components/SpinnerButton/index.tsx"],"sourcesContent":["import React from \"react\";\n\nimport Button from \"../Button\";\nimport styles from \"./index.module.scss\";\n\ntype SpinnerButtonProps = React.ComponentProps<typeof Button> & {\n /** ローディング状態 */\n isPending?: boolean;\n};\n\n/**\n * ローディング状態を表示できるボタンコンポーネント\n * isPending=trueの場合、ボタンテキストの代わりにスピナーを表示します\n */\nexport const SpinnerButton = (props: SpinnerButtonProps) => {\n const { children, isPending = false, disabled, ...buttonProps } = props;\n\n return (\n <Button {...buttonProps} disabled={disabled || isPending}>\n {isPending ? (\n <div className={styles.spinner} role=\"progressbar\" />\n ) : (\n <span>{children}</span>\n )}\n </Button>\n );\n};\n\nexport default SpinnerButton;\n"],"names":["SpinnerButton","props","children","isPending","disabled","buttonProps","Button","jsx","styles"],"mappings":";;;;GAcaA,IAAgB,CAACC,MAA8B;AAC1D,QAAM,EAAE,UAAAC,GAAU,WAAAC,IAAY,IAAO,UAAAC,GAAU,GAAGC,MAAgBJ;AAElE,2BACGK,GAAQ,EAAA,GAAGD,GAAa,UAAUD,KAAYD,GAC5C,UACCA,IAAA,gBAAAI,EAAC,SAAI,WAAWC,EAAO,SAAS,MAAK,cAAA,CAAc,IAElD,gBAAAD,EAAA,QAAA,EAAM,UAAAL,GAAS,EAEpB,CAAA;AAEJ;"}
1
+ {"version":3,"file":"index.es.js","sources":["../../../src/components/SpinnerButton/index.tsx"],"sourcesContent":["import React from \"react\";\n\nimport Button from \"../Button\";\nimport styles from \"./index.module.scss\";\n\ntype SpinnerButtonProps = React.ComponentProps<typeof Button> & {\n /** ローディング状態 */\n isPending?: boolean;\n};\n\n/**\n * ローディング状態を表示できるボタンコンポーネント\n * isPending=trueの場合、ボタンテキストの代わりにスピナーを表示します\n */\nexport const SpinnerButton = (props: SpinnerButtonProps) => {\n const { children, isPending = false, disabled, ...buttonProps } = props;\n\n return (\n <Button {...buttonProps} disabled={disabled || isPending}>\n {isPending ? (\n <div className={styles.spinner} role=\"progressbar\" />\n ) : (\n <span>{children}</span>\n )}\n </Button>\n );\n};\n\nexport default SpinnerButton;\n"],"names":["SpinnerButton","props","children","isPending","disabled","buttonProps","Button","jsx","styles"],"mappings":";;;;GAcaA,IAAgB,CAACC,MAA8B;AAC1D,QAAM,EAAE,UAAAC,GAAU,WAAAC,IAAY,IAAO,UAAAC,GAAU,GAAGC,MAAgBJ;AAElE,2BACGK,GAAA,EAAQ,GAAGD,GAAa,UAAUD,KAAYD,GAC5C,UAAAA,IACC,gBAAAI,EAAC,SAAI,WAAWC,EAAO,SAAS,MAAK,cAAA,CAAc,IAEnD,gBAAAD,EAAC,QAAA,EAAM,UAAAL,GAAS,EAAA,CAEpB;AAEJ;"}
@@ -1,2 +1,2 @@
1
- "use strict";const t=require("react/jsx-runtime"),e=require("../../react.esm-CiMn0Rnx.cjs");require("../../index-BpMSrIOq.cjs");const r=require("./index.cjs.js");describe("SpinnerButton Component",()=>{it("renders button text when not pending",()=>{e.render(t.jsx(r.SpinnerButton,{children:"ボタンテキスト"})),expect(e.screen.getByText("ボタンテキスト")).toBeInTheDocument()}),it("renders spinner when pending",()=>{const{container:n}=e.render(t.jsx(r.SpinnerButton,{isPending:!0,children:"ボタンテキスト"}));expect(e.screen.queryByText("ボタンテキスト")).not.toBeInTheDocument(),expect(n.querySelector(".spinner")).toBeInTheDocument()}),it("adds progressbar role to spinner",()=>{e.render(t.jsx(r.SpinnerButton,{isPending:!0,children:"ボタンテキスト"})),expect(e.screen.getByRole("progressbar")).toBeInTheDocument()}),it("disables button when pending",()=>{e.render(t.jsx(r.SpinnerButton,{isPending:!0,children:"ボタンテキスト"}));const n=e.screen.getByRole("button");expect(n).toBeDisabled()}),it("disables button when disabled prop is true",()=>{e.render(t.jsx(r.SpinnerButton,{disabled:!0,children:"ボタンテキスト"}));const n=e.screen.getByRole("button");expect(n).toBeDisabled()}),it("passes other props to Button component",()=>{e.render(t.jsx(r.SpinnerButton,{color:"secondary",fullWidth:!0,variant:"contained",children:"ボタンテキスト"}));const n=e.screen.getByRole("button");expect(n).toHaveClass("MuiButton-fullWidth"),expect(n).toHaveClass("MuiButton-containedSecondary")})});
1
+ "use strict";const t=require("react/jsx-runtime"),e=require("../../react.esm-DGuy6Rn3.cjs");require("../../index-9p9q0wxE.cjs");const r=require("./index.cjs.js");describe("SpinnerButton Component",()=>{it("renders button text when not pending",()=>{e.render(t.jsx(r.SpinnerButton,{children:"ボタンテキスト"})),expect(e.screen.getByText("ボタンテキスト")).toBeInTheDocument()}),it("renders spinner when pending",()=>{const{container:n}=e.render(t.jsx(r.SpinnerButton,{isPending:!0,children:"ボタンテキスト"}));expect(e.screen.queryByText("ボタンテキスト")).not.toBeInTheDocument(),expect(n.querySelector(".spinner")).toBeInTheDocument()}),it("adds progressbar role to spinner",()=>{e.render(t.jsx(r.SpinnerButton,{isPending:!0,children:"ボタンテキスト"})),expect(e.screen.getByRole("progressbar")).toBeInTheDocument()}),it("disables button when pending",()=>{e.render(t.jsx(r.SpinnerButton,{isPending:!0,children:"ボタンテキスト"}));const n=e.screen.getByRole("button");expect(n).toBeDisabled()}),it("disables button when disabled prop is true",()=>{e.render(t.jsx(r.SpinnerButton,{disabled:!0,children:"ボタンテキスト"}));const n=e.screen.getByRole("button");expect(n).toBeDisabled()}),it("passes other props to Button component",()=>{e.render(t.jsx(r.SpinnerButton,{color:"secondary",fullWidth:!0,variant:"contained",children:"ボタンテキスト"}));const n=e.screen.getByRole("button");expect(n).toHaveClass("MuiButton-fullWidth"),expect(n).toHaveClass("MuiButton-containedSecondary")})});
2
2
  //# sourceMappingURL=index.test.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.test.cjs.js","sources":["../../../src/components/SpinnerButton/index.test.tsx"],"sourcesContent":["import { render, screen } from \"@testing-library/react\";\n\nimport \"@testing-library/jest-dom\";\n\nimport { SpinnerButton } from \".\";\n\ndescribe(\"SpinnerButton Component\", () => {\n it(\"renders button text when not pending\", () => {\n render(<SpinnerButton>ボタンテキスト</SpinnerButton>);\n expect(screen.getByText(\"ボタンテキスト\")).toBeInTheDocument();\n });\n\n it(\"renders spinner when pending\", () => {\n const { container } = render(\n <SpinnerButton isPending>ボタンテキスト</SpinnerButton>,\n );\n expect(screen.queryByText(\"ボタンテキスト\")).not.toBeInTheDocument();\n expect(container.querySelector(\".spinner\")).toBeInTheDocument();\n });\n\n it(\"adds progressbar role to spinner\", () => {\n render(<SpinnerButton isPending>ボタンテキスト</SpinnerButton>);\n expect(screen.getByRole(\"progressbar\")).toBeInTheDocument();\n });\n\n it(\"disables button when pending\", () => {\n render(<SpinnerButton isPending>ボタンテキスト</SpinnerButton>);\n const button = screen.getByRole(\"button\");\n expect(button).toBeDisabled();\n });\n\n it(\"disables button when disabled prop is true\", () => {\n render(<SpinnerButton disabled>ボタンテキスト</SpinnerButton>);\n const button = screen.getByRole(\"button\");\n expect(button).toBeDisabled();\n });\n\n it(\"passes other props to Button component\", () => {\n render(\n <SpinnerButton color=\"secondary\" fullWidth variant=\"contained\">\n ボタンテキスト\n </SpinnerButton>,\n );\n const button = screen.getByRole(\"button\");\n expect(button).toHaveClass(\"MuiButton-fullWidth\");\n expect(button).toHaveClass(\"MuiButton-containedSecondary\");\n });\n});\n"],"names":["render","jsx","SpinnerButton","screen","container","button"],"mappings":"kKAMA,SAAS,0BAA2B,IAAM,CACxC,GAAG,uCAAwC,IAAM,CACxCA,EAAA,OAAAC,EAAA,IAACC,EAAc,cAAA,CAAA,SAAA,SAAO,CAAA,CAAgB,EAC7C,OAAOC,EAAAA,OAAO,UAAU,SAAS,CAAC,EAAE,kBAAkB,CAAA,CACvD,EAED,GAAG,+BAAgC,IAAM,CACjC,KAAA,CAAE,UAAAC,GAAcJ,EAAA,OACnBC,EAAA,IAAAC,EAAA,cAAA,CAAc,UAAS,GAAC,SAAO,SAAA,CAAA,CAClC,EACA,OAAOC,SAAO,YAAY,SAAS,CAAC,EAAE,IAAI,kBAAkB,EAC5D,OAAOC,EAAU,cAAc,UAAU,CAAC,EAAE,kBAAkB,CAAA,CAC/D,EAED,GAAG,mCAAoC,IAAM,CAC3CJ,SAAQC,EAAAA,IAAAC,EAAAA,cAAA,CAAc,UAAS,GAAC,mBAAO,CAAgB,EACvD,OAAOC,EAAAA,OAAO,UAAU,aAAa,CAAC,EAAE,kBAAkB,CAAA,CAC3D,EAED,GAAG,+BAAgC,IAAM,CACvCH,SAAQC,EAAAA,IAAAC,EAAAA,cAAA,CAAc,UAAS,GAAC,mBAAO,CAAgB,EACjD,MAAAG,EAASF,EAAAA,OAAO,UAAU,QAAQ,EACjC,OAAAE,CAAM,EAAE,aAAa,CAAA,CAC7B,EAED,GAAG,6CAA8C,IAAM,CACrDL,SAAQC,EAAAA,IAAAC,EAAAA,cAAA,CAAc,SAAQ,GAAC,mBAAO,CAAgB,EAChD,MAAAG,EAASF,EAAAA,OAAO,UAAU,QAAQ,EACjC,OAAAE,CAAM,EAAE,aAAa,CAAA,CAC7B,EAED,GAAG,yCAA0C,IAAM,CACjDL,EAAA,OACEC,EAAAA,IAACC,iBAAc,MAAM,YAAY,UAAS,GAAC,QAAQ,YAAY,SAE/D,SAAA,CAAA,CACF,EACM,MAAAG,EAASF,EAAAA,OAAO,UAAU,QAAQ,EACjC,OAAAE,CAAM,EAAE,YAAY,qBAAqB,EACzC,OAAAA,CAAM,EAAE,YAAY,8BAA8B,CAAA,CAC1D,CACH,CAAC"}
1
+ {"version":3,"file":"index.test.cjs.js","sources":["../../../src/components/SpinnerButton/index.test.tsx"],"sourcesContent":["import { render, screen } from \"@testing-library/react\";\n\nimport \"@testing-library/jest-dom\";\n\nimport { SpinnerButton } from \".\";\n\ndescribe(\"SpinnerButton Component\", () => {\n it(\"renders button text when not pending\", () => {\n render(<SpinnerButton>ボタンテキスト</SpinnerButton>);\n expect(screen.getByText(\"ボタンテキスト\")).toBeInTheDocument();\n });\n\n it(\"renders spinner when pending\", () => {\n const { container } = render(\n <SpinnerButton isPending>ボタンテキスト</SpinnerButton>,\n );\n expect(screen.queryByText(\"ボタンテキスト\")).not.toBeInTheDocument();\n expect(container.querySelector(\".spinner\")).toBeInTheDocument();\n });\n\n it(\"adds progressbar role to spinner\", () => {\n render(<SpinnerButton isPending>ボタンテキスト</SpinnerButton>);\n expect(screen.getByRole(\"progressbar\")).toBeInTheDocument();\n });\n\n it(\"disables button when pending\", () => {\n render(<SpinnerButton isPending>ボタンテキスト</SpinnerButton>);\n const button = screen.getByRole(\"button\");\n expect(button).toBeDisabled();\n });\n\n it(\"disables button when disabled prop is true\", () => {\n render(<SpinnerButton disabled>ボタンテキスト</SpinnerButton>);\n const button = screen.getByRole(\"button\");\n expect(button).toBeDisabled();\n });\n\n it(\"passes other props to Button component\", () => {\n render(\n <SpinnerButton color=\"secondary\" fullWidth variant=\"contained\">\n ボタンテキスト\n </SpinnerButton>,\n );\n const button = screen.getByRole(\"button\");\n expect(button).toHaveClass(\"MuiButton-fullWidth\");\n expect(button).toHaveClass(\"MuiButton-containedSecondary\");\n });\n});\n"],"names":["render","jsx","SpinnerButton","screen","container","button"],"mappings":"kKAMA,SAAS,0BAA2B,IAAM,CACxC,GAAG,uCAAwC,IAAM,CAC/CA,EAAAA,OAAOC,EAAAA,IAACC,EAAAA,cAAA,CAAc,SAAA,SAAA,CAAO,CAAgB,EAC7C,OAAOC,EAAAA,OAAO,UAAU,SAAS,CAAC,EAAE,kBAAA,CACtC,CAAC,EAED,GAAG,+BAAgC,IAAM,CACvC,KAAM,CAAE,UAAAC,GAAcJ,EAAAA,OACpBC,EAAAA,IAACC,EAAAA,cAAA,CAAc,UAAS,GAAC,SAAA,SAAA,CAAO,CAAA,EAElC,OAAOC,EAAAA,OAAO,YAAY,SAAS,CAAC,EAAE,IAAI,kBAAA,EAC1C,OAAOC,EAAU,cAAc,UAAU,CAAC,EAAE,kBAAA,CAC9C,CAAC,EAED,GAAG,mCAAoC,IAAM,CAC3CJ,SAAOC,EAAAA,IAACC,EAAAA,cAAA,CAAc,UAAS,GAAC,mBAAO,CAAgB,EACvD,OAAOC,EAAAA,OAAO,UAAU,aAAa,CAAC,EAAE,kBAAA,CAC1C,CAAC,EAED,GAAG,+BAAgC,IAAM,CACvCH,SAAOC,EAAAA,IAACC,EAAAA,cAAA,CAAc,UAAS,GAAC,mBAAO,CAAgB,EACvD,MAAMG,EAASF,EAAAA,OAAO,UAAU,QAAQ,EACxC,OAAOE,CAAM,EAAE,aAAA,CACjB,CAAC,EAED,GAAG,6CAA8C,IAAM,CACrDL,SAAOC,EAAAA,IAACC,EAAAA,cAAA,CAAc,SAAQ,GAAC,mBAAO,CAAgB,EACtD,MAAMG,EAASF,EAAAA,OAAO,UAAU,QAAQ,EACxC,OAAOE,CAAM,EAAE,aAAA,CACjB,CAAC,EAED,GAAG,yCAA0C,IAAM,CACjDL,EAAAA,OACEC,EAAAA,IAACC,EAAAA,eAAc,MAAM,YAAY,UAAS,GAAC,QAAQ,YAAY,SAAA,SAAA,CAE/D,CAAA,EAEF,MAAMG,EAASF,EAAAA,OAAO,UAAU,QAAQ,EACxC,OAAOE,CAAM,EAAE,YAAY,qBAAqB,EAChD,OAAOA,CAAM,EAAE,YAAY,8BAA8B,CAC3D,CAAC,CACH,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { jsx as t } from "react/jsx-runtime";
2
- import { r as n, s as o } from "../../react.esm-2FJSSo-S.js";
3
- import "../../index-DCSLk6pp.js";
2
+ import { r as n, s as o } from "../../react.esm-BBESb8eI.js";
3
+ import "../../index-Cj9ZvtM1.js";
4
4
  import { SpinnerButton as r } from "./index.es.js";
5
5
  describe("SpinnerButton Component", () => {
6
6
  it("renders button text when not pending", () => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.test.es.js","sources":["../../../src/components/SpinnerButton/index.test.tsx"],"sourcesContent":["import { render, screen } from \"@testing-library/react\";\n\nimport \"@testing-library/jest-dom\";\n\nimport { SpinnerButton } from \".\";\n\ndescribe(\"SpinnerButton Component\", () => {\n it(\"renders button text when not pending\", () => {\n render(<SpinnerButton>ボタンテキスト</SpinnerButton>);\n expect(screen.getByText(\"ボタンテキスト\")).toBeInTheDocument();\n });\n\n it(\"renders spinner when pending\", () => {\n const { container } = render(\n <SpinnerButton isPending>ボタンテキスト</SpinnerButton>,\n );\n expect(screen.queryByText(\"ボタンテキスト\")).not.toBeInTheDocument();\n expect(container.querySelector(\".spinner\")).toBeInTheDocument();\n });\n\n it(\"adds progressbar role to spinner\", () => {\n render(<SpinnerButton isPending>ボタンテキスト</SpinnerButton>);\n expect(screen.getByRole(\"progressbar\")).toBeInTheDocument();\n });\n\n it(\"disables button when pending\", () => {\n render(<SpinnerButton isPending>ボタンテキスト</SpinnerButton>);\n const button = screen.getByRole(\"button\");\n expect(button).toBeDisabled();\n });\n\n it(\"disables button when disabled prop is true\", () => {\n render(<SpinnerButton disabled>ボタンテキスト</SpinnerButton>);\n const button = screen.getByRole(\"button\");\n expect(button).toBeDisabled();\n });\n\n it(\"passes other props to Button component\", () => {\n render(\n <SpinnerButton color=\"secondary\" fullWidth variant=\"contained\">\n ボタンテキスト\n </SpinnerButton>,\n );\n const button = screen.getByRole(\"button\");\n expect(button).toHaveClass(\"MuiButton-fullWidth\");\n expect(button).toHaveClass(\"MuiButton-containedSecondary\");\n });\n});\n"],"names":["render","jsx","SpinnerButton","screen","container","button"],"mappings":";;;;AAMA,SAAS,2BAA2B,MAAM;AACxC,KAAG,wCAAwC,MAAM;AACxC,IAAAA,EAAA,gBAAAC,EAACC,GAAc,EAAA,UAAA,UAAO,CAAA,CAAgB,GAC7C,OAAOC,EAAO,UAAU,SAAS,CAAC,EAAE,kBAAkB;AAAA,EAAA,CACvD,GAED,GAAG,gCAAgC,MAAM;AACjC,UAAA,EAAE,WAAAC,MAAcJ;AAAA,MACnB,gBAAAC,EAAAC,GAAA,EAAc,WAAS,IAAC,UAAO,UAAA,CAAA;AAAA,IAClC;AACA,WAAOC,EAAO,YAAY,SAAS,CAAC,EAAE,IAAI,kBAAkB,GAC5D,OAAOC,EAAU,cAAc,UAAU,CAAC,EAAE,kBAAkB;AAAA,EAAA,CAC/D,GAED,GAAG,oCAAoC,MAAM;AAC3C,IAAAJ,EAAQ,gBAAAC,EAAAC,GAAA,EAAc,WAAS,IAAC,qBAAO,CAAgB,GACvD,OAAOC,EAAO,UAAU,aAAa,CAAC,EAAE,kBAAkB;AAAA,EAAA,CAC3D,GAED,GAAG,gCAAgC,MAAM;AACvC,IAAAH,EAAQ,gBAAAC,EAAAC,GAAA,EAAc,WAAS,IAAC,qBAAO,CAAgB;AACjD,UAAAG,IAASF,EAAO,UAAU,QAAQ;AACjC,WAAAE,CAAM,EAAE,aAAa;AAAA,EAAA,CAC7B,GAED,GAAG,8CAA8C,MAAM;AACrD,IAAAL,EAAQ,gBAAAC,EAAAC,GAAA,EAAc,UAAQ,IAAC,qBAAO,CAAgB;AAChD,UAAAG,IAASF,EAAO,UAAU,QAAQ;AACjC,WAAAE,CAAM,EAAE,aAAa;AAAA,EAAA,CAC7B,GAED,GAAG,0CAA0C,MAAM;AACjD,IAAAL;AAAA,MACE,gBAAAC,EAACC,KAAc,OAAM,aAAY,WAAS,IAAC,SAAQ,aAAY,UAE/D,UAAA,CAAA;AAAA,IACF;AACM,UAAAG,IAASF,EAAO,UAAU,QAAQ;AACjC,WAAAE,CAAM,EAAE,YAAY,qBAAqB,GACzC,OAAAA,CAAM,EAAE,YAAY,8BAA8B;AAAA,EAAA,CAC1D;AACH,CAAC;"}
1
+ {"version":3,"file":"index.test.es.js","sources":["../../../src/components/SpinnerButton/index.test.tsx"],"sourcesContent":["import { render, screen } from \"@testing-library/react\";\n\nimport \"@testing-library/jest-dom\";\n\nimport { SpinnerButton } from \".\";\n\ndescribe(\"SpinnerButton Component\", () => {\n it(\"renders button text when not pending\", () => {\n render(<SpinnerButton>ボタンテキスト</SpinnerButton>);\n expect(screen.getByText(\"ボタンテキスト\")).toBeInTheDocument();\n });\n\n it(\"renders spinner when pending\", () => {\n const { container } = render(\n <SpinnerButton isPending>ボタンテキスト</SpinnerButton>,\n );\n expect(screen.queryByText(\"ボタンテキスト\")).not.toBeInTheDocument();\n expect(container.querySelector(\".spinner\")).toBeInTheDocument();\n });\n\n it(\"adds progressbar role to spinner\", () => {\n render(<SpinnerButton isPending>ボタンテキスト</SpinnerButton>);\n expect(screen.getByRole(\"progressbar\")).toBeInTheDocument();\n });\n\n it(\"disables button when pending\", () => {\n render(<SpinnerButton isPending>ボタンテキスト</SpinnerButton>);\n const button = screen.getByRole(\"button\");\n expect(button).toBeDisabled();\n });\n\n it(\"disables button when disabled prop is true\", () => {\n render(<SpinnerButton disabled>ボタンテキスト</SpinnerButton>);\n const button = screen.getByRole(\"button\");\n expect(button).toBeDisabled();\n });\n\n it(\"passes other props to Button component\", () => {\n render(\n <SpinnerButton color=\"secondary\" fullWidth variant=\"contained\">\n ボタンテキスト\n </SpinnerButton>,\n );\n const button = screen.getByRole(\"button\");\n expect(button).toHaveClass(\"MuiButton-fullWidth\");\n expect(button).toHaveClass(\"MuiButton-containedSecondary\");\n });\n});\n"],"names":["render","jsx","SpinnerButton","screen","container","button"],"mappings":";;;;AAMA,SAAS,2BAA2B,MAAM;AACxC,KAAG,wCAAwC,MAAM;AAC/C,IAAAA,EAAO,gBAAAC,EAACC,GAAA,EAAc,UAAA,UAAA,CAAO,CAAgB,GAC7C,OAAOC,EAAO,UAAU,SAAS,CAAC,EAAE,kBAAA;AAAA,EACtC,CAAC,GAED,GAAG,gCAAgC,MAAM;AACvC,UAAM,EAAE,WAAAC,MAAcJ;AAAA,MACpB,gBAAAC,EAACC,GAAA,EAAc,WAAS,IAAC,UAAA,UAAA,CAAO;AAAA,IAAA;AAElC,WAAOC,EAAO,YAAY,SAAS,CAAC,EAAE,IAAI,kBAAA,GAC1C,OAAOC,EAAU,cAAc,UAAU,CAAC,EAAE,kBAAA;AAAA,EAC9C,CAAC,GAED,GAAG,oCAAoC,MAAM;AAC3C,IAAAJ,EAAO,gBAAAC,EAACC,GAAA,EAAc,WAAS,IAAC,qBAAO,CAAgB,GACvD,OAAOC,EAAO,UAAU,aAAa,CAAC,EAAE,kBAAA;AAAA,EAC1C,CAAC,GAED,GAAG,gCAAgC,MAAM;AACvC,IAAAH,EAAO,gBAAAC,EAACC,GAAA,EAAc,WAAS,IAAC,qBAAO,CAAgB;AACvD,UAAMG,IAASF,EAAO,UAAU,QAAQ;AACxC,WAAOE,CAAM,EAAE,aAAA;AAAA,EACjB,CAAC,GAED,GAAG,8CAA8C,MAAM;AACrD,IAAAL,EAAO,gBAAAC,EAACC,GAAA,EAAc,UAAQ,IAAC,qBAAO,CAAgB;AACtD,UAAMG,IAASF,EAAO,UAAU,QAAQ;AACxC,WAAOE,CAAM,EAAE,aAAA;AAAA,EACjB,CAAC,GAED,GAAG,0CAA0C,MAAM;AACjD,IAAAL;AAAA,MACE,gBAAAC,EAACC,KAAc,OAAM,aAAY,WAAS,IAAC,SAAQ,aAAY,UAAA,UAAA,CAE/D;AAAA,IAAA;AAEF,UAAMG,IAASF,EAAO,UAAU,QAAQ;AACxC,WAAOE,CAAM,EAAE,YAAY,qBAAqB,GAChD,OAAOA,CAAM,EAAE,YAAY,8BAA8B;AAAA,EAC3D,CAAC;AACH,CAAC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../../../src/components/SubMenu/index.tsx"],"sourcesContent":["import { ReactNode, useState } from \"react\";\nimport {\n Button,\n Divider,\n ListItemIcon,\n ListItemText,\n Menu,\n MenuItem,\n Typography,\n} from \"@mui/material\";\n\ntype MenuItemType = {\n /** 操作メニューのアイコン */\n icon: React.ReactNode;\n /** 操作メニュー名 */\n title: string;\n /** ショートカットキー */\n shortcut?: string;\n /** メニュー下の区切り線有無 */\n separatorLine?: boolean;\n /** クリックした時の動作 */\n onClick?: (event: React.MouseEvent<HTMLLIElement, MouseEvent>) => void;\n /** クリックした時に閉じるか否か。指定がない場合はクリック時メニューが自動的に閉じます*/\n closeWhenClick?: boolean;\n};\n\ntype Props = {\n menuItems: MenuItemType[];\n buttonElement: ReactNode;\n};\n\nexport const SubMenu = (props: Props) => {\n const { menuItems, buttonElement } = props;\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n const open = Boolean(anchorEl);\n const handleClick = (event: React.MouseEvent<HTMLElement>) => {\n event.stopPropagation();\n setAnchorEl(event.currentTarget);\n };\n const handleClose = (event: React.MouseEvent<HTMLElement>) => {\n event.stopPropagation();\n setAnchorEl(null);\n };\n\n const handleItemClick = (\n event: React.MouseEvent<HTMLLIElement, MouseEvent>,\n item: MenuItemType,\n ) => {\n event.stopPropagation();\n if (item.onClick) {\n item.onClick(event);\n }\n if (item.closeWhenClick !== false) {\n handleClose(event);\n }\n };\n\n return [\n (\n <Button\n key=\"submenu-button\"\n id=\"fade-button\"\n aria-controls={open ? \"fade-menu\" : undefined}\n aria-haspopup=\"true\"\n aria-expanded={open ? \"true\" : undefined}\n onClick={handleClick}\n color={\"inherit\"}\n >\n {buttonElement} {/* ここでButton要素を表示します */}\n </Button>\n ),\n (\n <Menu\n key=\"submenu-menu\"\n id=\"fade-menu\"\n MenuListProps={{\n \"aria-labelledby\": \"fade-button\",\n }}\n anchorEl={anchorEl}\n open={open}\n onClose={handleClose}\n anchorOrigin={{\n vertical: \"bottom\",\n horizontal: \"right\",\n }}\n transformOrigin={{\n vertical: \"top\",\n horizontal: \"right\",\n }}\n >\n {menuItems.flatMap((item, index) => {\n const elements = [\n (\n <MenuItem\n key={`item-${index}`}\n onClick={(e) => handleItemClick(e, item)}\n sx={{ minWidth: 200 }}\n >\n <ListItemIcon>{item.icon}</ListItemIcon>\n <ListItemText>{item.title}</ListItemText>\n {item.shortcut && (\n <Typography variant=\"body2\" color=\"text.secondary\">\n {item.shortcut}\n </Typography>\n )}\n </MenuItem>\n ),\n ];\n if (item.separatorLine) {\n elements.push(<Divider key={`divider-${index}`} />);\n }\n return elements;\n })}\n </Menu>\n ),\n ];\n};\n\nexport default SubMenu;\n"],"names":["SubMenu","props","menuItems","buttonElement","anchorEl","setAnchorEl","useState","open","handleClick","event","handleClose","handleItemClick","item","jsxs","Button","jsx","Menu","index","elements","MenuItem","e","ListItemIcon","ListItemText","Typography","Divider"],"mappings":"+LA+BaA,EAAWC,GAAiB,CACjC,KAAA,CAAE,UAAAC,EAAW,cAAAC,CAAA,EAAkBF,EAE/B,CAACG,EAAUC,CAAW,EAAIC,EAAAA,SAA6B,IAAI,EAC3DC,EAAO,EAAQH,EACfI,EAAeC,GAAyC,CAC5DA,EAAM,gBAAgB,EACtBJ,EAAYI,EAAM,aAAa,CACjC,EACMC,EAAeD,GAAyC,CAC5DA,EAAM,gBAAgB,EACtBJ,EAAY,IAAI,CAClB,EAEMM,EAAkB,CACtBF,EACAG,IACG,CACHH,EAAM,gBAAgB,EAClBG,EAAK,SACPA,EAAK,QAAQH,CAAK,EAEhBG,EAAK,iBAAmB,IAC1BF,EAAYD,CAAK,CAErB,EAEO,MAAA,CAEHI,EAAA,KAACC,EAAA,OAAA,CAEC,GAAG,cACH,gBAAeP,EAAO,YAAc,OACpC,gBAAc,OACd,gBAAeA,EAAO,OAAS,OAC/B,QAASC,EACT,MAAO,UAEN,SAAA,CAAAL,EAAc,GAAA,CAAA,EARX,gBASN,EAGAY,EAAA,IAACC,EAAA,KAAA,CAEC,GAAG,YACH,cAAe,CACb,kBAAmB,aACrB,EACA,SAAAZ,EACA,KAAAG,EACA,QAASG,EACT,aAAc,CACZ,SAAU,SACV,WAAY,OACd,EACA,gBAAiB,CACf,SAAU,MACV,WAAY,OACd,EAEC,SAAUR,EAAA,QAAQ,CAACU,EAAMK,IAAU,CAClC,MAAMC,EAAW,CAEbL,EAAA,KAACM,EAAA,SAAA,CAEC,QAAUC,GAAMT,EAAgBS,EAAGR,CAAI,EACvC,GAAI,CAAE,SAAU,GAAI,EAEpB,SAAA,CAACG,EAAAA,IAAAM,EAAAA,aAAA,CAAc,WAAK,IAAK,CAAA,EACzBN,EAAAA,IAACO,EAAAA,aAAc,CAAA,SAAAV,EAAK,KAAM,CAAA,EACzBA,EAAK,UACHG,MAAAQ,EAAAA,WAAA,CAAW,QAAQ,QAAQ,MAAM,iBAC/B,SAAAX,EAAK,QACR,CAAA,CAAA,CAAA,EATG,QAAQK,CAAK,EAAA,CAaxB,EACA,OAAIL,EAAK,eACPM,EAAS,KAAMH,EAAAA,IAAAS,EAAA,QAAA,CAAA,EAAa,WAAWP,CAAK,EAAI,CAAE,EAE7CC,CACR,CAAA,CAAA,EAvCG,cAAA,CA0CV,CACF"}
1
+ {"version":3,"file":"index.cjs.js","sources":["../../../src/components/SubMenu/index.tsx"],"sourcesContent":["import { ReactNode, useState } from \"react\";\nimport {\n Button,\n Divider,\n ListItemIcon,\n ListItemText,\n Menu,\n MenuItem,\n Typography,\n} from \"@mui/material\";\n\ntype MenuItemType = {\n /** 操作メニューのアイコン */\n icon: React.ReactNode;\n /** 操作メニュー名 */\n title: string;\n /** ショートカットキー */\n shortcut?: string;\n /** メニュー下の区切り線有無 */\n separatorLine?: boolean;\n /** クリックした時の動作 */\n onClick?: (event: React.MouseEvent<HTMLLIElement, MouseEvent>) => void;\n /** クリックした時に閉じるか否か。指定がない場合はクリック時メニューが自動的に閉じます*/\n closeWhenClick?: boolean;\n};\n\ntype Props = {\n menuItems: MenuItemType[];\n buttonElement: ReactNode;\n};\n\nexport const SubMenu = (props: Props) => {\n const { menuItems, buttonElement } = props;\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n const open = Boolean(anchorEl);\n const handleClick = (event: React.MouseEvent<HTMLElement>) => {\n event.stopPropagation();\n setAnchorEl(event.currentTarget);\n };\n const handleClose = (event: React.MouseEvent<HTMLElement>) => {\n event.stopPropagation();\n setAnchorEl(null);\n };\n\n const handleItemClick = (\n event: React.MouseEvent<HTMLLIElement, MouseEvent>,\n item: MenuItemType,\n ) => {\n event.stopPropagation();\n if (item.onClick) {\n item.onClick(event);\n }\n if (item.closeWhenClick !== false) {\n handleClose(event);\n }\n };\n\n return [\n <Button\n key=\"submenu-button\"\n id=\"fade-button\"\n aria-controls={open ? \"fade-menu\" : undefined}\n aria-haspopup=\"true\"\n aria-expanded={open ? \"true\" : undefined}\n onClick={handleClick}\n color={\"inherit\"}\n >\n {buttonElement} {/* ここでButton要素を表示します */}\n </Button>,\n <Menu\n key=\"submenu-menu\"\n id=\"fade-menu\"\n MenuListProps={{\n \"aria-labelledby\": \"fade-button\",\n }}\n anchorEl={anchorEl}\n open={open}\n onClose={handleClose}\n anchorOrigin={{\n vertical: \"bottom\",\n horizontal: \"right\",\n }}\n transformOrigin={{\n vertical: \"top\",\n horizontal: \"right\",\n }}\n >\n {menuItems.flatMap((item, index) => {\n const elements = [\n <MenuItem\n key={`item-${index}`}\n onClick={(e) => handleItemClick(e, item)}\n sx={{ minWidth: 200 }}\n >\n <ListItemIcon>{item.icon}</ListItemIcon>\n <ListItemText>{item.title}</ListItemText>\n {item.shortcut && (\n <Typography variant=\"body2\" color=\"text.secondary\">\n {item.shortcut}\n </Typography>\n )}\n </MenuItem>,\n ];\n if (item.separatorLine) {\n elements.push(<Divider key={`divider-${index}`} />);\n }\n return elements;\n })}\n </Menu>,\n ];\n};\n\nexport default SubMenu;\n"],"names":["SubMenu","props","menuItems","buttonElement","anchorEl","setAnchorEl","useState","open","handleClick","event","handleClose","handleItemClick","item","jsxs","Button","jsx","Menu","index","elements","MenuItem","e","ListItemIcon","ListItemText","Typography","Divider"],"mappings":"+LA+BaA,EAAWC,GAAiB,CACvC,KAAM,CAAE,UAAAC,EAAW,cAAAC,CAAA,EAAkBF,EAE/B,CAACG,EAAUC,CAAW,EAAIC,EAAAA,SAA6B,IAAI,EAC3DC,EAAO,EAAQH,EACfI,EAAeC,GAAyC,CAC5DA,EAAM,gBAAA,EACNJ,EAAYI,EAAM,aAAa,CACjC,EACMC,EAAeD,GAAyC,CAC5DA,EAAM,gBAAA,EACNJ,EAAY,IAAI,CAClB,EAEMM,EAAkB,CACtBF,EACAG,IACG,CACHH,EAAM,gBAAA,EACFG,EAAK,SACPA,EAAK,QAAQH,CAAK,EAEhBG,EAAK,iBAAmB,IAC1BF,EAAYD,CAAK,CAErB,EAEA,MAAO,CACLI,EAAAA,KAACC,EAAAA,OAAA,CAEC,GAAG,cACH,gBAAeP,EAAO,YAAc,OACpC,gBAAc,OACd,gBAAeA,EAAO,OAAS,OAC/B,QAASC,EACT,MAAO,UAEN,SAAA,CAAAL,EAAc,GAAA,CAAA,EARX,gBAAA,EAUNY,EAAAA,IAACC,EAAAA,KAAA,CAEC,GAAG,YACH,cAAe,CACb,kBAAmB,aAAA,EAErB,SAAAZ,EACA,KAAAG,EACA,QAASG,EACT,aAAc,CACZ,SAAU,SACV,WAAY,OAAA,EAEd,gBAAiB,CACf,SAAU,MACV,WAAY,OAAA,EAGb,SAAAR,EAAU,QAAQ,CAACU,EAAMK,IAAU,CAClC,MAAMC,EAAW,CACfL,EAAAA,KAACM,EAAAA,SAAA,CAEC,QAAUC,GAAMT,EAAgBS,EAAGR,CAAI,EACvC,GAAI,CAAE,SAAU,GAAA,EAEhB,SAAA,CAAAG,EAAAA,IAACM,EAAAA,aAAA,CAAc,WAAK,IAAA,CAAK,EACzBN,EAAAA,IAACO,EAAAA,aAAA,CAAc,SAAAV,EAAK,KAAA,CAAM,EACzBA,EAAK,UACJG,MAACQ,EAAAA,WAAA,CAAW,QAAQ,QAAQ,MAAM,iBAC/B,SAAAX,EAAK,QAAA,CACR,CAAA,CAAA,EATG,QAAQK,CAAK,EAAA,CAWpB,EAEF,OAAIL,EAAK,eACPM,EAAS,KAAKH,EAAAA,IAACS,EAAAA,QAAA,CAAA,EAAa,WAAWP,CAAK,EAAI,CAAE,EAE7CC,CACT,CAAC,CAAA,EArCG,cAAA,CAsCN,CAEJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":["../../../src/components/SubMenu/index.tsx"],"sourcesContent":["import { ReactNode, useState } from \"react\";\nimport {\n Button,\n Divider,\n ListItemIcon,\n ListItemText,\n Menu,\n MenuItem,\n Typography,\n} from \"@mui/material\";\n\ntype MenuItemType = {\n /** 操作メニューのアイコン */\n icon: React.ReactNode;\n /** 操作メニュー名 */\n title: string;\n /** ショートカットキー */\n shortcut?: string;\n /** メニュー下の区切り線有無 */\n separatorLine?: boolean;\n /** クリックした時の動作 */\n onClick?: (event: React.MouseEvent<HTMLLIElement, MouseEvent>) => void;\n /** クリックした時に閉じるか否か。指定がない場合はクリック時メニューが自動的に閉じます*/\n closeWhenClick?: boolean;\n};\n\ntype Props = {\n menuItems: MenuItemType[];\n buttonElement: ReactNode;\n};\n\nexport const SubMenu = (props: Props) => {\n const { menuItems, buttonElement } = props;\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n const open = Boolean(anchorEl);\n const handleClick = (event: React.MouseEvent<HTMLElement>) => {\n event.stopPropagation();\n setAnchorEl(event.currentTarget);\n };\n const handleClose = (event: React.MouseEvent<HTMLElement>) => {\n event.stopPropagation();\n setAnchorEl(null);\n };\n\n const handleItemClick = (\n event: React.MouseEvent<HTMLLIElement, MouseEvent>,\n item: MenuItemType,\n ) => {\n event.stopPropagation();\n if (item.onClick) {\n item.onClick(event);\n }\n if (item.closeWhenClick !== false) {\n handleClose(event);\n }\n };\n\n return [\n (\n <Button\n key=\"submenu-button\"\n id=\"fade-button\"\n aria-controls={open ? \"fade-menu\" : undefined}\n aria-haspopup=\"true\"\n aria-expanded={open ? \"true\" : undefined}\n onClick={handleClick}\n color={\"inherit\"}\n >\n {buttonElement} {/* ここでButton要素を表示します */}\n </Button>\n ),\n (\n <Menu\n key=\"submenu-menu\"\n id=\"fade-menu\"\n MenuListProps={{\n \"aria-labelledby\": \"fade-button\",\n }}\n anchorEl={anchorEl}\n open={open}\n onClose={handleClose}\n anchorOrigin={{\n vertical: \"bottom\",\n horizontal: \"right\",\n }}\n transformOrigin={{\n vertical: \"top\",\n horizontal: \"right\",\n }}\n >\n {menuItems.flatMap((item, index) => {\n const elements = [\n (\n <MenuItem\n key={`item-${index}`}\n onClick={(e) => handleItemClick(e, item)}\n sx={{ minWidth: 200 }}\n >\n <ListItemIcon>{item.icon}</ListItemIcon>\n <ListItemText>{item.title}</ListItemText>\n {item.shortcut && (\n <Typography variant=\"body2\" color=\"text.secondary\">\n {item.shortcut}\n </Typography>\n )}\n </MenuItem>\n ),\n ];\n if (item.separatorLine) {\n elements.push(<Divider key={`divider-${index}`} />);\n }\n return elements;\n })}\n </Menu>\n ),\n ];\n};\n\nexport default SubMenu;\n"],"names":["SubMenu","props","menuItems","buttonElement","anchorEl","setAnchorEl","useState","open","handleClick","event","handleClose","handleItemClick","item","jsxs","Button","jsx","Menu","index","elements","MenuItem","e","ListItemIcon","ListItemText","Typography","Divider"],"mappings":";;;AA+Ba,MAAAA,IAAU,CAACC,MAAiB;AACjC,QAAA,EAAE,WAAAC,GAAW,eAAAC,EAAA,IAAkBF,GAE/B,CAACG,GAAUC,CAAW,IAAIC,EAA6B,IAAI,GAC3DC,IAAO,EAAQH,GACfI,IAAc,CAACC,MAAyC;AAC5D,IAAAA,EAAM,gBAAgB,GACtBJ,EAAYI,EAAM,aAAa;AAAA,EACjC,GACMC,IAAc,CAACD,MAAyC;AAC5D,IAAAA,EAAM,gBAAgB,GACtBJ,EAAY,IAAI;AAAA,EAClB,GAEMM,IAAkB,CACtBF,GACAG,MACG;AACH,IAAAH,EAAM,gBAAgB,GAClBG,EAAK,WACPA,EAAK,QAAQH,CAAK,GAEhBG,EAAK,mBAAmB,MAC1BF,EAAYD,CAAK;AAAA,EAErB;AAEO,SAAA;AAAA,IAEH,gBAAAI;AAAA,MAACC;AAAA,MAAA;AAAA,QAEC,IAAG;AAAA,QACH,iBAAeP,IAAO,cAAc;AAAA,QACpC,iBAAc;AAAA,QACd,iBAAeA,IAAO,SAAS;AAAA,QAC/B,SAASC;AAAA,QACT,OAAO;AAAA,QAEN,UAAA;AAAA,UAAAL;AAAA,UAAc;AAAA,QAAA;AAAA,MAAA;AAAA,MARX;AAAA,IASN;AAAA,IAGA,gBAAAY;AAAA,MAACC;AAAA,MAAA;AAAA,QAEC,IAAG;AAAA,QACH,eAAe;AAAA,UACb,mBAAmB;AAAA,QACrB;AAAA,QACA,UAAAZ;AAAA,QACA,MAAAG;AAAA,QACA,SAASG;AAAA,QACT,cAAc;AAAA,UACZ,UAAU;AAAA,UACV,YAAY;AAAA,QACd;AAAA,QACA,iBAAiB;AAAA,UACf,UAAU;AAAA,UACV,YAAY;AAAA,QACd;AAAA,QAEC,UAAUR,EAAA,QAAQ,CAACU,GAAMK,MAAU;AAClC,gBAAMC,IAAW;AAAA,YAEb,gBAAAL;AAAA,cAACM;AAAA,cAAA;AAAA,gBAEC,SAAS,CAACC,MAAMT,EAAgBS,GAAGR,CAAI;AAAA,gBACvC,IAAI,EAAE,UAAU,IAAI;AAAA,gBAEpB,UAAA;AAAA,kBAAC,gBAAAG,EAAAM,GAAA,EAAc,YAAK,KAAK,CAAA;AAAA,kBACzB,gBAAAN,EAACO,GAAc,EAAA,UAAAV,EAAK,MAAM,CAAA;AAAA,kBACzBA,EAAK,YACH,gBAAAG,EAAAQ,GAAA,EAAW,SAAQ,SAAQ,OAAM,kBAC/B,UAAAX,EAAK,SACR,CAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,cATG,QAAQK,CAAK;AAAA,YAAA;AAAA,UAaxB;AACA,iBAAIL,EAAK,iBACPM,EAAS,KAAM,gBAAAH,EAAAS,GAAA,CAAA,GAAa,WAAWP,CAAK,EAAI,CAAE,GAE7CC;AAAA,QACR,CAAA;AAAA,MAAA;AAAA,MAvCG;AAAA,IAAA;AAAA,EA0CV;AACF;"}
1
+ {"version":3,"file":"index.es.js","sources":["../../../src/components/SubMenu/index.tsx"],"sourcesContent":["import { ReactNode, useState } from \"react\";\nimport {\n Button,\n Divider,\n ListItemIcon,\n ListItemText,\n Menu,\n MenuItem,\n Typography,\n} from \"@mui/material\";\n\ntype MenuItemType = {\n /** 操作メニューのアイコン */\n icon: React.ReactNode;\n /** 操作メニュー名 */\n title: string;\n /** ショートカットキー */\n shortcut?: string;\n /** メニュー下の区切り線有無 */\n separatorLine?: boolean;\n /** クリックした時の動作 */\n onClick?: (event: React.MouseEvent<HTMLLIElement, MouseEvent>) => void;\n /** クリックした時に閉じるか否か。指定がない場合はクリック時メニューが自動的に閉じます*/\n closeWhenClick?: boolean;\n};\n\ntype Props = {\n menuItems: MenuItemType[];\n buttonElement: ReactNode;\n};\n\nexport const SubMenu = (props: Props) => {\n const { menuItems, buttonElement } = props;\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n const open = Boolean(anchorEl);\n const handleClick = (event: React.MouseEvent<HTMLElement>) => {\n event.stopPropagation();\n setAnchorEl(event.currentTarget);\n };\n const handleClose = (event: React.MouseEvent<HTMLElement>) => {\n event.stopPropagation();\n setAnchorEl(null);\n };\n\n const handleItemClick = (\n event: React.MouseEvent<HTMLLIElement, MouseEvent>,\n item: MenuItemType,\n ) => {\n event.stopPropagation();\n if (item.onClick) {\n item.onClick(event);\n }\n if (item.closeWhenClick !== false) {\n handleClose(event);\n }\n };\n\n return [\n <Button\n key=\"submenu-button\"\n id=\"fade-button\"\n aria-controls={open ? \"fade-menu\" : undefined}\n aria-haspopup=\"true\"\n aria-expanded={open ? \"true\" : undefined}\n onClick={handleClick}\n color={\"inherit\"}\n >\n {buttonElement} {/* ここでButton要素を表示します */}\n </Button>,\n <Menu\n key=\"submenu-menu\"\n id=\"fade-menu\"\n MenuListProps={{\n \"aria-labelledby\": \"fade-button\",\n }}\n anchorEl={anchorEl}\n open={open}\n onClose={handleClose}\n anchorOrigin={{\n vertical: \"bottom\",\n horizontal: \"right\",\n }}\n transformOrigin={{\n vertical: \"top\",\n horizontal: \"right\",\n }}\n >\n {menuItems.flatMap((item, index) => {\n const elements = [\n <MenuItem\n key={`item-${index}`}\n onClick={(e) => handleItemClick(e, item)}\n sx={{ minWidth: 200 }}\n >\n <ListItemIcon>{item.icon}</ListItemIcon>\n <ListItemText>{item.title}</ListItemText>\n {item.shortcut && (\n <Typography variant=\"body2\" color=\"text.secondary\">\n {item.shortcut}\n </Typography>\n )}\n </MenuItem>,\n ];\n if (item.separatorLine) {\n elements.push(<Divider key={`divider-${index}`} />);\n }\n return elements;\n })}\n </Menu>,\n ];\n};\n\nexport default SubMenu;\n"],"names":["SubMenu","props","menuItems","buttonElement","anchorEl","setAnchorEl","useState","open","handleClick","event","handleClose","handleItemClick","item","jsxs","Button","jsx","Menu","index","elements","MenuItem","e","ListItemIcon","ListItemText","Typography","Divider"],"mappings":";;;AA+BO,MAAMA,IAAU,CAACC,MAAiB;AACvC,QAAM,EAAE,WAAAC,GAAW,eAAAC,EAAA,IAAkBF,GAE/B,CAACG,GAAUC,CAAW,IAAIC,EAA6B,IAAI,GAC3DC,IAAO,EAAQH,GACfI,IAAc,CAACC,MAAyC;AAC5D,IAAAA,EAAM,gBAAA,GACNJ,EAAYI,EAAM,aAAa;AAAA,EACjC,GACMC,IAAc,CAACD,MAAyC;AAC5D,IAAAA,EAAM,gBAAA,GACNJ,EAAY,IAAI;AAAA,EAClB,GAEMM,IAAkB,CACtBF,GACAG,MACG;AACH,IAAAH,EAAM,gBAAA,GACFG,EAAK,WACPA,EAAK,QAAQH,CAAK,GAEhBG,EAAK,mBAAmB,MAC1BF,EAAYD,CAAK;AAAA,EAErB;AAEA,SAAO;AAAA,IACL,gBAAAI;AAAA,MAACC;AAAA,MAAA;AAAA,QAEC,IAAG;AAAA,QACH,iBAAeP,IAAO,cAAc;AAAA,QACpC,iBAAc;AAAA,QACd,iBAAeA,IAAO,SAAS;AAAA,QAC/B,SAASC;AAAA,QACT,OAAO;AAAA,QAEN,UAAA;AAAA,UAAAL;AAAA,UAAc;AAAA,QAAA;AAAA,MAAA;AAAA,MARX;AAAA,IAAA;AAAA,IAUN,gBAAAY;AAAA,MAACC;AAAA,MAAA;AAAA,QAEC,IAAG;AAAA,QACH,eAAe;AAAA,UACb,mBAAmB;AAAA,QAAA;AAAA,QAErB,UAAAZ;AAAA,QACA,MAAAG;AAAA,QACA,SAASG;AAAA,QACT,cAAc;AAAA,UACZ,UAAU;AAAA,UACV,YAAY;AAAA,QAAA;AAAA,QAEd,iBAAiB;AAAA,UACf,UAAU;AAAA,UACV,YAAY;AAAA,QAAA;AAAA,QAGb,UAAAR,EAAU,QAAQ,CAACU,GAAMK,MAAU;AAClC,gBAAMC,IAAW;AAAA,YACf,gBAAAL;AAAA,cAACM;AAAA,cAAA;AAAA,gBAEC,SAAS,CAACC,MAAMT,EAAgBS,GAAGR,CAAI;AAAA,gBACvC,IAAI,EAAE,UAAU,IAAA;AAAA,gBAEhB,UAAA;AAAA,kBAAA,gBAAAG,EAACM,GAAA,EAAc,YAAK,KAAA,CAAK;AAAA,kBACzB,gBAAAN,EAACO,GAAA,EAAc,UAAAV,EAAK,MAAA,CAAM;AAAA,kBACzBA,EAAK,YACJ,gBAAAG,EAACQ,GAAA,EAAW,SAAQ,SAAQ,OAAM,kBAC/B,UAAAX,EAAK,SAAA,CACR;AAAA,gBAAA;AAAA,cAAA;AAAA,cATG,QAAQK,CAAK;AAAA,YAAA;AAAA,UAWpB;AAEF,iBAAIL,EAAK,iBACPM,EAAS,KAAK,gBAAAH,EAACS,GAAA,CAAA,GAAa,WAAWP,CAAK,EAAI,CAAE,GAE7CC;AAAA,QACT,CAAC;AAAA,MAAA;AAAA,MArCG;AAAA,IAAA;AAAA,EAsCN;AAEJ;"}
@@ -1,2 +1,2 @@
1
- "use strict";const n=require("react/jsx-runtime"),e=require("../../react.esm-CiMn0Rnx.cjs"),x=require("./index.cjs.js");describe("SubMenu component",()=>{test("renders SubMenu component with given menu items and button element",()=>{const c=jest.fn(),o=jest.fn(),u=jest.fn(),s=[{icon:n.jsx("span",{children:"Icon 1"}),title:"Menu 1",onClick:c,closeWhenClick:!0},{icon:n.jsx("span",{children:"Icon 2"}),title:"Menu 2",onClick:o},{icon:n.jsx("span",{children:"Icon 3"}),title:"Menu 3",onClick:u,closeWhenClick:!1}],i=n.jsx("button",{children:"Menu Button"});e.render(n.jsx(x.SubMenu,{menuItems:s,buttonElement:i}));const t=e.screen.getByText("Menu Button");e.fireEvent.click(t);const l=e.screen.getByText("Menu 1");e.fireEvent.click(l),expect(c).toHaveBeenCalled(),setTimeout(()=>{expect(e.screen.queryByText("Menu 1")).toBeNull()},0),e.fireEvent.click(t);const r=e.screen.getByText("Menu 2");e.fireEvent.click(r),expect(o).toHaveBeenCalled(),setTimeout(()=>{expect(e.screen.queryByText("Menu 2")).toBeNull()},0),e.fireEvent.click(t);const m=e.screen.getByText("Menu 3");e.fireEvent.click(m),expect(u).toHaveBeenCalled(),setTimeout(()=>{expect(e.screen.queryByText("Menu 3")).not.toBeNull()},0)})});
1
+ "use strict";const n=require("react/jsx-runtime"),e=require("../../react.esm-DGuy6Rn3.cjs"),x=require("./index.cjs.js");describe("SubMenu component",()=>{test("renders SubMenu component with given menu items and button element",()=>{const c=jest.fn(),o=jest.fn(),u=jest.fn(),s=[{icon:n.jsx("span",{children:"Icon 1"}),title:"Menu 1",onClick:c,closeWhenClick:!0},{icon:n.jsx("span",{children:"Icon 2"}),title:"Menu 2",onClick:o},{icon:n.jsx("span",{children:"Icon 3"}),title:"Menu 3",onClick:u,closeWhenClick:!1}],i=n.jsx("button",{children:"Menu Button"});e.render(n.jsx(x.SubMenu,{menuItems:s,buttonElement:i}));const t=e.screen.getByText("Menu Button");e.fireEvent.click(t);const l=e.screen.getByText("Menu 1");e.fireEvent.click(l),expect(c).toHaveBeenCalled(),setTimeout(()=>{expect(e.screen.queryByText("Menu 1")).toBeNull()},0),e.fireEvent.click(t);const r=e.screen.getByText("Menu 2");e.fireEvent.click(r),expect(o).toHaveBeenCalled(),setTimeout(()=>{expect(e.screen.queryByText("Menu 2")).toBeNull()},0),e.fireEvent.click(t);const m=e.screen.getByText("Menu 3");e.fireEvent.click(m),expect(u).toHaveBeenCalled(),setTimeout(()=>{expect(e.screen.queryByText("Menu 3")).not.toBeNull()},0)})});
2
2
  //# sourceMappingURL=index.test.cjs.js.map