@protonradio/proton-ui 0.11.6 → 0.11.8

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 (493) hide show
  1. package/dist/{constants/breakpoint.es.js → breakpoint-9y1_8U_b.mjs} +2 -2
  2. package/dist/breakpoint-9y1_8U_b.mjs.map +1 -0
  3. package/dist/breakpoint-DtqbboOa.js +2 -0
  4. package/dist/breakpoint-DtqbboOa.js.map +1 -0
  5. package/dist/color2k-CpDB_dpw.mjs +168 -0
  6. package/dist/color2k-CpDB_dpw.mjs.map +1 -0
  7. package/dist/color2k-DCgwXUem.js +2 -0
  8. package/dist/color2k-DCgwXUem.js.map +1 -0
  9. package/dist/{design/colors.es.js → colors-CWaj9dFz.mjs} +7 -7
  10. package/dist/colors-CWaj9dFz.mjs.map +1 -0
  11. package/dist/colors-CebzFjpe.js +2 -0
  12. package/dist/{design/darkTheme/colors.es.js.map → colors-CebzFjpe.js.map} +1 -1
  13. package/dist/{design/darkTheme/colors.es.js → colors-Ceyo4oCJ.mjs} +13 -13
  14. package/dist/{design/darkTheme/colors.cjs.js.map → colors-Ceyo4oCJ.mjs.map} +1 -1
  15. package/dist/colors-CmSJBHaf.js +2 -0
  16. package/dist/colors-CmSJBHaf.js.map +1 -0
  17. package/dist/colors-DL1dYffC.js +2 -0
  18. package/dist/{design/lightTheme/colors.es.js.map → colors-DL1dYffC.js.map} +1 -1
  19. package/dist/{design/lightTheme/colors.es.js → colors-DMkDnu4U.mjs} +11 -11
  20. package/dist/{design/lightTheme/colors.cjs.js.map → colors-DMkDnu4U.mjs.map} +1 -1
  21. package/dist/constants.cjs.js +1 -1
  22. package/dist/constants.cjs.js.map +1 -1
  23. package/dist/constants.es.js +26 -3
  24. package/dist/constants.es.js.map +1 -1
  25. package/dist/dark.cjs.js +2 -0
  26. package/dist/dark.cjs.js.map +1 -0
  27. package/dist/{design/darkTheme/stylesheet.es.js → dark.es.js} +15 -9
  28. package/dist/dark.es.js.map +1 -0
  29. package/dist/hooks.cjs.js +1 -1
  30. package/dist/hooks.cjs.js.map +1 -1
  31. package/dist/hooks.es.js +37 -8
  32. package/dist/hooks.es.js.map +1 -1
  33. package/dist/image-CUSfY1_T.js +2 -0
  34. package/dist/image-CUSfY1_T.js.map +1 -0
  35. package/dist/image-DFyN0Kd9.mjs +207 -0
  36. package/dist/image-DFyN0Kd9.mjs.map +1 -0
  37. package/dist/index.cjs.js +30 -1
  38. package/dist/index.cjs.js.map +1 -1
  39. package/dist/index.d.ts +4 -0
  40. package/dist/index.es.js +5340 -60
  41. package/dist/index.es.js.map +1 -1
  42. package/dist/light.cjs.js +2 -0
  43. package/dist/light.cjs.js.map +1 -0
  44. package/dist/{design/lightTheme/stylesheet.es.js → light.es.js} +16 -10
  45. package/dist/light.es.js.map +1 -0
  46. package/dist/navigation-BB0MBIiR.js +2 -0
  47. package/dist/navigation-BB0MBIiR.js.map +1 -0
  48. package/dist/navigation-Bj7Pex9j.mjs +43 -0
  49. package/dist/navigation-Bj7Pex9j.mjs.map +1 -0
  50. package/dist/theme.cjs.js +1 -1
  51. package/dist/theme.cjs.js.map +1 -1
  52. package/dist/theme.es.js +15 -9
  53. package/dist/theme.es.js.map +1 -1
  54. package/dist/useBreakpoint-CjRyGKN-.mjs +53 -0
  55. package/dist/useBreakpoint-CjRyGKN-.mjs.map +1 -0
  56. package/dist/useBreakpoint-DA-JqOu3.js +2 -0
  57. package/dist/useBreakpoint-DA-JqOu3.js.map +1 -0
  58. package/dist/utils.cjs.js +1 -1
  59. package/dist/utils.es.js +15 -19
  60. package/dist/utils.es.js.map +1 -1
  61. package/package.json +13 -13
  62. package/dist/_virtual/jsx-runtime.cjs.js +0 -2
  63. package/dist/_virtual/jsx-runtime.cjs.js.map +0 -1
  64. package/dist/_virtual/jsx-runtime.es.js +0 -5
  65. package/dist/_virtual/jsx-runtime.es.js.map +0 -1
  66. package/dist/_virtual/react-jsx-runtime.development.cjs.js +0 -2
  67. package/dist/_virtual/react-jsx-runtime.development.cjs.js.map +0 -1
  68. package/dist/_virtual/react-jsx-runtime.development.es.js +0 -5
  69. package/dist/_virtual/react-jsx-runtime.development.es.js.map +0 -1
  70. package/dist/_virtual/react-jsx-runtime.production.min.cjs.js +0 -2
  71. package/dist/_virtual/react-jsx-runtime.production.min.cjs.js.map +0 -1
  72. package/dist/_virtual/react-jsx-runtime.production.min.es.js +0 -5
  73. package/dist/_virtual/react-jsx-runtime.production.min.es.js.map +0 -1
  74. package/dist/assets/svg/icons.svg.cjs.js +0 -2
  75. package/dist/assets/svg/icons.svg.cjs.js.map +0 -1
  76. package/dist/assets/svg/icons.svg.es.js +0 -5
  77. package/dist/assets/svg/icons.svg.es.js.map +0 -1
  78. package/dist/components/ActionMenu/ActionMenu.cjs.js +0 -2
  79. package/dist/components/ActionMenu/ActionMenu.cjs.js.map +0 -1
  80. package/dist/components/ActionMenu/ActionMenu.es.js +0 -262
  81. package/dist/components/ActionMenu/ActionMenu.es.js.map +0 -1
  82. package/dist/components/Badge/Badge.cjs.js +0 -2
  83. package/dist/components/Badge/Badge.cjs.js.map +0 -1
  84. package/dist/components/Badge/Badge.es.js +0 -25
  85. package/dist/components/Badge/Badge.es.js.map +0 -1
  86. package/dist/components/Banner/Banner.cjs.js +0 -2
  87. package/dist/components/Banner/Banner.cjs.js.map +0 -1
  88. package/dist/components/Banner/Banner.es.js +0 -131
  89. package/dist/components/Banner/Banner.es.js.map +0 -1
  90. package/dist/components/Button/Button.cjs.js +0 -2
  91. package/dist/components/Button/Button.cjs.js.map +0 -1
  92. package/dist/components/Button/Button.es.js +0 -99
  93. package/dist/components/Button/Button.es.js.map +0 -1
  94. package/dist/components/ButtonGroup/ButtonGroup.cjs.js +0 -2
  95. package/dist/components/ButtonGroup/ButtonGroup.cjs.js.map +0 -1
  96. package/dist/components/ButtonGroup/ButtonGroup.es.js +0 -51
  97. package/dist/components/ButtonGroup/ButtonGroup.es.js.map +0 -1
  98. package/dist/components/ButtonWithSelect/ButtonWithSelect.cjs.js +0 -2
  99. package/dist/components/ButtonWithSelect/ButtonWithSelect.cjs.js.map +0 -1
  100. package/dist/components/ButtonWithSelect/ButtonWithSelect.es.js +0 -80
  101. package/dist/components/ButtonWithSelect/ButtonWithSelect.es.js.map +0 -1
  102. package/dist/components/DataTable/DataTable.cjs.js +0 -2
  103. package/dist/components/DataTable/DataTable.cjs.js.map +0 -1
  104. package/dist/components/DataTable/DataTable.es.js +0 -137
  105. package/dist/components/DataTable/DataTable.es.js.map +0 -1
  106. package/dist/components/Dialog/Dialog.cjs.js +0 -2
  107. package/dist/components/Dialog/Dialog.cjs.js.map +0 -1
  108. package/dist/components/Dialog/Dialog.es.js +0 -15
  109. package/dist/components/Dialog/Dialog.es.js.map +0 -1
  110. package/dist/components/Elevation/Elevation.cjs.js +0 -2
  111. package/dist/components/Elevation/Elevation.cjs.js.map +0 -1
  112. package/dist/components/Elevation/Elevation.es.js +0 -33
  113. package/dist/components/Elevation/Elevation.es.js.map +0 -1
  114. package/dist/components/Icon/Icon.cjs.js +0 -2
  115. package/dist/components/Icon/Icon.cjs.js.map +0 -1
  116. package/dist/components/Icon/Icon.es.js +0 -42
  117. package/dist/components/Icon/Icon.es.js.map +0 -1
  118. package/dist/components/ImageBackground/ImageBackground.cjs.js +0 -2
  119. package/dist/components/ImageBackground/ImageBackground.cjs.js.map +0 -1
  120. package/dist/components/ImageBackground/ImageBackground.es.js +0 -55
  121. package/dist/components/ImageBackground/ImageBackground.es.js.map +0 -1
  122. package/dist/components/Input/BaseInput/Input.cjs.js +0 -2
  123. package/dist/components/Input/BaseInput/Input.cjs.js.map +0 -1
  124. package/dist/components/Input/BaseInput/Input.es.js +0 -182
  125. package/dist/components/Input/BaseInput/Input.es.js.map +0 -1
  126. package/dist/components/Input/CopyInput/CopyInput.cjs.js +0 -2
  127. package/dist/components/Input/CopyInput/CopyInput.cjs.js.map +0 -1
  128. package/dist/components/Input/CopyInput/CopyInput.es.js +0 -83
  129. package/dist/components/Input/CopyInput/CopyInput.es.js.map +0 -1
  130. package/dist/components/Input/SearchInput/SearchInput.cjs.js +0 -2
  131. package/dist/components/Input/SearchInput/SearchInput.cjs.js.map +0 -1
  132. package/dist/components/Input/SearchInput/SearchInput.es.js +0 -118
  133. package/dist/components/Input/SearchInput/SearchInput.es.js.map +0 -1
  134. package/dist/components/Menu/MenuTrigger.cjs.js +0 -2
  135. package/dist/components/Menu/MenuTrigger.cjs.js.map +0 -1
  136. package/dist/components/Menu/MenuTrigger.es.js +0 -89
  137. package/dist/components/Menu/MenuTrigger.es.js.map +0 -1
  138. package/dist/components/Menu/PopoverMenu.cjs.js +0 -2
  139. package/dist/components/Menu/PopoverMenu.cjs.js.map +0 -1
  140. package/dist/components/Menu/PopoverMenu.es.js +0 -122
  141. package/dist/components/Menu/PopoverMenu.es.js.map +0 -1
  142. package/dist/components/Modal/Modal.cjs.js +0 -2
  143. package/dist/components/Modal/Modal.cjs.js.map +0 -1
  144. package/dist/components/Modal/Modal.es.js +0 -122
  145. package/dist/components/Modal/Modal.es.js.map +0 -1
  146. package/dist/components/Popover/Popover.cjs.js +0 -2
  147. package/dist/components/Popover/Popover.cjs.js.map +0 -1
  148. package/dist/components/Popover/Popover.es.js +0 -53
  149. package/dist/components/Popover/Popover.es.js.map +0 -1
  150. package/dist/components/ScreenOverlay/ScreenOverlay.cjs.js +0 -2
  151. package/dist/components/ScreenOverlay/ScreenOverlay.cjs.js.map +0 -1
  152. package/dist/components/ScreenOverlay/ScreenOverlay.es.js +0 -44
  153. package/dist/components/ScreenOverlay/ScreenOverlay.es.js.map +0 -1
  154. package/dist/components/Select/Select.cjs.js +0 -2
  155. package/dist/components/Select/Select.cjs.js.map +0 -1
  156. package/dist/components/Select/Select.es.js +0 -224
  157. package/dist/components/Select/Select.es.js.map +0 -1
  158. package/dist/components/Switch/Switch.cjs.js +0 -2
  159. package/dist/components/Switch/Switch.cjs.js.map +0 -1
  160. package/dist/components/Switch/Switch.es.js +0 -40
  161. package/dist/components/Switch/Switch.es.js.map +0 -1
  162. package/dist/components/Table/Collection/CompoundComponents.cjs.js +0 -2
  163. package/dist/components/Table/Collection/CompoundComponents.cjs.js.map +0 -1
  164. package/dist/components/Table/Collection/CompoundComponents.es.js +0 -9
  165. package/dist/components/Table/Collection/CompoundComponents.es.js.map +0 -1
  166. package/dist/components/Table/Collection/collectionParser.cjs.js +0 -2
  167. package/dist/components/Table/Collection/collectionParser.cjs.js.map +0 -1
  168. package/dist/components/Table/Collection/collectionParser.es.js +0 -54
  169. package/dist/components/Table/Collection/collectionParser.es.js.map +0 -1
  170. package/dist/components/Table/Collection/useTableCollection.cjs.js +0 -2
  171. package/dist/components/Table/Collection/useTableCollection.cjs.js.map +0 -1
  172. package/dist/components/Table/Collection/useTableCollection.es.js +0 -59
  173. package/dist/components/Table/Collection/useTableCollection.es.js.map +0 -1
  174. package/dist/components/Table/Table.cjs.js +0 -2
  175. package/dist/components/Table/Table.cjs.js.map +0 -1
  176. package/dist/components/Table/Table.es.js +0 -89
  177. package/dist/components/Table/Table.es.js.map +0 -1
  178. package/dist/components/Text/TextEllipsis/TextEllipsis.cjs.js +0 -2
  179. package/dist/components/Text/TextEllipsis/TextEllipsis.cjs.js.map +0 -1
  180. package/dist/components/Text/TextEllipsis/TextEllipsis.es.js +0 -30
  181. package/dist/components/Text/TextEllipsis/TextEllipsis.es.js.map +0 -1
  182. package/dist/components/Text/TextEmphasis/TextEmphasis.cjs.js +0 -2
  183. package/dist/components/Text/TextEmphasis/TextEmphasis.cjs.js.map +0 -1
  184. package/dist/components/Text/TextEmphasis/TextEmphasis.es.js +0 -54
  185. package/dist/components/Text/TextEmphasis/TextEmphasis.es.js.map +0 -1
  186. package/dist/components/ThemeProvider.cjs.js +0 -2
  187. package/dist/components/ThemeProvider.cjs.js.map +0 -1
  188. package/dist/components/ThemeProvider.es.js +0 -43
  189. package/dist/components/ThemeProvider.es.js.map +0 -1
  190. package/dist/components/Tombstone/Tombstone.cjs.js +0 -2
  191. package/dist/components/Tombstone/Tombstone.cjs.js.map +0 -1
  192. package/dist/components/Tombstone/Tombstone.es.js +0 -35
  193. package/dist/components/Tombstone/Tombstone.es.js.map +0 -1
  194. package/dist/components/Tooltip/Tooltip.cjs.js +0 -2
  195. package/dist/components/Tooltip/Tooltip.cjs.js.map +0 -1
  196. package/dist/components/Tooltip/Tooltip.es.js +0 -78
  197. package/dist/components/Tooltip/Tooltip.es.js.map +0 -1
  198. package/dist/components/Waveform/Waveform.cjs.js +0 -2
  199. package/dist/components/Waveform/Waveform.cjs.js.map +0 -1
  200. package/dist/components/Waveform/Waveform.es.js +0 -163
  201. package/dist/components/Waveform/Waveform.es.js.map +0 -1
  202. package/dist/components/Waveform/WaveformBar.cjs.js +0 -2
  203. package/dist/components/Waveform/WaveformBar.cjs.js.map +0 -1
  204. package/dist/components/Waveform/WaveformBar.es.js +0 -74
  205. package/dist/components/Waveform/WaveformBar.es.js.map +0 -1
  206. package/dist/constants/breakpoint.cjs.js +0 -2
  207. package/dist/constants/breakpoint.cjs.js.map +0 -1
  208. package/dist/constants/breakpoint.es.js.map +0 -1
  209. package/dist/constants/placement.cjs.js +0 -2
  210. package/dist/constants/placement.cjs.js.map +0 -1
  211. package/dist/constants/placement.es.js +0 -28
  212. package/dist/constants/placement.es.js.map +0 -1
  213. package/dist/design/colors.cjs.js +0 -2
  214. package/dist/design/colors.cjs.js.map +0 -1
  215. package/dist/design/colors.es.js.map +0 -1
  216. package/dist/design/darkTheme/colors.cjs.js +0 -2
  217. package/dist/design/darkTheme/stylesheet.cjs.js +0 -2
  218. package/dist/design/darkTheme/stylesheet.cjs.js.map +0 -1
  219. package/dist/design/darkTheme/stylesheet.es.js.map +0 -1
  220. package/dist/design/generateStylesheet.cjs.js +0 -2
  221. package/dist/design/generateStylesheet.cjs.js.map +0 -1
  222. package/dist/design/generateStylesheet.es.js +0 -26
  223. package/dist/design/generateStylesheet.es.js.map +0 -1
  224. package/dist/design/lightTheme/colors.cjs.js +0 -2
  225. package/dist/design/lightTheme/stylesheet.cjs.js +0 -2
  226. package/dist/design/lightTheme/stylesheet.cjs.js.map +0 -1
  227. package/dist/design/lightTheme/stylesheet.es.js.map +0 -1
  228. package/dist/design/theme.cjs.js +0 -2
  229. package/dist/design/theme.cjs.js.map +0 -1
  230. package/dist/design/theme.es.js +0 -12
  231. package/dist/design/theme.es.js.map +0 -1
  232. package/dist/hooks/useBreakpoint.cjs.js +0 -2
  233. package/dist/hooks/useBreakpoint.cjs.js.map +0 -1
  234. package/dist/hooks/useBreakpoint.es.js +0 -17
  235. package/dist/hooks/useBreakpoint.es.js.map +0 -1
  236. package/dist/hooks/useIsClosing.cjs.js +0 -2
  237. package/dist/hooks/useIsClosing.cjs.js.map +0 -1
  238. package/dist/hooks/useIsClosing.es.js +0 -30
  239. package/dist/hooks/useIsClosing.es.js.map +0 -1
  240. package/dist/hooks/useLockBodyScroll.cjs.js +0 -2
  241. package/dist/hooks/useLockBodyScroll.cjs.js.map +0 -1
  242. package/dist/hooks/useLockBodyScroll.es.js +0 -14
  243. package/dist/hooks/useLockBodyScroll.es.js.map +0 -1
  244. package/dist/hooks/usePalette.cjs.js +0 -2
  245. package/dist/hooks/usePalette.cjs.js.map +0 -1
  246. package/dist/hooks/usePalette.es.js +0 -37
  247. package/dist/hooks/usePalette.es.js.map +0 -1
  248. package/dist/node_modules/@react-aria/button/dist/useButton.cjs.js +0 -2
  249. package/dist/node_modules/@react-aria/button/dist/useButton.cjs.js.map +0 -1
  250. package/dist/node_modules/@react-aria/button/dist/useButton.es.js +0 -47
  251. package/dist/node_modules/@react-aria/button/dist/useButton.es.js.map +0 -1
  252. package/dist/node_modules/@react-aria/dialog/dist/useDialog.cjs.js +0 -2
  253. package/dist/node_modules/@react-aria/dialog/dist/useDialog.cjs.js.map +0 -1
  254. package/dist/node_modules/@react-aria/dialog/dist/useDialog.es.js +0 -44
  255. package/dist/node_modules/@react-aria/dialog/dist/useDialog.es.js.map +0 -1
  256. package/dist/node_modules/@react-aria/focus/dist/FocusScope.cjs.js +0 -2
  257. package/dist/node_modules/@react-aria/focus/dist/FocusScope.cjs.js.map +0 -1
  258. package/dist/node_modules/@react-aria/focus/dist/FocusScope.es.js +0 -423
  259. package/dist/node_modules/@react-aria/focus/dist/FocusScope.es.js.map +0 -1
  260. package/dist/node_modules/@react-aria/focus/dist/isElementVisible.cjs.js +0 -2
  261. package/dist/node_modules/@react-aria/focus/dist/isElementVisible.cjs.js.map +0 -1
  262. package/dist/node_modules/@react-aria/focus/dist/isElementVisible.es.js +0 -23
  263. package/dist/node_modules/@react-aria/focus/dist/isElementVisible.es.js.map +0 -1
  264. package/dist/node_modules/@react-aria/form/dist/useFormValidation.cjs.js +0 -2
  265. package/dist/node_modules/@react-aria/form/dist/useFormValidation.cjs.js.map +0 -1
  266. package/dist/node_modules/@react-aria/form/dist/useFormValidation.es.js +0 -76
  267. package/dist/node_modules/@react-aria/form/dist/useFormValidation.es.js.map +0 -1
  268. package/dist/node_modules/@react-aria/i18n/dist/context.cjs.js +0 -2
  269. package/dist/node_modules/@react-aria/i18n/dist/context.cjs.js.map +0 -1
  270. package/dist/node_modules/@react-aria/i18n/dist/context.es.js +0 -11
  271. package/dist/node_modules/@react-aria/i18n/dist/context.es.js.map +0 -1
  272. package/dist/node_modules/@react-aria/i18n/dist/useDefaultLocale.cjs.js +0 -2
  273. package/dist/node_modules/@react-aria/i18n/dist/useDefaultLocale.cjs.js.map +0 -1
  274. package/dist/node_modules/@react-aria/i18n/dist/useDefaultLocale.es.js +0 -30
  275. package/dist/node_modules/@react-aria/i18n/dist/useDefaultLocale.es.js.map +0 -1
  276. package/dist/node_modules/@react-aria/i18n/dist/utils.cjs.js +0 -2
  277. package/dist/node_modules/@react-aria/i18n/dist/utils.cjs.js.map +0 -1
  278. package/dist/node_modules/@react-aria/i18n/dist/utils.es.js +0 -45
  279. package/dist/node_modules/@react-aria/i18n/dist/utils.es.js.map +0 -1
  280. package/dist/node_modules/@react-aria/interactions/dist/context.cjs.js +0 -2
  281. package/dist/node_modules/@react-aria/interactions/dist/context.cjs.js.map +0 -1
  282. package/dist/node_modules/@react-aria/interactions/dist/context.es.js +0 -10
  283. package/dist/node_modules/@react-aria/interactions/dist/context.es.js.map +0 -1
  284. package/dist/node_modules/@react-aria/interactions/dist/createEventHandler.cjs.js +0 -2
  285. package/dist/node_modules/@react-aria/interactions/dist/createEventHandler.cjs.js.map +0 -1
  286. package/dist/node_modules/@react-aria/interactions/dist/createEventHandler.es.js +0 -29
  287. package/dist/node_modules/@react-aria/interactions/dist/createEventHandler.es.js.map +0 -1
  288. package/dist/node_modules/@react-aria/interactions/dist/focusSafely.cjs.js +0 -2
  289. package/dist/node_modules/@react-aria/interactions/dist/focusSafely.cjs.js.map +0 -1
  290. package/dist/node_modules/@react-aria/interactions/dist/focusSafely.es.js +0 -15
  291. package/dist/node_modules/@react-aria/interactions/dist/focusSafely.es.js.map +0 -1
  292. package/dist/node_modules/@react-aria/interactions/dist/textSelection.cjs.js +0 -2
  293. package/dist/node_modules/@react-aria/interactions/dist/textSelection.cjs.js.map +0 -1
  294. package/dist/node_modules/@react-aria/interactions/dist/textSelection.es.js +0 -35
  295. package/dist/node_modules/@react-aria/interactions/dist/textSelection.es.js.map +0 -1
  296. package/dist/node_modules/@react-aria/interactions/dist/useFocus.cjs.js +0 -2
  297. package/dist/node_modules/@react-aria/interactions/dist/useFocus.cjs.js.map +0 -1
  298. package/dist/node_modules/@react-aria/interactions/dist/useFocus.es.js +0 -30
  299. package/dist/node_modules/@react-aria/interactions/dist/useFocus.es.js.map +0 -1
  300. package/dist/node_modules/@react-aria/interactions/dist/useFocusVisible.cjs.js +0 -2
  301. package/dist/node_modules/@react-aria/interactions/dist/useFocusVisible.cjs.js.map +0 -1
  302. package/dist/node_modules/@react-aria/interactions/dist/useFocusVisible.es.js +0 -63
  303. package/dist/node_modules/@react-aria/interactions/dist/useFocusVisible.es.js.map +0 -1
  304. package/dist/node_modules/@react-aria/interactions/dist/useFocusWithin.cjs.js +0 -2
  305. package/dist/node_modules/@react-aria/interactions/dist/useFocusWithin.cjs.js.map +0 -1
  306. package/dist/node_modules/@react-aria/interactions/dist/useFocusWithin.es.js +0 -56
  307. package/dist/node_modules/@react-aria/interactions/dist/useFocusWithin.es.js.map +0 -1
  308. package/dist/node_modules/@react-aria/interactions/dist/useFocusable.cjs.js +0 -2
  309. package/dist/node_modules/@react-aria/interactions/dist/useFocusable.cjs.js.map +0 -1
  310. package/dist/node_modules/@react-aria/interactions/dist/useFocusable.es.js +0 -42
  311. package/dist/node_modules/@react-aria/interactions/dist/useFocusable.es.js.map +0 -1
  312. package/dist/node_modules/@react-aria/interactions/dist/useInteractOutside.cjs.js +0 -2
  313. package/dist/node_modules/@react-aria/interactions/dist/useInteractOutside.cjs.js.map +0 -1
  314. package/dist/node_modules/@react-aria/interactions/dist/useInteractOutside.es.js +0 -51
  315. package/dist/node_modules/@react-aria/interactions/dist/useInteractOutside.es.js.map +0 -1
  316. package/dist/node_modules/@react-aria/interactions/dist/useKeyboard.cjs.js +0 -2
  317. package/dist/node_modules/@react-aria/interactions/dist/useKeyboard.cjs.js.map +0 -1
  318. package/dist/node_modules/@react-aria/interactions/dist/useKeyboard.es.js +0 -13
  319. package/dist/node_modules/@react-aria/interactions/dist/useKeyboard.es.js.map +0 -1
  320. package/dist/node_modules/@react-aria/interactions/dist/usePress.cjs.js +0 -2
  321. package/dist/node_modules/@react-aria/interactions/dist/usePress.cjs.js.map +0 -1
  322. package/dist/node_modules/@react-aria/interactions/dist/usePress.es.js +0 -375
  323. package/dist/node_modules/@react-aria/interactions/dist/usePress.es.js.map +0 -1
  324. package/dist/node_modules/@react-aria/interactions/dist/utils.cjs.js +0 -2
  325. package/dist/node_modules/@react-aria/interactions/dist/utils.cjs.js.map +0 -1
  326. package/dist/node_modules/@react-aria/interactions/dist/utils.es.js +0 -92
  327. package/dist/node_modules/@react-aria/interactions/dist/utils.es.js.map +0 -1
  328. package/dist/node_modules/@react-aria/label/dist/useField.cjs.js +0 -2
  329. package/dist/node_modules/@react-aria/label/dist/useField.cjs.js.map +0 -1
  330. package/dist/node_modules/@react-aria/label/dist/useField.es.js +0 -36
  331. package/dist/node_modules/@react-aria/label/dist/useField.es.js.map +0 -1
  332. package/dist/node_modules/@react-aria/label/dist/useLabel.cjs.js +0 -2
  333. package/dist/node_modules/@react-aria/label/dist/useLabel.cjs.js.map +0 -1
  334. package/dist/node_modules/@react-aria/label/dist/useLabel.es.js +0 -23
  335. package/dist/node_modules/@react-aria/label/dist/useLabel.es.js.map +0 -1
  336. package/dist/node_modules/@react-aria/overlays/dist/Overlay.cjs.js +0 -2
  337. package/dist/node_modules/@react-aria/overlays/dist/Overlay.cjs.js.map +0 -1
  338. package/dist/node_modules/@react-aria/overlays/dist/Overlay.es.js +0 -16
  339. package/dist/node_modules/@react-aria/overlays/dist/Overlay.es.js.map +0 -1
  340. package/dist/node_modules/@react-aria/overlays/dist/ariaHideOutside.cjs.js +0 -2
  341. package/dist/node_modules/@react-aria/overlays/dist/ariaHideOutside.cjs.js.map +0 -1
  342. package/dist/node_modules/@react-aria/overlays/dist/ariaHideOutside.es.js +0 -64
  343. package/dist/node_modules/@react-aria/overlays/dist/ariaHideOutside.es.js.map +0 -1
  344. package/dist/node_modules/@react-aria/overlays/dist/useModalOverlay.cjs.js +0 -2
  345. package/dist/node_modules/@react-aria/overlays/dist/useModalOverlay.cjs.js.map +0 -1
  346. package/dist/node_modules/@react-aria/overlays/dist/useModalOverlay.es.js +0 -30
  347. package/dist/node_modules/@react-aria/overlays/dist/useModalOverlay.es.js.map +0 -1
  348. package/dist/node_modules/@react-aria/overlays/dist/useOverlay.cjs.js +0 -2
  349. package/dist/node_modules/@react-aria/overlays/dist/useOverlay.cjs.js.map +0 -1
  350. package/dist/node_modules/@react-aria/overlays/dist/useOverlay.es.js +0 -53
  351. package/dist/node_modules/@react-aria/overlays/dist/useOverlay.es.js.map +0 -1
  352. package/dist/node_modules/@react-aria/overlays/dist/usePreventScroll.cjs.js +0 -2
  353. package/dist/node_modules/@react-aria/overlays/dist/usePreventScroll.cjs.js.map +0 -1
  354. package/dist/node_modules/@react-aria/overlays/dist/usePreventScroll.es.js +0 -98
  355. package/dist/node_modules/@react-aria/overlays/dist/usePreventScroll.es.js.map +0 -1
  356. package/dist/node_modules/@react-aria/radio/dist/useRadio.cjs.js +0 -2
  357. package/dist/node_modules/@react-aria/radio/dist/useRadio.cjs.js.map +0 -1
  358. package/dist/node_modules/@react-aria/radio/dist/useRadio.es.js +0 -58
  359. package/dist/node_modules/@react-aria/radio/dist/useRadio.es.js.map +0 -1
  360. package/dist/node_modules/@react-aria/radio/dist/useRadioGroup.cjs.js +0 -2
  361. package/dist/node_modules/@react-aria/radio/dist/useRadioGroup.cjs.js.map +0 -1
  362. package/dist/node_modules/@react-aria/radio/dist/useRadioGroup.es.js +0 -78
  363. package/dist/node_modules/@react-aria/radio/dist/useRadioGroup.es.js.map +0 -1
  364. package/dist/node_modules/@react-aria/radio/dist/utils.cjs.js +0 -2
  365. package/dist/node_modules/@react-aria/radio/dist/utils.cjs.js.map +0 -1
  366. package/dist/node_modules/@react-aria/radio/dist/utils.es.js +0 -5
  367. package/dist/node_modules/@react-aria/radio/dist/utils.es.js.map +0 -1
  368. package/dist/node_modules/@react-aria/ssr/dist/SSRProvider.cjs.js +0 -2
  369. package/dist/node_modules/@react-aria/ssr/dist/SSRProvider.cjs.js.map +0 -1
  370. package/dist/node_modules/@react-aria/ssr/dist/SSRProvider.es.js +0 -19
  371. package/dist/node_modules/@react-aria/ssr/dist/SSRProvider.es.js.map +0 -1
  372. package/dist/node_modules/@react-aria/switch/dist/useSwitch.cjs.js +0 -2
  373. package/dist/node_modules/@react-aria/switch/dist/useSwitch.cjs.js.map +0 -1
  374. package/dist/node_modules/@react-aria/switch/dist/useSwitch.es.js +0 -20
  375. package/dist/node_modules/@react-aria/switch/dist/useSwitch.es.js.map +0 -1
  376. package/dist/node_modules/@react-aria/toggle/dist/useToggle.cjs.js +0 -2
  377. package/dist/node_modules/@react-aria/toggle/dist/useToggle.cjs.js.map +0 -1
  378. package/dist/node_modules/@react-aria/toggle/dist/useToggle.es.js +0 -48
  379. package/dist/node_modules/@react-aria/toggle/dist/useToggle.es.js.map +0 -1
  380. package/dist/node_modules/@react-aria/visually-hidden/dist/VisuallyHidden.cjs.js +0 -2
  381. package/dist/node_modules/@react-aria/visually-hidden/dist/VisuallyHidden.cjs.js.map +0 -1
  382. package/dist/node_modules/@react-aria/visually-hidden/dist/VisuallyHidden.es.js +0 -41
  383. package/dist/node_modules/@react-aria/visually-hidden/dist/VisuallyHidden.es.js.map +0 -1
  384. package/dist/node_modules/@react-stately/form/dist/useFormValidationState.cjs.js +0 -2
  385. package/dist/node_modules/@react-stately/form/dist/useFormValidationState.cjs.js.map +0 -1
  386. package/dist/node_modules/@react-stately/form/dist/useFormValidationState.es.js +0 -110
  387. package/dist/node_modules/@react-stately/form/dist/useFormValidationState.es.js.map +0 -1
  388. package/dist/node_modules/@react-stately/overlays/dist/useOverlayTriggerState.cjs.js +0 -2
  389. package/dist/node_modules/@react-stately/overlays/dist/useOverlayTriggerState.cjs.js.map +0 -1
  390. package/dist/node_modules/@react-stately/overlays/dist/useOverlayTriggerState.es.js +0 -30
  391. package/dist/node_modules/@react-stately/overlays/dist/useOverlayTriggerState.es.js.map +0 -1
  392. package/dist/node_modules/@react-stately/radio/dist/useRadioGroupState.cjs.js +0 -2
  393. package/dist/node_modules/@react-stately/radio/dist/useRadioGroupState.cjs.js.map +0 -1
  394. package/dist/node_modules/@react-stately/radio/dist/useRadioGroupState.es.js +0 -33
  395. package/dist/node_modules/@react-stately/radio/dist/useRadioGroupState.es.js.map +0 -1
  396. package/dist/node_modules/@react-stately/toggle/dist/useToggleState.cjs.js +0 -2
  397. package/dist/node_modules/@react-stately/toggle/dist/useToggleState.cjs.js.map +0 -1
  398. package/dist/node_modules/@react-stately/toggle/dist/useToggleState.es.js +0 -19
  399. package/dist/node_modules/@react-stately/toggle/dist/useToggleState.es.js.map +0 -1
  400. package/dist/node_modules/@react-stately/utils/dist/useControlledState.cjs.js +0 -2
  401. package/dist/node_modules/@react-stately/utils/dist/useControlledState.cjs.js.map +0 -1
  402. package/dist/node_modules/@react-stately/utils/dist/useControlledState.es.js +0 -31
  403. package/dist/node_modules/@react-stately/utils/dist/useControlledState.es.js.map +0 -1
  404. package/dist/node_modules/@swc/helpers/esm/_check_private_redeclaration.cjs.js +0 -2
  405. package/dist/node_modules/@swc/helpers/esm/_check_private_redeclaration.cjs.js.map +0 -1
  406. package/dist/node_modules/@swc/helpers/esm/_check_private_redeclaration.es.js +0 -9
  407. package/dist/node_modules/@swc/helpers/esm/_check_private_redeclaration.es.js.map +0 -1
  408. package/dist/node_modules/@swc/helpers/esm/_class_apply_descriptor_get.cjs.js +0 -2
  409. package/dist/node_modules/@swc/helpers/esm/_class_apply_descriptor_get.cjs.js.map +0 -1
  410. package/dist/node_modules/@swc/helpers/esm/_class_apply_descriptor_get.es.js +0 -8
  411. package/dist/node_modules/@swc/helpers/esm/_class_apply_descriptor_get.es.js.map +0 -1
  412. package/dist/node_modules/@swc/helpers/esm/_class_apply_descriptor_set.cjs.js +0 -2
  413. package/dist/node_modules/@swc/helpers/esm/_class_apply_descriptor_set.cjs.js.map +0 -1
  414. package/dist/node_modules/@swc/helpers/esm/_class_apply_descriptor_set.es.js +0 -13
  415. package/dist/node_modules/@swc/helpers/esm/_class_apply_descriptor_set.es.js.map +0 -1
  416. package/dist/node_modules/@swc/helpers/esm/_class_extract_field_descriptor.cjs.js +0 -2
  417. package/dist/node_modules/@swc/helpers/esm/_class_extract_field_descriptor.cjs.js.map +0 -1
  418. package/dist/node_modules/@swc/helpers/esm/_class_extract_field_descriptor.es.js +0 -9
  419. package/dist/node_modules/@swc/helpers/esm/_class_extract_field_descriptor.es.js.map +0 -1
  420. package/dist/node_modules/@swc/helpers/esm/_class_private_field_get.cjs.js +0 -2
  421. package/dist/node_modules/@swc/helpers/esm/_class_private_field_get.cjs.js.map +0 -1
  422. package/dist/node_modules/@swc/helpers/esm/_class_private_field_get.es.js +0 -11
  423. package/dist/node_modules/@swc/helpers/esm/_class_private_field_get.es.js.map +0 -1
  424. package/dist/node_modules/@swc/helpers/esm/_class_private_field_init.cjs.js +0 -2
  425. package/dist/node_modules/@swc/helpers/esm/_class_private_field_init.cjs.js.map +0 -1
  426. package/dist/node_modules/@swc/helpers/esm/_class_private_field_init.es.js +0 -9
  427. package/dist/node_modules/@swc/helpers/esm/_class_private_field_init.es.js.map +0 -1
  428. package/dist/node_modules/@swc/helpers/esm/_class_private_field_set.cjs.js +0 -2
  429. package/dist/node_modules/@swc/helpers/esm/_class_private_field_set.cjs.js.map +0 -1
  430. package/dist/node_modules/@swc/helpers/esm/_class_private_field_set.es.js +0 -11
  431. package/dist/node_modules/@swc/helpers/esm/_class_private_field_set.es.js.map +0 -1
  432. package/dist/node_modules/color2k/dist/index.exports.import.es.cjs.js +0 -2
  433. package/dist/node_modules/color2k/dist/index.exports.import.es.cjs.js.map +0 -1
  434. package/dist/node_modules/color2k/dist/index.exports.import.es.es.js +0 -171
  435. package/dist/node_modules/color2k/dist/index.exports.import.es.es.js.map +0 -1
  436. package/dist/node_modules/react/cjs/react-jsx-runtime.development.cjs.js +0 -23
  437. package/dist/node_modules/react/cjs/react-jsx-runtime.development.cjs.js.map +0 -1
  438. package/dist/node_modules/react/cjs/react-jsx-runtime.development.es.js +0 -609
  439. package/dist/node_modules/react/cjs/react-jsx-runtime.development.es.js.map +0 -1
  440. package/dist/node_modules/react/cjs/react-jsx-runtime.production.min.cjs.js +0 -10
  441. package/dist/node_modules/react/cjs/react-jsx-runtime.production.min.cjs.js.map +0 -1
  442. package/dist/node_modules/react/cjs/react-jsx-runtime.production.min.es.js +0 -29
  443. package/dist/node_modules/react/cjs/react-jsx-runtime.production.min.es.js.map +0 -1
  444. package/dist/node_modules/react/jsx-runtime.cjs.js +0 -2
  445. package/dist/node_modules/react/jsx-runtime.cjs.js.map +0 -1
  446. package/dist/node_modules/react/jsx-runtime.es.js +0 -9
  447. package/dist/node_modules/react/jsx-runtime.es.js.map +0 -1
  448. package/dist/node_modules/react-aria-components/dist/OverlayArrow.cjs.js +0 -2
  449. package/dist/node_modules/react-aria-components/dist/OverlayArrow.cjs.js.map +0 -1
  450. package/dist/node_modules/react-aria-components/dist/OverlayArrow.es.js +0 -37
  451. package/dist/node_modules/react-aria-components/dist/OverlayArrow.es.js.map +0 -1
  452. package/dist/node_modules/react-aria-components/dist/Tooltip.cjs.js +0 -2
  453. package/dist/node_modules/react-aria-components/dist/Tooltip.cjs.js.map +0 -1
  454. package/dist/node_modules/react-aria-components/dist/Tooltip.es.js +0 -97
  455. package/dist/node_modules/react-aria-components/dist/Tooltip.es.js.map +0 -1
  456. package/dist/node_modules/react-aria-components/dist/utils.cjs.js +0 -2
  457. package/dist/node_modules/react-aria-components/dist/utils.cjs.js.map +0 -1
  458. package/dist/node_modules/react-aria-components/dist/utils.es.js +0 -89
  459. package/dist/node_modules/react-aria-components/dist/utils.es.js.map +0 -1
  460. package/dist/theme/dark.cjs.js +0 -2
  461. package/dist/theme/dark.cjs.js.map +0 -1
  462. package/dist/theme/dark.d.ts +0 -2
  463. package/dist/theme/dark.es.js +0 -11
  464. package/dist/theme/dark.es.js.map +0 -1
  465. package/dist/theme/light.cjs.js +0 -2
  466. package/dist/theme/light.cjs.js.map +0 -1
  467. package/dist/theme/light.d.ts +0 -2
  468. package/dist/theme/light.es.js +0 -11
  469. package/dist/theme/light.es.js.map +0 -1
  470. package/dist/utils/color2k.cjs.js +0 -2
  471. package/dist/utils/color2k.cjs.js.map +0 -1
  472. package/dist/utils/color2k.es.js +0 -14
  473. package/dist/utils/color2k.es.js.map +0 -1
  474. package/dist/utils/copy.cjs.js +0 -2
  475. package/dist/utils/copy.cjs.js.map +0 -1
  476. package/dist/utils/copy.es.js +0 -31
  477. package/dist/utils/copy.es.js.map +0 -1
  478. package/dist/utils/image.cjs.js +0 -2
  479. package/dist/utils/image.cjs.js.map +0 -1
  480. package/dist/utils/image.es.js +0 -28
  481. package/dist/utils/image.es.js.map +0 -1
  482. package/dist/utils/navigation.cjs.js +0 -2
  483. package/dist/utils/navigation.cjs.js.map +0 -1
  484. package/dist/utils/navigation.es.js +0 -12
  485. package/dist/utils/navigation.es.js.map +0 -1
  486. package/dist/utils/palette.cjs.js +0 -2
  487. package/dist/utils/palette.cjs.js.map +0 -1
  488. package/dist/utils/palette.es.js +0 -183
  489. package/dist/utils/palette.es.js.map +0 -1
  490. package/dist/utils/string.cjs.js +0 -2
  491. package/dist/utils/string.cjs.js.map +0 -1
  492. package/dist/utils/string.es.js +0 -8
  493. package/dist/utils/string.es.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dark.cjs.js","sources":["../src/design/darkTheme/stylesheet.ts"],"sourcesContent":["import { transparentize } from \"../../utils/color2k\";\r\nimport { BORDER, DARK_GRAYSCALE, ELEVATION } from \"./colors\";\r\nimport { DANGER, WARNING, SUCCESS, BRAND } from \"../colors\";\r\nimport type { ProtonStyleSheet } from \"../types\";\r\n\r\nexport const DARK_STYLESHEET: ProtonStyleSheet = {\r\n // Control/component colors\r\n \"--proton-control__background-color\": DARK_GRAYSCALE.DARK,\r\n \"--proton-control__background-color-light\": ELEVATION,\r\n \"--proton-control__text-color\": DARK_GRAYSCALE.WHITE,\r\n \"--proton-control__title-color\": \"#FFFFFF\",\r\n \"--proton-control__border-color\": BORDER,\r\n \"--proton-control__hover-color\": DARK_GRAYSCALE.MEDIUM,\r\n \"--proton-control__shadow-color\": transparentize(\r\n DARK_GRAYSCALE.LIGHTEST,\r\n 0.5\r\n ),\r\n \"--proton-control__border-radius\": \"4px\",\r\n \"--proton-control__interactive-color\": BRAND.PRIMARY_LIGHT,\r\n\r\n // Brand colors\r\n \"--proton-color__primary\": BRAND.PRIMARY,\r\n \"--proton-color__primary-light\": BRAND.PRIMARY_LIGHT,\r\n \"--proton-color__primary-super-light\": BRAND.PRIMARY_SUPER_LIGHT,\r\n \"--proton-color__secondary\": BRAND.SECONDARY,\r\n \"--proton-color__secondary-light\": BRAND.SECONDARY_LIGHT,\r\n \"--proton-color__secondary-super-light\": BRAND.SECONDARY_SUPER_LIGHT,\r\n\r\n // Semantic colors\r\n \"--proton-color__danger-super-dark\": DANGER.SUPER_DARK,\r\n \"--proton-color__danger-dark\": DANGER.DARK,\r\n \"--proton-color__danger-medium\": DANGER.MEDIUM,\r\n \"--proton-color__danger-light\": DANGER.LIGHT,\r\n \"--proton-color__danger-super-light\": DANGER.SUPER_LIGHT,\r\n \"--proton-color__warning-dark\": WARNING.DARK,\r\n \"--proton-color__warning-medium\": WARNING.MEDIUM,\r\n \"--proton-color__warning-light\": WARNING.LIGHT,\r\n \"--proton-color__warning-super-light\": WARNING.SUPER_LIGHT,\r\n \"--proton-color__success-dark\": SUCCESS.DARK,\r\n \"--proton-color__success-medium\": SUCCESS.MEDIUM,\r\n \"--proton-color__success-light\": SUCCESS.LIGHT,\r\n \"--proton-color__success-super-light\": SUCCESS.SUPER_LIGHT,\r\n\r\n // Grayscale colors\r\n \"--proton-color__gray-super-dark\": DARK_GRAYSCALE.SUPER_DARK,\r\n \"--proton-color__gray-dark\": DARK_GRAYSCALE.DARK,\r\n \"--proton-color__gray-medium\": DARK_GRAYSCALE.MEDIUM,\r\n \"--proton-color__gray-medium-light\": DARK_GRAYSCALE.MEDIUM_LIGHT,\r\n \"--proton-color__gray-light\": DARK_GRAYSCALE.LIGHT,\r\n \"--proton-color__gray-lightest\": DARK_GRAYSCALE.LIGHTEST,\r\n \"--proton-color__gray-super-light\": DARK_GRAYSCALE.SUPER_LIGHT,\r\n \"--proton-color__white\": DARK_GRAYSCALE.WHITE,\r\n};\r\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,15 +1,16 @@
1
- import { transparentize as l } from "../../utils/color2k.es.js";
2
- import { DARK_GRAYSCALE as o, ELEVATION as c, BORDER as p } from "./colors.es.js";
3
- import { BRAND as r, DANGER as _, WARNING as t, SUCCESS as n } from "../colors.es.js";
4
- const R = {
1
+ import { a as o, E as l, B as c } from "./colors-Ceyo4oCJ.mjs";
2
+ import { D as g, b as I } from "./colors-Ceyo4oCJ.mjs";
3
+ import { t as p } from "./color2k-CpDB_dpw.mjs";
4
+ import { a as r, D as _, W as t, S as n } from "./colors-CWaj9dFz.mjs";
5
+ const e = {
5
6
  // Control/component colors
6
7
  "--proton-control__background-color": o.DARK,
7
- "--proton-control__background-color-light": c,
8
+ "--proton-control__background-color-light": l,
8
9
  "--proton-control__text-color": o.WHITE,
9
10
  "--proton-control__title-color": "#FFFFFF",
10
- "--proton-control__border-color": p,
11
+ "--proton-control__border-color": c,
11
12
  "--proton-control__hover-color": o.MEDIUM,
12
- "--proton-control__shadow-color": l(
13
+ "--proton-control__shadow-color": p(
13
14
  o.LIGHTEST,
14
15
  0.5
15
16
  ),
@@ -47,6 +48,11 @@ const R = {
47
48
  "--proton-color__white": o.WHITE
48
49
  };
49
50
  export {
50
- R as DARK_STYLESHEET
51
+ c as DARK_BORDER,
52
+ l as DARK_ELEVATION,
53
+ o as DARK_GRAYSCALE,
54
+ g as DARK_PALETTE,
55
+ I as DARK_SECONDARY,
56
+ e as DARK_STYLESHEET
51
57
  };
52
- //# sourceMappingURL=stylesheet.es.js.map
58
+ //# sourceMappingURL=dark.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dark.es.js","sources":["../src/design/darkTheme/stylesheet.ts"],"sourcesContent":["import { transparentize } from \"../../utils/color2k\";\r\nimport { BORDER, DARK_GRAYSCALE, ELEVATION } from \"./colors\";\r\nimport { DANGER, WARNING, SUCCESS, BRAND } from \"../colors\";\r\nimport type { ProtonStyleSheet } from \"../types\";\r\n\r\nexport const DARK_STYLESHEET: ProtonStyleSheet = {\r\n // Control/component colors\r\n \"--proton-control__background-color\": DARK_GRAYSCALE.DARK,\r\n \"--proton-control__background-color-light\": ELEVATION,\r\n \"--proton-control__text-color\": DARK_GRAYSCALE.WHITE,\r\n \"--proton-control__title-color\": \"#FFFFFF\",\r\n \"--proton-control__border-color\": BORDER,\r\n \"--proton-control__hover-color\": DARK_GRAYSCALE.MEDIUM,\r\n \"--proton-control__shadow-color\": transparentize(\r\n DARK_GRAYSCALE.LIGHTEST,\r\n 0.5\r\n ),\r\n \"--proton-control__border-radius\": \"4px\",\r\n \"--proton-control__interactive-color\": BRAND.PRIMARY_LIGHT,\r\n\r\n // Brand colors\r\n \"--proton-color__primary\": BRAND.PRIMARY,\r\n \"--proton-color__primary-light\": BRAND.PRIMARY_LIGHT,\r\n \"--proton-color__primary-super-light\": BRAND.PRIMARY_SUPER_LIGHT,\r\n \"--proton-color__secondary\": BRAND.SECONDARY,\r\n \"--proton-color__secondary-light\": BRAND.SECONDARY_LIGHT,\r\n \"--proton-color__secondary-super-light\": BRAND.SECONDARY_SUPER_LIGHT,\r\n\r\n // Semantic colors\r\n \"--proton-color__danger-super-dark\": DANGER.SUPER_DARK,\r\n \"--proton-color__danger-dark\": DANGER.DARK,\r\n \"--proton-color__danger-medium\": DANGER.MEDIUM,\r\n \"--proton-color__danger-light\": DANGER.LIGHT,\r\n \"--proton-color__danger-super-light\": DANGER.SUPER_LIGHT,\r\n \"--proton-color__warning-dark\": WARNING.DARK,\r\n \"--proton-color__warning-medium\": WARNING.MEDIUM,\r\n \"--proton-color__warning-light\": WARNING.LIGHT,\r\n \"--proton-color__warning-super-light\": WARNING.SUPER_LIGHT,\r\n \"--proton-color__success-dark\": SUCCESS.DARK,\r\n \"--proton-color__success-medium\": SUCCESS.MEDIUM,\r\n \"--proton-color__success-light\": SUCCESS.LIGHT,\r\n \"--proton-color__success-super-light\": SUCCESS.SUPER_LIGHT,\r\n\r\n // Grayscale colors\r\n \"--proton-color__gray-super-dark\": DARK_GRAYSCALE.SUPER_DARK,\r\n \"--proton-color__gray-dark\": DARK_GRAYSCALE.DARK,\r\n \"--proton-color__gray-medium\": DARK_GRAYSCALE.MEDIUM,\r\n \"--proton-color__gray-medium-light\": DARK_GRAYSCALE.MEDIUM_LIGHT,\r\n \"--proton-color__gray-light\": DARK_GRAYSCALE.LIGHT,\r\n \"--proton-color__gray-lightest\": DARK_GRAYSCALE.LIGHTEST,\r\n \"--proton-color__gray-super-light\": DARK_GRAYSCALE.SUPER_LIGHT,\r\n \"--proton-color__white\": DARK_GRAYSCALE.WHITE,\r\n};\r\n"],"names":["DARK_STYLESHEET","DARK_GRAYSCALE","ELEVATION","BORDER","transparentize","BRAND","DANGER","WARNING","SUCCESS"],"mappings":";;;;AAKO,MAAMA,IAAoC;AAAA;AAAA,EAE/C,sCAAsCC,EAAe;AAAA,EACrD,4CAA4CC;AAAA,EAC5C,gCAAgCD,EAAe;AAAA,EAC/C,iCAAiC;AAAA,EACjC,kCAAkCE;AAAA,EAClC,iCAAiCF,EAAe;AAAA,EAChD,kCAAkCG;AAAA,IAChCH,EAAe;AAAA,IACf;AAAA,EACF;AAAA,EACA,mCAAmC;AAAA,EACnC,uCAAuCI,EAAM;AAAA;AAAA,EAG7C,2BAA2BA,EAAM;AAAA,EACjC,iCAAiCA,EAAM;AAAA,EACvC,uCAAuCA,EAAM;AAAA,EAC7C,6BAA6BA,EAAM;AAAA,EACnC,mCAAmCA,EAAM;AAAA,EACzC,yCAAyCA,EAAM;AAAA;AAAA,EAG/C,qCAAqCC,EAAO;AAAA,EAC5C,+BAA+BA,EAAO;AAAA,EACtC,iCAAiCA,EAAO;AAAA,EACxC,gCAAgCA,EAAO;AAAA,EACvC,sCAAsCA,EAAO;AAAA,EAC7C,gCAAgCC,EAAQ;AAAA,EACxC,kCAAkCA,EAAQ;AAAA,EAC1C,iCAAiCA,EAAQ;AAAA,EACzC,uCAAuCA,EAAQ;AAAA,EAC/C,gCAAgCC,EAAQ;AAAA,EACxC,kCAAkCA,EAAQ;AAAA,EAC1C,iCAAiCA,EAAQ;AAAA,EACzC,uCAAuCA,EAAQ;AAAA;AAAA,EAG/C,mCAAmCP,EAAe;AAAA,EAClD,6BAA6BA,EAAe;AAAA,EAC5C,+BAA+BA,EAAe;AAAA,EAC9C,qCAAqCA,EAAe;AAAA,EACpD,8BAA8BA,EAAe;AAAA,EAC7C,iCAAiCA,EAAe;AAAA,EAChD,oCAAoCA,EAAe;AAAA,EACnD,yBAAyBA,EAAe;AAC1C;"}
package/dist/hooks.cjs.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./hooks/useLockBodyScroll.cjs.js"),s=require("./hooks/useIsClosing.cjs.js"),o=require("./hooks/useBreakpoint.cjs.js"),t=require("./hooks/usePalette.cjs.js");exports.useLockBodyScroll=e.useLockBodyScroll;exports.useIsClosing=s.useIsClosing;exports.useBreakpoint=o.useBreakpoint;exports.usePalette=t.usePalette;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./useBreakpoint-DA-JqOu3.js"),P=require("./colors-CebzFjpe.js"),r=require("./colors-DL1dYffC.js"),o=require("react"),i=require("./image-CUSfY1_T.js"),T=require("./theme.cjs.js"),E=(e,l)=>{const[a,s]=o.useState(r.LIGHT_PALETTE),c=o.useCallback(async()=>{if(!e)return r.LIGHT_PALETTE;try{const t=await i.getDominantColor(e);return i.generatePalette(t)}catch(t){return console.error("Failed to generate palette:",t),r.LIGHT_PALETTE}},[e]);return o.useEffect(()=>{(async()=>{if(e){const u=await c();s(u);return}if(l===T.THEMES.DARK){s(P.DARK_PALETTE);return}s(r.LIGHT_PALETTE)})()},[e,l,c]),o.useMemo(()=>a,[a])};exports.useBreakpoint=n.useBreakpoint;exports.useIsClosing=n.useIsClosing;exports.useLockBodyScroll=n.useLockBodyScroll;exports.usePalette=E;
2
2
  //# sourceMappingURL=hooks.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
1
+ {"version":3,"file":"hooks.cjs.js","sources":["../src/hooks/usePalette.tsx"],"sourcesContent":["import { THEMES } from \"../design\";\r\nimport { DARK_PALETTE } from \"../design/darkTheme/colors\";\r\nimport { LIGHT_PALETTE } from \"../design/lightTheme/colors\";\r\nimport { generatePalette, getDominantColor } from \"../utils\";\r\nimport { ProtonPalette } from \"../design/types\";\r\nimport { useEffect, useState, useCallback, useMemo } from \"react\";\r\n\r\n/**\r\n * Generates a palette based on a background image or theme.\r\n * @param backgroundImage - The URL of the background image to generate a palette from.\r\n * @param theme - The theme to generate a palette for.\r\n * @returns A Palette object containing the generated palette.\r\n */\r\nexport const usePalette = (\r\n backgroundImage: HTMLImageElement | string | null,\r\n theme: string\r\n): ProtonPalette => {\r\n const [palette, setPalette] = useState<ProtonPalette>(LIGHT_PALETTE);\r\n\r\n const getPalette = useCallback(async () => {\r\n if (!backgroundImage) return LIGHT_PALETTE;\r\n\r\n try {\r\n const baseColor = await getDominantColor(\r\n backgroundImage as HTMLImageElement & string\r\n );\r\n const newPalette = generatePalette(baseColor);\r\n\r\n return newPalette;\r\n } catch (error) {\r\n console.error(\"Failed to generate palette:\", error);\r\n return LIGHT_PALETTE;\r\n }\r\n }, [backgroundImage]);\r\n\r\n useEffect(() => {\r\n const fetchPalette = async () => {\r\n if (backgroundImage) {\r\n const newPalette = await getPalette();\r\n setPalette(newPalette);\r\n return;\r\n }\r\n\r\n if (theme === THEMES.DARK) {\r\n setPalette(DARK_PALETTE);\r\n return;\r\n }\r\n\r\n setPalette(LIGHT_PALETTE);\r\n };\r\n\r\n fetchPalette();\r\n }, [backgroundImage, theme, getPalette]);\r\n\r\n return useMemo(() => palette, [palette]);\r\n};\r\n"],"names":["usePalette","backgroundImage","theme","palette","setPalette","useState","LIGHT_PALETTE","getPalette","useCallback","baseColor","getDominantColor","generatePalette","error","useEffect","newPalette","THEMES","DARK_PALETTE","useMemo"],"mappings":"mRAaaA,EAAa,CACxBC,EACAC,IACkB,CAClB,KAAM,CAACC,EAASC,CAAU,EAAIC,WAAwBC,EAAa,aAAA,EAE7DC,EAAaC,EAAAA,YAAY,SAAY,CACrC,GAAA,CAACP,EAAwB,OAAAK,gBAEzB,GAAA,CACF,MAAMG,EAAY,MAAMC,EAAA,iBACtBT,CAAA,EAIK,OAFYU,kBAAgBF,CAAS,QAGrCG,EAAO,CACN,eAAA,MAAM,8BAA+BA,CAAK,EAC3CN,eACT,CAAA,EACC,CAACL,CAAe,CAAC,EAEpBY,OAAAA,EAAAA,UAAU,IAAM,EACO,SAAY,CAC/B,GAAIZ,EAAiB,CACb,MAAAa,EAAa,MAAMP,IACzBH,EAAWU,CAAU,EACrB,MACF,CAEI,GAAAZ,IAAUa,SAAO,KAAM,CACzBX,EAAWY,EAAY,YAAA,EACvB,MACF,CAEAZ,EAAWE,EAAa,aAAA,CAAA,IAIzB,EAAA,CAACL,EAAiBC,EAAOK,CAAU,CAAC,EAEhCU,EAAQ,QAAA,IAAMd,EAAS,CAACA,CAAO,CAAC,CACzC"}
package/dist/hooks.es.js CHANGED
@@ -1,11 +1,40 @@
1
- import { useLockBodyScroll as r } from "./hooks/useLockBodyScroll.es.js";
2
- import { useIsClosing as s } from "./hooks/useIsClosing.es.js";
3
- import { useBreakpoint as f } from "./hooks/useBreakpoint.es.js";
4
- import { usePalette as m } from "./hooks/usePalette.es.js";
1
+ import { b as h, a as x, u as B } from "./useBreakpoint-CjRyGKN-.mjs";
2
+ import { D as c } from "./colors-Ceyo4oCJ.mjs";
3
+ import { L as r } from "./colors-DMkDnu4U.mjs";
4
+ import { useState as i, useCallback as f, useEffect as u, useMemo as P } from "react";
5
+ import { a as p, g as m } from "./image-DFyN0Kd9.mjs";
6
+ import { THEMES as E } from "./theme.es.js";
7
+ const C = (t, s) => {
8
+ const [a, o] = i(r), n = f(async () => {
9
+ if (!t) return r;
10
+ try {
11
+ const e = await p(
12
+ t
13
+ );
14
+ return m(e);
15
+ } catch (e) {
16
+ return console.error("Failed to generate palette:", e), r;
17
+ }
18
+ }, [t]);
19
+ return u(() => {
20
+ (async () => {
21
+ if (t) {
22
+ const l = await n();
23
+ o(l);
24
+ return;
25
+ }
26
+ if (s === E.DARK) {
27
+ o(c);
28
+ return;
29
+ }
30
+ o(r);
31
+ })();
32
+ }, [t, s, n]), P(() => a, [a]);
33
+ };
5
34
  export {
6
- f as useBreakpoint,
7
- s as useIsClosing,
8
- r as useLockBodyScroll,
9
- m as usePalette
35
+ h as useBreakpoint,
36
+ x as useIsClosing,
37
+ B as useLockBodyScroll,
38
+ C as usePalette
10
39
  };
11
40
  //# sourceMappingURL=hooks.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
1
+ {"version":3,"file":"hooks.es.js","sources":["../src/hooks/usePalette.tsx"],"sourcesContent":["import { THEMES } from \"../design\";\r\nimport { DARK_PALETTE } from \"../design/darkTheme/colors\";\r\nimport { LIGHT_PALETTE } from \"../design/lightTheme/colors\";\r\nimport { generatePalette, getDominantColor } from \"../utils\";\r\nimport { ProtonPalette } from \"../design/types\";\r\nimport { useEffect, useState, useCallback, useMemo } from \"react\";\r\n\r\n/**\r\n * Generates a palette based on a background image or theme.\r\n * @param backgroundImage - The URL of the background image to generate a palette from.\r\n * @param theme - The theme to generate a palette for.\r\n * @returns A Palette object containing the generated palette.\r\n */\r\nexport const usePalette = (\r\n backgroundImage: HTMLImageElement | string | null,\r\n theme: string\r\n): ProtonPalette => {\r\n const [palette, setPalette] = useState<ProtonPalette>(LIGHT_PALETTE);\r\n\r\n const getPalette = useCallback(async () => {\r\n if (!backgroundImage) return LIGHT_PALETTE;\r\n\r\n try {\r\n const baseColor = await getDominantColor(\r\n backgroundImage as HTMLImageElement & string\r\n );\r\n const newPalette = generatePalette(baseColor);\r\n\r\n return newPalette;\r\n } catch (error) {\r\n console.error(\"Failed to generate palette:\", error);\r\n return LIGHT_PALETTE;\r\n }\r\n }, [backgroundImage]);\r\n\r\n useEffect(() => {\r\n const fetchPalette = async () => {\r\n if (backgroundImage) {\r\n const newPalette = await getPalette();\r\n setPalette(newPalette);\r\n return;\r\n }\r\n\r\n if (theme === THEMES.DARK) {\r\n setPalette(DARK_PALETTE);\r\n return;\r\n }\r\n\r\n setPalette(LIGHT_PALETTE);\r\n };\r\n\r\n fetchPalette();\r\n }, [backgroundImage, theme, getPalette]);\r\n\r\n return useMemo(() => palette, [palette]);\r\n};\r\n"],"names":["usePalette","backgroundImage","theme","palette","setPalette","useState","LIGHT_PALETTE","getPalette","useCallback","baseColor","getDominantColor","generatePalette","error","useEffect","newPalette","THEMES","DARK_PALETTE","useMemo"],"mappings":";;;;;;AAaa,MAAAA,IAAa,CACxBC,GACAC,MACkB;AAClB,QAAM,CAACC,GAASC,CAAU,IAAIC,EAAwBC,CAAa,GAE7DC,IAAaC,EAAY,YAAY;AACrC,QAAA,CAACP,EAAwB,QAAAK;AAEzB,QAAA;AACF,YAAMG,IAAY,MAAMC;AAAA,QACtBT;AAAA,MAAA;AAIK,aAFYU,EAAgBF,CAAS;AAAA,aAGrCG,GAAO;AACN,qBAAA,MAAM,+BAA+BA,CAAK,GAC3CN;AAAA,IACT;AAAA,EAAA,GACC,CAACL,CAAe,CAAC;AAEpB,SAAAY,EAAU,MAAM;AAgBD,KAfQ,YAAY;AAC/B,UAAIZ,GAAiB;AACb,cAAAa,IAAa,MAAMP;AACzB,QAAAH,EAAWU,CAAU;AACrB;AAAA,MACF;AAEI,UAAAZ,MAAUa,EAAO,MAAM;AACzB,QAAAX,EAAWY,CAAY;AACvB;AAAA,MACF;AAEA,MAAAZ,EAAWE,CAAa;AAAA,IAAA;EAIzB,GAAA,CAACL,GAAiBC,GAAOK,CAAU,CAAC,GAEhCU,EAAQ,MAAMd,GAAS,CAACA,CAAO,CAAC;AACzC;"}
@@ -0,0 +1,2 @@
1
+ "use strict";const t=require("./color2k-DCgwXUem.js"),T=require("./colors-DL1dYffC.js"),m=require("./colors-CebzFjpe.js"),D=require("colorthief"),G=a=>{const r=t.arrayToRgbString(a),n=t.getScale("#FFFFFF",r,"#000000"),e=Array.from({length:12},(u,S)=>{const I=n(S/11);return t.desaturate(I,.0085)}),i=e.map(u=>t.saturate(d(u),.005)),l=t.toRgba(t.saturate(t.adjustHue(r,180),1)),s=t.getScale("#FFFFFF",l,"#000000"),c=Array.from({length:12},(u,S)=>{const I=s(S/11);return t.desaturate(I,.1)}),R=c.map(u=>t.desaturate(d(u),.22)),L=C(t.saturate(i[5],.115)),E=t.desaturate(R[4],.02);return{BASE_COLOR:t.arrayToRgbString(a),BRAND:{PRIMARY:L,PRIMARY_LIGHT:o(L,.25,{min:.6,max:.8}),PRIMARY_SUPER_LIGHT:o(L,.15,{min:.8,max:.9}),SECONDARY:E,SECONDARY_LIGHT:o(E,.25,{min:.6,max:.8}),SECONDARY_SUPER_LIGHT:o(E,.15,{min:.8,max:.9})},PRIMARY:{SUPER_DARK:o(A(e[9]),-.6,{min:0,max:.02}),DARK:o(A(e[8]),-.4,{min:.01,max:.02}),MEDIUM:o(i[7],-.2,{min:0,max:.11}),MEDIUM_LIGHT:o(t.desaturate(i[6],.1),.08),LIGHT:o(t.saturate(i[5],.1),.16),LIGHTEST:o(t.saturate(i[3],.2),.12,{min:.5,max:.9}),SUPER_LIGHT:o(i[1],.02,{min:.76,max:.92}),WHITE:o(i[1],.11,{min:.9,max:.98})},SECONDARY:{SUPER_DARK:o(A(c[9]),-.6,{min:0,max:.02}),DARK:o(A(c[8]),-.4,{min:.01,max:.02}),MEDIUM:o(R[7],-.2,{min:0,max:.11}),MEDIUM_LIGHT:o(R[6],.1),LIGHT:o(t.saturate(R[5],.1),.16),LIGHTEST:o(t.saturate(R[3],.2),.12,{min:.5,max:.9}),SUPER_LIGHT:o(R[1],.02,{min:.76,max:.92}),WHITE:o(R[1],.11,{min:.9,max:.98})},GRAYSCALE:{SUPER_DARK:m.DARK_GRAYSCALE.SUPER_DARK,DARK:m.DARK_GRAYSCALE.DARK,MEDIUM:m.DARK_GRAYSCALE.MEDIUM,MEDIUM_LIGHT:m.DARK_GRAYSCALE.MEDIUM_LIGHT,LIGHT:m.DARK_GRAYSCALE.LIGHT,LIGHTEST:m.DARK_GRAYSCALE.LIGHTEST,SUPER_LIGHT:m.DARK_GRAYSCALE.SUPER_LIGHT,WHITE:m.DARK_GRAYSCALE.WHITE}}},o=(a,r,n={min:.03,max:.97})=>{let e=a,i=t.getLuminance(e);if(n.min<0&&(n.min=0),n.max>1&&(n.max=1),n.min>=n.max)throw new Error("Invalid range: min must be less than max");if(r>0){const s=n.max-i;if(s<=0)return t.toRgba(e);const c=r*(s/(1-i));e=t.lighten(e,c)}else if(r<0){const s=i-n.min;if(s<=0)return t.toRgba(e);const c=r*(s/i);e=t.darken(e,Math.abs(c))}const l=t.getLuminance(e);return(l>n.max||l<n.min)&&(e=g(e,n)),t.toRgba(e)},g=(a,r)=>{let n=a,e=t.getLuminance(n);for(;e>r.max;)n=t.darken(n,.05),e=t.getLuminance(n);for(;e<r.min;)n=t.lighten(n,.05),e=t.getLuminance(n);return t.toRgba(n)},A=a=>{for(;t.hasBadContrast(a,"readable",T.LIGHT_GRAYSCALE.DARK);)a=t.lighten(a,.01);return t.toRgba(a)},C=a=>{for(;t.hasBadContrast(T.LIGHT_GRAYSCALE.SUPER_LIGHT,"readable",a);)a=t.darken(a,.01);return t.toRgba(a)},d=a=>{let r=a,n=t.getLuminance(t.toRgba(r)),e=0;const i=6;for(;n<.16&&e<i;)e++,r=t.lighten(r,.1),n=t.getLuminance(t.toRgba(r));for(;n>.6&&e<i;)e++,r=t.darken(r,.1),n=t.getLuminance(t.toRgba(r));return t.toRgba(r)};function _(a){return a instanceof HTMLImageElement?Promise.resolve(H(a)):h(a)}function H(a){try{return new D().getColor(a)}catch{return[255,255,255]}}function h(a){return new Promise((r,n)=>{const e=document.createElement("img");e.crossOrigin="anonymous",e.onload=()=>{try{const i=new D().getColor(e);r(i)}catch{r([255,255,255])}},e.onerror=()=>n(new Error("Failed to load image")),e.src=a})}exports.generatePalette=G;exports.getDominantColor=_;
2
+ //# sourceMappingURL=image-CUSfY1_T.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-CUSfY1_T.js","sources":["../src/utils/palette.ts","../src/utils/image.ts"],"sourcesContent":["import {\r\n adjustHue,\r\n darken,\r\n getLuminance,\r\n getScale,\r\n hasBadContrast,\r\n lighten,\r\n toRgba,\r\n} from \"color2k\";\r\nimport { ProtonPalette, RGBArray } from \"../design/types\";\r\nimport { arrayToRgbString, desaturate, saturate } from \"./color2k\";\r\nimport { LIGHT_GRAYSCALE } from \"../design/lightTheme/colors\";\r\nimport { DARK_GRAYSCALE } from \"../design/darkTheme/colors\";\r\n\r\n/**\r\n * Generates a complete color palette based on a primary color input.\r\n * The palette includes primary and secondary color scales with varying shades.\r\n *\r\n * @param primaryColor - The base RGB color array to generate the palette from\r\n * @returns A Palette object containing:\r\n * - BRAND colors (primary, light primary, and secondary)\r\n * - PRIMARY scale (7 shades from super dark to super light)\r\n * - SECONDARY scale (7 shades from super dark to super light)\r\n *\r\n * The function:\r\n * 1. Creates a 12-color scale from white to the primary color to black\r\n * 2. Generates a complementary secondary color by shifting the hue 180 degrees\r\n * 3. Creates another 12-color scale for the secondary color\r\n * 4. Maps specific positions from these scales to create the final palette structure\r\n */\r\nexport const generatePalette = (baseColor: RGBArray): ProtonPalette => {\r\n const primaryRgba = arrayToRgbString(baseColor);\r\n\r\n const primaryScaleFunc = getScale(\"#FFFFFF\", primaryRgba, \"#000000\");\r\n const primaryScale = Array.from({ length: 12 }, (_, i) => {\r\n const color = primaryScaleFunc(i / 11);\r\n return desaturate(color, 0.0085);\r\n });\r\n\r\n const adjustedPrimaryScale = primaryScale.map((color) =>\r\n saturate(adjustBrightnessForLuminance(color), 0.005)\r\n );\r\n\r\n const secondaryColor = toRgba(saturate(adjustHue(primaryRgba, 180), 1));\r\n\r\n const secondaryScaleFunc = getScale(\"#FFFFFF\", secondaryColor, \"#000000\");\r\n const secondaryScale = Array.from({ length: 12 }, (_, i) => {\r\n const color = secondaryScaleFunc(i / 11);\r\n return desaturate(color, 0.1);\r\n });\r\n\r\n const adjustedSecondaryScale = secondaryScale.map((color) =>\r\n desaturate(adjustBrightnessForLuminance(color), 0.22)\r\n );\r\n\r\n const brandPrimary = darkenForContrast(\r\n saturate(adjustedPrimaryScale[5], 0.115)\r\n );\r\n const brandSecondary = desaturate(adjustedSecondaryScale[4], 0.02);\r\n\r\n return {\r\n BASE_COLOR: arrayToRgbString(baseColor),\r\n BRAND: {\r\n PRIMARY: brandPrimary,\r\n PRIMARY_LIGHT: lightenWithinRange(brandPrimary, 0.25, {\r\n min: 0.6,\r\n max: 0.8,\r\n }),\r\n PRIMARY_SUPER_LIGHT: lightenWithinRange(brandPrimary, 0.15, {\r\n min: 0.8,\r\n max: 0.9,\r\n }),\r\n SECONDARY: brandSecondary,\r\n SECONDARY_LIGHT: lightenWithinRange(brandSecondary, 0.25, {\r\n min: 0.6,\r\n max: 0.8,\r\n }),\r\n SECONDARY_SUPER_LIGHT: lightenWithinRange(brandSecondary, 0.15, {\r\n min: 0.8,\r\n max: 0.9,\r\n }),\r\n },\r\n PRIMARY: {\r\n //backgrounds\r\n SUPER_DARK: lightenWithinRange(\r\n lightenForContrast(primaryScale[9]),\r\n -0.6,\r\n {\r\n min: 0.0,\r\n max: 0.02,\r\n }\r\n ),\r\n DARK: lightenWithinRange(lightenForContrast(primaryScale[8]), -0.4, {\r\n min: 0.01,\r\n max: 0.02,\r\n }),\r\n //interactive components\r\n MEDIUM: lightenWithinRange(adjustedPrimaryScale[7], -0.2, {\r\n min: 0.0,\r\n max: 0.11,\r\n }),\r\n //borders and seperators\r\n MEDIUM_LIGHT: lightenWithinRange(\r\n desaturate(adjustedPrimaryScale[6], 0.1),\r\n 0.08\r\n ),\r\n //solid colors\r\n LIGHT: lightenWithinRange(saturate(adjustedPrimaryScale[5], 0.1), 0.16),\r\n //accessible text\r\n LIGHTEST: lightenWithinRange(\r\n saturate(adjustedPrimaryScale[3], 0.2),\r\n 0.12,\r\n {\r\n min: 0.5,\r\n max: 0.9,\r\n }\r\n ),\r\n SUPER_LIGHT: lightenWithinRange(adjustedPrimaryScale[1], 0.02, {\r\n min: 0.76,\r\n max: 0.92,\r\n }),\r\n WHITE: lightenWithinRange(adjustedPrimaryScale[1], 0.11, {\r\n min: 0.9,\r\n max: 0.98,\r\n }),\r\n },\r\n SECONDARY: {\r\n //backgrounds\r\n SUPER_DARK: lightenWithinRange(\r\n lightenForContrast(secondaryScale[9]),\r\n -0.6,\r\n {\r\n min: 0.0,\r\n max: 0.02,\r\n }\r\n ),\r\n DARK: lightenWithinRange(lightenForContrast(secondaryScale[8]), -0.4, {\r\n min: 0.01,\r\n max: 0.02,\r\n }),\r\n // interactive components\r\n MEDIUM: lightenWithinRange(adjustedSecondaryScale[7], -0.2, {\r\n min: 0.0,\r\n max: 0.11,\r\n }),\r\n //borders and seperators\r\n MEDIUM_LIGHT: lightenWithinRange(adjustedSecondaryScale[6], 0.1),\r\n //solid colors\r\n LIGHT: lightenWithinRange(saturate(adjustedSecondaryScale[5], 0.1), 0.16),\r\n //accessible text\r\n LIGHTEST: lightenWithinRange(\r\n saturate(adjustedSecondaryScale[3], 0.2),\r\n 0.12,\r\n {\r\n min: 0.5,\r\n max: 0.9,\r\n }\r\n ),\r\n SUPER_LIGHT: lightenWithinRange(adjustedSecondaryScale[1], 0.02, {\r\n min: 0.76,\r\n max: 0.92,\r\n }),\r\n WHITE: lightenWithinRange(adjustedSecondaryScale[1], 0.11, {\r\n min: 0.9,\r\n max: 0.98,\r\n }),\r\n },\r\n //TODO: make theme aware grayscale color scale\r\n //Can we remove the basecolor after this?\r\n GRAYSCALE: {\r\n SUPER_DARK: DARK_GRAYSCALE.SUPER_DARK,\r\n DARK: DARK_GRAYSCALE.DARK,\r\n MEDIUM: DARK_GRAYSCALE.MEDIUM,\r\n MEDIUM_LIGHT: DARK_GRAYSCALE.MEDIUM_LIGHT,\r\n LIGHT: DARK_GRAYSCALE.LIGHT,\r\n LIGHTEST: DARK_GRAYSCALE.LIGHTEST,\r\n SUPER_LIGHT: DARK_GRAYSCALE.SUPER_LIGHT,\r\n WHITE: DARK_GRAYSCALE.WHITE,\r\n },\r\n };\r\n};\r\n\r\nconst lightenWithinRange = (\r\n color: string,\r\n amount: number,\r\n range: { min: number; max: number } = { min: 0.03, max: 0.97 }\r\n): string => {\r\n let adjustedColor = color;\r\n let currentLuminance = getLuminance(adjustedColor);\r\n\r\n // Validate range bounds\r\n if (range.min < 0) range.min = 0;\r\n if (range.max > 1) range.max = 1;\r\n if (range.min >= range.max) {\r\n throw new Error(\"Invalid range: min must be less than max\");\r\n }\r\n\r\n // For lightening (positive amount)\r\n if (amount > 0) {\r\n // Calculate how much we can lighten before hitting max\r\n const remainingLuminance = range.max - currentLuminance;\r\n if (remainingLuminance <= 0) return toRgba(adjustedColor);\r\n\r\n // Scale the amount based on remaining room to lighten\r\n const scaledAmount = amount * (remainingLuminance / (1 - currentLuminance));\r\n adjustedColor = lighten(adjustedColor, scaledAmount);\r\n }\r\n // For darkening (negative amount)\r\n else if (amount < 0) {\r\n // Calculate how much we can darken before hitting min\r\n const remainingLuminance = currentLuminance - range.min;\r\n if (remainingLuminance <= 0) return toRgba(adjustedColor);\r\n\r\n // Scale the amount based on remaining room to darken\r\n const scaledAmount = amount * (remainingLuminance / currentLuminance);\r\n adjustedColor = darken(adjustedColor, Math.abs(scaledAmount));\r\n }\r\n\r\n // Verify final luminance is within bounds\r\n const finalLuminance = getLuminance(adjustedColor);\r\n if (finalLuminance > range.max) {\r\n adjustedColor = adjustBrightnessWithinRange(adjustedColor, range);\r\n } else if (finalLuminance < range.min) {\r\n adjustedColor = adjustBrightnessWithinRange(adjustedColor, range);\r\n }\r\n\r\n return toRgba(adjustedColor);\r\n};\r\n\r\nconst adjustBrightnessWithinRange = (\r\n color: string,\r\n range: { min: number; max: number }\r\n): string => {\r\n let adjustedColor = color;\r\n let luminance = getLuminance(adjustedColor);\r\n\r\n // Darken if too bright\r\n while (luminance > range.max) {\r\n adjustedColor = darken(adjustedColor, 0.05);\r\n luminance = getLuminance(adjustedColor);\r\n }\r\n\r\n // Lighten if too dark\r\n while (luminance < range.min) {\r\n adjustedColor = lighten(adjustedColor, 0.05);\r\n luminance = getLuminance(adjustedColor);\r\n }\r\n\r\n return toRgba(adjustedColor);\r\n};\r\n\r\nconst lightenForContrast = (color: string): string => {\r\n while (hasBadContrast(color, \"readable\", LIGHT_GRAYSCALE.DARK)) {\r\n color = lighten(color, 0.01);\r\n }\r\n return toRgba(color);\r\n};\r\n\r\nconst darkenForContrast = (color: string): string => {\r\n while (hasBadContrast(LIGHT_GRAYSCALE.SUPER_LIGHT, \"readable\", color)) {\r\n color = darken(color, 0.01);\r\n }\r\n return toRgba(color);\r\n};\r\n\r\nconst adjustBrightnessForLuminance = (color: string): string => {\r\n let currentColor = color;\r\n let currentLuminance = getLuminance(toRgba(currentColor));\r\n let adjustmentAttempts = 0;\r\n const MAX_ATTEMPTS = 6;\r\n\r\n while (currentLuminance < 0.16 && adjustmentAttempts < MAX_ATTEMPTS) {\r\n adjustmentAttempts++;\r\n currentColor = lighten(currentColor, 0.1);\r\n currentLuminance = getLuminance(toRgba(currentColor));\r\n }\r\n\r\n while (currentLuminance > 0.6 && adjustmentAttempts < MAX_ATTEMPTS) {\r\n adjustmentAttempts++;\r\n currentColor = darken(currentColor, 0.1);\r\n currentLuminance = getLuminance(toRgba(currentColor));\r\n }\r\n\r\n return toRgba(currentColor);\r\n};\r\n","import ColorThief from \"colorthief\";\r\nimport type { RGBArray } from \"../design/types\";\r\n\r\n/**\r\n * Gets the dominant color of an image. Avoids issues with low contrast colors.\r\n * @reference https://github.com/lokesh/color-thief/issues/40\r\n * @param image - The image to get the dominant color from.\r\n * @returns A Promise that resolves to an RGB array.\r\n */\r\nexport function getDominantColor(image: HTMLImageElement): Promise<RGBArray>;\r\nexport function getDominantColor(image: string): Promise<RGBArray>;\r\nexport function getDominantColor(\r\n image: HTMLImageElement | string\r\n): Promise<RGBArray> {\r\n if (image instanceof HTMLImageElement) {\r\n return Promise.resolve(getDominantColorFromImage(image));\r\n } else {\r\n return getDominantColorFromImageUrl(image);\r\n }\r\n}\r\n\r\nfunction getDominantColorFromImage(image: HTMLImageElement): RGBArray {\r\n try {\r\n const colorThief = new ColorThief();\r\n const baseColor = colorThief.getColor(image);\r\n return baseColor;\r\n } catch {\r\n return [255, 255, 255];\r\n }\r\n}\r\n\r\nfunction getDominantColorFromImageUrl(url: string): Promise<RGBArray> {\r\n return new Promise((resolve, reject) => {\r\n const imgElement = document.createElement(\"img\");\r\n imgElement.crossOrigin = \"anonymous\";\r\n\r\n imgElement.onload = () => {\r\n try {\r\n const baseColor = new ColorThief().getColor(imgElement);\r\n resolve(baseColor);\r\n } catch {\r\n resolve([255, 255, 255]);\r\n }\r\n };\r\n\r\n imgElement.onerror = () => reject(new Error(\"Failed to load image\"));\r\n imgElement.src = url;\r\n });\r\n}\r\n"],"names":["generatePalette","baseColor","primaryRgba","arrayToRgbString","primaryScaleFunc","getScale","primaryScale","_","i","color","desaturate","adjustedPrimaryScale","saturate","adjustBrightnessForLuminance","secondaryColor","toRgba","adjustHue","secondaryScaleFunc","secondaryScale","adjustedSecondaryScale","brandPrimary","darkenForContrast","brandSecondary","lightenWithinRange","lightenForContrast","DARK_GRAYSCALE","amount","range","adjustedColor","currentLuminance","getLuminance","remainingLuminance","scaledAmount","lighten","darken","finalLuminance","adjustBrightnessWithinRange","luminance","hasBadContrast","LIGHT_GRAYSCALE","currentColor","adjustmentAttempts","MAX_ATTEMPTS","getDominantColor","image","getDominantColorFromImage","getDominantColorFromImageUrl","ColorThief","url","resolve","reject","imgElement"],"mappings":"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"}
@@ -0,0 +1,207 @@
1
+ import { d as E, s as R, e as m, f as F, a as h, g as s, l as S, b as d, h as M, i as x } from "./color2k-CpDB_dpw.mjs";
2
+ import { a as C } from "./colors-DMkDnu4U.mjs";
3
+ import { a as i } from "./colors-Ceyo4oCJ.mjs";
4
+ import P from "colorthief";
5
+ const K = (e) => {
6
+ const a = h(e), t = x("#FFFFFF", a, "#000000"), n = Array.from({ length: 12 }, (I, D) => {
7
+ const f = t(D / 11);
8
+ return E(f, 85e-4);
9
+ }), o = n.map(
10
+ (I) => R(_(I), 5e-3)
11
+ ), T = m(R(F(a, 180), 1)), c = x("#FFFFFF", T, "#000000"), l = Array.from({ length: 12 }, (I, D) => {
12
+ const f = c(D / 11);
13
+ return E(f, 0.1);
14
+ }), u = l.map(
15
+ (I) => E(_(I), 0.22)
16
+ ), A = U(
17
+ R(o[5], 0.115)
18
+ ), H = E(u[4], 0.02);
19
+ return {
20
+ BASE_COLOR: h(e),
21
+ BRAND: {
22
+ PRIMARY: A,
23
+ PRIMARY_LIGHT: r(A, 0.25, {
24
+ min: 0.6,
25
+ max: 0.8
26
+ }),
27
+ PRIMARY_SUPER_LIGHT: r(A, 0.15, {
28
+ min: 0.8,
29
+ max: 0.9
30
+ }),
31
+ SECONDARY: H,
32
+ SECONDARY_LIGHT: r(H, 0.25, {
33
+ min: 0.6,
34
+ max: 0.8
35
+ }),
36
+ SECONDARY_SUPER_LIGHT: r(H, 0.15, {
37
+ min: 0.8,
38
+ max: 0.9
39
+ })
40
+ },
41
+ PRIMARY: {
42
+ //backgrounds
43
+ SUPER_DARK: r(
44
+ L(n[9]),
45
+ -0.6,
46
+ {
47
+ min: 0,
48
+ max: 0.02
49
+ }
50
+ ),
51
+ DARK: r(L(n[8]), -0.4, {
52
+ min: 0.01,
53
+ max: 0.02
54
+ }),
55
+ //interactive components
56
+ MEDIUM: r(o[7], -0.2, {
57
+ min: 0,
58
+ max: 0.11
59
+ }),
60
+ //borders and seperators
61
+ MEDIUM_LIGHT: r(
62
+ E(o[6], 0.1),
63
+ 0.08
64
+ ),
65
+ //solid colors
66
+ LIGHT: r(R(o[5], 0.1), 0.16),
67
+ //accessible text
68
+ LIGHTEST: r(
69
+ R(o[3], 0.2),
70
+ 0.12,
71
+ {
72
+ min: 0.5,
73
+ max: 0.9
74
+ }
75
+ ),
76
+ SUPER_LIGHT: r(o[1], 0.02, {
77
+ min: 0.76,
78
+ max: 0.92
79
+ }),
80
+ WHITE: r(o[1], 0.11, {
81
+ min: 0.9,
82
+ max: 0.98
83
+ })
84
+ },
85
+ SECONDARY: {
86
+ //backgrounds
87
+ SUPER_DARK: r(
88
+ L(l[9]),
89
+ -0.6,
90
+ {
91
+ min: 0,
92
+ max: 0.02
93
+ }
94
+ ),
95
+ DARK: r(L(l[8]), -0.4, {
96
+ min: 0.01,
97
+ max: 0.02
98
+ }),
99
+ // interactive components
100
+ MEDIUM: r(u[7], -0.2, {
101
+ min: 0,
102
+ max: 0.11
103
+ }),
104
+ //borders and seperators
105
+ MEDIUM_LIGHT: r(u[6], 0.1),
106
+ //solid colors
107
+ LIGHT: r(R(u[5], 0.1), 0.16),
108
+ //accessible text
109
+ LIGHTEST: r(
110
+ R(u[3], 0.2),
111
+ 0.12,
112
+ {
113
+ min: 0.5,
114
+ max: 0.9
115
+ }
116
+ ),
117
+ SUPER_LIGHT: r(u[1], 0.02, {
118
+ min: 0.76,
119
+ max: 0.92
120
+ }),
121
+ WHITE: r(u[1], 0.11, {
122
+ min: 0.9,
123
+ max: 0.98
124
+ })
125
+ },
126
+ //TODO: make theme aware grayscale color scale
127
+ //Can we remove the basecolor after this?
128
+ GRAYSCALE: {
129
+ SUPER_DARK: i.SUPER_DARK,
130
+ DARK: i.DARK,
131
+ MEDIUM: i.MEDIUM,
132
+ MEDIUM_LIGHT: i.MEDIUM_LIGHT,
133
+ LIGHT: i.LIGHT,
134
+ LIGHTEST: i.LIGHTEST,
135
+ SUPER_LIGHT: i.SUPER_LIGHT,
136
+ WHITE: i.WHITE
137
+ }
138
+ };
139
+ }, r = (e, a, t = { min: 0.03, max: 0.97 }) => {
140
+ let n = e, o = s(n);
141
+ if (t.min < 0 && (t.min = 0), t.max > 1 && (t.max = 1), t.min >= t.max)
142
+ throw new Error("Invalid range: min must be less than max");
143
+ if (a > 0) {
144
+ const c = t.max - o;
145
+ if (c <= 0) return m(n);
146
+ const l = a * (c / (1 - o));
147
+ n = S(n, l);
148
+ } else if (a < 0) {
149
+ const c = o - t.min;
150
+ if (c <= 0) return m(n);
151
+ const l = a * (c / o);
152
+ n = d(n, Math.abs(l));
153
+ }
154
+ const T = s(n);
155
+ return (T > t.max || T < t.min) && (n = G(n, t)), m(n);
156
+ }, G = (e, a) => {
157
+ let t = e, n = s(t);
158
+ for (; n > a.max; )
159
+ t = d(t, 0.05), n = s(t);
160
+ for (; n < a.min; )
161
+ t = S(t, 0.05), n = s(t);
162
+ return m(t);
163
+ }, L = (e) => {
164
+ for (; M(e, "readable", C.DARK); )
165
+ e = S(e, 0.01);
166
+ return m(e);
167
+ }, U = (e) => {
168
+ for (; M(C.SUPER_LIGHT, "readable", e); )
169
+ e = d(e, 0.01);
170
+ return m(e);
171
+ }, _ = (e) => {
172
+ let a = e, t = s(m(a)), n = 0;
173
+ const o = 6;
174
+ for (; t < 0.16 && n < o; )
175
+ n++, a = S(a, 0.1), t = s(m(a));
176
+ for (; t > 0.6 && n < o; )
177
+ n++, a = d(a, 0.1), t = s(m(a));
178
+ return m(a);
179
+ };
180
+ function j(e) {
181
+ return e instanceof HTMLImageElement ? Promise.resolve(g(e)) : y(e);
182
+ }
183
+ function g(e) {
184
+ try {
185
+ return new P().getColor(e);
186
+ } catch {
187
+ return [255, 255, 255];
188
+ }
189
+ }
190
+ function y(e) {
191
+ return new Promise((a, t) => {
192
+ const n = document.createElement("img");
193
+ n.crossOrigin = "anonymous", n.onload = () => {
194
+ try {
195
+ const o = new P().getColor(n);
196
+ a(o);
197
+ } catch {
198
+ a([255, 255, 255]);
199
+ }
200
+ }, n.onerror = () => t(new Error("Failed to load image")), n.src = e;
201
+ });
202
+ }
203
+ export {
204
+ j as a,
205
+ K as g
206
+ };
207
+ //# sourceMappingURL=image-DFyN0Kd9.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-DFyN0Kd9.mjs","sources":["../src/utils/palette.ts","../src/utils/image.ts"],"sourcesContent":["import {\r\n adjustHue,\r\n darken,\r\n getLuminance,\r\n getScale,\r\n hasBadContrast,\r\n lighten,\r\n toRgba,\r\n} from \"color2k\";\r\nimport { ProtonPalette, RGBArray } from \"../design/types\";\r\nimport { arrayToRgbString, desaturate, saturate } from \"./color2k\";\r\nimport { LIGHT_GRAYSCALE } from \"../design/lightTheme/colors\";\r\nimport { DARK_GRAYSCALE } from \"../design/darkTheme/colors\";\r\n\r\n/**\r\n * Generates a complete color palette based on a primary color input.\r\n * The palette includes primary and secondary color scales with varying shades.\r\n *\r\n * @param primaryColor - The base RGB color array to generate the palette from\r\n * @returns A Palette object containing:\r\n * - BRAND colors (primary, light primary, and secondary)\r\n * - PRIMARY scale (7 shades from super dark to super light)\r\n * - SECONDARY scale (7 shades from super dark to super light)\r\n *\r\n * The function:\r\n * 1. Creates a 12-color scale from white to the primary color to black\r\n * 2. Generates a complementary secondary color by shifting the hue 180 degrees\r\n * 3. Creates another 12-color scale for the secondary color\r\n * 4. Maps specific positions from these scales to create the final palette structure\r\n */\r\nexport const generatePalette = (baseColor: RGBArray): ProtonPalette => {\r\n const primaryRgba = arrayToRgbString(baseColor);\r\n\r\n const primaryScaleFunc = getScale(\"#FFFFFF\", primaryRgba, \"#000000\");\r\n const primaryScale = Array.from({ length: 12 }, (_, i) => {\r\n const color = primaryScaleFunc(i / 11);\r\n return desaturate(color, 0.0085);\r\n });\r\n\r\n const adjustedPrimaryScale = primaryScale.map((color) =>\r\n saturate(adjustBrightnessForLuminance(color), 0.005)\r\n );\r\n\r\n const secondaryColor = toRgba(saturate(adjustHue(primaryRgba, 180), 1));\r\n\r\n const secondaryScaleFunc = getScale(\"#FFFFFF\", secondaryColor, \"#000000\");\r\n const secondaryScale = Array.from({ length: 12 }, (_, i) => {\r\n const color = secondaryScaleFunc(i / 11);\r\n return desaturate(color, 0.1);\r\n });\r\n\r\n const adjustedSecondaryScale = secondaryScale.map((color) =>\r\n desaturate(adjustBrightnessForLuminance(color), 0.22)\r\n );\r\n\r\n const brandPrimary = darkenForContrast(\r\n saturate(adjustedPrimaryScale[5], 0.115)\r\n );\r\n const brandSecondary = desaturate(adjustedSecondaryScale[4], 0.02);\r\n\r\n return {\r\n BASE_COLOR: arrayToRgbString(baseColor),\r\n BRAND: {\r\n PRIMARY: brandPrimary,\r\n PRIMARY_LIGHT: lightenWithinRange(brandPrimary, 0.25, {\r\n min: 0.6,\r\n max: 0.8,\r\n }),\r\n PRIMARY_SUPER_LIGHT: lightenWithinRange(brandPrimary, 0.15, {\r\n min: 0.8,\r\n max: 0.9,\r\n }),\r\n SECONDARY: brandSecondary,\r\n SECONDARY_LIGHT: lightenWithinRange(brandSecondary, 0.25, {\r\n min: 0.6,\r\n max: 0.8,\r\n }),\r\n SECONDARY_SUPER_LIGHT: lightenWithinRange(brandSecondary, 0.15, {\r\n min: 0.8,\r\n max: 0.9,\r\n }),\r\n },\r\n PRIMARY: {\r\n //backgrounds\r\n SUPER_DARK: lightenWithinRange(\r\n lightenForContrast(primaryScale[9]),\r\n -0.6,\r\n {\r\n min: 0.0,\r\n max: 0.02,\r\n }\r\n ),\r\n DARK: lightenWithinRange(lightenForContrast(primaryScale[8]), -0.4, {\r\n min: 0.01,\r\n max: 0.02,\r\n }),\r\n //interactive components\r\n MEDIUM: lightenWithinRange(adjustedPrimaryScale[7], -0.2, {\r\n min: 0.0,\r\n max: 0.11,\r\n }),\r\n //borders and seperators\r\n MEDIUM_LIGHT: lightenWithinRange(\r\n desaturate(adjustedPrimaryScale[6], 0.1),\r\n 0.08\r\n ),\r\n //solid colors\r\n LIGHT: lightenWithinRange(saturate(adjustedPrimaryScale[5], 0.1), 0.16),\r\n //accessible text\r\n LIGHTEST: lightenWithinRange(\r\n saturate(adjustedPrimaryScale[3], 0.2),\r\n 0.12,\r\n {\r\n min: 0.5,\r\n max: 0.9,\r\n }\r\n ),\r\n SUPER_LIGHT: lightenWithinRange(adjustedPrimaryScale[1], 0.02, {\r\n min: 0.76,\r\n max: 0.92,\r\n }),\r\n WHITE: lightenWithinRange(adjustedPrimaryScale[1], 0.11, {\r\n min: 0.9,\r\n max: 0.98,\r\n }),\r\n },\r\n SECONDARY: {\r\n //backgrounds\r\n SUPER_DARK: lightenWithinRange(\r\n lightenForContrast(secondaryScale[9]),\r\n -0.6,\r\n {\r\n min: 0.0,\r\n max: 0.02,\r\n }\r\n ),\r\n DARK: lightenWithinRange(lightenForContrast(secondaryScale[8]), -0.4, {\r\n min: 0.01,\r\n max: 0.02,\r\n }),\r\n // interactive components\r\n MEDIUM: lightenWithinRange(adjustedSecondaryScale[7], -0.2, {\r\n min: 0.0,\r\n max: 0.11,\r\n }),\r\n //borders and seperators\r\n MEDIUM_LIGHT: lightenWithinRange(adjustedSecondaryScale[6], 0.1),\r\n //solid colors\r\n LIGHT: lightenWithinRange(saturate(adjustedSecondaryScale[5], 0.1), 0.16),\r\n //accessible text\r\n LIGHTEST: lightenWithinRange(\r\n saturate(adjustedSecondaryScale[3], 0.2),\r\n 0.12,\r\n {\r\n min: 0.5,\r\n max: 0.9,\r\n }\r\n ),\r\n SUPER_LIGHT: lightenWithinRange(adjustedSecondaryScale[1], 0.02, {\r\n min: 0.76,\r\n max: 0.92,\r\n }),\r\n WHITE: lightenWithinRange(adjustedSecondaryScale[1], 0.11, {\r\n min: 0.9,\r\n max: 0.98,\r\n }),\r\n },\r\n //TODO: make theme aware grayscale color scale\r\n //Can we remove the basecolor after this?\r\n GRAYSCALE: {\r\n SUPER_DARK: DARK_GRAYSCALE.SUPER_DARK,\r\n DARK: DARK_GRAYSCALE.DARK,\r\n MEDIUM: DARK_GRAYSCALE.MEDIUM,\r\n MEDIUM_LIGHT: DARK_GRAYSCALE.MEDIUM_LIGHT,\r\n LIGHT: DARK_GRAYSCALE.LIGHT,\r\n LIGHTEST: DARK_GRAYSCALE.LIGHTEST,\r\n SUPER_LIGHT: DARK_GRAYSCALE.SUPER_LIGHT,\r\n WHITE: DARK_GRAYSCALE.WHITE,\r\n },\r\n };\r\n};\r\n\r\nconst lightenWithinRange = (\r\n color: string,\r\n amount: number,\r\n range: { min: number; max: number } = { min: 0.03, max: 0.97 }\r\n): string => {\r\n let adjustedColor = color;\r\n let currentLuminance = getLuminance(adjustedColor);\r\n\r\n // Validate range bounds\r\n if (range.min < 0) range.min = 0;\r\n if (range.max > 1) range.max = 1;\r\n if (range.min >= range.max) {\r\n throw new Error(\"Invalid range: min must be less than max\");\r\n }\r\n\r\n // For lightening (positive amount)\r\n if (amount > 0) {\r\n // Calculate how much we can lighten before hitting max\r\n const remainingLuminance = range.max - currentLuminance;\r\n if (remainingLuminance <= 0) return toRgba(adjustedColor);\r\n\r\n // Scale the amount based on remaining room to lighten\r\n const scaledAmount = amount * (remainingLuminance / (1 - currentLuminance));\r\n adjustedColor = lighten(adjustedColor, scaledAmount);\r\n }\r\n // For darkening (negative amount)\r\n else if (amount < 0) {\r\n // Calculate how much we can darken before hitting min\r\n const remainingLuminance = currentLuminance - range.min;\r\n if (remainingLuminance <= 0) return toRgba(adjustedColor);\r\n\r\n // Scale the amount based on remaining room to darken\r\n const scaledAmount = amount * (remainingLuminance / currentLuminance);\r\n adjustedColor = darken(adjustedColor, Math.abs(scaledAmount));\r\n }\r\n\r\n // Verify final luminance is within bounds\r\n const finalLuminance = getLuminance(adjustedColor);\r\n if (finalLuminance > range.max) {\r\n adjustedColor = adjustBrightnessWithinRange(adjustedColor, range);\r\n } else if (finalLuminance < range.min) {\r\n adjustedColor = adjustBrightnessWithinRange(adjustedColor, range);\r\n }\r\n\r\n return toRgba(adjustedColor);\r\n};\r\n\r\nconst adjustBrightnessWithinRange = (\r\n color: string,\r\n range: { min: number; max: number }\r\n): string => {\r\n let adjustedColor = color;\r\n let luminance = getLuminance(adjustedColor);\r\n\r\n // Darken if too bright\r\n while (luminance > range.max) {\r\n adjustedColor = darken(adjustedColor, 0.05);\r\n luminance = getLuminance(adjustedColor);\r\n }\r\n\r\n // Lighten if too dark\r\n while (luminance < range.min) {\r\n adjustedColor = lighten(adjustedColor, 0.05);\r\n luminance = getLuminance(adjustedColor);\r\n }\r\n\r\n return toRgba(adjustedColor);\r\n};\r\n\r\nconst lightenForContrast = (color: string): string => {\r\n while (hasBadContrast(color, \"readable\", LIGHT_GRAYSCALE.DARK)) {\r\n color = lighten(color, 0.01);\r\n }\r\n return toRgba(color);\r\n};\r\n\r\nconst darkenForContrast = (color: string): string => {\r\n while (hasBadContrast(LIGHT_GRAYSCALE.SUPER_LIGHT, \"readable\", color)) {\r\n color = darken(color, 0.01);\r\n }\r\n return toRgba(color);\r\n};\r\n\r\nconst adjustBrightnessForLuminance = (color: string): string => {\r\n let currentColor = color;\r\n let currentLuminance = getLuminance(toRgba(currentColor));\r\n let adjustmentAttempts = 0;\r\n const MAX_ATTEMPTS = 6;\r\n\r\n while (currentLuminance < 0.16 && adjustmentAttempts < MAX_ATTEMPTS) {\r\n adjustmentAttempts++;\r\n currentColor = lighten(currentColor, 0.1);\r\n currentLuminance = getLuminance(toRgba(currentColor));\r\n }\r\n\r\n while (currentLuminance > 0.6 && adjustmentAttempts < MAX_ATTEMPTS) {\r\n adjustmentAttempts++;\r\n currentColor = darken(currentColor, 0.1);\r\n currentLuminance = getLuminance(toRgba(currentColor));\r\n }\r\n\r\n return toRgba(currentColor);\r\n};\r\n","import ColorThief from \"colorthief\";\r\nimport type { RGBArray } from \"../design/types\";\r\n\r\n/**\r\n * Gets the dominant color of an image. Avoids issues with low contrast colors.\r\n * @reference https://github.com/lokesh/color-thief/issues/40\r\n * @param image - The image to get the dominant color from.\r\n * @returns A Promise that resolves to an RGB array.\r\n */\r\nexport function getDominantColor(image: HTMLImageElement): Promise<RGBArray>;\r\nexport function getDominantColor(image: string): Promise<RGBArray>;\r\nexport function getDominantColor(\r\n image: HTMLImageElement | string\r\n): Promise<RGBArray> {\r\n if (image instanceof HTMLImageElement) {\r\n return Promise.resolve(getDominantColorFromImage(image));\r\n } else {\r\n return getDominantColorFromImageUrl(image);\r\n }\r\n}\r\n\r\nfunction getDominantColorFromImage(image: HTMLImageElement): RGBArray {\r\n try {\r\n const colorThief = new ColorThief();\r\n const baseColor = colorThief.getColor(image);\r\n return baseColor;\r\n } catch {\r\n return [255, 255, 255];\r\n }\r\n}\r\n\r\nfunction getDominantColorFromImageUrl(url: string): Promise<RGBArray> {\r\n return new Promise((resolve, reject) => {\r\n const imgElement = document.createElement(\"img\");\r\n imgElement.crossOrigin = \"anonymous\";\r\n\r\n imgElement.onload = () => {\r\n try {\r\n const baseColor = new ColorThief().getColor(imgElement);\r\n resolve(baseColor);\r\n } catch {\r\n resolve([255, 255, 255]);\r\n }\r\n };\r\n\r\n imgElement.onerror = () => reject(new Error(\"Failed to load image\"));\r\n imgElement.src = url;\r\n });\r\n}\r\n"],"names":["generatePalette","baseColor","primaryRgba","arrayToRgbString","primaryScaleFunc","getScale","primaryScale","_","i","color","desaturate","adjustedPrimaryScale","saturate","adjustBrightnessForLuminance","secondaryColor","toRgba","adjustHue","secondaryScaleFunc","secondaryScale","adjustedSecondaryScale","brandPrimary","darkenForContrast","brandSecondary","lightenWithinRange","lightenForContrast","DARK_GRAYSCALE","amount","range","adjustedColor","currentLuminance","getLuminance","remainingLuminance","scaledAmount","lighten","darken","finalLuminance","adjustBrightnessWithinRange","luminance","hasBadContrast","LIGHT_GRAYSCALE","currentColor","adjustmentAttempts","MAX_ATTEMPTS","getDominantColor","image","getDominantColorFromImage","getDominantColorFromImageUrl","ColorThief","url","resolve","reject","imgElement"],"mappings":"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"}