@protonradio/proton-ui 0.11.7 → 0.11.9

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 (484) hide show
  1. package/dist/{constants/breakpoint.es.js → breakpoint-9y1_8U_b.mjs} +2 -2
  2. package/dist/breakpoint-9y1_8U_b.mjs.map +1 -0
  3. package/dist/breakpoint-DtqbboOa.js +2 -0
  4. package/dist/breakpoint-DtqbboOa.js.map +1 -0
  5. package/dist/color2k-CpDB_dpw.mjs +168 -0
  6. package/dist/color2k-CpDB_dpw.mjs.map +1 -0
  7. package/dist/color2k-DCgwXUem.js +2 -0
  8. package/dist/color2k-DCgwXUem.js.map +1 -0
  9. package/dist/{design/colors.es.js → colors-CWaj9dFz.mjs} +7 -7
  10. package/dist/colors-CWaj9dFz.mjs.map +1 -0
  11. package/dist/colors-CebzFjpe.js +2 -0
  12. package/dist/{design/darkTheme/colors.es.js.map → colors-CebzFjpe.js.map} +1 -1
  13. package/dist/{design/darkTheme/colors.es.js → colors-Ceyo4oCJ.mjs} +13 -13
  14. package/dist/{design/darkTheme/colors.cjs.js.map → colors-Ceyo4oCJ.mjs.map} +1 -1
  15. package/dist/colors-CmSJBHaf.js +2 -0
  16. package/dist/colors-CmSJBHaf.js.map +1 -0
  17. package/dist/colors-DL1dYffC.js +2 -0
  18. package/dist/{design/lightTheme/colors.es.js.map → colors-DL1dYffC.js.map} +1 -1
  19. package/dist/{design/lightTheme/colors.es.js → colors-DMkDnu4U.mjs} +11 -11
  20. package/dist/{design/lightTheme/colors.cjs.js.map → colors-DMkDnu4U.mjs.map} +1 -1
  21. package/dist/constants.cjs.js +1 -1
  22. package/dist/constants.cjs.js.map +1 -1
  23. package/dist/constants.es.js +26 -3
  24. package/dist/constants.es.js.map +1 -1
  25. package/dist/dark.cjs.js +1 -1
  26. package/dist/dark.cjs.js.map +1 -1
  27. package/dist/dark.es.js +55 -8
  28. package/dist/dark.es.js.map +1 -1
  29. package/dist/hooks.cjs.js +1 -1
  30. package/dist/hooks.cjs.js.map +1 -1
  31. package/dist/hooks.es.js +37 -8
  32. package/dist/hooks.es.js.map +1 -1
  33. package/dist/image-CUSfY1_T.js +2 -0
  34. package/dist/image-CUSfY1_T.js.map +1 -0
  35. package/dist/image-DFyN0Kd9.mjs +207 -0
  36. package/dist/image-DFyN0Kd9.mjs.map +1 -0
  37. package/dist/index.cjs.js +30 -1
  38. package/dist/index.cjs.js.map +1 -1
  39. package/dist/index.es.js +5340 -60
  40. package/dist/index.es.js.map +1 -1
  41. package/dist/light.cjs.js +1 -1
  42. package/dist/light.cjs.js.map +1 -1
  43. package/dist/light.es.js +55 -8
  44. package/dist/light.es.js.map +1 -1
  45. package/dist/navigation-BB0MBIiR.js +2 -0
  46. package/dist/navigation-BB0MBIiR.js.map +1 -0
  47. package/dist/navigation-Bj7Pex9j.mjs +43 -0
  48. package/dist/navigation-Bj7Pex9j.mjs.map +1 -0
  49. package/dist/theme.cjs.js +1 -1
  50. package/dist/theme.cjs.js.map +1 -1
  51. package/dist/theme.es.js +15 -9
  52. package/dist/theme.es.js.map +1 -1
  53. package/dist/useBreakpoint-CjRyGKN-.mjs +53 -0
  54. package/dist/useBreakpoint-CjRyGKN-.mjs.map +1 -0
  55. package/dist/useBreakpoint-DA-JqOu3.js +2 -0
  56. package/dist/useBreakpoint-DA-JqOu3.js.map +1 -0
  57. package/dist/utils.cjs.js +1 -1
  58. package/dist/utils.es.js +15 -19
  59. package/dist/utils.es.js.map +1 -1
  60. package/package.json +2 -1
  61. package/dist/_virtual/jsx-runtime.cjs.js +0 -2
  62. package/dist/_virtual/jsx-runtime.cjs.js.map +0 -1
  63. package/dist/_virtual/jsx-runtime.es.js +0 -5
  64. package/dist/_virtual/jsx-runtime.es.js.map +0 -1
  65. package/dist/_virtual/react-jsx-runtime.development.cjs.js +0 -2
  66. package/dist/_virtual/react-jsx-runtime.development.cjs.js.map +0 -1
  67. package/dist/_virtual/react-jsx-runtime.development.es.js +0 -5
  68. package/dist/_virtual/react-jsx-runtime.development.es.js.map +0 -1
  69. package/dist/_virtual/react-jsx-runtime.production.min.cjs.js +0 -2
  70. package/dist/_virtual/react-jsx-runtime.production.min.cjs.js.map +0 -1
  71. package/dist/_virtual/react-jsx-runtime.production.min.es.js +0 -5
  72. package/dist/_virtual/react-jsx-runtime.production.min.es.js.map +0 -1
  73. package/dist/assets/svg/icons.svg.cjs.js +0 -2
  74. package/dist/assets/svg/icons.svg.cjs.js.map +0 -1
  75. package/dist/assets/svg/icons.svg.es.js +0 -5
  76. package/dist/assets/svg/icons.svg.es.js.map +0 -1
  77. package/dist/components/ActionMenu/ActionMenu.cjs.js +0 -2
  78. package/dist/components/ActionMenu/ActionMenu.cjs.js.map +0 -1
  79. package/dist/components/ActionMenu/ActionMenu.es.js +0 -262
  80. package/dist/components/ActionMenu/ActionMenu.es.js.map +0 -1
  81. package/dist/components/Badge/Badge.cjs.js +0 -2
  82. package/dist/components/Badge/Badge.cjs.js.map +0 -1
  83. package/dist/components/Badge/Badge.es.js +0 -25
  84. package/dist/components/Badge/Badge.es.js.map +0 -1
  85. package/dist/components/Banner/Banner.cjs.js +0 -2
  86. package/dist/components/Banner/Banner.cjs.js.map +0 -1
  87. package/dist/components/Banner/Banner.es.js +0 -131
  88. package/dist/components/Banner/Banner.es.js.map +0 -1
  89. package/dist/components/Button/Button.cjs.js +0 -2
  90. package/dist/components/Button/Button.cjs.js.map +0 -1
  91. package/dist/components/Button/Button.es.js +0 -99
  92. package/dist/components/Button/Button.es.js.map +0 -1
  93. package/dist/components/ButtonGroup/ButtonGroup.cjs.js +0 -2
  94. package/dist/components/ButtonGroup/ButtonGroup.cjs.js.map +0 -1
  95. package/dist/components/ButtonGroup/ButtonGroup.es.js +0 -51
  96. package/dist/components/ButtonGroup/ButtonGroup.es.js.map +0 -1
  97. package/dist/components/ButtonWithSelect/ButtonWithSelect.cjs.js +0 -2
  98. package/dist/components/ButtonWithSelect/ButtonWithSelect.cjs.js.map +0 -1
  99. package/dist/components/ButtonWithSelect/ButtonWithSelect.es.js +0 -80
  100. package/dist/components/ButtonWithSelect/ButtonWithSelect.es.js.map +0 -1
  101. package/dist/components/DataTable/DataTable.cjs.js +0 -2
  102. package/dist/components/DataTable/DataTable.cjs.js.map +0 -1
  103. package/dist/components/DataTable/DataTable.es.js +0 -137
  104. package/dist/components/DataTable/DataTable.es.js.map +0 -1
  105. package/dist/components/Dialog/Dialog.cjs.js +0 -2
  106. package/dist/components/Dialog/Dialog.cjs.js.map +0 -1
  107. package/dist/components/Dialog/Dialog.es.js +0 -15
  108. package/dist/components/Dialog/Dialog.es.js.map +0 -1
  109. package/dist/components/Elevation/Elevation.cjs.js +0 -2
  110. package/dist/components/Elevation/Elevation.cjs.js.map +0 -1
  111. package/dist/components/Elevation/Elevation.es.js +0 -33
  112. package/dist/components/Elevation/Elevation.es.js.map +0 -1
  113. package/dist/components/Icon/Icon.cjs.js +0 -2
  114. package/dist/components/Icon/Icon.cjs.js.map +0 -1
  115. package/dist/components/Icon/Icon.es.js +0 -42
  116. package/dist/components/Icon/Icon.es.js.map +0 -1
  117. package/dist/components/ImageBackground/ImageBackground.cjs.js +0 -2
  118. package/dist/components/ImageBackground/ImageBackground.cjs.js.map +0 -1
  119. package/dist/components/ImageBackground/ImageBackground.es.js +0 -55
  120. package/dist/components/ImageBackground/ImageBackground.es.js.map +0 -1
  121. package/dist/components/Input/BaseInput/Input.cjs.js +0 -2
  122. package/dist/components/Input/BaseInput/Input.cjs.js.map +0 -1
  123. package/dist/components/Input/BaseInput/Input.es.js +0 -182
  124. package/dist/components/Input/BaseInput/Input.es.js.map +0 -1
  125. package/dist/components/Input/CopyInput/CopyInput.cjs.js +0 -2
  126. package/dist/components/Input/CopyInput/CopyInput.cjs.js.map +0 -1
  127. package/dist/components/Input/CopyInput/CopyInput.es.js +0 -83
  128. package/dist/components/Input/CopyInput/CopyInput.es.js.map +0 -1
  129. package/dist/components/Input/SearchInput/SearchInput.cjs.js +0 -2
  130. package/dist/components/Input/SearchInput/SearchInput.cjs.js.map +0 -1
  131. package/dist/components/Input/SearchInput/SearchInput.es.js +0 -118
  132. package/dist/components/Input/SearchInput/SearchInput.es.js.map +0 -1
  133. package/dist/components/Menu/MenuTrigger.cjs.js +0 -2
  134. package/dist/components/Menu/MenuTrigger.cjs.js.map +0 -1
  135. package/dist/components/Menu/MenuTrigger.es.js +0 -89
  136. package/dist/components/Menu/MenuTrigger.es.js.map +0 -1
  137. package/dist/components/Menu/PopoverMenu.cjs.js +0 -2
  138. package/dist/components/Menu/PopoverMenu.cjs.js.map +0 -1
  139. package/dist/components/Menu/PopoverMenu.es.js +0 -122
  140. package/dist/components/Menu/PopoverMenu.es.js.map +0 -1
  141. package/dist/components/Modal/Modal.cjs.js +0 -2
  142. package/dist/components/Modal/Modal.cjs.js.map +0 -1
  143. package/dist/components/Modal/Modal.es.js +0 -122
  144. package/dist/components/Modal/Modal.es.js.map +0 -1
  145. package/dist/components/Popover/Popover.cjs.js +0 -2
  146. package/dist/components/Popover/Popover.cjs.js.map +0 -1
  147. package/dist/components/Popover/Popover.es.js +0 -54
  148. package/dist/components/Popover/Popover.es.js.map +0 -1
  149. package/dist/components/ScreenOverlay/ScreenOverlay.cjs.js +0 -2
  150. package/dist/components/ScreenOverlay/ScreenOverlay.cjs.js.map +0 -1
  151. package/dist/components/ScreenOverlay/ScreenOverlay.es.js +0 -44
  152. package/dist/components/ScreenOverlay/ScreenOverlay.es.js.map +0 -1
  153. package/dist/components/Select/Select.cjs.js +0 -2
  154. package/dist/components/Select/Select.cjs.js.map +0 -1
  155. package/dist/components/Select/Select.es.js +0 -224
  156. package/dist/components/Select/Select.es.js.map +0 -1
  157. package/dist/components/Switch/Switch.cjs.js +0 -2
  158. package/dist/components/Switch/Switch.cjs.js.map +0 -1
  159. package/dist/components/Switch/Switch.es.js +0 -40
  160. package/dist/components/Switch/Switch.es.js.map +0 -1
  161. package/dist/components/Table/Collection/CompoundComponents.cjs.js +0 -2
  162. package/dist/components/Table/Collection/CompoundComponents.cjs.js.map +0 -1
  163. package/dist/components/Table/Collection/CompoundComponents.es.js +0 -9
  164. package/dist/components/Table/Collection/CompoundComponents.es.js.map +0 -1
  165. package/dist/components/Table/Collection/collectionParser.cjs.js +0 -2
  166. package/dist/components/Table/Collection/collectionParser.cjs.js.map +0 -1
  167. package/dist/components/Table/Collection/collectionParser.es.js +0 -54
  168. package/dist/components/Table/Collection/collectionParser.es.js.map +0 -1
  169. package/dist/components/Table/Collection/useTableCollection.cjs.js +0 -2
  170. package/dist/components/Table/Collection/useTableCollection.cjs.js.map +0 -1
  171. package/dist/components/Table/Collection/useTableCollection.es.js +0 -59
  172. package/dist/components/Table/Collection/useTableCollection.es.js.map +0 -1
  173. package/dist/components/Table/Table.cjs.js +0 -2
  174. package/dist/components/Table/Table.cjs.js.map +0 -1
  175. package/dist/components/Table/Table.es.js +0 -89
  176. package/dist/components/Table/Table.es.js.map +0 -1
  177. package/dist/components/Text/TextEllipsis/TextEllipsis.cjs.js +0 -2
  178. package/dist/components/Text/TextEllipsis/TextEllipsis.cjs.js.map +0 -1
  179. package/dist/components/Text/TextEllipsis/TextEllipsis.es.js +0 -30
  180. package/dist/components/Text/TextEllipsis/TextEllipsis.es.js.map +0 -1
  181. package/dist/components/Text/TextEmphasis/TextEmphasis.cjs.js +0 -2
  182. package/dist/components/Text/TextEmphasis/TextEmphasis.cjs.js.map +0 -1
  183. package/dist/components/Text/TextEmphasis/TextEmphasis.es.js +0 -54
  184. package/dist/components/Text/TextEmphasis/TextEmphasis.es.js.map +0 -1
  185. package/dist/components/ThemeProvider.cjs.js +0 -2
  186. package/dist/components/ThemeProvider.cjs.js.map +0 -1
  187. package/dist/components/ThemeProvider.es.js +0 -43
  188. package/dist/components/ThemeProvider.es.js.map +0 -1
  189. package/dist/components/Tombstone/Tombstone.cjs.js +0 -2
  190. package/dist/components/Tombstone/Tombstone.cjs.js.map +0 -1
  191. package/dist/components/Tombstone/Tombstone.es.js +0 -35
  192. package/dist/components/Tombstone/Tombstone.es.js.map +0 -1
  193. package/dist/components/Tooltip/Tooltip.cjs.js +0 -2
  194. package/dist/components/Tooltip/Tooltip.cjs.js.map +0 -1
  195. package/dist/components/Tooltip/Tooltip.es.js +0 -78
  196. package/dist/components/Tooltip/Tooltip.es.js.map +0 -1
  197. package/dist/components/Waveform/Waveform.cjs.js +0 -2
  198. package/dist/components/Waveform/Waveform.cjs.js.map +0 -1
  199. package/dist/components/Waveform/Waveform.es.js +0 -163
  200. package/dist/components/Waveform/Waveform.es.js.map +0 -1
  201. package/dist/components/Waveform/WaveformBar.cjs.js +0 -2
  202. package/dist/components/Waveform/WaveformBar.cjs.js.map +0 -1
  203. package/dist/components/Waveform/WaveformBar.es.js +0 -74
  204. package/dist/components/Waveform/WaveformBar.es.js.map +0 -1
  205. package/dist/constants/breakpoint.cjs.js +0 -2
  206. package/dist/constants/breakpoint.cjs.js.map +0 -1
  207. package/dist/constants/breakpoint.es.js.map +0 -1
  208. package/dist/constants/placement.cjs.js +0 -2
  209. package/dist/constants/placement.cjs.js.map +0 -1
  210. package/dist/constants/placement.es.js +0 -28
  211. package/dist/constants/placement.es.js.map +0 -1
  212. package/dist/design/colors.cjs.js +0 -2
  213. package/dist/design/colors.cjs.js.map +0 -1
  214. package/dist/design/colors.es.js.map +0 -1
  215. package/dist/design/darkTheme/colors.cjs.js +0 -2
  216. package/dist/design/darkTheme/stylesheet.cjs.js +0 -2
  217. package/dist/design/darkTheme/stylesheet.cjs.js.map +0 -1
  218. package/dist/design/darkTheme/stylesheet.es.js +0 -52
  219. package/dist/design/darkTheme/stylesheet.es.js.map +0 -1
  220. package/dist/design/generateStylesheet.cjs.js +0 -2
  221. package/dist/design/generateStylesheet.cjs.js.map +0 -1
  222. package/dist/design/generateStylesheet.es.js +0 -26
  223. package/dist/design/generateStylesheet.es.js.map +0 -1
  224. package/dist/design/lightTheme/colors.cjs.js +0 -2
  225. package/dist/design/lightTheme/stylesheet.cjs.js +0 -2
  226. package/dist/design/lightTheme/stylesheet.cjs.js.map +0 -1
  227. package/dist/design/lightTheme/stylesheet.es.js +0 -52
  228. package/dist/design/lightTheme/stylesheet.es.js.map +0 -1
  229. package/dist/design/theme.cjs.js +0 -2
  230. package/dist/design/theme.cjs.js.map +0 -1
  231. package/dist/design/theme.es.js +0 -12
  232. package/dist/design/theme.es.js.map +0 -1
  233. package/dist/hooks/useBreakpoint.cjs.js +0 -2
  234. package/dist/hooks/useBreakpoint.cjs.js.map +0 -1
  235. package/dist/hooks/useBreakpoint.es.js +0 -17
  236. package/dist/hooks/useBreakpoint.es.js.map +0 -1
  237. package/dist/hooks/useIsClosing.cjs.js +0 -2
  238. package/dist/hooks/useIsClosing.cjs.js.map +0 -1
  239. package/dist/hooks/useIsClosing.es.js +0 -30
  240. package/dist/hooks/useIsClosing.es.js.map +0 -1
  241. package/dist/hooks/useLockBodyScroll.cjs.js +0 -2
  242. package/dist/hooks/useLockBodyScroll.cjs.js.map +0 -1
  243. package/dist/hooks/useLockBodyScroll.es.js +0 -14
  244. package/dist/hooks/useLockBodyScroll.es.js.map +0 -1
  245. package/dist/hooks/usePalette.cjs.js +0 -2
  246. package/dist/hooks/usePalette.cjs.js.map +0 -1
  247. package/dist/hooks/usePalette.es.js +0 -37
  248. package/dist/hooks/usePalette.es.js.map +0 -1
  249. package/dist/node_modules/@react-aria/button/dist/useButton.cjs.js +0 -2
  250. package/dist/node_modules/@react-aria/button/dist/useButton.cjs.js.map +0 -1
  251. package/dist/node_modules/@react-aria/button/dist/useButton.es.js +0 -47
  252. package/dist/node_modules/@react-aria/button/dist/useButton.es.js.map +0 -1
  253. package/dist/node_modules/@react-aria/dialog/dist/useDialog.cjs.js +0 -2
  254. package/dist/node_modules/@react-aria/dialog/dist/useDialog.cjs.js.map +0 -1
  255. package/dist/node_modules/@react-aria/dialog/dist/useDialog.es.js +0 -44
  256. package/dist/node_modules/@react-aria/dialog/dist/useDialog.es.js.map +0 -1
  257. package/dist/node_modules/@react-aria/focus/dist/FocusScope.cjs.js +0 -2
  258. package/dist/node_modules/@react-aria/focus/dist/FocusScope.cjs.js.map +0 -1
  259. package/dist/node_modules/@react-aria/focus/dist/FocusScope.es.js +0 -423
  260. package/dist/node_modules/@react-aria/focus/dist/FocusScope.es.js.map +0 -1
  261. package/dist/node_modules/@react-aria/focus/dist/isElementVisible.cjs.js +0 -2
  262. package/dist/node_modules/@react-aria/focus/dist/isElementVisible.cjs.js.map +0 -1
  263. package/dist/node_modules/@react-aria/focus/dist/isElementVisible.es.js +0 -23
  264. package/dist/node_modules/@react-aria/focus/dist/isElementVisible.es.js.map +0 -1
  265. package/dist/node_modules/@react-aria/form/dist/useFormValidation.cjs.js +0 -2
  266. package/dist/node_modules/@react-aria/form/dist/useFormValidation.cjs.js.map +0 -1
  267. package/dist/node_modules/@react-aria/form/dist/useFormValidation.es.js +0 -76
  268. package/dist/node_modules/@react-aria/form/dist/useFormValidation.es.js.map +0 -1
  269. package/dist/node_modules/@react-aria/i18n/dist/context.cjs.js +0 -2
  270. package/dist/node_modules/@react-aria/i18n/dist/context.cjs.js.map +0 -1
  271. package/dist/node_modules/@react-aria/i18n/dist/context.es.js +0 -11
  272. package/dist/node_modules/@react-aria/i18n/dist/context.es.js.map +0 -1
  273. package/dist/node_modules/@react-aria/i18n/dist/useDefaultLocale.cjs.js +0 -2
  274. package/dist/node_modules/@react-aria/i18n/dist/useDefaultLocale.cjs.js.map +0 -1
  275. package/dist/node_modules/@react-aria/i18n/dist/useDefaultLocale.es.js +0 -30
  276. package/dist/node_modules/@react-aria/i18n/dist/useDefaultLocale.es.js.map +0 -1
  277. package/dist/node_modules/@react-aria/i18n/dist/utils.cjs.js +0 -2
  278. package/dist/node_modules/@react-aria/i18n/dist/utils.cjs.js.map +0 -1
  279. package/dist/node_modules/@react-aria/i18n/dist/utils.es.js +0 -45
  280. package/dist/node_modules/@react-aria/i18n/dist/utils.es.js.map +0 -1
  281. package/dist/node_modules/@react-aria/interactions/dist/context.cjs.js +0 -2
  282. package/dist/node_modules/@react-aria/interactions/dist/context.cjs.js.map +0 -1
  283. package/dist/node_modules/@react-aria/interactions/dist/context.es.js +0 -10
  284. package/dist/node_modules/@react-aria/interactions/dist/context.es.js.map +0 -1
  285. package/dist/node_modules/@react-aria/interactions/dist/createEventHandler.cjs.js +0 -2
  286. package/dist/node_modules/@react-aria/interactions/dist/createEventHandler.cjs.js.map +0 -1
  287. package/dist/node_modules/@react-aria/interactions/dist/createEventHandler.es.js +0 -29
  288. package/dist/node_modules/@react-aria/interactions/dist/createEventHandler.es.js.map +0 -1
  289. package/dist/node_modules/@react-aria/interactions/dist/focusSafely.cjs.js +0 -2
  290. package/dist/node_modules/@react-aria/interactions/dist/focusSafely.cjs.js.map +0 -1
  291. package/dist/node_modules/@react-aria/interactions/dist/focusSafely.es.js +0 -15
  292. package/dist/node_modules/@react-aria/interactions/dist/focusSafely.es.js.map +0 -1
  293. package/dist/node_modules/@react-aria/interactions/dist/textSelection.cjs.js +0 -2
  294. package/dist/node_modules/@react-aria/interactions/dist/textSelection.cjs.js.map +0 -1
  295. package/dist/node_modules/@react-aria/interactions/dist/textSelection.es.js +0 -35
  296. package/dist/node_modules/@react-aria/interactions/dist/textSelection.es.js.map +0 -1
  297. package/dist/node_modules/@react-aria/interactions/dist/useFocus.cjs.js +0 -2
  298. package/dist/node_modules/@react-aria/interactions/dist/useFocus.cjs.js.map +0 -1
  299. package/dist/node_modules/@react-aria/interactions/dist/useFocus.es.js +0 -30
  300. package/dist/node_modules/@react-aria/interactions/dist/useFocus.es.js.map +0 -1
  301. package/dist/node_modules/@react-aria/interactions/dist/useFocusVisible.cjs.js +0 -2
  302. package/dist/node_modules/@react-aria/interactions/dist/useFocusVisible.cjs.js.map +0 -1
  303. package/dist/node_modules/@react-aria/interactions/dist/useFocusVisible.es.js +0 -63
  304. package/dist/node_modules/@react-aria/interactions/dist/useFocusVisible.es.js.map +0 -1
  305. package/dist/node_modules/@react-aria/interactions/dist/useFocusWithin.cjs.js +0 -2
  306. package/dist/node_modules/@react-aria/interactions/dist/useFocusWithin.cjs.js.map +0 -1
  307. package/dist/node_modules/@react-aria/interactions/dist/useFocusWithin.es.js +0 -56
  308. package/dist/node_modules/@react-aria/interactions/dist/useFocusWithin.es.js.map +0 -1
  309. package/dist/node_modules/@react-aria/interactions/dist/useFocusable.cjs.js +0 -2
  310. package/dist/node_modules/@react-aria/interactions/dist/useFocusable.cjs.js.map +0 -1
  311. package/dist/node_modules/@react-aria/interactions/dist/useFocusable.es.js +0 -42
  312. package/dist/node_modules/@react-aria/interactions/dist/useFocusable.es.js.map +0 -1
  313. package/dist/node_modules/@react-aria/interactions/dist/useInteractOutside.cjs.js +0 -2
  314. package/dist/node_modules/@react-aria/interactions/dist/useInteractOutside.cjs.js.map +0 -1
  315. package/dist/node_modules/@react-aria/interactions/dist/useInteractOutside.es.js +0 -51
  316. package/dist/node_modules/@react-aria/interactions/dist/useInteractOutside.es.js.map +0 -1
  317. package/dist/node_modules/@react-aria/interactions/dist/useKeyboard.cjs.js +0 -2
  318. package/dist/node_modules/@react-aria/interactions/dist/useKeyboard.cjs.js.map +0 -1
  319. package/dist/node_modules/@react-aria/interactions/dist/useKeyboard.es.js +0 -13
  320. package/dist/node_modules/@react-aria/interactions/dist/useKeyboard.es.js.map +0 -1
  321. package/dist/node_modules/@react-aria/interactions/dist/usePress.cjs.js +0 -2
  322. package/dist/node_modules/@react-aria/interactions/dist/usePress.cjs.js.map +0 -1
  323. package/dist/node_modules/@react-aria/interactions/dist/usePress.es.js +0 -375
  324. package/dist/node_modules/@react-aria/interactions/dist/usePress.es.js.map +0 -1
  325. package/dist/node_modules/@react-aria/interactions/dist/utils.cjs.js +0 -2
  326. package/dist/node_modules/@react-aria/interactions/dist/utils.cjs.js.map +0 -1
  327. package/dist/node_modules/@react-aria/interactions/dist/utils.es.js +0 -92
  328. package/dist/node_modules/@react-aria/interactions/dist/utils.es.js.map +0 -1
  329. package/dist/node_modules/@react-aria/label/dist/useField.cjs.js +0 -2
  330. package/dist/node_modules/@react-aria/label/dist/useField.cjs.js.map +0 -1
  331. package/dist/node_modules/@react-aria/label/dist/useField.es.js +0 -36
  332. package/dist/node_modules/@react-aria/label/dist/useField.es.js.map +0 -1
  333. package/dist/node_modules/@react-aria/label/dist/useLabel.cjs.js +0 -2
  334. package/dist/node_modules/@react-aria/label/dist/useLabel.cjs.js.map +0 -1
  335. package/dist/node_modules/@react-aria/label/dist/useLabel.es.js +0 -23
  336. package/dist/node_modules/@react-aria/label/dist/useLabel.es.js.map +0 -1
  337. package/dist/node_modules/@react-aria/overlays/dist/Overlay.cjs.js +0 -2
  338. package/dist/node_modules/@react-aria/overlays/dist/Overlay.cjs.js.map +0 -1
  339. package/dist/node_modules/@react-aria/overlays/dist/Overlay.es.js +0 -16
  340. package/dist/node_modules/@react-aria/overlays/dist/Overlay.es.js.map +0 -1
  341. package/dist/node_modules/@react-aria/overlays/dist/ariaHideOutside.cjs.js +0 -2
  342. package/dist/node_modules/@react-aria/overlays/dist/ariaHideOutside.cjs.js.map +0 -1
  343. package/dist/node_modules/@react-aria/overlays/dist/ariaHideOutside.es.js +0 -64
  344. package/dist/node_modules/@react-aria/overlays/dist/ariaHideOutside.es.js.map +0 -1
  345. package/dist/node_modules/@react-aria/overlays/dist/useModalOverlay.cjs.js +0 -2
  346. package/dist/node_modules/@react-aria/overlays/dist/useModalOverlay.cjs.js.map +0 -1
  347. package/dist/node_modules/@react-aria/overlays/dist/useModalOverlay.es.js +0 -30
  348. package/dist/node_modules/@react-aria/overlays/dist/useModalOverlay.es.js.map +0 -1
  349. package/dist/node_modules/@react-aria/overlays/dist/useOverlay.cjs.js +0 -2
  350. package/dist/node_modules/@react-aria/overlays/dist/useOverlay.cjs.js.map +0 -1
  351. package/dist/node_modules/@react-aria/overlays/dist/useOverlay.es.js +0 -53
  352. package/dist/node_modules/@react-aria/overlays/dist/useOverlay.es.js.map +0 -1
  353. package/dist/node_modules/@react-aria/overlays/dist/usePreventScroll.cjs.js +0 -2
  354. package/dist/node_modules/@react-aria/overlays/dist/usePreventScroll.cjs.js.map +0 -1
  355. package/dist/node_modules/@react-aria/overlays/dist/usePreventScroll.es.js +0 -98
  356. package/dist/node_modules/@react-aria/overlays/dist/usePreventScroll.es.js.map +0 -1
  357. package/dist/node_modules/@react-aria/radio/dist/useRadio.cjs.js +0 -2
  358. package/dist/node_modules/@react-aria/radio/dist/useRadio.cjs.js.map +0 -1
  359. package/dist/node_modules/@react-aria/radio/dist/useRadio.es.js +0 -58
  360. package/dist/node_modules/@react-aria/radio/dist/useRadio.es.js.map +0 -1
  361. package/dist/node_modules/@react-aria/radio/dist/useRadioGroup.cjs.js +0 -2
  362. package/dist/node_modules/@react-aria/radio/dist/useRadioGroup.cjs.js.map +0 -1
  363. package/dist/node_modules/@react-aria/radio/dist/useRadioGroup.es.js +0 -78
  364. package/dist/node_modules/@react-aria/radio/dist/useRadioGroup.es.js.map +0 -1
  365. package/dist/node_modules/@react-aria/radio/dist/utils.cjs.js +0 -2
  366. package/dist/node_modules/@react-aria/radio/dist/utils.cjs.js.map +0 -1
  367. package/dist/node_modules/@react-aria/radio/dist/utils.es.js +0 -5
  368. package/dist/node_modules/@react-aria/radio/dist/utils.es.js.map +0 -1
  369. package/dist/node_modules/@react-aria/ssr/dist/SSRProvider.cjs.js +0 -2
  370. package/dist/node_modules/@react-aria/ssr/dist/SSRProvider.cjs.js.map +0 -1
  371. package/dist/node_modules/@react-aria/ssr/dist/SSRProvider.es.js +0 -19
  372. package/dist/node_modules/@react-aria/ssr/dist/SSRProvider.es.js.map +0 -1
  373. package/dist/node_modules/@react-aria/switch/dist/useSwitch.cjs.js +0 -2
  374. package/dist/node_modules/@react-aria/switch/dist/useSwitch.cjs.js.map +0 -1
  375. package/dist/node_modules/@react-aria/switch/dist/useSwitch.es.js +0 -20
  376. package/dist/node_modules/@react-aria/switch/dist/useSwitch.es.js.map +0 -1
  377. package/dist/node_modules/@react-aria/toggle/dist/useToggle.cjs.js +0 -2
  378. package/dist/node_modules/@react-aria/toggle/dist/useToggle.cjs.js.map +0 -1
  379. package/dist/node_modules/@react-aria/toggle/dist/useToggle.es.js +0 -48
  380. package/dist/node_modules/@react-aria/toggle/dist/useToggle.es.js.map +0 -1
  381. package/dist/node_modules/@react-aria/visually-hidden/dist/VisuallyHidden.cjs.js +0 -2
  382. package/dist/node_modules/@react-aria/visually-hidden/dist/VisuallyHidden.cjs.js.map +0 -1
  383. package/dist/node_modules/@react-aria/visually-hidden/dist/VisuallyHidden.es.js +0 -41
  384. package/dist/node_modules/@react-aria/visually-hidden/dist/VisuallyHidden.es.js.map +0 -1
  385. package/dist/node_modules/@react-stately/form/dist/useFormValidationState.cjs.js +0 -2
  386. package/dist/node_modules/@react-stately/form/dist/useFormValidationState.cjs.js.map +0 -1
  387. package/dist/node_modules/@react-stately/form/dist/useFormValidationState.es.js +0 -110
  388. package/dist/node_modules/@react-stately/form/dist/useFormValidationState.es.js.map +0 -1
  389. package/dist/node_modules/@react-stately/overlays/dist/useOverlayTriggerState.cjs.js +0 -2
  390. package/dist/node_modules/@react-stately/overlays/dist/useOverlayTriggerState.cjs.js.map +0 -1
  391. package/dist/node_modules/@react-stately/overlays/dist/useOverlayTriggerState.es.js +0 -30
  392. package/dist/node_modules/@react-stately/overlays/dist/useOverlayTriggerState.es.js.map +0 -1
  393. package/dist/node_modules/@react-stately/radio/dist/useRadioGroupState.cjs.js +0 -2
  394. package/dist/node_modules/@react-stately/radio/dist/useRadioGroupState.cjs.js.map +0 -1
  395. package/dist/node_modules/@react-stately/radio/dist/useRadioGroupState.es.js +0 -33
  396. package/dist/node_modules/@react-stately/radio/dist/useRadioGroupState.es.js.map +0 -1
  397. package/dist/node_modules/@react-stately/toggle/dist/useToggleState.cjs.js +0 -2
  398. package/dist/node_modules/@react-stately/toggle/dist/useToggleState.cjs.js.map +0 -1
  399. package/dist/node_modules/@react-stately/toggle/dist/useToggleState.es.js +0 -19
  400. package/dist/node_modules/@react-stately/toggle/dist/useToggleState.es.js.map +0 -1
  401. package/dist/node_modules/@react-stately/utils/dist/useControlledState.cjs.js +0 -2
  402. package/dist/node_modules/@react-stately/utils/dist/useControlledState.cjs.js.map +0 -1
  403. package/dist/node_modules/@react-stately/utils/dist/useControlledState.es.js +0 -31
  404. package/dist/node_modules/@react-stately/utils/dist/useControlledState.es.js.map +0 -1
  405. package/dist/node_modules/@swc/helpers/esm/_check_private_redeclaration.cjs.js +0 -2
  406. package/dist/node_modules/@swc/helpers/esm/_check_private_redeclaration.cjs.js.map +0 -1
  407. package/dist/node_modules/@swc/helpers/esm/_check_private_redeclaration.es.js +0 -9
  408. package/dist/node_modules/@swc/helpers/esm/_check_private_redeclaration.es.js.map +0 -1
  409. package/dist/node_modules/@swc/helpers/esm/_class_apply_descriptor_get.cjs.js +0 -2
  410. package/dist/node_modules/@swc/helpers/esm/_class_apply_descriptor_get.cjs.js.map +0 -1
  411. package/dist/node_modules/@swc/helpers/esm/_class_apply_descriptor_get.es.js +0 -8
  412. package/dist/node_modules/@swc/helpers/esm/_class_apply_descriptor_get.es.js.map +0 -1
  413. package/dist/node_modules/@swc/helpers/esm/_class_apply_descriptor_set.cjs.js +0 -2
  414. package/dist/node_modules/@swc/helpers/esm/_class_apply_descriptor_set.cjs.js.map +0 -1
  415. package/dist/node_modules/@swc/helpers/esm/_class_apply_descriptor_set.es.js +0 -13
  416. package/dist/node_modules/@swc/helpers/esm/_class_apply_descriptor_set.es.js.map +0 -1
  417. package/dist/node_modules/@swc/helpers/esm/_class_extract_field_descriptor.cjs.js +0 -2
  418. package/dist/node_modules/@swc/helpers/esm/_class_extract_field_descriptor.cjs.js.map +0 -1
  419. package/dist/node_modules/@swc/helpers/esm/_class_extract_field_descriptor.es.js +0 -9
  420. package/dist/node_modules/@swc/helpers/esm/_class_extract_field_descriptor.es.js.map +0 -1
  421. package/dist/node_modules/@swc/helpers/esm/_class_private_field_get.cjs.js +0 -2
  422. package/dist/node_modules/@swc/helpers/esm/_class_private_field_get.cjs.js.map +0 -1
  423. package/dist/node_modules/@swc/helpers/esm/_class_private_field_get.es.js +0 -11
  424. package/dist/node_modules/@swc/helpers/esm/_class_private_field_get.es.js.map +0 -1
  425. package/dist/node_modules/@swc/helpers/esm/_class_private_field_init.cjs.js +0 -2
  426. package/dist/node_modules/@swc/helpers/esm/_class_private_field_init.cjs.js.map +0 -1
  427. package/dist/node_modules/@swc/helpers/esm/_class_private_field_init.es.js +0 -9
  428. package/dist/node_modules/@swc/helpers/esm/_class_private_field_init.es.js.map +0 -1
  429. package/dist/node_modules/@swc/helpers/esm/_class_private_field_set.cjs.js +0 -2
  430. package/dist/node_modules/@swc/helpers/esm/_class_private_field_set.cjs.js.map +0 -1
  431. package/dist/node_modules/@swc/helpers/esm/_class_private_field_set.es.js +0 -11
  432. package/dist/node_modules/@swc/helpers/esm/_class_private_field_set.es.js.map +0 -1
  433. package/dist/node_modules/color2k/dist/index.exports.import.es.cjs.js +0 -2
  434. package/dist/node_modules/color2k/dist/index.exports.import.es.cjs.js.map +0 -1
  435. package/dist/node_modules/color2k/dist/index.exports.import.es.es.js +0 -171
  436. package/dist/node_modules/color2k/dist/index.exports.import.es.es.js.map +0 -1
  437. package/dist/node_modules/react/cjs/react-jsx-runtime.development.cjs.js +0 -23
  438. package/dist/node_modules/react/cjs/react-jsx-runtime.development.cjs.js.map +0 -1
  439. package/dist/node_modules/react/cjs/react-jsx-runtime.development.es.js +0 -609
  440. package/dist/node_modules/react/cjs/react-jsx-runtime.development.es.js.map +0 -1
  441. package/dist/node_modules/react/cjs/react-jsx-runtime.production.min.cjs.js +0 -10
  442. package/dist/node_modules/react/cjs/react-jsx-runtime.production.min.cjs.js.map +0 -1
  443. package/dist/node_modules/react/cjs/react-jsx-runtime.production.min.es.js +0 -29
  444. package/dist/node_modules/react/cjs/react-jsx-runtime.production.min.es.js.map +0 -1
  445. package/dist/node_modules/react/jsx-runtime.cjs.js +0 -2
  446. package/dist/node_modules/react/jsx-runtime.cjs.js.map +0 -1
  447. package/dist/node_modules/react/jsx-runtime.es.js +0 -9
  448. package/dist/node_modules/react/jsx-runtime.es.js.map +0 -1
  449. package/dist/node_modules/react-aria-components/dist/OverlayArrow.cjs.js +0 -2
  450. package/dist/node_modules/react-aria-components/dist/OverlayArrow.cjs.js.map +0 -1
  451. package/dist/node_modules/react-aria-components/dist/OverlayArrow.es.js +0 -37
  452. package/dist/node_modules/react-aria-components/dist/OverlayArrow.es.js.map +0 -1
  453. package/dist/node_modules/react-aria-components/dist/Tooltip.cjs.js +0 -2
  454. package/dist/node_modules/react-aria-components/dist/Tooltip.cjs.js.map +0 -1
  455. package/dist/node_modules/react-aria-components/dist/Tooltip.es.js +0 -97
  456. package/dist/node_modules/react-aria-components/dist/Tooltip.es.js.map +0 -1
  457. package/dist/node_modules/react-aria-components/dist/utils.cjs.js +0 -2
  458. package/dist/node_modules/react-aria-components/dist/utils.cjs.js.map +0 -1
  459. package/dist/node_modules/react-aria-components/dist/utils.es.js +0 -89
  460. package/dist/node_modules/react-aria-components/dist/utils.es.js.map +0 -1
  461. package/dist/utils/color2k.cjs.js +0 -2
  462. package/dist/utils/color2k.cjs.js.map +0 -1
  463. package/dist/utils/color2k.es.js +0 -14
  464. package/dist/utils/color2k.es.js.map +0 -1
  465. package/dist/utils/copy.cjs.js +0 -2
  466. package/dist/utils/copy.cjs.js.map +0 -1
  467. package/dist/utils/copy.es.js +0 -31
  468. package/dist/utils/copy.es.js.map +0 -1
  469. package/dist/utils/image.cjs.js +0 -2
  470. package/dist/utils/image.cjs.js.map +0 -1
  471. package/dist/utils/image.es.js +0 -28
  472. package/dist/utils/image.es.js.map +0 -1
  473. package/dist/utils/navigation.cjs.js +0 -2
  474. package/dist/utils/navigation.cjs.js.map +0 -1
  475. package/dist/utils/navigation.es.js +0 -12
  476. package/dist/utils/navigation.es.js.map +0 -1
  477. package/dist/utils/palette.cjs.js +0 -2
  478. package/dist/utils/palette.cjs.js.map +0 -1
  479. package/dist/utils/palette.es.js +0 -183
  480. package/dist/utils/palette.es.js.map +0 -1
  481. package/dist/utils/string.cjs.js +0 -2
  482. package/dist/utils/string.cjs.js.map +0 -1
  483. package/dist/utils/string.es.js +0 -8
  484. package/dist/utils/string.es.js.map +0 -1
@@ -1,262 +0,0 @@
1
- import { j as e } from "../../node_modules/react/jsx-runtime.es.js";
2
- import { useState as I, useRef as _, useEffect as C, createElement as N } from "react";
3
- import { useIsClosing as P } from "../../hooks/useIsClosing.es.js";
4
- import { useLockBodyScroll as z } from "../../hooks/useLockBodyScroll.es.js";
5
- import { Button as D } from "../Button/Button.es.js";
6
- import { ScreenOverlay as L } from "../ScreenOverlay/ScreenOverlay.es.js";
7
- /* empty css */
8
- import { Icon as H } from "../Icon/Icon.es.js";
9
- import { DropdownMenu as s } from "radix-ui";
10
- import { isUrlExternal as q, handleInternalNavigation as T } from "../../utils/navigation.es.js";
11
- const tn = ({
12
- isOpen: n,
13
- actions: d = [],
14
- children: t,
15
- showCancel: l = !0,
16
- cancelButtonText: u = "Cancel",
17
- selectionMode: f = "single",
18
- selectedKeys: p,
19
- disabledKeys: k = [],
20
- onSelectionChange: r,
21
- onClose: o,
22
- title: a,
23
- "data-testid": i
24
- }) => {
25
- z(n);
26
- const [h, c] = I(0), [x, S] = I([]), [j, R] = I({
27
- title: a,
28
- actions: d,
29
- key: null,
30
- previousKey: null
31
- }), M = _(null), $ = _(null), w = _(null), { isClosing: y, handleClose: b } = P({
32
- onClose: o,
33
- overlayRef: w
34
- }), g = j.actions || [], E = g && g.length > 0, F = t || E || l;
35
- function B(m) {
36
- const v = g.find((A) => A.key === m);
37
- if (!v) {
38
- console.error(`Action with key ${m} not found`);
39
- return;
40
- }
41
- S((A) => [
42
- ...A,
43
- j
44
- ]), R((A) => ({
45
- title: v.label,
46
- actions: v.children,
47
- key: v.key,
48
- previousKey: A.key
49
- }));
50
- }
51
- function G() {
52
- if (x.length > 0) {
53
- const m = x[x.length - 1];
54
- R(m), S(x.slice(0, -1));
55
- }
56
- }
57
- return C(() => {
58
- n && requestAnimationFrame(() => {
59
- M.current && c(M.current.scrollHeight + 12);
60
- });
61
- }, [n, x, F]), C(() => {
62
- n || c(0);
63
- }, [n]), C(() => {
64
- y && c(0);
65
- }, [y]), !n && !y ? null : /* @__PURE__ */ e.jsx(L, { fadeIn: !0, ref: w, children: /* @__PURE__ */ e.jsxs(
66
- s.Root,
67
- {
68
- modal: !0,
69
- open: n,
70
- onOpenChange: (m) => {
71
- m || b();
72
- },
73
- children: [
74
- /* @__PURE__ */ e.jsx(s.Trigger, { asChild: !0, children: /* @__PURE__ */ e.jsx("div", { children: "" }) }),
75
- /* @__PURE__ */ e.jsx(
76
- "div",
77
- {
78
- className: "proton-ActionMenu__background-wrapper",
79
- style: {
80
- opacity: y ? 0 : 1
81
- },
82
- children: /* @__PURE__ */ e.jsx(
83
- "div",
84
- {
85
- "data-testid": i || "ActionMenu-wrapper",
86
- className: "proton-ActionMenu__wrapper",
87
- children: /* @__PURE__ */ e.jsx(
88
- "div",
89
- {
90
- className: "proton-ActionMenu__card",
91
- "data-testid": "ActionMenu-content",
92
- style: { height: `${h}px` },
93
- children: /* @__PURE__ */ e.jsx("div", { ref: $, className: "proton-ActionMenu__menu", children: /* @__PURE__ */ e.jsxs(s.Content, { loop: !0, sideOffset: 8, ref: M, children: [
94
- j.title && /* @__PURE__ */ e.jsxs("div", { className: "proton-ActionMenu__title", children: [
95
- x.length > 0 && /* @__PURE__ */ e.jsx(
96
- "button",
97
- {
98
- onClick: G,
99
- "aria-label": "Go back to previous menu",
100
- children: /* @__PURE__ */ e.jsx(H, { id: "chevron-left", size: 16 })
101
- }
102
- ),
103
- /* @__PURE__ */ e.jsx("span", { children: j.title })
104
- ] }),
105
- F && /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
106
- t && /* @__PURE__ */ e.jsx("div", { className: "proton-ActionMenu__content", children: typeof t == "function" ? t({ close: b }) : t }),
107
- E && /* @__PURE__ */ e.jsx(
108
- U,
109
- {
110
- actions: g,
111
- selectionMode: f,
112
- selectedKeys: p,
113
- onSelectionChange: r,
114
- disabledKeys: k,
115
- handleSubmenuOpen: B,
116
- title: j.title
117
- }
118
- ),
119
- l && /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
120
- /* @__PURE__ */ e.jsx(s.Separator, {}),
121
- /* @__PURE__ */ e.jsx(s.Item, { className: "proton-ActionMenu__cancel-button", children: /* @__PURE__ */ e.jsx(
122
- D,
123
- {
124
- "data-testid": "ActionMenuItem-cancel",
125
- onPress: b,
126
- fullWidth: !0,
127
- variant: "secondary",
128
- children: u
129
- }
130
- ) })
131
- ] })
132
- ] })
133
- ] }) })
134
- }
135
- )
136
- }
137
- )
138
- }
139
- )
140
- ]
141
- }
142
- ) });
143
- }, U = ({
144
- actions: n,
145
- selectionMode: d,
146
- selectedKeys: t = [],
147
- onSelectionChange: l,
148
- disabledKeys: u = [],
149
- handleSubmenuOpen: f,
150
- title: p
151
- }) => {
152
- const k = () => /* @__PURE__ */ e.jsx(e.Fragment, { children: n.map((r, o) => {
153
- var i;
154
- const a = n[o];
155
- return /* @__PURE__ */ e.jsx(
156
- V,
157
- {
158
- item: r,
159
- isSubmenu: !!((i = a.children) != null && i.length),
160
- selectionMode: d,
161
- onSelectionChange: l,
162
- selectedKeys: t,
163
- disabledKeys: u,
164
- handleSubmenuOpen: f
165
- },
166
- r.key
167
- );
168
- }) });
169
- return /* @__PURE__ */ e.jsx(
170
- "div",
171
- {
172
- "aria-disabled": d === "none",
173
- className: "proton-ActionMenu__list",
174
- role: "menu",
175
- "aria-label": p ? `Menu: ${p}` : "Action menu",
176
- children: d === "single" ? /* @__PURE__ */ e.jsx(
177
- s.RadioGroup,
178
- {
179
- value: (t == null ? void 0 : t[0]) || "",
180
- onValueChange: (r) => {
181
- var a;
182
- const o = n.find((i) => i.key === r);
183
- (a = o == null ? void 0 : o.children) != null && a.length || l && l(/* @__PURE__ */ new Set([r]));
184
- },
185
- children: /* @__PURE__ */ e.jsx(k, {})
186
- }
187
- ) : /* @__PURE__ */ e.jsx(s.Group, { children: /* @__PURE__ */ e.jsx(k, {}) })
188
- }
189
- );
190
- }, V = ({
191
- item: n,
192
- isSubmenu: d,
193
- selectionMode: t,
194
- onSelectionChange: l,
195
- selectedKeys: u = [],
196
- disabledKeys: f = [],
197
- handleSubmenuOpen: p
198
- }) => {
199
- const k = _(null), r = n.to && q(n.to), o = {
200
- className: "proton-ActionMenu__item",
201
- "aria-label": `ActionMenu-Item-${n.key}`,
202
- role: "menuitem",
203
- disabled: f.includes(n.key),
204
- ref: k
205
- }, a = (h) => {
206
- var c;
207
- if ((c = n == null ? void 0 : n.children) != null && c.length) {
208
- h.preventDefault(), p(n.key);
209
- return;
210
- }
211
- n.onAction && n.onAction(n.key);
212
- }, i = /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
213
- /* @__PURE__ */ e.jsxs("div", { className: "proton-ActionMenu__item-content", children: [
214
- /* @__PURE__ */ e.jsx("div", { className: "proton-ActionMenu__item-label", children: n.label }),
215
- n.description && /* @__PURE__ */ e.jsx("div", { className: "proton-ActionMenu__description", children: n.description })
216
- ] }),
217
- d && /* @__PURE__ */ e.jsx(H, { id: "chevron-right", size: 16 })
218
- ] });
219
- return n.to ? /* @__PURE__ */ N(s.Item, { ...o, key: n.key, asChild: !0 }, /* @__PURE__ */ e.jsx(
220
- "a",
221
- {
222
- "aria-label": `ActionMenu-Item-${n.key}`,
223
- "aria-disabled": f.includes(n.key),
224
- "aria-checked": u.includes(n.key),
225
- href: n.to,
226
- target: r ? "_blank" : void 0,
227
- rel: r ? "noopener noreferrer" : void 0,
228
- onClick: (h) => {
229
- r || !n.to || T(h, n.to);
230
- },
231
- children: i
232
- }
233
- )) : t === "multiple" ? /* @__PURE__ */ N(
234
- s.CheckboxItem,
235
- {
236
- ...o,
237
- key: n.key,
238
- checked: u.includes(n.key),
239
- onSelect: a,
240
- onCheckedChange: (h) => {
241
- if (!l) return;
242
- const c = new Set(u);
243
- h ? c.add(n.key) : c.delete(n.key), l(c);
244
- }
245
- },
246
- i
247
- ) : /* @__PURE__ */ N(
248
- s.RadioItem,
249
- {
250
- ...o,
251
- value: n.key,
252
- key: n.key,
253
- "aria-checked": u.includes(n.key),
254
- onSelect: a
255
- },
256
- i
257
- );
258
- };
259
- export {
260
- tn as ActionMenu
261
- };
262
- //# sourceMappingURL=ActionMenu.es.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ActionMenu.es.js","sources":["../../../src/components/ActionMenu/ActionMenu.tsx"],"sourcesContent":["\"use client\";\n\nimport { ReactNode, useEffect, useRef, useState } from \"react\";\nimport type { Selection } from \"@react-types/shared\";\n\nimport { useIsClosing } from \"../../hooks/useIsClosing\";\nimport { useLockBodyScroll } from \"../../hooks/useLockBodyScroll\";\nimport { handleInternalNavigation, isUrlExternal } from \"../../utils\";\nimport { Button } from \"../Button/Button\";\nimport { ScreenOverlay } from \"../ScreenOverlay/ScreenOverlay\";\n\nimport \"./ActionMenu.css\";\nimport { Icon } from \"../Icon/Icon\";\n\nimport { DropdownMenu } from \"radix-ui\";\n\nexport interface ActionMenuAction {\n key: string;\n label?: ReactNode;\n description?: ReactNode;\n to?: string;\n onAction?: (key: string) => void;\n children?: ActionMenuAction[];\n}\n\nexport type ActionMenuSelectionMode = \"single\" | \"multiple\" | \"none\";\n\nexport interface ActionMenuProps {\n /** The actions of the menu\n * - type {@link ActionMenuAction}[]\n */\n actions?: ActionMenuAction[];\n\n /** The text of the cancel button */\n cancelButtonText?: string;\n\n /** The children of the menu */\n children?: ReactNode | ((props: { close: () => void }) => ReactNode);\n\n /** The test id of the menu */\n \"data-testid\"?: string;\n\n /** The keys of the disabled items\n * @default []\n */\n disabledKeys?: string[];\n\n /** Whether the menu is open\n * @default false\n */\n isOpen: boolean;\n\n /** The callback function to close the menu */\n onClose?: () => void;\n\n /** The callback function to change the selection\n * - type {@link Selection}\n */\n onSelectionChange?: (keys: Selection) => void;\n\n /** The selection mode of the menu\n * @default \"single\"\n */\n selectionMode?: ActionMenuSelectionMode;\n\n /** The keys of the selected items */\n selectedKeys?: string[];\n\n /** Whether to show the cancel button */\n showCancel?: boolean;\n\n /** The title of the menu */\n title?: string;\n}\n\ntype ActionStack = {\n title: ReactNode | null;\n actions: ActionMenuAction[];\n key: string | null;\n previousKey: string | null;\n};\n\n/**\n * ActionMenu to display a menu of actions.\n * Renders a list of actions as a focusable menu, or non-focusable children.\n *\n * API:\n * - {@link ActionMenuProps}\n */\nexport const ActionMenu = ({\n isOpen,\n actions = [],\n children,\n showCancel = true,\n cancelButtonText = \"Cancel\",\n selectionMode = \"single\",\n selectedKeys,\n disabledKeys = [],\n onSelectionChange,\n onClose,\n title,\n \"data-testid\": testId,\n}: ActionMenuProps) => {\n useLockBodyScroll(isOpen);\n const [contentHeight, setContentHeight] = useState<number>(0);\n const [stackHistory, setStackHistory] = useState<ActionStack[]>([]);\n const [currentActionStack, setCurrentActionStack] = useState<ActionStack>({\n title,\n actions,\n key: null,\n previousKey: null,\n });\n const contentRef = useRef<HTMLDivElement>(null);\n const menuRef = useRef<HTMLDivElement>(null);\n const overlayRef = useRef<HTMLDivElement>(null);\n const { isClosing, handleClose } = useIsClosing({\n onClose,\n overlayRef,\n });\n\n const currentActions = currentActionStack.actions || [];\n const hasActions = currentActions && currentActions.length > 0;\n const hasContent = children || hasActions || showCancel;\n\n function handleSubmenuOpen(key: string) {\n const action = currentActions.find((action) => action.key === key);\n if (!action) {\n console.error(`Action with key ${key} not found`);\n return;\n }\n\n setStackHistory((prevStackHistory) => [\n ...prevStackHistory,\n currentActionStack,\n ]);\n setCurrentActionStack((prevStack) => ({\n title: action.label,\n actions: action.children,\n key: action.key,\n previousKey: prevStack.key,\n }));\n }\n\n function handleBack() {\n if (stackHistory.length > 0) {\n const previousStack = stackHistory[stackHistory.length - 1];\n setCurrentActionStack(previousStack);\n setStackHistory(stackHistory.slice(0, -1));\n }\n }\n\n // Re-measure the open menu's content height when stack history changes\n useEffect(() => {\n if (!isOpen) return;\n\n requestAnimationFrame(() => {\n if (contentRef.current) {\n setContentHeight(contentRef.current.scrollHeight + 12);\n }\n });\n }, [isOpen, stackHistory, hasContent]);\n\n // Reset content height when menu closes\n useEffect(() => {\n if (!isOpen) {\n setContentHeight(0);\n }\n }, [isOpen]);\n\n // Animate content height to 0 when closing\n useEffect(() => {\n if (isClosing) {\n setContentHeight(0);\n }\n }, [isClosing]);\n\n if (!isOpen && !isClosing) return null;\n\n return (\n <ScreenOverlay fadeIn ref={overlayRef}>\n <DropdownMenu.Root\n modal\n open={isOpen}\n onOpenChange={(open) => {\n if (!open) handleClose();\n }}\n >\n <DropdownMenu.Trigger asChild>\n {/* No visible trigger, since menu is controlled by isOpen */}\n <div>{\"\"}</div>\n </DropdownMenu.Trigger>\n\n <div\n className=\"proton-ActionMenu__background-wrapper\"\n style={{\n opacity: isClosing ? 0 : 1,\n }}\n >\n <div\n data-testid={testId || \"ActionMenu-wrapper\"}\n className=\"proton-ActionMenu__wrapper\"\n >\n <div\n className=\"proton-ActionMenu__card\"\n data-testid=\"ActionMenu-content\"\n style={{ height: `${contentHeight}px` }}\n >\n <div ref={menuRef} className=\"proton-ActionMenu__menu\">\n <DropdownMenu.Content loop sideOffset={8} ref={contentRef}>\n {currentActionStack.title && (\n <div className=\"proton-ActionMenu__title\">\n {stackHistory.length > 0 && (\n <button\n onClick={handleBack}\n aria-label=\"Go back to previous menu\"\n >\n <Icon id=\"chevron-left\" size={16} />\n </button>\n )}\n <span>{currentActionStack.title}</span>\n </div>\n )}\n\n {hasContent && (\n <>\n {children && (\n <div className=\"proton-ActionMenu__content\">\n {typeof children === \"function\"\n ? children({ close: handleClose })\n : children}\n </div>\n )}\n\n {hasActions && (\n <ActionMenuList\n actions={currentActions}\n selectionMode={selectionMode}\n selectedKeys={selectedKeys}\n onSelectionChange={onSelectionChange}\n disabledKeys={disabledKeys}\n handleSubmenuOpen={handleSubmenuOpen}\n title={currentActionStack.title}\n />\n )}\n\n {showCancel && (\n <>\n <DropdownMenu.Separator />\n <DropdownMenu.Item className=\"proton-ActionMenu__cancel-button\">\n <Button\n data-testid=\"ActionMenuItem-cancel\"\n onPress={handleClose}\n fullWidth\n variant=\"secondary\"\n >\n {cancelButtonText}\n </Button>\n </DropdownMenu.Item>\n </>\n )}\n </>\n )}\n </DropdownMenu.Content>\n </div>\n </div>\n </div>\n </div>\n </DropdownMenu.Root>\n </ScreenOverlay>\n );\n};\n\ninterface ActionMenuListProps {\n actions: ActionMenuAction[];\n selectionMode: ActionMenuSelectionMode;\n selectedKeys?: string[];\n onSelectionChange?: (keys: Selection) => void;\n disabledKeys?: string[];\n handleSubmenuOpen: (key: string) => void;\n title?: ReactNode;\n}\n\nconst ActionMenuList = ({\n actions,\n selectionMode,\n selectedKeys = [],\n onSelectionChange,\n disabledKeys = [],\n handleSubmenuOpen,\n title,\n}: ActionMenuListProps) => {\n const ActionMenuItemMap = () => (\n <>\n {actions.map((action, i) => {\n const itemProps = actions[i];\n return (\n <ActionMenuItem\n key={action.key}\n item={action}\n isSubmenu={Boolean(itemProps.children?.length)}\n selectionMode={selectionMode}\n onSelectionChange={onSelectionChange}\n selectedKeys={selectedKeys}\n disabledKeys={disabledKeys}\n handleSubmenuOpen={handleSubmenuOpen}\n />\n );\n })}\n </>\n );\n\n return (\n <div\n aria-disabled={selectionMode === \"none\"}\n className=\"proton-ActionMenu__list\"\n role=\"menu\"\n aria-label={title ? `Menu: ${title}` : \"Action menu\"}\n >\n {selectionMode === \"single\" ? (\n <DropdownMenu.RadioGroup\n value={selectedKeys?.[0] || \"\"}\n onValueChange={(value) => {\n // Check if this is a submenu item - if so, don't trigger selection change\n const action = actions.find((action) => action.key === value);\n if (action?.children?.length) {\n return;\n }\n\n if (onSelectionChange) {\n onSelectionChange(new Set([value]));\n }\n }}\n >\n <ActionMenuItemMap />\n </DropdownMenu.RadioGroup>\n ) : (\n <DropdownMenu.Group>\n <ActionMenuItemMap />\n </DropdownMenu.Group>\n )}\n </div>\n );\n};\n\ninterface ActionMenuItemProps {\n to?: string;\n item: ActionMenuAction;\n isSubmenu?: boolean;\n selectionMode: ActionMenuSelectionMode;\n onSelectionChange?: (keys: Selection) => void;\n selectedKeys?: string[];\n disabledKeys?: string[];\n handleSubmenuOpen: (key: string) => void;\n}\n\nconst ActionMenuItem = ({\n item,\n isSubmenu,\n selectionMode,\n onSelectionChange,\n selectedKeys = [],\n disabledKeys = [],\n handleSubmenuOpen,\n}: ActionMenuItemProps) => {\n const ref = useRef(null);\n const isExternal = item.to && isUrlExternal(item.to);\n const radixItemProps = {\n className: \"proton-ActionMenu__item\",\n \"aria-label\": `ActionMenu-Item-${item.key}`,\n role: \"menuitem\",\n disabled: disabledKeys.includes(item.key),\n ref,\n };\n\n const onSelect = (event: Event) => {\n if (item?.children?.length) {\n event.preventDefault();\n handleSubmenuOpen(item.key);\n return;\n }\n if (item.onAction) {\n item.onAction(item.key);\n }\n };\n\n const content = (\n <>\n <div className=\"proton-ActionMenu__item-content\">\n <div className=\"proton-ActionMenu__item-label\">{item.label}</div>\n {item.description && (\n <div className=\"proton-ActionMenu__description\">\n {item.description}\n </div>\n )}\n </div>\n {isSubmenu && <Icon id=\"chevron-right\" size={16} />}\n </>\n );\n\n if (item.to) {\n return (\n <DropdownMenu.Item {...radixItemProps} key={item.key} asChild>\n <a\n aria-label={`ActionMenu-Item-${item.key}`}\n aria-disabled={disabledKeys.includes(item.key)}\n aria-checked={selectedKeys.includes(item.key)}\n href={item.to}\n target={isExternal ? \"_blank\" : undefined}\n rel={isExternal ? \"noopener noreferrer\" : undefined}\n onClick={(e: React.MouseEvent<HTMLAnchorElement>) => {\n if (isExternal || !item.to) {\n return;\n }\n handleInternalNavigation(e, item.to);\n }}\n >\n {content}\n </a>\n </DropdownMenu.Item>\n );\n }\n\n if (selectionMode === \"multiple\") {\n return (\n <DropdownMenu.CheckboxItem\n {...radixItemProps}\n key={item.key}\n checked={selectedKeys.includes(item.key)}\n onSelect={onSelect}\n onCheckedChange={(checked: boolean) => {\n if (!onSelectionChange) return;\n\n const currentKeys = new Set(selectedKeys);\n if (checked) {\n currentKeys.add(item.key);\n } else {\n currentKeys.delete(item.key);\n }\n onSelectionChange(currentKeys);\n }}\n >\n {content}\n </DropdownMenu.CheckboxItem>\n );\n }\n\n return (\n <DropdownMenu.RadioItem\n {...radixItemProps}\n value={item.key}\n key={item.key}\n aria-checked={selectedKeys.includes(item.key)}\n onSelect={onSelect}\n >\n {content}\n </DropdownMenu.RadioItem>\n );\n};\n"],"names":["ActionMenu","isOpen","actions","children","showCancel","cancelButtonText","selectionMode","selectedKeys","disabledKeys","onSelectionChange","onClose","title","testId","useLockBodyScroll","contentHeight","setContentHeight","useState","stackHistory","setStackHistory","currentActionStack","setCurrentActionStack","contentRef","useRef","menuRef","overlayRef","isClosing","handleClose","useIsClosing","currentActions","hasActions","hasContent","handleSubmenuOpen","key","action","prevStackHistory","prevStack","handleBack","previousStack","useEffect","jsx","ScreenOverlay","jsxs","DropdownMenu","open","Icon","Fragment","ActionMenuList","Button","ActionMenuItemMap","i","itemProps","ActionMenuItem","_a","value","item","isSubmenu","ref","isExternal","isUrlExternal","radixItemProps","onSelect","event","content","createElement","e","handleInternalNavigation","checked","currentKeys"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("../../node_modules/react/jsx-runtime.cjs.js");;/* empty css */const s=require("../../utils/string.cjs.js"),n={primary:"primary",secondary:"secondary",transparent:"transparent",success:"success",warning:"warning",danger:"danger"},i=({variant:e,children:r,...a})=>t.jsxRuntimeExports.jsx("div",{role:"status","aria-live":"polite","data-testid":a["data-testid"],className:s.csx("proton-Badge",e&&`proton-Badge--${e}`),children:r});exports.Badge=i;exports.BadgeVariants=n;
2
- //# sourceMappingURL=Badge.cjs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Badge.cjs.js","sources":["../../../src/components/Badge/Badge.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport { ReactNode } from \"react\";\r\nimport { csx } from \"../../utils\";\r\n\r\nimport \"./Badge.css\";\r\n\r\nexport type BadgeVariant =\r\n | \"primary\"\r\n | \"secondary\"\r\n | \"transparent\"\r\n | \"success\"\r\n | \"warning\"\r\n | \"danger\";\r\n\r\nexport const BadgeVariants: Record<BadgeVariant, BadgeVariant> = {\r\n primary: \"primary\",\r\n secondary: \"secondary\",\r\n transparent: \"transparent\",\r\n success: \"success\",\r\n warning: \"warning\",\r\n danger: \"danger\",\r\n};\r\n\r\nexport interface BadgeProps extends React.HTMLAttributes<HTMLDivElement> {\r\n /**\r\n * The content to display within the badge.\r\n */\r\n children: ReactNode;\r\n /**\r\n * The badge's visual aesthetic.\r\n * - type {@link BadgeVariant}\r\n */\r\n variant?: BadgeVariant;\r\n}\r\n\r\n/**\r\n * A badge component for displaying status, categories, or counts with various visual styles.\r\n *\r\n * API:\r\n * - {@link BadgeProps}\r\n * - extends {@link React.HTMLAttributes}\r\n */\r\nexport const Badge = ({ variant, children, ...props }: BadgeProps) => {\r\n return (\r\n <div\r\n role=\"status\"\r\n aria-live=\"polite\"\r\n data-testid={props[\"data-testid\"]}\r\n className={csx(\"proton-Badge\", variant && `proton-Badge--${variant}`)}\r\n >\r\n {children}\r\n </div>\r\n );\r\n};\r\n"],"names":["BadgeVariants","Badge","variant","children","props","jsx","csx"],"mappings":"0NAeaA,EAAoD,CAC/D,QAAS,UACT,UAAW,YACX,YAAa,cACb,QAAS,UACT,QAAS,UACT,OAAQ,QACV,EAqBaC,EAAQ,CAAC,CAAE,QAAAC,EAAS,SAAAC,EAAU,GAAGC,KAE1CC,EAAA,kBAAA,IAAC,MAAA,CACC,KAAK,SACL,YAAU,SACV,cAAaD,EAAM,aAAa,EAChC,UAAWE,EAAI,IAAA,eAAgBJ,GAAW,iBAAiBA,CAAO,EAAE,EAEnE,SAAAC,CAAA,CAAA"}
@@ -1,25 +0,0 @@
1
- import { j as t } from "../../node_modules/react/jsx-runtime.es.js";
2
- /* empty css */
3
- import { csx as e } from "../../utils/string.es.js";
4
- const d = {
5
- primary: "primary",
6
- secondary: "secondary",
7
- transparent: "transparent",
8
- success: "success",
9
- warning: "warning",
10
- danger: "danger"
11
- }, p = ({ variant: r, children: a, ...s }) => /* @__PURE__ */ t.jsx(
12
- "div",
13
- {
14
- role: "status",
15
- "aria-live": "polite",
16
- "data-testid": s["data-testid"],
17
- className: e("proton-Badge", r && `proton-Badge--${r}`),
18
- children: a
19
- }
20
- );
21
- export {
22
- p as Badge,
23
- d as BadgeVariants
24
- };
25
- //# sourceMappingURL=Badge.es.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Badge.es.js","sources":["../../../src/components/Badge/Badge.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport { ReactNode } from \"react\";\r\nimport { csx } from \"../../utils\";\r\n\r\nimport \"./Badge.css\";\r\n\r\nexport type BadgeVariant =\r\n | \"primary\"\r\n | \"secondary\"\r\n | \"transparent\"\r\n | \"success\"\r\n | \"warning\"\r\n | \"danger\";\r\n\r\nexport const BadgeVariants: Record<BadgeVariant, BadgeVariant> = {\r\n primary: \"primary\",\r\n secondary: \"secondary\",\r\n transparent: \"transparent\",\r\n success: \"success\",\r\n warning: \"warning\",\r\n danger: \"danger\",\r\n};\r\n\r\nexport interface BadgeProps extends React.HTMLAttributes<HTMLDivElement> {\r\n /**\r\n * The content to display within the badge.\r\n */\r\n children: ReactNode;\r\n /**\r\n * The badge's visual aesthetic.\r\n * - type {@link BadgeVariant}\r\n */\r\n variant?: BadgeVariant;\r\n}\r\n\r\n/**\r\n * A badge component for displaying status, categories, or counts with various visual styles.\r\n *\r\n * API:\r\n * - {@link BadgeProps}\r\n * - extends {@link React.HTMLAttributes}\r\n */\r\nexport const Badge = ({ variant, children, ...props }: BadgeProps) => {\r\n return (\r\n <div\r\n role=\"status\"\r\n aria-live=\"polite\"\r\n data-testid={props[\"data-testid\"]}\r\n className={csx(\"proton-Badge\", variant && `proton-Badge--${variant}`)}\r\n >\r\n {children}\r\n </div>\r\n );\r\n};\r\n"],"names":["BadgeVariants","Badge","variant","children","props","jsx","csx"],"mappings":";;;AAeO,MAAMA,IAAoD;AAAA,EAC/D,SAAS;AAAA,EACT,WAAW;AAAA,EACX,aAAa;AAAA,EACb,SAAS;AAAA,EACT,SAAS;AAAA,EACT,QAAQ;AACV,GAqBaC,IAAQ,CAAC,EAAE,SAAAC,GAAS,UAAAC,GAAU,GAAGC,QAE1CC,gBAAAA,EAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,MAAK;AAAA,IACL,aAAU;AAAA,IACV,eAAaD,EAAM,aAAa;AAAA,IAChC,WAAWE,EAAI,gBAAgBJ,KAAW,iBAAiBA,CAAO,EAAE;AAAA,IAEnE,UAAAC;AAAA,EAAA;AAAA;"}
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("../../node_modules/react/jsx-runtime.cjs.js"),o=require("react"),h=require("../Button/Button.cjs.js");;/* empty css */const a=require("../../utils/string.cjs.js"),d={success:n.jsxRuntimeExports.jsx("svg",{viewBox:"0 0 20 20",height:"18",width:"18",children:n.jsxRuntimeExports.jsx("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z"})}),warning:n.jsxRuntimeExports.jsx("svg",{viewBox:"0 0 56 56",height:"17",width:"17",children:n.jsxRuntimeExports.jsx("path",{d:"M9.59 50.207h36.82c3.516 0 5.719-2.531 5.719-5.719a5.56 5.56 0 0 0-.75-2.812l-18.445-33c-1.055-1.899-2.977-2.883-4.922-2.883c-1.922 0-3.89.984-4.946 2.883L4.645 41.699c-.516.89-.774 1.828-.774 2.79c0 3.187 2.227 5.718 5.719 5.718m18.422-16.055c-1.242 0-1.922-.703-1.969-1.968l-.328-11.578c-.047-1.266.937-2.204 2.273-2.204c1.313 0 2.344.961 2.297 2.227l-.351 11.555c-.047 1.289-.727 1.968-1.922 1.968m0 8.649c-1.36 0-2.625-1.078-2.625-2.532s1.242-2.53 2.625-2.53s2.625 1.054 2.625 2.53c0 1.477-1.266 2.532-2.625 2.532"})}),danger:n.jsxRuntimeExports.jsx("svg",{viewBox:"0 0 20 20",height:"18",width:"18",children:n.jsxRuntimeExports.jsx("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zM8.28 7.22a.75.75 0 00-1.06 1.06L8.94 10l-1.72 1.72a.75.75 0 101.06 1.06L10 11.06l1.72 1.72a.75.75 0 101.06-1.06L11.06 10l1.72-1.72a.75.75 0 00-1.06-1.06L10 8.94 8.28 7.22z"})})},R={default:"default",success:"success",warning:"warning",danger:"danger"},c=o.createContext(void 0),s=({variant:t="default",rounded:e=!0,icon:r=!1,compact:i=!0,children:m,"data-testid":j})=>n.jsxRuntimeExports.jsx(c.Provider,{value:t,children:n.jsxRuntimeExports.jsx("div",{role:"status","aria-live":"polite",className:a.csx("proton-Banner",`proton-Banner--${t}`,e&&"proton-Banner--rounded"),"data-testid":j,children:n.jsxRuntimeExports.jsxs("div",{className:a.csx("proton-Banner__wrapper",i&&"proton-Banner__wrapper--compact"),children:[n.jsxRuntimeExports.jsx(s.Icon,{icon:r}),n.jsxRuntimeExports.jsx("div",{className:"proton-Banner__content-wrapper",children:n.jsxRuntimeExports.jsx("div",{className:"proton-Banner__container",children:m})})]})})});s.displayName="Banner";const x=({children:t,"data-testid":e})=>{const r=o.useContext(c);if(!r)throw new Error("BannerTitle must be used within a Banner");return n.jsxRuntimeExports.jsx("h3",{className:a.csx("proton-Banner__title",`proton-Banner--${r}__title`),"data-testid":e,children:t})};x.displayName="Banner.Title";const u=({children:t,"data-testid":e})=>{const r=o.useContext(c);if(!r)throw new Error("BannerContent must be used within a Banner");return n.jsxRuntimeExports.jsx("p",{className:a.csx("proton-Banner__content",`proton-Banner--${r}__content`),"data-testid":e,children:t})};u.displayName="Banner.Content";function N(t,e){return o.isValidElement(t)?t:t?d[e]:null}const l=({icon:t,"data-testid":e})=>{const r=o.useContext(c);if(!r)throw new Error("BannerIcon must be used within a Banner");const i=N(t,r);return i?n.jsxRuntimeExports.jsx("div",{"aria-hidden":"true","data-testid":e,className:a.csx("proton-Banner__icon",`proton-Banner--${r}__icon`),children:i}):null};l.displayName="Banner.Icon";const p=({children:t,...e})=>n.jsxRuntimeExports.jsx(h.Button,{...e,children:t});p.displayName="Banner.Action";const B=({children:t})=>n.jsxRuntimeExports.jsx("div",{className:"proton-Banner__actions",children:t});B.displayName="Banner.Actions";s.Title=x;s.Content=u;s.Icon=l;s.Action=p;s.Actions=B;exports.BANNER_ICONS=d;exports.BANNER_VARIANTS=R;exports.Banner=s;
2
- //# sourceMappingURL=Banner.cjs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Banner.cjs.js","sources":["../../../src/components/Banner/Banner.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport { ReactNode, createContext, isValidElement, useContext } from \"react\";\r\nimport { csx } from \"../../utils\";\r\nimport { Button, type ButtonProps } from \"../Button/Button\";\r\n\r\nimport \"./Banner.css\";\r\n\r\n//TODO: move svgs to lib and use Icon component\r\nexport const BANNER_ICONS = {\r\n success: (\r\n <svg viewBox=\"0 0 20 20\" height=\"18\" width=\"18\">\r\n <path\r\n fillRule=\"evenodd\"\r\n d=\"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z\"\r\n ></path>\r\n </svg>\r\n ),\r\n warning: (\r\n <svg viewBox=\"0 0 56 56\" height=\"17\" width=\"17\">\r\n <path d=\"M9.59 50.207h36.82c3.516 0 5.719-2.531 5.719-5.719a5.56 5.56 0 0 0-.75-2.812l-18.445-33c-1.055-1.899-2.977-2.883-4.922-2.883c-1.922 0-3.89.984-4.946 2.883L4.645 41.699c-.516.89-.774 1.828-.774 2.79c0 3.187 2.227 5.718 5.719 5.718m18.422-16.055c-1.242 0-1.922-.703-1.969-1.968l-.328-11.578c-.047-1.266.937-2.204 2.273-2.204c1.313 0 2.344.961 2.297 2.227l-.351 11.555c-.047 1.289-.727 1.968-1.922 1.968m0 8.649c-1.36 0-2.625-1.078-2.625-2.532s1.242-2.53 2.625-2.53s2.625 1.054 2.625 2.53c0 1.477-1.266 2.532-2.625 2.532\" />\r\n </svg>\r\n ),\r\n danger: (\r\n <svg viewBox=\"0 0 20 20\" height=\"18\" width=\"18\">\r\n <path\r\n fillRule=\"evenodd\"\r\n d=\"M10 18a8 8 0 100-16 8 8 0 000 16zM8.28 7.22a.75.75 0 00-1.06 1.06L8.94 10l-1.72 1.72a.75.75 0 101.06 1.06L10 11.06l1.72 1.72a.75.75 0 101.06-1.06L11.06 10l1.72-1.72a.75.75 0 00-1.06-1.06L10 8.94 8.28 7.22z\"\r\n ></path>\r\n </svg>\r\n ),\r\n};\r\n\r\nexport const BANNER_VARIANTS = {\r\n default: \"default\",\r\n success: \"success\",\r\n warning: \"warning\",\r\n danger: \"danger\",\r\n} as const;\r\nexport type BannerVariant = \"default\" | \"success\" | \"warning\" | \"danger\";\r\n\r\nconst BannerContext = createContext<BannerVariant | undefined>(undefined);\r\n\r\ninterface BannerIconProps {\r\n /**\r\n * Optional custom icon or children for the icon area.\r\n */\r\n children?: ReactNode;\r\n /**\r\n * The icon to display in the banner.\r\n * Can be a boolean to conditionally show or hide, or a ReactNode to provide a custom icon.\r\n */\r\n icon?: boolean | ReactNode;\r\n /**\r\n * The data-testid to display within the banner.\r\n */\r\n \"data-testid\"?: string;\r\n}\r\n\r\ninterface BannerProps extends BannerIconProps {\r\n /**\r\n * Compact padding around the content of the banner.\r\n * @default true\r\n */\r\n compact?: boolean;\r\n /**\r\n * The content to display within the banner.\r\n */\r\n children: ReactNode;\r\n /**\r\n * The data-testid to display within the banner.\r\n */\r\n \"data-testid\"?: string;\r\n /**\r\n * Round the corners of the banner.\r\n * @default true\r\n */\r\n rounded?: boolean;\r\n /**\r\n * The banner's visual aesthetic.\r\n * - type {@link BannerVariant}\r\n */\r\n variant?: BannerVariant;\r\n}\r\n\r\n/**\r\n * A banner used to display a success, warning, or error message.\r\n *\r\n * API:\r\n * - {@link BannerProps}\r\n * - extends {@link BannerIconProps}\r\n */\r\nconst Banner = ({\r\n variant = \"default\",\r\n rounded = true,\r\n icon = false,\r\n compact = true,\r\n children,\r\n \"data-testid\": dataTestId,\r\n}: BannerProps) => {\r\n return (\r\n <BannerContext.Provider value={variant}>\r\n <div\r\n role=\"status\"\r\n aria-live=\"polite\"\r\n className={csx(\r\n \"proton-Banner\",\r\n `proton-Banner--${variant}`,\r\n rounded && \"proton-Banner--rounded\"\r\n )}\r\n data-testid={dataTestId}\r\n >\r\n <div\r\n className={csx(\r\n \"proton-Banner__wrapper\",\r\n compact && \"proton-Banner__wrapper--compact\"\r\n )}\r\n >\r\n <Banner.Icon icon={icon} />\r\n <div className=\"proton-Banner__content-wrapper\">\r\n <div className=\"proton-Banner__container\">{children}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </BannerContext.Provider>\r\n );\r\n};\r\n\r\nBanner.displayName = \"Banner\";\r\n\r\nconst BannerTitle = ({\r\n children,\r\n \"data-testid\": dataTestId,\r\n}: {\r\n children: ReactNode;\r\n \"data-testid\"?: string;\r\n}) => {\r\n const variant = useContext(BannerContext);\r\n if (!variant) throw new Error(\"BannerTitle must be used within a Banner\");\r\n\r\n return (\r\n <h3\r\n className={csx(\r\n \"proton-Banner__title\",\r\n `proton-Banner--${variant}__title`\r\n )}\r\n data-testid={dataTestId}\r\n >\r\n {children}\r\n </h3>\r\n );\r\n};\r\n\r\nBannerTitle.displayName = \"Banner.Title\";\r\n\r\nconst BannerContent = ({\r\n children,\r\n \"data-testid\": dataTestId,\r\n}: {\r\n children: ReactNode;\r\n \"data-testid\"?: string;\r\n}) => {\r\n const variant = useContext(BannerContext);\r\n if (!variant) throw new Error(\"BannerContent must be used within a Banner\");\r\n\r\n return (\r\n <p\r\n className={csx(\r\n \"proton-Banner__content\",\r\n `proton-Banner--${variant}__content`\r\n )}\r\n data-testid={dataTestId}\r\n >\r\n {children}\r\n </p>\r\n );\r\n};\r\n\r\nBannerContent.displayName = \"Banner.Content\";\r\n\r\nfunction getIconContent(icon: ReactNode, variant: BannerVariant) {\r\n if (isValidElement(icon)) return icon;\r\n if (icon) return BANNER_ICONS[variant];\r\n return null;\r\n}\r\n\r\nconst BannerIcon = ({ icon, \"data-testid\": dataTestId }: BannerIconProps) => {\r\n const variant = useContext(BannerContext);\r\n if (!variant) throw new Error(\"BannerIcon must be used within a Banner\");\r\n\r\n const iconContent = getIconContent(icon, variant);\r\n if (!iconContent) return null;\r\n\r\n return (\r\n <div\r\n aria-hidden=\"true\"\r\n data-testid={dataTestId}\r\n className={csx(\"proton-Banner__icon\", `proton-Banner--${variant}__icon`)}\r\n >\r\n {iconContent}\r\n </div>\r\n );\r\n};\r\n\r\nBannerIcon.displayName = \"Banner.Icon\";\r\n\r\nconst BannerAction = ({ children, ...buttonProps }: ButtonProps) => {\r\n return <Button {...buttonProps}>{children}</Button>;\r\n};\r\n\r\nBannerAction.displayName = \"Banner.Action\";\r\n\r\nconst BannerActions = ({ children }: { children: ReactNode }) => {\r\n return <div className=\"proton-Banner__actions\">{children}</div>;\r\n};\r\n\r\nBannerActions.displayName = \"Banner.Actions\";\r\n\r\n/**\r\n * Renders an h3 styled banner.\r\n */\r\nBanner.Title = BannerTitle;\r\n\r\n/**\r\n * Renders a p styled banner.\r\n */\r\nBanner.Content = BannerContent;\r\n\r\n/**\r\n * Renders an icon inline with the banner title.\r\n *\r\n * API:\r\n * - {@link BannerIconProps}\r\n */\r\nBanner.Icon = BannerIcon;\r\n\r\n/**\r\n * Renders a Proton Button.\r\n * - @prop buttonProps {@link ButtonProps}\r\n */\r\nBanner.Action = BannerAction;\r\n\r\n/**\r\n * Renders Proton Buttons in a responsive actions grid.\r\n */\r\nBanner.Actions = BannerActions;\r\n\r\nexport { Banner };\r\n"],"names":["BANNER_ICONS","jsx","BANNER_VARIANTS","BannerContext","createContext","Banner","variant","rounded","icon","compact","children","dataTestId","csx","jsxs","BannerTitle","useContext","BannerContent","getIconContent","isValidElement","BannerIcon","iconContent","BannerAction","buttonProps","Button","BannerActions"],"mappings":"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"}
@@ -1,131 +0,0 @@
1
- import { j as n } from "../../node_modules/react/jsx-runtime.es.js";
2
- import { createContext as x, useContext as c, isValidElement as _ } from "react";
3
- import { Button as w } from "../Button/Button.es.js";
4
- /* empty css */
5
- import { csx as o } from "../../utils/string.es.js";
6
- const v = {
7
- success: /* @__PURE__ */ n.jsx("svg", { viewBox: "0 0 20 20", height: "18", width: "18", children: /* @__PURE__ */ n.jsx(
8
- "path",
9
- {
10
- fillRule: "evenodd",
11
- d: "M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z"
12
- }
13
- ) }),
14
- warning: /* @__PURE__ */ n.jsx("svg", { viewBox: "0 0 56 56", height: "17", width: "17", children: /* @__PURE__ */ n.jsx("path", { d: "M9.59 50.207h36.82c3.516 0 5.719-2.531 5.719-5.719a5.56 5.56 0 0 0-.75-2.812l-18.445-33c-1.055-1.899-2.977-2.883-4.922-2.883c-1.922 0-3.89.984-4.946 2.883L4.645 41.699c-.516.89-.774 1.828-.774 2.79c0 3.187 2.227 5.718 5.719 5.718m18.422-16.055c-1.242 0-1.922-.703-1.969-1.968l-.328-11.578c-.047-1.266.937-2.204 2.273-2.204c1.313 0 2.344.961 2.297 2.227l-.351 11.555c-.047 1.289-.727 1.968-1.922 1.968m0 8.649c-1.36 0-2.625-1.078-2.625-2.532s1.242-2.53 2.625-2.53s2.625 1.054 2.625 2.53c0 1.477-1.266 2.532-2.625 2.532" }) }),
15
- danger: /* @__PURE__ */ n.jsx("svg", { viewBox: "0 0 20 20", height: "18", width: "18", children: /* @__PURE__ */ n.jsx(
16
- "path",
17
- {
18
- fillRule: "evenodd",
19
- d: "M10 18a8 8 0 100-16 8 8 0 000 16zM8.28 7.22a.75.75 0 00-1.06 1.06L8.94 10l-1.72 1.72a.75.75 0 101.06 1.06L10 11.06l1.72 1.72a.75.75 0 101.06-1.06L11.06 10l1.72-1.72a.75.75 0 00-1.06-1.06L10 8.94 8.28 7.22z"
20
- }
21
- ) })
22
- }, I = {
23
- default: "default",
24
- success: "success",
25
- warning: "warning",
26
- danger: "danger"
27
- }, i = x(void 0), a = ({
28
- variant: t = "default",
29
- rounded: e = !0,
30
- icon: r = !1,
31
- compact: s = !0,
32
- children: m,
33
- "data-testid": h
34
- }) => /* @__PURE__ */ n.jsx(i.Provider, { value: t, children: /* @__PURE__ */ n.jsx(
35
- "div",
36
- {
37
- role: "status",
38
- "aria-live": "polite",
39
- className: o(
40
- "proton-Banner",
41
- `proton-Banner--${t}`,
42
- e && "proton-Banner--rounded"
43
- ),
44
- "data-testid": h,
45
- children: /* @__PURE__ */ n.jsxs(
46
- "div",
47
- {
48
- className: o(
49
- "proton-Banner__wrapper",
50
- s && "proton-Banner__wrapper--compact"
51
- ),
52
- children: [
53
- /* @__PURE__ */ n.jsx(a.Icon, { icon: r }),
54
- /* @__PURE__ */ n.jsx("div", { className: "proton-Banner__content-wrapper", children: /* @__PURE__ */ n.jsx("div", { className: "proton-Banner__container", children: m }) })
55
- ]
56
- }
57
- )
58
- }
59
- ) });
60
- a.displayName = "Banner";
61
- const d = ({
62
- children: t,
63
- "data-testid": e
64
- }) => {
65
- const r = c(i);
66
- if (!r) throw new Error("BannerTitle must be used within a Banner");
67
- return /* @__PURE__ */ n.jsx(
68
- "h3",
69
- {
70
- className: o(
71
- "proton-Banner__title",
72
- `proton-Banner--${r}__title`
73
- ),
74
- "data-testid": e,
75
- children: t
76
- }
77
- );
78
- };
79
- d.displayName = "Banner.Title";
80
- const l = ({
81
- children: t,
82
- "data-testid": e
83
- }) => {
84
- const r = c(i);
85
- if (!r) throw new Error("BannerContent must be used within a Banner");
86
- return /* @__PURE__ */ n.jsx(
87
- "p",
88
- {
89
- className: o(
90
- "proton-Banner__content",
91
- `proton-Banner--${r}__content`
92
- ),
93
- "data-testid": e,
94
- children: t
95
- }
96
- );
97
- };
98
- l.displayName = "Banner.Content";
99
- function N(t, e) {
100
- return _(t) ? t : t ? v[e] : null;
101
- }
102
- const p = ({ icon: t, "data-testid": e }) => {
103
- const r = c(i);
104
- if (!r) throw new Error("BannerIcon must be used within a Banner");
105
- const s = N(t, r);
106
- return s ? /* @__PURE__ */ n.jsx(
107
- "div",
108
- {
109
- "aria-hidden": "true",
110
- "data-testid": e,
111
- className: o("proton-Banner__icon", `proton-Banner--${r}__icon`),
112
- children: s
113
- }
114
- ) : null;
115
- };
116
- p.displayName = "Banner.Icon";
117
- const B = ({ children: t, ...e }) => /* @__PURE__ */ n.jsx(w, { ...e, children: t });
118
- B.displayName = "Banner.Action";
119
- const u = ({ children: t }) => /* @__PURE__ */ n.jsx("div", { className: "proton-Banner__actions", children: t });
120
- u.displayName = "Banner.Actions";
121
- a.Title = d;
122
- a.Content = l;
123
- a.Icon = p;
124
- a.Action = B;
125
- a.Actions = u;
126
- export {
127
- v as BANNER_ICONS,
128
- I as BANNER_VARIANTS,
129
- a as Banner
130
- };
131
- //# sourceMappingURL=Banner.es.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Banner.es.js","sources":["../../../src/components/Banner/Banner.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport { ReactNode, createContext, isValidElement, useContext } from \"react\";\r\nimport { csx } from \"../../utils\";\r\nimport { Button, type ButtonProps } from \"../Button/Button\";\r\n\r\nimport \"./Banner.css\";\r\n\r\n//TODO: move svgs to lib and use Icon component\r\nexport const BANNER_ICONS = {\r\n success: (\r\n <svg viewBox=\"0 0 20 20\" height=\"18\" width=\"18\">\r\n <path\r\n fillRule=\"evenodd\"\r\n d=\"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z\"\r\n ></path>\r\n </svg>\r\n ),\r\n warning: (\r\n <svg viewBox=\"0 0 56 56\" height=\"17\" width=\"17\">\r\n <path d=\"M9.59 50.207h36.82c3.516 0 5.719-2.531 5.719-5.719a5.56 5.56 0 0 0-.75-2.812l-18.445-33c-1.055-1.899-2.977-2.883-4.922-2.883c-1.922 0-3.89.984-4.946 2.883L4.645 41.699c-.516.89-.774 1.828-.774 2.79c0 3.187 2.227 5.718 5.719 5.718m18.422-16.055c-1.242 0-1.922-.703-1.969-1.968l-.328-11.578c-.047-1.266.937-2.204 2.273-2.204c1.313 0 2.344.961 2.297 2.227l-.351 11.555c-.047 1.289-.727 1.968-1.922 1.968m0 8.649c-1.36 0-2.625-1.078-2.625-2.532s1.242-2.53 2.625-2.53s2.625 1.054 2.625 2.53c0 1.477-1.266 2.532-2.625 2.532\" />\r\n </svg>\r\n ),\r\n danger: (\r\n <svg viewBox=\"0 0 20 20\" height=\"18\" width=\"18\">\r\n <path\r\n fillRule=\"evenodd\"\r\n d=\"M10 18a8 8 0 100-16 8 8 0 000 16zM8.28 7.22a.75.75 0 00-1.06 1.06L8.94 10l-1.72 1.72a.75.75 0 101.06 1.06L10 11.06l1.72 1.72a.75.75 0 101.06-1.06L11.06 10l1.72-1.72a.75.75 0 00-1.06-1.06L10 8.94 8.28 7.22z\"\r\n ></path>\r\n </svg>\r\n ),\r\n};\r\n\r\nexport const BANNER_VARIANTS = {\r\n default: \"default\",\r\n success: \"success\",\r\n warning: \"warning\",\r\n danger: \"danger\",\r\n} as const;\r\nexport type BannerVariant = \"default\" | \"success\" | \"warning\" | \"danger\";\r\n\r\nconst BannerContext = createContext<BannerVariant | undefined>(undefined);\r\n\r\ninterface BannerIconProps {\r\n /**\r\n * Optional custom icon or children for the icon area.\r\n */\r\n children?: ReactNode;\r\n /**\r\n * The icon to display in the banner.\r\n * Can be a boolean to conditionally show or hide, or a ReactNode to provide a custom icon.\r\n */\r\n icon?: boolean | ReactNode;\r\n /**\r\n * The data-testid to display within the banner.\r\n */\r\n \"data-testid\"?: string;\r\n}\r\n\r\ninterface BannerProps extends BannerIconProps {\r\n /**\r\n * Compact padding around the content of the banner.\r\n * @default true\r\n */\r\n compact?: boolean;\r\n /**\r\n * The content to display within the banner.\r\n */\r\n children: ReactNode;\r\n /**\r\n * The data-testid to display within the banner.\r\n */\r\n \"data-testid\"?: string;\r\n /**\r\n * Round the corners of the banner.\r\n * @default true\r\n */\r\n rounded?: boolean;\r\n /**\r\n * The banner's visual aesthetic.\r\n * - type {@link BannerVariant}\r\n */\r\n variant?: BannerVariant;\r\n}\r\n\r\n/**\r\n * A banner used to display a success, warning, or error message.\r\n *\r\n * API:\r\n * - {@link BannerProps}\r\n * - extends {@link BannerIconProps}\r\n */\r\nconst Banner = ({\r\n variant = \"default\",\r\n rounded = true,\r\n icon = false,\r\n compact = true,\r\n children,\r\n \"data-testid\": dataTestId,\r\n}: BannerProps) => {\r\n return (\r\n <BannerContext.Provider value={variant}>\r\n <div\r\n role=\"status\"\r\n aria-live=\"polite\"\r\n className={csx(\r\n \"proton-Banner\",\r\n `proton-Banner--${variant}`,\r\n rounded && \"proton-Banner--rounded\"\r\n )}\r\n data-testid={dataTestId}\r\n >\r\n <div\r\n className={csx(\r\n \"proton-Banner__wrapper\",\r\n compact && \"proton-Banner__wrapper--compact\"\r\n )}\r\n >\r\n <Banner.Icon icon={icon} />\r\n <div className=\"proton-Banner__content-wrapper\">\r\n <div className=\"proton-Banner__container\">{children}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </BannerContext.Provider>\r\n );\r\n};\r\n\r\nBanner.displayName = \"Banner\";\r\n\r\nconst BannerTitle = ({\r\n children,\r\n \"data-testid\": dataTestId,\r\n}: {\r\n children: ReactNode;\r\n \"data-testid\"?: string;\r\n}) => {\r\n const variant = useContext(BannerContext);\r\n if (!variant) throw new Error(\"BannerTitle must be used within a Banner\");\r\n\r\n return (\r\n <h3\r\n className={csx(\r\n \"proton-Banner__title\",\r\n `proton-Banner--${variant}__title`\r\n )}\r\n data-testid={dataTestId}\r\n >\r\n {children}\r\n </h3>\r\n );\r\n};\r\n\r\nBannerTitle.displayName = \"Banner.Title\";\r\n\r\nconst BannerContent = ({\r\n children,\r\n \"data-testid\": dataTestId,\r\n}: {\r\n children: ReactNode;\r\n \"data-testid\"?: string;\r\n}) => {\r\n const variant = useContext(BannerContext);\r\n if (!variant) throw new Error(\"BannerContent must be used within a Banner\");\r\n\r\n return (\r\n <p\r\n className={csx(\r\n \"proton-Banner__content\",\r\n `proton-Banner--${variant}__content`\r\n )}\r\n data-testid={dataTestId}\r\n >\r\n {children}\r\n </p>\r\n );\r\n};\r\n\r\nBannerContent.displayName = \"Banner.Content\";\r\n\r\nfunction getIconContent(icon: ReactNode, variant: BannerVariant) {\r\n if (isValidElement(icon)) return icon;\r\n if (icon) return BANNER_ICONS[variant];\r\n return null;\r\n}\r\n\r\nconst BannerIcon = ({ icon, \"data-testid\": dataTestId }: BannerIconProps) => {\r\n const variant = useContext(BannerContext);\r\n if (!variant) throw new Error(\"BannerIcon must be used within a Banner\");\r\n\r\n const iconContent = getIconContent(icon, variant);\r\n if (!iconContent) return null;\r\n\r\n return (\r\n <div\r\n aria-hidden=\"true\"\r\n data-testid={dataTestId}\r\n className={csx(\"proton-Banner__icon\", `proton-Banner--${variant}__icon`)}\r\n >\r\n {iconContent}\r\n </div>\r\n );\r\n};\r\n\r\nBannerIcon.displayName = \"Banner.Icon\";\r\n\r\nconst BannerAction = ({ children, ...buttonProps }: ButtonProps) => {\r\n return <Button {...buttonProps}>{children}</Button>;\r\n};\r\n\r\nBannerAction.displayName = \"Banner.Action\";\r\n\r\nconst BannerActions = ({ children }: { children: ReactNode }) => {\r\n return <div className=\"proton-Banner__actions\">{children}</div>;\r\n};\r\n\r\nBannerActions.displayName = \"Banner.Actions\";\r\n\r\n/**\r\n * Renders an h3 styled banner.\r\n */\r\nBanner.Title = BannerTitle;\r\n\r\n/**\r\n * Renders a p styled banner.\r\n */\r\nBanner.Content = BannerContent;\r\n\r\n/**\r\n * Renders an icon inline with the banner title.\r\n *\r\n * API:\r\n * - {@link BannerIconProps}\r\n */\r\nBanner.Icon = BannerIcon;\r\n\r\n/**\r\n * Renders a Proton Button.\r\n * - @prop buttonProps {@link ButtonProps}\r\n */\r\nBanner.Action = BannerAction;\r\n\r\n/**\r\n * Renders Proton Buttons in a responsive actions grid.\r\n */\r\nBanner.Actions = BannerActions;\r\n\r\nexport { Banner };\r\n"],"names":["BANNER_ICONS","jsx","BANNER_VARIANTS","BannerContext","createContext","Banner","variant","rounded","icon","compact","children","dataTestId","csx","jsxs","BannerTitle","useContext","BannerContent","getIconContent","isValidElement","BannerIcon","iconContent","BannerAction","buttonProps","Button","BannerActions"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../../node_modules/react/jsx-runtime.cjs.js"),i=require("react"),f=require("../../utils/string.cjs.js"),g=require("../../utils/navigation.cjs.js");;/* empty css */const b={primary:"primary",secondary:"secondary",success:"success",danger:"danger",translucent:"translucent"},v={small:"small",medium:"medium",large:"large",xlarge:"xlarge","2xlarge":"2xlarge"},j=i.forwardRef(({variant:R="primary",size:c="medium",fullWidth:l=!1,icon:d,to:n,target:u,onPress:o,type:y="button",isDisabled:r,"data-testid":E,children:x},t)=>{const s=n&&g.isUrlExternal(n),m=i.useRef(null);i.useLayoutEffect(()=>{typeof t=="function"?t(m.current):t&&(t.current=m.current)},[t]);const p={className:f.csx("proton-Button",`proton-Button--${R}`,l&&"proton-Button--fullWidth",r&&"proton-Button--disabled",c&&`proton-Button--${c}`),"data-testid":E,...n&&{"aria-disabled":r},...r&&{tabIndex:-1}},B=e.jsxRuntimeExports.jsxs(e.jsxRuntimeExports.Fragment,{children:[d&&e.jsxRuntimeExports.jsx("div",{className:f.csx("proton-Button__icon-decorator",l&&"proton-Button__icon-decorator--fullWidth"),children:d}),x&&e.jsxRuntimeExports.jsx("div",{className:"proton-Button__text",children:x})]});return n?e.jsxRuntimeExports.jsx("a",{...p,href:n,target:u||(s?"_blank":void 0),rel:s||u==="_blank"?"noopener noreferrer":void 0,ref:t,onClick:a=>{if(r){a.preventDefault();return}!s&&!u&&g.handleInternalNavigation(a,n),o==null||o(a)},role:"button",children:B}):e.jsxRuntimeExports.jsx("button",{...p,type:y,disabled:r,ref:t,onClick:a=>{!r&&o&&o(a)},children:B})});j.displayName="ProtonUIButton";exports.Button=j;exports.ButtonSizes=v;exports.ButtonVariants=b;
2
- //# sourceMappingURL=Button.cjs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Button.cjs.js","sources":["../../../src/components/Button/Button.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport {\r\n forwardRef,\r\n MouseEvent,\r\n useLayoutEffect,\r\n useRef,\r\n} from \"react\";\r\n\r\nimport { csx } from \"../../utils/string\";\r\nimport {\r\n isUrlExternal,\r\n handleInternalNavigation,\r\n} from \"../../utils/navigation\";\r\nimport \"./Button.css\";\r\n\r\nexport type ButtonVariant =\r\n | \"primary\"\r\n | \"secondary\"\r\n | \"success\"\r\n | \"danger\"\r\n | \"translucent\";\r\n\r\nexport const ButtonVariants: Record<ButtonVariant, ButtonVariant> = {\r\n primary: \"primary\",\r\n secondary: \"secondary\",\r\n success: \"success\",\r\n danger: \"danger\",\r\n translucent: \"translucent\",\r\n};\r\n\r\nexport type ButtonSize = \"small\" | \"medium\" | \"large\" | \"xlarge\" | \"2xlarge\";\r\n\r\nexport const ButtonSizes: Record<ButtonSize, ButtonSize> = {\r\n small: \"small\",\r\n medium: \"medium\",\r\n large: \"large\",\r\n xlarge: \"xlarge\",\r\n \"2xlarge\": \"2xlarge\",\r\n};\r\n\r\nexport interface ButtonProps {\r\n /** The button's visual aesthetic\r\n * - type {@link ButtonVariant}\r\n */\r\n variant?: ButtonVariant;\r\n\r\n /** The size of the button\r\n * - type {@link ButtonSize}\r\n * @default \"medium\"\r\n */\r\n size?: ButtonSize;\r\n\r\n /** Should the button be full width?\r\n * @default false\r\n */\r\n fullWidth?: boolean;\r\n\r\n /** The prefix to display within the button */\r\n icon?: React.ReactNode;\r\n\r\n /** Should the button be non-interactive? */\r\n isDisabled?: boolean;\r\n\r\n /** The URL that the button should link to. Turns the element into an `a` tag. If the URL is external, you should pass the entire URL to the `to` prop (e.g. `https://example.com`). */\r\n to?: string;\r\n\r\n /** The target attribute for the link. Defaults to `_blank` if the URL is external. */\r\n target?: \"_blank\" | \"_self\" | \"_parent\" | \"_top\" | string;\r\n\r\n /** Called when the button is pressed (on release, not keydown) */\r\n onPress?: (e: MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => void;\r\n\r\n /** The type of button */\r\n type?: \"button\" | \"submit\" | \"reset\";\r\n\r\n /** The test ID for the button */\r\n \"data-testid\"?: string;\r\n\r\n /** The content to display within the button */\r\n children?: React.ReactNode;\r\n}\r\n\r\n/**\r\n * A customizable button component that can render as either a button or anchor element.\r\n *\r\n * API:\r\n * - {@link ButtonProps}\r\n */\r\nexport const Button = forwardRef<\r\n HTMLButtonElement | HTMLAnchorElement,\r\n ButtonProps\r\n>(\r\n (\r\n {\r\n variant = \"primary\",\r\n size = \"medium\",\r\n fullWidth = false,\r\n icon,\r\n to,\r\n target,\r\n onPress,\r\n type = \"button\",\r\n isDisabled,\r\n \"data-testid\": testId,\r\n children,\r\n }: ButtonProps,\r\n ref\r\n ) => {\r\n const isExternal = to && isUrlExternal(to);\r\n const buttonRef = useRef<HTMLButtonElement | HTMLAnchorElement>(null);\r\n\r\n useLayoutEffect(() => {\r\n if (typeof ref === \"function\") {\r\n ref(buttonRef.current);\r\n } else if (ref) {\r\n ref.current = buttonRef.current;\r\n }\r\n }, [ref]);\r\n\r\n const commonProps = {\r\n className: csx(\r\n \"proton-Button\",\r\n `proton-Button--${variant}`,\r\n fullWidth && \"proton-Button--fullWidth\",\r\n isDisabled && \"proton-Button--disabled\",\r\n size && `proton-Button--${size}`\r\n ),\r\n \"data-testid\": testId,\r\n ...(to && { \"aria-disabled\": isDisabled }),\r\n ...(isDisabled && { tabIndex: -1 }),\r\n };\r\n\r\n const content = (\r\n <>\r\n {icon && (\r\n <div\r\n className={csx(\r\n \"proton-Button__icon-decorator\",\r\n fullWidth && \"proton-Button__icon-decorator--fullWidth\"\r\n )}\r\n >\r\n {icon}\r\n </div>\r\n )}\r\n {children && <div className=\"proton-Button__text\">{children}</div>}\r\n </>\r\n );\r\n\r\n if (to) {\r\n return (\r\n <a\r\n {...commonProps}\r\n href={to}\r\n target={target || (isExternal ? \"_blank\" : undefined)}\r\n rel={\r\n isExternal || target === \"_blank\"\r\n ? \"noopener noreferrer\"\r\n : undefined\r\n }\r\n ref={ref as React.RefObject<HTMLAnchorElement>}\r\n onClick={(e) => {\r\n if (isDisabled) {\r\n e.preventDefault();\r\n return;\r\n }\r\n\r\n if (!isExternal && !target) {\r\n handleInternalNavigation(e, to);\r\n }\r\n\r\n onPress?.(e);\r\n }}\r\n role=\"button\"\r\n >\r\n {content}\r\n </a>\r\n );\r\n }\r\n\r\n return (\r\n <button\r\n {...commonProps}\r\n type={type}\r\n disabled={isDisabled}\r\n ref={ref as React.RefObject<HTMLButtonElement>}\r\n onClick={(e) => {\r\n if (!isDisabled && onPress) {\r\n onPress(e);\r\n }\r\n }}\r\n >\r\n {content}\r\n </button>\r\n );\r\n }\r\n);\r\n\r\nButton.displayName = \"ProtonUIButton\";\r\n"],"names":["ButtonVariants","ButtonSizes","Button","forwardRef","variant","size","fullWidth","icon","to","target","onPress","type","isDisabled","testId","children","ref","isExternal","isUrlExternal","buttonRef","useRef","useLayoutEffect","commonProps","csx","content","jsxs","Fragment","jsx","e","handleInternalNavigation"],"mappings":"mRAuBO,MAAMA,EAAuD,CAClE,QAAS,UACT,UAAW,YACX,QAAS,UACT,OAAQ,SACR,YAAa,aACf,EAIaC,EAA8C,CACzD,MAAO,QACP,OAAQ,SACR,MAAO,QACP,OAAQ,SACR,UAAW,SACb,EAkDaC,EAASC,EAAA,WAIpB,CACE,CACE,QAAAC,EAAU,UACV,KAAAC,EAAO,SACP,UAAAC,EAAY,GACZ,KAAAC,EACA,GAAAC,EACA,OAAAC,EACA,QAAAC,EACA,KAAAC,EAAO,SACP,WAAAC,EACA,cAAeC,EACf,SAAAC,GAEFC,IACG,CACG,MAAAC,EAAaR,GAAMS,EAAA,cAAcT,CAAE,EACnCU,EAAYC,SAA8C,IAAI,EAEpEC,EAAAA,gBAAgB,IAAM,CAChB,OAAOL,GAAQ,WACjBA,EAAIG,EAAU,OAAO,EACZH,IACTA,EAAI,QAAUG,EAAU,QAC1B,EACC,CAACH,CAAG,CAAC,EAER,MAAMM,EAAc,CAClB,UAAWC,EAAA,IACT,gBACA,kBAAkBlB,CAAO,GACzBE,GAAa,2BACbM,GAAc,0BACdP,GAAQ,kBAAkBA,CAAI,EAChC,EACA,cAAeQ,EACf,GAAIL,GAAM,CAAE,gBAAiBI,CAAW,EACxC,GAAIA,GAAc,CAAE,SAAU,EAAG,CAAA,EAG7BW,EAEDC,EAAAA,kBAAAA,KAAAC,EAAA,kBAAA,SAAA,CAAA,SAAA,CACClB,GAAAmB,EAAA,kBAAA,IAAC,MAAA,CACC,UAAWJ,EAAA,IACT,gCACAhB,GAAa,0CACf,EAEC,SAAAC,CAAA,CACH,EAEDO,GAAYY,EAAA,kBAAA,IAAC,MAAI,CAAA,UAAU,sBAAuB,SAAAZ,EAAS,CAC9D,CAAA,CAAA,EAGF,OAAIN,EAEAkB,EAAA,kBAAA,IAAC,IAAA,CACE,GAAGL,EACJ,KAAMb,EACN,OAAQC,IAAWO,EAAa,SAAW,QAC3C,IACEA,GAAcP,IAAW,SACrB,sBACA,OAEN,IAAAM,EACA,QAAUY,GAAM,CACd,GAAIf,EAAY,CACde,EAAE,eAAe,EACjB,MACF,CAEI,CAACX,GAAc,CAACP,GAClBmB,2BAAyBD,EAAGnB,CAAE,EAGhCE,GAAA,MAAAA,EAAUiB,EACZ,EACA,KAAK,SAEJ,SAAAJ,CAAA,CAAA,EAMLG,EAAA,kBAAA,IAAC,SAAA,CACE,GAAGL,EACJ,KAAAV,EACA,SAAUC,EACV,IAAAG,EACA,QAAUY,GAAM,CACV,CAACf,GAAcF,GACjBA,EAAQiB,CAAC,CAEb,EAEC,SAAAJ,CAAA,CAAA,CAGP,CACF,EAEArB,EAAO,YAAc"}