@protonradio/proton-ui 0.11.5 → 0.11.7

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 (506) hide show
  1. package/dist/_virtual/jsx-runtime.cjs.js +2 -0
  2. package/dist/_virtual/jsx-runtime.cjs.js.map +1 -0
  3. package/dist/_virtual/jsx-runtime.es.js +5 -0
  4. package/dist/_virtual/jsx-runtime.es.js.map +1 -0
  5. package/dist/_virtual/react-jsx-runtime.development.cjs.js +2 -0
  6. package/dist/_virtual/react-jsx-runtime.development.cjs.js.map +1 -0
  7. package/dist/_virtual/react-jsx-runtime.development.es.js +5 -0
  8. package/dist/_virtual/react-jsx-runtime.development.es.js.map +1 -0
  9. package/dist/_virtual/react-jsx-runtime.production.min.cjs.js +2 -0
  10. package/dist/_virtual/react-jsx-runtime.production.min.cjs.js.map +1 -0
  11. package/dist/_virtual/react-jsx-runtime.production.min.es.js +5 -0
  12. package/dist/_virtual/react-jsx-runtime.production.min.es.js.map +1 -0
  13. package/dist/assets/svg/icons.svg.cjs.js +2 -0
  14. package/dist/assets/svg/icons.svg.cjs.js.map +1 -0
  15. package/dist/assets/svg/icons.svg.es.js +5 -0
  16. package/dist/assets/svg/icons.svg.es.js.map +1 -0
  17. package/dist/components/ActionMenu/ActionMenu.cjs.js +2 -0
  18. package/dist/components/ActionMenu/ActionMenu.cjs.js.map +1 -0
  19. package/dist/components/ActionMenu/ActionMenu.es.js +262 -0
  20. package/dist/components/ActionMenu/ActionMenu.es.js.map +1 -0
  21. package/dist/components/Badge/Badge.cjs.js +2 -0
  22. package/dist/components/Badge/Badge.cjs.js.map +1 -0
  23. package/dist/components/Badge/Badge.es.js +25 -0
  24. package/dist/components/Badge/Badge.es.js.map +1 -0
  25. package/dist/components/Banner/Banner.cjs.js +2 -0
  26. package/dist/components/Banner/Banner.cjs.js.map +1 -0
  27. package/dist/components/Banner/Banner.es.js +131 -0
  28. package/dist/components/Banner/Banner.es.js.map +1 -0
  29. package/dist/components/Button/Button.cjs.js +2 -0
  30. package/dist/components/Button/Button.cjs.js.map +1 -0
  31. package/dist/components/Button/Button.es.js +99 -0
  32. package/dist/components/Button/Button.es.js.map +1 -0
  33. package/dist/components/ButtonGroup/ButtonGroup.cjs.js +2 -0
  34. package/dist/components/ButtonGroup/ButtonGroup.cjs.js.map +1 -0
  35. package/dist/components/ButtonGroup/ButtonGroup.es.js +51 -0
  36. package/dist/components/ButtonGroup/ButtonGroup.es.js.map +1 -0
  37. package/dist/components/ButtonWithSelect/ButtonWithSelect.cjs.js +2 -0
  38. package/dist/components/ButtonWithSelect/ButtonWithSelect.cjs.js.map +1 -0
  39. package/dist/components/ButtonWithSelect/ButtonWithSelect.es.js +80 -0
  40. package/dist/components/ButtonWithSelect/ButtonWithSelect.es.js.map +1 -0
  41. package/dist/components/DataTable/DataTable.cjs.js +2 -0
  42. package/dist/components/DataTable/DataTable.cjs.js.map +1 -0
  43. package/dist/components/DataTable/DataTable.es.js +137 -0
  44. package/dist/components/DataTable/DataTable.es.js.map +1 -0
  45. package/dist/components/Dialog/Dialog.cjs.js +2 -0
  46. package/dist/components/Dialog/Dialog.cjs.js.map +1 -0
  47. package/dist/components/Dialog/Dialog.es.js +15 -0
  48. package/dist/components/Dialog/Dialog.es.js.map +1 -0
  49. package/dist/components/Elevation/Elevation.cjs.js +2 -0
  50. package/dist/components/Elevation/Elevation.cjs.js.map +1 -0
  51. package/dist/components/Elevation/Elevation.es.js +33 -0
  52. package/dist/components/Elevation/Elevation.es.js.map +1 -0
  53. package/dist/components/Icon/Icon.cjs.js +2 -0
  54. package/dist/components/Icon/Icon.cjs.js.map +1 -0
  55. package/dist/components/Icon/Icon.es.js +42 -0
  56. package/dist/components/Icon/Icon.es.js.map +1 -0
  57. package/dist/components/ImageBackground/ImageBackground.cjs.js +2 -0
  58. package/dist/components/ImageBackground/ImageBackground.cjs.js.map +1 -0
  59. package/dist/components/ImageBackground/ImageBackground.es.js +55 -0
  60. package/dist/components/ImageBackground/ImageBackground.es.js.map +1 -0
  61. package/dist/components/Input/BaseInput/Input.cjs.js +2 -0
  62. package/dist/components/Input/BaseInput/Input.cjs.js.map +1 -0
  63. package/dist/components/Input/BaseInput/Input.es.js +182 -0
  64. package/dist/components/Input/BaseInput/Input.es.js.map +1 -0
  65. package/dist/components/Input/CopyInput/CopyInput.cjs.js +2 -0
  66. package/dist/components/Input/CopyInput/CopyInput.cjs.js.map +1 -0
  67. package/dist/components/Input/CopyInput/CopyInput.es.js +83 -0
  68. package/dist/components/Input/CopyInput/CopyInput.es.js.map +1 -0
  69. package/dist/components/Input/SearchInput/SearchInput.cjs.js +2 -0
  70. package/dist/components/Input/SearchInput/SearchInput.cjs.js.map +1 -0
  71. package/dist/components/Input/SearchInput/SearchInput.es.js +118 -0
  72. package/dist/components/Input/SearchInput/SearchInput.es.js.map +1 -0
  73. package/dist/components/Menu/MenuTrigger.cjs.js +2 -0
  74. package/dist/components/Menu/MenuTrigger.cjs.js.map +1 -0
  75. package/dist/components/Menu/MenuTrigger.es.js +89 -0
  76. package/dist/components/Menu/MenuTrigger.es.js.map +1 -0
  77. package/dist/components/Menu/PopoverMenu.cjs.js +2 -0
  78. package/dist/components/Menu/PopoverMenu.cjs.js.map +1 -0
  79. package/dist/components/Menu/PopoverMenu.es.js +122 -0
  80. package/dist/components/Menu/PopoverMenu.es.js.map +1 -0
  81. package/dist/components/Modal/Modal.cjs.js +2 -0
  82. package/dist/components/Modal/Modal.cjs.js.map +1 -0
  83. package/dist/components/Modal/Modal.es.js +122 -0
  84. package/dist/components/Modal/Modal.es.js.map +1 -0
  85. package/dist/components/Popover/Popover.cjs.js +2 -0
  86. package/dist/components/Popover/Popover.cjs.js.map +1 -0
  87. package/dist/components/Popover/Popover.es.js +54 -0
  88. package/dist/components/Popover/Popover.es.js.map +1 -0
  89. package/dist/components/ScreenOverlay/ScreenOverlay.cjs.js +2 -0
  90. package/dist/components/ScreenOverlay/ScreenOverlay.cjs.js.map +1 -0
  91. package/dist/components/ScreenOverlay/ScreenOverlay.es.js +44 -0
  92. package/dist/components/ScreenOverlay/ScreenOverlay.es.js.map +1 -0
  93. package/dist/components/Select/Select.cjs.js +2 -0
  94. package/dist/components/Select/Select.cjs.js.map +1 -0
  95. package/dist/components/Select/Select.es.js +224 -0
  96. package/dist/components/Select/Select.es.js.map +1 -0
  97. package/dist/components/Switch/Switch.cjs.js +2 -0
  98. package/dist/components/Switch/Switch.cjs.js.map +1 -0
  99. package/dist/components/Switch/Switch.es.js +40 -0
  100. package/dist/components/Switch/Switch.es.js.map +1 -0
  101. package/dist/components/Table/Collection/CompoundComponents.cjs.js +2 -0
  102. package/dist/components/Table/Collection/CompoundComponents.cjs.js.map +1 -0
  103. package/dist/components/Table/Collection/CompoundComponents.es.js +9 -0
  104. package/dist/components/Table/Collection/CompoundComponents.es.js.map +1 -0
  105. package/dist/components/Table/Collection/collectionParser.cjs.js +2 -0
  106. package/dist/components/Table/Collection/collectionParser.cjs.js.map +1 -0
  107. package/dist/components/Table/Collection/collectionParser.es.js +54 -0
  108. package/dist/components/Table/Collection/collectionParser.es.js.map +1 -0
  109. package/dist/components/Table/Collection/useTableCollection.cjs.js +2 -0
  110. package/dist/components/Table/Collection/useTableCollection.cjs.js.map +1 -0
  111. package/dist/components/Table/Collection/useTableCollection.es.js +59 -0
  112. package/dist/components/Table/Collection/useTableCollection.es.js.map +1 -0
  113. package/dist/components/Table/Table.cjs.js +2 -0
  114. package/dist/components/Table/Table.cjs.js.map +1 -0
  115. package/dist/components/Table/Table.es.js +89 -0
  116. package/dist/components/Table/Table.es.js.map +1 -0
  117. package/dist/components/Text/TextEllipsis/TextEllipsis.cjs.js +2 -0
  118. package/dist/components/Text/TextEllipsis/TextEllipsis.cjs.js.map +1 -0
  119. package/dist/components/Text/TextEllipsis/TextEllipsis.es.js +30 -0
  120. package/dist/components/Text/TextEllipsis/TextEllipsis.es.js.map +1 -0
  121. package/dist/components/Text/TextEmphasis/TextEmphasis.cjs.js +2 -0
  122. package/dist/components/Text/TextEmphasis/TextEmphasis.cjs.js.map +1 -0
  123. package/dist/components/Text/TextEmphasis/TextEmphasis.es.js +54 -0
  124. package/dist/components/Text/TextEmphasis/TextEmphasis.es.js.map +1 -0
  125. package/dist/components/ThemeProvider.cjs.js +2 -0
  126. package/dist/components/ThemeProvider.cjs.js.map +1 -0
  127. package/dist/components/ThemeProvider.es.js +43 -0
  128. package/dist/components/ThemeProvider.es.js.map +1 -0
  129. package/dist/components/Tombstone/Tombstone.cjs.js +2 -0
  130. package/dist/components/Tombstone/Tombstone.cjs.js.map +1 -0
  131. package/dist/components/Tombstone/Tombstone.es.js +35 -0
  132. package/dist/components/Tombstone/Tombstone.es.js.map +1 -0
  133. package/dist/components/Tooltip/Tooltip.cjs.js +2 -0
  134. package/dist/components/Tooltip/Tooltip.cjs.js.map +1 -0
  135. package/dist/components/Tooltip/Tooltip.es.js +78 -0
  136. package/dist/components/Tooltip/Tooltip.es.js.map +1 -0
  137. package/dist/components/Waveform/Waveform.cjs.js +2 -0
  138. package/dist/components/Waveform/Waveform.cjs.js.map +1 -0
  139. package/dist/components/Waveform/Waveform.es.js +163 -0
  140. package/dist/components/Waveform/Waveform.es.js.map +1 -0
  141. package/dist/components/Waveform/WaveformBar.cjs.js +2 -0
  142. package/dist/components/Waveform/WaveformBar.cjs.js.map +1 -0
  143. package/dist/components/Waveform/WaveformBar.es.js +74 -0
  144. package/dist/components/Waveform/WaveformBar.es.js.map +1 -0
  145. package/dist/constants/breakpoint.cjs.js +2 -0
  146. package/dist/constants/breakpoint.cjs.js.map +1 -0
  147. package/dist/{breakpoint-9y1_8U_b.mjs → constants/breakpoint.es.js} +2 -2
  148. package/dist/constants/breakpoint.es.js.map +1 -0
  149. package/dist/constants/placement.cjs.js +2 -0
  150. package/dist/constants/placement.cjs.js.map +1 -0
  151. package/dist/constants/placement.es.js +28 -0
  152. package/dist/constants/placement.es.js.map +1 -0
  153. package/dist/constants.cjs.js +1 -1
  154. package/dist/constants.cjs.js.map +1 -1
  155. package/dist/constants.es.js +3 -26
  156. package/dist/constants.es.js.map +1 -1
  157. package/dist/dark.cjs.js +2 -0
  158. package/dist/dark.cjs.js.map +1 -0
  159. package/dist/dark.es.js +11 -0
  160. package/dist/dark.es.js.map +1 -0
  161. package/dist/design/colors.cjs.js +2 -0
  162. package/dist/design/colors.cjs.js.map +1 -0
  163. package/dist/{colors-CWaj9dFz.mjs → design/colors.es.js} +7 -7
  164. package/dist/design/colors.es.js.map +1 -0
  165. package/dist/design/darkTheme/colors.cjs.js +2 -0
  166. package/dist/{colors-Ceyo4oCJ.mjs.map → design/darkTheme/colors.cjs.js.map} +1 -1
  167. package/dist/{colors-Ceyo4oCJ.mjs → design/darkTheme/colors.es.js} +13 -13
  168. package/dist/{colors-CebzFjpe.js.map → design/darkTheme/colors.es.js.map} +1 -1
  169. package/dist/design/darkTheme/stylesheet.cjs.js +2 -0
  170. package/dist/design/darkTheme/stylesheet.cjs.js.map +1 -0
  171. package/dist/{theme/dark.es.js → design/darkTheme/stylesheet.es.js} +9 -15
  172. package/dist/design/darkTheme/stylesheet.es.js.map +1 -0
  173. package/dist/design/generateStylesheet.cjs.js +2 -0
  174. package/dist/design/generateStylesheet.cjs.js.map +1 -0
  175. package/dist/design/generateStylesheet.es.js +26 -0
  176. package/dist/design/generateStylesheet.es.js.map +1 -0
  177. package/dist/design/lightTheme/colors.cjs.js +2 -0
  178. package/dist/{colors-DMkDnu4U.mjs.map → design/lightTheme/colors.cjs.js.map} +1 -1
  179. package/dist/{colors-DMkDnu4U.mjs → design/lightTheme/colors.es.js} +11 -11
  180. package/dist/{colors-DL1dYffC.js.map → design/lightTheme/colors.es.js.map} +1 -1
  181. package/dist/design/lightTheme/stylesheet.cjs.js +2 -0
  182. package/dist/design/lightTheme/stylesheet.cjs.js.map +1 -0
  183. package/dist/{theme/light.es.js → design/lightTheme/stylesheet.es.js} +10 -16
  184. package/dist/design/lightTheme/stylesheet.es.js.map +1 -0
  185. package/dist/design/theme.cjs.js +2 -0
  186. package/dist/design/theme.cjs.js.map +1 -0
  187. package/dist/design/theme.es.js +12 -0
  188. package/dist/design/theme.es.js.map +1 -0
  189. package/dist/hooks/useBreakpoint.cjs.js +2 -0
  190. package/dist/hooks/useBreakpoint.cjs.js.map +1 -0
  191. package/dist/hooks/useBreakpoint.es.js +17 -0
  192. package/dist/hooks/useBreakpoint.es.js.map +1 -0
  193. package/dist/hooks/useIsClosing.cjs.js +2 -0
  194. package/dist/hooks/useIsClosing.cjs.js.map +1 -0
  195. package/dist/hooks/useIsClosing.es.js +30 -0
  196. package/dist/hooks/useIsClosing.es.js.map +1 -0
  197. package/dist/hooks/useLockBodyScroll.cjs.js +2 -0
  198. package/dist/hooks/useLockBodyScroll.cjs.js.map +1 -0
  199. package/dist/hooks/useLockBodyScroll.es.js +14 -0
  200. package/dist/hooks/useLockBodyScroll.es.js.map +1 -0
  201. package/dist/hooks/usePalette.cjs.js +2 -0
  202. package/dist/hooks/usePalette.cjs.js.map +1 -0
  203. package/dist/hooks/usePalette.es.js +37 -0
  204. package/dist/hooks/usePalette.es.js.map +1 -0
  205. package/dist/hooks.cjs.js +1 -1
  206. package/dist/hooks.cjs.js.map +1 -1
  207. package/dist/hooks.es.js +8 -37
  208. package/dist/hooks.es.js.map +1 -1
  209. package/dist/index.cjs.js +1 -17
  210. package/dist/index.cjs.js.map +1 -1
  211. package/dist/index.d.ts +71 -105
  212. package/dist/index.es.js +60 -8700
  213. package/dist/index.es.js.map +1 -1
  214. package/dist/light.cjs.js +2 -0
  215. package/dist/light.cjs.js.map +1 -0
  216. package/dist/light.es.js +11 -0
  217. package/dist/light.es.js.map +1 -0
  218. package/dist/node_modules/@react-aria/button/dist/useButton.cjs.js +2 -0
  219. package/dist/node_modules/@react-aria/button/dist/useButton.cjs.js.map +1 -0
  220. package/dist/node_modules/@react-aria/button/dist/useButton.es.js +47 -0
  221. package/dist/node_modules/@react-aria/button/dist/useButton.es.js.map +1 -0
  222. package/dist/node_modules/@react-aria/dialog/dist/useDialog.cjs.js +2 -0
  223. package/dist/node_modules/@react-aria/dialog/dist/useDialog.cjs.js.map +1 -0
  224. package/dist/node_modules/@react-aria/dialog/dist/useDialog.es.js +44 -0
  225. package/dist/node_modules/@react-aria/dialog/dist/useDialog.es.js.map +1 -0
  226. package/dist/node_modules/@react-aria/focus/dist/FocusScope.cjs.js +2 -0
  227. package/dist/node_modules/@react-aria/focus/dist/FocusScope.cjs.js.map +1 -0
  228. package/dist/node_modules/@react-aria/focus/dist/FocusScope.es.js +423 -0
  229. package/dist/node_modules/@react-aria/focus/dist/FocusScope.es.js.map +1 -0
  230. package/dist/node_modules/@react-aria/focus/dist/isElementVisible.cjs.js +2 -0
  231. package/dist/node_modules/@react-aria/focus/dist/isElementVisible.cjs.js.map +1 -0
  232. package/dist/node_modules/@react-aria/focus/dist/isElementVisible.es.js +23 -0
  233. package/dist/node_modules/@react-aria/focus/dist/isElementVisible.es.js.map +1 -0
  234. package/dist/node_modules/@react-aria/form/dist/useFormValidation.cjs.js +2 -0
  235. package/dist/node_modules/@react-aria/form/dist/useFormValidation.cjs.js.map +1 -0
  236. package/dist/node_modules/@react-aria/form/dist/useFormValidation.es.js +76 -0
  237. package/dist/node_modules/@react-aria/form/dist/useFormValidation.es.js.map +1 -0
  238. package/dist/node_modules/@react-aria/i18n/dist/context.cjs.js +2 -0
  239. package/dist/node_modules/@react-aria/i18n/dist/context.cjs.js.map +1 -0
  240. package/dist/node_modules/@react-aria/i18n/dist/context.es.js +11 -0
  241. package/dist/node_modules/@react-aria/i18n/dist/context.es.js.map +1 -0
  242. package/dist/node_modules/@react-aria/i18n/dist/useDefaultLocale.cjs.js +2 -0
  243. package/dist/node_modules/@react-aria/i18n/dist/useDefaultLocale.cjs.js.map +1 -0
  244. package/dist/node_modules/@react-aria/i18n/dist/useDefaultLocale.es.js +30 -0
  245. package/dist/node_modules/@react-aria/i18n/dist/useDefaultLocale.es.js.map +1 -0
  246. package/dist/node_modules/@react-aria/i18n/dist/utils.cjs.js +2 -0
  247. package/dist/node_modules/@react-aria/i18n/dist/utils.cjs.js.map +1 -0
  248. package/dist/node_modules/@react-aria/i18n/dist/utils.es.js +45 -0
  249. package/dist/node_modules/@react-aria/i18n/dist/utils.es.js.map +1 -0
  250. package/dist/node_modules/@react-aria/interactions/dist/context.cjs.js +2 -0
  251. package/dist/node_modules/@react-aria/interactions/dist/context.cjs.js.map +1 -0
  252. package/dist/node_modules/@react-aria/interactions/dist/context.es.js +10 -0
  253. package/dist/node_modules/@react-aria/interactions/dist/context.es.js.map +1 -0
  254. package/dist/node_modules/@react-aria/interactions/dist/createEventHandler.cjs.js +2 -0
  255. package/dist/node_modules/@react-aria/interactions/dist/createEventHandler.cjs.js.map +1 -0
  256. package/dist/node_modules/@react-aria/interactions/dist/createEventHandler.es.js +29 -0
  257. package/dist/node_modules/@react-aria/interactions/dist/createEventHandler.es.js.map +1 -0
  258. package/dist/node_modules/@react-aria/interactions/dist/focusSafely.cjs.js +2 -0
  259. package/dist/node_modules/@react-aria/interactions/dist/focusSafely.cjs.js.map +1 -0
  260. package/dist/node_modules/@react-aria/interactions/dist/focusSafely.es.js +15 -0
  261. package/dist/node_modules/@react-aria/interactions/dist/focusSafely.es.js.map +1 -0
  262. package/dist/node_modules/@react-aria/interactions/dist/textSelection.cjs.js +2 -0
  263. package/dist/node_modules/@react-aria/interactions/dist/textSelection.cjs.js.map +1 -0
  264. package/dist/node_modules/@react-aria/interactions/dist/textSelection.es.js +35 -0
  265. package/dist/node_modules/@react-aria/interactions/dist/textSelection.es.js.map +1 -0
  266. package/dist/node_modules/@react-aria/interactions/dist/useFocus.cjs.js +2 -0
  267. package/dist/node_modules/@react-aria/interactions/dist/useFocus.cjs.js.map +1 -0
  268. package/dist/node_modules/@react-aria/interactions/dist/useFocus.es.js +30 -0
  269. package/dist/node_modules/@react-aria/interactions/dist/useFocus.es.js.map +1 -0
  270. package/dist/node_modules/@react-aria/interactions/dist/useFocusVisible.cjs.js +2 -0
  271. package/dist/node_modules/@react-aria/interactions/dist/useFocusVisible.cjs.js.map +1 -0
  272. package/dist/node_modules/@react-aria/interactions/dist/useFocusVisible.es.js +63 -0
  273. package/dist/node_modules/@react-aria/interactions/dist/useFocusVisible.es.js.map +1 -0
  274. package/dist/node_modules/@react-aria/interactions/dist/useFocusWithin.cjs.js +2 -0
  275. package/dist/node_modules/@react-aria/interactions/dist/useFocusWithin.cjs.js.map +1 -0
  276. package/dist/node_modules/@react-aria/interactions/dist/useFocusWithin.es.js +56 -0
  277. package/dist/node_modules/@react-aria/interactions/dist/useFocusWithin.es.js.map +1 -0
  278. package/dist/node_modules/@react-aria/interactions/dist/useFocusable.cjs.js +2 -0
  279. package/dist/node_modules/@react-aria/interactions/dist/useFocusable.cjs.js.map +1 -0
  280. package/dist/node_modules/@react-aria/interactions/dist/useFocusable.es.js +42 -0
  281. package/dist/node_modules/@react-aria/interactions/dist/useFocusable.es.js.map +1 -0
  282. package/dist/node_modules/@react-aria/interactions/dist/useInteractOutside.cjs.js +2 -0
  283. package/dist/node_modules/@react-aria/interactions/dist/useInteractOutside.cjs.js.map +1 -0
  284. package/dist/node_modules/@react-aria/interactions/dist/useInteractOutside.es.js +51 -0
  285. package/dist/node_modules/@react-aria/interactions/dist/useInteractOutside.es.js.map +1 -0
  286. package/dist/node_modules/@react-aria/interactions/dist/useKeyboard.cjs.js +2 -0
  287. package/dist/node_modules/@react-aria/interactions/dist/useKeyboard.cjs.js.map +1 -0
  288. package/dist/node_modules/@react-aria/interactions/dist/useKeyboard.es.js +13 -0
  289. package/dist/node_modules/@react-aria/interactions/dist/useKeyboard.es.js.map +1 -0
  290. package/dist/node_modules/@react-aria/interactions/dist/usePress.cjs.js +2 -0
  291. package/dist/node_modules/@react-aria/interactions/dist/usePress.cjs.js.map +1 -0
  292. package/dist/node_modules/@react-aria/interactions/dist/usePress.es.js +375 -0
  293. package/dist/node_modules/@react-aria/interactions/dist/usePress.es.js.map +1 -0
  294. package/dist/node_modules/@react-aria/interactions/dist/utils.cjs.js +2 -0
  295. package/dist/node_modules/@react-aria/interactions/dist/utils.cjs.js.map +1 -0
  296. package/dist/node_modules/@react-aria/interactions/dist/utils.es.js +92 -0
  297. package/dist/node_modules/@react-aria/interactions/dist/utils.es.js.map +1 -0
  298. package/dist/node_modules/@react-aria/label/dist/useField.cjs.js +2 -0
  299. package/dist/node_modules/@react-aria/label/dist/useField.cjs.js.map +1 -0
  300. package/dist/node_modules/@react-aria/label/dist/useField.es.js +36 -0
  301. package/dist/node_modules/@react-aria/label/dist/useField.es.js.map +1 -0
  302. package/dist/node_modules/@react-aria/label/dist/useLabel.cjs.js +2 -0
  303. package/dist/node_modules/@react-aria/label/dist/useLabel.cjs.js.map +1 -0
  304. package/dist/node_modules/@react-aria/label/dist/useLabel.es.js +23 -0
  305. package/dist/node_modules/@react-aria/label/dist/useLabel.es.js.map +1 -0
  306. package/dist/node_modules/@react-aria/overlays/dist/Overlay.cjs.js +2 -0
  307. package/dist/node_modules/@react-aria/overlays/dist/Overlay.cjs.js.map +1 -0
  308. package/dist/node_modules/@react-aria/overlays/dist/Overlay.es.js +16 -0
  309. package/dist/node_modules/@react-aria/overlays/dist/Overlay.es.js.map +1 -0
  310. package/dist/node_modules/@react-aria/overlays/dist/ariaHideOutside.cjs.js +2 -0
  311. package/dist/node_modules/@react-aria/overlays/dist/ariaHideOutside.cjs.js.map +1 -0
  312. package/dist/node_modules/@react-aria/overlays/dist/ariaHideOutside.es.js +64 -0
  313. package/dist/node_modules/@react-aria/overlays/dist/ariaHideOutside.es.js.map +1 -0
  314. package/dist/node_modules/@react-aria/overlays/dist/useModalOverlay.cjs.js +2 -0
  315. package/dist/node_modules/@react-aria/overlays/dist/useModalOverlay.cjs.js.map +1 -0
  316. package/dist/node_modules/@react-aria/overlays/dist/useModalOverlay.es.js +30 -0
  317. package/dist/node_modules/@react-aria/overlays/dist/useModalOverlay.es.js.map +1 -0
  318. package/dist/node_modules/@react-aria/overlays/dist/useOverlay.cjs.js +2 -0
  319. package/dist/node_modules/@react-aria/overlays/dist/useOverlay.cjs.js.map +1 -0
  320. package/dist/node_modules/@react-aria/overlays/dist/useOverlay.es.js +53 -0
  321. package/dist/node_modules/@react-aria/overlays/dist/useOverlay.es.js.map +1 -0
  322. package/dist/node_modules/@react-aria/overlays/dist/usePreventScroll.cjs.js +2 -0
  323. package/dist/node_modules/@react-aria/overlays/dist/usePreventScroll.cjs.js.map +1 -0
  324. package/dist/node_modules/@react-aria/overlays/dist/usePreventScroll.es.js +98 -0
  325. package/dist/node_modules/@react-aria/overlays/dist/usePreventScroll.es.js.map +1 -0
  326. package/dist/node_modules/@react-aria/radio/dist/useRadio.cjs.js +2 -0
  327. package/dist/node_modules/@react-aria/radio/dist/useRadio.cjs.js.map +1 -0
  328. package/dist/node_modules/@react-aria/radio/dist/useRadio.es.js +58 -0
  329. package/dist/node_modules/@react-aria/radio/dist/useRadio.es.js.map +1 -0
  330. package/dist/node_modules/@react-aria/radio/dist/useRadioGroup.cjs.js +2 -0
  331. package/dist/node_modules/@react-aria/radio/dist/useRadioGroup.cjs.js.map +1 -0
  332. package/dist/node_modules/@react-aria/radio/dist/useRadioGroup.es.js +78 -0
  333. package/dist/node_modules/@react-aria/radio/dist/useRadioGroup.es.js.map +1 -0
  334. package/dist/node_modules/@react-aria/radio/dist/utils.cjs.js +2 -0
  335. package/dist/node_modules/@react-aria/radio/dist/utils.cjs.js.map +1 -0
  336. package/dist/node_modules/@react-aria/radio/dist/utils.es.js +5 -0
  337. package/dist/node_modules/@react-aria/radio/dist/utils.es.js.map +1 -0
  338. package/dist/node_modules/@react-aria/ssr/dist/SSRProvider.cjs.js +2 -0
  339. package/dist/node_modules/@react-aria/ssr/dist/SSRProvider.cjs.js.map +1 -0
  340. package/dist/node_modules/@react-aria/ssr/dist/SSRProvider.es.js +19 -0
  341. package/dist/node_modules/@react-aria/ssr/dist/SSRProvider.es.js.map +1 -0
  342. package/dist/node_modules/@react-aria/switch/dist/useSwitch.cjs.js +2 -0
  343. package/dist/node_modules/@react-aria/switch/dist/useSwitch.cjs.js.map +1 -0
  344. package/dist/node_modules/@react-aria/switch/dist/useSwitch.es.js +20 -0
  345. package/dist/node_modules/@react-aria/switch/dist/useSwitch.es.js.map +1 -0
  346. package/dist/node_modules/@react-aria/toggle/dist/useToggle.cjs.js +2 -0
  347. package/dist/node_modules/@react-aria/toggle/dist/useToggle.cjs.js.map +1 -0
  348. package/dist/node_modules/@react-aria/toggle/dist/useToggle.es.js +48 -0
  349. package/dist/node_modules/@react-aria/toggle/dist/useToggle.es.js.map +1 -0
  350. package/dist/node_modules/@react-aria/visually-hidden/dist/VisuallyHidden.cjs.js +2 -0
  351. package/dist/node_modules/@react-aria/visually-hidden/dist/VisuallyHidden.cjs.js.map +1 -0
  352. package/dist/node_modules/@react-aria/visually-hidden/dist/VisuallyHidden.es.js +41 -0
  353. package/dist/node_modules/@react-aria/visually-hidden/dist/VisuallyHidden.es.js.map +1 -0
  354. package/dist/node_modules/@react-stately/form/dist/useFormValidationState.cjs.js +2 -0
  355. package/dist/node_modules/@react-stately/form/dist/useFormValidationState.cjs.js.map +1 -0
  356. package/dist/node_modules/@react-stately/form/dist/useFormValidationState.es.js +110 -0
  357. package/dist/node_modules/@react-stately/form/dist/useFormValidationState.es.js.map +1 -0
  358. package/dist/node_modules/@react-stately/overlays/dist/useOverlayTriggerState.cjs.js +2 -0
  359. package/dist/node_modules/@react-stately/overlays/dist/useOverlayTriggerState.cjs.js.map +1 -0
  360. package/dist/node_modules/@react-stately/overlays/dist/useOverlayTriggerState.es.js +30 -0
  361. package/dist/node_modules/@react-stately/overlays/dist/useOverlayTriggerState.es.js.map +1 -0
  362. package/dist/node_modules/@react-stately/radio/dist/useRadioGroupState.cjs.js +2 -0
  363. package/dist/node_modules/@react-stately/radio/dist/useRadioGroupState.cjs.js.map +1 -0
  364. package/dist/node_modules/@react-stately/radio/dist/useRadioGroupState.es.js +33 -0
  365. package/dist/node_modules/@react-stately/radio/dist/useRadioGroupState.es.js.map +1 -0
  366. package/dist/node_modules/@react-stately/toggle/dist/useToggleState.cjs.js +2 -0
  367. package/dist/node_modules/@react-stately/toggle/dist/useToggleState.cjs.js.map +1 -0
  368. package/dist/node_modules/@react-stately/toggle/dist/useToggleState.es.js +19 -0
  369. package/dist/node_modules/@react-stately/toggle/dist/useToggleState.es.js.map +1 -0
  370. package/dist/node_modules/@react-stately/utils/dist/useControlledState.cjs.js +2 -0
  371. package/dist/node_modules/@react-stately/utils/dist/useControlledState.cjs.js.map +1 -0
  372. package/dist/node_modules/@react-stately/utils/dist/useControlledState.es.js +31 -0
  373. package/dist/node_modules/@react-stately/utils/dist/useControlledState.es.js.map +1 -0
  374. package/dist/node_modules/@swc/helpers/esm/_check_private_redeclaration.cjs.js +2 -0
  375. package/dist/node_modules/@swc/helpers/esm/_check_private_redeclaration.cjs.js.map +1 -0
  376. package/dist/node_modules/@swc/helpers/esm/_check_private_redeclaration.es.js +9 -0
  377. package/dist/node_modules/@swc/helpers/esm/_check_private_redeclaration.es.js.map +1 -0
  378. package/dist/node_modules/@swc/helpers/esm/_class_apply_descriptor_get.cjs.js +2 -0
  379. package/dist/node_modules/@swc/helpers/esm/_class_apply_descriptor_get.cjs.js.map +1 -0
  380. package/dist/node_modules/@swc/helpers/esm/_class_apply_descriptor_get.es.js +8 -0
  381. package/dist/node_modules/@swc/helpers/esm/_class_apply_descriptor_get.es.js.map +1 -0
  382. package/dist/node_modules/@swc/helpers/esm/_class_apply_descriptor_set.cjs.js +2 -0
  383. package/dist/node_modules/@swc/helpers/esm/_class_apply_descriptor_set.cjs.js.map +1 -0
  384. package/dist/node_modules/@swc/helpers/esm/_class_apply_descriptor_set.es.js +13 -0
  385. package/dist/node_modules/@swc/helpers/esm/_class_apply_descriptor_set.es.js.map +1 -0
  386. package/dist/node_modules/@swc/helpers/esm/_class_extract_field_descriptor.cjs.js +2 -0
  387. package/dist/node_modules/@swc/helpers/esm/_class_extract_field_descriptor.cjs.js.map +1 -0
  388. package/dist/node_modules/@swc/helpers/esm/_class_extract_field_descriptor.es.js +9 -0
  389. package/dist/node_modules/@swc/helpers/esm/_class_extract_field_descriptor.es.js.map +1 -0
  390. package/dist/node_modules/@swc/helpers/esm/_class_private_field_get.cjs.js +2 -0
  391. package/dist/node_modules/@swc/helpers/esm/_class_private_field_get.cjs.js.map +1 -0
  392. package/dist/node_modules/@swc/helpers/esm/_class_private_field_get.es.js +11 -0
  393. package/dist/node_modules/@swc/helpers/esm/_class_private_field_get.es.js.map +1 -0
  394. package/dist/node_modules/@swc/helpers/esm/_class_private_field_init.cjs.js +2 -0
  395. package/dist/node_modules/@swc/helpers/esm/_class_private_field_init.cjs.js.map +1 -0
  396. package/dist/node_modules/@swc/helpers/esm/_class_private_field_init.es.js +9 -0
  397. package/dist/node_modules/@swc/helpers/esm/_class_private_field_init.es.js.map +1 -0
  398. package/dist/node_modules/@swc/helpers/esm/_class_private_field_set.cjs.js +2 -0
  399. package/dist/node_modules/@swc/helpers/esm/_class_private_field_set.cjs.js.map +1 -0
  400. package/dist/node_modules/@swc/helpers/esm/_class_private_field_set.es.js +11 -0
  401. package/dist/node_modules/@swc/helpers/esm/_class_private_field_set.es.js.map +1 -0
  402. package/dist/node_modules/color2k/dist/index.exports.import.es.cjs.js +2 -0
  403. package/dist/node_modules/color2k/dist/index.exports.import.es.cjs.js.map +1 -0
  404. package/dist/node_modules/color2k/dist/index.exports.import.es.es.js +171 -0
  405. package/dist/node_modules/color2k/dist/index.exports.import.es.es.js.map +1 -0
  406. package/dist/node_modules/react/cjs/react-jsx-runtime.development.cjs.js +23 -0
  407. package/dist/node_modules/react/cjs/react-jsx-runtime.development.cjs.js.map +1 -0
  408. package/dist/node_modules/react/cjs/react-jsx-runtime.development.es.js +609 -0
  409. package/dist/node_modules/react/cjs/react-jsx-runtime.development.es.js.map +1 -0
  410. package/dist/node_modules/react/cjs/react-jsx-runtime.production.min.cjs.js +10 -0
  411. package/dist/node_modules/react/cjs/react-jsx-runtime.production.min.cjs.js.map +1 -0
  412. package/dist/node_modules/react/cjs/react-jsx-runtime.production.min.es.js +29 -0
  413. package/dist/node_modules/react/cjs/react-jsx-runtime.production.min.es.js.map +1 -0
  414. package/dist/node_modules/react/jsx-runtime.cjs.js +2 -0
  415. package/dist/node_modules/react/jsx-runtime.cjs.js.map +1 -0
  416. package/dist/node_modules/react/jsx-runtime.es.js +9 -0
  417. package/dist/node_modules/react/jsx-runtime.es.js.map +1 -0
  418. package/dist/node_modules/react-aria-components/dist/OverlayArrow.cjs.js +2 -0
  419. package/dist/node_modules/react-aria-components/dist/OverlayArrow.cjs.js.map +1 -0
  420. package/dist/node_modules/react-aria-components/dist/OverlayArrow.es.js +37 -0
  421. package/dist/node_modules/react-aria-components/dist/OverlayArrow.es.js.map +1 -0
  422. package/dist/node_modules/react-aria-components/dist/Tooltip.cjs.js +2 -0
  423. package/dist/node_modules/react-aria-components/dist/Tooltip.cjs.js.map +1 -0
  424. package/dist/node_modules/react-aria-components/dist/Tooltip.es.js +97 -0
  425. package/dist/node_modules/react-aria-components/dist/Tooltip.es.js.map +1 -0
  426. package/dist/node_modules/react-aria-components/dist/utils.cjs.js +2 -0
  427. package/dist/node_modules/react-aria-components/dist/utils.cjs.js.map +1 -0
  428. package/dist/node_modules/react-aria-components/dist/utils.es.js +89 -0
  429. package/dist/node_modules/react-aria-components/dist/utils.es.js.map +1 -0
  430. package/dist/style.css +1 -1
  431. package/dist/theme.cjs.js +1 -1
  432. package/dist/theme.cjs.js.map +1 -1
  433. package/dist/theme.es.js +9 -15
  434. package/dist/theme.es.js.map +1 -1
  435. package/dist/utils/color2k.cjs.js +2 -0
  436. package/dist/utils/color2k.cjs.js.map +1 -0
  437. package/dist/utils/color2k.es.js +14 -0
  438. package/dist/utils/color2k.es.js.map +1 -0
  439. package/dist/utils/copy.cjs.js +2 -0
  440. package/dist/utils/copy.cjs.js.map +1 -0
  441. package/dist/{copy-qSgElu2b.mjs → utils/copy.es.js} +2 -2
  442. package/dist/utils/copy.es.js.map +1 -0
  443. package/dist/utils/image.cjs.js +2 -0
  444. package/dist/utils/image.cjs.js.map +1 -0
  445. package/dist/utils/image.es.js +28 -0
  446. package/dist/utils/image.es.js.map +1 -0
  447. package/dist/utils/navigation.cjs.js +2 -0
  448. package/dist/utils/navigation.cjs.js.map +1 -0
  449. package/dist/utils/navigation.es.js +12 -0
  450. package/dist/utils/navigation.es.js.map +1 -0
  451. package/dist/utils/palette.cjs.js +2 -0
  452. package/dist/utils/palette.cjs.js.map +1 -0
  453. package/dist/utils/palette.es.js +183 -0
  454. package/dist/utils/palette.es.js.map +1 -0
  455. package/dist/utils/string.cjs.js +2 -0
  456. package/dist/utils/string.cjs.js.map +1 -0
  457. package/dist/utils/string.es.js +8 -0
  458. package/dist/utils/string.es.js.map +1 -0
  459. package/dist/utils.cjs.js +1 -1
  460. package/dist/utils.es.js +19 -16
  461. package/dist/utils.es.js.map +1 -1
  462. package/package.json +18 -22
  463. package/dist/Button-BLlr5ezy.js +0 -31
  464. package/dist/Button-BLlr5ezy.js.map +0 -1
  465. package/dist/Button-DuAhPJPD.mjs +0 -727
  466. package/dist/Button-DuAhPJPD.mjs.map +0 -1
  467. package/dist/Button.cjs.js +0 -2
  468. package/dist/Button.cjs.js.map +0 -1
  469. package/dist/Button.d.ts +0 -53
  470. package/dist/Button.es.js +0 -9
  471. package/dist/Button.es.js.map +0 -1
  472. package/dist/breakpoint-9y1_8U_b.mjs.map +0 -1
  473. package/dist/breakpoint-DtqbboOa.js +0 -2
  474. package/dist/breakpoint-DtqbboOa.js.map +0 -1
  475. package/dist/color2k-CpDB_dpw.mjs +0 -168
  476. package/dist/color2k-CpDB_dpw.mjs.map +0 -1
  477. package/dist/color2k-DCgwXUem.js +0 -2
  478. package/dist/color2k-DCgwXUem.js.map +0 -1
  479. package/dist/colors-CWaj9dFz.mjs.map +0 -1
  480. package/dist/colors-CebzFjpe.js +0 -2
  481. package/dist/colors-CmSJBHaf.js +0 -2
  482. package/dist/colors-CmSJBHaf.js.map +0 -1
  483. package/dist/colors-DL1dYffC.js +0 -2
  484. package/dist/copy-DxIZCnfT.js +0 -2
  485. package/dist/copy-DxIZCnfT.js.map +0 -1
  486. package/dist/copy-qSgElu2b.mjs.map +0 -1
  487. package/dist/image-CUSfY1_T.js +0 -2
  488. package/dist/image-CUSfY1_T.js.map +0 -1
  489. package/dist/image-DFyN0Kd9.mjs +0 -207
  490. package/dist/image-DFyN0Kd9.mjs.map +0 -1
  491. package/dist/navigation-DdxS0JoV.js +0 -2
  492. package/dist/navigation-DdxS0JoV.js.map +0 -1
  493. package/dist/navigation-DsfDNfej.mjs +0 -16
  494. package/dist/navigation-DsfDNfej.mjs.map +0 -1
  495. package/dist/theme/dark.cjs.js +0 -2
  496. package/dist/theme/dark.cjs.js.map +0 -1
  497. package/dist/theme/dark.d.ts +0 -2
  498. package/dist/theme/dark.es.js.map +0 -1
  499. package/dist/theme/light.cjs.js +0 -2
  500. package/dist/theme/light.cjs.js.map +0 -1
  501. package/dist/theme/light.d.ts +0 -2
  502. package/dist/theme/light.es.js.map +0 -1
  503. package/dist/useBreakpoint-CjRyGKN-.mjs +0 -53
  504. package/dist/useBreakpoint-CjRyGKN-.mjs.map +0 -1
  505. package/dist/useBreakpoint-DA-JqOu3.js +0 -2
  506. package/dist/useBreakpoint-DA-JqOu3.js.map +0 -1
@@ -0,0 +1,131 @@
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
@@ -0,0 +1 @@
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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"}
@@ -0,0 +1,2 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,99 @@
1
+ import { j as r } from "../../node_modules/react/jsx-runtime.es.js";
2
+ import { forwardRef as _, useRef as j, useLayoutEffect as h } from "react";
3
+ import { csx as x } from "../../utils/string.es.js";
4
+ import { isUrlExternal as v, handleInternalNavigation as b } from "../../utils/navigation.es.js";
5
+ /* empty css */
6
+ const U = {
7
+ primary: "primary",
8
+ secondary: "secondary",
9
+ success: "success",
10
+ danger: "danger",
11
+ translucent: "translucent"
12
+ }, $ = {
13
+ small: "small",
14
+ medium: "medium",
15
+ large: "large",
16
+ xlarge: "xlarge",
17
+ "2xlarge": "2xlarge"
18
+ }, N = _(
19
+ ({
20
+ variant: B = "primary",
21
+ size: c = "medium",
22
+ fullWidth: i = !1,
23
+ icon: m,
24
+ to: n,
25
+ target: u,
26
+ onPress: a,
27
+ type: g = "button",
28
+ isDisabled: o,
29
+ "data-testid": y,
30
+ children: s
31
+ }, t) => {
32
+ const l = n && v(n), d = j(null);
33
+ h(() => {
34
+ typeof t == "function" ? t(d.current) : t && (t.current = d.current);
35
+ }, [t]);
36
+ const p = {
37
+ className: x(
38
+ "proton-Button",
39
+ `proton-Button--${B}`,
40
+ i && "proton-Button--fullWidth",
41
+ o && "proton-Button--disabled",
42
+ c && `proton-Button--${c}`
43
+ ),
44
+ "data-testid": y,
45
+ ...n && { "aria-disabled": o },
46
+ ...o && { tabIndex: -1 }
47
+ }, f = /* @__PURE__ */ r.jsxs(r.Fragment, { children: [
48
+ m && /* @__PURE__ */ r.jsx(
49
+ "div",
50
+ {
51
+ className: x(
52
+ "proton-Button__icon-decorator",
53
+ i && "proton-Button__icon-decorator--fullWidth"
54
+ ),
55
+ children: m
56
+ }
57
+ ),
58
+ s && /* @__PURE__ */ r.jsx("div", { className: "proton-Button__text", children: s })
59
+ ] });
60
+ return n ? /* @__PURE__ */ r.jsx(
61
+ "a",
62
+ {
63
+ ...p,
64
+ href: n,
65
+ target: u || (l ? "_blank" : void 0),
66
+ rel: l || u === "_blank" ? "noopener noreferrer" : void 0,
67
+ ref: t,
68
+ onClick: (e) => {
69
+ if (o) {
70
+ e.preventDefault();
71
+ return;
72
+ }
73
+ !l && !u && b(e, n), a == null || a(e);
74
+ },
75
+ role: "button",
76
+ children: f
77
+ }
78
+ ) : /* @__PURE__ */ r.jsx(
79
+ "button",
80
+ {
81
+ ...p,
82
+ type: g,
83
+ disabled: o,
84
+ ref: t,
85
+ onClick: (e) => {
86
+ !o && a && a(e);
87
+ },
88
+ children: f
89
+ }
90
+ );
91
+ }
92
+ );
93
+ N.displayName = "ProtonUIButton";
94
+ export {
95
+ N as Button,
96
+ $ as ButtonSizes,
97
+ U as ButtonVariants
98
+ };
99
+ //# sourceMappingURL=Button.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.es.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","handleInternalNavigation"],"mappings":";;;;;AAuBO,MAAMA,IAAuD;AAAA,EAClE,SAAS;AAAA,EACT,WAAW;AAAA,EACX,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,aAAa;AACf,GAIaC,IAA8C;AAAA,EACzD,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,WAAW;AACb,GAkDaC,IAASC;AAAA,EAIpB,CACE;AAAA,IACE,SAAAC,IAAU;AAAA,IACV,MAAAC,IAAO;AAAA,IACP,WAAAC,IAAY;AAAA,IACZ,MAAAC;AAAA,IACA,IAAAC;AAAA,IACA,QAAAC;AAAA,IACA,SAAAC;AAAA,IACA,MAAAC,IAAO;AAAA,IACP,YAAAC;AAAA,IACA,eAAeC;AAAA,IACf,UAAAC;AAAA,KAEFC,MACG;AACG,UAAAC,IAAaR,KAAMS,EAAcT,CAAE,GACnCU,IAAYC,EAA8C,IAAI;AAEpE,IAAAC,EAAgB,MAAM;AAChB,MAAA,OAAOL,KAAQ,aACjBA,EAAIG,EAAU,OAAO,IACZH,MACTA,EAAI,UAAUG,EAAU;AAAA,IAC1B,GACC,CAACH,CAAG,CAAC;AAER,UAAMM,IAAc;AAAA,MAClB,WAAWC;AAAA,QACT;AAAA,QACA,kBAAkBlB,CAAO;AAAA,QACzBE,KAAa;AAAA,QACbM,KAAc;AAAA,QACdP,KAAQ,kBAAkBA,CAAI;AAAA,MAChC;AAAA,MACA,eAAeQ;AAAA,MACf,GAAIL,KAAM,EAAE,iBAAiBI,EAAW;AAAA,MACxC,GAAIA,KAAc,EAAE,UAAU,GAAG;AAAA,IAAA,GAG7BW,IAEDC,gBAAAA,EAAAA,KAAAC,EAAA,UAAA,EAAA,UAAA;AAAA,MACClB,KAAAmB,gBAAAA,EAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAWJ;AAAA,YACT;AAAA,YACAhB,KAAa;AAAA,UACf;AAAA,UAEC,UAAAC;AAAA,QAAA;AAAA,MACH;AAAA,MAEDO,KAAYY,gBAAAA,EAAA,IAAC,OAAI,EAAA,WAAU,uBAAuB,UAAAZ,GAAS;AAAA,IAC9D,EAAA,CAAA;AAGF,WAAIN,IAEAkB,gBAAAA,EAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACE,GAAGL;AAAA,QACJ,MAAMb;AAAA,QACN,QAAQC,MAAWO,IAAa,WAAW;AAAA,QAC3C,KACEA,KAAcP,MAAW,WACrB,wBACA;AAAA,QAEN,KAAAM;AAAA,QACA,SAAS,CAAC,MAAM;AACd,cAAIH,GAAY;AACd,cAAE,eAAe;AACjB;AAAA,UACF;AAEI,UAAA,CAACI,KAAc,CAACP,KAClBkB,EAAyB,GAAGnB,CAAE,GAGhCE,KAAA,QAAAA,EAAU;AAAA,QACZ;AAAA,QACA,MAAK;AAAA,QAEJ,UAAAa;AAAA,MAAA;AAAA,IAAA,IAMLG,gBAAAA,EAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACE,GAAGL;AAAA,QACJ,MAAAV;AAAA,QACA,UAAUC;AAAA,QACV,KAAAG;AAAA,QACA,SAAS,CAAC,MAAM;AACV,UAAA,CAACH,KAAcF,KACjBA,EAAQ,CAAC;AAAA,QAEb;AAAA,QAEC,UAAAa;AAAA,MAAA;AAAA,IAAA;AAAA,EAGP;AACF;AAEArB,EAAO,cAAc;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("../../node_modules/react/jsx-runtime.cjs.js"),u=require("react"),c=require("../../node_modules/@react-aria/radio/dist/useRadio.cjs.js"),p=require("../../node_modules/@react-aria/radio/dist/useRadioGroup.cjs.js"),x=require("../../node_modules/@react-aria/visually-hidden/dist/VisuallyHidden.cjs.js"),R=require("../../node_modules/@react-stately/radio/dist/useRadioGroupState.cjs.js");;/* empty css */const G=require("../../utils/string.cjs.js");let a=u.createContext(null);function s(i){let t={...i,"data-testid":void 0},e=R.useRadioGroupState(t),{radioGroupProps:r}=p.useRadioGroup(t,e);return o.jsxRuntimeExports.jsx("div",{...r,className:"proton-ButtonGroup","data-value":e.selectedValue,"data-testid":i["data-testid"]||void 0,children:o.jsxRuntimeExports.jsx(a.Provider,{value:e,children:i.children})})}s.displayName="ProtonUIButtonGroup";s.Option=function(t){let e={...t,"data-testid":void 0},r=u.useContext(a),n=u.useRef(null),{inputProps:l,isSelected:d}=c.useRadio(e,r,n);return o.jsxRuntimeExports.jsxs("label",{className:G.csx("proton-ButtonGroup__option",d&&"proton-ButtonGroup__option--selected"),"data-selected":d||void 0,"data-testid":t["data-testid"]||void 0,children:[o.jsxRuntimeExports.jsx(x.VisuallyHidden,{children:o.jsxRuntimeExports.jsx("input",{...l,ref:n})}),t.children]})};exports.ButtonGroup=s;
2
+ //# sourceMappingURL=ButtonGroup.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ButtonGroup.cjs.js","sources":["../../../src/components/ButtonGroup/ButtonGroup.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport { createContext, useContext, useRef } from \"react\";\r\nimport { useRadio, useRadioGroup } from \"@react-aria/radio\";\r\nimport { VisuallyHidden } from \"@react-aria/visually-hidden\";\r\nimport { useRadioGroupState } from \"@react-stately/radio\";\r\nimport { csx } from \"../../utils\";\r\n\r\nimport \"./ButtonGroup.css\";\r\n\r\nexport interface ButtonGroupProps {\r\n /**\r\n * The value of the currently selected option in the ButtonGroup. Providing\r\n * this prop causes the component to become controlled.\r\n */\r\n value?: string;\r\n\r\n /**\r\n * The initially selected value of the ButtonGroup.\r\n */\r\n defaultValue?: string;\r\n\r\n /**\r\n * Called when the ButtonGroup's selected value changes.\r\n */\r\n onChange?: (value: string) => void;\r\n\r\n /**\r\n * The ButtonGroup.Option elements to be rendered as the selectable values.\r\n */\r\n children?: React.ReactNode;\r\n}\r\n\r\nlet ButtonGroupContext = createContext(null);\r\n\r\n/**\r\n * A radio button group component that allows selection of a single option from multiple choices.\r\n *\r\n * API:\r\n * - {@link ButtonGroupProps}\r\n */\r\nexport function ButtonGroup(props: ButtonGroupProps) {\r\n let sanitizedProps = {\r\n ...props,\r\n \"data-testid\": undefined,\r\n };\r\n\r\n let state = useRadioGroupState(sanitizedProps);\r\n let { radioGroupProps } = useRadioGroup(sanitizedProps, state);\r\n\r\n return (\r\n <div\r\n {...radioGroupProps}\r\n className=\"proton-ButtonGroup\"\r\n data-value={state.selectedValue}\r\n data-testid={props[\"data-testid\"] || undefined}\r\n >\r\n <ButtonGroupContext.Provider value={state}>\r\n {props.children}\r\n </ButtonGroupContext.Provider>\r\n </div>\r\n );\r\n}\r\n\r\nButtonGroup.displayName = \"ProtonUIButtonGroup\";\r\n\r\nexport interface ButtonGroupOptionProps {\r\n /**\r\n * The value of this option. When this option is selected, this value will\r\n * become the ButtonGroup's new `selectedValue`.\r\n */\r\n value: string;\r\n\r\n /**\r\n * The text or component to be rendered as this option's content.\r\n */\r\n children: React.ReactNode;\r\n}\r\n\r\nButtonGroup.Option = function ButtonGroupOption(props: ButtonGroupOptionProps) {\r\n let sanitizedProps = {\r\n ...props,\r\n \"data-testid\": undefined,\r\n };\r\n\r\n let state = useContext(ButtonGroupContext);\r\n let ref = useRef(null);\r\n let { inputProps, isSelected } = useRadio(sanitizedProps, state, ref);\r\n\r\n return (\r\n <label\r\n className={csx(\r\n \"proton-ButtonGroup__option\",\r\n isSelected && \"proton-ButtonGroup__option--selected\"\r\n )}\r\n data-selected={isSelected || undefined}\r\n data-testid={props[\"data-testid\"] || undefined}\r\n >\r\n <VisuallyHidden>\r\n <input {...inputProps} ref={ref} />\r\n </VisuallyHidden>\r\n {props.children}\r\n </label>\r\n );\r\n};\r\n"],"names":["ButtonGroupContext","createContext","ButtonGroup","props","sanitizedProps","state","useRadioGroupState","radioGroupProps","useRadioGroup","jsx","useContext","ref","useRef","inputProps","isSelected","useRadio","jsxs","csx","VisuallyHidden"],"mappings":"ijBAiCA,IAAIA,EAAqBC,EAAAA,cAAc,IAAI,EAQpC,SAASC,EAAYC,EAAyB,CACnD,IAAIC,EAAiB,CACnB,GAAGD,EACH,cAAe,MAAA,EAGbE,EAAQC,qBAAmBF,CAAc,EACzC,CAAE,gBAAAG,CAAoB,EAAAC,EAAA,cAAcJ,EAAgBC,CAAK,EAG3D,OAAAI,EAAA,kBAAA,IAAC,MAAA,CACE,GAAGF,EACJ,UAAU,qBACV,aAAYF,EAAM,cAClB,cAAaF,EAAM,aAAa,GAAK,OAErC,iCAACH,EAAmB,SAAnB,CAA4B,MAAOK,EACjC,WAAM,SACT,CAAA,CAAA,CAGN,CAEAH,EAAY,YAAc,sBAe1BA,EAAY,OAAS,SAA2BC,EAA+B,CAC7E,IAAIC,EAAiB,CACnB,GAAGD,EACH,cAAe,MAAA,EAGbE,EAAQK,aAAWV,CAAkB,EACrCW,EAAMC,SAAO,IAAI,EACjB,CAAE,WAAAC,EAAY,WAAAC,GAAeC,EAAS,SAAAX,EAAgBC,EAAOM,CAAG,EAGlE,OAAAK,EAAA,kBAAA,KAAC,QAAA,CACC,UAAWC,EAAA,IACT,6BACAH,GAAc,sCAChB,EACA,gBAAeA,GAAc,OAC7B,cAAaX,EAAM,aAAa,GAAK,OAErC,SAAA,CAAAM,wBAACS,EAAAA,gBACC,SAACT,EAAA,kBAAA,IAAA,QAAA,CAAO,GAAGI,EAAY,IAAAF,CAAU,CAAA,EACnC,EACCR,EAAM,QAAA,CAAA,CAAA,CAGb"}
@@ -0,0 +1,51 @@
1
+ import { j as o } from "../../node_modules/react/jsx-runtime.es.js";
2
+ import { createContext as l, useContext as p, useRef as c } from "react";
3
+ import { useRadio as f } from "../../node_modules/@react-aria/radio/dist/useRadio.es.js";
4
+ import { useRadioGroup as m } from "../../node_modules/@react-aria/radio/dist/useRadioGroup.es.js";
5
+ import { VisuallyHidden as x } from "../../node_modules/@react-aria/visually-hidden/dist/VisuallyHidden.es.js";
6
+ import { useRadioGroupState as $ } from "../../node_modules/@react-stately/radio/dist/useRadioGroupState.es.js";
7
+ /* empty css */
8
+ import { csx as G } from "../../utils/string.es.js";
9
+ let s = l(null);
10
+ function n(r) {
11
+ let t = {
12
+ ...r,
13
+ "data-testid": void 0
14
+ }, e = $(t), { radioGroupProps: a } = m(t, e);
15
+ return /* @__PURE__ */ o.jsx(
16
+ "div",
17
+ {
18
+ ...a,
19
+ className: "proton-ButtonGroup",
20
+ "data-value": e.selectedValue,
21
+ "data-testid": r["data-testid"] || void 0,
22
+ children: /* @__PURE__ */ o.jsx(s.Provider, { value: e, children: r.children })
23
+ }
24
+ );
25
+ }
26
+ n.displayName = "ProtonUIButtonGroup";
27
+ n.Option = function(t) {
28
+ let e = {
29
+ ...t,
30
+ "data-testid": void 0
31
+ }, a = p(s), d = c(null), { inputProps: u, isSelected: i } = f(e, a, d);
32
+ return /* @__PURE__ */ o.jsxs(
33
+ "label",
34
+ {
35
+ className: G(
36
+ "proton-ButtonGroup__option",
37
+ i && "proton-ButtonGroup__option--selected"
38
+ ),
39
+ "data-selected": i || void 0,
40
+ "data-testid": t["data-testid"] || void 0,
41
+ children: [
42
+ /* @__PURE__ */ o.jsx(x, { children: /* @__PURE__ */ o.jsx("input", { ...u, ref: d }) }),
43
+ t.children
44
+ ]
45
+ }
46
+ );
47
+ };
48
+ export {
49
+ n as ButtonGroup
50
+ };
51
+ //# sourceMappingURL=ButtonGroup.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ButtonGroup.es.js","sources":["../../../src/components/ButtonGroup/ButtonGroup.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport { createContext, useContext, useRef } from \"react\";\r\nimport { useRadio, useRadioGroup } from \"@react-aria/radio\";\r\nimport { VisuallyHidden } from \"@react-aria/visually-hidden\";\r\nimport { useRadioGroupState } from \"@react-stately/radio\";\r\nimport { csx } from \"../../utils\";\r\n\r\nimport \"./ButtonGroup.css\";\r\n\r\nexport interface ButtonGroupProps {\r\n /**\r\n * The value of the currently selected option in the ButtonGroup. Providing\r\n * this prop causes the component to become controlled.\r\n */\r\n value?: string;\r\n\r\n /**\r\n * The initially selected value of the ButtonGroup.\r\n */\r\n defaultValue?: string;\r\n\r\n /**\r\n * Called when the ButtonGroup's selected value changes.\r\n */\r\n onChange?: (value: string) => void;\r\n\r\n /**\r\n * The ButtonGroup.Option elements to be rendered as the selectable values.\r\n */\r\n children?: React.ReactNode;\r\n}\r\n\r\nlet ButtonGroupContext = createContext(null);\r\n\r\n/**\r\n * A radio button group component that allows selection of a single option from multiple choices.\r\n *\r\n * API:\r\n * - {@link ButtonGroupProps}\r\n */\r\nexport function ButtonGroup(props: ButtonGroupProps) {\r\n let sanitizedProps = {\r\n ...props,\r\n \"data-testid\": undefined,\r\n };\r\n\r\n let state = useRadioGroupState(sanitizedProps);\r\n let { radioGroupProps } = useRadioGroup(sanitizedProps, state);\r\n\r\n return (\r\n <div\r\n {...radioGroupProps}\r\n className=\"proton-ButtonGroup\"\r\n data-value={state.selectedValue}\r\n data-testid={props[\"data-testid\"] || undefined}\r\n >\r\n <ButtonGroupContext.Provider value={state}>\r\n {props.children}\r\n </ButtonGroupContext.Provider>\r\n </div>\r\n );\r\n}\r\n\r\nButtonGroup.displayName = \"ProtonUIButtonGroup\";\r\n\r\nexport interface ButtonGroupOptionProps {\r\n /**\r\n * The value of this option. When this option is selected, this value will\r\n * become the ButtonGroup's new `selectedValue`.\r\n */\r\n value: string;\r\n\r\n /**\r\n * The text or component to be rendered as this option's content.\r\n */\r\n children: React.ReactNode;\r\n}\r\n\r\nButtonGroup.Option = function ButtonGroupOption(props: ButtonGroupOptionProps) {\r\n let sanitizedProps = {\r\n ...props,\r\n \"data-testid\": undefined,\r\n };\r\n\r\n let state = useContext(ButtonGroupContext);\r\n let ref = useRef(null);\r\n let { inputProps, isSelected } = useRadio(sanitizedProps, state, ref);\r\n\r\n return (\r\n <label\r\n className={csx(\r\n \"proton-ButtonGroup__option\",\r\n isSelected && \"proton-ButtonGroup__option--selected\"\r\n )}\r\n data-selected={isSelected || undefined}\r\n data-testid={props[\"data-testid\"] || undefined}\r\n >\r\n <VisuallyHidden>\r\n <input {...inputProps} ref={ref} />\r\n </VisuallyHidden>\r\n {props.children}\r\n </label>\r\n );\r\n};\r\n"],"names":["ButtonGroupContext","createContext","ButtonGroup","props","sanitizedProps","state","useRadioGroupState","radioGroupProps","useRadioGroup","jsx","useContext","ref","useRef","inputProps","isSelected","useRadio","jsxs","csx","VisuallyHidden"],"mappings":";;;;;;;;AAiCA,IAAIA,IAAqBC,EAAc,IAAI;AAQpC,SAASC,EAAYC,GAAyB;AACnD,MAAIC,IAAiB;AAAA,IACnB,GAAGD;AAAA,IACH,eAAe;AAAA,EAAA,GAGbE,IAAQC,EAAmBF,CAAc,GACzC,EAAE,iBAAAG,EAAoB,IAAAC,EAAcJ,GAAgBC,CAAK;AAG3D,SAAAI,gBAAAA,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAGF;AAAA,MACJ,WAAU;AAAA,MACV,cAAYF,EAAM;AAAA,MAClB,eAAaF,EAAM,aAAa,KAAK;AAAA,MAErC,gCAACH,EAAmB,UAAnB,EAA4B,OAAOK,GACjC,YAAM,UACT;AAAA,IAAA;AAAA,EAAA;AAGN;AAEAH,EAAY,cAAc;AAe1BA,EAAY,SAAS,SAA2BC,GAA+B;AAC7E,MAAIC,IAAiB;AAAA,IACnB,GAAGD;AAAA,IACH,eAAe;AAAA,EAAA,GAGbE,IAAQK,EAAWV,CAAkB,GACrCW,IAAMC,EAAO,IAAI,GACjB,EAAE,YAAAC,GAAY,YAAAC,MAAeC,EAASX,GAAgBC,GAAOM,CAAG;AAGlE,SAAAK,gBAAAA,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACAH,KAAc;AAAA,MAChB;AAAA,MACA,iBAAeA,KAAc;AAAA,MAC7B,eAAaX,EAAM,aAAa,KAAK;AAAA,MAErC,UAAA;AAAA,QAAAM,gBAAAA,MAACS,KACC,UAACT,gBAAAA,EAAA,IAAA,SAAA,EAAO,GAAGI,GAAY,KAAAF,EAAU,CAAA,GACnC;AAAA,QACCR,EAAM;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGb;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("../../node_modules/react/jsx-runtime.cjs.js"),R=require("react"),o=require("../Button/Button.cjs.js"),S=require("../Icon/Icon.cjs.js"),E=require("../Menu/MenuTrigger.cjs.js");;/* empty css */const u=44;function c({items:e,defaultValue:s,children:l,onSelectionChange:d,disabledKeys:a,selectedKey:g,icon:j,variant:i,fullWidth:r,onPress:h,...n}){const m=r?u/2:0;return t.jsxRuntimeExports.jsxs("div",{className:"proton-ButtonWithSelect",children:[t.jsxRuntimeExports.jsx("div",{className:"proton-ButtonWithSelect__button",style:{"--proton-button-text-shift":`${m}px`,"--flex":r?1:0},children:t.jsxRuntimeExports.jsx(o.Button,{...n,onPress:h,icon:j,fullWidth:r,variant:i,"data-testid":"ButtonWithSelect-Button",children:l})}),t.jsxRuntimeExports.jsx(E.MenuTrigger,{items:e,disabled:n.isDisabled,disabledKeys:a,onSelectionChange:d,selectedKey:g,renderTrigger:({isOpen:p,setIsOpen:B})=>t.jsxRuntimeExports.jsx(x,{...n,variant:i,onPress:()=>B(!p)})})]})}c.displayName="ProtonUIButtonWithSelect";const x=R.forwardRef((e,s)=>t.jsxRuntimeExports.jsx("div",{className:"proton-ButtonWithSelect__trigger",style:{"--trigger-width":`${u}px`},children:t.jsxRuntimeExports.jsx(o.Button,{...e,"data-testid":"ButtonWithSelect-Trigger",ref:s,children:t.jsxRuntimeExports.jsx("div",{className:"proton-ButtonWithSelect__trigger-content",children:t.jsxRuntimeExports.jsx(S.Icon,{id:"chevron-down",size:16})})})}));x.displayName="ProtonUIButtonWithSelectTrigger";exports.ButtonWithSelect=c;
2
+ //# sourceMappingURL=ButtonWithSelect.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ButtonWithSelect.cjs.js","sources":["../../../src/components/ButtonWithSelect/ButtonWithSelect.tsx"],"sourcesContent":["import React from \"react\";\r\nimport { Button, type ButtonProps } from \"../Button/Button\";\r\nimport { Icon } from \"../Icon/Icon\";\r\nimport { MenuTrigger } from \"../Menu/MenuTrigger\";\r\nimport type { ActionMenuAction } from \"../ActionMenu/ActionMenu\";\r\n\r\nimport \"./ButtonWithSelect.css\";\r\n\r\nconst FIXED_TRIGGER_WIDTH = 44;\r\n\r\ninterface ButtonWithSelectProps extends ButtonProps {\r\n /**\r\n * The default value of the select menu.\r\n */\r\n defaultValue?: string;\r\n /**\r\n * The keys of the disabled items.\r\n */\r\n disabledKeys?: string[];\r\n /**\r\n * The items to display in the select menu.\r\n * - type {@link ActionMenuAction}\r\n */\r\n items: ActionMenuAction[];\r\n /**\r\n * The callback function to call when the selection changes.\r\n */\r\n onSelectionChange?: (key: string) => void;\r\n /**\r\n * The key of the selected item.\r\n */\r\n selectedKey?: string;\r\n}\r\n\r\n/**\r\n * A button with a select menu.\r\n *\r\n * API:\r\n * - {@link ButtonWithSelectProps}\r\n * - extends {@link ButtonProps}\r\n */\r\nexport function ButtonWithSelect({\r\n items,\r\n defaultValue,\r\n children,\r\n onSelectionChange,\r\n disabledKeys,\r\n selectedKey,\r\n icon,\r\n variant,\r\n fullWidth,\r\n onPress,\r\n ...buttonProps\r\n}: ButtonWithSelectProps) {\r\n const textShift = fullWidth ? FIXED_TRIGGER_WIDTH / 2 : 0;\r\n\r\n return (\r\n <div className=\"proton-ButtonWithSelect\">\r\n <div\r\n className=\"proton-ButtonWithSelect__button\"\r\n style={\r\n {\r\n \"--proton-button-text-shift\": `${textShift}px`,\r\n \"--flex\": fullWidth ? 1 : 0,\r\n } as React.CSSProperties\r\n }\r\n >\r\n <Button\r\n {...buttonProps}\r\n onPress={onPress}\r\n icon={icon}\r\n fullWidth={fullWidth}\r\n variant={variant}\r\n data-testid=\"ButtonWithSelect-Button\"\r\n >\r\n {children}\r\n </Button>\r\n </div>\r\n\r\n <MenuTrigger\r\n items={items}\r\n disabled={buttonProps.isDisabled}\r\n disabledKeys={disabledKeys}\r\n onSelectionChange={onSelectionChange}\r\n selectedKey={selectedKey}\r\n renderTrigger={({ isOpen, setIsOpen }) => {\r\n return (\r\n <TriggerButton\r\n {...buttonProps}\r\n variant={variant}\r\n onPress={() => setIsOpen(!isOpen)}\r\n />\r\n );\r\n }}\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nButtonWithSelect.displayName = \"ProtonUIButtonWithSelect\";\r\n\r\nconst TriggerButton = React.forwardRef<\r\n HTMLButtonElement | HTMLAnchorElement,\r\n ButtonProps\r\n>((props, ref) => {\r\n return (\r\n <div\r\n className=\"proton-ButtonWithSelect__trigger\"\r\n style={\r\n {\r\n \"--trigger-width\": `${FIXED_TRIGGER_WIDTH}px`,\r\n } as React.CSSProperties\r\n }\r\n >\r\n <Button {...props} data-testid=\"ButtonWithSelect-Trigger\" ref={ref}>\r\n <div className=\"proton-ButtonWithSelect__trigger-content\">\r\n <Icon id=\"chevron-down\" size={16} />\r\n </div>\r\n </Button>\r\n </div>\r\n );\r\n});\r\n\r\nTriggerButton.displayName = \"ProtonUIButtonWithSelectTrigger\";\r\n"],"names":["FIXED_TRIGGER_WIDTH","ButtonWithSelect","items","defaultValue","children","onSelectionChange","disabledKeys","selectedKey","icon","variant","fullWidth","onPress","buttonProps","textShift","jsxs","jsx","Button","MenuTrigger","isOpen","setIsOpen","TriggerButton","React","props","ref","Icon"],"mappings":"yTAQA,MAAMA,EAAsB,GAiCrB,SAASC,EAAiB,CAC/B,MAAAC,EACA,aAAAC,EACA,SAAAC,EACA,kBAAAC,EACA,aAAAC,EACA,YAAAC,EACA,KAAAC,EACA,QAAAC,EACA,UAAAC,EACA,QAAAC,EACA,GAAGC,CACL,EAA0B,CAClB,MAAAC,EAAYH,EAAYV,EAAsB,EAAI,EAGtD,OAAAc,EAAA,kBAAA,KAAC,MAAI,CAAA,UAAU,0BACb,SAAA,CAAAC,EAAA,kBAAA,IAAC,MAAA,CACC,UAAU,kCACV,MACE,CACE,6BAA8B,GAAGF,CAAS,KAC1C,SAAUH,EAAY,EAAI,CAC5B,EAGF,SAAAK,EAAA,kBAAA,IAACC,EAAA,OAAA,CACE,GAAGJ,EACJ,QAAAD,EACA,KAAAH,EACA,UAAAE,EACA,QAAAD,EACA,cAAY,0BAEX,SAAAL,CAAA,CACH,CAAA,CACF,EAEAW,EAAA,kBAAA,IAACE,EAAA,YAAA,CACC,MAAAf,EACA,SAAUU,EAAY,WACtB,aAAAN,EACA,kBAAAD,EACA,YAAAE,EACA,cAAe,CAAC,CAAE,OAAAW,EAAQ,UAAAC,KAEtBJ,EAAA,kBAAA,IAACK,EAAA,CACE,GAAGR,EACJ,QAAAH,EACA,QAAS,IAAMU,EAAU,CAACD,CAAM,CAAA,CAAA,CAGtC,CACF,CACF,CAAA,CAAA,CAEJ,CAEAjB,EAAiB,YAAc,2BAE/B,MAAMmB,EAAgBC,EAAM,WAG1B,CAACC,EAAOC,IAENR,EAAA,kBAAA,IAAC,MAAA,CACC,UAAU,mCACV,MACE,CACE,kBAAmB,GAAGf,CAAmB,IAC3C,EAGF,iCAACgB,SAAQ,CAAA,GAAGM,EAAO,cAAY,2BAA2B,IAAAC,EACxD,SAACR,EAAAA,kBAAAA,IAAA,MAAA,CAAI,UAAU,2CACb,iCAACS,EAAAA,KAAK,CAAA,GAAG,eAAe,KAAM,GAAI,EACpC,CACF,CAAA,CAAA,CAAA,CAGL,EAEDJ,EAAc,YAAc"}
@@ -0,0 +1,80 @@
1
+ import { j as t } from "../../node_modules/react/jsx-runtime.es.js";
2
+ import j from "react";
3
+ import { Button as s } from "../Button/Button.es.js";
4
+ import { Icon as S } from "../Icon/Icon.es.js";
5
+ import { MenuTrigger as f } from "../Menu/MenuTrigger.es.js";
6
+ /* empty css */
7
+ const c = 44;
8
+ function W({
9
+ items: e,
10
+ defaultValue: i,
11
+ children: l,
12
+ onSelectionChange: a,
13
+ disabledKeys: m,
14
+ selectedKey: u,
15
+ icon: x,
16
+ variant: n,
17
+ fullWidth: r,
18
+ onPress: g,
19
+ ...o
20
+ }) {
21
+ const h = r ? c / 2 : 0;
22
+ return /* @__PURE__ */ t.jsxs("div", { className: "proton-ButtonWithSelect", children: [
23
+ /* @__PURE__ */ t.jsx(
24
+ "div",
25
+ {
26
+ className: "proton-ButtonWithSelect__button",
27
+ style: {
28
+ "--proton-button-text-shift": `${h}px`,
29
+ "--flex": r ? 1 : 0
30
+ },
31
+ children: /* @__PURE__ */ t.jsx(
32
+ s,
33
+ {
34
+ ...o,
35
+ onPress: g,
36
+ icon: x,
37
+ fullWidth: r,
38
+ variant: n,
39
+ "data-testid": "ButtonWithSelect-Button",
40
+ children: l
41
+ }
42
+ )
43
+ }
44
+ ),
45
+ /* @__PURE__ */ t.jsx(
46
+ f,
47
+ {
48
+ items: e,
49
+ disabled: o.isDisabled,
50
+ disabledKeys: m,
51
+ onSelectionChange: a,
52
+ selectedKey: u,
53
+ renderTrigger: ({ isOpen: p, setIsOpen: B }) => /* @__PURE__ */ t.jsx(
54
+ d,
55
+ {
56
+ ...o,
57
+ variant: n,
58
+ onPress: () => B(!p)
59
+ }
60
+ )
61
+ }
62
+ )
63
+ ] });
64
+ }
65
+ W.displayName = "ProtonUIButtonWithSelect";
66
+ const d = j.forwardRef((e, i) => /* @__PURE__ */ t.jsx(
67
+ "div",
68
+ {
69
+ className: "proton-ButtonWithSelect__trigger",
70
+ style: {
71
+ "--trigger-width": `${c}px`
72
+ },
73
+ children: /* @__PURE__ */ t.jsx(s, { ...e, "data-testid": "ButtonWithSelect-Trigger", ref: i, children: /* @__PURE__ */ t.jsx("div", { className: "proton-ButtonWithSelect__trigger-content", children: /* @__PURE__ */ t.jsx(S, { id: "chevron-down", size: 16 }) }) })
74
+ }
75
+ ));
76
+ d.displayName = "ProtonUIButtonWithSelectTrigger";
77
+ export {
78
+ W as ButtonWithSelect
79
+ };
80
+ //# sourceMappingURL=ButtonWithSelect.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ButtonWithSelect.es.js","sources":["../../../src/components/ButtonWithSelect/ButtonWithSelect.tsx"],"sourcesContent":["import React from \"react\";\r\nimport { Button, type ButtonProps } from \"../Button/Button\";\r\nimport { Icon } from \"../Icon/Icon\";\r\nimport { MenuTrigger } from \"../Menu/MenuTrigger\";\r\nimport type { ActionMenuAction } from \"../ActionMenu/ActionMenu\";\r\n\r\nimport \"./ButtonWithSelect.css\";\r\n\r\nconst FIXED_TRIGGER_WIDTH = 44;\r\n\r\ninterface ButtonWithSelectProps extends ButtonProps {\r\n /**\r\n * The default value of the select menu.\r\n */\r\n defaultValue?: string;\r\n /**\r\n * The keys of the disabled items.\r\n */\r\n disabledKeys?: string[];\r\n /**\r\n * The items to display in the select menu.\r\n * - type {@link ActionMenuAction}\r\n */\r\n items: ActionMenuAction[];\r\n /**\r\n * The callback function to call when the selection changes.\r\n */\r\n onSelectionChange?: (key: string) => void;\r\n /**\r\n * The key of the selected item.\r\n */\r\n selectedKey?: string;\r\n}\r\n\r\n/**\r\n * A button with a select menu.\r\n *\r\n * API:\r\n * - {@link ButtonWithSelectProps}\r\n * - extends {@link ButtonProps}\r\n */\r\nexport function ButtonWithSelect({\r\n items,\r\n defaultValue,\r\n children,\r\n onSelectionChange,\r\n disabledKeys,\r\n selectedKey,\r\n icon,\r\n variant,\r\n fullWidth,\r\n onPress,\r\n ...buttonProps\r\n}: ButtonWithSelectProps) {\r\n const textShift = fullWidth ? FIXED_TRIGGER_WIDTH / 2 : 0;\r\n\r\n return (\r\n <div className=\"proton-ButtonWithSelect\">\r\n <div\r\n className=\"proton-ButtonWithSelect__button\"\r\n style={\r\n {\r\n \"--proton-button-text-shift\": `${textShift}px`,\r\n \"--flex\": fullWidth ? 1 : 0,\r\n } as React.CSSProperties\r\n }\r\n >\r\n <Button\r\n {...buttonProps}\r\n onPress={onPress}\r\n icon={icon}\r\n fullWidth={fullWidth}\r\n variant={variant}\r\n data-testid=\"ButtonWithSelect-Button\"\r\n >\r\n {children}\r\n </Button>\r\n </div>\r\n\r\n <MenuTrigger\r\n items={items}\r\n disabled={buttonProps.isDisabled}\r\n disabledKeys={disabledKeys}\r\n onSelectionChange={onSelectionChange}\r\n selectedKey={selectedKey}\r\n renderTrigger={({ isOpen, setIsOpen }) => {\r\n return (\r\n <TriggerButton\r\n {...buttonProps}\r\n variant={variant}\r\n onPress={() => setIsOpen(!isOpen)}\r\n />\r\n );\r\n }}\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nButtonWithSelect.displayName = \"ProtonUIButtonWithSelect\";\r\n\r\nconst TriggerButton = React.forwardRef<\r\n HTMLButtonElement | HTMLAnchorElement,\r\n ButtonProps\r\n>((props, ref) => {\r\n return (\r\n <div\r\n className=\"proton-ButtonWithSelect__trigger\"\r\n style={\r\n {\r\n \"--trigger-width\": `${FIXED_TRIGGER_WIDTH}px`,\r\n } as React.CSSProperties\r\n }\r\n >\r\n <Button {...props} data-testid=\"ButtonWithSelect-Trigger\" ref={ref}>\r\n <div className=\"proton-ButtonWithSelect__trigger-content\">\r\n <Icon id=\"chevron-down\" size={16} />\r\n </div>\r\n </Button>\r\n </div>\r\n );\r\n});\r\n\r\nTriggerButton.displayName = \"ProtonUIButtonWithSelectTrigger\";\r\n"],"names":["FIXED_TRIGGER_WIDTH","ButtonWithSelect","items","defaultValue","children","onSelectionChange","disabledKeys","selectedKey","icon","variant","fullWidth","onPress","buttonProps","textShift","jsxs","jsx","Button","MenuTrigger","isOpen","setIsOpen","TriggerButton","React","props","ref","Icon"],"mappings":";;;;;;AAQA,MAAMA,IAAsB;AAiCrB,SAASC,EAAiB;AAAA,EAC/B,OAAAC;AAAA,EACA,cAAAC;AAAA,EACA,UAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,cAAAC;AAAA,EACA,aAAAC;AAAA,EACA,MAAAC;AAAA,EACA,SAAAC;AAAA,EACA,WAAAC;AAAA,EACA,SAAAC;AAAA,EACA,GAAGC;AACL,GAA0B;AAClB,QAAAC,IAAYH,IAAYV,IAAsB,IAAI;AAGtD,SAAAc,gBAAAA,EAAA,KAAC,OAAI,EAAA,WAAU,2BACb,UAAA;AAAA,IAAAC,gBAAAA,EAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,OACE;AAAA,UACE,8BAA8B,GAAGF,CAAS;AAAA,UAC1C,UAAUH,IAAY,IAAI;AAAA,QAC5B;AAAA,QAGF,UAAAK,gBAAAA,EAAA;AAAA,UAACC;AAAA,UAAA;AAAA,YACE,GAAGJ;AAAA,YACJ,SAAAD;AAAA,YACA,MAAAH;AAAA,YACA,WAAAE;AAAA,YACA,SAAAD;AAAA,YACA,eAAY;AAAA,YAEX,UAAAL;AAAA,UAAA;AAAA,QACH;AAAA,MAAA;AAAA,IACF;AAAA,IAEAW,gBAAAA,EAAA;AAAA,MAACE;AAAA,MAAA;AAAA,QACC,OAAAf;AAAA,QACA,UAAUU,EAAY;AAAA,QACtB,cAAAN;AAAA,QACA,mBAAAD;AAAA,QACA,aAAAE;AAAA,QACA,eAAe,CAAC,EAAE,QAAAW,GAAQ,WAAAC,QAEtBJ,gBAAAA,EAAA;AAAA,UAACK;AAAA,UAAA;AAAA,YACE,GAAGR;AAAA,YACJ,SAAAH;AAAA,YACA,SAAS,MAAMU,EAAU,CAACD,CAAM;AAAA,UAAA;AAAA,QAAA;AAAA,MAGtC;AAAA,IACF;AAAA,EACF,EAAA,CAAA;AAEJ;AAEAjB,EAAiB,cAAc;AAE/B,MAAMmB,IAAgBC,EAAM,WAG1B,CAACC,GAAOC,MAENR,gBAAAA,EAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAU;AAAA,IACV,OACE;AAAA,MACE,mBAAmB,GAAGf,CAAmB;AAAA,IAC3C;AAAA,IAGF,gCAACgB,GAAQ,EAAA,GAAGM,GAAO,eAAY,4BAA2B,KAAAC,GACxD,UAACR,gBAAAA,EAAAA,IAAA,OAAA,EAAI,WAAU,4CACb,gCAACS,GAAK,EAAA,IAAG,gBAAe,MAAM,IAAI,GACpC,EACF,CAAA;AAAA,EAAA;AAAA,CAGL;AAEDJ,EAAc,cAAc;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("../../node_modules/react/jsx-runtime.cjs.js"),D=require("react"),s=require("../Table/Table.cjs.js"),f=require("../Elevation/Elevation.cjs.js"),_=require("../Tombstone/Tombstone.cjs.js"),q=require("../Icon/Icon.cjs.js");;/* empty css */function N(r){const{columns:x,data:l=[],loading:j=!1,tombstoneComponent:u,error:a=!1,name:d,onRowClick:m,emptyMessage:T="Data Unavailable",errorMessage:C,loadingRows:y=5,"data-testid":c}=r,g="sortableColumns"in r?r.sortableColumns:[],b="sortedBy"in r?r.sortedBy:void 0,p="sortDirection"in r?r.sortDirection:void 0,h="onSort"in r?r.onSort:void 0,o=D.useMemo(()=>x.filter(e=>!e.hidden),[x]),S=e=>{if(!h)return;const n=b===e.id&&p==="ASC"?"DESC":"ASC";h(e.id,n)},v=e=>b!==e?"none":p==="ASC"?"ascending":"descending";if(a){const e=typeof a=="string"?a:C||"An error occurred";return t.jsxRuntimeExports.jsx(E,{columns:o,message:e,name:d,testId:c,isError:!0})}return j?t.jsxRuntimeExports.jsx("div",{className:"proton-DataTable","data-testid":c,"aria-busy":"true","aria-label":`Loading ${d}...`,children:t.jsxRuntimeExports.jsxs(s.Table,{name:d,children:[t.jsxRuntimeExports.jsx(s.Table.Header,{children:o.map(e=>t.jsxRuntimeExports.jsx(s.Table.Column,{id:e.id,children:e.header},e.id))}),t.jsxRuntimeExports.jsx(s.Table.Body,{children:Array.from({length:y}).map((e,i)=>t.jsxRuntimeExports.jsx(s.Table.Row,{children:o.map(n=>t.jsxRuntimeExports.jsx(s.Table.Cell,{children:u||t.jsxRuntimeExports.jsx(_.Tombstone,{height:"1rem",width:i%3===0?"80%":i%3===1?"60%":"90%"})},n.id))},`loading-${i}`))})]})}):!l||l.length===0?t.jsxRuntimeExports.jsx(E,{columns:o,message:T,name:d,testId:c}):t.jsxRuntimeExports.jsx("div",{className:"proton-DataTable","data-testid":c,children:t.jsxRuntimeExports.jsxs(s.Table,{name:d,children:[t.jsxRuntimeExports.jsx(s.Table.Header,{children:o.map(e=>{const i=g.includes(e.id),n=v(e.id);return t.jsxRuntimeExports.jsx(s.Table.Column,{id:e.id,...i&&{"aria-sort":n},children:t.jsxRuntimeExports.jsxs("span",{className:"proton-DataTable__header-content",children:[e.header,i&&t.jsxRuntimeExports.jsx("button",{className:"proton-DataTable__sort-button",onClick:()=>S(e),"aria-label":`Sort by ${e.header}: ${n}`,type:"button",children:t.jsxRuntimeExports.jsx(q.Icon,{id:"chevron-up",size:12,color:n==="ascending"?"var(--proton-color__primary)":"currentColor"})})]})},e.id)})}),t.jsxRuntimeExports.jsx(s.Table.Body,{children:l.map((e,i)=>{const n=((e==null?void 0:e.id)||(e==null?void 0:e.key))??i;return t.jsxRuntimeExports.jsx(s.Table.Row,{onClick:m?()=>m(e):void 0,children:o.map(R=>t.jsxRuntimeExports.jsx(s.Table.Cell,{children:R.cell(e)},R.id))},n)})})]})})}const E=({columns:r,message:x,name:l,testId:j,isError:u=!1})=>t.jsxRuntimeExports.jsx("div",{className:"proton-DataTable","data-testid":j,children:t.jsxRuntimeExports.jsxs(s.Table,{name:l,children:[t.jsxRuntimeExports.jsx(s.Table.Header,{children:r==null?void 0:r.map(a=>t.jsxRuntimeExports.jsx(s.Table.Column,{id:a.id,children:a.header},a.id))}),t.jsxRuntimeExports.jsx(s.Table.Body,{children:t.jsxRuntimeExports.jsx(s.Table.Row,{children:t.jsxRuntimeExports.jsx(s.Table.Cell,{colSpan:(r==null?void 0:r.length)||1,children:t.jsxRuntimeExports.jsx("div",{className:"proton-DataTable__message-cell",role:u?"alert":"status","aria-live":"polite",children:t.jsxRuntimeExports.jsx(f.Elevation,{children:t.jsxRuntimeExports.jsx("div",{className:"proton-DataTable__empty-cell",children:x})})})})})})]})});exports.DataTable=N;
2
+ //# sourceMappingURL=DataTable.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataTable.cjs.js","sources":["../../../src/components/DataTable/DataTable.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport { AriaAttributes, ReactNode, useMemo } from \"react\";\r\nimport { Table } from \"../Table/Table\";\r\nimport { Elevation } from \"../Elevation/Elevation\";\r\nimport { Tombstone } from \"../Tombstone/Tombstone\";\r\nimport { Icon } from \"../Icon/Icon\";\r\nimport \"./DataTable.css\";\r\n\r\nexport type SortDirection = \"ASC\" | \"DESC\";\r\n\r\ntype SortingConfig<T> =\r\n | {\r\n /** When sorting is enabled, all these props must be provided together. */\r\n sortableColumns: string[];\r\n sortedBy: string;\r\n sortDirection: SortDirection;\r\n onSort: (columnId: string, direction: SortDirection) => void;\r\n }\r\n | {\r\n /** When no sorting is needed, none of these props should be provided */\r\n sortableColumns?: never;\r\n sortedBy?: never;\r\n sortDirection?: never;\r\n onSort?: never;\r\n };\r\n\r\nexport interface DataTableColumn<T> {\r\n /** id for the column */\r\n id: string;\r\n /** Header text or component */\r\n header: ReactNode;\r\n /** Function to render cell content from row data */\r\n cell: (row: T) => ReactNode;\r\n /** Whether this column should be hidden */\r\n hidden?: boolean;\r\n}\r\n\r\ninterface BaseDataTableProps<T = any> {\r\n /** Array of column definitions\r\n * - {@link DataTableColumn}\r\n */\r\n columns: DataTableColumn<T>[];\r\n /** Array of data objects to display. Can be empty array for loading/empty states */\r\n data?: T[] | null;\r\n /** Loading state */\r\n loading?: boolean;\r\n /** Tombstone component to use when loading */\r\n tombstoneComponent?: ReactNode;\r\n /** Error state */\r\n error?: boolean | string;\r\n /** Table name/caption for accessibility. This provides essential context for screen readers. */\r\n name: string;\r\n /** Callback when a row is clicked */\r\n onRowClick?: (row: T) => void;\r\n /** Custom empty state message */\r\n emptyMessage?: string;\r\n /** Custom error message */\r\n errorMessage?: string;\r\n /** Number of skeleton rows to show in loading state */\r\n loadingRows?: number;\r\n /** Test ID for testing purposes */\r\n \"data-testid\"?: string;\r\n}\r\n\r\nexport type DataTableProps<T = any> = BaseDataTableProps<T> & SortingConfig<T>;\r\n\r\n/**\r\n * DataTable is a declarative wrapper around the base Table component that provides:\r\n *\r\n * API:\r\n * - {@link DataTableProps}\r\n * - {@link SortingConfig}\r\n */\r\nexport function DataTable<T = any>(props: DataTableProps<T>) {\r\n const {\r\n columns,\r\n data = [],\r\n loading = false,\r\n tombstoneComponent,\r\n error = false,\r\n name,\r\n onRowClick,\r\n emptyMessage = \"Data Unavailable\",\r\n errorMessage,\r\n loadingRows = 5,\r\n \"data-testid\": testId,\r\n } = props;\r\n\r\n const sortableColumns =\r\n \"sortableColumns\" in props ? props.sortableColumns : [];\r\n const sortedBy = \"sortedBy\" in props ? props.sortedBy : undefined;\r\n const sortDirection =\r\n \"sortDirection\" in props ? props.sortDirection : undefined;\r\n const onSort = \"onSort\" in props ? props.onSort : undefined;\r\n\r\n const visibleColumns = useMemo(\r\n () => columns.filter((col) => !col.hidden),\r\n [columns]\r\n );\r\n\r\n const handleSortClick = (column: DataTableColumn<T>) => {\r\n if (!onSort) return;\r\n\r\n const isCurrentlySorted = sortedBy === column.id;\r\n const newDirection =\r\n isCurrentlySorted && sortDirection === \"ASC\" ? \"DESC\" : \"ASC\";\r\n\r\n onSort(column.id, newDirection);\r\n };\r\n\r\n const getSortState = (columnId: string): AriaAttributes[\"aria-sort\"] => {\r\n if (sortedBy !== columnId) return \"none\";\r\n return sortDirection === \"ASC\" ? \"ascending\" : \"descending\";\r\n };\r\n\r\n if (error) {\r\n const message =\r\n typeof error === \"string\" ? error : errorMessage || \"An error occurred\";\r\n return (\r\n <EmptyState\r\n columns={visibleColumns}\r\n message={message}\r\n name={name}\r\n testId={testId}\r\n isError\r\n />\r\n );\r\n }\r\n\r\n if (loading) {\r\n return (\r\n <div\r\n className=\"proton-DataTable\"\r\n data-testid={testId}\r\n aria-busy=\"true\"\r\n aria-label={`Loading ${name}...`}\r\n >\r\n <Table name={name}>\r\n <Table.Header>\r\n {visibleColumns.map((column) => (\r\n <Table.Column key={column.id} id={column.id}>\r\n {column.header}\r\n </Table.Column>\r\n ))}\r\n </Table.Header>\r\n <Table.Body>\r\n {Array.from({ length: loadingRows }).map((_, index) => (\r\n <Table.Row key={`loading-${index}`}>\r\n {visibleColumns.map((column) => (\r\n <Table.Cell key={column.id}>\r\n {tombstoneComponent || (\r\n <Tombstone\r\n height=\"1rem\"\r\n width={\r\n // cascading tombstone widths\r\n index % 3 === 0\r\n ? \"80%\"\r\n : index % 3 === 1\r\n ? \"60%\"\r\n : \"90%\"\r\n }\r\n />\r\n )}\r\n </Table.Cell>\r\n ))}\r\n </Table.Row>\r\n ))}\r\n </Table.Body>\r\n </Table>\r\n </div>\r\n );\r\n }\r\n\r\n if (!data || data.length === 0) {\r\n return (\r\n <EmptyState\r\n columns={visibleColumns}\r\n message={emptyMessage}\r\n name={name}\r\n testId={testId}\r\n />\r\n );\r\n }\r\n\r\n return (\r\n <div className=\"proton-DataTable\" data-testid={testId}>\r\n <Table name={name}>\r\n <Table.Header>\r\n {visibleColumns.map((column) => {\r\n const isSortable = sortableColumns.includes(column.id);\r\n const sortState = getSortState(column.id);\r\n\r\n return (\r\n <Table.Column\r\n key={column.id}\r\n id={column.id}\r\n {...(isSortable && { \"aria-sort\": sortState })}\r\n >\r\n <span className=\"proton-DataTable__header-content\">\r\n {column.header}\r\n {isSortable && (\r\n <button\r\n className=\"proton-DataTable__sort-button\"\r\n onClick={() => handleSortClick(column)}\r\n aria-label={`Sort by ${column.header}: ${sortState}`}\r\n type=\"button\"\r\n >\r\n <Icon\r\n id={\"chevron-up\"}\r\n size={12}\r\n color={\r\n sortState === \"ascending\"\r\n ? \"var(--proton-color__primary)\"\r\n : \"currentColor\"\r\n }\r\n />\r\n </button>\r\n )}\r\n </span>\r\n </Table.Column>\r\n );\r\n })}\r\n </Table.Header>\r\n <Table.Body>\r\n {data.map((row, index) => {\r\n // Generate a key from the row data or use index as fallback\r\n const rowKey = ((row as any)?.id || (row as any)?.key) ?? index;\r\n\r\n return (\r\n <Table.Row\r\n key={rowKey}\r\n onClick={onRowClick ? () => onRowClick(row) : undefined}\r\n >\r\n {visibleColumns.map((column) => (\r\n <Table.Cell key={column.id}>{column.cell(row)}</Table.Cell>\r\n ))}\r\n </Table.Row>\r\n );\r\n })}\r\n </Table.Body>\r\n </Table>\r\n </div>\r\n );\r\n}\r\n\r\nconst EmptyState = ({\r\n columns,\r\n message,\r\n name,\r\n testId,\r\n isError = false,\r\n}: Partial<DataTableProps> & {\r\n testId?: string;\r\n message: string;\r\n isError?: boolean;\r\n}) => {\r\n return (\r\n <div className=\"proton-DataTable\" data-testid={testId}>\r\n <Table name={name}>\r\n <Table.Header>\r\n {columns?.map((column) => (\r\n <Table.Column key={column.id} id={column.id}>\r\n {column.header}\r\n </Table.Column>\r\n ))}\r\n </Table.Header>\r\n <Table.Body>\r\n <Table.Row>\r\n <Table.Cell colSpan={columns?.length || 1}>\r\n <div\r\n className=\"proton-DataTable__message-cell\"\r\n role={isError ? \"alert\" : \"status\"}\r\n aria-live=\"polite\"\r\n >\r\n <Elevation>\r\n <div className=\"proton-DataTable__empty-cell\">{message}</div>\r\n </Elevation>\r\n </div>\r\n </Table.Cell>\r\n </Table.Row>\r\n </Table.Body>\r\n </Table>\r\n </div>\r\n );\r\n};\r\n"],"names":["DataTable","props","columns","data","loading","tombstoneComponent","error","name","onRowClick","emptyMessage","errorMessage","loadingRows","testId","sortableColumns","sortedBy","sortDirection","onSort","visibleColumns","useMemo","col","handleSortClick","column","newDirection","getSortState","columnId","message","jsx","EmptyState","jsxs","Table","_","index","Tombstone","isSortable","sortState","Icon","row","rowKey","isError","Elevation"],"mappings":"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"}