@protonradio/proton-ui 0.11.10 → 0.11.11

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 (487) hide show
  1. package/README.md +148 -148
  2. package/dist/_virtual/jsx-runtime.cjs.js +2 -0
  3. package/dist/_virtual/jsx-runtime.cjs.js.map +1 -0
  4. package/dist/_virtual/jsx-runtime.es.js +5 -0
  5. package/dist/_virtual/jsx-runtime.es.js.map +1 -0
  6. package/dist/_virtual/react-jsx-runtime.development.cjs.js +2 -0
  7. package/dist/_virtual/react-jsx-runtime.development.cjs.js.map +1 -0
  8. package/dist/_virtual/react-jsx-runtime.development.es.js +5 -0
  9. package/dist/_virtual/react-jsx-runtime.development.es.js.map +1 -0
  10. package/dist/_virtual/react-jsx-runtime.production.min.cjs.js +2 -0
  11. package/dist/_virtual/react-jsx-runtime.production.min.cjs.js.map +1 -0
  12. package/dist/_virtual/react-jsx-runtime.production.min.es.js +5 -0
  13. package/dist/_virtual/react-jsx-runtime.production.min.es.js.map +1 -0
  14. package/dist/assets/svg/icons.svg.cjs.js +2 -0
  15. package/dist/assets/svg/icons.svg.cjs.js.map +1 -0
  16. package/dist/assets/svg/icons.svg.es.js +5 -0
  17. package/dist/assets/svg/icons.svg.es.js.map +1 -0
  18. package/dist/components/ActionMenu/ActionMenu.cjs.js +2 -0
  19. package/dist/components/ActionMenu/ActionMenu.cjs.js.map +1 -0
  20. package/dist/components/ActionMenu/ActionMenu.es.js +277 -0
  21. package/dist/components/ActionMenu/ActionMenu.es.js.map +1 -0
  22. package/dist/components/Badge/Badge.cjs.js +2 -0
  23. package/dist/components/Badge/Badge.cjs.js.map +1 -0
  24. package/dist/components/Badge/Badge.es.js +25 -0
  25. package/dist/components/Badge/Badge.es.js.map +1 -0
  26. package/dist/components/Banner/Banner.cjs.js +2 -0
  27. package/dist/components/Banner/Banner.cjs.js.map +1 -0
  28. package/dist/components/Banner/Banner.es.js +131 -0
  29. package/dist/components/Banner/Banner.es.js.map +1 -0
  30. package/dist/components/Button/Button.cjs.js +2 -0
  31. package/dist/components/Button/Button.cjs.js.map +1 -0
  32. package/dist/components/Button/Button.es.js +99 -0
  33. package/dist/components/Button/Button.es.js.map +1 -0
  34. package/dist/components/ButtonGroup/ButtonGroup.cjs.js +2 -0
  35. package/dist/components/ButtonGroup/ButtonGroup.cjs.js.map +1 -0
  36. package/dist/components/ButtonGroup/ButtonGroup.es.js +51 -0
  37. package/dist/components/ButtonGroup/ButtonGroup.es.js.map +1 -0
  38. package/dist/components/ButtonWithSelect/ButtonWithSelect.cjs.js +2 -0
  39. package/dist/components/ButtonWithSelect/ButtonWithSelect.cjs.js.map +1 -0
  40. package/dist/components/ButtonWithSelect/ButtonWithSelect.es.js +80 -0
  41. package/dist/components/ButtonWithSelect/ButtonWithSelect.es.js.map +1 -0
  42. package/dist/components/DataTable/DataTable.cjs.js +2 -0
  43. package/dist/components/DataTable/DataTable.cjs.js.map +1 -0
  44. package/dist/components/DataTable/DataTable.es.js +137 -0
  45. package/dist/components/DataTable/DataTable.es.js.map +1 -0
  46. package/dist/components/Dialog/Dialog.cjs.js +2 -0
  47. package/dist/components/Dialog/Dialog.cjs.js.map +1 -0
  48. package/dist/components/Dialog/Dialog.es.js +15 -0
  49. package/dist/components/Dialog/Dialog.es.js.map +1 -0
  50. package/dist/components/Elevation/Elevation.cjs.js +2 -0
  51. package/dist/components/Elevation/Elevation.cjs.js.map +1 -0
  52. package/dist/components/Elevation/Elevation.es.js +33 -0
  53. package/dist/components/Elevation/Elevation.es.js.map +1 -0
  54. package/dist/components/Icon/Icon.cjs.js +2 -0
  55. package/dist/components/Icon/Icon.cjs.js.map +1 -0
  56. package/dist/components/Icon/Icon.es.js +42 -0
  57. package/dist/components/Icon/Icon.es.js.map +1 -0
  58. package/dist/components/ImageBackground/ImageBackground.cjs.js +2 -0
  59. package/dist/components/ImageBackground/ImageBackground.cjs.js.map +1 -0
  60. package/dist/components/ImageBackground/ImageBackground.es.js +55 -0
  61. package/dist/components/ImageBackground/ImageBackground.es.js.map +1 -0
  62. package/dist/components/Input/BaseInput/Input.cjs.js +2 -0
  63. package/dist/components/Input/BaseInput/Input.cjs.js.map +1 -0
  64. package/dist/components/Input/BaseInput/Input.es.js +186 -0
  65. package/dist/components/Input/BaseInput/Input.es.js.map +1 -0
  66. package/dist/components/Input/CopyInput/CopyInput.cjs.js +2 -0
  67. package/dist/components/Input/CopyInput/CopyInput.cjs.js.map +1 -0
  68. package/dist/components/Input/CopyInput/CopyInput.es.js +83 -0
  69. package/dist/components/Input/CopyInput/CopyInput.es.js.map +1 -0
  70. package/dist/components/Input/SearchInput/SearchInput.cjs.js +2 -0
  71. package/dist/components/Input/SearchInput/SearchInput.cjs.js.map +1 -0
  72. package/dist/components/Input/SearchInput/SearchInput.es.js +118 -0
  73. package/dist/components/Input/SearchInput/SearchInput.es.js.map +1 -0
  74. package/dist/components/Menu/MenuTrigger.cjs.js +2 -0
  75. package/dist/components/Menu/MenuTrigger.cjs.js.map +1 -0
  76. package/dist/components/Menu/MenuTrigger.es.js +89 -0
  77. package/dist/components/Menu/MenuTrigger.es.js.map +1 -0
  78. package/dist/components/Menu/PopoverMenu.cjs.js +2 -0
  79. package/dist/components/Menu/PopoverMenu.cjs.js.map +1 -0
  80. package/dist/components/Menu/PopoverMenu.es.js +122 -0
  81. package/dist/components/Menu/PopoverMenu.es.js.map +1 -0
  82. package/dist/components/Modal/Modal.cjs.js +2 -0
  83. package/dist/components/Modal/Modal.cjs.js.map +1 -0
  84. package/dist/components/Modal/Modal.es.js +122 -0
  85. package/dist/components/Modal/Modal.es.js.map +1 -0
  86. package/dist/components/Popover/Popover.cjs.js +2 -0
  87. package/dist/components/Popover/Popover.cjs.js.map +1 -0
  88. package/dist/components/Popover/Popover.es.js +54 -0
  89. package/dist/components/Popover/Popover.es.js.map +1 -0
  90. package/dist/components/ScreenOverlay/ScreenOverlay.cjs.js +2 -0
  91. package/dist/components/ScreenOverlay/ScreenOverlay.cjs.js.map +1 -0
  92. package/dist/components/ScreenOverlay/ScreenOverlay.es.js +44 -0
  93. package/dist/components/ScreenOverlay/ScreenOverlay.es.js.map +1 -0
  94. package/dist/components/Select/Select.cjs.js +2 -0
  95. package/dist/components/Select/Select.cjs.js.map +1 -0
  96. package/dist/components/Select/Select.es.js +228 -0
  97. package/dist/components/Select/Select.es.js.map +1 -0
  98. package/dist/components/Switch/Switch.cjs.js +2 -0
  99. package/dist/components/Switch/Switch.cjs.js.map +1 -0
  100. package/dist/components/Switch/Switch.es.js +40 -0
  101. package/dist/components/Switch/Switch.es.js.map +1 -0
  102. package/dist/components/Table/Collection/CompoundComponents.cjs.js +2 -0
  103. package/dist/components/Table/Collection/CompoundComponents.cjs.js.map +1 -0
  104. package/dist/components/Table/Collection/CompoundComponents.es.js +9 -0
  105. package/dist/components/Table/Collection/CompoundComponents.es.js.map +1 -0
  106. package/dist/components/Table/Collection/collectionParser.cjs.js +2 -0
  107. package/dist/components/Table/Collection/collectionParser.cjs.js.map +1 -0
  108. package/dist/components/Table/Collection/collectionParser.es.js +54 -0
  109. package/dist/components/Table/Collection/collectionParser.es.js.map +1 -0
  110. package/dist/components/Table/Collection/useTableCollection.cjs.js +2 -0
  111. package/dist/components/Table/Collection/useTableCollection.cjs.js.map +1 -0
  112. package/dist/components/Table/Collection/useTableCollection.es.js +59 -0
  113. package/dist/components/Table/Collection/useTableCollection.es.js.map +1 -0
  114. package/dist/components/Table/Table.cjs.js +2 -0
  115. package/dist/components/Table/Table.cjs.js.map +1 -0
  116. package/dist/components/Table/Table.es.js +89 -0
  117. package/dist/components/Table/Table.es.js.map +1 -0
  118. package/dist/components/Text/TextEllipsis/TextEllipsis.cjs.js +2 -0
  119. package/dist/components/Text/TextEllipsis/TextEllipsis.cjs.js.map +1 -0
  120. package/dist/components/Text/TextEllipsis/TextEllipsis.es.js +30 -0
  121. package/dist/components/Text/TextEllipsis/TextEllipsis.es.js.map +1 -0
  122. package/dist/components/Text/TextEmphasis/TextEmphasis.cjs.js +2 -0
  123. package/dist/components/Text/TextEmphasis/TextEmphasis.cjs.js.map +1 -0
  124. package/dist/components/Text/TextEmphasis/TextEmphasis.es.js +54 -0
  125. package/dist/components/Text/TextEmphasis/TextEmphasis.es.js.map +1 -0
  126. package/dist/components/ThemeProvider.cjs.js +2 -0
  127. package/dist/components/ThemeProvider.cjs.js.map +1 -0
  128. package/dist/components/ThemeProvider.es.js +42 -0
  129. package/dist/components/ThemeProvider.es.js.map +1 -0
  130. package/dist/components/Tombstone/Tombstone.cjs.js +2 -0
  131. package/dist/components/Tombstone/Tombstone.cjs.js.map +1 -0
  132. package/dist/components/Tombstone/Tombstone.es.js +35 -0
  133. package/dist/components/Tombstone/Tombstone.es.js.map +1 -0
  134. package/dist/components/Tooltip/Tooltip.cjs.js +2 -0
  135. package/dist/components/Tooltip/Tooltip.cjs.js.map +1 -0
  136. package/dist/components/Tooltip/Tooltip.es.js +78 -0
  137. package/dist/components/Tooltip/Tooltip.es.js.map +1 -0
  138. package/dist/components/Waveform/Waveform.cjs.js +2 -0
  139. package/dist/components/Waveform/Waveform.cjs.js.map +1 -0
  140. package/dist/components/Waveform/Waveform.es.js +163 -0
  141. package/dist/components/Waveform/Waveform.es.js.map +1 -0
  142. package/dist/components/Waveform/WaveformBar.cjs.js +2 -0
  143. package/dist/components/Waveform/WaveformBar.cjs.js.map +1 -0
  144. package/dist/components/Waveform/WaveformBar.es.js +74 -0
  145. package/dist/components/Waveform/WaveformBar.es.js.map +1 -0
  146. package/dist/constants/breakpoint.cjs.js +2 -0
  147. package/dist/constants/breakpoint.cjs.js.map +1 -0
  148. package/dist/{breakpoint-9y1_8U_b.mjs → constants/breakpoint.es.js} +2 -2
  149. package/dist/constants/breakpoint.es.js.map +1 -0
  150. package/dist/constants/placement.cjs.js +2 -0
  151. package/dist/constants/placement.cjs.js.map +1 -0
  152. package/dist/constants/placement.es.js +28 -0
  153. package/dist/constants/placement.es.js.map +1 -0
  154. package/dist/constants.cjs.js +1 -1
  155. package/dist/constants.cjs.js.map +1 -1
  156. package/dist/constants.es.js +3 -26
  157. package/dist/constants.es.js.map +1 -1
  158. package/dist/dark.cjs.js +1 -1
  159. package/dist/dark.cjs.js.map +1 -1
  160. package/dist/dark.es.js +8 -55
  161. package/dist/dark.es.js.map +1 -1
  162. package/dist/design/colors.cjs.js +2 -0
  163. package/dist/design/colors.cjs.js.map +1 -0
  164. package/dist/{colors-CWaj9dFz.mjs → design/colors.es.js} +7 -7
  165. package/dist/design/colors.es.js.map +1 -0
  166. package/dist/design/darkTheme/colors.cjs.js +2 -0
  167. package/dist/design/darkTheme/colors.cjs.js.map +1 -0
  168. package/dist/{colors-Ceyo4oCJ.mjs → design/darkTheme/colors.es.js} +13 -13
  169. package/dist/design/darkTheme/colors.es.js.map +1 -0
  170. package/dist/design/darkTheme/stylesheet.cjs.js +2 -0
  171. package/dist/design/darkTheme/stylesheet.cjs.js.map +1 -0
  172. package/dist/design/darkTheme/stylesheet.es.js +52 -0
  173. package/dist/design/darkTheme/stylesheet.es.js.map +1 -0
  174. package/dist/design/generateStylesheet.cjs.js +2 -0
  175. package/dist/design/generateStylesheet.cjs.js.map +1 -0
  176. package/dist/design/generateStylesheet.es.js +26 -0
  177. package/dist/design/generateStylesheet.es.js.map +1 -0
  178. package/dist/design/lightTheme/colors.cjs.js +2 -0
  179. package/dist/design/lightTheme/colors.cjs.js.map +1 -0
  180. package/dist/{colors-DMkDnu4U.mjs → design/lightTheme/colors.es.js} +11 -11
  181. package/dist/design/lightTheme/colors.es.js.map +1 -0
  182. package/dist/design/lightTheme/stylesheet.cjs.js +2 -0
  183. package/dist/design/lightTheme/stylesheet.cjs.js.map +1 -0
  184. package/dist/design/lightTheme/stylesheet.es.js +52 -0
  185. package/dist/design/lightTheme/stylesheet.es.js.map +1 -0
  186. package/dist/design/theme.cjs.js +2 -0
  187. package/dist/design/theme.cjs.js.map +1 -0
  188. package/dist/design/theme.es.js +12 -0
  189. package/dist/design/theme.es.js.map +1 -0
  190. package/dist/hooks/useBreakpoint.cjs.js +2 -0
  191. package/dist/hooks/useBreakpoint.cjs.js.map +1 -0
  192. package/dist/hooks/useBreakpoint.es.js +17 -0
  193. package/dist/hooks/useBreakpoint.es.js.map +1 -0
  194. package/dist/hooks/useIsClosing.cjs.js +2 -0
  195. package/dist/hooks/useIsClosing.cjs.js.map +1 -0
  196. package/dist/hooks/useIsClosing.es.js +30 -0
  197. package/dist/hooks/useIsClosing.es.js.map +1 -0
  198. package/dist/hooks/useLockBodyScroll.cjs.js +2 -0
  199. package/dist/hooks/useLockBodyScroll.cjs.js.map +1 -0
  200. package/dist/hooks/useLockBodyScroll.es.js +14 -0
  201. package/dist/hooks/useLockBodyScroll.es.js.map +1 -0
  202. package/dist/hooks/usePalette.cjs.js +2 -0
  203. package/dist/hooks/usePalette.cjs.js.map +1 -0
  204. package/dist/hooks/usePalette.es.js +37 -0
  205. package/dist/hooks/usePalette.es.js.map +1 -0
  206. package/dist/hooks.cjs.js +1 -1
  207. package/dist/hooks.cjs.js.map +1 -1
  208. package/dist/hooks.es.js +8 -37
  209. package/dist/hooks.es.js.map +1 -1
  210. package/dist/icons.svg +10 -10
  211. package/dist/index.cjs.js +1 -36
  212. package/dist/index.cjs.js.map +1 -1
  213. package/dist/index.d.ts +0 -1
  214. package/dist/index.es.js +60 -5421
  215. package/dist/index.es.js.map +1 -1
  216. package/dist/light.cjs.js +1 -1
  217. package/dist/light.cjs.js.map +1 -1
  218. package/dist/light.es.js +8 -55
  219. package/dist/light.es.js.map +1 -1
  220. package/dist/node_modules/@react-aria/button/dist/useButton.cjs.js +2 -0
  221. package/dist/node_modules/@react-aria/button/dist/useButton.cjs.js.map +1 -0
  222. package/dist/node_modules/@react-aria/button/dist/useButton.es.js +55 -0
  223. package/dist/node_modules/@react-aria/button/dist/useButton.es.js.map +1 -0
  224. package/dist/node_modules/@react-aria/dialog/dist/useDialog.cjs.js +2 -0
  225. package/dist/node_modules/@react-aria/dialog/dist/useDialog.cjs.js.map +1 -0
  226. package/dist/node_modules/@react-aria/dialog/dist/useDialog.es.js +44 -0
  227. package/dist/node_modules/@react-aria/dialog/dist/useDialog.es.js.map +1 -0
  228. package/dist/node_modules/@react-aria/focus/dist/FocusScope.cjs.js +2 -0
  229. package/dist/node_modules/@react-aria/focus/dist/FocusScope.cjs.js.map +1 -0
  230. package/dist/node_modules/@react-aria/focus/dist/FocusScope.es.js +437 -0
  231. package/dist/node_modules/@react-aria/focus/dist/FocusScope.es.js.map +1 -0
  232. package/dist/node_modules/@react-aria/form/dist/useFormValidation.cjs.js +2 -0
  233. package/dist/node_modules/@react-aria/form/dist/useFormValidation.cjs.js.map +1 -0
  234. package/dist/node_modules/@react-aria/form/dist/useFormValidation.es.js +78 -0
  235. package/dist/node_modules/@react-aria/form/dist/useFormValidation.es.js.map +1 -0
  236. package/dist/node_modules/@react-aria/i18n/dist/context.cjs.js +2 -0
  237. package/dist/node_modules/@react-aria/i18n/dist/context.cjs.js.map +1 -0
  238. package/dist/node_modules/@react-aria/i18n/dist/context.es.js +11 -0
  239. package/dist/node_modules/@react-aria/i18n/dist/context.es.js.map +1 -0
  240. package/dist/node_modules/@react-aria/i18n/dist/useDefaultLocale.cjs.js +2 -0
  241. package/dist/node_modules/@react-aria/i18n/dist/useDefaultLocale.cjs.js.map +1 -0
  242. package/dist/node_modules/@react-aria/i18n/dist/useDefaultLocale.es.js +30 -0
  243. package/dist/node_modules/@react-aria/i18n/dist/useDefaultLocale.es.js.map +1 -0
  244. package/dist/node_modules/@react-aria/i18n/dist/utils.cjs.js +2 -0
  245. package/dist/node_modules/@react-aria/i18n/dist/utils.cjs.js.map +1 -0
  246. package/dist/node_modules/@react-aria/i18n/dist/utils.es.js +45 -0
  247. package/dist/node_modules/@react-aria/i18n/dist/utils.es.js.map +1 -0
  248. package/dist/node_modules/@react-aria/interactions/dist/context.cjs.js +2 -0
  249. package/dist/node_modules/@react-aria/interactions/dist/context.cjs.js.map +1 -0
  250. package/dist/node_modules/@react-aria/interactions/dist/context.es.js +10 -0
  251. package/dist/node_modules/@react-aria/interactions/dist/context.es.js.map +1 -0
  252. package/dist/node_modules/@react-aria/interactions/dist/createEventHandler.cjs.js +2 -0
  253. package/dist/node_modules/@react-aria/interactions/dist/createEventHandler.cjs.js.map +1 -0
  254. package/dist/node_modules/@react-aria/interactions/dist/createEventHandler.es.js +29 -0
  255. package/dist/node_modules/@react-aria/interactions/dist/createEventHandler.es.js.map +1 -0
  256. package/dist/node_modules/@react-aria/interactions/dist/focusSafely.cjs.js +2 -0
  257. package/dist/node_modules/@react-aria/interactions/dist/focusSafely.cjs.js.map +1 -0
  258. package/dist/node_modules/@react-aria/interactions/dist/focusSafely.es.js +15 -0
  259. package/dist/node_modules/@react-aria/interactions/dist/focusSafely.es.js.map +1 -0
  260. package/dist/node_modules/@react-aria/interactions/dist/textSelection.cjs.js +2 -0
  261. package/dist/node_modules/@react-aria/interactions/dist/textSelection.cjs.js.map +1 -0
  262. package/dist/node_modules/@react-aria/interactions/dist/textSelection.es.js +35 -0
  263. package/dist/node_modules/@react-aria/interactions/dist/textSelection.es.js.map +1 -0
  264. package/dist/node_modules/@react-aria/interactions/dist/useFocus.cjs.js +2 -0
  265. package/dist/node_modules/@react-aria/interactions/dist/useFocus.cjs.js.map +1 -0
  266. package/dist/node_modules/@react-aria/interactions/dist/useFocus.es.js +30 -0
  267. package/dist/node_modules/@react-aria/interactions/dist/useFocus.es.js.map +1 -0
  268. package/dist/node_modules/@react-aria/interactions/dist/useFocusVisible.cjs.js +2 -0
  269. package/dist/node_modules/@react-aria/interactions/dist/useFocusVisible.cjs.js.map +1 -0
  270. package/dist/node_modules/@react-aria/interactions/dist/useFocusVisible.es.js +63 -0
  271. package/dist/node_modules/@react-aria/interactions/dist/useFocusVisible.es.js.map +1 -0
  272. package/dist/node_modules/@react-aria/interactions/dist/useFocusWithin.cjs.js +2 -0
  273. package/dist/node_modules/@react-aria/interactions/dist/useFocusWithin.cjs.js.map +1 -0
  274. package/dist/node_modules/@react-aria/interactions/dist/useFocusWithin.es.js +56 -0
  275. package/dist/node_modules/@react-aria/interactions/dist/useFocusWithin.es.js.map +1 -0
  276. package/dist/node_modules/@react-aria/interactions/dist/useFocusable.cjs.js +2 -0
  277. package/dist/node_modules/@react-aria/interactions/dist/useFocusable.cjs.js.map +1 -0
  278. package/dist/node_modules/@react-aria/interactions/dist/useFocusable.es.js +42 -0
  279. package/dist/node_modules/@react-aria/interactions/dist/useFocusable.es.js.map +1 -0
  280. package/dist/node_modules/@react-aria/interactions/dist/useInteractOutside.cjs.js +2 -0
  281. package/dist/node_modules/@react-aria/interactions/dist/useInteractOutside.cjs.js.map +1 -0
  282. package/dist/node_modules/@react-aria/interactions/dist/useInteractOutside.es.js +51 -0
  283. package/dist/node_modules/@react-aria/interactions/dist/useInteractOutside.es.js.map +1 -0
  284. package/dist/node_modules/@react-aria/interactions/dist/useKeyboard.cjs.js +2 -0
  285. package/dist/node_modules/@react-aria/interactions/dist/useKeyboard.cjs.js.map +1 -0
  286. package/dist/node_modules/@react-aria/interactions/dist/useKeyboard.es.js +13 -0
  287. package/dist/node_modules/@react-aria/interactions/dist/useKeyboard.es.js.map +1 -0
  288. package/dist/node_modules/@react-aria/interactions/dist/usePress.cjs.js +8 -0
  289. package/dist/node_modules/@react-aria/interactions/dist/usePress.cjs.js.map +1 -0
  290. package/dist/node_modules/@react-aria/interactions/dist/usePress.es.js +386 -0
  291. package/dist/node_modules/@react-aria/interactions/dist/usePress.es.js.map +1 -0
  292. package/dist/node_modules/@react-aria/interactions/dist/utils.cjs.js +2 -0
  293. package/dist/node_modules/@react-aria/interactions/dist/utils.cjs.js.map +1 -0
  294. package/dist/node_modules/@react-aria/interactions/dist/utils.es.js +92 -0
  295. package/dist/node_modules/@react-aria/interactions/dist/utils.es.js.map +1 -0
  296. package/dist/node_modules/@react-aria/label/dist/useField.cjs.js +2 -0
  297. package/dist/node_modules/@react-aria/label/dist/useField.cjs.js.map +1 -0
  298. package/dist/node_modules/@react-aria/label/dist/useField.es.js +36 -0
  299. package/dist/node_modules/@react-aria/label/dist/useField.es.js.map +1 -0
  300. package/dist/node_modules/@react-aria/label/dist/useLabel.cjs.js +2 -0
  301. package/dist/node_modules/@react-aria/label/dist/useLabel.cjs.js.map +1 -0
  302. package/dist/node_modules/@react-aria/label/dist/useLabel.es.js +23 -0
  303. package/dist/node_modules/@react-aria/label/dist/useLabel.es.js.map +1 -0
  304. package/dist/node_modules/@react-aria/overlays/dist/Overlay.cjs.js +2 -0
  305. package/dist/node_modules/@react-aria/overlays/dist/Overlay.cjs.js.map +1 -0
  306. package/dist/node_modules/@react-aria/overlays/dist/Overlay.es.js +16 -0
  307. package/dist/node_modules/@react-aria/overlays/dist/Overlay.es.js.map +1 -0
  308. package/dist/node_modules/@react-aria/overlays/dist/ariaHideOutside.cjs.js +2 -0
  309. package/dist/node_modules/@react-aria/overlays/dist/ariaHideOutside.cjs.js.map +1 -0
  310. package/dist/node_modules/@react-aria/overlays/dist/ariaHideOutside.es.js +70 -0
  311. package/dist/node_modules/@react-aria/overlays/dist/ariaHideOutside.es.js.map +1 -0
  312. package/dist/node_modules/@react-aria/overlays/dist/useModalOverlay.cjs.js +2 -0
  313. package/dist/node_modules/@react-aria/overlays/dist/useModalOverlay.cjs.js.map +1 -0
  314. package/dist/node_modules/@react-aria/overlays/dist/useModalOverlay.es.js +32 -0
  315. package/dist/node_modules/@react-aria/overlays/dist/useModalOverlay.es.js.map +1 -0
  316. package/dist/node_modules/@react-aria/overlays/dist/useOverlay.cjs.js +2 -0
  317. package/dist/node_modules/@react-aria/overlays/dist/useOverlay.cjs.js.map +1 -0
  318. package/dist/node_modules/@react-aria/overlays/dist/useOverlay.es.js +53 -0
  319. package/dist/node_modules/@react-aria/overlays/dist/useOverlay.es.js.map +1 -0
  320. package/dist/node_modules/@react-aria/overlays/dist/usePreventScroll.cjs.js +2 -0
  321. package/dist/node_modules/@react-aria/overlays/dist/usePreventScroll.cjs.js.map +1 -0
  322. package/dist/node_modules/@react-aria/overlays/dist/usePreventScroll.es.js +100 -0
  323. package/dist/node_modules/@react-aria/overlays/dist/usePreventScroll.es.js.map +1 -0
  324. package/dist/node_modules/@react-aria/radio/dist/useRadio.cjs.js +2 -0
  325. package/dist/node_modules/@react-aria/radio/dist/useRadio.cjs.js.map +1 -0
  326. package/dist/node_modules/@react-aria/radio/dist/useRadio.es.js +70 -0
  327. package/dist/node_modules/@react-aria/radio/dist/useRadio.es.js.map +1 -0
  328. package/dist/node_modules/@react-aria/radio/dist/useRadioGroup.cjs.js +2 -0
  329. package/dist/node_modules/@react-aria/radio/dist/useRadioGroup.cjs.js.map +1 -0
  330. package/dist/node_modules/@react-aria/radio/dist/useRadioGroup.es.js +80 -0
  331. package/dist/node_modules/@react-aria/radio/dist/useRadioGroup.es.js.map +1 -0
  332. package/dist/node_modules/@react-aria/radio/dist/utils.cjs.js +2 -0
  333. package/dist/node_modules/@react-aria/radio/dist/utils.cjs.js.map +1 -0
  334. package/dist/node_modules/@react-aria/radio/dist/utils.es.js +5 -0
  335. package/dist/node_modules/@react-aria/radio/dist/utils.es.js.map +1 -0
  336. package/dist/node_modules/@react-aria/ssr/dist/SSRProvider.cjs.js +2 -0
  337. package/dist/node_modules/@react-aria/ssr/dist/SSRProvider.cjs.js.map +1 -0
  338. package/dist/node_modules/@react-aria/ssr/dist/SSRProvider.es.js +19 -0
  339. package/dist/node_modules/@react-aria/ssr/dist/SSRProvider.es.js.map +1 -0
  340. package/dist/node_modules/@react-aria/switch/dist/useSwitch.cjs.js +2 -0
  341. package/dist/node_modules/@react-aria/switch/dist/useSwitch.cjs.js.map +1 -0
  342. package/dist/node_modules/@react-aria/switch/dist/useSwitch.es.js +20 -0
  343. package/dist/node_modules/@react-aria/switch/dist/useSwitch.es.js.map +1 -0
  344. package/dist/node_modules/@react-aria/toggle/dist/useToggle.cjs.js +2 -0
  345. package/dist/node_modules/@react-aria/toggle/dist/useToggle.cjs.js.map +1 -0
  346. package/dist/node_modules/@react-aria/toggle/dist/useToggle.es.js +60 -0
  347. package/dist/node_modules/@react-aria/toggle/dist/useToggle.es.js.map +1 -0
  348. package/dist/node_modules/@react-aria/visually-hidden/dist/VisuallyHidden.cjs.js +2 -0
  349. package/dist/node_modules/@react-aria/visually-hidden/dist/VisuallyHidden.cjs.js.map +1 -0
  350. package/dist/node_modules/@react-aria/visually-hidden/dist/VisuallyHidden.es.js +41 -0
  351. package/dist/node_modules/@react-aria/visually-hidden/dist/VisuallyHidden.es.js.map +1 -0
  352. package/dist/node_modules/@react-stately/form/dist/useFormValidationState.cjs.js +2 -0
  353. package/dist/node_modules/@react-stately/form/dist/useFormValidationState.cjs.js.map +1 -0
  354. package/dist/node_modules/@react-stately/form/dist/useFormValidationState.es.js +110 -0
  355. package/dist/node_modules/@react-stately/form/dist/useFormValidationState.es.js.map +1 -0
  356. package/dist/node_modules/@react-stately/overlays/dist/useOverlayTriggerState.cjs.js +2 -0
  357. package/dist/node_modules/@react-stately/overlays/dist/useOverlayTriggerState.cjs.js.map +1 -0
  358. package/dist/node_modules/@react-stately/overlays/dist/useOverlayTriggerState.es.js +30 -0
  359. package/dist/node_modules/@react-stately/overlays/dist/useOverlayTriggerState.es.js.map +1 -0
  360. package/dist/node_modules/@react-stately/radio/dist/useRadioGroupState.cjs.js +2 -0
  361. package/dist/node_modules/@react-stately/radio/dist/useRadioGroupState.cjs.js.map +1 -0
  362. package/dist/node_modules/@react-stately/radio/dist/useRadioGroupState.es.js +35 -0
  363. package/dist/node_modules/@react-stately/radio/dist/useRadioGroupState.es.js.map +1 -0
  364. package/dist/node_modules/@react-stately/toggle/dist/useToggleState.cjs.js +2 -0
  365. package/dist/node_modules/@react-stately/toggle/dist/useToggleState.cjs.js.map +1 -0
  366. package/dist/node_modules/@react-stately/toggle/dist/useToggleState.es.js +22 -0
  367. package/dist/node_modules/@react-stately/toggle/dist/useToggleState.es.js.map +1 -0
  368. package/dist/node_modules/@react-stately/utils/dist/useControlledState.cjs.js +2 -0
  369. package/dist/node_modules/@react-stately/utils/dist/useControlledState.cjs.js.map +1 -0
  370. package/dist/node_modules/@react-stately/utils/dist/useControlledState.es.js +31 -0
  371. package/dist/node_modules/@react-stately/utils/dist/useControlledState.es.js.map +1 -0
  372. package/dist/node_modules/@swc/helpers/esm/_check_private_redeclaration.cjs.js +2 -0
  373. package/dist/node_modules/@swc/helpers/esm/_check_private_redeclaration.cjs.js.map +1 -0
  374. package/dist/node_modules/@swc/helpers/esm/_check_private_redeclaration.es.js +9 -0
  375. package/dist/node_modules/@swc/helpers/esm/_check_private_redeclaration.es.js.map +1 -0
  376. package/dist/node_modules/@swc/helpers/esm/_class_apply_descriptor_get.cjs.js +2 -0
  377. package/dist/node_modules/@swc/helpers/esm/_class_apply_descriptor_get.cjs.js.map +1 -0
  378. package/dist/node_modules/@swc/helpers/esm/_class_apply_descriptor_get.es.js +8 -0
  379. package/dist/node_modules/@swc/helpers/esm/_class_apply_descriptor_get.es.js.map +1 -0
  380. package/dist/node_modules/@swc/helpers/esm/_class_apply_descriptor_set.cjs.js +2 -0
  381. package/dist/node_modules/@swc/helpers/esm/_class_apply_descriptor_set.cjs.js.map +1 -0
  382. package/dist/node_modules/@swc/helpers/esm/_class_apply_descriptor_set.es.js +13 -0
  383. package/dist/node_modules/@swc/helpers/esm/_class_apply_descriptor_set.es.js.map +1 -0
  384. package/dist/node_modules/@swc/helpers/esm/_class_extract_field_descriptor.cjs.js +2 -0
  385. package/dist/node_modules/@swc/helpers/esm/_class_extract_field_descriptor.cjs.js.map +1 -0
  386. package/dist/node_modules/@swc/helpers/esm/_class_extract_field_descriptor.es.js +9 -0
  387. package/dist/node_modules/@swc/helpers/esm/_class_extract_field_descriptor.es.js.map +1 -0
  388. package/dist/node_modules/@swc/helpers/esm/_class_private_field_get.cjs.js +2 -0
  389. package/dist/node_modules/@swc/helpers/esm/_class_private_field_get.cjs.js.map +1 -0
  390. package/dist/node_modules/@swc/helpers/esm/_class_private_field_get.es.js +11 -0
  391. package/dist/node_modules/@swc/helpers/esm/_class_private_field_get.es.js.map +1 -0
  392. package/dist/node_modules/@swc/helpers/esm/_class_private_field_init.cjs.js +2 -0
  393. package/dist/node_modules/@swc/helpers/esm/_class_private_field_init.cjs.js.map +1 -0
  394. package/dist/node_modules/@swc/helpers/esm/_class_private_field_init.es.js +9 -0
  395. package/dist/node_modules/@swc/helpers/esm/_class_private_field_init.es.js.map +1 -0
  396. package/dist/node_modules/@swc/helpers/esm/_class_private_field_set.cjs.js +2 -0
  397. package/dist/node_modules/@swc/helpers/esm/_class_private_field_set.cjs.js.map +1 -0
  398. package/dist/node_modules/@swc/helpers/esm/_class_private_field_set.es.js +11 -0
  399. package/dist/node_modules/@swc/helpers/esm/_class_private_field_set.es.js.map +1 -0
  400. package/dist/node_modules/color2k/dist/index.exports.import.es.cjs.js +2 -0
  401. package/dist/node_modules/color2k/dist/index.exports.import.es.cjs.js.map +1 -0
  402. package/dist/node_modules/color2k/dist/index.exports.import.es.es.js +171 -0
  403. package/dist/node_modules/color2k/dist/index.exports.import.es.es.js.map +1 -0
  404. package/dist/node_modules/react/cjs/react-jsx-runtime.development.cjs.js +23 -0
  405. package/dist/node_modules/react/cjs/react-jsx-runtime.development.cjs.js.map +1 -0
  406. package/dist/node_modules/react/cjs/react-jsx-runtime.development.es.js +609 -0
  407. package/dist/node_modules/react/cjs/react-jsx-runtime.development.es.js.map +1 -0
  408. package/dist/node_modules/react/cjs/react-jsx-runtime.production.min.cjs.js +10 -0
  409. package/dist/node_modules/react/cjs/react-jsx-runtime.production.min.cjs.js.map +1 -0
  410. package/dist/node_modules/react/cjs/react-jsx-runtime.production.min.es.js +29 -0
  411. package/dist/node_modules/react/cjs/react-jsx-runtime.production.min.es.js.map +1 -0
  412. package/dist/node_modules/react/jsx-runtime.cjs.js +2 -0
  413. package/dist/node_modules/react/jsx-runtime.cjs.js.map +1 -0
  414. package/dist/node_modules/react/jsx-runtime.es.js +9 -0
  415. package/dist/node_modules/react/jsx-runtime.es.js.map +1 -0
  416. package/dist/node_modules/react-aria-components/dist/OverlayArrow.cjs.js +2 -0
  417. package/dist/node_modules/react-aria-components/dist/OverlayArrow.cjs.js.map +1 -0
  418. package/dist/node_modules/react-aria-components/dist/OverlayArrow.es.js +37 -0
  419. package/dist/node_modules/react-aria-components/dist/OverlayArrow.es.js.map +1 -0
  420. package/dist/node_modules/react-aria-components/dist/Tooltip.cjs.js +2 -0
  421. package/dist/node_modules/react-aria-components/dist/Tooltip.cjs.js.map +1 -0
  422. package/dist/node_modules/react-aria-components/dist/Tooltip.es.js +98 -0
  423. package/dist/node_modules/react-aria-components/dist/Tooltip.es.js.map +1 -0
  424. package/dist/node_modules/react-aria-components/dist/utils.cjs.js +2 -0
  425. package/dist/node_modules/react-aria-components/dist/utils.cjs.js.map +1 -0
  426. package/dist/node_modules/react-aria-components/dist/utils.es.js +89 -0
  427. package/dist/node_modules/react-aria-components/dist/utils.es.js.map +1 -0
  428. package/dist/theme.cjs.js +1 -1
  429. package/dist/theme.cjs.js.map +1 -1
  430. package/dist/theme.es.js +9 -15
  431. package/dist/theme.es.js.map +1 -1
  432. package/dist/utils/color2k.cjs.js +2 -0
  433. package/dist/utils/color2k.cjs.js.map +1 -0
  434. package/dist/utils/color2k.es.js +14 -0
  435. package/dist/utils/color2k.es.js.map +1 -0
  436. package/dist/utils/copy.cjs.js +2 -0
  437. package/dist/utils/copy.cjs.js.map +1 -0
  438. package/dist/utils/copy.es.js +31 -0
  439. package/dist/utils/copy.es.js.map +1 -0
  440. package/dist/utils/image.cjs.js +2 -0
  441. package/dist/utils/image.cjs.js.map +1 -0
  442. package/dist/utils/image.es.js +28 -0
  443. package/dist/utils/image.es.js.map +1 -0
  444. package/dist/utils/navigation.cjs.js +2 -0
  445. package/dist/utils/navigation.cjs.js.map +1 -0
  446. package/dist/utils/navigation.es.js +12 -0
  447. package/dist/utils/navigation.es.js.map +1 -0
  448. package/dist/utils/palette.cjs.js +2 -0
  449. package/dist/utils/palette.cjs.js.map +1 -0
  450. package/dist/utils/palette.es.js +183 -0
  451. package/dist/utils/palette.es.js.map +1 -0
  452. package/dist/utils/string.cjs.js +2 -0
  453. package/dist/utils/string.cjs.js.map +1 -0
  454. package/dist/utils/string.es.js +8 -0
  455. package/dist/utils/string.es.js.map +1 -0
  456. package/dist/utils.cjs.js +1 -1
  457. package/dist/utils.es.js +19 -15
  458. package/dist/utils.es.js.map +1 -1
  459. package/package.json +140 -140
  460. package/dist/breakpoint-9y1_8U_b.mjs.map +0 -1
  461. package/dist/breakpoint-DtqbboOa.js +0 -2
  462. package/dist/breakpoint-DtqbboOa.js.map +0 -1
  463. package/dist/color2k-CpDB_dpw.mjs +0 -168
  464. package/dist/color2k-CpDB_dpw.mjs.map +0 -1
  465. package/dist/color2k-DCgwXUem.js +0 -2
  466. package/dist/color2k-DCgwXUem.js.map +0 -1
  467. package/dist/colors-CWaj9dFz.mjs.map +0 -1
  468. package/dist/colors-CebzFjpe.js +0 -2
  469. package/dist/colors-CebzFjpe.js.map +0 -1
  470. package/dist/colors-Ceyo4oCJ.mjs.map +0 -1
  471. package/dist/colors-CmSJBHaf.js +0 -2
  472. package/dist/colors-CmSJBHaf.js.map +0 -1
  473. package/dist/colors-DL1dYffC.js +0 -2
  474. package/dist/colors-DL1dYffC.js.map +0 -1
  475. package/dist/colors-DMkDnu4U.mjs.map +0 -1
  476. package/dist/image-CUSfY1_T.js +0 -2
  477. package/dist/image-CUSfY1_T.js.map +0 -1
  478. package/dist/image-DFyN0Kd9.mjs +0 -207
  479. package/dist/image-DFyN0Kd9.mjs.map +0 -1
  480. package/dist/navigation-BB0MBIiR.js +0 -2
  481. package/dist/navigation-BB0MBIiR.js.map +0 -1
  482. package/dist/navigation-Bj7Pex9j.mjs +0 -43
  483. package/dist/navigation-Bj7Pex9j.mjs.map +0 -1
  484. package/dist/useBreakpoint-CjRyGKN-.mjs +0 -53
  485. package/dist/useBreakpoint-CjRyGKN-.mjs.map +0 -1
  486. package/dist/useBreakpoint-DA-JqOu3.js +0 -2
  487. package/dist/useBreakpoint-DA-JqOu3.js.map +0 -1
@@ -0,0 +1,78 @@
1
+ import { j as r } from "../../node_modules/react/jsx-runtime.es.js";
2
+ import { OverlayArrow as T } from "../../node_modules/react-aria-components/dist/OverlayArrow.es.js";
3
+ import { TooltipTrigger as g, Tooltip as j } from "../../node_modules/react-aria-components/dist/Tooltip.es.js";
4
+ import { Focusable as $ } from "react-aria";
5
+ import { useState as _, useRef as x } from "react";
6
+ import { useTheme as v } from "../ThemeProvider.es.js";
7
+ /* empty css */
8
+ /* empty css */
9
+ import { csx as d } from "../../utils/string.es.js";
10
+ function w({ children: e, arrow: n, ...l }) {
11
+ const { style: o, className: t } = v();
12
+ return /* @__PURE__ */ r.jsxs(
13
+ j,
14
+ {
15
+ ...l,
16
+ className: d("proton__Tooltip", "proton-Dialog", t),
17
+ style: o,
18
+ children: [
19
+ n && /* @__PURE__ */ r.jsx(T, { className: d("proton__TooltipArrow", t), children: /* @__PURE__ */ r.jsx("svg", { width: 8, height: 8, viewBox: "0 0 8 8", children: /* @__PURE__ */ r.jsx("path", { d: "M0 0 L4 4 L8 0" }) }) }),
20
+ e
21
+ ]
22
+ }
23
+ );
24
+ }
25
+ function k({
26
+ children: e,
27
+ // trigger props
28
+ delay: n = 500,
29
+ closeDelay: l = 500,
30
+ isDisabled: o,
31
+ defaultOpen: t,
32
+ onOpenChange: c,
33
+ disableTriggerClick: f,
34
+ // tooltip props
35
+ content: u,
36
+ ...h
37
+ }) {
38
+ const [a, s] = _(!1), i = x(!1), m = x(!1);
39
+ return u === "" ? null : /* @__PURE__ */ r.jsxs(
40
+ g,
41
+ {
42
+ delay: n,
43
+ closeDelay: l,
44
+ isDisabled: o,
45
+ isOpen: a,
46
+ defaultOpen: t,
47
+ onOpenChange: (p) => {
48
+ p && !i.current && (m.current = !0), c && c(p), i.current || s(p), i.current = !1;
49
+ },
50
+ children: [
51
+ f ? /* @__PURE__ */ r.jsx("span", { className: "proton__TooltipTrigger", "aria-label": "Show tooltip", children: e }) : /* @__PURE__ */ r.jsx($, { children: /* @__PURE__ */ r.jsx(
52
+ "div",
53
+ {
54
+ role: "button",
55
+ "aria-label": "Show tooltip",
56
+ className: "proton__TooltipTrigger",
57
+ "data-hovered": a,
58
+ onMouseEnter: () => {
59
+ o || s(!0);
60
+ },
61
+ onMouseLeave: () => {
62
+ o || s(!1);
63
+ },
64
+ onClick: () => {
65
+ f || o || m.current || (i.current = !0, s(!a));
66
+ },
67
+ children: e
68
+ }
69
+ ) }),
70
+ /* @__PURE__ */ r.jsx(w, { ...h, children: u })
71
+ ]
72
+ }
73
+ );
74
+ }
75
+ export {
76
+ k as TooltipTrigger
77
+ };
78
+ //# sourceMappingURL=Tooltip.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tooltip.es.js","sources":["../../../src/components/Tooltip/Tooltip.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport {\r\n Tooltip as AriaTooltip,\r\n TooltipProps as AriaTooltipProps,\r\n TooltipTrigger as AriaTooltipTrigger,\r\n Focusable,\r\n OverlayArrow,\r\n TooltipTriggerComponentProps,\r\n} from \"react-aria-components\";\r\n\r\nimport { useRef, useState } from \"react\";\r\nimport { useTheme } from \"../ThemeProvider\";\r\n\r\nimport { csx } from \"../../utils\";\r\nimport \"../Dialog/Dialog.css\";\r\nimport \"./Tooltip.css\";\r\n\r\nexport interface TooltipProps extends Omit<AriaTooltipProps, \"children\"> {\r\n children: React.ReactNode;\r\n arrow?: boolean;\r\n}\r\n\r\nfunction Tooltip({ children, arrow, ...props }: TooltipProps) {\r\n const { style, className } = useTheme();\r\n\r\n return (\r\n <AriaTooltip\r\n {...props}\r\n className={csx(\"proton__Tooltip\", \"proton-Dialog\", className)}\r\n style={style as React.CSSProperties}\r\n >\r\n {arrow && (\r\n <OverlayArrow className={csx(\"proton__TooltipArrow\", className)}>\r\n <svg width={8} height={8} viewBox=\"0 0 8 8\">\r\n <path d=\"M0 0 L4 4 L8 0\" />\r\n </svg>\r\n </OverlayArrow>\r\n )}\r\n\r\n {children}\r\n </AriaTooltip>\r\n );\r\n}\r\n\r\nexport interface TooltipTriggerProps\r\n extends TooltipProps,\r\n TooltipTriggerComponentProps {\r\n children: React.ReactNode;\r\n /**\r\n * The content to display in the tooltip. Zero-length titles string are never displayed.\r\n */\r\n content: string | React.ReactNode;\r\n /**\r\n * Whether to disable the trigger click feature.\r\n */\r\n disableTriggerClick?: boolean;\r\n}\r\n\r\n/**\r\n * Proton's TooltipTrigger component deviates from the Aria TooltipTrigger in that on mobile,\r\n * the trigger also opens the tooltip on click as well as hover & focus. This is to improve\r\n * accessibility and usability on mobile.\r\n *\r\n * If you wish to disable the trigger click feature, you can set the `disableTriggerClick` prop.\r\n * This is useful when using an info only Tooltip that might wrap a clickable element.\r\n *\r\n * API:\r\n * - {@link TooltipTriggerProps}\r\n * - extends {@link TooltipProps}\r\n * - extends {@link TooltipTriggerComponentProps}\r\n *\r\n * @example\r\n * ```tsx\r\n <TooltipTrigger content={...} placement=\"top\" arrow isDisabled={disabled}>\r\n {children}\r\n </TooltipTrigger>\r\n * ```\r\n */\r\nexport function TooltipTrigger({\r\n children,\r\n // trigger props\r\n delay = 500,\r\n closeDelay = 500,\r\n isDisabled,\r\n defaultOpen,\r\n onOpenChange,\r\n disableTriggerClick,\r\n // tooltip props\r\n content,\r\n ...tooltipProps\r\n}: TooltipTriggerProps) {\r\n const [isOpen, setIsOpen] = useState(false);\r\n const triggerClickRef = useRef<boolean>(false);\r\n const hasHovered = useRef<boolean>(false);\r\n\r\n if (content === \"\") return null;\r\n\r\n return (\r\n <AriaTooltipTrigger\r\n delay={delay}\r\n closeDelay={closeDelay}\r\n isDisabled={isDisabled}\r\n isOpen={isOpen}\r\n defaultOpen={defaultOpen}\r\n onOpenChange={(openState) => {\r\n // When opened via hover, we want to disable the trigger click feature as it causes\r\n // the tooltip state to get out of sync with the trigger state.\r\n if (openState && !triggerClickRef.current) hasHovered.current = true;\r\n\r\n if (onOpenChange) onOpenChange(openState);\r\n\r\n // If the tooltip is clicked, it manually calls setIsOpen, so we don't want to call\r\n // it again here.\r\n if (!triggerClickRef.current) setIsOpen(openState);\r\n triggerClickRef.current = false;\r\n }}\r\n >\r\n {disableTriggerClick ? (\r\n <span className=\"proton__TooltipTrigger\" aria-label=\"Show tooltip\">\r\n {children}\r\n </span>\r\n ) : (\r\n <Focusable>\r\n <div\r\n role=\"button\"\r\n aria-label=\"Show tooltip\"\r\n className=\"proton__TooltipTrigger\"\r\n data-hovered={isOpen}\r\n onMouseEnter={() => {\r\n if (!isDisabled) {\r\n setIsOpen(true);\r\n }\r\n }}\r\n onMouseLeave={() => {\r\n if (!isDisabled) {\r\n setIsOpen(false);\r\n }\r\n }}\r\n onClick={() => {\r\n if (disableTriggerClick || isDisabled) return;\r\n\r\n // Once hovered it's safe to assume the user isn't trying to use via a touch device,\r\n // so we can safely disable the trigger click feature.\r\n if (hasHovered.current) return;\r\n\r\n triggerClickRef.current = true;\r\n setIsOpen(!isOpen);\r\n }}\r\n >\r\n {children}\r\n </div>\r\n </Focusable>\r\n )}\r\n <Tooltip {...tooltipProps}>{content}</Tooltip>\r\n </AriaTooltipTrigger>\r\n );\r\n}\r\n"],"names":["Tooltip","children","arrow","props","style","className","useTheme","jsxs","AriaTooltip","csx","jsx","OverlayArrow","TooltipTrigger","delay","closeDelay","isDisabled","defaultOpen","onOpenChange","disableTriggerClick","content","tooltipProps","isOpen","setIsOpen","useState","triggerClickRef","useRef","hasHovered","AriaTooltipTrigger","openState","Focusable"],"mappings":";;;;;;;;;AAuBA,SAASA,EAAQ,EAAE,UAAAC,GAAU,OAAAC,GAAO,GAAGC,KAAuB;AAC5D,QAAM,EAAE,OAAAC,GAAO,WAAAC,EAAU,IAAIC,EAAS;AAGpC,SAAAC,gBAAAA,EAAA;AAAA,IAACC;AAAAA,IAAA;AAAA,MACE,GAAGL;AAAA,MACJ,WAAWM,EAAI,mBAAmB,iBAAiBJ,CAAS;AAAA,MAC5D,OAAAD;AAAA,MAEC,UAAA;AAAA,QACCF,KAAAQ,gBAAAA,EAAA,IAACC,KAAa,WAAWF,EAAI,wBAAwBJ,CAAS,GAC5D,gCAAC,OAAI,EAAA,OAAO,GAAG,QAAQ,GAAG,SAAQ,WAChC,UAAAK,gBAAAA,EAAAA,IAAC,UAAK,GAAE,kBAAiB,GAC3B,EACF,CAAA;AAAA,QAGDT;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGP;AAoCO,SAASW,EAAe;AAAA,EAC7B,UAAAX;AAAA;AAAA,EAEA,OAAAY,IAAQ;AAAA,EACR,YAAAC,IAAa;AAAA,EACb,YAAAC;AAAA,EACA,aAAAC;AAAA,EACA,cAAAC;AAAA,EACA,qBAAAC;AAAA;AAAA,EAEA,SAAAC;AAAA,EACA,GAAGC;AACL,GAAwB;AACtB,QAAM,CAACC,GAAQC,CAAS,IAAIC,EAAS,EAAK,GACpCC,IAAkBC,EAAgB,EAAK,GACvCC,IAAaD,EAAgB,EAAK;AAEpC,SAAAN,MAAY,KAAW,OAGzBZ,gBAAAA,EAAA;AAAA,IAACoB;AAAAA,IAAA;AAAA,MACC,OAAAd;AAAA,MACA,YAAAC;AAAA,MACA,YAAAC;AAAA,MACA,QAAAM;AAAA,MACA,aAAAL;AAAA,MACA,cAAc,CAACY,MAAc;AAG3B,QAAIA,KAAa,CAACJ,EAAgB,cAAoB,UAAU,KAE5DP,OAA2BW,CAAS,GAInCJ,EAAgB,WAASF,EAAUM,CAAS,GACjDJ,EAAgB,UAAU;AAAA,MAC5B;AAAA,MAEC,UAAA;AAAA,QACCN,IAAAR,gBAAAA,EAAAA,IAAC,UAAK,WAAU,0BAAyB,cAAW,gBACjD,UAAAT,EACH,CAAA,IAEAS,gBAAAA,EAAAA,IAACmB,GACC,EAAA,UAAAnB,gBAAAA,EAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,cAAW;AAAA,YACX,WAAU;AAAA,YACV,gBAAcW;AAAA,YACd,cAAc,MAAM;AAClB,cAAKN,KACHO,EAAU,EAAI;AAAA,YAElB;AAAA,YACA,cAAc,MAAM;AAClB,cAAKP,KACHO,EAAU,EAAK;AAAA,YAEnB;AAAA,YACA,SAAS,MAAM;AACb,cAAIJ,KAAuBH,KAIvBW,EAAW,YAEfF,EAAgB,UAAU,IAC1BF,EAAU,CAACD,CAAM;AAAA,YACnB;AAAA,YAEC,UAAApB;AAAA,UAAA;AAAA,QAAA,GAEL;AAAA,QAEDS,gBAAAA,EAAA,IAAAV,GAAA,EAAS,GAAGoB,GAAe,UAAQD,EAAA,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAG1C;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("../../node_modules/react/jsx-runtime.cjs.js"),v=require("react"),H=require("../ThemeProvider.cjs.js");;/* empty css */const L=require("./WaveformBar.cjs.js"),$=require("../../utils/string.cjs.js"),X=K(100);function F({data:e,resolution:t=2,startDuration:s,endDuration:a,currentTime:m=0,showTimestamps:g=!1,totalDuration:l,disabled:f,disabledMessage:d,onClick:h,"data-testid":p}){var P;const{className:_}=H.useTheme(),o=v.useRef(null),[W,B]=v.useState([]),[j,b]=v.useState(null),[w,I]=v.useState(!1),[N,q]=v.useState(!1),y=e||X,M=t;v.useEffect(()=>{if(!o.current)return;const r=i=>{const x=Math.floor(i/(t+M)),R=G(y,x);B(R)},n=o.current.clientWidth;r(n);const c=new ResizeObserver(i=>{i&&i[0]&&r(i[0].contentRect.width)});return c.observe(o.current),()=>c.disconnect()},[y,t,M]),v.useEffect(()=>{const r=setTimeout(()=>I(!0),50),n=setTimeout(()=>q(!0),500);return()=>{clearTimeout(r),clearTimeout(n)}},[]);const A=r=>{if(!o.current)return;const n=o.current.getBoundingClientRect(),i=(r.clientX-n.left)/n.width*l;b(i)},z=()=>{b(null)},O=t+M,E=(r,n)=>{var x;const c=r/l*100;return(n==="start"?Math.floor(c/100*W.length):Math.ceil(c/100*W.length))*O/((x=o.current)==null?void 0:x.clientWidth)*100},V=(P=o.current)==null?void 0:P.clientWidth,S=v.useMemo(()=>f&&d?d:e?null:"Waveform Unavailable",[f,d,e]);return u.jsxRuntimeExports.jsxs("div",{className:$.csx("proton-Waveform",_),"data-testid":p,children:[g&&u.jsxRuntimeExports.jsx(T,{direction:"left",seconds:m}),u.jsxRuntimeExports.jsxs("div",{ref:o,className:"proton-Waveform__container",onMouseMove:A,onMouseLeave:z,onClick:r=>{if(!o.current||f)return;const n=o.current.getBoundingClientRect(),i=(r.clientX-n.left)/n.width*l;h==null||h(i,r)},"data-disabled":f,"data-testid":"waveform-container",children:[s!==void 0&&a!==void 0&&u.jsxRuntimeExports.jsx("div",{className:"proton-Waveform__active-region",style:{left:o.current?`calc(${E(s,"start")}%`:"0%",right:o.current?`calc(${100-E(a,"end")}% - 2px)`:"0%"}}),j!==null&&u.jsxRuntimeExports.jsx("div",{className:"proton-Waveform__hover-line",style:{left:`${j/l*100}%`}}),W.map((r,n)=>{const c=n/W.length*l,i=s!==void 0&&a!==void 0&&(c<s||c>a),x=m===0?!1:c<=m,R=j!==null&&c<=j;return u.jsxRuntimeExports.jsx(L.WaveformBar,{amplitude:r,isDisabled:f||i,isPlayed:x,isHovered:R,isVisible:w,hasAnimated:N,resolution:t,spacing:M,index:n},n)})]}),S&&u.jsxRuntimeExports.jsx("div",{className:"proton-Waveform__bar-unavailable",style:{fontSize:V<325?"0.85rem":"1rem"},children:S}),g&&u.jsxRuntimeExports.jsx(T,{direction:"right",seconds:l})]})}function T({direction:e,seconds:t}){return u.jsxRuntimeExports.jsx("div",{className:$.csx("proton-Waveform__timestamp",`proton-Waveform__timestamp--${e}`),children:U(t)})}function U(e){const t=Math.floor(e/60),s=Math.floor(e%60);return`${t}:${s<10?"0":""}${s.toFixed(0)}`}function G(e,t){const s=e.length,a=s/t,m=new Array(t).fill(0).map((g,l)=>{const f=l*a,d=Math.floor(f),h=Math.min(d+1,s-1),p=f-d;return e[d]*(1-p)+e[h]*p});return J(m)}function J(e){const t=Math.min(...e),s=Math.max(...e);return e.map(a=>{const m=(a-t)/(s-t);return Math.max(m*.8+.1,.1)})}function K(e){return Array.from({length:e},(t,s)=>{const m=s/(e-1)*6*2*Math.PI-Math.PI/2;return Math.sin(m)*.5+.5})}exports.Waveform=F;
2
+ //# sourceMappingURL=Waveform.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Waveform.cjs.js","sources":["../../../src/components/Waveform/Waveform.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport { useEffect, useMemo, useRef, useState } from \"react\";\r\nimport { csx } from \"../../utils\";\r\nimport { useTheme } from \"../ThemeProvider\";\r\nimport \"./Waveform.css\";\r\nimport { WaveformBar } from \"./WaveformBar\";\r\n\r\nexport interface WaveformProps {\r\n /**\r\n * Array of normalized amplitude values (0-1) representing the waveform.\r\n * If not provided, uses a sample sine wave.\r\n */\r\n data?: number[];\r\n\r\n /**\r\n * Current playback position in seconds.\r\n */\r\n currentTime?: number;\r\n\r\n /**\r\n * Test ID for testing purposes.\r\n */\r\n \"data-testid\"?: string;\r\n\r\n /**\r\n * Whether the entire waveform is disabled.\r\n */\r\n disabled?: boolean;\r\n\r\n /**\r\n * Reason for the waveform being disabled.\r\n */\r\n disabledMessage?: string;\r\n\r\n /**\r\n * End time to display until in seconds.\r\n */\r\n endDuration?: number;\r\n\r\n /**\r\n * Click handler that receives the clicked position (0-1) and event.\r\n */\r\n onClick?: (position: number, e: React.MouseEvent<HTMLDivElement>) => void;\r\n\r\n /**\r\n * Width in pixels of each waveform bar.\r\n */\r\n resolution?: number;\r\n\r\n /**\r\n * Whether to show timestamp markers.\r\n */\r\n showTimestamps?: boolean;\r\n\r\n /**\r\n * Start time to display from in seconds.\r\n */\r\n startDuration?: number;\r\n\r\n /**\r\n * Total duration of the audio in seconds.\r\n */\r\n totalDuration: number;\r\n}\r\n\r\nconst sampleWaveform = generateSampleWaveformData(100);\r\n\r\n/**\r\n * A waveform visualization component that displays audio data with interactive features.\r\n *\r\n * API:\r\n * - {@link WaveformProps}\r\n */\r\nexport function Waveform({\r\n data: waveformData,\r\n resolution = 2,\r\n startDuration,\r\n endDuration,\r\n currentTime = 0,\r\n showTimestamps = false,\r\n totalDuration,\r\n disabled,\r\n disabledMessage,\r\n onClick,\r\n \"data-testid\": testId,\r\n}: WaveformProps) {\r\n const { className } = useTheme();\r\n const containerRef = useRef<HTMLDivElement>(null);\r\n const [processedWaveform, setProcessedWaveform] = useState<number[]>([]);\r\n const [hoverPosition, setHoverPosition] = useState<number | null>(null);\r\n const [isVisible, setIsVisible] = useState(false);\r\n const [hasAnimated, setHasAnimated] = useState(false);\r\n\r\n const waveform = waveformData || sampleWaveform;\r\n\r\n const spacing = resolution;\r\n\r\n useEffect(() => {\r\n if (!containerRef.current) return;\r\n\r\n const processWaveform = (width: number) => {\r\n const numBars = Math.floor(width / (resolution + spacing));\r\n const processed = resampleData(waveform, numBars);\r\n setProcessedWaveform(processed);\r\n };\r\n\r\n const initialWidth = containerRef.current.clientWidth;\r\n processWaveform(initialWidth);\r\n\r\n const resizeObserver = new ResizeObserver((entries) => {\r\n if (entries && entries[0]) {\r\n processWaveform(entries[0].contentRect.width);\r\n }\r\n });\r\n\r\n resizeObserver.observe(containerRef.current);\r\n\r\n return () => resizeObserver.disconnect();\r\n }, [waveform, resolution, spacing]);\r\n\r\n useEffect(() => {\r\n const visibilityTimer = setTimeout(() => setIsVisible(true), 50);\r\n const animationTimer = setTimeout(() => setHasAnimated(true), 500);\r\n\r\n return () => {\r\n clearTimeout(visibilityTimer);\r\n clearTimeout(animationTimer);\r\n };\r\n }, []);\r\n\r\n const handleMouseMove = (e: React.MouseEvent<HTMLDivElement>) => {\r\n if (!containerRef.current) return;\r\n const rect = containerRef.current.getBoundingClientRect();\r\n const x = e.clientX - rect.left;\r\n const position = (x / rect.width) * totalDuration;\r\n setHoverPosition(position);\r\n };\r\n\r\n const handleMouseLeave = () => {\r\n setHoverPosition(null);\r\n };\r\n\r\n // Calculate the width of a single bar including spacing\r\n const barTotalWidth = resolution + spacing;\r\n\r\n // Find the nearest bar boundaries for start and end durations\r\n const getBarPosition = (time: number, direction: \"start\" | \"end\") => {\r\n const position = (time / totalDuration) * 100;\r\n const barIndex =\r\n direction === \"start\"\r\n ? Math.floor((position / 100) * processedWaveform.length)\r\n : Math.ceil((position / 100) * processedWaveform.length);\r\n\r\n return (\r\n ((barIndex * barTotalWidth) / containerRef.current?.clientWidth!) * 100\r\n );\r\n };\r\n\r\n const containerWidth = containerRef.current?.clientWidth;\r\n const waveformMessage = useMemo(() => {\r\n if (disabled && disabledMessage) return disabledMessage;\r\n if (!waveformData) return \"Waveform Unavailable\";\r\n\r\n return null;\r\n }, [disabled, disabledMessage, waveformData]);\r\n\r\n return (\r\n <div className={csx(\"proton-Waveform\", className)} data-testid={testId}>\r\n {showTimestamps && (\r\n <TimestampBlock direction=\"left\" seconds={currentTime} />\r\n )}\r\n <div\r\n ref={containerRef}\r\n className=\"proton-Waveform__container\"\r\n onMouseMove={handleMouseMove}\r\n onMouseLeave={handleMouseLeave}\r\n onClick={(e) => {\r\n if (!containerRef.current || disabled) return;\r\n const rect = containerRef.current.getBoundingClientRect();\r\n const x = e.clientX - rect.left;\r\n const position = (x / rect.width) * totalDuration;\r\n onClick?.(position, e);\r\n }}\r\n data-disabled={disabled}\r\n data-testid=\"waveform-container\"\r\n >\r\n {startDuration !== undefined && endDuration !== undefined && (\r\n <div\r\n className=\"proton-Waveform__active-region\"\r\n style={{\r\n left: containerRef.current\r\n ? `calc(${getBarPosition(startDuration, \"start\")}%`\r\n : \"0%\",\r\n right: containerRef.current\r\n ? `calc(${100 - getBarPosition(endDuration, \"end\")}% - 2px)`\r\n : \"0%\",\r\n }}\r\n />\r\n )}\r\n {hoverPosition !== null && (\r\n <div\r\n className=\"proton-Waveform__hover-line\"\r\n style={{\r\n left: `${(hoverPosition / totalDuration) * 100}%`,\r\n }}\r\n />\r\n )}\r\n {processedWaveform.map((amplitude, index) => {\r\n const position = (index / processedWaveform.length) * totalDuration;\r\n const isBarOutsideActiveRegion =\r\n startDuration !== undefined &&\r\n endDuration !== undefined &&\r\n (position < startDuration || position > endDuration);\r\n const isPlayed = currentTime === 0 ? false : position <= currentTime;\r\n const isHovered = hoverPosition !== null && position <= hoverPosition;\r\n\r\n return (\r\n <WaveformBar\r\n key={index}\r\n amplitude={amplitude}\r\n isDisabled={disabled || isBarOutsideActiveRegion}\r\n isPlayed={isPlayed}\r\n isHovered={isHovered}\r\n isVisible={isVisible}\r\n hasAnimated={hasAnimated}\r\n resolution={resolution}\r\n spacing={spacing}\r\n index={index}\r\n />\r\n );\r\n })}\r\n </div>\r\n\r\n {waveformMessage && (\r\n <div\r\n className=\"proton-Waveform__bar-unavailable\"\r\n style={{\r\n fontSize: containerWidth < 325 ? \"0.85rem\" : \"1rem\",\r\n }}\r\n >\r\n {waveformMessage}\r\n </div>\r\n )}\r\n\r\n {showTimestamps && (\r\n <TimestampBlock direction=\"right\" seconds={totalDuration} />\r\n )}\r\n </div>\r\n );\r\n}\r\n\r\nfunction TimestampBlock({\r\n direction,\r\n seconds,\r\n}: {\r\n direction: \"left\" | \"right\";\r\n seconds: number;\r\n}) {\r\n return (\r\n <div\r\n className={csx(\r\n \"proton-Waveform__timestamp\",\r\n `proton-Waveform__timestamp--${direction}`\r\n )}\r\n >\r\n {formatTimestamp(seconds)}\r\n </div>\r\n );\r\n}\r\n\r\n/** Formats seconds into MM:SS timestamp string\r\n * @param {number} seconds - Number of seconds to format\r\n * @returns {string} Formatted timestamp string in MM:SS format\r\n */\r\n\r\nfunction formatTimestamp(seconds: number) {\r\n const minutes = Math.floor(seconds / 60);\r\n const remainingSeconds = Math.floor(seconds % 60);\r\n return `${minutes}:${\r\n remainingSeconds < 10 ? \"0\" : \"\"\r\n }${remainingSeconds.toFixed(0)}`;\r\n}\r\n\r\n/** Takes an array of waveform data and rescales it to any length\r\n * @param {array} initialData - original waveform data\r\n * @param {number} finalArrayLength - How long do you want the returned array?\r\n * @param {number} height - Height of the waveform container\r\n */\r\n\r\nfunction resampleData(initialData: number[], finalArrayLength: number) {\r\n const initialArrayLength = initialData.length;\r\n // How many samples from the original data do we skip per new sample?\r\n const step = initialArrayLength / finalArrayLength;\r\n\r\n // Create new array with desired length\r\n const resampledData = new Array(finalArrayLength)\r\n .fill(0)\r\n .map((_, newIndex) => {\r\n // Calculate position in original array\r\n const position = newIndex * step;\r\n const leftIndex = Math.floor(position);\r\n const rightIndex = Math.min(leftIndex + 1, initialArrayLength - 1);\r\n\r\n // Calculate weights for interpolation\r\n const fraction = position - leftIndex;\r\n\r\n // Linear interpolation between adjacent samples\r\n const newVal =\r\n initialData[leftIndex] * (1 - fraction) +\r\n initialData[rightIndex] * fraction;\r\n\r\n return newVal;\r\n });\r\n\r\n return scaleData(resampledData);\r\n}\r\n\r\n/** Takes an array of waveform data and scales it based on the desired pixel height\r\n * @param {array} data – Array of waveform data\r\n * @param {number} height - Height of the waveform container\r\n */\r\nfunction scaleData(data: number[]) {\r\n const min = Math.min(...data);\r\n const max = Math.max(...data);\r\n\r\n return data.map((item) => {\r\n // Normalize to 0-1 range first\r\n const normalized = (item - min) / (max - min);\r\n // Then scale to desired height (using 0.1 as minimum to ensure visibility)\r\n return Math.max(normalized * 0.8 + 0.1, 0.1);\r\n });\r\n}\r\n\r\n/** Generates a sample sine wave waveform data array\r\n * @param {number} length - Length of the waveform data array\r\n * @returns {number[]} Array of normalized amplitude values (0-1) representing the waveform\r\n */\r\n\r\nfunction generateSampleWaveformData(length: number) {\r\n return Array.from({ length }, (_, i) => {\r\n const cycles = 6;\r\n // Create 3 complete cycles (6π total) starting at -π/2 (trough)\r\n const phase = (i / (length - 1)) * cycles * 2 * Math.PI - Math.PI / 2;\r\n return Math.sin(phase) * 0.5 + 0.5;\r\n });\r\n}\r\n"],"names":["sampleWaveform","generateSampleWaveformData","Waveform","waveformData","resolution","startDuration","endDuration","currentTime","showTimestamps","totalDuration","disabled","disabledMessage","onClick","testId","className","useTheme","containerRef","useRef","processedWaveform","setProcessedWaveform","useState","hoverPosition","setHoverPosition","isVisible","setIsVisible","hasAnimated","setHasAnimated","waveform","spacing","useEffect","processWaveform","width","numBars","processed","resampleData","initialWidth","resizeObserver","entries","visibilityTimer","animationTimer","handleMouseMove","e","rect","position","handleMouseLeave","barTotalWidth","getBarPosition","time","direction","_a","containerWidth","waveformMessage","useMemo","jsxs","csx","jsx","TimestampBlock","amplitude","index","isBarOutsideActiveRegion","isPlayed","isHovered","WaveformBar","seconds","formatTimestamp","minutes","remainingSeconds","initialData","finalArrayLength","initialArrayLength","step","resampledData","_","newIndex","leftIndex","rightIndex","fraction","scaleData","data","min","max","item","normalized","length","i","phase"],"mappings":"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"}
@@ -0,0 +1,163 @@
1
+ import { j as l } from "../../node_modules/react/jsx-runtime.es.js";
2
+ import { useRef as X, useState as g, useEffect as N, useMemo as F } from "react";
3
+ import { useTheme as U } from "../ThemeProvider.es.js";
4
+ /* empty css */
5
+ import { WaveformBar as q } from "./WaveformBar.es.js";
6
+ import { csx as T } from "../../utils/string.es.js";
7
+ const G = Y(100);
8
+ function ne({
9
+ data: e,
10
+ resolution: t = 2,
11
+ startDuration: o,
12
+ endDuration: a,
13
+ currentTime: m = 0,
14
+ showTimestamps: _ = !1,
15
+ totalDuration: f,
16
+ disabled: u,
17
+ disabledMessage: v,
18
+ onClick: h,
19
+ "data-testid": p
20
+ }) {
21
+ var I;
22
+ const { className: y } = U(), r = X(null), [x, $] = g([]), [W, b] = g(null), [A, z] = g(!1), [S, V] = g(!1), R = e || G, M = t;
23
+ N(() => {
24
+ if (!r.current) return;
25
+ const s = (i) => {
26
+ const d = Math.floor(i / (t + M)), j = K(R, d);
27
+ $(j);
28
+ }, n = r.current.clientWidth;
29
+ s(n);
30
+ const c = new ResizeObserver((i) => {
31
+ i && i[0] && s(i[0].contentRect.width);
32
+ });
33
+ return c.observe(r.current), () => c.disconnect();
34
+ }, [R, t, M]), N(() => {
35
+ const s = setTimeout(() => z(!0), 50), n = setTimeout(() => V(!0), 500);
36
+ return () => {
37
+ clearTimeout(s), clearTimeout(n);
38
+ };
39
+ }, []);
40
+ const H = (s) => {
41
+ if (!r.current) return;
42
+ const n = r.current.getBoundingClientRect(), i = (s.clientX - n.left) / n.width * f;
43
+ b(i);
44
+ }, O = () => {
45
+ b(null);
46
+ }, E = t + M, w = (s, n) => {
47
+ var d;
48
+ const c = s / f * 100;
49
+ return (n === "start" ? Math.floor(c / 100 * x.length) : Math.ceil(c / 100 * x.length)) * E / ((d = r.current) == null ? void 0 : d.clientWidth) * 100;
50
+ }, L = (I = r.current) == null ? void 0 : I.clientWidth, B = F(() => u && v ? v : e ? null : "Waveform Unavailable", [u, v, e]);
51
+ return /* @__PURE__ */ l.jsxs("div", { className: T("proton-Waveform", y), "data-testid": p, children: [
52
+ _ && /* @__PURE__ */ l.jsx(P, { direction: "left", seconds: m }),
53
+ /* @__PURE__ */ l.jsxs(
54
+ "div",
55
+ {
56
+ ref: r,
57
+ className: "proton-Waveform__container",
58
+ onMouseMove: H,
59
+ onMouseLeave: O,
60
+ onClick: (s) => {
61
+ if (!r.current || u) return;
62
+ const n = r.current.getBoundingClientRect(), i = (s.clientX - n.left) / n.width * f;
63
+ h == null || h(i, s);
64
+ },
65
+ "data-disabled": u,
66
+ "data-testid": "waveform-container",
67
+ children: [
68
+ o !== void 0 && a !== void 0 && /* @__PURE__ */ l.jsx(
69
+ "div",
70
+ {
71
+ className: "proton-Waveform__active-region",
72
+ style: {
73
+ left: r.current ? `calc(${w(o, "start")}%` : "0%",
74
+ right: r.current ? `calc(${100 - w(a, "end")}% - 2px)` : "0%"
75
+ }
76
+ }
77
+ ),
78
+ W !== null && /* @__PURE__ */ l.jsx(
79
+ "div",
80
+ {
81
+ className: "proton-Waveform__hover-line",
82
+ style: {
83
+ left: `${W / f * 100}%`
84
+ }
85
+ }
86
+ ),
87
+ x.map((s, n) => {
88
+ const c = n / x.length * f, i = o !== void 0 && a !== void 0 && (c < o || c > a), d = m === 0 ? !1 : c <= m, j = W !== null && c <= W;
89
+ return /* @__PURE__ */ l.jsx(
90
+ q,
91
+ {
92
+ amplitude: s,
93
+ isDisabled: u || i,
94
+ isPlayed: d,
95
+ isHovered: j,
96
+ isVisible: A,
97
+ hasAnimated: S,
98
+ resolution: t,
99
+ spacing: M,
100
+ index: n
101
+ },
102
+ n
103
+ );
104
+ })
105
+ ]
106
+ }
107
+ ),
108
+ B && /* @__PURE__ */ l.jsx(
109
+ "div",
110
+ {
111
+ className: "proton-Waveform__bar-unavailable",
112
+ style: {
113
+ fontSize: L < 325 ? "0.85rem" : "1rem"
114
+ },
115
+ children: B
116
+ }
117
+ ),
118
+ _ && /* @__PURE__ */ l.jsx(P, { direction: "right", seconds: f })
119
+ ] });
120
+ }
121
+ function P({
122
+ direction: e,
123
+ seconds: t
124
+ }) {
125
+ return /* @__PURE__ */ l.jsx(
126
+ "div",
127
+ {
128
+ className: T(
129
+ "proton-Waveform__timestamp",
130
+ `proton-Waveform__timestamp--${e}`
131
+ ),
132
+ children: J(t)
133
+ }
134
+ );
135
+ }
136
+ function J(e) {
137
+ const t = Math.floor(e / 60), o = Math.floor(e % 60);
138
+ return `${t}:${o < 10 ? "0" : ""}${o.toFixed(0)}`;
139
+ }
140
+ function K(e, t) {
141
+ const o = e.length, a = o / t, m = new Array(t).fill(0).map((_, f) => {
142
+ const u = f * a, v = Math.floor(u), h = Math.min(v + 1, o - 1), p = u - v;
143
+ return e[v] * (1 - p) + e[h] * p;
144
+ });
145
+ return Q(m);
146
+ }
147
+ function Q(e) {
148
+ const t = Math.min(...e), o = Math.max(...e);
149
+ return e.map((a) => {
150
+ const m = (a - t) / (o - t);
151
+ return Math.max(m * 0.8 + 0.1, 0.1);
152
+ });
153
+ }
154
+ function Y(e) {
155
+ return Array.from({ length: e }, (t, o) => {
156
+ const m = o / (e - 1) * 6 * 2 * Math.PI - Math.PI / 2;
157
+ return Math.sin(m) * 0.5 + 0.5;
158
+ });
159
+ }
160
+ export {
161
+ ne as Waveform
162
+ };
163
+ //# sourceMappingURL=Waveform.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Waveform.es.js","sources":["../../../src/components/Waveform/Waveform.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport { useEffect, useMemo, useRef, useState } from \"react\";\r\nimport { csx } from \"../../utils\";\r\nimport { useTheme } from \"../ThemeProvider\";\r\nimport \"./Waveform.css\";\r\nimport { WaveformBar } from \"./WaveformBar\";\r\n\r\nexport interface WaveformProps {\r\n /**\r\n * Array of normalized amplitude values (0-1) representing the waveform.\r\n * If not provided, uses a sample sine wave.\r\n */\r\n data?: number[];\r\n\r\n /**\r\n * Current playback position in seconds.\r\n */\r\n currentTime?: number;\r\n\r\n /**\r\n * Test ID for testing purposes.\r\n */\r\n \"data-testid\"?: string;\r\n\r\n /**\r\n * Whether the entire waveform is disabled.\r\n */\r\n disabled?: boolean;\r\n\r\n /**\r\n * Reason for the waveform being disabled.\r\n */\r\n disabledMessage?: string;\r\n\r\n /**\r\n * End time to display until in seconds.\r\n */\r\n endDuration?: number;\r\n\r\n /**\r\n * Click handler that receives the clicked position (0-1) and event.\r\n */\r\n onClick?: (position: number, e: React.MouseEvent<HTMLDivElement>) => void;\r\n\r\n /**\r\n * Width in pixels of each waveform bar.\r\n */\r\n resolution?: number;\r\n\r\n /**\r\n * Whether to show timestamp markers.\r\n */\r\n showTimestamps?: boolean;\r\n\r\n /**\r\n * Start time to display from in seconds.\r\n */\r\n startDuration?: number;\r\n\r\n /**\r\n * Total duration of the audio in seconds.\r\n */\r\n totalDuration: number;\r\n}\r\n\r\nconst sampleWaveform = generateSampleWaveformData(100);\r\n\r\n/**\r\n * A waveform visualization component that displays audio data with interactive features.\r\n *\r\n * API:\r\n * - {@link WaveformProps}\r\n */\r\nexport function Waveform({\r\n data: waveformData,\r\n resolution = 2,\r\n startDuration,\r\n endDuration,\r\n currentTime = 0,\r\n showTimestamps = false,\r\n totalDuration,\r\n disabled,\r\n disabledMessage,\r\n onClick,\r\n \"data-testid\": testId,\r\n}: WaveformProps) {\r\n const { className } = useTheme();\r\n const containerRef = useRef<HTMLDivElement>(null);\r\n const [processedWaveform, setProcessedWaveform] = useState<number[]>([]);\r\n const [hoverPosition, setHoverPosition] = useState<number | null>(null);\r\n const [isVisible, setIsVisible] = useState(false);\r\n const [hasAnimated, setHasAnimated] = useState(false);\r\n\r\n const waveform = waveformData || sampleWaveform;\r\n\r\n const spacing = resolution;\r\n\r\n useEffect(() => {\r\n if (!containerRef.current) return;\r\n\r\n const processWaveform = (width: number) => {\r\n const numBars = Math.floor(width / (resolution + spacing));\r\n const processed = resampleData(waveform, numBars);\r\n setProcessedWaveform(processed);\r\n };\r\n\r\n const initialWidth = containerRef.current.clientWidth;\r\n processWaveform(initialWidth);\r\n\r\n const resizeObserver = new ResizeObserver((entries) => {\r\n if (entries && entries[0]) {\r\n processWaveform(entries[0].contentRect.width);\r\n }\r\n });\r\n\r\n resizeObserver.observe(containerRef.current);\r\n\r\n return () => resizeObserver.disconnect();\r\n }, [waveform, resolution, spacing]);\r\n\r\n useEffect(() => {\r\n const visibilityTimer = setTimeout(() => setIsVisible(true), 50);\r\n const animationTimer = setTimeout(() => setHasAnimated(true), 500);\r\n\r\n return () => {\r\n clearTimeout(visibilityTimer);\r\n clearTimeout(animationTimer);\r\n };\r\n }, []);\r\n\r\n const handleMouseMove = (e: React.MouseEvent<HTMLDivElement>) => {\r\n if (!containerRef.current) return;\r\n const rect = containerRef.current.getBoundingClientRect();\r\n const x = e.clientX - rect.left;\r\n const position = (x / rect.width) * totalDuration;\r\n setHoverPosition(position);\r\n };\r\n\r\n const handleMouseLeave = () => {\r\n setHoverPosition(null);\r\n };\r\n\r\n // Calculate the width of a single bar including spacing\r\n const barTotalWidth = resolution + spacing;\r\n\r\n // Find the nearest bar boundaries for start and end durations\r\n const getBarPosition = (time: number, direction: \"start\" | \"end\") => {\r\n const position = (time / totalDuration) * 100;\r\n const barIndex =\r\n direction === \"start\"\r\n ? Math.floor((position / 100) * processedWaveform.length)\r\n : Math.ceil((position / 100) * processedWaveform.length);\r\n\r\n return (\r\n ((barIndex * barTotalWidth) / containerRef.current?.clientWidth!) * 100\r\n );\r\n };\r\n\r\n const containerWidth = containerRef.current?.clientWidth;\r\n const waveformMessage = useMemo(() => {\r\n if (disabled && disabledMessage) return disabledMessage;\r\n if (!waveformData) return \"Waveform Unavailable\";\r\n\r\n return null;\r\n }, [disabled, disabledMessage, waveformData]);\r\n\r\n return (\r\n <div className={csx(\"proton-Waveform\", className)} data-testid={testId}>\r\n {showTimestamps && (\r\n <TimestampBlock direction=\"left\" seconds={currentTime} />\r\n )}\r\n <div\r\n ref={containerRef}\r\n className=\"proton-Waveform__container\"\r\n onMouseMove={handleMouseMove}\r\n onMouseLeave={handleMouseLeave}\r\n onClick={(e) => {\r\n if (!containerRef.current || disabled) return;\r\n const rect = containerRef.current.getBoundingClientRect();\r\n const x = e.clientX - rect.left;\r\n const position = (x / rect.width) * totalDuration;\r\n onClick?.(position, e);\r\n }}\r\n data-disabled={disabled}\r\n data-testid=\"waveform-container\"\r\n >\r\n {startDuration !== undefined && endDuration !== undefined && (\r\n <div\r\n className=\"proton-Waveform__active-region\"\r\n style={{\r\n left: containerRef.current\r\n ? `calc(${getBarPosition(startDuration, \"start\")}%`\r\n : \"0%\",\r\n right: containerRef.current\r\n ? `calc(${100 - getBarPosition(endDuration, \"end\")}% - 2px)`\r\n : \"0%\",\r\n }}\r\n />\r\n )}\r\n {hoverPosition !== null && (\r\n <div\r\n className=\"proton-Waveform__hover-line\"\r\n style={{\r\n left: `${(hoverPosition / totalDuration) * 100}%`,\r\n }}\r\n />\r\n )}\r\n {processedWaveform.map((amplitude, index) => {\r\n const position = (index / processedWaveform.length) * totalDuration;\r\n const isBarOutsideActiveRegion =\r\n startDuration !== undefined &&\r\n endDuration !== undefined &&\r\n (position < startDuration || position > endDuration);\r\n const isPlayed = currentTime === 0 ? false : position <= currentTime;\r\n const isHovered = hoverPosition !== null && position <= hoverPosition;\r\n\r\n return (\r\n <WaveformBar\r\n key={index}\r\n amplitude={amplitude}\r\n isDisabled={disabled || isBarOutsideActiveRegion}\r\n isPlayed={isPlayed}\r\n isHovered={isHovered}\r\n isVisible={isVisible}\r\n hasAnimated={hasAnimated}\r\n resolution={resolution}\r\n spacing={spacing}\r\n index={index}\r\n />\r\n );\r\n })}\r\n </div>\r\n\r\n {waveformMessage && (\r\n <div\r\n className=\"proton-Waveform__bar-unavailable\"\r\n style={{\r\n fontSize: containerWidth < 325 ? \"0.85rem\" : \"1rem\",\r\n }}\r\n >\r\n {waveformMessage}\r\n </div>\r\n )}\r\n\r\n {showTimestamps && (\r\n <TimestampBlock direction=\"right\" seconds={totalDuration} />\r\n )}\r\n </div>\r\n );\r\n}\r\n\r\nfunction TimestampBlock({\r\n direction,\r\n seconds,\r\n}: {\r\n direction: \"left\" | \"right\";\r\n seconds: number;\r\n}) {\r\n return (\r\n <div\r\n className={csx(\r\n \"proton-Waveform__timestamp\",\r\n `proton-Waveform__timestamp--${direction}`\r\n )}\r\n >\r\n {formatTimestamp(seconds)}\r\n </div>\r\n );\r\n}\r\n\r\n/** Formats seconds into MM:SS timestamp string\r\n * @param {number} seconds - Number of seconds to format\r\n * @returns {string} Formatted timestamp string in MM:SS format\r\n */\r\n\r\nfunction formatTimestamp(seconds: number) {\r\n const minutes = Math.floor(seconds / 60);\r\n const remainingSeconds = Math.floor(seconds % 60);\r\n return `${minutes}:${\r\n remainingSeconds < 10 ? \"0\" : \"\"\r\n }${remainingSeconds.toFixed(0)}`;\r\n}\r\n\r\n/** Takes an array of waveform data and rescales it to any length\r\n * @param {array} initialData - original waveform data\r\n * @param {number} finalArrayLength - How long do you want the returned array?\r\n * @param {number} height - Height of the waveform container\r\n */\r\n\r\nfunction resampleData(initialData: number[], finalArrayLength: number) {\r\n const initialArrayLength = initialData.length;\r\n // How many samples from the original data do we skip per new sample?\r\n const step = initialArrayLength / finalArrayLength;\r\n\r\n // Create new array with desired length\r\n const resampledData = new Array(finalArrayLength)\r\n .fill(0)\r\n .map((_, newIndex) => {\r\n // Calculate position in original array\r\n const position = newIndex * step;\r\n const leftIndex = Math.floor(position);\r\n const rightIndex = Math.min(leftIndex + 1, initialArrayLength - 1);\r\n\r\n // Calculate weights for interpolation\r\n const fraction = position - leftIndex;\r\n\r\n // Linear interpolation between adjacent samples\r\n const newVal =\r\n initialData[leftIndex] * (1 - fraction) +\r\n initialData[rightIndex] * fraction;\r\n\r\n return newVal;\r\n });\r\n\r\n return scaleData(resampledData);\r\n}\r\n\r\n/** Takes an array of waveform data and scales it based on the desired pixel height\r\n * @param {array} data – Array of waveform data\r\n * @param {number} height - Height of the waveform container\r\n */\r\nfunction scaleData(data: number[]) {\r\n const min = Math.min(...data);\r\n const max = Math.max(...data);\r\n\r\n return data.map((item) => {\r\n // Normalize to 0-1 range first\r\n const normalized = (item - min) / (max - min);\r\n // Then scale to desired height (using 0.1 as minimum to ensure visibility)\r\n return Math.max(normalized * 0.8 + 0.1, 0.1);\r\n });\r\n}\r\n\r\n/** Generates a sample sine wave waveform data array\r\n * @param {number} length - Length of the waveform data array\r\n * @returns {number[]} Array of normalized amplitude values (0-1) representing the waveform\r\n */\r\n\r\nfunction generateSampleWaveformData(length: number) {\r\n return Array.from({ length }, (_, i) => {\r\n const cycles = 6;\r\n // Create 3 complete cycles (6π total) starting at -π/2 (trough)\r\n const phase = (i / (length - 1)) * cycles * 2 * Math.PI - Math.PI / 2;\r\n return Math.sin(phase) * 0.5 + 0.5;\r\n });\r\n}\r\n"],"names":["sampleWaveform","generateSampleWaveformData","Waveform","waveformData","resolution","startDuration","endDuration","currentTime","showTimestamps","totalDuration","disabled","disabledMessage","onClick","testId","className","useTheme","containerRef","useRef","processedWaveform","setProcessedWaveform","useState","hoverPosition","setHoverPosition","isVisible","setIsVisible","hasAnimated","setHasAnimated","waveform","spacing","useEffect","processWaveform","width","numBars","processed","resampleData","initialWidth","resizeObserver","entries","visibilityTimer","animationTimer","handleMouseMove","e","rect","position","handleMouseLeave","barTotalWidth","getBarPosition","time","direction","_a","containerWidth","waveformMessage","useMemo","jsxs","csx","jsx","TimestampBlock","amplitude","index","isBarOutsideActiveRegion","isPlayed","isHovered","WaveformBar","seconds","formatTimestamp","minutes","remainingSeconds","initialData","finalArrayLength","initialArrayLength","step","resampledData","newIndex","leftIndex","rightIndex","fraction","scaleData","data","min","max","item","normalized","length","_","i","phase"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../../node_modules/react/jsx-runtime.cjs.js"),n=require("../../utils/string.cjs.js");function x({amplitude:_,isDisabled:o,isPlayed:e,isHovered:p,isVisible:a,hasAnimated:m,resolution:v,spacing:i,index:s}){const t=a?`${Math.max(_*100,4)}%`:"0%";return r.jsxRuntimeExports.jsxs("div",{className:n.csx("proton-Waveform__bar-wrapper"),style:{width:`${v}px`,marginRight:`${i}px`},children:[r.jsxRuntimeExports.jsx("div",{className:n.csx("proton-Waveform__bar","proton-Waveform__bar--upper",o&&"proton-Waveform__bar--disabled",e&&"proton-Waveform__bar--played",a&&"proton-Waveform__bar--visible",m&&"proton-Waveform__bar--animated"),style:{"--target-height":`calc(${t} / 2)`,"--index":s}}),r.jsxRuntimeExports.jsx("div",{className:n.csx("proton-Waveform__bar","proton-Waveform__bar--lower",o&&"proton-Waveform__bar--disabled",e&&"proton-Waveform__bar--played",a&&"proton-Waveform__bar--visible",m&&"proton-Waveform__bar--animated"),style:{"--target-height":`calc(${t} / 2)`,"--index":s}}),p&&!o&&!e&&r.jsxRuntimeExports.jsx("div",{className:"proton-Waveform__bar--hover",style:{"--hover-height":t}})]})}exports.WaveformBar=x;
2
+ //# sourceMappingURL=WaveformBar.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WaveformBar.cjs.js","sources":["../../../src/components/Waveform/WaveformBar.tsx"],"sourcesContent":["import { csx } from \"../../utils\";\r\n\r\ninterface WaveformBarProps {\r\n amplitude: number;\r\n isDisabled: boolean;\r\n isPlayed: boolean;\r\n isHovered: boolean;\r\n isVisible: boolean;\r\n hasAnimated: boolean;\r\n resolution: number;\r\n spacing: number;\r\n index: number;\r\n}\r\n\r\nexport function WaveformBar({\r\n amplitude,\r\n isDisabled,\r\n isPlayed,\r\n isHovered,\r\n isVisible,\r\n hasAnimated,\r\n resolution,\r\n spacing,\r\n index,\r\n}: WaveformBarProps) {\r\n const barHeight = isVisible ? `${Math.max(amplitude * 100, 4)}%` : \"0%\";\r\n\r\n return (\r\n <div\r\n className={csx(\"proton-Waveform__bar-wrapper\")}\r\n style={{\r\n width: `${resolution}px`,\r\n marginRight: `${spacing}px`,\r\n }}\r\n >\r\n <div\r\n className={csx(\r\n \"proton-Waveform__bar\",\r\n \"proton-Waveform__bar--upper\",\r\n isDisabled && \"proton-Waveform__bar--disabled\",\r\n isPlayed && \"proton-Waveform__bar--played\",\r\n isVisible && \"proton-Waveform__bar--visible\",\r\n hasAnimated && \"proton-Waveform__bar--animated\"\r\n )}\r\n style={\r\n {\r\n \"--target-height\": `calc(${barHeight} / 2)`,\r\n \"--index\": index,\r\n } as React.CSSProperties\r\n }\r\n />\r\n <div\r\n className={csx(\r\n \"proton-Waveform__bar\",\r\n \"proton-Waveform__bar--lower\",\r\n isDisabled && \"proton-Waveform__bar--disabled\",\r\n isPlayed && \"proton-Waveform__bar--played\",\r\n isVisible && \"proton-Waveform__bar--visible\",\r\n hasAnimated && \"proton-Waveform__bar--animated\"\r\n )}\r\n style={\r\n {\r\n \"--target-height\": `calc(${barHeight} / 2)`,\r\n \"--index\": index,\r\n } as React.CSSProperties\r\n }\r\n />\r\n {isHovered && !isDisabled && !isPlayed && (\r\n <div\r\n className=\"proton-Waveform__bar--hover\"\r\n style={\r\n {\r\n \"--hover-height\": barHeight,\r\n } as React.CSSProperties\r\n }\r\n />\r\n )}\r\n </div>\r\n );\r\n}\r\n"],"names":["WaveformBar","amplitude","isDisabled","isPlayed","isHovered","isVisible","hasAnimated","resolution","spacing","index","barHeight","jsxs","csx","jsx"],"mappings":"sLAcO,SAASA,EAAY,CAC1B,UAAAC,EACA,WAAAC,EACA,SAAAC,EACA,UAAAC,EACA,UAAAC,EACA,YAAAC,EACA,WAAAC,EACA,QAAAC,EACA,MAAAC,CACF,EAAqB,CACb,MAAAC,EAAYL,EAAY,GAAG,KAAK,IAAIJ,EAAY,IAAK,CAAC,CAAC,IAAM,KAGjE,OAAAU,EAAA,kBAAA,KAAC,MAAA,CACC,UAAWC,MAAI,8BAA8B,EAC7C,MAAO,CACL,MAAO,GAAGL,CAAU,KACpB,YAAa,GAAGC,CAAO,IACzB,EAEA,SAAA,CAAAK,EAAA,kBAAA,IAAC,MAAA,CACC,UAAWD,EAAA,IACT,uBACA,8BACAV,GAAc,iCACdC,GAAY,+BACZE,GAAa,gCACbC,GAAe,gCACjB,EACA,MACE,CACE,kBAAmB,QAAQI,CAAS,QACpC,UAAWD,CACb,CAAA,CAEJ,EACAI,EAAA,kBAAA,IAAC,MAAA,CACC,UAAWD,EAAA,IACT,uBACA,8BACAV,GAAc,iCACdC,GAAY,+BACZE,GAAa,gCACbC,GAAe,gCACjB,EACA,MACE,CACE,kBAAmB,QAAQI,CAAS,QACpC,UAAWD,CACb,CAAA,CAEJ,EACCL,GAAa,CAACF,GAAc,CAACC,GAC5BU,EAAA,kBAAA,IAAC,MAAA,CACC,UAAU,8BACV,MACE,CACE,iBAAkBH,CACpB,CAAA,CAEJ,CAAA,CAAA,CAAA,CAIR"}
@@ -0,0 +1,74 @@
1
+ import { j as r } from "../../node_modules/react/jsx-runtime.es.js";
2
+ import { csx as _ } from "../../utils/string.es.js";
3
+ function c({
4
+ amplitude: n,
5
+ isDisabled: o,
6
+ isPlayed: a,
7
+ isHovered: v,
8
+ isVisible: e,
9
+ hasAnimated: m,
10
+ resolution: f,
11
+ spacing: b,
12
+ index: p
13
+ }) {
14
+ const t = e ? `${Math.max(n * 100, 4)}%` : "0%";
15
+ return /* @__PURE__ */ r.jsxs(
16
+ "div",
17
+ {
18
+ className: _("proton-Waveform__bar-wrapper"),
19
+ style: {
20
+ width: `${f}px`,
21
+ marginRight: `${b}px`
22
+ },
23
+ children: [
24
+ /* @__PURE__ */ r.jsx(
25
+ "div",
26
+ {
27
+ className: _(
28
+ "proton-Waveform__bar",
29
+ "proton-Waveform__bar--upper",
30
+ o && "proton-Waveform__bar--disabled",
31
+ a && "proton-Waveform__bar--played",
32
+ e && "proton-Waveform__bar--visible",
33
+ m && "proton-Waveform__bar--animated"
34
+ ),
35
+ style: {
36
+ "--target-height": `calc(${t} / 2)`,
37
+ "--index": p
38
+ }
39
+ }
40
+ ),
41
+ /* @__PURE__ */ r.jsx(
42
+ "div",
43
+ {
44
+ className: _(
45
+ "proton-Waveform__bar",
46
+ "proton-Waveform__bar--lower",
47
+ o && "proton-Waveform__bar--disabled",
48
+ a && "proton-Waveform__bar--played",
49
+ e && "proton-Waveform__bar--visible",
50
+ m && "proton-Waveform__bar--animated"
51
+ ),
52
+ style: {
53
+ "--target-height": `calc(${t} / 2)`,
54
+ "--index": p
55
+ }
56
+ }
57
+ ),
58
+ v && !o && !a && /* @__PURE__ */ r.jsx(
59
+ "div",
60
+ {
61
+ className: "proton-Waveform__bar--hover",
62
+ style: {
63
+ "--hover-height": t
64
+ }
65
+ }
66
+ )
67
+ ]
68
+ }
69
+ );
70
+ }
71
+ export {
72
+ c as WaveformBar
73
+ };
74
+ //# sourceMappingURL=WaveformBar.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WaveformBar.es.js","sources":["../../../src/components/Waveform/WaveformBar.tsx"],"sourcesContent":["import { csx } from \"../../utils\";\r\n\r\ninterface WaveformBarProps {\r\n amplitude: number;\r\n isDisabled: boolean;\r\n isPlayed: boolean;\r\n isHovered: boolean;\r\n isVisible: boolean;\r\n hasAnimated: boolean;\r\n resolution: number;\r\n spacing: number;\r\n index: number;\r\n}\r\n\r\nexport function WaveformBar({\r\n amplitude,\r\n isDisabled,\r\n isPlayed,\r\n isHovered,\r\n isVisible,\r\n hasAnimated,\r\n resolution,\r\n spacing,\r\n index,\r\n}: WaveformBarProps) {\r\n const barHeight = isVisible ? `${Math.max(amplitude * 100, 4)}%` : \"0%\";\r\n\r\n return (\r\n <div\r\n className={csx(\"proton-Waveform__bar-wrapper\")}\r\n style={{\r\n width: `${resolution}px`,\r\n marginRight: `${spacing}px`,\r\n }}\r\n >\r\n <div\r\n className={csx(\r\n \"proton-Waveform__bar\",\r\n \"proton-Waveform__bar--upper\",\r\n isDisabled && \"proton-Waveform__bar--disabled\",\r\n isPlayed && \"proton-Waveform__bar--played\",\r\n isVisible && \"proton-Waveform__bar--visible\",\r\n hasAnimated && \"proton-Waveform__bar--animated\"\r\n )}\r\n style={\r\n {\r\n \"--target-height\": `calc(${barHeight} / 2)`,\r\n \"--index\": index,\r\n } as React.CSSProperties\r\n }\r\n />\r\n <div\r\n className={csx(\r\n \"proton-Waveform__bar\",\r\n \"proton-Waveform__bar--lower\",\r\n isDisabled && \"proton-Waveform__bar--disabled\",\r\n isPlayed && \"proton-Waveform__bar--played\",\r\n isVisible && \"proton-Waveform__bar--visible\",\r\n hasAnimated && \"proton-Waveform__bar--animated\"\r\n )}\r\n style={\r\n {\r\n \"--target-height\": `calc(${barHeight} / 2)`,\r\n \"--index\": index,\r\n } as React.CSSProperties\r\n }\r\n />\r\n {isHovered && !isDisabled && !isPlayed && (\r\n <div\r\n className=\"proton-Waveform__bar--hover\"\r\n style={\r\n {\r\n \"--hover-height\": barHeight,\r\n } as React.CSSProperties\r\n }\r\n />\r\n )}\r\n </div>\r\n );\r\n}\r\n"],"names":["WaveformBar","amplitude","isDisabled","isPlayed","isHovered","isVisible","hasAnimated","resolution","spacing","index","barHeight","jsxs","csx","jsx"],"mappings":";;AAcO,SAASA,EAAY;AAAA,EAC1B,WAAAC;AAAA,EACA,YAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,WAAAC;AAAA,EACA,aAAAC;AAAA,EACA,YAAAC;AAAA,EACA,SAAAC;AAAA,EACA,OAAAC;AACF,GAAqB;AACb,QAAAC,IAAYL,IAAY,GAAG,KAAK,IAAIJ,IAAY,KAAK,CAAC,CAAC,MAAM;AAGjE,SAAAU,gBAAAA,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC,EAAI,8BAA8B;AAAA,MAC7C,OAAO;AAAA,QACL,OAAO,GAAGL,CAAU;AAAA,QACpB,aAAa,GAAGC,CAAO;AAAA,MACzB;AAAA,MAEA,UAAA;AAAA,QAAAK,gBAAAA,EAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAWD;AAAA,cACT;AAAA,cACA;AAAA,cACAV,KAAc;AAAA,cACdC,KAAY;AAAA,cACZE,KAAa;AAAA,cACbC,KAAe;AAAA,YACjB;AAAA,YACA,OACE;AAAA,cACE,mBAAmB,QAAQI,CAAS;AAAA,cACpC,WAAWD;AAAA,YACb;AAAA,UAAA;AAAA,QAEJ;AAAA,QACAI,gBAAAA,EAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAWD;AAAA,cACT;AAAA,cACA;AAAA,cACAV,KAAc;AAAA,cACdC,KAAY;AAAA,cACZE,KAAa;AAAA,cACbC,KAAe;AAAA,YACjB;AAAA,YACA,OACE;AAAA,cACE,mBAAmB,QAAQI,CAAS;AAAA,cACpC,WAAWD;AAAA,YACb;AAAA,UAAA;AAAA,QAEJ;AAAA,QACCL,KAAa,CAACF,KAAc,CAACC,KAC5BU,gBAAAA,EAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,OACE;AAAA,cACE,kBAAkBH;AAAA,YACpB;AAAA,UAAA;AAAA,QAEJ;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e={SMALL:576,MEDIUM:768,LARGE:992,X_LARGE:1200};exports.BREAKPOINTS=e;
2
+ //# sourceMappingURL=breakpoint.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breakpoint.cjs.js","sources":["../../src/constants/breakpoint.ts"],"sourcesContent":["export const BREAKPOINTS = {\r\n SMALL: 576,\r\n MEDIUM: 768,\r\n LARGE: 992,\r\n X_LARGE: 1200,\r\n};\r\n\r\nexport type Breakpoint = (typeof BREAKPOINTS)[keyof typeof BREAKPOINTS];\r\n"],"names":["BREAKPOINTS"],"mappings":"gFAAO,MAAMA,EAAc,CACzB,MAAO,IACP,OAAQ,IACR,MAAO,IACP,QAAS,IACX"}
@@ -5,6 +5,6 @@ const A = {
5
5
  X_LARGE: 1200
6
6
  };
7
7
  export {
8
- A as B
8
+ A as BREAKPOINTS
9
9
  };
10
- //# sourceMappingURL=breakpoint-9y1_8U_b.mjs.map
10
+ //# sourceMappingURL=breakpoint.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breakpoint.es.js","sources":["../../src/constants/breakpoint.ts"],"sourcesContent":["export const BREAKPOINTS = {\r\n SMALL: 576,\r\n MEDIUM: 768,\r\n LARGE: 992,\r\n X_LARGE: 1200,\r\n};\r\n\r\nexport type Breakpoint = (typeof BREAKPOINTS)[keyof typeof BREAKPOINTS];\r\n"],"names":["BREAKPOINTS"],"mappings":"AAAO,MAAMA,IAAc;AAAA,EACzB,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,SAAS;AACX;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=["bottom","bottom left","bottom right","bottom start","bottom end","top","top left","top right","top start","top end","left","left top","left bottom","start","start top","start bottom","right","right top","right bottom","end","end top","end bottom"];exports.placements=t;
2
+ //# sourceMappingURL=placement.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"placement.cjs.js","sources":["../../src/constants/placement.ts"],"sourcesContent":["import { Placement } from \"react-aria\";\r\n\r\nexport const placements: Placement[] = [\r\n \"bottom\",\r\n \"bottom left\",\r\n \"bottom right\",\r\n \"bottom start\",\r\n \"bottom end\",\r\n \"top\",\r\n \"top left\",\r\n \"top right\",\r\n \"top start\",\r\n \"top end\",\r\n \"left\",\r\n \"left top\",\r\n \"left bottom\",\r\n \"start\",\r\n \"start top\",\r\n \"start bottom\",\r\n \"right\",\r\n \"right top\",\r\n \"right bottom\",\r\n \"end\",\r\n \"end top\",\r\n \"end bottom\",\r\n];\r\n"],"names":["placements"],"mappings":"gFAEO,MAAMA,EAA0B,CACrC,SACA,cACA,eACA,eACA,aACA,MACA,WACA,YACA,YACA,UACA,OACA,WACA,cACA,QACA,YACA,eACA,QACA,YACA,eACA,MACA,UACA,YACF"}
@@ -0,0 +1,28 @@
1
+ const t = [
2
+ "bottom",
3
+ "bottom left",
4
+ "bottom right",
5
+ "bottom start",
6
+ "bottom end",
7
+ "top",
8
+ "top left",
9
+ "top right",
10
+ "top start",
11
+ "top end",
12
+ "left",
13
+ "left top",
14
+ "left bottom",
15
+ "start",
16
+ "start top",
17
+ "start bottom",
18
+ "right",
19
+ "right top",
20
+ "right bottom",
21
+ "end",
22
+ "end top",
23
+ "end bottom"
24
+ ];
25
+ export {
26
+ t as placements
27
+ };
28
+ //# sourceMappingURL=placement.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"placement.es.js","sources":["../../src/constants/placement.ts"],"sourcesContent":["import { Placement } from \"react-aria\";\r\n\r\nexport const placements: Placement[] = [\r\n \"bottom\",\r\n \"bottom left\",\r\n \"bottom right\",\r\n \"bottom start\",\r\n \"bottom end\",\r\n \"top\",\r\n \"top left\",\r\n \"top right\",\r\n \"top start\",\r\n \"top end\",\r\n \"left\",\r\n \"left top\",\r\n \"left bottom\",\r\n \"start\",\r\n \"start top\",\r\n \"start bottom\",\r\n \"right\",\r\n \"right top\",\r\n \"right bottom\",\r\n \"end\",\r\n \"end top\",\r\n \"end bottom\",\r\n];\r\n"],"names":["placements"],"mappings":"AAEO,MAAMA,IAA0B;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./breakpoint-DtqbboOa.js"),o=["bottom","bottom left","bottom right","bottom start","bottom end","top","top left","top right","top start","top end","left","left top","left bottom","start","start top","start bottom","right","right top","right bottom","end","end top","end bottom"];exports.BREAKPOINTS=t.BREAKPOINTS;exports.placements=o;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./constants/breakpoint.cjs.js"),t=require("./constants/placement.cjs.js");exports.BREAKPOINTS=e.BREAKPOINTS;exports.placements=t.placements;
2
2
  //# sourceMappingURL=constants.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.cjs.js","sources":["../src/constants/placement.ts"],"sourcesContent":["import { Placement } from \"react-aria\";\n\nexport const placements: Placement[] = [\n \"bottom\",\n \"bottom left\",\n \"bottom right\",\n \"bottom start\",\n \"bottom end\",\n \"top\",\n \"top left\",\n \"top right\",\n \"top start\",\n \"top end\",\n \"left\",\n \"left top\",\n \"left bottom\",\n \"start\",\n \"start top\",\n \"start bottom\",\n \"right\",\n \"right top\",\n \"right bottom\",\n \"end\",\n \"end top\",\n \"end bottom\",\n];\n"],"names":["placements"],"mappings":"4HAEaA,EAA0B,CACrC,SACA,cACA,eACA,eACA,aACA,MACA,WACA,YACA,YACA,UACA,OACA,WACA,cACA,QACA,YACA,eACA,QACA,YACA,eACA,MACA,UACA,YACF"}
1
+ {"version":3,"file":"constants.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,30 +1,7 @@
1
- import { B as r } from "./breakpoint-9y1_8U_b.mjs";
2
- const t = [
3
- "bottom",
4
- "bottom left",
5
- "bottom right",
6
- "bottom start",
7
- "bottom end",
8
- "top",
9
- "top left",
10
- "top right",
11
- "top start",
12
- "top end",
13
- "left",
14
- "left top",
15
- "left bottom",
16
- "start",
17
- "start top",
18
- "start bottom",
19
- "right",
20
- "right top",
21
- "right bottom",
22
- "end",
23
- "end top",
24
- "end bottom"
25
- ];
1
+ import { BREAKPOINTS as r } from "./constants/breakpoint.es.js";
2
+ import { placements as p } from "./constants/placement.es.js";
26
3
  export {
27
4
  r as BREAKPOINTS,
28
- t as placements
5
+ p as placements
29
6
  };
30
7
  //# sourceMappingURL=constants.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.es.js","sources":["../src/constants/placement.ts"],"sourcesContent":["import { Placement } from \"react-aria\";\n\nexport const placements: Placement[] = [\n \"bottom\",\n \"bottom left\",\n \"bottom right\",\n \"bottom start\",\n \"bottom end\",\n \"top\",\n \"top left\",\n \"top right\",\n \"top start\",\n \"top end\",\n \"left\",\n \"left top\",\n \"left bottom\",\n \"start\",\n \"start top\",\n \"start bottom\",\n \"right\",\n \"right top\",\n \"right bottom\",\n \"end\",\n \"end top\",\n \"end bottom\",\n];\n"],"names":["placements"],"mappings":";AAEO,MAAMA,IAA0B;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;"}
1
+ {"version":3,"file":"constants.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
package/dist/dark.cjs.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./colors-CebzFjpe.js"),_=require("./color2k-DCgwXUem.js"),o=require("./colors-CmSJBHaf.js"),A={"--proton-control__background-color":r.DARK_GRAYSCALE.DARK,"--proton-control__background-color-light":r.ELEVATION,"--proton-control__text-color":r.DARK_GRAYSCALE.WHITE,"--proton-control__title-color":"#FFFFFF","--proton-control__border-color":r.BORDER,"--proton-control__hover-color":r.DARK_GRAYSCALE.MEDIUM,"--proton-control__shadow-color":_.transparentize(r.DARK_GRAYSCALE.LIGHTEST,.5),"--proton-control__border-radius":"4px","--proton-control__interactive-color":o.BRAND.PRIMARY_LIGHT,"--proton-color__primary":o.BRAND.PRIMARY,"--proton-color__primary-light":o.BRAND.PRIMARY_LIGHT,"--proton-color__primary-super-light":o.BRAND.PRIMARY_SUPER_LIGHT,"--proton-color__secondary":o.BRAND.SECONDARY,"--proton-color__secondary-light":o.BRAND.SECONDARY_LIGHT,"--proton-color__secondary-super-light":o.BRAND.SECONDARY_SUPER_LIGHT,"--proton-color__danger-super-dark":o.DANGER.SUPER_DARK,"--proton-color__danger-dark":o.DANGER.DARK,"--proton-color__danger-medium":o.DANGER.MEDIUM,"--proton-color__danger-light":o.DANGER.LIGHT,"--proton-color__danger-super-light":o.DANGER.SUPER_LIGHT,"--proton-color__warning-dark":o.WARNING.DARK,"--proton-color__warning-medium":o.WARNING.MEDIUM,"--proton-color__warning-light":o.WARNING.LIGHT,"--proton-color__warning-super-light":o.WARNING.SUPER_LIGHT,"--proton-color__success-dark":o.SUCCESS.DARK,"--proton-color__success-medium":o.SUCCESS.MEDIUM,"--proton-color__success-light":o.SUCCESS.LIGHT,"--proton-color__success-super-light":o.SUCCESS.SUPER_LIGHT,"--proton-color__gray-super-dark":r.DARK_GRAYSCALE.SUPER_DARK,"--proton-color__gray-dark":r.DARK_GRAYSCALE.DARK,"--proton-color__gray-medium":r.DARK_GRAYSCALE.MEDIUM,"--proton-color__gray-medium-light":r.DARK_GRAYSCALE.MEDIUM_LIGHT,"--proton-color__gray-light":r.DARK_GRAYSCALE.LIGHT,"--proton-color__gray-lightest":r.DARK_GRAYSCALE.LIGHTEST,"--proton-color__gray-super-light":r.DARK_GRAYSCALE.SUPER_LIGHT,"--proton-color__white":r.DARK_GRAYSCALE.WHITE};exports.DARK_BORDER=r.BORDER;exports.DARK_ELEVATION=r.ELEVATION;exports.DARK_GRAYSCALE=r.DARK_GRAYSCALE;exports.DARK_PALETTE=r.DARK_PALETTE;exports.DARK_SECONDARY=r.DARK_SECONDARY;exports.DARK_STYLESHEET=A;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const A=require("./design/darkTheme/colors.cjs.js"),E=require("./design/darkTheme/stylesheet.cjs.js");exports.DARK_BORDER=A.BORDER;exports.DARK_ELEVATION=A.ELEVATION;exports.DARK_GRAYSCALE=A.DARK_GRAYSCALE;exports.DARK_PALETTE=A.DARK_PALETTE;exports.DARK_SECONDARY=A.DARK_SECONDARY;exports.DARK_STYLESHEET=E.DARK_STYLESHEET;
2
2
  //# sourceMappingURL=dark.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dark.cjs.js","sources":["../src/design/darkTheme/stylesheet.ts"],"sourcesContent":["import { transparentize } from \"../../utils/color2k\";\nimport { BORDER, DARK_GRAYSCALE, ELEVATION } from \"./colors\";\nimport { DANGER, WARNING, SUCCESS, BRAND } from \"../colors\";\nimport type { ProtonStyleSheet } from \"../types\";\n\nexport const DARK_STYLESHEET: ProtonStyleSheet = {\n // Control/component colors\n \"--proton-control__background-color\": DARK_GRAYSCALE.DARK,\n \"--proton-control__background-color-light\": ELEVATION,\n \"--proton-control__text-color\": DARK_GRAYSCALE.WHITE,\n \"--proton-control__title-color\": \"#FFFFFF\",\n \"--proton-control__border-color\": BORDER,\n \"--proton-control__hover-color\": DARK_GRAYSCALE.MEDIUM,\n \"--proton-control__shadow-color\": transparentize(\n DARK_GRAYSCALE.LIGHTEST,\n 0.5\n ),\n \"--proton-control__border-radius\": \"4px\",\n \"--proton-control__interactive-color\": BRAND.PRIMARY_LIGHT,\n\n // Brand colors\n \"--proton-color__primary\": BRAND.PRIMARY,\n \"--proton-color__primary-light\": BRAND.PRIMARY_LIGHT,\n \"--proton-color__primary-super-light\": BRAND.PRIMARY_SUPER_LIGHT,\n \"--proton-color__secondary\": BRAND.SECONDARY,\n \"--proton-color__secondary-light\": BRAND.SECONDARY_LIGHT,\n \"--proton-color__secondary-super-light\": BRAND.SECONDARY_SUPER_LIGHT,\n\n // Semantic colors\n \"--proton-color__danger-super-dark\": DANGER.SUPER_DARK,\n \"--proton-color__danger-dark\": DANGER.DARK,\n \"--proton-color__danger-medium\": DANGER.MEDIUM,\n \"--proton-color__danger-light\": DANGER.LIGHT,\n \"--proton-color__danger-super-light\": DANGER.SUPER_LIGHT,\n \"--proton-color__warning-dark\": WARNING.DARK,\n \"--proton-color__warning-medium\": WARNING.MEDIUM,\n \"--proton-color__warning-light\": WARNING.LIGHT,\n \"--proton-color__warning-super-light\": WARNING.SUPER_LIGHT,\n \"--proton-color__success-dark\": SUCCESS.DARK,\n \"--proton-color__success-medium\": SUCCESS.MEDIUM,\n \"--proton-color__success-light\": SUCCESS.LIGHT,\n \"--proton-color__success-super-light\": SUCCESS.SUPER_LIGHT,\n\n // Grayscale colors\n \"--proton-color__gray-super-dark\": DARK_GRAYSCALE.SUPER_DARK,\n \"--proton-color__gray-dark\": DARK_GRAYSCALE.DARK,\n \"--proton-color__gray-medium\": DARK_GRAYSCALE.MEDIUM,\n \"--proton-color__gray-medium-light\": DARK_GRAYSCALE.MEDIUM_LIGHT,\n \"--proton-color__gray-light\": DARK_GRAYSCALE.LIGHT,\n \"--proton-color__gray-lightest\": DARK_GRAYSCALE.LIGHTEST,\n \"--proton-color__gray-super-light\": DARK_GRAYSCALE.SUPER_LIGHT,\n \"--proton-color__white\": DARK_GRAYSCALE.WHITE,\n};\n"],"names":["DARK_STYLESHEET","DARK_GRAYSCALE","ELEVATION","BORDER","transparentize","BRAND","DANGER","WARNING","SUCCESS"],"mappings":"6LAKaA,EAAoC,CAE/C,qCAAsCC,EAAe,eAAA,KACrD,2CAA4CC,EAAA,UAC5C,+BAAgCD,EAAe,eAAA,MAC/C,gCAAiC,UACjC,iCAAkCE,EAAA,OAClC,gCAAiCF,EAAe,eAAA,OAChD,iCAAkCG,EAAA,eAChCH,EAAAA,eAAe,SACf,EACF,EACA,kCAAmC,MACnC,sCAAuCI,EAAM,MAAA,cAG7C,0BAA2BA,EAAM,MAAA,QACjC,gCAAiCA,EAAM,MAAA,cACvC,sCAAuCA,EAAM,MAAA,oBAC7C,4BAA6BA,EAAM,MAAA,UACnC,kCAAmCA,EAAM,MAAA,gBACzC,wCAAyCA,EAAM,MAAA,sBAG/C,oCAAqCC,EAAO,OAAA,WAC5C,8BAA+BA,EAAO,OAAA,KACtC,gCAAiCA,EAAO,OAAA,OACxC,+BAAgCA,EAAO,OAAA,MACvC,qCAAsCA,EAAO,OAAA,YAC7C,+BAAgCC,EAAQ,QAAA,KACxC,iCAAkCA,EAAQ,QAAA,OAC1C,gCAAiCA,EAAQ,QAAA,MACzC,sCAAuCA,EAAQ,QAAA,YAC/C,+BAAgCC,EAAQ,QAAA,KACxC,iCAAkCA,EAAQ,QAAA,OAC1C,gCAAiCA,EAAQ,QAAA,MACzC,sCAAuCA,EAAQ,QAAA,YAG/C,kCAAmCP,EAAe,eAAA,WAClD,4BAA6BA,EAAe,eAAA,KAC5C,8BAA+BA,EAAe,eAAA,OAC9C,oCAAqCA,EAAe,eAAA,aACpD,6BAA8BA,EAAe,eAAA,MAC7C,gCAAiCA,EAAe,eAAA,SAChD,mCAAoCA,EAAe,eAAA,YACnD,wBAAyBA,EAAe,eAAA,KAC1C"}
1
+ {"version":3,"file":"dark.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}