no-frills-ui 0.0.14-alpha.4 → 0.0.14-alpha.6

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 (323) hide show
  1. package/dist/index.js +2841 -2786
  2. package/dist/index.js.map +1 -1
  3. package/lib-esm/components/Accordion/Accordion.d.ts +0 -1
  4. package/lib-esm/components/Accordion/Accordion.js +26 -26
  5. package/lib-esm/components/Accordion/AccordionStep.d.ts +0 -1
  6. package/lib-esm/components/Accordion/AccordionStep.js +98 -114
  7. package/lib-esm/components/Accordion/index.d.ts +0 -1
  8. package/lib-esm/components/Badge/Badge.d.ts +0 -1
  9. package/lib-esm/components/Badge/Badge.js +37 -43
  10. package/lib-esm/components/Badge/index.d.ts +0 -1
  11. package/lib-esm/components/Button/ActionButton.d.ts +0 -1
  12. package/lib-esm/components/Button/ActionButton.js +6 -38
  13. package/lib-esm/components/Button/Button.d.ts +0 -1
  14. package/lib-esm/components/Button/Button.js +8 -43
  15. package/lib-esm/components/Button/IconButton.d.ts +0 -1
  16. package/lib-esm/components/Button/IconButton.js +6 -42
  17. package/lib-esm/components/Button/LinkButton.d.ts +0 -1
  18. package/lib-esm/components/Button/LinkButton.js +6 -33
  19. package/lib-esm/components/Button/RaisedButton.d.ts +0 -1
  20. package/lib-esm/components/Button/RaisedButton.js +6 -46
  21. package/lib-esm/components/Button/index.d.ts +0 -1
  22. package/lib-esm/components/Card/Card.d.ts +0 -1
  23. package/lib-esm/components/Card/Card.js +8 -13
  24. package/lib-esm/components/Card/index.d.ts +0 -1
  25. package/lib-esm/components/Chip/Chip.d.ts +0 -1
  26. package/lib-esm/components/Chip/Chip.js +35 -43
  27. package/lib-esm/components/Chip/index.d.ts +0 -1
  28. package/lib-esm/components/ChipInput/ChipInput.d.ts +0 -1
  29. package/lib-esm/components/ChipInput/ChipInput.js +107 -167
  30. package/lib-esm/components/ChipInput/index.d.ts +0 -1
  31. package/lib-esm/components/Dialog/AlertDialog.d.ts +0 -1
  32. package/lib-esm/components/Dialog/AlertDialog.js +47 -25
  33. package/lib-esm/components/Dialog/ConfirmDialog.d.ts +0 -1
  34. package/lib-esm/components/Dialog/ConfirmDialog.js +49 -31
  35. package/lib-esm/components/Dialog/Dialog.d.ts +27 -2
  36. package/lib-esm/components/Dialog/Dialog.js +120 -67
  37. package/lib-esm/components/Dialog/PromptDialog.d.ts +0 -1
  38. package/lib-esm/components/Dialog/PromptDialog.js +82 -44
  39. package/lib-esm/components/Dialog/index.d.ts +0 -1
  40. package/lib-esm/components/DragAndDrop/DragAndDrop.d.ts +0 -1
  41. package/lib-esm/components/DragAndDrop/DragAndDrop.js +66 -71
  42. package/lib-esm/components/DragAndDrop/DragItem.d.ts +0 -1
  43. package/lib-esm/components/DragAndDrop/DragItem.js +106 -118
  44. package/lib-esm/components/DragAndDrop/index.d.ts +0 -1
  45. package/lib-esm/components/DragAndDrop/types.d.ts +0 -1
  46. package/lib-esm/components/DragAndDrop/types.js +7 -5
  47. package/lib-esm/components/Drawer/Drawer.d.ts +76 -2
  48. package/lib-esm/components/Drawer/Drawer.js +176 -96
  49. package/lib-esm/components/Drawer/index.d.ts +0 -1
  50. package/lib-esm/components/Groups/Group.d.ts +0 -1
  51. package/lib-esm/components/Groups/Group.js +32 -88
  52. package/lib-esm/components/Groups/GroupLabel.d.ts +0 -1
  53. package/lib-esm/components/Groups/GroupLabel.js +7 -17
  54. package/lib-esm/components/Groups/index.d.ts +0 -1
  55. package/lib-esm/components/Input/Checkbox.d.ts +0 -1
  56. package/lib-esm/components/Input/Checkbox.js +39 -110
  57. package/lib-esm/components/Input/Dropdown.d.ts +8 -1
  58. package/lib-esm/components/Input/Dropdown.js +109 -49
  59. package/lib-esm/components/Input/Input.d.ts +0 -1
  60. package/lib-esm/components/Input/Input.js +61 -113
  61. package/lib-esm/components/Input/Radio.d.ts +0 -1
  62. package/lib-esm/components/Input/Radio.js +31 -76
  63. package/lib-esm/components/Input/RadioButton.d.ts +0 -1
  64. package/lib-esm/components/Input/RadioButton.js +30 -67
  65. package/lib-esm/components/Input/Select.d.ts +0 -1
  66. package/lib-esm/components/Input/Select.js +74 -126
  67. package/lib-esm/components/Input/TextArea.d.ts +0 -1
  68. package/lib-esm/components/Input/TextArea.js +60 -111
  69. package/lib-esm/components/Input/Toggle.d.ts +0 -1
  70. package/lib-esm/components/Input/Toggle.js +29 -77
  71. package/lib-esm/components/Input/index.d.ts +0 -1
  72. package/lib-esm/components/Menu/Menu.d.ts +13 -2
  73. package/lib-esm/components/Menu/Menu.js +107 -27
  74. package/lib-esm/components/Menu/MenuContext.d.ts +0 -1
  75. package/lib-esm/components/Menu/MenuContext.js +4 -2
  76. package/lib-esm/components/Menu/MenuItem.d.ts +6 -4
  77. package/lib-esm/components/Menu/MenuItem.js +36 -51
  78. package/lib-esm/components/Menu/index.d.ts +0 -1
  79. package/lib-esm/components/Modal/Modal.d.ts +70 -2
  80. package/lib-esm/components/Modal/Modal.js +149 -52
  81. package/lib-esm/components/Modal/index.d.ts +0 -1
  82. package/lib-esm/components/Notification/Notification.d.ts +3 -2
  83. package/lib-esm/components/Notification/Notification.js +54 -64
  84. package/lib-esm/components/Notification/NotificationManager.d.ts +15 -2
  85. package/lib-esm/components/Notification/NotificationManager.js +169 -77
  86. package/lib-esm/components/Notification/index.d.ts +0 -1
  87. package/lib-esm/components/Notification/style.d.ts +4 -1
  88. package/lib-esm/components/Notification/style.js +63 -142
  89. package/lib-esm/components/Notification/types.d.ts +2 -1
  90. package/lib-esm/components/Notification/types.js +8 -9
  91. package/lib-esm/components/Popover/Popover.d.ts +0 -1
  92. package/lib-esm/components/Popover/Popover.js +146 -111
  93. package/lib-esm/components/Popover/index.d.ts +0 -1
  94. package/lib-esm/components/Spinner/Spinner.d.ts +3 -1
  95. package/lib-esm/components/Spinner/Spinner.js +19 -24
  96. package/lib-esm/components/Spinner/index.d.ts +0 -1
  97. package/lib-esm/components/Stepper/Step.d.ts +0 -1
  98. package/lib-esm/components/Stepper/Step.js +15 -22
  99. package/lib-esm/components/Stepper/Stepper.d.ts +0 -1
  100. package/lib-esm/components/Stepper/Stepper.js +100 -102
  101. package/lib-esm/components/Stepper/index.d.ts +0 -1
  102. package/lib-esm/components/Tabs/Tab.d.ts +0 -1
  103. package/lib-esm/components/Tabs/Tab.js +11 -10
  104. package/lib-esm/components/Tabs/Tabs.d.ts +0 -1
  105. package/lib-esm/components/Tabs/Tabs.js +88 -50
  106. package/lib-esm/components/Tabs/index.d.ts +0 -1
  107. package/lib-esm/components/Toast/Toast.d.ts +30 -5
  108. package/lib-esm/components/Toast/Toast.js +196 -108
  109. package/lib-esm/components/Toast/ToastStory.d.ts +0 -1
  110. package/lib-esm/components/Toast/index.d.ts +0 -1
  111. package/lib-esm/components/Tooltip/Tooltip.d.ts +0 -1
  112. package/lib-esm/components/Tooltip/Tooltip.js +60 -61
  113. package/lib-esm/components/Tooltip/index.d.ts +0 -1
  114. package/lib-esm/components/index.d.ts +0 -1
  115. package/lib-esm/components/index.js +42 -21
  116. package/lib-esm/icons/CheckCircle.d.ts +0 -1
  117. package/lib-esm/icons/CheckCircle.js +21 -4
  118. package/lib-esm/icons/Close.d.ts +0 -1
  119. package/lib-esm/icons/Close.js +21 -4
  120. package/lib-esm/icons/DragIndicator.d.ts +0 -1
  121. package/lib-esm/icons/DragIndicator.js +21 -4
  122. package/lib-esm/icons/ErrorOutline.d.ts +0 -1
  123. package/lib-esm/icons/ErrorOutline.js +15 -4
  124. package/lib-esm/icons/ExpandMore.d.ts +0 -1
  125. package/lib-esm/icons/ExpandMore.js +21 -4
  126. package/lib-esm/icons/FiberManualRecord.d.ts +0 -1
  127. package/lib-esm/icons/FiberManualRecord.js +23 -4
  128. package/lib-esm/icons/Info.d.ts +0 -1
  129. package/lib-esm/icons/Info.js +21 -4
  130. package/lib-esm/icons/ReportProblem.d.ts +0 -1
  131. package/lib-esm/icons/ReportProblem.js +21 -4
  132. package/lib-esm/icons/index.d.ts +0 -1
  133. package/lib-esm/index.d.ts +0 -1
  134. package/lib-esm/shared/LayerManager.d.ts +3 -1
  135. package/lib-esm/shared/LayerManager.js +158 -87
  136. package/lib-esm/shared/constants.d.ts +58 -28
  137. package/lib-esm/shared/constants.js +61 -26
  138. package/lib-esm/shared/styles.d.ts +1 -2
  139. package/lib-esm/shared/styles.js +20 -24
  140. package/package.json +15 -5
  141. package/lib-esm/components/Accordion/Accordion.d.ts.map +0 -1
  142. package/lib-esm/components/Accordion/Accordion.js.map +0 -1
  143. package/lib-esm/components/Accordion/AccordionStep.d.ts.map +0 -1
  144. package/lib-esm/components/Accordion/AccordionStep.js.map +0 -1
  145. package/lib-esm/components/Accordion/index.d.ts.map +0 -1
  146. package/lib-esm/components/Accordion/index.js +0 -3
  147. package/lib-esm/components/Accordion/index.js.map +0 -1
  148. package/lib-esm/components/Badge/Badge.d.ts.map +0 -1
  149. package/lib-esm/components/Badge/Badge.js.map +0 -1
  150. package/lib-esm/components/Badge/index.d.ts.map +0 -1
  151. package/lib-esm/components/Badge/index.js +0 -2
  152. package/lib-esm/components/Badge/index.js.map +0 -1
  153. package/lib-esm/components/Button/ActionButton.d.ts.map +0 -1
  154. package/lib-esm/components/Button/ActionButton.js.map +0 -1
  155. package/lib-esm/components/Button/Button.d.ts.map +0 -1
  156. package/lib-esm/components/Button/Button.js.map +0 -1
  157. package/lib-esm/components/Button/IconButton.d.ts.map +0 -1
  158. package/lib-esm/components/Button/IconButton.js.map +0 -1
  159. package/lib-esm/components/Button/LinkButton.d.ts.map +0 -1
  160. package/lib-esm/components/Button/LinkButton.js.map +0 -1
  161. package/lib-esm/components/Button/RaisedButton.d.ts.map +0 -1
  162. package/lib-esm/components/Button/RaisedButton.js.map +0 -1
  163. package/lib-esm/components/Button/index.d.ts.map +0 -1
  164. package/lib-esm/components/Button/index.js +0 -6
  165. package/lib-esm/components/Button/index.js.map +0 -1
  166. package/lib-esm/components/Card/Card.d.ts.map +0 -1
  167. package/lib-esm/components/Card/Card.js.map +0 -1
  168. package/lib-esm/components/Card/index.d.ts.map +0 -1
  169. package/lib-esm/components/Card/index.js +0 -3
  170. package/lib-esm/components/Card/index.js.map +0 -1
  171. package/lib-esm/components/Chip/Chip.d.ts.map +0 -1
  172. package/lib-esm/components/Chip/Chip.js.map +0 -1
  173. package/lib-esm/components/Chip/index.d.ts.map +0 -1
  174. package/lib-esm/components/Chip/index.js +0 -2
  175. package/lib-esm/components/Chip/index.js.map +0 -1
  176. package/lib-esm/components/ChipInput/ChipInput.d.ts.map +0 -1
  177. package/lib-esm/components/ChipInput/ChipInput.js.map +0 -1
  178. package/lib-esm/components/ChipInput/index.d.ts.map +0 -1
  179. package/lib-esm/components/ChipInput/index.js +0 -2
  180. package/lib-esm/components/ChipInput/index.js.map +0 -1
  181. package/lib-esm/components/Dialog/AlertDialog.d.ts.map +0 -1
  182. package/lib-esm/components/Dialog/AlertDialog.js.map +0 -1
  183. package/lib-esm/components/Dialog/ConfirmDialog.d.ts.map +0 -1
  184. package/lib-esm/components/Dialog/ConfirmDialog.js.map +0 -1
  185. package/lib-esm/components/Dialog/Dialog.d.ts.map +0 -1
  186. package/lib-esm/components/Dialog/Dialog.js.map +0 -1
  187. package/lib-esm/components/Dialog/PromptDialog.d.ts.map +0 -1
  188. package/lib-esm/components/Dialog/PromptDialog.js.map +0 -1
  189. package/lib-esm/components/Dialog/index.d.ts.map +0 -1
  190. package/lib-esm/components/Dialog/index.js +0 -5
  191. package/lib-esm/components/Dialog/index.js.map +0 -1
  192. package/lib-esm/components/DragAndDrop/DragAndDrop.d.ts.map +0 -1
  193. package/lib-esm/components/DragAndDrop/DragAndDrop.js.map +0 -1
  194. package/lib-esm/components/DragAndDrop/DragItem.d.ts.map +0 -1
  195. package/lib-esm/components/DragAndDrop/DragItem.js.map +0 -1
  196. package/lib-esm/components/DragAndDrop/index.d.ts.map +0 -1
  197. package/lib-esm/components/DragAndDrop/index.js +0 -3
  198. package/lib-esm/components/DragAndDrop/index.js.map +0 -1
  199. package/lib-esm/components/DragAndDrop/types.d.ts.map +0 -1
  200. package/lib-esm/components/DragAndDrop/types.js.map +0 -1
  201. package/lib-esm/components/Drawer/Drawer.d.ts.map +0 -1
  202. package/lib-esm/components/Drawer/Drawer.js.map +0 -1
  203. package/lib-esm/components/Drawer/index.d.ts.map +0 -1
  204. package/lib-esm/components/Drawer/index.js +0 -2
  205. package/lib-esm/components/Drawer/index.js.map +0 -1
  206. package/lib-esm/components/Groups/Group.d.ts.map +0 -1
  207. package/lib-esm/components/Groups/Group.js.map +0 -1
  208. package/lib-esm/components/Groups/GroupLabel.d.ts.map +0 -1
  209. package/lib-esm/components/Groups/GroupLabel.js.map +0 -1
  210. package/lib-esm/components/Groups/index.d.ts.map +0 -1
  211. package/lib-esm/components/Groups/index.js +0 -3
  212. package/lib-esm/components/Groups/index.js.map +0 -1
  213. package/lib-esm/components/Input/Checkbox.d.ts.map +0 -1
  214. package/lib-esm/components/Input/Checkbox.js.map +0 -1
  215. package/lib-esm/components/Input/Dropdown.d.ts.map +0 -1
  216. package/lib-esm/components/Input/Dropdown.js.map +0 -1
  217. package/lib-esm/components/Input/Input.d.ts.map +0 -1
  218. package/lib-esm/components/Input/Input.js.map +0 -1
  219. package/lib-esm/components/Input/Radio.d.ts.map +0 -1
  220. package/lib-esm/components/Input/Radio.js.map +0 -1
  221. package/lib-esm/components/Input/RadioButton.d.ts.map +0 -1
  222. package/lib-esm/components/Input/RadioButton.js.map +0 -1
  223. package/lib-esm/components/Input/Select.d.ts.map +0 -1
  224. package/lib-esm/components/Input/Select.js.map +0 -1
  225. package/lib-esm/components/Input/TextArea.d.ts.map +0 -1
  226. package/lib-esm/components/Input/TextArea.js.map +0 -1
  227. package/lib-esm/components/Input/Toggle.d.ts.map +0 -1
  228. package/lib-esm/components/Input/Toggle.js.map +0 -1
  229. package/lib-esm/components/Input/index.d.ts.map +0 -1
  230. package/lib-esm/components/Input/index.js +0 -9
  231. package/lib-esm/components/Input/index.js.map +0 -1
  232. package/lib-esm/components/Menu/Menu.d.ts.map +0 -1
  233. package/lib-esm/components/Menu/Menu.js.map +0 -1
  234. package/lib-esm/components/Menu/MenuContext.d.ts.map +0 -1
  235. package/lib-esm/components/Menu/MenuContext.js.map +0 -1
  236. package/lib-esm/components/Menu/MenuItem.d.ts.map +0 -1
  237. package/lib-esm/components/Menu/MenuItem.js.map +0 -1
  238. package/lib-esm/components/Menu/index.d.ts.map +0 -1
  239. package/lib-esm/components/Menu/index.js +0 -3
  240. package/lib-esm/components/Menu/index.js.map +0 -1
  241. package/lib-esm/components/Modal/Modal.d.ts.map +0 -1
  242. package/lib-esm/components/Modal/Modal.js.map +0 -1
  243. package/lib-esm/components/Modal/index.d.ts.map +0 -1
  244. package/lib-esm/components/Modal/index.js +0 -2
  245. package/lib-esm/components/Modal/index.js.map +0 -1
  246. package/lib-esm/components/Notification/Notification.d.ts.map +0 -1
  247. package/lib-esm/components/Notification/Notification.js.map +0 -1
  248. package/lib-esm/components/Notification/NotificationManager.d.ts.map +0 -1
  249. package/lib-esm/components/Notification/NotificationManager.js.map +0 -1
  250. package/lib-esm/components/Notification/index.d.ts.map +0 -1
  251. package/lib-esm/components/Notification/index.js +0 -3
  252. package/lib-esm/components/Notification/index.js.map +0 -1
  253. package/lib-esm/components/Notification/style.d.ts.map +0 -1
  254. package/lib-esm/components/Notification/style.js.map +0 -1
  255. package/lib-esm/components/Notification/types.d.ts.map +0 -1
  256. package/lib-esm/components/Notification/types.js.map +0 -1
  257. package/lib-esm/components/Popover/Popover.d.ts.map +0 -1
  258. package/lib-esm/components/Popover/Popover.js.map +0 -1
  259. package/lib-esm/components/Popover/index.d.ts.map +0 -1
  260. package/lib-esm/components/Popover/index.js +0 -2
  261. package/lib-esm/components/Popover/index.js.map +0 -1
  262. package/lib-esm/components/Spinner/Spinner.d.ts.map +0 -1
  263. package/lib-esm/components/Spinner/Spinner.js.map +0 -1
  264. package/lib-esm/components/Spinner/index.d.ts.map +0 -1
  265. package/lib-esm/components/Spinner/index.js +0 -2
  266. package/lib-esm/components/Spinner/index.js.map +0 -1
  267. package/lib-esm/components/Stepper/Step.d.ts.map +0 -1
  268. package/lib-esm/components/Stepper/Step.js.map +0 -1
  269. package/lib-esm/components/Stepper/Stepper.d.ts.map +0 -1
  270. package/lib-esm/components/Stepper/Stepper.js.map +0 -1
  271. package/lib-esm/components/Stepper/index.d.ts.map +0 -1
  272. package/lib-esm/components/Stepper/index.js +0 -4
  273. package/lib-esm/components/Stepper/index.js.map +0 -1
  274. package/lib-esm/components/Tabs/Tab.d.ts.map +0 -1
  275. package/lib-esm/components/Tabs/Tab.js.map +0 -1
  276. package/lib-esm/components/Tabs/Tabs.d.ts.map +0 -1
  277. package/lib-esm/components/Tabs/Tabs.js.map +0 -1
  278. package/lib-esm/components/Tabs/index.d.ts.map +0 -1
  279. package/lib-esm/components/Tabs/index.js +0 -3
  280. package/lib-esm/components/Tabs/index.js.map +0 -1
  281. package/lib-esm/components/Toast/Toast.d.ts.map +0 -1
  282. package/lib-esm/components/Toast/Toast.js.map +0 -1
  283. package/lib-esm/components/Toast/ToastStory.d.ts.map +0 -1
  284. package/lib-esm/components/Toast/ToastStory.js +0 -35
  285. package/lib-esm/components/Toast/ToastStory.js.map +0 -1
  286. package/lib-esm/components/Toast/index.d.ts.map +0 -1
  287. package/lib-esm/components/Toast/index.js +0 -2
  288. package/lib-esm/components/Toast/index.js.map +0 -1
  289. package/lib-esm/components/Tooltip/Tooltip.d.ts.map +0 -1
  290. package/lib-esm/components/Tooltip/Tooltip.js.map +0 -1
  291. package/lib-esm/components/Tooltip/index.d.ts.map +0 -1
  292. package/lib-esm/components/Tooltip/index.js +0 -2
  293. package/lib-esm/components/Tooltip/index.js.map +0 -1
  294. package/lib-esm/components/index.d.ts.map +0 -1
  295. package/lib-esm/components/index.js.map +0 -1
  296. package/lib-esm/icons/CheckCircle.d.ts.map +0 -1
  297. package/lib-esm/icons/CheckCircle.js.map +0 -1
  298. package/lib-esm/icons/Close.d.ts.map +0 -1
  299. package/lib-esm/icons/Close.js.map +0 -1
  300. package/lib-esm/icons/DragIndicator.d.ts.map +0 -1
  301. package/lib-esm/icons/DragIndicator.js.map +0 -1
  302. package/lib-esm/icons/ErrorOutline.d.ts.map +0 -1
  303. package/lib-esm/icons/ErrorOutline.js.map +0 -1
  304. package/lib-esm/icons/ExpandMore.d.ts.map +0 -1
  305. package/lib-esm/icons/ExpandMore.js.map +0 -1
  306. package/lib-esm/icons/FiberManualRecord.d.ts.map +0 -1
  307. package/lib-esm/icons/FiberManualRecord.js.map +0 -1
  308. package/lib-esm/icons/Info.d.ts.map +0 -1
  309. package/lib-esm/icons/Info.js.map +0 -1
  310. package/lib-esm/icons/ReportProblem.d.ts.map +0 -1
  311. package/lib-esm/icons/ReportProblem.js.map +0 -1
  312. package/lib-esm/icons/index.d.ts.map +0 -1
  313. package/lib-esm/icons/index.js +0 -9
  314. package/lib-esm/icons/index.js.map +0 -1
  315. package/lib-esm/index.d.ts.map +0 -1
  316. package/lib-esm/index.js +0 -2
  317. package/lib-esm/index.js.map +0 -1
  318. package/lib-esm/shared/LayerManager.d.ts.map +0 -1
  319. package/lib-esm/shared/LayerManager.js.map +0 -1
  320. package/lib-esm/shared/constants.d.ts.map +0 -1
  321. package/lib-esm/shared/constants.js.map +0 -1
  322. package/lib-esm/shared/styles.d.ts.map +0 -1
  323. package/lib-esm/shared/styles.js.map +0 -1
@@ -1,83 +1,35 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "@emotion/react/jsx-runtime";
1
+ import { jsxs, jsx } from '@emotion/react/jsx-runtime';
2
+ import 'react';
2
3
  import PropTypes from 'prop-types';
3
4
  import styled from '@emotion/styled';
4
- import constants from '../../shared/constants';
5
- const Switch = styled.label `
6
- position: relative;
7
- display: inline-flex;
8
- margin: 5px 0;
9
- `;
10
- const Input = styled.input `
11
- appearance: none;
12
- margin: 0;
13
-
14
- & + span {
15
- position: relative;
16
- cursor: pointer;
17
- width: 30px;
18
- height: 18px;
19
- background-color: ${constants.LIGHT_GREY};
20
- transition: 0.4s;
21
- border-radius: 10px;
22
- padding: 0 3px;
23
- margin: 0 10px 0 5px;
24
- }
25
- & + span:before {
26
- position: absolute;
27
- content: '';
28
- height: 14px;
29
- width: 14px;
30
- left: 1px;
31
- top: 1px;
32
- border: 1px solid var(--disabled-border, ${constants.DISABLED_BORDER});
33
- border-radius: 50%;
34
- background-color: var(--background, ${constants.BACKGROUND});
35
- transition: 0.4s;
36
- }
37
-
38
- /* checked */
39
- &:checked + span {
40
- background-color: var(--primary, ${constants.PRIMARY_LIGHT});
41
- }
42
-
43
- &:checked + span:before {
44
- transform: translateX(18px);
45
- border-color: var(--primary, ${constants.PRIMARY});
46
- }
47
-
48
- /* focus */
49
- &:enabled:focus + span:before {
50
- box-shadow: 0 0 0 3px var(--primary, ${constants.PRIMARY_LIGHT});
51
- border-color: var(--primary, ${constants.PRIMARY});
52
- }
53
-
54
- /* hover */
55
- &:enabled:hover ~ span {
56
- cursor: pointer;
57
- color: var(--primary, ${constants.PRIMARY});
58
- }
59
-
60
- /* disabled */
61
- &:disabled ~ span {
62
- color: var(--disabled-border, ${constants.DISABLED_BORDER});
63
- }
64
-
65
- &:disabled + span {
66
- background-color: ${constants.LIGHT_GREY};
67
- cursor: not-allowed;
68
- }
69
-
70
- &:disabled + span:before {
71
- background-color: var(--border-light-color, ${constants.BORDER_LIGHT_COLOR});
72
- border-color: var(--disabled-border, ${constants.DISABLED_BORDER});
73
- }
74
- `;
5
+ import { getThemeValue, THEME_NAME } from '../../shared/constants.js';
6
+
7
+ const Switch = /*#__PURE__*/ styled("label", {
8
+ target: "ecfiyvb0",
9
+ label: "Switch"
10
+ })("position:relative;display:inline-flex;margin:5px 0;", "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvbm8tZnJpbGxzLXVpL25vLWZyaWxscy11aS9zcmMvY29tcG9uZW50cy9JbnB1dC9Ub2dnbGUudHN4Iiwic291cmNlcyI6WyIvaG9tZS9ydW5uZXIvd29yay9uby1mcmlsbHMtdWkvbm8tZnJpbGxzLXVpL3NyYy9jb21wb25lbnRzL0lucHV0L1RvZ2dsZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyBnZXRUaGVtZVZhbHVlLCBUSEVNRV9OQU1FIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2NvbnN0YW50cyc7XG5cbmNvbnN0IFN3aXRjaCA9IHN0eWxlZC5sYWJlbGBcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgbWFyZ2luOiA1cHggMDtcbmA7XG5cbmNvbnN0IElucHV0ID0gc3R5bGVkLmlucHV0YFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG5cbiAgICAmICsgc3BhbiB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB3aWR0aDogMzBweDtcbiAgICAgICAgaGVpZ2h0OiAxOHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5MSUdIVF9HUkVZKX07XG4gICAgICAgIHRyYW5zaXRpb246IDAuNHM7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgICAgIHBhZGRpbmc6IDAgM3B4O1xuICAgICAgICBtYXJnaW46IDAgMTBweCAwIDVweDtcbiAgICB9XG4gICAgJiArIHNwYW46YmVmb3JlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgaGVpZ2h0OiAxNHB4O1xuICAgICAgICB3aWR0aDogMTRweDtcbiAgICAgICAgbGVmdDogMXB4O1xuICAgICAgICB0b3A6IDFweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtnZXRUaGVtZVZhbHVlKFRIRU1FX05BTUUuRElTQUJMRURfQk9SREVSKX07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtnZXRUaGVtZVZhbHVlKFRIRU1FX05BTUUuQkFDS0dST1VORCl9O1xuICAgICAgICB0cmFuc2l0aW9uOiAwLjRzO1xuICAgIH1cblxuICAgIC8qIGNoZWNrZWQgKi9cbiAgICAmOmNoZWNrZWQgKyBzcGFuIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtnZXRUaGVtZVZhbHVlKFRIRU1FX05BTUUuUFJJTUFSWV9MSUdIVCl9O1xuICAgIH1cblxuICAgICY6Y2hlY2tlZCArIHNwYW46YmVmb3JlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDE4cHgpO1xuICAgICAgICBib3JkZXItY29sb3I6ICR7Z2V0VGhlbWVWYWx1ZShUSEVNRV9OQU1FLlBSSU1BUlkpfTtcbiAgICB9XG5cbiAgICAvKiBmb2N1cyAqL1xuICAgICY6ZW5hYmxlZDpmb2N1cyArIHNwYW46YmVmb3JlIHtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7Z2V0VGhlbWVWYWx1ZShUSEVNRV9OQU1FLlBSSU1BUllfTElHSFQpfTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5QUklNQVJZKX07XG4gICAgfVxuXG4gICAgLyogaG92ZXIgKi9cbiAgICAmOmVuYWJsZWQ6aG92ZXIgfiBzcGFuIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBjb2xvcjogJHtnZXRUaGVtZVZhbHVlKFRIRU1FX05BTUUuUFJJTUFSWSl9O1xuICAgIH1cblxuICAgIC8qIGRpc2FibGVkICovXG4gICAgJjpkaXNhYmxlZCB+IHNwYW4ge1xuICAgICAgICBjb2xvcjogJHtnZXRUaGVtZVZhbHVlKFRIRU1FX05BTUUuRElTQUJMRURfQk9SREVSKX07XG4gICAgfVxuXG4gICAgJjpkaXNhYmxlZCArIHNwYW4ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5MSUdIVF9HUkVZKX07XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgfVxuXG4gICAgJjpkaXNhYmxlZCArIHNwYW46YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtnZXRUaGVtZVZhbHVlKFRIRU1FX05BTUUuQk9SREVSX0xJR0hUX0NPTE9SKX07XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHtnZXRUaGVtZVZhbHVlKFRIRU1FX05BTUUuRElTQUJMRURfQk9SREVSKX07XG4gICAgfVxuYDtcblxudHlwZSBUb2dnbGVQcm9wcyA9IFByb3BUeXBlcy5JbmZlclByb3BzPFxuICAgIFJlYWN0LkFsbEhUTUxBdHRyaWJ1dGVzPEhUTUxJbnB1dEVsZW1lbnQ+ICYgdHlwZW9mIFRvZ2dsZS5wcm9wVHlwZXNcbj47XG5cbmZ1bmN0aW9uIFRvZ2dsZShwcm9wczogVG9nZ2xlUHJvcHMpIHtcbiAgICByZXR1cm4gKFxuICAgICAgICA8U3dpdGNoPlxuICAgICAgICAgICAgPElucHV0IHsuLi5wcm9wc30gdHlwZT1cImNoZWNrYm94XCIgcm9sZT1cInN3aXRjaFwiIGFyaWEtY2hlY2tlZD17cHJvcHMuY2hlY2tlZH0gLz5cbiAgICAgICAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuPntwcm9wcy5sYWJlbH08L3NwYW4+XG4gICAgICAgIDwvU3dpdGNoPlxuICAgICk7XG59XG5cblRvZ2dsZS5wcm9wVHlwZXMgPSB7XG4gICAgLyoqIExhYmVsIGZvciB0aGUgZmllbGQgKi9cbiAgICBsYWJlbDogUHJvcFR5cGVzLnN0cmluZyxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFRvZ2dsZTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLZSJ9 */");
11
+ const Input = /*#__PURE__*/ styled("input", {
12
+ target: "ecfiyvb1",
13
+ label: "Input"
14
+ })("position:absolute;width:0;height:0;appearance:none;margin:0;& + span{position:relative;cursor:pointer;width:30px;height:18px;background-color:", getThemeValue(THEME_NAME.LIGHT_GREY), ";transition:0.4s;border-radius:10px;padding:0 3px;margin:0 10px 0 5px;}& + span:before{position:absolute;content:'';height:14px;width:14px;left:1px;top:1px;border:1px solid ", getThemeValue(THEME_NAME.DISABLED_BORDER), ";border-radius:50%;background-color:", getThemeValue(THEME_NAME.BACKGROUND), ";transition:0.4s;}&:checked + span{background-color:", getThemeValue(THEME_NAME.PRIMARY_LIGHT), ";}&:checked + span:before{transform:translateX(18px);border-color:", getThemeValue(THEME_NAME.PRIMARY), ";}&:enabled:focus + span:before{box-shadow:0 0 0 3px ", getThemeValue(THEME_NAME.PRIMARY_LIGHT), ";border-color:", getThemeValue(THEME_NAME.PRIMARY), ";}&:enabled:hover ~ span{cursor:pointer;color:", getThemeValue(THEME_NAME.PRIMARY), ";}&:disabled ~ span{color:", getThemeValue(THEME_NAME.DISABLED_BORDER), ";}&:disabled + span{background-color:", getThemeValue(THEME_NAME.LIGHT_GREY), ";cursor:not-allowed;}&:disabled + span:before{background-color:", getThemeValue(THEME_NAME.BORDER_LIGHT_COLOR), ";border-color:", getThemeValue(THEME_NAME.DISABLED_BORDER), ";}", "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvbm8tZnJpbGxzLXVpL25vLWZyaWxscy11aS9zcmMvY29tcG9uZW50cy9JbnB1dC9Ub2dnbGUudHN4Iiwic291cmNlcyI6WyIvaG9tZS9ydW5uZXIvd29yay9uby1mcmlsbHMtdWkvbm8tZnJpbGxzLXVpL3NyYy9jb21wb25lbnRzL0lucHV0L1RvZ2dsZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyBnZXRUaGVtZVZhbHVlLCBUSEVNRV9OQU1FIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2NvbnN0YW50cyc7XG5cbmNvbnN0IFN3aXRjaCA9IHN0eWxlZC5sYWJlbGBcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgbWFyZ2luOiA1cHggMDtcbmA7XG5cbmNvbnN0IElucHV0ID0gc3R5bGVkLmlucHV0YFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG5cbiAgICAmICsgc3BhbiB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB3aWR0aDogMzBweDtcbiAgICAgICAgaGVpZ2h0OiAxOHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5MSUdIVF9HUkVZKX07XG4gICAgICAgIHRyYW5zaXRpb246IDAuNHM7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgICAgIHBhZGRpbmc6IDAgM3B4O1xuICAgICAgICBtYXJnaW46IDAgMTBweCAwIDVweDtcbiAgICB9XG4gICAgJiArIHNwYW46YmVmb3JlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgaGVpZ2h0OiAxNHB4O1xuICAgICAgICB3aWR0aDogMTRweDtcbiAgICAgICAgbGVmdDogMXB4O1xuICAgICAgICB0b3A6IDFweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtnZXRUaGVtZVZhbHVlKFRIRU1FX05BTUUuRElTQUJMRURfQk9SREVSKX07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtnZXRUaGVtZVZhbHVlKFRIRU1FX05BTUUuQkFDS0dST1VORCl9O1xuICAgICAgICB0cmFuc2l0aW9uOiAwLjRzO1xuICAgIH1cblxuICAgIC8qIGNoZWNrZWQgKi9cbiAgICAmOmNoZWNrZWQgKyBzcGFuIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtnZXRUaGVtZVZhbHVlKFRIRU1FX05BTUUuUFJJTUFSWV9MSUdIVCl9O1xuICAgIH1cblxuICAgICY6Y2hlY2tlZCArIHNwYW46YmVmb3JlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDE4cHgpO1xuICAgICAgICBib3JkZXItY29sb3I6ICR7Z2V0VGhlbWVWYWx1ZShUSEVNRV9OQU1FLlBSSU1BUlkpfTtcbiAgICB9XG5cbiAgICAvKiBmb2N1cyAqL1xuICAgICY6ZW5hYmxlZDpmb2N1cyArIHNwYW46YmVmb3JlIHtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7Z2V0VGhlbWVWYWx1ZShUSEVNRV9OQU1FLlBSSU1BUllfTElHSFQpfTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5QUklNQVJZKX07XG4gICAgfVxuXG4gICAgLyogaG92ZXIgKi9cbiAgICAmOmVuYWJsZWQ6aG92ZXIgfiBzcGFuIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBjb2xvcjogJHtnZXRUaGVtZVZhbHVlKFRIRU1FX05BTUUuUFJJTUFSWSl9O1xuICAgIH1cblxuICAgIC8qIGRpc2FibGVkICovXG4gICAgJjpkaXNhYmxlZCB+IHNwYW4ge1xuICAgICAgICBjb2xvcjogJHtnZXRUaGVtZVZhbHVlKFRIRU1FX05BTUUuRElTQUJMRURfQk9SREVSKX07XG4gICAgfVxuXG4gICAgJjpkaXNhYmxlZCArIHNwYW4ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5MSUdIVF9HUkVZKX07XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgfVxuXG4gICAgJjpkaXNhYmxlZCArIHNwYW46YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtnZXRUaGVtZVZhbHVlKFRIRU1FX05BTUUuQk9SREVSX0xJR0hUX0NPTE9SKX07XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHtnZXRUaGVtZVZhbHVlKFRIRU1FX05BTUUuRElTQUJMRURfQk9SREVSKX07XG4gICAgfVxuYDtcblxudHlwZSBUb2dnbGVQcm9wcyA9IFByb3BUeXBlcy5JbmZlclByb3BzPFxuICAgIFJlYWN0LkFsbEhUTUxBdHRyaWJ1dGVzPEhUTUxJbnB1dEVsZW1lbnQ+ICYgdHlwZW9mIFRvZ2dsZS5wcm9wVHlwZXNcbj47XG5cbmZ1bmN0aW9uIFRvZ2dsZShwcm9wczogVG9nZ2xlUHJvcHMpIHtcbiAgICByZXR1cm4gKFxuICAgICAgICA8U3dpdGNoPlxuICAgICAgICAgICAgPElucHV0IHsuLi5wcm9wc30gdHlwZT1cImNoZWNrYm94XCIgcm9sZT1cInN3aXRjaFwiIGFyaWEtY2hlY2tlZD17cHJvcHMuY2hlY2tlZH0gLz5cbiAgICAgICAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuPntwcm9wcy5sYWJlbH08L3NwYW4+XG4gICAgICAgIDwvU3dpdGNoPlxuICAgICk7XG59XG5cblRvZ2dsZS5wcm9wVHlwZXMgPSB7XG4gICAgLyoqIExhYmVsIGZvciB0aGUgZmllbGQgKi9cbiAgICBsYWJlbDogUHJvcFR5cGVzLnN0cmluZyxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFRvZ2dsZTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFXYyJ9 */");
75
15
  function Toggle(props) {
76
- return (_jsxs(Switch, { children: [_jsx(Input, Object.assign({}, props, { type: "checkbox" })), _jsx("span", {}), _jsx("span", { children: props.label })] }));
16
+ return /*#__PURE__*/ jsxs(Switch, {
17
+ children: [
18
+ /*#__PURE__*/ jsx(Input, {
19
+ ...props,
20
+ type: "checkbox",
21
+ role: "switch",
22
+ "aria-checked": props.checked
23
+ }),
24
+ /*#__PURE__*/ jsx("span", {}),
25
+ /*#__PURE__*/ jsx("span", {
26
+ children: props.label
27
+ })
28
+ ]
29
+ });
77
30
  }
78
31
  Toggle.propTypes = {
79
- /** Label for the field */
80
- label: PropTypes.string,
32
+ /** Label for the field */ label: PropTypes.string
81
33
  };
82
- export default Toggle;
83
- //# sourceMappingURL=Toggle.js.map
34
+
35
+ export { Toggle as default };
@@ -6,4 +6,3 @@ export { default as Toggle } from './Toggle';
6
6
  export { default as Radio } from './Radio';
7
7
  export { default as RadioButton, RadioGroup } from './RadioButton';
8
8
  export { default as Dropdown } from './Dropdown';
9
- //# sourceMappingURL=index.d.ts.map
@@ -1,4 +1,8 @@
1
1
  import React, { ReactNode } from 'react';
2
+ /**
3
+ * Props for the Menu component.
4
+ * @template T - The type of value(s) in the menu.
5
+ */
2
6
  interface MenuProps<T> {
3
7
  /** Multiple Menu Items can be selected */
4
8
  multiSelect?: boolean;
@@ -9,6 +13,13 @@ interface MenuProps<T> {
9
13
  /** Menu Items */
10
14
  children?: ReactNode;
11
15
  }
12
- declare const Menu: React.ForwardRefExoticComponent<MenuProps<object> & React.RefAttributes<HTMLDivElement>>;
16
+ /**
17
+ * Menu component that allows selection of items from a list.
18
+ * Supports single and multi-select modes and keyboard navigation.
19
+ *
20
+ * @template T - The type of value(s) in the menu.
21
+ * @param {MenuProps<T> & Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'>} props - The menu properties.
22
+ * @param {ForwardedRef<HTMLDivElement>} ref - The ref forwarded to the menu container.
23
+ */
24
+ declare const Menu: React.ForwardRefExoticComponent<MenuProps<object> & Omit<React.HTMLAttributes<HTMLDivElement>, "onChange"> & React.RefAttributes<HTMLDivElement>>;
13
25
  export default Menu;
14
- //# sourceMappingURL=Menu.d.ts.map
@@ -1,46 +1,126 @@
1
- import { jsx as _jsx } from "@emotion/react/jsx-runtime";
1
+ import { jsx } from '@emotion/react/jsx-runtime';
2
2
  import React, { useState } from 'react';
3
3
  import styled from '@emotion/styled';
4
- import MenuContext from './MenuContext';
5
- const MenuContainer = styled.div `
6
- flex: 1;
7
- display: flex;
8
- flex-direction: column;
4
+ import { getThemeValue, THEME_NAME } from '../../shared/constants.js';
5
+ import MenuContext from './MenuContext.js';
9
6
 
10
- & div:last-child {
11
- border-bottom: none;
12
- }
13
- `;
14
- const Menu = React.forwardRef(function (props, ref) {
15
- const { multiSelect, onChange } = props;
16
- const [value, setValue] = useState(props.value || (multiSelect ? [] : ''));
17
- const updateValue = (val) => {
7
+ const MenuContainer = /*#__PURE__*/ styled("div", {
8
+ target: "ez48lhb0",
9
+ label: "MenuContainer"
10
+ })("flex:1;display:flex;flex-direction:column;& div:last-child{border-bottom:none;}&:focus-within{box-shadow:0 0 0 4px ", getThemeValue(THEME_NAME.PRIMARY_LIGHT), ";}", "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvbm8tZnJpbGxzLXVpL25vLWZyaWxscy11aS9zcmMvY29tcG9uZW50cy9NZW51L01lbnUudHN4Iiwic291cmNlcyI6WyIvaG9tZS9ydW5uZXIvd29yay9uby1mcmlsbHMtdWkvbm8tZnJpbGxzLXVpL3NyYy9jb21wb25lbnRzL01lbnUvTWVudS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlLCBSZWFjdE5vZGUsIEZvcndhcmRlZFJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IGdldFRoZW1lVmFsdWUsIFRIRU1FX05BTUUgfSBmcm9tICcuLi8uLi9zaGFyZWQvY29uc3RhbnRzJztcbmltcG9ydCBNZW51Q29udGV4dCBmcm9tICcuL01lbnVDb250ZXh0Jztcbi8qKlxuICogUHJvcHMgZm9yIHRoZSBNZW51IGNvbXBvbmVudC5cbiAqIEB0ZW1wbGF0ZSBUIC0gVGhlIHR5cGUgb2YgdmFsdWUocykgaW4gdGhlIG1lbnUuXG4gKi9cbmludGVyZmFjZSBNZW51UHJvcHM8VD4ge1xuICAgIC8qKiBNdWx0aXBsZSBNZW51IEl0ZW1zIGNhbiBiZSBzZWxlY3RlZCAqL1xuICAgIG11bHRpU2VsZWN0PzogYm9vbGVhbjtcbiAgICAvKiogVmFsdWUocykgc2VsZWN0ZWQgKi9cbiAgICB2YWx1ZT86IFQgfCBUW107XG4gICAgLyoqIENhbGxiYWNrIHdoZW4gdGhlIHNlbGVjdGVkIHZhbHVlIGNoYW5nZXMgKi9cbiAgICBvbkNoYW5nZT86ICh2YWx1ZTogVCB8IFRbXSkgPT4gdm9pZDtcbiAgICAvKiogTWVudSBJdGVtcyAqL1xuICAgIGNoaWxkcmVuPzogUmVhY3ROb2RlO1xufVxuXG5jb25zdCBNZW51Q29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgICBmbGV4OiAxO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICYgZGl2Omxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgIH1cblxuICAgICY6Zm9jdXMtd2l0aGluIHtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgNHB4ICR7Z2V0VGhlbWVWYWx1ZShUSEVNRV9OQU1FLlBSSU1BUllfTElHSFQpfTtcbiAgICB9XG5gO1xuXG4vKipcbiAqIE1lbnUgY29tcG9uZW50IHRoYXQgYWxsb3dzIHNlbGVjdGlvbiBvZiBpdGVtcyBmcm9tIGEgbGlzdC5cbiAqIFN1cHBvcnRzIHNpbmdsZSBhbmQgbXVsdGktc2VsZWN0IG1vZGVzIGFuZCBrZXlib2FyZCBuYXZpZ2F0aW9uLlxuICpcbiAqIEB0ZW1wbGF0ZSBUIC0gVGhlIHR5cGUgb2YgdmFsdWUocykgaW4gdGhlIG1lbnUuXG4gKiBAcGFyYW0ge01lbnVQcm9wczxUPiAmIE9taXQ8UmVhY3QuSFRNTEF0dHJpYnV0ZXM8SFRNTERpdkVsZW1lbnQ+LCAnb25DaGFuZ2UnPn0gcHJvcHMgLSBUaGUgbWVudSBwcm9wZXJ0aWVzLlxuICogQHBhcmFtIHtGb3J3YXJkZWRSZWY8SFRNTERpdkVsZW1lbnQ+fSByZWYgLSBUaGUgcmVmIGZvcndhcmRlZCB0byB0aGUgbWVudSBjb250YWluZXIuXG4gKi9cbmNvbnN0IE1lbnUgPSBSZWFjdC5mb3J3YXJkUmVmKGZ1bmN0aW9uIDxUIGV4dGVuZHMgb2JqZWN0PihcbiAgICBwcm9wczogTWVudVByb3BzPFQ+ICYgT21pdDxSZWFjdC5IVE1MQXR0cmlidXRlczxIVE1MRGl2RWxlbWVudD4sICdvbkNoYW5nZSc+LFxuICAgIHJlZjogRm9yd2FyZGVkUmVmPEhUTUxEaXZFbGVtZW50Pixcbikge1xuICAgIGNvbnN0IHsgbXVsdGlTZWxlY3QsIG9uQ2hhbmdlLCB2YWx1ZTogcHJvcFZhbHVlLCAuLi5yZXN0IH0gPSBwcm9wcztcbiAgICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlKHByb3BWYWx1ZSB8fCAobXVsdGlTZWxlY3QgPyBbXSA6ICcnKSk7XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGVzIHRoZSBzZWxlY3RlZCB2YWx1ZShzKS5cbiAgICAgKiBIYW5kbGVzIGJvdGggc2luZ2xlIGFuZCBtdWx0aS1zZWxlY3QgbG9naWMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge1R9IHZhbCAtIFRoZSB2YWx1ZSB0byBzZWxlY3Qgb3IgZGVzZWxlY3QuXG4gICAgICovXG4gICAgY29uc3QgdXBkYXRlVmFsdWUgPSAodmFsOiBUKSA9PiB7XG4gICAgICAgIGxldCBuZXdWYWw7XG4gICAgICAgIGlmIChtdWx0aVNlbGVjdCkge1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlLmluY2x1ZGVzKHZhbCkpIHtcbiAgICAgICAgICAgICAgICAgICAgbmV3VmFsID0gdmFsdWUuZmlsdGVyKChpdGVtKSA9PiBpdGVtICE9PSB2YWwpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIG5ld1ZhbCA9IFsuLi52YWx1ZSwgdmFsXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBuZXdWYWwgPSB2YWw7XG4gICAgICAgIH1cbiAgICAgICAgc2V0VmFsdWUobmV3VmFsKTtcbiAgICAgICAgb25DaGFuZ2U/LihuZXdWYWwpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBIYW5kbGVzIGtleWJvYXJkIG5hdmlnYXRpb24gd2l0aGluIHRoZSBtZW51LlxuICAgICAqIFN1cHBvcnRzIEFycm93IGtleXMgZm9yIG5hdmlnYXRpb24sIGFuZCBFbnRlci9TcGFjZSBmb3Igc2VsZWN0aW9uLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtSZWFjdC5LZXlib2FyZEV2ZW50fSBlIC0gVGhlIGtleWJvYXJkIGV2ZW50LlxuICAgICAqL1xuICAgIGNvbnN0IGhhbmRsZUtleURvd24gPSAoZTogUmVhY3QuS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXQgPSBlLnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gZS5jdXJyZW50VGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBjb25zdCBpdGVtcyA9IEFycmF5LmZyb20oY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwoJ1tyb2xlPVwib3B0aW9uXCJdJykpIGFzIEhUTUxFbGVtZW50W107XG4gICAgICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IGl0ZW1zLmluZGV4T2YodGFyZ2V0IGFzIEhUTUxFbGVtZW50KTtcblxuICAgICAgICBsZXQgbmV4dEluZGV4O1xuXG4gICAgICAgIHN3aXRjaCAoZS5rZXkpIHtcbiAgICAgICAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIG5leHRJbmRleCA9IGN1cnJlbnRJbmRleCArIDE7XG4gICAgICAgICAgICAgICAgaWYgKG5leHRJbmRleCA+PSBpdGVtcy5sZW5ndGgpIG5leHRJbmRleCA9IDA7XG4gICAgICAgICAgICAgICAgaXRlbXNbbmV4dEluZGV4XT8uZm9jdXMoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0Fycm93VXAnOlxuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBuZXh0SW5kZXggPSBjdXJyZW50SW5kZXggLSAxO1xuICAgICAgICAgICAgICAgIGlmIChuZXh0SW5kZXggPCAwKSBuZXh0SW5kZXggPSBpdGVtcy5sZW5ndGggLSAxO1xuICAgICAgICAgICAgICAgIGl0ZW1zW25leHRJbmRleF0/LmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdIb21lJzpcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgaXRlbXNbMF0/LmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdFbmQnOlxuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBpdGVtc1tpdGVtcy5sZW5ndGggLSAxXT8uZm9jdXMoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0VudGVyJzpcbiAgICAgICAgICAgIGNhc2UgJyAnOiAvLyBTcGFjZVxuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB0YXJnZXQuY2xpY2soKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogSGFuZGxlcyBmb2N1cyBldmVudHMgb24gdGhlIG1lbnUgY29udGFpbmVyLlxuICAgICAqIERlbGVnYXRlcyBmb2N1cyB0byB0aGUgZmlyc3QgaXRlbSBpZiB0aGUgY29udGFpbmVyIGl0c2VsZiByZWNlaXZlcyBmb2N1cy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7UmVhY3QuRm9jdXNFdmVudH0gZSAtIFRoZSBmb2N1cyBldmVudC5cbiAgICAgKi9cbiAgICBjb25zdCBmb2N1c0hhbmRsZXIgPSAoZTogUmVhY3QuRm9jdXNFdmVudCkgPT4ge1xuICAgICAgICAvLyBQcmV2ZW50IHRyYXA6IElmIGZvY3VzIGNhbWUgZnJvbSBpbnNpZGUgKFNoaWZ0K1RhYiksIGRvIE5PVCBhdXRvLWZvY3VzIGFnYWluLlxuICAgICAgICAvLyBUaGlzIGFsbG93cyBmb2N1cyB0byBsYW5kIG9uIHRoZSBjb250YWluZXIsIGFuZCB0aGUgbmV4dCBTaGlmdCtUYWIgd2lsbCBleGl0LlxuICAgICAgICBpZiAoZS5jdXJyZW50VGFyZ2V0LmNvbnRhaW5zKGUucmVsYXRlZFRhcmdldCBhcyBOb2RlKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gT25seSBpZiBmb2N1cyBpcyBhY3R1YWxseSBvbiB0aGUgY29udGFpbmVyIChlLmcuIHRhYmJpbmcgaW50byBpdClcbiAgICAgICAgLy8gYW5kIG5vdCBidWJibGluZyB1cCBmcm9tIGEgY2hpbGRcbiAgICAgICAgaWYgKGUudGFyZ2V0ID09PSBlLmN1cnJlbnRUYXJnZXQpIHtcbiAgICAgICAgICAgIC8vIFByZXZlbnQgdGhlIGNvbnRhaW5lciBmcm9tIGhvbGRpbmcgZm9jdXM7IGRlbGVnYXRlIHRvIGZpcnN0IGl0ZW1cbiAgICAgICAgICAgIGNvbnN0IGZpcnN0SXRlbSA9IGUuY3VycmVudFRhcmdldC5xdWVyeVNlbGVjdG9yKCdbcm9sZT1cIm9wdGlvblwiXScpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgICAgZmlyc3RJdGVtPy5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxNZW51Q29udGV4dC5Qcm92aWRlclxuICAgICAgICAgICAgdmFsdWU9e1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIG11bHRpU2VsZWN0LFxuICAgICAgICAgICAgICAgICAgICB1cGRhdGVWYWx1ZSxcbiAgICAgICAgICAgICAgICB9IGFzIHVua25vd24gYXMgUmVhY3QuQ29udGV4dFR5cGU8dHlwZW9mIE1lbnVDb250ZXh0PlxuICAgICAgICAgICAgfVxuICAgICAgICA+XG4gICAgICAgICAgICA8TWVudUNvbnRhaW5lclxuICAgICAgICAgICAgICAgIHsuLi5yZXN0fVxuICAgICAgICAgICAgICAgIHJlZj17cmVmfVxuICAgICAgICAgICAgICAgIHJvbGU9XCJsaXN0Ym94XCJcbiAgICAgICAgICAgICAgICBhcmlhLW11bHRpc2VsZWN0YWJsZT17bXVsdGlTZWxlY3R9XG4gICAgICAgICAgICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICAgICAgICAgICAgb25LZXlEb3duPXtoYW5kbGVLZXlEb3dufVxuICAgICAgICAgICAgICAgIG9uRm9jdXM9e2ZvY3VzSGFuZGxlcn1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7cHJvcHMuY2hpbGRyZW59XG4gICAgICAgICAgICA8L01lbnVDb250YWluZXI+XG4gICAgICAgIDwvTWVudUNvbnRleHQuUHJvdmlkZXI+XG4gICAgKTtcbn0pO1xuXG5NZW51LmRpc3BsYXlOYW1lID0gJ01lbnUnO1xuXG5NZW51LmRlZmF1bHRQcm9wcyA9IHtcbiAgICBtdWx0aVNlbGVjdDogZmFsc2UsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBNZW51O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1Cc0IifQ== */");
11
+ /**
12
+ * Menu component that allows selection of items from a list.
13
+ * Supports single and multi-select modes and keyboard navigation.
14
+ *
15
+ * @template T - The type of value(s) in the menu.
16
+ * @param {MenuProps<T> & Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'>} props - The menu properties.
17
+ * @param {ForwardedRef<HTMLDivElement>} ref - The ref forwarded to the menu container.
18
+ */ const Menu = /*#__PURE__*/ React.forwardRef(function(props, ref) {
19
+ const { multiSelect, onChange, value: propValue, ...rest } = props;
20
+ const [value, setValue] = useState(propValue || (multiSelect ? [] : ''));
21
+ /**
22
+ * Updates the selected value(s).
23
+ * Handles both single and multi-select logic.
24
+ *
25
+ * @param {T} val - The value to select or deselect.
26
+ */ const updateValue = (val)=>{
18
27
  let newVal;
19
28
  if (multiSelect) {
20
29
  if (Array.isArray(value)) {
21
30
  if (value.includes(val)) {
22
- newVal = value.filter((item) => item !== val);
23
- }
24
- else {
25
- newVal = [...value, val];
31
+ newVal = value.filter((item)=>item !== val);
32
+ } else {
33
+ newVal = [
34
+ ...value,
35
+ val
36
+ ];
26
37
  }
27
38
  }
28
- }
29
- else {
39
+ } else {
30
40
  newVal = val;
31
41
  }
32
42
  setValue(newVal);
33
- onChange === null || onChange === void 0 ? void 0 : onChange(newVal);
43
+ onChange?.(newVal);
44
+ };
45
+ /**
46
+ * Handles keyboard navigation within the menu.
47
+ * Supports Arrow keys for navigation, and Enter/Space for selection.
48
+ *
49
+ * @param {React.KeyboardEvent} e - The keyboard event.
50
+ */ const handleKeyDown = (e)=>{
51
+ const target = e.target;
52
+ const container = e.currentTarget;
53
+ const items = Array.from(container.querySelectorAll('[role="option"]'));
54
+ const currentIndex = items.indexOf(target);
55
+ let nextIndex;
56
+ switch(e.key){
57
+ case 'ArrowDown':
58
+ e.preventDefault();
59
+ nextIndex = currentIndex + 1;
60
+ if (nextIndex >= items.length) nextIndex = 0;
61
+ items[nextIndex]?.focus();
62
+ break;
63
+ case 'ArrowUp':
64
+ e.preventDefault();
65
+ nextIndex = currentIndex - 1;
66
+ if (nextIndex < 0) nextIndex = items.length - 1;
67
+ items[nextIndex]?.focus();
68
+ break;
69
+ case 'Home':
70
+ e.preventDefault();
71
+ items[0]?.focus();
72
+ break;
73
+ case 'End':
74
+ e.preventDefault();
75
+ items[items.length - 1]?.focus();
76
+ break;
77
+ case 'Enter':
78
+ case ' ':
79
+ e.preventDefault();
80
+ target.click();
81
+ break;
82
+ }
34
83
  };
35
- return (_jsx(MenuContext.Provider, { value: {
84
+ /**
85
+ * Handles focus events on the menu container.
86
+ * Delegates focus to the first item if the container itself receives focus.
87
+ *
88
+ * @param {React.FocusEvent} e - The focus event.
89
+ */ const focusHandler = (e)=>{
90
+ // Prevent trap: If focus came from inside (Shift+Tab), do NOT auto-focus again.
91
+ // This allows focus to land on the container, and the next Shift+Tab will exit.
92
+ if (e.currentTarget.contains(e.relatedTarget)) {
93
+ return;
94
+ }
95
+ // Only if focus is actually on the container (e.g. tabbing into it)
96
+ // and not bubbling up from a child
97
+ if (e.target === e.currentTarget) {
98
+ // Prevent the container from holding focus; delegate to first item
99
+ const firstItem = e.currentTarget.querySelector('[role="option"]');
100
+ firstItem?.focus();
101
+ }
102
+ };
103
+ return /*#__PURE__*/ jsx(MenuContext.Provider, {
104
+ value: {
36
105
  value,
37
106
  multiSelect,
38
- updateValue,
39
- }, children: _jsx(MenuContainer, { ref: ref, children: props.children }) }));
107
+ updateValue
108
+ },
109
+ children: /*#__PURE__*/ jsx(MenuContainer, {
110
+ ...rest,
111
+ ref: ref,
112
+ role: "listbox",
113
+ "aria-multiselectable": multiSelect,
114
+ tabIndex: 0,
115
+ onKeyDown: handleKeyDown,
116
+ onFocus: focusHandler,
117
+ children: props.children
118
+ })
119
+ });
40
120
  });
41
121
  Menu.displayName = 'Menu';
42
122
  Menu.defaultProps = {
43
- multiSelect: false,
123
+ multiSelect: false
44
124
  };
45
- export default Menu;
46
- //# sourceMappingURL=Menu.js.map
125
+
126
+ export { Menu as default };
@@ -11,4 +11,3 @@ type MultiSelect<T> = {
11
11
  export type MenuContextType<T> = SingleSelect<T> | MultiSelect<T>;
12
12
  declare const _default: import("react").Context<MenuContextType<object>>;
13
13
  export default _default;
14
- //# sourceMappingURL=MenuContext.d.ts.map
@@ -1,3 +1,5 @@
1
1
  import { createContext } from 'react';
2
- export default createContext(undefined);
3
- //# sourceMappingURL=MenuContext.js.map
2
+
3
+ var MenuContext = createContext(undefined);
4
+
5
+ export { MenuContext as default };
@@ -1,8 +1,10 @@
1
1
  import React from 'react';
2
2
  interface MenuItemProps<T> {
3
3
  /** Value of the element */
4
- value: T & T[];
4
+ value: T;
5
5
  }
6
- export default function MenuItem<T>(props: MenuItemProps<T> & React.PropsWithChildren<unknown>): import("@emotion/react/jsx-runtime").JSX.Element;
7
- export {};
8
- //# sourceMappingURL=MenuItem.d.ts.map
6
+ declare const MenuItemInner: <T>(props: MenuItemProps<T> & React.PropsWithChildren, ref: React.Ref<HTMLButtonElement>) => import("@emotion/react/jsx-runtime").JSX.Element;
7
+ declare const MenuItem: <T>(props: MenuItemProps<T> & React.PropsWithChildren & {
8
+ ref?: React.Ref<HTMLButtonElement>;
9
+ }) => ReturnType<typeof MenuItemInner>;
10
+ export default MenuItem;
@@ -1,57 +1,42 @@
1
- var __rest = (this && this.__rest) || function (s, e) {
2
- var t = {};
3
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
- t[p] = s[p];
5
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
- t[p[i]] = s[p[i]];
9
- }
10
- return t;
11
- };
12
- import { jsx as _jsx, jsxs as _jsxs } from "@emotion/react/jsx-runtime";
13
- import { useContext } from 'react';
1
+ import { jsxs, jsx } from '@emotion/react/jsx-runtime';
2
+ import React, { useContext } from 'react';
14
3
  import styled from '@emotion/styled';
15
- import constants from '../../shared/constants';
16
- import Checkbox from '../Input/Checkbox';
17
- import MenuContext from './MenuContext';
18
- const Container = styled.button `
19
- font-weight: ${(props) => (props.selected ? 'bold' : 'normal')};
20
- padding: 8px 6px;
21
- border: none;
22
- background-color: transparent;
23
- font-size: 16px;
24
- border-bottom: 1px solid var(--border-light-color, ${constants.BORDER_LIGHT_COLOR});
25
- min-height: 41px;
26
- display: flex;
27
- align-items: center;
28
- cursor: pointer;
29
- position: relative;
30
-
31
- &:hover,
32
- &:focus,
33
- &:focus-within {
34
- background-color: var(--border-light-color, ${constants.BORDER_LIGHT_COLOR});
35
- }
4
+ import { getThemeValue, THEME_NAME } from '../../shared/constants.js';
5
+ import Checkbox from '../Input/Checkbox.js';
6
+ import MenuContext from './MenuContext.js';
36
7
 
37
- & > label {
38
- margin: 0 4px 0 0;
39
- }
40
- `;
41
- export default function MenuItem(props) {
42
- var _a, _b;
8
+ const Container = /*#__PURE__*/ styled("button", {
9
+ target: "ea4jlaf0",
10
+ label: "Container"
11
+ })("font-weight:", (props)=>props.selected ? 'bold' : 'normal', ";padding:8px;border:none;border-left:4px solid\n ", (props)=>props.selected && !props.multiselect ? getThemeValue(THEME_NAME.TEXT_COLOR_DARK) : 'transparent', ";background-color:transparent;font-size:16px;border-bottom:1px solid ", getThemeValue(THEME_NAME.BORDER_LIGHT_COLOR), ";min-height:41px;display:flex;align-items:center;cursor:pointer;position:relative;color:", getThemeValue(THEME_NAME.TEXT_COLOR_DARK), ";&:hover,&:focus,&:focus-within{background-color:", getThemeValue(THEME_NAME.BORDER_LIGHT_COLOR), ";}& > label{margin:0 4px 0 0;}", "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvbm8tZnJpbGxzLXVpL25vLWZyaWxscy11aS9zcmMvY29tcG9uZW50cy9NZW51L01lbnVJdGVtLnRzeCIsInNvdXJjZXMiOlsiL2hvbWUvcnVubmVyL3dvcmsvbm8tZnJpbGxzLXVpL25vLWZyaWxscy11aS9zcmMvY29tcG9uZW50cy9NZW51L01lbnVJdGVtLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgU3ludGhldGljRXZlbnQsIHVzZUNvbnRleHQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyBnZXRUaGVtZVZhbHVlLCBUSEVNRV9OQU1FIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2NvbnN0YW50cyc7XG5pbXBvcnQgQ2hlY2tib3ggZnJvbSAnLi4vSW5wdXQvQ2hlY2tib3gnO1xuaW1wb3J0IE1lbnVDb250ZXh0LCB7IE1lbnVDb250ZXh0VHlwZSB9IGZyb20gJy4vTWVudUNvbnRleHQnO1xuXG5pbnRlcmZhY2UgTWVudUl0ZW1Qcm9wczxUPiB7XG4gICAgLyoqIFZhbHVlIG9mIHRoZSBlbGVtZW50ICovXG4gICAgdmFsdWU6IFQ7XG59XG5cbmNvbnN0IENvbnRhaW5lciA9IHN0eWxlZC5idXR0b248eyBzZWxlY3RlZDogYm9vbGVhbjsgbXVsdGlzZWxlY3Q/OiBib29sZWFuIH0+YFxuICAgIGZvbnQtd2VpZ2h0OiAkeyhwcm9wcykgPT4gKHByb3BzLnNlbGVjdGVkID8gJ2JvbGQnIDogJ25vcm1hbCcpfTtcbiAgICBwYWRkaW5nOiA4cHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWRcbiAgICAgICAgJHsocHJvcHMpID0+XG4gICAgICAgICAgICBwcm9wcy5zZWxlY3RlZCAmJiAhcHJvcHMubXVsdGlzZWxlY3RcbiAgICAgICAgICAgICAgICA/IGdldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5URVhUX0NPTE9SX0RBUkspXG4gICAgICAgICAgICAgICAgOiAndHJhbnNwYXJlbnQnfTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7Z2V0VGhlbWVWYWx1ZShUSEVNRV9OQU1FLkJPUkRFUl9MSUdIVF9DT0xPUil9O1xuICAgIG1pbi1oZWlnaHQ6IDQxcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgY29sb3I6ICR7Z2V0VGhlbWVWYWx1ZShUSEVNRV9OQU1FLlRFWFRfQ09MT1JfREFSSyl9O1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6Zm9jdXMtd2l0aGluIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtnZXRUaGVtZVZhbHVlKFRIRU1FX05BTUUuQk9SREVSX0xJR0hUX0NPTE9SKX07XG4gICAgfVxuXG4gICAgJiA+IGxhYmVsIHtcbiAgICAgICAgbWFyZ2luOiAwIDRweCAwIDA7XG4gICAgfVxuYDtcblxuY29uc3QgTWVudUl0ZW1Jbm5lciA9IDxULD4oXG4gICAgcHJvcHM6IE1lbnVJdGVtUHJvcHM8VD4gJiBSZWFjdC5Qcm9wc1dpdGhDaGlsZHJlbixcbiAgICByZWY6IFJlYWN0LlJlZjxIVE1MQnV0dG9uRWxlbWVudD4sXG4pID0+IHtcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlQ29udGV4dChNZW51Q29udGV4dCkgYXMgTWVudUNvbnRleHRUeXBlPFQ+O1xuICAgIGNvbnN0IHsgdmFsdWUsIGNoaWxkcmVuLCAuLi5yZXN0IH0gPSBwcm9wcztcbiAgICBjb25zdCBjbGlja0hhbmRsZXIgPSAoZTogU3ludGhldGljRXZlbnQpID0+IHtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgY29udGV4dC51cGRhdGVWYWx1ZSh2YWx1ZSBhcyBUICYgVFtdKTtcbiAgICB9O1xuXG4gICAgY29uc3Qgc2VsZWN0ZWQgPSBjb250ZXh0Lm11bHRpU2VsZWN0XG4gICAgICAgID8gY29udGV4dC52YWx1ZT8uaW5jbHVkZXM/Lih2YWx1ZSlcbiAgICAgICAgOiBjb250ZXh0LnZhbHVlID09PSB2YWx1ZTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgIHsuLi5yZXN0fVxuICAgICAgICAgICAgcmVmPXtyZWZ9XG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIHJvbGU9XCJvcHRpb25cIlxuICAgICAgICAgICAgYXJpYS1zZWxlY3RlZD17c2VsZWN0ZWR9XG4gICAgICAgICAgICBzZWxlY3RlZD17c2VsZWN0ZWR9XG4gICAgICAgICAgICBvbkNsaWNrPXtjbGlja0hhbmRsZXJ9XG4gICAgICAgICAgICBtdWx0aXNlbGVjdD17Y29udGV4dC5tdWx0aVNlbGVjdCA/IHRydWUgOiB1bmRlZmluZWR9XG4gICAgICAgID5cbiAgICAgICAgICAgIHtjb250ZXh0Lm11bHRpU2VsZWN0ICYmIChcbiAgICAgICAgICAgICAgICA8Q2hlY2tib3hcbiAgICAgICAgICAgICAgICAgICAgY2hlY2tlZD17c2VsZWN0ZWR9XG4gICAgICAgICAgICAgICAgICAgIHJlYWRPbmx5XG4gICAgICAgICAgICAgICAgICAgIHRhYkluZGV4PXstMX1cbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IGUuc3RvcFByb3BhZ2F0aW9uKCl9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIDwvQ29udGFpbmVyPlxuICAgICk7XG59O1xuXG5jb25zdCBNZW51SXRlbSA9IFJlYWN0LmZvcndhcmRSZWYoTWVudUl0ZW1Jbm5lcikgYXMgPFQ+KFxuICAgIHByb3BzOiBNZW51SXRlbVByb3BzPFQ+ICYgUmVhY3QuUHJvcHNXaXRoQ2hpbGRyZW4gJiB7IHJlZj86IFJlYWN0LlJlZjxIVE1MQnV0dG9uRWxlbWVudD4gfSxcbikgPT4gUmV0dXJuVHlwZTx0eXBlb2YgTWVudUl0ZW1Jbm5lcj47XG5cbmV4cG9ydCBkZWZhdWx0IE1lbnVJdGVtO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVdrQiJ9 */");
12
+ const MenuItemInner = (props, ref)=>{
43
13
  const context = useContext(MenuContext);
44
- const { value, children } = props, rest = __rest(props, ["value", "children"]);
45
- const clickHandler = (e) => {
14
+ const { value, children, ...rest } = props;
15
+ const clickHandler = (e)=>{
46
16
  e.stopPropagation();
47
- if (context.multiSelect) {
48
- e.nativeEvent.stopImmediatePropagation();
49
- }
50
17
  context.updateValue(value);
51
18
  };
52
- const selected = context.multiSelect
53
- ? (_b = (_a = context.value) === null || _a === void 0 ? void 0 : _a.includes) === null || _b === void 0 ? void 0 : _b.call(_a, value)
54
- : context.value === value;
55
- return (_jsxs(Container, Object.assign({}, rest, { type: "button", tabIndex: context.multiSelect ? -1 : 0, selected: selected, onClick: clickHandler, children: [context.multiSelect && _jsx(Checkbox, { checked: selected }), children] })));
56
- }
57
- //# sourceMappingURL=MenuItem.js.map
19
+ const selected = context.multiSelect ? context.value?.includes?.(value) : context.value === value;
20
+ return /*#__PURE__*/ jsxs(Container, {
21
+ ...rest,
22
+ ref: ref,
23
+ type: "button",
24
+ role: "option",
25
+ "aria-selected": selected,
26
+ selected: selected,
27
+ onClick: clickHandler,
28
+ multiselect: context.multiSelect ? true : undefined,
29
+ children: [
30
+ context.multiSelect && /*#__PURE__*/ jsx(Checkbox, {
31
+ checked: selected,
32
+ readOnly: true,
33
+ tabIndex: -1,
34
+ onClick: (e)=>e.stopPropagation()
35
+ }),
36
+ children
37
+ ]
38
+ });
39
+ };
40
+ const MenuItem = /*#__PURE__*/ React.forwardRef(MenuItemInner);
41
+
42
+ export { MenuItem as default };
@@ -1,3 +1,2 @@
1
1
  export { default as Menu } from './Menu';
2
2
  export { default as MenuItem } from './MenuItem';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1,10 +1,32 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  export { Header as ModalHeader, Body as ModalBody, Footer as ModalFooter, } from '../../shared/styles';
4
- type ModalProps = PropTypes.InferProps<typeof Modal.propTypes>;
4
+ declare const modalPropTypes: {
5
+ /** Opens the modal */
6
+ open: PropTypes.Validator<boolean>;
7
+ /** Closes the modal on esc */
8
+ closeOnEsc: PropTypes.Requireable<boolean>;
9
+ /** Closes the modal on overlay click */
10
+ closeOnOverlayClick: PropTypes.Requireable<boolean>;
11
+ /** Call back function called when the modal closes. */
12
+ onClose: PropTypes.Requireable<(...args: any[]) => any>;
13
+ };
14
+ type ModalProps = PropTypes.InferProps<typeof modalPropTypes>;
5
15
  interface ModalState {
6
16
  open: boolean;
7
17
  }
18
+ /**
19
+ * Modal component
20
+ *
21
+ * A dialog window that sits on top of the main application content.
22
+ * It disrupts the user's workflow to demand attention for a critical task or decision.
23
+ *
24
+ * Accessibility:
25
+ * - Implements ARIA `role="dialog"` and `aria-modal="true"`.
26
+ * - Traps focus effectively within the modal while open.
27
+ * - Restores focus to the triggering element upon closure.
28
+ * - Supports closing via ESC key and overlay click.
29
+ */
8
30
  export default class Modal extends React.Component<React.PropsWithChildren<ModalProps>, ModalState> {
9
31
  state: {
10
32
  open: boolean;
@@ -23,13 +45,59 @@ export default class Modal extends React.Component<React.PropsWithChildren<Modal
23
45
  closeOnEsc: boolean;
24
46
  closeOnOverlayClick: boolean;
25
47
  };
48
+ /**
49
+ * Syncs state with props.
50
+ */
26
51
  static getDerivedStateFromProps(props: ModalProps): {
27
52
  open: boolean;
28
53
  };
29
54
  private layer;
30
55
  private closeCallback;
56
+ /**
57
+ * Internal close handler.
58
+ * Restores focus and calls the external onClose callback.
59
+ */
31
60
  private onClose;
61
+ private lastFocusedElement;
62
+ private modalRef;
63
+ /**
64
+ * Retrieves all focusable elements within the modal.
65
+ */
66
+ private getFocusableElements;
67
+ /**
68
+ * Handles keydown events to implement the focus trap.
69
+ * Traps Tab and Shift+Tab within the modal.
70
+ */
71
+ private handleKeyDown;
72
+ /**
73
+ * Lifecycle method to save the currently focused element when the modal mounts while open.
74
+ */
75
+ componentDidMount(): void;
76
+ /**
77
+ * Lifecycle method to restore focus when the modal unmounts.
78
+ */
79
+ componentWillUnmount(): void;
80
+ /**
81
+ * Restores focus to the element that was focused before the modal opened.
82
+ */
83
+ private restoreFocus;
84
+ /**
85
+ * Callback ref to capture the Modal DOM element.
86
+ * Triggers initial focus setting when the element mounts.
87
+ */
88
+ private setModalRef;
89
+ /**
90
+ * Sets initial focus within the modal.
91
+ * Tries to focus the header (first child) first, then the first interactive element, or falls back to the container.
92
+ */
93
+ private setInitialFocus;
94
+ /**
95
+ * Lifecycle method to handle Modal updates.
96
+ * Manages opening/closing logic via LayerManager and focus preservation.
97
+ */
32
98
  getSnapshotBeforeUpdate(prevProps: ModalProps): void;
99
+ /**
100
+ * Renders the Modal component via the LayerManager portal.
101
+ */
33
102
  render(): import("@emotion/react/jsx-runtime").JSX.Element;
34
103
  }
35
- //# sourceMappingURL=Modal.d.ts.map