@protonradio/proton-ui 0.12.4 → 0.12.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/README.md +10 -0
  2. package/dist/components/ActionMenu/ActionMenu.cjs.js.map +1 -1
  3. package/dist/components/ActionMenu/ActionMenu.es.js.map +1 -1
  4. package/dist/components/Banner/Banner.cjs.js.map +1 -1
  5. package/dist/components/Banner/Banner.es.js.map +1 -1
  6. package/dist/components/Button/Button.cjs.js.map +1 -1
  7. package/dist/components/Button/Button.es.js.map +1 -1
  8. package/dist/components/ButtonGroup/ButtonGroup.cjs.js +1 -1
  9. package/dist/components/ButtonGroup/ButtonGroup.cjs.js.map +1 -1
  10. package/dist/components/ButtonGroup/ButtonGroup.es.js +10 -10
  11. package/dist/components/ButtonGroup/ButtonGroup.es.js.map +1 -1
  12. package/dist/components/Checkbox/CheckboxInput/CheckboxInput.cjs.js.map +1 -1
  13. package/dist/components/Checkbox/CheckboxInput/CheckboxInput.es.js.map +1 -1
  14. package/dist/components/Checkbox/CheckboxRadioGroup/CheckboxRadioGroup.cjs.js.map +1 -1
  15. package/dist/components/Checkbox/CheckboxRadioGroup/CheckboxRadioGroup.es.js.map +1 -1
  16. package/dist/components/Input/BaseInput/Input.cjs.js.map +1 -1
  17. package/dist/components/Input/BaseInput/Input.es.js.map +1 -1
  18. package/dist/components/Input/OTPInput/OTPInput.cjs.js.map +1 -1
  19. package/dist/components/Input/OTPInput/OTPInput.es.js.map +1 -1
  20. package/dist/components/Popover/Popover.cjs.js +1 -1
  21. package/dist/components/Popover/Popover.cjs.js.map +1 -1
  22. package/dist/components/Popover/Popover.es.js +21 -14
  23. package/dist/components/Popover/Popover.es.js.map +1 -1
  24. package/dist/components/ScreenOverlay/ScreenOverlay.cjs.js.map +1 -1
  25. package/dist/components/ScreenOverlay/ScreenOverlay.es.js.map +1 -1
  26. package/dist/components/Select/Select.cjs.js.map +1 -1
  27. package/dist/components/Select/Select.es.js.map +1 -1
  28. package/dist/components/Text/TextEllipsis/TextEllipsis.cjs.js.map +1 -1
  29. package/dist/components/Text/TextEllipsis/TextEllipsis.es.js.map +1 -1
  30. package/dist/components/Tooltip/ResponsiveTooltip.cjs.js.map +1 -1
  31. package/dist/components/Tooltip/ResponsiveTooltip.es.js.map +1 -1
  32. package/dist/constants/breakpoint.cjs.js.map +1 -1
  33. package/dist/constants/breakpoint.es.js.map +1 -1
  34. package/dist/constants.d.ts +2 -0
  35. package/dist/dark.d.ts +0 -1
  36. package/dist/design/darkTheme/colors.cjs.js +1 -1
  37. package/dist/design/darkTheme/colors.cjs.js.map +1 -1
  38. package/dist/design/darkTheme/colors.es.js +7 -8
  39. package/dist/design/darkTheme/colors.es.js.map +1 -1
  40. package/dist/design/generateStylesheet.cjs.js.map +1 -1
  41. package/dist/design/generateStylesheet.es.js +0 -1
  42. package/dist/design/generateStylesheet.es.js.map +1 -1
  43. package/dist/design/lightTheme/colors.cjs.js +1 -1
  44. package/dist/design/lightTheme/colors.cjs.js.map +1 -1
  45. package/dist/design/lightTheme/colors.es.js +10 -11
  46. package/dist/design/lightTheme/colors.es.js.map +1 -1
  47. package/dist/hooks/useBreakpoint.cjs.js.map +1 -1
  48. package/dist/hooks/useBreakpoint.es.js.map +1 -1
  49. package/dist/hooks/useMergedRef.cjs.js.map +1 -1
  50. package/dist/hooks/useMergedRef.es.js.map +1 -1
  51. package/dist/hooks.d.ts +1 -3
  52. package/dist/index.d.ts +15 -11
  53. package/dist/light.d.ts +0 -1
  54. package/dist/style.css +1 -1
  55. package/dist/theme.d.ts +0 -1
  56. package/dist/utils/palette.cjs.js +1 -1
  57. package/dist/utils/palette.cjs.js.map +1 -1
  58. package/dist/utils/palette.es.js +64 -77
  59. package/dist/utils/palette.es.js.map +1 -1
  60. package/dist/utils.d.ts +0 -1
  61. package/package.json +1 -1
package/dist/index.d.ts CHANGED
@@ -174,7 +174,7 @@ declare interface BannerIconProps {
174
174
  */
175
175
  icon?: boolean | ReactNode;
176
176
  /**
177
- * The data-testid to display within the banner.
177
+ * The data-testid for the banner icon.
178
178
  */
179
179
  "data-testid"?: string;
180
180
  }
@@ -190,7 +190,7 @@ declare interface BannerProps extends BannerIconProps {
190
190
  */
191
191
  children: ReactNode;
192
192
  /**
193
- * The data-testid to display within the banner.
193
+ * The data-testid for the banner.
194
194
  */
195
195
  "data-testid"?: string;
196
196
  /**
@@ -415,7 +415,7 @@ declare interface ButtonProps {
415
415
  */
416
416
  fullWidth?: boolean;
417
417
  /** The prefix to display within the button */
418
- icon?: React.ReactNode;
418
+ icon?: ReactNode;
419
419
  /** Should the button be non-interactive? */
420
420
  isDisabled?: boolean;
421
421
  /** The URL that the button should link to. Turns the element into an `a` tag. If the URL is external, you should pass the entire URL to the `to` prop (e.g. `https://example.com`). */
@@ -429,7 +429,7 @@ declare interface ButtonProps {
429
429
  /** The test ID for the button */
430
430
  "data-testid"?: string;
431
431
  /** The content to display within the button */
432
- children?: React.ReactNode;
432
+ children?: ReactNode;
433
433
  }
434
434
 
435
435
  export declare type ButtonSize = "small" | "medium" | "large" | "xlarge" | "2xlarge";
@@ -502,7 +502,7 @@ declare interface CheckboxInputProps {
502
502
  error?: ReactNode | string;
503
503
  /** The description attribute of the checkbox input. */
504
504
  description?: ReactNode | string;
505
- /** The test id attribute of the checkbox input. */
505
+ /** The test id attribute of the checkbox `input` element. */
506
506
  "data-testid"?: string;
507
507
  /**
508
508
  * Callback fired when the checkbox state changes.
@@ -616,7 +616,7 @@ declare interface CheckboxRadioGroupProps {
616
616
  */
617
617
  round?: boolean;
618
618
  /**
619
- * Test ID for the group.
619
+ * Test ID for the group elemnt `RadixRadioGroup.Root`
620
620
  */
621
621
  "data-testid"?: string;
622
622
  }
@@ -879,7 +879,12 @@ declare interface ModalProps {
879
879
  export declare const OTPInput: ForwardRefExoticComponent<OTPInputProps & RefAttributes<HTMLDivElement>>;
880
880
 
881
881
  declare interface OTPInputProps {
882
- /** Test ID for digit inputs */
882
+ /** Test ID for digit inputs
883
+ * @important The test id is applied to each digit as:
884
+ * ```
885
+ * ${dataTestId}-digit-${index + 1}
886
+ * ```
887
+ */
883
888
  "data-testid"?: string;
884
889
  /** Default value when uncontrolled. */
885
890
  defaultValue?: string;
@@ -982,7 +987,7 @@ declare interface PopoverProps {
982
987
  */
983
988
  onOpenChange?: (open: boolean) => void;
984
989
  /**
985
- * The trigger element for the popover.
990
+ * The trigger element for the `Popover.Content`.
986
991
  */
987
992
  trigger: ReactNode;
988
993
  /**
@@ -1019,7 +1024,6 @@ declare type ProtonPalette = {
1019
1024
  };
1020
1025
  PRIMARY: ProtonColorScale;
1021
1026
  SECONDARY: ProtonColorScale;
1022
- GRAYSCALE: ProtonColorScale;
1023
1027
  };
1024
1028
 
1025
1029
  declare interface ProtonStyleSheet {
@@ -1074,7 +1078,7 @@ declare interface ResponsiveTooltipProps extends Omit<TooltipProps, "placement">
1074
1078
  * Placement/side of the tooltip/popover.
1075
1079
  * @default "top"
1076
1080
  */
1077
- placement?: TooltipPlacement;
1081
+ placement?: RadixSide;
1078
1082
  /**
1079
1083
  * Force a specific component type.
1080
1084
  * @default "auto"
@@ -1609,7 +1613,7 @@ declare interface TextEllipsisProps {
1609
1613
  */
1610
1614
  title?: string;
1611
1615
  /**
1612
- * A test ID.
1616
+ * Test id for the component.
1613
1617
  */
1614
1618
  "data-testid"?: string;
1615
1619
  }
package/dist/light.d.ts CHANGED
@@ -33,7 +33,6 @@ declare type ProtonPalette = {
33
33
  };
34
34
  PRIMARY: ProtonColorScale;
35
35
  SECONDARY: ProtonColorScale;
36
- GRAYSCALE: ProtonColorScale;
37
36
  };
38
37
 
39
38
  declare interface ProtonStyleSheet {
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- .proton-Button{--proton-button-edge-padding:1.05em;--proton-button__background-color:var(--proton-color__primary);--proton-button__text-color:var(--proton-color__white);color:var(--proton-button__text-color);border-radius:var(--proton-control__border-radius);padding:.45em var(--proton-button-edge-padding);letter-spacing:.05em;cursor:pointer;box-sizing:border-box;background-color:var(--proton-button__background-color);border:0;align-items:center;transition:filter .2s,background-color .2s,outline .2s;display:inline-flex;position:relative}.proton-Button__icon-decorator{justify-content:center;align-items:center;padding-right:.3em;line-height:1;display:flex;position:relative}.proton-Button__icon-decorator--fullWidth{position:absolute}.proton-Button__text{box-sizing:border-box;text-align:center;white-space:nowrap;text-overflow:ellipsis;margin:auto;line-height:normal;overflow:hidden}.proton-Button:hover{filter:brightness(1.16);cursor:pointer}.proton-Button--primary{--proton-button__background-color:var(--proton-color__primary);--proton-button__text-color:var(--proton-color__white)}.proton-Button--secondary{--proton-button__background-color:var(--proton-color__gray-light);--proton-button__text-color:var(--proton-control__text-color)}.proton-ui__theme--dark .proton-Button--secondary{--proton-button__background-color:var(--proton-control__background-color-light)}.proton-Button--danger{--proton-button__background-color:var(--proton-color__danger-medium)}.proton-Button--success{--proton-button__background-color:var(--proton-color__success-medium)}.proton-Button--translucent{--proton-button__background-color:var(--proton-control__background-color-light);--proton-button__text-color:var(--proton-control__text-color)}.proton-Button--disabled,.proton-Button--disabled:hover{opacity:.5;filter:none;cursor:not-allowed}.proton-Button:focus{outline:2px solid var(--proton-color__primary)}.proton-Button:focus-visible{outline:2px solid var(--proton-color__primary)}.proton-Button:active{filter:brightness(1.3);transition:filter .1s ease-out}.proton-Button--fullWidth{width:100%}.proton-Button--small{padding:.2rem .6rem;font-size:.875rem}.proton-Button--medium{padding:.4rem 1rem;font-size:1rem}.proton-Button--large{padding:.6rem 1.6rem;font-size:1.2rem}.proton-Button--xlarge{padding:1rem 2rem .8rem;font-size:1.3rem}.proton-Button--2xlarge{padding:1rem 2.6rem;font-size:1.6rem}.proton-Button--fullWidth .proton-Button__text{transform:translate(calc(var(--proton-button-text-shift)))}.proton-ScreenOverlay__background{will-change:backdrop-filter;-webkit-backdrop-filter:blur(24px)brightness(75%);backdrop-filter:blur(24px)brightness(75%);background-color:#000c;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:fixed;top:0;left:0}.proton-ScreenOverlay__z-index{z-index:10000}.proton-ScreenOverlay__image{object-fit:cover;width:100vw;height:100vh;position:absolute}.proton-ScreenOverlay__blur{-webkit-backdrop-filter:blur(24px)brightness(75%);backdrop-filter:blur(24px)brightness(75%);filter:brightness(46%);position:absolute;top:0;bottom:0;left:0;right:0}@keyframes fadeInBackground{0%{-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);background:#0000001a}to{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#000c}}@keyframes fadeOutBackground{0%{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#000c}to{-webkit-backdrop-filter:blur();backdrop-filter:blur();background:0 0}}.proton-ScreenOverlay__fade-in{animation:.2s ease-in-out forwards fadeInBackground}.proton-ScreenOverlay__fade-out{animation:.2s ease-in-out forwards fadeOutBackground}.proton-ActionMenu__wrapper{z-index:10;width:100%;max-height:100vh;position:fixed;bottom:0;left:0}.proton-ActionMenu__background-wrapper{opacity:0;transition:opacity .3s cubic-bezier(.34,1.56,.64,1);overflow-y:scroll}.proton-ActionMenu__card{color:var(--proton-control__text-color);background-color:var(--proton-control__background-color-light);z-index:1;border-radius:.875rem .875rem 0 0;flex-direction:column;height:0;transition:height .3s cubic-bezier(.34,1.56,.64,1);display:flex;position:relative;overflow:hidden;box-shadow:0 0 4px #0000001a,0 0 20px #00000026}.proton-ActionMenu__cancel-button{margin:0 .75rem 1rem}.proton-ActionMenu__content{flex:1;min-width:0;padding:.75rem .75rem 0}.proton-ActionMenu__menu>[data-radix-popper-content-wrapper]{width:100%!important;position:absolute!important;top:0!important;transform:none!important}.proton-ActionMenu__list{flex-direction:column;margin-bottom:.625rem;display:flex}.proton-ActionMenu__item{color:inherit;cursor:pointer;justify-content:space-between;align-items:center;padding:.75rem .5rem .75rem .75rem;transition:filter .2s,background-color .2s,color .2s;display:flex}.proton-ActionMenu__item:hover,.proton-ActionMenu__item:focus{background-color:var(--proton-control__hover-color);border:none;outline:none}.proton-ActionMenu__item[aria-checked=true]:hover,.proton-ActionMenu__item[aria-checked=true]:focus{filter:brightness(1.15)}.proton-ActionMenu__item[aria-checked=true]{background-color:var(--proton-color__primary-light);color:var(--proton-color__primary)}.proton-ui__theme--dark .proton-ActionMenu__item[aria-checked=true]{background-color:var(--proton-color__primary);color:var(--proton-control__text-color)}.proton-ActionMenu__item[aria-disabled=true],.proton-ActionMenu__list[aria-disabled=true],.proton-ActionMenu__item[aria-disabled=true]:hover{opacity:.5;cursor:not-allowed;background-color:#0000}.proton-ActionMenu__list[aria-disabled=true] .proton-ActionMenu__item{pointer-events:none}.proton-ActionMenu__title{text-align:center;width:100%;font-weight:600}.proton-ActionMenu__back-button{cursor:pointer;z-index:1;align-items:center;width:100%;height:100%;padding-left:.35rem;display:flex;position:absolute;left:0}.proton-ActionMenu__back-button:hover,.proton-ActionMenu__cancel-button:focus{background-color:var(--proton-control__hover-color);outline:none}.proton-ActionMenu__back-button:focus-visible{background-color:var(--proton-control__hover-color);outline:none}.proton-ActionMenu__cancel-button:focus-visible{background-color:var(--proton-control__hover-color);outline:none}.proton-ActionMenu__back-button-container{align-items:center;height:3rem;display:flex;position:relative}.proton-ActionMenu__description{color:var(--proton-control__text-color);opacity:.7;font-size:.875rem}.proton-ActionMenu__item-label{font-weight:500}.proton-ui__theme--dark .proton-ActionMenu__cancel-button button{--proton-button__background-color:var(--proton-control__background-color-light)}.proton-Badge{letter-spacing:.2em;text-align:center;text-transform:uppercase;white-space:nowrap;height:1.6rem;color:#666;background-color:#f2f2f2;border-radius:10rem;padding-left:1rem;padding-right:calc(1rem - .2em);font-size:1rem;font-weight:500;line-height:1.65rem;display:inline-block}.proton-ui__theme--dark .proton-Badge:not([class*=proton-Badge--]),.proton-ui__theme--dark .proton-Badge--secondary{background-color:var(--proton-control__background-color-light);color:var(--proton-control__text-color)}.proton-Badge--primary{background-color:var(--proton-color__primary);color:var(--proton-color__primary-light)}.proton-Badge--success{background-color:var(--proton-color__success-super-light);color:var(--proton-color__success-dark)}.proton-Badge--warning{background-color:var(--proton-color__warning-super-light);color:var(--proton-color__warning-dark)}.proton-Badge--danger{background-color:var(--proton-color__danger-super-light);color:var(--proton-color__danger-dark)}.proton-Badge--transparent{color:#666;background-color:#0000}.proton-Banner{background-color:var(--banner-bg);-webkit-backdrop-filter:var(--banner-blur);backdrop-filter:var(--banner-blur);--tw-backdrop-blur:var(--banner-blur);--banner-bg:var(--proton-control__background-color-light);--banner-title:var(--proton-color__gray-dark);--banner-content:var(--proton-color__gray-medium);--banner-icon:var(--proton-color__gray-medium-light);--banner-blur:none;margin:0}:where(.proton-ui__theme--dark) .proton-Banner{--banner-bg:var(--proton-control__background-color-light);--banner-blur:blur(15px);--banner-title:var(--proton-control__text-color);--banner-content:var(--proton-control__text-color);--banner-icon:var(--proton-control__text-color)}.proton-Banner--warning{--banner-bg:var(--proton-color__warning-super-light);--banner-title:var(--proton-color__warning-dark);--banner-content:var(--proton-color__warning-medium);--banner-icon:var(--proton-color__warning-light)}.proton-Banner--success{--banner-bg:var(--proton-color__success-super-light);--banner-title:var(--proton-color__success-dark);--banner-content:var(--proton-color__success-medium);--banner-icon:var(--proton-color__success-light)}.proton-Banner--danger{--banner-bg:var(--proton-color__danger-super-light);--banner-title:var(--proton-color__danger-dark);--banner-content:var(--proton-color__danger-medium);--banner-icon:var(--proton-color__danger-light)}.proton-Banner--rounded{border-radius:.375rem}.proton-Banner__wrapper{align-items:flex-start;padding:2rem;display:flex}.proton-Banner__wrapper--compact{padding:1rem}.proton-Banner__content-wrapper{min-width:0;color:var(--banner-content);flex:1}.proton-Banner__container{padding:0 .625rem}.proton-Banner__title{letter-spacing:.01rem;color:var(--banner-title);line-height:1.2rem}.proton-Banner__content{color:var(--banner-content);margin:.375rem 0 0}.proton-Banner__icon{fill:var(--banner-icon);height:20px}.proton-Banner__actions{gap:.5rem;margin:.375rem 0 0;display:flex}@media (min-width:768px){.proton-Banner__container{grid-gap:.5rem;grid-template-columns:1fr auto;display:grid}.proton-Banner__title,.proton-Banner__content{grid-column:1;margin:auto 0}.proton-Banner__container:not(:has(.proton-Banner__content)){grid-gap:0px;grid-template-rows:1fr}.proton-Banner__container>div:last-child{grid-area:1/2/span 2;max-height:32px;margin:auto 0}.proton-Banner__actions{margin:0 0 0 .75rem}.proton-Banner__wrapper:not(:has(.proton-Banner__content)){align-items:center}}.proton-ButtonGroup{border:1px solid var(--proton-color__gray-light);border-radius:.25rem;font-weight:400;display:flex;overflow:hidden}.proton-ButtonGroup__option{background-color:var(--proton-color__gray-super-light);cursor:pointer;border:none;border-left:1px solid var(--proton-color__gray-light);color:var(--proton-color__gray-dark);text-align:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit;border-radius:0;flex:1;margin:0;padding:.5em 1em;display:block}.proton-ButtonGroup__option:first-child{border-left:0}.proton-ButtonGroup__option[data-state=checked]{background-color:var(--proton-color__white);color:var(--proton-color__primary);z-index:2;cursor:default;border-radius:inherit;box-shadow:0 0 .375rem #00000026}.proton-ButtonGroup__option[data-state=checked]+.proton-ButtonGroup__option{border-left:1px solid #0000}.proton-ButtonGroup__option:focus-visible{outline:2px solid var(--proton-color__primary)}.proton-MenuTrigger__menu-header{text-transform:uppercase;color:var(--proton-control__text-color);background-color:var(--proton-control__background-color-light);letter-spacing:.1em;padding:.3125rem 1rem .25rem;font-size:.8em;font-weight:700}.proton-MenuTrigger__button{cursor:pointer;color:var(--proton-control__text-color);background:0 0;border:none;border-radius:.25rem;justify-content:center;align-items:center;padding:.25rem;transition:background-color .2s ease-in-out;display:flex}.proton-MenuTrigger__button:disabled{cursor:not-allowed;opacity:.5}.proton-ui__theme--dark .proton-MenuTrigger__button:disabled:hover,.proton-MenuTrigger__button:disabled:hover{background:0 0}.proton-MenuTrigger__button:focus{outline:2px solid var(--proton-color__primary)}.proton-MenuTrigger__button:hover{background-color:var(--proton-control__hover-color)}.proton-MenuTrigger__menu-item .proton-Menu__item,.proton-MenuTrigger__menu-item{color:var(--proton-control__text-color);grid-template:"label kbd""desc kbd"/1fr auto;align-items:center;gap:.1em .5em;padding:.75em 1em;display:grid}.proton-MenuTrigger__menu-item .proton-Menu__item[data-has-submenu=true],.proton-MenuTrigger__menu-item[data-has-submenu=true]{grid-template-columns:unset;grid-template-areas:unset;justify-content:space-between;align-items:center;display:flex}.proton-MenuTrigger__label{grid-area:label}.proton-MenuTrigger__description{opacity:.7;grid-area:desc;font-size:.8em;line-height:1.1}.proton-MenuTrigger__chevron{padding-left:.5rem}[data-radix-popper-content-wrapper]:has(>.proton-Menu){z-index:10000!important}.proton-Menu{--menu-item-bg-color:transparent;letter-spacing:.05em;border-radius:var(--proton-control__border-radius);background-color:var(--proton-control__background-color-light);will-change:backdrop-filter;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--proton-control__border-color);min-width:100px;max-height:420px;color:var(--proton-control__text-color);box-shadow:0 0 3px var(--proton-control__shadow-color);margin:8px 0 0;padding:0;list-style:none;overflow:auto}.proton-Menu__item{background:var(--menu-item-bg-color);cursor:pointer;outline:none;justify-content:space-between;align-items:center;padding:8px 24px 8px 16px;transition:background-color .2s,opacity .2s,color .2s;display:flex}.proton-Menu__item[aria-checked=true]{--menu-item-bg-color:var(--proton-color__primary-super-light);color:var(--proton-color__primary);font-weight:600}.proton-Menu__item[aria-checked=true][data-highlighted=""]{--menu-item-bg-color:var(--proton-color__primary-super-light);opacity:.75}.proton-Menu__item[aria-selected=true]{--menu-item-bg-color:var(--proton-color__primary-super-light);color:var(--proton-color__primary);font-weight:600}.proton-Menu__item[aria-selected=true][data-highlighted=""]{--menu-item-bg-color:var(--proton-color__primary-super-light);opacity:.75}.proton-Menu__item[data-state=checked]{--menu-item-bg-color:var(--proton-color__primary-super-light);color:var(--proton-color__primary);font-weight:600}.proton-Menu__item[data-state=checked][data-highlighted=""]{--menu-item-bg-color:var(--proton-color__primary-super-light);opacity:.75}.proton-Menu__item[data-highlighted=""]{--menu-item-bg-color:var(--proton-control__hover-color)}.proton-Menu__item:hover{--menu-item-bg-color:var(--proton-control__hover-color);box-shadow:none}.proton-Menu__item[aria-disabled=true],.proton-Menu__item[data-disabled=true]{opacity:.5;cursor:not-allowed}.proton-ButtonWithSelect{align-items:stretch;display:flex;position:relative}.proton-ButtonWithSelect button:focus{outline:none}.proton-ButtonWithSelect__button{flex:var(--flex);align-items:stretch;display:flex}.proton-ButtonWithSelect__button button,.proton-ButtonWithSelect__button a{border-top-right-radius:0;border-bottom-right-radius:0;align-items:center;display:flex;position:relative;overflow:hidden}.proton-ButtonWithSelect__button button:after,.proton-ButtonWithSelect__button a:after{content:"";background-color:#00000026;width:1px;position:absolute;top:.3em;bottom:.3em;right:0}.proton-ButtonWithSelect__trigger{flex:0 0 var(--trigger-width);min-width:var(--trigger-width);max-width:var(--trigger-width)}.proton-ButtonWithSelect__trigger .proton-Button{border-top-left-radius:0;border-bottom-left-radius:0;width:100%;height:100%;padding:0}.proton-ButtonWithSelect__trigger-content{flex-direction:column;align-items:center;display:flex}.proton-CheckboxIndicator{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.proton-CheckboxIndicator--checkmark{width:14px;height:100%;color:var(--proton-color__white);left:1px}.proton-CheckboxIndicator__path{stroke-dasharray:1;stroke-dashoffset:1px;transition:stroke-dashoffset .18s ease-out}input:checked~.proton-CheckboxIndicator .proton-CheckboxIndicator__path,[data-state=checked] .proton-CheckboxIndicator__path{stroke-dashoffset:0}.proton-CheckboxIndicator__dot{background-color:var(--proton-color__white);opacity:0;border-radius:50%;width:8px;height:8px;transition:opacity .1s ease-in-out}input:checked~.proton-CheckboxIndicator .proton-CheckboxIndicator__dot,[data-state=checked] .proton-CheckboxIndicator__dot{opacity:1}.proton-CheckboxInput__container{align-items:center;gap:8px;display:flex}.proton-CheckboxInput__box{display:inline-block;position:relative}.proton-CheckboxInput__input{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;border:2px solid var(--proton-control__border-color);border-radius:var(--proton-control__border-radius);background-color:var(--proton-control__background-color);justify-content:center;align-items:center;width:18px;height:18px;transition:background-color .1s ease-in-out,border .1s ease-in-out,box-shadow .1s ease-in-out;display:flex;position:relative;margin:0!important}.proton-CheckboxInput__input--round{border-radius:50%}.proton-CheckboxInput__input:indeterminate{background-color:var(--proton-color__primary);border-color:var(--proton-color__primary)}.proton-CheckboxInput__input:-webkit-any(:checked,[data-state=checked]){background-color:var(--proton-color__primary);border-color:var(--proton-color__primary)}.proton-CheckboxInput__input:-moz-any(:checked,[data-state=checked]){background-color:var(--proton-color__primary);border-color:var(--proton-color__primary)}.proton-CheckboxInput__input:is(:checked,[data-state=checked]){background-color:var(--proton-color__primary);border-color:var(--proton-color__primary)}.proton-CheckboxInput__input:indeterminate:after{content:"";background-color:var(--proton-control__text-color);width:10px;height:2px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.proton-CheckboxInput__input:-webkit-any(:focus,:focus-visible){box-shadow:0 0 0 2px var(--proton-color__primary);outline:none}.proton-CheckboxInput__input:-moz-any(:focus,:focus-visible){box-shadow:0 0 0 2px var(--proton-color__primary);outline:none}.proton-CheckboxInput__input:is(:focus,:focus-visible){box-shadow:0 0 0 2px var(--proton-color__primary);outline:none}.proton-CheckboxInput__input--error{border-color:var(--proton-color__danger-medium)}.proton-CheckboxInput__input--error:-webkit-any(:focus,:focus-visible){box-shadow:0 0 0 2px var(--proton-color__danger-medium)}.proton-CheckboxInput__input--error:-moz-any(:focus,:focus-visible){box-shadow:0 0 0 2px var(--proton-color__danger-medium)}.proton-CheckboxInput__input--error:is(:focus,:focus-visible){box-shadow:0 0 0 2px var(--proton-color__danger-medium)}.proton-CheckboxInput__input:disabled{opacity:.6;cursor:not-allowed}.proton-CheckboxInput__input:disabled:-webkit-any(:checked,[data-state=checked]){background-color:var(--proton-control__border-color);border-color:var(--proton-control__border-color)}.proton-CheckboxInput__input:disabled:-moz-any(:checked,[data-state=checked]){background-color:var(--proton-control__border-color);border-color:var(--proton-control__border-color)}.proton-CheckboxInput__input:disabled:is(:checked,[data-state=checked]){background-color:var(--proton-control__border-color);border-color:var(--proton-control__border-color)}.proton-CheckboxInput__label{color:var(--proton-control__text-color);cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:400}.proton-CheckboxInput--disabled .proton-CheckboxInput__label{opacity:.6;cursor:not-allowed}.proton-CheckboxInput__error{color:var(--proton-color__danger-medium);opacity:1;margin-top:4px}.proton-CheckboxRadioGroup{gap:12px;display:flex}.proton-CheckboxRadioGroup--vertical{flex-direction:column}.proton-CheckboxRadioGroup--horizontal{flex-flow:wrap}.proton-CheckboxRadioGroup__checkmark{position:absolute;top:0;bottom:0;left:-2px;right:0}.proton-CheckboxRadioGroup__description{color:var(--proton-control__text-color);opacity:.7;margin-left:26px;font-size:.875em}.proton-Table{border-collapse:collapse;color:var(--proton-control__text-color);width:100%;font-weight:300}.proton-Table__caption{display:none}.proton-Table__header{cursor:default;letter-spacing:.1em;text-transform:uppercase;text-align:left;outline:none;padding:.4375rem .625rem;font-size:1rem;font-weight:500;line-height:1rem}.proton-Table__header--center{text-align:center}.proton-Table__header--right{text-align:right}.proton-Table__headerSortIcon{padding:0 .125rem}.proton-Table__row{cursor:default;outline:none}.proton-Table__rowGroup--header{border-bottom:1px solid #ccc}.proton-Table__row--showLines{border-top:1px solid #ccc}.proton-Table--clickable{cursor:pointer}.proton-Table__cell{vertical-align:middle;outline:none;padding:.4375rem .625rem}.proton-Table__cell--center{text-align:center}.proton-Table__cell--right{text-align:right}.proton-Elevation{border-radius:var(--proton-control__border-radius);background-color:var(--proton-control__elevation-color);width:100%;height:100%;transition:background-color .2s ease-in-out,-webkit-backdrop-filter .2s ease-in-out,backdrop-filter .2s ease-in-out}.proton-Elevation--glass{will-change:backdrop-filter;-webkit-backdrop-filter:blur(15px)saturate(104%);backdrop-filter:blur(15px)saturate(104%);box-shadow:inset -.05rem -.05rem 0 .05rem #ffffff03,inset .05rem .05rem 0 .05rem #ffffff03}@keyframes shimmer{0%{background-position:-300px 0}to{background-position:800px 0}}.proton-Tombstone{background-position:-300px 0;background-repeat:no-repeat;background-size:300px 100%;animation:1.5s linear infinite shimmer}.proton-ui__theme--light .proton-Tombstone{background-color:#d1d1d1;background-image:linear-gradient(-90deg,#d1d1d1,#b8b8b8,#d1d1d1)}.proton-ui__theme--dark .proton-Tombstone{background-color:#3c3c3c;background-image:linear-gradient(-90deg,#363636,#292727,#353535)}.proton-Tombstone--custom{background-image:linear-gradient(-90deg,var(--tombstone-custom-primary) 0%,var(--tombstone-custom-secondary) 50%,var(--tombstone-custom-primary) 100%);background-color:var(--tombstone-custom-background)}.proton-DataTable{width:100%}.proton-DataTable__header-content{align-items:center;gap:.5rem;display:flex}.proton-DataTable__message-cell{position:absolute;left:0;right:0}.proton-DataTable__empty-cell{text-align:center;padding:3rem 1.5rem}.proton-DataTable__sort-button{cursor:pointer;border-radius:var(--proton-control__border-radius);border:none;max-height:.8rem;padding-bottom:1px;transition:background-color .15s ease-in-out,opacity .15s ease-in-out,transform .15s ease-in-out;display:inline-flex}.proton-DataTable__sort-button:hover{background-color:var(--proton-control__hover-color)}.proton-DataTable__sort-button[aria-label*=ascending]{align-items:flex-end;transform:rotateX(180deg)}.proton-Input{max-width:var(--container-width,100%);border-radius:var(--proton-control__border-radius);box-sizing:border-box;outline:1px solid var(--proton-control__border-color);background:var(--proton-control__background-color-light);width:100%;height:100%;color:var(--proton-control__text-color);border:none;flex:1;padding-left:.75rem;font-weight:400;transition:outline .1s ease-in-out,background-color .1s ease-in-out,color .1s ease-in-out,opacity .1s ease-in-out}.proton-Input:disabled{opacity:.6;cursor:not-allowed}.proton-Input:not(.proton-Input--error):focus{outline:2px solid var(--proton-color__primary)}.proton-Input:not(.proton-Input--error):focus-visible{outline:2px solid var(--proton-color__primary)}.proton-Input.proton-Input--error{outline:2px solid var(--proton-color__danger-medium)}.proton-Input__container{width:100%;height:100%}.proton-Input__container-inner{width:100%;height:100%;position:relative}.proton-Input__descriptor{z-index:1;justify-content:center;height:100%;position:absolute;top:50%;transform:translateY(-50%)}.proton-Input__prefix,.proton-Input__suffix{justify-content:center;align-items:center;min-width:32px;display:flex}.proton-Input__prefix{opacity:.5;cursor:text;left:0}.proton-Input__suffix{outline:none;right:0}.proton-Input__container-inner.proton-Input__has-prefix .proton-Input{padding-left:var(--prefix-width,32px)}.proton-Input__container-inner.proton-Input__has-suffix .proton-Input{padding-right:calc(.75rem + var(--suffix-width,44px))}.proton-Input__text{margin-bottom:4px;padding:.25rem 0}.proton-Input__error{color:var(--proton-color__danger-medium);opacity:1}.proton-Input__label-top{padding-top:1.375rem;padding-bottom:.5rem}.proton-Input__label{opacity:.55;color:var(--proton-control__text-color);pointer-events:none;transition:all .3s cubic-bezier(.4,0,.2,1);position:absolute;top:50%;left:16px;transform:translateY(-50%)}.proton-Input__label--filled,.proton-Input[value]:not([value=""])+.proton-Input__label,.proton-Input:focus+.proton-Input__label{color:var(--proton-color__primary-light);opacity:1;font-size:.75rem;transform:translateY(-100%)}.proton-Input:focus+.proton-Input__label{color:var(--proton-color__primary-light);opacity:1}.proton-CopyInput-button{all:unset;cursor:pointer;color:var(--proton-control__text-color);text-transform:uppercase;letter-spacing:.2em;justify-content:center;align-items:center;width:100%;height:100%;padding:0 .875rem 0 1.4rem;font-size:.75rem;font-weight:600;line-height:1rem;transition:background-color .2s;display:flex}.proton-CopyInput-button svg{margin-bottom:.0625rem;transition:color .2s}.proton-CopyInput-button-text{margin:0 .5rem;transition:color .2s}.proton-CopyInput-button-text--copied,.proton-CopyInput-button--copied svg{color:var(--proton-color__primary)}.proton-Input:not(.proton-Input--error):focus{outline:1px solid var(--proton-control__border-color)}.proton-Input:not(.proton-Input--error):focus-visible{outline:1px solid var(--proton-control__border-color)}.proton-ui__theme--light .proton-CopyInput-button{border-left:1px solid var(--proton-control__border-color);align-items:center;height:100%;transition:background-color .2s;display:flex}.proton-CopyInput-button:hover{background-color:var(--proton-control__hover-color)}.proton-Overlay{background-color:var(--proton-control__background-color-light);border-radius:var(--proton-control__border-radius);box-shadow:0 0 8px 0 var(--proton-control__shadow-color),0 0 4px 0 var(--proton-control__shadow-color);color:var(--proton-control__text-color);outline:none;font-weight:300}.proton-Overlay__content{padding:7px 9px}.proton-Overlay-arrow,.proton-Overlay-arrow svg{fill:var(--proton-control__background-color-light)}.proton-OTPInput__digits{justify-content:center;align-items:center;display:flex}.proton-OTPInput__digit{color:var(--proton-control__text-color);border:1px solid var(--proton-control__border-color);background:var(--proton-control__background-color-light);text-align:center;box-sizing:border-box;border-radius:.625rem;max-width:2.675rem;min-height:3.225rem;margin:0 .25rem;font-size:1.25rem;transition:box-shadow 60ms ease-in-out,border-color .1s ease-in-out}@media (max-width:320px){.proton-OTPInput__digit{max-width:2.8125rem}}.proton-OTPInput__digit:focus{box-shadow:inset 0 0 4px var(--proton-color__primary);outline:none}.proton-OTPInput__digit:disabled{opacity:.8;cursor:not-allowed}.proton-OTPInput__digit--error,.proton-OTPInput__digit--error:focus{border-color:var(--proton-color__danger-medium);box-shadow:inset 0 0 4px var(--proton-color__danger-medium)}.proton-OTPInput__error{color:var(--proton-color__danger-medium);margin-bottom:.25rem;margin-left:.325rem}.proton-OTPInput__separator{color:var(--proton-control__border-color);font-weight:600}.proton-Modal{background-color:var(--proton-control__background-color-light);color:var(--proton-control__text-color);max-width:86vw;max-height:80vh;box-shadow:0 .0625rem .25rem -.0625rem var(--proton-control__shadow-color);opacity:1;border-radius:.5rem;padding:2rem;transition:opacity .2s ease-in-out;position:relative;overflow:visible}html:has([data-disable-document-scroll=true]){overflow:hidden}.proton-Modal__content{margin-top:.5rem}.proton-Modal--closing{opacity:0}@media (max-width:768px){.proton-Modal{border-radius:0;flex-direction:column;justify-content:center;align-items:center;width:100vw;max-width:100vw;height:100vh;max-height:100vh;padding:.25rem .5rem;display:flex}.proton-Modal>div{text-align:center;width:100%}}.proton-Modal__title{color:var(--proton-control__title-color);word-break:break-word;line-height:1.2}.proton-Modal__subtitle{color:var(--proton-control__text-color);line-height:1.5}.proton-Modal__body{word-break:break-word;margin:1rem 0;line-height:1.5}.proton-Modal__actions{justify-content:center;gap:1rem;margin-top:1rem;display:flex}.proton-Modal__close-button{cursor:pointer;color:var(--proton-control__text-color);background:0 0;border:none;border-radius:.25rem;padding:.5rem;font-size:2.2rem;font-weight:800;line-height:1;transition:opacity .15s;position:absolute;top:.375rem;right:.75rem}.proton-Modal__close-button:focus,.proton-Modal__close-button:hover{opacity:.8}.proton-Popover{--slide:translateY(.5rem);transform-origin:var(--radix-popover-content-transform-origin);max-height:var(--radix-popover-content-available-height);animation:.2s cubic-bezier(.16,1,.3,1) popoverSlideAndFade}.proton-Popover__constrained{width:var(--radix-popover-trigger-width)}[data-radix-popper-content-wrapper]:has(>.proton-Popover){z-index:10000!important;outline:none!important;min-width:0!important}.proton-Popover[data-state=closed]{animation:.2s reverse popoverSlideAndFade}@keyframes popoverSlideAndFade{0%{opacity:0;transform:var(--slide)}to{opacity:1;transform:translate(0)}}.proton-Input[type=search]{border-radius:3.125rem}.proton-SearchInput__wrapper{width:100%}.proton-SearchInput__button{color:currentColor;cursor:pointer;opacity:1;background-color:#0000;border:none;transition:opacity .2s ease-in-out}.proton-SearchInput__button--hide{opacity:0}.proton-SearchInput__wrapper input[type=search]::-webkit-search-decoration{display:none}.proton-SearchInput__wrapper input[type=search]::-webkit-search-cancel-button{display:none}.proton-SearchInput__wrapper input[type=search]::-webkit-search-results-button{display:none}.proton-SearchInput__wrapper input[type=search]::-webkit-search-results-decoration{display:none}.proton-Select{flex-direction:column;width:100%;margin:0;display:flex}.proton-Select__label{color:var(--proton-control__text-color);margin-bottom:.125rem}.proton-Select__trigger{color:var(--proton-control__text-color);font-size:inherit;border-radius:var(--proton-control__border-radius);flex:1;justify-content:space-between;align-items:center;width:100%;padding:.2rem .6rem .2rem 1rem;display:flex}.proton-Select__trigger--rounded{border-radius:3.125rem}button.proton-Select__trigger{letter-spacing:.05em;cursor:pointer;background:var(--proton-control__background-color-light);outline:1px solid var(--proton-control__border-color);border:none;font-weight:400;transition:outline .2s ease-in-out;position:relative}button.proton-Select__trigger:focus{outline:solid var(--proton-color__primary) 2px;border:none}button.proton-Select__trigger:focus-visible{outline:solid var(--proton-color__primary) 2px;border:none}.proton-Select__popover{padding-left:.25rem}.proton-Select__trigger_icon{color:var(--proton-control__text-color);width:.75em;height:.75em;margin-left:.8em;transition:transform .2s;position:relative}.proton-Select__trigger_icon svg{width:100%;height:100%;position:absolute;top:50%;left:0;transform:translateY(-50%)}.proton-Select__trigger_icon--flipped{transform:rotateX(180deg)}.proton-Select:hover{cursor:pointer}.proton-Select__trigger--disabled,.proton-Select__trigger--disabled:hover{opacity:.5;filter:none;cursor:not-allowed}.proton-Select__value{white-space:nowrap;text-overflow:ellipsis;pointer-events:none;overflow:hidden}.proton-Switch{flex-flow:column;row-gap:5px;display:flex}.proton-Switch__control{cursor:pointer;flex-flow:column;row-gap:5px;display:flex}.proton-Switch__label{text-transform:uppercase;letter-spacing:.1em;color:var(--proton-control__text-color);font-size:.7em;font-weight:600}.proton-Switch__description{color:var(--proton-control__text-color);align-self:center;font-size:.9em}.proton-Switch__wrapper{column-gap:12px;display:flex}.proton-Switch__toggle{background-color:var(--proton-color__gray-light);cursor:pointer;border-radius:26px;flex-shrink:0;width:50px;height:26px;position:relative}.proton-Switch__slider{background-color:#fff;border-radius:22px;width:22px;height:22px;transition:left .2s;position:absolute;top:2px;left:2px}.proton-Switch--on .proton-Switch__toggle{background-color:var(--proton-color__primary)}.proton-Switch--on .proton-Switch__slider{left:26px}.proton-Switch--disabled{opacity:.4}.proton-Switch--disabled .proton-Switch__toggle{cursor:not-allowed}.proton-Switch__control:has(input:focus-visible) .proton-Switch__toggle{outline:2px solid var(--proton-color__primary);outline-offset:2px}.proton-TextEllipsis{vertical-align:middle;color:var(--proton-control__text-color,inherit);font-family:inherit;font-size:inherit;line-height:inherit;width:100%;height:100%;display:inline-block;position:relative}.proton-TextEllipsis--single-line{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.proton-TextEllipsis--multi-line{text-overflow:ellipsis;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.proton-TextEmphasis{color:var(--proton-control__text-color);background-image:linear-gradient(0deg,#0000 0,#0000 15%,#ff713480 15%,#ff713480 35%,#0000 35%,#0000);padding:0 .05rem;font-style:normal;font-weight:600}.proton-TextEmphasis a{color:inherit;transition:color .15s}.proton-TextEmphasis a:hover{color:var(--proton-color__primary)}.proton-TextEmphasis--tooltip{background-image:linear-gradient(0deg,#0000 0,#0000 15%,#ff713480 25%,#ff713480 87%,#0000 80%,#0000);background-position:bottom;background-repeat:no-repeat;background-size:100% 35%;font-style:italic;font-weight:400;transition:background-size .3s,border-radius .3s}.proton-TextEmphasis--tooltip:hover{background-size:100% 100%;border-radius:.125rem}.proton-TextEmphasis--tooltip:not(:hover){transition-delay:.2s}.proton__Tooltip-trigger{display:inherit}.proton__Tooltip{--slide:translateY(.5rem);animation:.2s cubic-bezier(.16,1,.3,1) tooltipSlideAndFade}.proton__Tooltip[data-state=closed]{animation:.2s reverse tooltipSlideAndFade}@keyframes tooltipSlideAndFade{0%{opacity:0;transform:var(--slide)}to{opacity:1;transform:translate(0)}}[data-radix-popper-content-wrapper]:has(>.proton__Tooltip){z-index:10000!important;min-width:0!important}.proton-Waveform{--waveform-bar-color-dark:#ffffffe6;--waveform-bar-color-light:#000000b3;--waveform-disabled-color-dark:#fff3;--waveform-disabled-color-light:#0003;--waveform-animation-curve:cubic-bezier(.34, 1.56, .64, 1);--waveform-animation-duration:.4s;--waveform-bar-delay-multiplier:.7ms;--waveform-timestamp-padding:.25rem;--waveform-timestamp-font-size:.75rem;--waveform-timestamp-border-radius:.125rem;--waveform-hover-line-width:2px;flex-direction:row;align-items:center;width:100%;height:100%;display:flex;position:relative}.proton-Waveform__container{z-index:0;flex:1;align-items:center;width:100%;height:100%;display:flex;position:relative}.proton-Waveform__container[data-disabled=true]{cursor:not-allowed}.proton-Waveform__timestamp{pointer-events:none;border-radius:var(--waveform-timestamp-border-radius);padding:0 var(--waveform-timestamp-padding);font-size:var(--waveform-timestamp-font-size);z-index:1;background-color:#0009;position:absolute}.proton-ui__theme--light .proton-Waveform__timestamp{color:#000c;background-color:#ffffffe6;box-shadow:0 2px 2px #0000004d}.proton-Waveform__timestamp--left{left:1px}.proton-Waveform__timestamp--right{right:3px}.proton-Waveform__hover-line{width:var(--waveform-hover-line-width);background-color:#ffffff80;position:absolute;top:0;bottom:0;transform:translate(-50%)}.proton-ui__theme--light .proton-Waveform__hover-line{background-color:#00000080}.proton-Waveform__bar-wrapper{flex-direction:column;justify-content:center;align-items:center;height:100%;display:flex;position:relative}.proton-Waveform__bar{background-color:var(--waveform-bar-color-dark);transform-origin:50%;width:100%;height:0;transition:height var(--waveform-animation-duration) var(--waveform-animation-curve);position:relative}.proton-Waveform__bar.proton-Waveform__bar--visible{height:var(--target-height);transition-delay:calc(var(--index) * var(--waveform-bar-delay-multiplier))}.proton-Waveform__bar.proton-Waveform__bar--upper{transform-origin:bottom}.proton-Waveform__bar.proton-Waveform__bar--lower{transform-origin:top}.proton-ui__theme--light .proton-Waveform__bar{background-color:var(--waveform-bar-color-light)}.proton-Waveform__bar.proton-Waveform__bar--disabled{background-color:var(--waveform-disabled-color-dark)}.proton-ui__theme--light .proton-Waveform__bar.proton-Waveform__bar--disabled{background-color:var(--waveform-disabled-color-light)}.proton-Waveform__bar.proton-Waveform__bar--disabled.proton-Waveform__bar--played{background-color:var(--waveform-disabled-color-dark)}.proton-ui__theme--light .proton-Waveform__bar.proton-Waveform__bar--disabled.proton-Waveform__bar--played{background-color:var(--waveform-disabled-color-light)}.proton-Waveform__bar.proton-Waveform__bar--played{background-color:var(--proton-color__primary)}.proton-Waveform__bar--hover{height:var(--hover-height);z-index:10;background-color:color-mix(in srgb,var(--proton-color__primary) 50%,transparent);mix-blend-mode:darken;width:100%;position:absolute;top:50%;transform:translateY(-50%)}.proton-ui__theme--light .proton-Waveform__bar--hover{background-color:color-mix(in srgb,var(--proton-color__primary) 50%,white);mix-blend-mode:lighten}.proton-Waveform__bar-unavailable{pointer-events:none;text-align:center;z-index:10;color:#fff;background-color:#000000b3;border-radius:4px;padding:3px 6px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.proton-ui__theme--light .proton-Waveform__bar-unavailable{color:#000;background-color:#fff;box-shadow:0 5px 5px #0000004d}.proton-Waveform__active-region{pointer-events:none;z-index:1;border:1.5px solid #ffffffb3;border-radius:4px;position:absolute;top:0;bottom:0}.proton-ui__theme--light .proton-Waveform__active-region{border-color:#0000004d}
1
+ .proton-Button{--proton-button-edge-padding:1.05em;--proton-button__background-color:var(--proton-color__primary);--proton-button__text-color:var(--proton-color__white);color:var(--proton-button__text-color);border-radius:var(--proton-control__border-radius);padding:.45em var(--proton-button-edge-padding);letter-spacing:.05em;cursor:pointer;box-sizing:border-box;background-color:var(--proton-button__background-color);border:0;align-items:center;transition:filter .2s,background-color .2s,outline .2s;display:inline-flex;position:relative}.proton-Button__icon-decorator{justify-content:center;align-items:center;padding-right:.3em;line-height:1;display:flex;position:relative}.proton-Button__icon-decorator--fullWidth{position:absolute}.proton-Button__text{box-sizing:border-box;text-align:center;white-space:nowrap;text-overflow:ellipsis;margin:auto;line-height:normal;overflow:hidden}.proton-Button:hover{filter:brightness(1.16);cursor:pointer}.proton-Button--primary{--proton-button__background-color:var(--proton-color__primary);--proton-button__text-color:var(--proton-color__white)}.proton-Button--secondary{--proton-button__background-color:var(--proton-color__gray-light);--proton-button__text-color:var(--proton-control__text-color)}.proton-ui__theme--dark .proton-Button--secondary{--proton-button__background-color:var(--proton-control__background-color-light)}.proton-Button--danger{--proton-button__background-color:var(--proton-color__danger-medium)}.proton-Button--success{--proton-button__background-color:var(--proton-color__success-medium)}.proton-Button--translucent{--proton-button__background-color:var(--proton-control__background-color-light);--proton-button__text-color:var(--proton-control__text-color)}.proton-Button--disabled,.proton-Button--disabled:hover{opacity:.5;filter:none;cursor:not-allowed}.proton-Button:focus{outline:2px solid var(--proton-color__primary)}.proton-Button:focus-visible{outline:2px solid var(--proton-color__primary)}.proton-Button:active{filter:brightness(1.3);transition:filter .1s ease-out}.proton-Button--fullWidth{width:100%}.proton-Button--small{padding:.2rem .6rem;font-size:.875rem}.proton-Button--medium{padding:.4rem 1rem;font-size:1rem}.proton-Button--large{padding:.6rem 1.6rem;font-size:1.2rem}.proton-Button--xlarge{padding:1rem 2rem .8rem;font-size:1.3rem}.proton-Button--2xlarge{padding:1rem 2.6rem;font-size:1.6rem}.proton-Button--fullWidth .proton-Button__text{transform:translate(calc(var(--proton-button-text-shift)))}.proton-ScreenOverlay__background{will-change:backdrop-filter;-webkit-backdrop-filter:blur(24px)brightness(75%);backdrop-filter:blur(24px)brightness(75%);background-color:#000c;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:fixed;top:0;left:0}.proton-ScreenOverlay__z-index{z-index:10000}.proton-ScreenOverlay__image{object-fit:cover;width:100vw;height:100vh;position:absolute}.proton-ScreenOverlay__blur{-webkit-backdrop-filter:blur(24px)brightness(75%);backdrop-filter:blur(24px)brightness(75%);filter:brightness(46%);position:absolute;top:0;bottom:0;left:0;right:0}@keyframes fadeInBackground{0%{-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);background:#0000001a}to{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#000c}}@keyframes fadeOutBackground{0%{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#000c}to{-webkit-backdrop-filter:blur();backdrop-filter:blur();background:0 0}}.proton-ScreenOverlay__fade-in{animation:.2s ease-in-out forwards fadeInBackground}.proton-ScreenOverlay__fade-out{animation:.2s ease-in-out forwards fadeOutBackground}.proton-ActionMenu__wrapper{z-index:10;width:100%;max-height:100vh;position:fixed;bottom:0;left:0}.proton-ActionMenu__background-wrapper{opacity:0;transition:opacity .3s cubic-bezier(.34,1.56,.64,1);overflow-y:scroll}.proton-ActionMenu__card{color:var(--proton-control__text-color);background-color:var(--proton-control__background-color-light);z-index:1;border-radius:.875rem .875rem 0 0;flex-direction:column;height:0;transition:height .3s cubic-bezier(.34,1.56,.64,1);display:flex;position:relative;overflow:hidden;box-shadow:0 0 4px #0000001a,0 0 20px #00000026}.proton-ActionMenu__cancel-button{margin:0 .75rem 1rem}.proton-ActionMenu__content{flex:1;min-width:0;padding:.75rem .75rem 0}.proton-ActionMenu__menu>[data-radix-popper-content-wrapper]{width:100%!important;position:absolute!important;top:0!important;transform:none!important}.proton-ActionMenu__list{flex-direction:column;margin-bottom:.625rem;display:flex}.proton-ActionMenu__item{color:inherit;cursor:pointer;justify-content:space-between;align-items:center;padding:.75rem .5rem .75rem .75rem;transition:filter .2s,background-color .2s,color .2s;display:flex}.proton-ActionMenu__item:hover,.proton-ActionMenu__item:focus{background-color:var(--proton-control__hover-color);border:none;outline:none}.proton-ActionMenu__item[aria-checked=true]:hover,.proton-ActionMenu__item[aria-checked=true]:focus{filter:brightness(1.15)}.proton-ActionMenu__item[aria-checked=true]{background-color:var(--proton-color__primary-light);color:var(--proton-color__primary)}.proton-ui__theme--dark .proton-ActionMenu__item[aria-checked=true]{background-color:var(--proton-color__primary);color:var(--proton-control__text-color)}.proton-ActionMenu__item[aria-disabled=true],.proton-ActionMenu__list[aria-disabled=true],.proton-ActionMenu__item[aria-disabled=true]:hover{opacity:.5;cursor:not-allowed;background-color:#0000}.proton-ActionMenu__list[aria-disabled=true] .proton-ActionMenu__item{pointer-events:none}.proton-ActionMenu__title{text-align:center;width:100%;font-weight:600}.proton-ActionMenu__back-button{cursor:pointer;z-index:1;align-items:center;width:100%;height:100%;padding-left:.35rem;display:flex;position:absolute;left:0}.proton-ActionMenu__back-button:hover,.proton-ActionMenu__cancel-button:focus{background-color:var(--proton-control__hover-color);outline:none}.proton-ActionMenu__back-button:focus-visible{background-color:var(--proton-control__hover-color);outline:none}.proton-ActionMenu__cancel-button:focus-visible{background-color:var(--proton-control__hover-color);outline:none}.proton-ActionMenu__back-button-container{align-items:center;height:3rem;display:flex;position:relative}.proton-ActionMenu__description{color:var(--proton-control__text-color);opacity:.7;font-size:.875rem}.proton-ActionMenu__item-label{font-weight:500}.proton-ui__theme--dark .proton-ActionMenu__cancel-button button{--proton-button__background-color:var(--proton-control__background-color-light)}.proton-Badge{letter-spacing:.2em;text-align:center;text-transform:uppercase;white-space:nowrap;height:1.6rem;color:#666;background-color:#f2f2f2;border-radius:10rem;padding-left:1rem;padding-right:calc(1rem - .2em);font-size:1rem;font-weight:500;line-height:1.65rem;display:inline-block}.proton-ui__theme--dark .proton-Badge:not([class*=proton-Badge--]),.proton-ui__theme--dark .proton-Badge--secondary{background-color:var(--proton-control__background-color-light);color:var(--proton-control__text-color)}.proton-Badge--primary{background-color:var(--proton-color__primary);color:var(--proton-color__primary-light)}.proton-Badge--success{background-color:var(--proton-color__success-super-light);color:var(--proton-color__success-dark)}.proton-Badge--warning{background-color:var(--proton-color__warning-super-light);color:var(--proton-color__warning-dark)}.proton-Badge--danger{background-color:var(--proton-color__danger-super-light);color:var(--proton-color__danger-dark)}.proton-Badge--transparent{color:#666;background-color:#0000}.proton-Banner{background-color:var(--banner-bg);-webkit-backdrop-filter:var(--banner-blur);backdrop-filter:var(--banner-blur);--tw-backdrop-blur:var(--banner-blur);--banner-bg:var(--proton-control__background-color-light);--banner-title:var(--proton-color__gray-dark);--banner-content:var(--proton-color__gray-medium);--banner-icon:var(--proton-color__gray-medium-light);--banner-blur:none;margin:0}:where(.proton-ui__theme--dark) .proton-Banner{--banner-bg:var(--proton-control__background-color-light);--banner-blur:blur(15px);--banner-title:var(--proton-control__text-color);--banner-content:var(--proton-control__text-color);--banner-icon:var(--proton-control__text-color)}.proton-Banner--warning{--banner-bg:var(--proton-color__warning-super-light);--banner-title:var(--proton-color__warning-dark);--banner-content:var(--proton-color__warning-medium);--banner-icon:var(--proton-color__warning-light)}.proton-Banner--success{--banner-bg:var(--proton-color__success-super-light);--banner-title:var(--proton-color__success-dark);--banner-content:var(--proton-color__success-medium);--banner-icon:var(--proton-color__success-light)}.proton-Banner--danger{--banner-bg:var(--proton-color__danger-super-light);--banner-title:var(--proton-color__danger-dark);--banner-content:var(--proton-color__danger-medium);--banner-icon:var(--proton-color__danger-light)}.proton-Banner--rounded{border-radius:.375rem}.proton-Banner__wrapper{align-items:flex-start;padding:2rem;display:flex}.proton-Banner__wrapper--compact{padding:1rem}.proton-Banner__content-wrapper{min-width:0;color:var(--banner-content);flex:1}.proton-Banner__container{padding:0 .625rem}.proton-Banner__title{letter-spacing:.01rem;color:var(--banner-title);line-height:1.2rem}.proton-Banner__content{color:var(--banner-content);margin:.375rem 0 0}.proton-Banner__icon{fill:var(--banner-icon);height:20px}.proton-Banner__actions{gap:.5rem;margin:.375rem 0 0;display:flex}@media (min-width:768px){.proton-Banner__container{grid-gap:.5rem;grid-template-columns:1fr auto;display:grid}.proton-Banner__title,.proton-Banner__content{grid-column:1;margin:auto 0}.proton-Banner__container:not(:has(.proton-Banner__content)){grid-gap:0px;grid-template-rows:1fr}.proton-Banner__container>div:last-child{grid-area:1/2/span 2;max-height:32px;margin:auto 0}.proton-Banner__actions{margin:0 0 0 .75rem}.proton-Banner__wrapper:not(:has(.proton-Banner__content)){align-items:center}}.proton-ButtonGroup{border:1px solid var(--proton-color__gray-light);border-radius:.25rem;font-weight:400;display:flex;overflow:hidden}.proton-ButtonGroup__option{background-color:var(--proton-color__gray-super-light);cursor:pointer;border:none;border-left:1px solid var(--proton-color__gray-light);color:var(--proton-color__gray-dark);text-align:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit;border-radius:0;flex:1;margin:0;padding:.5em 1em;display:block}.proton-ButtonGroup__option:first-child{border-left:0}.proton-ButtonGroup__option[data-state=checked]{background-color:var(--proton-color__white);color:var(--proton-color__primary);z-index:2;cursor:default;border-radius:inherit;box-shadow:0 0 .375rem #00000026}.proton-ButtonGroup__option[data-state=checked]+.proton-ButtonGroup__option{border-left:1px solid #0000}.proton-ButtonGroup__option:focus-visible{outline:2px solid var(--proton-color__primary)}.proton-MenuTrigger__menu-header{text-transform:uppercase;color:var(--proton-control__text-color);background-color:var(--proton-control__background-color-light);letter-spacing:.1em;padding:.3125rem 1rem .25rem;font-size:.8em;font-weight:700}.proton-MenuTrigger__button{cursor:pointer;color:var(--proton-control__text-color);background:0 0;border:none;border-radius:.25rem;justify-content:center;align-items:center;padding:.25rem;transition:background-color .2s ease-in-out;display:flex}.proton-MenuTrigger__button:disabled{cursor:not-allowed;opacity:.5}.proton-ui__theme--dark .proton-MenuTrigger__button:disabled:hover,.proton-MenuTrigger__button:disabled:hover{background:0 0}.proton-MenuTrigger__button:focus{outline:2px solid var(--proton-color__primary)}.proton-MenuTrigger__button:hover{background-color:var(--proton-control__hover-color)}.proton-MenuTrigger__menu-item .proton-Menu__item,.proton-MenuTrigger__menu-item{color:var(--proton-control__text-color);grid-template:"label kbd""desc kbd"/1fr auto;align-items:center;gap:.1em .5em;padding:.75em 1em;display:grid}.proton-MenuTrigger__menu-item .proton-Menu__item[data-has-submenu=true],.proton-MenuTrigger__menu-item[data-has-submenu=true]{grid-template-columns:unset;grid-template-areas:unset;justify-content:space-between;align-items:center;display:flex}.proton-MenuTrigger__label{grid-area:label}.proton-MenuTrigger__description{opacity:.7;grid-area:desc;font-size:.8em;line-height:1.1}.proton-MenuTrigger__chevron{padding-left:.5rem}[data-radix-popper-content-wrapper]:has(>.proton-Menu){z-index:10000!important}.proton-Menu{--menu-item-bg-color:transparent;letter-spacing:.05em;border-radius:var(--proton-control__border-radius);background-color:var(--proton-control__background-color-light);will-change:backdrop-filter;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--proton-control__border-color);min-width:100px;max-height:420px;color:var(--proton-control__text-color);box-shadow:0 0 3px var(--proton-control__shadow-color);margin:8px 0 0;padding:0;list-style:none;overflow:auto}.proton-Menu__item{background:var(--menu-item-bg-color);cursor:pointer;outline:none;justify-content:space-between;align-items:center;padding:8px 24px 8px 16px;transition:background-color .2s,opacity .2s,color .2s;display:flex}.proton-Menu__item[aria-checked=true]{--menu-item-bg-color:var(--proton-color__primary-super-light);color:var(--proton-color__primary);font-weight:600}.proton-Menu__item[aria-checked=true][data-highlighted=""]{--menu-item-bg-color:var(--proton-color__primary-super-light);opacity:.75}.proton-Menu__item[aria-selected=true]{--menu-item-bg-color:var(--proton-color__primary-super-light);color:var(--proton-color__primary);font-weight:600}.proton-Menu__item[aria-selected=true][data-highlighted=""]{--menu-item-bg-color:var(--proton-color__primary-super-light);opacity:.75}.proton-Menu__item[data-state=checked]{--menu-item-bg-color:var(--proton-color__primary-super-light);color:var(--proton-color__primary);font-weight:600}.proton-Menu__item[data-state=checked][data-highlighted=""]{--menu-item-bg-color:var(--proton-color__primary-super-light);opacity:.75}.proton-Menu__item[data-highlighted=""]{--menu-item-bg-color:var(--proton-control__hover-color)}.proton-Menu__item:hover{--menu-item-bg-color:var(--proton-control__hover-color);box-shadow:none}.proton-Menu__item[aria-disabled=true],.proton-Menu__item[data-disabled=true]{opacity:.5;cursor:not-allowed}.proton-ButtonWithSelect{align-items:stretch;display:flex;position:relative}.proton-ButtonWithSelect button:focus{outline:none}.proton-ButtonWithSelect__button{flex:var(--flex);align-items:stretch;display:flex}.proton-ButtonWithSelect__button button,.proton-ButtonWithSelect__button a{border-top-right-radius:0;border-bottom-right-radius:0;align-items:center;display:flex;position:relative;overflow:hidden}.proton-ButtonWithSelect__button button:after,.proton-ButtonWithSelect__button a:after{content:"";background-color:#00000026;width:1px;position:absolute;top:.3em;bottom:.3em;right:0}.proton-ButtonWithSelect__trigger{flex:0 0 var(--trigger-width);min-width:var(--trigger-width);max-width:var(--trigger-width)}.proton-ButtonWithSelect__trigger .proton-Button{border-top-left-radius:0;border-bottom-left-radius:0;width:100%;height:100%;padding:0}.proton-ButtonWithSelect__trigger-content{flex-direction:column;align-items:center;display:flex}.proton-CheckboxIndicator{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.proton-CheckboxIndicator--checkmark{width:14px;height:100%;color:var(--proton-color__white);left:1px}.proton-CheckboxIndicator__path{stroke-dasharray:1;stroke-dashoffset:1px;transition:stroke-dashoffset .18s ease-out}input:checked~.proton-CheckboxIndicator .proton-CheckboxIndicator__path,[data-state=checked] .proton-CheckboxIndicator__path{stroke-dashoffset:0}.proton-CheckboxIndicator__dot{background-color:var(--proton-color__white);opacity:0;border-radius:50%;width:8px;height:8px;transition:opacity .1s ease-in-out}input:checked~.proton-CheckboxIndicator .proton-CheckboxIndicator__dot,[data-state=checked] .proton-CheckboxIndicator__dot{opacity:1}.proton-CheckboxInput__container{align-items:center;gap:8px;display:flex}.proton-CheckboxInput__box{display:inline-block;position:relative}.proton-CheckboxInput__input{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;border:2px solid var(--proton-control__border-color);border-radius:var(--proton-control__border-radius);background-color:var(--proton-control__background-color);justify-content:center;align-items:center;width:18px;height:18px;transition:background-color .1s ease-in-out,border .1s ease-in-out,box-shadow .1s ease-in-out;display:flex;position:relative;margin:0!important}.proton-CheckboxInput__input--round{border-radius:50%}.proton-CheckboxInput__input:indeterminate{background-color:var(--proton-color__primary);border-color:var(--proton-color__primary)}.proton-CheckboxInput__input:-webkit-any(:checked,[data-state=checked]){background-color:var(--proton-color__primary);border-color:var(--proton-color__primary)}.proton-CheckboxInput__input:-moz-any(:checked,[data-state=checked]){background-color:var(--proton-color__primary);border-color:var(--proton-color__primary)}.proton-CheckboxInput__input:is(:checked,[data-state=checked]){background-color:var(--proton-color__primary);border-color:var(--proton-color__primary)}.proton-CheckboxInput__input:indeterminate:after{content:"";background-color:var(--proton-control__text-color);width:10px;height:2px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.proton-CheckboxInput__input:-webkit-any(:focus,:focus-visible){box-shadow:0 0 0 2px var(--proton-color__primary);outline:none}.proton-CheckboxInput__input:-moz-any(:focus,:focus-visible){box-shadow:0 0 0 2px var(--proton-color__primary);outline:none}.proton-CheckboxInput__input:is(:focus,:focus-visible){box-shadow:0 0 0 2px var(--proton-color__primary);outline:none}.proton-CheckboxInput__input--error{border-color:var(--proton-color__danger-medium)}.proton-CheckboxInput__input--error:-webkit-any(:focus,:focus-visible){box-shadow:0 0 0 2px var(--proton-color__danger-medium)}.proton-CheckboxInput__input--error:-moz-any(:focus,:focus-visible){box-shadow:0 0 0 2px var(--proton-color__danger-medium)}.proton-CheckboxInput__input--error:is(:focus,:focus-visible){box-shadow:0 0 0 2px var(--proton-color__danger-medium)}.proton-CheckboxInput__input:disabled{opacity:.6;cursor:not-allowed}.proton-CheckboxInput__input:disabled:-webkit-any(:checked,[data-state=checked]){background-color:var(--proton-control__border-color);border-color:var(--proton-control__border-color)}.proton-CheckboxInput__input:disabled:-moz-any(:checked,[data-state=checked]){background-color:var(--proton-control__border-color);border-color:var(--proton-control__border-color)}.proton-CheckboxInput__input:disabled:is(:checked,[data-state=checked]){background-color:var(--proton-control__border-color);border-color:var(--proton-control__border-color)}.proton-CheckboxInput__label{color:var(--proton-control__text-color);cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:400}.proton-CheckboxInput--disabled .proton-CheckboxInput__label{opacity:.6;cursor:not-allowed}.proton-CheckboxInput__error{color:var(--proton-color__danger-medium);opacity:1;margin-top:4px}.proton-CheckboxRadioGroup{gap:12px;display:flex}.proton-CheckboxRadioGroup--vertical{flex-direction:column}.proton-CheckboxRadioGroup--horizontal{flex-flow:wrap}.proton-CheckboxRadioGroup__checkmark{position:absolute;top:0;bottom:0;left:-2px;right:0}.proton-CheckboxRadioGroup__description{color:var(--proton-control__text-color);opacity:.7;margin-left:26px;font-size:.875em}.proton-Table{border-collapse:collapse;color:var(--proton-control__text-color);width:100%;font-weight:300}.proton-Table__caption{display:none}.proton-Table__header{cursor:default;letter-spacing:.1em;text-transform:uppercase;text-align:left;outline:none;padding:.4375rem .625rem;font-size:1rem;font-weight:500;line-height:1rem}.proton-Table__header--center{text-align:center}.proton-Table__header--right{text-align:right}.proton-Table__headerSortIcon{padding:0 .125rem}.proton-Table__row{cursor:default;outline:none}.proton-Table__rowGroup--header{border-bottom:1px solid #ccc}.proton-Table__row--showLines{border-top:1px solid #ccc}.proton-Table--clickable{cursor:pointer}.proton-Table__cell{vertical-align:middle;outline:none;padding:.4375rem .625rem}.proton-Table__cell--center{text-align:center}.proton-Table__cell--right{text-align:right}.proton-Elevation{border-radius:var(--proton-control__border-radius);background-color:var(--proton-control__elevation-color);width:100%;height:100%;transition:background-color .2s ease-in-out,-webkit-backdrop-filter .2s ease-in-out,backdrop-filter .2s ease-in-out}.proton-Elevation--glass{will-change:backdrop-filter;-webkit-backdrop-filter:blur(15px)saturate(104%);backdrop-filter:blur(15px)saturate(104%);box-shadow:inset -.05rem -.05rem 0 .05rem #ffffff03,inset .05rem .05rem 0 .05rem #ffffff03}@keyframes shimmer{0%{background-position:-300px 0}to{background-position:800px 0}}.proton-Tombstone{background-position:-300px 0;background-repeat:no-repeat;background-size:300px 100%;animation:1.5s linear infinite shimmer}.proton-ui__theme--light .proton-Tombstone{background-color:#d1d1d1;background-image:linear-gradient(-90deg,#d1d1d1,#b8b8b8,#d1d1d1)}.proton-ui__theme--dark .proton-Tombstone{background-color:#3c3c3c;background-image:linear-gradient(-90deg,#363636,#292727,#353535)}.proton-Tombstone--custom{background-image:linear-gradient(-90deg,var(--tombstone-custom-primary) 0%,var(--tombstone-custom-secondary) 50%,var(--tombstone-custom-primary) 100%);background-color:var(--tombstone-custom-background)}.proton-DataTable{width:100%}.proton-DataTable__header-content{align-items:center;gap:.5rem;display:flex}.proton-DataTable__message-cell{position:absolute;left:0;right:0}.proton-DataTable__empty-cell{text-align:center;padding:3rem 1.5rem}.proton-DataTable__sort-button{cursor:pointer;border-radius:var(--proton-control__border-radius);border:none;max-height:.8rem;padding-bottom:1px;transition:background-color .15s ease-in-out,opacity .15s ease-in-out,transform .15s ease-in-out;display:inline-flex}.proton-DataTable__sort-button:hover{background-color:var(--proton-control__hover-color)}.proton-DataTable__sort-button[aria-label*=ascending]{align-items:flex-end;transform:rotateX(180deg)}.proton-Input{max-width:var(--container-width,100%);border-radius:var(--proton-control__border-radius);box-sizing:border-box;outline:1px solid var(--proton-control__border-color);background:var(--proton-control__background-color-light);width:100%;height:100%;color:var(--proton-control__text-color);border:none;flex:1;padding-left:.75rem;font-weight:400;transition:outline .1s ease-in-out,background-color .1s ease-in-out,color .1s ease-in-out,opacity .1s ease-in-out}.proton-Input:disabled{opacity:.6;cursor:not-allowed}.proton-Input:not(.proton-Input--error):focus{outline:2px solid var(--proton-color__primary)}.proton-Input:not(.proton-Input--error):focus-visible{outline:2px solid var(--proton-color__primary)}.proton-Input.proton-Input--error{outline:2px solid var(--proton-color__danger-medium)}.proton-Input__container{width:100%;height:100%}.proton-Input__container-inner{width:100%;height:100%;position:relative}.proton-Input__descriptor{z-index:1;justify-content:center;height:100%;position:absolute;top:50%;transform:translateY(-50%)}.proton-Input__prefix,.proton-Input__suffix{justify-content:center;align-items:center;min-width:32px;display:flex}.proton-Input__prefix{opacity:.5;cursor:text;left:0}.proton-Input__suffix{outline:none;right:0}.proton-Input__container-inner.proton-Input__has-prefix .proton-Input{padding-left:var(--prefix-width,32px)}.proton-Input__container-inner.proton-Input__has-suffix .proton-Input{padding-right:calc(.75rem + var(--suffix-width,44px))}.proton-Input__text{margin-bottom:4px;padding:.25rem 0}.proton-Input__error{color:var(--proton-color__danger-medium);opacity:1}.proton-Input__label-top{padding-top:1.375rem;padding-bottom:.5rem}.proton-Input__label{opacity:.55;color:var(--proton-control__text-color);pointer-events:none;transition:all .3s cubic-bezier(.4,0,.2,1);position:absolute;top:50%;left:16px;transform:translateY(-50%)}.proton-Input__label--filled,.proton-Input[value]:not([value=""])+.proton-Input__label,.proton-Input:focus+.proton-Input__label{color:var(--proton-color__primary-light);opacity:1;font-size:.75rem;transform:translateY(-100%)}.proton-Input:focus+.proton-Input__label{color:var(--proton-color__primary-light);opacity:1}.proton-CopyInput-button{all:unset;cursor:pointer;color:var(--proton-control__text-color);text-transform:uppercase;letter-spacing:.2em;justify-content:center;align-items:center;width:100%;height:100%;padding:0 .875rem 0 1.4rem;font-size:.75rem;font-weight:600;line-height:1rem;transition:background-color .2s;display:flex}.proton-CopyInput-button svg{margin-bottom:.0625rem;transition:color .2s}.proton-CopyInput-button-text{margin:0 .5rem;transition:color .2s}.proton-CopyInput-button-text--copied,.proton-CopyInput-button--copied svg{color:var(--proton-color__primary)}.proton-Input:not(.proton-Input--error):focus{outline:1px solid var(--proton-control__border-color)}.proton-Input:not(.proton-Input--error):focus-visible{outline:1px solid var(--proton-control__border-color)}.proton-ui__theme--light .proton-CopyInput-button{border-left:1px solid var(--proton-control__border-color);align-items:center;height:100%;transition:background-color .2s;display:flex}.proton-CopyInput-button:hover{background-color:var(--proton-control__hover-color)}.proton-Overlay{background-color:var(--proton-control__background-color-light);border-radius:var(--proton-control__border-radius);box-shadow:0 0 8px 0 var(--proton-control__shadow-color),0 0 4px 0 var(--proton-control__shadow-color);color:var(--proton-control__text-color);outline:none;font-weight:300}.proton-Overlay__content{padding:7px 9px}.proton-Overlay-arrow,.proton-Overlay-arrow svg{fill:var(--proton-control__background-color-light)}.proton-OTPInput__digits{justify-content:center;align-items:center;display:flex}.proton-OTPInput__digit{color:var(--proton-control__text-color);border:1px solid var(--proton-control__border-color);background:var(--proton-control__background-color-light);text-align:center;box-sizing:border-box;border-radius:.625rem;max-width:2.675rem;min-height:3.225rem;margin:0 .25rem;font-size:1.25rem;transition:box-shadow 60ms ease-in-out,border-color .1s ease-in-out}@media (max-width:320px){.proton-OTPInput__digit{max-width:2.8125rem}}.proton-OTPInput__digit:focus{box-shadow:inset 0 0 4px var(--proton-color__primary);outline:none}.proton-OTPInput__digit:disabled{opacity:.8;cursor:not-allowed}.proton-OTPInput__digit--error,.proton-OTPInput__digit--error:focus{border-color:var(--proton-color__danger-medium);box-shadow:inset 0 0 4px var(--proton-color__danger-medium)}.proton-OTPInput__error{color:var(--proton-color__danger-medium);margin-bottom:.25rem;margin-left:.325rem}.proton-OTPInput__separator{color:var(--proton-control__border-color);font-weight:600}.proton-Modal{background-color:var(--proton-control__background-color-light);color:var(--proton-control__text-color);max-width:86vw;max-height:80vh;box-shadow:0 .0625rem .25rem -.0625rem var(--proton-control__shadow-color);opacity:1;border-radius:.5rem;padding:2rem;transition:opacity .2s ease-in-out;position:relative;overflow:visible}html:has([data-disable-document-scroll=true]){overflow:hidden}.proton-Modal__content{margin-top:.5rem}.proton-Modal--closing{opacity:0}@media (max-width:768px){.proton-Modal{border-radius:0;flex-direction:column;justify-content:center;align-items:center;width:100vw;max-width:100vw;height:100vh;max-height:100vh;padding:.25rem .5rem;display:flex}.proton-Modal>div{text-align:center;width:100%}}.proton-Modal__title{color:var(--proton-control__title-color);word-break:break-word;line-height:1.2}.proton-Modal__subtitle{color:var(--proton-control__text-color);line-height:1.5}.proton-Modal__body{word-break:break-word;margin:1rem 0;line-height:1.5}.proton-Modal__actions{justify-content:center;gap:1rem;margin-top:1rem;display:flex}.proton-Modal__close-button{cursor:pointer;color:var(--proton-control__text-color);background:0 0;border:none;border-radius:.25rem;padding:.5rem;font-size:2.2rem;font-weight:800;line-height:1;transition:opacity .15s;position:absolute;top:.375rem;right:.75rem}.proton-Modal__close-button:focus,.proton-Modal__close-button:hover{opacity:.8}.proton-Popover{--slide:translateY(.5rem);transform-origin:var(--radix-popover-content-transform-origin);max-height:var(--radix-popover-content-available-height);animation:.2s cubic-bezier(.16,1,.3,1) popoverSlideAndFade}.proton-Popover__constrained{width:var(--radix-popover-trigger-width)}.proton-Popover-trigger{display:inline}[data-radix-popper-content-wrapper]:has(>.proton-Popover){z-index:10000!important;outline:none!important;min-width:0!important}.proton-Popover[data-state=closed]{animation:.2s reverse popoverSlideAndFade}@keyframes popoverSlideAndFade{0%{opacity:0;transform:var(--slide)}to{opacity:1;transform:translate(0)}}.proton-Input[type=search]{border-radius:3.125rem}.proton-SearchInput__wrapper{width:100%}.proton-SearchInput__button{color:currentColor;cursor:pointer;opacity:1;background-color:#0000;border:none;transition:opacity .2s ease-in-out}.proton-SearchInput__button--hide{opacity:0}.proton-SearchInput__wrapper input[type=search]::-webkit-search-decoration{display:none}.proton-SearchInput__wrapper input[type=search]::-webkit-search-cancel-button{display:none}.proton-SearchInput__wrapper input[type=search]::-webkit-search-results-button{display:none}.proton-SearchInput__wrapper input[type=search]::-webkit-search-results-decoration{display:none}.proton-Select{flex-direction:column;width:100%;margin:0;display:flex}.proton-Select__label{color:var(--proton-control__text-color);margin-bottom:.125rem}.proton-Select__trigger{color:var(--proton-control__text-color);font-size:inherit;border-radius:var(--proton-control__border-radius);flex:1;justify-content:space-between;align-items:center;width:100%;padding:.2rem .6rem .2rem 1rem;display:flex}.proton-Select__trigger--rounded{border-radius:3.125rem}button.proton-Select__trigger{letter-spacing:.05em;cursor:pointer;background:var(--proton-control__background-color-light);outline:1px solid var(--proton-control__border-color);border:none;font-weight:400;transition:outline .2s ease-in-out;position:relative}button.proton-Select__trigger:focus{outline:solid var(--proton-color__primary) 2px;border:none}button.proton-Select__trigger:focus-visible{outline:solid var(--proton-color__primary) 2px;border:none}.proton-Select__popover{padding-left:.25rem}.proton-Select__trigger_icon{color:var(--proton-control__text-color);width:.75em;height:.75em;margin-left:.8em;transition:transform .2s;position:relative}.proton-Select__trigger_icon svg{width:100%;height:100%;position:absolute;top:50%;left:0;transform:translateY(-50%)}.proton-Select__trigger_icon--flipped{transform:rotateX(180deg)}.proton-Select:hover{cursor:pointer}.proton-Select__trigger--disabled,.proton-Select__trigger--disabled:hover{opacity:.5;filter:none;cursor:not-allowed}.proton-Select__value{white-space:nowrap;text-overflow:ellipsis;pointer-events:none;overflow:hidden}.proton-Switch{flex-flow:column;row-gap:5px;display:flex}.proton-Switch__control{cursor:pointer;flex-flow:column;row-gap:5px;display:flex}.proton-Switch__label{text-transform:uppercase;letter-spacing:.1em;color:var(--proton-control__text-color);font-size:.7em;font-weight:600}.proton-Switch__description{color:var(--proton-control__text-color);align-self:center;font-size:.9em}.proton-Switch__wrapper{column-gap:12px;display:flex}.proton-Switch__toggle{background-color:var(--proton-color__gray-light);cursor:pointer;border-radius:26px;flex-shrink:0;width:50px;height:26px;position:relative}.proton-Switch__slider{background-color:#fff;border-radius:22px;width:22px;height:22px;transition:left .2s;position:absolute;top:2px;left:2px}.proton-Switch--on .proton-Switch__toggle{background-color:var(--proton-color__primary)}.proton-Switch--on .proton-Switch__slider{left:26px}.proton-Switch--disabled{opacity:.4}.proton-Switch--disabled .proton-Switch__toggle{cursor:not-allowed}.proton-Switch__control:has(input:focus-visible) .proton-Switch__toggle{outline:2px solid var(--proton-color__primary);outline-offset:2px}.proton-TextEllipsis{vertical-align:middle;color:var(--proton-control__text-color,inherit);font-family:inherit;font-size:inherit;line-height:inherit;width:100%;height:100%;display:inline-block;position:relative}.proton-TextEllipsis--single-line{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.proton-TextEllipsis--multi-line{text-overflow:ellipsis;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.proton-TextEmphasis{background-image:linear-gradient(0deg,#0000 0,#0000 15%,#ff713480 15%,#ff713480 35%,#0000 35%,#0000);padding:0 .05rem;font-style:normal}.proton-TextEmphasis a{color:inherit;transition:color .15s}.proton-TextEmphasis a:hover{color:var(--proton-color__primary)}.proton-TextEmphasis--tooltip{background-image:linear-gradient(0deg,#0000 0,#0000 15%,#ff713480 25%,#ff713480 87%,#0000 80%,#0000);background-position:bottom;background-repeat:no-repeat;background-size:100% 35%;font-style:italic;font-weight:400;transition:background-size .3s,border-radius .3s}.proton-TextEmphasis--tooltip:hover{background-size:100% 100%;border-radius:.125rem}.proton-TextEmphasis--tooltip:not(:hover){transition-delay:.2s}.proton__Tooltip-trigger{display:inherit}.proton__Tooltip{--slide:translateY(.5rem);animation:.2s cubic-bezier(.16,1,.3,1) tooltipSlideAndFade}.proton__Tooltip[data-state=closed]{animation:.2s reverse tooltipSlideAndFade}@keyframes tooltipSlideAndFade{0%{opacity:0;transform:var(--slide)}to{opacity:1;transform:translate(0)}}[data-radix-popper-content-wrapper]:has(>.proton__Tooltip){z-index:10000!important;min-width:0!important}.proton-Waveform{--waveform-bar-color-dark:#ffffffe6;--waveform-bar-color-light:#000000b3;--waveform-disabled-color-dark:#fff3;--waveform-disabled-color-light:#0003;--waveform-animation-curve:cubic-bezier(.34, 1.56, .64, 1);--waveform-animation-duration:.4s;--waveform-bar-delay-multiplier:.7ms;--waveform-timestamp-padding:.25rem;--waveform-timestamp-font-size:.75rem;--waveform-timestamp-border-radius:.125rem;--waveform-hover-line-width:2px;flex-direction:row;align-items:center;width:100%;height:100%;display:flex;position:relative}.proton-Waveform__container{z-index:0;flex:1;align-items:center;width:100%;height:100%;display:flex;position:relative}.proton-Waveform__container[data-disabled=true]{cursor:not-allowed}.proton-Waveform__timestamp{pointer-events:none;border-radius:var(--waveform-timestamp-border-radius);padding:0 var(--waveform-timestamp-padding);font-size:var(--waveform-timestamp-font-size);z-index:1;background-color:#0009;position:absolute}.proton-ui__theme--light .proton-Waveform__timestamp{color:#000c;background-color:#ffffffe6;box-shadow:0 2px 2px #0000004d}.proton-Waveform__timestamp--left{left:1px}.proton-Waveform__timestamp--right{right:3px}.proton-Waveform__hover-line{width:var(--waveform-hover-line-width);background-color:#ffffff80;position:absolute;top:0;bottom:0;transform:translate(-50%)}.proton-ui__theme--light .proton-Waveform__hover-line{background-color:#00000080}.proton-Waveform__bar-wrapper{flex-direction:column;justify-content:center;align-items:center;height:100%;display:flex;position:relative}.proton-Waveform__bar{background-color:var(--waveform-bar-color-dark);transform-origin:50%;width:100%;height:0;transition:height var(--waveform-animation-duration) var(--waveform-animation-curve);position:relative}.proton-Waveform__bar.proton-Waveform__bar--visible{height:var(--target-height);transition-delay:calc(var(--index) * var(--waveform-bar-delay-multiplier))}.proton-Waveform__bar.proton-Waveform__bar--upper{transform-origin:bottom}.proton-Waveform__bar.proton-Waveform__bar--lower{transform-origin:top}.proton-ui__theme--light .proton-Waveform__bar{background-color:var(--waveform-bar-color-light)}.proton-Waveform__bar.proton-Waveform__bar--disabled{background-color:var(--waveform-disabled-color-dark)}.proton-ui__theme--light .proton-Waveform__bar.proton-Waveform__bar--disabled{background-color:var(--waveform-disabled-color-light)}.proton-Waveform__bar.proton-Waveform__bar--disabled.proton-Waveform__bar--played{background-color:var(--waveform-disabled-color-dark)}.proton-ui__theme--light .proton-Waveform__bar.proton-Waveform__bar--disabled.proton-Waveform__bar--played{background-color:var(--waveform-disabled-color-light)}.proton-Waveform__bar.proton-Waveform__bar--played{background-color:var(--proton-color__primary)}.proton-Waveform__bar--hover{height:var(--hover-height);z-index:10;background-color:color-mix(in srgb,var(--proton-color__primary) 50%,transparent);mix-blend-mode:darken;width:100%;position:absolute;top:50%;transform:translateY(-50%)}.proton-ui__theme--light .proton-Waveform__bar--hover{background-color:color-mix(in srgb,var(--proton-color__primary) 50%,white);mix-blend-mode:lighten}.proton-Waveform__bar-unavailable{pointer-events:none;text-align:center;z-index:10;color:#fff;background-color:#000000b3;border-radius:4px;padding:3px 6px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.proton-ui__theme--light .proton-Waveform__bar-unavailable{color:#000;background-color:#fff;box-shadow:0 5px 5px #0000004d}.proton-Waveform__active-region{pointer-events:none;z-index:1;border:1.5px solid #ffffffb3;border-radius:4px;position:absolute;top:0;bottom:0}.proton-ui__theme--light .proton-Waveform__active-region{border-color:#0000004d}
package/dist/theme.d.ts CHANGED
@@ -38,7 +38,6 @@ export declare type ProtonPalette = {
38
38
  };
39
39
  PRIMARY: ProtonColorScale;
40
40
  SECONDARY: ProtonColorScale;
41
- GRAYSCALE: ProtonColorScale;
42
41
  };
43
42
 
44
43
  export declare interface ProtonStyleSheet {
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("../node_modules/color2k/dist/index.exports.import.es.cjs.js"),s=require("./color2k.cjs.js"),g=require("../design/lightTheme/colors.cjs.js"),R=require("../design/darkTheme/colors.cjs.js"),D=i=>{const r=s.arrayToRgbString(i),e=t.getScale("#FFFFFF",r,"#000000"),n=Array.from({length:12},(L,I)=>{const d=e(I/11);return s.desaturate(d,.0085)}),m=n.map(L=>s.saturate(G(L),.005)),l=t.toRgba(s.saturate(t.adjustHue(r,180),1)),o=t.getScale("#FFFFFF",l,"#000000"),c=Array.from({length:12},(L,I)=>{const d=o(I/11);return s.desaturate(d,.1)}),u=c.map(L=>s.desaturate(G(L),.22)),S=_(s.saturate(m[5],.115)),E=_(s.desaturate(u[5],.102));return{BASE_COLOR:s.arrayToRgbString(i),BRAND:{PRIMARY:S,PRIMARY_LIGHT:A(a(S,.08,{min:.55,max:.8})),PRIMARY_SUPER_LIGHT:a(S,.15,{min:.8,max:.89}),SECONDARY:E,SECONDARY_LIGHT:a(E,.08,{min:.55,max:.8}),SECONDARY_SUPER_LIGHT:A(a(E,.15,{min:.8,max:.89}))},PRIMARY:{SUPER_DARK:a(A(n[9]),-.6,{min:0,max:.02}),DARK:a(A(n[8]),-.4,{min:.01,max:.02}),MEDIUM:a(m[7],-.2,{min:0,max:.11}),MEDIUM_LIGHT:a(s.desaturate(m[6],.1),.08),LIGHT:a(s.saturate(m[5],.1),.16),LIGHTEST:a(s.saturate(m[3],.2),.12,{min:.5,max:.9}),SUPER_LIGHT:a(m[1],.02,{min:.76,max:.92}),WHITE:a(m[1],.11,{min:.9,max:.98})},SECONDARY:{SUPER_DARK:a(A(c[9]),-.6,{min:0,max:.02}),DARK:a(A(c[8]),-.4,{min:.01,max:.02}),MEDIUM:a(u[7],-.2,{min:0,max:.11}),MEDIUM_LIGHT:a(u[6],.1),LIGHT:a(s.saturate(u[5],.1),.16),LIGHTEST:a(s.saturate(u[3],.2),.12,{min:.5,max:.9}),SUPER_LIGHT:a(u[1],.02,{min:.76,max:.92}),WHITE:a(u[1],.11,{min:.9,max:.98})},GRAYSCALE:{SUPER_DARK:R.DARK_GRAYSCALE.SUPER_DARK,DARK:R.DARK_GRAYSCALE.DARK,MEDIUM:R.DARK_GRAYSCALE.MEDIUM,MEDIUM_LIGHT:R.DARK_GRAYSCALE.MEDIUM_LIGHT,LIGHT:R.DARK_GRAYSCALE.LIGHT,LIGHTEST:R.DARK_GRAYSCALE.LIGHTEST,SUPER_LIGHT:R.DARK_GRAYSCALE.SUPER_LIGHT,WHITE:R.DARK_GRAYSCALE.WHITE}}},a=(i,r,e={min:.03,max:.97})=>{let n=i,m=t.getLuminance(n);if(e.min<0&&(e.min=0),e.max>1&&(e.max=1),e.min>=e.max)throw new Error("Invalid range: min must be less than max");if(r>0){const o=e.max-m;if(o<=0)return t.toRgba(n);const c=r*(o/(1-m));n=t.lighten(n,c)}else if(r<0){const o=m-e.min;if(o<=0)return t.toRgba(n);const c=r*(o/m);n=t.darken(n,Math.abs(c))}const l=t.getLuminance(n);return(l>e.max||l<e.min)&&(n=T(n,e)),t.toRgba(n)},T=(i,r)=>{let e=i,n=t.getLuminance(e);for(;n>r.max;)e=t.darken(e,.05),n=t.getLuminance(e);for(;n<r.min;)e=t.lighten(e,.05),n=t.getLuminance(e);return t.toRgba(e)},A=i=>{for(;t.hasBadContrast(i,"readable",g.LIGHT_GRAYSCALE.DARK);)i=t.lighten(i,.01);return t.toRgba(i)},_=i=>{for(;t.hasBadContrast(g.LIGHT_GRAYSCALE.SUPER_LIGHT,"readable",i);)i=t.darken(i,.01);return t.toRgba(i)},G=i=>{let r=i,e=t.getLuminance(t.toRgba(r)),n=0;const m=6;for(;e<.16&&n<m;)n++,r=t.lighten(r,.1),e=t.getLuminance(t.toRgba(r));for(;e>.6&&n<m;)n++,r=t.darken(r,.1),e=t.getLuminance(t.toRgba(r));return t.toRgba(r)};exports.generatePalette=D;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("../node_modules/color2k/dist/index.exports.import.es.cjs.js"),s=require("./color2k.cjs.js"),E=require("../design/lightTheme/colors.cjs.js"),h=i=>{const r=s.arrayToRgbString(i),e=t.getScale("#FFFFFF",r,"#000000"),a=Array.from({length:12},(R,S)=>{const x=e(S/11);return s.desaturate(x,.0085)}),m=a.map(R=>s.saturate(T(R),.005)),d=t.toRgba(s.saturate(t.adjustHue(r,180),1)),o=t.getScale("#FFFFFF",d,"#000000"),c=Array.from({length:12},(R,S)=>{const x=o(S/11);return s.desaturate(x,.1)}),u=c.map(R=>s.desaturate(T(R),.22)),g=I(s.saturate(m[5],.115)),L=I(s.desaturate(u[5],.102));return{BASE_COLOR:s.arrayToRgbString(i),BRAND:{PRIMARY:g,PRIMARY_LIGHT:l(n(g,.08,{min:.55,max:.8})),PRIMARY_SUPER_LIGHT:n(g,.15,{min:.8,max:.89}),SECONDARY:L,SECONDARY_LIGHT:n(L,.08,{min:.55,max:.8}),SECONDARY_SUPER_LIGHT:l(n(L,.15,{min:.8,max:.89}))},PRIMARY:{SUPER_DARK:n(l(a[9]),-.6,{min:0,max:.02}),DARK:n(l(a[8]),-.4,{min:.01,max:.02}),MEDIUM:n(m[7],-.2,{min:0,max:.11}),MEDIUM_LIGHT:n(s.desaturate(m[6],.1),.08),LIGHT:n(s.saturate(m[5],.1),.16),LIGHTEST:n(s.saturate(m[3],.2),.12,{min:.5,max:.9}),SUPER_LIGHT:n(m[1],.02,{min:.76,max:.92}),WHITE:n(m[1],.11,{min:.9,max:.98})},SECONDARY:{SUPER_DARK:n(l(c[9]),-.6,{min:0,max:.02}),DARK:n(l(c[8]),-.4,{min:.01,max:.02}),MEDIUM:n(u[7],-.2,{min:0,max:.11}),MEDIUM_LIGHT:n(u[6],.1),LIGHT:n(s.saturate(u[5],.1),.16),LIGHTEST:n(s.saturate(u[3],.2),.12,{min:.5,max:.9}),SUPER_LIGHT:n(u[1],.02,{min:.76,max:.92}),WHITE:n(u[1],.11,{min:.9,max:.98})}}},n=(i,r,e={min:.03,max:.97})=>{let a=i,m=t.getLuminance(a);if(e.min<0&&(e.min=0),e.max>1&&(e.max=1),e.min>=e.max)throw new Error("Invalid range: min must be less than max");if(r>0){const o=e.max-m;if(o<=0)return t.toRgba(a);const c=r*(o/(1-m));a=t.lighten(a,c)}else if(r<0){const o=m-e.min;if(o<=0)return t.toRgba(a);const c=r*(o/m);a=t.darken(a,Math.abs(c))}const d=t.getLuminance(a);return(d>e.max||d<e.min)&&(a=A(a,e)),t.toRgba(a)},A=(i,r)=>{let e=i,a=t.getLuminance(e);for(;a>r.max;)e=t.darken(e,.05),a=t.getLuminance(e);for(;a<r.min;)e=t.lighten(e,.05),a=t.getLuminance(e);return t.toRgba(e)},l=i=>{for(;t.hasBadContrast(i,"readable",E.LIGHT_GRAYSCALE.DARK);)i=t.lighten(i,.01);return t.toRgba(i)},I=i=>{for(;t.hasBadContrast(E.LIGHT_GRAYSCALE.SUPER_LIGHT,"readable",i);)i=t.darken(i,.01);return t.toRgba(i)},T=i=>{let r=i,e=t.getLuminance(t.toRgba(r)),a=0;const m=6;for(;e<.16&&a<m;)a++,r=t.lighten(r,.1),e=t.getLuminance(t.toRgba(r));for(;e>.6&&a<m;)a++,r=t.darken(r,.1),e=t.getLuminance(t.toRgba(r));return t.toRgba(r)};exports.generatePalette=h;
2
2
  //# sourceMappingURL=palette.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"palette.cjs.js","sources":["../../src/utils/palette.ts"],"sourcesContent":["import {\n adjustHue,\n darken,\n getLuminance,\n getScale,\n hasBadContrast,\n lighten,\n toRgba,\n} from \"color2k\";\nimport { ProtonPalette, RGBArray } from \"../design/types\";\nimport { arrayToRgbString, desaturate, saturate } from \"./color2k\";\nimport { LIGHT_GRAYSCALE } from \"../design/lightTheme/colors\";\nimport { DARK_GRAYSCALE } from \"../design/darkTheme/colors\";\n\n/**\n * Generates a complete color palette based on a primary color input.\n * The palette includes primary and secondary color scales with varying shades.\n *\n * @param primaryColor - The base RGB color array to generate the palette from\n * @returns A Palette object containing:\n * - BRAND colors (primary, light primary, and secondary)\n * - PRIMARY scale (7 shades from super dark to super light)\n * - SECONDARY scale (7 shades from super dark to super light)\n *\n * The function:\n * 1. Creates a 12-color scale from white to the primary color to black\n * 2. Generates a complementary secondary color by shifting the hue 180 degrees\n * 3. Creates another 12-color scale for the secondary color\n * 4. Maps specific positions from these scales to create the final palette structure\n */\nexport const generatePalette = (baseColor: RGBArray): ProtonPalette => {\n const primaryRgba = arrayToRgbString(baseColor);\n\n const primaryScaleFunc = getScale(\"#FFFFFF\", primaryRgba, \"#000000\");\n const primaryScale = Array.from({ length: 12 }, (_, i) => {\n const color = primaryScaleFunc(i / 11);\n return desaturate(color, 0.0085);\n });\n\n const adjustedPrimaryScale = primaryScale.map((color) =>\n saturate(adjustBrightnessForLuminance(color), 0.005),\n );\n\n const secondaryColor = toRgba(saturate(adjustHue(primaryRgba, 180), 1));\n\n const secondaryScaleFunc = getScale(\"#FFFFFF\", secondaryColor, \"#000000\");\n const secondaryScale = Array.from({ length: 12 }, (_, i) => {\n const color = secondaryScaleFunc(i / 11);\n return desaturate(color, 0.1);\n });\n\n const adjustedSecondaryScale = secondaryScale.map((color) =>\n desaturate(adjustBrightnessForLuminance(color), 0.22),\n );\n\n const brandPrimary = darkenForContrast(\n saturate(adjustedPrimaryScale[5], 0.115),\n );\n const brandSecondary = darkenForContrast(\n desaturate(adjustedSecondaryScale[5], 0.102),\n );\n\n return {\n BASE_COLOR: arrayToRgbString(baseColor),\n BRAND: {\n PRIMARY: brandPrimary,\n PRIMARY_LIGHT: lightenForContrast(\n lightenWithinRange(brandPrimary, 0.08, {\n min: 0.55,\n max: 0.8,\n }),\n ),\n PRIMARY_SUPER_LIGHT: lightenWithinRange(brandPrimary, 0.15, {\n min: 0.8,\n max: 0.89,\n }),\n SECONDARY: brandSecondary,\n SECONDARY_LIGHT: lightenWithinRange(brandSecondary, 0.08, {\n min: 0.55,\n max: 0.8,\n }),\n SECONDARY_SUPER_LIGHT: lightenForContrast(\n lightenWithinRange(brandSecondary, 0.15, {\n min: 0.8,\n max: 0.89,\n }),\n ),\n },\n PRIMARY: {\n //backgrounds\n SUPER_DARK: lightenWithinRange(\n lightenForContrast(primaryScale[9]),\n -0.6,\n {\n min: 0.0,\n max: 0.02,\n },\n ),\n DARK: lightenWithinRange(lightenForContrast(primaryScale[8]), -0.4, {\n min: 0.01,\n max: 0.02,\n }),\n //interactive components\n MEDIUM: lightenWithinRange(adjustedPrimaryScale[7], -0.2, {\n min: 0.0,\n max: 0.11,\n }),\n //borders and seperators\n MEDIUM_LIGHT: lightenWithinRange(\n desaturate(adjustedPrimaryScale[6], 0.1),\n 0.08,\n ),\n //solid colors\n LIGHT: lightenWithinRange(saturate(adjustedPrimaryScale[5], 0.1), 0.16),\n //accessible text\n LIGHTEST: lightenWithinRange(\n saturate(adjustedPrimaryScale[3], 0.2),\n 0.12,\n {\n min: 0.5,\n max: 0.9,\n },\n ),\n SUPER_LIGHT: lightenWithinRange(adjustedPrimaryScale[1], 0.02, {\n min: 0.76,\n max: 0.92,\n }),\n WHITE: lightenWithinRange(adjustedPrimaryScale[1], 0.11, {\n min: 0.9,\n max: 0.98,\n }),\n },\n SECONDARY: {\n //backgrounds\n SUPER_DARK: lightenWithinRange(\n lightenForContrast(secondaryScale[9]),\n -0.6,\n {\n min: 0.0,\n max: 0.02,\n },\n ),\n DARK: lightenWithinRange(lightenForContrast(secondaryScale[8]), -0.4, {\n min: 0.01,\n max: 0.02,\n }),\n // interactive components\n MEDIUM: lightenWithinRange(adjustedSecondaryScale[7], -0.2, {\n min: 0.0,\n max: 0.11,\n }),\n //borders and seperators\n MEDIUM_LIGHT: lightenWithinRange(adjustedSecondaryScale[6], 0.1),\n //solid colors\n LIGHT: lightenWithinRange(saturate(adjustedSecondaryScale[5], 0.1), 0.16),\n //accessible text\n LIGHTEST: lightenWithinRange(\n saturate(adjustedSecondaryScale[3], 0.2),\n 0.12,\n {\n min: 0.5,\n max: 0.9,\n },\n ),\n SUPER_LIGHT: lightenWithinRange(adjustedSecondaryScale[1], 0.02, {\n min: 0.76,\n max: 0.92,\n }),\n WHITE: lightenWithinRange(adjustedSecondaryScale[1], 0.11, {\n min: 0.9,\n max: 0.98,\n }),\n },\n //TODO: make theme aware grayscale color scale\n //Can we remove the basecolor after this?\n GRAYSCALE: {\n SUPER_DARK: DARK_GRAYSCALE.SUPER_DARK,\n DARK: DARK_GRAYSCALE.DARK,\n MEDIUM: DARK_GRAYSCALE.MEDIUM,\n MEDIUM_LIGHT: DARK_GRAYSCALE.MEDIUM_LIGHT,\n LIGHT: DARK_GRAYSCALE.LIGHT,\n LIGHTEST: DARK_GRAYSCALE.LIGHTEST,\n SUPER_LIGHT: DARK_GRAYSCALE.SUPER_LIGHT,\n WHITE: DARK_GRAYSCALE.WHITE,\n },\n };\n};\n\nconst lightenWithinRange = (\n color: string,\n amount: number,\n range: { min: number; max: number } = { min: 0.03, max: 0.97 },\n): string => {\n let adjustedColor = color;\n let currentLuminance = getLuminance(adjustedColor);\n\n // Validate range bounds\n if (range.min < 0) range.min = 0;\n if (range.max > 1) range.max = 1;\n if (range.min >= range.max) {\n throw new Error(\"Invalid range: min must be less than max\");\n }\n\n // For lightening (positive amount)\n if (amount > 0) {\n // Calculate how much we can lighten before hitting max\n const remainingLuminance = range.max - currentLuminance;\n if (remainingLuminance <= 0) return toRgba(adjustedColor);\n\n // Scale the amount based on remaining room to lighten\n const scaledAmount = amount * (remainingLuminance / (1 - currentLuminance));\n adjustedColor = lighten(adjustedColor, scaledAmount);\n }\n // For darkening (negative amount)\n else if (amount < 0) {\n // Calculate how much we can darken before hitting min\n const remainingLuminance = currentLuminance - range.min;\n if (remainingLuminance <= 0) return toRgba(adjustedColor);\n\n // Scale the amount based on remaining room to darken\n const scaledAmount = amount * (remainingLuminance / currentLuminance);\n adjustedColor = darken(adjustedColor, Math.abs(scaledAmount));\n }\n\n // Verify final luminance is within bounds\n const finalLuminance = getLuminance(adjustedColor);\n if (finalLuminance > range.max) {\n adjustedColor = adjustBrightnessWithinRange(adjustedColor, range);\n } else if (finalLuminance < range.min) {\n adjustedColor = adjustBrightnessWithinRange(adjustedColor, range);\n }\n\n return toRgba(adjustedColor);\n};\n\nconst adjustBrightnessWithinRange = (\n color: string,\n range: { min: number; max: number },\n): string => {\n let adjustedColor = color;\n let luminance = getLuminance(adjustedColor);\n\n // Darken if too bright\n while (luminance > range.max) {\n adjustedColor = darken(adjustedColor, 0.05);\n luminance = getLuminance(adjustedColor);\n }\n\n // Lighten if too dark\n while (luminance < range.min) {\n adjustedColor = lighten(adjustedColor, 0.05);\n luminance = getLuminance(adjustedColor);\n }\n\n return toRgba(adjustedColor);\n};\n\nconst lightenForContrast = (color: string): string => {\n while (hasBadContrast(color, \"readable\", LIGHT_GRAYSCALE.DARK)) {\n color = lighten(color, 0.01);\n }\n return toRgba(color);\n};\n\nconst darkenForContrast = (color: string): string => {\n while (hasBadContrast(LIGHT_GRAYSCALE.SUPER_LIGHT, \"readable\", color)) {\n color = darken(color, 0.01);\n }\n return toRgba(color);\n};\n\nconst adjustBrightnessForLuminance = (color: string): string => {\n let currentColor = color;\n let currentLuminance = getLuminance(toRgba(currentColor));\n let adjustmentAttempts = 0;\n const MAX_ATTEMPTS = 6;\n\n while (currentLuminance < 0.16 && adjustmentAttempts < MAX_ATTEMPTS) {\n adjustmentAttempts++;\n currentColor = lighten(currentColor, 0.1);\n currentLuminance = getLuminance(toRgba(currentColor));\n }\n\n while (currentLuminance > 0.6 && adjustmentAttempts < MAX_ATTEMPTS) {\n adjustmentAttempts++;\n currentColor = darken(currentColor, 0.1);\n currentLuminance = getLuminance(toRgba(currentColor));\n }\n\n return toRgba(currentColor);\n};\n"],"names":["generatePalette","baseColor","primaryRgba","arrayToRgbString","primaryScaleFunc","getScale","primaryScale","_","i","color","desaturate","adjustedPrimaryScale","saturate","adjustBrightnessForLuminance","secondaryColor","toRgba","adjustHue","secondaryScaleFunc","secondaryScale","adjustedSecondaryScale","brandPrimary","darkenForContrast","brandSecondary","lightenForContrast","lightenWithinRange","DARK_GRAYSCALE","amount","range","adjustedColor","currentLuminance","getLuminance","remainingLuminance","scaledAmount","lighten","darken","finalLuminance","adjustBrightnessWithinRange","luminance","hasBadContrast","LIGHT_GRAYSCALE","currentColor","adjustmentAttempts","MAX_ATTEMPTS"],"mappings":"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"}
1
+ {"version":3,"file":"palette.cjs.js","sources":["../../src/utils/palette.ts"],"sourcesContent":["import {\n adjustHue,\n darken,\n getLuminance,\n getScale,\n hasBadContrast,\n lighten,\n toRgba,\n} from \"color2k\";\nimport { ProtonPalette, RGBArray } from \"../design/types\";\nimport { arrayToRgbString, desaturate, saturate } from \"./color2k\";\nimport { LIGHT_GRAYSCALE } from \"../design/lightTheme/colors\";\n\n/**\n * Generates a complete color palette based on a primary color input.\n * The palette includes primary and secondary color scales with varying shades.\n *\n * @param primaryColor - The base RGB color array to generate the palette from\n * @returns A Palette object containing:\n * - BRAND colors (primary, light primary, and secondary)\n * - PRIMARY scale (7 shades from super dark to super light)\n * - SECONDARY scale (7 shades from super dark to super light)\n *\n * The function:\n * 1. Creates a 12-color scale from white to the primary color to black\n * 2. Generates a complementary secondary color by shifting the hue 180 degrees\n * 3. Creates another 12-color scale for the secondary color\n * 4. Maps specific positions from these scales to create the final palette structure\n */\nexport const generatePalette = (baseColor: RGBArray): ProtonPalette => {\n const primaryRgba = arrayToRgbString(baseColor);\n\n const primaryScaleFunc = getScale(\"#FFFFFF\", primaryRgba, \"#000000\");\n const primaryScale = Array.from({ length: 12 }, (_, i) => {\n const color = primaryScaleFunc(i / 11);\n return desaturate(color, 0.0085);\n });\n\n const adjustedPrimaryScale = primaryScale.map((color) =>\n saturate(adjustBrightnessForLuminance(color), 0.005),\n );\n\n const secondaryColor = toRgba(saturate(adjustHue(primaryRgba, 180), 1));\n\n const secondaryScaleFunc = getScale(\"#FFFFFF\", secondaryColor, \"#000000\");\n const secondaryScale = Array.from({ length: 12 }, (_, i) => {\n const color = secondaryScaleFunc(i / 11);\n return desaturate(color, 0.1);\n });\n\n const adjustedSecondaryScale = secondaryScale.map((color) =>\n desaturate(adjustBrightnessForLuminance(color), 0.22),\n );\n\n const brandPrimary = darkenForContrast(\n saturate(adjustedPrimaryScale[5], 0.115),\n );\n const brandSecondary = darkenForContrast(\n desaturate(adjustedSecondaryScale[5], 0.102),\n );\n\n return {\n BASE_COLOR: arrayToRgbString(baseColor),\n BRAND: {\n PRIMARY: brandPrimary,\n PRIMARY_LIGHT: lightenForContrast(\n lightenWithinRange(brandPrimary, 0.08, {\n min: 0.55,\n max: 0.8,\n }),\n ),\n PRIMARY_SUPER_LIGHT: lightenWithinRange(brandPrimary, 0.15, {\n min: 0.8,\n max: 0.89,\n }),\n SECONDARY: brandSecondary,\n SECONDARY_LIGHT: lightenWithinRange(brandSecondary, 0.08, {\n min: 0.55,\n max: 0.8,\n }),\n SECONDARY_SUPER_LIGHT: lightenForContrast(\n lightenWithinRange(brandSecondary, 0.15, {\n min: 0.8,\n max: 0.89,\n }),\n ),\n },\n PRIMARY: {\n //backgrounds\n SUPER_DARK: lightenWithinRange(\n lightenForContrast(primaryScale[9]),\n -0.6,\n {\n min: 0.0,\n max: 0.02,\n },\n ),\n DARK: lightenWithinRange(lightenForContrast(primaryScale[8]), -0.4, {\n min: 0.01,\n max: 0.02,\n }),\n //interactive components\n MEDIUM: lightenWithinRange(adjustedPrimaryScale[7], -0.2, {\n min: 0.0,\n max: 0.11,\n }),\n //borders and seperators\n MEDIUM_LIGHT: lightenWithinRange(\n desaturate(adjustedPrimaryScale[6], 0.1),\n 0.08,\n ),\n //solid colors\n LIGHT: lightenWithinRange(saturate(adjustedPrimaryScale[5], 0.1), 0.16),\n //accessible text\n LIGHTEST: lightenWithinRange(\n saturate(adjustedPrimaryScale[3], 0.2),\n 0.12,\n {\n min: 0.5,\n max: 0.9,\n },\n ),\n SUPER_LIGHT: lightenWithinRange(adjustedPrimaryScale[1], 0.02, {\n min: 0.76,\n max: 0.92,\n }),\n WHITE: lightenWithinRange(adjustedPrimaryScale[1], 0.11, {\n min: 0.9,\n max: 0.98,\n }),\n },\n SECONDARY: {\n //backgrounds\n SUPER_DARK: lightenWithinRange(\n lightenForContrast(secondaryScale[9]),\n -0.6,\n {\n min: 0.0,\n max: 0.02,\n },\n ),\n DARK: lightenWithinRange(lightenForContrast(secondaryScale[8]), -0.4, {\n min: 0.01,\n max: 0.02,\n }),\n // interactive components\n MEDIUM: lightenWithinRange(adjustedSecondaryScale[7], -0.2, {\n min: 0.0,\n max: 0.11,\n }),\n //borders and seperators\n MEDIUM_LIGHT: lightenWithinRange(adjustedSecondaryScale[6], 0.1),\n //solid colors\n LIGHT: lightenWithinRange(saturate(adjustedSecondaryScale[5], 0.1), 0.16),\n //accessible text\n LIGHTEST: lightenWithinRange(\n saturate(adjustedSecondaryScale[3], 0.2),\n 0.12,\n {\n min: 0.5,\n max: 0.9,\n },\n ),\n SUPER_LIGHT: lightenWithinRange(adjustedSecondaryScale[1], 0.02, {\n min: 0.76,\n max: 0.92,\n }),\n WHITE: lightenWithinRange(adjustedSecondaryScale[1], 0.11, {\n min: 0.9,\n max: 0.98,\n }),\n },\n };\n};\n\nconst lightenWithinRange = (\n color: string,\n amount: number,\n range: { min: number; max: number } = { min: 0.03, max: 0.97 },\n): string => {\n let adjustedColor = color;\n let currentLuminance = getLuminance(adjustedColor);\n\n // Validate range bounds\n if (range.min < 0) range.min = 0;\n if (range.max > 1) range.max = 1;\n if (range.min >= range.max) {\n throw new Error(\"Invalid range: min must be less than max\");\n }\n\n // For lightening (positive amount)\n if (amount > 0) {\n // Calculate how much we can lighten before hitting max\n const remainingLuminance = range.max - currentLuminance;\n if (remainingLuminance <= 0) return toRgba(adjustedColor);\n\n // Scale the amount based on remaining room to lighten\n const scaledAmount = amount * (remainingLuminance / (1 - currentLuminance));\n adjustedColor = lighten(adjustedColor, scaledAmount);\n }\n // For darkening (negative amount)\n else if (amount < 0) {\n // Calculate how much we can darken before hitting min\n const remainingLuminance = currentLuminance - range.min;\n if (remainingLuminance <= 0) return toRgba(adjustedColor);\n\n // Scale the amount based on remaining room to darken\n const scaledAmount = amount * (remainingLuminance / currentLuminance);\n adjustedColor = darken(adjustedColor, Math.abs(scaledAmount));\n }\n\n // Verify final luminance is within bounds\n const finalLuminance = getLuminance(adjustedColor);\n if (finalLuminance > range.max) {\n adjustedColor = adjustBrightnessWithinRange(adjustedColor, range);\n } else if (finalLuminance < range.min) {\n adjustedColor = adjustBrightnessWithinRange(adjustedColor, range);\n }\n\n return toRgba(adjustedColor);\n};\n\nconst adjustBrightnessWithinRange = (\n color: string,\n range: { min: number; max: number },\n): string => {\n let adjustedColor = color;\n let luminance = getLuminance(adjustedColor);\n\n // Darken if too bright\n while (luminance > range.max) {\n adjustedColor = darken(adjustedColor, 0.05);\n luminance = getLuminance(adjustedColor);\n }\n\n // Lighten if too dark\n while (luminance < range.min) {\n adjustedColor = lighten(adjustedColor, 0.05);\n luminance = getLuminance(adjustedColor);\n }\n\n return toRgba(adjustedColor);\n};\n\nconst lightenForContrast = (color: string): string => {\n while (hasBadContrast(color, \"readable\", LIGHT_GRAYSCALE.DARK)) {\n color = lighten(color, 0.01);\n }\n return toRgba(color);\n};\n\nconst darkenForContrast = (color: string): string => {\n while (hasBadContrast(LIGHT_GRAYSCALE.SUPER_LIGHT, \"readable\", color)) {\n color = darken(color, 0.01);\n }\n return toRgba(color);\n};\n\nconst adjustBrightnessForLuminance = (color: string): string => {\n let currentColor = color;\n let currentLuminance = getLuminance(toRgba(currentColor));\n let adjustmentAttempts = 0;\n const MAX_ATTEMPTS = 6;\n\n while (currentLuminance < 0.16 && adjustmentAttempts < MAX_ATTEMPTS) {\n adjustmentAttempts++;\n currentColor = lighten(currentColor, 0.1);\n currentLuminance = getLuminance(toRgba(currentColor));\n }\n\n while (currentLuminance > 0.6 && adjustmentAttempts < MAX_ATTEMPTS) {\n adjustmentAttempts++;\n currentColor = darken(currentColor, 0.1);\n currentLuminance = getLuminance(toRgba(currentColor));\n }\n\n return toRgba(currentColor);\n};\n"],"names":["generatePalette","baseColor","primaryRgba","arrayToRgbString","primaryScaleFunc","getScale","primaryScale","_","i","color","desaturate","adjustedPrimaryScale","saturate","adjustBrightnessForLuminance","secondaryColor","toRgba","adjustHue","secondaryScaleFunc","secondaryScale","adjustedSecondaryScale","brandPrimary","darkenForContrast","brandSecondary","lightenForContrast","lightenWithinRange","amount","range","adjustedColor","currentLuminance","getLuminance","remainingLuminance","scaledAmount","lighten","darken","finalLuminance","adjustBrightnessWithinRange","luminance","hasBadContrast","LIGHT_GRAYSCALE","currentColor","adjustmentAttempts","MAX_ATTEMPTS"],"mappings":"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"}
@@ -1,44 +1,43 @@
1
- import { toRgba as r, adjustHue as f, getScale as _, getLuminance as c, lighten as A, darken as L, hasBadContrast as U } from "../node_modules/color2k/dist/index.exports.import.es.es.js";
2
- import { desaturate as S, saturate as E, arrayToRgbString as D } from "./color2k.es.js";
3
- import { LIGHT_GRAYSCALE as F } from "../design/lightTheme/colors.es.js";
4
- import { DARK_GRAYSCALE as s } from "../design/darkTheme/colors.es.js";
5
- const K = (m) => {
6
- const e = D(m), n = _("#FFFFFF", e, "#000000"), t = Array.from({ length: 12 }, (u, x) => {
7
- const G = n(x / 11);
8
- return S(G, 85e-4);
1
+ import { toRgba as r, adjustHue as D, getScale as _, getLuminance as s, lighten as I, darken as A, hasBadContrast as M } from "../node_modules/color2k/dist/index.exports.import.es.es.js";
2
+ import { desaturate as S, saturate as u, arrayToRgbString as F } from "./color2k.es.js";
3
+ import { LIGHT_GRAYSCALE as P } from "../design/lightTheme/colors.es.js";
4
+ const p = (m) => {
5
+ const e = F(m), n = _("#FFFFFF", e, "#000000"), t = Array.from({ length: 12 }, (d, T) => {
6
+ const h = n(T / 11);
7
+ return S(h, 85e-4);
9
8
  }), i = t.map(
10
- (u) => E(P(u), 5e-3)
11
- ), T = r(E(f(e, 180), 1)), o = _("#FFFFFF", T, "#000000"), R = Array.from({ length: 12 }, (u, x) => {
12
- const G = o(x / 11);
13
- return S(G, 0.1);
14
- }), I = R.map(
15
- (u) => S(P(u), 0.22)
16
- ), d = h(
17
- E(i[5], 0.115)
18
- ), H = h(
19
- S(I[5], 0.102)
9
+ (d) => u(G(d), 5e-3)
10
+ ), x = r(u(D(e, 180), 1)), c = _("#FFFFFF", x, "#000000"), o = Array.from({ length: 12 }, (d, T) => {
11
+ const h = c(T / 11);
12
+ return S(h, 0.1);
13
+ }), l = o.map(
14
+ (d) => S(G(d), 0.22)
15
+ ), E = f(
16
+ u(i[5], 0.115)
17
+ ), L = f(
18
+ S(l[5], 0.102)
20
19
  );
21
20
  return {
22
- BASE_COLOR: D(m),
21
+ BASE_COLOR: F(m),
23
22
  BRAND: {
24
- PRIMARY: d,
25
- PRIMARY_LIGHT: l(
26
- a(d, 0.08, {
23
+ PRIMARY: E,
24
+ PRIMARY_LIGHT: R(
25
+ a(E, 0.08, {
27
26
  min: 0.55,
28
27
  max: 0.8
29
28
  })
30
29
  ),
31
- PRIMARY_SUPER_LIGHT: a(d, 0.15, {
30
+ PRIMARY_SUPER_LIGHT: a(E, 0.15, {
32
31
  min: 0.8,
33
32
  max: 0.89
34
33
  }),
35
- SECONDARY: H,
36
- SECONDARY_LIGHT: a(H, 0.08, {
34
+ SECONDARY: L,
35
+ SECONDARY_LIGHT: a(L, 0.08, {
37
36
  min: 0.55,
38
37
  max: 0.8
39
38
  }),
40
- SECONDARY_SUPER_LIGHT: l(
41
- a(H, 0.15, {
39
+ SECONDARY_SUPER_LIGHT: R(
40
+ a(L, 0.15, {
42
41
  min: 0.8,
43
42
  max: 0.89
44
43
  })
@@ -47,14 +46,14 @@ const K = (m) => {
47
46
  PRIMARY: {
48
47
  //backgrounds
49
48
  SUPER_DARK: a(
50
- l(t[9]),
49
+ R(t[9]),
51
50
  -0.6,
52
51
  {
53
52
  min: 0,
54
53
  max: 0.02
55
54
  }
56
55
  ),
57
- DARK: a(l(t[8]), -0.4, {
56
+ DARK: a(R(t[8]), -0.4, {
58
57
  min: 0.01,
59
58
  max: 0.02
60
59
  }),
@@ -69,10 +68,10 @@ const K = (m) => {
69
68
  0.08
70
69
  ),
71
70
  //solid colors
72
- LIGHT: a(E(i[5], 0.1), 0.16),
71
+ LIGHT: a(u(i[5], 0.1), 0.16),
73
72
  //accessible text
74
73
  LIGHTEST: a(
75
- E(i[3], 0.2),
74
+ u(i[3], 0.2),
76
75
  0.12,
77
76
  {
78
77
  min: 0.5,
@@ -91,99 +90,87 @@ const K = (m) => {
91
90
  SECONDARY: {
92
91
  //backgrounds
93
92
  SUPER_DARK: a(
94
- l(R[9]),
93
+ R(o[9]),
95
94
  -0.6,
96
95
  {
97
96
  min: 0,
98
97
  max: 0.02
99
98
  }
100
99
  ),
101
- DARK: a(l(R[8]), -0.4, {
100
+ DARK: a(R(o[8]), -0.4, {
102
101
  min: 0.01,
103
102
  max: 0.02
104
103
  }),
105
104
  // interactive components
106
- MEDIUM: a(I[7], -0.2, {
105
+ MEDIUM: a(l[7], -0.2, {
107
106
  min: 0,
108
107
  max: 0.11
109
108
  }),
110
109
  //borders and seperators
111
- MEDIUM_LIGHT: a(I[6], 0.1),
110
+ MEDIUM_LIGHT: a(l[6], 0.1),
112
111
  //solid colors
113
- LIGHT: a(E(I[5], 0.1), 0.16),
112
+ LIGHT: a(u(l[5], 0.1), 0.16),
114
113
  //accessible text
115
114
  LIGHTEST: a(
116
- E(I[3], 0.2),
115
+ u(l[3], 0.2),
117
116
  0.12,
118
117
  {
119
118
  min: 0.5,
120
119
  max: 0.9
121
120
  }
122
121
  ),
123
- SUPER_LIGHT: a(I[1], 0.02, {
122
+ SUPER_LIGHT: a(l[1], 0.02, {
124
123
  min: 0.76,
125
124
  max: 0.92
126
125
  }),
127
- WHITE: a(I[1], 0.11, {
126
+ WHITE: a(l[1], 0.11, {
128
127
  min: 0.9,
129
128
  max: 0.98
130
129
  })
131
- },
132
- //TODO: make theme aware grayscale color scale
133
- //Can we remove the basecolor after this?
134
- GRAYSCALE: {
135
- SUPER_DARK: s.SUPER_DARK,
136
- DARK: s.DARK,
137
- MEDIUM: s.MEDIUM,
138
- MEDIUM_LIGHT: s.MEDIUM_LIGHT,
139
- LIGHT: s.LIGHT,
140
- LIGHTEST: s.LIGHTEST,
141
- SUPER_LIGHT: s.SUPER_LIGHT,
142
- WHITE: s.WHITE
143
130
  }
144
131
  };
145
132
  }, a = (m, e, n = { min: 0.03, max: 0.97 }) => {
146
- let t = m, i = c(t);
133
+ let t = m, i = s(t);
147
134
  if (n.min < 0 && (n.min = 0), n.max > 1 && (n.max = 1), n.min >= n.max)
148
135
  throw new Error("Invalid range: min must be less than max");
149
136
  if (e > 0) {
150
- const o = n.max - i;
151
- if (o <= 0) return r(t);
152
- const R = e * (o / (1 - i));
153
- t = A(t, R);
137
+ const c = n.max - i;
138
+ if (c <= 0) return r(t);
139
+ const o = e * (c / (1 - i));
140
+ t = I(t, o);
154
141
  } else if (e < 0) {
155
- const o = i - n.min;
156
- if (o <= 0) return r(t);
157
- const R = e * (o / i);
158
- t = L(t, Math.abs(R));
142
+ const c = i - n.min;
143
+ if (c <= 0) return r(t);
144
+ const o = e * (c / i);
145
+ t = A(t, Math.abs(o));
159
146
  }
160
- const T = c(t);
161
- return (T > n.max || T < n.min) && (t = M(t, n)), r(t);
162
- }, M = (m, e) => {
163
- let n = m, t = c(n);
147
+ const x = s(t);
148
+ return (x > n.max || x < n.min) && (t = H(t, n)), r(t);
149
+ }, H = (m, e) => {
150
+ let n = m, t = s(n);
164
151
  for (; t > e.max; )
165
- n = L(n, 0.05), t = c(n);
152
+ n = A(n, 0.05), t = s(n);
166
153
  for (; t < e.min; )
167
- n = A(n, 0.05), t = c(n);
154
+ n = I(n, 0.05), t = s(n);
168
155
  return r(n);
169
- }, l = (m) => {
170
- for (; U(m, "readable", F.DARK); )
171
- m = A(m, 0.01);
156
+ }, R = (m) => {
157
+ for (; M(m, "readable", P.DARK); )
158
+ m = I(m, 0.01);
172
159
  return r(m);
173
- }, h = (m) => {
174
- for (; U(F.SUPER_LIGHT, "readable", m); )
175
- m = L(m, 0.01);
160
+ }, f = (m) => {
161
+ for (; M(P.SUPER_LIGHT, "readable", m); )
162
+ m = A(m, 0.01);
176
163
  return r(m);
177
- }, P = (m) => {
178
- let e = m, n = c(r(e)), t = 0;
164
+ }, G = (m) => {
165
+ let e = m, n = s(r(e)), t = 0;
179
166
  const i = 6;
180
167
  for (; n < 0.16 && t < i; )
181
- t++, e = A(e, 0.1), n = c(r(e));
168
+ t++, e = I(e, 0.1), n = s(r(e));
182
169
  for (; n > 0.6 && t < i; )
183
- t++, e = L(e, 0.1), n = c(r(e));
170
+ t++, e = A(e, 0.1), n = s(r(e));
184
171
  return r(e);
185
172
  };
186
173
  export {
187
- K as generatePalette
174
+ p as generatePalette
188
175
  };
189
176
  //# sourceMappingURL=palette.es.js.map